跳到正文
coograph 15
v0.1.0 · 开源 · MIT
15 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 · Windsurf · 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、Windsurf、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/cache/cache.py
    → src/cache/policy.py
  3. 提交时自动更新。

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

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

v0.2 即将推出 独立 coograph CLI

实证

基准测试。

固定任务:「Add caching to OrderService.place_order()」。固定夹具:bench/fixtures/sample-app/。两者都已提交。结果可复现。

运行于 2026-05-04 · 测试台 0.1.0 · 夹具 f34ca2e

79.7% 更少 token。 4.2× 更少工具调用。

常见重构任务上最高 约 80% 的 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,764 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 · ~969 token
方法论

bench/run.py 遍历 bench/fixtures/sample-app/,把 grep -l "OrderService" 返回的文件集和 .bench-manifest.json 里断言的 4 个文件的最小上下文比对,并报告字节数和近似 token 数(字节 ÷ 4)。测试台 0.1.0,夹具 sha f34ca2e7ef40…。圆点 (●) 标记同时出现在两栏的文件。详见 bench/README.md

用例

它在哪里胜出。

重构核心服务

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

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

接入横切关注点

给路由加限流、加鉴权守卫、给请求加埋点。图返回入口点 + 直接处理链;SDK 类型和无关路由都被排除。

> get_minimal_context("Add rate limiting to POST /orders")
→ src/api/routes.py
→ src/api/schemas.py
→ src/orders/order_service.py

扩展领域对象

给请求 DTO 加字段。图从 dataclass 追到 validator 再到 wire-format schema;测试和文档不进入。

> get_minimal_context("Add discount field to OrderRequest")
→ src/orders/order_service.py
→ src/orders/order_dto.py
→ src/orders/order_validator.py
→ src/api/schemas.py
对比

它有何不同。

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/Windsurf
  • 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、Windsurf、内部代理
  • 对主代码库的解析 + 图构建
  • get_minimal_context() 把 接入真实任务
  • 知识传递,让工程师离开我们也能持续迭代

定制解析器与集成

按范围

内部语言

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

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

持续支持与基准测试

月度

月度服务

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

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

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

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

或发邮件至 hello@coograph.com

FAQ

常见问题。

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

Coograph 给你的代码库建一张 SQLite 依赖图 —— 谁调用谁、谁导入谁、谁测试谁。你的 AI 编程工具问 Coograph「这个任务我需要哪些文件?」,拿到 3–5 个文件的清单,而不是 grep 一个关键字回来 20+ 个文件。读的文件少 = 花的 token 少 = AI 账单更低,改动更快更安全。

为什么 grep 不够?

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

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

在已提交的基准任务上,Coograph 比直接 grep + 读取的流程省约 80% token、4 倍工具调用。真实节省取决于仓库规模和任务类型,但规律不变:仓库越大、改动越聚焦,节省越多。等 Phase 4 计算器上线后可以估算你自己的。

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、Windsurf、Codex CLI、OpenCode、Aider、Cline)。把 Coograph 克隆为兄弟目录,在你的工具里运行 /coograph-init,让它把图建好,搞定。每次提交时 git 钩子自动重新解析变化的文件。