Claude Code settings.json 与环境变量:Base URL、Auth Token 和 Model

推理时代阅读约 7 分钟
Claude Code settings.json 与环境变量:Base URL、Auth Token 和 Model

Claude Code 从 JSON 设置文件和环境变量中读取配置。要通过网关而不是 Anthropic API 运行它,你需要设置两个变量:ANTHROPIC_BASE_URL 和一个 token,通常还需要指定模型。这些变量本身很简单,容易让人困惑的是该把它们放在哪里,因为同一个变量可能出现在 shell 配置文件、多个 settings.json 文件以及 VS Code 设置中。

本指南先介绍一套可用的配置,然后说明文件的位置、不同设置的优先级,以及你可能遇到的错误。内容已对照 Anthropic 文档核查,并于 2026 年 10 月 20 日在 Claude Code 2.1.304 上使用 AIHubMix 测试。示例使用 AIHubMix 作为网关;其他任何兼容 Anthropic 的端点,配置方式都相同。

简而言之

  • 你的个人设置文件是 ~/.claude/settings.json;在 Windows 上则是 %USERPROFILE%\.claude\settings.json。
  • 使用网关时,将 ANTHROPIC_BASE_URL(末尾不要带 /v1)和 ANTHROPIC_AUTH_TOKEN 放入该文件的 env 块中。
  • 设置文件 env 块中的值会覆盖 shell 中导出的同名变量。
  • 设置 token 后,请求就不再使用你的 Claude 订阅,而是由网关计费。
  • VS Code 扩展也需要在其自己的 claudeCode.environmentVariables 设置中配置相同的变量。

可用的 AIHubMix 配置

  1. 在 AIHubMix 控制台中创建密钥。
  2. 将以下内容放入 ~/.claude/settings.json。如果文件不存在,请创建一个。
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "env": {
    "ANTHROPIC_BASE_URL": "https://aihubmix.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-your-aihubmix-key"
  },
  "model": "claude-sonnet-5-5"
}
  1. 快速测试一下:
claude -p "1+1, output only the answer"
  1. 在某个项目中启动 claude。logo 下方的标题应显示类似 Sonnet 5.5 · API Usage Billing 的内容,而 /status 会在 Anthropic base URL 一行显示你的网关。

有两点很重要。Base URL 是根地址:Claude Code 会自行添加 /v1/messages,因此 URL 以 /v1 结尾会导致所有请求失败。另外,AIHubMix 使用 Anthropic 自己的模型 ID,例如 claude-sonnet-5-5,所以无需额外配置即可使用 sonnet、opus 和 haiku 这些快捷名称。

$schema 这一行是可选的。它可以让 VS Code、Cursor 和其他编辑器在你输入时检查文件中的错误。

你也可以在 shell 中导出相同的两个变量,但设置文件是更合适的存放位置:所有终端、IDE 扩展和后台智能体都会读取它。

设置文件的位置

范围 文件 适用对象
用户 ~/.claude/settings.json 你本人,适用于每个项目
项目 .claude/settings.json 通过 git 分享给仓库中的所有人
本地 .claude/settings.local.json 仅你本人,且仅限此仓库
受管 由你的组织设置 部署到的所有人

不要将 token 放入项目的 .claude/settings.json,因为它会提交到 git。请使用你的用户设置文件或 .claude/settings.local.json。

设置文件必须是有效的 JSON。添加 // 注释或尾随逗号都会导致 Claude Code 跳过整个文件,包括 token;此时你会看到登录界面,而不是网关。

不要把这些文件与主目录中的单个文件 ~/.claude.json 混淆。该文件存储 Claude Code 自身的状态,例如登录信息和 MCP 服务器;你很少需要编辑它。

哪个值优先

多个文件设置同一项时,按 Anthropic 的设置优先级处理,优先级从高到低如下:

  1. 组织设置的受管设置
  2. 命令行中的 --settings,仅对此会话有效
  3. .claude/settings.local.json
  4. .claude/settings.json
  5. ~/.claude/settings.json

