在 Windows 上一键切换 Codex 的 API 服务商(OpenAI ↔ DeepSeek V4 Flash),切换时自动保留全部历史对话,不再出现"切完对话记录消失"的问题。
非 OpenAI 官方工具。CLI 部分同时支持 macOS / Linux,本仓库面向 Windows 用户。
Codex 桌面端会按当前服务商(model_provider)过滤任务列表。直接切换供应商后,之前的对话列表会"消失"——数据没有丢,只是被过滤隐藏了。本工具在切换时自动把历史对话的服务商标签同步过去,重新打开 Codex 就全部恢复。
另外,用 DeepSeek 推进过的旧会话切回官方 Codex 后,续聊可能报:
Invalid 'input[7].content': array too long. Expected an array with maximum length 0, but got an array with length 1 instead.
这是会话里记录了明文推理内容(reasoning 项),官方 API 回放时不接受。repair 会备份后把这些内容清空,openai 切换命令也会在 Codex 未运行时自动执行修复,旧会话即可直接续聊。
deepseek-v4-flash当前对应官方 DeepSeek-V4-Flash-0731deepseek-v4-pro当前对应官方 DeepSeek-V4-Pro-0813(GA 正式版,2026-08-12 发布)- 调用名保持不变,切换工具无需改配置即可使用最新版;官方参数:上下文 1M、输出最大 384K、支持思考/非思考模式与 Responses API。
- 一键切换 OpenAI ↔ DeepSeek V4 Flash
- 切换时自动同步历史对话标签(数据库 + 会话文件 + 索引三处一致),并把会话级模型同步为目标模型(如
gpt-5.5→deepseek-v4-flash) - 切回 OpenAI 时自动修复历史会话中的明文推理内容(防
array too long) - 手动修复:
repair <会话id>或repair --all(自动备份,可回滚) - DeepSeek API Key 只填一次,之后来回切换不用再输
- 操作前自动备份,出问题可回滚
- Key 只存在本机(权限 600),不打印明文
- Codex 运行时自动检测(tasklist),保护历史数据不被覆盖
- 菜单界面 + 命令行两种用法
安装 Python 3.11 或更高版本,安装时勾选 Add to PATH。
(Python 3.9 / 3.10 也可以,需要先执行 pip install tomli。)
把仓库文件解压到任意目录,双击 Codex API 切换.cmd,出现菜单:
1. 查看状态
2. 切到 DeepSeek(自动同步历史对话 + 会话模型,选 Flash/Pro)
3. 切回 OpenAI(自动同步历史对话 + 修复历史 + 还原模型)
4. 同步历史对话标签
5. 修复历史会话(array too long 报错)
6. 保存/更新 DeepSeek API Key
7. 查看已保存 Key
8. 清除已保存 Key
9. 切换 DeepSeek 模型(Flash/Pro)
10. 退出
按数字键操作即可。
选项 2 与选项 9 会询问选择 V4 Pro 0813(默认)或 V4 Flash 0731;已处于 DeepSeek 时选 9 可原地切换模型,无需先切回 OpenAI。
- 完全退出 Codex(关键:运行中切换不会同步历史)
- 双击
Codex API 切换.cmd,选 2 - 首次切换时输入 DeepSeek API Key(
sk-开头,只填一次) - 重新打开 Codex,选择 DeepSeek V4 Flash 模型,历史对话全部还在
- 完全退出 Codex
- 双击
Codex API 切换.cmd,选 3(会自动修复历史 + 同步标签) - 重新打开 Codex,旧会话可直接续聊,不再报
array too long
python codex-api-switch status
python codex-api-switch key set sk-xxxxxxxx
python codex-api-switch deepseek
python codex-api-switch deepseek --model pro :: 使用 DeepSeek V4-Pro-0813(默认 Pro)
python codex-api-switch deepseek --model flash
python codex-api-switch openai
python codex-api-switch sync
python codex-api-switch repair --all --dry-run :: 先查看哪些会话需要修复
python codex-api-switch repair --all :: 备份并修复全部受影响会话- DeepSeek API Key 保存在
~/.codex/backups/codex-api-switch/deepseek-key,仅当前用户可读,status只显示掩码。 - 每次同步前自动备份数据库和会话文件第一行清单,可完整回滚。
- 每次修复前自动备份会话文件原样副本 + SHA-256 清单(
repair-<时间戳>/),可完整回滚。 - 只修改用户主任务(未归档、
thread_source为 user/空),子任务和归档会话不动。 - Codex 运行中拒绝修改历史,需完全退出后执行。
python test_sync.py测试覆盖:同步、幂等、双向切换自动同步、Key 持久化、Windows 进程检测分支、repair 单会话/全部/幂等/运行中拒绝/切换自动修复等。
- 切换后历史还是空的:确认切换前完全退出了 Codex,然后重新打开 Codex。
- 续聊旧会话报 array too long:先退出 Codex,再运行
python codex-api-switch repair --all(或菜单选 5),然后重开 Codex。 - 提示找不到 Python:重新安装 Python 并勾选 Add to PATH,或把 Python 安装路径加入系统 PATH。
- 窗口中文乱码:请使用仓库内附带的
Codex API 切换.cmd启动(已设置 UTF-8 代码页)。