プログラミング
Show HN: Graphicle、コーディングエージェントのためのメモリを備えたGraphifyのRustポート
Show HN: Graphicle, a Rust port of Graphify with memory for coding agents (github.com)
要約
Graphicleは、Rustで開発されたコーディングエージェント向けのツールで、リポジトリをコードグラフにマッピングし、プロジェクトのドキュメントや過去のセッションを記憶します。これにより、エージェントはコードグラフやメモリから引用された正確なファイルと行番号を参照して、より的確な回答を生成できます。ローカルマシンで動作し、APIキーやテレメトリは不要です。既存のコーディングエージェントやIDEとの連携も可能です。
全文翻訳
コーディングエージェントのためのコードグラフとメモリを、1つのRustプログラムで提供します。
Graphicleは、リポジトリをコードグラフにマッピングし、プロジェクトのドキュメント、決定事項、過去のエージェントセッションを記憶し、それらから引用された抜粋をエージェントに提供します。正確なファイルと行番号が示されます。
お使いのマシンで実行できます。APIキー不要、アカウント不要、テレメトリなし。
Claude Code · Cursor · Codex · VS Code · Claude Desktop · 任意のMCPクライアントと連携可能
クイックスタート · 仕組み · ベンチマーク · ドキュメント · Graphifyからの移行 · ディスカッション
クイックスタート
brew install graphicle-ai/tap/graphicle
cd your-repo
graphicle setup
Homebrewをお持ちでない場合:
curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | sh
· リリースアーカイブ · その他のインストール方法
Windows: ネイティブビルドはまだありません。WSL2ではLinuxのインストールが機能するはずです(まだテストされていません)。ネイティブWindowsサポートは計画中です。
graphicle setup はリポジトリをインデックス化し、コードグラフを構築し、見つかったコーディングエージェントを接続します。また、セッションキャプチャをオンにし、Claude Codeの検索をまずコードグラフに向けるように設定し、AGENTS.mdに短いセクションを追加し、プロジェクトを最新の状態に保つGitフックをインストールします。変更したすべてのファイルがリストされ、各ファイルは最初にバックアップされます。graphicle disconnect は、それらすべてを元に戻します。
その後、エージェントに「graphicleを使って失敗したリクエストがリトライされる場所を見つけて」と依頼するか、ターミナルから次のように依頼します。
$ graphicle ask "where is tax added to prices?"
"where is tax added to prices?" の証拠
4つの抜粋 · 598 / 3,000 トークン
[1] shop/pricing.py:1-7
price_with_tax()
"""Prices and tax."""
TAX_RATE = 0.2
def price_with_tax(price):
"""A price with the sales tax added."""
return round(price * (1 + TAX_RATE), 2)
最初の抜粋の後にカットされた実際の出力。
モデルが設定されていない場合、ask は証拠を表示します。graphicle config set model anthropic (または openai, ollama) は、記述された回答を追加します。
コーディングエージェントにインストールさせる
Claude Code、Codex、またはCursorにこれを貼り付けてください。
`brew install graphicle-ai/tap/graphicle`(またはHomebrewなしの場合は`curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | sh`)でGraphicleをインストールし、このリポジトリで`graphicle setup --yes`を実行して、変更されたすべてのファイルを確認してください。
ここから始める
実行したいこと
コーディングエージェントにコードグラフとプロジェクトのメモリを与える
リポジトリで graphicle setup を実行する
ターミナルから質問する
graphicle ask "how are failed requests retried?"
グラフ、ソース、メモリをブラウズする
graphicle open
シンボルへの変更が何に影響するかを確認する
graphicle graph extract . --code-only, then graphicle graph affected "retry()"
すべてが機能することを確認する
graphicle doctor
setup が行ったことをすべて元に戻す
graphicle disconnect
Graphifyからの移行、またはチーム向けのサーバー実行
Graphifyからの移行 · チームサーバー
なぜGraphicleなのか
ネイティブで高速。1つのRustプログラム。
Kubernetes(31kファイル)で、0.1.0エンジンはコードのみの抽出を3分18秒で実行しました。これはGraphify 0.9.88の26分38秒と比較して高速です。同じグラフを構築しました(それぞれ1回の探索的実行、Linuxホスト1台、同じ16CPU、8ワーカー)。
コンテキスト、再読込なし。
エージェントがGraphicleに問い合わせると、関連するコード、ドキュメント、決定事項が引用された抜粋として、トークン予算内で返されます。確認可能な回答。すべての抜粋にはファイル名と行番号が記載されています。エージェントが提案するメモリは、承認を待機します。
1つのプログラム、スタックではない。
コードグラフ、メモリ、1つのMCPサーバー、Webアプリ、コマンドラインは、1つのインストールで提供され、1つのSQLiteファイルを使用します。Python、Docker、データベースサーバーは不要です。
ローカルでプライベート。
アカウントもテレメトリもありません。指示がない限り、何もマシンから離れません。
何をするか
コードグラフ。
ファイル、関数、クラス、呼び出し、インポート。tree-sitterで解析され、モデルは使用されません。graphicle graph はそれを検索し、シンボルを説明し、パスをトレースし、インタラクティブなHTMLグラフをエクスポートします。graphicle graph extract . --code-only の後、graphicle graph affected "retry()" はシンボルに依存するものをリストします。
プロジェクトメモリ。
ドキュメント(Markdown、PDF、Office、HTML)、レビュー済みの決定事項や手順、過去のClaude CodeおよびCodexセッション。コードと並行して検索可能です。トークン予算内で、モデルを呼び出さずに、ソース付きの抜粋を返します。
1つのMCPサーバー。
graphicle mcp は、メモリツールに加えて、query_graph、get_neighbors、shortest_pathなどのGraphifyのツール名でコードグラフツールを提供します。
コードに紐づいたメモリ。
レビュー済みのメモリは、それらが関連する関数に紐づいています。コードが変更されるとメモリは古くなり、ファイル内の他の場所での編集は通常それを最新の状態に保ちます(正確なルール)。ドキュメント内のコードへの言及は、それらが示す定義にリンクされます(graphicle call graph.doc_links がそれらをリストします)。
リポジトリを横断して。
ワークスペースのリポジトリ全体、またはワークスペースMCPエンドポイントにわたって、リコールが可能です。graphicle context --workspace。
常に最新の状態。
各回答の前に、Graphicleは変更された少数のファイルを同期します。Gitフックはコミット、マージ、チェックアウトの後に同期します。再説明は不要です。セッションキャプチャは各完了したターンを保持し、新しいセッションはレビュー済みのメモリと最新のターンから開始します。
アプリ。
graphicle open は、ブラウザでグラフ、ソース、メモリを表示します。メモリを承認する場所です。
エージェントとの連携
graphicle setup は、見つかったすべてのクライアントをMCP経由で接続します。各ファイルは <file>.graphicle-bak として一度バックアップされ、graphicle disconnect は追加したものを削除します。
クライアント | セットアップが接続するもの
Claude Code | リポジトリ内の .mcp.json
Codex | ~/.codex/config.toml, ~/.codex/hooks.json (Codexは信頼を求めてきます)
Cursor | ~/.cursor/mcp.json
VS Code | リポジトリ内の .vscode/mcp.json
Claude Desktop | Claudeの設定フォルダ内の claude_desktop_config.json
その他のMCPクライアント | 短いJSONエントリ (MCP)
仕組み
同期。
Graphicleはフォルダを読み込み(.gitignoreを尊重し、機密情報をスキップします)、各ソースのバージョン管理されたコピーを保持し、コードグラフを構築します。
リコール。
エージェントがツールを呼び出すと、Graphicleは変更されたものを同期し、コード、ドキュメント、セッション、レビュー済みメモリからの抜粋をランク付けし、それらを引用とともに返します。ツールはモデルを呼び出しません。エージェント自身のモデルが抜粋を読み取ります。
記憶。
キャプチャされたセッションはソースになります。エージェントが提案するメモリは、アプリで承認を待機します。
Graphicle、またはコードグラフツール+メモリサーバー | コードグラフツール+メモリサーバー
Graphicle インストール
2つのツール、多くの場合異なるランタイムで、そして多くの場合データベースサーバー | 1つのインストール
エージェントを接続する
各エージェントで各ツールを構成 | graphicle setup が見つかったエージェントを接続します。graphicle disconnect は元に戻します。
MCPサーバーをお使いのエージェントに
2つ、別々に構成 | 1つ、グラフとメモリツールを含む
ストレージ
グラフファイル+メモリサーバーのデータベース | 1つのデータフォルダにある1つのSQLiteファイル
コード構造:呼び出し、インポート、影響
グラフツール | graphicle graph
ドキュメント、決定事項、過去のセッション
メモリサーバー
組み込み
引用とレビュー
バリアント | 各抜粋にファイルと行番号。エージェントのメモリは承認待ち。
ベンチマーク
速度。
上記のチャート:Kubernetes(31kファイル)、0.1.0エンジン(リリースソースのLinuxテストビルド)対Graphify 0.9.88。それぞれ1回の探索的実行で、両方とも同じグラフを構築しました(Kubernetes実行)。以前、Djangoで、リリース前のビルドがコードのみの抽出を7.5秒で実行しました。これはGraphify 0.9.77(5回の交互実行の中央値、共有Linuxホスト1台、8ワーカー)の72.8秒と比較して高速です。両方とも同じグラフを構築しました(10月8日の記録)。
メモリ。
7つのメモリシステムとの比較では、いずれかの回答が採点される前に登録され、各システムのリーダーおよびジャッジとしてオープンモデル1つで実行されました。Graphicleのリリース前のビルドは、3つの開発セットでどれにも劣りませんでした。各スコア、その方法と注意点。
FAQ
プライバシーとローカルファースト
1つのデータフォルダ。
ソース、メモリ、setupが構築するコードグラフは、macOSでは~/Library/Application Support/Graphicle、Linuxでは~/.local/share/graphicleにある1つのSQLiteストアに保存されます。graphicle graph extract は、プロジェクト内の.graphicle/にグラフファイルを書き込みます。デフォルトでループバックします。