logo
0
0
WeChat Login
Youngho Joo<creative@yonsei.ac.kr>
Add Japanese and Korean README, docs translations, and language links

Claude Code v2.1.88 — ソースコード分析

免責事項: 本リポジトリのすべてのソースコードは AnthropicおよびClaude の知的財産です。本リポジトリは技術研究、学習、教育目的の交流のためにのみ提供されます。商用利用は厳禁です。 いかなる個人、機関、団体も、本コンテンツを商業目的、営利活動、違法行為、その他の無許可の用途に使用することはできません。本コンテンツがお客様の法的権利、知的財産権、その他の利益を侵害する場合は、ご連絡いただければ直ちに確認・削除いたします。

npmパッケージ @anthropic-ai/claude-code 2.1.88 バージョンから抽出。 配布パッケージはバンドルされた単一の cli.js(約12MB)のみを含む。本リポジトリの src/ ディレクトリにはnpmターボールから抽出したバンドル前のTypeScriptソースが格納されている。

言語: English | 中文 | 한국어 | 日本語


目次


詳細分析レポート (docs/)

v2.1.88デコンパイルソースコードに基づく分析レポート。英語/中国語/韓国語/日本語の4言語で提供。

docs/ ├── en/ # English │ ├── [01-telemetry-and-privacy.md] # Telemetry & Privacy — what's collected, why you can't opt out │ ├── [02-hidden-features-and-codenames.md] # Codenames (Capybara/Tengu/Numbat), feature flags, internal vs external │ ├── [03-undercover-mode.md] # Undercover Mode — hiding AI authorship in open-source repos │ ├── [04-remote-control-and-killswitches.md]# Remote Control — managed settings, killswitches, model overrides │ └── [05-future-roadmap.md] # Future Roadmap — Numbat, KAIROS, voice mode, unreleased tools │ ├── ja/ # 日本語 │ ├── [01-テレメトリとプライバシー.md] # テレメトリとプライバシー — 収集項目、無効化不可の理由 │ ├── [02-隠し機能とコードネーム.md] # 隠し機能 — モデルコードネーム、feature flag、内部/外部ユーザーの違い │ ├── [03-アンダーカバーモード.md] # アンダーカバーモード — オープンソースでのAI著作隠匿 │ ├── [04-リモート制御とキルスイッチ.md] # リモート制御 — 管理設定、キルスイッチ、モデルオーバーライド │ └── [05-今後のロードマップ.md] # 今後のロードマップ — Numbat、KAIROS、音声モード、未公開ツール │ ├── ko/ # 한국어 │ ├── [01-텔레메트리와-프라이버시.md] # 텔레메트리 및 프라이버시 — 수집 항목, 비활성화 불가 이유 │ ├── [02-숨겨진-기능과-코드네임.md] # 숨겨진 기능 — 모델 코드네임, feature flag, 내부/외부 사용자 차이 │ ├── [03-언더커버-모드.md] # 언더커버 모드 — 오픈소스에서 AI 저작 은폐 │ ├── [04-원격-제어와-킬스위치.md] # 원격 제어 — 관리 설정, 킬스위치, 모델 오버라이드 │ └── [05-향후-로드맵.md] # 향후 로드맵 — Numbat, KAIROS, 음성 모드, 미공개 도구 │ └── zh/ # 中文 ├── [01-遥测与隐私分析.md] # 遥测与隐私 — 收集了什么,为什么无法退出 ├── [02-隐藏功能与模型代号.md] # 隐藏功能 — 模型代号,feature flag,内外用户差异 ├── [03-卧底模式分析.md] # 卧底模式 — 在开源项目中隐藏 AI 身份 ├── [04-远程控制与紧急开关.md] # 远程控制 — 托管设置,紧急开关,模型覆盖 └── [05-未来路线图.md] # 未来路线图 — Numbat,KAIROS,语音模式,未上线工具

ファイル名をクリックすると該当レポートに移動します。

