本文へスキップ
hdknr blog
戻る

CodeGraph:AIコーディングのツール呼び出しを58%削減するコード知識グラフOSS

更新日:

AIコーディングツールの最大のボトルネックのひとつが、コードベースを探索するための大量のツール呼び出しだ。grep・glob・ファイル読み込みを繰り返してから、ようやく本来の作業に入る——この非効率を、ツール呼び出し58%削減・22%高速化という実測値で解消する OSS が CodeGraph だ。

CodeGraph とは

CodeGraph は、コードベースをあらかじめ「知識グラフ」として索引化しておくローカル実行の OSS ツールだ。MIT ライセンスで公開されており、2026年6月時点で GitHub スター数は約5.4万を超えている。

AI エージェントがコードを理解する際、従来はファイルを一枚ずつ grep・glob・Read して構造を把握していた。CodeGraph はシンボル・呼び出しエッジ・依存関係を事前にグラフ化しておくため、エージェントが「1回のクエリ」で必要なコードを正確に取得できる。動的ディスパッチのホップ(実行時に決まるメソッドの呼び出し先)も追跡できるため、grep では辿り着けない呼び出しパスも把握できる。

対応エージェントは幅広い:

ベンチマーク結果

対象: 実際のオープンソースコードベース7つ(7言語) 方法: Claude Code(ヘッドレスモード)でアーキテクチャ質問に回答させ、各4回の中央値を比較

全コードベース共通の中央値: ツール呼び出し58%減 / 22%高速化 / ファイル読み込みほぼゼロ

コードベース言語ツール呼び出し処理時間ファイル読み込みトークンコスト
VS CodeTypeScript (~1万ファイル)81%減11%高速0 vs 964%減18%安
ExcalidrawTypeScript (~640)40%減27%高速0 vs 725%減同等
DjangoPython (~3千)77%減13%高速0 vs 960%減8%安
TokioRust (~790)57%減18%高速0 vs 838%減同等
OkHttpJava (~645)50%減31%高速0 vs 454%減25%安
GinGo (~110)44%減24%高速1 vs 623%減19%安
AlamofireSwift (~110)58%減33%高速0 vs 964%減40%安

ファイル読み込み列は「CodeGraph あり vs なし」の中央値比較。コスト削減効果はコードベースの規模に依存する面があるが、ツール呼び出しの削減と高速化はあらゆる規模で一貫して確認されている。

どんなプロジェクトに効くか

ツール呼び出しの削減効果はプロジェクトの規模を問わず現れるが、トークン・コストの節約は大規模コードベースほど顕著になる。

Claude Code や Cursor をすでに使っていて「コードベース探索に時間がかかる」と感じているなら、導入コストは低いので試す価値は高い。

CodeGraph のインストール方法

バイナリ(推奨・Node.js 不要)

OS 向けのビルド済みバイナリが自動で取得される:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex

npm(Node.js がある場合)

npm i -g @colbymchenry/codegraph

アップグレードはいつでも:

codegraph upgrade

セットアップ手順

1. エージェントへの接続

注意: インストール後は新しいターミナルセッションで実行すること(PATH を反映させるため)。

codegraph install

codegraph install は使用中のエージェントを自動検出し、各エージェントの設定に CodeGraph の MCP サーバーを組み込む。

2. プロジェクトの初期化

cd your-project
codegraph init

.codegraph/ ディレクトリを作成し、プロジェクト全体のグラフを一度に構築する。

3. 自動同期

デフォルトでファイル変更を監視し、グラフを自動更新する。エージェントがコードを編集中でも、ファイルを追加・変更・削除しても、インデックスは常に最新の状態を保つ。codegraph init 後は放置するだけでよい。

アンインストール

codegraph uninstall   # 全エージェントから削除
codegraph uninit      # プロジェクトのインデックス削除

実プロジェクトでの検証:43万LOCのDjangoで同カテゴリツールを実測

ベンチマークは魅力的だが、自分のコードベースに効くかは別問題だ。ここでは、同カテゴリの知識グラフツール GitNexus.mcp.json 登録・PR 計画時の利用を運用ルール化済み)を、実際の業務プロジェクトで実測し、「CodeGraph を新規に入れる価値があるか」を検証した結果を共有する。

