Graphify-Labs/graphify
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Graphify – コードベースを検索可能な知識グラフに変換
何であるか – Graphifyは、プロジェクト(ソースコード、ドキュメント、PDF、画像、動画/音声)を解析し、発見した概念の知識グラフを構築するPythonベースのCLIです。グラフはgraph.jsonとして保存され、インタラクティブなgraph.htmlとして可視化されます。その後、LLM駆動の開発補助ツール(Claude、Copilot、Cursor、Geminiなど)に、ファイルをgrepする代わりにこのグラフをクエリすることで、質問に答えさせたり、接続を追跡したり、シンボルの説明を取得できます。
主なアイデア
- LLMフリーのコード解析 – Tree-sitter ASTを40言語以上で使用するため、埋め込みやベクトルストアは作成せず、データはあなたのマシンから外に出ません。
- 明示的 vs 推論されたエッジ – すべてのリンクは
EXTRACTED(ソースから直接読み取られた)またはINFERRED(Graphifyのリゾルバーによって導出された)とタグ付けされ、どの情報がコードそのもので、どの情報が推論されたものかを明確にします。 - コードを超える – ドキュメント、PDF、画像、動画/音声を追加可能。その意味解析は、設定したLLM(OpenAI、Anthropic、Gemini、Ollamaなど)が実行します。
- ローカル優先 – オプションの意味解析以外は、外部モデルにアクセスしません。重い処理(AST抽出、コミュニティ検出、グラフ構築)はすべてあなたのコンピュータ上で実行されます。
- 豊富なクエリ –
graphify query "<質問>"、graphify explain "<シンボル>"、graphify path A Bにより、サブグラフの取得、ノードの簡潔な説明、2つの概念間の最短経路の表示が可能になります。
クイックスタート(約30秒)
# CLIのインストール(推奨:隔離されたツール)
uv tool install graphifyy # または:pipx install graphifyy
# 開発補助ツールにスキルを登録
graphify install
今、サポートされている任意の補助ツールを開き、次のように入力します:
/graphify .
graphify-out/に以下の3つのファイルが生成されます:
graph.html– ブラウザで開けるインタラクティブな可視化。GRAPH_REPORT.md– 高レベルな要約、主要な概念、推奨される質問。graph.json– カスタムクエリ用の完全な機械可読グラフ。
主な機能
| 機能 | 得られるもの |
|---|---|
| ゴッドノード | 最も接続されている概念 – コードベースの「ハブ」。 |
| コミュニティ | 自動的なLeidenクラスタリングにより、関連するサブシステムをグループ化。LLMを使わずラベル付け。 |
| ファイル間リンク | Tree-sitterで複数言語にわたってcalls、imports、inherits、mixes_inを解決。 |
| 根拠ノード | # NOTE: / # WHY:コメントやADR/RFCの引用が、コードにリンクされた一等ノードとして扱われる。 |
| マルチメディア | ドキュメント、PDF、画像、動画/音声を同じグラフに追加(適切なオプション拡張が必要)。 |
| ローカル優先解析 | 埋め込みもベクトルストアも作成せず、非コード資産のためのオプションLLM呼び出しのみ。 |
| クエリ言語 | 平文の質問(graphify query)、経路追跡(graphify path A B)、ノード説明(graphify explain)。 |
インストール詳細
| ステップ | コマンド | 備考 |
|---|---|---|
| パッケージ | uv tool install graphifyy(またはpipx install graphifyy) |
PyPI名はgraphifyy(二重のy)。 |
| スキル登録 | graphify install [--platform <assistant>] [--project] |
各補助ツールが読み込む小さなスキルファイルを書き込みます。--projectを使用すると、現在のリポジトリに限定されます。 |
| オプション拡張 | uv tool install "graphifyy[pdf]"、... [neo4j]、... [all]など |
PDF抽出、Neo4jへの送信、動画の音声認識、言語固有のパーサーなどを追加。 |
| 前提条件 | Python 3.10+、uv(推奨)またはpipx。 |
macOS: brew install python@3.12 uv;Windows: winget install astral-sh.uv;Linux: aptまたはcurlスクリプトでインストール。 |
内部の仕組み
- AST抽出 – Tree-sitterが各ソースファイルを解析し、決定論的な抽象構文木を生成します。
- エッジ作成 – 明示的な関係(インポート、呼び出し、継承)は
EXTRACTEDエッジになります。Graphifyはさらに追加の接続(例:クラスが使用する関数)を解決し、INFERREDとマークします。 - コミュニティ検出 – (オプション)Leidenアルゴリズムによりノードをサブシステムにグループ化します。
- 非コード用の意味解析 – PDF、動画、Office拡張を有効にすると、選択したLLMがこれらのファイルを処理し、周囲のコードにリンクされた概念ノードを追加します。
- エクスポート – 完全なグラフはJSONとして保存され、D3ベースのHTMLビューアがインタラクティブにレンダリングします。
ベンチマーク(リポジトリで報告)
- LOCOMO(300クエリ)でのRecall@10:0.497(mem0の0.048、supermemoryの0.149より大幅に上回る)。
- LOCOMOでのQA精度:45.3%(supermemory 49.7%、mem0 27.3%)。
- LongMemEval-S(50クエリ)でのQA精度:76%(密度型RAGアプローチと並ぶ)。
- グラフ構築におけるLLMクレジット:0 – コアグラフ構築はLLMを一切呼び出しません。
エコシステムと統合
- サポートされる補助ツール – Claude Code、Cursor、GitHub Copilot CLI、VS Code Copilot Chat、CodeBuddy、Kilo、Aider、OpenClaw、Factory Droid、Trae、Gemini CLI、Hermes、Kimi、Amp、Google Antigravity、および
~/.agents/skills/を読み込む任意のフレームワーク。 - 意味解析用バックエンド – OpenAI、Anthropic、Gemini、Azure OpenAI、Ollama、Bedrockなど(
--backendと適切な拡張で選択)。 - グラフシンク – グラフをNeo4jまたはFalkorDBに送信、またはSVGとしてエクスポート。
- フック –
graphify hook installでGitのpost-commitフックを追加し、インタプリタパスを記録。CIやGUI Gitクライアントでもスキルが動作するように保証。
使わない方が良い場合
- 単純なキーワード検索(
grep)や従来のベクトルストアRAGパイプラインが必要な場合、Graphifyのグラフ中心アプローチは過剰かもしれません。 - PDF/画像/動画の意味解析には外部LLMのAPIキーが必要です。なければコードのみのグラフしか生成できません。
TL;DR
Graphifyを使えば、どんなプロジェクトも決定論的でローカル生成の知識グラフに変換でき、AI開発補助ツールが元のファイルをスキャンする代わりにこのグラフをクエリできます。高速でコードに関してはオフラインで動作し、現代のほとんどのAI支援開発ツールと統合可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト