跳转到内容

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 供应商恢复或使用通用配置功能。

报错原文
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 供应商,可切换回恢复,但用户需手动使用「通用配置」功能维护跨供应商的共享设置。

  1. 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=15721
    New-NetFirewallRule -DisplayName "WSL CCS Proxy 15722" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 15722
ToolClaude Code / Claude Desktop
Versioncc-switch v3.9.0+ 已修复代理监听地址问题;其他问题在最新版中仍存在
PlatformsWindows
切换供应商后,我原有的 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。本站不分发任何软件。