広告

私はClaude Codeをリバースエンジニアリングした

Reddit r/LocalLLaMA / 2026/3/24

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • 著者は「Claude Code」をリバースエンジニアリングし、4つの言語(Node.js、Python、Go、Rust)にわたって、可能な限りコピペでそのまま使える単一ファイル構成で、依存関係を極力排したSDKを再実装しました。
  • 再構築したSDKは、ストリーミング、複数ターンのエージェントループの挙動、ツール呼び出しといったClaude Codeの機能を公開します。さらに、組み込みのツール群(例:bash、read/write、glob、grep)と、自動化のためのNDJSONのstdin/stdoutブリッジも備えています。
  • 認証と課金は非公開の組み合わせの要件に依存しており、macOSのキーチェーンから取得したOAuthトークンに加えて、いくつかの特別なヘッダー(課金に関連し、システムプロンプトの挙動に埋め込まれているものを含む)と、ブラウザアクセス用ヘッダーが含まれます。
  • SDKにはインタラクティブなREPLのサポートと、MCPサーバーとの互換性も含まれており、元の大きなBunバンドルに依存せずに、既存プロジェクトへClaude Code機能を埋め込みやすくすることを目指しています。
  • このプロジェクトはMITライセンスで、フィードバックやPRを歓迎しており、公式ドキュメントという位置づけではなく、観測されたClaude Codeの統合フローのオープン実装として提示されています。

Claude Codeをリバースエンジニアリングして、SDK全体を4つの言語で作り直しました。1ファイル構成。依存関係ゼロで、オープンソースです。既存のPro/Maxサブスクリプションをそのまま使います。

なぜ:Claude Codeは190MBのBunバンドルです。私は、巨大なバイナリやnpmに依存せずに、自分のプロジェクト内でその機能(ストリーミング、ツール呼び出し、マルチターンのエージェントループ)を使いたかったのです。どんなリポジトリにもそのままコピーできる「1ファイル」が目標でした。

わかったこと:サブスクリプションの認証プロトコルには同時に4つのものが必要でした。macOSのキーチェーンからのOAuthトークン、特定のベータヘッダー、システムプロンプト内に隠された請求(ビリング)ヘッダー、そしてブラウザアクセス用ヘッダーです。これらはすべて公開ドキュメント化されていません。

SDK:

  • Node.js(claude-native.mjs)— 依存関係0
  • Python(claude-native.py)— 依存関係0
  • Go(claude-native.go)— 依存関係0
  • Rust(rust-sdk/)— serde + reqwest

それぞれが提供するもの:

  • OAuthまたはAPIキー認証
  • ストリーミング+ツール利用を含む完全なエージェントループ
  • 内蔵ツール(bash、read、write、glob、grep)
  • 自動化用のNDJSONブリッジ(サブプロセスとして起動し、stdin/stdoutでJSON)
  • インタラクティブREPL
  • MCPサーバー対応

使い方はシンプルです: cp claude-native.py your-project/python3 claude-native.py -p "explain this code"。以上です。

MITライセンスです。フィードバックやPR歓迎です :)

投稿者: /u/elpad92
[link] [comments]

広告