본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 21. 13:29

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:bundlefeature()를 사용함
  • MACRO.* 빌드 타임 상수 (VERSION, BUILD_TIME 등)는 --define을 통해 주입됨
  • 최적화된 컴포넌트 렌더링을 위한 React Compiler (react/compiler-runtime) 사용
  • 단일 파일 출력: 5,066개의 모든 모듈이 하나의 cli.js로 번들링됨

내부 기능 플래그(Feature flags)는 bun:bundlefeature()를 통해 기능을 제어합니다:

  • 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.tsTool)를 구현함

  • 지연 초기화(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가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0