跳至内容

CLI 命令

aicr CLI(由 packages/cli 构建)是服务、一次性评审、eval、replay、memory 查看和模板 校验的入口。先用 pnpm build 构建,再通过 Node 调用:

终端窗口
node packages/cli/dist/index.js <command> [options]

在 Linux/CI 等 pnpm 可直接运行的环境中,调用方式相同。随时用 --help / -h 查看帮助。

命令 用途
serve 启动 webhook 服务
review 运行代码评审(prompt 准备或完整 dry-run)
eval 对配置的 LLM 运行评测基准
replay 回放已存储的评审 run 脚手架
memory 查看或清除 workspace memory
migrate 查看或应用 schema 迁移账本
lint 校验模板或配置脚手架
doctor 打印环境诊断信息
help 显示帮助信息
参数 说明
--config <path> 配置 YAML 文件路径
--workspace <id> Workspace ID
--help, -h 显示帮助
--version, -v 显示版本

启动接收 webhook 和 trigger 事件的 HTTP 服务。

终端窗口
node packages/cli/dist/index.js serve \
--config example/config.yaml \
--port 8080
参数 说明
--port <number> HTTP 监听端口(默认取 server.port,否则 8080)
--base-prompt <path> 基础 system prompt 模板路径(默认 prompts/system/code-reviewer.system.md)

服务暴露 /healthz、/readyz、/metrics、/dashboard、/api/admin/*、/webhooks/*、 /triggers/*。各路由的鉴权方式见认证与密钥。

收到可捕获的 SIGTERM 或 SIGINT 时,serve 停止入口和 claim,等待已接收请求、 审查、输出发布及结果落库,再关闭存储和队列连接。迁移前必须等到 AICR server drained and closed. 及进程退出。排空失败时命令返回 1;只要旧进程 仍在运行,就不能据此开始迁移。强制终止(包括 Windows 进程终止)不证明已排空。

不启动常驻服务,运行单次评审。加 --dry-run 会准备并运行评审,但跳过所有输出通道。

终端窗口
node packages/cli/dist/index.js review \
--config example/config.yaml \
--repo "my-org/my-repo" \
--provider gitea \
--source-root . \
--dry-run
参数 说明
--repo <ref> 仓库引用(owner/repo)
--provider <name> 配置 schema 中的 trigger provider 类型
--trigger <name> Trigger 名称
--reason <text> 评审原因
--source-root <path> 源码根目录
--base-prompt <path> 基础 system prompt 模板路径
--changed-file <path> 变更文件(可重复)
--base-sha <sha> Base revision SHA
--head-sha <sha> Head revision SHA
--url <url> PR / MR / commit URL
--author-username <u> 作者用户名
--author-email <e> 作者邮箱
--author-display-name <n> 作者显示名
--operator-override <kv> 操作员覆盖项(可重复)
--memory-hint <text> 传给评审的 memory 提示(可重复)
--task-context <text> 额外任务上下文
--dry-run 运行但不发布到输出通道
--max-prompt-tokens <n> Prompt token 预算上限

运行评测 fixture。无密钥时,--validate-only 只校验 fixture 结构和预期 problem 格式—— 这是 CI 运行的模式。

终端窗口
# 仅校验 fixture(无需 LLM、无需 config 密钥)
node packages/cli/dist/index.js eval --validate-only
# 完整基准运行(加载 config + LLM;需要 AICR_LLM_API_KEY 等)
node packages/cli/dist/index.js eval --eval-dir eval/
参数 说明
--eval-dir <path> 包含 eval JSON fixture 的目录
--validate-only 仅校验 fixture,不加载 config 或 LLM
--base-prompt <path> 基础 system prompt 模板路径

Fixture 位于 eval/*.json。根 CI 流水线在每次变更时运行 pnpm eval:validate (即 eval --validate-only)。

回放已存储的评审 run 脚手架——用于从已捕获的输入复现历史 run,无需重新从 VCS 拉取。

终端窗口
node packages/cli/dist/index.js replay \
--config example/config.yaml \
--run-id <id>
参数 说明
--run-id <id> 要回放的 run ID
--workspace <id> run 所在的 workspace(默认 default)
--source-root <path> 源码根目录

查看或清除 workspace 反思/memory 脚手架。memory 按 workspace 隔离;清除不会跨 workspace。

终端窗口
# 查看 workspace 的 memory
node packages/cli/dist/index.js memory --workspace <id>
# 包含完整文件内容
node packages/cli/dist/index.js memory --workspace <id> --all
# 清除特定 scope(如 false-positives)
node packages/cli/dist/index.js memory clear --workspace <id> --scope false-positives
参数 说明
--workspace <id> Workspace ID
--scope <scope> 清除的 memory scope(false-positives、recurring-issues 等)
--all memory show 时包含完整文件内容

memory 子命令:show(默认)、clear。

在不启动服务的情况下查看或应用部署数据库(storage.database)的 schema 迁移账本。该命令与服务启动使用同一个 migration runner; storage.database.migrate 控制启动行为(auto / verify)。

终端窗口
node packages/cli/dist/index.js migrate --check \
--config example/config.yaml
标志 说明
--status 只读账本报告(JSON)。退出码 0。
--check 只读门禁。干净退出 0,有待执行迁移退出 1,checksum 漂移或未知更高 schema 退出 2。
--apply 应用待执行迁移。成功退出 0;账本不安全(漂移/更高 schema)退出 2。

--status、--check、--apply 必须且只能指定一个。--status 与 --check 不会创建或修改数据库文件。checksum 漂移与未知更高 schema 永不 自动修复(退出码 2)。sqlite 与 postgres 均报告并升级 config 和 store 命名空间,仅配置账本最新不足以通过检查。SQLite 相对路径以命令工作目录解析, --apply 创建缺失的父目录。PostgreSQL 使用 postgres.url_env,以 postgres.url 为回退。连接失败同样退出 2;status/check 不创建 schema 或表。

校验模板或配置脚手架。针对示例上下文渲染单个模板,在部署前捕获模板错误。

终端窗口
node packages/cli/dist/index.js lint \
--template path/to/template.hbs \
--template-kind summary
参数 说明
--template <path> 要渲染和校验的模板文件
--template-kind <kind> 模板类型:summary 或 problem
--channel-kind <kind> 校验示例上下文使用的输出 channel 类型

以 JSON 打印环境诊断:当前工作目录、Node 版本和解析到的配置文件路径。排障时建议 作为第一步。

终端窗口
node packages/cli/dist/index.js doctor --config example/config.yaml

doctor 只接受全局 --config 参数。