CodeGraph - 把代码库变成知识图谱,让 AI 编程少花 35% 的钱
痛点
用过 Claude Code、Cursor 这类 AI 编程工具的人都知道一个毛病:每次问问题,它都要重新 grep、read 一堆文件。代码库大一点,token 消耗蹭蹭涨,工具调用次数也多。
CodeGraph 的思路很直接——把代码库提前解析成知识图谱,存到本地 SQLite。AI 智能体直接查图谱,不用反复扫文件。
官方数据:约节省 35% 费用,减少约 70% 工具调用。完全本地运行,不传数据到云端。
它是什么
CodeGraph 把你的代码库解析成一张语义知识图谱:
- 节点 = 函数、类、方法
- 边 = 调用关系、导入关系、继承关系
AI 编程智能体(Claude Code、Cursor、Codex CLI、Hermes Agent 等)直接查询这张图谱,而不是用 grep/Read 反复扫描文件。
安装
一行命令搞定,不需要 Node.js(它自带运行时):
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh
# 或者通过 npm
npx @colbymchenry/codegraph
初始化
进入项目目录,交互式初始化:
cd your-project
codegraph init -i
安装器会自动配置你的 AI 工具,支持 Claude Code、Cursor、Codex CLI、opencode、Hermes Agent、Gemini CLI 等。
核心命令
codegraph status # 查看索引状态
codegraph index # 重新索引(代码变更后)
codegraph context "修复登录 bug" # 根据任务描述定位相关代码
codegraph serve --mcp # 启动 MCP 服务器供 AI 智能体使用
AI 智能体怎么用它
初始化完成后,重启 Claude Code / Cursor 即可。Agent 检测到 .codegraph/ 目录会自动加载 CodeGraph 工具:
| 工具 | 用途 |
|---|---|
codegraph_context | 根据任务描述定位相关代码区域 |
codegraph_search | 搜索符号(函数/类名) |
codegraph_callers | 查找谁调用了某个函数 |
codegraph_callees | 查找某函数调用了哪些函数 |
codegraph_trace | 追踪完整调用链路 |
codegraph_explore | 获取某区域的完整源码上下文 |
支持范围
- 19 种语言:TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C/C++、Swift、Kotlin、Scala、Dart、Svelte、Vue、Lua/Luau 等
- 14 个 Web 框架:Django、Flask、FastAPI、Express、NestJS、Laravel、Rails、Spring 等路由识别
使用技巧
1. 排除大目录
node_modules、vendor、dist 这些目录没必要索引,初始化时排除掉,速度会快很多:
codegraph init -i --exclude "node_modules,vendor,dist,.git"
2. 代码变更后记得重新索引
codegraph index
可以加 --quiet 减少输出开销。
3. 用 context 代替 grep
与其让 AI 反复 grep -r "functionName",不如直接:
codegraph context "找出用户认证相关的所有代码"
图谱会直接返回相关的函数、类、调用链,一步到位。
4. 追踪调用链
想知道某个函数被谁调用、调用了谁:
codegraph callers SomeClass.someMethod # 谁调用了它
codegraph callees SomeClass.someMethod # 它调用了谁
codegraph trace SomeClass.someMethod # 完整调用链路
5. MCP 模式
对于支持 MCP 的智能体,可以启动 MCP 服务器:
codegraph serve --mcp
这样智能体可以实时查询图谱,不需要每次重新索引。
常见问题
| 问题 | 解决 |
|---|---|
CodeGraph not initialized | 先在项目目录运行 codegraph init |
| 索引速度慢 | 检查是否排除了 node_modules 等大目录 |
| MCP 不连接 | 确保已初始化并完成索引,测试 codegraph serve --mcp |
适合谁
- 代码库比较大(几十万行以上),AI 编程时 token 消耗高的
- 重度使用 Claude Code / Cursor 的
- 需要频繁理解不熟悉的代码库的
项目越大,收益越明显。小项目可能感知不明显,但也没啥成本,装了就装了吧。
