MemoryLake
すべての記事に戻る
Tutorial2026年8月21日·10 分で読了

コンテキストを失わずに Codex から Cursor へ移行する方法 (2026)

今回の移行における珍しい特徴は、メインの指示ファイルの変換が一切不要である点です。

Codex は「作業を開始する前に AGENTS.md ファイルを読み込みます」。Cursor もルールのソースとして AGENTS.md を「.cursor/rules のシンプルな代替手段」としてリストしており、ネストされたサブディレクトリのサポートも含まれています。そのため、プロジェクトを開いた瞬間から、リポジトリルートの AGENTS.md が Cursor でそのまま動作します。これが追加作業なしで移行できる部分であり、あなたが作成した文章の大部分がこれに該当します。

移行できないのは、そのファイルの周囲にある仕組みです。そして、Codex には人々が思っている以上に多くの仕組みが存在します。ベースファイルを覆い隠すオーバーライドファイル。1ディレクトリにつき1ファイルというルール。~/.codex に存在するグローバルスコープ。GitHub や GitLab と連携された ## Code Review Rules セクション。チェーン全体に対する 32 KiB の制限。これらの概念は Cursor 側には一切存在せず、移行されたと思い込んでいると、そのうちの3つは静かに挙動を変化させます。

本記事では、何が移行され、何を手動で再構築する必要があるのか、そしてどちらのツールのルールファイルも保持するようには設計されていないプロジェクトの知識をどこに置くべきかを解説します。この問題の症状については、why Codex forgets project context(Codex がプロジェクトのコンテキストを忘れる理由)で詳しく説明しています。

実際に移行されるもの

AGENTS.md の内容はそのまま移行されます。 セットアップコマンド、スタイル、テスト手順、規約など。フォーマットの変更や、追加すべきフロントマター(frontmatter)はありません。

ネストされたディレクトリファイル(ただし優先順位のセマンティクスは異なります)。 両方のツールがディレクトリごとの指示ファイルをサポートしています。Codex は「ルートから順にファイルを連結し、空行で結合」し、「現在のディレクトリに近いファイルほど、結合されたプロンプトの後半に表示されるため、以前のガイダンスをオーバーライドする」仕組みです。Cursor のネストされた AGENTS.md ファイルは「親ディレクトリと結合され、より具体的な指示が優先される」仕組みです。実質的には似ていますが、同一ではありません。Codex の順序効果は位置によるものであり、Cursor のものは優先順位として明記されています。

それ以外は何も移行されません。具体的なリストは以下の通りです。

AGENTS.override.md に相当するものは Cursor にはありません。 これが最も厄介な点です。Codex では、各ディレクトリでまず AGENTS.override.md がチェックされ、次に AGENTS.md がチェックされます。そして「Codex は1ディレクトリにつき最大1つのファイルのみを含めます」。そのため、両方のファイルが存在するディレクトリでは、AGENTS.md無視されていました。そのリポジトリを Cursor で開くと、オーバーライドのファイル名は意味を持たなくなります。Cursor は AGENTS.md を読み込みますが、これは Codex が意図的にスキップしていたファイルです。1文字も編集していないにもかかわらず、実際に適用される指示が変わってしまいます。

グローバルスコープは、異なる名前で異なる場所に移動します。 Codex は、Codex のホームディレクトリ(CODEX_HOME が設定されていない限り ~/.codex)からグローバルなガイダンスを読み込みます。存在する場合は AGENTS.override.md を、そうでない場合は AGENTS.md を取得し、「Codex はこのレベルで最初の空でないファイルのみを使用します」。Cursor におけるこれに相当する機能は User Rules です。これは「すべてのプロジェクトに適用される、Customize → Rules で定義されたグローバルな設定」と説明されており、Agent (Chat) によって使用されます。役割は同じですが、場所が異なり、コミットや同期ができるファイルではなく設定画面となっています。

## Code Review Rules セクションは何の機能も果たさなくなります。 Codex では、管理対象のコードに最も近い AGENTS.md にこのセクションを追加することで、GitHub のプルリクエストや GitLab のマージリクエストで @codex review@codex security review を呼び出して Codex のコードレビューを実行していました。Cursor にはこのセクションを利用する機能がありません。このテキストは通常の指示として読み込まれ続けるため、通常は無害ですが、時折混乱を招く可能性があります。

