把一个 AI Agent 的任务,顺手派给另一家本机 AI CLI。
Claude、Codex、OpenCode、Antigravity/Gemini、Grok、Cursor 在 ai-dispatch 里都是同级 provider。你不用关心底层命令怎么拼,只要告诉当前 Agent:“用 ai-dispatch 找 Claude / Codex / OpenCode / Gemini / Grok / Cursor 看一下”。
适合:
- 让另一个模型做严格 review。
- 让一个模型实现,另一个模型复查。
- 找第二视角,避免单模型盲区。
- 把同一问题交给多个模型对照。
- 在上一轮外部模型结果上继续追问。
ai-dispatch 是本地运行的薄 runtime:它只负责安装入口、模型短名路由、调用 provider、记录结果和继续会话,不替你做产品决策。
有 Node.js 时,直接安装 CLI:
npm install -g ai-dispatch
ai-dispatch doctor一次性执行可以用:
npx --yes ai-dispatch doctornpm 包会下载与包版本一致的 GitHub Release 原生二进制,并校验 SHA-256。它只安装 CLI;Claude Code 和 Codex skill 仍按下面方式安装。
通过 Homebrew 安装:
brew install rennzhang/tap/ai-dispatch没有 Node.js,或希望一次安装 CLI 和两个 skill 时:
curl -fsSL https://raw.githubusercontent.com/rennzhang/ai-dispatch/main/scripts/install-remote.sh | bash安装后可以直接调用:
ai-dispatch doctor要确认 PATH、skill 或 npm 入口实际运行的是哪一份构建:
ai-dispatch version --format json以返回的 version、revision、modified 为准;不要只看安装目录里的 VERSION 文件。
只安装 CLI:
AI_DISPATCH_SKILL_TARGET=none \
curl -fsSL https://raw.githubusercontent.com/rennzhang/ai-dispatch/main/scripts/install-remote.sh | bash安装给 Claude Code:
npx skills add rennzhang/ai-dispatch -g --agent claude-code安装给 Codex:
npx skills add rennzhang/ai-dispatch -g --agent codex两个都装:
npx skills add rennzhang/ai-dispatch -g --allnpx skills add 只安装 skill;skill 会按需准备 runtime。需要人或脚本直接调用 CLI 时,用上面的 curl 安装。
安装后,在终端、Claude 或 Codex 里都可以直接用。
让 Claude Opus 做发版前 review:
请用 ai-dispatch 调 Claude Opus 对当前 diff 做交付级 review。
重点看 blocker/high risk、过度设计、漂移、兼容层和发布风险。
只输出 findings first,最后给是否可以发版。
让 Codex 帮你实现:
请用 ai-dispatch 调 Codex 实现这个修复。
保持最小改动,完成后跑测试,把关键 diff 和验证结果带回来。
让多个模型一起看:
请用 ai-dispatch 找 opus、glm、gemini-pro、kimi 各自独立 review 当前变更。
最后汇总共识、冲突点和必须立刻修的项。
如果上一轮外部模型返回了可继续的会话,直接让当前 Agent 追问它:
继续追问刚才那个 Claude reviewer:
它提到的 P1 里哪些必须现在修,哪些可以发版后处理?
你不需要自己管理 session id;Agent 会从 ai-dispatch 的返回结果里拿。
短名必须写进 ~/.ai-dispatch/config.json 的 models。没写进去的 kimi / qwen / gpt5.5 这类词会直接失败。
你也可以直接说 provider 名:codex、claude、cursor、grok、opencode。
ai-dispatch 有两个用户态文件:
-
~/.ai-dispatch/config.json的models字段:你这台机器已添加的模型短名和候选池。 -
~/.ai-dispatch/config.json的user_facing_summary:是否在回复里贴调用卡片,默认关闭。设为true开启。 -
~/.ai-dispatch/preferences.md:你喜欢在什么场景用哪些模型。
短名不会开箱即用。先把确认能用的模型写进 config.json models,再在 preferences.md 里写场景偏好。
更新可用模型池时,可以直接说:
请帮我更新 ai-dispatch 的可用模型池。
把我确认能用的模型短名写进 ~/.ai-dispatch/config.json 的 models 字段:
<short-name> 走 <provider>/<model-id>,必要时再加一个 fallback 候选。
更新场景偏好时,可以直接说:
请帮我更新 ai-dispatch 的模型偏好。
review 场景优先用 <review-target>;代码实现优先用 <coding-target>。
写进 ~/.ai-dispatch/preferences.md,保持简短清楚。
ai-dispatch 当前内置支持六类本机 CLI provider:
| Provider | 底层 CLI | 常见用途 |
|---|---|---|
| Codex | codex exec |
实现、修复、仓库内工程推进 |
| Claude |
claude -p 或 PTY |
高风险 review、判断、复杂推理 |
| OpenCode | opencode run |
OpenRouter / OpenAI / Google 等模型 |
| Antigravity/Gemini | agy --print |
Gemini / Antigravity 视角 |
| Grok | grok --output-format streaming-json |
Grok Build CLI,快速实现、分析、并行探索 |
| Cursor | cursor-agent --print --output-format stream-json |
Cursor 订阅内 Claude/GPT/Gemini/Kimi/Composer 模型 |
想接入更多 CLI provider 或参与贡献,见 issue #1。
日常使用先看本 README。需要底层细节时再看:
- 技术篇:CLI、JSON 结果、run history、provider scan、failure_class、发布。
- 架构设计:包边界、请求流程、状态目录。
- Changelog:公开版本变更记录。
- Provider Acceptance:新增或回归 provider 的真实验收 harness。
-
配置参考:
config.json字段和模型路由。 -
偏好格式:
preferences.md怎么维护。
跨 provider 可用顶层 --effort 控制推理档位:
ai-dispatch send gpt5.6 "implement the fix" --effort xhigh --json-resultCodex 短名(gpt5.6-sol 等)需要写进 config.json。裸 send codex 使用 Codex CLI 自己的默认模型。
合法值:auto | none | minimal | low | medium | high | xhigh | max。省略或 auto 表示不覆盖各 CLI 默认。只有当前 provider/模型确认支持的精确档位才会传递;否则回到 auto,结果里会带 requested_effort / applied_effort / effort_fallback_reason,不会静默降到相邻档。详见 Reasoning Effort 设计。
所有 provider 统一接受顶层 --fast:
ai-dispatch send gpt5.6-luna "implement the fix" --fast --json-result当前 Codex GPT-5.5/5.6 target 会应用 priority service tier。其他 provider 暂未确认有等价能力时仍按标准速度执行一次,并在结果里明确返回 requested_fast=true、applied_fast=false 和 fast_fallback_reason;不会静默声称已加速,也不会因此设置 degraded 或写入通用 warnings。切换前可用 ai-dispatch models resolve <target> --format json 读顶层 fast。
ai-dispatch 调的是你本机已安装的 AI CLI。某些 provider 可以读写文件或执行命令;只在你愿意交给这些 CLI 的工作区里使用。
Grok provider 为了非交互式执行默认使用 grok.approval=always。处理不可信 prompt 或不希望自动批准工具/文件操作时,传 --provider-opt grok.approval=default。
Cursor provider 默认只信任工作区(--trust),不自动批准工具/文件操作;需要全自动执行时显式传 --provider-opt cursor.approval=always。Cursor 模型 ID 自带推理档位后缀(如 claude-fable-5-thinking-high),不接收 --effort 精确档位;需要其它档位时换用带对应后缀的短名。