MXterm Pro

在分屏终端里同时跑 Claude Code 和 Codex

Henry AGI
阅读约 5 分钟
Four steps: open a workspace on your repo, isolate features in git worktrees, split panes with one agent each, then review and merge

要在分屏终端里做到 Claude Code 多开,并和 Codex 同时运行,先在 MXterm Pro 里打开工作区,开启“为每个功能使用独立的 git worktree”,再给一个分屏选 Claude Code,另一个选 Codex。这样每个 Agent 都在自己的分支上干活,不会抢同一份检出。隔离能减少分支冲突,但拦不住两个 Agent 改同一个文件。

为什么两个 Agent 共用一个仓库,通常会出问题

问题几乎每次都一样。你在一个终端标签页里开 Claude Code,在另一个里开 Codex,两个都指向同一份工作副本,又给它们派了不同的活。一个 Agent 执行 git checkout -b feature-a 时,另一个正在 main 上改到一半。结果就是未提交的改动落在了错的分支上,或者出现两个 Agent 都没预料到的 git status。

即使在同一个分支上,两个 Agent 同时改重叠的文件,也会产生合并冲突,只能你手动解。

让它们一个接一个地跑,能避开冲突,但等待时间翻倍。你盯着一个 Agent,另一个闲着。办法不是更小心地轮流,而是给每个 Agent 在磁盘上各一份独立的工作副本,这样一个分屏里的 git checkout 碰不到另一个分屏里的文件。

分步设置:带 Agent 隔离的分屏

1. 在你的仓库上新建一个工作区。在 MXterm Pro 的欢迎页或新建工作区页面里选项目文件夹。在 macOS 上,也可以用 Finder 的 “New MXterm Pro Tab Here” 快速操作(如果它出现在你的“服务”菜单里),或者把文件夹拖到 Dock 图标上。

2. 勾选 “为每个功能使用独立的 git worktree”。复选框下面的说明写明了它的作用:“每个 Agent 分屏在各自的 worktree 和分支中启动。” 默认关闭。

它只在 git 仓库里有用。如果文件夹不是仓库,MXterm Pro 不会再替你运行 git init(1.0.22 起改变)。它会事先说明:“此文件夹不是 git 仓库,因此该分屏将与其他分屏直接共享(无 worktree 隔离)。”然后打开普通的、不隔离的分屏,每个分屏带一条可关闭的提示。想要隔离,请先自己运行 git init。

3. 添加分屏。用 Cmd+D(向右分屏)或 Shift+Cmd+D(向下分屏),也可以在创建工作区之前,先在创建工作区页面里设好分屏数量。关于分屏的更多内容见分屏文档。

之后要调整布局,把分屏标题拖到另一个分屏的边缘。浮层会显示“在左侧插入 (50%)”“在右侧插入 (50%)”“在上方插入 (50%)”“在下方插入 (50%)”,分屏就按 50/50 落在它旁边。调整大小时也会吸附:松手时分隔条距中线约 3.5% 以内,就会吸附到 50/50。随时双击分隔条,可以把它重置为 50/50。

4. 每个分屏启动一个 Agent。因为开了 worktree 隔离,你在创建页面里选的每个 Agent 分屏(一个 Claude Code,一个 Codex)已经各自在自己的分支上,分支名形如 swarm/brave-otter。

应用会生成一个简短的“形容词加名词”组合,并检查不重名,而不是沿用 Agent 的名字。如果这个名字碰巧已被占用,就加后缀 -2 重试。普通的 Terminal 分屏,或之后用分屏新增的分屏,仍然留在仓库根目录。

5. 给每个 Agent 派不同的任务,尽量限定在互不重叠的文件里。比如分屏一做“重构认证中间件”,分屏二做“更新设置界面”。隔离能降低分支冲突的概率,但拦不住两个 Agent 各自去改同一个共享文件,所以要沿代码库里真实的接缝来拆分。

6. 在仓库根目录审查并合并。Agent 完成后,cd 进它的 worktree(<repo>/.worktrees/<slug>),或在 Git 面板的 Worktrees 列表里选中它。然后照常把分支合回去:git merge、看 diff,或者开 PR。MXterm Pro 不会替你合并,它只在 Agent 运行期间让两份工作副本互不干扰。

相关指南Linux 常用命令速查:Command Recipes 如何按关键词给出现成命令

