命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
非交互式运行代码审查,输出发现结果到标准输出
claude ultrareview [target]claude ultrareview 1234 --jsonclaude ultrareview 是在 shell 里运行的非交互式子命令。它启动与会话内 /code-review ultra 相同的 ultrareview:一个跑在 Anthropic 云端沙箱里的多 agent 深度代码审查。命令会阻塞到远端审查结束,把发现结果打印到 stdout。
官方 CLI reference 的定义是:"Run ultrareview non-interactively. Prints findings to stdout and exits 0 on success or 1 on failure."
官方文档对 ultrareview 本身的描述:
claude ultrareview [target]
官方文档给出的 target 形式:
claude ultrareview # 当前分支相对默认分支的 diff
claude ultrareview 1234 # 审查 PR #1234
claude ultrareview origin/main # 相对指定 base 分支审查
claude ultrareview 1234 --json # CLI reference 中的官方示例
不带参数时,审查范围是当前分支与默认分支之间的 diff,包含未提交和已 staged 的改动。当分支与 base 没有共同历史(no merge base)时,会退化为审查仓库中所有 tracked 文件。
| Flag | 说明 |
|---|---|
--json | 输出原始 bugs.json payload,而不是格式化后的 findings |
--timeout <minutes> | 等待审查完成的最长分钟数,默认 45 |
--post | 在 github.com 的 PR 目标上,把完成的 findings 以一条普通评论发到 PR,身份是你的 GitHub 账号。其他目标上该 flag 会被忽略并给出提示。需要 Claude Code v2.1.227 或更高版本 |
--no-post | 不发布 findings,这是默认行为。同时传两个 flag 时不会发布。需要 v2.1.227 或更高版本 |
| 退出码 | 含义 |
|---|---|
0 | 审查完成,无论有没有 findings |
1 | 启动失败、云端 session 出错,或超时 |
130 | 你用 Ctrl-C 中断了子命令 |
退出码 0 不代表没有 bug。 它只表示审查跑完了,判断有无问题需要解析输出。
输出流分工:
--json 时为原始 bugs.json payload。--post 时,发布评论的链接也打印到 stderr。官方文档没有给出 bugs.json 的字段结构,下游解析前请先用真实输出确认。
因为进度信息走 stderr,可以直接把 stdout 重定向到文件:
# 保存原始 payload,进度仍显示在终端
claude ultrareview 1234 --json > bugs.json
# 限制最长等待 20 分钟
claude ultrareview origin/main --timeout 20
# 在 github.com PR 上审查并把 findings 发布为一条 PR 评论
claude ultrareview 1234 --post
--post 的行为(据官方文档):
若你想要 GitHub PR 上的自动审查且不写 CLI 步骤,官方文档指向 Code Review,它直接集成到仓库并以行内评论发布 findings。
claude ultrareview | /code-review ultra(会话内) | claude -p '/code-review ultra' | |
|---|---|---|---|
| 是否阻塞到出结果 | 是 | 否,后台运行,完成后以通知展示 | 否,启动审查并打印跟踪链接后即退出 |
| 启动前确认 | 无。运行子命令即视为同意 whole-repo fallback 和计费/条款提示 | 弹出确认对话框,含范围、剩余免费次数和预估费用 | 会消耗 usage credits 时会拒绝启动,并指引你改用 claude ultrareview |
--post | 传 flag 即视为同意,不再询问 | 启动对话框中选择,或带 --post 预选后仍会询问 | 不会发布任何内容 |
/ultrareview 在账号可用 ultrareview 时是 /code-review ultra 的别名。
claude -p '/code-review ultra' 这种用法要求 Claude Code v2.1.218 或更高版本。在 v2.1.218 之前,非交互会话里的 /code-review ultra 运行的是本地审查。
| 约束 | 原因 / 来源说明 |
|---|---|
| 需要 claude.ai 账号认证 | 审查是 Anthropic 基础设施上的云端 session;仅用 API key 登录不行,需先 /login 用 claude.ai 认证 |
| 不支持 Amazon Bedrock、Google Cloud Agent Platform、Microsoft Foundry | 官方文档明确列出不可用 |
| 启用了 Zero Data Retention 的组织不可用 | 官方文档明确列出 |
| 需要开启 usage credits(超出免费次数后) | ultrareview 计入 usage credits,而非套餐内含用量;未开启时启动被阻止 |
| 分支审查默认最多 500 个变更文件、8,000 个变更行 | 官方文档称具体数值可能变化,拒绝信息会给出实际生效的值 |
--post 仅对 github.com 的 PR 生效 | 分支审查和 GitHub Enterprise Server PR 只在会话里显示 findings;其他目标上 flag 被忽略 |
| PR 模式要求所连接的 GitHub 账号能读取该仓库 | 云端沙箱用你 Claude 账号连接的 GitHub 账号 clone。文档称 v2.1.248 起会在创建云端 session 前检查,此前不检查 |
| 无 merge base 时需完整 clone | 退化为审查全部 tracked 文件,同样适用大小限制 |
检出没有任何分支或 ref(如 FETCH_HEAD 产生的 detached HEAD)时拒绝审查 | 需先创建一个分支 |
claude ultrareview <PR 号>。此时 Claude Code 不上传本机任何内容,沙箱直接从托管方 clone PR。claude ultrareview origin/main,或其他 base 分支名。--json 输出 bugs.json payload。1,且不会发布评论。--post 与 --no-post 同时传时不发布,以 --no-post 为准。claude -p '/code-review ultra' 代替子命令。 它在 findings 到达前就退出,不会发布任何内容。docs.claude.com/en/docs/claude-code/cli-reference 会 301 重定向到此)