跳转到内容

config.toml 和auth.json的内容仍然是之前第三方的api的 - Codex / CC Switch

Quick fix

升级 CC Switch 到 v3.16.1+(建议最新),重启后重新切换 Codex 供应商;若官方 OAuth 失效,执行 codex logout 后重新 codex login --device-auth。

报错原文
config.toml 和auth.json的内容仍然是之前第三方的api的。

这类问题的核心是 CC Switch 把数据库中的供应商快照当作唯一事实源(SSOT),切换 Codex 供应商时会重建 `~/.codex/config.toml` 并可能写回 `~/.codex/auth.json`。在 v3.16.0 中,开启本地路由后在 DeepSeek、小米等供应商间切换时,live 的 `config.toml` / `auth.json` 没有同步覆盖,导致 Codex CLI/Desktop 仍使用旧供应商;维护者确认该问题在 v3.16.1 修复。另一个相近变种是从第三方供应商切回 OpenAI Official 后,旧的 OAuth 快照覆盖 live 凭据,刷新令牌状态不再更新,需要重新登录;该问题也被标记为在 v3.16.1 修复。

后续版本仍存在“切换成功但非供应商字段被旧快照覆盖”的争议:#3700、#6400 报告 `personality`、`[desktop]`(如 `mac-menu-bar-enabled = false`)等 live UI 设置被重置;而维护者在 #5770、#4332 中说明全量重建 `config.toml` 是有意设计,手动改动会被覆盖,需要把要保留的内容放入「共享配置片段」。此外 #4258 的“模型被映射表第一行覆盖”已在 v3.17.0 修复;#4289 的“统一会话历史为空”则与 `sqlite_home` 指向 `~/.codex/sqlite` 未被迁移有关,属于另一个尚未关闭的变种。

  1. 先备份 `~/.codex/config.toml` 和 `~/.codex/auth.json`,避免排查过程中丢失现有登录态或自定义配置。

  2. 把 CC Switch 升级到 v3.16.1 或更高版本(建议直接升到最新版),然后完全重启 CC Switch 与 Codex CLI/Desktop,再在 CC Switch 中重新保存并切换一次目标 Codex 供应商。维护者已确认 v3.16.0 的“config.toml / auth.json 未同步切换”问题在 v3.16.1 修复。

  3. 如果切回 OpenAI Official 后 Codex 无法请求官方接口或 OAuth 状态停滞,执行重新登录:`codex logout`,再 `codex login --device-auth`,最后重启 Codex/宿主应用。该 workaround 在 Windows 与 macOS 评论中均被确认有效;维护者称相关 OAuth 覆盖问题已在 v3.16.1 修复。

  4. 如果丢失的是 `personality`、`[desktop]` 主题、`[mcp_servers]` 等非供应商字段,不要直接手改 live `config.toml`(会被重建覆盖)。在 CC Switch 中打开「编辑供应商 → 共享配置面板 → 从当前供应商提取」,把需要跨供应商保留的内容放入共享配置片段,并确认目标供应商启用了 Common Config。注意:#6400 显示当供应商 `commonConfigEnabled` 为 false 或未显式开启时,`[desktop]` 仍可能不被应用,该 issue 尚未关闭。

  5. 如果 DeepSeek 预设里把 `model` 改成 `deepseek-v4-pro` 后保存又变回 `deepseek-v4-flash`,升级到 v3.17.0+,并在供应商表单中显式填写独立的「默认模型」字段;v3.17.0 起只有该字段留空时才会用模型映射表第一行回填。旧版本的临时办法是从映射表中删除排在前面的 flash 模型。

  6. 如果开启「统一 Codex 会话历史」后历史列表为空,但 `.jsonl` 会话文件仍在,检查 Codex 实际状态库是否位于 `~/.codex/sqlite/state_5.sqlite`;若是,把 `sqlite_home` 同时写入 live `config.toml` 和 CC Switch 内保存的 Codex 供应商模板/共享配置,否则切换供应商会再次把它覆盖掉,然后重新执行历史迁移。

    C:\Users\<USER>\.codex\config.toml
    sqlite_home = 'C:\Users\<USER>\.codex\sqlite'
ToolCodex
Version3.16.0 存在 config.toml/auth.json 未同步问题,v3.16.1 修复;v3.16.3 的默认模型被映射表覆盖问题在 v3.17.0 修复;同类 live 字段丢失在 3.16.1-3.19.2 仍有未关闭变种
PlatformsWindowsmacOSLinux
现在切换 API 还要自己手动写 config.toml 吗?用 cc-switch 不就是为了一键切换吗?
正常不需要。v3.16.0 的未同步问题已在 v3.16.1 修复;但 CC Switch 仍以数据库为 SSOT 重建 `config.toml`,所以应改 CC Switch 内的供应商配置或共享配置片段,而不是长期手改 live 文件。
升级到 3.16.1 后切回 OpenAI Official 还是不走官方 OAuth 怎么办?
先执行 `codex logout`,再 `codex login --device-auth`,然后重启 Codex/Desktop。若仍复现,issue 要求补充 CC Switch 版本、系统、Codex 版本和复现步骤后重新打开。
为什么我把 wire_api 改成 "chat" 后又被重置成 "responses"?
维护者说明 `config.toml` 由 CC Switch 统一重建,手动修改会被覆盖属于设计行为;小米 MiMo 在 v3.16.4 改为原生 `openai_responses` 预设,`wire_api = "responses"` 在该版本是预期配置。
切换供应商后 hooks 又要重新 Trust,是 bug 还是设计如此?
维护者在 #5770 中按“by design”关闭:切换时按供应商快照全量重建 `config.toml`。需要保留的内容应放入「共享配置片段」;但 `[hooks.state]`、`[desktop]` 这类 Codex/桌面应用自有状态是否应无条件保留,仍在 #3700、#6400 中存在未关闭争议。
MCP 配置里有 Windows 路径,同步到 Ubuntu 后 Codex 报错怎么办?
#4891 仍未关闭。已知风险是 `[mcp_servers.*]` 中的 Windows 本机路径会随同步带到 Ubuntu;issue 期望把跨平台共用配置与平台相关 MCP/Skill 配置拆分,当前不要在共享片段中保存含本机绝对路径的 MCP 项。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。