Codex历史任务删除后能否恢复取决于删除方式和备份情况:用codex --delete删除的会话可能在回收站或已擦除;误删JSON文件若磁盘未覆盖仍可找回;可通过codexbak工具、本地备份或SQLite快照表恢复。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex历史任务被删除后能否恢复,取决于删除方式和是否提前备份过本地会话数据——直接用codex --delete命令删掉的会话,文件会被移入回收站或彻底擦除;而误删~/.codex/sessions/目录下的某个JSON文件,只要磁盘未被覆盖写入,仍有概率找回。
确认删除类型和残留痕迹
先判断是哪类删除:如果执行过codex --delete session-xyz,则该会话ID对应文件已从~/.codex/sessions/中移除;如果只是手动清空整个sessions目录,或用rm -rf ~/.codex/sessions,则所有会话文件均消失。此时立刻停止向该磁盘写入新数据,避免覆盖原始文件块。
运行ls -la ~/.codex/sessions/,若返回“no such file or directory”,说明目录本身已被删,需优先恢复目录结构;若目录存在但为空,说明文件被删但目录完好。
从本地备份中恢复
方法一:使用 codexbak 工具恢复
下载并运行 CodexBak.exe → 点击“选择目录”定位到C:\Users\你的用户名\.codex(Windows)或~/.codex(macOS/Linux)→ 点击“检查状态”确认工具识别出历史备份 → 在“可用备份”列表中选中删除前最近一次的完整备份 → 点击“恢复所选备份”。【恢复前会自动创建当前状态的安全备份,可中断重试】
方法二:手动还原 sessions 子目录
若你曾用系统自带备份(如Windows File History、Time Machine)或第三方工具定期归档.codex目录,直接定位到备份时间点 → 找到sessions/子文件夹 → 将其完整复制回原路径~/.codex/。注意不要覆盖config.yaml或database.sqlite,除非你确定它们也需回滚。
从 SQLite 数据库中提取残留会话
第一步:确认数据库是否启用会话快照
打开~/.codex/database.sqlite,用sqlite3执行.schema,查找是否存在session_snapshots表。若存在,说明Codex启用了快照机制,部分会话内容可能仍存于该表中。
第二步:导出未被标记为 deleted 的快照记录
运行:sqlite3 ~/.codex/database.sqlite "SELECT id, created_at, content FROM session_snapshots WHERE deleted = 0 ORDER BY created_at DESC LIMIT 5;"。若返回结果非空,说明原始会话文本还在数据库里,可手动重建JSON文件。
第三步:生成可恢复的 session JSON 文件
将上一步查出的content字段内容保存为~/.codex/sessions/recovered-$(date +%s).json,文件开头补全标准结构:{"id":"recovered-123","messages":[...],"model":"gpt-4o"}。这一步必须严格匹配Codex会话JSON格式,否则--resume无法识别。


















