tirth8205 /code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

★ 32,681⑂ 2,973
PythonCreated 2026-02-26code-review-graph.com
32,681
stars
+100+119+753
2,973
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

code-review-graph


  
    
  



  本地代码知识图谱,通过 MCP 为 AI 编码工具提供精准的审查上下文。


  English |
  简体中文 |
  日本語 |
  한국어 |
  हिन्दी



  
  
  
  
  
  
  
  
  



  使用说明 ·
  命令 ·
  常见问题 ·
  故障排查 ·
  GitHub Action ·
  复现基准测试 ·
  路线图




AI 编码工具为了审查一次改动,常常要重新读取代码库的大部分内容。code-review-graph 用 Tree-sitter 构建代码的结构图,增量保持更新,并通过 MCP 提供紧凑的上下文,让助手只读取改动涉及的文件。


  


---

 快速开始

bash
pip install code-review-graph           or: pipx install code-review-graph
code-review-graph install               detect installed AI coding tools and configure each one
code-review-graph build                 parse the codebase


install 会检测你安装了哪些 AI 编码工具,为每个工具写入一条 MCP 服务器配置,在平台支持的地方安装钩子和技能,并把图谱说明加入平台的规则文件。在 Poetry 或 uv 项目环境中,MCP 配置使用 poetry run 或 uv run;当 PATH 上有 uvx 时使用 uvx code-review-graph serve;否则使用当前的 Python 解释器。安装后请重启编辑器或工具。


  


只配置一个平台时,给 --platform 传入 codex、claude-code、cursor、windsurf、zed、continue、opencode、antigravity、gemini-cli、qwen、kiro、qoder、copilot、copilot-cli、codebuddy 或 hermes 之一:

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


配置文件的位置列在 docs/USAGE.md 中。需要 Python 3.10+。

uninstall 会从 Git 或 SVN 工作树中移除 CRG 自己写入的文件和配置项,不动其他 MCP 服务器、钩子、技能和 JSONC 注释。在工作树内的任意位置运行即可。共享配置文件采用原子替换,写入失败时原文件保持完整。

bash
code-review-graph uninstall --dry-run     preview only
code-review-graph uninstall               preview, confirm, apply
code-review-graph uninstall --yes         apply without prompting
code-review-graph uninstall --all-repos   also clean every registered repository
code-review-graph uninstall --keep-data   remove integrations, keep graph databases
code-review-graph uninstall --keep-user-configs --repo .   this project only


然后打开项目,对助手说:


Build the code review graph for this project


构建时间随仓库规模增长;一个约 3,000 个文件的仓库冷构建约需 40 秒(实测)。之后由钩子和 watch 模式保持图谱更新。如果部分文件解析失败,结果状态为 partial 并在摘要中列出这些文件;CLI 还会在 stderr 上打印一行 Warning:,这些文件保留原有的图谱记录。


 工作原理


  


仓库通过 Tree-sitter 解析为 AST,并以节点(函数、类、导入)和边(调用、继承、测试覆盖)的形式存为图谱。审查时查询图谱,得到助手需要读取的最小文件集合。


  


 影响半径分析

文件变更时,图谱会追踪所有可能受影响的调用者、依赖方和测试。助手读取这些文件,而不是扫描整个项目。


  


 增量更新

钩子、pre-commit 钩子和 watch 模式都会触发增量更新。更新时对变更文件做 diff,沿图谱的导入边和调用边找出依赖方,并只重新解析 SHA-256 哈希发生变化的文件。在一个约 3,000 个文件的项目(django)上,修改两个文件后沿钩子路径重新索引约需 2.5 秒,其中约 1.4 秒是进程启动;空更新只花这段启动时间。参见增量更新延迟。


  


 整个代码库,还是有的放矢的回答?

图谱不会把整个语料喂给模型,而是返回按问题裁剪的切片。在 2026-08-02 对本仓库 84bde354 的快照中,208,821 个源码 token 变成每个问题约 3,190 个 token。此后仓库增长了很多,所以今天这两个数字都更大。


  


 语言覆盖与笔记本


  


解析器提取函数、类、导入、调用点、继承和测试:有语法的地方用 Tree-sitter,其他地方用有针对性的回退解析。支持范围:Python、JavaScript/TypeScript/TSX、Go、Rust、Java、C/C++、C、VB.NET、Ruby、Kotlin、Swift、PHP、Scala、Solidity、Dart、R、Perl、Lua/Luau、Objective-C、shell 脚本、Elixir、Zig、PowerShell、Julia、ReScript、GDScript、Nix、Verilog/SystemVerilog、SQL、Terraform/OpenTofu(.tf;其他 .hcl 文件只生成文件节点)、Ansible YAML(playbook、role、task)、Spring Boot 应用配置(application.properties、application.yml、application.yaml 及其 application- 变体;只记录键名和值的类型,绝不记录值)、Vue/Svelte 单文件组件、Astro 文件(用 TypeScript 语法解析)、Jupyter 和 Databricks 笔记本(.ipynb),以及 Perl XS 文件(.xs)。其他 YAML 和其他 .properties 文件不

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON