你有没有过这种感觉:每次打开 Claude Code,输入需求,然后……就是漫长的等待。
Explore(Explore /src/api/ structure)
Done (24 tool uses · 40.0k tokens · 59s)
Explore(Explore /src/components/ structure)
Done (32 tool uses · 57.0k tokens · 1m26s)
Explore(Explore /src/database/ structure)
Done (18 tool uses · 33.0k tokens · 51s)
光是探索项目结构,60 次工具调用,消耗近 16 万 token,时间花去将近 2 分钟——而真正的开发任务还没开始呢。这就像每天打车上班,司机都得先把整条街开一遍“熟悉路况”,然后才送你去公司,全然不记得昨天走过同样的路。
Claude Code 就像这个会“失忆”的司机。每开一个新会话,之前积累的对代码库的理解就清零了,一切从头开始。关掉会话,之前付出的 Token “学费”也就白交了。今天介绍的工具 CodeGraph,就是为了给这位司机配上一张随身的地图。
CodeGraph 是什么:为你的代码库绘制知识图谱
CodeGraph 的核心思路非常直接:与其让 Claude Code 每次会话都像盲人摸象一样重新探索,不如提前将代码库的“关系图”绘制好,存储在本地。它利用 tree-sitter 解析你的源代码,提取所有重要的代码实体——函数、类、方法、接口、类型、变量,并理清它们之间的关系:
- 谁调用了谁(函数 A 调用了函数 B)
- 谁继承了谁(类 Dog 继承了类 Animal)
- 谁实现了谁(UserService 实现了 IUserService 接口)
- 谁引用了谁(文件 A import 了文件 B 的内容)
这些结构化的关系和实体信息会被存入本地的 SQLite数据库,并辅以向量嵌入以实现语义搜索。本质上,它构建了一张属于你项目的代码知识图谱。打个比方:你的代码库是一座城市,Claude Code 以前只能靠步行摸索每条街道;现在,CodeGraph 直接给了它一张高德地图。
效果对比:安装前后的真实数据
原文作者 Colby McHenry 在同一个项目中,使用相同的复杂任务进行了 3 次对比测试,结果如下:
| 指标 |
没有 CodeGraph |
有 CodeGraph |
变化 |
| Explore 阶段 Token |
~130k |
~69.4k |
减少约 30% |
| 工具调用次数 |
~74 次 |
~56 次 |
减少约 25% |
| 探索耗时 |
~2m16s |
~1m57s |
明显缩短 |
你可能会觉得 30% 不算多,但这是每次新会话都要缴纳的“过路费”。假设一天开启 10 次会话,一周工作 5 天,一个月下来节省的 Token 足够犒劳自己好几顿了。更重要的是,探索阶段耗时越短,留给实际开发任务的上下文窗口就越大。上下文窗口如同你的工作台面,如果台面被“探索地图”铺满了,还哪有空间摆放“开发材料”?
5 分钟快速安装与配置
前提条件:Node.js 18+ 和 Claude Code。
第一步:运行安装器
npx @colbymchenry/codegraph
交互式安装器会自动完成以下配置:
- 在
~/.claude.json 中配置 MCP 服务器。
- 设置 CodeGraph 工具的自动授权。
- 询问是否要初始化当前项目。
第二步:重启 Claude Code 并初始化项目
安装完成后,务必重启 Claude Code 以使 MCP 服务器生效。然后在你的项目根目录下执行:
codegraph init -i
以作者的项目为例(85 个文件,542 个代码符号),完成索引和关系映射仅需半秒。
第三步:享受自动化
至此,安装完毕。Git hooks 已配置好,会在每次 git commit 时自动同步更新索引,无需手动维护。
简单记住这个流程:npx @colbymchenry/codegraph 安装,codegraph init -i 初始化,之后通过 git commit 自动更新。然后你就可以忘了它的存在。
工作原理速览
CodeGraph 的工作流程可以拆解为清晰的四个步骤:

