実際に移行されるもの
Codexのインポーターは、移行元としてClaude Codeをサポートしています。CLIでは /import を実行し、デスクトップアプリでは Settings → Import に進み、フローに従います。
Codexのドキュメントによると、インポートの対象は以下の通りです:
AGENTS.mdファイルsettings.jsonおよびconfig.toml- 指示ファイルとMCPサーバーの設定
- スキルとプラグイン
- プロジェクトフォルダとメモリ
- 過去30日間のチャットセッション
- フックとスラッシュコマンド
- サブエージェント
リストと同様に、ドキュメントに記載されている制限事項も重要です:
- 過去30日間の最大 50件のチャット まで。
- 「通常のClaudeチャットデータはインポートできません」 — これはClaude Codeのインポーターであり、Claude自体のインポーターではありません。
/importコマンドは「タスクの実行中、リモートセッション中、またはローカルのアプリサーバーデーモンに接続されている間は利用できません」。- インポートされたプラグインは再認証が必要になる場合があります。
さらに、移行の残りの部分を左右する2つの事実があります。
Codexは `CLAUDE.md` ではなく `AGENTS.md` を読み込みます。 AGENTS.md は、Cursor、Jules、Amp、Factoryも読み込むオープンなフォーマットです。そのため、移行は書き換えというよりも、ほとんど名前の変更だけで済みます。内容は変更されずにそのまま引き継がれ、ファイル名とロードパスだけが異なります。Codexはこれらのファイルをレイヤー化します。まずCodexのホームディレクトリ(~/.codex/AGENTS.md、または設定している場合は $CODEX_HOME/AGENTS.md)の下にあるグローバルなファイル、次にリポジトリのルート、そしてルートから作業中のディレクトリまでの間にあるディレクトリの順です。ファイルはルートから下に向かって連結され、競合が発生した場合は現在のディレクトリに最も近いファイルが優先されます。
Codexには独自のメモリ機能がありますが、デフォルトではオフになっています。 メモリは、「以前のチャットからの要約、永続的なエントリ、最近の入力、および裏付けとなる証拠」を ~/.codex/memories/ 内のローカルファイルとして保存します。有効にするには、config.toml の [features] の下で memories = true と設定するか、デスクトップアプリの Settings → Personalization → Enable memories で設定します。これはプロジェクトごとではなくグローバルであり、セッションをまたいで維持されます。依存する前に、ドキュメントに記載されている注意事項を読んでおく価値があります。メモリは「チャット終了直後に更新されない場合がある」、Codexは「アクティブなセッションや短時間のセッションをスキップする」、レート制限に近づくと生成が一時停止する、そしてドキュメントには、メモリにシークレットを保存すべきではなく、ファイルを生成された状態として扱うべきであると明記されています。
したがって、Codexは完全に白紙の状態から始まるわけではありません。ただ、Claude Codeの内部で構築してきた作業コンテキストとは、メモリの形状が異なるだけです。
手動での移行
ステップ 1: 指示ファイルの移動と分割
インポーターがまだ AGENTS.md を生成していない場合は、CLAUDE.md を AGENTS.md にリネームします。内容が完全にプロバイダーに依存しないものであれば、シンボリックリンクを作成することで、両方のツールを並行して実行しながら1つのファイルを読み込ませることができます。もしClaude固有のマーカー(Claude Code独自のコマンド、フック、またはファイル規約への参照)が含まれている場合は、シンボリックリンクを作成するのではなく、ファイルをコピーしてそれらの部分を書き換えてください。そうしないと、どちらかのツールが混乱することになります。
次に、Codexのレイヤー化のメリットを活かすために、スコープごとに分割します:
- マシン全体の設定(コミットスタイル、デフォルト言語、希望する対話方法など)は
~/.codex/AGENTS.mdに配置します。 - リポジトリのルール(ビルドコマンド、テストの実行方法、ディレクトリ規約、絶対に触れてはならないものなど)は、リポジトリルートの
AGENTS.mdに配置します。 - サブシステム固有の詳細(このパッケージは異なるlint設定を使用する、このサービスには独自のデプロイパスがあるなど)は、そのディレクトリの
AGENTS.mdに配置します。
ルートに1つの長いファイルを置くことも可能ですが、それではすべてのサブディレクトリでのすべてのセッションが、すべてのルールの処理コストを支払うことになります。
ステップ 2: インポーターが届かない部分の再構築
30日間、50チャットの制限から外れる部分について、短時間で意図的な確認を行います:
- 過去の決定事項。 重要だったと記憶しているClaude Codeのセッションをざっと見直し、トランスクリプトではなく「結論」を書き留めます。「非同期バージョンは3月に二重課金が発生したため、リトライラッパーは同期のままにする」といった1行のメモが、半日の作業を救うことになります。
- 行き止まり(不採用になったアプローチ)。 すでに除外したアプローチは、失うと最も高くつく知識です。なぜなら、新しいエージェントはそれを喜んで再提案し、解決済みの問題を再び議論することになるからです。
- MCPサーバー。 設定は移行されますが、認証は移行されない場合があります。そのサーバーに依存するセッションを信頼する前に、再接続して各サーバーが実際に稼働しているか確認してください。
- フック、スラッシュコマンド、サブエージェント。 これらは移行されますが、Claude Codeのセマンティクスに基づいて書かれています。無害な対象に対して、それぞれ一度実行してみてください。
1時間ほど時間を確保してください。これを行うかどうかで、移行が「スムーズに完了した」と感じられるか、それとも2週間ほど「機能が低下した」と感じるかの違いが生まれます。
より良い方法:どちらのツールでも使える単一のメモリレイヤー
ここで、少し耳の痛い話をしなければなりません。あなたはいずれまた、この移行作業を行うことになるでしょう。Codexのインポーターが存在するのは、人々が常にエージェント間を移動しており、この業界の進化が止まらないからです。プロジェクトの知識が、たまたまその時使っているエージェントの内部に存在している場合、ツールを切り替えるたびに手動での再構築コストが発生し、そのツールのエクスポート期間外にあるデータはすべて失われます。
Codex Memoriesは実用的であり、有効にする価値があります。しかし、その性質を理解しておく必要があります。それは1台のマシン上の1つのツールであり、オプトイン方式で、プロジェクトごとではなくグローバルであり、自分で執筆するものではなく自動生成される状態です。Claude CodeやCursor、あるいはチームメンバーがそれを読み取ることはできません。
代替案は、知識を両方のツールの外部に保持することです。MemoryLake は、エージェントが MCP または API を介して接続するメモリレイヤーです。これにより、30日間の制限によって保持するデータが左右されることはなくなり、Claude CodeとCodexを並行して実行するために2つの異なるコンテキストを維持する必要もなくなります。
ステップ 1: APIキーの作成
キーを生成し、約30秒で最初のリクエストを送信できます。

