以下是您要求的英文文章的中文翻译,已按照要求保留原文结构、技术术语和代码块,并输出为 Markdown 格式。
colbymchenry / codegraph
CodeGraph 为 Claude Code、Cursor、Codex、OpenCode 和 Hermes Agent 提供语义代码智能增强 ~35% 更便宜 · ~70% 更少的工具调用 · 100% 本地化
开始使用
无需 Node.js — 一条命令即可获取适合您操作系统的正确构建版本:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex
已有 Node?使用 npm 替代(适用于任何版本):
npx @colbymchenry/codegraph # 零安装,或:
npm i -g @colbymchenry/codegraph
CodeGraph 自带运行时 — 无需编译,无需原生构建,在任何环境下运行方式一致。交互式安装程序会自动配置您的代理 — Claude Code、Cursor、Codex CLI、opencode、Hermes Agent。
初始化项目
cd your-project
codegraph init -i
卸载
改变主意了?一条命令即可从 CodeGraph 配置过的所有代理中移除它:
codegraph uninstall
此命令会反向安装过程 — 从每个已配置的代理中移除 CodeGraph 的 MCP 服务器配置、指令和权限。您的项目索引(.codegraph/)将保持不变;如需逐个项目删除,请使用 codegraph uninit。使用 --target 可从特定代理中移除,或使用 --yes 以非交互方式运行。
为什么选择 CodeGraph?
当 Claude Code 探索代码库时,它会生成 Explore 代理,这些代理使用 grep、glob 和 Read 扫描文件 — 每次工具调用都会消耗 token。CodeGraph 为这些代理提供了一个预索引的知识图谱 — 符号关系、调用图和代码结构。代理可以即时查询图谱,而无需扫描文件。
基准测试结果
在 7 个真实世界的开源代码库(涵盖 7 种语言)上进行了测试,比较了有和没有 CodeGraph 的情况下,一个代理(Claude Code,无头模式)回答一个架构问题的表现。每个单元格是每组 4 次运行的中位数节省量。
平均:35% 更便宜 · 59% 更少的 token · 49% 更快 · 70% 更少的工具调用
| 代码库 | 语言 | 成本 | Token | 时间 | 工具调用 | |---|---|---|---|---|---| | VS Code | TypeScript · ~10k 文件 | 35% 更便宜 | 73% 更少 | 41% 更快 | 72% 更少 | | Excalidraw | TypeScript · ~600 | 47% 更便宜 | 73% 更少 | 60% 更快 | 86% 更少 | | Django | Python · ~2.7k | 34% 更便宜 | 64% 更少 | 59% 更快 | 81% 更少 | | Tokio | Rust · ~700 | 52% 更便宜 | 81% 更少 | 63% 更快 | 89% 更少 | | OkHttp | Java · ~640 | 17% 更便宜 | 41% 更少 | 36% 更快 | 64% 更少 | | Gin | Go · ~150 | 22% 更便宜 | 23% 更少 | 34% 更快 | 19% 更少 | | Alamofire | Swift · ~100 | 38% 更便宜 | 59% 更少 | 51% 更快 | 77% 更少 |
收益随代码库规模扩大而增加:在大型仓库中,代理只需少量调用即可从索引中获取答案,且无需读取任何文件,而没有 CodeGraph 的代理则会在 grep/find/Read(以及它生成的子代理)中分散搜索。在像 Gin(约 150 个文件)这样的小型仓库中,原生搜索已经足够便宜,因此差距缩小。
完整基准测试详情
方法。每组是 claude -p(Claude Opus 4.7,Claude Code v2.1.145)在仓库上以无头模式运行,使用 --strict-mcp-config:WITH = 启用 CodeGraph 的 MCP 服务器,WITHOUT = 空的 MCP 配置。内置的 Read/Grep/Bash 对两者都可用。每个仓库相同的问题,每组 4 次运行,报告中位数。成本 = 运行的 total_cost_usd;Token = 处理的总 token(包括缓存的输入 + 输出);时间 = 挂钟时间;工具调用 = 每次工具调用,包括模型生成的任何子代理内部的调用。
仓库以 --depth 1 克隆,并由提供服务的同一 CodeGraph 构建版本进行索引。
查询:
| 代码库 | 查询 | |---|---| | VS Code | “扩展主机如何与主进程通信?” | | Excalidraw | “Excalidraw 如何渲染和更新画布元素?” | | Django | “Django 的 ORM 如何从 QuerySet 构建并执行查询?” | | Tokio | “tokio 如何在其运行时上调度和执行异步任务?” | | OkHttp | “OkHttp 如何通过其拦截器链处理请求?” | | Gin | “gin 如何通过其中间件链路由请求?” | | Alamofire | “Alamofire 如何构建、发送和验证请求?” |
原始中位数 — WITH → WITHOUT:
| 代码库 | 成本 | Token | 时间 | 工具调用 | |---|---|---|---|---| | VS Code | $0.42 → $0.64 | 393k → 1.4M | 1m 0s → 1m 43s | 7 → 23 | | Excalidraw | $0.54 → $1.02 | 851k → 3.2M | 1m 17s → 3m 14s | 12 → 83 | | Django | $0.41 → $0.62 | 499k → 1.4M | 1m 0s → 2m 25s | 9 → 48 | | Tokio | $0.50 → $1.04 | 657k → 3.4M | 1m 5s → 2m 56s | 9 → 75 | | OkHttp | $0.36 → $0.44 | 352k → 596k | 45s → 1m 11s | 5 → 14 | | Gin | $0.36 → $0.46 | 431k → 562k | 47s → 1m 11s | 7 → 8 | | Alamofire | $0.61 → $0.99 | 1.1M → 2.6M | 1m 19s → 2m 41s | 15 → 64 |
为什么 CodeGraph 胜出: 有了索引,代理可以直接回答 — 使用 codegraph_context 映射区域,然后使用一个 codegraph_explore 获取相关源代码 — 然后停止,通常无需读取任何文件。没有它,代理(以及它生成的 Explore 子代理)在读取正确代码之前,大部分预算都花在了发现(find/ls/grep)上。
CodeGraph 仅在直接查询时才有帮助,因此其指令引导代理直接回答,而不是将探索委托给读取文件的子代理 — 否则子代理无论如何都会读取文件,CodeGraph 反而成为开销。
主要特性
智能上下文构建
一次工具调用即可返回入口点、相关符号和代码片段 — 无需昂贵的探索代理
全文搜索
由 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
框架感知路由
识别 Web 框架路由文件,并将 URL 模式链接到其处理程序,覆盖 14 个框架
100% 本地化
没有数据离开您的机器。无需 API 密钥。无需外部服务。仅使用 SQLite 数据库
框架感知路由
CodeGraph 检测 Web 框架路由文件,并发出路由节点,这些节点通过引用边链接到其处理程序类或函数。查询视图/控制器的调用者...