1. プロジェクト概要
Graphifyは、あらゆるコードベースを、そのドキュメント、SQLスキーマ、設定ファイル、PDFとともに、クエリ可能なナレッジグラフに変換します。これにより、開発者は大規模で馴染みのないプロジェクトを、ファイルをgrepしたり、不透明なセマンティック検索に頼ったりする代わりに、説明可能なグラフ探索を通じて理解できるようになります。
2. 背景と位置づけ
大規模なコードベースを理解するには、従来は手動でファイルをgrepするか、なぜ2つのコードが関連しているのかを説明せずに「類似」結果を返すベクトル埋め込み検索に頼るかのどちらかでした。Graphifyはそのギャップを埋めるために作られました。ソースコードを決定論的なASTツール(tree-sitter)でローカルに解析し、探索、クエリ、説明が可能なエンティティとリレーションシップの実際のグラフを構築します。
このプロジェクトの核となる使命は透明性です。抽出されたすべてのリレーションシップは、EXTRACTED(インポートや関数呼び出しなど、ソース内で明示的)またはINFERRED(graphify自身の分析によって解決)のいずれかにタグ付けされるため、開発者は接続がコードからの事実なのか、導き出された結論なのかを常に知ることができます。
典型的なRAGスタイルのコードアシスタントと比較して、graphifyは明示的にベクトルインデックスではないと位置づけています。コアグラフの構築には埋め込みもベクトルストアも関与しません。コード分析はtree-sitterを介して完全にローカルマシン上で実行され、ソースコードのグラフを構築するためにLLM呼び出しやAPIクレジットは一切必要ありません。オプションのAIバックエンドは、PDF、画像、ビデオなどの非コード形式からのセマンティック抽出にのみ呼び出されます。
3. 機能カテゴリ
🕸️ グラフ構築 — 中核機能。プロジェクトからナレッジグラフを構築します
- ゴッドノード検出(コードベース内で最も接続が多い概念の特定)
- Leidenベースのクラスタリングによるコミュニティ検出でサブシステムを発見
- tree-sitterによる約40言語にわたるクロスファイルリンク解決
# NOTE:および# WHY:コメントをファーストクラスのグラフノードに変換する根拠抽出- 変更されたファイルのみを再抽出するインクリメンタル更新
🔍 クエリと探索 — グラフが存在する場合にそれを調査するためのコマンド
graph.jsonに対する自然言語クエリ- 2つの名前付きエンティティ間の最短経路検索
- エンティティが重要な理由とそれに接続されているものを明らかにする
explainコマンド - レビューキューを関連性でランク付けするAI支援PRトリアージ
- アーキテクチャ図のエクスポート(例:コールフローHTMLビジュアライゼーション)
🌐 マルチフォーマット取り込み — グラフをソースコード以外に拡張
- 36のtree-sitterグラマーにわたるソースコード(Python、TypeScript、Go、Rust、Java、C/C++、Rubyなど)
- ドキュメントとPDF
- faster-whisperによるローカル文字起こしを備えた画像、ビデオ/オーディオ
- SQLスキーマとインフラストラクチャ・アズ・コード(Terraform)
- Salesforce Apex、Pascal/Delphi、その他のニッチなエコシステム向けのオプションの拡張機能
🤖 AIアシスタント統合 — グラフを既存の開発者ワークフローに導入
- 20以上のAIコーディングアシスタントでのネイティブ
/graphifyスキル/コマンドサポート - プラットフォーム固有のインストーラー(フック、命令ファイル、またはネイティブスキル登録)
- Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot CLIなどをカバー
4. 主なハイライト
- 決定論的で説明可能なグラフ — すべてのエッジは抽出された事実または推測された結論としてラベル付けされ、埋め込みベースの類似性検索に共通する当て推量を排除します。
- 完全にローカルなコード分析 — ソースコードのグラフを構築するためにLLM呼び出しやAPIクレジットは一切不要。コード自体はマシンから出ることはありません。
- 幅広い言語カバレッジ — すぐに使える36のtree-sitterグラマー。ほぼすべての主流言語に加え、オプションの拡張機能によっていくつかの専門言語もカバーします。
- 深いAIアシスタント統合 — 別のスタンドアロンワークフローを必要とせず、20以上の人気AIコーディングツール内でネイティブコマンドとして機能します。
- データとしての根拠 — 設計決定コメント(
# NOTE:、# WHY:)がクエリ可能なグラフノードに昇格し、通常は失われる意図を保持します。 - 強力な検索ベンチマーク — LOCOMOベンチマーク(n=300)で、graphifyはrecall@10で0.497を報告しており、独自のベンチマークで引用されている同等のメモリ/検索ツールを大幅に上回っています。
5. 役割別のユースケース
一般開発者
既存のAIコーディングアシスタント内で/graphify .を使用して、馴染みのないリポジトリに関する即時の説明可能なコンテキストを取得します。手動でgrepすることなく、機能がファイル間でどのように接続されているかを追跡できます。
DevOps/SRE
SQLスキーマとTerraformの取り込みを活用して、アプリケーションコードと並んでインフラストラクチャ・アズ・コードのリレーションシップをマッピングし、パスクエリを使用してサービスとそれを支えるインフラストラクチャ間の依存関係を追跡します。
データ/研究科学者
ドキュメント、PDF、さらにはビデオ/オーディオ素材をコードベースと同じグラフに取り込み、研究ノートや仕様を実装に直接接続するクエリを可能にします。
プロジェクトマネージャー
graphify prs --triageを使用してAIランク付けされたプルリクエストレビューキューを取得し、グラフエクスポート(例:コールフロー図)を使用して、図を手動で描画することなくアーキテクチャをステークホルダーに伝えます。
6. はじめに
必要なものを見つける — リポジトリのdocs/ディレクトリにあるドキュメント、アーキテクチャガイド、翻訳済みREADME(14言語)を参照するか、ARCHITECTURE.mdを読んでモジュールごとの内訳を確認してください。
インストール/統合
uv tool install graphifyy
graphify install
次に、サポートされているAIコーディングアシスタント内から/graphify .を呼び出して、現在のプロジェクトのグラフを構築します。代替のインストール方法:
pipx install graphifyy
# または
pip install graphifyy
貢献
git clone https://github.com/Graphify-Labs/graphify.git
cd graphify && git checkout v8
uv sync --all-extras
uv run pytest tests/ -q
活発な開発はv8ブランチで行われています。コミットはfix: / feat: / docs:プレフィックスに従い、新しい言語サポートにはtests/fixtures/の下にフィクスチャとtest_languages.pyのテストケースを含める必要があります。
7. プロジェクト構造
graphify/
├── .github/ # GitHubワークフロー(CI、リリース)
├── docs/ # 14言語への翻訳を含むドキュメント
├── graphify/ # メインパッケージのソースコード
├── scripts/ # ユーティリティスクリプト
├── tests/ # 言語フィクスチャを含むテストスイート
├── tools/ # ヘルパーツール
├── worked/ # レビュアーノート付きの抽出例
├── ARCHITECTURE.md # モジュールの責任と言語統合ガイド
├── BENCHMARKS.md # パフォーマンスと精度のメトリクス
└── AGENTS.md # エージェントフレームワークのドキュメント
graphify/にはコアの抽出およびクエリエンジンが含まれています。ARCHITECTURE.mdは、モジュールがどのように連携するか、または新しい言語のサポートを追加する方法を理解したい貢献者にとって推奨される出発点です。
8. 関連エコシステム
依存/基盤とするもの:
- tree-sitter — ローカルコード分析を支える決定論的なAST解析を提供
- faster-whisper — ビデオ/オーディオ入力のローカル文字起こしに使用
- オプションのグラフおよびデータベースバックエンド:Neo4j、FalkorDB、PostgreSQL/SQL
補完的なツール:
- AIコーディングアシスタント(Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot CLIなど)を置き換えるのではなく、それらと連携して動作します。これらのツールが消費する構造化コンテキストを提供します。
- ドキュメント、画像、ビデオからのセマンティック抽出のためのオプションのAIバックエンド(Ollamaによるローカルオプションを含む)
9. ライセンス
Graphifyはデュアルライセンスであり、ユーザーはユースケースに最も適したライセンスを選択できます。
- ✅ Apache License 2.0またはMIT Licenseのいずれかを選択して、コードの使用、変更、配布が可能
- ✅ いずれかのライセンスの条件に基づき、商用およびプロプライエタリプロジェクトでの使用が可能
- ❌ いずれのライセンスでも保証は提供されません。ソフトウェアは「現状のまま」提供されます
- ℹ️ 帰属表示とライセンス通知の要件はApache-2.0とMITで若干異なります。再配布する前に、選択したライセンスの特定の条件を確認してください
10. FAQ
Q: graphifyは私のコードを外部サーバーやLLMに送信しますか?
A: いいえ。ソースコードはtree-sitterを介してローカルで解析され、コードのグラフを構築するためにLLM呼び出しは一切不要です。PDF、画像、ビデオのオプション処理のみが設定されたAIバックエンドを使用しますが、それもOllamaを介して完全にローカルで実行できます。
Q: graphifyはどのAIコーディングアシスタントで動作しますか?
A: Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot CLIを含む20以上で動作します。graphify installを実行して、プラットフォーム固有の統合をセットアップしてください。
Q: これはベクトル埋め込みを使用するRAGツールとどう違うのですか?
A: Graphifyはベクトルインデックスではなく、実際にトラバース可能なグラフを構築します。リレーションシップはEXTRACTEDまたはINFERREDとして明示的にタグ付けされるため、結果は類似性スコアではなく説明可能です。
Q: サポートされているプログラミング言語はいくつですか?
A: デフォルトで36のtree-sitterグラマーが含まれており、ほとんどの主流言語をカバーし、Salesforce ApexやPascal/Delphiなどの言語向けの追加のオプション拡張機能もあります。
Q: 既存のグラフをクエリするにはどうすればよいですか?
A: 生成されたgraph.jsonに対して、graphify query "what connects auth to database?"、graphify path "ServiceA" "ServiceB"、またはgraphify explain "ComponentName"などのコマンドを使用します。
11. クイックリンク
- リポジトリ:https://github.com/Graphify-Labs/graphify
- アーキテクチャガイド:リポジトリルートの
ARCHITECTURE.md - 貢献:リポジトリのREADMEにある開発セットアップとガイドライン
- ベンチマーク:リポジトリルートの
BENCHMARKS.md
12. まとめ
Graphifyは、開発者にコードベースとその周辺のドキュメント、スキーマ、その他の成果物が実際にどのように適合しているかの説明可能でローカルに計算されたマップを提供し、手動のファイルgrepと不透明な類似性検索を、トラバース可能でクエリ可能なグラフに置き換えます。これは、大規模または馴染みのないリポジトリにオンボーディングする開発者や、AIコーディングアシスタントに推測ではなく検証可能で出典のあるコンテキストでアーキテクチャを推論させたいチームにとって特に価値があります。