広告

Claude Codeの全ソースコードがnpmのソースマップ経由で流出していた──中身を解説

Dev.to / 2026/3/31

📰 ニュースDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • セキュリティ研究者が、AnthropicのClaude Code CLIの「全ソースコード」がnpmのソースマップによって露出したと報告した。発見は2026年3月31日。
  • 流出したリポジトリは公開GitHubリンクとしてアーカイブされており、約1,900のTypeScriptファイルと512,000行超のコードを含む。
  • コードの分析から、Claude CodeはBunを使って構築された実運用向け(production-grade)のシステムであり、ターミナルUIにReact with Inkを用い、モジュール化されたツールベースのアーキテクチャを採用していることが示されている。
  • コードベースには約40の内蔵ツールと約50のスラッシュコマンドが含まれており、単なるチャットラッパーを超えてエージェント型のエンジニアリング・ワークフローに踏み込んでいることがうかがえる。
  • この記事では、得られた知見を教育/調査目的のものとして位置づけつつ、コードはAnthropicのプロプライエタリ(専有)であり、当時は公にアクセス可能だったアーティファクトに基づくものに限られていたと注意書きしている。

セキュリティ研究者が、ソースマップファイルを通じてAnthropicのCLIの完全なソースコードが露出していることを発見しました。1,900ファイル。512,000+行。すべてです。

AIを活用したコーディングツールを使っているなら、今日はきっと忘れられない日になるでしょう。2026年3月31日、セキュリティ研究者のChaofan Shou@shoucccc)が、AnthropicのClaude Code — 同社のフラッグシップであるエージェント型CLIツール — がその全ソースコードを、npmレジストリに公開されたソースマップファイル経由で露出させていたことを発見しました。

漏えいしたコードベースはすぐに公開GitHubリポジトリにアーカイブされており、すでに1,100+スター1,900+フォークを超えています。そして中身は実に興味深いものです。

免責事項: この記事は純粋に教育および調査目的で書かれています。参照したすべてのコードはAnthropicの知的財産です。私は、無許可での専有ソフトウェアの配布を支持したり、促したり、容認したりしません。リポジトリは執筆時点で一般公開されており、ここでの分析は、公開されていた情報のみに基づいています。

数字がすべてを物語る

約1,900のTypeScriptファイル。512,000+行のコード。約40のビルトインツール。約50のスラッシュコマンド。

これはおもちゃプロジェクトではありません。Claude Codeは、本番投入レベルで、非常に緻密に設計されたシステムです。NodeではなくBun上で動作し、ターミナルUIの描画にReact with Inkを使用しています。また、エンジニアが学ぶ価値のあるモジュール型のツールベースのアーキテクチャを備えています。

Claude Codeが内部で実際に何をしているのか

ご存じない方のために説明すると、Claude CodeはAnthropicの公式コマンドラインインターフェースで、ソフトウェアエンジニアリングのタスクを行う際に、ターミナルからClaudeと直接やり取りできます。これは、自然言語での指示を通して、ファイルの編集、コマンドの実行、コードベースの検索、gitのワークフロー管理までこなせるAIペアプログラマーだと考えてください。

しかし、漏えいしたソースは、このツールが本当に「チャットのラッパー」を超えてどこまで踏み込んでいるのかを明らかにしています。

アーキテクチャの注目ポイント

ツールシステム(約40ツール) — Claude Codeはプラグインのようなツールアーキテクチャを使っています。各機能(ファイル読み取り、bash実行、Web取得、LSP連携など)は、個別のツールとして定義され、権限によるゲーティングがされています。ベースとなるツール定義だけでも29,000行のTypeScriptがあります。

クエリエンジン(46K行) — これが処理の頭脳です。LLM API呼び出しのすべて、ストリーミング、キャッシュ、オーケストレーションを扱います。コードベースの中でも最大級の単一モジュールです。

マルチエージェントのオーケストレーション — Claude Codeは複雑で並列化可能なタスクを処理するために、サブエージェントを(同社は「swarms」と呼んでいます)起動できます。各エージェントは、特定のツール権限を持つ独自のコンテキストで動きます。

IDEブリッジシステム — 双方向の通信レイヤが、JWT認証されたチャネルを介してIDE拡張(VS Code、JetBrains)とCLIを接続します。これが「エディタ内のClaude」という体験を実現しています。

永続メモリシステム — Claudeが、セッションをまたいであなたに関するコンテキスト、プロジェクト、そして好みを保存する、ファイルベースのメモリディレクトリです。

// ツールアーキテクチャの簡略表示
interface Tool {
  name: string;
  permissions: PermissionGate;
  execute(context: ToolContext): Promise<ToolResult>;
}

