codex会话记录误删后可恢复,关键在于立即停止写入、定位未覆盖的sessions目录和session_index.jsonl,并用codex-session-recovery工具通过会话id扫描找回rollout文件;若索引损坏,可手动或用codexbak重建。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex会话记录被误删后,只要本地文件没被彻底覆盖或格式化,就有机会从残留痕迹中找回原始 rollout 文件、索引和 SQLite 状态数据,关键在于停止写入并优先定位未被覆盖的 sessions 目录与 session_index.jsonl。
立即停止所有 Codex 写入操作
关闭 Codex Desktop 和 CLI 进程,避免新会话覆盖磁盘上尚未擦除的旧文件空间。Windows 用户可打开任务管理器结束 codex-desktop.exe 和 codex 进程;macOS/Linux 用户执行 pkill -f codex。
【这是唯一不可逆的关键动作】一旦新会话大量写入,旧 rollout 文件的物理扇区可能被覆盖,恢复成功率断崖式下降。
检查 ~/.codex/sessions 是否残留文件
打开终端,进入用户主目录:cd ~。
执行:ls -la .codex/sessions/,观察是否有年份子目录(如 2026/05/17)存在。哪怕只剩一个空目录或隐藏文件,也说明 sessions 根路径未被删除。
若提示 No such file or directory,则跳过本节,直接进入 SQLite 恢复环节。
从 session_index.jsonl 提取会话 ID 并重建 rollout
运行:cat ~/.codex/session_index.jsonl | head -n 20,查看前 20 行是否含有效 JSON 对象。
每行应类似:{"id":"019e3431-b161-7f12-9e91-cd1100b05c9d","provider":"openai","created_at":"2026-05-17T12:28:52Z"}。
复制其中任意一个 id 字段值(如 019e3431-b161-7f12-9e91-cd1100b05c9d),这是恢复会话的唯一凭证。
用 codex-session-recovery 定向扫描并生成恢复命令
第一步:安装工具:curl -fsSL https://raw.githubusercontent.com/wufei-png/codex-session-recovery/main/install.sh | bash。
第二步:执行扫描:codex-session-recovery --id 019e3431-b161-7f12-9e91-cd1100b05c9d(将上一步复制的 ID 替换进去)。
第三步:工具会输出类似 Found matching rollout at: /home/user/.codex/sessions/2026/05/17/rollout-2026-05-17T12-28-52-019e3431-b161-7f12-9e91-cd1100b05c9d.jsonl 的路径,并附带可直接执行的 codex resume 命令。
这一步不修改任何文件,只读扫描,输出即用。
强制重建 session_index.jsonl(仅当该文件为空或损坏时)
方法一:手动重建索引
进入 sessions 目录:cd ~/.codex/sessions → 执行:find . -name "rollout-*.jsonl" -exec grep -l '"type":"session_meta"' {} \; | xargs -I{} sh -c 'jq -r ".payload.id" {} 2>/dev/null' | while read id; do echo "{\"id\":\"$id\",\"provider\":\"$(grep -o '\"provider\":\"[^\"]*\"' {} | cut -d\" -f4)\",\"created_at\":\"$(grep -o '\"created_at\":\"[^\"]*\"' {} | cut -d\" -f4)\"}"; done > ../session_index.jsonl。
方法二:使用 codexbak 工具一键重建
下载 codexbak.exe → 运行 → 点击「同步」→ 工具自动检测缺失索引并重生成,过程中会先备份原文件。











