Skip to main content
環境變數可以控制 Claude Code 的行為,例如模型選擇、身份驗證、請求路由和功能切換。許多相同的行為也可以透過設定檔欄位、CLI 旗標或工作階段內命令(如 /model)進行設定。 本頁涵蓋以下內容:

設定環境變數

您在 shell 中設定的變數只在該終端機工作階段期間有效,而設定檔中的變數則在每次執行 claude 時都會套用。

在您的 shell 中

在啟動 claude 之前設定變數:
若要在每個工作階段都設定它,請將 export 行新增到 ~/.bashrc、~/.zshrc 或您的 shell 設定檔。
指派行在成功時不會列印任何內容,因此請在執行 claude 之前在同一個 shell 中列印變數來確認變數已設定:

在設定檔中

在 settings.json 檔案的 env 鍵下新增變數,如果檔案不存在則建立它。Claude Code 會直接從檔案讀取它們,因此無論如何啟動 claude,它們都會生效。執行中的工作階段會在您儲存檔案時將新的和已變更的值套用到其環境,但在啟動時讀取其變數一次的功能(例如 OpenTelemetry 監控)會保留其啟動值,直到您重新啟動為止。從檔案中移除變數不會在執行中的工作階段中取消設定它;移除會在您下次啟動 claude 時生效。
~/.claude/settings.json
您選擇的檔案控制變數套用的對象: 請參閱 設定檔 以了解每個檔案的位置,以及 設定優先順序 以了解當多個檔案設定相同變數時它們如何結合。

優先順序

某些行為同時具有環境變數和專用設定鍵,Claude Code 讀取哪一個的順序因鍵而異。對於 ANTHROPIC_MODEL 和 CLAUDE_CODE_AUTO_CONNECT_IDE,Claude Code 會先讀取變數,只有在變數未設定時才使用 model 或 autoConnectIde 設定。對於您要設定的配對,請檢查下方變數的列,以及 設定參考 上的鍵項目。 當相同的變數同時在您的 shell 和設定檔 env 區塊中設定時,設定檔值會在大多數工作階段中套用。Claude Code 會將每個 env 項目寫入程序環境,取代從 shell 繼承的值。env 值如何與您的 shell 互動 涵蓋保留繼承值的工作階段,以及 env 設定 說明何時套用它們。少數變數有特殊處理;env 設定 列出例外。 在設定檔中,您可以設定變數,但無法移除變數。若要覆寫無法取消設定的變數,例如由您無法控制的 shell 設定檔匯出的過時 CLAUDE_CODE_USE_VERTEX,請在 env 區塊中將其設定為空字串:"CLAUDE_CODE_USE_VERTEX": ""。Claude Code 將空值視為未設定以進行提供者選擇。子程序仍會繼承空值。 在設定檔之間,env 值遵循 設定優先順序,因此受管設定項目會覆寫使用者或專案設定中的相同變數。專案和本機設定無法設定某些變數,例如 CLAUDE_CONFIG_DIR 和 OpenTelemetry 匯出器變數。Claude Code 在 env 中忽略的變數 列出它們,以及仍然適用的 OpenTelemetry 關閉值。 環境變數如何與 CLI 旗標和工作階段內命令互動因功能而異:--model 和 /model 會覆寫 ANTHROPIC_MODEL,而 CLAUDE_CODE_EFFORT_LEVEL 會覆寫 --effort 和 /effort。當變數與另一個設定來源互動時,變數 列表中的其列會說明優先順序或連結到記錄該項目的頁面。 Claude Code 在啟動時讀取 shell 環境變數,因此對它們的變更會在您下次啟動 claude 時生效。在設定檔中 env 鍵下設定的變數會在檔案變更時重新套用到執行中的工作階段,但 在設定檔中 所述的僅啟動時例外。

變數

數值變數(例如逾時、權杖預算和重試次數)除了接受純數字外,還接受科學記號和數字分隔符拼寫,除非變數的列註明只接受純數字。例如,Claude Code 將 2e3 讀作 2000,將 64_000 讀作 64000。在 v2.1.211 之前,這些拼寫可能會無聲地設定一個更小的值,例如 1e6 將逾時設定為 1。
對於開啟或關閉行為的變數,設定 1 或 true 以開啟,設定 0 或 false 以關閉,不分大小寫。某些變數只讀取您是否設定了它們,因此任何非空值(包括 0)都會開啟行為,而您可以透過取消設定變數或將其設定為空值來關閉行為。這些變數的工作方式如下:
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • DISABLE_TELEMETRY
  • DISABLE_ERROR_REPORTING
  • CLAUDE_CODE_TMUX_TRUECOLOR
  • FALLBACK_FOR_ALL_PRIMARY_MODELS
  • IS_DEMO
另一個變數有自己的規則:FORCE_HYPERLINK 讀取一個數字,因此只有 0 會關閉它。每個變數的列也說明了自己的規則。
標準 OpenTelemetry 匯出器變數(OTEL_METRICS_EXPORTER、OTEL_LOGS_EXPORTER、OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_EXPORTER_OTLP_PROTOCOL、OTEL_EXPORTER_OTLP_HEADERS、OTEL_METRIC_EXPORT_INTERVAL、OTEL_RESOURCE_ATTRIBUTES 和信號特定變體)也受支援。請參閱 監視 以了解設定詳細資訊。 在您的 shell、使用者設定或受管設定中設定 CLAUDE_CODE_ENABLE_TELEMETRY 和開啟匯出、選擇其目的地或在 OpenTelemetry 變數中擷取內容。Claude Code 在專案和本機設定中忽略它們,除了該部分描述的關閉值。OTEL_RESOURCE_ATTRIBUTES 和匯出間隔、逾時和壓縮變數(例如 OTEL_METRIC_EXPORT_INTERVAL)仍從專案和本機設定適用。

需要功能旗標擷取的功能

Claude Code 透過從 Anthropic 擷取的功能旗標來啟用某些功能。Claude Code 在以下工作階段中會跳過該擷取:
  • 設定 DISABLE_GROWTHBOOK、DISABLE_TELEMETRY、DO_NOT_TRACK 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 的工作階段;變數表中每個變數的列會說明哪些值會關閉擷取
  • 第三方提供者上的工作階段,例如 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 或 Microsoft Foundry,除非嵌入 Claude Code 的主機平台設定 CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST
  • Claude 應用程式閘道工作階段
擷取關閉時,您無法:

安裝或升級後的第一個工作階段

在您安裝 Claude Code 或升級到新增功能的版本後的第一個工作階段中,旗標閘道功能可能會遺失。該工作階段也可能以不同的權限模式啟動,而不是您稍後的工作階段。Claude Code 在該工作階段期間擷取旗標,因此您的下一個工作階段具有該功能和通常的起始權限模式。 在全新安裝後,在非互動式工作階段(例如 claude -p、Agent SDK 或 VS Code 擴充功能)中,Claude Code 仍可在選擇起始權限模式之前擷取旗標。

另請參閱