知识库

CC Switch 切了没反应:一份生效排查清单

TL;DR

  • 「切了没反应」的四大根因,按命中率排序:环境变量残留 > CLI 进程没重启 > 写入了另一份配置 > 新供应商本身不可用
  • 排查第一步永远是「让实际生效的配置现形」,而不是继续点切换按钮。
  • 改完任何一项,重开终端再测——这是本清单出现频率最高的一句话。

CC Switch 不生效四站排查流程示意图,按命中率排序

图 1:四站排查流程——按命中率排序,每站修完重开终端复测(示意图)

清单 0:先让「实际生效的配置」现形

排查之前,先拿到事实。Claude Code 与 Codex 各有一条命令能直接读出当前会话真正在用的地址:

# Claude Code 侧
echo "BASE_URL = $ANTHROPIC_BASE_URL"
echo "TOKEN 前缀 = ${ANTHROPIC_AUTH_TOKEN:0:8}"

# Codex 侧
echo "BASE_URL = $OPENAI_BASE_URL"
echo "KEY 前缀  = ${OPENAI_API_KEY:0:8}"

把输出和你在 CC Switch 里选中的供应商对着看:一致 = 切换其实生效了,问题在别处(去清单 4);不一致 = 切换被覆盖了,按清单 1 → 2 → 3 顺序查。

清单 1:环境变量残留(命中率最高)

CC Switch 的写入目标是配置文件,但 shell 环境变量里如果残留着手工 export 过的地址,会持续参与生效——旧地址就是从这里「复活」的。

检查项:

  • ☐ 当前会话实测:上面清单 0 的命令输出,是否与你记住的手工配置吻合。
  • ☐ 翻一遍 shell 配置文件(~/.zshrc~/.bashrc~/.bash_profile),搜 ANTHROPIC_OPENAI_,删掉不再需要的 export 行。Windows 用户另查「系统属性 → 环境变量」里的用户级变量。
  • 重开终端,重跑清单 0 确认输出已变化。环境变量改动只对新会话生效,这一步跳过等于白查。

清单 2:CLI 进程还揣着旧快照

环境变量在进程启动那一刻被拍成快照。CC Switch 切换后,已经在跑的 Claude Code / Codex 会话不会感知

检查项:

  • ☐ 退出当前 CLI 会话(不是新开一个标签页,是彻底退出进程)重新启动。
  • ☐ VSCode / JetBrains 插件内嵌的终端也算「旧进程」——插件宿主要重启,别只重开集成终端。
  • ☐ 重启后跑一次清单 0 确认地址已切换,再进入正式对话测试。

清单 3:写进去的,和 CLI 读的,不是同一份

「CC Switch 说它切了,CLI 说它没收到」的第三种可能:写入的文件根本不是 CLI 读取的那份。

检查项:

  • ☐ 确认 CC Switch 界面上当前供应商已经显示为新目标(切换动作本身完成)。
  • ☐ 检查是否设置了 CODEX_HOME / CLAUDE_CONFIG_DIR 类自定义目录变量——设了的话,CLI 读的是那个目录,而不是默认的 ~/.codex / ~/.claude
  • ☐ 直接打开配置文件肉眼核对:~/.codex/config.toml(Codex)与 ~/.claude/settings.json(Claude Code,以所用版本文档为准)里的地址是否已更新为新供应商。
  • ☐ 改过手工配置的,顺手验证文件语法:TOML/JSON 写坏一行,整个配置可能读不出来,表现恰好也是「切换不生效」。JSON 可用 python3 -m json.tool ~/.claude/settings.json 快速校验。

清单 4:其实切换成功了,是新供应商不可用

还有一种常见误判:切换生效了,但新供应商本身连不上——你把「新家报错」错听成了「没搬家」。

检查项:

  • ☐ 看报错形态:401 / 404 / insufficient_quota到达了新供应商才可能有的确定性错误(处理见报错串对照排查insufficient_quota 决策树);502 / 530 / 超时 是链路层问题(见状态码速查表)。
  • ☐ 用 curl 直接探新供应商地址,把 CLI 从问题里摘出去。
  • ☐ 新供应商的 Key 复制完整了吗——粘贴截断是最朴素的经典款。

收底动作:按这个顺序重置

清单走完仍疑难,按破坏性从小到大重置:

  1. CC Switch 里重新保存一次目标供应商(排除一次手滑)。
  2. 手工清空 shell 里的相关环境变量 → 重开终端 → 重跑清单 0。
  3. 备份后重命名 CLI 配置目录(~/.codex / ~/.claude),让 CLI 回到出厂态,再用 CC Switch 重新配置一次——注意这会清掉本地会话与偏好,属于最后手段。

走到这一步还没解决,把「清单 0 的输出 + CC Switch 版本 + CLI 版本 + 报错原文」一起带上再去反馈,一轮就能定位。

维护说明

本文按 2026-09 的 CC Switch、Claude Code 与 Codex 的通用配置机制整理;配置文件路径与环境变量名以各工具官方文档为准(不同版本可能调整),工具大版本更新后会复测并更新本文日期。