Claude Code、Codex、Gemini CLIを1つのプロジェクトで一緒に動かす方法
各CLIをインストールしてログインし、エージェントごとに専用のターミナルを用意します。同時にコードを編集するなら、エージェントごとに専用のGitワークツリーも用意します。これでファイルの問題は解決しますが、エージェント間の受け渡しは手作業のままです。MAOは3つすべてを1つのキャンバス上のターミナルノードとして動かし、それぞれが自分のログインを使い、ワイヤーで受け渡しを行い、エージェントごとにロールを持ちます。
- 各CLIは自分のログインとプランを使い続ける
- コードを編集するエージェントごとにGitワークツリーを1つ
- MAOにはGemini CLI 0.41以降が必要
Claude Code、Codex、Gemini CLIを1つのプロジェクトで動かすには、各CLIをインストールしてサインインし、それぞれを専用のターミナルで起動して、コードを編集するエージェントにはそれぞれ専用のGitワークツリーを与え、変更が混ざらないようにします。通常のターミナルとワークツリーだけでは、計画やレビューをエージェント間で受け渡すのはあなたの仕事です。MAOは3つすべてを1つのキャンバス上のターミナルノードとして動かし、それぞれが自分のログインを使い、ワイヤーで互いにタスクを送り合い、それぞれにロールを持たせます。
なぜClaude Code、Codex、Gemini CLIを組み合わせるのですか?
各CLIは、それぞれ別の会社が自社のモデル向けに作ったエージェントです。組み合わせれば、作業の各部分を別々のモデルに任せられます。よくある分担は、1つが計画、1つが実装、1つがレビューです。
- Claude CodeはAnthropicのエージェントで、ClaudeのサブスクリプションまたはClaude Consoleのアカウントでサインインします。
- CodexはOpenAIのエージェントで、ChatGPTのプランまたはOpenAIのAPIキーでサインインします。
- Gemini CLIはGoogleのエージェントで、Googleアカウント、GeminiのAPIキー、またはVertex AIでサインインします。
コードを書いていないレビュアーは、そのコードを新しい目で読みます。別のプロバイダーのレビュアーなら、書き手からさらに一歩離れています。どのモデルがどの仕事に合うかはプロジェクトによるので、分担に頼る前に小さなタスクで試してください。
始める前に、各CLIには何が必要ですか?
それぞれ個別にインストールし、プロジェクトのディレクトリで初めて実行したときにサインインを求められます。
Homebrewの場合:
brew install --cask claude-code
brew install --cask codex
brew install gemini-cliWindowsの場合:
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によると、Gemini CLIはGoogle Cloud上のGemini Code Assist StandardとEnterpriseのライセンス、Code Assist for GitHub、および有料のAPIキーとVertex AIのキー向けです。無料の個人利用とGoogle AI Pro、Ultraは、2026年6月18日にAntigravity CLIへ移行しました。
3つのエージェントでプロジェクトの指示をどう共有しますか?
AGENTS.mdを1つだけ用意し、残りの2つをそこに向けます。各エージェントはデフォルトで自分の指示ファイルを読むので、そうしないと同じルールを3か所で管理することになります。
- 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"]
}
}ターミナルを3つ開くだけではだめですか?
それでも動きますし、新しいものは何も要りません。リポジトリでターミナルのウィンドウかタブを3つ開き、それぞれでclaude、codex、geminiを実行します。各CLIは自分のログインを使うので、3つが認証情報を共有することはありません。
エージェントがコードを読むだけのときや、明らかに別々のファイルを触るときはこれで十分です。ただし全員が同じ作業ツリーを編集するので、あるエージェントの書きかけの変更が次のエージェントの見る状態になり、エージェント同士をつなぐのはあなただけです。あるウィンドウから計画をコピーして、次のウィンドウに貼り付けることになります。
tmuxを使うと楽になりますか?
tmuxは3つのエージェントを1つのウィンドウのペインに並べるので、並べて様子を見られ、後で戻ってこられるセッションの中で動かし続けられます。変わるのはエージェントの見え方で、ファイルの共有のしかたは変わりません。
tmux new -s agentsで名前付きのセッションを開始します。C-b %でペインを左右に、C-b "で上下に分割します。- ペインごとに
claude、codex、geminiを実行します。 C-b dでデタッチし、tmux attach -t agentsで戻ります。
ペインは引き続き1つのチェックアウトを共有し、作業の受け渡しも手作業のままです。
Gitワークツリーはエージェント同士をどう分けますか?
コードを編集するエージェントには、それぞれ専用のワークツリーを与えます。ワークツリーは同じリポジトリの2つ目の作業ディレクトリで、独自のブランチがチェックアウトされているので、各エージェントは自分のファイルを編集し、自分のブランチにコミットします。
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は、別のワークツリーがすでにチェックアウトしているブランチのチェックアウトを拒否するので、2つのエージェントが同じブランチに乗ることはありません。ブランチをマージしたら、git worktree remove ../myapp-codexでそのワークツリーを削除します。
ワークツリーはファイルの問題を解決しますが、受け渡しの問題は解決しません。エージェントは互いに何も尋ねられず、どのターミナルがあなたを待っているかも、あなたが把握し続けることになります。
MAOでは3つをどのように一緒に動かしますか?
MAOは各エージェントをキャンバス上のターミナルノードとして置き、そのノードでエージェント自身のCLIを、そのエージェント自身のログインで動かします。エージェント同士をワイヤーでつないでタスクを送り合えるようにし、それぞれにロールを与え、コードを編集するエージェントはレイヤー(Gitワークツリー)に置きます。
- インストールしてサインインします。 ターミナルを動かすマシンに各CLIをインストールしてサインインします。MAOはエージェント自身のCLIを動かし、インストールされていなければそう知らせます。Windowsでは、
npm install -gでインストールしたエージェント(Gemini CLIを含む)をPATHから見つけます。 - リポジトリを開きます。 MAOでワークスペースとして開きます。
- エージェントを置きます。 New terminal or agentを選ぶか、
Ctrl+T(macOSではCmd+T)を押し、Claude Codeを選んでノードを置きます。CodexとGemini CLIでも同じ操作を繰り返します。Gemini CLIにはエージェントシートに専用のタイルがあります。 - ノードごとにログインを選びます。 各ノードは、Accountメニューで保存済みのアカウントを選ばない限り、CLI自身のログインを使います。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に接続します。ワイヤーが許可するのは、反対側のノードへのアクセスだけです。仕様のノートを3つすべてにワイヤーでつなぎ、計画を共有します。
- 実装役にレイヤーを与えます。 そうすると、その変更は専用のブランチに入ります。キャンバス上で差分を確認し、準備ができたらレイヤーをGroundに取り込みます。
- 依頼は1回だけです。 設定シートで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経由で送るプロンプトにロールの指示を加えます。ターミナルとしてのみ動くエージェントには自動では届かないので、同じルールをプロジェクトの指示ファイルにも書いておいてください。
どの方法を使えばよいですか?
問題を解決できるいちばん簡単な方法から始めます。ざっと見るだけならターミナル、2つのエージェントがコードを編集し始めたらワークツリー、エージェント間の受け渡しに疲れたらキャンバスです。
よくある質問
はい。それぞれが自分のログインを持つ別々のCLIなので、3つを1つのリポジトリで同時に動かせます。コードを編集するエージェントには、それぞれ専用のGitワークツリー、またはMAOでの専用のレイヤーを与えれば、変更は衝突しません。
いいえ。Claude CodeはClaudeのサブスクリプションで、CodexはChatGPTのプランでサインインでき、Code Assistライセンスを持つ組織ならGemini CLIにGoogleアカウントでサインインできます。MAOでは各エージェントが自分のログインで動き、MAOがプロンプトを自社のサーバー経由で送ることはありません。
Gemini CLI 0.41以降です。古いバージョンの場合、MAOは見つけたバージョン、その場所、更新方法を表示します。
はい、指定すれば読めます。Gemini CLIはデフォルトでGEMINI.mdを読みます。context.fileName設定にAGENTS.mdを加えると、そのファイルも読みます。CodexとClaude Codeが読むのと同じファイルです。
Gemini CLIのREADMEによると、無料の個人利用とGoogle AI Pro、Ultraは、2026年6月18日にAntigravity CLIへ移行しました。MAOはClaude CodeやCodexと並べて、Antigravityもエージェントとして動かせます。
出典
- 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のGetting Started:名前付きセッション、ペインの分割、デタッチとアタッチ。
- git-worktree:
git worktree add -b、list、removeと、1つのブランチを1つのワークツリーにだけチェックアウトできるという確認。 - 対応しているコーディングエージェント:組み込みエージェントとしての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までメールでお知らせください。