制限の基準がまったく異なります。 Codex は「結合されたサイズが project_doc_max_bytes(デフォルトは 32 KiB)で定義された制限に達すると、ファイルの追加を停止」します。これはチェーン全体での予算です。Cursor のガイダンスはルールごとになっており、「ルールは500行未満に抑え」、大きなルールは組み合わせ可能な小さなルールに分割することを推奨しています。Codex の 32 KiB 制限の近くに達していた場合は、そのまま貼り付けるのではなく、分割することをお勧めします。

config.toml やサブエージェント定義内のすべての設定。 承認モード、サンドボックス設定、および Codex 独自のサブエージェント設定は、Codex 特有の概念です。ファイルをそのまま移行するのではなく、その意図を再構築してください。

手動での移行手順

Step 1: Flatten the override files before you switch

これは Codex がまだ信頼できる唯一の情報源(Source of Truth)である間に行ってください。これにより、意図しない挙動の変化を防ぐことができます。

リポジトリ内を探索して AGENTS.override.md を探します。オーバーライドと AGENTS.md の両方が存在する各ディレクトリでは、Codex がオーバーライドのみを読み込んでいたことを思い出してください。実際に必要なコンテンツを決定し、それを AGENTS.md にマージして、オーバーライドファイルを削除します。グローバルファイルについても同様に行います。もし ~/.codex/AGENTS.override.md が存在する場合、それは ~/.codex/AGENTS.md を完全に覆い隠していました。

削除を始める前に、Codex が実際に何をロードしているかを確認するドキュメント化された方法があります。対象のディレクトリから以下を実行してください。

codex --cd services/payments --ask-for-approval never "List the instruction sources you loaded."

ドキュメントによると、期待される出力は、Codex が最初にグローバルファイル、次にリポジトリルートの AGENTS.md、最後にネストされたオーバーライドを報告します。これにより、思い込みではなく、実際のチェーンを確認できます。

Step 2: Rebuild the global layer and choose your rule format in Cursor

Cursor 側で2つの決定を行う必要があります。

グローバル設定 → User Rules。 Customize → Rules を開き、~/.codex/AGENTS.md にあった内容を貼り付けます。これはすべてのプロジェクトに適用されるため、本当に普遍的な設定のみに留めてください。

リポジトリの指示 → AGENTS.md を維持するか、.cursor/rules に変換するか。 AGENTS.md を維持することは作業ゼロの選択肢であり、適切なデフォルトです。条件付きロードを行いたい場合にのみ変換してください。それが .cursor/rules が追加する機能だからです。.mdc ファイルのフロントマターによって、いつ適用するかが決定されます。Cursor の4つのルールタイプは、Always Apply(常に適用)、Apply Intelligently(「説明に基づいて Agent が関連性があると判断したとき」)、Apply to Specific Files(「ファイルが指定されたパターンに一致するとき」)、および Apply Manually(「チャットで @ メンションされたとき」)です。

変換する場合、Codex とは関係のない罠に注意してください。「.cursor/rules 内のプレーンな .md ファイルは、descriptionglobsalwaysApply を指定するフロントマターがないため、ルールシステムによって無視されます。プレーンな Markdown を好む場合は、代わりに AGENTS.md を使用してください。」 .mdc にリネームしてフロントマターを設定するか、AGENTS.md のままにしてください。

また、ルールとは何であるかについて、期待値を調整しておいてください。Cursor 自身の表現を借りれば、「大規模言語モデルは、補完の間にメモリを保持しません。ルールは、プロンプトレベルで永続的かつ再利用可能なコンテキストを提供します。」 ルールとは、リクエストごとに提供されるコンテキストであり、AGENTS.md チェーンと同じものです。セッションをまたいでそれを維持するための仕組みについては、carrying Cursor context across sessions(Cursor のコンテキストをセッション間で引き継ぐ方法)で解説しています。

しばらくの間両方を並行して実行する場合、逆方向の知識も役立ちます。Codex は他のツールから設定を取り込むこともできます。これについては what Codex can import from Cursor and Claude(Codex が Cursor や Claude からインポートできるもの)で説明しています。

より良いアプローチ:推論をルールファイルから完全に切り離す

これで、新しいツールに同じ指示を移行できました。しかし、移行できていないのは、6ヶ月間使用した後に Codex のセットアップを本当に優れたものにしていた要素、すなわち「なぜそうするのか」という蓄積された知識です。

どちらのツールもそれをうまく保持することはできず、それぞれの制限を通じてそのことを示しています。Codex はデフォルトで指示チェーン全体を 32 KiB に制限しています。Cursor はルールを500行未満に抑え、「内容をコピーする代わりにファイルを参照すること。これによりルールを短く保ち、コードの変更に伴ってルールが古くなるのを防ぐことができます」と述べています。これらは恣意的な制限ではありません。常にオンになっているコンテンツは、すべてのリクエストと一緒に送信されるからです。

