跳到正文
coograph 17
v1.6.0 · 开源 · MIT
17 stars MIT MCP-native

别让你的 AI grep 整个世界。

Coograph 让你的 AI 编程工具更聪明、更省钱:直接指向代码库里真正相关的文件,而不是浪费 token 把所有东西都读一遍。

Coograph 把你的代码库解析成 SQLite 依赖图。编程代理在读取任何文件先查询它。在固定任务上测量。SQLite。MCP 原生。支持多工具。

面向独立开发者、indie hacker,以及评估 AI 工具的工程负责人。

适合: 独立开发者 · indie hacker · 评估 AI 工具的资深工程师

工具: Claude Code · Cursor · VS Code Copilot · Devin Desktop · Codex CLI · OpenCode · Aider · Cline

问题

「grep 一切」税。

让编程代理「给 OrderService.place_order() 加缓存」,看它怎么干。它 grep 这个类名。返回 20 个文件。为了保险,全都读一遍。其中大部分是测试、文档、下游调用方、SDK 类型 —— 跟缓存该放哪里没有任何关系。

这个税以 token、工具调用、延迟的形式支付,每个任务都付一遍 —— 直接拉高你的 AI 基建账单。

 $ grep -rl "OrderService" src/
docs/architecture.md
docs/deployment.md
migrations/001_initial.sql
README.md
src/api/routes.py
src/api/schemas.py
src/audit/audit_log.py
src/billing/billing_service.py
src/billing/invoice.py
src/client/order_client.ts
src/notifications/email.py
src/orders/order_dto.py
src/orders/order_events.py
src/orders/order_service.py
src/orders/order_validator.py
src/types/index.ts
tests/conftest.py
tests/test_api.py
tests/test_billing_service.py
tests/test_order_service.py

20 个匹配。代理为了保险全都读了一遍。 
方案

图优先上下文。

你的代理在读取任何文件前先调用 get_minimal_context(task)。图返回这次改动真正相关的 4 个文件。其他一概不返回。

试试查询 点一个任务。这些是基准测试断言完成它足够的文件。
基准任务
无图 $ grep -rl "OrderService" src/
docs/architecture.md
docs/deployment.md
migrations/001_initial.sql
README.md
src/api/routes.py
src/api/schemas.py
src/audit/audit_log.py
src/billing/billing_service.py
src/billing/invoice.py
src/client/order_client.ts
src/notifications/email.py
src/orders/order_dto.py
src/orders/order_events.py
src/orders/order_repository.py
src/orders/order_service.py
src/orders/order_validator.py
src/types/index.ts
tests/conftest.py
tests/test_api.py
tests/test_billing_service.py
20 文件 · 19,056 字节
有图 基准测试断言的最小上下文
  1. src/orders/order_service.py 1,578b
    定义 place_order —— 改动落点
  2. src/orders/order_repository.py 1,493b
    place_order 的读取路径 —— 缓存包在这里
  3. src/cache/cache.py 562b
    缓存抽象 —— 新增依赖
  4. src/cache/policy.py 406b
    缓存策略 —— 按命名空间定义 TTL
4 文件 · 4,039 字节
79% 节省 token
16 更少文件
15,017 节省字节
原理

三步。没有魔法。

  1. 构建图。

    克隆代码库。在任何支持的工具里运行 /coograph-init(Claude Code、Cursor、Copilot、Devin Desktop、Codex CLI、OpenCode、Aider、Cline)。tree-sitter 遍历每个源文件。

    $ /coograph-init
    → parsing 47 files…
    → wrote .code-graph/graph.db (1.2 MB)
  2. 先查询,再读取。

    代理在读取任何文件前先调用 get_minimal_context(task)。它拿回真正相关的 4 个文件,而不是单纯匹配关键字的 20 个。

    > get_minimal_context("Add caching to OrderService.place_order()")
    → src/orders/order_service.py
    → src/orders/order_repository.py
    → src/orders/order_events.py
    → src/orders/order_validator.py
  3. 提交时自动更新。

    git 钩子只重新解析 SHA-1 变化的文件。更新只需毫秒级。

    $ git commit -m "fix: cache TTL"
    [main 4f3a8c1] fix: cache TTL
    → graph updated in 12ms (2 files re-parsed)
包里还有

检索只是四件事之一。

