关于 graphify
graphify 是一款基于命令行的 Agent 技能,为源文件、符号及其关系建立结构化索引。开发者和编码 Agent 可查询索引定位代码,并在编辑后手动更新。
主要功能
- 01基于 AST 建立代码结构索引
- 02不区分大小写搜索符号
- 03增量更新及基于 Git 差异的更新
- 04支持 13 种编程语言
适用场景
- 01探索不熟悉的代码库并查找符号
- 02在广泛文本搜索前定位代码
- 03代码编辑后刷新索引
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ howell5/ willhong-skills --skill graphify安装后在 Claude Code 中输入/graphify确认已加载。
详细介绍
graphify — 代码导航层
代码库的结构化索引。在搜索代码之前,了解其中包含什么、位于何处,以及彼此之间如何关联。
需要 CLI: npm i -g graphify-ts(使用 Bun 运行时)。
仅手动更新。 图不会自动刷新——当你需要更新索引时,由你或用户运行 graphify update 或 graphify build。这可避免在 git 工作树和其他多会话设置中发生写入冲突。
首次设置(每台机器仅需一次)
npm i -g graphify-ts # install CLI
然后,每个项目运行一次:
graphify build .
之后,只要索引与代码不一致,就手动刷新(参见下文的 graphify update)。
命令
/graphify build — 构建索引(首次构建或完整重建)
graphify build .
扫描所有源文件,提取 AST 结构,并保存到 graphify-out/graph.json。
报告:“已为 {files} 个文件、{nodes} 个符号和 {edges} 个关系建立索引”
/graphify query <name> — 搜索符号
graphify query graphify-out/graph.json <name>
不区分大小写地搜索。返回匹配的符号及其文件位置。
/graphify update <files...> — 编辑后增量更新
graphify update graphify-out/graph.json <file1> [file2...]
仅重新提取指定文件。如果你计划在同一会话中再次查询图,请在编辑代码后运行此命令。
/graphify auto-update — 根据 git diff 批量更新
graphify auto-update [dir]
通过 git diff 和未跟踪文件计算发生变更的代码文件,然后调用 updateIndex。没有需要处理的内容时不会输出任何信息。批量编辑后,无需逐一指定文件即可刷新索引。
适用场景
搜索代码之前: 如果 graphify-out/graph.json 存在,请先查询它,再使用 Glob 或 Grep。图会告诉你哪些文件包含哪些符号。这是它的主要价值——用结构化查找取代盲目的关键词搜索。
编辑之后: 如果你要在同一会话中再次查询图,请运行 graphify update <edited-files>(批量刷新时可运行 graphify auto-update)。否则无需操作——下次运行 graphify build 或更新时,索引会跟上代码变更。
探索不熟悉的代码: 运行 /graphify query <concept>,无需猜测文件名即可找到入口点。
支持的语言
Python、JavaScript、TypeScript(JSX/TSX)、Go、Rust、Java、C、C++、Ruby、C#、Kotlin、Scala、PHP
图输出
保存为 graphify-out/graph.json:
{
"nodes": [{ "id": "main::app", "label": "App", "sourceFile": "main.py", "sourceLocation": "main.py:5" }],
"edges": [{ "source": "file::main", "target": "main::app", "relation": "contains", "confidence": "EXTRACTED" }],
"metadata": { "files": 10, "nodes": 45, "edges": 62 }
}
边关系:contains、method、imports、imports_from、calls(INFERRED)、inherits