#テーマ主要発見リンク
01テレメトリとプライバシー二層分析パイプライン(1P→Anthropic、Datadog)。環境フィンガープリント、プロセスメトリクス、全イベントにセッション/ユーザーID。ユーザー向け無効化設定なし。 OTEL_LOG_TOOL_DETAILS=1 で全ツール入力記録可能。EN · 日本語
02隠し機能とコードネーム動物コードネーム体系(Capybara v8、Tengu、Fennec→Opus 4.6、Numbat 次期)。Feature flagにランダム単語ペアで目的を難読化。内部ユーザーは優遇プロンプトと検証エージェントを利用可能。隠しコマンド: /btw/stickersEN · 日本語
03アンダーカバーモードAnthropic社員は公開リポジトリで自動的にアンダーカバーモードに突入。モデルへの指示: 「正体を明かすな」 — 全AI帰属表示を除去し、人間が書いたようにコミット。強制無効化オプションなし。EN · 日本語
04リモート制御とキルスイッチ1時間ごとに /api/claude_code/settings をポーリング。危険な変更時にブロッキングダイアログ — 拒否=アプリ終了。6以上のキルスイッチ(パーミッションバイパス、Fastモード、音声モード、分析シンク)。GrowthBookで同意なくユーザー動作変更可能。EN · 日本語
05今後のロードマップNumbat コードネーム確認。Opus 4.7 / Sonnet 4.8開発中。KAIROS = 完全自律エージェントモード、<tick>ハートビート、プッシュ通知、PR購読。音声モード(push-to-talk)準備完了。未公開ツール17個発見。EN · 日本語

欠損モジュール案内(108モジュール)

このソースは不完全である。 feature() ゲートで分岐した108モジュールがnpmパッケージに含まれていない。 これらはAnthropicの内部モノレポにのみ存在し、コンパイル時にデッドコード除去される。 cli.jssdk-tools.d.ts、その他配布アーティファクトから復元できない

Anthropic内部コード(約70モジュール、未公開)

npmパッケージにソースファイルが一切ないモジュール。Anthropic内部インフラに該当する。

全リスト展開
Module用途Feature Gate
daemon/main.jsバックグラウンドデーモン管理DAEMON
daemon/workerRegistry.jsデーモンワーカーレジストリDAEMON
proactive/index.js先行通知システムPROACTIVE
contextCollapse/index.jsコンテキスト縮小サービス(実験的)CONTEXT_COLLAPSE
contextCollapse/operations.js縮小操作CONTEXT_COLLAPSE
contextCollapse/persist.js縮小永続化CONTEXT_COLLAPSE
skillSearch/featureCheck.jsリモートスキル機能検査EXPERIMENTAL_SKILL_SEARCH
skillSearch/remoteSkillLoader.jsリモートスキルローダーEXPERIMENTAL_SKILL_SEARCH
skillSearch/remoteSkillState.jsリモートスキル状態EXPERIMENTAL_SKILL_SEARCH
skillSearch/telemetry.jsスキル検索テレメトリEXPERIMENTAL_SKILL_SEARCH
skillSearch/localSearch.jsローカルスキル検索EXPERIMENTAL_SKILL_SEARCH
skillSearch/prefetch.jsスキルプリフェッチEXPERIMENTAL_SKILL_SEARCH
coordinator/workerAgent.jsマルチエージェントコーディネーターワーカーCOORDINATOR_MODE
bridge/peerSessions.jsブリッジピアセッション管理BRIDGE_MODE
assistant/index.jsKAIROSアシスタントモードKAIROS
assistant/AssistantSessionChooser.jsアシスタントセッション選択KAIROS
compact/reactiveCompact.jsリアクティブコンテキスト圧縮CACHED_MICROCOMPACT
compact/snipCompact.jsスニップベース圧縮HISTORY_SNIP
compact/snipProjection.jsスニッププロジェクションHISTORY_SNIP
compact/cachedMCConfig.jsキャッシュマイクロ圧縮設定CACHED_MICROCOMPACT
sessionTranscript/sessionTranscript.jsセッショントランスクリプトサービスTRANSCRIPT_CLASSIFIER
commands/agents-platform/index.js内部エージェントプラットフォームant(内部)
commands/assistant/index.jsアシスタントコマンドKAIROS
commands/buddy/index.jsBuddyシステム通知BUDDY
commands/fork/index.jsForkサブエージェントコマンドFORK_SUBAGENT
commands/peers/index.jsマルチピアコマンドBRIDGE_MODE
commands/proactive.js先行コマンドPROACTIVE
commands/remoteControlServer/index.jsリモート制御サーバーDAEMON + BRIDGE_MODE
commands/subscribe-pr.jsGitHub PR購読KAIROS_GITHUB_WEBHOOKS
commands/torch.js内部デバッグツールTORCH
commands/workflows/index.jsワークフローコマンドWORKFLOW_SCRIPTS
jobs/classifier.js内部タスク分類器TEMPLATES
memdir/memoryShapeTelemetry.jsメモリ形状テレメトリMEMORY_SHAPE_TELEMETRY
services/sessionTranscript/sessionTranscript.jsセッショントランスクリプトTRANSCRIPT_CLASSIFIER
tasks/LocalWorkflowTask/LocalWorkflowTask.jsローカルワークフロータスクWORKFLOW_SCRIPTS
protectedNamespace.js内部ネームスペースガードant(内部)
protectedNamespace.js (envUtils)保護ネームスペースランタイムant(内部)
coreTypes.generated.js生成されたコアタイプant(内部)
devtools.js内部開発ツールant(内部)
attributionHooks.js内部帰属フックCOMMIT_ATTRIBUTION
systemThemeWatcher.jsシステムテーマウォッチャーAUTO_THEME
udsClient.js / udsMessaging.jsUDSメッセージクライアントUDS_INBOX

