Zum Hauptinhalt springen
Umgebungsvariablen können das Verhalten von Claude Code steuern, z. B. Modellauswahl, Authentifizierung, Anfragerouting und Funktionsschalter. Viele der gleichen Verhaltensweisen können auch über ein Einstellungsfeld, ein CLI-Flag oder einen In-Session-Befehl wie /model konfiguriert werden. Diese Seite behandelt folgende Themen:

Umgebungsvariablen festlegen

Eine Variable, die Sie in Ihrer Shell festlegen, gilt für diese Terminalsitzung, während eine Variable in einer Einstellungsdatei jedes Mal gilt, wenn claude ausgeführt wird.

Variablen in Ihrer Shell festlegen

Legen Sie die Variable vor dem Starten von claude fest:
Um sie für jede Sitzung festzulegen, fügen Sie die export-Zeile zu ~/.bashrc, ~/.zshrc oder der Profildatei Ihrer Shell hinzu.
Die Zuweisungszeile gibt bei erfolgreicher Ausführung nichts aus. Um zu bestätigen, dass die Variable festgelegt ist, geben Sie sie in derselben Shell aus:

Variablen in Einstellungsdateien festlegen

Fügen Sie Variablen unter dem Schlüssel env in einer settings.json-Datei hinzu und erstellen Sie die Datei, falls sie nicht vorhanden ist. Claude Code liest sie direkt aus der Datei, sodass sie wirksam werden, unabhängig davon, wie claude gestartet wurde. Eine laufende Sitzung wendet neue und geänderte Werte auf ihre Umgebung an, wenn Sie die Datei speichern. Ein Feature, das seine Variablen einmalig beim Start liest, wie z. B. OpenTelemetry-Überwachung, behält seine Startwerte bei, bis Sie neu starten. Das Entfernen einer Variable aus der Datei hebt sie in einer laufenden Sitzung nicht auf. Die Entfernung wird wirksam, wenn Sie claude das nächste Mal starten.
~/.claude/settings.json
Claude Code übernimmt diese Werte unverändert in seine Umgebung. Keine Shell verarbeitet sie, daher bleiben Kurzschreibweisen wie ~ oder $HOME so, wie sie eingegeben wurden. Geben Sie für eine Variable, die einen Pfad erwartet, wie z. B. CLAUDE_CONFIG_DIR, den absoluten Pfad an: "CLAUDE_CONFIG_DIR": "/home/you/.claude-work". Die Datei, die Sie wählen, bestimmt, für wen die Variablen gelten: Siehe Einstellungsdateien für den Speicherort jeder Datei und Vorrang der Einstellungen für die Kombination, wenn mehr als eine dieselbe Variable festlegt.

Vorrang