そのため、決定事項、制約、そしてすでに却下したアプローチなどは、どちらのツールにも置き場所がありません。ファイルが完全に移行されたとしても、ツールの切り替えがメモリの消去(記憶喪失)のように感じられるのはこのためです。

それこそが MemoryLake が保持するものです。今期どのエディタを使用しているかに関わらず、ツールが読み込むレイヤーにプロジェクトの永続的な知識を保持します。

セットアップは3つのステップです。

Step 1: Create an API key

MemoryLake にサインインし、API キーを作成します。接続するすべてのツールで共通の認証情報となります。

Codex から Cursor への移行時に MemoryLake API キーを作成する
Codex から Cursor への移行時に MemoryLake API キーを作成する

Step 2: Upload your first memories

1つの項目につき1つの主張を含む、短いエントリです。移行の記憶が新しいうちに書き留めておくべき内容は以下の通りです。

プロジェクトの決定事項や環境の事実を MemoryLake に書き込む
プロジェクトの決定事項や環境の事実を MemoryLake に書き込む

決定事項と、それを強制した制約。 「負荷がかかるとリードレプリカが遅延するため、マイグレーションは追加のみとする。」 ルールはポリシーを規定できますが、来週同じ代替案が提案されるのを防ぐことができるのは、この制約の記録だけです。

このコードベースですでに却下したこと。 どのファイルにも、どのコミットメッセージにも存在しないカテゴリです。新しいエージェントは毎回これを提案してきます。

苦労して学んだ環境の事実。 CI でのみ失敗するテスト、ドキュメントと異なる挙動をする依存関係、ドキュメントに記載されていないレート制限など。

複数回行った修正。 Cursor 自身の推奨事項は、Agent が同じ間違いを繰り返していることに気づいたときにルールを追加することです。その修正の理由を、ルールの隣のここに配置します。

Step 3: Connect your AI & agents

使用しているツールを接続します。MemoryLake は MCP および API 経由でアクセス可能です。そのため、Claude Code、Codex、OpenClaw などの MCP ネイティブのエージェントは MCP サーバーを指定することで接続し、他のアシスタントは API を介して同じ記憶を読み込みます。つまり、移行を完全に完了しなくてもメリットを享受し始めることができます。移行を検討している間、両方のツールが同じレイヤーを読み込むことができます。

MCP 経由で Codex と Cursor を同じ記憶レイヤーに接続する
MCP 経由で Codex と Cursor を同じ記憶レイヤーに接続する

3つの率直な制限事項。MemoryLake は Cursor のルールや AGENTS.md を書き換えません。 これらは各ツールを制御するためのものであり、適切に設定する必要があります。MemoryLake は、あなたやエージェントが書き込んだ内容のみを保持するため、ステップ2は手動で行う必要があります。また、ルールは強制される設定ではなくコンテキストです。記憶レイヤーがコンプライアンスを強制的に変更することはありません。

実務における変化

切り替えが「全か無か」ではなくなります。 両方のツールが同じ外部記憶を読み込むため、Codex のセットアップを破棄することなく、Cursor を1週間試してみることができます。

オーバーライドのフラット化は1回限りの作業になります。 一度マージしてしまえば、次の担当者(あるいは11月の自分自身)に説明しなければならない「覆い隠されたファイル」は存在しなくなります。

新しいツールでもルールファイルを短く保てます。 Codex チェーンが 32 KiB 近くまで膨らんでしまった理由は、2つの役割を同時にこなしていたからです。一度分割してしまえば、どちらの制限も制約にはなりません。

3つ目のツールの導入コストがほぼゼロになります。 AGENTS.md はエコシステムの大部分で読み込まれ、推論は任意の MCP ネイティブエージェントがクエリできるレイヤーに存在するためです。

「プロジェクトのことを理解していない」に対する本当の解決策が得られます。 「ルールをさらに書く」のではなく、「知識は最初からルールの中にはなかった」ということです。これについては、why RAG isn't memory(なぜ RAG は記憶ではないのか)で一般的なケースを解説しています。

Codex から Cursor への切り替えにおけるベストプラクティス

最初に AGENTS.override.md をフラット化する。 Cursor はこのファイル名を認識しないため、忘れたオーバーライドは意図しない指示の有効化につながります。

変更を加える前に、ロードされたチェーンを出力する。 Codex にロードした指示ソースをリストアップさせ、記憶に頼るのではなく、その出力に基づいて作業してください。

