开源项目

graphify

graphify

AI 编码助手技能插件,将任意代码库、文档、图片等转为可查询的知识图谱,替代传统 grep 检索。基于 tree-sitter AST 本地解析代码,无需 LLM 调用;文档/图片等借助助手模型进行语义提取。亮点是与 Claude Code、Cursor、Gemini CLI 等 20+ 平台无缝集成,生成交互式 HTML 图谱和查询接口,且代码解析完全本地化,隐私友好。当前因提升开发效率而受到关注。

README

Graphify

Graphify-Labs%2Fgraphify | Trendshift

其他语言版本

🇺🇸 English | 🇨🇳 简体中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇩🇪 Deutsch | 🇫🇷 Français | 🇪🇸 Español | 🇮🇳 हिन्दी | 🇧🇷 Português | 🇷🇺 Русский | 🇸🇦 العربية | 🇮🇷 فارسی | 🇮🇹 Italiano | 🇵🇱 Polski | 🇳🇱 Nederlands | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇻🇳 Tiếng Việt | 🇮🇩 Bahasa Indonesia | 🇸🇪 Svenska | 🇬🇷 Ελληνικά | 🇷🇴 Română | 🇨🇿 Čeština | 🇫🇮 Suomi | 🇩🇰 Dansk | 🇳🇴 Norsk | 🇭🇺 Magyar | 🇹🇭 ภาษาไทย | 🇺🇿 Oʻzbekcha | 🇹🇼 繁體中文 | 🇵🇭 Filipino | 🇮🇱 עברית

PyPI Downloads Discord LinkedIn YC S26

在你的 AI 编程助手中输入 /graphify,它就会将你的整个项目(代码、文档、PDF、图片、视频)映射成一个知识图谱,你可以像查询数据库一样查询它,而不是在文件中 grep

  • 代码映射免费且完全本地运行。 代码通过 tree-sitter AST 解析:确定性的、无需 LLM、数据不会离开你的机器。(文档、PDF、图片和视频会使用你的助手模型或配置的 API key 进行语义解析。)
  • 每条边都有解释。 每条连接都标记为 EXTRACTED(源文件中显式存在)或 INFERRED(由 graphify 解析得出),因此你可以区分哪些是从源文件直接读取的,哪些是推理出来的。
  • 不是向量索引。 没有 embedding,没有向量存储:这是一个真正可遍历的图。你可以提出问题、追踪两个事物之间的路径、或解释一个概念。

graphify 的交互式 graph.html 界面,将 FastAPI 代码库展示为力导向知识图谱,并带有检测到的社区图例

graphify 映射的 FastAPI 代码库。每个节点是一个概念,颜色代表检测到的社区,整个图在 graph.html 中是可点击的。

快速开始(30 秒):

uv tool install graphifyy      # 安装 CLI(或:pipx install graphifyy)
graphify install               # 向你的 AI 助手注册技能

然后,在你的 AI 助手中输入:

/graphify .

就这样。你会得到三个文件

graphify-out/
├── graph.html       在浏览器中打开——可点击节点、筛选、搜索
├── GRAPH_REPORT.md  亮点:关键概念、惊人连接、建议问题
└── graph.json       完整图谱——随时查询,无需重新读取文件

支持 Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot 等 15 个以上平台——选择你的平台


实际效果

graphify 路径查询:终端显示 FastAPI 与 ModelField 之间的最短路径,答案在知识图谱中逐跳亮起

图谱构建完成后,你可以直接查询它,而不是阅读文件。以下是在上述 FastAPI 代码库上运行 graphify 的真实输出:

$ graphify explain "APIRouter"
节点: APIRouter
  来源:    routing.py L2210
  社区: 2
  度数: 47

连接 (47):
  --> RequestValidationError [uses] [INFERRED]
  --> Dependant [uses] [INFERRED]
  --> .get() [method] [EXTRACTED]
  <-- __init__.py [imports] [EXTRACTED]
  ...

$ graphify path "FastAPI" "ModelField"
最短路径 (3 跳):
  FastAPI --uses--> DefaultPlaceholder <--references-- get_request_handler() --references--> ModelField

每条边都带有置信度标签EXTRACTED = 源文件中显式存在,INFERRED = 通过解析推导得出),因此你可以区分哪些是从源文件直接读取的,哪些是推理出来的。graphify query "<question>" 对自然语言问题返回一个限定范围的子图,graphify path A B 则追踪任意两个事物之间的连接方式。


功能概览