Einige Verhaltensweisen haben sowohl eine Umgebungsvariable als auch einen dedizierten Einstellungsschlüssel, und welche Claude Code zuerst liest, unterscheidet sich je nach Schlüssel. Für ANTHROPIC_MODEL und CLAUDE_CODE_AUTO_CONNECT_IDE liest Claude Code zuerst die Variable und verwendet die Einstellung model oder autoConnectIde nur, wenn die Variable nicht gesetzt ist. Für das Paar, das Sie einstellen, überprüfen Sie die Zeile der Variable unten und den Eintrag des Schlüssels in der Einstellungsreferenz. Wenn dieselbe Variable sowohl in Ihrer Shell als auch in einem Einstellungsdatei-env-Block gesetzt ist, gilt der Wert der Einstellungsdatei in den meisten Sitzungen. Claude Code schreibt jeden env-Eintrag in die Prozessumgebung und ersetzt den Wert, der von der Shell geerbt wird. Wie env-Werte mit Ihrer Shell interagieren behandelt die Sitzungen, die stattdessen den geerbten Wert behalten, und die env-Einstellung gibt an, wann sie angewendet werden. Einige Variablen sind Sonderfälle; die env-Einstellung listet die Ausnahmen auf. In einer Einstellungsdatei können Sie eine Variable setzen, aber Sie können sie nicht entfernen. Um eine Variable zu überschreiben, die Sie nicht aufheben können, z. B. eine veraltete CLAUDE_CODE_USE_VERTEX, die von einem Shell-Profil exportiert wird, das Sie nicht kontrollieren, setzen Sie sie im env-Block auf eine leere Zeichenkette: "CLAUDE_CODE_USE_VERTEX": "". Claude Code behandelt den leeren Wert als nicht gesetzt für die Anbieterauswahl. Unterprozesse erben weiterhin den leeren Wert. Zwischen Einstellungsdateien folgen env-Werte dem Einstellungsvorrang, sodass ein verwalteter Einstellungseintrag dieselbe Variable in Benutzer- oder Projekteinstellungen überschreibt. Projekt- und lokale Einstellungen können einige Variablen nicht setzen, z. B. CLAUDE_CONFIG_DIR und die OpenTelemetry-Exporter-Variablen. Variablen, die Claude Code in env ignoriert listet sie auf, zusammen mit den OpenTelemetry-Ausschaltungswerten, die weiterhin gelten. Wie eine Umgebungsvariable mit CLI-Flags und In-Session-Befehlen interagiert, variiert je nach Funktion: --model und /model überschreiben ANTHROPIC_MODEL, während CLAUDE_CODE_EFFORT_LEVEL --effort und /effort überschreibt. Wenn eine Variable mit einer anderen Konfigurationsquelle interagiert, gibt ihre Zeile in der Liste Variablen den Vorrang an oder verlinkt auf die Seite, die ihn dokumentiert. Claude Code liest Shell-Umgebungsvariablen beim Start, sodass Änderungen daran beim nächsten Start von claude wirksam werden. Variablen, die unter dem env-Schlüssel in Einstellungsdateien gesetzt sind, werden erneut auf eine laufende Sitzung angewendet, wenn sich die Datei ändert, mit der nur beim Start geltenden Ausnahme, die in Variablen in Einstellungsdateien setzen beschrieben ist.

Variablen

Numerische Variablen wie Timeouts, Token-Budgets und Anzahlen von Wiederholungsversuchen akzeptieren neben einfachen Ziffern auch wissenschaftliche Notation und Schreibweisen mit Zifferntrennzeichen, sofern in der Zeile einer Variable nicht vermerkt ist, dass sie nur einfache Ziffern annimmt. Beispielsweise liest Claude Code 2e3 als 2000 und 64_000 als 64000. Vor v2.1.211 konnten diese Schreibweisen unbemerkt einen viel kleineren Wert setzen, etwa setzte 1e6 einen Timeout auf 1.
Bei Variablen, die ein Verhalten ein- oder ausschalten, setzen Sie 1, true, yes oder on, um es einzuschalten, und 0, false, no oder off, um es auszuschalten, in beliebiger Groß-/Kleinschreibung.Einige Variablen prüfen nur, ob Sie sie überhaupt gesetzt haben, sodass jeder nicht leere Wert einschließlich 0 das Verhalten einschaltet; Sie schalten das Verhalten aus, indem Sie die Variable entfernen oder auf einen leeren Wert setzen. Diese Variablen funktionieren so:
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • DISABLE_TELEMETRY
  • DISABLE_ERROR_REPORTING
  • CLAUDE_CODE_TMUX_TRUECOLOR
  • IS_DEMO
In der Zeile jeder Variable ist außerdem ihre eigene Regel angegeben.
Die standardmäßigen OpenTelemetry-Exporter-Variablen (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 und signalspezifische Varianten) werden ebenfalls unterstützt. Details zur Konfiguration finden Sie unter Monitoring. Setzen Sie CLAUDE_CODE_ENABLE_TELEMETRY und die OpenTelemetry-Variablen, die den Export einschalten, sein Ziel festlegen oder Inhalte erfassen, in Ihrer Shell, in den Benutzereinstellungen oder in den verwalteten Einstellungen. Claude Code ignoriert sie in Projekt- und lokalen Einstellungen, abgesehen von den in diesem Abschnitt beschriebenen Aus-Werten. OTEL_RESOURCE_ATTRIBUTES sowie die Variablen für Exportintervall, Timeout und Komprimierung, etwa OTEL_METRIC_EXPORT_INTERVAL, gelten weiterhin auch aus Projekt- und lokalen Einstellungen.

