登录订阅后仍走 API Key 先查哪里
如果你已经用 /login 登录 Claude Pro、Max、Team 或 Enterprise,但 Claude Code 仍然像在走 API Key、继续报认证错误,或者你担心请求没有走订阅额度,先看当前会话到底用哪种凭据。
ANTHROPIC_API_KEY 不是备用配置。它存在时,Claude Code 可能会用这条 API Key 链路,而不是你刚登录的订阅凭据。先不要改模型名、代理或 Base URL。先确认认证来源。
/status当前终端有没有 ANTHROPIC_API_KEY
在启动 Claude Code 的同一个 PowerShell 窗口里检查 ANTHROPIC_API_KEY。不要打印完整 Key,只看是否存在、长度是否异常。
如果当前窗口能读到值,Claude Code 从这个窗口启动时就可能继承它。你看到的登录状态和实际请求使用的认证方式,就可能不一致。
$env:ANTHROPIC_API_KEY.Length只想用订阅登录应该怎么清
如果你想让 Claude Code 使用订阅登录,先在当前 PowerShell 清掉 ANTHROPIC_API_KEY,再重新启动 Claude Code。这个操作只影响当前窗口,不会删除系统里的长期环境变量。
成功标准不是命令没有报错。成功标准是重新进入 Claude Code 后,/status 显示的 active credential 不再是环境变量 API Key。
Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue
claudemacOS / Linux / WSL 怎么清
如果你在 macOS、Linux、WSL 或 Git Bash 里启动 Claude Code,用 unset 清掉当前 shell 的变量。清掉后从同一个窗口启动 claude。
如果你使用 claude -p 做非交互脚本,更要先确认脚本环境里没有继承 ANTHROPIC_API_KEY。非交互模式下,只要变量存在,就容易直接走 API Key。
unset ANTHROPIC_API_KEY
claude新窗口又出现 API Key 查哪里
当前窗口清掉以后,如果新开的终端又读到了 ANTHROPIC_API_KEY,说明它来自持久配置。不要反复 /login,先找是谁把变量重新注入了。
常见来源按这个顺序查:
- Windows 用户环境变量或系统环境变量
- PowerShell profile,例如
$PROFILE指向的脚本 - VS Code、JetBrains 或其它 IDE 继承的终端环境
- 项目里的
.env、dotenv 插件或 direnv 配置 - .claude/settings.json 或 .claude/settings.local.json 的 env 字段
- CI、任务脚本、启动脚本或 shell profile 里的 export/set 语句
Windows 用户变量会不会覆盖登录
如果你以前为了 Anthropic Console API 写过长期用户变量,新窗口会自动继承。先读取用户变量,确认是不是用户变量里残留了 Key。
下面只打印长度,不打印真实 Key。真实 Key 不要粘到聊天记录、截图、issue 或文章里。
$userKey = [Environment]::GetEnvironmentVariable("ANTHROPIC_API_KEY", "User")
$userKey.Length什么时候应该删除用户变量
如果确认用户变量里有旧 Key,并且你要用 Claude 订阅登录,就把用户变量删除。删除后关闭当前 PowerShell,重新打开一个新窗口再验证。
这一步会改你的用户环境变量。只有当你确认不想让所有新终端默认走 API Key 时再执行。
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", $null, "User")PowerShell profile 会不会自动注入
如果用户变量已经删掉,新窗口仍然读到 API Key,继续检查 PowerShell profile。profile 里可能有旧的 $env:ANTHROPIC_API_KEY=...。
打开 profile 后,删除或注释掉设置 ANTHROPIC_API_KEY 的那一行。改完重新打开 PowerShell。
$PROFILE
Test-Path $PROFILE
notepad $PROFILE项目 settings 和 .env 会不会覆盖
如果只在某个项目里复现,重点查项目目录。Claude Code 可以从 settings 的 env 字段得到环境变量;终端也可能通过 .env、direnv 或 dotenv 插件加载旧 Key。
订阅登录场景下,团队共享 settings 不要写真实 ANTHROPIC_API_KEY。如果某个项目确实要走 API Key,放在本地私有配置里,并在启动前确认 /status。
- .claude/settings.json
- .claude/settings.local.json
- .env
- .env.local
- .envrc
- IDE 运行配置或终端启动脚本
清掉后还异常怎么判断
清掉 ANTHROPIC_API_KEY 后,再按现象继续判断。不要把所有认证问题都当成同一种 401。
/status 仍显示 API key
继续查持久来源,尤其是 PowerShell profile、IDE 终端环境、项目 .env 和 settings env。
清掉后提示 Not logged in
当前窗口没有可用订阅凭据。运行 /login,选择你的 Claude 订阅账号,再用 /status 验证。
清掉后变成 401 或 invalid x-api-key
确认你是不是仍在走第三方网关或 Anthropic Console API。如果要接 API Key,回到普通认证失败排查;如果要走订阅,继续清理环境变量。
只有 claude -p 脚本会走 API
检查脚本、CI、任务计划和 shell profile。非交互模式更容易直接继承环境变量。
什么时候才应该设置 ANTHROPIC_API_KEY
ANTHROPIC_API_KEY 只适合你明确要走 Anthropic Console API 或自动化 API 计费时使用。它不适合长期放在所有开发终端里。
如果你日常用 Claude Code 订阅登录,保持 ANTHROPIC_API_KEY unset。需要临时测试 API Key 时,只在当前窗口设置,用完就清掉。
| 字段 | 值 |
|---|---|
| 订阅登录 | 保持 ANTHROPIC_API_KEY 不存在,使用 /login 和 /status 验证 |
| 临时 API 测试 | 只在当前 shell 设置,用完 Remove-Item 或 unset |
| CI / 自动化 | 显式设置 API Key,并接受 API 计费路径 |
| 第三方网关 | 按网关文档设置入口和 Token,不要混用订阅登录判断 |