这个工具让AI写代码时少花70%冤枉钱
用Claude Code、Cursor这类AI编程助手的同学可能都有个感受它们干活挺猛但烧token也猛。尤其遇到大项目AI跟没头苍蝇似的到处翻文件——grep扫一遍glob找一遍找不到再读一遍。一圈下来几十次工具调用打底钱哗哗的。CodeGraph就是来解决问题的。给AI配一个代码知识图谱它想问什么直接查不用再满世界乱翻。实测结果平均省35%的费用减少70%的工具调用。项目完全开源MIT协议100%本地运行不上传任何代码。装起来有多简单不用装Node.js一条命令搞定macOS / Linuxcurl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | shWindows (PowerShell)irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex如果机器上已经有Node也可以走npmnpx colbymchenry/codegraph # 零安装运行 # 或者全局装 npm i -g colbymchenry/codegraph装完跑一下安装向导它会自动检测你机器上的Claude Code、Cursor、Codex CLI、opencode、Hermes Agent问你要给哪个配好MCP服务。一路选就行配置文件自动写好。然后进你的项目目录cd your-project codegraph init -i重启AI助手完事。到底能省多少作者拿7个真实开源项目测了一遍。每个项目跑4次问同一个架构问题对比有无CodeGraph的结果。代码库语言·规模费用token耗时工具调用VS CodeTypeScript · 约1万文件省35%少73%快41%少72%ExcalidrawTypeScript · 约600文件省47%少73%快60%少86%DjangoPython · 约2700文件省34%少64%快59%少81%TokioRust · 约700文件省52%少81%快63%少89%OkHttpJava · 约640文件省17%少41%快36%少64%GinGo · 约150文件省22%少23%快34%少19%AlamofireSwift · 约100文件省38%少59%快51%少77%平均35%更便宜59%更少token49%更快70%更少工具调用。注意看Gin那个小项目150个文件native搜索本来就够快所以差距不大。但上了规模优势立刻拉开——大项目里AI几乎不需要读文件直接查索引就能回答。它能干什么智能上下文构建给AI一个任务描述一次调用返回相关的入口点、关联符号和代码片段。AI不用再派一堆探索子agent到处挖。全文本搜索内置FTS5全文索引整个代码库按名字搜符号毫秒级。影响分析改一个函数之前先查清楚谁调用了它它调用了谁改了会影响多大范围。实时同步文件监听走操作系统原生事件FSEvents / inotify / ReadDirectoryChangesW代码一保存图谱自动更新。不用配。支持19种语言TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C、Swift、Kotlin、Dart、Lua、Luau、Svelte、Liquid、Pascal/Delphi框架感知的路由能认出Django、Flask、FastAPI、Express、NestJS、Laravel、Rails、Spring、Gin等14种框架的路由定义把URL模式和handler函数关联起来。查一个controller的调用者能直接看到是哪个URL在绑它。100%本地数据不出机器不用API key没有外部服务。底层就是个SQLite库。完整命令参考安装与配置命令说明curl ... | sh(macOS/Linux)一键安装脚本irm ... | iex(Windows)一键安装脚本npx colbymchenry/codegraph临时运行不安装npm i -g colbymchenry/codegraph全局安装npm版codegraph或codegraph install交互式安装向导codegraph install --yes非交互安装自动检测agentcodegraph install --targetcursor,claude --yes指定安装到哪些agentcodegraph install --locationlocal仅当前项目生效codegraph install --print-config codex打印配置内容不写入文件项目初始化与索引命令说明codegraph init [path]在项目中初始化加-i同时索引codegraph uninit [path]移除项目中的CodeGraphcodegraph index [path]全量索引--force强制重建codegraph sync [path]增量同步更新codegraph status [path]查看索引统计信息查询与分析命令说明codegraph query 搜索词搜索符号支持--kind、--limit、--jsoncodegraph files [path]显示索引的文件结构--format、--filter、--max-depthcodegraph context 任务描述为AI构建上下文--format、--max-nodescodegraph affected 文件...找出受改动影响的测试文件affected 常用用法# 直接指定文件 codegraph affected src/utils.ts src/api.ts # 从git diff获取文件列表 git diff --name-only | codegraph affected --stdin # 只输出文件路径适合脚本 codegraph affected src/auth.ts --quiet # 自定义测试文件匹配模式 codegraph affected src/auth.ts --filter e2e/* # JSON格式输出 codegraph affected src/auth.ts --jsonMCP服务供AI调用命令说明codegraph serve --mcp启动MCP服务器库方式调用Node.jsimport CodeGraph from colbymchenry/codegraph; const cg await CodeGraph.init(/path/to/project); await cg.indexAll({ onProgress: (p) console.log(p) }); const results cg.searchNodes(UserService); const callers cg.getCallers(results[0].node.id); const context await cg.buildContext(fix login bug, { maxNodes: 20 }); const impact cg.getImpactRadius(results[0].node.id, 2); cg.watch(); // 开启自动同步 cg.close();工作原理树状语法树tree-sitter解析源码抽取出函数、类、方法这些节点以及调用、继承、导入这些边。存进本地的SQLite数据库开FTS5全文索引。MCP服务器跑起来后监听文件变动。改了代码等两秒安静下来就增量更新图谱。AI通过MCP工具查询时直接从数据库拿结果不用再扫硬盘。MCP工具列表AI可用的接口工具名用途codegraph_search按名字查找符号codegraph_context为任务构建代码上下文codegraph_callers找谁调用了这个函数codegraph_callees找这个函数调用了谁codegraph_impact分析改动一个符号的影响范围codegraph_node获取某个符号的详细信息可带源码codegraph_files获取索引的文件结构codegraph_status检查索引健康状态常见坑CodeGraph not initialized忘了在项目目录跑codegraph init。索引慢检查.gitignore确保node_modules、dist这类目录被排除在外。MCP连不上确认项目已经初始化过检查MCP配置里的路径对不对试试手动跑codegraph serve --mcp看报错。missing symbols等几秒让自动同步完成或者手动跑codegraph sync。确认文件语言在支持列表里且没有被.gitignore挡掉。数据库被锁database is locked新版已经内置node:sqlite并开启WAL模式读写不互斥。如果还遇到旧版本请重装0.9以上检查codegraph status看Journal模式是不是wal如果不是比如在WSL2的/mnt下把项目移到本地磁盘。最后说两句CodeGraph的作者之前搞过类似的项目这次直接打包了Node运行时不用你自己配环境。安装脚本自动检测系统下载对应的二进制。本质上把知识图谱做成了AI助手的“外挂缓存”——查过的不用再查该知道的提前知道。项目地址https://github.com/colbymchenry/codegraph觉得有用可以点个Star。