Graphify:支持多语言与多平台的AI编码助手知识图谱工具,功能强大且隐私有保障!
支持语言
Graphify支持多种语言,包括英语、简体中文、日语、韩语、德语、法语、西班牙语、印地语、葡萄牙语、俄语、阿拉伯语、波斯语、意大利语、波兰语、荷兰语、土耳其语、乌克兰语、越南语、印尼语、瑞典语、希腊语、罗马尼亚语、捷克语、芬兰语、丹麦语、挪威语、匈牙利语、泰语、乌兹别克语、繁体中文、菲律宾语。
功能介绍
在AI编码助手里输入 `/graphify`,它会将整个项目(包括代码、文档、PDF、图片、视频等)映射成一个知识图谱,可对其进行查询,无需在文件里逐行搜索。该功能适用于Claude Code、Codex、OpenCode、Kilo Code、Cursor、Gemini CLI、GitHub Copilot CLI、VS Code Copilot Chat、Aider、Amp、OpenClaw、Factory Droid、Trae、Hermes、Kimi Code、Kiro、Pi、Devin CLI和Google Antigravity等。输入 `/graphify` 后,会得到三个文件:`graphify-out/` 目录下的 `graph.html`(可在任意浏览器中打开,支持点击节点、过滤和搜索)、`GRAPH_REPORT.md`(包含项目的关键信息,如核心概念、意外关联和建议问题)、`graph.json`(完整的知识图谱,可随时查询,无需重新读取文件)。若要生成带有Mermaid调用流程图的易读架构页面,可运行:`graphify export callflow-html`。
前提条件
使用Graphify需要满足以下前提条件: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` 或 `curl -LsSf https://astral.sh/uv/install.sh | sh`。
安装步骤
安装步骤分为两步,首先安装官方包,PyPI上的包名为 `graphifyy`(双y),其他 `graphify*` 包与此无关,CLI命令仍为 `graphify`。推荐方式(隔离环境)是使用 `uv tool install graphifyy`,若安装后找不到 `graphify`,可运行 `uv tool update-shell`;其他方式有 `pipx install graphifyy` 或 `pip install graphifyy`(可能需要设置PATH)。然后向AI助手注册技能,使用 `graphify install`。完成上述步骤后,打开AI助手并输入 `/graphify` 即可。若要将助手技能安装到当前仓库而非用户配置文件,可添加 `--project` 参数,如 `graphify install --project` 或 `graphify install --project --platform codex`。在PowerShell中使用 `graphify .` 而非 `/graphify .`。若遇到 `graphify: command not found` 问题,`uv tool install` 或 `pipx install` 会将 `graphify` 命令安装到工具的bin目录(如 `~/.local/bin`),若安装后shell找不到该命令,可运行 `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`。尽量避免在Mac/Windows上使用 `pip install`,因为可能会出现 `ModuleNotFoundError: No module named 'graphify'` 错误,`uv tool install` 和 `pipx install` 可避免此问题。
平台安装命令
不同平台有不同的安装命令,如Claude Code(Linux/Mac)使用 `graphify install`;Claude Code(Windows)使用 `graphify install`(自动检测)或 `graphify install --platform windows` 等。Codex用户还需在 `~/.codex/config.toml` 的 `[features]` 下设置 `multi_agent = true` 以进行并行提取。CodeBuddy使用与Claude Code相同的Agent工具和PreToolUse钩子机制。Factory Droid使用Task工具进行并行子代理调度。OpenClaw和Aider使用顺序提取。Trae使用Agent工具进行并行子代理调度,不支持PreToolUse钩子,`AGENTS.md` 是始终启用的机制。`--platform agents`(别名 `--platform skills`)针对通用的跨框架Agent - Skills位置,全局安装时使用规范中的用户全局 `~/.agents/skills/`,项目安装(`--project`)时使用 `./.agents/skills/`。默认的 `graphify install` 设计为单平台(Claude Code),若希望任何读取 `.agents/skills` 的框架都能发现该技能,可使用命名的 `agents` 平台。Codex使用 `$graphify` 而非 `/graphify`。
可选扩展
可以根据需求安装多种扩展,如pdf(PDF提取)、office(.docx和.xlsx支持)、google(Google Sheets渲染)等,安装命令均为 `uv tool install "graphifyy[扩展名]"`。
使用知识图谱
在项目中构建知识图谱后,可运行特定命令让助手始终使用该图谱,不同平台有不同的命令。这些命令会写入一个小配置文件,告知助手在处理代码库问题时优先查询知识图谱。在支持带有有效负载钩子的平台(Claude Code、Gemini CLI)上,搜索式工具调用前会自动触发钩子;在其他平台(Codex、OpenCode、Cursor等)上,持久指令文件提供相同的优先查询指导。`GRAPH_REPORT.md` 仍可用于全面的架构审查。CodeBuddy与Claude Code类似,会写入 `CODEBUDDY.md` 部分,安装PreToolUse钩子。Codex会写入 `AGENTS.md`,并在 `.codex/hooks.json` 中安装PreToolUse钩子。若要一次性从所有平台移除 `graphify`,可使用 `graphify uninstall`(添加 `--purge` 还会删除 `graphify-out/`),也可使用特定平台的命令。Kilo Code会将Graphify技能安装到 `~/.config/kilo/skills/graphify/SKILL.md`,并将原生 `/graphify` 命令安装到 `~/.config/kilo/command/graphify.md`。Cursor会写入 `.cursor/rules/graphify.mdc`,并设置 `alwaysApply: true`。
报告内容
报告内容包括核心节点(项目中连接最多的概念,所有内容围绕这些节点展开)、意外关联(不同文件或模块之间的链接,按意外程度排序)、原因解释(内联注释、文档字符串和设计原理会作为单独的节点提取,并与所解释的代码关联)、建议问题(知识图谱能够独特解答的4 - 5个问题)、置信标签(每个推断的关系都会标记为 `EXTRACTED`、`INFERRED` 或 `AMBIGUOUS`)。
支持的文件类型
Graphify支持多种文件类型,如代码(36种tree - sitter语法)、Salesforce Apex、Terraform / HCL、MCP配置、包清单、文档、办公文档、Google Workspace、PDF、图片、视频/音频、YouTube / URL等。不同文件类型有不同的处理要求,如 `.dm/.dme` 需要 `uv tool install graphifyy[dm]`;Google Workspace文件需要gws认证和 `--google - workspace` 等。代码会在本地提取,无需API调用;其他文件会通过AI助手的模型API处理。
常用命令
常用命令包括 `/graphify .`(为当前文件夹构建知识图谱)、`/graphify ./docs --update`(仅重新提取更改的文件)等多种命令,每个命令都有其特定的功能。
忽略文件
在项目根目录创建 `.graphifyignore` 文件,语法与 `.gitignore` 相同,包括 `!` 取反。`.gitignore` 会自动生效,`graphify` 会读取每个目录中的 `.gitignore`。若同时存在 `.graphifyignore`,两者会合并,`.graphifyignore` 模式最后评估,因此在冲突时优先。添加 `.graphifyignore` 只会排除更多文件,不会重新包含 `.gitignore` 已排除的文件。子目录作用范围与git相同,忽略文件仅影响其自身子树。
团队设置
`graphify-out/` 建议提交到git,以便团队成员都能获得项目地图。推荐在 `.gitignore` 中添加 `graphify-out/cost.json`(仅本地使用)和 `graphify-out/cache/`(可选:提交以提高速度,跳过以保持仓库小)。`manifest.json` 现在具有可移植性,提交它可避免首次检出时的完整重建。工作流程为一人运行 `/graphify .` 并提交 `graphify-out/`,其他人拉取后,其助手会立即读取知识图谱。运行 `graphify hook install` 可在每次提交后自动重建,还会设置git合并驱动,确保 `graph.json` 不会出现冲突标记。文档或论文更改时,运行 `/graphify --update` 刷新节点。
直接使用知识图谱
可以从终端查询知识图谱,将知识图谱作为MCP服务器暴露,向Kimi Code注册,通过HTTP服务让团队共享一个URL。MCP服务器为助手提供结构化访问,支持多种操作。默认的 `--transport stdio` 为每个开发者启动一个本地服务器,`--transport http` 通过MCP Streamable HTTP传输提供相同工具,单个共享进程可为整个团队服务。
命令行标志
命令行标志包括 `--transport {stdio,http}`(服务传输方式,默认 `stdio`)、`--host`(HTTP绑定主机,默认 `127.0.0.1`)等多种标志,每个标志都有其默认值和用途。默认的 `127.0.0.1` 绑定仅为回环地址,在共享主机上暴露时,需同时设置 `--host 0.0.0.0` 和 `--api-key`。可在容器中运行,WSL / Linux注意事项为Ubuntu预装 `python3` 而非 `python`,建议使用虚拟环境避免冲突。
环境变量
这些环境变量仅在无头/CI提取(`graphify extract`)时需要。在IDE中通过 `/graphify` 技能运行时,模型API由IDE会话提供,无需额外密钥。环境变量包括 `ANTHROPIC_API_KEY`(Claude(Anthropic)后端)、`GEMINI_API_KEY` 或 `GOOGLE_API_KEY`(Google Gemini后端)等多种变量,每个变量都有其用途和需要的条件。
隐私保护
Graphify在隐私保护方面有相应措施,代码文件通过tree - sitter在本地处理,不会离开本地机器;视频/音频使用 `faster-whisper` 在本地转录,不会离开本地机器;文档、PDF、图片通过 `/graphify` 技能发送到AI助手进行语义提取,无头 `graphify extract` 需要相应的API密钥。`graphify extract` 根据设置的API密钥自动检测使用的提供商,对于有数据驻留要求的代码,可使用 `--backend ollama` 或传递显式的 `--backend` 标志。Kimi(`MOONSHOT_API_KEY`)路由到中国的Moonshot AI服务器,无遥测、使用跟踪和分析。每个 `graphify query`、`graphify path`、`graphify explain` 和MCP `query_graph` 调用都会记录到 `~/.cache/graphify-queries.log`,可设置 `GRAPHIFY_QUERY_LOG_DISABLE=1` 退出,或 `GRAPHIFY_QUERY_LOG=/dev/null` 静音但不禁用代码路径。
故障排除
若安装后找不到 `graphify` 命令,CLI已安装,但bin目录未添加到shell的PATH中。根据安装方式选择修复方法,uv(`uv tool install graphifyy`)安装时,命令安装到uv的工具bin目录(`~/.local/bin`),新的macOS/zsh设置可能未将其添加到PATH,运行 `uv tool update-shell`,然后打开新的终端。(可使用 `uv tool dir --bin` 查找)