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で受け取れます。
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は両方を読みます。
シンプルな構成:
AGENTS.mdにルールを書きます。「始める前にHANDOFF.mdを読むこと。終えるときは、やったこと、残っていること、変更したファイルを書くこと。」- Claude Codeが自分の担当を終えたら、次のタスクを
HANDOFF.mdに書かせます。 - Codexを起動し、
HANDOFF.mdのタスクを引き取るよう伝えます。 - 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.txtcodex 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 jsonclaude -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 コマンドでタスクを送れるようになり、結果は依頼したエージェントに戻ります。
- MAOでリポジトリを開き、Claude CodeのノードとCodexのノードを置きます。
- Claude Codeのノードを選択し、ノードバーで Connect を選び、Codexのノードを選びます。
- Claude Codeが作業を続けている間にCodexがコードを編集するなら、Codexを専用のレイヤーに置きます。レイヤーは独自のブランチを持つGitワークツリーなので、2つが同じチェックアウトを編集することはありません。
- Claude Codeに変更を計画させ、実装をCodexに渡すよう頼みます。Claude Codeは自分のターミナルから、
mao peersが表示する名前を使ってmao askでタスクを送ります。 - 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つのキャンバス上のワイヤーは、無料トライアルを含むすべてのプランで使えます。ほかのキャンバスのエージェントへの接続にはライセンスが必要です。
どの引き継ぎ方法を使うべきですか?
たまのセカンドオピニオンにはコピー&ペースト、リポジトリに書面の記録を残したいときは引き継ぎファイル、ビルドスクリプト内のレビューのような一回きりのスクリプト化されたステップには非対話モードの呼び出しを使います。一日中作業を行き来させ、両方のエージェントを動かしたまま、結果が届くまで各タスクを追跡したいなら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がプロンプトを自社のサーバー経由で送ることはありません。
出典
- Run Claude Code programmatically:
claude -p、パイプ入力、--output-format json、--resume、--allowedTools、権限モード、-p実行で拒否される承認。 - Connect Claude Code to tools via MCP:
claude mcp addと、Claude Codeのツールをクライアントに公開するだけのclaude mcp serve。 - How Claude remembers your project:セッションごとに新しいコンテキスト、Claude Codeが
AGENTS.mdを読む条件、@AGENTS.mdのインポート。 - Codex: Non-interactive mode:
codex exec、stdoutとstderr、-o、読み取り専用のデフォルト、--sandbox workspace-write、--skip-git-repo-check、codex exec resume。 - Codex: Agent approvals & security:
workspace-writeでネットワークアクセスがデフォルトでオフであることと、network_access設定。 - Codex: Model Context Protocol:
codex mcp addと[mcp_servers]の設定。 - Codex MCP server removal:
codex mcp-serverの削除と、その後継のapp server。 - Codex: Custom instructions with AGENTS.md:Codexが
AGENTS.mdを探す方法と、デフォルトの32 KiBの上限。 - MAO:エージェント、ノート、ポータルを接続する: Connect でワイヤーを引く方法。
- MAO:タスクを送って結果を受け取る:
mao ask、mao send、mao result、mao wait、タスクの状態と上限。 - MAO:接続したノートを読んで更新する:
mao note readとmao note append。 - コーディングエージェントのためのマルチエージェント・オーケストレーション:各エージェントが自分のログインで動くこと、レイヤーがワークツリーであること、結果が送り手に戻ること。
- MAOの変更履歴:双方向のワイヤー(0.5.24)、配信・再起動・
mao result(0.5.25)、無料トライアルでのワイヤー(0.11.10)。
確認日:2026-10-28。
ご質問は?Discordで質問するか、hello@miguer.comまでメールでお知らせください。