1. 解析
使用 tree-sitter 将源代码解析为抽象语法树(AST),从中提取“节点”与“边”:
- 节点:函数、类、方法、接口、类型、变量。
- 边:调用关系、导入关系、继承关系、实现关系、类型引用。
2. 存储
将所有信息存入本地 SQLite 数据库,提供三种查询方式:
- FTS5 全文搜索:按名称快速查找。
- 向量嵌入语义搜索:按语义意思查找。
- 图遍历:查找代码实体间的关联关系。
3. 连接
通过 MCP(Model Context Protocol)将构建好的代码知识图谱暴露给 Claude Code。当 Claude 需要理解代码上下文时,可以直接查询这个图谱,而无需再逐个文件进行扫描。
4. 保鲜
通过 Git hooks 在每次提交代码后自动触发重新索引,确保知识图谱与代码库的实时同步。
一句话总结:先绘制地图,按需查询地图,地图随代码变更自动更新。
与传统优化方案的对比
在 CodeGraph 出现之前,开发者们已经想了各种办法来应对 Claude Code 的“会话失忆”问题:
方案一:编写 CLAUDE.md 文件
将项目结构、架构说明等写入 CLAUDE.md 文件。这相当于给 Claude 一份“手写笔记”。但问题是,Claude 只是在“阅读文档”,并未真正理解代码间动态的调用与依赖关系。
方案二:子代理共享记忆文件
让一个专门的“探索代理”将会话中发现的信息写入共享的 Markdown 文件供后续使用。这比静态文档更精细,但本质上仍是文本,缺乏结构化的关系数据。
方案三:手动粘贴相关代码
最直接的方法——在提示词中直接粘贴需要 Claude 关注的代码段。此法有效但不具备扩展性,你不可能每次都手动找到并粘贴所有相关代码。
CodeGraph 的根本区别在于,它提供给 Claude 的不是一份“参考资料”,而是一个可以直接进行高效查询的结构化数据库。这就像笔记与数据库的区别——你能用 SQL 去查询笔记吗?
核心能力与使用场景
语义搜索
搜索“authentication”,不仅能找到名为 AuthService 的类,还能找到语义相关的 login、validateToken 等函数,即使它们的命名风格完全不同。这比传统的 grep 按字面匹配强大得多。
影响范围分析
在修改一个函数前,可以先查询它的“爆炸半径”——有哪些地方调用了它?谁依赖它?修改后会波及哪些模块?在进行大型代码重构时,这个功能尤为实用。
多语言支持
支持超过 16 种语言,包括 TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Swift、Kotlin,甚至 Shopify 的 Liquid 模板语言。
完全本地运行
所有处理均在本地完成,无需联网、无需额外 API Key、不依赖任何外部服务。最终产物只是一个存储在项目中的 SQLite 文件。这对于处理公司内部代码或敏感项目的开发者来说,是一个重要的安全考量。
可能遇到的“坑”与应对
坑一:大型单体仓库初始化较慢
作者的示例项目(85个文件)在半秒内完成索引。但如果你面对的是一个包含数千个文件的大型 Monorepo,首次构建索引可能需要一些时间。好消息是这通常只需做一次,后续由 Git hooks 进行增量更新。
- 应对:利用
.gitignore 或工具自带的忽略配置(如支持 .codegraphignore),排除 node_modules、dist、vendor 等无需索引的目录。
坑二:MCP 工具列表的上下文开销
如果你已经配置了多个 MCP 服务器,那么工具列表本身也会占用可观的上下文 Token。Anthropic 在 2024 年初推出了 MCP Tool Search 功能,可以动态加载工具,能将工具列表的 Token 开销从 77K 大幅降低至 8.7K。如果你安装的 MCP 工具较多,建议一并开启此功能。
坑三:安装后忘记重启 Claude Code
在安装并配置完 MCP 服务器后,必须重启 Claude Code 桌面应用才能使其生效。这一点听起来像常识,但很多人都会忘记。
总结与速查命令
- 核心价值:CodeGraph 通过 tree-sitter 解析代码、SQLite 存储关系图谱、MCP 对接 Claude Code,让 AI 直接查询结构化知识图谱,替代低效的文件扫描,实测可节省约 30% 的 Token 消耗。
- 核心优势:完全本地运行、通过 Git hooks 实现自动更新、支持多种编程语言,真正做到“安装即忘”。
- 适用场景:任何使用 Claude Code 进行中大型项目开发的场景,尤其适合需要频繁开启新会话或进行代码理解和重构的任务。
常用命令速查表:
# 安装
npx @colbymchenry/codegraph
# 初始化当前项目(交互式)
codegraph init -i
# 手动重建索引(通常不需要,Git hooks 会自动处理)
codegraph index
# 查看当前项目的索引状态
codegraph status
你的 Claude Code 每次“认路”需要花费多少 Token 呢?不妨下次开启新会话时留意一下 Explore 阶段的消耗。如果你的项目超过 100 个文件,这个数字可能会让你感到惊讶。Token 优化和上下文工程,是每一位深度使用 AI 编程助手的开发者迟早要面对的课题。
将 CodeGraph 这类工具与社区分享的其他 开源实战 经验结合,比如能拉取实时文档的 Context7 MCP 工具,可以让 Claude Code 不仅理解你的代码,还能随时查阅最新的第三方库文档,实现“两张地图叠加,效果翻倍”的智能编程体验。