86,602· 8,517 forks· Python· MIT开发工具

Graphify - 程式碼庫轉知識圖譜的 AI 程式設計助手技能

Graphify-Labs/graphify

將任意程式碼資料夾、SQL 模式、文件、圖片、影片轉為可查詢的知識圖譜,支援 Claude Code、Cursor 等 15+ AI 程式設計助手,本地解析無需 LLM

成熟度維護活躍,最近提交今天,504 個 open issues 顯示社群反饋積極,30 字內

项目体检

部署 · Docker 单容器部署,暴露 8080 端口提供 HTTP MCP 服务,需挂载 graph.json 数据卷,非 root 用户运行

成本 · 代码解析开箱即用无需外部服务,文档/图片/视频处理依赖 AI 助手的模型或自配 API Key

技术 · Python 3.10+,基于 tree-sitter 多语言 AST 解析器 + NetworkX 图计算 + Leiden 社区检测算法

许可 · MIT 协议,可自由商用、修改和分发

活跃 · 最新版本 v0.9.16 发布于今日,155 位贡献者,8.6 万 stars,活跃度极高

解決什麼

傳統程式碼閱讀依賴 grep、全域性搜尋或 IDE 跳轉,面對大型專案時難以把握全域性架構和隱式依賴關係。Graphify 將整個程式碼庫(包括 SQL 模式、R 指令碼、Shell 指令碼、文件、圖片、影片)轉化為可查詢的知識圖譜,開發者可以直接提問"FastAPI 和 ModelField 如何連線"或"解釋 APIRouter 的作用",系統返回帶路徑的結構化答案,而非檔案列表。每條邊標註 EXTRACTED(原始碼顯式)或 INFERRED(工具推導),確保溯源透明。

為何火

8.6 萬 stars 的熱度源於三個差異化設計:1) 完全本地化的程式碼解析,基於 tree-sitter AST 而非 LLM,無需上傳程式碼即可生成確定性圖譜;2) 真實圖結構而非向量索引,支援路徑查詢、社群檢測等圖演算法,可回答"兩個模組間的最短依賴鏈"這類傳統 RAG 無法處理的問題;3) 零配置整合 AI 助手,通過 /graphify 命令直接在 Claude Code、Cursor 等 15+ 平臺使用,30 秒內生成互動式 HTML 視覺化圖譜。專案由 Y Combinator S26 孵化,技術棧覆蓋 40+ 程式語言。

核心功能

  • 多語言 AST 解析:通過 tree-sitter 支援 Python、JavaScript、Go、Rust、Java、C/C++、Ruby、Kotlin、Scala、PHP、Swift 等 40+ 語言,提取函式呼叫、類繼承、模組匯入等顯式關係
  • 圖譜查詢三件套:graphify query "<問題>" 返回相關子圖,graphify path A B 追蹤兩節點間最短路徑,graphify explain "概念" 展示節點的所有連線及置信度
  • 社群檢測:基於 Leiden 演算法自動識別程式碼庫的子系統劃分,無需 LLM 即可生成模組標籤
  • 互動式視覺化:生成 graph.html 力導向圖,支援節點點選、社群篩選、全文搜尋,瀏覽器直接開啟
  • 增量更新:已生成的 graph.json 可重複查詢,無需重新掃描檔案;支援 Docker 容器化部署為 HTTP MCP 服務

安裝

推薦使用 uvpipx 安裝(避免汙染全域性 Python 環境):

# 方式一:uv(推薦)
uv tool install graphifyy

# 方式二:pipx
pipx install graphifyy

# 註冊到 AI 助手
graphify install

在 AI 助手中執行:

/graphify .

輸出三個檔案:

  • graph.html:瀏覽器視覺化
  • GRAPH_REPORT.md:關鍵概念摘要
  • graph.json:完整圖譜資料

Docker 部署(適合團隊共享):

docker build -t graphify .
docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \
    /data/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET"

適合誰

  • 接手遺留系統的工程師:快速理解陌生程式碼庫的架構脈絡,識別核心模組和邊緣依賴
  • 技術 Leader:通過"上帝節點"(最高連線度節點)定位架構瓶頸,評估重構風險
  • 開源貢獻者:在大型專案中追蹤某個 API 的呼叫鏈,找到需要修改的所有位置
  • AI 程式設計助手重度使用者:已在使用 Claude Code、Cursor 等工具,希望增強上下文理解能力

中文使用者注意:程式碼解析完全離線,但處理 PDF、圖片、影片時會呼叫 AI 助手的模型(如 Claude API),需確保網路可達或自行配置 API Key。

社群評價

暫無足量社群公開討論,以下為基於專案本身的中立評估:

專案在 GitHub 獲得 8.6 萬 stars 和 155 位貢獻者,顯示出較高的開發者關注度。504 個 open issues 表明功能迭代快速但可能存在穩定性待最佳化。技術選型上,使用 tree-sitter 而非 LLM 進行程式碼解析是務實的工程決策,避免了 token 成本和隱私風險,但對自然語言文件的理解仍依賴外部模型。Leiden 社群檢測演算法在學術界已驗證有效,應用於程式碼模組劃分具有理論支撐。專案由 Y Combinator 孵化,商業化路徑可能影響未來開源策略。

選型對比

vs 傳統程式碼搜尋(grep/ripgrep)

  • Graphify:結構化關係查詢,可回答"A 如何影響 B";傳統搜尋:文本匹配,需人工串聯上下文
  • Graphify:社群檢測自動分組;傳統搜尋:依賴目錄結構或人工經驗

vs 向量資料庫 RAG(如 Copilot 的 embedding 檢索)

  • Graphify:圖遍歷保證路徑完整性,邊有明確語義(呼叫/繼承);RAG:相似度匹配可能遺漏中間節點
  • Graphify:程式碼解析無需 LLM,成本更低;RAG:所有內容需 embedding,token 消耗大

vs IDE 的呼叫層次檢視(如 IntelliJ 的 Call Hierarchy)

  • Graphify:跨檔案全域性檢視,支援自然語言查詢;IDE:單檔案或單符號視角,需手動展開
  • Graphify:匯出靜態圖譜可分享;IDE:即時但不可持久化

取捨:Graphify 適合"理解架構"場景,IDE 更適合"精確跳轉"場景;若需處理非程式碼資產(文件/影片),Graphify 是唯一選擇。

已知坑

  1. 504 個 open issues:功能迭代快但 bug 修復可能滯後,生產環境使用需評估風險
  2. 文件處理需外部 API:雖然程式碼解析本地化,但 PDF/圖片/影片仍需呼叫 AI 模型,中國大陸使用者可能需配置代理或使用國內模型 API
  3. 圖譜規模限制:超大型專案(如 Linux 核心)生成的圖譜可能包含數萬節點,瀏覽器渲染 graph.html 時可能卡頓,建議用 graphify query 提取子圖
  4. tree-sitter 版本鎖定:依賴特定版本範圍(如 tree-sitter-python>=0.23,<0.26),升級 Python 解析器可能導致相容性問題
  5. 無內建許可權控制:Docker 部署的 HTTP 服務需自行配置 --api-key,否則圖譜資料暴露在公網
  6. 社群標籤質量:Leiden 演算法生成的模組標籤是基於圖結構而非語義,可能出現"utils 和 core 被分到同一社群"的反直覺結果

安装方式:pip/uv