在 Codex CLI 中,“Codex重置”不是一个统一命令。想清空当前对话上下文,应使用 /new 或 /clear;对话过长但仍想保留关键信息,可以使用 /compact;需要继续以前的任务,应使用 /resume;希望保留原对话并尝试另一种方案,则使用 /fork。

这几个操作都会影响“对话”,但不会自动撤销 Codex 已经写入工作区的文件。执行前先确认自己要重置的是聊天上下文、终端显示、任务分支,还是代码改动。
不少问题都被统称为“Codex重置”,实际目标并不相同。
| 需求 | 推荐操作 | 是否保留当前聊天内容 | 是否撤销文件改动 |
|---|---|---|---|
| 在同一仓库开始全新问题 | /new | 原聊天仍作为独立会话保存 | 否 |
| 清空终端显示并开始新聊天 | /clear | 当前聊天结束,新聊天重新开始 | 否 |
| 长对话接近上下文上限 | /compact | 保留摘要和关键状态 | 否 |
| 找回以前的会话继续处理 | /resume | 是 | 否 |
| 从当前会话复制一条新路线 | /fork | 原会话保留,新会话获得副本 | 否 |
| 只清理终端画面 | Ctrl+L | 是 | 否 |
| 退出当前 CLI 会话 | Ctrl+C 或 /exit | 会话可按保存状态恢复 | 不会自动回滚已完成的改动 |
| 停止当前会话的后台终端 | /stop | 是 | 不会自动回滚已完成的改动 |
最容易混淆的是 /clear 与 Ctrl+L。前者会开启新聊天,后者只清理终端中的可见内容,聊天上下文仍然存在。
如果已经从“修复登录接口”转到“设计数据库表”,而旧对话的背景不再有用,可以在 Codex CLI 输入:
/new
Codex 会在当前 CLI 会话中创建一个新聊天。工作目录仍然是当前仓库,但新聊天不会继续沿用旧聊天的完整对话记录。
也可以在创建时命名:
/new database migration
给聊天命名的价值在于,之后使用 /resume 时更容易识别目标会话。
重置上下文并不等于 Codex 自动知道新任务的所有边界。第一条提示最好写清四项信息:
例如:
检查 src/auth 下的登录超时问题。只做诊断,暂时不要修改代码。
请给出复现条件、根因位置和建议的最小修复范围。
这种写法比只说“继续修一下”更稳定,因为新会话没有上一段对话供它补全含义。
如果既要清空当前终端中的可见记录,又要开始新聊天,可以输入:
/clear
也可以直接为新聊天命名:
/clear release check
/clear 与 /new 的主要区别是:
/clear 会先清理当前终端显示,再开始新聊天;/new 会开始新聊天,但保留终端中当前可见内容。如果只是觉得屏幕太乱,不想改变上下文,使用:
Ctrl+L
官方文档特别区分了这两类操作:Ctrl+L 只清理显示,不会开始新聊天。
当一个开发任务持续较久,聊天中可能积累大量日志、测试输出和中间讨论。此时不一定要完全重置,可以输入:
/compact
Codex 会把前面的对话压缩成更简洁的摘要,以释放上下文空间,同时尽量保留任务目标、关键决定和当前状态。
需要注意:/compact 不是“清除记忆”。它的目标是压缩,而不是丢弃全部内容。因此,如果你希望彻底换一个无关话题,应使用 /new 或 /clear。
执行压缩后,可以用一条简短提示校验摘要是否完整:
请先列出你当前保留的任务目标、已完成事项、未解决问题和下一步,不要修改文件。
如果摘要遗漏了关键限制,应先补充限制,再继续实施。
Codex重置后发现还要继续旧任务,可以在 CLI 中输入:
/resume
随后从会话选择器中找到需要恢复的聊天。恢复后,原聊天记录会重新加载,可以接着上次的状态继续。
如果已经退出 CLI,也可以从终端运行:
codex resume
继续当前工作目录最近一次聊天:
codex resume --last
如果目标会话不在当前工作目录下,可以使用会话选择器并查看其他目录中的会话:
codex resume --all
恢复后先执行以下检查更稳妥:
先检查当前工作区状态和未提交改动,再总结这个会话上次停在哪里,不要立即编辑文件。
原因是聊天记录可以恢复,但工作区可能已经被用户、IDE、Git操作或其他进程修改。
如果不是要清空一切,而是希望从当前状态尝试另一条技术路线,可以输入:
/fork
它会复制当前聊天,生成一个新的聊天标识,并保留原聊天。这样可以在不破坏原讨论路径的情况下比较两种方案。
退出 CLI 后,也可以运行:
codex fork
复制最近一次会话:
codex fork --last
需要区分“聊天分支”和“代码分支”:/fork 复制的是聊天,并不等于自动创建 Git 分支,也不保证文件系统彼此隔离。如果两条路线会同时修改同一批文件,应配合 Git 分支或独立 worktree 使用。
这是最重要的一点:新建聊天、清空聊天、压缩上下文和退出 CLI,都不等于回滚代码。
在重置前,可以先查看当前改动:
/diff
也可以在终端中运行只读 Git 命令:
git status --shortgit diff
如果发现改动,需要先判断它们属于谁、是否已经验证、是否应该保留。不要因为想“重置 Codex”就直接删除文件或执行破坏性 Git 命令。
一个安全的重置顺序
/ps 检查后台终端,必要时用 /stop 停止它们;/diff 或 git diff 查看已有修改;/compact、/new、/clear 或 /fork;1. Codex有没有统一的reset命令?
官方当前提供的是按对象划分的命令,例如 /new、/clear、/compact、/resume 和 /fork。遇到“Codex重置”需求,应先明确重置对象,而不是寻找一个会同时清理会话、配置、登录和文件的万能命令。
2./new会删除以前的会话吗?
不会。它会在同一个 CLI 会话中开始新聊天,旧聊天仍可通过恢复功能继续使用。
3./compact后还能逐字看到全部旧对话吗?
/compact 会以摘要替代前面的详细内容,主要目的是降低上下文占用。需要保留原始日志时,应另外保存日志,不要把聊天摘要当作原始记录。
4. 重开聊天能解决 Codex反复理解错误吗?
如果错误来自过时的聊天前提,/new 通常有帮助;如果错误来自项目中的 AGENTS.md、.codex/config.toml 或错误的工作目录,重开聊天并不能解决根因,需要检查对应配置层。
5. 关闭终端后任务会自动回滚吗?
不会。已经写入磁盘的内容仍然存在。关闭终端前应查看 Git 状态,并确认是否有后台进程仍在运行。
处理 Codex重置时,可以用一句话判断:无关新任务用 /new,连终端画面一起清理用 /clear,长任务续作但上下文太大用 /compact,找回旧任务用 /resume,保留原方案并探索另一条路线用 /fork。
无论选择哪一种方式,都应把聊天状态与文件状态分开看。聊天可以重新开始,但工作区改动不会因此自动消失。