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 文件確認,並於 October 20, 2026 在 Claude Code 2.1.304 上使用 AIHubMix 測試。範例使用 AIHubMix 作為閘道;任何相容 Anthropic 的端點都能以相同方式設定。

簡要說明

  • 個人設定檔是 ~/.claude/settings.json;Windows 上則是 %USERPROFILE%\.claude\settings.json。
  • 使用閘道時,請在該檔案的 env 區塊中設定 ANTHROPIC_BASE_URL(網址結尾不要加 /v1)和 ANTHROPIC_AUTH_TOKEN。
  • 設定檔 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。標誌下方的標頭應該會顯示類似 Sonnet 5.5 · API Usage Billing 的內容,而 /status 會在 Anthropic base URL 那一行顯示您的閘道。

有兩點很重要。Base URL 是根網址:Claude Code 會自行加上 /v1/messages,因此網址若以 /v1 結尾,每個請求都會失敗。另外,AIHubMix 使用 Anthropic 自家的模型 ID,例如 claude-sonnet-5-5,因此 sonnet、opus 和 haiku 這些簡稱無須額外設定即可使用。

$schema 這一行是選填的。它能讓 VS Code、Cursor 和其他編輯器在您輸入時標示檔案中的錯誤。

您也可以在 shell 中匯出相同的兩個變數,但設定檔是更好的存放位置:所有終端機、IDE 擴充功能和背景 Agent 都會讀取它。

設定檔的位置

範圍 檔案 適用對象
使用者 ~/.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 中同名的變數。因此,如果設定檔也設定了 export ANTHROPIC_BASE_URL=...,那麼在 ~/.zshrc 中設定它就不會生效。切換提供者的工具通常會寫入 ~/.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,仍然收到 401,因為 shell 中匯出了舊的 ANTHROPIC_API_KEY。env 區塊只會覆蓋其中設定的變數,因此切換時,請從 shell 設定檔移除舊金鑰。

那您的 Claude 訂閱會如何處理?根據 Anthropic 的閘道指南,設定 token 或 API 金鑰變數後,請求會改用該變數,而非您的 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 app 則是獨立的應用程式,不會讀取 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 看起來正確,請先檢查網址。

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。專案也可以有透過 git 共用的 .claude/settings.json,以及只供您個人使用的 .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 變更)會在儲存時套用。模型金鑰和 shell 匯出變數則需要重新啟動。重新啟動是較穩妥的做法。

為什麼 CLI 可以正常運作,VS Code 卻要求我登入?
擴充功能啟動前,會透過其 claudeCode.environmentVariables 設定檢查登入狀態,而 ~/.claude/settings.json 中的值不會傳到這項檢查。請在該處新增基礎 URL 和 token,然後重新載入視窗。

設定 ANTHROPIC_BASE_URL 會使用我的 Claude 訂閱嗎?
只有在未設定 token 時才會。如果已設定 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY,請求就會使用該金鑰,並由閘道依 token 計費。

來源