Codex resumeでセッションを再開する方法|--lastとforkの使い分け
先に結論: 前回のCodexセッションは
codex resume --lastで即座に再開できます。引数なしのcodex resumeなら一覧から選択でき、codex forkを使えば履歴を引き継いだまま別の続きを試せます。セッションは~/.codex/sessionsにJSONL形式で保存されています。
「昨日の続きをやりたいのに、また一から説明し直し」という手間は、codex resumeで解消できます。
この記事では、セッション再開コマンドの使い分け(resume・exec resume・fork)と、セッションが保存されるrolloutファイルの仕組みを2026年8月時点の情報で解説します。
この記事の要点
codex resume --lastで、現在のディレクトリの直近セッションを会話履歴ごと再開できます(2026年8月時点)。- 引数なしの
codex resumeはセッション一覧(ピッカー)から選択でき、--allを付けると他のディレクトリのセッションも対象になります。- 非対話モードの続きは
codex exec resume、履歴を引き継いで枝分かれさせたいときはcodex forkを使います。- セッションの実体は
~/.codex/sessions配下のJSONLファイル(rolloutファイル)です。- resumeで戻るのは会話履歴だけで、ファイルの状態は巻き戻りません。
前提・動作環境
この記事はCodex CLIの基本操作を一度は試したことがある方向けです。起動方法や承認モードは「Codexの使い方完全ガイド」と「Codex CLIの使い方」で解説しています。
コマンドの細かい仕様はバージョンによって変わることがあるため、挙動が異なる場合は公式ドキュメント(developers.openai.com/codex)を確認してください。
codex resumeの基本
codex resumeは、保存された過去のセッションを会話履歴つきで開き直すコマンドです。前回までの文脈をCodexが覚えた状態で続きを指示できます。
# 現在のディレクトリの直近セッションを即再開
codex resume --last
# 一覧(ピッカー)から選んで再開
codex resume
# セッションIDや名前を指定して再開
codex resume <SESSION_ID>
引数なしで実行すると最近のセッションが一覧表示され、矢印キーで選んでEnterで開けます。迷ったらcodex resume --lastだけ覚えておけば十分で、日常の再開はほぼこれで済みます。
一覧に出るのは基本的に現在の作業ディレクトリのセッションです。別のフォルダで始めた作業まで含めて探したいときは--allを付けます。
codex resume --all
再開時には--modelや--sandboxなどの通常の起動フラグも併用できます。モデル指定の考え方は「Codexのモデル選択と切り替え方法」を参照してください。
codex exec resumeで非対話タスクを続ける
codex execで実行した非対話タスクにも続きを渡せます。
# 直近のexecセッションに追加の指示を渡す
codex exec resume --last "テストも追加して"
書式はcodex exec resume [SESSION_ID] [--last] [--all] [プロンプト]で、前回の結果を踏まえた追い打ちの指示をスクリプト的に流せるのが特徴です。
なお、codex execに--ephemeralを付けて実行した場合はセッションがディスクに保存されないため、後から再開できません。
codex forkで履歴を枝分かれさせる
「ここまでの文脈は活かしたいけれど、元のセッションは汚したくない」というときはcodex forkを使います。
# 直近セッションを複製して新しいセッションとして続ける
codex fork --last
forkはそれまでの会話履歴を引き継いだ新しいセッションを作り、元のセッションは無傷のまま残します。「方針Aと方針Bを別々に試したい」といった比較検討に便利です。
フラグはresumeと同じく[SESSION_ID] [--last] [--all]が使えます。
セッションの実体はrolloutファイル
セッションの中身は~/.codex/sessions配下に、日時ベースの名前を持つJSONL(JSON Lines)ファイルとして保存されています。いわゆるrolloutファイルです。
~/.codex/sessions/
└── 2026/08/18/
└── rollout-2026-08-18T09-15-30-<UUID>.jsonl
ファイル名末尾のUUIDがセッションIDに当たり、codex resume <SESSION_ID>での指定に使えます。
セッションの整理には、チャット内のスラッシュコマンドが使えます。
/rename: セッションに分かりやすい名前を付ける/archive: 削除せずにアーカイブへ移動する/delete: セッションを完全に削除する
スラッシュコマンド全般は「Codexコマンド一覧・早見表」にまとめています。
つまずきポイント
resumeが戻すのは会話の続きであって、ファイルの状態ではないのです。コードを巻き戻したいときはgitの出番ですよ。まずgit statusで現状を確認してみてください。
- ファイルの状態が戻らない: resumeはファイルを過去の状態に復元する機能ではありません。コードの巻き戻しはGitで行い、resumeは会話の文脈を取り戻す用途と割り切りましょう。
- 目当てのセッションが一覧に出ない: 実行場所が違うのが典型例です。当時の作業ディレクトリへ移動するか、
--allで全体から探してください。codex exec由来のセッションが一覧に見えない場合もあります。 --ephemeralで実行していた: 保存されていないので再開できません。再開したいタスクには付けないようにしましょう。- 再開してもすぐ文脈があふれる: 長大なセッションの再開直後は履歴でコンテキストが埋まりがちです。要約して続ける
/compactも検討してください。Claude Codeでの同様のテクニックは「Claude Codeのコンテキスト節約術」で解説しています。
よくある質問
resumeで復元されるのは何ですか?
会話履歴とその文脈です。前回のやり取りをCodexが把握した状態で続きを指示できます。
一方で、ファイルシステムやGitの状態は復元されません。
PC再起動後でも再開できますか?
できます。セッションは~/.codex/sessionsのrolloutファイルとしてディスクに保存されているため、ターミナルやPCを閉じても失われません。
resumeとforkはどう使い分けますか?
同じ作業の続きをそのまま進めるならresume、履歴を引き継ぎつつ元のセッションを残したまま別案を試すならforkです。
複数の方針を並行して比較する使い方は「Codexで複数タスクを並列実行する方法」とも相性が良いです。
ハブネコのひとこと
長く続けるセッションには、早めに/renameで名前を付けておくのがおすすめです。後からピッカーで探すとき、日時とUUIDの羅列から目当てを見つけるのは意外と骨が折れますから。
まとめ
Codexのセッション再開はcodex resume --lastが基本で、一覧から選ぶなら引数なし、別ディレクトリまで探すなら--allです。
非対話タスクの続きはcodex exec resume、履歴を引き継いだ枝分かれはcodex forkが担当します。実体は~/.codex/sessionsのrolloutファイルで、resumeが戻すのは会話履歴だけという点を押さえておきましょう。
CLI操作の全体像は「Codex CLIの使い方」、コマンドの早見表は「Codexコマンド一覧・早見表」、Codex入門は「Codexの使い方完全ガイド」をご覧ください。
失敗した変更をなかったことにしたくてresumeしたのに、ファイルが昨日の状態に戻っていません!再開したのに、どうしてですか?