// 約40のツールが登録済み:Read, Write, Edit, Bash, Grep,
// Glob, WebFetch, Agent, LSP, MCP、そして他にも多数...

特に注目すべき主要な技術的意思決定

  • BunをNodeの代わりに: 同社はJavaScriptランタイムとしてBunを選び、機能フラグのためのデッドコード削除と、より高速な起動時間を活用しました。
  • CLIにReact: Ink(ターミナル向けのReact)を使うのは大胆です。つまり、ターミナルUIはWebアプリと同様に、コンポーネントベースで状態管理を行うということです。
  • 検証にZod v4: スキーマ検証はあらゆるところにあります。すべてのツール入力、すべてのAPIレスポンス、すべての設定ファイル。
  • 約50のスラッシュコマンド: /commitから/review-pr、メモリ管理まで。どんなIDEにも負けないほど豊富なコマンドシステムがあります。
  • 遅延ロードされるモジュール: OpenTelemetryやgRPCのような重い依存関係は、起動を速く保つために遅延ロードされます。

セキュリティ面の考察

どうしてこうなったのでしょうか?どうやら、ソースマップファイルがnpmパッケージに同梱されていたようです。ソースマップはデバッグ用のものです。圧縮/バンドルされたコードを元のソースコードに対応付けるためのものです。これを本番環境でのnpm公開に含めると、実質的にコードベース全体を読みやすい形で出荷してしまうことになります。

これはすべてのエンジニアリングチームへのリマインダーです:ビルドパイプラインを確認してください。.mapファイルが公開設定から除外されていることを確認しましょう。誤って設定された単一の.npmignore、またはpackage.json内のfilesフィールドが、すべてを露出させてしまう可能性があります。

皮肉ですね。より良いコードを書くために設計されたツールが、ビルド設定の見落としによって無効化されてしまったのです。

これがAIコーディングツール分野に意味すること

漏えいについて賛否があるかどうかにかかわらず、猫はもう袋から出てしまいました。そして分かるのは、AIコーディングツールのハードルが非常に高いということです。Anthropicは、Claude CodeをAPIの単なるラッパーにとどまらない、本番品質の開発者体験にするために、多大な投資を行っています。

この分野で作っている私たちにとって、これは刺激になると同時に身の引き締まる思いでもあります。権限システム、マルチエージェントのオーケストレーション、IDEブリッジ、永続メモリ――そのレベルのエンジニアリングが、業界がどこへ向かっているのかを示しています。

ところで――これはまさに、私がHermes IDEの周りで構築してきたエコシステムそのものです。Hermesはシェルラッパーで、AI機能(Claude、Gemini、Aider、Codex、Copilot)を既存のターミナルに直接統合します。ゴーストテキストの提案、分離したgit worktreesによる複数プロジェクトのセッション、内蔵のプロセスマネージャー、コストダッシュボード、30以上のキーボードショートカット――これらは、セットアップを変えずに、あなたの既存のシェルの上に重ねてすべて提供されます。

Claude Codeの内部構造を目にして、開発の未来はターミナルネイティブで、AIによって強化され、そして私たちがすでに使っているツールと深く統合されたものになるという私の確信がより強まりました。Hermesでまさにそれを構築しています——あなたのワークフローを置き換えるのではなく、強力にパワーアップするためです。興味があればhermes-ide.comでチェックしてください。

開発者が汲み取るべきこと

  • npmの公開内容を監査してください。 リリースのたびにnpm pack --dry-runを使って、含まれるものを事前に確認してください。
  • ソースマップはソースコードです。 意図がない限り、本番用パッケージに含めないでください。
  • アーキテクチャを学んでください。 状況にかかわらず、Claude Codeのパターン(ツールシステム、権限ゲート、マルチエージェントの起動)は、AI対応のツールを作るなら理解する価値があります。
  • ターミナルこそIDEです。 Claude CodeもHermes IDEのようなツールも、あなたのシェルがあなたの持つ最も強力な開発環境になる未来を指し示しています。

漏えいしたリポジトリ全文はgithub.com/instructkr/claude-codeで利用可能です。自分で調べたいなら、そこにあるエンジニアリングの取り組みに対する敬意と好奇心を持って臨んでください。

この分析がお役に立ったなら、フォローしてGitHub(@gabrielanhaia)で私の仕事も見てください。私はAIと開発者体験の交差点で、実際にツールを積極的に開発しており、これからもっとたくさん出てきます。

法的通知:この記事は、情報提供および教育目的のみに公開されています。この記事で言及しているすべてのソースコードはAnthropic, PBCの知的財産です。著者は、いかなる専有コードもホスト、配布、または所有権を主張していません。分析は、執筆時点で公開されている情報に基づいています。

広告