让 AI 审查代码时只读受影响的文件(code-review-graph)

code-review-graph 用 Tree-sitter 把仓库解析成本地图数据库,再经 MCP 只把改动波及的文件交给 AI 编码助手,用来压低代码审查和大型仓库工作流里的上下文长度。这篇讲清它的安装与最短跑通路径、主要功能、参数配置,以及 Windows 上经 MCP 偏慢、盲目启用反而降低代码理解等真实反馈,帮读者判断自己的仓库和工具链适不适合上它。

AI 编码工具审查一次改动,通常会把仓库里大段无关代码一起读进去。token 花在重复读文件上,模型还要在噪声里找真正相关的调用链。code-review-graph 先给代码库建一张结构图,再根据改动回溯出真正受影响的文件,让助手只读这些文件。

code-review-graph 是一个用 Python 写的本地代码知识图谱工具,用 Tree-sitter 把仓库解析成节点与边存入本地数据库,再通过 MCP 把改动的影响范围交给 AI 编码助手。

输入是现有仓库和一次改动,输出是一组最小的待读文件集合,以及每个文件的爆炸半径和风险分。图数据落在本地,仓库里没有说明默认会上传任何代码。典型场景是文件数量多、审查频繁的团队,以及想在 Claude Code、Cursor 这类工具里压住上下文长度的个人开发者。

code-review-graph 在改动前后需要读取的代码范围对比示意图

基础用法

安装与依赖

需要 Python 3.10+。仓库语言占比里 Python 占 97.0%,项目采用 MIT License,主要语言是 Python,仓库地址是 https://github.com/tirth8205/code-review-graph。

pip install code-review-graph
# 或
pipx install code-review-graph

没有别的外部服务依赖,索引结果存在本地数据库里。igraph 是可选依赖:没装时会看到 INFO: igraph not available, using file-based community detection,社区检测退回基于文件的方式。

最短能跑通的示例

三条命令就能进入可用状态。

pip install code-review-graph
code-review-graph install
code-review-graph build

install 会检测本机装了哪些 AI 编码工具,为每个工具写入 MCP server 条目,在平台支持的地方安装 hooks 与 skills,并把图的使用指令加进平台的规则文件。MCP 条目在 Poetry 或 uv 项目环境里用 poetry run 或 uv run,PATH 上有 uvx 时用 uvx code-review-graph serve,其余情况用当前 Python 解释器。装完要重启编辑器或工具。

只想配一个平台,加 --platform。

code-review-graph install --platform cursor
code-review-graph install --platform codebuddy

--platform 支持的值有 codex、claude-code、cursor、windsurf、zed、continue、opencode、antigravity、gemini-cli、qwen、kiro、qoder、copilot、copilot-cli、codebuddy、hermes。

配好之后打开项目,向助手说一句:

Build the code review graph for this project

确认它跑起来了

构建时间随仓库规模增长。仓库文档给的数据是,约 3,000 个文件的仓库冷构建大约 40 秒。

部分文件解析失败时,结果状态会标成 partial,并在摘要里点名这些文件;CLI 同时往 stderr 打一行 Warning:。这些文件在图里保留上一次的行,不会消失。

查询结果从两个地方出来:CLI 直接打印,或经 MCP 交给助手。增量更新走 hooks、pre-commit hook 和 watch 模式,仓库文档给的数据是约 3,000 个文件的项目改两个文件约 2.5 秒,其中约 1.4 秒是进程启动;没有变化时只花启动时间。

主要功能

图的构建与更新

  • Tree-sitter 解析:把仓库拆成 AST,存为节点(函数、类、import)与边(调用、继承、测试覆盖)。这是所有后续查询的数据基础。
  • 增量更新:对比变更文件,通过 import 与 call 边找出依赖,只重新解析 SHA-256 变化的文件。触发来源是 hooks、pre-commit hook 与 watch 模式。
  • watch 模式:常驻进程持续跟随改动。仓库在 2.3.8 的发布说明里把它列为 2.3.7 中最薄弱的一块,并说明了三类会让守护进程报 ok 但图停止更新的故障已被修复。

交给助手用的能力

  • 爆炸半径分析:文件变更时回溯所有调用方、依赖与测试,助手读这些文件而不是扫整个项目。
  • MCP server:code-review-graph serve,由 install 自动写进各平台配置。
  • visualize:2.3.9 起可以只画某个邻域而不是整个仓库;D3 页面在节点超过 3,000 或边超过 9,000 时退化成每个社区一个气泡。django 的浅克隆是 45,111 个节点、397,762 条边,分别超出这两个阈值 15 倍和 44 倍。
  • CLI 优先的工作流:2.3.7 扩展了命令行优先的用法、CommonJS 解析、quiet 与 JSON 输出、enrichment 和死代码分析。
  • 上下文节省可视化:2.3.5 把 2.3.4 里只存在于 JSON 的估算节省指标做成 CLI 上的方框面板,并可用一个 flag 拿真实 tokenizer 核验。
  • 卸载:uninstall 删除 CRG 自己的文件与条目,保留其他 MCP server、hooks、skills 与 JSONC 注释。共享配置文件原子替换,写失败时原文件不动。

