実際に移行できるもの
Claude Code のセットアップは丸ごと移行できます。 ナレッジがリポジトリ(CLAUDE.md、MCP サーバー、コマンド、サブエージェント、スキル、設定など)にある場合、Codex にはそれをインポートするための本格的なインポーターが用意されています。ドキュメントによると、指示ファイル、config.toml と settings.json、スキルとプラグイン、MCP サーバー設定、プロジェクトフォルダとメモリ、フックとスラッシュコマンド、サブエージェント、そして過去30日間のチャットを移行できます。これは回避策ではなく、公式にサポートされたパスであり、詳細は Claude Code のセットアップを Codex に移行する で別途解説されています。
Claude アプリのメモリは移行できません。 これは注目に値する非対称性です。競合する CLI の設定全体を取り込める同じインポーターが、同じベンダーのコンシューマー向け製品に対しては一線を画しています。「標準の Claude チャットデータはインポートできません」とドキュメントに記載されています。ChatGPT のデータも取り込めないとドキュメントに記されています。このインポーターは開発者向けのセットアップ用であり、チャット履歴用ではありません。何度試してもそれは変わりません。
Claude のメモリには、ダウンロードボタンのようなものは一切ありません。 Claude アプリでは、設定を開いて記憶している内容をカテゴリごとに項目別に表示・編集できます。これは削除するための非常に優れたコントロール画面です。しかし、それをファイルとしてエクスポートすることはできません。現実的な代替策は、Claude に会話の中であなたに関するメモリをそのまま書き出すよう依頼し、その出力を自分でコピーすることです。また、Claude 自身の「メモリインポート」機能の方向性にも注意してください。これは他のアシスタントから Claude にメモリを 取り込む ものであり、実験的機能と位置づけされています。外部へエクスポートする同等の機能はありません。
移行先で Codex が用意しているものは本物ですが、デフォルトではオフになっています。 Codex のメモリは存在します。ドキュメントの言葉を借りれば、~/.codex/memories/ の下に「以前のチャットからの要約、永続的なエントリ、最近の入力、および裏付けとなる証拠」を保存します。また、これらはデフォルトで無効になっています。設定の「パーソナライズ(Personalization)」で有効にするか、設定ファイルで [features] memories = true と記述します。移行において重要な特性が3つあります。それらはあなたが書いたものではなく Codex によって生成されること(ドキュメントではこれを「生成された状態」と呼び、手動編集ではなく検査を目的としています)、プロジェクトごとではなくグローバルであること、そしてそのマシン上に存在することです。Codex クライアントは独自のローカルメモリストアを保持し、Web 上の ChatGPT は別のストアを保持します。
どちらの側にも存在しないのは、「永続的なもの」です。 Claude のメモリは、あなたとの会話の合成です。Codex のメモリは、Codex とのチャットの合成です。どちらもあなたが書いた記録ではないため、ある合成を別の合成にコピーするような移行は間違ったアプローチです。だからこそ、以下で説明する手動のプロセスは、単なる転送ではなく「アップグレード」として行う価値があるのです。
手動での移行
ステップ 1: Claude のメモリを取り出し、2つの種類に分類する
Claude の設定を開き、あなたについて保存されている内容をカテゴリごとに確認します。次に、会話の中で、仕事関連で保持されている内容を含め、あなたに関するメモリをそのまま書き出すよう Claude に依頼します。その出力をスクラッチファイル(一時ファイル)にコピーします。
ここからが、この移行に価値があるかどうかを決定する重要な作業です。リストに目を通し、各項目を次の2つの山のいずれかに分類します。
好み(Preferences)。 トーン、フォーマット、言語、説明の詳しさ、好みのフレームワークなど。これらは短く、再定義するのも簡単で、ほとんどが使い捨て可能です。どのアシスタントであっても、通常の使用を1週間もすれば自然と再生成されます。
制約とコンテキスト(Constraints and context)。 契約上、イギリス英語の綴りを要求するクライアント。移行順序の問題で2回の障害が発生したため、データベースを共有してはならないサービス。理由があって存在する命名規則。これらは、Claude に保存されているバージョンが、おそらく現実の何かの「圧縮された影」にすぎない項目です。なぜなら、メモリシステムは結論だけを保持し、その理由を捨ててしまうからです。
2つ目の山にあるすべての項目について、その理由を書き戻してください。Claude が「サービス固有のデータベースを好む」と保存していたなら、あなたは「サービスは独自の書き込みパスを持つ。スキーマ共有の移行により3月に2回の障害が発生したため、スキーマ所有者がすべてのデプロイを制限することはできない」と書き込みます。この文章こそが、真の資産です。また、これは最初から保存されていなかったため、どのようなエクスポートツールを使っても生成できなかったものです。
この仕分けによって何が節約できるかに注目してください。100個のメモリ項目を移行するわけではありません。理由を伴う8〜10個の項目だけを移行し、残りは意図的に捨てるのです。
ステップ 2: それぞれの山を Codex が実際に参照する場所に配置する
Codex は AGENTS.md ファイルを読み込みます。その解決順序はドキュメントに記載されています。~/.codex/AGENTS.md(または $CODEX_HOME)、次にリポジトリのルート、中間ディレクトリ、そして作業ディレクトリの順に、上から下へと組み立てられ、最も近いファイルが優先されます。CLAUDE.md は読み込まれませんし、ChatGPT のカスタム指示(custom instructions)も読み込まれません。
この階層構造があなたのファイリングシステムになります。
- どこにでも適用される個人の好みは
~/.codex/AGENTS.mdに記述します。これは短くまとめてください。あなたが触れるすべてのプロジェクトでロードされます。 - プロジェクトの制約は、そのリポジトリのルートにある
AGENTS.mdに記述してコミットし、チームメンバーも利用できるようにします。 - コードベースの一部にのみ適用される制約は、そのサブディレクトリ内の
AGENTS.mdに記述します。これにより、モデルが修飾子に気づくことを期待するのではなく、場所によってスコープを表現できます。 - 共有リポジトリに含めるべきではないクライアント固有のルールは、個人のファイルに残すか、リポジトリ外にドキュメントとして保管し、必要なときに貼り付けます。
その後、Codex のメモリについて個別に判断します。メモリを有効にすることは合理的です。あなたがメンテナンスしなくても、Claude が構築したような好みに関するレイヤーが自然と蓄積されていきます。ただし、得られるものについて冷静に見極めてください。それは生成された状態であり、プロジェクトごとではなくグローバルで、1台のマシン上にあり、短時間のセッションではスキップされ、レート制限の余裕が少なくなると一時停止されます。それは便利なレイヤーであり、3月の障害情報を置いておく場所ではありません。
スクラッチファイルを開いている間にもう1つやっておく価値があること:あなたに関する好みではなく、システムに関する事実のように読めるものは、アシスタントのメモリではなく、リポジトリ内のドキュメントとして残すべきです。バージョン管理システム内の決定記録はレビュー可能ですが、メモリのエントリはレビューできません。
より良い方法:どちらのアシスタントでも使える単一のメモリレイヤー
手動のプロセスを一度行うと、自分が何をしたかに気づくでしょう。ベンダーによる会話の合成を、理由が添付された書面によるナレッジに変換したのです。これはアップグレードです。問題は、それが現在どこにあるかです。半分は Codex しか読み取らない AGENTS.md ファイルにあり、半分はスクラッチファイルにあり、執筆や思考のために今後も使い続ける Claude アプリからは何も見えません。
代替案は、永続的な素材を両方のツールが読み取れる1つのストアに保持し、各ツールの組み込みメモリは、それが得意とする使い捨ての便利なレイヤーとして機能させることです。
MemoryLake はそのためのメモリレイヤーです。制約、決定事項、ソースドキュメントを1か所にまとめ、Claude や Codex などの MCP 対応ツールから直接、また API を通じて ChatGPT からも読み取ることができます。ツールを移行することが、ナレッジを移行することを意味しなくなります。
ステップ 1: API キーを作成する
キーを生成し、約30秒で最初のリクエストを送信します。チャットウィンドウに貼り付けるのではなく、環境変数やシークレットマネージャーに保管してください。