ステップ 2: 最初のメモリをアップロードする
永続的な資料を投入します。アーキテクチャのメモ、上記のステップ2で作成した決定ログ、APIコントラクト、ランブック、および何度も説明し直している図などです。ドキュメント、画像、その他のファイルもすべて対象となります。

ステップ 3: AIとエージェントを接続する
Codex、Claude、OpenClaw、その他のエージェントに、MCPまたはAPI経由でアクセスを許可します。これにより、両方のエージェントが同じメモリから読み取るようになり、AGENTS.md は肥大化し続ける知識のゴミ捨て場ではなく、本来の得意分野である「ルール」の記述に専念できるようになります。

実践においてこれがもたらす変化
即座に現れる効果は、AGENTS.md ファイルの肥大化が止まることです。これらのファイルの多くが肥大化しているのは、指示(「コミット前に必ず make lint を実行する」)と知識(「ウェブフックの署名検証は verify.ts にあり、レガシーパスはまだ2社のお客様向けに有効である」)という2つの役割を同時に担っているためです。指示はファイルに記述すべきです。知識はクエリ可能なレイヤーに置くべきです。なぜなら、知識は毎週増え続けるものであり、900行にも及ぶプロンプトの前文を手動でメンテナンスしたい人などいないからです。
2つ目の効果は、次のツール変更時に現れます。知識がすでに両方のエージェントの外部に存在している場合、移行作業は「考古学的な発掘プロジェクト」ではなく、単なる「設定タスク」になります。新しいエージェントを同じメモリに向けるだけで、そのまま作業を継続できます。
また、多くの人が意図的に行っているように、両方のエージェントを併用している場合、1つの共有メモリがあれば同期の問題は完全に解消されます。そうでない場合、同じ真実の2つのバージョンを維持することになり、最悪のタイミングでそれらが乖離していることに気づくことになります。同じような状況は、複数のエージェントが作業を共有する際に共有メモリが存在しない場合にも必ず発生します。
2つのエージェントを併用するためのベストプラクティス
ルールと知識を意図的に分離する
何かをコピーする前に、1つの問いを持って CLAUDE.md を読んでみてください。「これはエージェントが常に従うべき指示か、それともシステムに関する事実か?」 指示は AGENTS.md に送ります。事実はメモリレイヤーに送ります。この1つの切り分けを行うだけで、どれだけプロンプトを調整するよりも出力の品質が向上します。
Codex Memoriesを有効にするが、それだけに依存しない
これは作業スタイルや繰り返しのセットアップにおいて本当に便利です。ただし、ドキュメントに記載されている挙動を忘れないでください。チャットの終了から反映が遅れることがあり、短いセッションはスキップされ、1台のマシンにローカルに保存されます。記録としてではなく、あくまで利便性のための機能として扱ってください。
削除する前に検証する
実際のデバッグセッションを含め、Codexで丸1週間作業を完了するまでは、Claude Codeの設定をそのまま残しておいてください。移行の抜け漏れは、最初の1時間では決して見つかりません。移行されたと思い込んでいたものが初めて必要になったときに明らかになります。Codexを使い始めた後になぜCodexがプロジェクトのコンテキストを忘れてしまうのか、そして再び切り替えることにした場合にClaude Codeに戻る逆ルートがどのように機能するのかを事前に知っておく価値はあります。
結論
Claude CodeからCodexへの移行は、現在最も手厚くサポートされている移行の1つです。/import によって、指示、設定、MCPサーバー、スキル、フック、スラッシュコマンド、サブエージェント、および1ヶ月分のチャットが移行され、CLAUDE.md から AGENTS.md への移行は書き換えではなく単なるリネームで済みます。節約できた労力は、インポーターが触れない部分、つまり決定事項、不採用になったアプローチ、およびその背景にある理由の整理に費やしましょう。
そして、その作業を一度きりで済むようにしてください。どちらのツールも重要な部分においてはステートレスであり、メモリをそれぞれの内部に閉じ込めています。そして、半年後にはまた別の試す価値のあるエージェントが登場しているはずです。使用しているエージェントの外部に存在するメモリレイヤーこそが、次の切り替えを再構築ではなく単なる設定変更に変え、指示ファイルがすべての知識を忘却するための場所へと徐々に変化していくのを防ぎます。もし、コンテキストを何度も説明し直すのを完全にやめたいのであれば、その習慣を解決する方法があります。