Claude Code 第三方 API 配置教程
Claude Code 默认连接 Anthropic 官方接口,并要求登录 Claude 账号。配置 Claude Code 第三方 API 只需要改两个环境变量:ANTHROPIC_BASE_URL 指向第三方地址,ANTHROPIC_AUTH_TOKEN 填第三方的 Key。本文以 cdnd(Claude Code 中转站) 为例,讲清楚终端、settings.json 和 VS Code 插件三种配置方式,以及怎么跳过登录、怎么验证、出错怎么排查。还没安装的话,先看 Claude Code 安装教程。
配置前要准备的两个值
| 变量 | 填什么 |
|---|---|
ANTHROPIC_BASE_URL |
https://api.cdnd.sh |
ANTHROPIC_AUTH_TOKEN |
你的 cdnd API Key,以 sk-cdnd- 开头 |
API Key 在 cdnd 控制台 注册后创建,每个项目可以单独建一个 Key,用量分开统计。
地址末尾不要加 /v1。Claude Code 会自己在后面拼上 /v1/messages,多写一段会变成 /v1/v1/messages,请求就找不到了。
方式一:用环境变量配置
环境变量适合先试一下:设置后在同一个终端窗口里运行 claude 即可,关掉窗口就失效。想长期使用,看本节最后的"永久生效",或者直接用方式二。
macOS / Linux
export ANTHROPIC_BASE_URL=https://api.cdnd.sh
export ANTHROPIC_AUTH_TOKEN=sk-cdnd-你的Key
claude
Windows PowerShell
$env:ANTHROPIC_BASE_URL = "https://api.cdnd.sh"
$env:ANTHROPIC_AUTH_TOKEN = "sk-cdnd-你的Key"
claude
Windows CMD
set ANTHROPIC_BASE_URL=https://api.cdnd.sh
set ANTHROPIC_AUTH_TOKEN=sk-cdnd-你的Key
claude
让环境变量永久生效
macOS 默认的 shell 是 zsh,把两行写进 ~/.zshrc;用 bash 的写进 ~/.bashrc:
echo 'export ANTHROPIC_BASE_URL=https://api.cdnd.sh' >> ~/.zshrc
echo 'export ANTHROPIC_AUTH_TOKEN=sk-cdnd-你的Key' >> ~/.zshrc
source ~/.zshrc
Windows PowerShell 写入当前用户的环境变量:
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://api.cdnd.sh", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-cdnd-你的Key", "User")
Windows CMD 用 setx:
setx ANTHROPIC_BASE_URL "https://api.cdnd.sh"
setx ANTHROPIC_AUTH_TOKEN "sk-cdnd-你的Key"
Windows 上设置完要重新打开终端才会生效,已经打开的窗口读不到新值。
方式二:在 settings.json 里配置 Claude Code API(推荐)
写在 Claude Code 的 settings.json 里,不管从哪个终端、用什么方式启动 Claude Code 都会生效,包括后台运行的 agent。这是长期使用最省心的配置方式。
settings.json 在哪里
| 文件 | 作用范围 |
|---|---|
~/.claude/settings.json(Windows:%USERPROFILE%\.claude\settings.json) |
你的所有项目 |
项目里的 .claude/settings.local.json |
只对这个项目生效 |
文件不存在就新建一个。
配置示例
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.cdnd.sh",
"ANTHROPIC_AUTH_TOKEN": "sk-cdnd-你的Key"
}
}
如果文件里已经有别的配置,把 env 这一项合并进去,不要另起一个 {}。settings.json 是严格的 JSON:不能写注释,最后一项后面也不能有逗号。
环境变量和 settings.json 同时设置了同一个变量时,settings.json 里的值优先。
不要写进项目的 .claude/settings.json
VS Code 插件接入第三方 API
Claude Code 的 VS Code 插件也能接入第三方 API,但配置位置和终端不一样。
在 claudeCode.environmentVariables 里配置
- 在 VS Code 里按
Cmd+Shift+P(Windows:Ctrl+Shift+P),运行 Preferences: Open User Settings (JSON)。 - 加入下面这一项:
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.cdnd.sh" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-cdnd-你的Key" }
]
}
- 保存后运行 Developer: Reload Window 重新加载窗口,再打开 Claude Code 面板。
为什么只写 settings.json 还会弹登录
按官方说明,插件在启动前会先检查 claudeCode.environmentVariables 里的凭据;~/.claude/settings.json 里的值只会传给插件启动的 Claude Code 进程,插件自己的登录检查读不到。所以只配了 settings.json 时,VS Code 里仍可能出现登录界面。
另外,从程序坞或开始菜单打开的 VS Code 读不到你在终端里 export 的变量;从终端运行 code . 打开才会继承。
配置后跳过登录
- 用
ANTHROPIC_AUTH_TOKEN:启动claude后直接进入会话,不会出现登录界面,也不需要确认。 - 用
ANTHROPIC_API_KEY:交互模式下第一次启动会询问是否使用这个 Key,确认一次之后会记住。 - 之前登录过 claude.ai:第三方凭据优先,原来的登录仍然保存着,只是不使用;删掉变量就会回到原来的登录。如果启动时提示两种凭据冲突,运行
/logout清掉旧登录即可。
不需要手动修改 ~/.claude.json。网上流传的改 hasCompletedOnboarding 跳过登录的做法,官方文档里并没有,设置好凭据变量就够了。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 有什么区别
| 变量 | 发送方式 | 第一次使用 | cdnd |
|---|---|---|---|
ANTHROPIC_AUTH_TOKEN |
Authorization: Bearer 请求头 |
直接生效 | 支持(推荐) |
ANTHROPIC_API_KEY |
x-api-key 请求头 |
交互模式下确认一次 | 支持 |
两个同时设置时,Claude Code 优先使用 ANTHROPIC_AUTH_TOKEN。有些第三方服务只认其中一种请求头,填错变量会返回 401;cdnd 两种都认。
验证配置是否生效
- 启动
claude,运行/status。 - 在 Status 页里找两行:
Anthropic base URL显示https://api.cdnd.sh;Auth token那一行写着ANTHROPIC_AUTH_TOKEN。没有 base URL 这一行,说明变量没有传到 Claude Code。 - 关掉
/status,随便发一句话。正常回复就说明接通了,这次请求也会出现在 cdnd 控制台的用量里。
接通以后,常用命令、计划模式和省钱技巧见 Claude Code 使用教程。
常见报错
401:This cdnd API key is invalid or has been revoked
Key 填错了、复制时多带了字符,或者这个 Key 已经在控制台删除。重新复制一遍,或者新建一个 Key。
403:cdnd serves Claude Code only
请求不是 Claude Code 发出的,比如 Cursor、Cline 或自己写的脚本。cdnd 只服务官方 Claude Code。
403:this key has no accounts
这个 Key 只使用你自己托管的 Claude 账号,而你还没有添加账号,或者账号还没审核通过。在控制台添加账号,或者换用账号池 Key。
402:Your cdnd balance is used up
余额用完了,充值后自动恢复。价格和充值方式见 Claude Code 价格。
429:This key reached its monthly spend limit
这个 Key 设置了每月花费上限。在控制台调高上限,或者等下个月自动恢复。
设置了变量还是弹登录
- VS Code:没有配置
claudeCode.environmentVariables,或者 VS Code 不是从终端启动的,见 VS Code 插件接入。 - 终端:变量设置在另一个终端窗口里,或者 Windows 上设置后没有重开终端。运行
/status,看Anthropic base URL那一行在不在。
Remote Control 和语音输入用不了
这是 Claude Code 官方的设计:Remote Control 和语音输入依赖 claude.ai 登录,使用第三方 API 凭据时会自动关闭,和 cdnd 无关。
常见问题
Claude Code 可以用第三方 API 吗?
可以。Claude Code 官方支持通过 ANTHROPIC_BASE_URL 连接第三方网关:把 ANTHROPIC_BASE_URL 改成第三方地址,把 Key 填进 ANTHROPIC_AUTH_TOKEN 即可。cdnd 使用官方 Claude 模型,接口和官方完全一致。
配置第三方 API 后还需要 Claude 账号吗?
不需要。使用 cdnd 的 Key 时,请求由 cdnd 的账号池处理,你不需要登录自己的 Claude 账号,也不需要海外信用卡。
settings.json 和环境变量同时设置,哪个生效?
settings.json 里的值优先。运行 /status 可以看到 Claude Code 当前实际使用的地址和凭据。
配置后怎么切回官方账号?
删掉 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN(终端里用 unset,或者从 settings.json 的 env 里删除),Claude Code 就会回到之前保存的 claude.ai 登录。如果已经运行过 /logout,重新运行 /login 登录即可。