diffctx について
diffctxはGitの変更から影響範囲を調べ、差分外の呼び出し元、関連テスト、契約をエージェントやレビュアーに示し、トークン予算内で確認用コードを選びます。インデックスやモデル呼び出しを使わず、ローカルで決定論的に動作します。
主な機能
- 01変更の影響を受ける呼び出し元とテストの特定
- 02トークン予算内でのレビュー対象選定
- 03シンボルと複数の差分範囲の検索
- 04順位付きJSONまたはMarkdownの出力
- 05静的解析で解決できない関係の明示
活用シーン
- 01ブランチやコミットの影響範囲のレビュー
- 02コードレビューに必要な情報の選定
- 03特定シンボルの呼び出し元の調査
- 04CIでの変更コンテキスト提供
MCP 対応
MCPサーバーとCLIは同じ解析エンジンを使い、MCPクライアントから変更の影響範囲や関連コードを照会できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 6 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | いいえ | |
| symbol | any | いいえ | |
| diff_ref | any | いいえ | |
| clipboard | boolean | いいえ | |
| repo_path | string | はい | |
| max_tokens | integer | いいえ | |
| fragment_ids | any | いいえ | |
| budget_tokens | integer | いいえ | |
| include_raw_diff | boolean | いいえ |
詳細
diffctx — git の変更がどこに影響するか、レビューすべきコード
diffctx は、エージェントやレビュアーに、変更が diff の範囲外でどこに影響するか――呼び出し元、その先にあるテスト、変更がまたぐコントラクト――を伝え、トークン予算内で変更を理解するために必要なコードを選びます。ローカルで動作し、決定論的で、インデックスもモデル呼び出しも不要です。呼び出し元の解決は言語ごとに静的に行われます。解決できない場合は、ゼロと表示するのではなく、その旨を回答します。
以前は
treemapperとして公開されていました。すべてのコマンド、フラグ、API 呼び出しは変更なく動作します。
インストール
diffctx はコマンドラインツールです。MCP サーバー、Claude Code プラグイン、GitHub Action は、すべて同じエンジンを実行します。
CLI
uvx diffctx . --diff HEAD~1 # zero-install, run once via uv
pipx install diffctx # isolated CLI
pip install diffctx # into an active environment
cargo install diffctx # native binary from crates.io, no Python
npx diffctx . --diff HEAD~1 # npm wrapper over the native binary
docker run --rm -v "$PWD:/repo" ghcr.io/nikolay-e/diffctx . --diff HEAD~1
scoop bucket add diffctx https://github.com/nikolay-e/diffctx # Windows
scoop install diffctx/diffctx
cargo、npm、Docker、Scoop、および Linux、macOS、Windows の x64 と ARM 向けリリースアーカイブで提供されるネイティブバイナリは、すべてのモードで --diff と --symbol に対応しています。リポジトリ全体のエクスポート、Markdown パック、diffctx graph、MCP サーバーには Python パッケージが必要です。
任意の MCP クライアント
io.github.nikolay-e/diffctx として登録されています。
claude mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
codex mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
gemini mcp add diffctx uvx -- --from 'diffctx[mcp]' diffctx-mcp
Cursor、VS Code、Claude Desktop、Windsurf、Zed、Continue、Python API については、連携をご覧ください。
Claude Code プラグイン
MCP サーバーに加え、/diffctx:impact と、コミットおよびプッシュのたびに実行されるフックを提供します。
claude plugin marketplace add nikolay-e/diffctx
claude plugin install diffctx@diffctx
CI
GitHub Action は、プルリクエストの diff コンテキストを任意のレビューステップに渡します。
使い方
diffctx . --diff --mode impact # uncommitted work: callers outside the diff, their tests, contracts
diffctx . --symbol parse_config # the same for a name, no change needed
diffctx . --diff main...feature # the code to review a branch, packed under the auto budget
diffctx . --diff HEAD~1 --budget 12000 # the last commit, capped at 12k o200k tokens
diffctx . --diff 24h --mode locate # today's work as ranked JSON, no source bodies
diffctx . # whole-tree export, Markdown
--diff には、git の範囲、staged、または現在を終点とする期間(24h、90min、2w)を指定します。すべてのフラグ、デフォルト値、終了コードについては、コマンドラインリファレンスをご覧ください。

比較
リポジトリ全体を対象とするパッカーはすべてをエクスポートし、コードグラフサーバーは維持管理されたインデックスに対してクエリに回答します。diffctx はdiff を起点とします。入力は変更で、出力は変更が影響する箇所と、その変更を理解するための情報です。測定結果や、ほかの 2 つが適しているケースについては、COMPARISON.mdをご覧ください。
詳細
- ドキュメントサイト — パイプライン全体を解説
- コマンドラインリファレンス —
diffctx --helpから生成 - 連携 — インストール、MCP クライアント、Python API
- FAQ — ヒューリスティックかオラクルか、無視ルール、モノレポ、シークレット
- トークン数のカウント — GPT 以外のモデル向けの
--budget - ベンチマークと論文
- 変更履歴 · セキュリティ
- パラメーター戦略
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。