切换供应商后 Codex config.toml 配置丢失 - CC Switch
Quick fix
升级 cc-switch 到 v3.17.0+,该版本改为增量合并而非全量覆盖 config.toml。
Symptom
Section titled “Symptom”codex 切换供应商 config.toml 被重置cc-switch 在切换 Codex 供应商或重启本地路由时,早期版本采用全量替换逻辑写入 `config.toml`,导致用户自定义的 MCP 服务器、沙箱配置、桌面偏好等非供应商字段被覆盖丢失。此外,早期版本在处理 TOML 时存在缺陷,如 `base_url` 被错误写入 `[windows]` 段、通用配置无限重复增加、以及强制将 `model_provider` 改为 `ccswitch` 导致历史会话消失。
从 v3.12.2 开始引入 Section-Aware TOML Editing 修复了字段位置错误和重复问题;v3.13.0 修复了切换时 MCP 配置丢失;v3.16.0 解决了强制覆写 `model_provider` 的问题;v3.17.0 将合并与回写移至后端 `toml_edit` 流程,实现增量合并以保留非供应商字段。部分用户反馈在 v3.17.0 之后,特定配置(如 `node_repl`、颜色设置)在重启后仍有被还原的情况,说明边缘场景的覆盖问题可能仍存在。
升级 cc-switch 到 v3.17.0 或更高版本。该版本重构了 Codex 通用配置的合并与回写逻辑,改为增量合并,只覆盖供应商相关字段,保留用户自定义段。
~/.codex/config.toml # 保留 [mcp_servers.*], [desktop], [features] 等用户配置段如果使用的是较老版本(如 v3.12.x),遇到 `base_url` 写入位置错误或通用配置无限增加,请升级到 v3.12.2+,该版本修复了 Section-Aware TOML Editing。
~/.codex/config.toml [model_providers.custom]name = "custom"wire_api = "responses"base_url = "https://your-api-url/v1" # base_url 正确写入对应供应商段下对于 MCP 配置,不要手动写入 `config.toml`,应通过 cc-switch 的「MCP 服务器管理」界面添加并启用到 Codex,避免被覆盖。
# 通过 cc-switch UI 管理 MCP,而非手动编辑 ~/.codex/config.toml如果切换供应商后 `model_provider` 被强制改为 `ccswitch` 导致历史会话消失,升级到 v3.16.0+,该版本实现了 Codex Live Config Preservation,不再强制重写该字段。
若升级后仍发现特定配置(如 `js_repl`、颜色设置)在重启后被还原,检查是否开启了本地路由。本地路由的 live/backup 重建可能仍会覆盖部分配置,可尝试关闭本地路由或手动在数据库 `proxy_live_backup` 表中修改 `original_config` 字段作为临时 workaround。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 40 个真实 issue
- #95切回Codex官key的时候提示切换失败,检查配置
- #161切换 ‘启用’ 内容会乱
- #178[BUG] 编辑Codex 提供商页面提取API请求地址的逻辑默认是第一个出现的 model_provider
- #200codex无法自动生成可用模板
- #305在版本v3.7.1中新增Codex的自定义供应商后启用报错JSON 解析错误
- #457codex 配置,添加新配置,只添加 apikey 和url 然后使用 codex 会一直提示 Reconnecting...
- #482IO 错误: /Users/dabu/.codex/config.toml: No such file or directory (os error 2)
- #829版本v3.10.2 codex配置不能覆盖和写入
- #1088cc-switch导致codex的MCP、模型等设置直接丢失无法找回
- #1136更新到3.11.0后,无法保存部分配置
- #1364codex 配置无限增加问题
- #1404CC Switch v3.12.0 bug
- #1441BUG:CODEX新增渠道无法使用(Windows 11)
- #1677config.toml 文件配置mcp_servers保存失败
- #1863codex 切换供应商 config.toml 被重置
- #2030Codex 配置无法覆盖
- #2717cc switch读取已存在的codex配置再修改会少生成很多字段
- #2847model provider被强制更改为ccswitch
- #3021CODEX 路由与故障转移失效
- #3357Codex配置好了路由并启用,在Codex中输入命令报错,但是如果再启用其他配置,就可以正常响应
- #3582MCP中不能包含codex这个名字,不然codex会丢失会话
- #3605自定义模型在codex desktop端的模型选择又不见了。
- #4038开启ccswitch之后与codex或claude对话时,会莫名截断
- #4142关闭/打开本地路由导致config.toml丢失
- #4147how to use cc-switch for Jetbrains ai assistant?
- #4358在Codex中各种设置,重启Codex之后 一切复原,
- #4655auth.json中key被修改为其他key,实际使用key在config.toml文件里
- #4780Codex config serialization splits parent and child TOML tables, causing `[projects]` to appear between `[model_providers]` and `[model_providers.xxx]`
- #49163.16.5的版本mimo2.5pro可以在codex使用,但2.5不行
- #5051安装ccswitch后 codex的会话还有插件被全部清空,去ccswitch中看会话管理列表里面东西也没有任何记录
- #5052切换供应商会导致codex沙箱配置出问题
- #5137ccs上改codex的node_repl这个配置, 改成true之后重启codex后 又会变成false
- #5205按照教程修改 ccs 之后,所有模型都无法输入图片
- #5665config.toml 右边的选中状态重新打开又变成未选中
- #5797Codex Desktop model picker does not show OpenCode Go model mappings
- #6007Add Codex sub-agent default model and reasoning effort settings
- #6097MCP注入异常
- #6411设置了codex的颜色这些,当退出ccswitch的时候config.toml的颜色这些配置会被还原,每次都要修改一下
- #6670开启本地路由后claudecodecli 下面opus模型总是显示opus4.8
- #6827更新供应商key失败,显示保存成功,但是保存的是另外的key
- 为什么我手动在 config.toml 里添加的 MCP 配置,切换供应商后就不见了?
- 早期版本 cc-switch 在切换供应商时采用全量替换逻辑覆盖 config.toml。建议升级到 v3.17.0+,或通过 cc-switch 的「MCP 服务器管理」界面统一管理 MCP 配置,避免手动写入被覆盖。
- 升级到最新版后,为什么 node_repl 或颜色设置在重启 Codex 后还是会变回 false?
- v3.17.0 虽然将合并逻辑移至后端 toml_edit,但本地路由的 live/backup 重建可能仍会覆盖部分边缘配置。如果遇到此问题,可以尝试关闭本地路由,或手动修改数据库 proxy_live_backup 表的 original_config 字段作为临时方案。
- 切换供应商后,Codex 里的历史会话记录全部消失了,怎么恢复?
- 这是因为旧版本 cc-switch 强制将 config.toml 中的 model_provider 改为 ccswitch,而 Codex 根据该字段读取会话记录。升级到 v3.16.0+ 可避免此问题。对于已丢失的记录,需要手动将 model_provider 改回原值(如 OpenAI)尝试恢复。
- base_url 被写到了 [windows] 段下,导致 Codex 无法读取,怎么解决?
- 这是 v3.12.0 的已知 bug,已在 v3.12.2 修复。升级到最新版本后,base_url 会正确写入到 [model_providers.custom] 等对应供应商的段下。
- 通用配置勾选「写入通用配置」后,配置内容会无限重复增加怎么办?
- 这是早期版本 TOML 合并逻辑的缺陷,未做 Section-Aware 处理。已在 v3.12.2 修复,升级后即可解决。
- Codex Desktop 里看不到自定义模型,只能看到官方模型怎么办?
- 这可能与 Codex Desktop 本地缓存或路径解析有关。尝试完全退出 Codex Desktop 后重新打开,或重装/升级 Codex Desktop。同时检查 ~/.codex/config.toml 里的 model_catalog_json 和 ~/.codex/cc-switch-model-catalog.json 是否存在。
- 开启本地路由后,Claude Code CLI 下 opus 模型总是显示 opus4.8 而不是配置的 opus5?
- 开启本地路由后,cc-switch 会覆盖 config.toml 的 default_opus_model 字段。目前为已知问题,关闭本地路由后可恢复正常显示,等待官方修复。
- 保存供应商配置后,显示的 key 是其他供应商的 key,怎么解决?
- 这是 v3.20.0 的已知问题,编辑框优先从共享的 auth.json 读取密钥导致串染。已在 v3.20.1 修复,改为从 config.toml 中供应商自己的 bearer token 重建。修复前已串染的 key 需手动重填。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。