各ツールが独自に読み取るもの
指示ファイル:CLAUDE.mdとAGENTS.md
Codexは1つのファイルを中心に構築されています。OpenAIのドキュメントには「Codexは作業を開始する前にAGENTS.mdファイルを読み取る」と記載されています。これは、Codexホームディレクトリにあるグローバルファイルと、リポジトリルートから作業ディレクトリまでのプロジェクトファイルをレイヤー化して読み込みます。
Claude CodeはCLAUDE.mdを読み取りますが、ある条件下ではAGENTS.mdも読み取ることができます。Anthropicの記憶(memory)に関するドキュメントには、「デフォルトでは、Claudeは作業ディレクトリまたはその上位にCLAUDE.mdが存在しない場合にのみAGENTS.mdを読み取る」とあります。AGENTS.mdを直接読み取るには、Claude Code v2.1.277以降が必要です。
この条件が、共有指示ファイルが機能しなくなる原因となります。リポジトリに両方のファイルがある場合、Claude CodeはCLAUDE.mdを読み取ってAGENTS.mdをスキップし、CodexはAGENTS.mdを読み取ります。Claude CodeのAGENTS.mdサポートに関するガイドでは、どのファイルがそれを無効にするかを詳しく解説しています。
Anthropicは解決策を提示しています。「ClaudeがAGENTS.mdを直接読み取っていない場合でも、隣接するCLAUDE.md内に@AGENTS.mdというインポート文を記述することで、すべてのツールが共有する単一のファイルとして維持できる」。Claudeはまずインポートされたファイルを読み取り、その後にインポート文の下に追加されたClaude固有の記述を読み取ります。
サブディレクトリ内の指示
モノレポ(Monorepo)ではさらに複雑になります。Codexはプロジェクトルートから作業ディレクトリまで辿り、道中のAGENTS.mdファイルを読み取ります。OpenAIは「現在のディレクトリに近いファイルほど、結合されたプロンプトの後半に表示されるため、以前のガイダンスを上書きする」と述べています。また、結合されたサイズがproject_doc_max_bytesで設定された制限に達すると、ファイルの追加を停止します。
Claude Codeはサブディレクトリファイルの取得方法が異なります。セッション開始時に、作業ディレクトリとその上位ディレクトリにあるすべてのAGENTS.mdを読み取ります。Anthropicによると、作業中に「ClaudeがReadツールでそのディレクトリのファイルを開き、かつそのサブディレクトリに3つのCLAUDE.mdファイルのいずれも存在しない場合」に、サブディレクトリのAGENTS.mdを読み取ります。つまり、サブディレクトリのファイルは、異なるタイミングで両方のツールに届くことになります。
Skills
両方のツールはskillsを使用しますが、フォルダが異なります。Codexはリポジトリのskillsを.agents/skillsから読み取ります。OpenAIのドキュメントには「リポジトリの場合、Codexは現在の作業ディレクトリからリポジトリルートまでのすべてのディレクトリで.agents/skillsをスキャンする」とあります。Claude Codeは、プロジェクトでは.claude/skills/から、個人用は~/.claude/skills/からskillsを読み取ります。
MCPサーバー
MCP設定も別々です。Claude Codeはプロジェクトサーバーを.mcp.jsonに、ローカルおよびユーザーサーバーを~/.claude.jsonに保存します。Codexは、各MCPサーバーを「設定ファイル(config.toml)の[mcp_servers.<server-name>]テーブルで設定」します。
記憶(Memory)
各ツールは、あなたのマシン上に独自の記憶(memory)を保持します。Anthropicは「自動記憶(Auto memory)はマシンローカルである」と述べています。OpenAIは、ローカルのCodexクライアントは「個別のローカルメモリストアとコントロールを使用する」と述べています。各ツールは独自のストアから動作します。文書化されている唯一の架け橋は、後述するCodexのインポーターであり、Claude Codeのプロジェクト記憶をコピーすることができます。
記憶の目的に関するOpenAIのガイダンスは両方に当てはまります。「記憶は、常に適用されなければならないルールの唯一のソースとしてではなく、役立つ想起レイヤーとして扱うこと」。
ツール間で移行できるもの
Claude CodeからCodexへのインポート
Codexにはインポートフローがあります。OpenAIのドキュメントには「デスクトップアプリはClaude Code、Claude Cowork、またはCursorからインポートできる。Codex CLIはClaude CodeまたはCursorからインポートできる」とあります。デスクトップアプリでは「Settings > Import」にあり、CLIでは/importコマンドを使用します。
取り込まれるリストは多岐にわたります。指示ファイルはAGENTS.mdへ、settings.jsonはconfig.tomlへ移行され、skills、プラグイン、MCPサーバー設定、フック、サブエージェントも引き継がれます。スラッシュコマンドはskillsになります。Claude Codeのプロジェクト記憶はCodexの記憶になり、最近のチャットも移行されます。CLIは「過去30日間の最大50件のチャット」をインポートします。
ツールを切り替えるのではなく、両方を併用する上で2つの詳細が役立ちます。第一に、「インポートによって既存のエージェント設定が変更または削除されることはない」点です。第二に、デスクトップアプリはインポートした作業を同期し続けることができます。「Settings > Import」を開き、自動更新(automatic updates)をオンにします。Claude CodeからCodexへの移行ガイドではインポーターを詳細に解説しており、Codex memories v2ガイドでは、インポートされたClaude Codeの記憶が新しいインストール環境のどこに配置されるかを説明しています。
CodexからClaude Codeへのインポート
逆方向の移行も可能です。Claude Codeの/import codexコマンドは、マシン上のOpenAI Codexの設定をClaude Codeに取り込みます。Anthropicのコマンドリファレンスには、対象として「指示ファイル、MCPサーバー、コマンド、サブエージェント、およびskillsを含む」と記載されています。
事前にプレビューすることも可能です。Anthropicのコマンドリファレンスには「--dry-runを追加して、何も書き込まずにプレビューする」とあり、--yesを使用すると対話型ピッカーをスキップできます。コマンドリファレンスには「設定」がリストされており、会話や記憶は含まれていないため、履歴ではなくセットアップを移行する方法として扱ってください。一部のクラウドプロバイダーやClaudeアプリゲートウェイ経由では利用できず、コマンドリファレンスに例外が記載されています。
Claude Code内からCodexへ作業を引き継ぐ
OpenAIは、openai/codex-plugin-ccリポジトリでClaude Codeプラグインを公開しています。そのREADMEには目的がこう記されています。「コードレビューやCodexへのタスク委譲のために、Claude Code内からCodexを使用する」。
これにより、Claude Codeのセッションを離れることなくCodexを実行するコマンドが追加されます:
/codex:review:現在の変更またはブランチに対して、読み取り専用のCodexレビューを実行します。/codex:rescue:バグの調査や修正の試行のために、サブエージェントを通じてタスクをCodexに委ねます。/codex:transfer:「現在のClaude Codeセッションから永続的なCodexスレッドを作成し、codex resume <session-id>コマンドを表示する」。
このtransferコマンドは、ライブな会話を移動させるのに最も近い手段です。READMEによると、これはCodexの外部エージェントセッションインポーターを使用し、CodexアプリでのClaude履歴インポートと同じ変換ルールに従います。プラグインはマシン上のCodex CLIを通じて動作し、あなたのCodex設定とサインインを使用します。Codexの使用量はCodexの制限にカウントされます。
注意が必要なオプションが1つあります。プラグインは、Claudeが停止したときにCodexレビューを実行するレビューゲートを追加できます。READMEは警告しています。「レビューゲートはClaude/Codexの長いループを作成する可能性があり、使用制限を急速に消費する恐れがある」。
依然として移行できないもの
インポートと転送はセットアップを移動させ、場合によっては会話も移動させます。しかし、どちらのベンダーも、2つのライブセッションを同期させ続けるものとしては説明していません。
- セッション中の決定事項。 今日の午後にClaude Codeで発見した制約は、両方が読み取るファイルに書き込むか、セッションを転送しない限り、Codexには反映されません。
- 記憶の更新。 インポート後、各ツールの記憶は独自に学習を続けます。その後のClaude Codeの自動記憶エントリは、再度インポートするか、デスクトップアプリの自動更新をオンにしていない限り、Codexには届きません。
- 片方のツールしか読み取らない指示。
AGENTS.mdがインポートされていない状態でのCLAUDE.md内のルールは、Codexには決して届きません。
これが、以下のセットアップで共有コンテキストをファイルに置き、インポートや転送を特定の瞬間のためのツールとして扱う理由です。
よくある失敗例
CLAUDE.mdとAGENTS.mdの両方に異なる内容を記述する。 Claude CodeはデフォルトでCLAUDE.mdを読み取りAGENTS.mdをスキップするため、2つのツールが異なるルールに従うことになります。
一度だけインポートして、ツールが同期し続けることを期待する。 インポートはコピーです。デスクトップアプリの自動更新を使用するか、共有素材を共有ファイルに保持してください。
両方のツールに同じ決定事項を説明する。 両方が読み取れる場所に一度だけ書き込んでください。
レビューゲートをオンにして放置する。 OpenAIのREADMEは、ループが発生して使用制限を消費する可能性があると警告しています。
Claude CodeのインポートでCodexのチャットが取り込まれると期待する。 コマンドリファレンスには、指示ファイル、MCPサーバー、コマンド、サブエージェント、skillsといった「設定」がリストされています。
解決策:1つの指示ファイル、1つの決定記録、そして意図的な引き継ぎ
ステップ1:AGENTS.mdを共有指示ファイルにする
プロジェクトの規約をAGENTS.mdに記述します。リポジトリにCLAUDE.mdもある場合は、その先頭に@AGENTS.mdインポートを追加し、その下にClaude固有のメモだけを残します。CodexはAGENTS.mdを直接読み取り、Claude Codeはインポート経由で読み取ります。CodexがAGENTS.mdのルールをスキップする場合のガイドでは、Codex側のサイズ制限と検出ルールについて解説しています。
ステップ2:セットアップを移行し、共有ファイルで維持する
インポーターを使用して、skills、MCPサーバー、コマンドを移行します。Claude Code側ではまず--dry-runを使用してください。その後、各skillについてどちらのフォルダを信頼できる情報源(source of truth)にするか決め、変更があった際にもう一方を更新します。Codexデスクトップアプリを使用している場合は、インポートした作業の自動更新をオンにします。
ステップ3:状況を書き留めて引き継ぐ
作業を一方のツールからもう一方へ移動させる際は、現在の状況(完了したこと、残っていること、決定事項とその理由)を書き留めます。Claude CodeからCodexへのタスク途中の移動には、/codex:transferで会話を引き継ぎます。それ以外の場合は、短い引き継ぎメモで十分です。引き継ぎプロンプトの書き方ガイドに含めるべき内容をまとめています。このタスクを超えて重要になる決定事項は、AGENTS.mdまたは別の共有ファイルに記入します。
MemoryLakeでのセットアップ
共有ファイルは単一のリポジトリをうまくカバーします。しかし、リポジトリ、マシン、ツールをまたぐ決定事項(好み、チームの規約、過去の選択の背後にある理由など)こそが、両方のツールに何度も説明し直すことになるものです。
MemoryLakeは、そのようなコンテキストを1つのリストで管理し、Claude Code、Codex、そしてChatGPTなどの接続された他のアシスタントで利用可能にするための記憶(memory)レイヤーです。
エントリはあなた自身の言葉で記述します。CLAUDE.mdやAGENTS.mdファイル、Claude Codeの自動記憶、Codexの記憶、セッション、あるいはベンダーのストアから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。インポーターやCodexプラグインは、各ベンダーが説明している通りに機能し続けます。
ステップ1:APIキーを作成する
サインインしてダッシュボードからキーを生成します。このキーはMemoryLakeワークスペースに属し、ClaudeやChatGPTのアカウントとは別個のものです。