CODEX_HOME を確認する。 これが設定されている場合、グローバルファイルは ~/.codex にないため、誤ったファイルを移行してしまいます。

グローバルな設定はリポジトリではなく User Rules に置く。 Cursor の User Rules はすべてのプロジェクトに適用されます。これは ~/.codex/AGENTS.md が行っていたことと同じです。

条件付きロードが必要ない限り、AGENTS.md を維持する。 .cursor/rules に変換するとルールタイプを利用できますが、フロントマターのメンテナンスも発生します。

Never leave a plain .md in .cursor/rules. 静かに無視されます。フロントマター付きの .mdc を使用するか、AGENTS.md を使用してください。

## Code Review Rules を削除するか、ラベルを付け直す。 Cursor にはこれを処理する機能がないため、マークされていない指示として残しておくと、あなたとエージェントの双方に混乱を招く可能性があります。

制限に達した場合は、貼り付けるのではなく分割する。 両方のツールが同じ方向を指し示しています。1つの長いファイルよりも、ネストされた組み合わせ可能なファイルを推奨しています。これについては why Cursor forgets project rules(なぜ Cursor はプロジェクトルールを忘れるのか)の背景にある構造です。

結論

Codex から Cursor への移行は、ファイル自体に手を加える必要がない珍しいケースです。どちらのツールも AGENTS.md を読み込むため、指示はそのまま引き継がれます。リスクは完全にその周辺の部分にあります。AGENTS.override.md は Codex 独自の概念であり、Codex は1ディレクトリにつき最大1つのファイルしか含めないため、オーバーライドが、Cursor がこれから読み込むことになる AGENTS.md隠していました。グローバルなガイダンスは ~/.codex から Cursor の User Rules に移動します。## Code Review Rules は何とも連携されなくなります。そして、32 KiB に収まっていたチェーンは、それぞれ500行未満に抑えるべきルールのセットになります。

オーバーライドをフラット化し、編集前に実際の指示チェーンを出力し、Customize → Rules でグローバルレイヤーを再構築し、条件付きロードを特に希望しない限り AGENTS.md を維持してください。そして、決定事項、制約、却下されたアプローチを両方のツールがクエリできる場所に置くことで、次のツール切り替えはプロジェクト全体の移行ではなく、単なる好みの選択になります。

よくある質問

Cursor は AGENTS.md を読み込みますか?

はい。Cursor のルールに関するドキュメントでは、AGENTS.md を Markdown 形式のエージェント指示書、および .cursor/rules のシンプルな代替手段としてリストしています。サブディレクトリ内のネストされたファイルは親ディレクトリと結合され、より具体的な指示が優先されます。

AGENTS.override.md ファイルはどうなりますか?

Cursor では何も読み込まれません。Codex では、各ディレクトリで AGENTS.md よりも前に AGENTS.override.md がチェックされ、1ディレクトリにつき最大1つのファイルのみが含まれていました。そのため、オーバーライドがそのディレクトリの AGENTS.md を抑制していました。切り替える前に、必要なコンテンツを AGENTS.md にマージしてオーバーライドを削除してください。そうしないと、実際に適用される指示が変わってしまいます。

グローバルな Codex の指示はどこに行きますか?

すべてのプロジェクトに適用される、Customize → Rules で定義された Cursor の User Rules に移行します。Codex のグローバルファイルは、Codex のホームディレクトリ(CODEX_HOME が設定されていない限り ~/.codex)に存在し、そのレベルで最初の空でないファイルのみを使用します。

AGENTS.md.cursor/rules ファイルに変換すべきですか?

条件付きロードを行いたい場合にのみ推奨します。.cursor/rules.mdc ファイルを使用し、そのフロントマターによって適用タイミング(常に、ファイルパターンごと、エージェントの判断、または @ メンション)を制御します。それが必要ない場合は、AGENTS.md を維持する方がメンテナンスの手間が省けます。

Codex が実際に何をロードしているかを確認するにはどうすればよいですか?

対象のディレクトリから Codex を実行し、ロードされた指示ソースをリストアップするよう指示してください。ドキュメントにはまさにこのパターンが記載されており、期待される出力として、最初にグローバルファイル、次にリポジトリルートファイル、最後にネストされたオーバーライドが表示されると説明されています。

Codex のコードレビューのルールは引き続き機能しますか?

いいえ。## Code Review Rules セクションは、GitHub のプルリクエストや GitLab のマージリクエストにおける Codex のコードレビューを実行するためのものです。Cursor にはこれを利用する機能がないため、このテキストは通常の指示になります。削除するか、一般的なガイダンスとして読み込まれないように明確な見出しの下に移動してください。