本文へスキップ
エージェント間の引き継ぎ

Claude CodeとCodexの間でタスクを引き継がせる方法

どちらのツールも、自分から相手に作業を渡すことはありません。ターミナル間でテキストを中継する、両方のエージェントが読む引き継ぎファイルを置く、一方のエージェントに相手の非対話モード(claude -p、codex exec)を実行させる、のいずれかで引き継げます。MAOでは2つのターミナルをワイヤーでつなぎ、mao askで互いにタスクを送って結果を受け取れます。

  • claude -pとcodex execを使うと、一方のエージェントが相手をコマンドとして実行し、その回答をstdoutで読めます。
  • claude mcp serveが公開するのはClaude Codeのツールで、エージェントそのものではありません。Codex自身のMCPサーバーは削除されています。
  • MAOでは、1本のワイヤーで2つのエージェントがmao askで互いにタスクを送り、各結果をタスクIDで受け取れます。
著者:更新日:約14分で読めます

Claude CodeとCodexは、自分から相手に作業を渡すことはありません。タスクを引き継ぐには、2つのターミナルの間でコピーする、両方のエージェントが読む引き継ぎファイルをリポジトリに置く、一方のエージェントに相手の非対話モード( claude -p または codex exec )を実行させて回答を読ませる、という方法があります。MAOでは、Claude CodeのターミナルとCodexのターミナルの間にワイヤーを引くと、それぞれが mao ask で相手にタスクを送り、結果を受け取れます。

Claude CodeとCodexは直接やり取りできますか?

標準ではできません。どちらのツールのドキュメントにも、もう一方のエージェントにタスクを送るコマンドは書かれていないため、タスクを運ぶ何かが必要です。あなた自身、ファイル、シェルコマンド、またはオーケストレーションアプリです。

それぞれのツールには入り口があります。どちらもシェルから非対話で実行でき、どちらもリポジトリの AGENTS.md ファイルを読み、どちらもMCPサーバーを使えます。以下の各節で、それぞれが引き継ぎに何をしてくれるか、どこまでかを説明します。

ターミナル間のコピーで引き継ぐには?

同じリポジトリで、一方のターミナルで claude を、もう一方で codex を実行します。Claude Codeに計画を書かせてコピーし、Codexに貼り付け、Codexの要約をClaude Codeにコピーして戻し、レビューさせます。

設定は不要で、両方のエージェントが完全に対話できる状態のままなので、どちらにもいつでも指示できます。代わりに負担はあなたにかかります。引き継ぎのたびにコピーと貼り付けをして、途中で切れていないか確かめ、どのエージェントが何を待っているかを把握し続けることになります。たまにセカンドオピニオンをもらう程度なら問題ありませんが、計画・実装・レビューを繰り返すループには向きません。

リポジトリのファイルで引き継ぐには?

引き継ぎ内容を両方のエージェントが読むファイルに書き、タスクと結果をクリップボードではなくリポジトリに残します。どちらのツールも AGENTS.md をすでに読むので、共有ルールの置き場所として適しています。

  • Codex はプロジェクトのルートから現在のディレクトリまでの AGENTS.md を読みます。ディレクトリごとに最大1ファイルで、合計が32 KiBに達するとそれ以上は追加しません( project_doc_max_bytes 設定)。
  • Claude Code (2.1.277以降)は、作業ディレクトリとその上位に CLAUDE.md がないときに AGENTS.md を読みます。 CLAUDE.md がある場合は、そこに @AGENTS.md の行を加えると、Claude Codeは両方を読みます。

シンプルな構成:

  1. AGENTS.md にルールを書きます。「始める前に HANDOFF.md を読むこと。終えるときは、やったこと、残っていること、変更したファイルを書くこと。」
  2. Claude Codeが自分の担当を終えたら、次のタスクを HANDOFF.md に書かせます。
  3. Codexを起動し、 HANDOFF.md のタスクを引き取るよう伝えます。
  4. Codexが終えたら、Claude Codeに HANDOFF.md を読ませて変更をレビューさせます。

このファイルは、読んでコミットできる記録として残り、どちらのエージェントもあなたのコピー&ペーストに頼らずに済みます。ただし、いつファイルを見るかは、それぞれのエージェントに伝える必要があります。

一方のエージェントがシェルから相手を実行できますか?

できます。Claude Codeの -p フラグとCodexの codex exec コマンドは、どちらも対話画面なしで1つのタスクを実行し、回答をstdoutに出力します。そのため、どちらのエージェントも相手を普通のシェルコマンドとして実行し、結果を読めます。

Claude CodeがCodexにタスクを渡す

実装ステップのためにCodexを実行するよう、Claude Codeに頼みます。

