Graphify:把整个项目编成一张图,让 Claude Code 别再每次「失忆」
数字游民的早晨是这样的:
- 打开笔记本,泡一杯咖啡
- 启动 Claude Code,问它「上周我那个 Safari 视频下载脚本错在哪」
- Claude 一脸无辜:「我看不到你的项目,请粘贴相关文件」
我深吸一口气,把 200 多个文件、几千行代码粘贴进去。Claude 开始逐个读。 30 秒、1 分钟、3 分钟 —— 终于读完了,开始给我写答案。
而我最火大的是:「上周我已经让它读过这个项目了,今天为什么又读一遍?」
直到我刷到 GitHub Trending 看到 safishamsi/graphify,22k 星,单日涨 319。看标题我就知道今天咖啡钱省了 ——
Type
/graphifyin your AI coding assistant and it maps your entire project into a knowledge graph you can query instead of grepping through files.
装上跑了一天,结论直接:「Claude Code 失忆症」有药了。
解决的问题:上下文重建的浪费
先说为什么这事重要。
Claude Code、Codex、Cursor 这些 AI 编码工具没有真正的项目记忆。每次你新开一个 session,它会重新读你的 CLAUDE.md、再视情况 Read 几个文件。问题是:
- 你之前已经让 AI 读过的文件 —— 今天再开 session 它还是空白
- 你 50 个文件的项目 ——AI 第一次回答就要把其中关键几个全部读一遍
- 多模态资料 ——PDF 论文、Markdown 笔记、设计稿 ——AI 根本不会主动去翻
结果就是:每个 session 都在付一次「项目理解税」。我看了下自己的账单,光是「让 Claude 重新读老项目」就占了我一周 Claude Code 流量的 30%。
Graphify 的解法很简单也很狠:把项目一次性编成一张图,存到本地,AI 每次启动时只读这张图就行。
它怎么做的:三遍扫描
Graphify 的核心是三遍处理流程,作者叫它 “3 Passes”:
Pass 1:纯本地,0 token 消耗
这遍用 tree-sitter 走 AST 解析代码,完全在你机器上跑,不调任何大模型。支持 20+ 编程语言,把所有函数、类、变量、依赖关系抽出来,组成一张「骨架图」。
- 好处:零 token 成本
- 适用:纯代码项目
- 时间:1 万行代码大概 10 秒
Pass 2:本地嵌入,结构化聚类
把图节点做向量化(用的是本地 sentence-transformers),然后跑社区检测算法(Leiden),把图分成几个「社区」—— 基本上就是自动识别出你项目的模块划分。
Pass 3:调一次 LLM,补语义
只有这遍会调大模型,而且只调一次。它让 LLM 阅读 GRAPH_REPORT.md 草稿,补充概念、关系、命名建议,输出最终报告。
整个流程只在 Pass 3 花一次 token,之后所有 session 都直接读缓存的图。算总账:一次性成本 vs 每天都在重复的「重建上下文」,量级完全不同。
输出长什么样
跑完 /graphify ./my-project 之后,会得到一个 graphify-out/ 目录:
1 | graphify-out/ |
graph.html 长这样(直接浏览器打开看):
节点是函数、类、文档、概念;边是调用、引用、继承、依赖关系。每个节点点击展开看定义,可以跳到原文件、可以搜「谁调用了我」。
GRAPH_REPORT.md 才是重点 —— 它会被自动注入到 Claude Code 的 PreToolUse hook,Claude 每次启动 session 第一件事就是读它。也就是说:
Claude 不再「我看不到你的项目」了。它看到的开场白是:「这是你的项目结构:12 个模块、核心实体 User/Order/Payment、依赖:Express + Prisma、关键风险:Payment 模块没有测试覆盖。」
这比粘贴 200 个文件省的不是一点半点。
数字:71.5x 是怎么来的
Graphify 在 Reddit 上了 r/ClaudeCode 热门,核心论点是「71.5x token reduction」。
但你得会读这个数字。
作者的 71.5x 基准是这么算的:
假设你要让 AI 回答关于项目的问题,「不用 Graphify」的最坏情况 = 把所有文件粘贴进 context;「用 Graphify」 = 只读 GRAPH_REPORT.md。两者 token 数相差 71.5 倍。
这对比方式有点极端 —— 没人真把整个项目粘贴进 context。实际场景下:
| 场景 | 不用 Graphify | 用 Graphify | 实际节省 |
|---|---|---|---|
| 10 个问题 session(代码项目) | 120k tokens | 113k tokens | ~7-8% |
| 50 个问题 session(混合代码 + 文档) | 480k | 195k | ~60% |
| 1 次性大查询(要理解整个项目) | 200k(粘文件) | 3k(读报告) | ~67x |
| 每天 5 个 session、长期使用 | 持续付「重建税」 | 一次性建设 | 边际成本接近 0 |
真正赚的是第三、第四种场景 —— 当你的问题需要跨多个文件、需要理解项目宏观结构、或者你需要让 AI 记住「上周聊过什么」时,Graphify 才显示出威力。
我自己的实际数据(我那个视频下载项目,~3 万行 TS):
- 不用 Graphify:每个 session 8-12k tokens 用于「读项目」
- 用了 Graphify:每个 session 1.5-2k tokens 用于「读图」
- 节省:~80%
考虑到我每天开 5-8 个 session,这钱省得很实在。
安装:注意拼写陷阱
Graphify 是个 skill,但也是个 CLI。装的时候有个坑作者专门在文档里警告过:
1 | # ❌ 这是错的——会装到同名但完全不相关的包 |
然后在 Claude Code 里启用:
1 | graphify install --project |
它会把 graphify skill 装到 .claude/skills/ 下,重启 Claude Code 后会自动加载 PreToolUse hook。
支持的客户端(基本覆盖主流):
- Claude Code / Claude Code CLI
- OpenAI Codex / Codex CLI
- OpenCode
- Cursor
- Gemini CLI
- GitHub Copilot CLI / VS Code Copilot
- Aider
- Amp
- Hermes
- Kiro
- Devin CLI
- Google Antigravity
- …… 还有 6 个我没听过的
我踩的两个坑
坑 1:第一次用要在项目里跑一遍
Graphify 不是热加载的 —— 你要先在项目根目录跑一次 /graphify,生成图,之后才有效果。如果你的项目是私人代码不想上传到任何地方,完全 OK——Pass 1 全部本地,Pass 3 走的也是你自己配置的 LLM 端点(OpenAI / Anthropic / 本地 Ollama 都行)。这个隐私设计是 Graphify 比很多同类工具好的地方。
坑 2:图要增量更新
我一开始以为「一劳永逸」—— 跑一次就完事。错。 改完代码要跑 graphify update,或者让 Claude Code 用一个 UpdateGraph 工具自动更新(默认开启)。否则图会慢慢和代码不同步,AI 给你的答案基于过时的理解。
我的实操:在 .git/hooks/post-commit 加一句 graphify update --quiet,每次 commit 自动更新图。
和其他方案的对比
| 方案 | 思路 | 适合场景 | 不足 |
|---|---|---|---|
| RAG / 向量检索 | 把文件切片做嵌入 | 文档类项目 | 代码项目不准 ——process_payment 和 validate_card 在向量空间不相邻,但在调用图里相邻 |
| CLAUDE.md / AGENTS.md | 人写项目说明 | 简单项目 | 写得累,且大模型经常忽略长说明 |
| Headroom(我之前写的) | 压缩工具输出 | 已经有项目、要省 token | 不解决「AI 不了解项目」 |
| Graphify | 把项目编成图 | 任何规模的项目 | 一次性建设成本(约 1-5 分钟) |
我自己目前的组合是:Graphify + Headroom—— 前者解决「AI 知道什么」,后者解决「AI 调用工具时吐回太多」。
最后
数字游民最大的成本不是咖啡,是重复劳动。我经常一天内要切 4-5 个项目,每个都让 AI 重新读一遍,相当于我天天在为同一份理解重复付钱。
Graphify 这种工具的本质是把 AI 编码从「现场理解」变成「查询式编码」——AI 不再从零开始读你的项目,而是带着一份「项目地图」上线,问什么答什么,不用每次都摸黑探索。
2026 年用 AI 编码,不能只优化 prompt,还得优化上下文。 工具在升级,玩法在升级,我们这种「AI 重度用户」的工作流也得跟着升级。
仓库:github.com/safishamsi/graphify(22k stars,单日 +319)
文档站:graphify.net
附录:我的 Graphify 工作流
1 | # 1. 安装 |
跑了一周,单日 token 消耗从 180k 降到 75k 左右,砍掉 58%。和 Headroom 叠加之后,账单从月初 87 美元降到月底 31 美元。