本文へスキップ
複数プロバイダーのエージェント

Claude Code、Codex、Gemini CLIを1つのプロジェクトで一緒に動かす方法

各CLIをインストールしてログインし、エージェントごとに専用のターミナルを用意します。同時にコードを編集するなら、エージェントごとに専用のGitワークツリーも用意します。これでファイルの問題は解決しますが、エージェント間の受け渡しは手作業のままです。MAOは3つすべてを1つのキャンバス上のターミナルノードとして動かし、それぞれが自分のログインを使い、ワイヤーで受け渡しを行い、エージェントごとにロールを持ちます。

  • 各CLIは自分のログインとプランを使い続ける
  • コードを編集するエージェントごとにGitワークツリーを1つ
  • MAOにはGemini CLI 0.41以降が必要
著者:更新日:約15分で読めます

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には何が必要ですか?

それぞれ個別にインストールし、プロジェクトのディレクトリで初めて実行したときにサインインを求められます。

Claude CodeCodexGemini CLI
インストールネイティブインストーラー、HomebrewまたはWinGetインストールスクリプト、npmまたはHomebrewnpm、HomebrewまたはMacPorts。Node.js 20以降が必要
起動claudecodexgemini
サインインClaude Pro、Max、TeamまたはEnterprise、Claude Console、またはクラウドプロバイダーSign in with ChatGPT(Plus、Pro、Business、Edu、Enterprise)またはAPIキーGoogleでサインイン、GeminiのAPIキー、またはVertex AI
プロジェクトの指示ファイルCLAUDE.md、またはAGENTS.mdAGENTS.mdGEMINI.md

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-cli

Claude CodeとCodexには、システムごとの専用インストールスクリプトもあり、それぞれのドキュメントに載っています。Claude Codeのネイティブインストールはバックグラウンドで自動更新されますが、HomebrewやWinGetでのインストールは自動更新されないので、brew upgrade claude-codeまたはwinget upgrade Anthropic.ClaudeCodeで自分で更新します。

次に、プロジェクトのディレクトリでそれぞれにサインインします。

  1. claude --versionでインストールを確認してからclaudeを実行し、ブラウザでのログインに従います。後でアカウントを切り替えるには、セッション内で/loginと入力します。
  2. codexを実行してSign in with ChatGPTを選びます。APIキーでサインインする場合は、キーを標準入力で渡してcodex login --with-api-keyを実行します。codex login statusで、どの方法が有効かを確認できます。
  3. 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つのウィンドウのペインに並べるので、並べて様子を見られ、後で戻ってこられるセッションの中で動かし続けられます。変わるのはエージェントの見え方で、ファイルの共有のしかたは変わりません。

  1. tmux new -s agentsで名前付きのセッションを開始します。
  2. C-b %でペインを左右に、C-b "で上下に分割します。
  3. ペインごとにclaude、codex、geminiを実行します。
  4. 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/gemini

git worktree listで、すべてのワークツリーとそのブランチを確認できます。Gitは、別のワークツリーがすでにチェックアウトしているブランチのチェックアウトを拒否するので、2つのエージェントが同じブランチに乗ることはありません。ブランチをマージしたら、git worktree remove ../myapp-codexでそのワークツリーを削除します。

ワークツリーはファイルの問題を解決しますが、受け渡しの問題は解決しません。エージェントは互いに何も尋ねられず、どのターミナルがあなたを待っているかも、あなたが把握し続けることになります。

MAOでは3つをどのように一緒に動かしますか?

MAOは各エージェントをキャンバス上のターミナルノードとして置き、そのノードでエージェント自身のCLIを、そのエージェント自身のログインで動かします。エージェント同士をワイヤーでつないでタスクを送り合えるようにし、それぞれにロールを与え、コードを編集するエージェントはレイヤー(Gitワークツリー)に置きます。

  1. インストールしてサインインします。 ターミナルを動かすマシンに各CLIをインストールしてサインインします。MAOはエージェント自身のCLIを動かし、インストールされていなければそう知らせます。Windowsでは、npm install -gでインストールしたエージェント(Gemini CLIを含む)をPATHから見つけます。
  2. リポジトリを開きます。 MAOでワークスペースとして開きます。
  3. エージェントを置きます。 New terminal or agentを選ぶか、Ctrl+T(macOSではCmd+T)を押し、Claude Codeを選んでノードを置きます。CodexとGemini CLIでも同じ操作を繰り返します。Gemini CLIにはエージェントシートに専用のタイルがあります。
  4. ノードごとにログインを選びます。 各ノードは、Accountメニューで保存済みのアカウントを選ばない限り、CLI自身のログインを使います。Add account…では、プロバイダーが対応している種類に応じて、Directory、API key、Endpointのアカウントを保存できます。
  5. それぞれにロールを与えます。 BuilderとReviewerは組み込みのロールです。たとえばCodexにBuilder、Gemini CLIにReviewerを割り当てます。Claude Codeには、指示シートで計画用のロールを書き、Save as roleを選びます。
  6. ワイヤーを引きます。 Claude Codeのノードを選んでConnectを選び、Codexを選びます。続けてCodexをGemini CLIに接続します。ワイヤーが許可するのは、反対側のノードへのアクセスだけです。仕様のノートを3つすべてにワイヤーでつなぎ、計画を共有します。
  7. 実装役にレイヤーを与えます。 そうすると、その変更は専用のブランチに入ります。キャンバス上で差分を確認し、準備ができたらレイヤーをGroundに取り込みます。
  8. 依頼は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つのエージェントがコードを編集し始めたらワークツリー、エージェント間の受け渡しに疲れたらキャンバスです。

方法3つを一度に見られるファイルの衝突を避けられるエージェント同士で作業を受け渡せるエージェントごとのログインセットアップ
別々のターミナルいいえ、1つずつ別ウィンドウいいえいいえ、あなたがコピー&ペースト各CLI自身のログイン不要
tmuxのペインはい、1つのウィンドウのペインいいえいいえ、あなたがコピー&ペースト各CLI自身のログインtmuxをインストール
Gitワークツリー使うターミナル次第はい、それぞれ別のブランチいいえ各CLI自身のログインエージェントごとにgit worktree addを1回
MAOはい、キャンバス上のノードはい、レイヤーではい、ワイヤーとmao askCLI自身のログイン、またはノードごとの保存済みアカウントノードを置き、ワイヤーを引く

よくある質問

はい。それぞれが自分のログインを持つ別々の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もエージェントとして動かせます。

出典

2026-10-28に確認しました。

ご質問は?Discordで質問するか、hello@miguer.comまでメールでお知らせください。

自分のリポジトリで試す

エージェントをひとつのキャンバスに。

キャンバスの全機能を使える7日間のトライアル。カードは不要です。