Claude Code 接入 OpenLux:ANTHROPIC_BASE_URL、Key 与模型设置
Claude Code 可以通过 ANTHROPIC_BASE_URL 指向 Anthropic 格式的网关。接入 OpenLux 只需要设置两个环境变量:ANTHROPIC_BASE_URL=https://api.openlux.ai(不带 /v1),以及 ANTHROPIC_AUTH_TOKEN=<你的 OpenLux Key>。下面按 Claude Code 官方文档《Connect Claude Code to an LLM gateway》的步骤,说明怎么设置、怎么验证、出错时先查哪里。
准备工作
| 项目 | 填什么 | 说明 |
|---|---|---|
| Base URL | https://api.openlux.ai |
Claude Code 会自己在后面拼 /v1/messages,所以这里不要带 /v1 |
| 凭据 | OpenLux 控制台「令牌」页创建的 Key | 地址:https://www.openlux.ai/console/token |
| 凭据变量 | ANTHROPIC_AUTH_TOKEN(推荐)或 ANTHROPIC_API_KEY |
前者用 Authorization: Bearer 头发送,后者用 x-api-key 头发送;OpenLux 的 /v1/messages 两种都接受 |
| 模型 | 价格页里支持 Anthropic 接口的 Claude 模型 ID | 例如 claude-opus-5-5、claude-sonnet-5-5、claude-haiku-5-5,以价格页在售列表为准 |
官方文档说明:两个凭据变量的区别只在于用哪个 HTTP 头发送 Key。如果网关没说清楚,先用 ANTHROPIC_AUTH_TOKEN。
第一步:在终端里临时设置
先在当前终端设置,验证通过后再写进配置文件。
macOS / Linux(Bash 或 Zsh):
export ANTHROPIC_BASE_URL=https://api.openlux.ai
export ANTHROPIC_AUTH_TOKEN=sk-你的OpenLux Key
Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "https://api.openlux.ai"
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的OpenLux Key"
这样设置只对当前终端和从它启动的程序有效。从程序坞或开始菜单打开的编辑器读不到这些变量。
第二步:先用 curl 验证地址和 Key
官方文档建议先绕开 Claude Code,直接发一个 1 token 的请求,这样出错时能分清是地址、Key 的问题还是配置的问题:
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-5-5", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
怎么看结果:
- 返回以
{"id":"msg_开头、带"content"字段的 JSON:地址和 Key 都对。 - 返回「模型不存在」之类的错误:地址和 Key 也是对的,只是模型名不对,去价格页换一个在售的 ID。
- 返回
401:Key 不对或没带上。检查是否复制完整、令牌是否被禁用。
第三步:启动 Claude Code 并确认
在同一个终端运行 claude,发一条消息,然后运行 /status:
- 有
Anthropic base URL一行,并且显示https://api.openlux.ai:请求已经走 OpenLux。没有这一行,说明变量没传进会话。 - 有
Auth token或API key一行,并且写着你设置的变量名:正在用 OpenLux 的 Key,而不是本机保存的 claude.ai 登录。
官方文档提醒:设置了网关凭据后,请求不再占用 claude.ai 订阅额度,按 Key 所属账户计费。在这里就是从你的 OpenLux 余额扣费。
第四步:写进配置文件长期使用
验证通过后,把变量写进 ~/.claude/settings.json(Windows 为 %USERPROFILE%\.claude\settings.json)的 env 块,对所有项目生效,后台会话也能读到:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.openlux.ai",
"ANTHROPIC_AUTH_TOKEN": "sk-你的OpenLux Key"
}
}
注意:不要把 Key 写进项目里的 .claude/settings.json,那个文件会提交到代码仓库。只想对单个项目生效时,用 .claude/settings.local.json,并确认它在 gitignore 里。shell 里和配置文件里同时设置了同一个变量时,以配置文件为准。
VS Code 插件要单独设置:在 VS Code 用户设置(JSON)里写 claudeCode.environmentVariables,格式见官方文档同一节。
选择模型
Claude Code 内置的模型名就是 Anthropic 官方模型 ID。OpenLux 价格页里有同名模型的,可以直接在 /model 里选择。想让 /model 列出 OpenLux 提供的其他模型名,可以设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1,Claude Code 启动时会向网关查询模型列表;如果列表里没有出现想要的模型,就用下面的模型变量直接指定。
要固定某一档用哪个模型,可以用官方文档里的 ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL。填的 ID 必须是价格页里在售、并且支持 Anthropic 接口的模型。
常见报错
| 现象 | 原因 | 处理 |
|---|---|---|
401,提示 token 无效 |
Key 错误、令牌被禁用,或变量名用错 | 重新复制 Key;ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 换一个试试 |
| 404 或连不上 | Base URL 多写了 /v1,变成 /v1/v1/messages |
改成 https://api.openlux.ai |
| 启动时警告两个凭据来源 | 同时存在网关 Key 和本机 claude.ai 登录 | 运行 /logout 清掉本机登录,或取消网关变量 |
设置了 ANTHROPIC_API_KEY 但没生效 |
交互模式下第一次需要确认,之前拒绝过就会被忽略 | 在 /config 里打开 Use custom API key |
400,提到 Extra inputs are not permitted 等未知字段 |
上游不接受 Claude Code 发出的预览字段 | 按官方文档设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
/model 里看不到想用的模型 |
模型名不在内置列表里 | 打开模型发现(见上一节),或用模型变量指定 |
另外,Remote Control 和语音输入依赖 claude.ai 账号,使用网关 Key 时不可用,这是 Claude Code 的设计,不是 OpenLux 的问题。
依据
- Claude Code 官方文档:Connect Claude Code to an LLM gateway
- Claude Code 官方文档:Other LLM gateways
- OpenLux 在售模型和价格:www.openlux.ai/pricing
还没有 OpenLux 账号的话,可以先注册 OpenLux,在控制台「令牌」页创建 Key,再按上面第二步验证。