Feature-Gatedツール(約20モジュール)

型シグネチャは存在するが、実装がコンパイル時に除去されたツール。

全リスト展開
Tool用途Feature Gate
REPLToolインタラクティブREPL(VMサンドボックス)ant(内部)
SnipToolコンテキストスニッピングHISTORY_SNIP
SleepToolエージェントループ内スリープ/遅延PROACTIVE / KAIROS
MonitorToolMCPモニタリングMONITOR_TOOL
OverflowTestToolオーバーフローテストOVERFLOW_TEST_TOOL
WorkflowToolワークフロー実行WORKFLOW_SCRIPTS
WebBrowserToolブラウザ自動化WEB_BROWSER_TOOL
TerminalCaptureToolターミナルキャプチャTERMINAL_PANEL
TungstenTool内部パフォーマンス監視ant(内部)
VerifyPlanExecutionTool計画実行検証CLAUDE_CODE_VERIFY_PLAN
SendUserFileToolユーザーへのファイル送信KAIROS
SubscribePRToolGitHub PR購読KAIROS_GITHUB_WEBHOOKS
SuggestBackgroundPRToolバックグラウンドPR提案KAIROS
PushNotificationToolプッシュ通知KAIROS
CtxInspectToolコンテキスト検査CONTEXT_COLLAPSE
ListPeersToolアクティブピア一覧UDS_INBOX
DiscoverSkillsToolスキル探索EXPERIMENTAL_SKILL_SEARCH

テキスト/プロンプトリソース(約6ファイル)

File用途
yolo-classifier-prompts/auto_mode_system_prompt.txtautoモード分類器システムプロンプト
yolo-classifier-prompts/permissions_anthropic.txtAnthropic内部権限プロンプト
yolo-classifier-prompts/permissions_external.txt外部ユーザー権限プロンプト
verify/SKILL.md検証スキルドキュメント
verify/examples/cli.mdCLI検証例
verify/examples/server.mdサーバー検証例

欠損の理由

Anthropic内部モノレポ 配布npmパッケージ ────────────────────── ───────────────────── feature('DAEMON') → true ──ビルド──→ feature('DAEMON') → false ↓ ↓ daemon/main.js ← 含む ──バンドル──→ daemon/main.js ← 除去 (DCE) tools/REPLTool ← 含む ──バンドル──→ tools/REPLTool ← 除去 (DCE) proactive/ ← 含む ──バンドル──→ (参照のみ、src/に不在)

Bunの feature()コンパイル時組込関数:

  • Anthropic内部ビルドで true 返却 → コードがバンドルに含まれる
  • 配布ビルドで false 返却 → デッドコード除去
  • 108モジュールが配布アーティファクトに存在しない

著作権および免責事項

Copyright (c) Anthropic. All rights reserved. 本リポジトリのすべてのソースコードはAnthropicおよびClaudeの知的財産です。 本リポジトリは技術研究および教育目的でのみ提供されます。商用利用は禁止です。 著作権者として本リポジトリがお客様の権利を侵害すると判断される場合は、 リポジトリ所有者にご連絡いただければ直ちに削除いたします。

統計