对于环境变量,还有一条规则:设置文件 env 块中的变量会覆盖 shell 中的同名变量。因此,如果设置文件也设置了该变量,那么在 ~/.zshrc 中写入 export ANTHROPIC_BASE_URL=... 就不会生效。提供商切换工具通常会写入 ~/.claude/settings.json,所以它们的设置会优先于 shell 中的值。

在 Claude Code 中,/status 会在 Setting sources 一行列出它加载的文件。

ANTHROPIC_AUTH_TOKEN 还是 ANTHROPIC_API_KEY

变量 发送为 说明
ANTHROPIC_AUTH_TOKEN Authorization: Bearer 立即使用
ANTHROPIC_API_KEY x-api-key 会请求一次授权

使用网关读取的那个变量即可。AIHubMix 两种都支持,其Claude Code 指南使用的是 ANTHROPIC_AUTH_TOKEN,这也是更简单的选择。不要同时设置两者。否则 Claude Code 会发送两个请求头,而 AIHubMix 会优先检查 x-api-key:在我们的测试中,即使 settings.json 中的 token 正确,如果 shell 中导出了旧的 ANTHROPIC_API_KEY,仍会收到 401 错误。env 块只会覆盖其中设置的变量,因此切换时请从 shell 配置文件中删除旧密钥。

你的 Claude 订阅会怎样?根据 Anthropic 的网关指南,一旦设置了 token 或 API key 变量,请求就会使用该变量,而不是你的 claude.ai 登录信息;网关会按 token 计费。你的登录信息仍会保留,移除该变量后即可恢复使用。若只设置 ANTHROPIC_BASE_URL 而不设置 token,则仍会使用你的订阅。

选择模型

Anthropic 的模型配置页面列出了以下优先顺序,从高到低排列:

  1. 会话期间使用 /model <name>
  2. 启动时使用 claude --model <name>
  3. ANTHROPIC_MODEL 变量
  4. 设置文件中的 model 键

/model 会将你的选择保存为新的默认值。不过,如果设置了 ANTHROPIC_MODEL,每次启动新会话时都会重新使用它。如果你经常切换模型,请设置 model 键,而不要设置 ANTHROPIC_MODEL。如果任何地方都没有设置模型,Claude Code 就会使用 Opus 5.5。

ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL 和 ANTHROPIC_DEFAULT_HAIKU_MODEL 可以更改每个快捷名称对应的模型。只有当你想让某个快捷名称指向其他模型时才需要设置它们,例如让 sonnet 继续使用较旧版本。

AIHubMix 也通过同一地址提供其他厂商的模型,但 Anthropic 不支持在非 Claude 模型上使用 Claude Code,因此某些功能可能无法正常使用。

更改何时生效

Claude Code 会监视其设置文件,大多数保存后的修改(包括 env 块)都会应用到正在运行的会话中。model 键、删除变量以及 shell 导出的变量则需要重启后才会生效。如不确定,请重启 Claude Code。

VS Code 扩展

扩展会读取相同的设置文件,但启动前会使用自己的 claudeCode.environmentVariables 设置检查登录状态。这就是为什么 VS Code 可能会要求你登录,而 CLI 却能正常工作的原因。在命令面板中打开Preferences: Open User Settings (JSON),然后添加:

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://aihubmix.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-your-aihubmix-key" }
  ]
}

然后运行 Developer: Reload Window。更多选项请参阅 Anthropic 的 VS Code 文档。Claude Desktop 应用是独立的:它既不读取 settings.json,也不读取这些变量。

其他有用的变量

变量 适用情况
API_TIMEOUT_MS 长请求超时(默认 10 分钟)
CLAUDE_CODE_MAX_RETRIES 希望错误更快显示
HTTPS_PROXY 你位于 HTTP 代理之后
NODE_EXTRA_CA_CERTS 你的代理使用自己的根证书

这些变量都可以放在 env 块中。完整列表请参阅 Anthropic 的环境变量参考。

常见错误及其含义

Not logged in · Please run /login,或首次启动时出现登录界面
Claude Code 没有找到 token。请检查三项:JSON 格式错误导致文件被跳过、缺少 ANTHROPIC_AUTH_TOKEN,或 token 只设置在项目文件中。登录步骤会在加载项目设置之前运行,因此请将 token 移到 ~/.claude/settings.json。

