
大家好 这里是「代码简单说」`,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 也欢迎大家在评论区一起讨论交流!~
关键词:Codex历史会话恢复、Codex Provider切换、Codex会话丢失、Codex Desktop、Codex Provider Sync、Codex历史记录找回、Codex会话不可见解决方法
最近不少开发者在使用 Codex 时遇到一个非常头疼的问题:切换了 model_provider 之后,之前的聊天记录突然没了。

codex客户端下载:https://codexdown.cn/
明明会话文件还在磁盘中,但是:
/resume找不到很多人第一反应以为是数据丢失了。
实际上,大多数情况下并不是会话丢失,而是 Codex 内部的 Provider 元数据没有同步导致的。
今天分享一个开源工具:
专门用于修复 Codex Provider 切换后历史会话不可见的问题。
GitHub项目:
codex-provider-sync作用非常简单:
当切换 model_provider 后,自动同步 Codex 的各种元数据,让历史会话重新显示出来。
它不会修改你的聊天内容。
不会修改历史记录。
不会修改消息数据。
仅修复:
从而让 Codex Desktop 和 CLI 能重新识别这些历史会话。
Codex内部会维护多种状态文件:
~/.codex/sessions~/.codex/archived_sessions~/.codex/state_5.sqlite.codex-global-state.json当你切换:
model_provider = "openai"改成:
model_provider = "apigather"或者其它 Provider 时:
这些文件中的 Provider 信息可能不一致。
结果就是:
会话文件存在
↓
SQLite记录不匹配
↓
Desktop过滤掉
↓
历史会话不可见所以看起来像丢失了。
实际上数据还在。
工具会自动同步:
同步内容 | 说明 |
|---|---|
sessions | 会话文件 |
archived_sessions | 归档会话 |
state_5.sqlite | SQLite状态库 |
项目缓存 | .codex-global-state.json |
同步后:
Desktop重新识别
CLI重新识别
历史会话恢复显示名称 | 下载地址 |
|---|---|
codex-provider-sync | https://pan.quark.cn/s/6f3f494f57b9 |
对于大部分用户来说:
直接使用 EXE 即可。
启动:
CodexProviderSync.exe操作步骤:
点击:
Refresh扫描当前Codex环境。
例如:
openai或者:
apigather选择你当前正在使用的Provider。
点击:
Execute即可开始修复。
如果你喜欢命令行。
安装:
npm install -g git+https://github.com/Dailin521/codex-provider-sync.git要求:
Node.js 24+如果是:
Node 20
Node 22可能出现:
node:sqlite相关错误。
建议升级到:
Node.js 24+codex-provider status用于诊断:
codex-provider sync功能:
不切换Provider
只同步历史会话元数据codex-provider sync --provider openai示例:
codex-provider sync --provider apigathercodex-provider switch apigather执行过程:
修改config.toml
↓
切换Provider
↓
同步所有元数据一步完成。
codex-provider restore backup_path例如:
codex-provider restore C:\Users\Admin\.codex\backups_state\provider-sync\20260608支持:
--no-config--no-db--no-sessions选择性恢复。
codex-provider prune-backups --keep 5表示:
保留最近5份备份
删除更早备份这是很多人误判的问题。
即使同步成功:
Desktop仍然看不到历史记录原因可能不是同步失败。
而是:
Codex Desktop只加载最近50条会话官方前端存在限制。
例如:
项目A有20条
项目B有30条
项目C有100条Desktop首屏:
只显示最近50条那么:
项目C的旧记录即使恢复成功。
仍然不会出现在列表中。
执行:
codex-provider status或者GUI:
Refresh如果看到:
first page 0/50或者:
ranks 64-77类似提示。
说明:
会话已经恢复
只是没有进入前50条列表不是同步失败。
为了安全性。
作者明确限制了修改范围。
不会修改:
auth.json不处理。
第三方切号工具不处理。
不会修改:
消息内容
会话标题
历史记录不会修改:
updated_at不会通过作弊方式把会话顶到前面。
不会重新加密:
encrypted_content因此:
跨Provider
跨账号虽然能恢复列表显示。
但继续聊天时仍可能出现:
invalid_encrypted_content错误。
每次执行:
sync或者:
switch之前。
工具都会自动创建备份。
路径:
~/.codex/backups_state/provider-sync/<timestamp>例如:
~/.codex/backups_state/provider-sync/20260608123000这样即使出现异常。
也能随时恢复。
出现:
database locked解决:
关闭:
Codex
Codex Desktop
app-server然后重新执行。
出现:
malformed或者:
unreadable说明数据库已经损坏。
工具会停止同步。
避免进一步破坏数据。
检查:
是否已经解压然后查看:
%AppData%\codex-provider-sync\startup-error.log或者PowerShell运行:
./CodexProviderSync.exe查看具体错误。
功能 | 支持 |
|---|---|
恢复历史会话显示 | √ |
同步Provider元数据 | √ |
修复SQLite状态 | √ |
自动备份 | √ |
Windows图形界面 | √ |
CLI命令行 | √ |
修改聊天内容 | × |
处理登录认证 | × |
修改会话排序 | × |
重新加密历史内容 | × |
如果你经常在多个 Codex Provider 之间切换,那么大概率会遇到:
历史会话突然消失的问题。
事实上绝大部分情况下:
数据没丢
只是元数据不一致而 codex-provider-sync 正是专门解决这个问题的工具。
它能够同步:
让 Codex Desktop 和 CLI 重新识别历史会话。
对于频繁使用:
等多Provider环境的开发者来说,是一个非常实用的辅助工具。
软件 | 链接 |
|---|---|
codex-provider-sync | https://pan.quark.cn/s/6f3f494f57b9 |
如果你经常遇到 Codex 历史记录消失的问题,建议收藏备用。