同时用 Claude Code 和 Codex 的人,最后都会长出同一幅景象:六七个终端窗口,一个在写码、一个在审查、还有一个从上午十点起就卡在那儿等你回复,而你已经记不清哪个窗口在干什么。OpenRig(GitHub mvschwarz/openrig,Apache-2.0,npm 包 @openrig/cli,本篇基于 0.6.4)给这幅景象配上组织架构:它不包装模型,而是在 harness 之上加一层「队伍层」——用 YAML 声明座次与汇报关系,一条命令把整支队伍在 tmux 里拉起来,成员之间能互相通信,整支队伍可以快照冻结、断电重启后原样恢复。
它的核心主张一句话讲完:harness 包装模型,rig 包装 harness。Claude Code 与 Codex 可以坐在同一支队伍里——一个当 owner 负责实现,另一个当 checker 负责审查,用不同模型互为第二意见,避免「自己写的代码自己夸」。所有消息落本地 SQLite,所有会话状态可快照,官方还内置了从两人小队到完整产品班组的多套 starter 拓扑。
前置准备:Node.js 22 或 24(Apple Silicon 的 Mac 用 22);tmux;macOS 或 Linux;一个已登录的 Claude Code 或 Codex 账号(有哪家装哪家,不必两家都备)。
rig setup 会改动你的机器:写入 provider hooks 与 workspace trust 设置、改 tmux 配置、在 ~/.openrig 落实例状态、往 ~/.claude/skills 与 ~/.agents/skills 播种 openrig-skills 技能。动手前先读 README 的「What OpenRig changes on your machine」一节并备份相关文件;脏工作区里不要直接跑 setup。原生 Windows 不支持,WSL2 未测试——Windows 用户这轮先观望。
Step 1:安装与环境自检
全局装 CLI,然后用 dry-run 预览 setup 将要做的全部改动:
# 安装(Bun 用户:bun add -g @openrig/cli,但 Node 22 仍需在)
npm install -g @openrig/cli
# 预览 setup 会改什么(不落盘)
rig setup --dry-run
# 环境自检:三样东西各自可用
tmux -V
claude --version + claude auth status # 二选一即可
codex --version + codex login status
rig setup 本体做的是检查两个 harness 与 cmux(可选组件)——走「只用已选 provider」的路线时 cmux 可以不装。如果你不打算用它管 Codex,就别装 Codex、也别登录:缺失的未用 provider 不是安装前提,内核会自动在已认证的 provider 里挑可用的。
dry-run 的输出值得逐行读完:它就是你稍后真实 setup 的完整清单。看完心里有底再跑 rig setup,出了问题也知道该回滚哪里。
Step 2:起一支两人小队:owner 造,checker 查
官方内置三套入门拓扑,建议从 mixed 这套起步——Claude 当 owner 实现、Codex 当 checker 审查,天然形成跨模型第二意见:
# 三套 starter 任选其一
first-project # 两名 Codex 队员
first-project-claude # 两名 Claude 队员
first-project-mixed # Claude owner + Codex checker
# 在你的仓库根目录执行
cd /path/to/your/repository
starter=first-project-mixed
rig specs preview "$starter" --kind # 预览拓扑与命令
rig up "$starter" --cwd . --plan # 干跑计划
rig up "$starter" --cwd . # 真正起队
rig tui --shared # 打开共享仪表盘
起队后每个「座位」就是一个普通 tmux 会话,随时可以 attach 进去旁观智能体干活。TUI 里能看到拓扑图与每个座位的实时执行状态。要离开时按 Ctrl-b 再按 d 脱离,仪表盘继续在后台跑,队伍不散。
头一次 rig up 时,智能体会问你是否允许免重复确认地运行 OpenRig 命令——推荐选 Yes,但要知道这个授权默认是项目级范围,不是全局放行;回答 No 则保持每次询问,设置不会被改动。
mixed starter 显示的模型配置(如 Claude 默认模型 + gpt-6-astra)以你的账号实际支持为准,OpenRig 启动前会展示所选运行时、模型与命令并确认账号支持,不会静默回退到别的模型——看到模型名不对就停下来核对账号,而不是硬跑。
Step 3:派活与跨座通信:send 不等于建任务
队伍跑起来后,通信有三条通道——点名发信、全员广播、共享聊天室:
# 点名:给指定座位发消息
rig send checker-1 "重点审 src/auth/ 目录的改动"
# 广播:发给全队
rig broadcast "构建脚本已更新,注意新的 lint 规则"
# 聊天室:多座共同讨论
rig chatroom
# 查看与队列
rig ps # 谁在跑、状态如何
rig queue list # 任务队列
这里有个新手最容易踩的认知坑,官方文档专门强调过:send 只是把消息递过去,不等于建任务。要让 checker 真正开工,owner 必须把工作 enqueue 进任务队列——直接发一条「帮我审查」的消息,对方知道了这件事,但队列里没有活,它不会动。把「通知」和「派活」分开理解,很多「队员不干活」的疑惑会当场消失。
所有通信都落在本地 SQLite 里,合上电脑明天再来,交接记录原样还在——这是它比纯 tmux 会话强的地方:会话易失,账本不丢。
Step 4:权限治理:给每个座位只给刚好够用的权
多智能体队伍的攻击面比单智能体大得多,OpenRig 把权限治理做成了显式命令:
# 权限策略与单座权限
rig policy permissions # 查看全局权限策略
rig seat set-permissions checker-1 --read-only # 示意:以 --help 为准
# 人类打字的座位有 typing guard 保护
# 建议姿势:owner 可写,checker 只读,专用座才给网络
原则很简单:每个座位只拿它职责所需的权限。owner 要改文件、跑测试,给写权限;checker 只负责读代码提意见,只读就够;需要联网查资料的座位单独开,别全员放行。YOLO 式全自动权限默认是关的,也别打开——那等于把整支队伍的缰绳一次交出去。
把 OWASP Agentic 应用的警告记在心上:智能体之间的消息要当不可信输入处理。一条被污染的消息会在队内传播——被注入指令的网页内容、工单、代码注释,都可能顺着 rig send 流向下一个座位的上下文。审查类座位的价值正在于此:让一个独立上下文的模型看住另一个模型的产出。
Step 5:快照与恢复:整队冻结,原样唤醒
这是 OpenRig 最实用的能力之一:把整支队伍连同上下文与交接状态一起冻结,回头再原样恢复:
# 冻结整队(含快照)
rig down --snapshot
# 之后(哪怕是重启电脑之后)
rig up # 从快照恢复
# 恢复结果逐座可见:每个座位会报告
# resumed(从中断处继续)/ fresh(新起)/ failed(没回来)
恢复不是玄学:座位携带角色、工作目录与 resume 上下文,恢复完成后 TUI 会逐座告诉你各自是什么状态——谁原地续跑、谁重新开张、谁没救回来,一目了然。这让「今天写一半的审查任务明天接着来」从愿望变成日常操作。
重启电脑后 daemon 不会自动拉起,恢复队伍前先确认 rig 的后台进程在跑;另外 0.6.4 起 web UI 默认关闭并加了 host/origin 白名单——如果你依赖浏览器面板,升级后要显式打开并配置白名单,别以为面板消失了是坏了。
Step 6:拓扑演进、散会收编与 MCP 自管
队伍不是建好就定的,规模随任务长消:
# 拓扑演进
rig grow # 加座
rig shrink # 减座
rig launch # 启动新成员
rig remove # 移除成员
# 把散落的 tmux 会话收编进管理
rig discover
rig adopt
# 编码智能体也能自己管拓扑(MCP 工具)
# rig_up / rig_ps / rig_send / rig_chatroom_send ...
rig discover 加 rig adopt 是强迫症救星:把你过去手开、现在散落各处的 Claude/Codex tmux 会话扫出来、收编进统一管理,从此一个仪表盘看全部。MCP 工具则打开了另一种玩法——让 owner 智能体自己 grow 出一个帮手、自己给队友发消息:Agent 管理自己的拓扑,这是普通脚本编排做不到的。与教程 447 的 Claude Code Projects 相比,定位差异在于:Projects 是 Claude 官方体系内的多线程协作,OpenRig 是跨 harness 的独立队伍层——想混编不同厂商的 CLI、想要快照恢复与显式拓扑文件,OpenRig 补的就是这块。
从两人小队起步就够学到精髓:owner 造、checker 查、消息落账、快照可回。product-team 那种七个座的大队,等你真的被「多窗口管理」痛过再上不迟。
预期效果自查:rig ps 能看到两个座位都在跑;你用 rig send 给 checker 派过一次审查任务并收到了它的产出;rig down --snapshot 之后 rig up 能恢复且 TUI 逐座报告了恢复状态。三条全过,说明安装、起队、通信、恢复四层链路都通了。
常见问题 FAQ
和直接开几个 tmux 窗口手动管比,多出来的这层值吗?取决于队伍规模与任务跨度。两个窗口偶尔协作,手动够了;一旦座位数上三、任务要跨天交接、或者你要「冻结现场明天再来」,拓扑文件、消息账本与快照恢复就开始省时间——它解决的不是「智能体不够聪明」,而是「队伍没有组织」。
Windows 用户怎么办?原生 Windows 不支持,官方连 WSL2 都标注未测试。硬要尝试建议在独立的 Linux 虚拟机或云主机里跑,别在生产开发机上赌;等官方支持列表更新再迁回本机。
-setup 写进 Claude/Codex 配置的东西能撤吗?可以按指引撤销授权:对智能体说「撤销 setup 加的 OpenRig 命令允许」即可只移除它的新增项,不动你原有的配置。这也是动 setup 前先备份相关文件的意义——知道改了什么,才撤得干净。