Invalid or malformed JSON
报错中提到的文件包含注释、尾随逗号或其他语法错误,因此其中的所有设置都未生效。

There's an issue with the selected model (...)
模型 ID 不正确,或者 Base URL 以 /v1 结尾,导致请求发送到了 /v1/v1/messages。如果模型 ID 看起来没问题,请先检查 URL。

API Error: 400,并显示 This model ID is incorrect
AIHubMix 中没有这个 ID 的模型,而且错误信息会重复显示收到的 ID。通常是输入有误,请从 AIHubMix 模型列表中重新复制 ID。

Failed to authenticate. API Error: 401 invalid key: ...
AIHubMix 不接受该密钥。错误信息末尾会显示收到的密钥最后六个字符,请将其与 token 末尾对比。PI_KEY 表示你粘贴的是占位符 AIHUBMIX_API_KEY,而不是真实密钥。其他情况通常意味着 shell 中的旧 ANTHROPIC_API_KEY 被发送了。如果错误信息显示 this key is not enabled,请在 AIHubMix 控制台检查密钥是否已启用且账户有余额。

auth may not work as expected
token 变量和已保存的 claude.ai 登录信息同时生效。运行 /logout 以继续使用网关,或移除该变量以恢复使用订阅。

Claude Code doesn't recognize the model ...
这是警告,不是错误:请求仍会发出,但 Claude Code 会假设上下文窗口为 200K-token。如果该 ID 对应较新的 Claude 模型,运行 claude update 即可消除警告。

使用错误密钥时似乎会卡住
Claude Code 最多会对失败的请求重试 10 次。在一次使用始终失效的密钥进行的测试中,claude -p 持续重试了约三分钟。调低 CLAUDE_CODE_MAX_RETRIES,即可更快看到错误。

如果你想用一个密钥在 Claude Code 中调用 Claude,并在其他工具中调用 OpenAI、Google 和其他厂商的模型,AIHubMix 可通过 https://aihubmix.com 提供 Anthropic API。Claude Code 只需要上面的设置文件。

常见问题

Claude Code 的 settings.json 在哪里?
你的个人文件是 ~/.claude/settings.json;在 Windows 上则是 %USERPROFILE%\.claude\settings.json。项目中也可以有 .claude/settings.json,通过 git 分享;以及 .claude/settings.local.json,仅供你自己使用。Claude Code 安装时不会创建这些文件。

settings.json 会覆盖环境变量吗?
会。设置文件 env 块中的值会覆盖 shell 中导出的同名变量。文件中未设置的变量(例如旧的 ANTHROPIC_API_KEY)仍会从 shell 中读取。

应该使用 ANTHROPIC_AUTH_TOKEN 还是 ANTHROPIC_API_KEY?
使用你的网关读取的变量。ANTHROPIC_AUTH_TOKEN 会发送 Bearer token,且无需审批。对于 AIHubMix,文档指定使用 ANTHROPIC_AUTH_TOKEN。不要同时设置两者:AIHubMix 会优先读取 x-api-key,因此过时的 ANTHROPIC_API_KEY 会导致 401 错误。

ANTHROPIC_BASE_URL 末尾需要加 /v1 吗?
不需要。Claude Code 会自行添加 /v1/messages。对于 AIHubMix,请使用 https://aihubmix.com。

编辑 settings.json 后需要重启 Claude Code 吗?
大多数更改(包括 env 更改)会在保存后生效。模型 key 和 shell 导出变量需要重启。稳妥起见,建议重启。

为什么 CLI 能正常工作,VS Code 却要求我登录?
扩展启动前会通过其 claudeCode.environmentVariables 设置检查登录状态,而 ~/.claude/settings.json 中的值不会传递到这项检查中。请在那里添加基础 URL 和 token,然后重新加载窗口。

设置 ANTHROPIC_BASE_URL 会使用我的 Claude 订阅吗?
只有在未设置 token 时才会使用。设置 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY 后,请求会使用该 key,网关则按 token 计费。

来源