Codex CLI 项目目录迁移与会话恢复指南¶
结论¶
移动项目文件夹不会删除 Codex CLI 会话。会话保存在:
/Users/michael/.codex/sessions
移动后看不到旧会话,是因为 codex resume 默认按当前工作目录过滤。使用 codex resume --all 即可查找旧目录下的会话,再通过 -C/--cd 指定新的项目目录。
适用环境:codex-cli 0.149.1。
目标目录¶
将以下两个项目:
/Users/michael/Desktop/yuncai/ios-cbc
/Users/michael/Desktop/yuncai/bill-basic-fields
移动到:
/Users/michael/Desktop/yuncai/cbc
移动后的路径为:
/Users/michael/Desktop/yuncai/cbc/ios-cbc
/Users/michael/Desktop/yuncai/cbc/bill-basic-fields
操作步骤¶
1. 退出正在运行的 Codex CLI¶
移动前先退出以上两个项目中正在运行的 Codex CLI,避免当前进程继续持有旧工作目录。
2. 可选:备份 Codex 会话¶
cp -a '/Users/michael/.codex/sessions' \
'/Users/michael/Desktop/codex-sessions-backup-20260902'
项目移动本身不会修改会话目录,这一步仅用于额外保险。
3. 移动项目文件夹¶
mv '/Users/michael/Desktop/yuncai/ios-cbc' \
'/Users/michael/Desktop/yuncai/cbc/'
mv '/Users/michael/Desktop/yuncai/bill-basic-fields' \
'/Users/michael/Desktop/yuncai/cbc/'
4. 在新目录恢复旧会话¶
恢复 ios-cbc 会话:
codex resume --all \
-C '/Users/michael/Desktop/yuncai/cbc/ios-cbc'
恢复 bill-basic-fields 会话:
codex resume --all \
-C '/Users/michael/Desktop/yuncai/cbc/bill-basic-fields'
参数说明:
--all:取消当前目录过滤,显示其他工作目录中的历史会话,并展示 CWD 列。-C <目录>:强制恢复后的 Codex 会话使用指定的新项目目录。
也可以先进入新目录,再打开全部会话:
cd '/Users/michael/Desktop/yuncai/cbc/ios-cbc'
codex resume --all
选择旧会话后,如果 Codex 询问使用“当前目录”还是“会话原目录”,应选择当前目录。
永久配置¶
在 /Users/michael/.codex/config.toml 已有的 [tui] 配置段中增加:
[tui]
terminal_title = ["activity", "thread-title", "git-branch"]
resume_cwd = "current"
这样恢复旧会话时,如果当前目录与会话保存的原目录不同,Codex 会默认使用当前目录。
注意:resume_cwd = "current" 只控制恢复后使用哪个目录,不会取消会话列表的工作目录过滤。旧会话首次查找仍应使用:
codex resume --all
注意事项¶
- 不要删除
/Users/michael/.codex/sessions。 - 不要批量替换会话 JSONL 文件中的旧目录路径,会话还包含索引和上下文元数据,直接修改可能破坏记录。
- 不建议使用
codex resume --last --all查找指定项目,因为它可能恢复其他项目的全局最新会话。 - 如已知会话 UUID,可直接指定会话并绑定新目录:
codex resume -C '/新的项目目录' '<SESSION_ID>'
官方说明¶
OpenAI 官方文档说明:codex resume --all 可以显示当前目录之外的会话;当当前目录与会话保存目录不一致时,可以选择使用当前目录或原会话目录,显式指定的 -C/--cd 优先级最高。