
当你让 CC 帮你理解一个万行项目时,一次架构级问题可能触发数十次工具调用,消耗上百万Token。更糟的是,下次问类似问题,这一切又要重来。有没有办法让AI直接"记住"代码结构?
这就是 CodeGraph 要解决的问题。
实测可节省35%成本、减少70%工具调用,让AI理解代码更快更准。
一句话说清楚
CodeGraph 是一个本地优先的代码智能库,通过MCP协议为AI编程助手提供预索引的代码语义信息。
简单说:它提前把你的代码解析成知识图谱存到本地数据库,AI需要理解代码时直接查询,不用再盲目扫描文件。
GitHub 地址:
为什么需要这个工具?
AI理解代码的隐性成本
当你问"这个项目的认证模块是怎么实现的"时,AI会:
- 用
glob扫描文件结构 - 用
grep搜索关键词 - 用
Read逐个读取相关文件 - 将所有内容回传给主会话
在一个万行级别的项目里,这个过程可能触发10-15次工具调用,消耗数十万Token。
而且每次问类似问题,都要重复这个过程。
CodeGraph 的解决方案
CodeGraph 的思路是前置分析:在你开始提问之前,它已经把代码解析成知识图谱存到本地SQLite数据库了。
当AI需要理解代码时,只需要调用CodeGraph提供的MCP工具,直接查询符号关系、调用链和代码结构,不再需要盲目扫描文件。
效果:平均节省35%成本,减少70%工具调用,速度提升49%。
核心原理:tree-sitter + 知识图谱 + MCP
CodeGraph 的技术栈可以用一张图概括:
源代码 → tree-sitter解析AST → 提取符号/关系 → 存入SQLite知识图谱 → MCP协议暴露查询接口 → AI Agent按需查询
1. 提取阶段(Extraction)
CodeGraph 使用 tree-sitter(一个增量式语法分析器)将源代码解析为AST(抽象语法树),然后提取:
- 节点(Nodes):函数、类、方法、接口、类型别名等
- 边(Edges):函数调用、导入依赖、继承关系、接口实现等
tree-sitter 的优势在于它是增量解析——文件修改后只重新解析变化的部分,这也是CodeGraph能做到实时同步的基础。
2. 存储阶段(Storage)
所有数据存入项目目录下的 .codegraph/codegraph.db(SQLite),并启用 FTS5全文搜索索引。
FTS5 是 SQLite 内置的全文搜索引擎,支持前缀匹配、短语查询和相关性排序,符号查找接近 O(1) 级别。
3. 解析阶段(Resolution)
提取完成后,CodeGraph会进行引用解析:
- 函数调用 → 指向定义处
- import语句 → 指向源文件
- 类继承 → 构建继承树
- 接口实现 → 构建实现关系图
- 框架路由 → 关联URL模式与Handler函数
4. 自动同步(Auto-Sync)
CodeGraph 内置文件监听器,使用操作系统原生事件:
| 操作系统 | 监听机制 |
|---|---|
| macOS | FSEvents |
| Linux | inotify |
| Windows | ReadDirectoryChangesW |
代码修改后自动触发增量更新,知识图谱始终保持最新。
核心功能:8个MCP工具
CodeGraph 通过MCP协议向AI提供8个查询工具:
| 工具名 | 功能 | 使用场景 |
|---|---|---|
codegraph_context | 获取符号的完整上下文 | 问"这个函数是做什么的" |
codegraph_callers | 查找所有调用该符号的地方 | 问"谁在用这个函数" |
codegraph_callees | 查找该符号调用的所有地方 | 问"这个函数依赖了什么" |
codegraph_search | 全文搜索符号 | 问"找到所有和auth相关的代码" |
codegraph_explore | 探索代码结构 | 问"这个模块的架构是什么样的" |
codegraph_affected | 分析变更影响范围 | 问"修改这个函数会影响哪里" |
codegraph_status | 查看索引状态 | 检查知识图谱是否最新 |
codegraph_files | 列出已索引的文件 | 查看项目覆盖范围 |
对比:不用CodeGraph vs 用CodeGraph
不用CodeGraph:
用户:"How is AuthService being called?"
→ AI: glob("src/**/*.ts") # Tool call 1
→ AI: grep("AuthService") # Tool call 2
→ AI: read("auth.service.ts") # Tool call 3
→ AI: grep("import.*Auth") # Tool call 4
→ AI: read("user.controller.ts") # Tool call 5
→ AI: read("app.module.ts") # Tool call 6
... 10-15次工具调用,大量Token消耗
用CodeGraph:
用户:"How is AuthService being called?"
→ AI: codegraph_callers("AuthService") # Tool call 1
→ 返回:完整调用列表 + 调用点 + 代码片段
→ AI直接回答,无需读取文件
支持的语言和框架
编程语言(19种)
TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Swift、Kotlin、Scala、Dart、Svelte、Vue、Liquid、Pascal/Delphi
Web框架(13个)
Express、Laravel、Rails、FastAPI、Django、Flask、Spring、Gin、Axum、ASP.NET、Vapor、React Router、SvelteKit、Vue/Nuxt
CodeGraph 能识别这些框架的路由定义,把URL模式和对应的Handler函数关联起来。
实测数据
CodeGraph 团队在7个真实开源项目上进行了benchmark测试:
| 指标 | 效果 |
|---|---|
| 平均成本节省 | ~35% |
| 平均工具调用减少 | ~70% |
| 平均速度提升 | ~49% |
典型案例:在VS Code的大型TypeScript仓库上,一次架构问答:
- 不用CodeGraph:140万Token,成本$0.64
- 用CodeGraph:39.3万Token,成本$0.42
节省34%成本,减少72% Token消耗。
安装与使用
系统要求
- Node.js:18.0.0 - 24.x(Node 25.x有硬退出限制)
- 平台:Windows、macOS、Linux
安装方式
推荐:一行命令安装(自动检测已安装的AI代理并配置)
npx @colbymchenry/codegraph
这个交互式安装器会自动:
- 检测你安装了哪些AI工具(Claude Code、Cursor等)
- 自动配置MCP集成
- 创建必要的配置文件
初始化项目
cd your-project
codegraph init -i
-i 表示交互式模式,会引导你完成初始化。
非交互式安装(适合CI环境)
# 自动检测所有已安装的代理,全局安装
codegraph install --yes
# 指定特定代理
codegraph install --target=cursor,claude --yes
# 项目本地安装
codegraph init --yes
使用流程
- 安装CodeGraph:
npx @colbymchenry/codegraph - 进入项目目录:
cd your-project - 初始化:
codegraph init -i - 开始编码:AI会自动使用CodeGraph提供的工具
常用CLI命令
# 查看状态
codegraph status
# 手动触发索引
codegraph index
# 启动同步模式(监听文件变化)
codegraph sync
# 查询知识图谱
codegraph query "SELECT * FROM nodes WHERE name LIKE '%auth%'"
# 启动MCP服务器
codegraph serve --mcp
同类工具对比
市面上还有几款类似的代码知识图谱工具,这里做一个简单对比,帮你更好地理解CodeGraph的定位:
| 维度 | CodeGraph | GitNexus | Understand-Anything |
|---|---|---|---|
| GitHub Stars | 17k+ | 39k+ | 19k+ |
| 定位 | 代码智能库 + CLI + MCP | 知识图谱构建 + Web UI + MCP | 多智能体分析 + 可视化仪表盘 |
| 核心数据库 | SQLite (FTS5) | LadybugDB (图数据库) | JSON文件 + 内存图谱 |
| Web可视化 | ❌ 无 | ✅ 有(零服务器) | ✅ 有(React Flow) |
| MCP工具数 | 8个 | 16个 | 6个Skill |
| 开源协议 | MIT | PolyForm Noncommercial | MIT |
对比解读
CodeGraph 的优势:
- 轻量快速:SQLite简单可靠,查询接近O(1)级别
- 安装简单:一行命令搞定,对新手最友好
- 性能优秀:有实测数据支撑,35%成本节省
- 协议友好:MIT协议,商业使用无限制
CodeGraph 的局限:
- 没有Web可视化界面(只有CLI)
- MCP工具数量相对较少(8个 vs GitNexus的16个)
- 不支持多仓库管理
什么时候选 CodeGraph:
- 追求极致轻量和性能
- 主要用Claude Code或Cursor
- 不需要Web可视化
- 希望快速上手,不想折腾
什么时候考虑其他工具:
- 需要Web可视化 → 考虑 GitNexus
- 需要引导式学习体验 → 考虑 Understand-Anything
- 需要企业级功能(PR审查、自动Wiki等)→ 考虑 GitNexus 企业版
适用人群
适合的场景
1. 使用Claude Code/Cursor的开发者
CodeGraph 对Claude Code和Cursor的支持最好,安装后无缝集成。
2. 经常问架构级问题的开发者
如果你经常问"这个模块是怎么设计的"、"这个功能在哪里实现的",CodeGraph能大幅减少Token消耗。
3. 大型项目的维护者
项目越大,CodeGraph的收益越明显。在VS Code级别的项目上,一次问答就能省几十美分。
4. 追求效率的开发者
不想等AI慢慢扫描文件,希望问题能秒回。
5. 注重隐私的开发者
100%本地运行,代码不会上传到任何服务器。
不适合的场景
1. 小型项目
几百行代码的项目,直接用AI扫描文件可能更快。
2. 不需要AI辅助的开发者
如果你很少用Claude Code、Cursor这类工具,CodeGraph对你没价值。
3. 需要Web可视化的用户
CodeGraph没有Web界面,只有CLI和MCP工具。需要可视化可以考虑GitNexus。
写在最后
CodeGraph 代表了一种务实的技术路线:
- 不追求大而全,专注做好一件事(代码索引和查询)
- 不重复造轮子,用成熟的tree-sitter和SQLite
- 不绑架用户,100%本地运行,代码不上传
- 有实测数据,35%成本节省不是拍脑袋
在这个AI工具层出不穷的时代,这种"做减法"的产品哲学反而显得珍贵。
当然,CodeGraph也有局限:没有Web可视化、不支持多仓库、功能相对单一...
但如果你只是想要一个简单、快速、有效的代码知识图谱工具,CodeGraph可能是最佳选择。
毕竟,有时候少即是多。
关注
如果你觉得这篇文章对你有帮助,欢迎关注我们的公众号,获取更多开源工具的深度解读和使用指南。