ステップ 2: 最初のメモリをアップロードする
先ほど書き出した制約の背景にあるドキュメント、画像、ファイルを投入します。データベースのルールを設ける原因となったインシデント報告書、クライアントのスタイル要件、アーキテクチャ決定記録(ADR)、仕様書などです。要約ではなく、ソースそのものをアップロードしてください。あなたが移行しようとしている失敗の本質は、「要約を保持し、理由を捨ててしまうシステム」だったからです。

ステップ 3: AI とエージェントを接続する
Claude、Codex、OpenClaw、およびその他の AI エージェントに、MCP または API を介してメモリへのアクセス権を付与します。Codex と Claude はどちらも MCP に対応しているため、同じストアを直接読み取ることができます。ChatGPT の場合は、API を介して必要な情報を取得し、プロンプト、カスタム GPT の指示、またはモデルを呼び出すワークフローに注入します。

実務における変化
最初の違いは、次にツールを変更するときに、過去の履歴を掘り起こす(考古学のような)作業に午後を費やす代わりに、半日のセットアップだけで済むようになることです。ナレッジがすでに読みやすい形でどこかに存在していれば、AGENTS.md ファイルを書くのは簡単です。しかし、言い換えられた表現から理由を再構築しようとすると、多大なコストがかかります。
2つ目は、Claude と Codex があなたのプロジェクトについて異なる認識を持つことがなくなる点です。現在、あなたが設計に使用しているアシスタントと、コードを書く CLI は、別々の会話から個別に学習しているため、認識がズレていきます。同じ制約を読み取らせることで、プロジェクトのコンテキストを持たずにアシスタントが起動するという問題を、ツールごとに何度も解決しなければならない状況を防ぐことができます。
3つ目は、理由が残ることです。これこそが、メモリの移行で情報が失われたように感じさせる具体的な失敗原因です。好みに圧縮されたアーキテクチャの決定は上書き可能であり、実際に上書きされてしまいます。しかし、障害履歴が添付された保存ドキュメントは上書きされません。
そして、これは各ツールがネイティブに行うことと調和します。Codex のメモリはローカルであなたの習慣を学習し続けます。Claude はあなたが好む話し方を覚え続けます。どちらも「信頼できる唯一の情報源(system of record)」になる必要はありません。それは彼らが最も苦手とする仕事だからです。
アシスタント間でメモリを移行するためのベストプラクティス
エントリではなく、理由を移行する
100個のメモリ項目がそこにあるからといって、すべてを移行したくなる誘惑に駆られます。しかし、そのほとんどは再生成可能な「好み」です。価値のある少数は、「なぜなら(because)」を伴うものです。そして、保存されたバージョンでその「なぜなら」が欠落しているのも、まさにそれらの項目です。それらを書き直し、残りは捨てましょう。
常にロードされるファイルは小さく保つ
~/.codex/AGENTS.md はマシンのすべてのプロジェクトでロードされ、ルートの AGENTS.md はリポジトリ全体でロードされます。ファイルが長すぎると注意が散漫になり、ルールの遵守率が下がるだけです。そこには厳格な制約だけを記述し、それ以外は検索(retrieval)に任せるか、サブディレクトリ内のスコープを絞ったファイルに記述してください。
形容詞ではなく、場所でスコープを表現する
Codex はディレクトリごとに指示を解決します。課金サービスにのみ適用されるルールは、ルートファイルに「課金のみ」というプレフィックスを付けるのではなく、billing/AGENTS.md に配置すべきです。場所は強制されますが、修飾子は単なる「期待」にすぎません。
生成されたメモリについては慎重に判断する
Codex のメモリがデフォルトでオフになっているのは偶然ではありません。それをオンにすることは合理的ですが、バックアップとして扱うのは合理的ではありません。それらはマシンローカルであり、プロジェクトごとではなくグローバルで、自動生成されたものです。蓄積される内容を確認し、失うと困るようなものがそこにしか存在しないという状況は避けてください。
課金を停止する前にエポートを行う
Claude のメモリは、Claude へのアクセス権がある間だけ表示されます。サブスクリプションを解約する予定がある場合、手動でコピーする時間は、この移行において唯一の「後戻りできないステップ」になります。それ以外のことは後からでもやり直せますが、これだけは不可能です。
結論
Claude のメモリを Codex に移行するのは手動の作業です。その理由は謎ではなく、ドキュメントに明記されています。Codex のインポーターは Claude Code を対象としており、「標準の Claude チャットデータはインポートできません」とされています。Claude 側も構造化されたエクスポートを提供しておらず、保存された内容を確認できる設定ページと、それを書き出すよう依頼できる会話機能があるのみです。
幸いなことに、適切に行えば、この手動のプロセスはアップグレードになります。好みと制約を分類し、すべての制約に理由を書き戻し、Codex が実際に参照する場所(ディレクトリごとにスコープされた AGENTS.md の階層)に保存し、記録としてではなく便利なレイヤーとして Codex のメモリを有効にします。そして、永続的な半分を両方のアシスタントが読み取る1つのストアに配置します。そうすれば、次にツールを変更するときに移行するのは、ツールそのものだけになります。