Claude Code 报错 Auth conflict:Both a token and an API key are set - cc-switch
Quick fix
删除 ~/.claude.json 中的 primaryApiKey,或在配置中加入 "auth_mode": "bearer_only" 以解决认证冲突;如遇配置被覆盖,请从 default 供应商恢复或使用通用配置功能。
Symptom
Section titled “Symptom”Auth conflict:Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (/login managed key) are set. This may lead to unexpected behavior.cc-switch 在切换供应商时会重写 Claude Code 的配置文件,导致两个层面的问题:一是环境变量冲突,二是配置覆盖丢失。
关于认证冲突:当用户在 Claude Code 中选择第二种登录方式(API key 登录)时,会在 ~/.claude.json 中生成 primaryApiKey 字段;而 cc-switch 只在 ~/.claude/settings.json 中写入 ANTHROPIC_AUTH_TOKEN。两者同时存在时,Claude Code 检测到多个认证源,从而抛出 Auth conflict 错误。部分用户通过添加 "auth_mode": "bearer_only" 或删除 primaryApiKey 解决,但维护者指出 primaryApiKey 是官方 key 所需的字段,直接删除可能导致官方登录失效。
关于配置覆盖:cc-switch 采用重写而非合并的方式写入配置文件。由于不同供应商可能需要特定字段(如 LongCAT 的 CLAUDE_CODE_MAX_OUTPUT_TOKENS),而这些字段对其他供应商可能产生副作用,开发者选择整体替换而非字段级合并。这会导致用户原有的 hooks、permissions、env 变量等配置丢失。初始配置会被保存为 default 供应商,可切换回恢复,但用户需手动使用「通用配置」功能维护跨供应商的共享设置。
llama.cpp 本地部署 404 错误:目前 cc-switch 对 llama.cpp 的 /v1/messages 端点支持存在问题,建议暂时使用 CherryStudio 等工具,或等待官方修复。
Windows PowerShell (管理员) netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=15722 connectaddress=127.0.0.1 connectport=15721New-NetFirewallRule -DisplayName "WSL CCS Proxy 15722" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 15722
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 7 个真实 issue
- #288switch provider will override some other variables in env
- #366为什么直接把我原有的配置全部覆盖了啊?
- #799关于绑定IP 127.0.0.1问题
- #913如何配置供应商类型
- #1049CC Switch配置模型后,终端Claude显示Auth conflict:Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (/login managed key) are set. This may lead to unexpected behavior.
- #1370llama.cpp部署的模型无法使用
- #5669bug(claude-desktop): direct providers default to ANTHROPIC_AUTH_TOKEN
- 切换供应商后,我原有的 hooks、permissions 配置全没了,能恢复吗?
- 初始配置会被自动保存为 default 供应商,切换回 default 即可恢复。建议后续使用「通用配置」功能维护跨供应商的共享设置,避免被覆盖。
- 我已经删除了 primaryApiKey,但提示还是存在?
- 检查是否在系统环境变量中设置了 ANTHROPIC_API_KEY 或其他认证变量。同时确认 ~/.claude/settings.json 中没有残留的旧配置。
- WSL 中无法连接 Windows 上的 cc-switch,显示连接被拒绝?
- v3.9.0+ 版本已支持修改监听地址为 0.0.0.0。修改后需手动将 WSL 中的 ANTHROPIC_BASE_URL 指向 Windows 局域网 IP,并确保 Windows 防火墙放行端口。Windows 10 用户可改用 WSL2 镜像网络模式(networkingMode=mirrored)。
- llama.cpp 部署的模型在 cc-switch 中显示 404,但 curl 测试正常?
- 这是已知问题,cc-switch 的代理层对 llama.cpp 的响应格式可能存在兼容性问题。目前无官方修复,建议暂时使用其他客户端。
- Claude Desktop 保存供应商后提示认证失败,但 key 是正确的?
- cc-switch 默认将凭证存为 ANTHROPIC_AUTH_TOKEN,但 Claude Desktop 直接模式需要 ANTHROPIC_API_KEY。编辑供应商,将字段名改为 ANTHROPIC_API_KEY 即可。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。