如何在同一个项目中同时运行 Claude Code、Codex 和 Gemini CLI
安装并登录每个 CLI,然后给每个智能体一个独立的终端;当它们同时编辑代码时,再给每个智能体一个独立的 Git 工作树。这样能解决文件问题,但智能体之间的交接仍然要靠手动。MAO 把三者都作为终端节点放在同一块画布上,每个节点使用自己的登录,用连线完成交接,并为每个智能体分配一个角色。
- 每个 CLI 保留自己的登录和套餐
- 每个编辑代码的智能体各用一个 Git 工作树
- MAO 需要 Gemini CLI 0.41 或更高版本
要在同一个项目中运行 Claude Code、Codex 和 Gemini CLI,先安装并登录每个 CLI,在各自的终端中启动它们,再给每个编辑代码的智能体一个独立的 Git 工作树,让它们的改动互不干扰。普通终端和工作树需要你自己在智能体之间传递计划和审查意见。MAO 把三者都作为终端节点放在同一块画布上,每个节点使用自己的登录,通过连线互相发送任务,并各自分配一个角色。
为什么要混用 Claude Code、Codex 和 Gemini CLI?
每个 CLI 都是不同公司为自家模型打造的智能体,因此混用它们可以把工作的不同部分交给不同的模型。常见的分工是一个智能体负责规划,一个负责实现,一个负责审查。
- Claude Code 是 Anthropic 的智能体,使用 Claude 订阅或 Claude Console 账号登录。
- Codex 是 OpenAI 的智能体,使用 ChatGPT 套餐或 OpenAI API 密钥登录。
- Gemini CLI 是 Google 的智能体,使用 Google 账号、Gemini API 密钥或 Vertex AI 登录。
没有写这段代码的审查者会用全新的眼光阅读它,而来自另一家提供方的审查者离作者又远了一步。哪个模型适合哪项工作取决于你的项目,所以在依赖某种分工之前,先用一个小任务试一试。
开始之前,每个 CLI 需要什么?
每个 CLI 都需要单独安装,并会在你第一次于项目目录中运行它时要求登录。
使用 Homebrew:
brew install --cask claude-code
brew install --cask codex
brew install gemini-cli在 Windows 上:
winget install Anthropic.ClaudeCode
npm install -g @openai/codex
npm install -g @google/gemini-cliClaude Code 和 Codex 还为每个系统提供了自己的安装脚本,列在它们的文档中。Claude Code 的原生安装会在后台自动更新;通过 Homebrew 或 WinGet 安装则不会,需要你自己用 brew upgrade claude-code 或 winget upgrade Anthropic.ClaudeCode 升级。
然后在项目目录中逐个登录:
- 运行
claude --version检查安装,再运行claude并按浏览器中的提示登录。之后要切换账号,在会话中输入/login。 - 运行
codex并选择 Sign in with ChatGPT;或者用 API 密钥登录:运行codex login --with-api-key,并通过标准输入传入密钥。codex login status会显示当前使用的登录方式。 - 运行
gemini并选择一种登录方式。使用 Gemini API 密钥时,先用export GEMINI_API_KEY="YOUR_API_KEY"设置它。如果你的组织为你提供了 Code Assist 许可证,在使用 Google 登录之前,先把GOOGLE_CLOUD_PROJECT设为你的 Google Cloud 项目。
设置 Gemini CLI 之前,先确认它支持哪些 Google 账号。它的 README 说明,它面向 Google Cloud 上的 Gemini Code Assist Standard 和 Enterprise 许可证以及 Code Assist for GitHub,另外支持付费 API 和 Vertex AI 密钥。免费个人使用以及 Google AI Pro 和 Ultra 已于 2026 年 6 月 18 日转到 Antigravity CLI。
三个智能体如何共用项目说明?
只维护一个 AGENTS.md,让另外两个智能体指向它。每个智能体默认读取自己的说明文件,不这样做的话,你就要维护三份相同的规则。
- Codex 读取
AGENTS.md,从项目根目录一直查找到当前目录。 - Claude Code 在没有
CLAUDE.md时读取AGENTS.md。如果你保留了CLAUDE.md,在其中加一行@AGENTS.md来导入共用文件。 - Gemini CLI 读取
GEMINI.md。在它的settings.json中,把其他文件名列在context.fileName设置里:
{
"context": {
"fileName": ["AGENTS.md", "GEMINI.md"]
}
}直接开三个终端可以吗?
可以,而且不需要任何新工具:在仓库中打开三个终端窗口或标签页,分别运行 claude、codex 和 gemini。每个 CLI 保留自己的登录,所以三者从不共用凭据。
当这些智能体只读代码或只改动明显互不相干的文件时,这样做没有问题。但它们都在编辑同一个工作目录,于是一个智能体改到一半的内容,就是下一个智能体看到的状态;而你是它们之间唯一的联系:你从一个窗口复制计划,再粘贴到下一个窗口。
tmux 会让事情更简单吗?
tmux 把三个智能体放进同一个窗口的不同窗格,让你可以并排查看它们,并让它们在一个可以随时回来的会话中继续运行。它改变的是你查看智能体的方式,而不是它们共享文件的方式。
- 用
tmux new -s agents启动一个命名会话。 - 按
C-b %左右拆分窗格,按C-b "上下拆分窗格。 - 在每个窗格中分别运行
claude、codex和gemini。 - 用
C-b d分离会话,再用tmux attach -t agents回到会话。
这些窗格仍然共用一个检出目录,你也仍然要手动在它们之间传递工作。
Git 工作树如何把智能体分开?
给每个编辑代码的智能体一个独立的工作树。工作树是同一个仓库的第二个工作目录,检出它自己的分支,因此每个智能体编辑自己的文件,并提交到自己的分支。
git worktree add -b agent/codex ../myapp-codex
git worktree add -b agent/gemini ../myapp-gemini
claude # plans and reads in the main checkout
cd ../myapp-codex && codex # edits on agent/codex
cd ../myapp-gemini && gemini # edits on agent/geminigit worktree list 会列出每个工作树及其分支。Git 不允许检出已被另一个工作树检出的分支,这能防止两个智能体落在同一个分支上。分支合并后,用 git worktree remove ../myapp-codex 删除它的工作树。
工作树解决了文件问题,却没有解决交接问题。这些智能体仍然无法互相询问任何事,你仍然要记住哪个终端在等你。
MAO 如何同时运行这三个智能体?
MAO 把每个智能体作为终端节点放在画布上,节点运行该智能体自己的 CLI,并使用它自己的登录。你在智能体之间画出连线,让它们可以互相发送任务;给每个智能体分配一个角色;再把编辑代码的智能体放到图层上,而图层就是 Git 工作树。
- 安装并登录:在终端将要运行的机器上安装并登录每个 CLI。MAO 运行的是智能体自己的 CLI,如果某个没有安装,它会告诉你。在 Windows 上,MAO 会在你的 PATH 中找到用
npm install -g安装的智能体,Gemini CLI 也在其中。 - 打开你的仓库,把它作为 MAO 中的一个工作区。
- 放置智能体。 选择 New terminal or agent,或按
Ctrl+T(macOS 上为Cmd+T),然后选择 Claude Code 并放置它的节点。对 Codex 和 Gemini CLI 重复这一步,Gemini CLI 在智能体面板中有自己的图块。 - 为每个节点选择登录。 每个节点默认使用该 CLI 自己的登录,除非你从它的 Account 菜单中选择一个已保存的账号。Add account… 可以保存 Directory、API key 或 Endpoint 类型的账号,具体取决于提供方支持哪些类型。
- 为每个智能体分配角色。 Builder 和 Reviewer 是内置角色,例如给 Codex 分配 Builder,给 Gemini CLI 分配 Reviewer。在 Claude Code 的说明面板中写一个规划角色,然后选择 Save as role。
- 画出连线。 选中 Claude Code 节点,选择 Connect 并选中 Codex,再把 Codex 连接到 Gemini CLI。一条连线只授予对另一端节点的访问权限。把一个规格说明笔记连线到三个智能体,让它们共用计划。
- 给实现者一个图层,让它的改动落在自己的分支上。你在画布上审查差异(diff),准备好后把图层合入 Ground。
- 只提一次需求。 在 Claude Code 的设置面板中把它标记为 Orchestrator,然后告诉它你想构建什么。
规划者在自己的终端中,用 mao 命令把工作交给它的对等节点:
mao peers
mao ask builder "Implement the plan in the spec note"
mao ask reviewer "Review the builder's changes for bugs and missing tests"mao ask 发送一个任务并等待结果。mao send 会立即返回任务 ID,之后用 mao wait <task-id> 获取结果。编排者还可以用 mao recruit <name> --preset <preset> --role <role> 添加智能体,并用 mao connect <from> <to> 为它连线。
MAO 会把角色的说明加入它通过 ACP 发送的提示词中。只以终端方式运行的智能体不会自动收到这些说明,所以也要把同样的规则写进项目的说明文件。
你应该选择哪种方式?
从能解决你问题的最简单方式开始:快速看一眼时用终端,两个智能体开始编辑代码时用工作树,厌倦了在它们之间传递工作时用画布。
常见问题
可以。每个都是独立的 CLI,有自己的登录,所以三者可以同时在一个仓库中运行。给每个编辑代码的智能体一个独立的 Git 工作树,或在 MAO 中给它一个独立的图层,它们的改动就不会冲突。
不需要。Claude Code 使用 Claude 订阅登录,Codex 使用 ChatGPT 套餐登录,而拥有 Code Assist 许可证的组织可以用 Google 账号登录 Gemini CLI。在 MAO 中,每个智能体都使用自己的登录,MAO 不会让你的提示词经过它自己的服务器。
Gemini CLI 0.41 或更高版本。如果版本较旧,MAO 会说明它找到了哪个版本、在哪里,以及如何更新。
能,只要把它列出来。Gemini CLI 默认读取 GEMINI.md;把 AGENTS.md 加到 context.fileName 设置中,它也会读取这个文件,也就是 Codex 和 Claude Code 读取的同一个文件。
根据 Gemini CLI 的 README,免费个人使用以及 Google AI Pro 和 Ultra 已于 2026 年 6 月 18 日转到 Antigravity CLI。MAO 也可以把 Antigravity 作为智能体运行,与 Claude Code 和 Codex 并列。
来源
- Claude Code 快速入门:原生、Homebrew 和 WinGet 安装方式及各自的更新方式,
claude --version,首次运行时的登录,账号类型和/login。 - Claude 如何记住你的项目:
CLAUDE.md、读取AGENTS.md以及@导入。 - Codex CLI:独立安装程序,以及在项目目录中运行
codex。 - Codex 身份验证:Sign in with ChatGPT、
codex login --with-api-key和codex login status。 - Codex AGENTS.md 指南:Codex 在哪里查找
AGENTS.md。 - Codex README:安装脚本、npm 和 Homebrew 安装方式,以及包含 Codex 的 ChatGPT 套餐。
- Gemini CLI README:Gemini CLI 支持哪些账号、转到 Antigravity CLI 的变更、安装命令和登录方式。
- Gemini CLI 安装:Node.js 20 或更高版本以及支持的系统。
- Gemini CLI 身份验证:使用 Google 登录、
GEMINI_API_KEY、Vertex AI 和GOOGLE_CLOUD_PROJECT。 - Gemini CLI 上下文文件:
GEMINI.md和context.fileName设置。 - tmux 入门:命名会话、拆分窗格、分离与重新连接会话。
- git-worktree:
git worktree add -b、list、remove,以及一个分支只能在一个工作树中检出的检查。 - 支持的编程智能体:Gemini CLI 作为内置智能体、0.41 版本要求、Antigravity,以及必须安装的智能体。
- 配置智能体启动预设:New terminal or agent、预设,以及修改节点的模型、账号和角色。
- 添加和选择提供方账号:每个节点的 Directory、API key 和 Endpoint 账号。
- 保存和分配智能体角色:Builder、Reviewer、Save as role,以及通过 ACP 传递角色说明。
- 连接智能体、笔记和门户:连线及其授予的访问权限。
- 发送任务并获取结果:
mao ask、mao send和mao wait。 - 以编排者身份管理智能体:
mao recruit和mao connect。 - 创建工作树图层和将图层合入 Ground:图层即 Git 工作树。
- MAO 0.10.0 和 MAO 0.11.8:Gemini CLI 成为内置智能体、版本提示,以及 Windows 上用 npm 安装的智能体。
- 编程智能体的多智能体编排:MAO 不会让提示词经过它自己的服务器。
检查于 2026-10-28。
有问题?可以在 Discord 提问,或发邮件到 hello@miguer.com。