Was die Bereinigung der Subprozess-Umgebung entfernt

Wenn Sie CLAUDE_CODE_SUBPROCESS_ENV_SCRUB auf 1 setzen, entfernt Claude Code Anmeldedaten aus den Umgebungen der Subprozesse, die es startet, etwa Bash-Befehle, Hooks und stdio-MCP-Server. Dadurch wird eingeschränkt, was ein Prompt-Injection-Angriff auslesen kann. Der Claude Code-Prozess behält die Anmeldedaten für seine eigenen API-Aufrufe. Die Bereinigung erkennt Anmeldedaten anhand des Variablennamens oder der Form des Werts. Setzen Sie sie daher als eine Schutzebene neben eng gefassten Berechtigungsregeln ein und nicht als einzige Kontrolle. Die Tabelle zeigt, wie die Bereinigung mit Beispielvariablen verfährt: Da die Bereinigung GITHUB_TOKEN belässt, sollten Sie einem GitHub Actions-Job nur die minimal erforderlichen permissions erteilen. Um ein GitHub-Token aus in der Sandbox ausgeführten Bash-Befehlen zu entfernen, fügen Sie unter sandbox.credentials einen deny-Eintrag hinzu. Lassen Sie die Bereinigung deaktiviert, wenn ein Subprozess eine der entfernten Variablen benötigt. Unter Linux führt die Bereinigung Bash-Subprozesse außerdem in einem isolierten PID-Namespace aus, sodass sie die Umgebungen von Host-Prozessen nicht über /proc auslesen können. Als Nebeneffekt können ps, pgrep und kill Host-Prozesse weder sehen noch ihnen Signale senden. Vor v2.1.251 entfernte die Bereinigung ANTHROPIC_API_KEY und AWS_SECRET_ACCESS_KEY und ließ die übrigen Beispielvariablen der Tabelle unverändert.

Funktionen, die das Abrufen von Feature-Flags erfordern

Claude Code aktiviert einige Funktionen über Feature-Flags, die es von Anthropic abruft. In diesen Sitzungen überspringt Claude Code diesen Abruf:
  • Eine Sitzung, in der Sie CLAUDE_CODE_DISABLE_FEATURE_FLAGS, DISABLE_TELEMETRY, DO_NOT_TRACK oder CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC setzen; die Zeile der jeweiligen Variable in der Variablentabelle gibt an, welche Werte das Abrufen ausschalten
  • Eine Sitzung bei einem Drittanbieter wie Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform oder Microsoft Foundry, es sei denn, eine Host-Plattform, die Claude Code einbettet, setzt CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST
  • Eine Sitzung über ein Claude-Apps-Gateway
Bei ausgeschaltetem Abruf können Sie Folgendes nicht:

Erste Sitzung nach einer Installation oder einem Upgrade

In Ihrer ersten Sitzung nach der Installation von Claude Code oder nach einem Upgrade auf eine Version, die eine Funktion hinzufügt, kann eine durch Flags gesteuerte Funktion fehlen. Wenn Claude Code seine Feature-Flags während dieser Sitzung abruft, speichert es sie auf dem Rechner, sodass Ihre nächste Sitzung auf diesem Rechner die Funktion hat. In Konfigurationen wie den folgenden starten auch Sitzungen nach der ersten ohne frisch abgerufene Flags:
  • Eine saubere Umgebung bei jedem Lauf: Wenn jeder Lauf in einem CI-Container oder einer anderen Umgebung ohne die von einer früheren Sitzung gespeicherten Flags startet, ist jeder Lauf eine erste Sitzung
  • Ein Gateway-Token ohne API-Schlüssel: Wenn Sie sich mit ANTHROPIC_AUTH_TOKEN und ohne API-Schlüssel authentifizieren und ANTHROPIC_BASE_URL auf einen anderen Host als den von Anthropic verweist, etwa ein LLM-Gateway, hat Claude Code keine Anmeldedaten, mit denen es die Flags abrufen kann

Siehe auch