Codex会话删除后能否恢复取决于删除方式:直接删.jsonl文件或可找回,但执行--force或永久删除则无法通过自身命令恢复;需先检查sessions/和archived_sessions/目录及session_index.jsonl索引,再用extundelete/PhotoRec或macOS快照恢复文件,最后重建索引并验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex会话记录被删除后,能否恢复取决于删除方式和时间——直接删掉 sessions/ 下的 .jsonl 文件,只要磁盘未被覆盖,文件本身可能还能找回;但若执行了 codex delete --force 或通过 Codex History Manager 点击“永久删除”,则会同步清除 session_index.jsonl 中的索引、state_5.sqlite 中的线程引用,且不进回收站,【此时无法通过 Codex 自身命令恢复】。
确认是否真被删了
先别急着找恢复工具,打开终端执行:ls ~/.codex/sessions/。如果目录非空,说明只是 UI 不显示,不是真删除。再查 ls ~/.codex/archived_sessions/,归档会话默认不展示在侧边栏,但文件仍完整保留。最后运行 head -n 1 ~/.codex/session_index.jsonl 2>/dev/null | jq -r '.id',能输出 ID 就证明索引尚存,会话大概率可 resume。
从磁盘底层恢复已删的 .jsonl 文件
方法一:用 extundelete(Linux)或 PhotoRec(跨平台)扫描 ~/.codex/sessions/ 所在分区。
这一步必须立刻操作——只要该磁盘后续有写入,文件数据块就可能被覆盖。PhotoRec 不识别 JSONL 结构,但能按文件头特征找回文本类碎片,恢复后需手动重命名成 rollout-*.jsonl 格式,并补全缺失的 session_meta 行。
方法二:macOS 用户检查本地快照:tmutil listlocalsnapshots / → 找到含删除前时间戳的快照 → tmutil restore /path/to/.codex/sessions/2026-07-xx/rollout-*.jsonl /tmp/recovered/。注意:Time Machine 若未开启本地快照或快照已被系统清理,则此路不通。
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
重建索引让 Codex 重新认出旧会话
第一步:确保所有待恢复的 rollout-*.jsonl 文件已放回 ~/.codex/sessions/ 对应年月子目录中,路径必须严格匹配原始结构(如 ~/.codex/sessions/2026/07/22/rollout-2026-07-22T14-30-01-abc123.jsonl)。
第二步:进入 ~/.codex/ 目录,执行:rm session_index.jsonl。这一步不可跳过——旧索引里已无对应条目,留着反而干扰重建。
第三步:运行 codex scan-sessions(Codex CLI v2.4.0+ 内置命令)。它会遍历 sessions/ 全量扫描,为每个合法 rollout 文件生成新索引行,写入新的 session_index.jsonl。扫描完成后,codex list 应能列出刚恢复的会话。
第四步:验证恢复效果。挑一个 ID,执行 codex resume <session_id></session_id>。若提示 “Session not found”,说明该文件缺少 provider 字段或元数据损坏,需手动打开 JSONL 文件,确认首行是完整 session_meta 对象,且 "provider" 值与当前 config.toml 中配置一致;不一致就改过来,否则 Codex 会过滤掉。

