項目数量
ソースファイル (.ts/.tsx)約1,884
コード行数約512,664
最大単一ファイルquery.ts(約785KB)
組込ツール約40以上
スラッシュコマンド約80以上
依存関係 (node_modules)約192パッケージ
ランタイムBun(Node.js >= 18バンドルにコンパイル)

エージェントモード

コアループ ======== ユーザー --> messages[] --> Claude API --> レスポンス | stop_reason == "tool_use"? / \ はい いいえ | | ツール実行 テキスト返却 tool_result追加 ループ再突入 -----------------> messages[] これが最小のエージェントループである。Claude Codeはこのループの上に プロダクショングレードのハーネスをラップする: 権限、ストリーミング、 並行性、圧縮、サブエージェント、永続化、MCP。

ディレクトリ参照

src/ ├── main.tsx # REPLブートストラップ、4,683行 ├── QueryEngine.ts # SDK/headlessクエリライフサイクルエンジン ├── query.ts # メインエージェントループ(785KB、最大ファイル) ├── Tool.ts # ツールインターフェース + buildToolファクトリ ├── Task.ts # タスクタイプ、ID、状態ベースクラス ├── tools.ts # ツール登録、プリセット、フィルタリング ├── commands.ts # スラッシュコマンド定義 ├── context.ts # ユーザー入力コンテキスト ├── cost-tracker.ts # APIコスト累積 ├── setup.ts # 初回実行セットアップフロー │ ├── bridge/ # Claude Desktop / リモートブリッジ │ ├── bridgeMain.ts # セッションライフサイクルマネージャ │ ├── bridgeApi.ts # HTTPクライアント │ ├── bridgeConfig.ts # 接続設定 │ ├── bridgeMessaging.ts # メッセージリレー │ ├── sessionRunner.ts # プロセススポーン │ ├── jwtUtils.ts # JWTリフレッシュ │ ├── workSecret.ts # 認証トークン │ └── capacityWake.ts # 容量ベースウェイク │ ├── cli/ # CLIインフラ │ ├── handlers/ # コマンドハンドラ │ └── transports/ # I/Oトランスポート(stdio, structured) │ ├── commands/ # 約80スラッシュコマンド ├── components/ # React/InkターミナルUI ├── entrypoints/ # アプリエントリポイント ├── hooks/ # React hooks ├── services/ # ビジネスロジック層 ├── state/ # アプリ状態 ├── tasks/ # タスク実装 ├── tools/ # 40以上のツール実装 ├── types/ # 型定義 ├── utils/ # ユーティリティ(最大ディレクトリ) └── vendor/ # ネイティブモジュールソーススタブ

アーキテクチャ概要

┌─────────────────────────────────────────────────────────────────────┐ │ エントリ層 │ │ cli.tsx ──> main.tsx ──> REPL.tsx(インタラクティブ) │ │ └──> QueryEngine.ts(headless/SDK) │ └──────────────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ クエリエンジン │ │ submitMessage(prompt) ──> AsyncGenerator<SDKMessage> │ │ ├── fetchSystemPromptParts() ──> システムプロンプト組立 │ │ ├── processUserInput() ──> /コマンド処理 │ │ ├── query() ──> メインエージェントループ │ │ │ ├── StreamingToolExecutor ──> 並列ツール実行 │ │ │ ├── autoCompact() ──> コンテキスト圧縮 │ │ │ └── runTools() ──> ツールオーケストレーション │ │ └── yield SDKMessage ──> コンシューマにストリーミング │ └──────────────────────────────┬──────────────────────────────────────┘

ビルド案内

このソースは本リポジトリから直接コンパイルできない:

  • tsconfig.json、ビルドスクリプト、Bunバンドラー設定がない
  • feature() 呼び出しはBunコンパイル時組込関数 — バンドリング時に解決される
  • MACRO.VERSION はビルド時に注入される
  • process.env.USER_TYPE === 'ant' 分岐はAnthropic内部用
  • コンパイル済み cli.js は自己完結型12MBバンドル、Node.js >= 18のみ必要

ビルドの詳細は QUICKSTART.md を参照。


ライセンス

本リポジトリのすべてのソースコードは AnthropicおよびClaude の著作物です。本リポジトリは技術研究および教育目的でのみ提供されます。完全なライセンス条項は元のnpmパッケージを参照してください。