Open Code Review 是什么?
Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它的前身是阿里集团内部官方 AI 代码审查助手,过去两年在内部服务了数万开发者,识别了数百万个代码缺陷。经过大规模充分验证后,我们将其孵化为开源项目,对社区开放。只需配置一个模型端点即可使用。
它读取 Git diff,通过具备工具调用能力的 Agent 将变更文件发送至可配置的 LLM,生成具有行级精度的结构化审查意见。Agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,从而进行深度审查——而非仅停留在表面的 diff 反馈。

为什么选择 Open Code Review?
通用 Agent 的局限
如果你深度用过 Claude Code 等通用 Agent + Skills 方案做代码审查,可能对以下问题深有同感:
这些问题的根源在于:纯语言驱动的架构缺乏对审查流程的强约束。
核心设计:确定性工程 × Agent 混合驱动
Open Code Review 的核心设计理念是将确定性工程与 Agent 结合,各司其职。
确定性工程——负责强约束
对代码审查场景中"不能出错"的环节,由工程逻辑而非语言模型来保证:
message_en.properties 与 message_zh.properties 会被打包在一起)。每个包会作为 sub-agent 进行任务,它们之间的上下文是隔离的——这一分治策略在超大变更场景下表现更为稳定,同时天然支持并发审查。Agent——负责动态决策
将 Agent 的优势集中发挥在它真正擅长的地方——动态决策、动态召回上下文:
如何使用
CLI
#### 安装
通过 NPM 安装(推荐)
npm install -g @alibaba-group/open-code-review
安装后,ocr 命令即可全局使用。
从 GitHub Release 下载
从 GitHub Releases 下载最新二进制文件:
# macOS (Apple Silicon)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-arm64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# macOS (Intel)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-amd64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Linux (x86_64)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-amd64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Linux (ARM64)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-arm64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
# Windows (x86_64) — 将 ocr.exe 移动到 PATH 目录中
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-amd64.exe
# Windows (ARM64) — 将 ocr.exe 移动到 PATH 目录中
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-arm64.exe
从源码构建
git clone https://github.com/alibaba/open-code-review.git
cd open-code-review
make build
sudo cp dist/opencodereview /usr/local/bin/ocr
#### 快速开始
1. 配置 LLM
在审查代码之前,必须先配置 LLM。
# 方式 A:交互式配置
ocr config set llm.url https://api.anthropic.com/v1/messages
ocr config set llm.auth_token your-api-key-here
ocr config set llm.model claude-opus-4-6
ocr config set llm.use_anthropic true
# 方式 B:环境变量(优先级最高)
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
export OCR_LLM_TOKEN=your-api-key-here
export OCR_LLM_MODEL=claude-opus-4-6
export OCR_USE_ANTHROPIC=true
配置存储于 ~/.opencodereview/config.json。
同时兼容了 Claude Code 环境变量(ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL),并解析 ~/.zshrc / ~/.bashrc 中的相关导出。
2. 测试连通性
ocr llm test
3. 开始审查
cd your-project
# 工作区模式 —— 审查所有暂存、未暂存和未跟踪的变更
ocr review
# 分支范围 —— 比较两个引用
ocr review --from main --to feature-branch
# 单个提交
ocr review --commit abc123
集成到编程 Agent
OCR 可以无缝集成到 AI 编程 Agent 中,作为斜杠命令使用,在 Agent 工作流中直接进行代码审查。
#### 方式一:作为 Skill 安装
使用 npx 将 OCR skill 安装到项目中:
npx skills add alibaba/open-code-review --skill open-code-review
此命令从 skills 注册表安装 open-code-review skill,教会你的编程 Agent 如何调用 ocr 进行代码审查、按优先级分类问题,并可选择性地应用修复。
#### 方式二:作为 Claude Code Plugin 安装
对于 Claude Code,在 Claude Code 中通过以下命令安装命令插件:
/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review
此命令注册 /open-code-review:review 斜杠命令,运行 OCR 并自动过滤和修复问题。
#### 方式三:直接复制命令文件
如果不想使用任何包管理器,可以直接复制命令文件,在 Claude Code 中使用 /open-code-review 斜杠命令。
项目级(通过 git 与团队共享):
mkdir -p .claude/commands
curl -o .claude/commands/open-code-review.md
https://github.com/alibaba/open-code-review/blob/main/plugins/open-code-review/commands/review.md
用户级(个人全局使用,适用于所有项目):
mkdir -p ~/.claude/commands
curl -o ~/.claude/commands/open-code-review.md
https://github.com/alibaba/open-code-review/blob/main/plugins/open-code-review/commands/review.md
> 前置条件:所有集成方式都需要安装 ocr CLI 并配置 LLM。参见上方安装和配置 LLM。
CI/CD 集成
OCR 可以集成到 CI/CD 流水线中,在 Merge Request / Pull Request 时自动进行代码审查。
CI 集成的核心命令:
ocr review
--from "origin/main"
--to "origin/feature-branch"
--format json
--format json 参数输出适合 CI 脚本解析的机器可读结果。
集成示例请参见 examples/ 目录:
github_actions/ — GitHub Actions 集成示例gitlab_ci/ — GitLab CI 集成示例命令
| 命令 | 别名 | 描述 |
|------|------|------|
| ocr review | ocr r | 开始代码审查 |
| ocr rules check <file> | — | 预览某个文件路径生效的审查规则 |
| ocr config set <key> <value> | — | 设置配置项 |
| ocr llm test | — | 测试 LLM 连通性 |
| ocr viewer | ocr v | 启动 WebUI 会话查看器,地址 localhost:5483 |
| ocr version | — | 显示版本信息 |
ocr review 参数
| 参数 | 缩写 | 默认值 | 描述 |
|------|------|--------|------|
| --repo | — | 当前目录 | Git 仓库根目录 |
| --from | — | — | 源引用(如 main) |
| --to | — | — | 目标引用(如 feature-branch) |
| --commit | -c | — | 审查单个提交 |
| --preview | -p | false | 预览将被审查的文件列表,不调用 LLM |
| --format | -f | text | 输出格式:text 或 json |
| --concurrency | — | 8 | 最大并发文件审查数 |
| --timeout | — | 10 | 并发任务超时时间(分钟) |
| --audience | — | human | human(显示进度)或 agent(仅输出摘要) |
| --rule | — | — | 自定义 JSON 审查规则路径 |
| --max-tools | — | 内置默认 | 每个文件的最大工具调用轮次;仅在大于模板默认值时生效 |
| --tools | — | — | 自定义 JSON 工具配置路径 |
示例
# 预览将被审查的文件(不调用 LLM)
ocr review --preview
ocr review -c abc123 -p
# 使用默认设置审查工作区变更
ocr review
# 以更高并发审查分支差异
ocr review --from main --to my-feature --concurrency 4
# 审查特定提交并以 JSON 格式输出详细信息
ocr review --commit abc123 --format json --audience agent
# 使用自定义审查规则
ocr review --rule /path/to/my-rules.json
# 预览某个文件路径生效的规则
ocr rules check src/main/java/com/example/Foo.java
ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
# 在浏览器中查看审查会话历史
ocr viewer
ocr viewer --addr :3000
评审规则
OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则:如果文件路径匹配到某个模式,则使用该规则;否则穿透到下一层。
| 优先级 | 来源 | 路径 | 描述 |
|--------|------|------|------|
| 1(最高) | --rule 参数 | 用户指定路径 | CLI 显式覆盖 |
| 2 | 项目配置 | <repoDir>/.opencodereview/rule.json | 项目级规则,可提交到 git |
| 3 | 全局配置 | ~/.opencodereview/rule.json | 用户级个人偏好 |
| 4(最低) | 系统默认 | 内嵌 system_rules.json | 覆盖常见语言和文件类型的内置规则 |
规则文件格式
第 1–3 层使用相同的 JSON 格式:
{
"rules": [
{
"path": "force-api/**/*.java",
"rule": "所有新方法必须对必填参数进行空值校验"
},
{
"path": "**/*mapper*.xml",
"rule": "检查 SQL 注入风险、参数错误和缺少闭合标签"
}
]
}
path 支持 ** 递归匹配和 {java,kt} 大括号展开。配置参考
配置文件:~/.opencodereview/config.json
| 键 | 类型 | 示例 |
|----|------|------|
| llm.url | string | https://api.openai.com/v1/chat/completions |
| llm.auth_token | string | sk-xxxxxxx |
| llm.model | string | claude-opus-4-6 |
| llm.use_anthropic | boolean | true | false |
| language | string | English | Chinese(默认:Chinese) |
| telemetry.enabled | boolean | true | false |
| telemetry.exporter | string | console | otlp |
| telemetry.otlp_endpoint | string | OTLP 采集器地址 |
| telemetry.content_logging | boolean | 在遥测数据中包含提示词 |
环境变量优先级高于配置文件。
环境变量
| 变量 | 用途 |
|------|------|
| OCR_LLM_URL | LLM API 端点 URL |
| OCR_LLM_TOKEN | API 密钥 / 认证令牌 |
| OCR_LLM_MODEL | 模型名称 |
| OCR_USE_ANTHROPIC | true = Anthropic,false = OpenAI |
遥测
OpenTelemetry 集成,用于可观测性(spans、metrics)。默认关闭。
ocr config set telemetry.enabled true
ocr config set telemetry.exporter otlp
ocr config set telemetry.otlp_endpoint localhost:4317
设置 telemetry.content_logging 可在导出数据中包含 LLM 提示词和响应。
贡献
参见 CONTRIBUTING.zh-CN.md 了解开发环境搭建、编码规范以及如何提交 Pull Request。
Star History
许可证
Apache-2.0 — Copyright 2026 Alibaba