2026年3月31日、セキュリティ研究者でありFuzzlandの共同設立者であるChaofan Shouが、極めて稀なコード・セキュリティ・インシデントを公表した。 Anthropic 公式コマンドライン インテリジェント・ボディ・アシスタント Claude コード ソースコードの完全な漏洩が発生した。
難読化されていない生のコードは現在、開発者コミュニティで野火のように広がっている。このAIインテリジェンスのソースコードには、誰でも簡単にアクセスすることができる。
致命的な設定エラーとソースコード取得の現状
この事件は、フロントエンドエンジニアリングにおける低レベルの設定ミスに起因していました。 Anthropic開発チームは、CLIツールキットをnpmレジストリに公開する際に .map ソースマッピングファイルは無視リストに追加される。これにより、難読化されていない完全な TypeScript ソース参照を含むファイルが、一般消費者向けに直接パッケージ化されることになる。
ローカルにツールをインストールした後、開発者は生成された .map このファイルは、Anthropicの内部Cloudflare R2ストレージバケットへの直接URLを公開している。このリンクを解決することで、誰でもプロジェクトのソースコード全体を含むzipアーカイブを直接ダウンロードすることができる。
現在、流出したコードの最も完全なものがGitHubプラットフォームにバックアップされている:
- 完全なソースコードバックアップリポジトリhttps://github.com/instructkr/claude-code
ソースコードスナップショットのステータスと境界線
多くの開発者がリポジトリをクローンし、現在のリポジトリにはコア部分しか残っていないことを発見した。 src/ カタログツリー。を含む、通常のトップレベルのプロジェクト・メタデータが欠落している。 package.json 依存関係ロックファイル、ビルドスクリプト、テストコマンド、そして明確なリリースディレクトリ構造。
つまり、現在のリポジトリをインストールしたり、ワンクリックで直接実行したりすることはできません。コードリーディングやアーキテクチャリファレンスのための貴重なスナップショットとして考えた方が良いでしょう。また、Anthropicが非常に複雑な内部パッケージングと配布プロセスを構築したことも示しています。
パノラマの概要:単純なラッパーではない
Claude Code は、フラットなCLIコマンドライン・ラッパー以上のものだ。完全なツール中心のアプリケーション・ランタイムであり、以下の機能を中心に構築されている:
- 大規模な内蔵コマンド・サーフェスによるインタラクティブなCLIエクスペリエンス
- ファイル、シェル、ウェブ、タスク、スマートボディツールのランタイムを公開する。
- ローカルおよびリモートの実行ストリームをサポート
- ツールの相互運用性のために MCP サーバーエントリー
コア・コードの分解:7層アプリケーション・アーキテクチャ
この512,000行のTypeScriptのコードを読み解くと、7つの論理的なアーキテクチャ層に分かれていることがわかる。
レイヤー1:プロセス・エントリーとオペレーション・モード
CLIの起動パスは src/main.tsx 和 src/entrypoints/cli.tsx ブートデザインには2つの目標がある。複数のランモードをサポートすることと、一般的なブートパスを非常にレスポンスよくすることです。
に対する引数を解析することでこれを行う。 --version システムはMCPのようなコマンドへの高速パスを提供し、すべてのモジュールを一度に導入することを避けるために遅延ロードを使用する。通常の対話型端末だけでなく、MCPサーバーモード、非対話型印刷、デーモン、ブリッジもサポートしている。
レイヤー2:コマンド・ルーティング・システム
コマンドレイヤーは src/commands.ts 及 src/commands/ ディレクトリにある。ユーザーから見える入力インテントはここで定義され、ソースコードには50近くのコマンドが公開されている。認証ログイン、コード・レビュー( /review )、差の比較( /diff )、文脈圧縮( /compact )、永続メモリ管理( /memory )、MCP管理、さらにはリモート環境輸送まで。
レイヤー3:セッション・エンジンとシングル・ラウンド・サイクル
このレイヤーはシステムの心臓部であり、きめ細かな職務分掌で設計されている:
src/QueryEngine.ts: 会話のオーナーとして機能する。複数回の対話に渡るメッセージの履歴、読むべきファイルのキャッシュを保持する、 Token 消費統計、および記録を拒否する管理権限。src/query.ts基礎となる単一ラウンド実行ループを担当。モデル・レスポンス・フロー、ツール呼び出しの明確化、自動化された応答性の高いコンテキスト圧縮、トークンが上限に達した場合の回復ロジックを処理する。
第4層:ツールシステム
クロード・コードでは、ツールは第一級市民である。ツールの呼び出しはすべて src/Tool.ts 定義済み ToolUseContext アプリケーション・ステートの読み書きインターフェイス、MCPリソース、および特権フックで実行される。 src/tools.ts 機能スイッチによって制御される約40のツールが登録されている。これらには、Bash実行、ファイル読み書き置換、ノートブック編集、ウェブクローリング、チームレベルのサブインテリジェンス生成ツールなどが含まれる。
レイヤー5:タスク
システムは「ツール」と「タスク」を明確に区別している。ツールは1回限りの能力呼び出しであり、一方 src/Task.ts 定義されたタスクは、ライフサイクル(待機、実行、完了、失敗、終了)を持つ追跡可能な実行単位である。 src/tasks.ts ローカル・シェル・ジョブ、ローカル・インテリジェンス、リモート・インテリジェンスを登録し、タスクを実行させる。 dream バックグラウンドのアイドル照合作業の
レイヤー6:インタラクティブな状態とUI
ターミナル・インターフェースは、単純なプレーン・テキスト出力とは程遠い。 src/state/AppStateStore.ts 非常に広い範囲をカバーしている。 React 状態モデル。セットアップ・パラメータ、MCPクライアントのリソース、ToDo、モデルの思考状態、リモート・ブリッジのUI状態を追跡します。ターミナル・コマンドの入力は src/components/ の下にある多数のインクコンポーネントのレンダリングは
レイヤー7:サービス、ブリッジング、外部統合
実際のビジネスの振り付けは、このレイヤーに散らばっている:
- サービスとインフラ:
src/services/和src/utils/分析テレメトリー、文脈圧縮エンジン、ポリシー制限、チームメモリー同期を含む。 - リモート&ブリッジ独立したサブシステム
src/bridge/リモートセッションURLの互換性、信頼されたデバイスワークフロー、双方向転送を処理します。 - MCPインテグレーション:
src/entrypoints/mcp.ts外部クライアントがstdioトランスポート・プロトコルを介して内部システム・ツールを発見し、呼び出すためのコア・エントリー・ポイントとして機能する。
特権、セキュリティ、機能スイッチ
セキュリティ制約は、システムランタイムの中心的な部分である。のコードは ToolPermissionContext ツールの実行が自然にポリシーを意識していることが示されている。異なる動作モード(ローカル、リモート、ヘッドレス)は動的にパーミッションの振る舞いを変え、いくつかのバックグラウンドタスクはポップアップ認証を無効にするよう強制的に設定される。
コードベースは feature('...') フィーチャー切り替え判定。つまり、非アクティブな機能はコンパイル時にトリミングされ、現在のソース・スナップショットには、実際には複数の製品バリエーションのスーパーセットが含まれます。
ディープダイブ:1つのリクエストのエンドツーエンドの流れ
ソースコードをトレースすると、完全な単一リクエストの実行パスは以下のようになる:
- プロセスはCLIまたは特定のポータルから開始される。
- スタートアップロジックは、動作モードを選択し、コンフィギュレーション、認証、ポリシーの状態を並行して初期化する。
- システムは、現在のセッションのコマンドとツールのレジストリを組み立てる。
- インタラクティブモードでAppStateを作成する。
- ユーザーはコマンドやメッセージを入力する。
QueryEngineセッションレベルの実行コンテキストで単一のインタラクションを組み立てる。- 入る
query.tsフロー循環パイプの - モデル出力テキスト、またはツール使用ツール呼び出し要求のトリガー。
- システムは、内部のツール契約と権限システムに従ってツールを検証し、実行する。
- ツールの実行結果は、メッセージ・ストリームに再統合される。
- UIコンポーネント、タスクの状態、セッションの状態は同期的に更新される。
- ループして、完了したかどうか、コンテキストを圧縮したかどうか、失敗のリトライを実行したかどうかを判断する。
510,000行のソースコードに関するプロフェッショナル・ガイドを読む
このような大規模なコードベースに直面した場合、分析には特定の戦略が必要となる。
開発者の読書パス:
下から上を見る習慣を捨て、以下の順序を採用することを推奨する:
最初にエントリーのレジストリをチェックする src/main.tsx 与 src/commands.ts 核となる抽象化を理解する src/Tool.ts 、 src/tools.ts 、 src/Task.ts 和 src/tasks.ts そして、中枢神経系に至る。 src/QueryEngine.ts 和 src/query.ts そして状態管理を見る src/state/AppStateStore.ts およびMCPポータル src/entrypoints/mcp.ts .最後に、次のようなことに関心がある。 src/bridge/ 和 src/services/ 。
AIエージェントのために設計された検索戦略:
リポジトリを分析する際、AIは特定の実装を探す前にレジストリを優先すべきである。どのような能力」を「どのように実装されているか」とは別に分析し、フィーチャーゲート変数を明示的に追跡する。効果的なエントリーポイントには、登録から実行までのツールの完全なパスの追跡、タスクとツールのデータモデルの区別、セッション状態の所有者の特定、MCPサーバーが内部ツールを呼び出す方法の調査などがあります。
コミュニティ発掘の隠された秘密
完全なコード構造にパッチを当てた後、開発者たちはフィーチャー・スイッチを使ってまだリリースされていない内部機能を抽出した。
システムには未発表のKAIROSデーモンが組み込まれている。起動すると、アシスタントはバックグラウンドに常駐するデーモンとなり、GitHub Webhookを積極的にリッスンし、複数の並列サブインテリジェンスを引き継ぐ。
Anthropic社内の従業員には、コードが「潜入捜査モード」を強制する。従業員が公共の倉庫で作業しているのが検知されると、システムは自動的にAIが生成した痕跡をすべて消去し、身元を隠すためのプロンプトを改ざんする。
チームはまた、スキャンを避けるために文字列関数を使用して、18の設定を持つ電子ペットシステムをコードの奥深くに隠した。基礎となる遠隔測定モジュールは、クラッシュログを監視するだけでなく、モデルのユーザビリティ指標を評価するために、ユーザーがタイプした冒涜的な言葉の頻度を正確にカウントする。
