ステップ2:最初の記憶をアップロードする
両方のツールに何度も説明した決定事項から始めましょう:規約、制約、除外したアプローチなどです。1エントリにつき1項目とし、日付を入れ、適用されるリポジトリのラベルを付けます。

ステップ3:AIとエージェントを接続する
Claude CodeとCodex、および使用している他のアシスタントを接続します。どちらを先に開いても、両方が同じ決定事項に基づいて動作を開始します。

実践で何が変わるか
第一の違いは、両方のツールが同じルールに従うようになることです。1つのAGENTS.mdを、Codexは直接読み取り、Claude Codeはインポート経由で読み取ります。
第二に、セットアップの移行が一度で済むようになります。インポーターがskills、MCPサーバー、コマンドを引き継ぎ、どちら側がそれぞれを所有しているかが明確になります。
第三に、引き継ぎにコンテキストが伴うようになります。転送や記述されたメモが作業と共に移動するため、もう一方のツールがゼロから開始することはありません。Claude Codeと併せてCursorも使用している場合は、CursorとClaude Codeで1つの記憶を共有するガイドでも同じアプローチを適用できます。
Claude CodeとCodexを併用するためのベストプラクティス
1つのAGENTS.mdを使用する。 CLAUDE.mdから@AGENTS.mdでインポートしてください。
CLAUDE.mdをAGENTS.mdから乖離させない。 CLAUDE.mdにはClaude固有のメモだけを保持してください。
インポートはまずプレビューする。 Claude Codeの/importでは--dry-runを使用してください。
各skillの信頼できる情報源を選択する。 変更があった際にもう一方を更新してください。
両方のツールが読み取る場所に決定事項を書く。 片方のツールの記憶の中だけに留めないでください。
タスク途中の移動には/codex:transferを使用する。 Claude CodeセッションからCodexスレッドを作成します。
レビューゲートに注意する。 ループが発生し、制限を急速に消費する可能性があります。
結論
Claude CodeとCodexは併用可能ですが、それぞれが独自の指示、skills、MCP設定、記憶(memory)を保持しています。CodexはClaude Codeのセットアップ、プロジェクト記憶、最近のチャットをインポートでき、Claude CodeはCodexの指示ファイル、MCPサーバー、コマンド、サブエージェント、skillsをインポートできます。また、OpenAIのプラグインはClaude Codeセッションのレビュー、委譲、Codexへの転送が可能です。しかし、そのどれもが2つのライブセッションを同期させ続けるものとしては説明されていません。
1つのAGENTS.mdを共有し、インポーターを使用してセットアップを移行し、両方のツールが読み取る場所に決定事項を書き込み、状況を書き留めて引き継ぎを行いましょう。