开箱即用的功能:

能力 说明
上帝节点 连接最多的概念,让你看到所有事物流经哪里
社区 图谱按子系统分割(Leiden 算法),无需 LLM 自动生成标签
跨文件链接 通过 tree-sitter AST 在约 40 种语言中解析 calls / imports / inherits / mixes_in
查询、路径、解释 提出问题、追踪两个事物之间的路径、或解释一个概念,全部基于 graph.json
设计原理 + 文档引用 # NOTE: / # WHY: 注释和 ADR/RFC 引用成为一级节点,链接到它们解释的代码
超越代码 文档、PDF、图片、视频/音频都映射到同一个图谱中
本地优先 代码通过 tree-sitter 本地解析(无需 LLM,数据不离开你的机器);只有对文档/媒体的语义解析会调用后端,且只有在配置了后端的情况下才会调用

基准测试

基准 指标 graphify 其他系统
LOCOMO (n=300) recall@10 0.497 mem0 0.048, supermemory 0.149
LOCOMO (n=300) QA 准确率 45.3% supermemory 49.7%, mem0 27.3%
LongMemEval-S (n=50) QA 准确率 76% 与密集 RAG 持平
图谱构建 LLM 信用点消耗 0 多数系统按 token 计费

所有系统在同一框架下运行,使用相同的模型和预算,由针对第二个评判者进行盲验的评判者评分(一致性 90.6%,Cohen's kappa 0.81)。完整的每系统表格、代码智能结果和复现命令:BENCHMARKS.md


环境要求

要求 最低版本 检查 安装
Python 3.10+ python --version python.org
uv (推荐) 任意 uv --version curl -LsSf https://astral.sh/uv/install.sh | sh
pipx (备选) 任意 pipx --version pip install pipx

macOS 快速安装 (Homebrew):

brew install python@3.12 uv

Windows 快速安装:

winget install astral-sh.uv

Ubuntu/Debian:

sudo apt install python3.12 python3-pip pipx
# 或安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh

安装

官方包: PyPI 包名为 graphifyy(双 y)。PyPI 上其他名为 graphify* 的包与本项目无关。CLI 命令仍然是 graphify

步骤 1 — 安装包:

# 推荐(隔离环境;如果之后找不到 'graphify',运行:uv tool update-shell):
uv tool install graphifyy

# 替代方案:
pipx install graphifyy
pip install graphifyy  # 可能需要配置 PATH——见下方说明

步骤 2 — 向你的 AI 助手注册技能:

graphify install

就这样。打开你的 AI 助手并输入 /graphify .

若要将助手技能安装到当前仓库(而非用户配置),请添加 --project:

graphify install --project
graphify install --project --platform codex

项目级的安装会写入当前目录,例如 .claude/skills/graphify/SKILL.md.agents/skills/graphify/SKILL.md(以及技能按需加载的 references/ 侧车),并打印可提交文件的 git add 提示。支持项目级安装的平台命令也接受相同的标志,例如 graphify claude install --projectgraphify codex install --project

PowerShell 注意: 请使用 graphify . 而非 /graphify .——在 PowerShell 中,前导斜杠是路径分隔符。

graphify: command not found? uv tool install / pipx installgraphify 命令放入其工具 bin 目录(~/.local/bin)。如果你刚安装后 shell 找不到它——这在全新的 macOS + zsh 环境中很常见——说明该目录尚未加入你的 PATH:运行 uv tool update-shell(或 pipx ensurepath),然后打开一个新终端。使用普通 pip 时,请将 ~/.local/bin(Linux)或 ~/Library/Python/3.x/bin(Mac)添加到你的 PATH,或运行 python -m graphify

使用 uvx / uv tool run 而不是安装? 请指定包名,而非命令名:uvx --from graphifyy graphify install。直接使用 uvx graphify … 会失败(No solution found … no versions of graphify),因为 uv tool run 将第一个词视为包名,而包名是 graphifyy——graphify 命令位于其中。

尽量避免在 Mac/Windows 上使用 pip install 该技能在运行时从 graphify-out/.graphify_python 解析 Python;如果该路径指向的环境与 pip 安装包的环境不同,你会遇到 ModuleNotFoundError: No module named 'graphify'uv tool installpipx install 将包隔离在它们自己的环境中,完全避免了这个问题。

Git hooks 和 uv tool / pipx: graphify hook install 在安装时将当前解释器路径直接嵌入到 hook 脚本中,因此即使在 GUI git 客户端和 CI 运行器中(~/.local/bin 不在 PATH 上),post-commit hook 也能正确触发。如果你重新安装或升级 graphify,请重新运行 graphify hook install 以刷新嵌入的路径。

选择你的平台(20+ 个助手,点击展开)
平台 安装命令
Claude Code (Linux/Mac) graphify install
Claude Code (Windows) graphify install (自动检测) 或 graphify install --platform windows
CodeBuddy graphify install --platform codebuddy
Codex graphify install --platform codex
OpenCode graphify install --platform opencode
Kilo Code graphify install --platform kilo
GitHub Copilot CLI graphify install --platform copilot
VS Code Copilot Chat graphify vscode install
Aider graphify install --platform aider
OpenClaw graphify install --platform claw
Factory Droid graphify install --platform droid
Trae graphify install --platform trae
Trae CN graphify install --platform trae-cn
Gemini CLI graphify install --platform gemini
Hermes graphify install --platform hermes
Kimi Code graphify install --platform kimi
Amp graphify amp install
Agent Skills (跨框架) graphify install --platform agents (别名 --platform skills)
Kiro IDE/CLI graphify kiro install
Pi coding agent graphify install --platform pi
Cursor graphify cursor install
Devin CLI graphify devin install
Google Antigravity graphify antigravity install

Codex 用户还需要在 ~/.codex/config.toml[features] 下设置 multi_agent = true 才能进行并行提取。CodeBuddy 使用与 Claude Code 相同的 Agent 工具和 PreToolUse hook 机制。Factory Droid 使用 Task 工具进行并行子代理调度。OpenClaw 和 Aider 使用顺序提取(这些平台上对并行代理的支持仍处于早期阶段)。Trae 使用 Agent 工具进行并行子代理调度,但不支持 PreToolUse hook,因此 AGENTS.md 是始终在线的机制。

--platform agents(别名 --platform skills)针对通用跨框架 Agent-Skills 位置:标准全局 ~/.agents/skills/(由 npx skills 和符合标准的框架读取)用于全局安装,以及 ./.agents/skills/ 用于项目(--project)安装。裸 graphify install 默认保持单平台(Claude Code)——当你希望技能能被任何读取 .agents/skills 的框架发现时,请使用命名的 agents 平台。

Codex 使用 $graphify 而不是 /graphify

可选扩展(仅安装你需要的)
扩展 功能 安装
pdf PDF 提取 uv tool install "graphifyy[pdf]"
office .docx.xlsx 支持 uv tool install "graphifyy[office]"
google Google Sheets 渲染 uv tool install "graphifyy[google]"
video 视频/音频转录 (faster-whisper + yt-dlp) uv tool install "graphifyy[video]"
mcp MCP stdio 服务器 uv tool install "graphifyy[mcp]"
neo4j Neo4j 推送支持 uv tool install "graphifyy[neo4j]"
falkordb FalkorDB 推送支持 uv tool install "graphifyy[falkordb]"
svg SVG 图谱导出 uv tool install "graphifyy[svg]"
leiden Leiden 社区检测(仅 Python < 3.13) uv tool install "graphifyy[leiden]"
ollama Ollama 本地推理 uv tool install "graphifyy[ollama]"
openai OpenAI / OpenAI 兼容 API uv tool install "graphifyy[openai]"
gemini Google Gemini API uv tool install "graphifyy[gemini]"
anthropic Anthropic Claude API(--backend claude,使用 ANTHROPIC_API_KEY uv tool install "graphifyy[anthropic]"
bedrock AWS Bedrock(使用 IAM,无需 API key) uv tool install "graphifyy[bedrock]"
azure Azure OpenAI Service(--backend azure,使用 AZURE_OPENAI_API_KEY + AZURE_OPENAI_ENDPOINT uv tool install "graphifyy[openai]"
sql SQL schema 提取 uv tool install "graphifyy[sql]"
postgres 实时 PostgreSQL 内省(--postgres DSN uv tool install "graphifyy[postgres]"
dm BYOND DreamMaker .dm/.dme AST 提取(如果平台没有匹配的 wheel,可能需要 C 编译器和 python3-dev uv tool install "graphifyy[dm]"
terraform Terraform / HCL .tf/.tfvars/.hcl AST 提取 uv tool install "graphifyy[terraform]"
pascal Pascal / Delphi .pas/.dpr/.dpk/.inc AST 提取(更准确的 calls/inherits 边;缺失时回退到正则提取器) uv tool install "graphifyy[pascal]"
chinese 中文查询分词 (jieba) uv tool install "graphifyy[chinese]"
all 以上所有 uv tool install "graphifyy[all]"

让你的助手始终使用图谱

在构建图谱后,在项目中运行一次此命令:

平台 命令
Claude Code graphify claude install
CodeBuddy graphify codebuddy install
Codex graphify codex install
OpenCode graphify opencode install
Kilo Code graphify kilo install
GitHub Copilot CLI graphify copilot install
VS Code Copilot Chat graphify vscode install
Aider graphify aider install
OpenClaw graphify claw install
Factory Droid graphify droid install
Trae graphify trae install
Trae CN graphify trae-cn install
Cursor graphify cursor install
Gemini CLI graphify gemini install
Hermes graphify hermes install
Kimi Code graphify install --platform kimi
Amp graphify amp install
Agent Skills (跨框架) graphify agents install (别名 graphify skills install)
Kiro IDE/CLI graphify kiro install
Pi coding agent graphify pi install
Devin CLI graphify devin install
Google Antigravity graphify antigravity install

这会写入一个小的配置文件,告诉你的助手在回答代码库问题时查阅知识图谱,优先使用 graphify query "<question>" 这样的范围查询,而不是读取完整报告或 grep 原始文件。

  • Hook 平台(Claude Code、Gemini CLI):在搜索类工具调用之前自动触发 hook(在 Claude Code 上,在通过 Read/Glob 工具逐个读取源文件之前也会触发),引导你的助手走向图谱路径。
  • 指令文件平台(Codex、OpenCode、Cursor 等):持久化的指令文件(AGENTS.md.cursor/rules/ 等)提供相同的查询优先指导。

GRAPH_REPORT.md 仍然可用于广泛的架构审查。

CodeBuddy 做两件与 Claude Code 相同的事:写入 CODEBUDDY.md 部分,告诉 CodeBuddy 在回答架构问题前先读取 graphify-out/GRAPH_REPORT.md,并安装 PreToolUse hooks(.codebuddy/settings.json),这些 hook 在 Bash 搜索命令和文件读取之前触发,引导助手使用 graphify query 而非其他方式。

Codex 写入 AGENTS.md,并在 .codex/hooks.json 中安装一个 PreToolUse hook,在每次 Bash 工具调用之前触发,机制与 Claude Code 一样始终在线。

Kilo Code 将 Graphify 技能安装到 ~/.config/kilo/skills/graphify/SKILL.md,并将原生的 /graphify 命令安装到 ~/.config/kilo/command/graphify.mdgraphify kilo install 还会写入 AGENTS.md 以及一个原生的 tool.execute.before 插件(.kilo/plugins/graphify.js + .kilo/kilo.json.kilo/kilo.jsonc 注册),使 Kilo 通过原生 .kilo 配置获得相同的始终在线图谱提醒行为。

Cursor 写入 .cursor/rules/graphify.mdc,其中包含 alwaysApply: true,因此 Cursor 会自动将其包含在每次对话中,无需 hook。

要一次性从所有平台移除 graphify:graphify uninstall(添加 --purge 也会删除 graphify-out/)。或者使用平台特定命令(例如 graphify claude uninstall)。


报告内容

  • 上帝节点——项目中连接最多的概念。所有事物都流经它们。
  • 惊人连接——存在于不同文件或模块中的事物之间的链接。按意外程度排序。
  • “为什么”——内联注释(# NOTE:# WHY:# HACK:)、文档字符串以及来自文档的设计原理都被提取为单独的节点,链接到它们解释的代码。
  • 建议问题——4-5 个图谱特别适合回答的问题。
  • 置信度标签——每个推理关系都标记为 EXTRACTEDINFERREDAMBIGUOUS。你始终知道哪些是找到的,哪些是猜测的。

支持的文件类型

类型 扩展名
代码(36 种 tree-sitter 语法) .py .ts .mts .cts .js .jsx .tsx .mjs .go .rs .java .c .cpp .cc .cxx .h .hpp .cu .cuh .metal .rb .cs .kt .kts .scala .php .swift .lua .luau .toc .zig .ps1 .psm1 .psd1 .ex .exs .m .mm .jl .vue .svelte .astro .groovy .gradle .dart .v .sv .svh .sql .f .f90 .f95 .f03 .f08 .pas .pp .dpr .dpk .lpr .inc .dfm .lfm .lpk .sh .bash .json .dm .dme .dmi .dmm .dmf .sln .slnx .csproj .fsproj .vbproj .xaml .razor .cshtml.dm/.dme 需要 uv tool install graphifyy[dm].mts/.cts 复用 TypeScript 语法,.cc/.cxx、CUDA .cu/.cuh 和 Metal .metal 复用 C++ 语法)
Salesforce Apex .cls .trigger(基于正则表达式;类、接口、枚举、方法、触发器、SOQL/DML 边)
Terraform / HCL .tf .tfvars .hcl(需要 uv tool install graphifyy[terraform]
MCP 配置 .mcp.json mcp.json mcp_servers.json claude_desktop_config.json —— 提取服务器节点、包引用、环境变量要求
包清单 apm.yml pyproject.toml go.mod pom.xml —— 每个包一个标准包节点(按名称),加上 depends_on 边,因此从多个清单引用的包是一个中心枢纽
文档 .md .mdx .qmd .html .txt .rst .yaml .yml(markdown [text](./other.md) 链接和 [[wikilinks]] 成为文档之间的 references 边)
Office .docx .xlsx(需要 uv tool install graphifyy[office]
Google Workspace .gdoc .gsheet .gslides(可选;需要 gws 认证和 --google-workspace;Sheets 需要 uv tool install graphifyy[google]
PDF .pdf
图片 .png .jpg .webp .gif
视频 / 音频 .mp4 .mov .mp3 .wav 等(需要 uv tool install graphifyy[video]
YouTube / URL 任何视频 URL(需要 uv tool install graphifyy[video]

代码提取在本地完成,无需 API 调用(通过 tree-sitter 进行 AST 解析)。其他所有内容通过你的 AI 助手的模型 API 处理。

Google Drive for desktop 的 .gdoc.gsheet.gslides 文件是指针快捷方式,而非文档内容。要在无头提取中包含原生 Google 文档、表格和幻灯片,请安装并认证 gws CLI,然后运行:

uv tool install "graphifyy[google]"  # Google Sheets 表格渲染需要
gws auth login -s drive
graphify extract ./docs --google-workspace

你也可以设置 GRAPHIFY_GOOGLE_WORKSPACE=1。Graphify 将快捷方式导出到 graphify-out/converted/ 作为 Markdown 侧车文件,然后提取这些文件。


常用命令

/graphify .                        # 为当前文件夹构建图谱
/graphify ./docs --update          # 仅重新提取已更改的文件
/graphify . --cluster-only         # 不重新提取,只重新运行聚类
/graphify . --cluster-only --resolution 1.5      # 更细粒度的社区
/graphify . --cluster-only --exclude-hubs 99     # 抑制工具性超级枢纽出现在上帝节点排名中
/graphify . --no-viz               # 跳过 HTML,只生成报告 + JSON
/graphify . --wiki                 # 从图谱构建 markdown wiki
graphify export callflow-html      # Mermaid 架构/调用流 HTML(如果安装了 hook,每次 git commit 时自动重新生成)

/graphify query "what connects auth to the database?"
/graphify path "UserService" "DatabasePool"
/graphify explain "RateLimiter"

/graphify add https://arxiv.org/abs/1706.03762   # 获取论文并添加
/graphify add <youtube-url>                       # 转录并添加视频

graphify hook install              # 在 git commit 时自动重建
graphify merge-graphs a.json b.json              # 合并两个图谱

graphify prs                       # PR 面板:CI 状态、审查状态、工作树映射
graphify prs 42                    # 深入分析 PR #42 及其图谱影响
graphify prs --triage              # AI 排序你的审查队列(使用已配置的后端)
graphify prs --conflicts           # 共享图谱社区的 PR——合并顺序风险

请参阅下面的完整命令参考


忽略文件

在项目根目录创建 .graphifyignore——语法与 .gitignore 相同,包括 ! 否定。

.gitignore 会自动被尊重。 graphify 读取每个目录的 .gitignore。如果同时存在 .graphifyignore,两者会合并——.graphifyignore 模式最后评估,因此在冲突时优先(包括 ! 否定)。添加 .graphifyignore 只会排除更多文件;它永远不会重新包含 .gitignore 已排除的文件。子目录作用域与 git 相同——忽略文件只影响其自己的子树。

# .graphifyignore
node_modules/
dist/
*.generated.py

# 只索引 src/,忽略其他所有
*
!src/
!src/**

团队设置

开源项目Graphify-Labs2026-07-13原文

相关内容