title: 🧠 CodeGraph:31k Stars 的代码知识图谱,让 Claude Code 彻底理解你的项目
slug: codegraph-code-knowledge-graph
categories: 智能體開發
tags: [CodeGraph, Knowledge-Graph, AI, Claude-Code, MCP]
当 Claude Code 接手一个大项目时,它会怎么做?拉起一堆 Explore 子 agent,对着你的代码库疯狂 grep、find、Read——每读一个文件都在烧钱。一个架构问题问下来,光探索就能干掉几十次 tool call。
CodeGraph 的方案很直接:提前把代码库建好知识图谱,AI 工具直接查图,而不是现翻文件。作者 colbymchenry,纯 TypeScript 写的,31k star,MIT 协议。
基准测试:省多少?
项目在 7 个真实开源库上跑了对比,每个跑 4 次取中位数:
- VS Code(~1万文件):成本省 26%、tool call 减少 85%
- Excalidraw(~640 文件):成本省 52%、tool call 减少 96%
- Tokio(~790 文件):成本省 82%、tool call 减少 92%
平均下来:35% 更便宜、71% 更少的 tool call、46% 更快。项目越大,效果越明显。
三步上手
1. 安装
不需要 Node 环境,一行搞定:
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh
有 Node 的话更简单:
npx @colbymchenry/codegraph
安装器会自动检测 Claude Code、Cursor、Codex、Gemini、Hermes Agent 等工具,一键配好 MCP。
2. 初始化项目
在你的项目目录里建索引:
cd your-project
codegraph init -i
这会扫描整个代码库,用 tree-sitter 解析出所有的函数、类、方法以及它们之间的调用关系,存到 .codegraph/codegraph.db 里。
3. 启动 MCP 服务
codegraph serve --mcp
你的 AI 编程工具就能通过 MCP 协议直接查询这个知识图了。
核心玩法
搜索符号:
codegraph search UserService
改代码前先看影响范围:
codegraph impact UserService --depth 2 --json
查谁调了某个函数:
codegraph callers UserService
查函数调了谁:
codegraph callees UserService
MCP 模式下还有 codegraph_context、codegraph_trace、codegraph_explore 等工具,AI 能一键拿到入口点、相关符号和源码片段。
CI 中的妙用
改了几个文件,想知道哪些测试受影响?一行搞定:
git diff --name-only | codegraph affected --stdin --quiet
返回的测试文件直接喂给测试框架跑,只跑必要的用例。
手动配置 MCP
不想用安装器?手动配也一样:
{
"mcpServers": {
"codegraph": {
"type": "stdio",
"command": "codegraph",
"args": ["serve", "--mcp"]
}
}
}
避坑
- 索引慢?检查
node_modules、dist等目录是否被排除——CodeGraph 默认跳过这些,也尊重.gitignore - MCP 显示
database is locked?如果用的是 v0.9 以下版本,重新安装一次。新版自带了 Node 的node:sqliteWAL 模式,读操作不会阻塞写 - 符号找不到?等几秒让自动同步完成,或者手动跑
codegraph sync - 不支持的语言?目前支持 20+ 语言:TS/JS/Python/Go/Rust/Java/C#/PHP/Ruby/Swift/Kotlin/Dart 等,冷门语言暂时还没有
要点总结
- CodeGraph 为代码仓库预建 SQLite 知识图谱,AI 直接查图而非扫文件
- 支持 8 种主流 AI 编程工具:Claude Code、Cursor、Codex、Gemini、Hermes Agent 等
- 平均节省 35% 成本、71% 的 tool call——越大的项目收益越明显
- 零配置:自动识别语言、自动排除无关目录、文件变化自动增量同步
- 内置框架感知路由:Django/Flask/FastAPI/Express/Spring 等 14 个框架的路由能自动关联到 handler
- 提供库模式:可作为 npm 包在代码中直接调用 API
- 纯本地运行,数据不出机器,无需 API key