把同一条提示词广播到每个分屏

想把同一条指令一次发给所有 Agent,比如“跑测试套件”或“拉取最新代码并 rebase”,在 macOS 上按 Cmd+Shift+B 切换广播输入。快捷键表里 Windows 对应 Ctrl+Shift+B。

开启后,你在当前分屏里敲的按键会实时镜像到广播组里的其他所有分屏。一次 npm test 或一条提示词就能到达全部分屏,不用在每个标签页里重复输入。

广播的设计就是简单直接:它不会合并输出,也不会等一个 Agent 做完再发下一条命令,只是把同样的按键原样分发出去。输入只属于某个分屏的内容之前,先把它关掉(再按一次 Cmd+Shift+B),比如回答某个 Agent 的追问。否则这个回答会发给组里的每个分屏。

Multi-Agent Control Room,以及它和普通分屏的区别

Control Room(原 War Room) 是叠在带 worktree 隔离的分屏之上的独立一层,而隔离负责防止两个 Agent 在磁盘上冲突。它位于右侧辅助面板。在 macOS 上用 Alt+Cmd+B 切换该面板,然后选 Control Room 标签页。Windows 上快捷键表对应 Ctrl+Alt+B,尚未在真实的 Windows 机器上验证。

你可以从每个分屏的 Control Room 按钮,把终端分屏加入共享房间。房间会保留一份连续的记录,包含加入、离开、重命名,以及 Moderator 和各 Agent 互相发送的消息。

如果你正在某个分屏里打字,Control Room 向那个 Agent 投递提示词会先挂起,直到你停止输入或点击“立即投递”。这样就不会在你敲键盘的半途塞进一条排队的指令。其余内容见 Control Room 指南,应用侧的说明见 Agent 与 Control Room 文档。

Free 账户默认每个 Control Room 最多 2 个成员,Pro 没有这个上限。房间数量从来没有限制。并排运行 Claude Code 和 Codex(本指南讲的就是这个)刚好在免费的 2 成员房间之内。只有往同一个房间加第三、第四个成员时,才会碰到上限。

按 Agent 统计 Token 用量(Token Meter)

MXterm Pro 的 Token Meter 同时覆盖 Claude Code 和 Codex。点击标题栏的小标签,每个 Agent 一行,可展开为按小时的迷你折线图和 7 天明细。它读取你本机上各 Agent 自己的会话记录,不需要 API 密钥或账号。除非你手动开启实时套餐限额查询,否则不会向任何地方发送任何数据。细节见Token 用量是怎么统计的。

和 iTerm2、Warp、tmux 的对比

iTerm2 是成熟、可脚本化的 macOS 终端,分屏出色,插件生态庞大。用它手动在两个分屏里跑 Claude Code 和 Codex 完全没问题。它的文档涵盖活动、静默和任务完成的通知,一个可选的 AI 插件,以及 Claude Code 集成。文档里没有列出 worktree 的自动创建,所以分支隔离要你自己用 git worktree add 管理。

Warp 已经不止是单个聊天助手。它的官网介绍的是接入你自己的 Agent(比如 Claude Code 或 Codex),并在网页、移动端、终端和 IDE 之间,从一个控制平面协调多组 Agent。MXterm Pro 的范围更窄:本地桌面终端,每个 Agent 分屏一个 worktree。完整对比见 MXterm Pro 对比 Warp。

tmux 提供分屏,也提供许多工程师已有的肌肉记忆,是和 MXterm Pro 分屏模型最接近的东西。但它是终端复用器,不感知 git。

向多个分屏广播按键(:setw synchronize-panes on)是 tmux 由来已久的技巧,MXterm Pro 的广播输入与它类似。worktree 的自动创建、Agent 状态跟踪和 Control Room 记录,只靠一份 tmux 配置是复刻不了的,得下功夫写脚本。

这几个都不是错误的选择。iTerm2、Warp 和 tmux 都是能力很强的终端。对这个工作流来说,MXterm Pro 的差别在于组合:把 worktree 隔离接进工作区创建,再加上 Agent 状态检测和广播,放在一个原生应用里,而不是三份脚本加一个手工拼起来的 .tmux.conf。

这个工作流下 Free 与 Pro 的限制

本指南的核心内容在免费版里都能用:两个分屏、worktree 隔离、广播输入和 2 成员的 Control Room。规模超过一对 Agent 之后,数字才有意义。

