ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY set - cc-switch
Quick fix
执行 claude daemon stop --any 停止残留 Claude 后台进程,然后确保 ~/.claude/settings.json 的 env 中只保留一种认证变量。
Symptom
Section titled “Symptom”Both ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY set · auth may not work as expectedcc-switch 在启动、切换供应商、故障转移或恢复会话时,会直接改写 `~/.claude/settings.json`(有时还涉及 `~/.claude.json`),用接管/代理所需的 `env` 字段整体覆盖用户配置。在 v3.11.0 曾尝试字段级合并,后因状态冲突在 v3.11.1 回滚为全量覆盖(见 #1570),因此 `hooks`、`enabledPlugins`、`spinnerVerbs` 等用户自定义字段会丢失。与此同时,`ANTHROPIC_AUTH_TOKEN` 的注入存在多个变体:对受管 Codex 供应商开启接管时 v3.16.2 会漏注入该字段(#3632、#4157),而切换认证方式或进入 Agent View 恢复会话时,Claude daemon 可能保留旧认证状态,导致 `ANTHROPIC_AUTH_TOKEN` 和 `ANTHROPIC_API_KEY` 同时存在,Claude Code 报 `Both ... set`。此外,切换已删除供应商时 `~/.claude.json` 中的旧 `env` 不会被清理,造成路由看似切换成功但实际仍走旧供应商(#1096)。
在终端执行 `claude daemon stop --any`,停止所有残留的 Claude 后台进程;该进程可能会在切换认证方式后继续持有旧状态。
打开 `~/.claude/settings.json`,确认 `env` 中只有一种认证变量。如果同时看到 `ANTHROPIC_AUTH_TOKEN` 和 `ANTHROPIC_API_KEY`,删除与当前供应商不匹配的一个;使用路由/托管供应商时可将 `ANTHROPIC_AUTH_TOKEN` 设置为 `PROXY_MANAGED`。
// ~/.claude/settings.json{"env": {"ANTHROPIC_AUTH_TOKEN": "PROXY_MANAGED"}}将需要保留的自定义字段(如 `hooks`、`enabledPlugins`、`permissions`)写入 cc-switch 的通用配置:编辑供应商 → 通用配置 → 从当前供应商提取,后续切换时勾选“写入通用配置”。不要直接编辑 `settings.json` 与 cc-switch 数据库冲突。
升级到 v3.16.3 或更高版本,修复 Codex/路由接管时漏注入 `ANTHROPIC_AUTH_TOKEN` 导致 Claude Code 提示登录的问题;若暂不能升级,在 `env` 中手动添加 `"ANTHROPIC_AUTH_TOKEN": "PROXY_MANAGED"`。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 12 个真实 issue
- #674每次重启电脑后,ccswich会覆盖claud code的setting.json,导致enabledPlugins字段被覆盖,插件无法正常使用
- #1096切换到已删除供应商时静默失败,导致配置状态不一致
- #1198CC Switch 启动后会立即改写 `~/.claude/settings.json`,导致用户自定义配置被覆盖/丢失
- #1570cc-switch 覆盖 settings.json 中的 spinnerVerbs 等自定义配置
- #2096故障转移/编辑模型会重置settings.json
- #2105配置项的API_KEY突然消失了,导致配置无法编辑且claude code提示需要登录
- #2440ubuntu系统claude路由无效,
- #3632添加 codex作为Claude Code供应商后提示需要登录(已开路由,settings.json正常)
- #4118Agent View 恢复会话时导致 ANTHROPIC_AUTH_TOKEN 与 ANTHROPIC_API_KEY 同时注入环境
- #4157使用GPT路由部分情况仍然不补全ANTHROPIC_AUTH_TOKEN
- #4200Claude Official leaves Claude Code in API Usage Billing mode
- #5217Claude Desktop问题:切换路由失败,配置文件不存在
- 这样强制用本地的了?
- Claude Code 会先读 `~/.claude/settings.json`,再读 `~/.claude/settings.local.json`,深度合并后 `settings.local.json` 对同名键优先级更高;但 `statusline` 等部分配置在 `settings.local.json` 里可能不会生效,建议用 cc-switch 的通用配置传递共享配置。
- 有没有办法修复这个的,要是我来回切换模型岂不是每次都要重新设置一次配置文件?
- 升级到 v3.16.3 后,接管时会自动注入 `ANTHROPIC_AUTH_TOKEN` 占位符,切换模型或供应商无需再手动改 `settings.json`;对于自定义 hook/插件,使用通用配置可在供应商之间保留。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。