nadonghuang/claude-code
요약
Anthropic의 Claude Code CLI 도구를 역공학하여 난독화를 해제한 TypeScript 소스 코드 저장소입니다. 약 5,000개 이상의 모듈을 복원하여 읽기 가능한 이름, 주석, 타입 어노테이션을 포함한 원래의 모듈 구조를 제공합니다.
핵심 포인트
- Bun bundler를 사용하여 컴파일 타임 데드 코드 제거(DCE) 및 기능 플래그 제어
- Zod를 활용한 입력 검증 및 지연 초기화(lazySchema) 구현
- Zustand 스타일의 AppStateStore를 통한 TUI 반응형 상태 관리
- Anthropic 직원 전용 도구(REPLTool, Sandbox Runtime 등) 및 내부 기능 플래그 식별
- JSONL 기반의 세션 지속성 및 대화 기록 관리 엔진 포함
@anthropic-ai/claude-code 의 난독화 해제된 소스 코드
v2.1.76.
이 저장소는 Anthropic의 Claude Code CLI 도구에서 역공학(Reverse-engineered)한 TypeScript 소스 코드를 포함하고 있습니다. 공식 npm 패키지는 단일화된 압축(minified) cli.js 번들(~12MB) 형태로 제공되지만, 이 저장소는 읽기 가능한 이름, 주석 및 타입 어노테이션(Type annotations)과 함께 원래의 모듈 구조를 복원합니다.
1,884개의 TypeScript/TSX 소스 파일 | 35MB | 5,066개의 번들링된 모듈
├── package.json # 의존성(Dependencies) 및 빌드 스크립트
├── tsconfig.json # TypeScript 설정
├── src/ # 소스 코드 (난독화 해제됨)
...
- Bun bundler로 빌드됨 — 컴파일 타임 데드 코드 제거 (DCE)를 위해
bun:bundle의feature()를 사용함 MACRO.*빌드 타임 상수 (VERSION, BUILD_TIME 등)는--define을 통해 주입됨- 최적화된 컴포넌트 렌더링을 위한 React Compiler (
react/compiler-runtime) 사용 - 단일 파일 출력: 5,066개의 모든 모듈이 하나의
cli.js로 번들링됨
내부 기능 플래그(Feature flags)는 bun:bundle의 feature()를 통해 기능을 제어합니다:
PROACTIVE/KAIROS— 선제적 에이전트(Proactive agent) 기능AGENT_TRIGGERS/AGENT_TRIGGERS_REMOTE— 예약된/원격 에이전트 실행MONITOR_TOOL— 라이브 모니터링 도구ABLATION_BASELINE— A/B 테스트 베이스라인KAIROS_GITHUB_WEBHOOKS— GitHub 웹훅 구독
일부 도구/패키지는 Anthropic 직원으로 제한됩니다 (USER_TYPE === 'ant'):
-
REPLTool— 대화형 REPL 실행 -
SuggestBackgroundPRTool— 백그라운드 PR 제안 -
@ant/claude-for-chrome-mcp— Chrome 브라우저 통합 -
@anthropic-ai/sandbox-runtime— 샌드박스 격리 런타임 -
모든 도구는 공통 인터페이스 (
Tool.ts의Tool)를 구현함 -
지연 초기화(Deferred initialization)를 위한
lazySchema()를 포함한 Zod를 통한 입력 검증(Input validation) -
권한 시스템: 캐싱 기능이 있는
canUseTool()훅(Hooks) -
타임스탬프 + 콘텐츠 변경 감지를 통한 동시 파일 편집 보호
-
ToolSearchTool은 지연된 도구 발견(Lazy tool discovery, 지연된 도구 로딩)을 가능하게 함
AppStateStore— TUI(Text User Interface)를 위한 Zustand 스타일의 반응형 상태(Reactive state)
QueryEngine— 대화 세션, 메시지 기록, 압축(Compaction) 관리
Session persistence— 붙여넣기 저장 기능이 포함된 JSONL 기반 기록
- Bun >= 1.0
- Node.js >= 18
# 의존성 설치
bun install
# 빌드 (내부 @ant/* 패키지에 대한 스텁(stubs)을 생성해야 합니다)
...
참고: 이 디오브퓨스케이션(Deobfuscation, 코드 난독화 해제) 과정에서 약 10개의 소스 파일(내부 도구, 일부 타입 정의)이 누락되었습니다. 다음 패키지들에 대한 스텁(Stubs)이 필요합니다:
@ant/* 패키지, @anthropic-ai/sandbox-runtime, REPLTool, TungstenTool, color-diff-napi, modifiers-napi.
| 파일 | 설명 |
|---|---|
tools/REPLTool/ | 대화형 REPL (ant 전용) |
tools/TungstenTool/ | 내부 모니터링 도구 |
tools/SuggestBackgroundPRTool/ | 백그라운드 PR 도구 (ant 전용) |
tools/VerifyPlanExecutionTool/ | 계획 검증 도구 |
keybindings/types.ts | 키 바인딩(Keybinding) 타입 정의 |
utils/filePersistence/types.ts | 파일 영속성(File persistence) 타입 |
services/compact/cachedMicrocompact.ts | 캐시된 마이크로 압축(Micro-compaction) |
services/contextCollapse/ | 컨텍스트 붕괴(Context collapse) 서비스 |
types/connectorText.ts | 커넥터 텍스트 블록 타입 |
이 저장소는 교육 및 연구 목적으로만 사용됩니다. 모든 권리는 Anthropic PBC에 있습니다. 원본 소스는 Anthropic의 법적 계약을 따릅니다.
Package: @anthropic-ai/claude-code
Version: 2.1.76
Date: 2026-03-26
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기