默认情况下,Free 对终端分屏数量没有限制。它允许 5 台已保存的 SSH 主机、每个房间 2 个 Control Room 成员,以及 1 台已保存的 MXterm Host。Pro 没有 SSH 主机和 Control Room 成员的上限。

所以免费版不是这个工作流的缩水演示。只有当你运行更大的 Agent 小队,或者在 Agent 之外还要管一批 SSH 主机时,才会碰到这些上限。

不起作用时:常见问题

分屏打开后没有 worktree。那是因为文件夹不是 git 仓库。MXterm Pro 从 1.0.22 起不再替你运行 git init。以前它会自动执行,可能把 .env 或密钥卷进一个没人要求的全新历史。所以现在它退回到普通的共享分屏,并告诉你原因。

请自己运行 git init,再重新创建工作区。如果仓库还没有任何提交,MXterm Pro 会添加一个“Initial commit”,里面只有一个空的 .gitkeep 文件,以便创建 worktree。文件夹里的其他内容都不会被提交。

两个 Agent 总是落到同样的文件上。worktree 隔离减少的是分支和检出状态上的冲突。但两个 Agent 仍可能各自在自己的副本里改同一个文件,比如共享的配置文件。这是任务划分的问题,不是隔离能解决的。请沿真实的模块边界拆分工作。

广播把回复发到了错的分屏。这是最常见的广播失误。这个模式会一直开着,直到你把它关掉,所以本来给某个 Agent 追问的回答,会发给所有 Agent。输入任何只属于单个分屏的内容之前,先按 Cmd+Shift+B 关掉。

把 worktree 分支合回去感觉多了几步。这是有意为之的多一步。隔离让工作副本在运行期间互不干扰,但 MXterm Pro 不会自动合并。把每个 worktree 分支当作普通功能分支:看 diff,然后照你平时的方式合并或开 PR。

自己跑起来试试

多分屏 SSH、Command Recipes(Cmd+J)和多 Agent 的 Control Room (原 War Room):先免费用。

下载 MXterm Pro

已经有 MXterm Pro?阅读设置指南 →

第一次了解 MXterm Pro?查看价格 →

常见问题

MXterm Pro 里的 Multi-Agent Control Room 是什么?

它是右侧面板里的共享工作区,用来让多个 AI CLI Agent 一起运行。每个成员有一个状态点(工作中、受阻、空闲或已完成,针对 MXterm 能读取的 Agent),你正在打字时提示词投递会挂起,整个多 Agent 会话可以导出为 Markdown 报告。它和分屏的 worktree 隔离是两回事:可以单独用其中一个,也可以两个一起用。

在分屏里同时跑 Claude Code 和 Codex,一定要用 git worktree 吗?

不一定。如果它们在不同的仓库里工作,或者你愿意自己管理分支切换,可以在两个不隔离的普通分屏里运行。两个 Agent 同时在同一个仓库里工作时,worktree 隔离才有意义。没有它,一个 Agent 的 git checkout 会把分支从另一个 Agent 脚下抽走。

除了 Claude Code 和 Codex,还能用别的 CLI Agent 吗?

可以。任何在 shell 里运行的 CLI 工具(Aider、Ollama 或自己写的脚本)都能在普通终端分屏里使用,广播输入也不关心你启动的是哪个程序。worktree 隔离适用于你在创建页面里选的 Agent 分屏(Claude Code、Codex、Gemini CLI、OpenCode 以及其他内置 Agent)。普通分屏仍然留在仓库根目录。

同时开几个 Agent 会碰到限制?

免费版的分屏不限数量。Control Room 免费版每个房间最多 2 个成员(Pro 不限)。Claude Code 和 Codex 两个 Agent,在免费版里绰绰有余。

广播提示词时,会等一个 Agent 做完再发给下一个吗?

不会。广播输入把你的按键实时镜像到组里的每个分屏,不排序,也不等 Agent 的输出。它适合相同的简短指令(跑测试、拉取最新代码),不适合想让每个 Agent 各自回答的对话。

问问 AI:MXterm Pro 怎么样

根据本页内容,在 ChatGPT、Claude 或 Perplexity 里直接生成回答。回答由 AI 写,不是我们写的,请核对它引用的来源。

发送的问题怎么在 Mac 上用分屏终端并排运行 Claude Code 和 Codex?