图负责让代理读对文件。另外三件事管的是它拿到文件之后怎么干。都在同一个 MIT 仓库里,没有一个是付费功能。

实证

基准测试。

精选任务:「Add caching to OrderService.place_order()」,夹具 bench/fixtures/sample-app/ —— 3 项已提交基准任务之一。

运行于 2026-08-06 · 测试台 0.2.0 · 夹具 f34ca2e

67.9% 更少 token。 2.8× 更少工具调用。(3 项基准任务的中位数)

3 项已提交基准任务的中位数,token 数由真实分词器统计 —— 测试台和逐任务明细均已提交,尚未公开。

无图 —— 20 个文件 / 19,056 字节

docs/architecture.md 1,409
docs/deployment.md 1,210
migrations/001_initial.sql 1,081
README.md 1,093
src/api/routes.py 1,417
src/api/schemas.py 484
src/audit/audit_log.py 679
src/billing/billing_service.py 1,051
src/billing/invoice.py 546
src/client/order_client.ts 1,245
src/notifications/email.py 720
src/orders/order_dto.py 707
src/orders/order_events.py 631
src/orders/order_service.py 1,276
src/orders/order_validator.py 734
src/types/index.ts 549
tests/conftest.py 355
tests/test_api.py 1,095
tests/test_billing_service.py 1,121
tests/test_order_service.py 1,653
合计:19,056 b · ~4,313 token

有图 —— 4 个文件 / 3,876 字节

src/cache/cache.py 593
src/cache/policy.py 429
src/orders/order_repository.py 1,578
src/orders/order_service.py 1,276
合计:3,876 b · ~935 token
方法论

bench/run.py 遍历 bench/fixtures/ 下的所有夹具,对 3 项任务中的每一项,把 grep -l 对任务关键词(此处为 "OrderService")返回的文件集与 .bench-manifest.json 里断言的 4 个文件的最小上下文比对,并报告字节数和 token 数(tiktoken/cl100k_base)。头条数字为各任务的中位数。 图一侧用的是每个夹具清单里断言“足以完成该任务”的文件集;测试台不跑 MCP 服务器,所以这衡量的是检索目标,不是端到端的工具输出。测试台 0.2.0,精选夹具 sha f34ca2e7ef40…。圆点 (●) 标记同时出现在两栏的文件。测试台、夹具和本次运行结果均已提交,但尚未进入公开仓库 —— 公开这些内容记录在 issue 29

用例

它在哪里胜出。

重构核心服务

给某个类加缓存、限流、埋点。图返回读取路径 + 依赖文件;测试、文档、下游调用方都被排除。

> get_minimal_context("Add caching to OrderService.place_order()")
→ src/orders/order_service.py
→ src/orders/order_repository.py
→ src/orders/order_events.py
→ src/orders/order_validator.py

接入一个横切关注点

给一个向下委派的调用加重试、超时或埋点。图会顺着委派关系找到传输层包装和它的策略——正是关键词搜索会漏掉的那两个文件,因为它们都没提到你出发的那个函数。

> get_minimal_context("Add retry with backoff to fetchMetrics()")
→ src/api/metricsClient.ts
→ src/types/metrics.ts
→ src/api/http.ts
→ src/hooks/useMetrics.ts

扩展一个组件或类型

给面板加一列,给 DTO 加一个字段。图会返回组件、它渲染的类型,以及给它传 props 的父级。测试和文档不会进来。

> get_minimal_context("Add a column to MetricsPanel")
→ src/components/MetricsPanel.tsx
→ src/types/metrics.ts
→ src/components/Dashboard.tsx
对比

它有何不同。

Coograph 是唯一一款 MIT 许可、MCP 原生、支持多工具的代码图,把所有数据存进可移植的 SQLite 数据库。

不同工具,不同目标。下面是 Coograph 在我们关注的维度上的对比。

开源 (MIT)

  • Coograph
  • Sourcegraph ~
    OSS Lite
  • Cursor index
  • Aider repo-map

MCP 原生

  • Coograph
  • Sourcegraph
  • Cursor index
  • Aider repo-map

可移植 SQLite 图

  • Coograph
  • Sourcegraph
    私有索引
  • Cursor index
    封闭索引
  • Aider repo-map ~
    仅内存

多工具支持

  • Coograph
    Claude/Cursor/Copilot/Devin Desktop
  • Sourcegraph ~
  • Cursor index
    仅 Cursor
  • Aider repo-map ~

