用法
Claude Code 自定义 API 地址:ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN 怎么配
Claude Code 默认连 Anthropic。想让它走别的 Anthropic 兼容地址(网关或中转),要设两个环境变量:ANTHROPIC_BASE_URL 管地址,ANTHROPIC_AUTH_TOKEN 管凭证。这一页讲这两个变量各自做什么、可以写在哪几个位置、Windows 怎么设、VS Code、JetBrains 和 Claude Desktop 有什么不同、怎么确认已经生效,以及不生效时的排查清单。内容依据 Anthropic 的 Connect Claude Code to an LLM gateway 和 CoreCode 文档,2026 年 11 月 5 日核对。
ANTHROPIC_BASE_URL覆盖 API 地址;ANTHROPIC_AUTH_TOKEN以Authorization: Bearer发送;ANTHROPIC_API_KEY以x-api-key发送。按你的接口读哪个头来选,不要两个凭证都设。- 最稳的位置是
~/.claude/settings.json的env块;shell 里的export只管当前终端。两处设了同一个变量时,以设置文件里的值为准。 - 在 Claude Code 里输入
/status:只有设了地址才会出现 base URL 那一行,凭证那一行会写出正在用的变量名。 - 桌面版 Claude Desktop 不读
ANTHROPIC_BASE_URL和settings.json,要在它自己的第三方推理表单里填。
两个变量分别做什么
Anthropic 的环境变量文档是这样描述的:
| 变量 | 作用 |
|---|---|
ANTHROPIC_BASE_URL | 覆盖 API 地址,让请求经过代理或网关。 |
ANTHROPIC_AUTH_TOKEN | Authorization 头的自定义值,你填的内容前面会加上 Bearer 。 |
ANTHROPIC_API_KEY | 以 X-Api-Key 头发送的 API key。设了它,即使你已登录,也会用这个 key 而不是 Claude 订阅。交互模式下会先问你一次是否批准;非交互模式(-p)总是使用它。 |
所以两个凭证变量的区别,就是放进哪个请求头。Anthropic 的网关页面写得很直接:网关说的是 “bearer token” 或 “Authorization header”,用 ANTHROPIC_AUTH_TOKEN;说的是 “API key” 或 “x-api-key”,用 ANTHROPIC_API_KEY。拿不准就先用 ANTHROPIC_AUTH_TOKEN。凭证放错变量,会进到接口不读的请求头里,请求返回 401。
同时存在多个凭证时,Claude Code 的选择顺序是:云厂商凭证(Bedrock、Vertex、Foundry),然后是 ANTHROPIC_AUTH_TOKEN,再是 ANTHROPIC_API_KEY,再是 apiKeyHelper,再是 CLAUDE_CODE_OAUTH_TOKEN,最后才是 claude.ai 登录。所以网关凭证变量优先于已保存的 claude.ai 登录,登录信息还在,只是暂时不用。
有一个容易踩的点:只设 ANTHROPIC_BASE_URL、不设凭证变量,并不会替换订阅。请求会发到新地址,但生效的凭证仍是已保存的 claude.ai 登录,它的额度和计费规则照旧。
写在哪里
写在 shell 里
适合第一次试。Anthropic 建议先用 shell export 跑通,再把值挪进文件。把地址换成你自己的:
export ANTHROPIC_BASE_URL=https://llm-gateway.example.com
export ANTHROPIC_AUTH_TOKEN=sk-your-key
claude
$env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"
$env:ANTHROPIC_AUTH_TOKEN = "sk-your-key"
claude
这些只在当前终端和它启动的程序里有效。从程序坞或开始菜单启动的编辑器看不到。想跨终端保留,把同样的几行写进 ~/.zshrc、~/.bashrc 或 PowerShell 的 $PROFILE。
写在 settings.json 里
想让 Claude Code 无论从哪里启动都生效,把变量放进设置文件的 env 块:
{
"env": {
"ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
"ANTHROPIC_AUTH_TOKEN": "sk-your-key"
}
}
~/.claude/settings.json对你所有项目生效。Windows 上是%USERPROFILE%\.claude\settings.json。.claude/settings.local.json只对当前项目生效。往里放凭证之前,先把它加进 gitignore。- 不要把凭证写进项目里的
.claude/settings.json。这个文件会被提交,clone 仓库的人都能看到。
文件里已有内容时,只合并 env 块。shell export 和设置文件 env 块设了同一个变量时,以设置文件里的值为准。
Anthropic 的设置文档给出的通用优先级从高到低是:托管设置、命令行、项目本地、项目共享、用户。它同时说明环境变量不是这个层级里的一层:同时有 shell 变量和设置项的配对,谁生效是逐对决定的。这两个变量按上面那条规则(设置文件优先)处理,那是文档明确写出的。
还有一个启动时的细节。交互模式下,项目里 .claude/settings.json 或 .claude/settings.local.json 的 env 块,要等首次运行向导和文件夹信任提示之后才生效。如果 curl 测试能通、Claude Code 却还是让你登录,就把 ANTHROPIC_AUTH_TOKEN 放到首次设置之前就会读取的地方:shell export,或用户级的 ~/.claude/settings.json。
Windows 怎么设
上面的 PowerShell 写法对当前窗口有效。要永久生效,CoreCode 的 Windows 文档用 setx,然后新开一个终端,因为 setx 不会改动已经打开的窗口:
setx ANTHROPIC_BASE_URL https://llm-gateway.example.com
setx ANTHROPIC_AUTH_TOKEN sk-your-key
写设置文件可以绕开这个问题:创建 %USERPROFILE%\.claude\settings.json,保存为 UTF-8。PowerShell、Git Bash 和 VS Code 扩展都读这个文件。注意记事本别把它存成 settings.json.txt。安装和报错的完整说明见 Windows 上使用 Claude Code。
VS Code、JetBrains 和 Claude Desktop
VS Code 和 Cursor
CoreCode 的 IDE 文档让命令行和扩展共用 ~/.claude/settings.json:把 env 块写在那里,在扩展设置里勾选 Disable Login Prompt,然后彻底退出 VS Code 再打开。如果你是从桌面图标启动 VS Code,终端里 export 的变量它看不到;请在终端里用 code . 启动,或者直接用设置文件。
Anthropic 的网关页面给的是另一条路:在 VS Code 自己的用户设置里(Preferences: Open User Settings (JSON))配置 claudeCode.environmentVariables。它说明扩展在启动前会从这个设置检查凭证,而 ~/.claude/settings.json 里的值能传给被拉起的进程,但进不了扩展自己的登录检查:
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-your-key" }
]
}
一种写法后扩展还是弹登录页,就换另一种试。完整步骤见 VS Code、Cursor 和 JetBrains 里的 Claude Code。
JetBrains
JetBrains 插件不自带 Claude Code,它在 IDE 终端里运行命令行版本,所以上面的命令行配置就是它的配置。
Claude Desktop
桌面版从它自己的第三方推理配置里读取网关,不读 ANTHROPIC_BASE_URL 或 settings.json。手动配置:打开 Help、Troubleshooting、Enable Developer Mode,等应用重启,再打开 Developer、Configure Third-Party Inference,填入网关 base URL。CoreCode 的 Desktop 文档还会填网关 API key,凭证类型保持 Static API key、认证方式保持 bearer,并提醒 Test connection 按钮可能报错,而这和你的设置无关。见 接入 Claude Desktop。Anthropic 还提到,启用网关配置后 Remote Control 不可用。
确认已经生效
分两步,按这个顺序。
第一步,在 shell 里 export 好变量,直接给接口发一个 1 token 的请求。这样能分清是“地址或 key 有问题”,还是“Claude Code 没读到你的设置”:
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
返回的 JSON 以 {"id":"msg_ 开头,说明地址和凭证都没问题。就算报错说模型不存在,也能证明它们可用,因为接口是先认证了你、才拒绝的模型名。返回 401 表示凭证被拒,换另一个凭证变量再试。注意这个请求是在 $ANTHROPIC_BASE_URL 后面拼 /v1/messages,Anthropic 页面和 CoreCode 文档里的示例,base URL 都不带路径,比如 https://corecode.live。
第二步,在同一个 shell 里启动 claude,发一条消息,再输入 /status。Anthropic 说要看两行:Anthropic base URL 显示你的地址,这一行只有设了地址才会出现;Auth token 或 API key 一行写着你设的变量名,说明生效的是这个凭证而不是已保存的 claude.ai 登录。CoreCode 文档把第一行叫作 Base URL。想快速端到端测一下,运行 claude -p "reply ok",应该能打印出回复。
不生效时怎么查
| 现象 | 原因和处理 |
|---|---|
启动时有警告,点名两个凭证来源,结尾是 auth may not work as expected。旧版本显示 Auth conflict: Both a token and an API key are set | 网关凭证和已保存的登录同时存在。请求用的是变量,但残留的登录可能引起异常行为。想保留变量就运行 /logout;想用登录就取消设置变量。如果 ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 同时设了,删掉 ANTHROPIC_API_KEY(CoreCode 的报错文档也这么说)。 |
仍然是官方账号,或被要求 /login | 运行 /status。如果没有 base URL 那一行,说明变量没进到会话里。检查文件路径(Windows 是 %USERPROFILE%\.claude\)、变量名有没有拼错、是否新开了终端并重启了 Claude Code(它只在启动时读配置)。之前登录过 claude.ai 的话,运行 /logout。 |
401,提示 token 无效或无法识别 | 凭证不是这个接口签发的,或放在了接口不读的请求头里。对调 ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 试试,并确认 key 复制完整。 |
设了 ANTHROPIC_API_KEY 但被忽略,也没有任何提示 | 交互会话里这个 key 需要一次性批准,之前拒绝过的 key 会被静默忽略。在 /config 里打开 Use custom API key。改用 ANTHROPIC_AUTH_TOKEN 就没有这个确认步骤。 |
| curl 测试成功,但 Claude Code 还是要求登录 | 项目级的 env 块要等首次运行向导和信任提示之后才生效。把变量挪到 shell export 或 ~/.claude/settings.json。 |
| 终端里变量有效,编辑器里无效 | 从程序坞或开始菜单启动的编辑器不继承 shell 的 export。改用设置文件,或从终端启动编辑器。 |
Connection refused 或 ENOTFOUND | 这个地址没人应答:地址写错,或者 VPN、防火墙挡住了路径。curl 测试会以同样方式失败,可以借此确认原因。 |
400,提示 Extra inputs are not permitted 或 context_management | 网关后面的上游拒绝了 Claude Code 发出的某些字段。Anthropic 给的办法是 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。只有你的接口确实需要时才这么做;CoreCode 会原样透传这些请求头,它的 Claude Code 文档明确说不要设这一项。 |
Desktop 提示 Gateway was unreachable | 应用启动时连不上配置的 base URL。用上面的 curl 测试检查地址和网络路径。 |
用 CoreCode 作为这个地址
CoreCode 是一个中转,由官方 Claude 账号应答。Claude Code 用 ANTHROPIC_BASE_URL=https://corecode.live 指向它,在控制台创建的 key 填进 ANTHROPIC_AUTH_TOKEN。具体步骤,包括推荐设置和该在哪个分组下创建 key,见 Claude Code。如果你还在比较订阅和按量付费的 key,先读 Claude Code 订阅和 API 怎么选。Anthropic 不为第三方网关产品背书、维护或审计,所以任何地址都要对照它自己的文档,并先用上面的 curl 请求测一遍再依赖。
常见问题
Claude Code 怎么设置 ANTHROPIC_BASE_URL?
在 shell 里 export,比如 export ANTHROPIC_BASE_URL=https://llm-gateway.example.com,或者写进 ~/.claude/settings.json 的 env 块。同时配一个凭证变量,通常是 ANTHROPIC_AUTH_TOKEN。然后重启 Claude Code,运行 /status,看 base URL 那一行是不是你的地址。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 有什么区别?
区别在请求头。ANTHROPIC_AUTH_TOKEN 以 Authorization: Bearer 发送,ANTHROPIC_API_KEY 以 x-api-key 发送。接口读哪个就用哪个。两个都设会出现 auth conflict 警告;在 Claude Code 的优先级里 ANTHROPIC_AUTH_TOKEN 排在前面。
Claude Code 的 ANTHROPIC_BASE_URL 不生效怎么办?
最常见的几种:变量根本没进到会话里(换了终端、编辑器没继承、没重启 Claude Code);已保存的 claude.ai 登录和凭证冲突;凭证放错了变量。先运行 /status,再按上面的清单逐项排查。
Windows 上怎么设置 Claude Code 的 base URL?
PowerShell 里 $env:ANTHROPIC_BASE_URL = "https://..." 对当前窗口有效;setx ANTHROPIC_BASE_URL https://... 永久生效,之后要新开终端。也可以把 env 块写进 %USERPROFILE%\.claude\settings.json,所有 Windows 终端和 VS Code 扩展都会读它。
Claude Desktop 会读 ANTHROPIC_BASE_URL 吗?
不会。Anthropic 的网关页面写明,桌面版从它的第三方推理配置里读取网关路由,不读 ANTHROPIC_BASE_URL 或 settings.json。在 Developer、Configure Third-Party Inference 里填网关 base URL。
token 可以写进项目的 .claude/settings.json 吗?
不可以。这个文件会被提交,clone 仓库的人都能看到。用 ~/.claude/settings.json,或者被 gitignore 的 .claude/settings.local.json。
来源
- Claude Code:Connect Claude Code to an LLM gateway(凭证变量与请求头、shell 和设置文件配置、设置文件优先、
/status检查、curl 测试、VS Code、桌面版、排错表,2026 年 11 月 5 日核对) - Claude Code:Other LLM gateways(只设 base URL 不会替换订阅登录;Anthropic 不为第三方网关背书,2026 年 11 月 5 日核对)
- Claude Code:Environment variables(
ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY,2026 年 11 月 5 日核对) - Claude Code:Authentication(认证优先级,2026 年 11 月 5 日核对)
- Claude Code:Settings(设置文件与优先级,2026 年 11 月 5 日核对)
- CoreCode 文档:Claude Code、Windows、VS Code 和 JetBrains、Claude Desktop、报错排查