codex exec --sandbox workspace-write "Implement the plan in HANDOFF.md and run the tests" -o codex-result.txt
  • codex exec は進捗をstderrに流し、Codexの最終メッセージだけをstdoutに出力します。Claude Codeが読むのはこのメッセージです。 -o を付けると、そのメッセージをファイルにも書き出します。
  • デフォルトでは読み取り専用のサンドボックスで動きます。 --sandbox workspace-write を付けるとファイルを編集できます。
  • Gitリポジトリを前提としています。 --skip-git-repo-check でこのチェックを外せます。
  • 続きの依頼は codex exec resume --last "<prompt>" で同じCodexセッションに送れます。

Claude Codeがこれらのコマンドを毎回確認せずに実行できるようにするには、 Bash(codex exec *) のような権限ルールで許可します。

CodexがClaude Codeにタスクを渡す

レビューのためにClaude Codeを実行するよう、Codexに頼みます。

claude -p "Review the uncommitted changes for bugs and missing tests" --allowedTools "Read,Bash(git diff *)" --output-format json
  • claude -p は回答を出力して終了します。 --output-format json を使うと、テキストは result フィールドに入り、 session_id フィールドを使えば後の呼び出しで --resume により同じ会話を続けられます。
  • -p の実行では、承認が必要なツール呼び出しは、何かが承認しない限り拒否されます。そのため、Claude Codeが使ってよいツールを --allowedTools で列挙するか、 --permission-mode acceptEdits のようなモードを指定します。
  • Codexの workspace-write サンドボックスはデフォルトでネットワークアクセスをオフにしており、 claude -p はAnthropicのAPIに接続する必要があります。Codexの config.toml で、 [sandbox_workspace_write] の下に network_access = true を設定して許可します。

引き継ぎを自分でスクリプトにする

同じコマンドで、自分のターミナルから実行する引き継ぎも組めます。各ステップの出力が次のステップの入力になります。

claude -p "Write a step-by-step plan for adding rate limiting to the API. Output only the plan." > plan.md
codex exec --sandbox workspace-write "Implement plan.md, run the tests and summarize what changed" -o codex-summary.md
claude -p "Read plan.md and codex-summary.md, then review the uncommitted changes against the plan" --allowedTools "Read,Bash(git diff *)"

トレードオフとして、呼び出されたエージェントは画面なしで、1回の呼び出しにつき1つのタスクを実行します。考えている様子を見ることも途中で介入することもできず、呼び出した側のエージェントは相手が終了するまで待ちます。

MCPでClaude CodeとCodexをつなげますか?

2つのエージェント間の引き継ぎとしては使えません。MCPは、あるツールが別のツールの持つツールを使う仕組みで、もう一方のエージェントにタスクを渡すこととは別物です。

  • CodexがClaude Codeを使う場合。 claude mcp serve はClaude CodeをstdioのMCPサーバーとして起動し、Codexは codex mcp add <name> -- <command> でstdioサーバーを追加できます。Claude Codeのドキュメントによると、このサーバーはClaude Codeのツールをクライアントに公開するだけなので、Codexが得るのはファイル、編集、シェルのツールであり、タスクを引き受けるClaudeのモデルではありません。
  • Claude CodeがCodexを使う場合。 OpenAIのドキュメントによると、 codex mcp-server コマンドは削除されました。後継のCodex app serverは、MCPではなく独自のJSON-RPCプロトコルを使い、実験的な機能です。

それでもMCPは、両方のエージェントに同じ外部ツール(たとえば同じドキュメントサーバーや課題管理サーバー)を持たせるのに役立ちます。それぞれ claude mcp add と codex mcp add で追加します。

MAOのワイヤーによる引き継ぎはどう動きますか?

MAOは、Claude CodeとCodexを本物のターミナルとしてキャンバスに置き、それぞれが自分のログインとモデルで動きます。2つの間にワイヤーを引くと、互いを見つけて mao コマンドでタスクを送れるようになり、結果は依頼したエージェントに戻ります。

  1. MAOでリポジトリを開き、Claude CodeのノードとCodexのノードを置きます。
  2. Claude Codeのノードを選択し、ノードバーで Connect を選び、Codexのノードを選びます。
  3. Claude Codeが作業を続けている間にCodexがコードを編集するなら、Codexを専用のレイヤーに置きます。レイヤーは独自のブランチを持つGitワークツリーなので、2つが同じチェックアウトを編集することはありません。
  4. Claude Codeに変更を計画させ、実装をCodexに渡すよう頼みます。Claude Codeは自分のターミナルから、 mao peers が表示する名前を使って mao ask でタスクを送ります。
  5. Codexのターミナルの準備ができ次第、MAOがタスクを届けます。Codexは作業を終えると mao result <task-id> <content> でタスクを完了し、結果はClaude Codeに戻ります。

Claude Code側の引き継ぎは次のようになります。