基于公开文档的特性对比。Sourcegraph:sourcegraph.com。Cursor:cursor.sh。Aider:aider.chat。如有错漏,欢迎到 issue 区指出。

定价

开源永久免费。Pro 是服务。

Coograph 采用 MIT 许可、永久免费。仓库里的一切都是开源的。

Coograph Pro 面向想要定制帮助的团队:定制工作流、为内部语言定制的解析器、与你 AI 编程工具的深度集成。提供服务,不是付费功能。

零风险首次通话。 如果我们没法帮你削减 30% 以上的 AI 账单,会在通话里直说。

Audit · $1,500 · 一周

/pro/audit/

$20k 合作还太重?

产品化的一周交付 AI 编码账单快照。代码库基准测试报告、三条具体改进建议、关于是否值得做 Pro 合作的直白判断。固定价格、固定范围,零推销压力。

查看 Coograph 审计

Coograph Pro 服务

落地冲刺

约 $20k 起

2–4 周

把 Coograph 接入你的 AI 编程栈,端到端交付一两个高价值工作流。

  • 技术栈设计:Claude Code、Cursor、Copilot、Devin Desktop、内部代理
  • 对主代码库的解析 + 图构建
  • get_minimal_context() 把 接入真实任务
  • 知识传递,让工程师离开我们也能持续迭代

定制解析器与集成

按范围

内部语言

面向有内部语言、重度框架定制或遗留系统的团队。

  • 为你的代码定制的 tree-sitter 解析器和适配器
  • 覆盖非标准或遗留组件的图能力
  • 集成到你自己的代理和内部开发工具

持续支持与基准测试

月度

月度服务

持续保持 Coograph 健康运行,并证明长期影响。

  • 升级和图性能的优先支持
  • 在你自己的仓库上定期跑基准(token、调用次数、延迟)
  • 下一步在哪里用 Coograph 的建议

首次合作通常从 ~$20k 起,2–4 周首期。

对比 ~200 小时的内部工程 —— 按 $150/小时算就是 $30k 的开发时间,还没上线一个工作流就花掉了。

或发邮件至 hello@coograph.com

FAQ

常见问题。

用大白话说,Coograph 到底做什么?

Coograph 构建一张 SQLite 地图,记录代码库里每个文件如何依赖其他文件——谁调用谁、谁导入谁、谁测试谁。你的 AI 编程工具问 Coograph“这个任务我需要哪些文件”,拿回 3–6 个文件,而不是为一个关键词 grep 出 20 多个。读的文件更少 = 花的 token 更少 = AI 账单更低,改动更快也更安全。

为什么 grep 不够?

grep 找出所有提到某个字符串的文件。搜「OrderService」会拿到这个类本身、每个调用方、每个测试、每个文档、每个 SDK 类型 —— 多数跟你要做的改动无关。AI 工具用 grep 然后为了保险全都读,结果每个任务都为整个代码库买单。图只返回相关依赖邻域的文件。

在 AI 编程账单上到底能省多少?

在 3 项已提交基准任务上,Coograph 比直接 grep + 读取的流程中位数约省 68% token、约 2.8 倍工具调用。真实节省取决于仓库规模和任务类型,但规律不变:仓库越大、改动越聚焦,节省越多。

Coograph 给谁用?

为 Claude Max、Cursor Pro 或按 token 付费的 API 买单、眼看着 AI 账单往上爬的独立开发者和 indie hacker。在为团队评估 AI 工具、担心人均成本的工程负责人。任何觉得 AI 工具在动手前读得太多、太慢的人。

Coograph 开源吗?Pro 到底多少钱?

是 —— MIT 许可、永久免费。仓库里的一切都是开源的;没有付费功能。Coograph Pro 是服务:定制集成、内部语言的定制解析器、持续的基准测试。首次合作通常从 $20k 起,2–4 周首期。如果我们在通话里发现帮不了你显著降低 AI 账单,会直接说。

安装到底要多久?

5 分钟,如果你已经在用支持的 AI 工具之一(Claude Code、Cursor、Copilot、Devin Desktop、Codex CLI、OpenCode、Aider、Cline)。把 Coograph 克隆为兄弟目录,在你的工具里运行 /coograph-init,让它把图建好,搞定。每次提交时 git 钩子自动重新解析变化的文件。