Codex 会话迁移与复制命令

1
2
codex resume --all -C .
codex fork --all -C .

参数含义

参数 含义
resume 继续既有会话,沿用原会话 ID 和对话历史。
fork 从既有会话创建一个新的分支会话,继承此前的对话历史,但使用新的会话 ID。
--all 在选择器中显示其他工作目录保存的会话,不是对所有会话执行操作。
-C <目录> 指定本次会话的工作根目录。

codex resume --all -C .

用途

在当前目录中继续一个既有会话,即使该会话原来保存在其他工作目录下。

行为

  • 打开包含所有目录会话的选择器。
  • 选择会话后继续原会话,不创建新的会话分支。
  • 本次运行以当前目录作为工作根目录。
  • 不会复制、移动或改写项目文件。
  • 不会移动 Codex 的会话存储文件,也不会自动修改历史消息中的旧路径。

适用场景

  • 项目目录已更名或迁移,但仍希望继续原会话。
  • 当前目录的默认会话列表中看不到目标会话。
  • 希望原会话保持一条连续的对话记录。

注意事项

如果会话保存的目录与当前目录不同,省略 -C . 时,Codex 可能询问使用当前目录还是会话原目录。显式指定 -C . 可以直接选定当前目录。

由于原会话仍可能按旧目录出现在选择器中,以后继续这个原会话时,可能仍需使用 --all

codex fork --all -C .

用途

以既有会话为基础,在当前目录创建一个新的分支会话。

行为

  • 打开包含所有目录会话的选择器。
  • 新会话继承所选会话此前的对话历史。
  • 新会话拥有独立的会话 ID,后续对话不会继续写入原会话。
  • 新会话以当前目录作为工作根目录。
  • 原会话仍然保留,可以独立恢复。
  • 不会复制或移动项目文件。

适用场景

  • 项目迁移到新目录后,希望以后直接按新目录查找会话。
  • 希望保留原会话,同时从当前进度开始新的工作分支。
  • 希望避免以后反复从所有目录中寻找旧会话。

推荐的目录迁移流程

  1. 先由当前 Windows 用户创建目标目录,并确认目录所有者和权限正常。

  2. 将需要的项目文件复制或移动到目标目录。resumefork 都不会迁移项目文件。

  3. 在终端中进入目标目录。

  4. 根据目标选择命令:

    • 继续写入原会话:

      1
      codex resume --all -C .
    • 建立归属于新目录的分支会话:

      1
      codex fork --all -C .
  5. 如果选择了 fork,以后在新目录中通常可以直接执行:

    1
    codex resume

    若要跳过选择器并继续当前目录最近的会话,可以执行:

    1
    codex resume --last

如何选择

目标 推荐命令
必须延续同一个会话 ID codex resume --all -C .
保留原会话,并在新目录建立独立会话 codex fork --all -C .
项目已长期迁移到新目录 先执行一次 codex fork --all -C .,以后使用 codex resume
目标会话已经归属于当前目录 codex resume,通常不需要 --all -C .

目录创建与权限说明

-C 只指定工作目录,不负责创建目录,因此目标目录必须事先存在。

目录不一定只能手动创建;真正的要求是目录存在,并且当前用户与 Codex 沙箱拥有正确权限。Windows 环境下,为避免目录所有者变成沙箱账号,建议由当前 Windows 用户在沙箱外创建项目根目录,再从该目录启动 Codex。