検証環境

結論から言うと、記事の目玉である「dynamic dispatch 追跡」は、Django/DRF/Celery ベースのコードでは静的グラフが最も効きにくい軸であり、CodeGraph でも同じ盲点を踏む可能性が高い、というのが実測に基づく評価だ。

① 通常のPython呼び出し(アプリ跨ぎ)は正確に張れる

あるサービスクラスのメソッドの呼び出し元を照会したところ、別アプリ(signal 受信側)からの直接呼び出しを正しく捕捉できた。アプリ跨ぎの Python 呼び出しを正確に辿れ、grep より速く安全に「誰が呼ぶか」が取れる。この価値は大規模 Django に確実にある(だからこそ既に GitNexus を採用している)。これは CodeGraph の①ベンチマーク結果とも整合する、知識グラフの本領だ。

② Djangoの動的ディスパッチは繋がらない(=CodeGraphでも同じ盲点)

一方、signal 受信関数の呼び出し元は「ゼロ」と判定された(実際は signal dispatch 経由で駆動される)。さらに、signal から駆動される Celery タスクの upstream impact 分析は impactedCount: 0, risk: "LOW" という false-safe(安全側への誤判定) を返した——実際には売上完成→受注完成を駆動する要衝コードにもかかわらず、だ。

signal.connect() / .delay() / .apply_async()実行時に張られるエッジのため、静的解析では捕捉できない。CodeGraph も同じ静的解析である以上、この軸で明確に上回るとは考えにくい。Django 系の難所(signals / DRF ViewSet / 行レベル権限 / GraphQL resolver / Celery ルーティング / GenericForeignKey / マルチDB ルーティング)は、いずれもこの実行時マジックの領域に該当する。

③ 日本語(CJK)の自然言語クエリは縮退する

日本語のドメイン語クエリでは実行フロー抽出ができず(processes: [])、シンボル名一致へのフォールバックに留まった。英語クエリでは関連シンボルを列挙できた。業務ドメイン語が日本語のプロジェクトでは自然言語検索の効きが弱く、英語またはシンボル名主体で問い合わせる運用が要る。CodeGraph の CJK 対応は要確認だが、同じ制約を持つ可能性が高い。

④ 索引の陳腐化は運用コスト

検証開始時、索引 meta は約4ヶ月前のコミットを指し、実グラフDBも欠落していたため再構築が必要だった。CodeGraph は「ファイル変更を自動監視して更新」を謳うが、CI・常駐で回し続けないと同じ陳腐化は起きる。自動同期を過信せず、更新が回っているかの点検は残る。

導入可否の判断

観点評価
知識グラフという概念の適合性◎(43万LOC・25アプリ・アプリ跨ぎ多数。既に GitNexus 採用済みで実証)
CodeGraph 固有の追加価値△(GitNexus と同カテゴリで重複。2ツール併用は索引の二重管理)
目玉の「dynamic dispatch 追跡」✕〜△(signals/Celery が主戦場の Django では静的解析の限界に阻まれる)
記事の 58%削減 / 22%高速化別コードベース(多くは静的呼び出しが素直な言語)の数値。signal/Celery 依存の Django には直接転移しない

教訓: 知識グラフの価値は「アプリ跨ぎの静的な呼び出し」で確実に出る一方、フレームワークの実行時マジック(signals / 権限 / GraphQL / Celery)はどのグラフでも埋まらない。ベンチマークの数値は静的呼び出しが素直な言語で測られたものが多く、動的ディスパッチが主戦場のコードベースにはそのまま転移しない点は押さえておきたい。すでに同カテゴリのツールを使っているなら、乗り換えは同一クエリでの精度実測をもって判断するのが堅実だ。

まとめ

CodeGraph は「AIに都度コードを探索させる」から「事前に知識グラフを持たせる」へのシフトを実現するツールだ。Claude Code・Cursor・Codex などと透過的に連携し、100%ローカルで動作する点も安心感がある。ツール呼び出しの大幅な削減は、レスポンスの高速化とコストの両面で実質的なメリットをもたらす。



前の記事
DockerでAndroidエミュレーターを動かす ─ Dockerify Android 入門
次の記事
Claude Tag — チームメンバーとして Slack に参加する AI