mao peers
mao ask codex "Implement the plan in docs/plan.md, run the tests and reply with what changed"

ワイヤーで得られること:

  • 双方向。 同じキャンバス上でワイヤーでつながった2つのターミナルは、いつでも互いにタスクを送れます。CodexからClaude Codeにレビューを頼むのも同じ方法です。
  • 追跡されるタスク。 すべてのタスクに固定のIDと状態(pending、delivered、completed、failed)があります。 mao ask は結果を待ち、 mao send はすぐに戻るので、後で mao wait <task-id> で結果を受け取ります。
  • 再起動しても残る作業。 MAOが閉じたときに受け取ったまま終わっていなかったタスクは、MAOの起動時に再びキューに入ります。クラッシュの後は同じタスクが2回届くことがあるため、受け取る側は重複を許容する必要があります。
  • 共有のコンテキスト。 ノートを両方のエージェントに接続すると、それぞれが mao note read <note> で読み、 mao note append <note> <content> で追記できます。
  • 両方とも対話できるまま。 各エージェントはそれぞれ生きたターミナルなので、いつでもどちらの様子も見られ、入力もできます。

タスクを完了できるのは mao result だけです。 mao ask で返答すると、新しいメッセージが送られます。プロンプトと結果はそれぞれ1 MiBまでです。1つのキャンバス上のワイヤーは、無料トライアルを含むすべてのプランで使えます。ほかのキャンバスのエージェントへの接続にはライセンスが必要です。

どの引き継ぎ方法を使うべきですか?

方法タスクの渡り方結果の戻り方両エージェントが対話できるまま設定
コピー&ペーストあなたが貼り付けるあなたが貼り付けて戻すはいなし
共有の引き継ぎファイル両方のエージェントが読むファイル同じファイルに書かれるはい(見るよう伝えたとき)AGENTS.md のルールとファイル1つ
非対話モードの呼び出し一方のエージェントが claude -p または codex exec を実行stdoutで呼び出し側のエージェントへいいえ(呼ばれた側は画面なしで実行)権限とサンドボックスの設定
MCP引き継ぎではない(ツール呼び出しのみ)ツールの結果該当なしclaude mcp serve と codex mcp add
MAOのワイヤーワイヤー経由の mao ask または mao sendタスクIDで送り手へ戻るはいノードを2つ置いて接続する

たまのセカンドオピニオンにはコピー&ペースト、リポジトリに書面の記録を残したいときは引き継ぎファイル、ビルドスクリプト内のレビューのような一回きりのスクリプト化されたステップには非対話モードの呼び出しを使います。一日中作業を行き来させ、両方のエージェントを動かしたまま、結果が届くまで各タスクを追跡したいならMAOを使います。

うまく引き継ぐには?

引き継ぎが失敗する最も多い原因は、送り手が持っていたコンテキストを受け手のエージェントが持っていないことです。どの方法でも、次の点を押さえます。

  • 完了の条件を書く。 「テストが通り、100リクエスト後にエンドポイントが429を返す」は「レート制限を追加して」より伝わります。
  • ファイルとブランチを名指しする。 受け手のエージェントは、送り手の会話を何も知らない状態から始めます。
  • 結果を決まった形で求める。 変更したこと、残っていること、触れたファイルなどを返させれば、送り手がそれをもとに動けます。
  • 共有する事実は1つのファイルかノートにまとめる。 メッセージのたびに繰り返さずに済みます。
  • エージェントごとにブランチを分ける。 両方が同時にコードを編集するときに必要です。

よくある質問

はい。Claude Codeはシェルから codex exec "<task>" を実行でき、Codexの最終メッセージがstdoutに出力されます。Codexはデフォルトで読み取り専用なので、編集が必要なタスクでは --sandbox workspace-write を付けます。

はい。Codexは claude -p "<task>" を、Claude Codeに許す操作を列挙した --allowedTools と一緒に実行できます。Codexの workspace-write サンドボックスはデフォルトでネットワークアクセスをオフにしているため、AnthropicのAPIに届くよう network_access = true で許可しておきます。

claude mcp serve を実行してCodexに追加することはできますが、公開されるのはClaude Codeのツールで、タスクを引き受けるClaudeのエージェントではありません。タスクを渡すには、 claude -p かMAOのワイヤーを使います。

自動では共有しません。Claude Codeの各セッションは新しいコンテキストウィンドウから始まり、Codexも独自のセッションを持ちます。両方に必要なことは、両方が読む AGENTS.md か、MAOで両方のエージェントに接続したノートで共有します。

いいえ。各エージェントは、すでにお持ちのログインとサブスクリプションで自分のCLIを実行します。MAOがプロンプトを自社のサーバー経由で送ることはありません。

出典

確認日:2026-10-28。

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

自分のリポジトリで試す

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

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