本地交互会话用 codex resume;当前目录最近一次会话用 codex resume --last;非交互任务用 codex exec resume;希望从旧会话另开一条路线时用 codex fork。Codex Cloud 新建任务会创建独立工作区,不等于恢复原任务。
资料核对日期:2026-10-27。官方来源:Codex CLI reference · Non-interactive mode · Codex Cloud · Config reference · 归档与删除 Codex 聊天。命令与保留策略可能随版本变化,以当前官方文档和本机 codex --help 为准。
先判断你要恢复哪一种 Codex 任务
| 场景 | 正确入口 | 关键边界 |
|---|---|---|
| 本地交互会话 | codex resume | 从会话选择器继续原上下文 |
| 当前目录最近一次会话 | codex resume --last | 默认受当前工作目录筛选 |
| 脚本或 CI 的非交互任务 | codex exec resume | 继续时要附上新的指令 |
| 保留原会话,另开方案 | codex fork | 创建新会话,不修改原线路 |
| Codex Cloud 任务 | 返回原任务 | 新建任务会创建独立工作区 |
本地交互会话:用 codex resume 恢复
在原项目目录打开终端,运行:
codex resumeCodex 会显示可恢复会话。若目标就是当前目录最近一次会话:
codex resume --last若会话来自其他目录,可使用 codex resume --all 扩大列表;也可直接传入会话 ID 或名称。对于非交互创建的历史记录,必要时使用 --include-non-interactive。
工作目录不同为什么会提示选择?
会话保存了当时的工作目录。恢复时若当前目录不同,Codex 会询问使用哪个目录。配置项 tui.resume_cwd 可指定偏好;显式传入 --cd 或 -C 时,以命令行选择为准。为避免在错误仓库继续写文件,恢复前先确认终端路径。
非交互任务:用 codex exec resume
脚本、自动化或 CI 使用的是非交互模式时,恢复命令与普通 TUI 不同:
codex exec resume --last "继续运行测试并说明失败原因"如果知道具体会话 ID:
codex exec resume SESSION_ID "继续处理剩余任务"恢复会话不会替你确认未提交文件是否还存在。继续前先检查 Git 状态、工作目录和测试结果;涉及发布时,仍应按项目的权限与审批规则执行。
resume 与 fork:继续原路线还是另开分支
resume 延续原会话;fork 复制旧会话上下文并创建新会话。需要保留原讨论、同时尝试另一种实现时,使用:
codex fork
codex fork --last在 worktree 场景中,官方要求显式提供本地会话 ID。不要把会话 fork 和 Git 分支混为一谈:前者复制对话上下文,代码版本仍要用 Git 提交和分支管理。
找不到历史会话:按这 5 项排查
- 确认目录:
--last默认从当前工作目录筛选;先进入原项目,或用--all。 - 确认模式:交互会话用
codex resume,非交互历史用codex exec resume。 - 检查历史配置:
history.persistence可设为save-all或none;如果禁止保存,本地就没有可恢复历史。 - 检查容量:
history.max_bytes到达上限时可能移除较旧记录。 - 确认是否删除:已删除的 Codex 聊天无法恢复;执行删除前必须先保留重要代码和记录。
如果只是配置不生效,先看 Codex config.toml 配置排查;如果 CLI 本身无法运行,转到 Codex CLI 使用指南。
Codex Cloud:返回原任务,不要靠新任务找回修改
Codex Cloud 中应返回原任务继续对话。官方说明新任务会创建独立工作区,无法找回另一个任务内尚未提交的修改。重要工作应及时提交到版本控制。Cloud 保存的虚拟机状态有时可在最后一次交互后短期继续使用,但这不应被当作长期聊天记录或代码备份。
需要理解 Cloud 环境与本地 CLI 的差别,可查看 Codex Cloud 使用说明;定时或自动运行相关内容见 Codex 自动化任务。
常见问题
Codex 终端关闭后怎么继续上次会话?
在原项目目录运行 codex resume,选择要继续的会话;若要直接打开当前目录最近一次会话,可使用 codex resume --last。需要跨目录查找时使用 --all。
codex resume --last 为什么找不到我想要的会话?
--last 默认按当前工作目录筛选最近会话。可先进入原目录,或使用 codex resume --all 扩大选择范围;也可直接提供会话 ID 或会话名称。
Codex 非交互任务可以继续吗?
可以。使用 codex exec resume --last "新的指令",或把 --last 替换为具体 SESSION_ID。是否保留记录仍取决于本地 history.persistence 等配置。
codex resume 和 codex fork 有什么区别?
resume 继续原会话;fork 以旧会话内容为起点创建一个新会话,适合保留原线路同时尝试另一种方案。
Codex Cloud 新建任务会恢复旧工作区吗?
不会。新任务会创建独立工作区,不能借此找回另一个任务里未提交的改动。要继续原 Cloud 任务,应返回原任务;重要修改应及时提交。
删除或归档 Codex 会话后还能恢复吗?
归档会停止运行中的会话并移除其附带的计划任务;删除后的聊天无法恢复。执行前应先确认重要代码已提交并保留必要记录。