参数与配置

常用参数

  • --platform <name>:只配置指定平台,取值见上面的平台清单。
  • uninstall --dry-run:只预览要删什么,不落盘。
  • uninstall:预览、确认、执行三步。
  • uninstall --yes:跳过询问直接执行。
  • uninstall --all-repos:同时清理所有已注册的仓库。
  • uninstall --keep-data:移除集成,保留图数据库。
  • uninstall --keep-user-configs --repo .:只清理当前项目。

配置文件

仓库根目录下有 .mcp.json(0.1 KB)和 pyproject.toml(6.8 KB)。各平台配置文件的具体位置列在 docs/USAGE.md 的 supported-platforms 一节,仓库没有在这里展开。

根目录还有 action.yml(7.8 KB),说明项目带一个 GitHub Action,对应文档是 docs/GITHUB_ACTION.md。基准复现步骤写在 docs/REPRODUCING.md。

实际使用中的坑

  • Claude Code 里插件加载失败(已解决):插件 v2.10 在 Claude Code 下装不上,原因是 hook 事件名无效、hooks/hooks.json 里缺少 hooks 数组。涉及 Claude Code v2.1.92,这是评论数最多的一个 issue。
  • Windows 11 上经 MCP 审查极慢(待解决):CLI 的图操作本身很快,但从 Claude Code、Codex CLI、Gemini CLI 走 MCP 就很慢。这条到抓取时仍是开放状态。
  • 构建耗时过长(已解决):一个 Python 加 Vue 前端的项目,25,000 行代码,构建 15 分钟以上没跑完,CPU 占用很低,看起来像卡住。同类反馈在 Windows 11 上还有若干条构建与嵌入静默挂起的报告,均已解决。
  • 盲目启用反而降低代码理解(已解决):注入的指令推动 agent 总是先走 code-review-graph,实测模型速度变快但对代码的理解明显变差。这条提醒的是使用方式,不是工具本身的缺陷。

几个同类怎么选

项目适合谁部署方式主要限制什么情况下选它更合适项目地址
code-review-graph在 Claude Code、Cursor、Codex 等工具里做日常代码审查,仓库文件上千、需要控住上下文长度的开发者pip install 后用 code-review-graph install 自动写入各平台 MCP 配置仓库没有说明一定会上传代码,但 Windows 上经 MCP 的审查速度有未解决的反馈;部分平台接入仍需手改配置仓库大、审查频繁,想让助手只读改动波及的文件code-review-graph
firelock-ai/kin希望版本库本身就以图的形式组织、同时给人和 AI agent 用的团队仓库没有说明星标规模远小于本项目,其余能力未逐一核实想让仓库结构本身是图,而不只是给审查加一层本地索引firelock-ai/kin
cognitx-leyton/codegraph主要在 Claude Code 里工作、以 TypeScript 为主的开发者仓库没有说明索引范围以 TypeScript 等语言为主,其余能力未逐一核实主力语言是 TypeScript,想要的索引范围更窄更聚焦cognitx-leyton/codegraph

主力语言是 TypeScript、又只需要覆盖 Claude Code 一个平台,codegraph 的应用面更窄但也更聚焦;希望仓库本身以图结构存在,而不只是给审查加一层本地索引,kin 的思路不一样。code-review-graph 的强项在大仓库的爆炸半径分析和十六个平台的覆盖面,代价是 Windows 上经 MCP 的路径目前仍有未解决的性能反馈,重度依赖 MCP 的 Windows 用户可以先去对比项那边看看。

适合谁

如果你在 Claude Code、Cursor、Codex CLI 这类工具里频繁审查改动,仓库文件数量上千、每次让模型读整个仓库不现实,code-review-graph 值得装一次试试。它在本地建图、增量更新,平台覆盖面是它最突出的部分。

如果项目只有几百个文件,冷构建和 MCP 配置的成本可能大过省下的 token。如果你不接受在 Windows 上走 MCP 路径可能很慢,也需要先确认再上。

焚评:这个项目的量化评分

本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.9 分(满分 10)。下表是各维度的得分:

评分维度得分
热度动量(权重 25%)10.0 / 10
开发活跃(权重 25%)9.5 / 10
社区响应(权重 15%)10.0 / 10
文档质量(权重 15%)10.0 / 10
发布节奏(权重 10%)9.7 / 10
风险控制(权重 10%)10.0 / 10

评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。

内容核验说明

把「少给 AI 喂无关代码」做成可本地跑的方案:Tree-sitter 建图、按改动算影响范围、经 MCP 交给助手,安装到增量的步骤能照着走。值得留的是平台覆盖面和对仓库大小的取舍判断。适合文件上千、在 Claude Code 或 Cursor 里频繁审查的人;几百个文件的项目,配置成本可能盖过省下的 token。

冷构建约 40 秒、改两个文件约 2.5 秒、D3 退化阈值等数据来自作者公开文档与发布说明,诀.com 未独立验证,文中也无实测。Windows 经 MCP 慢、部分平台需手改配置属仓库 Issue 中尚未解决的反馈;经验型结论不保证复现。

项目来源与说明

开源项目:tirth8205(tirth8205)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库