SpyBara
Go Premium

Documentation 2026-07-20 23:01 UTC to 2026-07-21 23:00 UTC

7 files changed +271 −227. View all changes and history on the product overview
2026
Thu 23 03:02 Wed 22 23:59 Tue 21 23:00 Mon 20 23:01 Sat 18 16:02 Fri 17 22:57 Thu 16 22:59 Wed 15 22:00 Tue 14 23:01 Mon 13 23:57 Sat 11 19:03 Fri 10 17:00 Thu 9 23:58 Wed 8 16:02 Tue 7 16:02 Mon 6 23:57 Sat 4 03:01 Fri 3 23:00 Thu 2 23:59 Wed 1 21:01
Details

6 6 

7> Registrieren Sie das Gateway bei Ihrem IdP, erstellen Sie den Container, stellen Sie ihn auf Kubernetes oder Cloud Run bereit, und betreiben Sie ihn: Integritätsprüfungen, Geheimnisrotation, Upgrades und Sicherheit.7> Registrieren Sie das Gateway bei Ihrem IdP, erstellen Sie den Container, stellen Sie ihn auf Kubernetes oder Cloud Run bereit, und betreiben Sie ihn: Integritätsprüfungen, Geheimnisrotation, Upgrades und Sicherheit.

8 8 

9Diese Seite behandelt den operativen Aspekt des Betriebs des [Claude-Apps-Gateways](/de/claude-apps-gateway): Registrierung eines OAuth-Clients bei Ihrem Identitätsanbieter (IdP), Bereitstellung des Gateways als Container und täglicher Betrieb. Für jede Option in der Datei `gateway.yaml`, die das Gateway beim Start liest, siehe die [Konfigurationsreferenz](/de/claude-apps-gateway-config).9Diese Seite behandelt den operativen Aspekt des Betriebs des [Claude-Apps-Gateways](/docs/de/claude-apps-gateway): Registrierung eines OAuth-Clients bei Ihrem Identitätsanbieter (IdP), Bereitstellung des Gateways als Container und täglicher Betrieb. Für jede Option in der Datei `gateway.yaml`, die das Gateway beim Start liest, siehe die [Konfigurationsreferenz](/docs/de/claude-apps-gateway-config).

10 10 

11Eine Produktionsbereitstellung folgt vier Schritten in der richtigen Reihenfolge, und die folgenden Abschnitte entsprechen ihnen. Die ersten beiden sind Stellen, an denen Sie Entscheidungen treffen; die zweiten beiden sind Referenzmaterial, das Sie konsultieren können, sobald es läuft.11Eine Produktionsbereitstellung folgt vier Schritten in der richtigen Reihenfolge, und die folgenden Abschnitte entsprechen ihnen. Die ersten beiden sind Stellen, an denen Sie Entscheidungen treffen; die zweiten beiden sind Referenzmaterial, das Sie konsultieren können, sobald es läuft.

12 12 


31 31 

32Jeder OIDC-konforme IdP funktioniert: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate und andere. Der IdP muss drei Anforderungen erfüllen:32Jeder OIDC-konforme IdP funktioniert: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate und andere. Der IdP muss drei Anforderungen erfüllen:

33 33 

34* Stellt `/.well-known/openid-configuration` über HTTPS in der Produktion bereit; das Gateway akzeptiert einen [`http://` Aussteller](/de/claude-apps-gateway-config#oidc), und ein Loopback-Aussteller erfordert zusätzlich `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`34* Stellt `/.well-known/openid-configuration` über HTTPS in der Produktion bereit; das Gateway akzeptiert einen [`http://` Aussteller](/docs/de/claude-apps-gateway-config#oidc), und ein Loopback-Aussteller erfordert zusätzlich `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`

35* Unterstützt den Authorization-Code-Flow. PKCE (Proof Key for Code Exchange) ist standardmäßig aktiviert; deaktivieren Sie es mit `oidc.use_pkce: false` für IdPs, die es nicht unterstützen35* Unterstützt den Authorization-Code-Flow. PKCE (Proof Key for Code Exchange) ist standardmäßig aktiviert; deaktivieren Sie es mit `oidc.use_pkce: false` für IdPs, die es nicht unterstützen

36* Gibt `email` und optional `groups` im id\_token zurück, oder stellt sie vom Userinfo-Endpoint mit `oidc.userinfo_fallback: true` bereit36* Gibt `email` und optional `groups` im id\_token zurück, oder stellt sie vom Userinfo-Endpoint mit `oidc.userinfo_fallback: true` bereit

37 37 


41 41 

42* **Okta**: Der Org-Autorisierungsserver unter `https://example.okta.com` gibt einen dünnen id\_token zurück, der `email` und `groups` auslässt, daher setzen Sie `oidc.userinfo_fallback: true`, wenn Sie ihn als `issuer` verwenden. Ein benutzerdefinierter Autorisierungsserver wie `https://example.okta.com/oauth2/default`, der `email` und optional `groups` im id\_token enthält, gibt sie direkt aus und benötigt keinen Fallback. Okta gibt `groups` nur aus, wenn der `groups`-Scope in `oidc.scopes` angefordert wird und der Gruppen-Claim-Filter der App dies zulässt; `userinfo_fallback` kann einen Claim nicht ausfüllen, nach dem der IdP nicht gefragt wurde.42* **Okta**: Der Org-Autorisierungsserver unter `https://example.okta.com` gibt einen dünnen id\_token zurück, der `email` und `groups` auslässt, daher setzen Sie `oidc.userinfo_fallback: true`, wenn Sie ihn als `issuer` verwenden. Ein benutzerdefinierter Autorisierungsserver wie `https://example.okta.com/oauth2/default`, der `email` und optional `groups` im id\_token enthält, gibt sie direkt aus und benötigt keinen Fallback. Okta gibt `groups` nur aus, wenn der `groups`-Scope in `oidc.scopes` angefordert wird und der Gruppen-Claim-Filter der App dies zulässt; `userinfo_fallback` kann einen Claim nicht ausfüllen, nach dem der IdP nicht gefragt wurde.

43* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. Entra gibt Gruppen-Object-IDs statt Namen aus, daher verwenden Sie die GUIDs in `managed.policies.match.groups`, oder verwenden Sie App-Rollen für lesbare Namen. Wenn Ihr Mandant Rollen unter `roles` statt `groups` ausgibt, setzen Sie `oidc.groups_claim: roles`.43* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. Entra gibt Gruppen-Object-IDs statt Namen aus, daher verwenden Sie die GUIDs in `managed.policies.match.groups`, oder verwenden Sie App-Rollen für lesbare Namen. Wenn Ihr Mandant Rollen unter `roles` statt `groups` ausgibt, setzen Sie `oidc.groups_claim: roles`.

44* **Google Workspace**: `issuer` = `https://accounts.google.com`. Googles id\_token enthält keine Gruppen. Um gruppenbasierte `allowed_groups` oder `managed.policies` mit Google als IdP zu verwenden, konfigurieren Sie [`oidc.google_groups`](/de/claude-apps-gateway-config#oidc), das die Gruppen jedes Benutzers über die Admin SDK Directory API mit einem Service-Account mit Domain-Wide-Delegation nachschlägt. Ohne dies verwenden Sie `oidc.allowed_email_domains` für Mitgliedschafts-Gating und `managed.policies.match.email_domain` für Richtlinienzuweisung. Google ignoriert auch den Standard-Scope `offline_access`. Für Refresh-Tokens setzen Sie `oidc.scopes: [openid, profile, email]` und `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.44* **Google Workspace**: `issuer` = `https://accounts.google.com`. Googles id\_token enthält keine Gruppen. Um gruppenbasierte `allowed_groups` oder `managed.policies` mit Google als IdP zu verwenden, konfigurieren Sie [`oidc.google_groups`](/docs/de/claude-apps-gateway-config#oidc), das die Gruppen jedes Benutzers über die Admin SDK Directory API mit einem Service-Account mit Domain-Wide-Delegation nachschlägt. Ohne dies verwenden Sie `oidc.allowed_email_domains` für Mitgliedschafts-Gating und `managed.policies.match.email_domain` für Richtlinienzuweisung. Google ignoriert auch den Standard-Scope `offline_access`. Für Refresh-Tokens setzen Sie `oidc.scopes: [openid, profile, email]` und `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.

45 45 

46Für Unterstützung bei einem oben nicht behandelten Identitätsanbieter siehe [Troubleshooting](#troubleshooting).46Für Unterstützung bei einem oben nicht behandelten Identitätsanbieter siehe [Troubleshooting](#troubleshooting).

47 47 

48<Warning>48<Warning>

49 Refresh-Tokens ermöglichen es dem Gateway, die Sitzung eines Entwicklers stillschweigend zu erneuern, ohne den Entwickler zum Browser zu senden. Sie treiben auch die Deprovisioning an, denn wenn der IdP einen Benutzer deaktiviert, schlägt die nächste Aktualisierung fehl und die Sitzung endet innerhalb von `ttl_hours`. Das Gateway fordert standardmäßig `offline_access` an, um einen Refresh-Token zu erhalten. Wenn Ihr IdP explizite Zustimmung für Offline-Zugriff erfordert, konfigurieren Sie den OAuth-Client, um dies zu ermöglichen.49 Refresh-Tokens ermöglichen es dem Gateway, die Sitzung eines Entwicklers stillschweigend zu erneuern, ohne den Entwickler zum Browser zu senden. Sie treiben auch die Deprovisioning an, denn wenn der IdP einen Benutzer deaktiviert, schlägt die nächste Aktualisierung fehl und die Sitzung endet innerhalb von `ttl_hours`. Das Gateway fordert standardmäßig `offline_access` an, um einen Refresh-Token zu erhalten. Wenn Ihr IdP explizite Zustimmung für Offline-Zugriff erfordert, konfigurieren Sie den OAuth-Client, um dies zu ermöglichen.

50 50 

51 Wenn Ihr IdP überhaupt keine Refresh-Tokens ausstellen kann, funktioniert das Gateway immer noch, aber es gibt keine stille Erneuerung, daher führen Entwickler die Browser-Anmeldung erneut aus, wenn ihre Sitzung abläuft. Um zu verhindern, dass dies jede Stunde geschieht, erhöhen Sie [`session.ttl_hours`](/de/claude-apps-gateway-config#session) auf `8` oder `12`. Der Kompromiss ist die Deprovisioning-Latenz, denn ohne Refresh-Tokens behält ein deaktivierter Benutzer Zugriff, bis die längere TTL abläuft.51 Wenn Ihr IdP überhaupt keine Refresh-Tokens ausstellen kann, funktioniert das Gateway immer noch, aber es gibt keine stille Erneuerung, daher führen Entwickler die Browser-Anmeldung erneut aus, wenn ihre Sitzung abläuft. Um zu verhindern, dass dies jede Stunde geschieht, erhöhen Sie [`session.ttl_hours`](/docs/de/claude-apps-gateway-config#session) auf `8` oder `12`. Der Kompromiss ist die Deprovisioning-Latenz, denn ohne Refresh-Tokens behält ein deaktivierter Benutzer Zugriff, bis die längere TTL abläuft.

52</Warning>52</Warning>

53 53 

54<h2 id="deployment">54<h2 id="deployment">


62Einige Entscheidungen prägen die Bereitstellung über den Ort hinaus, an dem sie läuft:62Einige Entscheidungen prägen die Bereitstellung über den Ort hinaus, an dem sie läuft:

63 63 

64* **Kosten**: Es gibt keine separate Lizenz oder Pro-Sitz-Gebühr für das Gateway; es ist Teil der `claude`-Binärdatei. Sie zahlen für Inferenz über Ihr bestehendes Cloud- oder Anthropic-Engagement, plus die Berechnung für den Container und Ihren Telemetrie-Collector.64* **Kosten**: Es gibt keine separate Lizenz oder Pro-Sitz-Gebühr für das Gateway; es ist Teil der `claude`-Binärdatei. Sie zahlen für Inferenz über Ihr bestehendes Cloud- oder Anthropic-Engagement, plus die Berechnung für den Container und Ihren Telemetrie-Collector.

65* **Bypass**: Das Gateway erzwingt nicht, dass die einzige Route zu einem Modell durch es führt. Ein Entwickler mit seinen eigenen Anmeldedaten kann den Anbieter immer noch direkt aufrufen, daher ist das Schließen dieses Pfads eine Netzwerkrichtlinien-Entscheidung, z. B. das Blockieren von Egress zu `api.anthropic.com` außer vom Gateway. Das Blockieren dieses Egress bricht auch die [WebFetch-Domain-Sicherheitsprüfung](/de/data-usage#webfetch-domain-safety-check), die `api.anthropic.com` von jeder Entwicklermaschine aufruft; setzen Sie `skipWebFetchPreflight: true` in der verwalteten Richtlinie, um sie zu deaktivieren.65* **Bypass**: Das Gateway erzwingt nicht, dass die einzige Route zu einem Modell durch es führt. Ein Entwickler mit seinen eigenen Anmeldedaten kann den Anbieter immer noch direkt aufrufen, daher ist das Schließen dieses Pfads eine Netzwerkrichtlinien-Entscheidung, z. B. das Blockieren von Egress zu `api.anthropic.com` außer vom Gateway. Das Blockieren dieses Egress bricht auch die [WebFetch-Domain-Sicherheitsprüfung](/docs/de/data-usage#webfetch-domain-safety-check), die `api.anthropic.com` von jeder Entwicklermaschine aufruft; setzen Sie `skipWebFetchPreflight: true` in der verwalteten Richtlinie, um sie zu deaktivieren.

66* **Mehrere Gateways**: Jedes Gateway ist eine separate Bereitstellung mit seiner eigenen Konfiguration. Die CLI speichert ihren Vertrauens-Fingerprint und ihre Anmeldedaten pro Gateway-Hostname, daher können verschiedene Teams sich mit verschiedenen Gateways verbinden, ohne Konflikte. Um mehrere OIDC-Aussteller zu bedienen, führen Sie separate Instanzen aus.66* **Mehrere Gateways**: Jedes Gateway ist eine separate Bereitstellung mit seiner eigenen Konfiguration. Die CLI speichert ihren Vertrauens-Fingerprint und ihre Anmeldedaten pro Gateway-Hostname, daher können verschiedene Teams sich mit verschiedenen Gateways verbinden, ohne Konflikte. Um mehrere OIDC-Aussteller zu bedienen, führen Sie separate Instanzen aus.

67* **Serverless**: Cloud Run funktioniert; setzen Sie `min-instances: 1`, um kalte OIDC-Erkennung zu vermeiden. Lambda und Cloud Functions funktionieren nicht, da das Gateway ein langlebiger HTTP-Server ist.67* **Serverless**: Cloud Run funktioniert; setzen Sie `min-instances: 1`, um kalte OIDC-Erkennung zu vermeiden. Lambda und Cloud Functions funktionieren nicht, da das Gateway ein langlebiger HTTP-Server ist.

68 68 

69Jede Produktionstopologie hier platziert einen L7-Proxy, wie einen Ingress, Cloud Runs Front-End oder einen ALB, vor einfachen HTTP-Replikationen. Setzen Sie [`listen.trusted_proxies`](/de/claude-apps-gateway-config#listen) auf die Quellbereiche des Proxys, damit das Gateway Client-IPs aus `X-Forwarded-For` liest. Das Gateway ehrt den Header nur, wenn der TCP-Peer vertrauenswürdig ist; das [Google Cloud-Beispiel](/de/claude-apps-gateway-on-gcp) hat konkrete Werte pro Topologie. Ohne vertrauenswürdige Proxys scheint jede Anfrage von der IP des Proxys zu kommen, was Pro-IP-Ratenlimits in einen gemeinsamen Bucket zusammenfasst und die IP des Proxys in Audit-Events aufzeichnet.69Jede Produktionstopologie hier platziert einen L7-Proxy, wie einen Ingress, Cloud Runs Front-End oder einen ALB, vor einfachen HTTP-Replikationen. Setzen Sie [`listen.trusted_proxies`](/docs/de/claude-apps-gateway-config#listen) auf die Quellbereiche des Proxys, damit das Gateway Client-IPs aus `X-Forwarded-For` liest. Das Gateway ehrt den Header nur, wenn der TCP-Peer vertrauenswürdig ist; das [Google Cloud-Beispiel](/docs/de/claude-apps-gateway-on-gcp) hat konkrete Werte pro Topologie. Ohne vertrauenswürdige Proxys scheint jede Anfrage von der IP des Proxys zu kommen, was Pro-IP-Ratenlimits in einen gemeinsamen Bucket zusammenfasst und die IP des Proxys in Audit-Events aufzeichnet.

70 70 

71<h3 id="container-image">71<h3 id="container-image">

72 Container-Image72 Container-Image


74 74 

75Erstellen Sie Ihr eigenes Image um die native `claude`-Binärdatei aus der Standard-Claude-Code-Version:75Erstellen Sie Ihr eigenes Image um die native `claude`-Binärdatei aus der Standard-Claude-Code-Version:

76 76 

771. Laden Sie den Linux-Build für Ihre Image-Architektur aus einer gepinnten Version herunter; siehe [Installieren Sie eine bestimmte Version](/de/setup#install-a-specific-version) für die Download-URL.771. Laden Sie den Linux-Build für Ihre Image-Architektur aus einer gepinnten Version herunter; siehe [Installieren Sie eine bestimmte Version](/docs/de/setup#install-a-specific-version) für die Download-URL.

782. Überprüfen Sie es gegen die GPG-signierte `manifest.json` der Version, wie in [Binäre Integrität und Code-Signierung](/de/setup#binary-integrity-and-code-signing) beschrieben.782. Überprüfen Sie es gegen die GPG-signierte `manifest.json` der Version, wie in [Binäre Integrität und Code-Signierung](/docs/de/setup#binary-integrity-and-code-signing) beschrieben.

793. Kopieren Sie es in den Build-Kontext.793. Kopieren Sie es in den Build-Kontext.

80 80 

81Spiegeln Sie die Version in Ihre interne Registry, wenn Ihre Builds den Release-Host nicht erreichen können, und pinnen Sie die Version, die Ihre Flotte ausführt.81Spiegeln Sie die Version in Ihre interne Registry, wenn Ihre Builds den Release-Host nicht erreichen können, und pinnen Sie die Version, die Ihre Flotte ausführt.

82 82 

83Über die Binärdatei hinaus benötigt das Image:83Über die Binärdatei hinaus benötigt das Image:

84 84 

85* **Ein glibc-basiertes Image**: Die einzigen dynamischen Abhängigkeiten des glibc-Builds sind glibc-Bibliotheken. Musl-basierte Images benötigen den `linux-x64-musl`- oder `linux-arm64-musl`-Build plus zusätzliche Pakete; siehe [Alpine-Linux-Setup](/de/setup#alpine-linux-and-musl-based-distributions).85* **Ein glibc-basiertes Image**: Die einzigen dynamischen Abhängigkeiten des glibc-Builds sind glibc-Bibliotheken. Musl-basierte Images benötigen den `linux-x64-musl`- oder `linux-arm64-musl`-Build plus zusätzliche Pakete; siehe [Alpine-Linux-Setup](/docs/de/setup#alpine-linux-and-musl-based-distributions).

86* **Ein beschreibbares Zustandsverzeichnis**: Das Gateway läuft als jeder Benutzer, aber minimale Images haben kein beschreibbares Home. Setzen Sie `CLAUDE_CONFIG_DIR` auf einen beschreibbaren Pfad wie `/tmp/.claude`.86* **Ein beschreibbares Zustandsverzeichnis**: Das Gateway läuft als jeder Benutzer, aber minimale Images haben kein beschreibbares Home. Setzen Sie `CLAUDE_CONFIG_DIR` auf einen beschreibbaren Pfad wie `/tmp/.claude`.

87* **Der Container-Befehl**: `claude gateway --config /etc/claude/gateway.yaml`, mit der Konfigurationsdatei schreibgeschützt eingebunden und Geheimnissen als Umgebungsvariablen bereitgestellt; das Gateway lauscht auf `listen.port`, Standard `8080`.87* **Der Container-Befehl**: `claude gateway --config /etc/claude/gateway.yaml`, mit der Konfigurationsdatei schreibgeschützt eingebunden und Geheimnissen als Umgebungsvariablen bereitgestellt; das Gateway lauscht auf `listen.port`, Standard `8080`.

88 88 


99<Note>99<Note>

100 **Workload-Identität**100 **Workload-Identität**

101 101 

102 Bevorzugen Sie die Workload-Identität der Plattform gegenüber statischen Schlüsseln: IRSA auf EKS für Bedrock und für Claude Platform auf AWS, Workload Identity auf GKE für Agent Platform und Workload Identity auf AKS für Foundry. Setzen Sie `auth: {}` im Upstream-Block oder `use_azure_ad: true` für Foundry, und das Gateway nimmt die Identität des Pods durch die Standard-Credential-Chain dieses Anbieters auf. Für eine Cloud-übergreifende Kopplung, wie z. B. einen Bedrock-Upstream auf GKE, setzen Sie explizite Anmeldedaten im `auth`-Block des Upstream statt. Die [`upstreams`-Referenz](/de/claude-apps-gateway-config#upstreams) hat Setup-Details pro Plattform.102 Bevorzugen Sie die Workload-Identität der Plattform gegenüber statischen Schlüsseln: IRSA auf EKS für Bedrock und für Claude Platform auf AWS, Workload Identity auf GKE für Agent Platform und Workload Identity auf AKS für Foundry. Setzen Sie `auth: {}` im Upstream-Block oder `use_azure_ad: true` für Foundry, und das Gateway nimmt die Identität des Pods durch die Standard-Credential-Chain dieses Anbieters auf. Für eine Cloud-übergreifende Kopplung, wie z. B. einen Bedrock-Upstream auf GKE, setzen Sie explizite Anmeldedaten im `auth`-Block des Upstream statt. Die [`upstreams`-Referenz](/docs/de/claude-apps-gateway-config#upstreams) hat Setup-Details pro Plattform.

103</Note>103</Note>

104 104 

105<h3 id="cloud-run">105<h3 id="cloud-run">


109Konfigurieren Sie den Dienst wie folgt:109Konfigurieren Sie den Dienst wie folgt:

110 110 

111* Lassen Sie `listen.port` bei seinem Standard von `8080`, das Cloud Runs Standard-`PORT` entspricht, oder setzen Sie `port: ${PORT}`111* Lassen Sie `listen.port` bei seinem Standard von `8080`, das Cloud Runs Standard-`PORT` entspricht, oder setzen Sie `port: ${PORT}`

112* Setzen Sie `public_url` auf den extern erreichbaren Ursprung. Für die Produktion ist dies normalerweise der Hostname eines internen Load Balancers, da `/login` [öffentliche Adressen ablehnt](/de/claude-apps-gateway#prerequisites) und die `*.run.app`-URL zu einer aufgelöst wird, daher funktioniert die Cloud-Run-URL allein nur für einen `curl`- oder Browser-Smoke-Test. Die Ausnahme ist ein Netzwerk, in dem `*.run.app` privat über Private Service Connect und eine Cloud-DNS-Private-Zone aufgelöst wird; in dieser Topologie ist die Cloud-Run-URL eine gültige `public_url`. Das [Google-Cloud-Beispiel](/de/claude-apps-gateway-on-gcp#deploy-the-gateway) behandelt beide.112* Setzen Sie `public_url` auf den extern erreichbaren Ursprung. Für die Produktion ist dies normalerweise der Hostname eines internen Load Balancers, da `/login` [öffentliche Adressen ablehnt](/docs/de/claude-apps-gateway#prerequisites) und die `*.run.app`-URL zu einer aufgelöst wird, daher funktioniert die Cloud-Run-URL allein nur für einen `curl`- oder Browser-Smoke-Test. Die Ausnahme ist ein Netzwerk, in dem `*.run.app` privat über Private Service Connect und eine Cloud-DNS-Private-Zone aufgelöst wird; in dieser Topologie ist die Cloud-Run-URL eine gültige `public_url`. Das [Google-Cloud-Beispiel](/docs/de/claude-apps-gateway-on-gcp#deploy-the-gateway) behandelt beide.

113* Binden Sie die Konfiguration als Secret-Volume ein113* Binden Sie die Konfiguration als Secret-Volume ein

114* Setzen Sie `min-instances: 1`, um kalte OIDC-Erkennung bei der ersten Anfrage zu vermeiden114* Setzen Sie `min-instances: 1`, um kalte OIDC-Erkennung bei der ersten Anfrage zu vermeiden

115 115 

116<Note>116<Note>

117 Für ein vollständiges Beispiel auf Google Cloud, das Cloud Run oder GKE, Cloud SQL und Secret Manager abdeckt, siehe [Bereitstellung auf Google Cloud](/de/claude-apps-gateway-on-gcp).117 Für ein vollständiges Beispiel auf Google Cloud, das Cloud Run oder GKE, Cloud SQL und Secret Manager abdeckt, siehe [Bereitstellung auf Google Cloud](/docs/de/claude-apps-gateway-on-gcp).

118</Note>118</Note>

119 119 

120<h3 id="push-the-gateway-url-to-developer-machines">120<h3 id="push-the-gateway-url-to-developer-machines">

121 Pushen Sie die Gateway-URL zu Entwicklermaschinen121 Pushen Sie die Gateway-URL zu Entwicklermaschinen

122</h3>122</h3>

123 123 

124Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod` und `forceLoginGatewayUrl` über verwaltete Einstellungen auf jede Entwicklermaschine, über MDM oder durch direktes Schreiben der pro-OS `managed-settings.json`. Ohne dies zeigt `/login` den Standard-Account-Picker ohne Gateway-Option. Siehe [Client-seitige verwaltete Einstellungen](/de/claude-apps-gateway-config#client-side-managed-settings) für die Dateipfade.124Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod` und `forceLoginGatewayUrl` über verwaltete Einstellungen auf jede Entwicklermaschine, über MDM oder durch direktes Schreiben der pro-OS `managed-settings.json`. Ohne dies zeigt `/login` den Standard-Account-Picker ohne Gateway-Option. Siehe [Client-seitige verwaltete Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) für die Dateipfade.

125 125 

126<h2 id="operations">126<h2 id="operations">

127 Betrieb127 Betrieb


160 160 

161* **Bestehende Sitzungen**: Bearer-Tokens validieren lokal mit dem JWT-Geheimnis, Sitzungs-Refreshes berühren den Store nicht, und der Gateway-Prozess kann immer noch Inferenz bedienen161* **Bestehende Sitzungen**: Bearer-Tokens validieren lokal mit dem JWT-Geheimnis, Sitzungs-Refreshes berühren den Store nicht, und der Gateway-Prozess kann immer noch Inferenz bedienen

162* **Neue Anmeldungen**: schlagen fehl, bis Postgres wiederhergestellt ist, da der Device-Flow und seine Rate-Limit-Zähler in Postgres leben162* **Neue Anmeldungen**: schlagen fehl, bis Postgres wiederhergestellt ist, da der Device-Flow und seine Rate-Limit-Zähler in Postgres leben

163* **[Spend-Limit-Durchsetzung](/de/claude-apps-gateway-spend-limits#postgres-availability)**: schlägt während des Ausfalls offen fehl, daher fließt Inferenz weiterhin; schalten Sie es auf Fail-Closed um, wenn Sie lieber blockieren als ungemessen laufen möchten163* **[Spend-Limit-Durchsetzung](/docs/de/claude-apps-gateway-spend-limits#postgres-availability)**: schlägt während des Ausfalls offen fehl, daher fließt Inferenz weiterhin; schalten Sie es auf Fail-Closed um, wenn Sie lieber blockieren als ungemessen laufen möchten

164* **Readiness**: `/readyz` meldet während des Ausfalls nicht bereit, daher entfernen Orchestratoren, die Verkehr auf Readiness gating, jede Replikation auf einmal aus der Rotation. In dieser Topologie schlägt der gesamte Verkehr, einschließlich Inferenz, die das Gateway immer noch bedienen könnte, beim Load Balancer fehl, bis Postgres wiederhergestellt ist. Die Liveness-Probe auf `/healthz` bleibt bestehen, daher werden Replikationen nicht neu gestartet. Zeigen Sie die Readiness-Probe statt auf `/healthz`, wenn Sie lieber möchten, dass angemeldete Entwickler durch einen Store-Ausfall weiterarbeiten; die Kosten sind, dass neue Anmeldungen gegen eine Replikation fehlschlagen, die immer noch bereit meldet.164* **Readiness**: `/readyz` meldet während des Ausfalls nicht bereit, daher entfernen Orchestratoren, die Verkehr auf Readiness gating, jede Replikation auf einmal aus der Rotation. In dieser Topologie schlägt der gesamte Verkehr, einschließlich Inferenz, die das Gateway immer noch bedienen könnte, beim Load Balancer fehl, bis Postgres wiederhergestellt ist. Die Liveness-Probe auf `/healthz` bleibt bestehen, daher werden Replikationen nicht neu gestartet. Zeigen Sie die Readiness-Probe statt auf `/healthz`, wenn Sie lieber möchten, dass angemeldete Entwickler durch einen Store-Ausfall weiterarbeiten; die Kosten sind, dass neue Anmeldungen gegen eine Replikation fehlschlagen, die immer noch bereit meldet.

165 165 

166Wenn Ihr IdP ausfällt, funktionieren bestehende Sitzungen bis `ttl_hours`, und neue Anmeldungen und Refreshes schlagen fehl. Setzen Sie eine längere `ttl_hours`, wenn Ihr IdP häufige Wartungsfenster hat.166Wenn Ihr IdP ausfällt, funktionieren bestehende Sitzungen bis `ttl_hours`, und neue Anmeldungen und Refreshes schlagen fehl. Setzen Sie eine längere `ttl_hours`, wenn Ihr IdP häufige Wartungsfenster hat.


191| `admin_audit` | Admin-API-Mutations-Trail | `admin.audit_retention_days`, Standard 365 |191| `admin_audit` | Admin-API-Mutations-Trail | `admin.audit_retention_days`, Standard 365 |

192| `principal_emails` | E-Mail, Anzeigename und IdP-Gruppen jedes Principal. Enthält PII. | `admin.identity_retention_days` seit letzter Aktivität, Standard 90 |192| `principal_emails` | E-Mail, Anzeigename und IdP-Gruppen jedes Principal. Enthält PII. | `admin.identity_retention_days` seit letzter Aktivität, Standard 90 |

193 193 

194Eine 30-Sekunden-Schleife läuft `kv`-Zeilen ab ihrer TTL ab, und ein stündlicher Sweep erzwingt die Aufbewahrungsfenster auf den Spend-Tabellen, daher wächst nichts ohne Grenzen. Ohne [Spend-Limits](/de/claude-apps-gateway-spend-limits) konfiguriert, wird nur `kv` geschrieben. Wenn Ihre Sicherheitsrichtlinie DDL von der Anwendungsrolle verbietet, erstellen Sie diese Tabellen und `_migrations` vorab mit einer Admin-Rolle und gewähren Sie der App-Rolle `SELECT, INSERT, UPDATE, DELETE` auf jeder.194Eine 30-Sekunden-Schleife läuft `kv`-Zeilen ab ihrer TTL ab, und ein stündlicher Sweep erzwingt die Aufbewahrungsfenster auf den Spend-Tabellen, daher wächst nichts ohne Grenzen. Ohne [Spend-Limits](/docs/de/claude-apps-gateway-spend-limits) konfiguriert, wird nur `kv` geschrieben. Wenn Ihre Sicherheitsrichtlinie DDL von der Anwendungsrolle verbietet, erstellen Sie diese Tabellen und `_migrations` vorab mit einer Admin-Rolle und gewähren Sie der App-Rolle `SELECT, INSERT, UPDATE, DELETE` auf jeder.

195 195 

196Mit Spend-Limits in Verwendung bedeutet eine verlorene Datenbank verlorene Spend-Verfolgung und Caps, nicht nur Entwickler-Neu-Anmeldungen, daher führen Sie regelmäßige Backups durch. Um einen abgegangenen Entwickler sofort zu löschen, statt auf Aufbewahrung zu warten, führen Sie `DELETE FROM principal_emails WHERE principal = '<sub>'` direkt aus; das entfernt die einzige Tabelle, die ihre E-Mail, ihren Namen und ihre Gruppen hält. `spend`- und `admin_audit`-Zeilen referenzieren nur das pseudonyme OIDC-`sub`.196Mit Spend-Limits in Verwendung bedeutet eine verlorene Datenbank verlorene Spend-Verfolgung und Caps, nicht nur Entwickler-Neu-Anmeldungen, daher führen Sie regelmäßige Backups durch. Um einen abgegangenen Entwickler sofort zu löschen, statt auf Aufbewahrung zu warten, führen Sie `DELETE FROM principal_emails WHERE principal = '<sub>'` direkt aus; das entfernt die einzige Tabelle, die ihre E-Mail, ihren Namen und ihre Gruppen hält. `spend`- und `admin_audit`-Zeilen referenzieren nur das pseudonyme OIDC-`sub`.

197 197 


218| Daten | Pfad | Vom Gateway an Anthropic gesendet |218| Daten | Pfad | Vom Gateway an Anthropic gesendet |

219| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------- |219| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------- |

220| Inferenz (Prompts, Completions) | CLI → Gateway → Ihr Upstream | Nur wenn die Anthropic-API ein konfigurierter Upstream ist |220| Inferenz (Prompts, Completions) | CLI → Gateway → Ihr Upstream | Nur wenn die Anthropic-API ein konfigurierter Upstream ist |

221| Telemetrie (OTLP-Metriken, plus [Opt-in-Protokolle und Traces](/de/claude-apps-gateway-config#telemetry)) | CLI → Gateway → Ihr Collector | Nie |221| Telemetrie (OTLP-Metriken, plus [Opt-in-Protokolle und Traces](/docs/de/claude-apps-gateway-config#telemetry)) | CLI → Gateway → Ihr Collector | Nie |

222| Identität (E-Mail, Gruppen, Sub) | IdP → Gateway → JWT → CLI; die CLI stempelt sie auf OTLP-Exporte | Nie |222| Identität (E-Mail, Gruppen, Sub) | IdP → Gateway → JWT → CLI; die CLI stempelt sie auf OTLP-Exporte | Nie |

223| Verwaltete Einstellungen | Ihre Gateway-YAML → CLI | Nie |223| Verwaltete Einstellungen | Ihre Gateway-YAML → CLI | Nie |

224| Audit-Protokoll | Gateway-Stderr → Ihr Aggregator | Nie |224| Audit-Protokoll | Gateway-Stderr → Ihr Aggregator | Nie |


237 237 

238Zwei Bedrohungen sind außerhalb des Geltungsbereichs, da sie Ihre Infrastruktur sind, um zu sichern:238Zwei Bedrohungen sind außerhalb des Geltungsbereichs, da sie Ihre Infrastruktur sind, um zu sichern:

239 239 

240* **Ein kompromittierter Gateway-Host**: Der Host hält sowohl die Upstream-Anmeldedaten als auch verteilt [verwaltete Einstellungen](/de/claude-apps-gateway-config#managed) an jeden verbundenen Entwickler, daher ist die Kontrolle über die Gateway-Konfiguration vergleichbar mit der Kontrolle über Ihr MDM. Der Einmal-Genehmigungsdialog der CLI für Shell-fähige Einstellungen begrenzt stille Änderungen, ersetzt aber nicht die Host-Sicherheit.240* **Ein kompromittierter Gateway-Host**: Der Host hält sowohl die Upstream-Anmeldedaten als auch verteilt [verwaltete Einstellungen](/docs/de/claude-apps-gateway-config#managed) an jeden verbundenen Entwickler, daher ist die Kontrolle über die Gateway-Konfiguration vergleichbar mit der Kontrolle über Ihr MDM. Der Einmal-Genehmigungsdialog der CLI für Shell-fähige Einstellungen begrenzt stille Änderungen, ersetzt aber nicht die Host-Sicherheit.

241* **Ein böswilliger OIDC-Anbieter**: Der Anbieter signiert die id\_tokens, denen das Gateway vertraut, daher kann er jede Identität behaupten. Das Überprüfen und Sichern Ihres IdP ist Ihre Verantwortung.241* **Ein böswilliger OIDC-Anbieter**: Der Anbieter signiert die id\_tokens, denen das Gateway vertraut, daher kann er jede Identität behaupten. Das Überprüfen und Sichern Ihres IdP ist Ihre Verantwortung.

242 242 

243<h3 id="user-code-brute-force-resistance">243<h3 id="user-code-brute-force-resistance">


246 246 

247Der `user_code`, den ein Entwickler auf der `/device`-Verifikationsseite eingibt, sind 8 Zeichen aus einem 20-Zeichen-Alphabet, was 20⁸ oder etwa 2,56×10¹⁰ Kombinationen ergibt, und er läuft nach 10 Minuten ab.247Der `user_code`, den ein Entwickler auf der `/device`-Verifikationsseite eingibt, sind 8 Zeichen aus einem 20-Zeichen-Alphabet, was 20⁸ oder etwa 2,56×10¹⁰ Kombinationen ergibt, und er läuft nach 10 Minuten ab.

248 248 

249Das Gateway wendet Pro-IP-Rate-Limits auf die Device-Grant-Endpoints an, konfigurierbar über [`rate_limits`](/de/claude-apps-gateway-config#http-tuning). Erhöhen Sie die Limits, wenn sich viele Entwickler von einer einzelnen gemeinsamen Unternehmens-NAT-Adresse anmelden. Die Limits gelten nur für den Anmeldungs-Flow, nicht für Inferenz.249Das Gateway wendet Pro-IP-Rate-Limits auf die Device-Grant-Endpoints an, konfigurierbar über [`rate_limits`](/docs/de/claude-apps-gateway-config#http-tuning). Erhöhen Sie die Limits, wenn sich viele Entwickler von einer einzelnen gemeinsamen Unternehmens-NAT-Adresse anmelden. Die Limits gelten nur für den Anmeldungs-Flow, nicht für Inferenz.

250 250 

251<h3 id="compliance-posture">251<h3 id="compliance-posture">

252 Compliance-Haltung252 Compliance-Haltung


255* **Datenresidenz**: Die Datenebene des Gateways selbst sendet nichts an Anthropic, es sei denn, die Anthropic-API ist ein konfigurierter Upstream; wenn sie es ist, gilt Ihre bestehende Datenbehandlungsvereinbarung für den Inferenz-Pfad. Telemetrie, Audit, Identität und Einstellungen gehen nur an die Ziele, die Sie konfigurieren.255* **Datenresidenz**: Die Datenebene des Gateways selbst sendet nichts an Anthropic, es sei denn, die Anthropic-API ist ein konfigurierter Upstream; wenn sie es ist, gilt Ihre bestehende Datenbehandlungsvereinbarung für den Inferenz-Pfad. Telemetrie, Audit, Identität und Einstellungen gehen nur an die Ziele, die Sie konfigurieren.

256* **Host-Prozess-Verkehr**: Der Host-Prozess ist die Claude Code CLI, die Startup-Analytik und Update-Prüfungen an Anthropic senden kann. Für Strict-Egress-Bereitstellungen setzen Sie `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` in der Gateway-Container-Umgebung.256* **Host-Prozess-Verkehr**: Der Host-Prozess ist die Claude Code CLI, die Startup-Analytik und Update-Prüfungen an Anthropic senden kann. Für Strict-Egress-Bereitstellungen setzen Sie `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` in der Gateway-Container-Umgebung.

257* **Client-Analytik**: Die CLI deaktiviert ihre eigene Nutzungsanalytik, während sie bei einem Gateway angemeldet ist, und die Fehlerberichterstattung ist standardmäßig auf Third-Party-API-Oberflächen deaktiviert.257* **Client-Analytik**: Die CLI deaktiviert ihre eigene Nutzungsanalytik, während sie bei einem Gateway angemeldet ist, und die Fehlerberichterstattung ist standardmäßig auf Third-Party-API-Oberflächen deaktiviert.

258* **Client-Maschinen**: Entwickler-CLIs senden immer noch WebFetch-Hostname-Prüfungen und Versions-Prüfungen an Anthropic, es sei denn, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` und `skipWebFetchPreflight: true` sind gesetzt. Siehe [Datennutzung](/de/data-usage).258* **Client-Maschinen**: Entwickler-CLIs senden immer noch WebFetch-Hostname-Prüfungen und Versions-Prüfungen an Anthropic, es sei denn, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` und `skipWebFetchPreflight: true` sind gesetzt. Siehe [Datennutzung](/docs/de/data-usage).

259* **Umfrage-Bewertungen**: Die Gateway-Anmeldedaten deaktivieren die Anthropic-gebundene Bewertungs-Senke, daher werden Bewertungen nicht an Anthropic gesendet.259* **Umfrage-Bewertungen**: Die Gateway-Anmeldedaten deaktivieren die Anthropic-gebundene Bewertungs-Senke, daher werden Bewertungen nicht an Anthropic gesendet.

260* **Transkript-Freigabe**: Das Wählen von Ja auf einer Umfrage-Transkript-Freigabe-Aufforderung schreibt eine lokale Datei unter `~/.claude/feedback-bundles/` statt zu Anthropic hochzuladen.260* **Transkript-Freigabe**: Das Wählen von Ja auf einer Umfrage-Transkript-Freigabe-Aufforderung schreibt eine lokale Datei unter `~/.claude/feedback-bundles/` statt zu Anthropic hochzuladen.

261* **Client-Updates**: Update-Prüfungen sind getrennt vom Gateway-Verkehr. Pinnen Sie Versionen durch Ihre eigene Verteilung und setzen Sie `DISABLE_UPDATES`, wenn Laptops keine Releases abrufen dürfen. `DISABLE_AUTOUPDATER` stoppt nur Hintergrund-Updates, während `claude update` immer noch funktioniert.261* **Client-Updates**: Update-Prüfungen sind getrennt vom Gateway-Verkehr. Pinnen Sie Versionen durch Ihre eigene Verteilung und setzen Sie `DISABLE_UPDATES`, wenn Laptops keine Releases abrufen dürfen. `DISABLE_AUTOUPDATER` stoppt nur Hintergrund-Updates, während `claude update` immer noch funktioniert.

262* **TLS**: Bedienen Sie `public_url` über HTTPS in der Produktion, entweder vom Gateway-eigenen Listener über `listen.tls` oder von einem TLS-terminierenden Ingress vor einfachen HTTP-Replikationen mit `listen.public_url` gesetzt. Das Gateway weigert sich nicht, einfaches HTTP. Der IdP muss HTTPS in der Produktion bedienen, und Postgres unterstützt `?sslmode=require`. Setzen Sie `Strict-Transport-Security` bei Ihrem Ingress.262* **TLS**: Bedienen Sie `public_url` über HTTPS in der Produktion, entweder vom Gateway-eigenen Listener über `listen.tls` oder von einem TLS-terminierenden Ingress vor einfachen HTTP-Replikationen mit `listen.public_url` gesetzt. Das Gateway weigert sich nicht, einfaches HTTP. Der IdP muss HTTPS in der Produktion bedienen, und Postgres unterstützt `?sslmode=require`. Setzen Sie `Strict-Transport-Security` bei Ihrem Ingress.

263* **Vulnerability-Offenlegung**: Folgen Sie [Sicherheitsprobleme melden](/de/security#reporting-security-issues)263* **Vulnerability-Offenlegung**: Folgen Sie [Sicherheitsprobleme melden](/docs/de/security#reporting-security-issues)

264 264 

265<h2 id="troubleshooting">265<h2 id="troubleshooting">

266 Fehlerbehebung266 Fehlerbehebung


272* **Anmeldungs-Problem**: Der Entwickler führt `claude --debug-file ./claude-debug.txt` aus, reproduziert und sendet diese Datei plus das Gateway-Audit-Protokoll für dasselbe Fenster272* **Anmeldungs-Problem**: Der Entwickler führt `claude --debug-file ./claude-debug.txt` aus, reproduziert und sendet diese Datei plus das Gateway-Audit-Protokoll für dasselbe Fenster

273* **Inferenz-Problem**: Das angeforderte Modell, die konfigurierten Upstreams und das Gateway-Audit-Protokoll für die Anfrage, das aufzeichnet, welcher Upstream sie bedient hat und den Response-Status273* **Inferenz-Problem**: Das angeforderte Modell, die konfigurierten Upstreams und das Gateway-Audit-Protokoll für die Anfrage, das aufzeichnet, welcher Upstream sie bedient hat und den Response-Status

274 274 

275Die Standardfehlerausgabe des Gateways enthält den Audit-Ereignisstrom, das Audit-Protokoll zeichnet Entwickleridentitäten auf, und die Debug-Datei zeichnet Hook- und MCP-Serverausgaben von der Maschine des Entwicklers auf. Überprüfen und redigieren Sie diese, bevor Sie sie in einem öffentlichen Problem posten.

276 

275| Symptom | Ursache | Behebung |277| Symptom | Ursache | Behebung |

276| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |278| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

277| Das `/login` eines Entwicklers zeigt den Standard-Account-Picker statt des **Cloud-Gateway**-Bildschirms | `forceLoginMethod` oder `forceLoginGatewayUrl` ist nicht in verwalteten Einstellungen auf dieser Maschine gesetzt | Stellen Sie die [verwaltete Einstellungsdatei](/de/claude-apps-gateway#set-the-gateway-url) auf dem Gerät bereit; `/login` liest die Gateway-URL von dort |279| Das `/login` eines Entwicklers zeigt den Standard-Account-Picker statt des **Cloud-Gateway**-Bildschirms | `forceLoginMethod` oder `forceLoginGatewayUrl` ist nicht in verwalteten Einstellungen auf dieser Maschine gesetzt | Stellen Sie die [verwaltete Einstellungsdatei](/docs/de/claude-apps-gateway#set-the-gateway-url) auf dem Gerät bereit; `/login` liest die Gateway-URL von dort |

278| Startup zeigt `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Der installierte Claude-Code-Build ist älter als die Gateway-Unterstützung | Lassen Sie den Entwickler Claude Code auf eine Version aktualisieren, die Cloud-Gateway-Unterstützung enthält |280| Startup zeigt `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Der installierte Claude-Code-Build ist älter als die Gateway-Unterstützung | Lassen Sie den Entwickler Claude Code auf eine Version aktualisieren, die Cloud-Gateway-Unterstützung enthält |

279| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Der Gateway-Hostname wird zu mindestens einer öffentlichen IP-Adresse aufgelöst. Claude Code überprüft jede aufgelöste Adresse und erfordert, dass jede privat ist. Eine häufige Ursache ist ein Dual-Stack-Name, bei dem eine Familie zu einer öffentlichen Adresse aufgelöst wird, einschließlich AWS-interner Dual-Stack-Load-Balancer, die öffentliche AAAA-Adressen zurückgeben. {/* min-version: 2.1.206 */}Anthropic-betriebene öffentliche Gateway-Endpunkte sind von der Überprüfung ausgenommen, und `/login` akzeptiert sie über `https://`. Vor v2.1.206 lehnte `/login` sie wie jede andere öffentliche Adresse ab | Lassen Sie den Gateway-Namen nur zu privaten Adressen auf Entwicklermaschinen auflösen. Für einen Dual-Stack-Namen löschen Sie den öffentlichen Datensatz oder bedienen Sie einen separaten internen DNS-Namen. Siehe die [Private-Network-Voraussetzung](/de/claude-apps-gateway#prerequisites). |281| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Der Gateway-Hostname wird zu mindestens einer öffentlichen IP-Adresse aufgelöst. Claude Code überprüft jede aufgelöste Adresse und erfordert, dass jede privat ist. Eine häufige Ursache ist ein Dual-Stack-Name, bei dem eine Familie zu einer öffentlichen Adresse aufgelöst wird, einschließlich AWS-interner Dual-Stack-Load-Balancer, die öffentliche AAAA-Adressen zurückgeben. {/* min-version: 2.1.206 */}Anthropic-betriebene öffentliche Gateway-Endpunkte sind von der Überprüfung ausgenommen, und `/login` akzeptiert sie über `https://`. Vor v2.1.206 lehnte `/login` sie wie jede andere öffentliche Adresse ab | Lassen Sie den Gateway-Namen nur zu privaten Adressen auf Entwicklermaschinen auflösen. Für einen Dual-Stack-Namen löschen Sie den öffentlichen Datensatz oder bedienen Sie einen separaten internen DNS-Namen. Siehe die [Private-Network-Voraussetzung](/docs/de/claude-apps-gateway#prerequisites). |

280| CLI `/login`: `Gateway login requires a direct connection and does not support connecting through an HTTP proxy` | Ein `HTTPS_PROXY` oder `HTTP_PROXY` gilt für den Gateway-Host und der Proxy-Hostname wird zu einer öffentlichen Adresse aufgelöst. Ein Proxy, dessen Host nur zu privaten Adressen aufgelöst wird, ist erlaubt und löst diesen Fehler nicht aus | Fügen Sie den Gateway-Host zu `NO_PROXY` auf der Entwicklermaschine hinzu, damit die Verbindung direkt ist, oder verwenden Sie einen Proxy, dessen Hostname zu privaten Adressen aufgelöst wird |282| CLI `/login`: `Gateway login requires a direct connection and does not support connecting through an HTTP proxy` | Ein `HTTPS_PROXY` oder `HTTP_PROXY` gilt für den Gateway-Host und der Proxy-Hostname wird zu einer öffentlichen Adresse aufgelöst. Ein Proxy, dessen Host nur zu privaten Adressen aufgelöst wird, ist erlaubt und löst diesen Fehler nicht aus | Fügen Sie den Gateway-Host zu `NO_PROXY` auf der Entwicklermaschine hinzu, damit die Verbindung direkt ist, oder verwenden Sie einen Proxy, dessen Hostname zu privaten Adressen aufgelöst wird |

281| CLI `/login`: `Could not resolve gateway host <host>` | Die Maschine kann den internen DNS-Namen des Gateways nicht auflösen, typischerweise weil sie nicht im Unternehmens-Netzwerk ist | Lassen Sie den Entwickler sich mit Ihrem Netzwerk oder VPN verbinden und versuchen Sie dann `/login` erneut |283| CLI `/login`: `Could not resolve gateway host <host>` | Die Maschine kann den internen DNS-Namen des Gateways nicht auflösen, typischerweise weil sie nicht im Unternehmens-Netzwerk ist | Lassen Sie den Entwickler sich mit Ihrem Netzwerk oder VPN verbinden und versuchen Sie dann `/login` erneut |

282| Boot beendet mit einem Konfigurationsvalidierungsfehler, der `store.postgres_url` benennt | Kein Postgres konfiguriert; das Gateway erfordert Postgres | Setzen Sie `store.postgres_url`. Für lokale Entwicklung verwenden Sie einen Wegwerf-Container: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |284| Boot beendet mit einem Konfigurationsvalidierungsfehler, der `store.postgres_url` benennt | Kein Postgres konfiguriert; das Gateway erfordert Postgres | Setzen Sie `store.postgres_url`. Für lokale Entwicklung verwenden Sie einen Wegwerf-Container: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

283| Boot beendet: `requires the native binary` | Läuft unter Node statt der nativen Binärdatei | Installieren Sie Claude Code mit einer der [Standalone-Installationsmethoden](/de/setup) |285| Boot beendet: `requires the native binary` | Läuft unter Node statt der nativen Binärdatei | Installieren Sie Claude Code mit einer der [Standalone-Installationsmethoden](/docs/de/setup) |

284| Boot beendet mit einem OIDC-Discovery-Fehler nach `config.load` | `oidc.issuer` nicht erreichbar oder TLS-Kette nicht vertraut | Überprüfen Sie, dass der Aussteller vom Pod erreichbar ist und `/.well-known/openid-configuration` bedient. Setzen Sie `ca_cert_pem` für private PKI. |286| Boot beendet mit einem OIDC-Discovery-Fehler nach `config.load` | `oidc.issuer` nicht erreichbar oder TLS-Kette nicht vertraut | Überprüfen Sie, dass der Aussteller vom Pod erreichbar ist und `/.well-known/openid-configuration` bedient. Setzen Sie `ca_cert_pem` für private PKI. |

285| Boot beendet mit einem Postgres-Berechtigungsfehler | App-Rolle fehlt `CREATE TABLE` | Erstellen Sie das Schema vorab mit einer Admin-Rolle und gewähren Sie DML der App-Rolle, oder gewähren Sie DDL vorübergehend für Boots, die neue Migrationen anwenden |287| Boot beendet mit einem Postgres-Berechtigungsfehler | App-Rolle fehlt `CREATE TABLE` | Erstellen Sie das Schema vorab mit einer Admin-Rolle und gewähren Sie DML der App-Rolle, oder gewähren Sie DDL vorübergehend für Boots, die neue Migrationen anwenden |

286| `/oauth/callback` zeigt "Sign-in could not be completed" | E-Mail-Domain abgelehnt, id\_token-Validierung fehlgeschlagen, oder `email_verified` ist explizit `false`, was das Gateway immer ohne Überschreibung ablehnt | Überprüfen Sie `allowed_email_domains` und dass der IdP einen verifizierten `email`-Claim zurückgibt. Für `email_verified: false` beheben Sie die IdP-seitige Verifikation. Wenn Ihr IdP E-Mail unter einem anderen Claim-Namen ausgibt, setzen Sie `oidc.email_claim`. |288| `/oauth/callback` zeigt "Sign-in could not be completed" | E-Mail-Domain abgelehnt, id\_token-Validierung fehlgeschlagen, oder `email_verified` ist explizit `false`, was das Gateway immer ohne Überschreibung ablehnt | Überprüfen Sie `allowed_email_domains` und dass der IdP einen verifizierten `email`-Claim zurückgibt. Für `email_verified: false` beheben Sie die IdP-seitige Verifikation. Wenn Ihr IdP E-Mail unter einem anderen Claim-Namen ausgibt, setzen Sie `oidc.email_claim`. |


293| Anmeldung wird beim IdP abgeschlossen, aber der Callback schlägt fehl, mit einem CSP-Fehler in Chrome oder "this sign-in link has expired" in Safari | Der IdP gab den Code über `response_mode=form_post` zurück, das ihn Cross-Origin über POST zu `/oauth/callback` automatisch einreicht. Chrome blockiert das unter einer strikten CSP; Safari erlaubt die Einreichung, aber der Callback liest nur die Query-String | Stellen Sie sicher, dass Ihr IdP `response_mode=query` ehrt, das das Gateway explizit anfordert, damit der Callback eine einfache Umleitung ist |295| Anmeldung wird beim IdP abgeschlossen, aber der Callback schlägt fehl, mit einem CSP-Fehler in Chrome oder "this sign-in link has expired" in Safari | Der IdP gab den Code über `response_mode=form_post` zurück, das ihn Cross-Origin über POST zu `/oauth/callback` automatisch einreicht. Chrome blockiert das unter einer strikten CSP; Safari erlaubt die Einreichung, aber der Callback liest nur die Query-String | Stellen Sie sicher, dass Ihr IdP `response_mode=query` ehrt, das das Gateway explizit anfordert, damit der Callback eine einfache Umleitung ist |

294| Anmeldung funktioniert lokal, schlägt aber hinter einem ALB fehl | `public_url` nicht gesetzt, daher erhält der IdP den inneren `http://`-Ursprung als `redirect_uri` | Setzen Sie `listen.public_url` auf den externen `https://`-Ursprung |296| Anmeldung funktioniert lokal, schlägt aber hinter einem ALB fehl | `public_url` nicht gesetzt, daher erhält der IdP den inneren `http://`-Ursprung als `redirect_uri` | Setzen Sie `listen.public_url` auf den externen `https://`-Ursprung |

295| Entwickler sieht die Vertrauens-Aufforderung wiederholt | TLS-Zert rotiert pro Replikation oder pro Anfrage | Verwenden Sie ein stabiles Zert beim Ingress, oder beenden Sie TLS einmal und führen Sie Replikationen intern über einfaches HTTP aus |297| Entwickler sieht die Vertrauens-Aufforderung wiederholt | TLS-Zert rotiert pro Replikation oder pro Anfrage | Verwenden Sie ein stabiles Zert beim Ingress, oder beenden Sie TLS einmal und führen Sie Replikationen intern über einfaches HTTP aus |

296| CLI `/login`: "Could not verify the gateway's TLS certificate" oder `SELF_SIGNED_CERT_IN_CHAIN` | Die TLS-Kette des Gateways ist von einer privaten CA signiert, die nicht im CLI-Host-Trust-Store ist | Claude Code liest den OS-Trust-Store standardmäßig auf der nativen Binärdatei und auf Node 22.15 oder später; [`CLAUDE_CODE_CERT_STORE`](/de/network-config#ca-certificate-store) steuert dieses Verhalten. Wenn die CA im OS-Trust-Store installiert ist, stellen Sie sicher, dass Entwickler auf einer aktuellen Runtime sind. Andernfalls setzen Sie `NODE_EXTRA_CA_CERTS` auf das CA-Zertifikat-PEM, bevor Sie starten. Die First-Connect-Fingerprint-Aufforderung gilt immer noch. |298| CLI `/login`: "Could not verify the gateway's TLS certificate" oder `SELF_SIGNED_CERT_IN_CHAIN` | Die TLS-Kette des Gateways ist von einer privaten CA signiert, die nicht im CLI-Host-Trust-Store ist | Claude Code liest den OS-Trust-Store standardmäßig auf der nativen Binärdatei und auf Node 22.15 oder später; [`CLAUDE_CODE_CERT_STORE`](/docs/de/network-config#ca-certificate-store) steuert dieses Verhalten. Wenn die CA im OS-Trust-Store installiert ist, stellen Sie sicher, dass Entwickler auf einer aktuellen Runtime sind. Andernfalls setzen Sie `NODE_EXTRA_CA_CERTS` auf das CA-Zertifikat-PEM, bevor Sie starten. Die First-Connect-Fingerprint-Aufforderung gilt immer noch. |

297 299 

298<h2 id="related">300<h2 id="related">

299 Verwandt301 Verwandt

300</h2>302</h2>

301 303 

302* [Claude-Apps-Gateway-Übersicht](/de/claude-apps-gateway): Schnellstart und Entwickler-Verbindung304* [Claude-Apps-Gateway-Übersicht](/docs/de/claude-apps-gateway): Schnellstart und Entwickler-Verbindung

303* [Konfigurationsreferenz](/de/claude-apps-gateway-config): Jede `gateway.yaml`-Option305* [Konfigurationsreferenz](/docs/de/claude-apps-gateway-config): Jede `gateway.yaml`-Option

env-vars.md +20 −10

Details

87 87 

88Wenn das gleiche Verhalten sowohl eine Umgebungsvariable als auch ein Einstellungsfeld hat, hat die Umgebungsvariable Vorrang. Zum Beispiel überschreibt `ANTHROPIC_MODEL` die Einstellung `model`, und `CLAUDE_CODE_AUTO_CONNECT_IDE` überschreibt `autoConnectIde`. Das Einstellungsfeld gilt, wenn die Umgebungsvariable nicht gesetzt ist.88Wenn das gleiche Verhalten sowohl eine Umgebungsvariable als auch ein Einstellungsfeld hat, hat die Umgebungsvariable Vorrang. Zum Beispiel überschreibt `ANTHROPIC_MODEL` die Einstellung `model`, und `CLAUDE_CODE_AUTO_CONNECT_IDE` überschreibt `autoConnectIde`. Das Einstellungsfeld gilt, wenn die Umgebungsvariable nicht gesetzt ist.

89 89 

90Wenn die gleiche Variable sowohl in Ihrer Shell als auch in einer Einstellungsdatei im `env`-Block gesetzt ist, gilt der Wert der Einstellungsdatei. Claude Code schreibt jeden `env`-Eintrag beim Start in die Prozessumgebung und ersetzt dabei den Wert, der von der Shell geerbt wurde. Einige Variablen werden speziell behandelt; die [`env`-Einstellung](/de/settings#available-settings) listet die Ausnahmen auf.

91 

92Zwischen Einstellungsdateien folgen `env`-Werte dem [Einstellungsvorrang](/de/settings#settings-precedence), sodass ein verwalteter Einstellungseintrag die gleiche Variable in Benutzer- oder Projekteinstellungen überschreibt.

93 

90Wie eine Umgebungsvariable mit CLI-Flags und In-Session-Befehlen interagiert, variiert je nach Feature: `--model` und `/model` überschreiben `ANTHROPIC_MODEL`, während `CLAUDE_CODE_EFFORT_LEVEL` `/effort` überschreibt. Wenn eine Variable mit einer anderen Konfigurationsquelle interagiert, gibt ihre Zeile in der [Variablen](#variables)-Liste den Vorrang an oder verlinkt auf die Seite, die ihn dokumentiert.94Wie eine Umgebungsvariable mit CLI-Flags und In-Session-Befehlen interagiert, variiert je nach Feature: `--model` und `/model` überschreiben `ANTHROPIC_MODEL`, während `CLAUDE_CODE_EFFORT_LEVEL` `/effort` überschreibt. Wenn eine Variable mit einer anderen Konfigurationsquelle interagiert, gibt ihre Zeile in der [Variablen](#variables)-Liste den Vorrang an oder verlinkt auf die Seite, die ihn dokumentiert.

91 95 

92Claude Code liest Umgebungsvariablen beim Start, sodass Änderungen beim nächsten Start von `claude` wirksam werden.96Claude Code liest Umgebungsvariablen beim Start, sodass Änderungen beim nächsten Start von `claude` wirksam werden.


96</h2>100</h2>

97 101 

98| Variable | Zweck |102| Variable | Zweck |

99| :------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |103| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

100| `ANTHROPIC_API_KEY` | API-Schlüssel, der als `X-Api-Key`-Header gesendet wird. Wenn gesetzt, wird dieser Schlüssel anstelle Ihres Claude Pro-, Max-, Team- oder Enterprise-Abonnements verwendet, auch wenn Sie angemeldet sind. Im nicht-interaktiven Modus (`-p`) wird der Schlüssel immer verwendet, wenn er vorhanden ist. Im interaktiven Modus werden Sie aufgefordert, den Schlüssel einmalig zu genehmigen, bevor er Ihr Abonnement überschreibt. Um stattdessen Ihr Abonnement zu verwenden, führen Sie `unset ANTHROPIC_API_KEY` aus |104| `ANTHROPIC_API_KEY` | API-Schlüssel, der als `X-Api-Key`-Header gesendet wird. Wenn gesetzt, wird dieser Schlüssel anstelle Ihres Claude Pro-, Max-, Team- oder Enterprise-Abonnements verwendet, auch wenn Sie angemeldet sind. Im nicht-interaktiven Modus (`-p`) wird der Schlüssel immer verwendet, wenn er vorhanden ist. Im interaktiven Modus werden Sie aufgefordert, den Schlüssel einmalig zu genehmigen, bevor er Ihr Abonnement überschreibt. Um stattdessen Ihr Abonnement zu verwenden, führen Sie `unset ANTHROPIC_API_KEY` aus |

101| `ANTHROPIC_AUTH_TOKEN` | Benutzerdefinierter Wert für den `Authorization`-Header (der hier gesetzte Wert wird mit `Bearer ` vorangestellt) |105| `ANTHROPIC_AUTH_TOKEN` | Benutzerdefinierter Wert für den `Authorization`-Header (der hier gesetzte Wert wird mit `Bearer ` vorangestellt) |

102| `ANTHROPIC_AWS_API_KEY` | Workspace API-Schlüssel für [Claude Platform on AWS](/de/claude-platform-on-aws), generiert in der AWS-Konsole. Wird als `x-api-key` gesendet und hat Vorrang vor AWS SigV4 |106| `ANTHROPIC_AWS_API_KEY` | Workspace API-Schlüssel für [Claude Platform on AWS](/de/claude-platform-on-aws), generiert in der AWS-Konsole. Wird als `x-api-key` gesendet und hat Vorrang vor AWS SigV4 |


134| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry-Ressourcenname (z. B. `my-resource`). Erforderlich, wenn `ANTHROPIC_FOUNDRY_BASE_URL` nicht gesetzt ist (siehe [Microsoft Foundry](/de/microsoft-foundry)) |138| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry-Ressourcenname (z. B. `my-resource`). Erforderlich, wenn `ANTHROPIC_FOUNDRY_BASE_URL` nicht gesetzt ist (siehe [Microsoft Foundry](/de/microsoft-foundry)) |

135| `ANTHROPIC_MODEL` | Name der zu verwendenden Modelleinstellung (siehe [Modellkonfiguration](/de/model-config#environment-variables)) |139| `ANTHROPIC_MODEL` | Name der zu verwendenden Modelleinstellung (siehe [Modellkonfiguration](/de/model-config#environment-variables)) |

136| `ANTHROPIC_SMALL_FAST_MODEL` | \[VERALTET] Name des [Haiku-Klasse-Modells für Hintergrundaufgaben](/de/costs) |140| `ANTHROPIC_SMALL_FAST_MODEL` | \[VERALTET] Name des [Haiku-Klasse-Modells für Hintergrundaufgaben](/de/costs) |

137| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | AWS-Region für das Haiku-Klasse-Modell bei Verwendung von Amazon Bedrock oder Amazon Bedrock Mantle überschreiben. Auf Amazon Bedrock wirkt sich dies nur aus, wenn `ANTHROPIC_DEFAULT_HAIKU_MODEL` oder das veraltete `ANTHROPIC_SMALL_FAST_MODEL` auch gesetzt ist, da Amazon Bedrock ansonsten das primäre Modell für Hintergrundaufgaben verwendet |141| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | AWS-Region für das Haiku-Klasse-Modell bei Verwendung von Amazon Bedrock oder Amazon Bedrock Mantle überschreiben. Auf Amazon Bedrock wirkt sich dies nur aus, wenn `ANTHROPIC_DEFAULT_HAIKU_MODEL` oder das veraltete `ANTHROPIC_SMALL_FAST_MODEL` auch gesetzt ist, da Amazon Bedrock ansonsten das [Standard-Sonnet-Modell oder das primäre Modell](/de/amazon-bedrock#4-pin-model-versions) in der Sitzungsregion für Hintergrundaufgaben verwendet |

138| `ANTHROPIC_VERTEX_BASE_URL` | Überschreiben Sie die Google Cloud's Agent Platform-Endpunkt-URL. Verwenden Sie für benutzerdefinierte Google Cloud's Agent Platform-Endpunkte oder beim Routing durch ein [LLM-Gateway](/de/llm-gateway). Siehe [Google Cloud's Agent Platform](/de/google-vertex-ai) |142| `ANTHROPIC_VERTEX_BASE_URL` | Überschreiben Sie die Google Cloud's Agent Platform-Endpunkt-URL. Verwenden Sie für benutzerdefinierte Google Cloud's Agent Platform-Endpunkte oder beim Routing durch ein [LLM-Gateway](/de/llm-gateway). Siehe [Google Cloud's Agent Platform](/de/google-vertex-ai) |

139| `ANTHROPIC_VERTEX_PROJECT_ID` | GCP-Projekt-ID für Google Cloud's Agent Platform-Anfragen. Wird überschrieben durch `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` oder das Projekt in Ihrer `GOOGLE_APPLICATION_CREDENTIALS`-Anmeldedatei. Siehe [Google Cloud's Agent Platform](/de/google-vertex-ai) |143| `ANTHROPIC_VERTEX_PROJECT_ID` | GCP-Projekt-ID für Google Cloud's Agent Platform-Anfragen. Wird überschrieben durch `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` oder das Projekt in Ihrer `GOOGLE_APPLICATION_CREDENTIALS`-Anmeldedatei. Siehe [Google Cloud's Agent Platform](/de/google-vertex-ai) |

140| `ANTHROPIC_WORKSPACE_ID` | Workspace-ID für [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Setzen Sie dies, wenn Ihre Verbundungsregel auf mehr als einen Workspace beschränkt ist, damit der Token-Austausch weiß, welcher Workspace das Ziel ist |144| `ANTHROPIC_WORKSPACE_ID` | Workspace-ID für [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Setzen Sie dies, wenn Ihre Verbundungsregel auf mehr als einen Workspace beschränkt ist, damit der Token-Austausch weiß, welcher Workspace das Ziel ist |


165| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Setzen Sie auf `0`, um den Attributionsblock (Client-Version und Prompt-Fingerabdruck) vom Anfang des System-Prompts wegzulassen. Das Deaktivieren verbessert die Prompt-Cache-Hit-Raten beim Routing durch ein [LLM-Gateway](/de/llm-gateway). Anthropic API-Caching ist nicht betroffen |169| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Setzen Sie auf `0`, um den Attributionsblock (Client-Version und Prompt-Fingerabdruck) vom Anfang des System-Prompts wegzulassen. Das Deaktivieren verbessert die Prompt-Cache-Hit-Raten beim Routing durch ein [LLM-Gateway](/de/llm-gateway). Anthropic API-Caching ist nicht betroffen |

166| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Legen Sie die Kontextkapazität in Token fest, die für Berechnungen der automatischen Komprimierung verwendet wird. Standardmäßig das Kontextfenster des Modells: 200K für Standard-Modelle oder 1M für [erweiterte Kontext](/de/model-config#extended-context)-Modelle, außer auf Sonnet 5, das seinen eigenen [Standard-Schwellenwert](/de/model-config#sonnet-5-context-window) hat. Verwenden Sie einen niedrigeren Wert wie `500000` auf einem 1M-Modell, um das Fenster für Komprimierungszwecke als 500K zu behandeln. Der Wert ist auf das tatsächliche Kontextfenster des Modells begrenzt. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` wird als Prozentsatz dieses Wertes angewendet. Das Setzen dieser Variablen entkoppelt den Komprimierungsschwellenwert von der `used_percentage` der Statuszeile, die immer das vollständige Kontextfenster des Modells verwendet |170| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Legen Sie die Kontextkapazität in Token fest, die für Berechnungen der automatischen Komprimierung verwendet wird. Standardmäßig das Kontextfenster des Modells: 200K für Standard-Modelle oder 1M für [erweiterte Kontext](/de/model-config#extended-context)-Modelle, außer auf Sonnet 5, das seinen eigenen [Standard-Schwellenwert](/de/model-config#sonnet-5-context-window) hat. Verwenden Sie einen niedrigeren Wert wie `500000` auf einem 1M-Modell, um das Fenster für Komprimierungszwecke als 500K zu behandeln. Der Wert ist auf das tatsächliche Kontextfenster des Modells begrenzt. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` wird als Prozentsatz dieses Wertes angewendet. Das Setzen dieser Variablen entkoppelt den Komprimierungsschwellenwert von der `used_percentage` der Statuszeile, die immer das vollständige Kontextfenster des Modells verwendet |

167| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Überschreiben Sie die automatische [IDE-Verbindung](/de/vs-code). Standardmäßig verbindet sich Claude Code automatisch, wenn es im integrierten Terminal einer unterstützten IDE gestartet wird. Setzen Sie auf `false`, um dies zu verhindern. Setzen Sie auf `true`, um eine Verbindung zu erzwingen, wenn die automatische Erkennung fehlschlägt, z. B. wenn tmux das übergeordnete Terminal verdeckt. Hat Vorrang vor der Einstellung [`autoConnectIde`](/de/settings#global-config-settings) |171| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Überschreiben Sie die automatische [IDE-Verbindung](/de/vs-code). Standardmäßig verbindet sich Claude Code automatisch, wenn es im integrierten Terminal einer unterstützten IDE gestartet wird. Setzen Sie auf `false`, um dies zu verhindern. Setzen Sie auf `true`, um eine Verbindung zu erzwingen, wenn die automatische Erkennung fehlschlägt, z. B. wenn tmux das übergeordnete Terminal verdeckt. Hat Vorrang vor der Einstellung [`autoConnectIde`](/de/settings#global-config-settings) |

172| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | {/* min-version: 2.1.207 */}Zeit in Millisekunden, die Claude Code auf die AWS-Standard-Anmeldedatenkette wartet, um Anmeldedaten zu produzieren, bevor die Anfrage mit [`AWS default-chain credential resolve timed out`](/de/errors#aws-default-chain-credential-resolve-timed-out) fehlschlägt (Standard: `60000`). Erhöhen Sie dies, wenn ein Schritt in Ihrer Kette legitim länger benötigt, z. B. eine Browser-basierte SSO-Anmeldung mit MFA über einen Wrapper wie `aws-vault`. Gilt überall dort, wo Claude Code mit der Standard-Kette signiert: [Amazon Bedrock](/de/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/de/claude-platform-on-aws) und der [Mantle-Endpunkt](/de/amazon-bedrock#use-the-mantle-endpoint). Erfordert Claude Code v2.1.207 oder später |

168| `CLAUDE_CODE_BRIDGE_SESSION_ID` | {/* min-version: 2.1.199 */}Wird automatisch in Bash-Tool- und [Hook-Befehls](/de/hooks)-Subprozessen gesetzt, während die Sitzung eine aktive [Remote Control](/de/remote-control)-Verbindung hat, und entfernt, wenn die Verbindung endet. Der Wert ist die Sitzungs-ID in `session_`-Form, der gleiche Bezeichner, der in der `claude.ai/code`-URL der Sitzung angezeigt wird, sodass ein Skript zurück zur Sitzung, die es ausgeführt hat, verlinken kann. Erfordert Claude Code v2.1.199 oder später. Lesen Sie in [Cloud-Sitzungen](/de/claude-code-on-the-web) stattdessen `CLAUDE_CODE_REMOTE_SESSION_ID` |173| `CLAUDE_CODE_BRIDGE_SESSION_ID` | {/* min-version: 2.1.199 */}Wird automatisch in Bash-Tool- und [Hook-Befehls](/de/hooks)-Subprozessen gesetzt, während die Sitzung eine aktive [Remote Control](/de/remote-control)-Verbindung hat, und entfernt, wenn die Verbindung endet. Der Wert ist die Sitzungs-ID in `session_`-Form, der gleiche Bezeichner, der in der `claude.ai/code`-URL der Sitzung angezeigt wird, sodass ein Skript zurück zur Sitzung, die es ausgeführt hat, verlinken kann. Erfordert Claude Code v2.1.199 oder später. Lesen Sie in [Cloud-Sitzungen](/de/claude-code-on-the-web) stattdessen `CLAUDE_CODE_REMOTE_SESSION_ID` |

169| `CLAUDE_CODE_CERT_STORE` | Kommagetrennte Liste von CA-Zertifikatquellen für TLS-Verbindungen. `bundled` ist der Mozilla CA-Satz, der mit Claude Code ausgeliefert wird. `system` ist der Betriebssystem-Vertrauensspeicher, schreibgeschützt auf Runtimes mit `tls.getCACertificates`: die native Binärdatei oder Node 22.15 oder später für npm-Installationen. Siehe [CA-Zertifikatsspeicher](/de/network-config#ca-certificate-store). Standard ist `bundled,system` |174| `CLAUDE_CODE_CERT_STORE` | Kommagetrennte Liste von CA-Zertifikatquellen für TLS-Verbindungen. `bundled` ist der Mozilla CA-Satz, der mit Claude Code ausgeliefert wird. `system` ist der Betriebssystem-Vertrauensspeicher, schreibgeschützt auf Runtimes mit `tls.getCACertificates`: die native Binärdatei oder Node 22.15 oder später für npm-Installationen. Siehe [CA-Zertifikatsspeicher](/de/network-config#ca-certificate-store). Standard ist `bundled,system` |

170| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Auf `1` in Subprozessen gesetzt, die Claude Code über die Bash-, PowerShell- und Monitor-Tools, [Hook](/de/hooks)-Befehle und [Statuszeilen](/de/statusline)-Befehle spawnt. Nicht gesetzt für stdio [MCP-Server](/de/mcp)-Subprozesse, die langlebig sind und die Sitzung, die sie gespawnt hat, überdauern. Im Gegensatz zu `CLAUDECODE` wird dies nur von Claude Codes eigenem Spawn-Pfad gesetzt und nicht von IDE-Erweiterungen, daher unterscheidet es zuverlässig eine verschachtelte Sitzung von einem Top-Level-`claude`, das in einem IDE-integrierten Terminal gestartet wird. Eine verschachtelte interaktive `claude` TUI, die auf diese Weise gestartet wird, wird automatisch von `--resume`, `--continue`, Up-Arrow-Verlauf und der `claude agents`-Liste ausgeschlossen. Nicht-interaktive `claude -p`-Sitzungen bleiben weiterhin bestehen. Setzen Sie `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, um diese Ausschließung zu überschreiben. Erfordert Claude Code v2.1.172 oder später |175| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Auf `1` in Subprozessen gesetzt, die Claude Code über die Bash-, PowerShell- und Monitor-Tools, [Hook](/de/hooks)-Befehle und [Statuszeilen](/de/statusline)-Befehle spawnt. Nicht gesetzt für stdio [MCP-Server](/de/mcp)-Subprozesse, die langlebig sind und die Sitzung, die sie gespawnt hat, überdauern. Im Gegensatz zu `CLAUDECODE` wird dies nur von Claude Codes eigenem Spawn-Pfad gesetzt und nicht von IDE-Erweiterungen, daher unterscheidet es zuverlässig eine verschachtelte Sitzung von einem Top-Level-`claude`, das in einem IDE-integrierten Terminal gestartet wird. Eine verschachtelte interaktive `claude` TUI, die auf diese Weise gestartet wird, wird automatisch von `--resume`, `--continue`, Up-Arrow-Verlauf und der `claude agents`-Liste ausgeschlossen. Nicht-interaktive `claude -p`-Sitzungen bleiben weiterhin bestehen. Setzen Sie `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, um diese Ausschließung zu überschreiben. Erfordert Claude Code v2.1.172 oder später |


176| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Minimale Protokollierungsstufe, die in die Debug-Protokolldatei geschrieben wird. Werte: `verbose`, `debug` (Standard), `info`, `warn`, `error`. Setzen Sie auf `verbose`, um hochvolumige Diagnosen wie vollständige Statuszeilen-Befehlsausgabe einzubeziehen, oder erhöhen Sie auf `error`, um Rauschen zu reduzieren |181| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Minimale Protokollierungsstufe, die in die Debug-Protokolldatei geschrieben wird. Werte: `verbose`, `debug` (Standard), `info`, `warn`, `error`. Setzen Sie auf `verbose`, um hochvolumige Diagnosen wie vollständige Statuszeilen-Befehlsausgabe einzubeziehen, oder erhöhen Sie auf `error`, um Rauschen zu reduzieren |

177| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Setzen Sie auf `1`, um die Unterstützung des [1M-Kontextfensters](/de/model-config#extended-context) zu deaktivieren. Wenn gesetzt, sind 1M-Modellvarianten in der Modellauswahl nicht verfügbar, und [Sonnet 5](/de/model-config#sonnet-5-context-window)-Sitzungen werden als 200K-Fenster behandelt. Nützlich für Unternehmensumgebungen mit Compliance-Anforderungen |182| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Setzen Sie auf `1`, um die Unterstützung des [1M-Kontextfensters](/de/model-config#extended-context) zu deaktivieren. Wenn gesetzt, sind 1M-Modellvarianten in der Modellauswahl nicht verfügbar, und [Sonnet 5](/de/model-config#sonnet-5-context-window)-Sitzungen werden als 200K-Fenster behandelt. Nützlich für Unternehmensumgebungen mit Compliance-Anforderungen |

178| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Setzen Sie auf `1`, um [adaptives Denken](/de/model-config#adjust-effort-level) auf Opus 4.6 und Sonnet 4.6 zu deaktivieren und auf das feste Denk-Budget zurückzufallen, das von `MAX_THINKING_TOKENS` gesteuert wird. {/* min-version: 2.1.111 */}Ab v2.1.111 hat dies keine Auswirkung auf Fable 5, Sonnet 5 oder Opus 4.7 und später, die immer adaptives Denken verwenden |183| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Setzen Sie auf `1`, um [adaptives Denken](/de/model-config#adjust-effort-level) auf Opus 4.6 und Sonnet 4.6 zu deaktivieren und auf das feste Denk-Budget zurückzufallen, das von `MAX_THINKING_TOKENS` gesteuert wird. {/* min-version: 2.1.111 */}Ab v2.1.111 hat dies keine Auswirkung auf Fable 5, Sonnet 5 oder Opus 4.7 und später, die immer adaptives Denken verwenden |

179| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Setzen Sie auf `1`, um das [Advisor-Tool](/de/advisor) zu deaktivieren. Der `/advisor`-Befehl wird nicht verfügbar, jedes konfigurierte `advisorModel` wird ignoriert, und das `--advisor`-Flag wird akzeptiert, hat aber keine Auswirkung, sodass vorhandene Skripte, die es übergeben, ohne Fehler weiterhin funktionieren. Erfordert Claude Code v2.1.98 oder später |184| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Setzen Sie auf `1`, um das [Advisor-Tool](/de/advisor) zu deaktivieren. Der `/advisor`-Befehl wird nicht verfügbar, jedes konfigurierte `advisorModel` wird ignoriert, und das `--advisor`-Flag wird akzeptiert, hat aber keine Auswirkung, sodass vorhandene Skripte, die es übergeben, ohne Fehler weiterhin funktionieren |

180| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Setzen Sie auf `1`, um [Hintergrund-Agenten und Agent-Ansicht](/de/agent-view) auszuschalten: `claude agents`, `--bg`, `/background` und den On-Demand-Supervisor. Äquivalent zur Einstellung [`disableAgentView`](/de/settings#available-settings) |185| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Setzen Sie auf `1`, um [Hintergrund-Agenten und Agent-Ansicht](/de/agent-view) auszuschalten: `claude agents`, `--bg`, `/background` und den On-Demand-Supervisor. Äquivalent zur Einstellung [`disableAgentView`](/de/settings#available-settings) |

181| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Setzen Sie auf `1`, um die [Vollbilddarstellung](/de/fullscreen) zu deaktivieren und den klassischen Hauptbildschirm-Renderer zu verwenden. Die Konversation bleibt in Ihrem nativen Terminal-Scrollback, sodass `Cmd+f` und tmux-Kopiermodus wie gewohnt funktionieren. Hat Vorrang vor `CLAUDE_CODE_NO_FLICKER` und der [`tui`](/de/settings#available-settings)-Einstellung. Sie können auch mit `/tui default` wechseln. Gilt nicht für Hintergrund-Sitzungen, die aus der [Agent-Ansicht](/de/agent-view) geöffnet werden, die immer Vollbilddarstellung verwenden |186| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Setzen Sie auf `1`, um die [Vollbilddarstellung](/de/fullscreen) zu deaktivieren und den klassischen Hauptbildschirm-Renderer zu verwenden. Die Konversation bleibt in Ihrem nativen Terminal-Scrollback, sodass `Cmd+f` und tmux-Kopiermodus wie gewohnt funktionieren. Hat Vorrang vor `CLAUDE_CODE_NO_FLICKER` und der [`tui`](/de/settings#available-settings)-Einstellung. Sie können auch mit `/tui default` wechseln. Gilt nicht für Hintergrund-Sitzungen, die aus der [Agent-Ansicht](/de/agent-view) geöffnet werden, die immer Vollbilddarstellung verwenden |

182| `CLAUDE_CODE_DISABLE_ARTIFACT` | Setzen Sie auf `1`, um das [Artefakt](/de/artifacts)-Tool zu deaktivieren, das Sitzungsausgaben als private Webseite auf claude.ai veröffentlicht. Äquivalent zur Einstellung [`disableArtifact`](/de/settings#available-settings) |187| `CLAUDE_CODE_DISABLE_ARTIFACT` | Setzen Sie auf `1`, um das [Artefakt](/de/artifacts)-Tool zu deaktivieren, das Sitzungsausgaben als private Webseite auf claude.ai veröffentlicht. Äquivalent zur Einstellung [`disableArtifact`](/de/settings#available-settings) |

183| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Setzen Sie auf `1`, um die Verarbeitung von Anhängen zu deaktivieren. Dateierweiterungen mit `@`-Syntax werden als Klartext gesendet, anstatt in Dateiinhalte erweitert zu werden |188| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Setzen Sie auf `1`, um die Verarbeitung von Anhängen zu deaktivieren. Dateierweiterungen mit `@`-Syntax werden als Klartext gesendet, anstatt in Dateiinhalte erweitert zu werden |

184| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Setzen Sie auf `1`, um [automatisches Speichern](/de/memory#auto-memory) zu deaktivieren. Setzen Sie auf `0`, um automatisches Speichern zu erzwingen, auch wenn `--bare`-Modus oder [`autoMemoryEnabled: false`](/de/settings#available-settings) es ansonsten deaktivieren würde. Wenn deaktiviert, erstellt oder lädt Claude keine automatischen Speicherdateien |189| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Setzen Sie auf `1`, um [automatisches Speichern](/de/memory#auto-memory) zu deaktivieren. Setzen Sie auf `0`, um automatisches Speichern zu erzwingen, auch wenn `--bare`-Modus oder [`autoMemoryEnabled: false`](/de/settings#available-settings) es ansonsten deaktivieren würde. Wenn deaktiviert, erstellt oder lädt Claude keine automatischen Speicherdateien |

185| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Setzen Sie auf `1`, um alle Hintergrundaufgaben-Funktionalität zu deaktivieren, einschließlich des Parameters `run_in_background` auf Bash- und Subagenten-Tools, automatisches Hintergrund-Ausführen und die Strg+B-Verknüpfung |190| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Setzen Sie auf `1`, um alle Hintergrundaufgaben-Funktionalität zu deaktivieren, einschließlich des Parameters `run_in_background` auf Bash- und Subagenten-Tools, automatisches Hintergrund-Ausführen und die Strg+B-Verknüpfung |

191| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | {/* min-version: 2.1.208 */}Setzen Sie auf `1`, um die Überprüfung zu überspringen, dass eine [Amazon Bedrock](/de/amazon-bedrock)-Streaming-Antwort den `application/vnd.amazon.eventstream`-Content-Type trägt. Ohne diese Variable schlägt eine Antwort mit einem anderen Content-Type mit einem Fehler fehl, der diesen Content-Type benennt, was bedeutet, dass ein [Gateway oder Proxy die Antwort transformiert](/de/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Setzen Sie es nur, wenn das Gateway den `Content-Type`-Header umschreibt, aber den binären Event-Stream-Body unverändert durchleitet; wenn der Body selbst transformiert wurde, schlagen Anfragen stattdessen mit `Truncated event message received` fehl. Erfordert Claude Code v2.1.208 oder später |

186| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Setzen Sie auf `1`, um in-flight Hintergrundarbeit zu stoppen, anstatt sie zu übernehmen, wenn der [Supervisor](/de/agent-view#the-supervisor-process) eine [Hintergrund-Sitzung](/de/agent-view) stoppt, neu startet oder den Prozess dieser Sitzung aktualisiert, anstatt sie an den nächsten Prozess der Sitzung zu übergeben. Betrifft nur diese Übergabe: Das Verschieben einer Sitzung mit `←` oder [`/background`](/de/agent-view#from-inside-a-session) trägt weiterhin in-flight-Arbeit über, und `CLAUDE_DISABLE_ADOPT` schaltet beide aus. Erfordert Claude Code v2.1.196 oder später |192| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Setzen Sie auf `1`, um in-flight Hintergrundarbeit zu stoppen, anstatt sie zu übernehmen, wenn der [Supervisor](/de/agent-view#the-supervisor-process) eine [Hintergrund-Sitzung](/de/agent-view) stoppt, neu startet oder den Prozess dieser Sitzung aktualisiert, anstatt sie an den nächsten Prozess der Sitzung zu übergeben. Betrifft nur diese Übergabe: Das Verschieben einer Sitzung mit `←` oder [`/background`](/de/agent-view#from-inside-a-session) trägt weiterhin in-flight-Arbeit über, und `CLAUDE_DISABLE_ADOPT` schaltet beide aus. Erfordert Claude Code v2.1.196 oder später |

187| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Setzen Sie auf `1`, um Claude Code davon abzuhalten, [Hintergrund-Shell-Befehle](/de/interactive-mode#background-bash-commands) zu beenden, wenn das Betriebssystem Speicherdruck meldet. Standardmäßig beendet Claude Code auf macOS und Linux eine im Hauptsitzung gestartete Hintergrund-Shell bei einem Speicherdruck-Signal, sobald die Sitzung 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Windows hat kein Speicherdruck-Signal, daher hat diese Variable dort keine Auswirkung. Erfordert Claude Code v2.1.193 oder später |193| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Setzen Sie auf `1`, um Claude Code davon abzuhalten, [Hintergrund-Shell-Befehle](/de/interactive-mode#background-bash-commands) zu beenden, wenn das Betriebssystem Speicherdruck meldet. Standardmäßig beendet Claude Code auf macOS und Linux eine im Hauptsitzung gestartete Hintergrund-Shell bei einem Speicherdruck-Signal, sobald die Sitzung 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Windows hat kein Speicherdruck-Signal, daher hat diese Variable dort keine Auswirkung. Erfordert Claude Code v2.1.193 oder später |

188| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Setzen Sie auf `1`, um die [Skills](/de/skills) und Workflows zu deaktivieren, die mit Claude Code ausgeliefert werden: Gebündelte Skills und Workflows werden vollständig entfernt, während integrierte Slash-Befehle wie `/init` tippbar bleiben, aber vom Modell ausgeblendet werden. Skills von Plugins, `.claude/skills/` und `.claude/commands/` sind nicht betroffen. Äquivalent zur Einstellung [`disableBundledSkills`](/de/settings#available-settings); `0` überschreibt sie nicht |194| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Setzen Sie auf `1`, um die [Skills](/de/skills) und Workflows zu deaktivieren, die mit Claude Code ausgeliefert werden: Gebündelte Skills und Workflows werden vollständig entfernt, während integrierte Slash-Befehle wie `/init` tippbar bleiben, aber vom Modell ausgeblendet werden. Skills von Plugins, `.claude/skills/` und `.claude/commands/` sind nicht betroffen. Äquivalent zur Einstellung [`disableBundledSkills`](/de/settings#available-settings); `0` überschreibt sie nicht |

189| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Setzen Sie auf `1`, um das Laden von CLAUDE.md-Speicherdateien in den Kontext zu verhindern, einschließlich Benutzer-, Projekt- und automatischen Speicherdateien |195| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Setzen Sie auf `1`, um das Laden von CLAUDE.md-Speicherdateien in den Kontext zu verhindern, einschließlich Benutzer-, Projekt- und automatischen Speicherdateien |

190| `CLAUDE_CODE_DISABLE_CRON` | Setzen Sie auf `1`, um [geplante Aufgaben](/de/scheduled-tasks) zu deaktivieren. Der `/loop`-Skill und Cron-Tools werden nicht verfügbar und alle bereits geplanten Aufgaben werden nicht mehr ausgelöst, einschließlich Aufgaben, die bereits während der Sitzung ausgeführt werden |196| `CLAUDE_CODE_DISABLE_CRON` | Setzen Sie auf `1`, um [geplante Aufgaben](/de/scheduled-tasks) zu deaktivieren. Der `/loop`-Skill und Cron-Tools werden nicht verfügbar und alle bereits geplanten Aufgaben werden nicht mehr ausgelöst, einschließlich Aufgaben, die bereits während der Sitzung ausgeführt werden |

191| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Setzen Sie auf `1`, um Anthropic-spezifische `anthropic-beta`-Request-Header und Beta-Tool-Schema-Felder (wie `defer_loading` und `eager_input_streaming`) aus API-Anfragen zu entfernen. Verwenden Sie dies, wenn ein Proxy-Gateway Anfragen mit Fehlern wie „Unexpected value(s) for the `anthropic-beta` header" oder „Extra inputs are not permitted" ablehnt. Standard-Felder (`name`, `description`, `input_schema`, `cache_control`) werden beibehalten |197| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Setzen Sie auf `1`, um Anthropic-spezifische `anthropic-beta`-Request-Header und Beta-Tool-Schema-Felder (wie `defer_loading` und `eager_input_streaming`) aus API-Anfragen zu entfernen. Verwenden Sie dies, wenn ein Proxy-Gateway Anfragen mit Fehlern wie „Unexpected value(s) for the `anthropic-beta` header" oder „Extra inputs are not permitted" ablehnt. Standard-Felder (`name`, `description`, `input_schema`, `cache_control`) werden beibehalten. [MCP-Tool-Suche](/de/mcp#scale-with-mcp-tool-search) ist deaktiviert und alle MCP-Tools werden upfront geladen, auch wenn `ENABLE_TOOL_SEARCH` gesetzt ist |

192| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | {/* min-version: 2.1.198 */}Setzen Sie auf `1`, um die integrierten [Explore und Plan Subagenten](/de/sub-agents#built-in-subagents) zu deaktivieren. Claude erkundet mit seinen Such-Tools oder dem allgemeinen Subagenten, und [Plan-Modus](/de/permission-modes#analyze-before-you-edit-with-plan-mode) liest Dateien direkt, anstatt Explore und Plan Agenten zu starten. Benutzerdefinierte Subagenten mit dem Namen `Explore` oder `Plan` sind nicht betroffen. Um jeden integrierten Subagenten-Typ im Agent SDK oder nicht-interaktiven Modus zu entfernen, verwenden Sie stattdessen `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Erfordert Claude Code v2.1.198 oder später |198| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | {/* min-version: 2.1.198 */}Setzen Sie auf `1`, um die integrierten [Explore und Plan Subagenten](/de/sub-agents#built-in-subagents) zu deaktivieren. Claude erkundet mit seinen Such-Tools oder dem allgemeinen Subagenten, und [Plan-Modus](/de/permission-modes#analyze-before-you-edit-with-plan-mode) liest Dateien direkt, anstatt Explore und Plan Agenten zu starten. Benutzerdefinierte Subagenten mit dem Namen `Explore` oder `Plan` sind nicht betroffen. Um jeden integrierten Subagenten-Typ im Agent SDK oder nicht-interaktiven Modus zu entfernen, verwenden Sie stattdessen `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Erfordert Claude Code v2.1.198 oder später |

193| `CLAUDE_CODE_DISABLE_FAST_MODE` | Setzen Sie auf `1`, um [Schnellmodus](/de/fast-mode) zu deaktivieren |199| `CLAUDE_CODE_DISABLE_FAST_MODE` | Setzen Sie auf `1`, um [Schnellmodus](/de/fast-mode) zu deaktivieren |

194| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Setzen Sie auf `1`, um die Umfragen zur Sitzungsqualität „Wie läuft es mit Claude?" zu deaktivieren. Umfragen werden auch deaktiviert, wenn `DISABLE_TELEMETRY`, `DO_NOT_TRACK` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist, es sei denn, `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` meldet sich wieder an. Um stattdessen eine Stichprobenquote festzulegen, verwenden Sie die Einstellung [`feedbackSurveyRate`](/de/settings#available-settings). Siehe [Umfragen zur Sitzungsqualität](/de/data-usage#session-quality-surveys) |200| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Setzen Sie auf `1`, um die Umfragen zur Sitzungsqualität „Wie läuft es mit Claude?" zu deaktivieren. Umfragen werden auch deaktiviert, wenn `DISABLE_TELEMETRY`, `DO_NOT_TRACK` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist, es sei denn, `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` meldet sich wieder an. Um stattdessen eine Stichprobenquote festzulegen, verwenden Sie die Einstellung [`feedbackSurveyRate`](/de/settings#available-settings). Siehe [Umfragen zur Sitzungsqualität](/de/data-usage#session-quality-surveys) |


208| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Setzen Sie auf `1`, um [Workflows](/de/workflows#turn-workflows-off) zu deaktivieren. Äquivalent zur Einstellung [`disableWorkflows`](/de/settings#available-settings) |214| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Setzen Sie auf `1`, um [Workflows](/de/workflows#turn-workflows-off) zu deaktivieren. Äquivalent zur Einstellung [`disableWorkflows`](/de/settings#available-settings) |

209| `CLAUDE_CODE_EFFORT_LEVEL` | Legen Sie die Anstrengungsstufe für unterstützte Modelle fest. Werte: `low`, `medium`, `high`, `xhigh`, `max` oder `auto` für den Modellstandard. Verfügbare Stufen hängen vom Modell ab. Hat Vorrang vor `/effort` und der `effortLevel`-Einstellung. Siehe [Anstrengungsstufe anpassen](/de/model-config#adjust-effort-level) |215| `CLAUDE_CODE_EFFORT_LEVEL` | Legen Sie die Anstrengungsstufe für unterstützte Modelle fest. Werte: `low`, `medium`, `high`, `xhigh`, `max` oder `auto` für den Modellstandard. Verfügbare Stufen hängen vom Modell ab. Hat Vorrang vor `/effort` und der `effortLevel`-Einstellung. Siehe [Anstrengungsstufe anpassen](/de/model-config#adjust-effort-level) |

210| `CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT` | {/* min-version: 2.1.205 */}Setzen Sie auf `1`, um das Anhängen von zusätzlichem Text an das Ende des System-Prompts jedes [Subagenten](/de/sub-agents) zu aktivieren. Das Flag [`--append-subagent-system-prompt`](/de/cli-reference#cli-flags) liefert den angehängten Text und setzt diese Variable automatisch, daher müssen Sie sie nicht selbst setzen. Erfordert Claude Code v2.1.205 oder später |216| `CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT` | {/* min-version: 2.1.205 */}Setzen Sie auf `1`, um das Anhängen von zusätzlichem Text an das Ende des System-Prompts jedes [Subagenten](/de/sub-agents) zu aktivieren. Das Flag [`--append-subagent-system-prompt`](/de/cli-reference#cli-flags) liefert den angehängten Text und setzt diese Variable automatisch, daher müssen Sie sie nicht selbst setzen. Erfordert Claude Code v2.1.205 oder später |

211| `CLAUDE_CODE_ENABLE_AUTO_MODE` | {/* min-version: 2.1.158 */}Setzen Sie auf `1`, um [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode) auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldete [Claude Apps Gateway](/de/claude-apps-gateway)-Sitzungen verfügbar zu machen. Erfordert Claude Code v2.1.158 oder später. Hat keine Auswirkung auf die Anthropic API, wo Auto-Modus standardmäßig verfügbar ist. Siehe [Auto-Modus auf Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry aktivieren](/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) |217| `CLAUDE_CODE_ENABLE_AUTO_MODE` | {/* min-version: 2.1.207 */}Wird für Kompatibilität mit älteren Versionen akzeptiert und hat keine Auswirkung. Auto-Modus ist standardmäßig auf jedem Provider verfügbar, einschließlich Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldete [Claude Apps Gateway](/de/claude-apps-gateway)-Sitzungen. In v2.1.158 bis v2.1.206 war das Setzen auf `1` erforderlich, um [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode) auf diesen Providern verfügbar zu machen |

212| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Überschreiben Sie die Verfügbarkeit von [Sitzungs-Zusammenfassung](/de/interactive-mode#session-recap). Setzen Sie auf `0`, um Zusammenfassungen unabhängig vom `/config`-Umschalter auszuschalten. Setzen Sie auf `1`, um Zusammenfassungen zu erzwingen, wenn [`awaySummaryEnabled`](/de/settings#available-settings) `false` ist. Hat Vorrang vor der Einstellung und dem `/config`-Umschalter |218| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Überschreiben Sie die Verfügbarkeit von [Sitzungs-Zusammenfassung](/de/interactive-mode#session-recap). Setzen Sie auf `0`, um Zusammenfassungen unabhängig vom `/config`-Umschalter auszuschalten. Setzen Sie auf `1`, um Zusammenfassungen zu erzwingen, wenn [`awaySummaryEnabled`](/de/settings#available-settings) `false` ist. Hat Vorrang vor der Einstellung und dem `/config`-Umschalter |

213| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Setzen Sie auf `1`, um den Plugin-Status an Turn-Grenzen im [nicht-interaktiven Modus](/de/headless) zu aktualisieren, nachdem eine Hintergrund-Installation abgeschlossen ist. Standardmäßig aus, da die Aktualisierung den System-Prompt mitten in der Sitzung ändert, was [Prompt-Caching](/de/prompt-caching) für diesen Turn ungültig macht |219| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Setzen Sie auf `1`, um den Plugin-Status an Turn-Grenzen im [nicht-interaktiven Modus](/de/headless) zu aktualisieren, nachdem eine Hintergrund-Installation abgeschlossen ist. Standardmäßig aus, da die Aktualisierung den System-Prompt mitten in der Sitzung ändert, was [Prompt-Caching](/de/prompt-caching) für diesen Turn ungültig macht |

214| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Setzen Sie auf `1`, um die Umfrage zur Sitzungsqualität „Wie läuft es mit Claude?" an Ihren eigenen [OpenTelemetry-Collector](/de/monitoring-usage) zu leiten, wenn Anthropic-gebundener nicht wesentlicher Traffic blockiert wird. Umfragebewertungen werden nur als OTEL-Ereignisse an Ihren konfigurierten Collector ausgegeben. Keine Umfragedaten werden in diesem Modus an Anthropic gesendet. Gilt, wenn `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` oder `DO_NOT_TRACK` gesetzt ist, und hat ansonsten keine Auswirkung. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` und die Produktfeedback-Richtlinie der Organisation haben Vorrang |220| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Setzen Sie auf `1`, um die Umfrage zur Sitzungsqualität „Wie läuft es mit Claude?" an Ihren eigenen [OpenTelemetry-Collector](/de/monitoring-usage) zu leiten, wenn Anthropic-gebundener nicht wesentlicher Traffic blockiert wird. Umfragebewertungen werden nur als OTEL-Ereignisse an Ihren konfigurierten Collector ausgegeben. Keine Umfragedaten werden in diesem Modus an Anthropic gesendet. Gilt, wenn `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` oder `DO_NOT_TRACK` gesetzt ist, und hat ansonsten keine Auswirkung. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` und die Produktfeedback-Richtlinie der Organisation haben Vorrang |


220| `CLAUDE_CODE_ENABLE_TELEMETRY` | Setzen Sie auf `1`, um OpenTelemetry-Datenerfassung für Metriken und Protokollierung zu aktivieren. Erforderlich, bevor OTel-Exporter konfiguriert werden. Siehe [Überwachung](/de/monitoring-usage) |226| `CLAUDE_CODE_ENABLE_TELEMETRY` | Setzen Sie auf `1`, um OpenTelemetry-Datenerfassung für Metriken und Protokollierung zu aktivieren. Erforderlich, bevor OTel-Exporter konfiguriert werden. Siehe [Überwachung](/de/monitoring-usage) |

221| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Zeit in Millisekunden, die nach dem Leerlaufen der Abfrageschleife gewartet werden soll, bevor automatisch beendet wird. Nützlich für automatisierte Workflows und Skripte mit SDK-Modus |227| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Zeit in Millisekunden, die nach dem Leerlaufen der Abfrageschleife gewartet werden soll, bevor automatisch beendet wird. Nützlich für automatisierte Workflows und Skripte mit SDK-Modus |

222| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Setzen Sie auf `1`, um [Agent-Teams](/de/agent-teams) zu aktivieren. Agent-Teams sind experimentell und standardmäßig deaktiviert |228| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Setzen Sie auf `1`, um [Agent-Teams](/de/agent-teams) zu aktivieren. Agent-Teams sind experimentell und standardmäßig deaktiviert |

223| `CLAUDE_CODE_EXTRA_BODY` | JSON-Objekt, das in die oberste Ebene jedes API-Request-Body zusammengeführt werden soll. Nützlich für die Übergabe von Provider-spezifischen Parametern, die Claude Code nicht direkt verfügbar macht |229| `CLAUDE_CODE_EXTRA_BODY` | JSON-Objekt, das in die oberste Ebene jedes API-Request-Body zusammengeführt werden soll. Nützlich für die Übergabe von Provider-spezifischen Parametern, die Claude Code nicht direkt verfügbar macht. {/* min-version: 2.1.206 */}Ein in Ihrer Shell exportierter Wert gilt auch für die [Hintergrund-Sitzungen](/de/agent-view), die Sie mit `claude agents` oder `--bg` dispatchen. Vor v2.1.206 ignorierten Hintergrund-Sitzungen einen Shell-exportierten Wert und verwendeten, was die Hintergrund-Supervisor-Prozess geerbt hatte |

224| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Überschreiben Sie das Standard-Token-Limit für Dateileser. Nützlich, wenn Sie größere Dateien vollständig lesen müssen |230| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Überschreiben Sie das Standard-Token-Limit für Dateileser. Nützlich, wenn Sie größere Dateien vollständig lesen müssen |

225| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | {/* min-version: 2.1.172 */}Setzen Sie auf `1`, um Transkript-Persistenz, Prompt-Verlauf und `claude agents`-Registrierung zu erzwingen, auch wenn dieser `claude` von innen in einer anderen Claude Code-Sitzung gestartet wurde. Verwenden Sie, wenn ein vererbter `CLAUDE_CODE_CHILD_SESSION`-Wert, z. B. von einem `screen`-Sitzung oder einem Hintergrund-Launcher, der zuerst von Claude Codes Bash-Tool gestartet wurde, dazu führt, dass eine echte Top-Level-Sitzung als verschachtelt fehlklassifiziert wird. {/* min-version: 2.1.178 */}Ab v2.1.178 erkennt Claude Code den tmux-Fall automatisch und ignoriert den vererbten Marker, sodass tmux diese Variable nicht mehr benötigt. Wird auch auf v2.1.169 und früher berücksichtigt; hat keine Auswirkung auf v2.1.170 und v2.1.171, wo die verschachtelte Sitzungserkennung, die es überschreibt, entfernt wurde |231| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | {/* min-version: 2.1.172 */}Setzen Sie auf `1`, um Transkript-Persistenz, Prompt-Verlauf und `claude agents`-Registrierung zu erzwingen, auch wenn dieser `claude` von innen in einer anderen Claude Code-Sitzung gestartet wurde. Verwenden Sie, wenn ein vererbter `CLAUDE_CODE_CHILD_SESSION`-Wert, z. B. von einem `screen`-Sitzung oder einem Hintergrund-Launcher, der zuerst von Claude Codes Bash-Tool gestartet wurde, dazu führt, dass eine echte Top-Level-Sitzung als verschachtelt fehlklassifiziert wird. {/* min-version: 2.1.178 */}Ab v2.1.178 erkennt Claude Code den tmux-Fall automatisch und ignoriert den vererbten Marker, sodass tmux diese Variable nicht mehr benötigt. Wird auch auf v2.1.169 und früher berücksichtigt; hat keine Auswirkung auf v2.1.170 und v2.1.171, wo die verschachtelte Sitzungserkennung, die es überschreibt, entfernt wurde |

226| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | {/* min-version: 2.1.186 */}Setzen Sie auf `1`, um Durchstreichungs-Rendering für `~~text~~` in Claudes Antworten zu erzwingen, wenn Ihr Terminal es unterstützt, aber nicht automatisch erkannt wird, z. B. über SSH ohne `TERM_PROGRAM` weitergeleitet. Ohne dies zeigen nicht erkannte Terminals die wörtlichen `~~`-Marker an, anstatt den Text als Durchstreichung zu rendern. Erfordert Claude Code v2.1.186 oder später |232| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | {/* min-version: 2.1.186 */}Setzen Sie auf `1`, um Durchstreichungs-Rendering für `~~text~~` in Claudes Antworten zu erzwingen, wenn Ihr Terminal es unterstützt, aber nicht automatisch erkannt wird, z. B. über SSH ohne `TERM_PROGRAM` weitergeleitet. Ohne dies zeigen nicht erkannte Terminals die wörtlichen `~~`-Marker an, anstatt den Text als Durchstreichung zu rendern. Erfordert Claude Code v2.1.186 oder später |

227| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Setzen Sie auf `1`, um DEC Private Mode 2026 [synchronisierte Ausgabe](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) zu erzwingen, wenn Ihr Terminal sie unterstützt, aber nicht automatisch erkannt wird. Nützlich für Emulatoren wie Emacs `eat`, die BSU/ESU implementieren, aber nicht auf die Capability-Abfrage antworten. Hat keine Auswirkung unter tmux |233| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Setzen Sie auf `1`, um DEC Private Mode 2026 [synchronisierte Ausgabe](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) zu erzwingen, wenn Ihr Terminal sie unterstützt, aber nicht automatisch erkannt wird. Nützlich für Emulatoren wie Emacs `eat`, die BSU/ESU implementieren, aber nicht auf die Capability-Abfrage antworten. Hat keine Auswirkung unter tmux. Im Gegensatz zu `CLAUDE_CODE_NO_FLICKER`, das zur [Vollbilddarstellung](/de/fullscreen) wechselt, ändert dies nicht den Renderer |

228| `CLAUDE_CODE_FORK_SUBAGENT` | Setzen Sie auf `1`, um Claude [abgespaltete Subagenten](/de/sub-agents#fork-the-current-conversation) zu spawnen, oder `0`, um sie zu deaktivieren, wobei jede Server-seitige Einführung überschrieben wird. Wenn aktiviert, kann Claude den `fork`-Subagenten-Typ anfordern, um einen Fork zu spawnen, einen Subagenten, der den vollständigen Konversationskontext erbt, anstatt neu zu beginnen. Spawns ohne einen Subagenten-Typ verwenden weiterhin den allgemeinen Subagenten, und alle Subagenten-Spawns werden im Hintergrund ausgeführt. Der explizite [`/fork`](/de/commands)-Befehl funktioniert ohne diese Variable. Funktioniert im interaktiven Modus und über das SDK oder `claude -p` |234| `CLAUDE_CODE_FORK_SUBAGENT` | Setzen Sie auf `1`, um Claude [abgespaltete Subagenten](/de/sub-agents#fork-the-current-conversation) zu spawnen, oder `0`, um sie zu deaktivieren, wobei jede Server-seitige Einführung überschrieben wird. Wenn aktiviert, kann Claude den `fork`-Subagenten-Typ anfordern, um einen Fork zu spawnen, einen Subagenten, der den vollständigen Konversationskontext erbt, anstatt neu zu beginnen. Spawns ohne einen Subagenten-Typ verwenden weiterhin den allgemeinen Subagenten, und alle Subagenten-Spawns werden im Hintergrund ausgeführt. Der explizite [`/fork`](/de/commands)-Befehl funktioniert ohne diese Variable. Funktioniert im interaktiven Modus und über das SDK oder `claude -p` |

229| `CLAUDE_CODE_GIT_BASH_PATH` | Nur Windows: Pfad zur Git Bash-Ausführungsdatei (`bash.exe`). Verwenden Sie, wenn Git Bash installiert ist, aber nicht in Ihrem PATH. Siehe [Windows-Setup](/de/setup#set-up-on-windows) |235| `CLAUDE_CODE_GIT_BASH_PATH` | Nur Windows: Pfad zur Git Bash-Ausführungsdatei (`bash.exe`). Verwenden Sie, wenn Git Bash installiert ist, aber nicht in Ihrem PATH. Siehe [Windows-Setup](/de/setup#set-up-on-windows) |

230| `CLAUDE_CODE_GLOB_HIDDEN` | Setzen Sie auf `false`, um versteckte Dateien aus Ergebnissen auszuschließen, wenn Claude das [Glob-Tool](/de/tools-reference#glob-tool-behavior) aufruft. Standardmäßig enthalten. Beeinflusst nicht `@`-Datei-Autovervollständigung, `ls`, Grep oder Read |236| `CLAUDE_CODE_GLOB_HIDDEN` | Setzen Sie auf `false`, um versteckte Dateien aus Ergebnissen auszuschließen, wenn Claude das [Glob-Tool](/de/tools-reference#glob-tool-behavior) aufruft. Standardmäßig enthalten. Beeinflusst nicht `@`-Datei-Autovervollständigung, `ls`, Grep oder Read |


261| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Pfad zu einem oder mehreren schreibgeschützten Plugin-Seed-Verzeichnissen, getrennt durch `:` auf Unix oder `;` auf Windows. Verwenden Sie dies, um ein vorausgefülltes Plugins-Verzeichnis in ein Container-Image zu bündeln. Claude Code registriert Marketplaces aus diesen Verzeichnissen beim Start und verwendet vorgecachte Plugins ohne erneutes Klonen. Siehe [Plugins für Container vorausfüllen](/de/plugin-marketplaces#pre-populate-plugins-for-containers) |267| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Pfad zu einem oder mehreren schreibgeschützten Plugin-Seed-Verzeichnissen, getrennt durch `:` auf Unix oder `;` auf Windows. Verwenden Sie dies, um ein vorausgefülltes Plugins-Verzeichnis in ein Container-Image zu bündeln. Claude Code registriert Marketplaces aus diesen Verzeichnissen beim Start und verwendet vorgecachte Plugins ohne erneutes Klonen. Siehe [Plugins für Container vorausfüllen](/de/plugin-marketplaces#pre-populate-plugins-for-containers) |

262| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Setzen Sie auf `1`, um Claude Code davon abzuhalten, `-ExecutionPolicy Bypass` beim Spawnen von PowerShell für Tool-Aufrufe, Hooks und Statuszeilen-Befehle zu übergeben, und respektieren Sie stattdessen die effektive Ausführungsrichtlinie des Computers. Standardmäßig umgeht Claude Code die Ausführungsrichtlinie im Prozessbereich, sodass `.ps1`-Skripte und Modul-Importe auf Standard-Restricted Windows-Installationen funktionieren. Prozessbereich-Bypass überschreibt niemals Group Policy `MachinePolicy` oder `UserPolicy`, unabhängig von dieser Einstellung |268| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Setzen Sie auf `1`, um Claude Code davon abzuhalten, `-ExecutionPolicy Bypass` beim Spawnen von PowerShell für Tool-Aufrufe, Hooks und Statuszeilen-Befehle zu übergeben, und respektieren Sie stattdessen die effektive Ausführungsrichtlinie des Computers. Standardmäßig umgeht Claude Code die Ausführungsrichtlinie im Prozessbereich, sodass `.ps1`-Skripte und Modul-Importe auf Standard-Restricted Windows-Installationen funktionieren. Prozessbereich-Bypass überschreibt niemals Group Policy `MachinePolicy` oder `UserPolicy`, unabhängig von dieser Einstellung |

263| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | {/* min-version: 2.1.182 */}Maximale Zeit in Millisekunden, die der [nicht-interaktive Modus](/de/headless#background-tasks-at-exit) mit dem Flag `-p` nach dem letzten Turn auf Hintergrund-Subagenten und Workflows wartet, deren Ergebnis Teil der Ausgabe ist. Standard: `600000` oder 10 Minuten. Wenn die Obergrenze überschritten wird, werden verbleibende Hintergrundaufgaben beendet und der Prozess beendet. Setzen Sie auf `0`, um unbegrenzt zu warten. Diese Obergrenze ist separat von der fünfsekündigen Kulanzfrist, die für einfache Hintergrund-Shells gilt |269| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | {/* min-version: 2.1.182 */}Maximale Zeit in Millisekunden, die der [nicht-interaktive Modus](/de/headless#background-tasks-at-exit) mit dem Flag `-p` nach dem letzten Turn auf Hintergrund-Subagenten und Workflows wartet, deren Ergebnis Teil der Ausgabe ist. Standard: `600000` oder 10 Minuten. Wenn die Obergrenze überschritten wird, werden verbleibende Hintergrundaufgaben beendet und der Prozess beendet. Setzen Sie auf `0`, um unbegrenzt zu warten. Diese Obergrenze ist separat von der fünfsekündigen Kulanzfrist, die für einfache Hintergrund-Shells gilt |

270| `CLAUDE_CODE_PROCESS_WRAPPER` | {/* min-version: 2.1.208 */}Starten Sie die Prozesse, die Claude Code von seiner eigenen Binärdatei aus startet, durch einen Wrapper-Executable, angegeben als argv-Präfix wie `/opt/corp/launcher`. Umfasst den Hintergrund-Service, der [Agent-Ansicht](/de/agent-view)-Sitzungen hostet, jede Sitzung, die er spawnt, und den Neustart, den Claude Code durchführt, um eine Aktualisierung zu beenden. Das erste Token muss der absolute Pfad einer ausführbaren Datei sein, die mit `exec "$@"` endet, und die meisten Launcher sind genau dieser einzelne Pfad. Der Wert ist eine Argumentliste, keine Shell-Befehl: Leerzeichen trennen Token, doppelte Anführungszeichen gruppieren einen Pfad, der Leerzeichen enthält, und ein Wert, der mit `[` beginnt, wird als JSON-String-Array gelesen. Setzen Sie es im `env`-Block von Benutzer- oder [verwalteten Einstellungen](/de/permissions#managed-settings), nicht als Shell-Export, damit der abgelöste Hintergrund-Service es erbt; Projekt- und lokale Einstellungen können es nicht setzen. Die VS Code-Erweiterung konfiguriert ihren eigenen Launcher separat über ihre `claudeProcessWrapper`-Einstellung. Wird unter Windows ignoriert. `CLAUDE_CODE_SHELL_PREFIX` ist eine separate Kontrolle: Sie umhüllt die Shell-Befehle, die Claude Code als einzelne zitierte Zeichenkette ausführt, während diese Variable Claude Codes eigene Prozesse als argv-Präfix umhüllt. Siehe [Claude Code hinter einem Corporate Launcher ausführen](/de/corporate-launcher) |

264| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | {/* min-version: 2.1.152 */}Setzen Sie auf `1`, um W3C-Trace-Kontext zu propagieren, wenn `ANTHROPIC_BASE_URL` auf einen benutzerdefinierten Proxy verweist. Die Propagation umfasst den `traceparent`-Header auf Modell- und HTTP-MCP-Anfragen sowie die `TRACEPARENT`-Umgebungsvariable für Bash-, PowerShell- und Hook-Subprozesse. Standardmäßig ist die Propagation nur bei direkter Verbindung zur Anthropic API aktiviert. Hinzugefügt in v2.1.152. Siehe [Traces (Beta)](/de/monitoring-usage#traces-beta) |271| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | {/* min-version: 2.1.152 */}Setzen Sie auf `1`, um W3C-Trace-Kontext zu propagieren, wenn `ANTHROPIC_BASE_URL` auf einen benutzerdefinierten Proxy verweist. Die Propagation umfasst den `traceparent`-Header auf Modell- und HTTP-MCP-Anfragen sowie die `TRACEPARENT`-Umgebungsvariable für Bash-, PowerShell- und Hook-Subprozesse. Standardmäßig ist die Propagation nur bei direkter Verbindung zur Anthropic API aktiviert. Hinzugefügt in v2.1.152. Siehe [Traces (Beta)](/de/monitoring-usage#traces-beta) |

265| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Wird von Host-Plattformen gesetzt, die Claude Code einbetten und das Modell-Provider-Routing in ihrem Namen verwalten. Wenn gesetzt, werden Provider-Auswahl-, Endpunkt- und Authentifizierungsvariablen wie `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` und `ANTHROPIC_API_KEY` in Einstellungsdateien ignoriert, sodass Benutzereinstellungen das Routing des Hosts nicht überschreiben können. Die automatische Telemetrie-Abmeldung für Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry wird ebenfalls übersprungen, sodass die Telemetrie der Standard-`DISABLE_TELEMETRY`-Abmeldung folgt. Siehe [Standardverhalten nach API-Provider](/de/data-usage#default-behaviors-by-api-provider) |272| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Wird von Host-Plattformen gesetzt, die Claude Code einbetten und das Modell-Provider-Routing in ihrem Namen verwalten. Wenn gesetzt, werden Provider-Auswahl-, Endpunkt- und Authentifizierungsvariablen wie `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` und `ANTHROPIC_API_KEY` in Einstellungsdateien ignoriert, sodass Benutzereinstellungen das Routing des Hosts nicht überschreiben können. Die automatische Telemetrie-Abmeldung für Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry wird ebenfalls übersprungen, sodass die Telemetrie der Standard-`DISABLE_TELEMETRY`-Abmeldung folgt. Siehe [Standardverhalten nach API-Provider](/de/data-usage#default-behaviors-by-api-provider) |

266| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Setzen Sie auf `1`, um dem Proxy zu ermöglichen, DNS-Auflösung durchzuführen, anstatt des Aufrufers. Opt-in für Umgebungen, in denen der Proxy die Hostname-Auflösung durchführen sollte |273| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Setzen Sie auf `1`, um dem Proxy zu ermöglichen, DNS-Auflösung durchzuführen, anstatt des Aufrufers. Opt-in für Umgebungen, in denen der Proxy die Hostname-Auflösung durchführen sollte |


279| `CLAUDE_CODE_SIMPLE` | Setzen Sie auf `1`, um mit einem minimalen System-Prompt und nur den Tools Bash, Datei lesen und Datei bearbeiten auszuführen. MCP-Tools aus `--mcp-config` sind weiterhin verfügbar. Deaktiviert die automatische Erkennung von Hooks, Skills, Plugins, MCP-Servern, automatisches Speichern und CLAUDE.md. OAuth-Token und Keychain-Anmeldedaten werden nicht gelesen, daher muss die Anthropic-Authentifizierung von `ANTHROPIC_API_KEY` oder einem `apiKeyHelper` in `--settings` stammen. Äquivalent zum Übergeben von [`--bare`](/de/headless#start-faster-with-bare-mode) |286| `CLAUDE_CODE_SIMPLE` | Setzen Sie auf `1`, um mit einem minimalen System-Prompt und nur den Tools Bash, Datei lesen und Datei bearbeiten auszuführen. MCP-Tools aus `--mcp-config` sind weiterhin verfügbar. Deaktiviert die automatische Erkennung von Hooks, Skills, Plugins, MCP-Servern, automatisches Speichern und CLAUDE.md. OAuth-Token und Keychain-Anmeldedaten werden nicht gelesen, daher muss die Anthropic-Authentifizierung von `ANTHROPIC_API_KEY` oder einem `apiKeyHelper` in `--settings` stammen. Äquivalent zum Übergeben von [`--bare`](/de/headless#start-faster-with-bare-mode) |

280| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Setzen Sie auf `1`, um einen kürzeren System-Prompt und zusammengefasste Tool-Beschreibungen auf jedem Modell zu verwenden. Setzen Sie auf `0`, `false`, `no` oder `off`, um sich abzumelden, auch wenn das Experiment oder die Server-Konfiguration es ansonsten aktivieren würde. Der vollständige Tool-Satz, Hooks, MCP-Server und CLAUDE.md-Erkennung bleiben aktiviert |287| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Setzen Sie auf `1`, um einen kürzeren System-Prompt und zusammengefasste Tool-Beschreibungen auf jedem Modell zu verwenden. Setzen Sie auf `0`, `false`, `no` oder `off`, um sich abzumelden, auch wenn das Experiment oder die Server-Konfiguration es ansonsten aktivieren würde. Der vollständige Tool-Satz, Hooks, MCP-Server und CLAUDE.md-Erkennung bleiben aktiviert |

281| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Überspringen Sie die clientseitige Authentifizierung für [Claude Platform on AWS](/de/claude-platform-on-aws), für Gateways, die Anfragen selbst signieren |288| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Überspringen Sie die clientseitige Authentifizierung für [Claude Platform on AWS](/de/claude-platform-on-aws), für Gateways, die Anfragen selbst signieren |

289| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | {/* min-version: 2.1.207 */}Setzen Sie auf `1`, um den In-Process-Cache von Anmeldedaten zu deaktivieren, die aus der AWS-Standard-Anmeldedatenkette aufgelöst werden, sodass Claude Code die Kette bei jeder API-Anfrage auflöst. Mit dem Cache aus fordert ein SSO-gestütztes Profil Anmeldedaten von IAM Identity Center bei jeder Anfrage an. Siehe [Anmeldedaten-Caching und Auflösungs-Timeout](/de/amazon-bedrock#credential-caching-and-resolution-timeout). Erfordert Claude Code v2.1.207 oder später |

282| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Überspringen Sie die AWS-Authentifizierung für Amazon Bedrock (z. B. bei Verwendung eines LLM-Gateways) |290| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Überspringen Sie die AWS-Authentifizierung für Amazon Bedrock (z. B. bei Verwendung eines LLM-Gateways) |

283| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Überspringen Sie die Azure-Authentifizierung für Microsoft Foundry, für einen Proxy oder ein Gateway, das seinen eigenen `Authorization`-Header injiziert. Claude Code sendet Anfragen ohne Azure-Anmeldedaten und behält den `Authorization`-Header, den Sie bereitstellen, z. B. durch `ANTHROPIC_CUSTOM_HEADERS`. Wird ignoriert, wenn `ANTHROPIC_FOUNDRY_API_KEY` oder `ANTHROPIC_FOUNDRY_AUTH_TOKEN` gesetzt ist. {/* min-version: 2.1.203 */}Vor v2.1.203 ließ diese Variable den Microsoft Foundry-Client nicht in der Lage, Anfragen zu senden, es sei denn, ein API-Schlüssel war auch gesetzt |291| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Überspringen Sie die Azure-Authentifizierung für Microsoft Foundry, für einen Proxy oder ein Gateway, das seinen eigenen `Authorization`-Header injiziert. Claude Code sendet Anfragen ohne Azure-Anmeldedaten und behält den `Authorization`-Header, den Sie bereitstellen, z. B. durch `ANTHROPIC_CUSTOM_HEADERS`. Wird ignoriert, wenn `ANTHROPIC_FOUNDRY_API_KEY` oder `ANTHROPIC_FOUNDRY_AUTH_TOKEN` gesetzt ist. {/* min-version: 2.1.203 */}Vor v2.1.203 ließ diese Variable den Microsoft Foundry-Client nicht in der Lage, Anfragen zu senden, es sei denn, ein API-Schlüssel war auch gesetzt |

284| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Überspringen Sie die AWS-Authentifizierung für Amazon Bedrock Mantle (z. B. bei Verwendung eines LLM-Gateways) |292| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Überspringen Sie die AWS-Authentifizierung für Amazon Bedrock Mantle (z. B. bei Verwendung eines LLM-Gateways) |


295| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Setzen Sie auf `false`, um Syntax-Hervorhebung in Diff-Ausgabe zu deaktivieren. Nützlich, wenn Farben Ihr Terminal-Setup beeinträchtigen. Um auch die Hervorhebung in Code-Blöcken und Datei-Vorschauen zu deaktivieren, verwenden Sie die Einstellung [`syntaxHighlightingDisabled`](/de/settings) |303| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Setzen Sie auf `false`, um Syntax-Hervorhebung in Diff-Ausgabe zu deaktivieren. Nützlich, wenn Farben Ihr Terminal-Setup beeinträchtigen. Um auch die Hervorhebung in Code-Blöcken und Datei-Vorschauen zu deaktivieren, verwenden Sie die Einstellung [`syntaxHighlightingDisabled`](/de/settings) |

296| `CLAUDE_CODE_TASK_LIST_ID` | Teilen Sie eine Aufgabenliste über Sitzungen hinweg. Setzen Sie dieselbe ID in mehreren Claude Code-Instanzen, um an einer gemeinsamen Aufgabenliste zu koordinieren. Siehe [Aufgabenliste](/de/interactive-mode#task-list) |304| `CLAUDE_CODE_TASK_LIST_ID` | Teilen Sie eine Aufgabenliste über Sitzungen hinweg. Setzen Sie dieselbe ID in mehreren Claude Code-Instanzen, um an einer gemeinsamen Aufgabenliste zu koordinieren. Siehe [Aufgabenliste](/de/interactive-mode#task-list) |

297| `CLAUDE_CODE_TEAM_NAME` | Name des Agent-Teams, zu dem dieser Teamkollege gehört. Automatisch auf [Agent-Team](/de/agent-teams)-Mitgliedern gesetzt |305| `CLAUDE_CODE_TEAM_NAME` | Name des Agent-Teams, zu dem dieser Teamkollege gehört. Automatisch auf [Agent-Team](/de/agent-teams)-Mitgliedern gesetzt |

306| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | {/* min-version: 2.1.206 */}Überschreiben Sie, in Millisekunden, wie lange eine nicht-interaktive Sitzung beim Beenden auf das Abbau ihres [Agent-Teams](/de/agent-teams) wartet. Akzeptiert 1000 bis 60000; ein Wert außerhalb des Bereichs wird ignoriert und der Standard von 10000 gilt. Erfordert Claude Code v2.1.206 oder später |

298| `CLAUDE_CODE_TMPDIR` | Überschreiben Sie das Temp-Verzeichnis, das für interne Temp-Dateien verwendet wird. Claude Code hängt `/claude-{uid}/` (Unix) oder `/claude/` (Windows) an diesen Pfad an. Standard: `/tmp` auf macOS, `os.tmpdir()` auf Linux und Windows. {/* min-version: 2.1.161 */}Ab v2.1.161 erhalten [Sandboxed](/de/sandboxing) Bash-Subprozesse auf macOS und Linux einen kurzen Fallback-`$TMPDIR` unter dem Systemstandard, wenn Ihr Override ein langer Pfad ist, da einige Tools fehlschlagen, wenn Temp-Pfade zu lang werden. Nicht-Sandboxed Bash-Befehle erben Ihren Shell-`$TMPDIR` unverändert. Claude Codes eigene Temp-Dateien verwenden immer Ihren Override |307| `CLAUDE_CODE_TMPDIR` | Überschreiben Sie das Temp-Verzeichnis, das für interne Temp-Dateien verwendet wird. Claude Code hängt `/claude-{uid}/` (Unix) oder `/claude/` (Windows) an diesen Pfad an. Standard: `/tmp` auf macOS, `os.tmpdir()` auf Linux und Windows. {/* min-version: 2.1.161 */}Ab v2.1.161 erhalten [Sandboxed](/de/sandboxing) Bash-Subprozesse auf macOS und Linux einen kurzen Fallback-`$TMPDIR` unter dem Systemstandard, wenn Ihr Override ein langer Pfad ist, da einige Tools fehlschlagen, wenn Temp-Pfade zu lang werden. Nicht-Sandboxed Bash-Befehle erben Ihren Shell-`$TMPDIR` unverändert. Claude Codes eigene Temp-Dateien verwenden immer Ihren Override |

299| `CLAUDE_CODE_TMUX_TRUECOLOR` | Setzen Sie auf `1`, um 24-Bit-Truecolor-Ausgabe in tmux zu ermöglichen. Standardmäßig begrenzt Claude Code auf 256 Farben, wenn `$TMUX` gesetzt ist, da tmux Truecolor-Escape-Sequenzen nicht durchleitet, es sei denn, es ist konfiguriert. Setzen Sie dies nach dem Hinzufügen von `set -ga terminal-overrides ',*:Tc'` zu Ihrer `~/.tmux.conf`. Siehe [Terminal-Konfiguration](/de/terminal-config) für andere tmux-Einstellungen |308| `CLAUDE_CODE_TMUX_TRUECOLOR` | Setzen Sie auf `1`, um 24-Bit-Truecolor-Ausgabe in tmux zu ermöglichen. Standardmäßig begrenzt Claude Code auf 256 Farben, wenn `$TMUX` gesetzt ist, da tmux Truecolor-Escape-Sequenzen nicht durchleitet, es sei denn, es ist konfiguriert. Setzen Sie dies nach dem Hinzufügen von `set -ga terminal-overrides ',*:Tc'` zu Ihrer `~/.tmux.conf`. Siehe [Terminal-Konfiguration](/de/terminal-config) für andere tmux-Einstellungen |

300| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Verwenden Sie [Claude Platform on AWS](/de/claude-platform-on-aws) |309| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Verwenden Sie [Claude Platform on AWS](/de/claude-platform-on-aws) |


319| `DISABLE_COMPACT` | Setzen Sie auf `1`, um alle Komprimierung zu deaktivieren: sowohl automatische Komprimierung als auch den manuellen `/compact`-Befehl |328| `DISABLE_COMPACT` | Setzen Sie auf `1`, um alle Komprimierung zu deaktivieren: sowohl automatische Komprimierung als auch den manuellen `/compact`-Befehl |

320| `DISABLE_COST_WARNINGS` | Setzen Sie auf `1`, um Kostenwarnmeldungen zu deaktivieren |329| `DISABLE_COST_WARNINGS` | Setzen Sie auf `1`, um Kostenwarnmeldungen zu deaktivieren |

321| `DISABLE_DOCTOR_COMMAND` | Setzen Sie auf `1`, um den `/doctor`-Befehl auszublenden. Nützlich für verwaltete Bereitstellungen, in denen Benutzer keine Installationsdiagnosen ausführen sollten |330| `DISABLE_DOCTOR_COMMAND` | Setzen Sie auf `1`, um den `/doctor`-Befehl auszublenden. Nützlich für verwaltete Bereitstellungen, in denen Benutzer keine Installationsdiagnosen ausführen sollten |

322| `DISABLE_ERROR_REPORTING` | Setzen Sie auf `1`, um sich von Sentry-Fehlerberichten abzumelden |331| `DISABLE_ERROR_REPORTING` | Setzen Sie auf `1`, um sich von Fehlerberichten abzumelden |

323| `DISABLE_EXTRA_USAGE_COMMAND` | Setzen Sie auf `1`, um den `/usage-credits`-Befehl auszublenden, der Benutzern ermöglicht, zusätzliche Nutzung über Ratenlimits hinaus zu erwerben |332| `DISABLE_EXTRA_USAGE_COMMAND` | Setzen Sie auf `1`, um den `/usage-credits`-Befehl auszublenden, der Benutzern ermöglicht, zusätzliche Nutzung über Ratenlimits hinaus zu erwerben |

324| `DISABLE_FEEDBACK_COMMAND` | Setzen Sie auf `1`, um den `/feedback`-Befehl zu deaktivieren. Der ältere Name `DISABLE_BUG_COMMAND` wird ebenfalls akzeptiert |333| `DISABLE_FEEDBACK_COMMAND` | Setzen Sie auf `1`, um den `/feedback`-Befehl zu deaktivieren. Der ältere Name `DISABLE_BUG_COMMAND` wird ebenfalls akzeptiert |

325| `DISABLE_GROWTHBOOK` | Setzen Sie auf `1`, um GrowthBook-Feature-Flag-Abruf zu deaktivieren und Code-Standardwerte für jedes Flag zu verwenden. Telemetrie-Ereignisprotokollierung bleibt aktiviert, es sei denn, `DISABLE_TELEMETRY` ist auch gesetzt |334| `DISABLE_GROWTHBOOK` | Setzen Sie auf `1`, um GrowthBook-Feature-Flag-Abruf zu deaktivieren und Code-Standardwerte für jedes Flag zu verwenden. Telemetrie-Ereignisprotokollierung bleibt aktiviert, es sei denn, `DISABLE_TELEMETRY` ist auch gesetzt |


340| `ENABLE_CLAUDEAI_MCP_SERVERS` | Setzen Sie auf `false`, um [claude.ai MCP-Server](/de/mcp#use-mcp-servers-from-claude-ai) in Claude Code zu deaktivieren. Standardmäßig für angemeldete Benutzer aktiviert. Um pro-Projekt oder pro-Org zu deaktivieren, setzen Sie stattdessen [`disableClaudeAiConnectors`](/de/settings#available-settings) in Einstellungen |349| `ENABLE_CLAUDEAI_MCP_SERVERS` | Setzen Sie auf `false`, um [claude.ai MCP-Server](/de/mcp#use-mcp-servers-from-claude-ai) in Claude Code zu deaktivieren. Standardmäßig für angemeldete Benutzer aktiviert. Um pro-Projekt oder pro-Org zu deaktivieren, setzen Sie stattdessen [`disableClaudeAiConnectors`](/de/settings#available-settings) in Einstellungen |

341| `ENABLE_PROMPT_CACHING_1H` | Setzen Sie auf `1`, um eine 1-Stunden-[Prompt-Cache-TTL](/de/prompt-caching#cache-lifetime) anstelle der Standard-5-Minuten anzufordern. Vorgesehen für API-Schlüssel-, [Amazon Bedrock](/de/amazon-bedrock)-, [Google Cloud's Agent Platform](/de/google-vertex-ai)-, [Microsoft Foundry](/de/microsoft-foundry)- und [Claude Platform on AWS](/de/claude-platform-on-aws)-Benutzer. Abonnement-Benutzer erhalten automatisch 1-Stunden-TTL. 1-Stunden-Cache-Schreibvorgänge werden mit einer höheren Rate abgerechnet |350| `ENABLE_PROMPT_CACHING_1H` | Setzen Sie auf `1`, um eine 1-Stunden-[Prompt-Cache-TTL](/de/prompt-caching#cache-lifetime) anstelle der Standard-5-Minuten anzufordern. Vorgesehen für API-Schlüssel-, [Amazon Bedrock](/de/amazon-bedrock)-, [Google Cloud's Agent Platform](/de/google-vertex-ai)-, [Microsoft Foundry](/de/microsoft-foundry)- und [Claude Platform on AWS](/de/claude-platform-on-aws)-Benutzer. Abonnement-Benutzer erhalten automatisch 1-Stunden-TTL. 1-Stunden-Cache-Schreibvorgänge werden mit einer höheren Rate abgerechnet |

342| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Veraltet. Verwenden Sie stattdessen `ENABLE_PROMPT_CACHING_1H` |351| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Veraltet. Verwenden Sie stattdessen `ENABLE_PROMPT_CACHING_1H` |

343| `ENABLE_TOOL_SEARCH` | Steuert [MCP-Tool-Suche](/de/mcp#scale-with-mcp-tool-search). Nicht gesetzt: alle MCP-Tools standardmäßig aufgeschoben, aber upfront geladen auf Google Cloud's Agent Platform oder wenn `ANTHROPIC_BASE_URL` auf einen Nicht-First-Party-Host verweist. Werte: `true` (immer aufgeschoben und Beta-Header senden, Anfragen schlagen auf Google Cloud's Agent Platform-Modellen älter als Sonnet 4.5 oder Opus 4.5 fehl, oder auf Proxies, die `tool_reference` nicht unterstützen), `auto` (Schwellenwertmodus: upfront laden, wenn Tools in 10 % des Kontexts passen), `auto:N` (benutzerdefinierter Schwellenwert, z. B. `auto:5` für 5 %), `false` (alle upfront laden) |352| `ENABLE_TOOL_SEARCH` | Steuert [MCP-Tool-Suche](/de/mcp#scale-with-mcp-tool-search). Nicht gesetzt: alle MCP-Tools standardmäßig aufgeschoben, aber upfront geladen auf Google Cloud's Agent Platform oder wenn `ANTHROPIC_BASE_URL` auf einen Nicht-First-Party-Host verweist. Werte: `true` (immer aufgeschoben und Beta-Header senden, Anfragen schlagen auf Google Cloud's Agent Platform-Modellen älter als Sonnet 4.5 oder Opus 4.5 fehl, oder auf Proxies, die `tool_reference` nicht unterstützen), `auto` (Schwellenwertmodus: upfront laden, wenn Tools in 10 % des Kontexts passen), `auto:N` (benutzerdefinierter Schwellenwert, z. B. `auto:5` für 5 %), `false` (alle upfront laden). Ignoriert, wenn `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` gesetzt ist, was alle Tools upfront laden erzwingt |

344| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Setzen Sie auf einen beliebigen Nicht-Leer-Wert, um alle Modelle, nicht nur Opus, zu veranlassen, bei wiederholten Überladungsfehlern nicht mehr zu versuchen, wenn kein Fallback-Modell konfiguriert ist. {/* min-version: 2.1.160 */}Ab v2.1.160 löst eine konfigurierte [Fallback-Modellkette](/de/model-config#fallback-model-chains) bei wiederholten Überladungsfehlern für jedes primäre Modell aus, sodass diese Variable das Wechseln zu einem Fallback-Modell nicht beeinflusst |353| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Setzen Sie auf einen beliebigen Nicht-Leer-Wert, um alle Modelle, nicht nur Opus, zu veranlassen, bei wiederholten Überladungsfehlern nicht mehr zu versuchen, wenn kein Fallback-Modell konfiguriert ist. {/* min-version: 2.1.160 */}Ab v2.1.160 löst eine konfigurierte [Fallback-Modellkette](/de/model-config#fallback-model-chains) bei wiederholten Überladungsfehlern für jedes primäre Modell aus, sodass diese Variable das Wechseln zu einem Fallback-Modell nicht beeinflusst |

345| `FORCE_AUTOUPDATE_PLUGINS` | Setzen Sie auf `1`, um Plugin-Auto-Updates zu erzwingen, auch wenn der Haupt-Auto-Updater über `DISABLE_AUTOUPDATER` deaktiviert ist |354| `FORCE_AUTOUPDATE_PLUGINS` | Setzen Sie auf `1`, um Plugin-Auto-Updates zu erzwingen, auch wenn der Haupt-Auto-Updater über `DISABLE_AUTOUPDATER` deaktiviert ist |

355| `FORCE_HYPERLINK` | Setzen Sie auf `1`, um clickable OSC 8 Hyperlinks zu aktivieren, wenn Ihr Terminal sie unterstützt, aber nicht automatisch erkannt wird, oder `0`, um sie zu deaktivieren |

346| `FORCE_PROMPT_CACHING_5M` | Setzen Sie auf `1`, um die 5-Minuten-Prompt-Cache-TTL zu erzwingen, auch wenn 1-Stunden-TTL ansonsten gelten würde. Überschreibt `ENABLE_PROMPT_CACHING_1H` |356| `FORCE_PROMPT_CACHING_5M` | Setzen Sie auf `1`, um die 5-Minuten-Prompt-Cache-TTL zu erzwingen, auch wenn 1-Stunden-TTL ansonsten gelten würde. Überschreibt `ENABLE_PROMPT_CACHING_1H` |

347| `HTTP_PROXY` | Geben Sie HTTP-Proxy-Server für Netzwerkverbindungen an |357| `HTTP_PROXY` | Geben Sie HTTP-Proxy-Server für Netzwerkverbindungen an |

348| `HTTPS_PROXY` | Geben Sie HTTPS-Proxy-Server für Netzwerkverbindungen an |358| `HTTPS_PROXY` | Geben Sie HTTPS-Proxy-Server für Netzwerkverbindungen an |


357| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Maximale Anzahl von Remote-MCP-Servern (HTTP/SSE), die während des Starts parallel verbunden werden (Standard: 20) |367| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Maximale Anzahl von Remote-MCP-Servern (HTTP/SSE), die während des Starts parallel verbunden werden (Standard: 20) |

358| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Maximale Anzahl von lokalen MCP-Servern (stdio), die während des Starts parallel verbunden werden (Standard: 3) |368| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Maximale Anzahl von lokalen MCP-Servern (stdio), die während des Starts parallel verbunden werden (Standard: 3) |

359| `MCP_TIMEOUT` | Timeout in Millisekunden für MCP-Server-Start (Standard: 30000 oder 30 Sekunden) |369| `MCP_TIMEOUT` | Timeout in Millisekunden für MCP-Server-Start (Standard: 30000 oder 30 Sekunden) |

360| `MCP_TOOL_TIMEOUT` | Timeout in Millisekunden für MCP-Tool-Ausführung (Standard: 100000000, etwa 28 Stunden). Ein pro-Server `timeout`-Feld in `.mcp.json` überschreibt dies für diesen Server. {/* min-version: 2.1.203 */}Ein Pro-Server-`timeout` von mindestens 1000 setzt auch das Mindest-Idle-Fenster für die Tool-Aufrufe dieses Servers, sodass `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` sie nie früher abbricht; dieser Floor erfordert Claude Code v2.1.203 oder später. Für die Env-Variable werden Werte unter 1000 auf eine Sekunde begrenzt; für das pro-Server-Feld werden Werte unter 1000 ignoriert |370| `MCP_TOOL_TIMEOUT` | Timeout in Millisekunden für MCP-Tool-Ausführung (Standard: 100000000, etwa 28 Stunden). Für einen HTTP-, SSE-, oder claude.ai-Connector-Server wird jede Anfrage auch nach 60 Sekunden standardmäßig mit Timeout versehen; setzen Sie diese Variable oder das Pro-Server-`timeout` über 60000, um dieses Pro-Request-Limit zu erhöhen. Ein niedrigerer Wert verkürzt immer noch das Gesamt-Tool-Ausführungs-Timeout, lässt aber das Pro-Request-Limit bei 60 Sekunden. Stdio- und WebSocket-Server haben keinen Pro-Request-Timer. Ein Pro-Server-`timeout`-Feld in `.mcp.json` überschreibt dies für diesen Server. {/* min-version: 2.1.203 */}Ein Pro-Server-`timeout` von mindestens 1000 setzt auch das Mindest-Idle-Fenster für die Tool-Aufrufe dieses Servers, sodass `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` sie nie früher abbricht; dieser Floor erfordert Claude Code v2.1.203 oder später. Für die Env-Variable werden Werte unter 1000 auf eine Sekunde begrenzt; für das pro-Server-Feld werden Werte unter 1000 ignoriert |

361| `NO_PROXY` | Liste von Domains und IPs, an die Anfragen direkt gestellt werden, wobei der Proxy umgangen wird |371| `NO_PROXY` | Liste von Domains und IPs, an die Anfragen direkt gestellt werden, wobei der Proxy umgangen wird |

362| `OTEL_LOG_ASSISTANT_RESPONSES` | {/* min-version: 2.1.193 */}Setzen Sie auf `1`, um den Text der Modell-Antwort auf `assistant_response` OpenTelemetry-Protokollereignissen einzubeziehen. Wenn nicht gesetzt, wird der Wert von `OTEL_LOG_USER_PROMPTS` verwendet. Setzen Sie auf `0`, um Antworten redigiert zu halten, auch wenn `OTEL_LOG_USER_PROMPTS` gesetzt ist. Erfordert Claude Code v2.1.193 oder später. Siehe [Überwachung](/de/monitoring-usage#assistant-response-event) |372| `OTEL_LOG_ASSISTANT_RESPONSES` | {/* min-version: 2.1.193 */}Setzen Sie auf `1`, um den Text der Modell-Antwort auf `assistant_response` OpenTelemetry-Protokollereignissen einzubeziehen. Wenn nicht gesetzt, wird der Wert von `OTEL_LOG_USER_PROMPTS` verwendet. Setzen Sie auf `0`, um Antworten redigiert zu halten, auch wenn `OTEL_LOG_USER_PROMPTS` gesetzt ist. Erfordert Claude Code v2.1.193 oder später. Siehe [Überwachung](/de/monitoring-usage#assistant-response-event) |

363| `OTEL_LOG_RAW_API_BODIES` | Geben Sie Anthropic Messages API-Anfrage- und Antwort-JSON als `api_request_body` / `api_response_body`-Protokollereignisse aus. Setzen Sie auf `1` für Inline-Texte, die auf 60 KB gekürzt sind, oder `file:<dir>`, um ungekürzte Texte auf die Festplatte zu schreiben und stattdessen einen `body_ref`-Pfad auszugeben. Standardmäßig deaktiviert; Texte enthalten die gesamte Konversationshistorie. Siehe [Überwachung](/de/monitoring-usage#api-request-body-event) |373| `OTEL_LOG_RAW_API_BODIES` | Geben Sie Anthropic Messages API-Anfrage- und Antwort-JSON als `api_request_body` / `api_response_body`-Protokollereignisse aus. Setzen Sie auf `1` für Inline-Texte, die auf 60 KB gekürzt sind, oder `file:<dir>`, um ungekürzte Texte auf die Festplatte zu schreiben und stattdessen einen `body_ref`-Pfad auszugeben. Standardmäßig deaktiviert; Texte enthalten die gesamte Konversationshistorie. Siehe [Überwachung](/de/monitoring-usage#api-request-body-event) |

hooks.md +63 −63

Details

7> Referenz für Claude Code Hook-Ereignisse, Konfigurationsschema, JSON-Ein-/Ausgabeformate, Exit-Codes, asynchrone Hooks, HTTP-Hooks, Prompt-Hooks und MCP-Tool-Hooks.7> Referenz für Claude Code Hook-Ereignisse, Konfigurationsschema, JSON-Ein-/Ausgabeformate, Exit-Codes, asynchrone Hooks, HTTP-Hooks, Prompt-Hooks und MCP-Tool-Hooks.

8 8 

9<Tip>9<Tip>

10 Eine Schnellstartanleitung mit Beispielen finden Sie unter [Workflows mit Hooks automatisieren](/de/hooks-guide).10 Eine Schnellstartanleitung mit Beispielen finden Sie unter [Workflows mit Hooks automatisieren](/docs/de/hooks-guide).

11</Tip>11</Tip>

12 12 

13Hooks sind benutzerdefinierte Shell-Befehle, HTTP-Endpunkte oder LLM-Prompts, die automatisch an bestimmten Punkten im Lebenszyklus von Claude Code ausgeführt werden. Verwenden Sie diese Referenz, um Ereignisschemas, Konfigurationsoptionen, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks, HTTP-Hooks und MCP-Tool-Hooks nachzuschlagen. Wenn Sie Hooks zum ersten Mal einrichten, beginnen Sie stattdessen mit der [Anleitung](/de/hooks-guide).13Hooks sind benutzerdefinierte Shell-Befehle, HTTP-Endpunkte oder LLM-Prompts, die automatisch an bestimmten Punkten im Lebenszyklus von Claude Code ausgeführt werden. Verwenden Sie diese Referenz, um Ereignisschemas, Konfigurationsoptionen, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks, HTTP-Hooks und MCP-Tool-Hooks nachzuschlagen. Wenn Sie Hooks zum ersten Mal einrichten, beginnen Sie stattdessen mit der [Anleitung](/docs/de/hooks-guide).

14 14 

15<h2 id="hook-lifecycle">15<h2 id="hook-lifecycle">

16 Hook-Lebenszyklus16 Hook-Lebenszyklus


52| `TaskCompleted` | When a task is being marked as completed |52| `TaskCompleted` | When a task is being marked as completed |

53| `Stop` | When Claude finishes responding |53| `Stop` | When Claude finishes responding |

54| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |54| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

55| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |55| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |

56| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |56| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

57| `ConfigChange` | When a configuration file changes during a session |57| `ConfigChange` | When a configuration file changes during a session |

58| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |58| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

59| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |59| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

60| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |60| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |

61| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |61| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |

62| `PreCompact` | Before context compaction |62| `PreCompact` | Before context compaction |

63| `PostCompact` | After context compaction completes |63| `PostCompact` | After context compaction completes |

64| `Elicitation` | When an MCP server requests user input during a tool call |64| `Elicitation` | When an MCP server requests user input during a tool call |


147 }147 }

148 ```148 ```

149 149 

150 Wenn der Befehl eine sicherere `rm`-Variante gewesen wäre, wie `rm file.txt`, würde das Skript stattdessen `exit 0` treffen. Exit-Code 0 ohne Ausgabe bedeutet, dass der Hook keine Entscheidung zu melden hat, daher wird der Tool-Aufruf durch den normalen [Berechtigungsfluss](/de/permissions) fortgesetzt. Der Hook kann den Aufruf ablehnen, aber Stille bedeutet nicht, dass er ihn genehmigt.150 Wenn der Befehl eine sicherere `rm`-Variante gewesen wäre, wie `rm file.txt`, würde das Skript stattdessen `exit 0` treffen. Exit-Code 0 ohne Ausgabe bedeutet, dass der Hook keine Entscheidung zu melden hat, daher wird der Tool-Aufruf durch den normalen [Berechtigungsfluss](/docs/de/permissions) fortgesetzt. Der Hook kann den Aufruf ablehnen, aber Stille bedeutet nicht, dass er ihn genehmigt.

151 </Step>151 </Step>

152 152 

153 <Step title="Claude Code handelt nach dem Ergebnis">153 <Step title="Claude Code handelt nach dem Ergebnis">


185| `.claude/settings.json` | Einzelnes Projekt | Ja, kann im Repo committed werden |185| `.claude/settings.json` | Einzelnes Projekt | Ja, kann im Repo committed werden |

186| `.claude/settings.local.json` | Einzelnes Projekt | Nein, gitignored, wenn Claude Code es erstellt |186| `.claude/settings.local.json` | Einzelnes Projekt | Nein, gitignored, wenn Claude Code es erstellt |

187| Verwaltete Richtlinieneinstellungen | Organisationsweit | Ja, von Admin kontrolliert |187| Verwaltete Richtlinieneinstellungen | Organisationsweit | Ja, von Admin kontrolliert |

188| [Plugin](/de/plugins) `hooks/hooks.json` | Wenn Plugin aktiviert ist | Ja, mit dem Plugin gebündelt |188| [Plugin](/docs/de/plugins) `hooks/hooks.json` | Wenn Plugin aktiviert ist | Ja, mit dem Plugin gebündelt |

189| [Skill](/de/skills) oder [Agent](/de/sub-agents) Frontmatter | Während die Komponente aktiv ist | Ja, in der Komponentendatei definiert |189| [Skill](/docs/de/skills) oder [Agent](/docs/de/sub-agents) Frontmatter | Während die Komponente aktiv ist | Ja, in der Komponentendatei definiert |

190 190 

191Weitere Informationen zur Auflösung von Einstellungsdateien finden Sie unter [Einstellungen](/de/settings). Enterprise-Administratoren können `allowManagedHooksOnly` verwenden, um Benutzer-, Projekt- und Plugin-Hooks zu blockieren. Hooks von Plugins, die in verwalteten Einstellungen `enabledPlugins` erzwungen aktiviert sind, sind ausgenommen, daher können Administratoren überprüfte Hooks über einen Organisations-Marketplace verteilen. Siehe [Hook-Konfiguration](/de/settings#hook-configuration).191Weitere Informationen zur Auflösung von Einstellungsdateien finden Sie unter [Einstellungen](/docs/de/settings). Enterprise-Administratoren können `allowManagedHooksOnly` verwenden, um Benutzer-, Projekt- und Plugin-Hooks zu blockieren. Hooks von Plugins, die in verwalteten Einstellungen `enabledPlugins` erzwungen aktiviert sind, sind ausgenommen, daher können Administratoren überprüfte Hooks über einen Organisations-Marketplace verteilen. Siehe [Hook-Konfiguration](/docs/de/settings#hook-configuration).

192 192 

193<h3 id="matcher-patterns">193<h3 id="matcher-patterns">

194 Matcher-Muster194 Matcher-Muster


258 258 

259`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` und `CwdChanged` unterstützen keine Matcher und werden immer bei jedem Auftreten ausgelöst. Wenn Sie ein `matcher`-Feld zu diesen Ereignissen hinzufügen, wird es stillschweigend ignoriert.259`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` und `CwdChanged` unterstützen keine Matcher und werden immer bei jedem Auftreten ausgelöst. Wenn Sie ein `matcher`-Feld zu diesen Ereignissen hinzufügen, wird es stillschweigend ignoriert.

260 260 

261Für Tool-Ereignisse können Sie enger filtern, indem Sie das Feld [`if`](#common-fields) auf einzelnen Hook-Handlern setzen. `if` verwendet [Berechtigungsregel-Syntax](/de/permissions), um gegen den Tool-Namen und die Argumente zusammen zu passen, daher wird `"Bash(git *)"` ausgeführt, wenn ein Bash-Befehl mit `git *` übereinstimmt und `"Edit(*.ts)"` wird nur für TypeScript-Dateien ausgeführt.261Für Tool-Ereignisse können Sie enger filtern, indem Sie das Feld [`if`](#common-fields) auf einzelnen Hook-Handlern setzen. `if` verwendet [Berechtigungsregel-Syntax](/docs/de/permissions), um gegen den Tool-Namen und die Argumente zusammen zu passen, daher wird `"Bash(git *)"` ausgeführt, wenn ein Bash-Befehl mit `git *` übereinstimmt und `"Edit(*.ts)"` wird nur für TypeScript-Dateien ausgeführt.

262 262 

263<h4 id="match-mcp-tools">263<h4 id="match-mcp-tools">

264 MCP-Tools abgleichen264 MCP-Tools abgleichen

265</h4>265</h4>

266 266 

267[MCP](/de/mcp) Server-Tools erscheinen als reguläre Tools in Tool-Ereignissen (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), daher können Sie sie auf die gleiche Weise abgleichen wie jeden anderen Tool-Namen.267[MCP](/docs/de/mcp) Server-Tools erscheinen als reguläre Tools in Tool-Ereignissen (`PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied`), daher können Sie sie auf die gleiche Weise abgleichen wie jeden anderen Tool-Namen.

268 268 

269MCP-Tools folgen dem Benennungsmuster `mcp__<server>__<tool>`, zum Beispiel:269MCP-Tools folgen dem Benennungsmuster `mcp__<server>__<tool>`, zum Beispiel:

270 270 


280 280 

281Bindestriche in der Exact-Match-Menge erfordern Claude Code v2.1.195 oder später. In früheren Versionen wird ein bloßes hypheniertes Präfix wie `mcp__brave-search` als unverankerte Regex evaluiert und passt zu jedem Tool von diesem Server. Die Form `mcp__brave-search__.*` funktioniert auf jeder Version.281Bindestriche in der Exact-Match-Menge erfordern Claude Code v2.1.195 oder später. In früheren Versionen wird ein bloßes hypheniertes Präfix wie `mcp__brave-search` als unverankerte Regex evaluiert und passt zu jedem Tool von diesem Server. Die Form `mcp__brave-search__.*` funktioniert auf jeder Version.

282 282 

283Tools von einem [Plugin-gebündelten MCP-Server](/de/mcp#plugin-provided-mcp-servers) verwenden ein Scope-Server-Segment, das den Plugin-Namen enthält: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Ein Matcher, der gegen den bloßen Server-Schlüssel geschrieben ist, wird niemals für diese Tools ausgelöst. Für ein Plugin namens `my-plugin`, das einen Server unter dem Schlüssel `db` bündelt, erscheint ein `query`-Tool als `mcp__plugin_my-plugin_db__query`, daher ist der Matcher für jedes Tool von diesem Server `mcp__plugin_my-plugin_db__.*`. Verwenden Sie denselben Scope-Tool-Namen im Feld [`if`](#common-fields) eines Handlers. Siehe [Plugin-bereitgestellte MCP-Server](/de/mcp#plugin-provided-mcp-servers), um zu erfahren, wie der Scope-Name erstellt wird.283Tools von einem [Plugin-gebündelten MCP-Server](/docs/de/mcp#plugin-provided-mcp-servers) verwenden ein Scope-Server-Segment, das den Plugin-Namen enthält: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Ein Matcher, der gegen den bloßen Server-Schlüssel geschrieben ist, wird niemals für diese Tools ausgelöst. Für ein Plugin namens `my-plugin`, das einen Server unter dem Schlüssel `db` bündelt, erscheint ein `query`-Tool als `mcp__plugin_my-plugin_db__query`, daher ist der Matcher für jedes Tool von diesem Server `mcp__plugin_my-plugin_db__.*`. Verwenden Sie denselben Scope-Tool-Namen im Feld [`if`](#common-fields) eines Handlers. Siehe [Plugin-bereitgestellte MCP-Server](/docs/de/mcp#plugin-provided-mcp-servers), um zu erfahren, wie der Scope-Name erstellt wird.

284 284 

285Dieses Beispiel protokolliert alle Memory-Server-Operationen und validiert Schreibvorgänge von jedem MCP-Server:285Dieses Beispiel protokolliert alle Memory-Server-Operationen und validiert Schreibvorgänge von jedem MCP-Server:

286 286 


319 319 

320* **[Command-Hooks](#command-hook-fields)** (`type: "command"`): führen einen Shell-Befehl aus. Ihr Skript erhält die [JSON-Eingabe](#hook-input-and-output) des Ereignisses über stdin und kommuniziert Ergebnisse über Exit-Codes und stdout zurück.320* **[Command-Hooks](#command-hook-fields)** (`type: "command"`): führen einen Shell-Befehl aus. Ihr Skript erhält die [JSON-Eingabe](#hook-input-and-output) des Ereignisses über stdin und kommuniziert Ergebnisse über Exit-Codes und stdout zurück.

321* **[HTTP-Hooks](#http-hook-fields)** (`type: "http"`): senden die [JSON-Eingabe](#hook-input-and-output) des Ereignisses als HTTP-POST-Request an eine URL. Der Endpunkt kommuniziert Ergebnisse über den Response-Body mit dem gleichen [JSON-Ausgabeformat](#json-output) wie Command-Hooks zurück.321* **[HTTP-Hooks](#http-hook-fields)** (`type: "http"`): senden die [JSON-Eingabe](#hook-input-and-output) des Ereignisses als HTTP-POST-Request an eine URL. Der Endpunkt kommuniziert Ergebnisse über den Response-Body mit dem gleichen [JSON-Ausgabeformat](#json-output) wie Command-Hooks zurück.

322* **[MCP-Tool-Hooks](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): rufen ein Tool auf einem bereits verbundenen [MCP-Server](/de/mcp) auf. Die Textausgabe des Tools wird wie Command-Hook-stdout behandelt.322* **[MCP-Tool-Hooks](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): rufen ein Tool auf einem bereits verbundenen [MCP-Server](/docs/de/mcp) auf. Die Textausgabe des Tools wird wie Command-Hook-stdout behandelt.

323* **[Prompt-Hooks](#prompt-and-agent-hook-fields)** (`type: "prompt"`): senden einen Prompt an ein Claude-Modell für eine Single-Turn-Evaluierung. Das Modell gibt eine Ja/Nein-Entscheidung als JSON zurück. Siehe [Prompt-basierte Hooks](#prompt-based-hooks).323* **[Prompt-Hooks](#prompt-and-agent-hook-fields)** (`type: "prompt"`): senden einen Prompt an ein Claude-Modell für eine Single-Turn-Evaluierung. Das Modell gibt eine Ja/Nein-Entscheidung als JSON zurück. Siehe [Prompt-basierte Hooks](#prompt-based-hooks).

324* **[Agent-Hooks](#prompt-and-agent-hook-fields)** (`type: "agent"`): spawnen einen Subagenten, der Tools wie Read, Grep und Glob verwenden kann, um Bedingungen zu überprüfen, bevor eine Entscheidung zurückgegeben wird. Agent-Hooks sind experimentell und können sich ändern. Siehe [Agent-basierte Hooks](#agent-based-hooks).324* **[Agent-Hooks](#prompt-and-agent-hook-fields)** (`type: "agent"`): spawnen einen Subagenten, der Tools wie Read, Grep und Glob verwenden kann, um Bedingungen zu überprüfen, bevor eine Entscheidung zurückgegeben wird. Agent-Hooks sind experimentell und können sich ändern. Siehe [Agent-basierte Hooks](#agent-based-hooks).

325 325 

326Alle passenden Hooks werden parallel ausgeführt, und identische Handler werden automatisch dedupliziert. Command-Hooks werden nach Befehlszeichenkette und `args` dedupliziert, und HTTP-Hooks werden nach URL dedupliziert.326Alle passenden Hooks werden parallel ausgeführt, und identische Handler werden automatisch dedupliziert. Command-Hooks werden nach Befehlszeichenkette und `args` dedupliziert, und HTTP-Hooks werden nach URL dedupliziert.

327 327 

328Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` wird in Remote-Web-Umgebungen auf `"true"` gesetzt und ist in der lokalen CLI nicht gesetzt. {/* min-version: 2.1.199 */}Ab v2.1.199 wird [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/de/env-vars) auf die [Remote Control](/de/remote-control) Sitzungs-ID gesetzt, während die lokale Sitzung eine aktive Remote Control-Verbindung hat.328Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` wird in Remote-Web-Umgebungen auf `"true"` gesetzt und ist in der lokalen CLI nicht gesetzt. {/* min-version: 2.1.199 */}Ab v2.1.199 wird [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/de/env-vars) auf die [Remote Control](/docs/de/remote-control) Sitzungs-ID gesetzt, während die lokale Sitzung eine aktive Remote Control-Verbindung hat.

329 329 

330<h4 id="common-fields">330<h4 id="common-fields">

331 Gemeinsame Felder331 Gemeinsame Felder


336| Feld | Erforderlich | Beschreibung |336| Feld | Erforderlich | Beschreibung |

337| :-------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |337| :-------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

338| `type` | ja | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` oder `"agent"` |338| `type` | ja | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` oder `"agent"` |

339| `if` | nein | Berechtigungsregel-Syntax zum Filtern, wann dieser Hook ausgeführt wird, wie `"Bash(git *)"` oder `"Edit(*.ts)"`. Der Hook wird nur ausgeführt, wenn der Tool-Aufruf dem Muster entspricht. Siehe die [Bash-Matching-Tabelle](#bash-if-matching) unten, um zu sehen, wie Bash-Muster gegen Unterbefehle, `$()` und Backticks evaluiert werden. Wird nur auf Tool-Ereignisse evaluiert: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` und `PermissionDenied`. Bei anderen Ereignissen wird ein Hook mit `if` gesetzt nie ausgeführt. Verwendet die gleiche Syntax wie [Berechtigungsregeln](/de/permissions) |339| `if` | nein | Berechtigungsregel-Syntax zum Filtern, wann dieser Hook ausgeführt wird, wie `"Bash(git *)"` oder `"Edit(*.ts)"`. Der Hook wird nur ausgeführt, wenn der Tool-Aufruf dem Muster entspricht. Siehe die [Bash-Matching-Tabelle](#bash-if-matching) unten, um zu sehen, wie Bash-Muster gegen Unterbefehle, `$()` und Backticks evaluiert werden. Wird nur auf Tool-Ereignisse evaluiert: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` und `PermissionDenied`. Bei anderen Ereignissen wird ein Hook mit `if` gesetzt nie ausgeführt. Verwendet die gleiche Syntax wie [Berechtigungsregeln](/docs/de/permissions) |

340| `timeout` | nein | Sekunden vor dem Abbruch. Standardwerte: 600 für `command`, `http` und `mcp_tool`; 30 für `prompt`; 60 für `agent`. [`UserPromptSubmit`](#userpromptsubmit) senkt den Standardwert für `command`, `http` und `mcp_tool` auf 30, und [`MessageDisplay`](#messagedisplay) senkt ihn auf 10 |340| `timeout` | nein | Sekunden vor dem Abbruch. Standardwerte: 600 für `command`, `http` und `mcp_tool`; 30 für `prompt`; 60 für `agent`. [`UserPromptSubmit`](#userpromptsubmit) senkt den Standardwert für `command`, `http` und `mcp_tool` auf 30, und [`MessageDisplay`](#messagedisplay) senkt ihn auf 10 |

341| `statusMessage` | nein | Benutzerdefinierte Spinner-Nachricht, die angezeigt wird, während der Hook ausgeführt wird |341| `statusMessage` | nein | Benutzerdefinierte Spinner-Nachricht, die angezeigt wird, während der Hook ausgeführt wird |

342| `once` | nein | Wenn `true`, wird nur einmal pro Sitzung ausgeführt und dann entfernt. Nur für Hooks, die in [Skill-Frontmatter](#hooks-in-skills-and-agents) deklariert sind; wird in Einstellungsdateien und Agent-Frontmatter ignoriert |342| `once` | nein | Wenn `true`, wird nur einmal pro Sitzung ausgeführt und dann entfernt. Nur für Hooks, die in [Skill-Frontmatter](#hooks-in-skills-and-agents) deklariert sind; wird in Einstellungsdateien und Agent-Frontmatter ignoriert |


353| `Bash(rm *)` | `echo $(date)` | nein | kein Unterbefehl passt zu `rm *` |353| `Bash(rm *)` | `echo $(date)` | nein | kein Unterbefehl passt zu `rm *` |

354| `Bash(git push *)` | `echo $(date)` | ja | Muster, die mehr als den Befehlsnamen angeben, führen den Hook trotzdem bei `$()`, Backticks oder `$VAR` aus |354| `Bash(git push *)` | `echo $(date)` | ja | Muster, die mehr als den Befehlsnamen angeben, führen den Hook trotzdem bei `$()`, Backticks oder `$VAR` aus |

355 355 

356Der Filter schlägt auch offen fehl und führt Ihren Hook unabhängig vom Muster aus, wenn der Bash-Befehl nicht geparst werden kann. Da der `if`-Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/de/permissions) statt eines Hooks, um ein hartes Zulassen oder Verweigern durchzusetzen.356Der Filter schlägt auch offen fehl und führt Ihren Hook unabhängig vom Muster aus, wenn der Bash-Befehl nicht geparst werden kann. Da der `if`-Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/docs/de/permissions) statt eines Hooks, um ein hartes Zulassen oder Verweigern durchzusetzen.

357 357 

358<h4 id="command-hook-fields">358<h4 id="command-hook-fields">

359 Command-Hook-Felder359 Command-Hook-Felder


406 406 

407Beide Formen unterstützen die gleichen [Pfad-Platzhalter](#reference-scripts-by-path), und beide exportieren sie als Umgebungsvariablen `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` und `CLAUDE_PLUGIN_DATA` auf dem gespawnten Prozess, daher kann ein Skript `process.env.CLAUDE_PLUGIN_ROOT` lesen, unabhängig davon, wie es gestartet wurde.407Beide Formen unterstützen die gleichen [Pfad-Platzhalter](#reference-scripts-by-path), und beide exportieren sie als Umgebungsvariablen `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` und `CLAUDE_PLUGIN_DATA` auf dem gespawnten Prozess, daher kann ein Skript `process.env.CLAUDE_PLUGIN_ROOT` lesen, unabhängig davon, wie es gestartet wurde.

408 408 

409Plugin-Hooks ersetzen zusätzlich [`${user_config.*}`](/de/plugins-reference#user-configuration) Werte, nur in Exec-Form: Der Wert wird als einfache Zeichenkette in `command` und in jedes `args`-Element ersetzt, daher wird er nicht erneut von der Shell geparst.409Plugin-Hooks ersetzen zusätzlich [`${user_config.*}`](/docs/de/plugins-reference#user-configuration) Werte, nur in Exec-Form: Der Wert wird als einfache Zeichenkette in `command` und in jedes `args`-Element ersetzt, daher wird er nicht erneut von der Shell geparst.

410 410 

411Ein Shell-Form-Plugin-Hook, dessen `command` auf `${user_config.*}` verweist, schlägt mit einem [Fehler](/de/errors#plugin-command-references-user-config) fehl, anstatt ausgeführt zu werden. Um einen Optionswert aus einem Shell-Form-Hook zu verwenden, lesen Sie die Umgebungsvariable `$CLAUDE_PLUGIN_OPTION_<KEY>`, wie `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` für eine `webhook_url`-Option, oder setzen Sie `args`, um den Hook auf Exec-Form umzuschalten. Vor v2.1.207 ersetzten Shell-Form-Plugin-Hook-Befehle auch `${user_config.*}`.411Ein Shell-Form-Plugin-Hook, dessen `command` auf `${user_config.*}` verweist, schlägt mit einem [Fehler](/docs/de/errors#plugin-command-references-user-config) fehl, anstatt ausgeführt zu werden. Um einen Optionswert aus einem Shell-Form-Hook zu verwenden, lesen Sie die Umgebungsvariable `$CLAUDE_PLUGIN_OPTION_<KEY>`, wie `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` für eine `webhook_url`-Option, oder setzen Sie `args`, um den Hook auf Exec-Form umzuschalten. Vor v2.1.207 ersetzten Shell-Form-Plugin-Hook-Befehle auch `${user_config.*}`.

412 412 

413<Note>413<Note>

414 In Exec-Form ist `command` nur der ausführbare Name oder Pfad. Wenn `command` ein bloßer Name ohne Pfad-Trennzeichen ist und Leerzeichen neben `args` enthält, protokolliert Claude Code eine Warnung, da das Spawn fehlschlagen wird: Es gibt keine ausführbare Datei namens `node script.js`. Verschieben Sie die zusätzlichen Token in `args`. Absolute Pfade mit Leerzeichen, wie `C:\Program Files\nodejs\node.exe`, sind eine einzelne gültige ausführbare Datei und lösen die Warnung nicht aus.414 In Exec-Form ist `command` nur der ausführbare Name oder Pfad. Wenn `command` ein bloßer Name ohne Pfad-Trennzeichen ist und Leerzeichen neben `args` enthält, protokolliert Claude Code eine Warnung, da das Spawn fehlschlagen wird: Es gibt keine ausführbare Datei namens `node script.js`. Verschieben Sie die zusätzlichen Token in `args`. Absolute Pfade mit Leerzeichen, wie `C:\Program Files\nodejs\node.exe`, sind eine einzelne gültige ausführbare Datei und lösen die Warnung nicht aus.


463 463 

464| Feld | Erforderlich | Beschreibung |464| Feld | Erforderlich | Beschreibung |

465| :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |465| :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

466| `server` | ja | Name eines konfigurierten MCP-Servers. Für einen [Plugin-gebündelten Server](/de/mcp#plugin-provided-mcp-servers) ist dies der Scope-Name `plugin:<plugin-name>:<server-name>`, wie `plugin:my-plugin:db`, nicht der bloße Server-Schlüssel. Der Server muss bereits verbunden sein; der Hook löst niemals einen OAuth- oder Verbindungsfluss aus |466| `server` | ja | Name eines konfigurierten MCP-Servers. Für einen [Plugin-gebündelten Server](/docs/de/mcp#plugin-provided-mcp-servers) ist dies der Scope-Name `plugin:<plugin-name>:<server-name>`, wie `plugin:my-plugin:db`, nicht der bloße Server-Schlüssel. Der Server muss bereits verbunden sein; der Hook löst niemals einen OAuth- oder Verbindungsfluss aus |

467| `tool` | ja | Name des Tools, das auf diesem Server aufgerufen werden soll |467| `tool` | ja | Name des Tools, das auf diesem Server aufgerufen werden soll |

468| `input` | nein | Argumente, die an das Tool übergeben werden. String-Werte unterstützen `${path}`-Substitution aus der [JSON-Eingabe](#hook-input-and-output) des Hooks, wie `"${tool_input.file_path}"` |468| `input` | nein | Argumente, die an das Tool übergeben werden. String-Werte unterstützen `${path}`-Substitution aus der [JSON-Eingabe](#hook-input-and-output) des Hooks, wie `"${tool_input.file_path}"` |

469 469 


510 510 

511Verwenden Sie diese Platzhalter, um Hook-Skripte relativ zum Projekt- oder Plugin-Root zu referenzieren, unabhängig vom Arbeitsverzeichnis, wenn der Hook ausgeführt wird:511Verwenden Sie diese Platzhalter, um Hook-Skripte relativ zum Projekt- oder Plugin-Root zu referenzieren, unabhängig vom Arbeitsverzeichnis, wenn der Hook ausgeführt wird:

512 512 

513* `${CLAUDE_PROJECT_DIR}`: das Projekt-Root. Claude Code setzt diese Variable auch in der Umgebung von [stdio MCP-Servern](/de/mcp#option-3-add-a-local-stdio-server) und Plugin-LSP-Servern.513* `${CLAUDE_PROJECT_DIR}`: das Projekt-Root. Claude Code setzt diese Variable auch in der Umgebung von [stdio MCP-Servern](/docs/de/mcp#option-3-add-a-local-stdio-server) und Plugin-LSP-Servern.

514* `${CLAUDE_PLUGIN_ROOT}`: das Installationsverzeichnis des Plugins, für Skripte, die mit einem [Plugin](/de/plugins) gebündelt sind. Ändert sich bei jedem Plugin-Update.514* `${CLAUDE_PLUGIN_ROOT}`: das Installationsverzeichnis des Plugins, für Skripte, die mit einem [Plugin](/docs/de/plugins) gebündelt sind. Ändert sich bei jedem Plugin-Update.

515* `${CLAUDE_PLUGIN_DATA}`: das [persistente Datenverzeichnis](/de/plugins-reference#persistent-data-directory) des Plugins, für Abhängigkeiten und Zustand, die Plugin-Updates überstehen sollten.515* `${CLAUDE_PLUGIN_DATA}`: das [persistente Datenverzeichnis](/docs/de/plugins-reference#persistent-data-directory) des Plugins, für Abhängigkeiten und Zustand, die Plugin-Updates überstehen sollten.

516 516 

517Bevorzugen Sie [Exec-Form](#exec-form-and-shell-form) für jeden Hook, der auf einen Pfad-Platzhalter verweist. Exec-Form übergibt jedes `args`-Element als ein Argument ohne Shell-Tokenisierung, daher benötigen Pfade mit Leerzeichen oder Sonderzeichen keine Anführungszeichen. In Shell-Form wickeln Sie jeden Platzhalter in doppelte Anführungszeichen ein.517Bevorzugen Sie [Exec-Form](#exec-form-and-shell-form) für jeden Hook, der auf einen Pfad-Platzhalter verweist. Exec-Form übergibt jedes `args`-Element als ein Argument ohne Shell-Tokenisierung, daher benötigen Pfade mit Leerzeichen oder Sonderzeichen keine Anführungszeichen. In Shell-Form wickeln Sie jeden Platzhalter in doppelte Anführungszeichen ein.

518 518 


566 }566 }

567 ```567 ```

568 568 

569 Siehe die [Plugin-Komponenten-Referenz](/de/plugins-reference#hooks) für Details zum Erstellen von Plugin-Hooks.569 Siehe die [Plugin-Komponenten-Referenz](/docs/de/plugins-reference#hooks) für Details zum Erstellen von Plugin-Hooks.

570 </Tab>570 </Tab>

571</Tabs>571</Tabs>

572 572 


574 Hooks in Skills und Agents574 Hooks in Skills und Agents

575</h3>575</h3>

576 576 

577Zusätzlich zu Einstellungsdateien und Plugins können Hooks direkt in [Skills](/de/skills) und [Subagenten](/de/sub-agents) mit Frontmatter definiert werden. Diese Hooks sind auf den Lebenszyklus der Komponente beschränkt und werden nur ausgeführt, wenn diese Komponente aktiv ist.577Zusätzlich zu Einstellungsdateien und Plugins können Hooks direkt in [Skills](/docs/de/skills) und [Subagenten](/docs/de/sub-agents) mit Frontmatter definiert werden. Diese Hooks sind auf den Lebenszyklus der Komponente beschränkt und werden nur ausgeführt, wenn diese Komponente aktiv ist.

578 578 

579Alle Hook-Ereignisse werden unterstützt. Für Subagenten werden `Stop`-Hooks automatisch in `SubagentStop` konvertiert, da dies das Ereignis ist, das ausgelöst wird, wenn ein Subagent fertig ist.579Alle Hook-Ereignisse werden unterstützt. Für Subagenten werden `Stop`-Hooks automatisch in `SubagentStop` konvertiert, da dies das Ereignis ist, das ausgelöst wird, wenn ein Subagent fertig ist.

580 580 


643| Feld | Beschreibung |643| Feld | Beschreibung |

644| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |644| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

645| `session_id` | Aktuelle Sitzungs-ID |645| `session_id` | Aktuelle Sitzungs-ID |

646| `prompt_id` | UUID, die die aktuell verarbeitete Benutzereingabeaufforderung identifiziert. Entspricht dem [`prompt.id`-Attribut bei OpenTelemetry-Ereignissen](/de/monitoring-usage#event-correlation-attributes), sodass Sie Hook-Ausgabe mit Telemetrie für eine einzelne Eingabeaufforderung korrelieren können. Nicht vorhanden, bis zur ersten Benutzereingabe. {/* min-version: 2.1.196 */}Erfordert Claude Code v2.1.196 oder später |646| `prompt_id` | UUID, die die aktuell verarbeitete Benutzereingabeaufforderung identifiziert. Entspricht dem [`prompt.id`-Attribut bei OpenTelemetry-Ereignissen](/docs/de/monitoring-usage#event-correlation-attributes), sodass Sie Hook-Ausgabe mit Telemetrie für eine einzelne Eingabeaufforderung korrelieren können. Nicht vorhanden, bis zur ersten Benutzereingabe. {/* min-version: 2.1.196 */}Erfordert Claude Code v2.1.196 oder später |

647| `transcript_path` | Pfad zur Gesprächs-JSON. Die Transkriptdatei wird asynchron geschrieben und kann der In-Memory-Konversation hinterherhinken, sodass sie möglicherweise noch nicht die neuesten Nachrichten des aktuellen Zugs enthält, wenn ein Hook ausgelöst wird. Hooks, die den endgültigen Assistententext des aktuellen Zugs benötigen, sollten `last_assistant_message` auf [Stop](#stop) und [SubagentStop](#subagentstop) verwenden, anstatt das Transkript zu lesen |647| `transcript_path` | Pfad zur Gesprächs-JSON. Die Transkriptdatei wird asynchron geschrieben und kann der In-Memory-Konversation hinterherhinken, sodass sie möglicherweise noch nicht die neuesten Nachrichten des aktuellen Zugs enthält, wenn ein Hook ausgelöst wird. Hooks, die den endgültigen Assistententext des aktuellen Zugs benötigen, sollten `last_assistant_message` auf [Stop](#stop) und [SubagentStop](#subagentstop) verwenden, anstatt das Transkript zu lesen |

648| `cwd` | Aktuelles Arbeitsverzeichnis, wenn der Hook aufgerufen wird |648| `cwd` | Aktuelles Arbeitsverzeichnis, wenn der Hook aufgerufen wird |

649| `permission_mode` | Aktueller [Berechtigungsmodus](/de/permissions#permission-modes): `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` oder `"bypassPermissions"`. Der als **Manuell** bezeichnete Modus kommt als `"default"` an, nie als `"manual"`, sodass Skripte, die `"default"` abgleichen, weiterhin funktionieren. Nicht alle Ereignisse erhalten dieses Feld. Überprüfen Sie das JSON-Beispiel in jedem Abschnitt [Hook-Ereignis](#hook-events) |649| `permission_mode` | Aktueller [Berechtigungsmodus](/docs/de/permissions#permission-modes): `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` oder `"bypassPermissions"`. Der als **Manuell** bezeichnete Modus kommt als `"default"` an, nie als `"manual"`, sodass Skripte, die `"default"` abgleichen, weiterhin funktionieren. Nicht alle Ereignisse erhalten dieses Feld. Überprüfen Sie das JSON-Beispiel in jedem Abschnitt [Hook-Ereignis](#hook-events) |

650| `effort` | Objekt mit einem `level`-Feld, das die aktive [Anstrengungsstufe](/de/model-config#adjust-effort-level) für den Zug enthält: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Wenn die angeforderte Modell-Anstrengung das überschreitet, was das aktuelle Modell unterstützt, ist dies die herabgestufte Stufe, die das Modell tatsächlich verwendet hat. Ultracode ist keine separate Stufe und wird als `"xhigh"` gemeldet. Das Objekt entspricht dem [Statuszeilen](/de/statusline#available-data)-Feld `effort`. Vorhanden für Ereignisse, die innerhalb eines Tool-Use-Kontexts ausgelöst werden, wie `PreToolUse`, `PostToolUse`, `Stop` und `SubagentStop`, wenn das aktuelle Modell den Anstrengungsparameter unterstützt. Die Stufe ist auch für Hook-Befehle und das Bash-Tool als die Umgebungsvariable `$CLAUDE_EFFORT` verfügbar. |650| `effort` | Objekt mit einem `level`-Feld, das die aktive [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) für den Zug enthält: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Wenn die angeforderte Modell-Anstrengung das überschreitet, was das aktuelle Modell unterstützt, ist dies die herabgestufte Stufe, die das Modell tatsächlich verwendet hat. Ultracode ist keine separate Stufe und wird als `"xhigh"` gemeldet. Das Objekt entspricht dem [Statuszeilen](/docs/de/statusline#available-data)-Feld `effort`. Vorhanden für Ereignisse, die innerhalb eines Tool-Use-Kontexts ausgelöst werden, wie `PreToolUse`, `PostToolUse`, `Stop` und `SubagentStop`, wenn das aktuelle Modell den Anstrengungsparameter unterstützt. Die Stufe ist auch für Hook-Befehle und das Bash-Tool als die Umgebungsvariable `$CLAUDE_EFFORT` verfügbar. |

651| `hook_event_name` | Name des ausgelösten Ereignisses |651| `hook_event_name` | Name des ausgelösten Ereignisses |

652 652 

653Wenn mit `--agent` oder innerhalb eines Subagenten ausgeführt, sind zwei zusätzliche Felder enthalten:653Wenn mit `--agent` oder innerhalb eines Subagenten ausgeführt, sind zwei zusätzliche Felder enthalten:


655| Feld | Beschreibung |655| Feld | Beschreibung |

656| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |656| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

657| `agent_id` | Eindeutige Kennung für den Subagenten. Nur vorhanden, wenn der Hook innerhalb eines Subagenten-Aufrufs ausgelöst wird. Verwenden Sie dies, um Subagenten-Hook-Aufrufe von Main-Thread-Aufrufen zu unterscheiden. |657| `agent_id` | Eindeutige Kennung für den Subagenten. Nur vorhanden, wenn der Hook innerhalb eines Subagenten-Aufrufs ausgelöst wird. Verwenden Sie dies, um Subagenten-Hook-Aufrufe von Main-Thread-Aufrufen zu unterscheiden. |

658| `agent_type` | Agent-Name (zum Beispiel `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Sitzung `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Sitzung. Für [benutzerdefinierte Subagenten](/de/sub-agents) ist dies das `name`-Feld aus dem Frontmatter des Agenten, nicht der Dateiname. Für Subagenten, die von einem [Plugin](/de/plugins) bereitgestellt werden, ist dies die Plugin-bezogene Kennung wie `my-plugin:reviewer`, nicht der bloße Frontmatter-Name. Siehe [SubagentStart](#subagentstart), um zu erfahren, wie Sie einen Matcher gegen einen Plugin-bezogenen Namen schreiben. |658| `agent_type` | Agent-Name (zum Beispiel `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Sitzung `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Sitzung. Für [benutzerdefinierte Subagenten](/docs/de/sub-agents) ist dies das `name`-Feld aus dem Frontmatter des Agenten, nicht der Dateiname. Für Subagenten, die von einem [Plugin](/docs/de/plugins) bereitgestellt werden, ist dies die Plugin-bezogene Kennung wie `my-plugin:reviewer`, nicht der bloße Frontmatter-Name. Siehe [SubagentStart](#subagentstart), um zu erfahren, wie Sie einen Matcher gegen einen Plugin-bezogenen Namen schreiben. |

659 659 

660Nur [`SessionStart`](#sessionstart)-Hooks können ein `model`-Feld erhalten, und es ist nicht garantiert, dass es vorhanden ist. Es gibt keine `$CLAUDE_MODEL`-Umgebungsvariable. Ein Hook-Prozess erbt die übergeordnete Umgebung, sodass er `$ANTHROPIC_MODEL` lesen kann, wenn Sie sie in Ihrer Shell setzen, aber dieser Wert ändert sich nicht, wenn Sie während einer Sitzung mit `/model` Modelle wechseln. Ein Satz von Variablen wird nicht vererbt: Claude Code [entfernt `OTEL_*`-Exportervariablen aus jedem Unterprozess, den es spawnt](/de/monitoring-usage#administrator-configuration), einschließlich Hooks.660Nur [`SessionStart`](#sessionstart)-Hooks können ein `model`-Feld erhalten, und es ist nicht garantiert, dass es vorhanden ist. Es gibt keine `$CLAUDE_MODEL`-Umgebungsvariable. Ein Hook-Prozess erbt die übergeordnete Umgebung, sodass er `$ANTHROPIC_MODEL` lesen kann, wenn Sie sie in Ihrer Shell setzen, aber dieser Wert ändert sich nicht, wenn Sie während einer Sitzung mit `/model` Modelle wechseln. Ein Satz von Variablen wird nicht vererbt: Claude Code [entfernt `OTEL_*`-Exportervariablen aus jedem Unterprozess, den es spawnt](/docs/de/monitoring-usage#administrator-configuration), einschließlich Hooks.

661 661 

662Zum Beispiel erhält ein `PreToolUse`-Hook für einen Bash-Befehl dies über stdin:662Zum Beispiel erhält ein `PreToolUse`-Hook für einen Bash-Befehl dies über stdin:

663 663 


776 Sie müssen einen Ansatz pro Hook wählen, nicht beide: Verwenden Sie entweder Exit-Codes allein zum Signalisieren, oder beenden Sie mit 0 und geben Sie JSON für strukturierte Kontrolle aus. Claude Code verarbeitet JSON nur bei Exit 0. Wenn Sie mit 2 beenden, wird jede JSON ignoriert.776 Sie müssen einen Ansatz pro Hook wählen, nicht beide: Verwenden Sie entweder Exit-Codes allein zum Signalisieren, oder beenden Sie mit 0 und geben Sie JSON für strukturierte Kontrolle aus. Claude Code verarbeitet JSON nur bei Exit 0. Wenn Sie mit 2 beenden, wird jede JSON ignoriert.

777</Note>777</Note>

778 778 

779Die stdout Ihres Hooks darf nur das JSON-Objekt enthalten. Wenn Ihr Shell-Profil beim Start Text ausgibt, kann dies die JSON-Analyse beeinträchtigen. Siehe [JSON-Validierung fehlgeschlagen](/de/hooks-guide#json-validation-failed) in der Fehlerbehebungsanleitung.779Die stdout Ihres Hooks darf nur das JSON-Objekt enthalten. Wenn Ihr Shell-Profil beim Start Text ausgibt, kann dies die JSON-Analyse beeinträchtigen. Siehe [JSON-Validierung fehlgeschlagen](/docs/de/hooks-guide#json-validation-failed) in der Fehlerbehebungsanleitung.

780 780 

781Hook-Ausgabe-Strings, einschließlich `additionalContext`, `systemMessage` und Plain-stdout, sind auf 10.000 Zeichen begrenzt. Ausgabe, die dieses Limit überschreitet, wird in einer Datei gespeichert und durch eine Vorschau und einen Dateipfad ersetzt, auf die gleiche Weise wie große Tool-Ergebnisse behandelt werden.781Hook-Ausgabe-Strings, einschließlich `additionalContext`, `systemMessage` und Plain-stdout, sind auf 10.000 Zeichen begrenzt. Ausgabe, die dieses Limit überschreitet, wird in einer Datei gespeichert und durch eine Vorschau und einen Dateipfad ersetzt, auf die gleiche Weise wie große Tool-Ergebnisse behandelt werden.

782 782 


868* **Bedingte Projektregeln**: welcher Test-Befehl für die gerade bearbeitete Datei gilt, welche Verzeichnisse in diesem Worktree schreibgeschützt sind868* **Bedingte Projektregeln**: welcher Test-Befehl für die gerade bearbeitete Datei gilt, welche Verzeichnisse in diesem Worktree schreibgeschützt sind

869* **Externe Daten**: offene Probleme, die Ihnen zugewiesen sind, aktuelle CI-Ergebnisse, Inhalte, die von einem internen Service abgerufen wurden869* **Externe Daten**: offene Probleme, die Ihnen zugewiesen sind, aktuelle CI-Ergebnisse, Inhalte, die von einem internen Service abgerufen wurden

870 870 

871Für Anweisungen, die sich nie ändern, bevorzugen Sie [CLAUDE.md](/de/memory). Es wird ohne Ausführung eines Skripts geladen und ist der Standardort für statische Projektkonventionen.871Für Anweisungen, die sich nie ändern, bevorzugen Sie [CLAUDE.md](/docs/de/memory). Es wird ohne Ausführung eines Skripts geladen und ist der Standardort für statische Projektkonventionen.

872 872 

873Schreiben Sie den Text als sachliche Aussagen statt als imperative Systembefehle. Formulierungen wie „Das Bereitstellungsziel ist Produktion" oder „Dieses Repo verwendet `bun test`" werden als Projektinformationen gelesen. Text, der als Out-of-Band-Systembefehle formuliert ist, kann Claudes Prompt-Injection-Abwehr auslösen, was dazu führt, dass Claude den Text an Sie zurückgibt, anstatt ihn als Kontext zu behandeln.873Schreiben Sie den Text als sachliche Aussagen statt als imperative Systembefehle. Formulierungen wie „Das Bereitstellungsziel ist Produktion" oder „Dieses Repo verwendet `bun test`" werden als Projektinformationen gelesen. Text, der als Out-of-Band-Systembefehle formuliert ist, kann Claudes Prompt-Injection-Abwehr auslösen, was dazu führt, dass Claude den Text an Sie zurückgibt, anstatt ihn als Kontext zu behandeln.

874 874 


950 </Tab>950 </Tab>

951</Tabs>951</Tabs>

952 952 

953Erweiterte Beispiele einschließlich Bash-Befehlsvalidierung, Prompt-Filterung und Auto-Genehmigungsskripte finden Sie unter [Was Sie automatisieren können](/de/hooks-guide#what-you-can-automate) in der Anleitung und der [Bash-Befehlsvalidierungs-Referenzimplementierung](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).953Erweiterte Beispiele einschließlich Bash-Befehlsvalidierung, Prompt-Filterung und Auto-Genehmigungsskripte finden Sie unter [Was Sie automatisieren können](/docs/de/hooks-guide#what-you-can-automate) in der Anleitung und der [Bash-Befehlsvalidierungs-Referenzimplementierung](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

954 954 

955<h2 id="hook-events">955<h2 id="hook-events">

956 Hook-Ereignisse956 Hook-Ereignisse


962 SessionStart962 SessionStart

963</h3>963</h3>

964 964 

965Wird ausgeführt, wenn Claude Code eine neue Sitzung startet oder eine vorhandene Sitzung fortsetzt. Nützlich zum Laden von Entwicklungskontext wie vorhandenen Problemen oder kürzlichen Änderungen an Ihrer Codebasis oder zum Einrichten von Umgebungsvariablen. Für statischen Kontext, der kein Skript erfordert, verwenden Sie stattdessen [CLAUDE.md](/de/memory).965Wird ausgeführt, wenn Claude Code eine neue Sitzung startet oder eine vorhandene Sitzung fortsetzt. Nützlich zum Laden von Entwicklungskontext wie vorhandenen Problemen oder kürzlichen Änderungen an Ihrer Codebasis oder zum Einrichten von Umgebungsvariablen. Für statischen Kontext, der kein Skript erfordert, verwenden Sie stattdessen [CLAUDE.md](/docs/de/memory).

966 966 

967SessionStart wird bei jeder Sitzung ausgeführt, daher halten Sie diese Hooks schnell. Nur `type: "command"` und `type: "mcp_tool"` Hooks werden unterstützt.967SessionStart wird bei jeder Sitzung ausgeführt, daher halten Sie diese Hooks schnell. Nur `type: "command"` und `type: "mcp_tool"` Hooks werden unterstützt.

968 968 


1008| Feld | Beschreibung |1008| Feld | Beschreibung |

1009| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1009| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1010| `additionalContext` | Zeichenkette, die zu Claudes Kontext am Anfang des Gesprächs hinzugefügt wird, vor dem ersten Prompt. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude), um zu erfahren, wie der Text bereitgestellt wird und was Sie darin einfügen sollten |1010| `additionalContext` | Zeichenkette, die zu Claudes Kontext am Anfang des Gesprächs hinzugefügt wird, vor dem ersten Prompt. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude), um zu erfahren, wie der Text bereitgestellt wird und was Sie darin einfügen sollten |

1011| `initialUserMessage` | Zeichenkette, die als erste Benutzernachricht der Sitzung verwendet wird. Gilt im [nicht-interaktiven Modus](/de/headless) mit dem `-p`-Flag, wo sie zur ersten Runde wird, auch wenn kein Prompt bereitgestellt wird. Wenn ein Prompt bereitgestellt wird, folgt er als nächste Runde. Im Gegensatz zu `additionalContext`, das an eine vorhandene Runde angehängt wird, erstellt dies die Runde |1011| `initialUserMessage` | Zeichenkette, die als erste Benutzernachricht der Sitzung verwendet wird. Gilt im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag, wo sie zur ersten Runde wird, auch wenn kein Prompt bereitgestellt wird. Wenn ein Prompt bereitgestellt wird, folgt er als nächste Runde. Im Gegensatz zu `additionalContext`, das an eine vorhandene Runde angehängt wird, erstellt dies die Runde |

1012| `sessionTitle` | Setzt den Sitzungstitel, mit der gleichen Auswirkung wie `/rename`. Verwenden Sie, um Sitzungen automatisch aus dem Start-Ordner, Git-Branch oder Worktree-Namen zu benennen. Gilt nur, wenn `source` `"startup"` oder `"resume"` ist; wird bei `"clear"` und `"compact"` ignoriert |1012| `sessionTitle` | Setzt den Sitzungstitel, mit der gleichen Auswirkung wie `/rename`. Verwenden Sie, um Sitzungen automatisch aus dem Start-Ordner, Git-Branch oder Worktree-Namen zu benennen. Gilt nur, wenn `source` `"startup"` oder `"resume"` ist; wird bei `"clear"` und `"compact"` ignoriert |

1013| `watchPaths` | Array von absoluten Pfaden zum Überwachen von [FileChanged](#filechanged)-Ereignissen während dieser Sitzung |1013| `watchPaths` | Array von absoluten Pfaden zum Überwachen von [FileChanged](#filechanged)-Ereignissen während dieser Sitzung |

1014| `reloadSkills` | Boolesch. Wenn `true`, scannt Claude Code die [Skill](/de/skills)- und Befehlsverzeichnisse erneut, nachdem die SessionStart-Hooks abgeschlossen sind, damit Skills, die der Hook installiert hat, in der gleichen Sitzung verfügbar sind, beginnend mit dem ersten Prompt |1014| `reloadSkills` | Boolesch. Wenn `true`, scannt Claude Code die [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, nachdem die SessionStart-Hooks abgeschlossen sind, damit Skills, die der Hook installiert hat, in der gleichen Sitzung verfügbar sind, beginnend mit dem ersten Prompt |

1015 1015 

1016```json theme={null}1016```json theme={null}

1017{1017{


1085 Setup1085 Setup

1086</h3>1086</h3>

1087 1087 

1088Wird nur ausgelöst, wenn Sie Claude Code mit `--init-only` starten oder mit `--init` oder `--maintenance` im [nicht-interaktiven Modus](/de/headless) mit dem `-p`-Flag. Es wird nicht beim normalen Start ausgelöst. Verwenden Sie es für einmalige Abhängigkeitsinstallation oder geplante Bereinigung, die Sie explizit von CI oder Skripten aus auslösen, getrennt vom normalen Sitzungsstart. Für Initialisierung pro Sitzung verwenden Sie stattdessen [SessionStart](#sessionstart).1088Wird nur ausgelöst, wenn Sie Claude Code mit `--init-only` starten oder mit `--init` oder `--maintenance` im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag. Es wird nicht beim normalen Start ausgelöst. Verwenden Sie es für einmalige Abhängigkeitsinstallation oder geplante Bereinigung, die Sie explizit von CI oder Skripten aus auslösen, getrennt vom normalen Sitzungsstart. Für Initialisierung pro Sitzung verwenden Sie stattdessen [SessionStart](#sessionstart).

1089 1089 

1090Der Matcher-Wert entspricht dem CLI-Flag, das den Hook ausgelöst hat:1090Der Matcher-Wert entspricht dem CLI-Flag, das den Hook ausgelöst hat:

1091 1091 


1096 1096 

1097`--init-only` führt Setup-Hooks und SessionStart-Hooks mit dem `startup`-Matcher aus und beendet sich dann, ohne ein Gespräch zu starten. `--init` und `--maintenance` lösen Setup-Hooks nur aus, wenn sie mit `-p` kombiniert werden; in einer interaktiven Sitzung lösen diese beiden Flags derzeit keine Setup-Hooks aus.1097`--init-only` führt Setup-Hooks und SessionStart-Hooks mit dem `startup`-Matcher aus und beendet sich dann, ohne ein Gespräch zu starten. `--init` und `--maintenance` lösen Setup-Hooks nur aus, wenn sie mit `-p` kombiniert werden; in einer interaktiven Sitzung lösen diese beiden Flags derzeit keine Setup-Hooks aus.

1098 1098 

1099Da Setup nicht bei jedem Start ausgelöst wird, kann ein Plugin, das eine Abhängigkeit installiert benötigt, sich nicht allein auf Setup verlassen. Das praktische Muster ist, die Abhängigkeit bei der ersten Verwendung zu überprüfen und bei Fehlen zu installieren, zum Beispiel ein Hook oder eine Skill, die auf `${CLAUDE_PLUGIN_DATA}/node_modules` testet und `npm install` ausführt, wenn es fehlt. Siehe das [Verzeichnis für persistente Daten](/de/plugins-reference#persistent-data-directory), um zu erfahren, wo Sie installierte Abhängigkeiten speichern können.1099Da Setup nicht bei jedem Start ausgelöst wird, kann ein Plugin, das eine Abhängigkeit installiert benötigt, sich nicht allein auf Setup verlassen. Das praktische Muster ist, die Abhängigkeit bei der ersten Verwendung zu überprüfen und bei Fehlen zu installieren, zum Beispiel ein Hook oder eine Skill, die auf `${CLAUDE_PLUGIN_DATA}/node_modules` testet und `npm install` ausführt, wenn es fehlt. Siehe das [Verzeichnis für persistente Daten](/docs/de/plugins-reference#persistent-data-directory), um zu erfahren, wo Sie installierte Abhängigkeiten speichern können.

1100 1100 

1101<h4 id="setup-input">1101<h4 id="setup-input">

1102 Setup-Eingabe1102 Setup-Eingabe


1118 Setup-Entscheidungskontrolle1118 Setup-Entscheidungskontrolle

1119</h4>1119</h4>

1120 1120 

1121Setup-Hooks können nicht blockieren. Jeder Nicht-Null-Exit-Code, einschließlich 2, zeigt stderr dem Benutzer als `<hook name> hook error`-Hinweis an, und die Ausführung wird fortgesetzt. Im [nicht-interaktiven Modus](/de/headless) wird Hook-Ausgabe nur angezeigt, wenn Sie mit `--verbose` starten.1121Setup-Hooks können nicht blockieren. Jeder Nicht-Null-Exit-Code, einschließlich 2, zeigt stderr dem Benutzer als `<hook name> hook error`-Hinweis an, und die Ausführung wird fortgesetzt. Im [nicht-interaktiven Modus](/docs/de/headless) wird Hook-Ausgabe nur angezeigt, wenn Sie mit `--verbose` starten.

1122 1122 

1123Um Informationen in Claudes Kontext zu übergeben, geben Sie `additionalContext` in der JSON-Ausgabe zurück; einfacher stdout wird nur in das Debug-Protokoll geschrieben. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die für alle Hooks verfügbar sind, können Sie diese ereignisspezifischen Felder zurückgeben:1123Um Informationen in Claudes Kontext zu übergeben, geben Sie `additionalContext` in der JSON-Ausgabe zurück; einfacher stdout wird nur in das Debug-Protokoll geschrieben. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die für alle Hooks verfügbar sind, können Sie diese ereignisspezifischen Felder zurückgeben:

1124 1124 


1188 1188 

1189Ein `UserPromptSubmit`-Hook, der sein Timeout erreicht, wird abgebrochen und seine Ausgabe, einschließlich aller `additionalContext`, wird verworfen. Der Prompt erreicht Claude immer noch ohne diesen Kontext. Ab v2.1.196 zeigt das Transkript einen Hinweis, der den Hook, das ausgelöste Timeout und dass die Ausgabe verworfen wurde, benennt. Frühere Versionen brechen den Hook ohne Hinweis ab.1189Ein `UserPromptSubmit`-Hook, der sein Timeout erreicht, wird abgebrochen und seine Ausgabe, einschließlich aller `additionalContext`, wird verworfen. Der Prompt erreicht Claude immer noch ohne diesen Kontext. Ab v2.1.196 zeigt das Transkript einen Hinweis, der den Hook, das ausgelöste Timeout und dass die Ausgabe verworfen wurde, benennt. Frühere Versionen brechen den Hook ohne Hinweis ab.

1190 1190 

1191Ein [Agent SDK-Callback-Hook](/de/agent-sdk/hooks) auf `UserPromptSubmit`, der sein Timeout erreicht, blockiert den Prompt mit einer Nachricht, die den Hook und das Timeout benennt, da ein Callback dort als Richtlinien-Gate fungieren kann, das nicht offen fehlschlagen darf. Die Sitzung wird fortgesetzt. Vor v2.1.208 endete ein Callback-Timeout bei diesem Ereignis die Runde mit einem Ausführungsfehler.1191Ein [Agent SDK-Callback-Hook](/docs/de/agent-sdk/hooks) auf `UserPromptSubmit`, der sein Timeout erreicht, blockiert den Prompt mit einer Nachricht, die den Hook und das Timeout benennt, da ein Callback dort als Richtlinien-Gate fungieren kann, das nicht offen fehlschlagen darf. Die Sitzung wird fortgesetzt. Vor v2.1.208 endete ein Callback-Timeout bei diesem Ereignis die Runde mit einem Ausführungsfehler.

1192 1192 

1193<h4 id="userpromptsubmit-input">1193<h4 id="userpromptsubmit-input">

1194 UserPromptSubmit-Eingabe1194 UserPromptSubmit-Eingabe


1443Wird ausgeführt, nachdem Claude Tool-Parameter erstellt hat und bevor der Tool-Aufruf verarbeitet wird. Passt auf Tool-Namen: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` und alle [MCP-Tool-Namen](#match-mcp-tools).1443Wird ausgeführt, nachdem Claude Tool-Parameter erstellt hat und bevor der Tool-Aufruf verarbeitet wird. Passt auf Tool-Namen: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` und alle [MCP-Tool-Namen](#match-mcp-tools).

1444 1444 

1445<Warning>1445<Warning>

1446 PreToolUse wird nur ausgeführt, wenn Claude ein Tool aufruft. Dateien, die Sie [mit `@` in Ihrem Prompt referenzieren](/de/common-workflows#reference-files-and-directories), werden ohne Tool-Aufruf hinzugefügt: Claude Code fügt ihre Inhalte beim Erstellen des Prompts ein, daher wird kein PreToolUse-Hook für sie ausgelöst, einschließlich Hooks, die `Read` passen. Um bestimmte Pfade von `@`-Referenzen zu blockieren, verwenden Sie stattdessen eine [`Read`-Deny-Regel](/de/permissions#read-and-edit).1446 PreToolUse wird nur ausgeführt, wenn Claude ein Tool aufruft. Dateien, die Sie [mit `@` in Ihrem Prompt referenzieren](/docs/de/common-workflows#reference-files-and-directories), werden ohne Tool-Aufruf hinzugefügt: Claude Code fügt ihre Inhalte beim Erstellen des Prompts ein, daher wird kein PreToolUse-Hook für sie ausgelöst, einschließlich Hooks, die `Read` passen. Um bestimmte Pfade von `@`-Referenzen zu blockieren, verwenden Sie stattdessen eine [`Read`-Deny-Regel](/docs/de/permissions#read-and-edit).

1447</Warning>1447</Warning>

1448 1448 

1449Verwenden Sie [PreToolUse-Entscheidungskontrolle](#pretooluse-decision-control), um die Verwendung des Tools zuzulassen, zu verweigern, um Berechtigung zu bitten oder zu verschieben.1449Verwenden Sie [PreToolUse-Entscheidungskontrolle](#pretooluse-decision-control), um die Verwendung des Tools zuzulassen, zu verweigern, um Berechtigung zu bitten oder zu verschieben.


1464| :------------------ | :----------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1464| :------------------ | :----------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1465| `command` | Zeichenkette | `"npm test"` | Der auszuführende Shell-Befehl |1465| `command` | Zeichenkette | `"npm test"` | Der auszuführende Shell-Befehl |

1466| `description` | Zeichenkette | `"Run test suite"` | Optionale Beschreibung, was der Befehl tut |1466| `description` | Zeichenkette | `"Run test suite"` | Optionale Beschreibung, was der Befehl tut |

1467| `timeout` | Zahl | `120000` | Optionales Timeout in Millisekunden. Werte über dem [Maximum](/de/tools-reference#bash-tool-behavior) werden auf das Maximum reduziert, anstatt abgelehnt zu werden |1467| `timeout` | Zahl | `120000` | Optionales Timeout in Millisekunden. Werte über dem [Maximum](/docs/de/tools-reference#bash-tool-behavior) werden auf das Maximum reduziert, anstatt abgelehnt zu werden |

1468| `run_in_background` | Boolesch | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |1468| `run_in_background` | Boolesch | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |

1469 1469 

1470<h5 id="write">1470<h5 id="write">


1556 Agent1556 Agent

1557</h5>1557</h5>

1558 1558 

1559Spawnt einen [Subagenten](/de/sub-agents).1559Spawnt einen [Subagenten](/docs/de/sub-agents).

1560 1560 

1561| Feld | Typ | Beispiel | Beschreibung |1561| Feld | Typ | Beispiel | Beschreibung |

1562| :-------------- | :----------- | :------------------------- | :------------------------------------------------------ |1562| :-------------- | :----------- | :------------------------- | :------------------------------------------------------ |


1599 ExitPlanMode1599 ExitPlanMode

1600</h5>1600</h5>

1601 1601 

1602Präsentiert einen Plan und fordert den Benutzer auf, ihn zu genehmigen, bevor Claude den [Plan-Modus](/de/permission-modes#analyze-before-you-edit-with-plan-mode) verlässt. Claude schreibt den Plan vor dem Aufruf des Tools in eine Datei auf der Festplatte, daher trägt die wörtliche `tool_input` vom Modell nur `allowedPrompts`. Claude Code injiziert den Plan-Inhalt und den Dateipfad, bevor die Eingabe an Hooks übergeben wird.1602Präsentiert einen Plan und fordert den Benutzer auf, ihn zu genehmigen, bevor Claude den [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) verlässt. Claude schreibt den Plan vor dem Aufruf des Tools in eine Datei auf der Festplatte, daher trägt die wörtliche `tool_input` vom Modell nur `allowedPrompts`. Claude Code injiziert den Plan-Inhalt und den Dateipfad, bevor die Eingabe an Hooks übergeben wird.

1603 1603 

1604| Feld | Typ | Beispiel | Beschreibung |1604| Feld | Typ | Beispiel | Beschreibung |

1605| :--------------- | :----------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1605| :--------------- | :----------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


1617 1617 

1618| Feld | Beschreibung |1618| Feld | Beschreibung |

1619| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1619| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1620| `permissionDecision` | `"allow"` umgeht die Berechtigungsaufforderung, außer für [Tools, die Benutzerinteraktion erfordern](#pretooluse-decision-control) und Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/de/mcp#organization-controls-on-connector-tools). `"deny"` verhindert den Tool-Aufruf. `"ask"` fordert den Benutzer zur Bestätigung auf. `"defer"` beendet den Hook elegant, damit das Tool später fortgesetzt werden kann. [Deny- und Ask-Regeln](/de/permissions#manage-permissions) gelten weiterhin, wenn ein Hook `"allow"` zurückgibt |1620| `permissionDecision` | `"allow"` umgeht die Berechtigungsaufforderung, außer für [Tools, die Benutzerinteraktion erfordern](#pretooluse-decision-control) und Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools). `"deny"` verhindert den Tool-Aufruf. `"ask"` fordert den Benutzer zur Bestätigung auf. `"defer"` beendet den Hook elegant, damit das Tool später fortgesetzt werden kann. [Deny- und Ask-Regeln](/docs/de/permissions#manage-permissions) gelten weiterhin, wenn ein Hook `"allow"` zurückgibt |

1621| `permissionDecisionReason` | Für `"allow"` und `"ask"`, dem Benutzer angezeigt, aber nicht Claude. Für `"deny"`, Claude angezeigt. Für `"defer"`, ignoriert |1621| `permissionDecisionReason` | Für `"allow"` und `"ask"`, dem Benutzer angezeigt, aber nicht Claude. Für `"deny"`, Claude angezeigt. Für `"defer"`, ignoriert |

1622| `updatedInput` | Ändert die Tool-Eingabeparameter vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, daher müssen Sie unveränderte Felder zusammen mit geänderten einbeziehen. Kombinieren Sie mit `"allow"`, um automatisch zu genehmigen, oder mit `"ask"`, um die geänderte Eingabe dem Benutzer zu zeigen. Für `"defer"`, ignoriert |1622| `updatedInput` | Ändert die Tool-Eingabeparameter vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, daher müssen Sie unveränderte Felder zusammen mit geänderten einbeziehen. Kombinieren Sie mit `"allow"`, um automatisch zu genehmigen, oder mit `"ask"`, um die geänderte Eingabe dem Benutzer zu zeigen. Für `"defer"`, ignoriert |

1623| `additionalContext` | Zeichenkette, die zu Claudes Kontext vor der Tool-Ausführung hinzugefügt wird. Für `"defer"`, ignoriert. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |1623| `additionalContext` | Zeichenkette, die zu Claudes Kontext vor der Tool-Ausführung hinzugefügt wird. Für `"defer"`, ignoriert. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |


1640}1640}

1641```1641```

1642 1642 

1643`AskUserQuestion` und `ExitPlanMode` erfordern Benutzerinteraktion und blockieren normalerweise im [nicht-interaktiven Modus](/de/headless) mit dem `-p`-Flag. Das Zurückgeben von `permissionDecision: "allow"` zusammen mit `updatedInput` erfüllt diese Anforderung: Der Hook liest die Tool-Eingabe von stdin, erfasst die Antwort über Ihre eigene Benutzeroberfläche und gibt sie in `updatedInput` zurück, damit das Tool ohne Aufforderung ausgeführt wird. Das Zurückgeben von `"allow"` allein ist nicht ausreichend für diese Tools. Für `AskUserQuestion` geben Sie das ursprüngliche `questions`-Array zurück und fügen Sie ein [`answers`](#askuserquestion)-Objekt hinzu, das jede Frage auf die gewählte Antwort abbildet.1643`AskUserQuestion` und `ExitPlanMode` erfordern Benutzerinteraktion und blockieren normalerweise im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag. Das Zurückgeben von `permissionDecision: "allow"` zusammen mit `updatedInput` erfüllt diese Anforderung: Der Hook liest die Tool-Eingabe von stdin, erfasst die Antwort über Ihre eigene Benutzeroberfläche und gibt sie in `updatedInput` zurück, damit das Tool ohne Aufforderung ausgeführt wird. Das Zurückgeben von `"allow"` allein ist nicht ausreichend für diese Tools. Für `AskUserQuestion` geben Sie das ursprüngliche `questions`-Array zurück und fügen Sie ein [`answers`](#askuserquestion)-Objekt hinzu, das jede Frage auf die gewählte Antwort abbildet.

1644 1644 

1645Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/de/mcp#organization-controls-on-connector-tools) fordern auch dann auf, wenn ein Hook `"allow"` zurückgibt.1645Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) fordern auch dann auf, wenn ein Hook `"allow"` zurückgibt.

1646 1646 

1647Ab v2.1.199 ist ein MCP-Tool, dessen Server es mit [`_meta["anthropic/requiresUserInteraction"]`](/de/mcp#require-approval-for-a-specific-tool) markiert, strenger: Ein Hook kann seine Genehmigungsaufforderung nicht mit `"allow"` überspringen, mit oder ohne `updatedInput`, da Claude Code nicht bestätigen kann, dass der Hook die Interaktion erfasst hat, die das Tool benötigt.1647Ab v2.1.199 ist ein MCP-Tool, dessen Server es mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) markiert, strenger: Ein Hook kann seine Genehmigungsaufforderung nicht mit `"allow"` überspringen, mit oder ohne `updatedInput`, da Claude Code nicht bestätigen kann, dass der Hook die Interaktion erfasst hat, die das Tool benötigt.

1648 1648 

1649<Note>1649<Note>

1650 PreToolUse verwendete zuvor Top-Level-Felder `decision` und `reason`, diese sind jedoch für dieses Ereignis veraltet. Verwenden Sie stattdessen `hookSpecificOutput.permissionDecision` und `hookSpecificOutput.permissionDecisionReason`. Die veralteten Werte `"approve"` und `"block"` werden auf `"allow"` und `"deny"` abgebildet. Andere Ereignisse wie PostToolUse und Stop verwenden weiterhin Top-Level-Felder `decision` und `reason` als ihr aktuelles Format.1650 PreToolUse verwendete zuvor Top-Level-Felder `decision` und `reason`, diese sind jedoch für dieses Ereignis veraltet. Verwenden Sie stattdessen `hookSpecificOutput.permissionDecision` und `hookSpecificOutput.permissionDecisionReason`. Die veralteten Werte `"approve"` und `"block"` werden auf `"allow"` und `"deny"` abgebildet. Andere Ereignisse wie PostToolUse und Stop verwenden weiterhin Top-Level-Felder `decision` und `reason` als ihr aktuelles Format.


1654 Ein Tool-Aufruf verschieben1654 Ein Tool-Aufruf verschieben

1655</h4>1655</h4>

1656 1656 

1657`"defer"` ist für Integrationen, die `claude -p` als Subprozess ausführen und seine JSON-Ausgabe lesen, wie eine Agent SDK-App oder eine benutzerdefinierte Benutzeroberfläche, die auf Claude Code aufgebaut ist. Es ermöglicht diesem aufrufenden Prozess, Claude bei einem Tool-Aufruf zu pausieren, Eingaben über seine eigene Schnittstelle zu erfassen und dort fortzufahren, wo er aufgehört hat. Claude Code respektiert diesen Wert nur im [nicht-interaktiven Modus](/de/headless) mit dem `-p`-Flag. In interaktiven Sitzungen protokolliert es eine Warnung und ignoriert das Hook-Ergebnis.1657`"defer"` ist für Integrationen, die `claude -p` als Subprozess ausführen und seine JSON-Ausgabe lesen, wie eine Agent SDK-App oder eine benutzerdefinierte Benutzeroberfläche, die auf Claude Code aufgebaut ist. Es ermöglicht diesem aufrufenden Prozess, Claude bei einem Tool-Aufruf zu pausieren, Eingaben über seine eigene Schnittstelle zu erfassen und dort fortzufahren, wo er aufgehört hat. Claude Code respektiert diesen Wert nur im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag. In interaktiven Sitzungen protokolliert es eine Warnung und ignoriert das Hook-Ergebnis.

1658 1658 

1659Das Tool `AskUserQuestion` ist der typische Fall: Claude möchte den Benutzer etwas fragen, aber es gibt kein Terminal zum Antworten. Der Roundtrip funktioniert so:1659Das Tool `AskUserQuestion` ist der typische Fall: Claude möchte den Benutzer etwas fragen, aber es gibt kein Terminal zum Antworten. Der Roundtrip funktioniert so:

1660 1660 


1680}1680}

1681```1681```

1682 1682 

1683Es gibt kein Timeout oder Wiederholungslimit. Die Sitzung bleibt auf der Festplatte, bis Sie sie fortsetzen, unterliegt aber der [`cleanupPeriodDays`](/de/settings#available-settings)-Aufbewahrungssweep, die Sitzungsdateien nach 30 Tagen standardmäßig löscht. Wenn die Antwort nicht bereit ist, wenn Sie fortsetzen, kann der Hook erneut `"defer"` zurückgeben und der Prozess beendet sich auf die gleiche Weise. Der aufrufende Prozess steuert, wann die Schleife unterbrochen wird, indem er schließlich `"allow"` oder `"deny"` vom Hook zurückgibt.1683Es gibt kein Timeout oder Wiederholungslimit. Die Sitzung bleibt auf der Festplatte, bis Sie sie fortsetzen, unterliegt aber der [`cleanupPeriodDays`](/docs/de/settings#available-settings)-Aufbewahrungssweep, die Sitzungsdateien nach 30 Tagen standardmäßig löscht. Wenn die Antwort nicht bereit ist, wenn Sie fortsetzen, kann der Hook erneut `"defer"` zurückgeben und der Prozess beendet sich auf die gleiche Weise. Der aufrufende Prozess steuert, wann die Schleife unterbrochen wird, indem er schließlich `"allow"` oder `"deny"` vom Hook zurückgibt.

1684 1684 

1685`"defer"` funktioniert nur, wenn Claude einen einzelnen Tool-Aufruf in der Runde macht. Wenn Claude mehrere Tool-Aufrufe gleichzeitig macht, wird `"defer"` mit einer Warnung ignoriert und das Tool wird durch den normalen Berechtigungsfluss fortgesetzt. Die Einschränkung existiert, weil Resume nur einen Tool-Aufruf erneut ausführen kann: Es gibt keine Möglichkeit, einen Aufruf aus einem Batch zu verschieben, ohne die anderen ungelöst zu lassen.1685`"defer"` funktioniert nur, wenn Claude einen einzelnen Tool-Aufruf in der Runde macht. Wenn Claude mehrere Tool-Aufrufe gleichzeitig macht, wird `"defer"` mit einer Warnung ignoriert und das Tool wird durch den normalen Berechtigungsfluss fortgesetzt. Die Einschränkung existiert, weil Resume nur einen Tool-Aufruf erneut ausführen kann: Es gibt keine Möglichkeit, einen Aufruf aus einem Batch zu verschieben, ohne die anderen ungelöst zu lassen.

1686 1686 


1736 1736 

1737| Feld | Beschreibung |1737| Feld | Beschreibung |

1738| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1738| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1739| `behavior` | `"allow"` gewährt die Berechtigung, `"deny"` verweigert sie. [Deny- und Ask-Regeln](/de/permissions#manage-permissions) gelten weiterhin, daher überschreibt ein Hook, der `"allow"` zurückgibt, keine passende Deny-Regel |1739| `behavior` | `"allow"` gewährt die Berechtigung, `"deny"` verweigert sie. [Deny- und Ask-Regeln](/docs/de/permissions#manage-permissions) gelten weiterhin, daher überschreibt ein Hook, der `"allow"` zurückgibt, keine passende Deny-Regel |

1740| `updatedInput` | Nur für `"allow"`: ändert die Tool-Eingabeparameter vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, daher müssen Sie unveränderte Felder zusammen mit geänderten einbeziehen. Die geänderte Eingabe wird erneut gegen Deny- und Ask-Regeln evaluiert |1740| `updatedInput` | Nur für `"allow"`: ändert die Tool-Eingabeparameter vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, daher müssen Sie unveränderte Felder zusammen mit geänderten einbeziehen. Die geänderte Eingabe wird erneut gegen Deny- und Ask-Regeln evaluiert |

1741| `updatedPermissions` | Nur für `"allow"`: Array von [Berechtigungsupdate-Einträgen](#permission-update-entries) zum Anwenden, wie das Hinzufügen einer Allow-Regel oder das Ändern des Session-Berechtigungsmodus |1741| `updatedPermissions` | Nur für `"allow"`: Array von [Berechtigungsupdate-Einträgen](#permission-update-entries) zum Anwenden, wie das Hinzufügen einer Allow-Regel oder das Ändern des Session-Berechtigungsmodus |

1742| `message` | Nur für `"deny"`: teilt Claude mit, warum die Berechtigung verweigert wurde |1742| `message` | Nur für `"deny"`: teilt Claude mit, warum die Berechtigung verweigert wurde |


1772| `removeDirectories` | `directories`, `destination` | Entfernt Arbeitsverzeichnisse |1772| `removeDirectories` | `directories`, `destination` | Entfernt Arbeitsverzeichnisse |

1773 1773 

1774<Note>1774<Note>

1775 `setMode` mit `bypassPermissions` nimmt nur Auswirkungen an, wenn die Sitzung mit Bypass-Modus bereits verfügbar gestartet wurde: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in Einstellungen, und der Modus ist nicht durch [`permissions.disableBypassPermissionsMode`](/de/permissions#managed-settings) deaktiviert. Andernfalls ist das Update ein No-Op. `bypassPermissions` wird niemals als `defaultMode` persistiert, unabhängig von `destination`.1775 `setMode` mit `bypassPermissions` nimmt nur Auswirkungen an, wenn die Sitzung mit Bypass-Modus bereits verfügbar gestartet wurde: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in Einstellungen, und der Modus ist nicht durch [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) deaktiviert. Andernfalls ist das Update ein No-Op. `bypassPermissions` wird niemals als `defaultMode` persistiert, unabhängig von `destination`.

1776</Note>1776</Note>

1777 1777 

1778Das Feld `destination` auf jedem Eintrag bestimmt, ob die Änderung im Speicher bleibt oder in einer Einstellungsdatei persistiert wird.1778Das Feld `destination` auf jedem Eintrag bestimmt, ob die Änderung im Speicher bleibt oder in einer Einstellungsdatei persistiert wird.


1991 PermissionDenied1991 PermissionDenied

1992</h3>1992</h3>

1993 1993 

1994Wird ausgeführt, wenn der [Auto-Mode](/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifizierer einen Tool-Aufruf verweigert. Dieser Hook wird nur im Auto-Mode ausgelöst: Er wird nicht ausgeführt, wenn Sie einen Berechtigungsdialog manuell verweigern, wenn ein `PreToolUse`-Hook einen Aufruf blockiert oder wenn eine `deny`-Regel passt. Verwenden Sie ihn, um Klassifizierer-Ablehnungen zu protokollieren, die Konfiguration anzupassen oder dem Modell zu sagen, dass es den Tool-Aufruf möglicherweise erneut versuchen kann.1994Wird ausgeführt, wenn der [Auto-Mode](/docs/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifizierer einen Tool-Aufruf verweigert. Dieser Hook wird nur im Auto-Mode ausgelöst: Er wird nicht ausgeführt, wenn Sie einen Berechtigungsdialog manuell verweigern, wenn ein `PreToolUse`-Hook einen Aufruf blockiert oder wenn eine `deny`-Regel passt. Verwenden Sie ihn, um Klassifizierer-Ablehnungen zu protokollieren, die Konfiguration anzupassen oder dem Modell zu sagen, dass es den Tool-Aufruf möglicherweise erneut versuchen kann.

1995 1995 

1996Passt auf Tool-Namen, gleiche Werte wie PreToolUse.1996Passt auf Tool-Namen, gleiche Werte wie PreToolUse.

1997 1997 


2053| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular |2053| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular |

2054| `elicitation_complete` | Ein MCP-Elicitation-Formular wird eingereicht oder verworfen |2054| `elicitation_complete` | Ein MCP-Elicitation-Formular wird eingereicht oder verworfen |

2055| `elicitation_response` | Eine MCP-Elicitation-Antwort wird an den Server zurückgesendet |2055| `elicitation_response` | Eine MCP-Elicitation-Antwort wird an den Server zurückgesendet |

2056| `agent_needs_input` | Eine Hintergrund-Sitzung beginnt, auf Ihre Eingabe zu warten. Wird nur ausgelöst, während [Agent-Ansicht](/de/agent-view) in einem Terminal offen ist |2056| `agent_needs_input` | Eine Hintergrund-Sitzung beginnt, auf Ihre Eingabe zu warten. Wird nur ausgelöst, während [Agent-Ansicht](/docs/de/agent-view) in einem Terminal offen ist |

2057| `agent_completed` | Eine Hintergrund-Sitzung wird fertig oder schlägt fehl. Wird nur ausgelöst, während [Agent-Ansicht](/de/agent-view) in einem Terminal offen ist |2057| `agent_completed` | Eine Hintergrund-Sitzung wird fertig oder schlägt fehl. Wird nur ausgelöst, während [Agent-Ansicht](/docs/de/agent-view) in einem Terminal offen ist |

2058 2058 

2059Die Typen `agent_needs_input` und `agent_completed` erfordern Claude Code v2.1.198 oder später.2059Die Typen `agent_needs_input` und `agent_completed` erfordern Claude Code v2.1.198 oder später.

2060 2060 


2111 SubagentStart2111 SubagentStart

2112</h3>2112</h3>

2113 2113 

2114Wird ausgeführt, wenn ein Claude Code-Subagent über das Agent-Tool spawnt wird. Unterstützt Matcher zum Filtern nach Agent-Typname. Für eingebaute Agents ist dies der Agent-Name wie `general-purpose`, `Explore` oder `Plan`. Für [benutzerdefinierte Subagenten](/de/sub-agents) ist dies das Feld `name` aus dem Frontmatter des Agenten, nicht der Dateiname.2114Wird ausgeführt, wenn ein Claude Code-Subagent über das Agent-Tool spawnt wird. Unterstützt Matcher zum Filtern nach Agent-Typname. Für eingebaute Agents ist dies der Agent-Name wie `general-purpose`, `Explore` oder `Plan`. Für [benutzerdefinierte Subagenten](/docs/de/sub-agents) ist dies das Feld `name` aus dem Frontmatter des Agenten, nicht der Dateiname.

2115 2115 

2116Für Subagenten, die von einem [Plugin](/de/plugins) bereitgestellt werden, ist der Agent-Typ die Plugin-spezifische Kennung wie `my-plugin:reviewer`, nicht der bloße Frontmatter-Name. Der Doppelpunkt platziert einen Plugin-spezifischen Namen auf dem regulären Ausdruckspfad, daher verankern Sie den Matcher mit `^` und `$` für eine genaue Übereinstimmung: `^my-plugin:reviewer$`.2116Für Subagenten, die von einem [Plugin](/docs/de/plugins) bereitgestellt werden, ist der Agent-Typ die Plugin-spezifische Kennung wie `my-plugin:reviewer`, nicht der bloße Frontmatter-Name. Der Doppelpunkt platziert einen Plugin-spezifischen Namen auf dem regulären Ausdruckspfad, daher verankern Sie den Matcher mit `^` und `$` für eine genaue Übereinstimmung: `^my-plugin:reviewer$`.

2117 2117 

2118<h4 id="subagentstart-input">2118<h4 id="subagentstart-input">

2119 SubagentStart-Eingabe2119 SubagentStart-Eingabe


2245 TaskCompleted2245 TaskCompleted

2246</h3>2246</h3>

2247 2247 

2248Wird ausgeführt, wenn eine Aufgabe als abgeschlossen markiert wird. Dies wird in zwei Situationen ausgelöst: wenn ein Agent eine Aufgabe explizit über das TaskUpdate-Tool als abgeschlossen markiert, oder wenn ein [Agent-Team](/de/agent-teams)-Teammate seine Runde mit laufenden Aufgaben beendet. Verwenden Sie dies, um Abschluss-Kriterien wie bestandene Tests oder Lint-Checks durchzusetzen, bevor eine Aufgabe geschlossen werden kann.2248Wird ausgeführt, wenn eine Aufgabe als abgeschlossen markiert wird. Dies wird in zwei Situationen ausgelöst: wenn ein Agent eine Aufgabe explizit über das TaskUpdate-Tool als abgeschlossen markiert, oder wenn ein [Agent-Team](/docs/de/agent-teams)-Teammate seine Runde mit laufenden Aufgaben beendet. Verwenden Sie dies, um Abschluss-Kriterien wie bestandene Tests oder Lint-Checks durchzusetzen, bevor eine Aufgabe geschlossen werden kann.

2249 2249 

2250Wenn ein `TaskCompleted`-Hook mit Code 2 beendet wird, wird die Aufgabe nicht als abgeschlossen markiert und die stderr-Nachricht wird dem Modell als Feedback zurückgegeben. Um den Teammate stattdessen vollständig zu stoppen, geben Sie JSON mit `{"continue": false, "stopReason": "..."}` zurück. TaskCompleted-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.2250Wenn ein `TaskCompleted`-Hook mit Code 2 beendet wird, wird die Aufgabe nicht als abgeschlossen markiert und die stderr-Nachricht wird dem Modell als Feedback zurückgegeben. Um den Teammate stattdessen vollständig zu stoppen, geben Sie JSON mit `{"continue": false, "stopReason": "..."}` zurück. TaskCompleted-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.

2251 2251 


2310Wird ausgeführt, wenn der Haupt-Claude Code-Agent fertig mit der Antwort ist. Wird nicht ausgeführt, wenn der Stopp durch eine Benutzerunterbrechung verursacht wurde. API-Fehler lösen stattdessen [StopFailure](#stopfailure) aus.2310Wird ausgeführt, wenn der Haupt-Claude Code-Agent fertig mit der Antwort ist. Wird nicht ausgeführt, wenn der Stopp durch eine Benutzerunterbrechung verursacht wurde. API-Fehler lösen stattdessen [StopFailure](#stopfailure) aus.

2311 2311 

2312<Tip>2312<Tip>

2313 Der Befehl [`/goal`](/de/goal) ist eine eingebaute Verknüpfung für einen sitzungsspezifischen Prompt-basierten Stop-Hook. Verwenden Sie ihn, wenn Sie möchten, dass Claude weiterarbeitet, bis eine Bedingung erfüllt ist, ohne Hook-Konfiguration zu schreiben.2313 Der Befehl [`/goal`](/docs/de/goal) ist eine eingebaute Verknüpfung für einen sitzungsspezifischen Prompt-basierten Stop-Hook. Verwenden Sie ihn, wenn Sie möchten, dass Claude weiterarbeitet, bis eine Bedingung erfüllt ist, ohne Hook-Konfiguration zu schreiben.

2314</Tip>2314</Tip>

2315 2315 

2316<h4 id="stop-input">2316<h4 id="stop-input">


2443 TeammateIdle2443 TeammateIdle

2444</h3>2444</h3>

2445 2445 

2446Wird ausgeführt, wenn ein [Agent-Team](/de/agent-teams)-Teammate nach Abschluss seiner Runde untätig werden soll. Verwenden Sie dies, um Qualitätsgates vor dem Stoppen eines Teammates durchzusetzen, wie das Erfordern von bestandenen Lint-Checks oder das Überprüfen, dass Ausgabedateien vorhanden sind.2446Wird ausgeführt, wenn ein [Agent-Team](/docs/de/agent-teams)-Teammate nach Abschluss seiner Runde untätig werden soll. Verwenden Sie dies, um Qualitätsgates vor dem Stoppen eines Teammates durchzusetzen, wie das Erfordern von bestandenen Lint-Checks oder das Überprüfen, dass Ausgabedateien vorhanden sind.

2447 2447 

2448Wenn ein `TeammateIdle`-Hook mit Code 2 beendet wird, erhält der Teammate die stderr-Nachricht als Feedback und arbeitet weiter, anstatt untätig zu werden. Um den Teammate stattdessen vollständig zu stoppen, geben Sie JSON mit `{"continue": false, "stopReason": "..."}` zurück. TeammateIdle-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.2448Wenn ein `TeammateIdle`-Hook mit Code 2 beendet wird, erhält der Teammate die stderr-Nachricht als Feedback und arbeitet weiter, anstatt untätig zu werden. Um den Teammate stattdessen vollständig zu stoppen, geben Sie JSON mit `{"continue": false, "stopReason": "..."}` zurück. TeammateIdle-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.

2449 2449 


2657 WorktreeCreate2657 WorktreeCreate

2658</h3>2658</h3>

2659 2659 

2660Wird ausgeführt, wenn ein Worktree erstellt wird, entweder von `claude --worktree` oder von einem [Subagent mit `isolation: "worktree"`](/de/sub-agents#choose-the-subagent-scope). Standardmäßig erstellt Claude Code die isolierte Arbeitskopie mit `git worktree`. Wenn Sie einen WorktreeCreate-Hook konfigurieren, ersetzt er das Standard-Git-Verhalten und ermöglicht es Ihnen, ein anderes Versionskontrollsystem wie SVN, Perforce oder Mercurial zu verwenden.2660Wird ausgeführt, wenn ein Worktree erstellt wird, entweder von `claude --worktree` oder von einem [Subagent mit `isolation: "worktree"`](/docs/de/sub-agents#choose-the-subagent-scope). Standardmäßig erstellt Claude Code die isolierte Arbeitskopie mit `git worktree`. Wenn Sie einen WorktreeCreate-Hook konfigurieren, ersetzt er das Standard-Git-Verhalten und ermöglicht es Ihnen, ein anderes Versionskontrollsystem wie SVN, Perforce oder Mercurial zu verwenden.

2661 2661 

2662Da der Hook das Standard-Verhalten vollständig ersetzt, wird [`.worktreeinclude`](/de/worktrees#copy-gitignored-files-into-worktrees) nicht verarbeitet. Wenn Sie lokale Konfigurationsdateien wie `.env` in den neuen Worktree kopieren müssen, tun Sie dies in Ihrem Hook-Skript.2662Da der Hook das Standard-Verhalten vollständig ersetzt, wird [`.worktreeinclude`](/docs/de/worktrees#copy-gitignored-files-into-worktrees) nicht verarbeitet. Wenn Sie lokale Konfigurationsdateien wie `.env` in den neuen Worktree kopieren müssen, tun Sie dies in Ihrem Hook-Skript.

2663 2663 

2664Der Hook muss den absoluten Pfad zum erstellten Worktree-Verzeichnis zurückgeben. Claude Code verwendet diesen Pfad als Arbeitsverzeichnis für die isolierte Sitzung. Siehe [WorktreeCreate-Ausgabe](#worktreecreate-output) für wie jeder Hook-Typ den Pfad zurückgibt.2664Der Hook muss den absoluten Pfad zum erstellten Worktree-Verzeichnis zurückgeben. Claude Code verwendet diesen Pfad als Arbeitsverzeichnis für die isolierte Sitzung. Siehe [WorktreeCreate-Ausgabe](#worktreecreate-output) für wie jeder Hook-Typ den Pfad zurückgibt.

2665 2665 


3112 Mehrere Bedingungen vor dem Stoppen überprüfen3112 Mehrere Bedingungen vor dem Stoppen überprüfen

3113</h3>3113</h3>

3114 3114 

3115Dieser `Stop`-Hook verwendet einen detaillierten Prompt, um drei Bedingungen zu überprüfen, bevor Claude stoppen darf. `SubagentStop`-Hooks verwenden das gleiche Format, um zu evaluieren, ob ein [Subagent](/de/sub-agents) stoppen sollte. Wenn `"ok"` `false` ist, setzt Claude die Arbeit mit dem bereitgestellten Grund als nächste Anweisung fort:3115Dieser `Stop`-Hook verwendet einen detaillierten Prompt, um drei Bedingungen zu überprüfen, bevor Claude stoppen darf. `SubagentStop`-Hooks verwenden das gleiche Format, um zu evaluieren, ob ein [Subagent](/docs/de/sub-agents) stoppen sollte. Wenn `"ok"` `false` ist, setzt Claude die Arbeit mit dem bereitgestellten Grund als nächste Anweisung fort:

3116 3116 

3117```json theme={null}3117```json theme={null}

3118{3118{


3385 3385 

3386Für granularere Hook-Matching-Details setzen Sie `CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose`, um zusätzliche Log-Zeilen wie Hook-Matcher-Zählungen und Query-Matching zu sehen.3386Für granularere Hook-Matching-Details setzen Sie `CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose`, um zusätzliche Log-Zeilen wie Hook-Matcher-Zählungen und Query-Matching zu sehen.

3387 3387 

3388Zur Fehlerbehebung häufiger Probleme wie Hooks, die nicht ausgelöst werden, Stop-Hooks, die weiterhin blockieren, oder Konfigurationsfehler, siehe [Einschränkungen und Fehlerbehebung](/de/hooks-guide#limitations-and-troubleshooting) in der Anleitung. Für eine umfassendere diagnostische Anleitung, die `/context`, `/doctor` und Einstellungspriorität abdeckt, siehe [Debug your config](/de/debug-your-config).3388Zur Fehlerbehebung häufiger Probleme wie Hooks, die nicht ausgelöst werden, Stop-Hooks, die weiterhin blockieren, oder Konfigurationsfehler, siehe [Einschränkungen und Fehlerbehebung](/docs/de/hooks-guide#limitations-and-troubleshooting) in der Anleitung. Für eine umfassendere diagnostische Anleitung, die `/context`, `/doctor` und Einstellungspriorität abdeckt, siehe [Debug your config](/docs/de/debug-your-config).

hooks-guide.md +50 −50

Details

10 10 

11Für Entscheidungen, die Urteilsvermögen erfordern, anstatt deterministischer Regeln, können Sie auch [Prompt-basierte Hooks](#prompt-based-hooks) oder [Agent-basierte Hooks](#agent-based-hooks) verwenden, die ein Claude-Modell zur Bewertung von Bedingungen nutzen.11Für Entscheidungen, die Urteilsvermögen erfordern, anstatt deterministischer Regeln, können Sie auch [Prompt-basierte Hooks](#prompt-based-hooks) oder [Agent-basierte Hooks](#agent-based-hooks) verwenden, die ein Claude-Modell zur Bewertung von Bedingungen nutzen.

12 12 

13Für andere Möglichkeiten, Claude Code zu erweitern, siehe [skills](/de/skills) zum Bereitstellen zusätzlicher Anweisungen und ausführbarer Befehle, [subagents](/de/sub-agents) zum Ausführen von Aufgaben in isolierten Kontexten und [plugins](/de/plugins) zum Verpacken von Erweiterungen, die über Projekte hinweg freigegeben werden können.13Für andere Möglichkeiten, Claude Code zu erweitern, siehe [skills](/docs/de/skills) zum Bereitstellen zusätzlicher Anweisungen und ausführbarer Befehle, [subagents](/docs/de/sub-agents) zum Ausführen von Aufgaben in isolierten Kontexten und [plugins](/docs/de/plugins) zum Verpacken von Erweiterungen, die über Projekte hinweg freigegeben werden können.

14 14 

15<Tip>15<Tip>

16 Dieser Leitfaden behandelt häufige Anwendungsfälle und wie Sie anfangen. Für vollständige Event-Schemas, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks und MCP-Tool-Hooks siehe die [Hooks-Referenz](/de/hooks).16 Dieser Leitfaden behandelt häufige Anwendungsfälle und wie Sie anfangen. Für vollständige Event-Schemas, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks und MCP-Tool-Hooks siehe die [Hooks-Referenz](/docs/de/hooks).

17</Tip>17</Tip>

18 18 

19<h2 id="set-up-your-first-hook">19<h2 id="set-up-your-first-hook">


85 Was Sie automatisieren können85 Was Sie automatisieren können

86</h2>86</h2>

87 87 

88Hooks ermöglichen es Ihnen, Code an Schlüsselpunkten im Lebenszyklus von Claude Code auszuführen: Dateien nach Bearbeitungen formatieren, Befehle vor der Ausführung blockieren, Benachrichtigungen senden, wenn Claude Eingaben benötigt, Kontext beim Sitzungsstart injizieren und vieles mehr. Für die vollständige Liste der Hook-Events siehe die [Hooks-Referenz](/de/hooks#hook-lifecycle).88Hooks ermöglichen es Ihnen, Code an Schlüsselpunkten im Lebenszyklus von Claude Code auszuführen: Dateien nach Bearbeitungen formatieren, Befehle vor der Ausführung blockieren, Benachrichtigungen senden, wenn Claude Eingaben benötigt, Kontext beim Sitzungsstart injizieren und vieles mehr. Für die vollständige Liste der Hook-Events siehe die [Hooks-Referenz](/docs/de/hooks#hook-lifecycle).

89 89 

90Jedes Beispiel enthält einen einsatzbereiten Konfigurationsblock, den Sie einer [Einstellungsdatei](#configure-hook-location) hinzufügen.90Jedes Beispiel enthält einen einsatzbereiten Konfigurationsblock, den Sie einer [Einstellungsdatei](#configure-hook-location) hinzufügen.

91 91 

92Ein Produktionsbeispiel von Hooks, die eine separate Modellüberprüfung ausführen und Erkenntnisse zurück in die Sitzung einspeisen, finden Sie unter [wie das `security-guidance`-Plugin mit Claude Code integriert wird](/de/security-guidance#how-the-plugin-integrates-with-claude-code).92Ein Produktionsbeispiel von Hooks, die eine separate Modellüberprüfung ausführen und Erkenntnisse zurück in die Sitzung einspeisen, finden Sie unter [wie das `security-guidance`-Plugin mit Claude Code integriert wird](/docs/de/security-guidance#how-the-plugin-integrates-with-claude-code).

93 93 

94<h3 id="get-notified-when-claude-needs-input">94<h3 id="get-notified-when-claude-needs-input">

95 Benachrichtigung erhalten, wenn Claude Eingaben benötigt95 Benachrichtigung erhalten, wenn Claude Eingaben benötigt


181| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular |181| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular |

182| `elicitation_complete` | Ein MCP-Elicitation-Formular wird eingereicht oder verworfen |182| `elicitation_complete` | Ein MCP-Elicitation-Formular wird eingereicht oder verworfen |

183| `elicitation_response` | Eine MCP-Elicitation-Antwort wird an den Server zurückgesendet |183| `elicitation_response` | Eine MCP-Elicitation-Antwort wird an den Server zurückgesendet |

184| `agent_needs_input` | Eine Hintergrund-Sitzung wartet auf Ihre Eingabe. Wird nur ausgelöst, während [Agent-Ansicht](/de/agent-view) offen ist |184| `agent_needs_input` | Eine Hintergrund-Sitzung wartet auf Ihre Eingabe. Wird nur ausgelöst, während [Agent-Ansicht](/docs/de/agent-view) offen ist |

185| `agent_completed` | Eine Hintergrund-Sitzung wird beendet oder schlägt fehl. Wird nur ausgelöst, während [Agent-Ansicht](/de/agent-view) offen ist |185| `agent_completed` | Eine Hintergrund-Sitzung wird beendet oder schlägt fehl. Wird nur ausgelöst, während [Agent-Ansicht](/docs/de/agent-view) offen ist |

186 186 

187Die Matcher `agent_needs_input` und `agent_completed` erfordern Claude Code v2.1.198 oder später.187Die Matcher `agent_needs_input` und `agent_completed` erfordern Claude Code v2.1.198 oder später.

188 188 

189Geben Sie `/hooks` ein und wählen Sie `Notification` aus, um zu bestätigen, dass der Hook registriert ist. Für das vollständige Event-Schema siehe die [Notification-Referenz](/de/hooks#notification).189Geben Sie `/hooks` ein und wählen Sie `Notification` aus, um zu bestätigen, dass der Hook registriert ist. Für das vollständige Event-Schema siehe die [Notification-Referenz](/docs/de/hooks#notification).

190 190 

191<h3 id="auto-format-code-after-edits">191<h3 id="auto-format-code-after-edits">

192 Code nach Bearbeitungen automatisch formatieren192 Code nach Bearbeitungen automatisch formatieren


309}309}

310```310```

311 311 

312Sie können das `echo` durch jeden Befehl ersetzen, der dynamische Ausgabe erzeugt, wie `git log --oneline -5`, um aktuelle Commits anzuzeigen. Zum Injizieren von Kontext bei jedem Sitzungsstart sollten Sie stattdessen [CLAUDE.md](/de/memory) verwenden. Für Umgebungsvariablen siehe [`CLAUDE_ENV_FILE`](/de/hooks#persist-environment-variables) in der Referenz.312Sie können das `echo` durch jeden Befehl ersetzen, der dynamische Ausgabe erzeugt, wie `git log --oneline -5`, um aktuelle Commits anzuzeigen. Zum Injizieren von Kontext bei jedem Sitzungsstart sollten Sie stattdessen [CLAUDE.md](/docs/de/memory) verwenden. Für Umgebungsvariablen siehe [`CLAUDE_ENV_FILE`](/docs/de/hooks#persist-environment-variables) in der Referenz.

313 313 

314<h3 id="audit-configuration-changes">314<h3 id="audit-configuration-changes">

315 Konfigurationsänderungen prüfen315 Konfigurationsänderungen prüfen


337}337}

338```338```

339 339 

340Der Matcher filtert nach Konfigurationstyp: `user_settings`, `project_settings`, `local_settings`, `policy_settings` oder `skills`. Um eine Änderung zu blockieren, beenden Sie mit Code 2 oder geben Sie `{"decision": "block"}` zurück. Siehe die [ConfigChange-Referenz](/de/hooks#configchange) für das vollständige Eingabe-Schema.340Der Matcher filtert nach Konfigurationstyp: `user_settings`, `project_settings`, `local_settings`, `policy_settings` oder `skills`. Um eine Änderung zu blockieren, beenden Sie mit Code 2 oder geben Sie `{"decision": "block"}` zurück. Siehe die [ConfigChange-Referenz](/docs/de/hooks#configchange) für das vollständige Eingabe-Schema.

341 341 

342<h3 id="reload-environment-when-directory-or-files-change">342<h3 id="reload-environment-when-directory-or-files-change">

343 Umgebung neu laden, wenn sich Verzeichnis oder Dateien ändern343 Umgebung neu laden, wenn sich Verzeichnis oder Dateien ändern


376 376 

377Führen Sie `direnv allow` einmal in jedem Verzeichnis aus, das eine `.envrc` hat, damit direnv berechtigt ist, sie zu laden. Wenn Sie devbox oder nix statt direnv verwenden, funktioniert das gleiche Muster mit `devbox shellenv` oder `devbox global shellenv` anstelle von `direnv export bash`.377Führen Sie `direnv allow` einmal in jedem Verzeichnis aus, das eine `.envrc` hat, damit direnv berechtigt ist, sie zu laden. Wenn Sie devbox oder nix statt direnv verwenden, funktioniert das gleiche Muster mit `devbox shellenv` oder `devbox global shellenv` anstelle von `direnv export bash`.

378 378 

379Um auf bestimmte Dateien statt auf jeden Verzeichniswechsel zu reagieren, verwenden Sie `FileChanged` mit einem `matcher`, der die zu überwachenden Dateinamen auflistet, getrennt durch `|`. Beim Erstellen der Überwachungsliste wird dieser Wert in Dateinamen aufgeteilt, anstatt als Regex ausgewertet zu werden. Siehe [FileChanged](/de/hooks#filechanged) für die Funktionsweise desselben Werts, der auch filtert, welche Hook-Gruppen ausgeführt werden, wenn sich eine Datei ändert. Dieses Beispiel überwacht `.envrc` und `.env` im Arbeitsverzeichnis:379Um auf bestimmte Dateien statt auf jeden Verzeichniswechsel zu reagieren, verwenden Sie `FileChanged` mit einem `matcher`, der die zu überwachenden Dateinamen auflistet, getrennt durch `|`. Beim Erstellen der Überwachungsliste wird dieser Wert in Dateinamen aufgeteilt, anstatt als Regex ausgewertet zu werden. Siehe [FileChanged](/docs/de/hooks#filechanged) für die Funktionsweise desselben Werts, der auch filtert, welche Hook-Gruppen ausgeführt werden, wenn sich eine Datei ändert. Dieses Beispiel überwacht `.envrc` und `.env` im Arbeitsverzeichnis:

380 380 

381```json theme={null}381```json theme={null}

382{382{


396}396}

397```397```

398 398 

399Siehe die [CwdChanged](/de/hooks#cwdchanged)- und [FileChanged](/de/hooks#filechanged)-Referenzeinträge für Eingabe-Schemas, `watchPaths`-Ausgabe und `CLAUDE_ENV_FILE`-Details.399Siehe die [CwdChanged](/docs/de/hooks#cwdchanged)- und [FileChanged](/docs/de/hooks#filechanged)-Referenzeinträge für Eingabe-Schemas, `watchPaths`-Ausgabe und `CLAUDE_ENV_FILE`-Details.

400 400 

401<h3 id="auto-approve-specific-permission-prompts">401<h3 id="auto-approve-specific-permission-prompts">

402 Bestimmte Berechtigungsaufforderungen automatisch genehmigen402 Bestimmte Berechtigungsaufforderungen automatisch genehmigen


431Um stattdessen einen bestimmten Berechtigungsmodus festzulegen, kann die Ausgabe Ihres Hooks ein Array `updatedPermissions` mit einem `setMode`-Eintrag enthalten. Der Wert `mode` ist ein beliebiger Berechtigungsmodus wie `default`, `acceptEdits` oder `bypassPermissions`, und `destination: "session"` wendet ihn nur für die aktuelle Sitzung an.431Um stattdessen einen bestimmten Berechtigungsmodus festzulegen, kann die Ausgabe Ihres Hooks ein Array `updatedPermissions` mit einem `setMode`-Eintrag enthalten. Der Wert `mode` ist ein beliebiger Berechtigungsmodus wie `default`, `acceptEdits` oder `bypassPermissions`, und `destination: "session"` wendet ihn nur für die aktuelle Sitzung an.

432 432 

433<Note>433<Note>

434 `bypassPermissions` gilt nur, wenn die Sitzung mit bereits verfügbarem Bypass-Modus gestartet wurde: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in Einstellungen, und nicht deaktiviert durch [`permissions.disableBypassPermissionsMode`](/de/permissions#managed-settings). Es wird niemals als `defaultMode` beibehalten.434 `bypassPermissions` gilt nur, wenn die Sitzung mit bereits verfügbarem Bypass-Modus gestartet wurde: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in Einstellungen, und nicht deaktiviert durch [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings). Es wird niemals als `defaultMode` beibehalten.

435</Note>435</Note>

436 436 

437Um die Sitzung zu `acceptEdits` zu wechseln, schreibt Ihr Hook dieses JSON auf stdout:437Um die Sitzung zu `acceptEdits` zu wechseln, schreibt Ihr Hook dieses JSON auf stdout:


450}450}

451```451```

452 452 

453Halten Sie den Matcher so eng wie möglich. Das Abgleichen von `.*` oder das Lassen des Matchers leer würde jede Berechtigungsaufforderung automatisch genehmigen, einschließlich Dateischreibvorgänge und Shell-Befehle. Siehe die [PermissionRequest-Referenz](/de/hooks#permissionrequest-decision-control) für den vollständigen Satz von Entscheidungsfeldern.453Halten Sie den Matcher so eng wie möglich. Das Abgleichen von `.*` oder das Lassen des Matchers leer würde jede Berechtigungsaufforderung automatisch genehmigen, einschließlich Dateischreibvorgänge und Shell-Befehle. Siehe die [PermissionRequest-Referenz](/docs/de/hooks#permissionrequest-decision-control) für den vollständigen Satz von Entscheidungsfeldern.

454 454 

455<h2 id="how-hooks-work">455<h2 id="how-hooks-work">

456 Wie Hooks funktionieren456 Wie Hooks funktionieren


478| `TaskCompleted` | When a task is being marked as completed |478| `TaskCompleted` | When a task is being marked as completed |

479| `Stop` | When Claude finishes responding |479| `Stop` | When Claude finishes responding |

480| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |480| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

481| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |481| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |

482| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |482| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

483| `ConfigChange` | When a configuration file changes during a session |483| `ConfigChange` | When a configuration file changes during a session |

484| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |484| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

485| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |485| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

486| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |486| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |

487| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |487| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |

488| `PreCompact` | Before context compaction |488| `PreCompact` | Before context compaction |

489| `PostCompact` | After context compaction completes |489| `PostCompact` | After context compaction completes |

490| `Elicitation` | When an MCP server requests user input during a tool call |490| `Elicitation` | When an MCP server requests user input during a tool call |


494Jeder Hook hat einen `type`, der bestimmt, wie er ausgeführt wird. Die meisten Hooks verwenden `"type": "command"`, was einen Shell-Befehl ausführt. Vier weitere Typen sind verfügbar:494Jeder Hook hat einen `type`, der bestimmt, wie er ausgeführt wird. Die meisten Hooks verwenden `"type": "command"`, was einen Shell-Befehl ausführt. Vier weitere Typen sind verfügbar:

495 495 

496* `"type": "http"`: Event-Daten an eine URL POSTen. Siehe [HTTP-Hooks](#http-hooks).496* `"type": "http"`: Event-Daten an eine URL POSTen. Siehe [HTTP-Hooks](#http-hooks).

497* `"type": "mcp_tool"`: ein Tool auf einem bereits verbundenen MCP-Server aufrufen. Siehe [MCP-Tool-Hooks](/de/hooks#mcp-tool-hook-fields).497* `"type": "mcp_tool"`: ein Tool auf einem bereits verbundenen MCP-Server aufrufen. Siehe [MCP-Tool-Hooks](/docs/de/hooks#mcp-tool-hook-fields).

498* `"type": "prompt"`: Single-Turn-LLM-Bewertung. Siehe [Prompt-basierte Hooks](#prompt-based-hooks).498* `"type": "prompt"`: Single-Turn-LLM-Bewertung. Siehe [Prompt-basierte Hooks](#prompt-based-hooks).

499* `"type": "agent"`: Multi-Turn-Verifizierung mit Tool-Zugriff. Agent-Hooks sind experimentell und können sich ändern. Siehe [Agent-basierte Hooks](#agent-based-hooks).499* `"type": "agent"`: Multi-Turn-Verifizierung mit Tool-Zugriff. Agent-Hooks sind experimentell und können sich ändern. Siehe [Agent-basierte Hooks](#agent-based-hooks).

500 500 


556}556}

557```557```

558 558 

559Ihr Skript kann dieses JSON parsen und auf alle diese Felder reagieren. `UserPromptSubmit`-Hooks erhalten stattdessen den `prompt`-Text, `SessionStart`-Hooks erhalten die `source` (startup, resume, clear, compact) und so weiter. Siehe [Gemeinsame Eingabefelder](/de/hooks#common-input-fields) in der Referenz für gemeinsame Felder und jeden Event-Abschnitt für Event-spezifische Schemas.559Ihr Skript kann dieses JSON parsen und auf alle diese Felder reagieren. `UserPromptSubmit`-Hooks erhalten stattdessen den `prompt`-Text, `SessionStart`-Hooks erhalten die `source` (startup, resume, clear, compact) und so weiter. Siehe [Gemeinsame Eingabefelder](/docs/de/hooks#common-input-fields) in der Referenz für gemeinsame Felder und jeden Event-Abschnitt für Event-spezifische Schemas.

560 560 

561<h4 id="hook-output">561<h4 id="hook-output">

562 Hook-Ausgabe562 Hook-Ausgabe


579 579 

580Der Exit-Code bestimmt, was als nächstes passiert:580Der Exit-Code bestimmt, was als nächstes passiert:

581 581 

582* **Exit 0**: der Hook meldet keinen Einwand und die Aktion wird normal fortgesetzt. Für einen `PreToolUse`-Hook genehmigt dies nicht den Tool-Aufruf: der normale [Berechtigungsfluss](/de/permissions) gilt weiterhin. Für `UserPromptSubmit`-, `UserPromptExpansion`- und `SessionStart`-Hooks wird alles, was Sie auf stdout schreiben, zu Claudes Kontext hinzugefügt.582* **Exit 0**: der Hook meldet keinen Einwand und die Aktion wird normal fortgesetzt. Für einen `PreToolUse`-Hook genehmigt dies nicht den Tool-Aufruf: der normale [Berechtigungsfluss](/docs/de/permissions) gilt weiterhin. Für `UserPromptSubmit`-, `UserPromptExpansion`- und `SessionStart`-Hooks wird alles, was Sie auf stdout schreiben, zu Claudes Kontext hinzugefügt.

583* **Exit 2**: die Aktion wird blockiert. Schreiben Sie einen Grund auf stderr, und Claude erhält ihn als Feedback, sodass er sich anpassen kann. Einige Events können nicht blockiert werden: Für `SessionStart`, `Setup`, `Notification` und andere zeigt exit 2 stderr dem Benutzer an und die Ausführung wird fortgesetzt. Siehe [Exit-Code-2-Verhalten pro Event](/de/hooks#exit-code-2-behavior-per-event) für die vollständige Liste.583* **Exit 2**: die Aktion wird blockiert. Schreiben Sie einen Grund auf stderr, und Claude erhält ihn als Feedback, sodass er sich anpassen kann. Einige Events können nicht blockiert werden: Für `SessionStart`, `Setup`, `Notification` und andere zeigt exit 2 stderr dem Benutzer an und die Ausführung wird fortgesetzt. Siehe [Exit-Code-2-Verhalten pro Event](/docs/de/hooks#exit-code-2-behavior-per-event) für die vollständige Liste.

584* **Jeder andere Exit-Code**: die Aktion wird fortgesetzt. Das Transkript zeigt eine `<hook name> hook error`-Meldung gefolgt von der ersten Zeile von stderr; das vollständige stderr geht in das [Debug-Protokoll](/de/hooks#debug-hooks).584* **Jeder andere Exit-Code**: die Aktion wird fortgesetzt. Das Transkript zeigt eine `<hook name> hook error`-Meldung gefolgt von der ersten Zeile von stderr; das vollständige stderr geht in das [Debug-Protokoll](/docs/de/hooks#debug-hooks).

585 585 

586<h4 id="structured-json-output">586<h4 id="structured-json-output">

587 Strukturierte JSON-Ausgabe587 Strukturierte JSON-Ausgabe


607 607 

608Mit `"deny"` bricht Claude Code den Tool-Aufruf ab und gibt `permissionDecisionReason` an Claude als Feedback zurück. Diese `permissionDecision`-Werte sind spezifisch für `PreToolUse`:608Mit `"deny"` bricht Claude Code den Tool-Aufruf ab und gibt `permissionDecisionReason` an Claude als Feedback zurück. Diese `permissionDecision`-Werte sind spezifisch für `PreToolUse`:

609 609 

610* `"allow"`: die interaktive Berechtigungsaufforderung überspringen. Deny- und Ask-Regeln, einschließlich verwalteter Deny-Listen, gelten weiterhin, ebenso wie Aufforderungen für Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind610* `"allow"`: die interaktive Berechtigungsaufforderung überspringen. Deny- und Ask-Regeln, einschließlich verwalteter Deny-Listen, gelten weiterhin, ebenso wie Aufforderungen für Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind

611* `"deny"`: Tool-Aufruf abbrechen und den Grund an Claude senden611* `"deny"`: Tool-Aufruf abbrechen und den Grund an Claude senden

612* `"ask"`: Berechtigungsaufforderung dem Benutzer wie gewohnt anzeigen612* `"ask"`: Berechtigungsaufforderung dem Benutzer wie gewohnt anzeigen

613 613 

614Ein vierter Wert, `"defer"`, ist im [nicht-interaktiven Modus](/de/headless) mit dem Flag `-p` verfügbar. Er beendet den Prozess mit dem beibehaltenen Tool-Aufruf, sodass ein Agent SDK-Wrapper Eingaben sammeln und fortfahren kann. Siehe [Einen Tool-Aufruf für später aufschieben](/de/hooks#defer-a-tool-call-for-later) in der Referenz.614Ein vierter Wert, `"defer"`, ist im [nicht-interaktiven Modus](/docs/de/headless) mit dem Flag `-p` verfügbar. Er beendet den Prozess mit dem beibehaltenen Tool-Aufruf, sodass ein Agent SDK-Wrapper Eingaben sammeln und fortfahren kann. Siehe [Einen Tool-Aufruf für später aufschieben](/docs/de/hooks#defer-a-tool-call-for-later) in der Referenz.

615 615 

616Die Rückgabe von `"allow"` überspringt die interaktive Aufforderung, überschreibt aber nicht [Berechtigungsregeln](/de/permissions#manage-permissions). Wenn eine Deny-Regel dem Tool-Aufruf entspricht, wird der Aufruf blockiert, auch wenn Ihr Hook `"allow"` zurückgibt. Wenn eine Ask-Regel entspricht, wird der Benutzer immer noch aufgefordert, ebenso wie Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind. Dies bedeutet, dass Deny-Regeln aus jedem Einstellungsbereich, einschließlich [verwalteter Einstellungen](/de/settings#settings-files), immer Vorrang vor Hook-Genehmigungen haben.616Die Rückgabe von `"allow"` überspringt die interaktive Aufforderung, überschreibt aber nicht [Berechtigungsregeln](/docs/de/permissions#manage-permissions). Wenn eine Deny-Regel dem Tool-Aufruf entspricht, wird der Aufruf blockiert, auch wenn Ihr Hook `"allow"` zurückgibt. Wenn eine Ask-Regel entspricht, wird der Benutzer immer noch aufgefordert, ebenso wie Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind. Dies bedeutet, dass Deny-Regeln aus jedem Einstellungsbereich, einschließlich [verwalteter Einstellungen](/docs/de/settings#settings-files), immer Vorrang vor Hook-Genehmigungen haben.

617 617 

618Andere Events verwenden unterschiedliche Entscheidungsmuster. Beispielsweise verwenden `PostToolUse`- und `Stop`-Hooks ein Top-Level-Feld `decision: "block"`, während `PermissionRequest` `hookSpecificOutput.decision.behavior` verwendet. Siehe die [Zusammenfassungstabelle](/de/hooks#decision-control) in der Referenz für eine vollständige Aufschlüsselung nach Event.618Andere Events verwenden unterschiedliche Entscheidungsmuster. Beispielsweise verwenden `PostToolUse`- und `Stop`-Hooks ein Top-Level-Feld `decision: "block"`, während `PermissionRequest` `hookSpecificOutput.decision.behavior` verwendet. Siehe die [Zusammenfassungstabelle](/docs/de/hooks#decision-control) in der Referenz für eine vollständige Aufschlüsselung nach Event.

619 619 

620Für `UserPromptSubmit`-Hooks verwenden Sie `hookSpecificOutput.additionalContext` stattdessen, um Text in Claudes Kontext zu injizieren. Verschachteln Sie `additionalContext` in `hookSpecificOutput`; wenn Sie es auf der obersten Ebene des JSON platzieren, ignoriert Claude Code es stillschweigend. Beispielsweise fügt diese Ausgabe den aktuellen Branch-Status zu jedem Prompt hinzu:620Für `UserPromptSubmit`-Hooks verwenden Sie `hookSpecificOutput.additionalContext` stattdessen, um Text in Claudes Kontext zu injizieren. Verschachteln Sie `additionalContext` in `hookSpecificOutput`; wenn Sie es auf der obersten Ebene des JSON platzieren, ignoriert Claude Code es stillschweigend. Beispielsweise fügt diese Ausgabe den aktuellen Branch-Status zu jedem Prompt hinzu:

621 621 


628}628}

629```629```

630 630 

631Siehe [UserPromptSubmit-Entscheidungskontrolle](/de/hooks#userpromptsubmit-decision-control) für die vollständige Ausgabeform, einschließlich Blockierung von Prompts und Festlegung des Sitzungstitels.631Siehe [UserPromptSubmit-Entscheidungskontrolle](/docs/de/hooks#userpromptsubmit-decision-control) für die vollständige Ausgabeform, einschließlich Blockierung von Prompts und Festlegung des Sitzungstitels.

632 632 

633Hooks mit `type: "prompt"` handhaben die Ausgabe anders: siehe [Prompt-basierte Hooks](#prompt-based-hooks).633Hooks mit `type: "prompt"` handhaben die Ausgabe anders: siehe [Prompt-basierte Hooks](#prompt-based-hooks).

634 634 


653}653}

654```654```

655 655 

656Der `"Edit|Write"`-Matcher wird ausgelöst, wenn Claude das `Edit`- oder `Write`-Tool verwendet, nicht wenn es `Bash`, `Read` oder ein anderes Tool verwendet. {/* min-version: 2.1.191 */}In Claude Code v2.1.191 oder später trennt ein Komma Alternativen auf die gleiche Weise, sodass `"Edit, Write"` gleichwertig ist. Siehe [Matcher-Muster](/de/hooks#matcher-patterns) für die Auswertung von einfachen Namen und regulären Ausdrücken.656Der `"Edit|Write"`-Matcher wird ausgelöst, wenn Claude das `Edit`- oder `Write`-Tool verwendet, nicht wenn es `Bash`, `Read` oder ein anderes Tool verwendet. {/* min-version: 2.1.191 */}In Claude Code v2.1.191 oder später trennt ein Komma Alternativen auf die gleiche Weise, sodass `"Edit, Write"` gleichwertig ist. Siehe [Matcher-Muster](/docs/de/hooks#matcher-patterns) für die Auswertung von einfachen Namen und regulären Ausdrücken.

657 657 

658<Note>658<Note>

659 Claude kann auch Dateien erstellen oder ändern, indem er Shell-Befehle über das `Bash`-Tool ausführt. Wenn Ihr Hook jede Dateiänderung sehen muss, z. B. für Compliance-Scanning oder Audit-Protokollierung, fügen Sie einen [`Stop`](/de/hooks#stop)-Hook hinzu, der den Arbeitsbaum einmal pro Runde scannt. Für Pro-Aufruf-Abdeckung stattdessen auch `Bash` abgleichen und Ihr Skript geänderte und nicht verfolgte Dateien mit `git status --porcelain` auflisten.659 Claude kann auch Dateien erstellen oder ändern, indem er Shell-Befehle über das `Bash`-Tool ausführt. Wenn Ihr Hook jede Dateiänderung sehen muss, z. B. für Compliance-Scanning oder Audit-Protokollierung, fügen Sie einen [`Stop`](/docs/de/hooks#stop)-Hook hinzu, der den Arbeitsbaum einmal pro Runde scannt. Für Pro-Aufruf-Abdeckung stattdessen auch `Bash` abgleichen und Ihr Skript geänderte und nicht verfolgte Dateien mit `git status --porcelain` auflisten.

660</Note>660</Note>

661 661 

662Jeder Event-Typ gleicht ein bestimmtes Feld ab:662Jeder Event-Typ gleicht ein bestimmtes Feld ab:


676| `InstructionsLoaded` | Ladegrund | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |676| `InstructionsLoaded` | Ladegrund | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |

677| `Elicitation` | MCP-Servername | Ihre konfigurierten MCP-Servernamen |677| `Elicitation` | MCP-Servername | Ihre konfigurierten MCP-Servernamen |

678| `ElicitationResult` | MCP-Servername | gleiche Werte wie `Elicitation` |678| `ElicitationResult` | MCP-Servername | gleiche Werte wie `Elicitation` |

679| `FileChanged` | Dateinamen zum Überwachen (siehe [FileChanged](/de/hooks#filechanged)) | `.envrc\|.env` |679| `FileChanged` | Dateinamen zum Überwachen (siehe [FileChanged](/docs/de/hooks#filechanged)) | `.envrc\|.env` |

680| `UserPromptExpansion` | Befehlsname | Ihre Skill- oder Befehlsnamen |680| `UserPromptExpansion` | Befehlsname | Ihre Skill- oder Befehlsnamen |

681| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | keine Matcher-Unterstützung | wird immer bei jedem Auftreten ausgelöst |681| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | keine Matcher-Unterstützung | wird immer bei jedem Auftreten ausgelöst |

682 682 


706 </Tab>706 </Tab>

707 707 

708 <Tab title="MCP-Tools abgleichen">708 <Tab title="MCP-Tools abgleichen">

709 MCP-Tools verwenden eine andere Namenskonvention als integrierte Tools: `mcp__<server>__<tool>`, wobei `<server>` der MCP-Servername und `<tool>` das Tool ist, das er bereitstellt. Beispielsweise `mcp__github__search_repositories` oder `mcp__filesystem__read_file`. Tools von einem [Plugin-gebündelten Server](/de/mcp#plugin-provided-mcp-servers) verwenden stattdessen ein Scoped-Server-Segment, z. B. `mcp__plugin_my-plugin_db__query`. Verwenden Sie einen Regex-Matcher, um alle Tools von einem bestimmten Server zu erfassen, oder gleichen Sie Server übergreifend mit einem Muster wie `mcp__.*__write.*` ab. Siehe [MCP-Tools abgleichen](/de/hooks#match-mcp-tools) in der Referenz für die vollständige Liste der Beispiele.709 MCP-Tools verwenden eine andere Namenskonvention als integrierte Tools: `mcp__<server>__<tool>`, wobei `<server>` der MCP-Servername und `<tool>` das Tool ist, das er bereitstellt. Beispielsweise `mcp__github__search_repositories` oder `mcp__filesystem__read_file`. Tools von einem [Plugin-gebündelten Server](/docs/de/mcp#plugin-provided-mcp-servers) verwenden stattdessen ein Scoped-Server-Segment, z. B. `mcp__plugin_my-plugin_db__query`. Verwenden Sie einen Regex-Matcher, um alle Tools von einem bestimmten Server zu erfassen, oder gleichen Sie Server übergreifend mit einem Muster wie `mcp__.*__write.*` ab. Siehe [MCP-Tools abgleichen](/docs/de/hooks#match-mcp-tools) in der Referenz für die vollständige Liste der Beispiele.

710 710 

711 Der folgende Befehl extrahiert den Tool-Namen aus der Hook-JSON-Eingabe mit `jq` und schreibt ihn auf stderr. Das Schreiben auf stderr hält stdout sauber für JSON-Ausgabe und sendet die Meldung in das [Debug-Protokoll](/de/hooks#debug-hooks):711 Der folgende Befehl extrahiert den Tool-Namen aus der Hook-JSON-Eingabe mit `jq` und schreibt ihn auf stderr. Das Schreiben auf stderr hält stdout sauber für JSON-Ausgabe und sendet die Meldung in das [Debug-Protokoll](/docs/de/hooks#debug-hooks):

712 712 

713 ```json theme={null}713 ```json theme={null}

714 {714 {


752 </Tab>752 </Tab>

753</Tabs>753</Tabs>

754 754 

755Für die vollständige Matcher-Syntax siehe die [Hooks-Referenz](/de/hooks#configuration).755Für die vollständige Matcher-Syntax siehe die [Hooks-Referenz](/docs/de/hooks#configuration).

756 756 

757<h4 id="filter-by-tool-name-and-arguments-with-the-if-field">757<h4 id="filter-by-tool-name-and-arguments-with-the-if-field">

758 Hooks mit dem Feld `if` nach Tool-Name und Argumenten filtern758 Hooks mit dem Feld `if` nach Tool-Name und Argumenten filtern

759</h4>759</h4>

760 760 

761Das Feld `if` verwendet [Berechtigungsregel-Syntax](/de/permissions) zum Filtern von Hooks nach Tool-Name und Argumenten zusammen, sodass der Hook-Prozess nur spawnt, wenn der Tool-Aufruf übereinstimmt. Dies geht über `matcher` hinaus, das auf der Gruppenebene nur nach Tool-Name filtert.761Das Feld `if` verwendet [Berechtigungsregel-Syntax](/docs/de/permissions) zum Filtern von Hooks nach Tool-Name und Argumenten zusammen, sodass der Hook-Prozess nur spawnt, wenn der Tool-Aufruf übereinstimmt. Dies geht über `matcher` hinaus, das auf der Gruppenebene nur nach Tool-Name filtert.

762 762 

763Beispielsweise, um einen Hook nur auszuführen, wenn Claude `git`-Befehle verwendet, anstatt alle Bash-Befehle:763Beispielsweise, um einen Hook nur auszuführen, wenn Claude `git`-Befehle verwendet, anstatt alle Bash-Befehle:

764 764 


791| `Bash(git *)` | `echo $(date)` | nein | kein Subbefehl stimmt mit `git *` überein |791| `Bash(git *)` | `echo $(date)` | nein | kein Subbefehl stimmt mit `git *` überein |

792| `Bash(git push *)` | `echo $(date)` | ja | Muster, die mehr als den Befehlsnamen angeben, führen den Hook trotzdem bei `$()`, Backticks oder `$VAR` aus |792| `Bash(git push *)` | `echo $(date)` | ja | Muster, die mehr als den Befehlsnamen angeben, führen den Hook trotzdem bei `$()`, Backticks oder `$VAR` aus |

793 793 

794Der Filter schlägt auch offen fehl und führt Ihren Hook unabhängig vom Muster aus, wenn der Bash-Befehl nicht geparst werden kann. Da der Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/de/permissions) anstelle eines Hooks, um ein hartes Allow oder Deny durchzusetzen.794Der Filter schlägt auch offen fehl und führt Ihren Hook unabhängig vom Muster aus, wenn der Bash-Befehl nicht geparst werden kann. Da der Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/docs/de/permissions) anstelle eines Hooks, um ein hartes Allow oder Deny durchzusetzen.

795 795 

796Das Feld `if` akzeptiert die gleichen Muster wie Berechtigungsregeln: `"Bash(git *)"`, `"Edit(*.ts)"` und so weiter. Um mehrere Tool-Namen abzugleichen, verwenden Sie separate Handler, jeder mit seinem eigenen `if`-Wert, oder gleichen Sie auf der `matcher`-Ebene ab, wo Pipe-Alternation unterstützt wird.796Das Feld `if` akzeptiert die gleichen Muster wie Berechtigungsregeln: `"Bash(git *)"`, `"Edit(*.ts)"` und so weiter. Um mehrere Tool-Namen abzugleichen, verwenden Sie separate Handler, jeder mit seinem eigenen `if`-Wert, oder gleichen Sie auf der `matcher`-Ebene ab, wo Pipe-Alternation unterstützt wird.

797 797 


809| `.claude/settings.json` | Einzelnes Projekt | Ja, kann im Repo committed werden |809| `.claude/settings.json` | Einzelnes Projekt | Ja, kann im Repo committed werden |

810| `.claude/settings.local.json` | Einzelnes Projekt | Nein, gitignoriert wenn Claude Code es erstellt |810| `.claude/settings.local.json` | Einzelnes Projekt | Nein, gitignoriert wenn Claude Code es erstellt |

811| Verwaltete Richtlinieneinstellungen | Organisationsweit | Ja, von Admin kontrolliert |811| Verwaltete Richtlinieneinstellungen | Organisationsweit | Ja, von Admin kontrolliert |

812| [Plugin](/de/plugins) `hooks/hooks.json` | Wenn Plugin aktiviert ist | Ja, mit dem Plugin gebündelt |812| [Plugin](/docs/de/plugins) `hooks/hooks.json` | Wenn Plugin aktiviert ist | Ja, mit dem Plugin gebündelt |

813| [Skill](/de/skills) oder [Agent](/de/sub-agents) Frontmatter | Während der Skill oder Agent aktiv ist | Ja, in der Komponentendatei definiert |813| [Skill](/docs/de/skills) oder [Agent](/docs/de/sub-agents) Frontmatter | Während der Skill oder Agent aktiv ist | Ja, in der Komponentendatei definiert |

814 814 

815Führen Sie [`/hooks`](/de/hooks#the-%2Fhooks-menu) in Claude Code aus, um alle konfigurierten Hooks nach Event gruppiert zu durchsuchen.815Führen Sie [`/hooks`](/docs/de/hooks#the-%2Fhooks-menu) in Claude Code aus, um alle konfigurierten Hooks nach Event gruppiert zu durchsuchen.

816 816 

817Um Hooks zu deaktivieren, setzen Sie `"disableAllHooks": true` in Ihrer Einstellungsdatei. Hooks, die in verwalteten Einstellungen konfiguriert sind, werden weiterhin ausgeführt, es sei denn, `disableAllHooks` ist auch dort gesetzt.817Um Hooks zu deaktivieren, setzen Sie `"disableAllHooks": true` in Ihrer Einstellungsdatei. Hooks, die in verwalteten Einstellungen konfiguriert sind, werden weiterhin ausgeführt, es sei denn, `disableAllHooks` ist auch dort gesetzt.

818 818 


851}851}

852```852```

853 853 

854Für vollständige Konfigurationsoptionen siehe [Prompt-basierte Hooks](/de/hooks#prompt-based-hooks) in der Referenz.854Für vollständige Konfigurationsoptionen siehe [Prompt-basierte Hooks](/docs/de/hooks#prompt-based-hooks) in der Referenz.

855 855 

856<h2 id="agent-based-hooks">856<h2 id="agent-based-hooks">

857 Agent-basierte Hooks857 Agent-basierte Hooks

858</h2>858</h2>

859 859 

860<Warning>860<Warning>

861 Agent-Hooks sind experimentell. Verhalten und Konfiguration können sich in zukünftigen Versionen ändern. Für Produktions-Workflows bevorzugen Sie [Command-Hooks](/de/hooks#command-hook-fields).861 Agent-Hooks sind experimentell. Verhalten und Konfiguration können sich in zukünftigen Versionen ändern. Für Produktions-Workflows bevorzugen Sie [Command-Hooks](/docs/de/hooks#command-hook-fields).

862</Warning>862</Warning>

863 863 

864Wenn die Verifizierung das Inspizieren von Dateien oder das Ausführen von Befehlen erfordert, verwenden Sie `type: "agent"`-Hooks. Im Gegensatz zu Prompt-Hooks, die einen einzelnen LLM-Aufruf tätigen, spawnen Agent-Hooks einen Subagent, der Dateien lesen, Code durchsuchen und andere Tools verwenden kann, um Bedingungen zu überprüfen, bevor eine Entscheidung zurückgegeben wird.864Wenn die Verifizierung das Inspizieren von Dateien oder das Ausführen von Befehlen erfordert, verwenden Sie `type: "agent"`-Hooks. Im Gegensatz zu Prompt-Hooks, die einen einzelnen LLM-Aufruf tätigen, spawnen Agent-Hooks einen Subagent, der Dateien lesen, Code durchsuchen und andere Tools verwenden kann, um Bedingungen zu überprüfen, bevor eine Entscheidung zurückgegeben wird.


887 887 

888Verwenden Sie Prompt-Hooks, wenn die Hook-Eingabedaten allein ausreichen, um eine Entscheidung zu treffen. Verwenden Sie Agent-Hooks, wenn Sie etwas gegen den tatsächlichen Zustand der Codebasis überprüfen müssen.888Verwenden Sie Prompt-Hooks, wenn die Hook-Eingabedaten allein ausreichen, um eine Entscheidung zu treffen. Verwenden Sie Agent-Hooks, wenn Sie etwas gegen den tatsächlichen Zustand der Codebasis überprüfen müssen.

889 889 

890Für vollständige Konfigurationsoptionen siehe [Agent-basierte Hooks](/de/hooks#agent-based-hooks) in der Referenz.890Für vollständige Konfigurationsoptionen siehe [Agent-basierte Hooks](/docs/de/hooks#agent-based-hooks) in der Referenz.

891 891 

892<h2 id="http-hooks">892<h2 id="http-hooks">

893 HTTP-Hooks893 HTTP-Hooks


920}920}

921```921```

922 922 

923Der Endpunkt sollte einen JSON-Antwortkörper mit dem gleichen [Ausgabeformat](/de/hooks#json-output) wie Command-Hooks zurückgeben. Um einen Tool-Aufruf zu blockieren, geben Sie eine 2xx-Antwort mit den entsprechenden `hookSpecificOutput`-Feldern zurück. HTTP-Statuscodes allein können Aktionen nicht blockieren.923Der Endpunkt sollte einen JSON-Antwortkörper mit dem gleichen [Ausgabeformat](/docs/de/hooks#json-output) wie Command-Hooks zurückgeben. Um einen Tool-Aufruf zu blockieren, geben Sie eine 2xx-Antwort mit den entsprechenden `hookSpecificOutput`-Feldern zurück. HTTP-Statuscodes allein können Aktionen nicht blockieren.

924 924 

925Header-Werte unterstützen Umgebungsvariablen-Interpolation mit `$VAR_NAME` oder `${VAR_NAME}`-Syntax. Nur Variablen, die im Array `allowedEnvVars` aufgelistet sind, werden aufgelöst; alle anderen `$VAR`-Referenzen bleiben leer.925Header-Werte unterstützen Umgebungsvariablen-Interpolation mit `$VAR_NAME` oder `${VAR_NAME}`-Syntax. Nur Variablen, die im Array `allowedEnvVars` aufgelistet sind, werden aufgelöst; alle anderen `$VAR`-Referenzen bleiben leer.

926 926 

927Für vollständige Konfigurationsoptionen und Response-Handling siehe [HTTP-Hooks](/de/hooks#http-hook-fields) in der Referenz.927Für vollständige Konfigurationsoptionen und Response-Handling siehe [HTTP-Hooks](/docs/de/hooks#http-hook-fields) in der Referenz.

928 928 

929<h2 id="limitations-and-troubleshooting">929<h2 id="limitations-and-troubleshooting">

930 Einschränkungen und Fehlerbehebung930 Einschränkungen und Fehlerbehebung


942 * `prompt`: 30 Sekunden.942 * `prompt`: 30 Sekunden.

943 * `agent`: 60 Sekunden.943 * `agent`: 60 Sekunden.

944* `PostToolUse`-Hooks können Aktionen nicht rückgängig machen, da das Tool bereits ausgeführt wurde.944* `PostToolUse`-Hooks können Aktionen nicht rückgängig machen, da das Tool bereits ausgeführt wurde.

945* `PermissionRequest`-Hooks werden nicht im [nicht-interaktiven Modus](/de/headless) mit dem Flag `-p` ausgelöst. Verwenden Sie `PreToolUse`-Hooks für automatisierte Berechtigungsentscheidungen.945* `PermissionRequest`-Hooks werden nicht im [nicht-interaktiven Modus](/docs/de/headless) mit dem Flag `-p` ausgelöst. Verwenden Sie `PreToolUse`-Hooks für automatisierte Berechtigungsentscheidungen.

946* `Stop`-Hooks werden ausgelöst, wenn Claude antwortet, nicht nur bei Aufgabenabschluss. Sie werden nicht bei Benutzerunterbrechungen ausgelöst. API-Fehler lösen stattdessen [StopFailure](/de/hooks#stopfailure) aus.946* `Stop`-Hooks werden ausgelöst, wenn Claude antwortet, nicht nur bei Aufgabenabschluss. Sie werden nicht bei Benutzerunterbrechungen ausgelöst. API-Fehler lösen stattdessen [StopFailure](/docs/de/hooks#stopfailure) aus.

947* Wenn mehrere `PreToolUse`-Hooks [`updatedInput`](/de/hooks#pretooluse) zurückgeben, um die Argumente eines Tools umzuschreiben, gewinnt der letzte, der fertig wird. Da Hooks parallel ausgeführt werden, ist die Reihenfolge nicht deterministisch. Vermeiden Sie, dass mehr als ein Hook die Eingabe desselben Tools ändert.947* Wenn mehrere `PreToolUse`-Hooks [`updatedInput`](/docs/de/hooks#pretooluse) zurückgeben, um die Argumente eines Tools umzuschreiben, gewinnt der letzte, der fertig wird. Da Hooks parallel ausgeführt werden, ist die Reihenfolge nicht deterministisch. Vermeiden Sie, dass mehr als ein Hook die Eingabe desselben Tools ändert.

948 948 

949<h3 id="hooks-and-permission-modes">949<h3 id="hooks-and-permission-modes">

950 Hooks und Berechtigungsmodi950 Hooks und Berechtigungsmodi


952 952 

953`PreToolUse`-Hooks werden vor jeder Berechtigungsmodus-Überprüfung ausgelöst. Ein Hook, der `permissionDecision: "deny"` zurückgibt, blockiert das Tool auch im `bypassPermissions`-Modus oder mit `--dangerously-skip-permissions`. Dies ermöglicht es Ihnen, Richtlinien durchzusetzen, die Benutzer nicht umgehen können, indem sie ihren Berechtigungsmodus ändern.953`PreToolUse`-Hooks werden vor jeder Berechtigungsmodus-Überprüfung ausgelöst. Ein Hook, der `permissionDecision: "deny"` zurückgibt, blockiert das Tool auch im `bypassPermissions`-Modus oder mit `--dangerously-skip-permissions`. Dies ermöglicht es Ihnen, Richtlinien durchzusetzen, die Benutzer nicht umgehen können, indem sie ihren Berechtigungsmodus ändern.

954 954 

955Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht keine Deny-Regeln aus Einstellungen, und er kann die Aufforderung für Connector-Tools nicht unterdrücken, [die Ihre Organisation auf `ask` gesetzt hat](/de/mcp#organization-controls-on-connector-tools), oder MCP-Tools, die mit [`requiresUserInteraction`](/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind. Hooks können Einschränkungen verschärfen, aber nicht über das hinaus lockern, was Berechtigungsregeln zulassen.955Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht keine Deny-Regeln aus Einstellungen, und er kann die Aufforderung für Connector-Tools nicht unterdrücken, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), oder MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind. Hooks können Einschränkungen verschärfen, aber nicht über das hinaus lockern, was Berechtigungsregeln zulassen.

956 956 

957<h3 id="hook-not-firing">957<h3 id="hook-not-firing">

958 Hook wird nicht ausgelöst958 Hook wird nicht ausgelöst


976 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh976 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh

977 echo $? # Überprüfen Sie den Exit-Code977 echo $? # Überprüfen Sie den Exit-Code

978 ```978 ```

979* Wenn Sie "command not found" sehen, verwenden Sie absolute Pfade oder `${CLAUDE_PROJECT_DIR}`, um Skripte zu referenzieren. Um Shell-Quoting vollständig zu vermeiden, fügen Sie `"args": []` hinzu, um zur [exec-Form](/de/hooks#exec-form-and-shell-form) zu wechseln, die das Skript direkt ohne eine Shell spawnt979* Wenn Sie "command not found" sehen, verwenden Sie absolute Pfade oder `${CLAUDE_PROJECT_DIR}`, um Skripte zu referenzieren. Um Shell-Quoting vollständig zu vermeiden, fügen Sie `"args": []` hinzu, um zur [exec-Form](/docs/de/hooks#exec-form-and-shell-form) zu wechseln, die das Skript direkt ohne eine Shell spawnt

980* Wenn Sie "jq: command not found" sehen, installieren Sie `jq` oder verwenden Sie Python/Node.js zum Parsen von JSON980* Wenn Sie "jq: command not found" sehen, installieren Sie `jq` oder verwenden Sie Python/Node.js zum Parsen von JSON

981* Wenn das Skript überhaupt nicht ausgeführt wird, machen Sie es ausführbar: `chmod +x ./my-hook.sh`981* Wenn das Skript überhaupt nicht ausgeführt wird, machen Sie es ausführbar: `chmod +x ./my-hook.sh`

982 982 


1007# ... Rest Ihrer Hook-Logik1007# ... Rest Ihrer Hook-Logik

1008```1008```

1009 1009 

1010Wenn Ihr Hook legitim mehr als acht Iterationen benötigt, um zu konvergieren, erhöhen Sie die Grenze mit [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/de/env-vars).1010Wenn Ihr Hook legitim mehr als acht Iterationen benötigt, um zu konvergieren, erhöhen Sie die Grenze mit [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/de/env-vars).

1011 1011 

1012<h3 id="json-validation-failed">1012<h3 id="json-validation-failed">

1013 JSON-Validierung fehlgeschlagen1013 JSON-Validierung fehlgeschlagen


1045 Weitere Informationen1045 Weitere Informationen

1046</h2>1046</h2>

1047 1047 

1048* [Hooks-Referenz](/de/hooks): vollständige Event-Schemas, JSON-Ausgabeformat, asynchrone Hooks und MCP-Tool-Hooks1048* [Hooks-Referenz](/docs/de/hooks): vollständige Event-Schemas, JSON-Ausgabeformat, asynchrone Hooks und MCP-Tool-Hooks

1049* [Sicherheitsüberlegungen](/de/hooks#security-considerations): überprüfen Sie vor der Bereitstellung von Hooks in gemeinsamen oder Produktionsumgebungen1049* [Sicherheitsüberlegungen](/docs/de/hooks#security-considerations): überprüfen Sie vor der Bereitstellung von Hooks in gemeinsamen oder Produktionsumgebungen

1050* [Bash-Befehlsvalidator-Beispiel](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py): vollständige Referenzimplementierung1050* [Bash-Befehlsvalidator-Beispiel](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py): vollständige Referenzimplementierung

Details

7> Vollständige technische Referenz für das Claude Code Plugin-System, einschließlich Schemas, CLI-Befehle und Komponentenspezifikationen.7> Vollständige technische Referenz für das Claude Code Plugin-System, einschließlich Schemas, CLI-Befehle und Komponentenspezifikationen.

8 8 

9<Tip>9<Tip>

10 Möchten Sie Plugins installieren? Siehe [Plugins entdecken und installieren](/de/discover-plugins). Zum Erstellen von Plugins siehe [Plugins](/de/plugins). Zum Verteilen von Plugins siehe [Plugin-Marktplätze](/de/plugin-marketplaces).10 Möchten Sie Plugins installieren? Siehe [Plugins entdecken und installieren](/docs/de/discover-plugins). Zum Erstellen von Plugins siehe [Plugins](/docs/de/plugins). Zum Verteilen von Plugins siehe [Plugin-Marktplätze](/docs/de/plugin-marketplaces).

11</Tip>11</Tip>

12 12 

13Diese Referenz bietet vollständige technische Spezifikationen für das Claude Code Plugin-System, einschließlich Komponentenschemas, CLI-Befehle und Entwicklungstools.13Diese Referenz bietet vollständige technische Spezifikationen für das Claude Code Plugin-System, einschließlich Komponentenschemas, CLI-Befehle und Entwicklungstools.


48 48 

49Wenn ein Plugin kein `skills/` Verzeichnis und kein `skills` Manifest-Feld hat, wird eine `SKILL.md` im Plugin-Root als einzelner Skill geladen. Setzen Sie das Frontmatter-Feld `name`, um den Aufrufen-Namen des Skills zu steuern. Ohne dieses Feld greift Claude Code auf den Installationsverzeichnisnamen zurück, der bei vom Marktplatz installierten Plugins ein Versionsstring ist, der sich bei jedem Update ändert. Für Plugins, die mehr als einen Skill versenden, verwenden Sie das oben gezeigte `skills/` Verzeichnis-Layout.49Wenn ein Plugin kein `skills/` Verzeichnis und kein `skills` Manifest-Feld hat, wird eine `SKILL.md` im Plugin-Root als einzelner Skill geladen. Setzen Sie das Frontmatter-Feld `name`, um den Aufrufen-Namen des Skills zu steuern. Ohne dieses Feld greift Claude Code auf den Installationsverzeichnisnamen zurück, der bei vom Marktplatz installierten Plugins ein Versionsstring ist, der sich bei jedem Update ändert. Für Plugins, die mehr als einen Skill versenden, verwenden Sie das oben gezeigte `skills/` Verzeichnis-Layout.

50 50 

51Vollständige Details finden Sie unter [Skills](/de/skills).51Vollständige Details finden Sie unter [Skills](/docs/de/skills).

52 52 

53<h3 id="agents">53<h3 id="agents">

54 Agents54 Agents


79 79 

80**Integrationspunkte**:80**Integrationspunkte**:

81 81 

82* Agents erscheinen in der [@-mention Typeahead](/de/sub-agents#invoke-subagents-explicitly) unter ihrem scoped Namen, wie `my-plugin:code-reviewer`, sobald das Plugin aktiviert ist82* Agents erscheinen in der [@-mention Typeahead](/docs/de/sub-agents#invoke-subagents-explicitly) unter ihrem scoped Namen, wie `my-plugin:code-reviewer`, sobald das Plugin aktiviert ist

83* Claude kann Agents automatisch basierend auf dem Task-Kontext aufrufen83* Claude kann Agents automatisch basierend auf dem Task-Kontext aufrufen

84* Agents können manuell von Benutzern aufgerufen werden84* Agents können manuell von Benutzern aufgerufen werden

85* Plugin-Agents funktionieren neben integrierten Claude-Agents85* Plugin-Agents funktionieren neben integrierten Claude-Agents

86 86 

87Vollständige Details finden Sie unter [Subagents](/de/sub-agents).87Vollständige Details finden Sie unter [Subagents](/docs/de/sub-agents).

88 88 

89<h3 id="hooks">89<h3 id="hooks">

90 Hooks90 Hooks


116}116}

117```117```

118 118 

119Plugin-Hooks reagieren auf die gleichen Lifecycle-Events wie [benutzerdefinierte Hooks](/de/hooks):119Plugin-Hooks reagieren auf die gleichen Lifecycle-Events wie [benutzerdefinierte Hooks](/docs/de/hooks):

120 120 

121| Event | When it fires |121| Event | When it fires |

122| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |122| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |


138| `TaskCompleted` | When a task is being marked as completed |138| `TaskCompleted` | When a task is being marked as completed |

139| `Stop` | When Claude finishes responding |139| `Stop` | When Claude finishes responding |

140| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |140| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

141| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |141| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |

142| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |142| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

143| `ConfigChange` | When a configuration file changes during a session |143| `ConfigChange` | When a configuration file changes during a session |

144| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |144| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

145| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |145| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

146| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |146| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |

147| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |147| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |

148| `PreCompact` | Before context compaction |148| `PreCompact` | Before context compaction |

149| `PostCompact` | After context compaction completes |149| `PostCompact` | After context compaction completes |

150| `Elicitation` | When an MCP server requests user input during a tool call |150| `Elicitation` | When an MCP server requests user input during a tool call |


155 155 

156* `command`: Shell-Befehle oder Skripte ausführen156* `command`: Shell-Befehle oder Skripte ausführen

157* `http`: Das Event JSON als POST-Anfrage an eine URL senden157* `http`: Das Event JSON als POST-Anfrage an eine URL senden

158* `mcp_tool`: Ein Tool auf einem konfigurierten [MCP-Server](/de/mcp) aufrufen158* `mcp_tool`: Ein Tool auf einem konfigurierten [MCP-Server](/docs/de/mcp) aufrufen

159* `prompt`: Ein Prompt mit einem LLM evaluieren (verwendet `$ARGUMENTS` Platzhalter für Kontext)159* `prompt`: Ein Prompt mit einem LLM evaluieren (verwendet `$ARGUMENTS` Platzhalter für Kontext)

160* `agent`: Einen agentic Verifier mit Tools für komplexe Verifikationsaufgaben ausführen160* `agent`: Einen agentic Verifier mit Tools für komplexe Verifikationsaufgaben ausführen

161 161 

162Hooks, die auf den eigenen [gebündelten MCP-Server](#mcp-servers) des Plugins abzielen, müssen seine scoped Namen verwenden. Tool-Matcher und `if` Felder verwenden den scoped Tool-Namen `mcp__plugin_<plugin-name>_<server-name>__<tool>`, und das `mcp_tool` Hook-Feld `server` verwendet `plugin:<plugin-name>:<server-name>`. Ein Matcher, der gegen den bloßen Server-Schlüssel geschrieben wird, wird nie ausgelöst. Siehe [Match MCP tools](/de/hooks#match-mcp-tools) und [Plugin-bereitgestellte MCP-Server](/de/mcp#plugin-provided-mcp-servers).162Hooks, die auf den eigenen [gebündelten MCP-Server](#mcp-servers) des Plugins abzielen, müssen seine scoped Namen verwenden. Tool-Matcher und `if` Felder verwenden den scoped Tool-Namen `mcp__plugin_<plugin-name>_<server-name>__<tool>`, und das `mcp_tool` Hook-Feld `server` verwendet `plugin:<plugin-name>:<server-name>`. Ein Matcher, der gegen den bloßen Server-Schlüssel geschrieben wird, wird nie ausgelöst. Siehe [Match MCP tools](/docs/de/hooks#match-mcp-tools) und [Plugin-bereitgestellte MCP-Server](/docs/de/mcp#plugin-provided-mcp-servers).

163 163 

164<h3 id="mcp-servers">164<h3 id="mcp-servers">

165 MCP-Server165 MCP-Server


300 300 

301Plugins können Hintergrund-Monitore deklarieren, die Claude Code automatisch startet, wenn das Plugin aktiv ist. Jeder Monitor führt einen Shell-Befehl für die Lebensdauer der Session aus und liefert jede stdout-Zeile an Claude als Benachrichtigung, damit Claude auf Log-Einträge, Statusänderungen oder abgerufene Events reagieren kann, ohne aufgefordert zu werden, die Überwachung selbst zu starten.301Plugins können Hintergrund-Monitore deklarieren, die Claude Code automatisch startet, wenn das Plugin aktiv ist. Jeder Monitor führt einen Shell-Befehl für die Lebensdauer der Session aus und liefert jede stdout-Zeile an Claude als Benachrichtigung, damit Claude auf Log-Einträge, Statusänderungen oder abgerufene Events reagieren kann, ohne aufgefordert zu werden, die Überwachung selbst zu starten.

302 302 

303Plugin-Monitore verwenden den gleichen Mechanismus wie das [Monitor-Tool](/de/tools-reference#monitor-tool) und teilen seine Verfügbarkeitsbeschränkungen. Sie laufen nur in interaktiven CLI-Sessions, laufen unsandboxed auf der gleichen Vertrauensebene wie [Hooks](#hooks) und werden auf Hosts übersprungen, wo das Monitor-Tool nicht verfügbar ist.303Plugin-Monitore verwenden den gleichen Mechanismus wie das [Monitor-Tool](/docs/de/tools-reference#monitor-tool) und teilen seine Verfügbarkeitsbeschränkungen. Sie laufen nur in interaktiven CLI-Sessions, laufen unsandboxed auf der gleichen Vertrauensebene wie [Hooks](#hooks) und werden auf Hosts übersprungen, wo das Monitor-Tool nicht verfügbar ist.

304 304 

305**Speicherort**: `monitors/monitors.json` im Plugin-Root oder inline in `plugin.json`305**Speicherort**: `monitors/monitors.json` im Plugin-Root oder inline in `plugin.json`

306 306 


342 342 

343Der `command` Wert unterstützt die [Pfad-Substitutionen](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}` und `${CLAUDE_PROJECT_DIR}`, plus alle `${ENV_VAR}` aus der Umgebung. Stellen Sie dem Befehl `cd "${CLAUDE_PLUGIN_ROOT}" && ` voran, wenn das Skript aus dem Plugin-eigenen Verzeichnis ausgeführt werden muss.343Der `command` Wert unterstützt die [Pfad-Substitutionen](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}` und `${CLAUDE_PROJECT_DIR}`, plus alle `${ENV_VAR}` aus der Umgebung. Stellen Sie dem Befehl `cd "${CLAUDE_PLUGIN_ROOT}" && ` voran, wenn das Skript aus dem Plugin-eigenen Verzeichnis ausgeführt werden muss.

344 344 

345Ein Monitor `command` kann nicht auf [`${user_config.*}`](#user-configuration) Werte verweisen. Der Befehl läuft durch eine Shell, daher lehnt Claude Code den Monitor mit einem [Fehler](/de/errors#plugin-command-references-user-config) ab, anstatt den Wert zu ersetzen. Monitor-Prozesse erhalten keine `CLAUDE_PLUGIN_OPTION_<KEY>` Umgebungsvariablen, daher sollte das Monitor-Skript den Wert aus einer Konfigurationsdatei lesen, die es besitzt. Vor v2.1.207 ersetzten Monitor-Befehle `${user_config.*}` Werte.345Ein Monitor `command` kann nicht auf [`${user_config.*}`](#user-configuration) Werte verweisen. Der Befehl läuft durch eine Shell, daher lehnt Claude Code den Monitor mit einem [Fehler](/docs/de/errors#plugin-command-references-user-config) ab, anstatt den Wert zu ersetzen. Monitor-Prozesse erhalten keine `CLAUDE_PLUGIN_OPTION_<KEY>` Umgebungsvariablen, daher sollte das Monitor-Skript den Wert aus einer Konfigurationsdatei lesen, die es besitzt. Vor v2.1.207 ersetzten Monitor-Befehle `${user_config.*}` Werte.

346 346 

347Das Deaktivieren eines Plugins während einer Session stoppt nicht die Monitore, die bereits laufen. Sie stoppen, wenn die Session endet.347Das Deaktivieren eines Plugins während einer Session stoppt nicht die Monitore, die bereits laufen. Sie stoppen, wenn die Session endet.

348 348 


379| `user` | `~/.claude/settings.json` | Persönliche Plugins, die in allen Projekten verfügbar sind (Standard) |379| `user` | `~/.claude/settings.json` | Persönliche Plugins, die in allen Projekten verfügbar sind (Standard) |

380| `project` | `.claude/settings.json` | Team-Plugins, die über Versionskontrolle geteilt werden |380| `project` | `.claude/settings.json` | Team-Plugins, die über Versionskontrolle geteilt werden |

381| `local` | `.claude/settings.local.json` | Projektspezifische Plugins, gitignoriert |381| `local` | `.claude/settings.local.json` | Projektspezifische Plugins, gitignoriert |

382| `managed` | [Verwaltete Einstellungen](/de/settings#settings-files) | Verwaltete Plugins (schreibgeschützt, nur aktualisierbar) |382| `managed` | [Verwaltete Einstellungen](/docs/de/settings#settings-files) | Verwaltete Plugins (schreibgeschützt, nur aktualisierbar) |

383 383 

384Plugins verwenden das gleiche Bereichssystem wie andere Claude Code Konfigurationen. Installationsanweisungen und Bereichs-Flags finden Sie unter [Plugins installieren](/de/discover-plugins#install-plugins). Eine vollständige Erklärung der Bereiche finden Sie unter [Konfigurationsbereiche](/de/settings#configuration-scopes).384Plugins verwenden das gleiche Bereichssystem wie andere Claude Code Konfigurationen. Installationsanweisungen und Bereichs-Flags finden Sie unter [Plugins installieren](/docs/de/discover-plugins#install-plugins). Eine vollständige Erklärung der Bereiche finden Sie unter [Konfigurationsbereiche](/docs/de/settings#configuration-scopes).

385 385 

386***386***

387 387 


395 395 

396| Was Sie haben | Was es ist |396| Was Sie haben | Was es ist |

397| :-------------------------------------------- | :----------------------------------------------------------------------------------------- |397| :-------------------------------------------- | :----------------------------------------------------------------------------------------- |

398| `<skills-dir>/foo/SKILL.md` ohne Manifest | Ein einfacher [Skill](/de/skills) mit dem Namen `foo` |398| `<skills-dir>/foo/SKILL.md` ohne Manifest | Ein einfacher [Skill](/docs/de/skills) mit dem Namen `foo` |

399| `<skills-dir>/foo/.claude-plugin/plugin.json` | Ein Plugin `foo@skills-dir`, das seine eigenen Skills, Agents, Hooks und mehr bündeln kann |399| `<skills-dir>/foo/.claude-plugin/plugin.json` | Ein Plugin `foo@skills-dir`, das seine eigenen Skills, Agents, Hooks und mehr bündeln kann |

400| `<plugin>/skills/bar/SKILL.md` | Ein Skill `bar` verpackt in einem Plugin |400| `<plugin>/skills/bar/SKILL.md` | Ein Skill `bar` verpackt in einem Plugin |

401 401 


406| Skills-Verzeichnis | Bereich | Lädt |406| Skills-Verzeichnis | Bereich | Lädt |

407| :---------------------- | :--------- | :--------------------------------------------------------------------------------------- |407| :---------------------- | :--------- | :--------------------------------------------------------------------------------------- |

408| `~/.claude/skills/` | persönlich | In jedem Projekt, da der Speicherort nur Ihnen gehört |408| `~/.claude/skills/` | persönlich | In jedem Projekt, da der Speicherort nur Ihnen gehört |

409| `<cwd>/.claude/skills/` | Projekt | Nur nachdem Sie den Workspace [Trust-Dialog](/de/settings) für diesen Ordner akzeptieren |409| `<cwd>/.claude/skills/` | Projekt | Nur nachdem Sie den Workspace [Trust-Dialog](/docs/de/settings) für diesen Ordner akzeptieren |

410 410 

411Ein Projekt-Bereich-Plugin wird in das Repository eingecheckt und erreicht jeden Mitarbeiter, der es klont. Da dieser Inhalt aus dem Repository und nicht von Ihnen stammt, wird er nur nach dem gleichen Trust-Gate geladen, das `.claude/settings.json` regelt, und Komponenten, die Code ausführen, sind weiter eingeschränkt:411Ein Projekt-Bereich-Plugin wird in das Repository eingecheckt und erreicht jeden Mitarbeiter, der es klont. Da dieser Inhalt aus dem Repository und nicht von Ihnen stammt, wird er nur nach dem gleichen Trust-Gate geladen, das `.claude/settings.json` regelt, und Komponenten, die Code ausführen, sind weiter eingeschränkt:

412 412 

413* MCP-Server, die es deklariert, durchlaufen die [gleiche Pro-Server-Genehmigung](/de/mcp) wie ein Projekt `.mcp.json`413* MCP-Server, die es deklariert, durchlaufen die [gleiche Pro-Server-Genehmigung](/docs/de/mcp) wie ein Projekt `.mcp.json`

414* LSP-Server starten nur, nachdem Sie dem Workspace vertrauen414* LSP-Server starten nur, nachdem Sie dem Workspace vertrauen

415* [Hintergrund-Monitore](#monitors) werden nicht geladen415* [Hintergrund-Monitore](#monitors) werden nicht geladen

416 416 

417Persönliche Bereich-Plugins haben keine dieser Einschränkungen.417Persönliche Bereich-Plugins haben keine dieser Einschränkungen.

418 418 

419<Warning>419<Warning>

420 Projekt-Bereich `@skills-dir` Plugins werden nur aus dem `.claude/skills/` des Verzeichnisses geladen, in dem Sie Claude Code starten. Sie [gehen nicht bis zur Repository-Root](/de/skills#automatic-discovery-from-parent-and-nested-directories) wie einfache Skills und Befehle, daher verpasst das Starten aus einem Unterverzeichnis ein Plugin, das im Repo-Root lebt. Starten Sie vom Repository-Root, oder führen Sie `/reload-plugins` aus, nachdem Sie Verzeichnisse wechseln.420 Projekt-Bereich `@skills-dir` Plugins werden nur aus dem `.claude/skills/` des Verzeichnisses geladen, in dem Sie Claude Code starten. Sie [gehen nicht bis zur Repository-Root](/docs/de/skills#automatic-discovery-from-parent-and-nested-directories) wie einfache Skills und Befehle, daher verpasst das Starten aus einem Unterverzeichnis ein Plugin, das im Repo-Root lebt. Starten Sie vom Repository-Root, oder führen Sie `/reload-plugins` aus, nachdem Sie Verzeichnisse wechseln.

421</Warning>421</Warning>

422 422 

423<h3 id="edit-reload-and-disable-a-skills-directory-plugin">423<h3 id="edit-reload-and-disable-a-skills-directory-plugin">

424 Bearbeiten, neu laden und deaktivieren Sie ein Skills-Verzeichnis-Plugin424 Bearbeiten, neu laden und deaktivieren Sie ein Skills-Verzeichnis-Plugin

425</h3>425</h3>

426 426 

427Änderungen, die Sie an der `SKILL.md` eines Skills vornehmen, treten sofort in der aktuellen Session in Kraft. Änderungen an den anderen Komponenten des Plugins, wie `hooks/`, `.mcp.json`, `agents/` und `output-styles/`, tun dies nicht. Führen Sie `/reload-plugins` aus oder starten Sie Claude Code neu, um diese zu übernehmen. Siehe [Live-Änderungserkennung](/de/skills#live-change-detection).427Änderungen, die Sie an der `SKILL.md` eines Skills vornehmen, treten sofort in der aktuellen Session in Kraft. Änderungen an den anderen Komponenten des Plugins, wie `hooks/`, `.mcp.json`, `agents/` und `output-styles/`, tun dies nicht. Führen Sie `/reload-plugins` aus oder starten Sie Claude Code neu, um diese zu übernehmen. Siehe [Live-Änderungserkennung](/docs/de/skills#live-change-detection).

428 428 

429Um das Laden eines Skills-Verzeichnis-Plugins zu stoppen, löschen Sie seinen Ordner oder deaktivieren Sie ihn nach Name. Es gibt keinen `uninstall` Schritt, da nichts von einem Marktplatz installiert wurde.429Um das Laden eines Skills-Verzeichnis-Plugins zu stoppen, löschen Sie seinen Ordner oder deaktivieren Sie ihn nach Name. Es gibt keinen `uninstall` Schritt, da nichts von einem Marktplatz installiert wurde.

430 430 


487 487 

488| Feld | Typ | Beschreibung | Beispiel |488| Feld | Typ | Beschreibung | Beispiel |

489| :----- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |489| :----- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

490| `name` | string | Eindeutiger Bezeichner (kebab-case, keine Leerzeichen). Wenn ein [Marktplatz-Eintrag](/de/plugin-marketplaces#plugin-entries) das Plugin unter einem anderen Namen auflistet, ist der Name des Marktplatz-Eintrags das, was `enabledPlugins` Schlüssel und `/plugin` verwenden | `"deployment-tools"` |490| `name` | string | Eindeutiger Bezeichner (kebab-case, keine Leerzeichen). Wenn ein [Marktplatz-Eintrag](/docs/de/plugin-marketplaces#plugin-entries) das Plugin unter einem anderen Namen auflistet, ist der Name des Marktplatz-Eintrags das, was `enabledPlugins` Schlüssel und `/plugin` verwenden | `"deployment-tools"` |

491 491 

492Dieser Name wird für die Namensgebung von Komponenten verwendet. Beispielsweise wird der Agent `agent-creator` für das Plugin mit dem Namen `plugin-dev` in der Benutzeroberfläche als `plugin-dev:agent-creator` angezeigt.492Dieser Name wird für die Namensgebung von Komponenten verwendet. Beispielsweise wird der Agent `agent-creator` für das Plugin mit dem Namen `plugin-dev` in der Benutzeroberfläche als `plugin-dev:agent-creator` angezeigt.

493 493 


533`defaultEnabled` ist der Fallback, wenn nichts anderes den Zustand des Plugins entschieden hat. Zwei Dinge haben Vorrang vor ihm:533`defaultEnabled` ist der Fallback, wenn nichts anderes den Zustand des Plugins entschieden hat. Zwei Dinge haben Vorrang vor ihm:

534 534 

535* **Die Einstellung des Benutzers**: Ein Eintrag für das Plugin in `enabledPlugins` in jedem Einstellungsbereich. Einmal geschrieben, bleibt es über Plugin-Updates und Neuinstallationen bestehen, daher ändert das Ändern von `defaultEnabled` in einer späteren Version nicht einen bestehenden Benutzer.535* **Die Einstellung des Benutzers**: Ein Eintrag für das Plugin in `enabledPlugins` in jedem Einstellungsbereich. Einmal geschrieben, bleibt es über Plugin-Updates und Neuinstallationen bestehen, daher ändert das Ändern von `defaultEnabled` in einer späteren Version nicht einen bestehenden Benutzer.

536* **Eine Abhängigkeitsanforderung**: Wenn ein Plugin von einem anderen erforderlich ist, das aktiv ist, schreibt Claude Code `true` dafür bei Installation oder Aktivierung. Das gibt ihm eine explizite Einstellung, daher gilt sein eigener Standard nicht mehr. Siehe [Aktivieren oder Deaktivieren eines Plugins mit Abhängigkeiten](/de/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).536* **Eine Abhängigkeitsanforderung**: Wenn ein Plugin von einem anderen erforderlich ist, das aktiv ist, schreibt Claude Code `true` dafür bei Installation oder Aktivierung. Das gibt ihm eine explizite Einstellung, daher gilt sein eigener Standard nicht mehr. Siehe [Aktivieren oder Deaktivieren eines Plugins mit Abhängigkeiten](/docs/de/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

537 537 

538Das gleiche Feld kann im Marktplatz-Eintrag eines Plugins erscheinen, wo es Vorrang vor dem Wert in `plugin.json` hat. Siehe [Optionale Plugin-Felder](/de/plugin-marketplaces#optional-plugin-fields).538Das gleiche Feld kann im Marktplatz-Eintrag eines Plugins erscheinen, wo es Vorrang vor dem Wert in `plugin.json` hat. Siehe [Optionale Plugin-Felder](/docs/de/plugin-marketplaces#optional-plugin-fields).

539 539 

540<h3 id="component-path-fields">540<h3 id="component-path-fields">

541 Komponentenpfad-Felder541 Komponentenpfad-Felder


551| `outputStyles` | string\|array | Benutzerdefinierte Output-Style-Dateien/Verzeichnisse (ersetzt Standard `output-styles/`) | `"./styles/"` |551| `outputStyles` | string\|array | Benutzerdefinierte Output-Style-Dateien/Verzeichnisse (ersetzt Standard `output-styles/`) | `"./styles/"` |

552| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) Konfigurationen für Code-Intelligenz (Gehe zu Definition, finde Referenzen, etc.) | `"./.lsp.json"` |552| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) Konfigurationen für Code-Intelligenz (Gehe zu Definition, finde Referenzen, etc.) | `"./.lsp.json"` |

553| `experimental.themes` | string\|array | Farbthema-Dateien/Verzeichnisse (ersetzt Standard `themes/`). Siehe [Designs](#themes) | `"./themes/"` |553| `experimental.themes` | string\|array | Farbthema-Dateien/Verzeichnisse (ersetzt Standard `themes/`). Siehe [Designs](#themes) | `"./themes/"` |

554| `experimental.monitors` | string\|array | Hintergrund-[Monitor](/de/tools-reference#monitor-tool) Konfigurationen, die automatisch starten, wenn das Plugin aktiv ist. Siehe [Monitore](#monitors) | `"./monitors.json"` |554| `experimental.monitors` | string\|array | Hintergrund-[Monitor](/docs/de/tools-reference#monitor-tool) Konfigurationen, die automatisch starten, wenn das Plugin aktiv ist. Siehe [Monitore](#monitors) | `"./monitors.json"` |

555| `userConfig` | object | Benutzerkonfigurierbare Werte, die bei der Aktivierung abgefragt werden. Siehe [Benutzerkonfiguration](#user-configuration) | Siehe unten |555| `userConfig` | object | Benutzerkonfigurierbare Werte, die bei der Aktivierung abgefragt werden. Siehe [Benutzerkonfiguration](#user-configuration) | Siehe unten |

556| `channels` | array | Kanal-Deklarationen für Nachrichteninjection (Telegram, Slack, Discord Stil). Siehe [Kanäle](#channels) | Siehe unten |556| `channels` | array | Kanal-Deklarationen für Nachrichteninjection (Telegram, Slack, Discord Stil). Siehe [Kanäle](#channels) | Siehe unten |

557| `dependencies` | array | Andere Plugins, die dieses Plugin benötigt, optional mit semver Versionsbeschränkungen. Siehe [Plugin-Abhängigkeitsversionen einschränken](/de/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |557| `dependencies` | array | Andere Plugins, die dieses Plugin benötigt, optional mit semver Versionsbeschränkungen. Siehe [Plugin-Abhängigkeitsversionen einschränken](/docs/de/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

558 558 

559<h3 id="experimental-components">559<h3 id="experimental-components">

560 Experimentelle Komponenten560 Experimentelle Komponenten


601 601 

602Jeder Wert ist für die Substitution als `${user_config.KEY}` in MCP- und LSP-Server-Konfigurationen und Hook-Befehlen verfügbar. Nicht-sensitive Werte können auch in Skill- und Agent-Inhalten ersetzt werden. Alle Werte werden an Hook-Prozesse als `CLAUDE_PLUGIN_OPTION_<KEY>` Umgebungsvariablen exportiert, wobei `<KEY>` der Optionsschlüssel in Großbuchstaben ist.602Jeder Wert ist für die Substitution als `${user_config.KEY}` in MCP- und LSP-Server-Konfigurationen und Hook-Befehlen verfügbar. Nicht-sensitive Werte können auch in Skill- und Agent-Inhalten ersetzt werden. Alle Werte werden an Hook-Prozesse als `CLAUDE_PLUGIN_OPTION_<KEY>` Umgebungsvariablen exportiert, wobei `<KEY>` der Optionsschlüssel in Großbuchstaben ist.

603 603 

604Felder, die in einer Shell ausgeführt werden, lehnen `${user_config.*}` ab: Das Ersetzen eines konfigurierten Werts in einem Shell-Befehl würde der Shell ermöglichen, alles auszuführen, was dieser Wert enthält, daher schlägt die Komponente mit einem [Fehler](/de/errors#plugin-command-references-user-config) fehl. Jedes abgelehnte Feld hat eine alternative Möglichkeit, den Wert zu übergeben:604Felder, die in einer Shell ausgeführt werden, lehnen `${user_config.*}` ab: Das Ersetzen eines konfigurierten Werts in einem Shell-Befehl würde der Shell ermöglichen, alles auszuführen, was dieser Wert enthält, daher schlägt die Komponente mit einem [Fehler](/docs/de/errors#plugin-command-references-user-config) fehl. Jedes abgelehnte Feld hat eine alternative Möglichkeit, den Wert zu übergeben:

605 605 

606| Abgelehntes Feld | Wie man den Wert übergibt |606| Abgelehntes Feld | Wie man den Wert übergibt |

607| :--------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |607| :--------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

608| Shell-Form-Hook-Befehle | Verwenden Sie [Exec-Form](/de/hooks#exec-form-and-shell-form) mit `args`, oder lesen Sie `CLAUDE_PLUGIN_OPTION_<KEY>` aus der Umgebung des Hooks |608| Shell-Form-Hook-Befehle | Verwenden Sie [Exec-Form](/docs/de/hooks#exec-form-and-shell-form) mit `args`, oder lesen Sie `CLAUDE_PLUGIN_OPTION_<KEY>` aus der Umgebung des Hooks |

609| [Monitor](#monitors) Befehle | Lesen Sie den Wert aus einer Konfigurationsdatei im Skript |609| [Monitor](#monitors) Befehle | Lesen Sie den Wert aus einer Konfigurationsdatei im Skript |

610| MCP [`headersHelper`](/de/mcp#use-dynamic-headers-for-custom-authentication) | Lesen Sie den Wert aus einer Konfigurationsdatei im Skript |610| MCP [`headersHelper`](/docs/de/mcp#use-dynamic-headers-for-custom-authentication) | Lesen Sie den Wert aus einer Konfigurationsdatei im Skript |

611 611 

612Vor v2.1.207 ersetzten diese Felder `${user_config.KEY}` Werte; aktualisieren Sie Plugins, die sich darauf verlassen haben.612Vor v2.1.207 ersetzten diese Felder `${user_config.KEY}` Werte; aktualisieren Sie Plugins, die sich darauf verlassen haben.

613 613 

614Nicht-sensitive Werte werden unter dem [`pluginConfigs`](/de/settings#pluginconfigs) Schlüssel in `settings.json` als `pluginConfigs[<plugin-id>].options` gespeichert. {/* min-version: 2.1.207 */}Claude Code schreibt den Schlüssel in Benutzereinstellungen und liest ihn aus Benutzereinstellungen, dem `--settings` Flag und verwalteten Einstellungen zurück; Einträge in einer Projekt-`.claude/settings.json` oder `.claude/settings.local.json` werden ignoriert. Vor v2.1.207 las Claude Code auch Projekt- und lokale Einstellungen.614Nicht-sensitive Werte werden unter dem [`pluginConfigs`](/docs/de/settings#pluginconfigs) Schlüssel in `settings.json` als `pluginConfigs[<plugin-id>].options` gespeichert. {/* min-version: 2.1.207 */}Claude Code schreibt den Schlüssel in Benutzereinstellungen und liest ihn aus Benutzereinstellungen, dem `--settings` Flag und verwalteten Einstellungen zurück; Einträge in einer Projekt-`.claude/settings.json` oder `.claude/settings.local.json` werden ignoriert. Vor v2.1.207 las Claude Code auch Projekt- und lokale Einstellungen.

615 615 

616Sensitive Werte gehen zum macOS Keychain oder zu `~/.claude/.credentials.json` auf Plattformen, wo kein unterstützter Keychain verfügbar ist. Keychain-Speicher wird mit OAuth-Tokens geteilt und hat ein ungefähres Gesamtlimit von 2 KB, daher halten Sie sensitive Werte klein.616Sensitive Werte gehen zum macOS Keychain oder zu `~/.claude/.credentials.json` auf Plattformen, wo kein unterstützter Keychain verfügbar ist. Keychain-Speicher wird mit OAuth-Tokens geteilt und hat ein ungefähres Gesamtlimit von 2 KB, daher halten Sie sensitive Werte klein.

617 617 


653Ob ein benutzerdefinierter Pfad das Standard-Verzeichnis des Plugins ersetzt oder erweitert, hängt vom Feld ab:653Ob ein benutzerdefinierter Pfad das Standard-Verzeichnis des Plugins ersetzt oder erweitert, hängt vom Feld ab:

654 654 

655* **Ersetzt den Standard**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Beispielsweise wird das Standard-Verzeichnis `commands/` nicht gescannt, wenn das Manifest `commands` angibt. Um den Standard zu behalten und mehr hinzuzufügen, listen Sie ihn explizit auf: `"commands": ["./commands/", "./extras/"]`655* **Ersetzt den Standard**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Beispielsweise wird das Standard-Verzeichnis `commands/` nicht gescannt, wenn das Manifest `commands` angibt. Um den Standard zu behalten und mehr hinzuzufügen, listen Sie ihn explizit auf: `"commands": ["./commands/", "./extras/"]`

656* **Fügt zum Standard hinzu**: `skills`. Das Standard-Verzeichnis `skills/` wird immer gescannt, und Verzeichnisse, die in `skills` aufgelistet sind, werden zusammen mit ihm geladen. Ausnahme: für einen [Marktplatz-Eintrag, dessen `source` zum Marktplatz-Root aufgelöst wird](/de/plugin-marketplaces#advanced-plugin-entries), ersetzt das Deklarieren spezifischer Unterverzeichnisse den Scan656* **Fügt zum Standard hinzu**: `skills`. Das Standard-Verzeichnis `skills/` wird immer gescannt, und Verzeichnisse, die in `skills` aufgelistet sind, werden zusammen mit ihm geladen. Ausnahme: für einen [Marktplatz-Eintrag, dessen `source` zum Marktplatz-Root aufgelöst wird](/docs/de/plugin-marketplaces#advanced-plugin-entries), ersetzt das Deklarieren spezifischer Unterverzeichnisse den Scan

657* **Eigene Merge-Regeln**: [hooks](#hooks), [MCP-Server](#mcp-servers) und [LSP-Server](#lsp-servers). Siehe jeden Abschnitt für die Kombinationsweise mehrerer Quellen657* **Eigene Merge-Regeln**: [hooks](#hooks), [MCP-Server](#mcp-servers) und [LSP-Server](#lsp-servers). Siehe jeden Abschnitt für die Kombinationsweise mehrerer Quellen

658 658 

659Wenn ein Plugin sowohl einen Standard-Ordner als auch den entsprechenden Manifest-Schlüssel hat, kennzeichnet Claude Code v2.1.140 und später den ignorierten Ordner in `claude plugin list` und der `/plugin` Detailansicht. Das Plugin wird weiterhin mit den Manifest-Pfaden geladen. Es wird keine Warnung angezeigt, wenn der Manifest-Schlüssel auf den Standard-Ordner verweist, beispielsweise `"commands": ["./commands/deploy.md"]`, da der Ordner in diesem Fall explizit adressiert wird.659Wenn ein Plugin sowohl einen Standard-Ordner als auch den entsprechenden Manifest-Schlüssel hat, kennzeichnet Claude Code v2.1.140 und später den ignorierten Ordner in `claude plugin list` und der `/plugin` Detailansicht. Das Plugin wird weiterhin mit den Manifest-Pfaden geladen. Es wird keine Warnung angezeigt, wenn der Manifest-Schlüssel auf den Standard-Ordner verweist, beispielsweise `"commands": ["./commands/deploy.md"]`, da der Ordner in diesem Fall explizit adressiert wird.


704| MCP `http`, `sse`, `ws` Server | `url`, `headers`, `headersHelper` |704| MCP `http`, `sse`, `ws` Server | `url`, `headers`, `headersHelper` |

705| LSP-Server | `command`, `args`, `env`, `workspaceFolder` |705| LSP-Server | `command`, `args`, `env`, `workspaceFolder` |

706 706 

707In Hook-Befehlen verwenden Sie [Exec-Form](/de/hooks#exec-form-and-shell-form) mit `args`, damit jeder Pfad als ein Argument ohne Anführungszeichen übergeben wird. In Shell-Form-Hooks und Monitor-Befehlen wickeln Sie die Variablen in doppelte Anführungszeichen ein, wie in `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Dieser Shell-Form-Hook führt ein mit einem Plugin gebündeltes Skript aus:707In Hook-Befehlen verwenden Sie [Exec-Form](/docs/de/hooks#exec-form-and-shell-form) mit `args`, damit jeder Pfad als ein Argument ohne Anführungszeichen übergeben wird. In Shell-Form-Hooks und Monitor-Befehlen wickeln Sie die Variablen in doppelte Anführungszeichen ein, wie in `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Dieser Shell-Form-Hook führt ein mit einem Plugin gebündeltes Skript aus:

708 708 

709```json theme={null}709```json theme={null}

710{710{


727 727 

728Wenn ein Plugin während einer Sitzung aktualisiert wird, verwenden Hook-Befehle, Monitore, MCP-Server und LSP-Server weiterhin den Pfad der vorherigen Version. Führen Sie `/reload-plugins` aus, um Hooks, MCP-Server und LSP-Server auf den neuen Pfad umzuschalten; Monitore erfordern einen Neustart der Sitzung.728Wenn ein Plugin während einer Sitzung aktualisiert wird, verwenden Hook-Befehle, Monitore, MCP-Server und LSP-Server weiterhin den Pfad der vorherigen Version. Führen Sie `/reload-plugins` aus, um Hooks, MCP-Server und LSP-Server auf den neuen Pfad umzuschalten; Monitore erfordern einen Neustart der Sitzung.

729 729 

730MCP-Server können auch die `roots/list` Anfrage aufrufen, um die Arbeitsverzeichnisse der Sitzung zur Laufzeit zu lesen. Siehe [was `roots/list` zurückgibt und wann Claude Code den Server über Änderungen benachrichtigt](/de/mcp#option-3-add-a-local-stdio-server).730MCP-Server können auch die `roots/list` Anfrage aufrufen, um die Arbeitsverzeichnisse der Sitzung zur Laufzeit zu lesen. Siehe [was `roots/list` zurückgibt und wann Claude Code den Server über Änderungen benachrichtigt](/docs/de/mcp#option-3-add-a-local-stdio-server).

731 731 

732<h4 id="persistent-data-directory">732<h4 id="persistent-data-directory">

733 Persistentes Datenverzeichnis733 Persistentes Datenverzeichnis


893| **LSP-Server** | `.lsp.json` | Language Server Konfigurationen |893| **LSP-Server** | `.lsp.json` | Language Server Konfigurationen |

894| **Monitore** | `monitors/monitors.json` | Hintergrund-Monitor-Konfigurationen |894| **Monitore** | `monitors/monitors.json` | Hintergrund-Monitor-Konfigurationen |

895| **Ausführbare Dateien** | `bin/` | Ausführbare Dateien, die zum Bash-Tool `PATH` hinzugefügt werden. Dateien hier sind als bloße Befehle in jedem Bash-Tool-Aufruf aufrufbar, während das Plugin aktiviert ist |895| **Ausführbare Dateien** | `bin/` | Ausführbare Dateien, die zum Bash-Tool `PATH` hinzugefügt werden. Dateien hier sind als bloße Befehle in jedem Bash-Tool-Aufruf aufrufbar, während das Plugin aktiviert ist |

896| **Einstellungen** | `settings.json` | Standardkonfiguration, die angewendet wird, wenn das Plugin aktiviert wird. Derzeit werden nur die [`agent`](/de/sub-agents) und [`subagentStatusLine`](/de/statusline#subagent-status-lines) Schlüssel unterstützt |896| **Einstellungen** | `settings.json` | Standardkonfiguration, die angewendet wird, wenn das Plugin aktiviert wird. Derzeit werden nur die [`agent`](/docs/de/sub-agents) und [`subagentStatusLine`](/docs/de/statusline#subagent-status-lines) Schlüssel unterstützt |

897 897 

898***898***

899 899 


942| `mcp` | Eine `.mcp.json` mit HTTP- und stdio-Server-Beispielen |942| `mcp` | Eine `.mcp.json` mit HTTP- und stdio-Server-Beispielen |

943| `lsp` | Eine `.lsp.json` Language-Server-Beispiel |943| `lsp` | Eine `.lsp.json` Language-Server-Beispiel |

944| `output-style` | Ein `output-styles/<name>.md`, das automatisch angewendet wird, während das Plugin aktiviert ist |944| `output-style` | Ein `output-styles/<name>.md`, das automatisch angewendet wird, während das Plugin aktiviert ist |

945| `channel` | Ein MCP-basierter [Kanal](/de/channels): ein stdio-Server (`server.ts`), sein `.mcp.json` und ein `package.json` |945| `channel` | Ein MCP-basierter [Kanal](/docs/de/channels): ein stdio-Server (`server.ts`), sein `.mcp.json` und ein `package.json` |

946 946 

947Das erstellte Plugin verwendet die `@skills-dir` Quelle anstelle eines Marktplatzes. Administratoren können diese Quelle mit `strictKnownMarketplaces` blockieren oder indem sie `{"source": "skills-dir"}` zu `blockedMarketplaces` in [verwalteten Einstellungen](/de/plugin-marketplaces#managed-marketplace-restrictions) hinzufügen. Wenn blockiert, schlägt `plugin init` fehl, bevor etwas geschrieben wird.947Das erstellte Plugin verwendet die `@skills-dir` Quelle anstelle eines Marktplatzes. Administratoren können diese Quelle mit `strictKnownMarketplaces` blockieren oder indem sie `{"source": "skills-dir"}` zu `blockedMarketplaces` in [verwalteten Einstellungen](/docs/de/plugin-marketplaces#managed-marketplace-restrictions) hinzufügen. Wenn blockiert, schlägt `plugin init` fehl, bevor etwas geschrieben wird.

948 948 

949**Beispiele:**949**Beispiele:**

950 950 


1027 plugin prune1027 plugin prune

1028</h3>1028</h3>

1029 1029 

1030Entfernen Sie automatisch installierte Plugin-Abhängigkeiten, die nicht mehr von einem installierten Plugin benötigt werden. Abhängigkeiten, die Claude Code eingezogen hat, um das [`dependencies`](/de/plugin-dependencies) Feld eines anderen Plugins zu erfüllen, werden entfernt; Plugins, die Sie direkt installiert haben, werden niemals berührt.1030Entfernen Sie automatisch installierte Plugin-Abhängigkeiten, die nicht mehr von einem installierten Plugin benötigt werden. Abhängigkeiten, die Claude Code eingezogen hat, um das [`dependencies`](/docs/de/plugin-dependencies) Feld eines anderen Plugins zu erfüllen, werden entfernt; Plugins, die Sie direkt installiert haben, werden niemals berührt.

1031 1031 

1032```bash theme={null}1032```bash theme={null}

1033claude plugin prune [options]1033claude plugin prune [options]


1054 plugin enable1054 plugin enable

1055</h3>1055</h3>

1056 1056 

1057Aktivieren Sie ein deaktiviertes Plugin. Wenn das Plugin [Abhängigkeiten](/de/plugin-dependencies) deklariert, aktiviert Claude Code diese transitiv im gleichen Bereich, und der Befehl schlägt fehl, wenn eine Abhängigkeit nicht installiert ist.1057Aktivieren Sie ein deaktiviertes Plugin. Wenn das Plugin [Abhängigkeiten](/docs/de/plugin-dependencies) deklariert, aktiviert Claude Code diese transitiv im gleichen Bereich, und der Befehl schlägt fehl, wenn eine Abhängigkeit nicht installiert ist.

1058 1058 

1059```bash theme={null}1059```bash theme={null}

1060claude plugin enable <plugin> [options]1060claude plugin enable <plugin> [options]


1075 plugin disable1075 plugin disable

1076</h3>1076</h3>

1077 1077 

1078Deaktivieren Sie ein Plugin, ohne es zu deinstallieren. Schlägt fehl, wenn ein anderes aktiviertes Plugin [von](/de/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) dem Ziel abhängt. Die Fehlermeldung enthält einen verketteten Befehl, der zuerst alle abhängigen Plugins deaktiviert.1078Deaktivieren Sie ein Plugin, ohne es zu deinstallieren. Schlägt fehl, wenn ein anderes aktiviertes Plugin [von](/docs/de/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) dem Ziel abhängt. Die Fehlermeldung enthält einen verketteten Befehl, der zuerst alle abhängigen Plugins deaktiviert.

1079 1079 

1080```bash theme={null}1080```bash theme={null}

1081claude plugin disable <plugin> [options]1081claude plugin disable <plugin> [options]


1192 plugin tag1192 plugin tag

1193</h3>1193</h3>

1194 1194 

1195Erstellen Sie ein Release-Git-Tag für das Plugin im aktuellen Verzeichnis. Führen Sie es im Ordner des Plugins aus. Siehe [Tag-Plugin-Releases](/de/plugin-dependencies#tag-plugin-releases-for-version-resolution).1195Erstellen Sie ein Release-Git-Tag für das Plugin im aktuellen Verzeichnis. Führen Sie es im Ordner des Plugins aus. Siehe [Tag-Plugin-Releases](/docs/de/plugin-dependencies#tag-plugin-releases-for-version-resolution).

1196 1196 

1197```bash theme={null}1197```bash theme={null}

1198claude plugin tag [options]1198claude plugin tag [options]


1352 Siehe auch1352 Siehe auch

1353</h2>1353</h2>

1354 1354 

1355* [Plugins](/de/plugins) - Tutorials und praktische Verwendung1355* [Plugins](/docs/de/plugins) - Tutorials und praktische Verwendung

1356* [Plugin-Marktplätze](/de/plugin-marketplaces) - Erstellen und Verwalten von Marktplätzen1356* [Plugin-Marktplätze](/docs/de/plugin-marketplaces) - Erstellen und Verwalten von Marktplätzen

1357* [Skills](/de/skills) - Skill-Entwicklungsdetails1357* [Skills](/docs/de/skills) - Skill-Entwicklungsdetails

1358* [Subagents](/de/sub-agents) - Agent-Konfiguration und Fähigkeiten1358* [Subagents](/docs/de/sub-agents) - Agent-Konfiguration und Fähigkeiten

1359* [Hooks](/de/hooks) - Event-Handling und Automatisierung1359* [Hooks](/docs/de/hooks) - Event-Handling und Automatisierung

1360* [MCP](/de/mcp) - Integration externer Tools1360* [MCP](/docs/de/mcp) - Integration externer Tools

1361* [Einstellungen](/de/settings) - Konfigurationsoptionen für Plugins1361* [Einstellungen](/docs/de/settings) - Konfigurationsoptionen für Plugins

settings.md +47 −19

Details

180 Ungültige Einträge in verwalteten Einstellungen180 Ungültige Einträge in verwalteten Einstellungen

181</h3>181</h3>

182 182 

183Verwaltete Einstellungen werden tolerant analysiert. Wenn eine verwaltete Konfiguration einen Eintrag enthält, der die Schema-Validierung nicht besteht, entfernt Claude Code diesen Eintrag, zeichnet eine Warnung auf und erzwingt jede verbleibende gültige Richtlinie. Ein einzelner Tippfehler kann nicht die restliche Organisationsrichtlinie deaktivieren. Dieses Verhalten ist konsistent über alle drei Bereitstellungsmechanismen: [Serververwaltete Einstellungen](/de/server-managed-settings), plist- und Registry-Richtlinien, die über MDM bereitgestellt werden, und `managed-settings.json`-Dateien. Erfordert Claude Code v2.1.169 oder später.183Verwaltete Einstellungen werden tolerant analysiert. Wenn eine verwaltete Konfiguration einen Eintrag enthält, der die Schema-Validierung nicht besteht, entfernt Claude Code diesen Eintrag, zeichnet eine Warnung auf und erzwingt jede verbleibende gültige Richtlinie. Ein einzelner Tippfehler kann nicht die restliche Organisationsrichtlinie deaktivieren. Führen Sie [`/doctor`](/de/debug-your-config#check-resolved-settings) aus, um entfernte Einträge mit ihrer Quelldatei und ihrem Feld aufzulisten.

184 

185Dieses Verhalten ist konsistent über alle drei Bereitstellungsmechanismen: [Serververwaltete Einstellungen](/de/server-managed-settings), plist- und Registry-Richtlinien, die über MDM bereitgestellt werden, und `managed-settings.json`-Dateien. Erfordert Claude Code v2.1.169 oder später.

184 186 

185Sicherheitsdurchsetzungsfelder werden pro Feld behandelt, anstatt vollständig entfernt zu werden, wenn sie vorhanden, aber ungültig sind:187Sicherheitsdurchsetzungsfelder werden pro Feld behandelt, anstatt vollständig entfernt zu werden, wenn sie vorhanden, aber ungültig sind:

186 188 


213`settings.json` unterstützt eine Reihe von Optionen:215`settings.json` unterstützt eine Reihe von Optionen:

214 216 

215| Schlüssel | Beschreibung | Beispiel |217| Schlüssel | Beschreibung | Beispiel |

216| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |218| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

217| `advisorModel` | Modell für das serverseitige [Advisor-Tool](/de/advisor). Akzeptiert einen Modellalias wie `"opus"`, `"sonnet"` oder `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+) oder eine vollständige Modell-ID. Wird automatisch geschrieben, wenn Sie `/advisor` ausführen. Nicht gesetzt, um den Advisor zu deaktivieren | `"opus"` |219| `advisorModel` | Modell für das serverseitige [Advisor-Tool](/de/advisor). Akzeptiert einen Modellalias wie `"opus"`, `"sonnet"` oder `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+) oder eine vollständige Modell-ID. Wird automatisch geschrieben, wenn Sie `/advisor` ausführen. Nicht gesetzt, um den Advisor zu deaktivieren | `"opus"` |

218| `agent` | Führen Sie den Haupt-Thread als benannten Subagent aus und legen Sie den Standard-Agent für Sitzungen fest, die von `claude agents` versendet werden. Wendet den Systemaufforderung, die Werkzeugbeschränkungen und das Modell des Subagent an. Siehe [Rufen Sie Subagents explizit auf](/de/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |220| `agent` | Führen Sie den Haupt-Thread als benannten Subagent aus und legen Sie den Standard-Agent für Sitzungen fest, die von `claude agents` versendet werden. Wendet den Systemaufforderung, die Werkzeugbeschränkungen und das Modell des Subagent an. Siehe [Rufen Sie Subagents explizit auf](/de/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

219| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**Standard**: `false`. Wenn [Remote Control](/de/remote-control) verbunden ist, erlauben Sie Claude, proaktive Push-Benachrichtigungen an Ihr Telefon zu senden, z. B. wenn eine lange Aufgabe endet. Wird in `/config` als **Push when Claude decides** angezeigt. Siehe [Mobile Push-Benachrichtigungen](/de/remote-control#mobile-push-notifications). Erfordert Claude Code v2.1.119 oder später | `true` |221| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**Standard**: `false`. Wenn [Remote Control](/de/remote-control) verbunden ist, erlauben Sie Claude, proaktive Push-Benachrichtigungen an Ihr Telefon zu senden, z. B. wenn eine lange Aufgabe endet. Wird in `/config` als **Push when Claude decides** angezeigt. Siehe [Mobile Push-Benachrichtigungen](/de/remote-control#mobile-push-notifications). Erfordert Claude Code v2.1.119 oder später | `true` |


231| `autoCompactEnabled` | {/* min-version: 2.1.119 */}**Standard**: `true`. Komprimieren Sie das Gespräch automatisch, wenn sich der Kontext dem Limit nähert. Wird in `/config` als **Auto-compact** angezeigt. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`DISABLE_AUTO_COMPACT`](/de/env-vars) in `env` | `false` |233| `autoCompactEnabled` | {/* min-version: 2.1.119 */}**Standard**: `true`. Komprimieren Sie das Gespräch automatisch, wenn sich der Kontext dem Limit nähert. Wird in `/config` als **Auto-compact** angezeigt. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`DISABLE_AUTO_COMPACT`](/de/env-vars) in `env` | `false` |

232| `autoMemoryDirectory` | Benutzerdefiniertes Verzeichnis für [automatisches Speichern](/de/memory#storage-location). Akzeptiert einen absoluten Pfad oder einen `~/`-erweiterten Pfad. Aus Projekt- oder lokalen Einstellungen wird dies nur berücksichtigt, nachdem Sie den Workspace-Trust-Dialog akzeptieren, da ein geklontes Repository diese Datei bereitstellen kann | `"~/my-memory-dir"` |234| `autoMemoryDirectory` | Benutzerdefiniertes Verzeichnis für [automatisches Speichern](/de/memory#storage-location). Akzeptiert einen absoluten Pfad oder einen `~/`-erweiterten Pfad. Aus Projekt- oder lokalen Einstellungen wird dies nur berücksichtigt, nachdem Sie den Workspace-Trust-Dialog akzeptieren, da ein geklontes Repository diese Datei bereitstellen kann | `"~/my-memory-dir"` |

233| `autoMemoryEnabled` | **Standard**: `true`. Aktivieren Sie [automatisches Speichern](/de/memory#enable-or-disable-auto-memory). Wenn `false`, liest Claude nicht aus dem oder schreibt nicht in das automatische Speicherverzeichnis. Sie können dies auch während einer Sitzung mit `/memory` umschalten. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/de/env-vars) in `env` | `false` |235| `autoMemoryEnabled` | **Standard**: `true`. Aktivieren Sie [automatisches Speichern](/de/memory#enable-or-disable-auto-memory). Wenn `false`, liest Claude nicht aus dem oder schreibt nicht in das automatische Speicherverzeichnis. Sie können dies auch während einer Sitzung mit `/memory` umschalten. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/de/env-vars) in `env` | `false` |

234| `autoMode` | Passen Sie an, was der [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifizierer blockiert und erlaubt. Enthält `environment`, `allow`, `soft_deny` und `hard_deny` Arrays von Prosa-Regeln. Schließen Sie die Literalzeichenkette `"$defaults"` in ein Array ein, um die integrierten Regeln an dieser Position zu erben. Siehe [Konfigurieren Sie den Auto-Modus](/de/auto-mode-config). Nicht aus gemeinsamen Projekteinstellungen gelesen | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |236| `autoMode` | Passen Sie an, was der [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifizierer blockiert und erlaubt. Enthält `environment`, `allow`, `soft_deny` und `hard_deny` Arrays von Prosa-Regeln. Schließen Sie die Literalzeichenkette `"$defaults"` in ein Array ein, um die integrierten Regeln an dieser Position zu erben. Siehe [Konfigurieren Sie den Auto-Modus](/de/auto-mode-config). Nur aus Benutzereinstellungen, dem Flag `--settings` und verwalteten Einstellungen gelesen. Ignoriert in Projekt `.claude/settings.json` und lokal `.claude/settings.local.json`. {/* min-version: 2.1.207 */}Vor v2.1.207 wurde `.claude/settings.local.json` auch gelesen | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

235| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**Standard**: `false`. Wenn `true`, setzt dies alle Bash- und PowerShell-Allow-Regeln aus, während der Auto-Modus aktiv ist, sodass alle Shell-Befehle durch den Klassifizierer geleitet werden, nicht nur Regeln, die willkürlichen Code-Ausführungsmustern entsprechen. Siehe [Leiten Sie alle Shell-Befehle durch den Klassifizierer](/de/auto-mode-config#route-all-shell-commands-through-the-classifier). Erfordert Claude Code v2.1.193 oder später | `true` |237| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**Standard**: `false`. Wenn `true`, setzt dies alle Bash- und PowerShell-Allow-Regeln aus, während der Auto-Modus aktiv ist, sodass alle Shell-Befehle durch den Klassifizierer geleitet werden, nicht nur Regeln, die willkürlichen Code-Ausführungsmustern entsprechen. Siehe [Leiten Sie alle Shell-Befehle durch den Klassifizierer](/de/auto-mode-config#route-all-shell-commands-through-the-classifier). Erfordert Claude Code v2.1.193 oder später | `true` |

236| `autoScrollEnabled` | **Standard**: `true`. Im [Fullscreen-Rendering](/de/fullscreen) folgen Sie neuer Ausgabe zum unteren Ende des Gesprächs. Wird in `/config` als **Auto-scroll** angezeigt. Berechtigungsaufforderungen scrollen weiterhin in die Ansicht, wenn dies ausgeschaltet ist | `false` |238| `autoScrollEnabled` | **Standard**: `true`. Im [Fullscreen-Rendering](/de/fullscreen) folgen Sie neuer Ausgabe zum unteren Ende des Gesprächs. Wird in `/config` als **Auto-scroll** angezeigt. Berechtigungsaufforderungen scrollen weiterhin in die Ansicht, wenn dies ausgeschaltet ist | `false` |

237| `autoUpdatesChannel` | **Standard**: `"latest"`. Release-Kanal zum Folgen von Updates. Verwenden Sie `"stable"` für eine Version, die normalerweise etwa eine Woche alt ist und Versionen mit großen Regressionen überspringt, oder `"latest"` für die neueste Version. Um Auto-Updates vollständig zu deaktivieren, setzen Sie [`DISABLE_AUTOUPDATER`](/de/setup#disable-auto-updates) in `env` | `"stable"` |239| `autoUpdatesChannel` | **Standard**: `"latest"`. Release-Kanal zum Folgen von Updates. Verwenden Sie `"stable"` für eine Version, die normalerweise etwa eine Woche alt ist und Versionen mit großen Regressionen überspringt, oder `"latest"` für die neueste Version. Um Auto-Updates vollständig zu deaktivieren, setzen Sie [`DISABLE_AUTOUPDATER`](/de/setup#disable-auto-updates) in `env` | `"stable"` |


253| `disableAllHooks` | Deaktivieren Sie alle [Hooks](/de/hooks) und alle benutzerdefinierten [Statuszeilen](/de/statusline) | `true` |255| `disableAllHooks` | Deaktivieren Sie alle [Hooks](/de/hooks) und alle benutzerdefinierten [Statuszeilen](/de/statusline) | `true` |

254| `disableArtifact` | Setzen Sie auf `true`, um das [Artifact](/de/artifacts)-Tool zu deaktivieren, das Sitzungsausgabe als private Webseite auf claude.ai veröffentlicht. Entspricht dem Setzen von `CLAUDE_CODE_DISABLE_ARTIFACT` auf `1` | `true` |256| `disableArtifact` | Setzen Sie auf `true`, um das [Artifact](/de/artifacts)-Tool zu deaktivieren, das Sitzungsausgabe als private Webseite auf claude.ai veröffentlicht. Entspricht dem Setzen von `CLAUDE_CODE_DISABLE_ARTIFACT` auf `1` | `true` |

255| `disableAutoMode` | Setzen Sie auf `"disable"`, um zu verhindern, dass der [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode) aktiviert wird. Entfernt `auto` aus dem `Shift+Tab`-Zyklus und lehnt `--permission-mode auto` beim Start ab. Am nützlichsten in [verwalteten Einstellungen](/de/permissions#managed-settings), wo Benutzer es nicht überschreiben können | `"disable"` |257| `disableAutoMode` | Setzen Sie auf `"disable"`, um zu verhindern, dass der [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode) aktiviert wird. Entfernt `auto` aus dem `Shift+Tab`-Zyklus und lehnt `--permission-mode auto` beim Start ab. Am nützlichsten in [verwalteten Einstellungen](/de/permissions#managed-settings), wo Benutzer es nicht überschreiben können | `"disable"` |

258| `disableBrowserExternalNavigation` | (Nur verwaltete Einstellungen) Setzen Sie auf `true`, um externes Browsen im [Browser-Bereich](/de/desktop#browse-external-sites) der Desktop-App auszuschalten. Weder Benutzer noch Claude können zu externen Seiten navigieren, und localhost Dev-Server-Vorschau sind nicht betroffen. Der Wert muss der JSON-Boolean `true` sein; die Zeichenkette `"true"` wird ignoriert | `true` |

256| `disableBundledSkills` | Setzen Sie auf `true`, um die [Skills](/de/skills) und Workflows zu deaktivieren, die mit Claude Code ausgeliefert werden: Gebündelte Skills und Workflows werden vollständig entfernt, während integrierte Slash-Befehle wie `/init` tippbar bleiben, aber vom Modell ausgeblendet werden. `/doctor` bleibt tippbar wie die integrierten Befehle; blenden Sie ihn mit [`DISABLE_DOCTOR_COMMAND`](/de/env-vars) statt aus. Skills von Plugins, `.claude/skills/` und `.claude/commands/` sind nicht betroffen. Entspricht dem Setzen von `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` auf `1` | `true` |259| `disableBundledSkills` | Setzen Sie auf `true`, um die [Skills](/de/skills) und Workflows zu deaktivieren, die mit Claude Code ausgeliefert werden: Gebündelte Skills und Workflows werden vollständig entfernt, während integrierte Slash-Befehle wie `/init` tippbar bleiben, aber vom Modell ausgeblendet werden. `/doctor` bleibt tippbar wie die integrierten Befehle; blenden Sie ihn mit [`DISABLE_DOCTOR_COMMAND`](/de/env-vars) statt aus. Skills von Plugins, `.claude/skills/` und `.claude/commands/` sind nicht betroffen. Entspricht dem Setzen von `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` auf `1` | `true` |

257| `disableClaudeAiConnectors` | {/* min-version: 2.1.182 */}Deaktivieren Sie [claude.ai MCP-Konnektoren](/de/mcp#use-mcp-servers-from-claude-ai), sodass sie nicht automatisch abgerufen oder verbunden werden. Setzen Sie in jedem Einstellungsbereich. `true` in jeder Quelle hat Vorrang, daher kann eine eingecheckte Projekt-`.claude/settings.json` ein Repo aus Cloud-Konnektoren ausschließen, aber ein Projekt-Level `false` kann ein Benutzer- oder Richtlinien-Level `true` nicht überschreiben. Server, die explizit über `--mcp-config` übergeben werden, sind nicht betroffen. Um einzelne Konnektoren statt aller zu verweigern, verwenden Sie [`deniedMcpServers`](/de/managed-mcp). Erfordert Claude Code v2.1.182 oder später | `true` |260| `disableClaudeAiConnectors` | {/* min-version: 2.1.182 */}Deaktivieren Sie [claude.ai MCP-Konnektoren](/de/mcp#use-mcp-servers-from-claude-ai), sodass sie nicht automatisch abgerufen oder verbunden werden. Setzen Sie in jedem Einstellungsbereich. `true` in jeder Quelle hat Vorrang, daher kann eine eingecheckte Projekt-`.claude/settings.json` ein Repo aus Cloud-Konnektoren ausschließen, aber ein Projekt-Level `false` kann ein Benutzer- oder Richtlinien-Level `true` nicht überschreiben. Server, die explizit über `--mcp-config` übergeben werden, sind nicht betroffen. Um einzelne Konnektoren statt aller zu verweigern, verwenden Sie [`deniedMcpServers`](/de/managed-mcp). Erfordert Claude Code v2.1.182 oder später | `true` |

258| `disableDeepLinkRegistration` | Setzen Sie auf `"disable"`, um zu verhindern, dass Claude Code den `claude-cli://` Protokoll-Handler beim Start mit dem Betriebssystem registriert. [Deep Links](/de/deep-links) ermöglichen es externen Tools, eine Claude Code-Sitzung mit einer vorausgefüllten Aufforderung zu öffnen. Nützlich in Umgebungen, in denen die Protokoll-Handler-Registrierung eingeschränkt oder separat verwaltet wird | `"disable"` |261| `disableDeepLinkRegistration` | Setzen Sie auf `"disable"`, um zu verhindern, dass Claude Code den `claude-cli://` Protokoll-Handler beim Start mit dem Betriebssystem registriert. [Deep Links](/de/deep-links) ermöglichen es externen Tools, eine Claude Code-Sitzung mit einer vorausgefüllten Aufforderung zu öffnen. Nützlich in Umgebungen, in denen die Protokoll-Handler-Registrierung eingeschränkt oder separat verwaltet wird | `"disable"` |


267| `enableArtifact` | {/* min-version: 2.1.196 */}Aktivieren oder deaktivieren Sie das [Artifact](/de/artifacts)-Tool für diesen Benutzer. Wenn nicht gesetzt, folgt der Standard der [Verfügbarkeit](/de/artifacts#availability) der Funktion für Ihr Konto. Die Zeile **Artifacts** in `/config` schreibt diesen Schlüssel. Ein verwaltetes `disableArtifact` und die [Admin-Einstellung](/de/artifacts#manage-artifacts-for-your-organization) Ihrer Organisation haben Vorrang, und der Schlüssel wird in Projekt- und lokalen Einstellungen (`.claude/settings.json`, `.claude/settings.local.json`) ignoriert, die ein Repository ansonsten committen könnte. Erfordert Claude Code v2.1.196 oder später | `true` |270| `enableArtifact` | {/* min-version: 2.1.196 */}Aktivieren oder deaktivieren Sie das [Artifact](/de/artifacts)-Tool für diesen Benutzer. Wenn nicht gesetzt, folgt der Standard der [Verfügbarkeit](/de/artifacts#availability) der Funktion für Ihr Konto. Die Zeile **Artifacts** in `/config` schreibt diesen Schlüssel. Ein verwaltetes `disableArtifact` und die [Admin-Einstellung](/de/artifacts#manage-artifacts-for-your-organization) Ihrer Organisation haben Vorrang, und der Schlüssel wird in Projekt- und lokalen Einstellungen (`.claude/settings.json`, `.claude/settings.local.json`) ignoriert, die ein Repository ansonsten committen könnte. Erfordert Claude Code v2.1.196 oder später | `true` |

268| `enabledMcpjsonServers` | Liste spezifischer MCP-Server aus `.mcp.json`-Dateien zum Genehmigen. {/* min-version: 2.1.196 */}Ab v2.1.196 berücksichtigen `claude mcp list` und `claude mcp get` diesen Schlüssel in einem nicht vertrauenswürdigen Ordner nur aus [Einstellungsdateien, die nicht in das Repository eingecheckt sind](/de/mcp#managing-your-servers) | `["memory", "github"]` |271| `enabledMcpjsonServers` | Liste spezifischer MCP-Server aus `.mcp.json`-Dateien zum Genehmigen. {/* min-version: 2.1.196 */}Ab v2.1.196 berücksichtigen `claude mcp list` und `claude mcp get` diesen Schlüssel in einem nicht vertrauenswürdigen Ordner nur aus [Einstellungsdateien, die nicht in das Repository eingecheckt sind](/de/mcp#managing-your-servers) | `["memory", "github"]` |

269| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Erweitern Sie die `availableModels` Allowlist auf das Standardmodell. Wenn `true` in verwalteten Einstellungen und `availableModels` ist ein nicht leeres Array, fällt die Standardoption auf den ersten zulässigen Eintrag zurück, der verfügbar ist, aber nur wenn das Modell, auf das Standard zurückfallen würde (die [Organisationsstandardeinstellung](/de/model-config#organization-default-model), wenn eine gilt, ansonsten die Kontotyp-Standard), nicht in der Allowlist ist; ein zulässiger Standard wird wie es ist beibehalten. Hat keine Auswirkung, wenn `availableModels` nicht gesetzt oder leer ist. Siehe [Erzwingen Sie die Allowlist für das Standardmodell](/de/model-config#enforce-the-allowlist-for-the-default-model). Erfordert Claude Code v2.1.175 oder später | `true` |272| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Erweitern Sie die `availableModels` Allowlist auf das Standardmodell. Wenn `true` in verwalteten Einstellungen und `availableModels` ist ein nicht leeres Array, fällt die Standardoption auf den ersten zulässigen Eintrag zurück, der verfügbar ist, aber nur wenn das Modell, auf das Standard zurückfallen würde (die [Organisationsstandardeinstellung](/de/model-config#organization-default-model), wenn eine gilt, ansonsten die Kontotyp-Standard), nicht in der Allowlist ist; ein zulässiger Standard wird wie es ist beibehalten. Hat keine Auswirkung, wenn `availableModels` nicht gesetzt oder leer ist. Siehe [Erzwingen Sie die Allowlist für das Standardmodell](/de/model-config#enforce-the-allowlist-for-the-default-model). Erfordert Claude Code v2.1.175 oder später | `true` |

270| `env` | Umgebungsvariablen, die auf jede Sitzung und auf Subprozesse angewendet werden, die Claude Code von ihr aus startet. {/* min-version: 2.1.143 */}Ab v2.1.143 werden `NO_COLOR` und `FORCE_COLOR`, die hier gesetzt sind, an Subprozesse übergeben, ändern aber nicht die Farben der Claude Code-Oberfläche selbst. Setzen Sie diese in Ihrer Shell, bevor Sie `claude` starten, um die Oberflächenfarben zu ändern. {/* min-version: 2.1.195 */}Ab v2.1.195 werden Identitätsvariablen, die Claude Code's Hosting-Umgebungen setzen, z. B. `CLAUDE_CODE_REMOTE` und `CLAUDE_CODE_ACCOUNT_UUID`, ignoriert, wenn sie hier gesetzt sind | `{"FOO": "bar"}` |273| `env` | Umgebungsvariablen, die auf jede Sitzung und auf Subprozesse angewendet werden, die Claude Code von ihr aus startet. Setzen Sie eine Variable auf `""`, um einen Shell-Export mit einer leeren Zeichenkette zu überschreiben, die Claude Code als nicht gesetzt behandelt. Subprozesse erben weiterhin den leeren Wert. `NO_COLOR` und `FORCE_COLOR`, die hier gesetzt sind, erreichen nur Subprozesse; um die Farben der Claude Code-Oberfläche selbst zu ändern, setzen Sie sie in Ihrer Shell, bevor Sie `claude` starten. {/* min-version: 2.1.195 */}Ab v2.1.195 werden Identitätsvariablen, die Claude Code's Hosting-Umgebungen setzen, z. B. `CLAUDE_CODE_REMOTE` und `CLAUDE_CODE_ACCOUNT_UUID`, ignoriert, wenn sie hier gesetzt sind | `{"FOO": "bar"}` |

271| `fallbackModel` | Fallback-Modell(e) zum Ausprobieren in der Reihenfolge, wenn das primäre Modell überlastet oder nicht verfügbar ist. Claude Code wechselt für den Rest der Runde zum nächsten verfügbaren Modell in der Kette und zeigt einen Hinweis an. `"default"` wird zum Standardmodell erweitert. Ketten sind auf drei Modelle begrenzt; zusätzliche Einträge werden ignoriert. Im Gegensatz zu den meisten Array-Einstellungen wird dieser Schlüssel nicht über Einstellungsdateien zusammengeführt: Die Datei mit der höchsten Priorität, die ihn definiert, liefert die gesamte Kette. Das Flag [`--fallback-model`](/de/cli-reference#cli-flags) überschreibt dies für eine Sitzung. Siehe [Fallback-Modellketten](/de/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |274| `fallbackModel` | Fallback-Modell(e) zum Ausprobieren in der Reihenfolge, wenn das primäre Modell überlastet oder nicht verfügbar ist. Claude Code wechselt für den Rest der Runde zum nächsten verfügbaren Modell in der Kette und zeigt einen Hinweis an. `"default"` wird zum Standardmodell erweitert. Ketten sind auf drei Modelle begrenzt; zusätzliche Einträge werden ignoriert. Im Gegensatz zu den meisten Array-Einstellungen wird dieser Schlüssel nicht über Einstellungsdateien zusammengeführt: Die Datei mit der höchsten Priorität, die ihn definiert, liefert die gesamte Kette. Das Flag [`--fallback-model`](/de/cli-reference#cli-flags) überschreibt dies für eine Sitzung. Siehe [Fallback-Modellketten](/de/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |

275| `fastMode` | Aktivieren Sie [schnellen Modus](/de/fast-mode) für Sitzungen, in denen er verfügbar ist. Das Umschalten mit `/fast` schreibt `true` hier in Benutzereinstellungen und entfernt den Schlüssel, wenn Sie den schnellen Modus ausschalten | `true` |

272| `fastModePerSessionOptIn` | Wenn `true`, bleibt der schnelle Modus nicht über Sitzungen hinweg bestehen. Jede Sitzung startet mit ausgeschaltetem schnellen Modus und erfordert, dass Benutzer ihn mit `/fast` aktivieren. Die Voreinstellung des Benutzers für den schnellen Modus wird weiterhin gespeichert. Siehe [Opt-in pro Sitzung erforderlich](/de/fast-mode#require-per-session-opt-in) | `true` |276| `fastModePerSessionOptIn` | Wenn `true`, bleibt der schnelle Modus nicht über Sitzungen hinweg bestehen. Jede Sitzung startet mit ausgeschaltetem schnellen Modus und erfordert, dass Benutzer ihn mit `/fast` aktivieren. Die Voreinstellung des Benutzers für den schnellen Modus wird weiterhin gespeichert. Siehe [Opt-in pro Sitzung erforderlich](/de/fast-mode#require-per-session-opt-in) | `true` |

273| `feedbackSurveyRate` | Wahrscheinlichkeit (0–1), dass die [Sitzungsqualitätsumfrage](/de/data-usage#session-quality-surveys) angezeigt wird, wenn berechtigt. Setzen Sie auf `0`, um vollständig zu unterdrücken, oder setzen Sie [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/de/env-vars) in `env`. Nützlich bei Verwendung von Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry, wo die Standard-Stichprobenquote nicht gilt | `0.05` |277| `feedbackSurveyRate` | Wahrscheinlichkeit (0–1), dass die [Sitzungsqualitätsumfrage](/de/data-usage#session-quality-surveys) angezeigt wird, wenn berechtigt. Setzen Sie auf `0`, um vollständig zu unterdrücken, oder setzen Sie [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/de/env-vars) in `env`. Nützlich bei Verwendung von Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry, wo die Standard-Stichprobenquote nicht gilt | `0.05` |

274| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**Standard**: `true`. Erstellen Sie Snapshots von Dateien vor jeder Bearbeitung, damit [`/rewind`](/de/checkpointing) sie wiederherstellen kann. Wird in `/config` als **Rewind code (checkpoints)** angezeigt. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/de/env-vars) in `env` | `false` |278| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**Standard**: `true`. Erstellen Sie Snapshots von Dateien vor jeder Bearbeitung, damit [`/rewind`](/de/checkpointing) sie wiederherstellen kann. Wird in `/config` als **Rewind code (checkpoints)** angezeigt. Um dies über eine Umgebungsvariable zu deaktivieren, setzen Sie [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/de/env-vars) in `env` | `false` |


306| `showClearContextOnPlanAccept` | **Standard**: `false`. Zeigen Sie die Option "Kontext löschen" auf dem Plan-Akzeptanz-Bildschirm an. Setzen Sie auf `true`, um die Option wiederherzustellen | `true` |310| `showClearContextOnPlanAccept` | **Standard**: `false`. Zeigen Sie die Option "Kontext löschen" auf dem Plan-Akzeptanz-Bildschirm an. Setzen Sie auf `true`, um die Option wiederherzustellen | `true` |

307| `showThinkingSummaries` | **Standard**: `false`. Zeigen Sie [erweitertes Denken](/de/model-config#extended-thinking) Zusammenfassungen in interaktiven Sitzungen an. Wenn nicht gesetzt oder `false`, werden Denk-Blöcke von der API redigiert und als zusammengeklappter Stub angezeigt. Redaktion ändert nur, was Sie sehen, nicht was das Modell generiert: Um Denk-Ausgaben zu reduzieren, [senken Sie das Budget oder deaktivieren Sie das Denken](/de/model-config#extended-thinking) stattdessen. Dieser Einstellung hat keine Auswirkung im nicht-interaktiven Modus (`-p`), dem Agent SDK oder IDE-Erweiterungen wie VS Code | `true` |311| `showThinkingSummaries` | **Standard**: `false`. Zeigen Sie [erweitertes Denken](/de/model-config#extended-thinking) Zusammenfassungen in interaktiven Sitzungen an. Wenn nicht gesetzt oder `false`, werden Denk-Blöcke von der API redigiert und als zusammengeklappter Stub angezeigt. Redaktion ändert nur, was Sie sehen, nicht was das Modell generiert: Um Denk-Ausgaben zu reduzieren, [senken Sie das Budget oder deaktivieren Sie das Denken](/de/model-config#extended-thinking) stattdessen. Dieser Einstellung hat keine Auswirkung im nicht-interaktiven Modus (`-p`), dem Agent SDK oder IDE-Erweiterungen wie VS Code | `true` |

308| `showTurnDuration` | **Standard**: `true`. Zeigen Sie Nachrichten zur Dauer der Runde nach Antworten an, z. B. "Cooked for 1m 6s". Wird in `/config` als **Show turn duration** angezeigt | `false` |312| `showTurnDuration` | **Standard**: `true`. Zeigen Sie Nachrichten zur Dauer der Runde nach Antworten an, z. B. "Cooked for 1m 6s". Wird in `/config` als **Show turn duration** angezeigt | `false` |

309| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}**Standard**: `0.01`. Anteil des Kontextfensters des Modells, das für die [Skill-Auflistung](/de/skills#skill-descriptions-are-cut-short) reserviert ist, die Claude jede Runde sieht. Wenn die Auflistung das Budget überschreitet, werden Beschreibungen für die am wenigsten verwendeten Skills auf bloße Namen reduziert, sodass Claude sie weiterhin aufrufen kann, aber nicht sieht, warum. Erhöhen Sie, um mehr Beschreibungen sichtbar zu halten, auf Kosten von mehr Kontext pro Runde. `/doctor` zeigt die aktuelle Kürzungsanzahl und welche Skills betroffen sind. Erfordert Claude Code v2.1.105 oder später | `0.02` |313| `skillListingBudgetFraction` | **Standard**: `0.01`. Anteil des Kontextfensters des Modells, das für die [Skill-Auflistung](/de/skills#skill-descriptions-are-cut-short) reserviert ist, die Claude jede Runde sieht. Wenn die Auflistung das Budget überschreitet, werden Beschreibungen für die am wenigsten verwendeten Skills auf bloße Namen reduziert, sodass Claude sie weiterhin aufrufen kann, aber nicht sieht, warum. Erhöhen Sie, um mehr Beschreibungen sichtbar zu halten, auf Kosten von mehr Kontext pro Runde. `/doctor` zeigt die Auflistungskosten gegen das Budget | `0.02` |

310| `skillListingMaxDescChars` | {/* min-version: 2.1.105 */}**Standard**: `1536`. Pro-Skill-Zeichenbegrenzung für den kombinierten `description` und `when_to_use` Text in der [Skill-Auflistung](/de/skills#skill-descriptions-are-cut-short), die Claude jede Runde sieht. Text, der länger als dies ist, wird gekürzt. Erhöhen Sie, um lange Beschreibungen intakt zu halten, auf Kosten von mehr Kontext pro Runde; senken Sie, um mehr Skills unter [`skillListingBudgetFraction`](#available-settings) zu passen. Erfordert Claude Code v2.1.105 oder später | `2048` |314| `skillListingMaxDescChars` | **Standard**: `1536`. Pro-Skill-Zeichenbegrenzung für den kombinierten `description` und `when_to_use` Text in der [Skill-Auflistung](/de/skills#skill-descriptions-are-cut-short), die Claude jede Runde sieht. Text, der länger als dies ist, wird gekürzt. Erhöhen Sie, um lange Beschreibungen intakt zu halten, auf Kosten von mehr Kontext pro Runde; senken Sie, um mehr Skills unter [`skillListingBudgetFraction`](#available-settings) zu passen. | `2048` |

311| `skillOverrides` | {/* min-version: 2.1.129 */}Pro-Skill-Sichtbarkeitsüberschreibungen, die nach Skill-Name verschlüsselt sind. Der Wert ist `"on"`, `"name-only"`, `"user-invocable-only"` oder `"off"`. Ermöglicht es Ihnen, einen Skill auszublenden oder zu reduzieren, ohne seine SKILL.md zu bearbeiten. Gilt nicht für Plugin-Skills, die über `/plugin` verwaltet werden. Das Menü `/skills` schreibt diese in `.claude/settings.local.json`. Siehe [Skill-Sichtbarkeit aus Einstellungen überschreiben](/de/skills#override-skill-visibility-from-settings). Erfordert Claude Code v2.1.129 oder später | `{"legacy-context": "name-only", "deploy": "off"}` |315| `skillOverrides` | {/* min-version: 2.1.129 */}Pro-Skill-Sichtbarkeitsüberschreibungen, die nach Skill-Name verschlüsselt sind. Der Wert ist `"on"`, `"name-only"`, `"user-invocable-only"` oder `"off"`. Ermöglicht es Ihnen, einen Skill auszublenden oder zu reduzieren, ohne seine SKILL.md zu bearbeiten. Gilt nicht für Plugin-Skills, die über `/plugin` verwaltet werden. Das Menü `/skills` schreibt diese in `.claude/settings.local.json`. Siehe [Skill-Sichtbarkeit aus Einstellungen überschreiben](/de/skills#override-skill-visibility-from-settings). Erfordert Claude Code v2.1.129 oder später | `{"legacy-context": "name-only", "deploy": "off"}` |

312| `skipWebFetchPreflight` | Überspringen Sie die [WebFetch-Domänensicherheitsprüfung](/de/data-usage#webfetch-domain-safety-check), die jeden angeforderten Hostnamen an `api.anthropic.com` sendet, bevor Sie abrufen. Setzen Sie auf `true` in Umgebungen, die den Datenverkehr zu Anthropic blockieren, wie Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry-Bereitstellungen mit restriktivem Ausgang. Wenn übersprungen, versucht WebFetch jede URL, ohne die Blocklist zu konsultieren | `true` |316| `skipWebFetchPreflight` | Überspringen Sie die [WebFetch-Domänensicherheitsprüfung](/de/data-usage#webfetch-domain-safety-check), die jeden angeforderten Hostnamen an `api.anthropic.com` sendet, bevor Sie abrufen. Setzen Sie auf `true` in Umgebungen, die den Datenverkehr zu Anthropic blockieren, wie Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry-Bereitstellungen mit restriktivem Ausgang. Wenn übersprungen, versucht WebFetch jede URL, ohne die Blocklist zu konsultieren | `true` |

313| `spinnerTipsEnabled` | **Standard**: `true`. Zeigen Sie Tipps im Spinner an, während Claude arbeitet. Setzen Sie auf `false`, um Tipps zu deaktivieren | `false` |317| `spinnerTipsEnabled` | **Standard**: `true`. Zeigen Sie Tipps im Spinner an, während Claude arbeitet. Setzen Sie auf `false`, um Tipps zu deaktivieren | `false` |


326| `useAutoModeDuringPlan` | **Standard**: `true`. Ob Plan Mode Auto-Mode-Semantik verwendet, wenn Auto Mode verfügbar ist. Nicht aus gemeinsamen Projekteinstellungen gelesen. Wird in `/config` als "Use auto mode during plan" angezeigt | `false` |330| `useAutoModeDuringPlan` | **Standard**: `true`. Ob Plan Mode Auto-Mode-Semantik verwendet, wenn Auto Mode verfügbar ist. Nicht aus gemeinsamen Projekteinstellungen gelesen. Wird in `/config` als "Use auto mode during plan" angezeigt | `false` |

327| `verbose` | {/* min-version: 2.1.119 */}**Standard**: `false`. Zeigen Sie vollständige Werkzeugausgabe statt gekürzte Zusammenfassungen an. Wird in `/config` als **Verbose output** angezeigt. Das Flag `--verbose` überschreibt dies für eine Sitzung | `true` |331| `verbose` | {/* min-version: 2.1.119 */}**Standard**: `false`. Zeigen Sie vollständige Werkzeugausgabe statt gekürzte Zusammenfassungen an. Wird in `/config` als **Verbose output** angezeigt. Das Flag `--verbose` überschreibt dies für eine Sitzung | `true` |

328| `viewMode` | Standard-Transkript-Ansichtsmodus beim Start: `"default"`, `"verbose"` oder `"focus"`. Überschreibt die klebrige `/focus`-Auswahl, wenn gesetzt. Das Flag `--verbose` überschreibt dies für eine Sitzung | `"verbose"` |332| `viewMode` | Standard-Transkript-Ansichtsmodus beim Start: `"default"`, `"verbose"` oder `"focus"`. Überschreibt die klebrige `/focus`-Auswahl, wenn gesetzt. Das Flag `--verbose` überschreibt dies für eine Sitzung | `"verbose"` |

333| `vimInsertModeRemaps` | {/* min-version: 2.1.208 */}Ordnen Sie zwei-Tasten-INSERT-Modus-Sequenzen Escape in [vim Editor-Modus](/de/interactive-mode#vim-editor-mode) zu. Jeder Schlüssel ist genau zwei druckbare Zeichen, die nacheinander eingegeben werden, und `"<Esc>"` ist das einzige unterstützte Ziel; andere Einträge werden ignoriert. Nur aus Benutzereinstellungen, dem Flag `--settings` und verwalteten Einstellungen gelesen, sodass die eingecheckte Einstellung eines Repositorys Ihre Tastenanschläge nicht neu zuordnen kann. Hat keine Auswirkung, es sei denn, `editorMode` ist `"vim"`. Siehe [Ordnen Sie INSERT-Modus-Tastatursequenzen neu zu](/de/interactive-mode#remap-insert-mode-key-sequences). Erfordert Claude Code v2.1.208 oder später | `{"jj": "<Esc>"}` |

329| `voice` | [Sprachdiktier](/de/voice-dictation)-Einstellungen: `enabled` aktiviert Diktieren, `mode` wählt `"hold"` oder `"tap"`, und `autoSubmit` sendet die Aufforderung bei Tastenfreigabe im Hold-Modus. Wird automatisch geschrieben, wenn Sie `/voice` ausführen. Erfordert ein Claude.ai-Konto | `{ "enabled": true, "mode": "tap" }` |334| `voice` | [Sprachdiktier](/de/voice-dictation)-Einstellungen: `enabled` aktiviert Diktieren, `mode` wählt `"hold"` oder `"tap"`, und `autoSubmit` sendet die Aufforderung bei Tastenfreigabe im Hold-Modus. Wird automatisch geschrieben, wenn Sie `/voice` ausführen. Erfordert ein Claude.ai-Konto | `{ "enabled": true, "mode": "tap" }` |

330| `voiceEnabled` | Veralteter Alias für `voice.enabled`. Bevorzugen Sie das `voice`-Objekt | `true` |335| `voiceEnabled` | Veralteter Alias für `voice.enabled`. Bevorzugen Sie das `voice`-Objekt | `true` |

331| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}**Standard**: `true`. Im [Fullscreen-Rendering](/de/fullscreen#mouse-wheel-scrolling) beschleunigen Sie die Mausrad-Scroll-Geschwindigkeit während schneller Scrolls. Setzen Sie auf `false` für eine konstante Scroll-Rate pro Rad-Kerbe. Erfordert Claude Code v2.1.174 oder später | `false` |336| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}**Standard**: `true`. Im [Fullscreen-Rendering](/de/fullscreen#mouse-wheel-scrolling) beschleunigen Sie die Mausrad-Scroll-Geschwindigkeit während schneller Scrolls. Setzen Sie auf `false` für eine konstante Scroll-Rate pro Rad-Kerbe. Erfordert Claude Code v2.1.174 oder später | `false` |


343</Note>348</Note>

344 349 

345| Schlüssel | Beschreibung | Beispiel |350| Schlüssel | Beschreibung | Beispiel |

346| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |351| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

347| `autoConnectIde` | **Standard**: `false`. Verbinden Sie sich automatisch mit einer laufenden IDE, wenn Claude Code von einem externen Terminal aus startet. Wird in `/config` als **Auto-connect to IDE (external terminal)** angezeigt, wenn außerhalb eines VS Code oder JetBrains-Terminals ausgeführt wird. Die Umgebungsvariable [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/de/env-vars) überschreibt dies, wenn gesetzt | `true` |352| `autoConnectIde` | **Standard**: `false`. Verbinden Sie sich automatisch mit einer laufenden IDE, wenn Claude Code von einem externen Terminal aus startet. Wird in `/config` als **Auto-connect to IDE (external terminal)** angezeigt, wenn außerhalb eines VS Code oder JetBrains-Terminals ausgeführt wird. Die Umgebungsvariable [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/de/env-vars) überschreibt dies, wenn gesetzt | `true` |

348| `autoInstallIdeExtension` | **Standard**: `true`. Installieren Sie die Claude Code IDE-Erweiterung automatisch, wenn Sie von einem VS Code-Terminal aus ausgeführt werden. Wird in `/config` als **Auto-install IDE extension** angezeigt, wenn Sie in einem VS Code oder JetBrains-Terminal ausgeführt werden. Sie können auch die Umgebungsvariable [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/de/env-vars) auf `1` setzen | `false` |353| `autoInstallIdeExtension` | **Standard**: `true`. Installieren Sie die Claude Code IDE-Erweiterung automatisch, wenn Sie von einem VS Code-Terminal aus ausgeführt werden. Wird in `/config` als **Auto-install IDE extension** angezeigt, wenn Sie in einem VS Code oder JetBrains-Terminal ausgeführt werden. Sie können auch die Umgebungsvariable [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/de/env-vars) auf `1` setzen | `false` |

349| `externalEditorContext` | **Standard**: `false`. Stellen Sie Claudes vorherige Antwort als `#`-kommentierter Kontext voran, wenn Sie den externen Editor mit `Ctrl+G` öffnen. Wird in `/config` als **Show last response in external editor** angezeigt | `true` |354| `externalEditorContext` | **Standard**: `false`. Stellen Sie Claudes vorherige Antwort als `#`-kommentierter Kontext voran, wenn Sie den externen Editor mit `Ctrl+G` öffnen. Wird in `/config` als **Show last response in external editor** angezeigt | `true` |

355| `permissionExplainerEnabled` | **Standard**: `true`. Zeigen Sie eine vom Modell generierte [Erklärung des Befehls](/de/permissions#permission-system), wenn Sie `Ctrl+E` auf einer Bash- oder PowerShell-Berechtigungsaufforderung drücken. Setzen Sie auf `false`, um die Verknüpfung auszuschalten | `false` |

350| `teammateDefaultModel` | Standardmodell für [Agent-Team](/de/agent-teams) Teamkollegen, wenn die Spawn-Aufforderung keinen angibt. Setzen Sie auf einen Modellalias wie `"sonnet"` oder `null`, um das aktuelle `/model`-Modell des Leads zu erben. Wird in `/config` als **Default teammate model** angezeigt | `"sonnet"` |356| `teammateDefaultModel` | Standardmodell für [Agent-Team](/de/agent-teams) Teamkollegen, wenn die Spawn-Aufforderung keinen angibt. Setzen Sie auf einen Modellalias wie `"sonnet"` oder `null`, um das aktuelle `/model`-Modell des Leads zu erben. Wird in `/config` als **Default teammate model** angezeigt | `"sonnet"` |

351| `workflowSizeGuideline` | {/* min-version: 2.1.202 */}**Standard**: `unrestricted`, das keinen Leitfaden sendet. Legt die [Agent-Anzahl fest, auf die Claude abzielt](/de/workflows#set-a-size-guideline) in den dynamischen Workflows, die es schreibt. Claude Code sendet den Wert an Claude als Ratschlag, nicht als erzwungene Obergrenze. Akzeptiert `unrestricted`, `small`, `medium` oder `large`. Wird in `/config` als **Dynamic workflow size** angezeigt. Sie können es auch direkt mit `/config workflowSizeGuideline=small` setzen. Erfordert Claude Code v2.1.202 oder später. {/* min-version: 2.1.203 */}Der Leitfaden der Agent-Anzahl ersetzt auch den Standard-Schwellenwert für die [`Large workflow` Warnung](/de/workflows#cost); dieses Verhalten erfordert Claude Code v2.1.203 oder später | `"small"` |357| `workflowSizeGuideline` | {/* min-version: 2.1.202 */}**Standard**: `unrestricted`, das keinen Leitfaden sendet. Legt die [Agent-Anzahl fest, auf die Claude abzielt](/de/workflows#set-a-size-guideline) in den dynamischen Workflows, die es schreibt. Claude Code sendet den Wert an Claude als Ratschlag, nicht als erzwungene Obergrenze. Akzeptiert `unrestricted`, `small`, `medium` oder `large`. Wird in `/config` als **Dynamic workflow size** angezeigt. Sie können es auch direkt mit `/config workflowSizeGuideline=small` setzen. Erfordert Claude Code v2.1.202 oder später. {/* min-version: 2.1.203 */}Der Leitfaden der Agent-Anzahl ersetzt auch den Standard-Schwellenwert für die [`Large workflow` Warnung](/de/workflows#cost); dieses Verhalten erfordert Claude Code v2.1.203 oder später | `"small"` |

352 358 


358 364 

359| Schlüssel | Beschreibung | Beispiel |365| Schlüssel | Beschreibung | Beispiel |

360| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |366| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |

361| `worktree.baseRef` | Welcher Ref neue Worktrees branchen von. `"fresh"` (Standard) brancht von `origin/<default-branch>` für einen sauberen Baum, der dem Remote entspricht. `"head"` brancht von Ihrem aktuellen lokalen `HEAD`, sodass nicht gepushte Commits und Feature-Branch-Status im Worktree vorhanden sind. Gilt für `--worktree`, das `EnterWorktree`-Tool und die Subagent-Isolation | `"head"` |367| `worktree.baseRef` | Welcher Ref neue Worktrees branchen von. `"fresh"` (Standard) brancht von `origin/<default-branch>` für einen sauberen Baum, der dem Remote entspricht. `"head"` brancht von Ihrem aktuellen lokalen `HEAD`, sodass nicht gepushte Commits und Feature-Branch-Status im Worktree vorhanden sind. Innerhalb eines verknüpften Worktrees wird `"head"` zu diesem Worktree's `HEAD` aufgelöst, nicht zum Haupt-Checkout's. Gilt für `--worktree`, das `EnterWorktree`-Tool und die Subagent-Isolation | `"head"` |

362| `worktree.symlinkDirectories` | Verzeichnisse, die vom Haupt-Repository in jeden Worktree symlinkt werden, um große Verzeichnisse auf der Festplatte zu duplizieren. Standardmäßig werden keine Verzeichnisse symlinkt | `["node_modules", ".cache"]` |368| `worktree.symlinkDirectories` | Verzeichnisse, die vom Haupt-Repository in jeden Worktree symlinkt werden, um große Verzeichnisse auf der Festplatte zu duplizieren. Standardmäßig werden keine Verzeichnisse symlinkt | `["node_modules", ".cache"]` |

363| `worktree.sparsePaths` | Verzeichnisse, die in jedem Worktree über Git Sparse-Checkout ausgecheckt werden. Nur die aufgelisteten Verzeichnisse plus Root-Level-Dateien werden auf die Festplatte geschrieben, was in großen Monorepos schneller ist | `["packages/my-app", "shared/utils"]` |369| `worktree.sparsePaths` | Verzeichnisse, die in jedem Worktree über Git Sparse-Checkout ausgecheckt werden. Nur die aufgelisteten Verzeichnisse plus Root-Level-Dateien werden auf die Festplatte geschrieben, was in großen Monorepos schneller ist. Während ein spärlicher Worktree existiert, aktiviert Git `extensions.worktreeConfig` in der gemeinsamen `.git/config` des Repositorys; siehe [Checken Sie nur die Verzeichnisse aus, die Sie benötigen](/de/large-codebases#check-out-only-the-directories-you-need) | `["packages/my-app", "shared/utils"]` |

364| `worktree.bgIsolation` | {/* min-version: 2.1.143 */}Isolationsmodus für [Hintergrund-Sitzungen](/de/agent-view#how-file-edits-are-isolated). `"worktree"` (Standard) blockiert `Edit`/`Write` im Haupt-Checkout, bis `EnterWorktree` aufgerufen wird. {/* min-version: 2.1.203 */}Außerhalb eines Git-Repositorys gibt ein [`WorktreeCreate` Hook](/de/worktrees#non-git-version-control), der fehlschlägt, die Sperre frei, sodass die Sitzung das Arbeitsverzeichnis an Ort und Stelle bearbeiten kann; erfordert Claude Code v2.1.203 oder später. `"none"` ermöglicht es Hintergrund-Jobs, die Arbeitskopie direkt zu bearbeiten. Erfordert Claude Code v2.1.143 oder später | `"none"` |370| `worktree.bgIsolation` | {/* min-version: 2.1.143 */}Isolationsmodus für [Hintergrund-Sitzungen](/de/agent-view#how-file-edits-are-isolated). `"worktree"` (Standard) blockiert `Edit`/`Write` im Haupt-Checkout, bis `EnterWorktree` aufgerufen wird. {/* min-version: 2.1.203 */}Außerhalb eines Git-Repositorys gibt ein [`WorktreeCreate` Hook](/de/worktrees#non-git-version-control), der fehlschlägt, die Sperre frei, sodass die Sitzung das Arbeitsverzeichnis an Ort und Stelle bearbeiten kann; erfordert Claude Code v2.1.203 oder später. `"none"` ermöglicht es Hintergrund-Jobs, die Arbeitskopie direkt zu bearbeiten. Erfordert Claude Code v2.1.143 oder später | `"none"` |

365 371 

366Um gitignorierte Dateien wie `.env` in neue Worktrees zu kopieren, verwenden Sie stattdessen eine [`.worktreeinclude`-Datei](/de/worktrees#copy-gitignored-files-into-worktrees) in Ihrem Projektstamm.372Um gitignorierte Dateien wie `.env` in neue Worktrees zu kopieren, verwenden Sie stattdessen eine [`.worktreeinclude`-Datei](/de/worktrees#copy-gitignored-files-into-worktrees) in Ihrem Projektstamm.


370</h3>376</h3>

371 377 

372| Schlüssel | Beschreibung | Beispiel |378| Schlüssel | Beschreibung | Beispiel |

373| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |379| :---------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |

374| `allow` | Array von Berechtigungsregeln, um die Werkzeugnutzung zu erlauben. Werkzeugname-Globs werden nur in der Werkzeugposition nach einem literalen `mcp__<server>__` Präfix unterstützt, z. B. `mcp__github__get_*`; das Server-Segment muss glob-frei sein. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) unten für Details zur Mustererkennung | `[ "Bash(git diff *)" ]` |380| `allow` | Array von Berechtigungsregeln, um die Werkzeugnutzung zu erlauben. Werkzeugname-Globs werden nur in der Werkzeugposition nach einem literalen `mcp__<server>__` Präfix unterstützt, z. B. `mcp__github__get_*`; das Server-Segment muss glob-frei sein. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) unten für Details zur Mustererkennung | `[ "Bash(git diff *)" ]` |

375| `ask` | Array von Berechtigungsregeln, um bei der Werkzeugnutzung um Bestätigung zu bitten. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) unten | `[ "Bash(git push *)" ]` |381| `ask` | Array von Berechtigungsregeln, um bei der Werkzeugnutzung um Bestätigung zu bitten. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) unten | `[ "Bash(git push *)" ]` |

376| `deny` | Array von Berechtigungsregeln, um die Werkzeugnutzung zu verweigern. Verwenden Sie dies, um sensible Dateien vom Claude Code-Zugriff auszuschließen. Werkzeugnamen akzeptieren Glob-Muster: `"*"` verweigert jedes Werkzeug und `"mcp__*"` verweigert alle MCP-Werkzeuge. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) und [Bash-Berechtigungsbeschränkungen](/de/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |382| `deny` | Array von Berechtigungsregeln, um die Werkzeugnutzung zu verweigern. Verwenden Sie dies, um sensible Dateien vom Claude Code-Zugriff auszuschließen. Werkzeugnamen akzeptieren Glob-Muster: `"*"` verweigert jedes Werkzeug und `"mcp__*"` verweigert alle MCP-Werkzeuge. Siehe [Berechtigungsregelsyntax](#permission-rule-syntax) und [Bash-Berechtigungsbeschränkungen](/de/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

377| `additionalDirectories` | Zusätzliche [Arbeitsverzeichnisse](/de/permissions#working-directories) für Dateizugriff. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/de/permissions#additional-directories-grant-file-access-not-configuration) aus diesen Verzeichnissen | `[ "../docs/" ]` |383| `additionalDirectories` | Zusätzliche [Arbeitsverzeichnisse](/de/permissions#working-directories) für Dateizugriff. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/de/permissions#additional-directories-grant-file-access-not-configuration) aus diesen Verzeichnissen | `[ "../docs/" ]` |

378| `defaultMode` | Standard-[Berechtigungsmodus](/de/permission-modes) beim Öffnen von Claude Code. Gültige Werte: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` und {/* min-version: 2.1.200 */}}`manual` als Alias für `default`, der Modus mit der Bezeichnung Manual in der CLI und den VS Code- und JetBrains-Erweiterungen. Der Alias `manual` erfordert Claude Code v2.1.200 oder später. {/* min-version: 2.1.142 */}}`auto` wird ignoriert, wenn es in Projekt- oder lokalen Einstellungen gesetzt ist, sodass ein Repository sich nicht selbst den Auto-Modus gewähren kann; setzen Sie es stattdessen in `~/.claude/settings.json`. Vor v2.1.142 konnten Projekteinstellungen `auto` setzen. Das CLI-Flag `--permission-mode` überschreibt diese Einstellung für eine einzelne Sitzung | `"acceptEdits"` |384| `defaultMode` | Standard-[Berechtigungsmodus](/de/permission-modes) beim Öffnen von Claude Code. Gültige Werte: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` und {{/* min-version: 2.1.200 */}}`manual` als Alias für `default`, der Modus mit der Bezeichnung Manual in der CLI und den VS Code- und JetBrains-Erweiterungen. Der Alias `manual` erfordert Claude Code v2.1.200 oder später. {{/* min-version: 2.1.142 */}}`auto` wird ignoriert, wenn es in Projekt- oder lokalen Einstellungen gesetzt ist, sodass ein Repository sich nicht selbst den Auto-Modus gewähren kann; setzen Sie es stattdessen in `~/.claude/settings.json`. Vor v2.1.142 konnten Projekteinstellungen `auto` setzen. Das CLI-Flag `--permission-mode` überschreibt diese Einstellung für eine einzelne Sitzung | `"acceptEdits"` |

379| `disableBypassPermissionsMode` | Setzen Sie auf `"disable"`, um zu verhindern, dass der `bypassPermissions`-Modus aktiviert wird. Dies deaktiviert das Befehlszeilenflag `--dangerously-skip-permissions`. Normalerweise in [verwalteten Einstellungen](/de/permissions#managed-settings) platziert, um Organisationsrichtlinien durchzusetzen, funktioniert aber aus jedem Bereich | `"disable"` |385| `disableBypassPermissionsMode` | Setzen Sie auf `"disable"`, um zu verhindern, dass der `bypassPermissions`-Modus aktiviert wird. Dies deaktiviert das Befehlszeilenflag `--dangerously-skip-permissions`. Normalerweise in [verwalteten Einstellungen](/de/permissions#managed-settings) platziert, um Organisationsrichtlinien durchzusetzen, funktioniert aber aus jedem Bereich | `"disable"` |

380| `skipDangerousModePermissionPrompt` | Überspringen Sie die Bestätigungsaufforderung, die vor dem Betreten des Bypass-Berechtigungsmodus über `--dangerously-skip-permissions` oder `defaultMode: "bypassPermissions"` angezeigt wird. Wird ignoriert, wenn in Projekteinstellungen (`.claude/settings.json`) gesetzt, um zu verhindern, dass nicht vertrauenswürdige Repositories die Aufforderung automatisch umgehen | `true` |386| `skipDangerousModePermissionPrompt` | Überspringen Sie die Bestätigungsaufforderung, die vor dem Betreten des Bypass-Berechtigungsmodus über `--dangerously-skip-permissions` oder `defaultMode: "bypassPermissions"` angezeigt wird. Wird ignoriert, wenn in Projekteinstellungen (`.claude/settings.json`) gesetzt, um zu verhindern, dass nicht vertrauenswürdige Repositories die Aufforderung automatisch umgehen | `true` |

381 387 


403Konfigurieren Sie erweitertes Sandbox-Verhalten. Sandboxing isoliert Bash-Befehle von Ihrem Dateisystem und Netzwerk. Siehe [Sandboxing](/de/sandboxing) für Details.409Konfigurieren Sie erweitertes Sandbox-Verhalten. Sandboxing isoliert Bash-Befehle von Ihrem Dateisystem und Netzwerk. Siehe [Sandboxing](/de/sandboxing) für Details.

404 410 

405| Schlüssel | Beschreibung | Beispiel |411| Schlüssel | Beschreibung | Beispiel |

406| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |412| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

407| `enabled` | Aktivieren Sie Bash-Sandboxing (macOS, Linux und WSL2). Standard: false | `true` |413| `enabled` | Aktivieren Sie Bash-Sandboxing (macOS, Linux und WSL2). Standard: false | `true` |

408| `failIfUnavailable` | Beenden Sie mit einem Fehler beim Start, wenn `sandbox.enabled` true ist, aber die Sandbox nicht gestartet werden kann (fehlende Abhängigkeiten oder nicht unterstützte Plattform). Wenn false (Standard), wird eine Warnung angezeigt und Befehle werden unsandboxed ausgeführt. Vorgesehen für verwaltete Einstellungsbereitstellungen, die Sandboxing als Hard Gate erfordern | `true` |414| `failIfUnavailable` | Beenden Sie mit einem Fehler beim Start, wenn `sandbox.enabled` true ist, aber die Sandbox nicht gestartet werden kann (fehlende Abhängigkeiten oder nicht unterstützte Plattform). Wenn false (Standard), wird eine Warnung angezeigt und Befehle werden unsandboxed ausgeführt. Vorgesehen für verwaltete Einstellungsbereitstellungen, die Sandboxing als Hard Gate erfordern | `true` |

409| `autoAllowBashIfSandboxed` | Genehmigen Sie Bash-Befehle automatisch, wenn sie in einer Sandbox ausgeführt werden. Standard: true | `true` |415| `autoAllowBashIfSandboxed` | Genehmigen Sie Bash-Befehle automatisch, wenn sie in einer Sandbox ausgeführt werden. Standard: true | `true` |


412| `filesystem.allowWrite` | Zusätzliche Pfade, in die Sandbox-Befehle schreiben können. Arrays werden über alle Einstellungsbereiche zusammengeführt: Benutzer-, Projekt- und verwaltete Pfade werden kombiniert, nicht ersetzt. Auch zusammengeführt mit Pfaden aus `Edit(...)` Allow-Berechtigungsregeln. Siehe [Pfadpräfixe](#sandbox-path-prefixes) unten. | `["/tmp/build", "~/.kube"]` |418| `filesystem.allowWrite` | Zusätzliche Pfade, in die Sandbox-Befehle schreiben können. Arrays werden über alle Einstellungsbereiche zusammengeführt: Benutzer-, Projekt- und verwaltete Pfade werden kombiniert, nicht ersetzt. Auch zusammengeführt mit Pfaden aus `Edit(...)` Allow-Berechtigungsregeln. Siehe [Pfadpräfixe](#sandbox-path-prefixes) unten. | `["/tmp/build", "~/.kube"]` |

413| `filesystem.denyWrite` | Pfade, in die Sandbox-Befehle nicht schreiben können. Arrays werden über alle Einstellungsbereiche zusammengeführt. Auch zusammengeführt mit Pfaden aus `Edit(...)` Deny-Berechtigungsregeln. | `["/etc", "/usr/local/bin"]` |419| `filesystem.denyWrite` | Pfade, in die Sandbox-Befehle nicht schreiben können. Arrays werden über alle Einstellungsbereiche zusammengeführt. Auch zusammengeführt mit Pfaden aus `Edit(...)` Deny-Berechtigungsregeln. | `["/etc", "/usr/local/bin"]` |

414| `filesystem.denyRead` | Pfade, aus denen Sandbox-Befehle nicht lesen können. Arrays werden über alle Einstellungsbereiche zusammengeführt. Auch zusammengeführt mit Pfaden aus `Read(...)` Deny-Berechtigungsregeln. | `["~/.aws/credentials"]` |420| `filesystem.denyRead` | Pfade, aus denen Sandbox-Befehle nicht lesen können. Arrays werden über alle Einstellungsbereiche zusammengeführt. Auch zusammengeführt mit Pfaden aus `Read(...)` Deny-Berechtigungsregeln. | `["~/.aws/credentials"]` |

415| `filesystem.allowRead` | Pfade zum erneuten Erlauben des Lesens innerhalb von `denyRead`-Regionen. Hat Vorrang vor `denyRead`. Arrays werden über alle Einstellungsbereiche zusammengeführt. Verwenden Sie dies, um Workspace-only-Lesezugriffsmuster zu erstellen. | `["."]` |421| `filesystem.allowRead` | Pfade zum erneuten Erlauben des Lesens innerhalb von `denyRead`-Regionen. Ein `allowRead` Pfad öffnet das Lesen innerhalb einer breiteren `denyRead` Region erneut, und ein genauer Pfad in `denyRead` bleibt innerhalb einer breiteren `allowRead` blockiert; siehe die [Überlappungstabelle](/de/sandboxing#configure-sandboxing) für Beispiele. Arrays werden über alle Einstellungsbereiche zusammengeführt. Verwenden Sie dies, um Workspace-only-Lesezugriffsmuster zu erstellen. | `["."]` |

416| `filesystem.allowManagedReadPathsOnly` | (Nur verwaltete Einstellungen) Nur `filesystem.allowRead` Pfade aus verwalteten Einstellungen werden berücksichtigt. `denyRead` wird weiterhin aus allen Quellen zusammengeführt. Standard: false | `true` |422| `filesystem.allowManagedReadPathsOnly` | (Nur verwaltete Einstellungen) Nur `filesystem.allowRead` Pfade aus verwalteten Einstellungen werden berücksichtigt. `denyRead` wird weiterhin aus allen Quellen zusammengeführt. Standard: false | `true` |

417| `credentials.files` | {/* min-version: 2.1.187 */}Anmeldedatendateien oder Verzeichnisse, die Sandbox-Befehle nicht lesen können. Wendet die gleiche Lesesperre wie `filesystem.denyRead` an; der separate Schlüssel hält Anmeldedatenpfade gruppiert mit `credentials.envVars` und getrennt von allgemeinen Dateisystemregeln. Jeder Eintrag ist `{ "path": "...", "mode": "deny" }`, und `deny` ist der einzige unterstützte Modus für Dateien. Pfade verwenden die gleichen [Präfixe](#sandbox-path-prefixes) wie `filesystem.*`-Einstellungen. Arrays werden über alle Einstellungsbereiche zusammengeführt. Erfordert Claude Code v2.1.187 oder später. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |423| `credentials.files` | {/* min-version: 2.1.187 */}Anmeldedatendateien oder Verzeichnisse, die Sandbox-Befehle nicht lesen können. Wendet die gleiche Lesesperre wie `filesystem.denyRead` an; der separate Schlüssel hält Anmeldedatenpfade gruppiert mit `credentials.envVars` und getrennt von allgemeinen Dateisystemregeln. Jeder Eintrag ist `{ "path": "...", "mode": "deny" }`, und `deny` ist der einzige unterstützte Modus für Dateien. Pfade verwenden die gleichen [Präfixe](#sandbox-path-prefixes) wie `filesystem.*`-Einstellungen. Arrays werden über alle Einstellungsbereiche zusammengeführt. Erfordert Claude Code v2.1.187 oder später. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |

418| `credentials.envVars` | {/* min-version: 2.1.187 */}Umgebungsvariablen zum [Schutz vor Sandbox-Befehlen](/de/sandboxing#protect-credentials). Jeder Eintrag hat einen `name` und einen `mode`; der Name muss mit einem Buchstaben oder Unterstrich beginnen und darf nur Buchstaben, Ziffern und Unterstriche enthalten. `deny` entfernt die Variable aus der Umgebung von Sandbox-Befehlen. Erfordert Claude Code v2.1.187 oder später. {/* min-version: 2.1.199 */}}`mask` ersetzt die Variable mit einem Pro-Sitzungs-Sentinel-Wert innerhalb der Sandbox, während der Sandbox-Proxy den echten Wert bei ausgehenden Anfragen an die `injectHosts` dieses Eintrags ersetzt; es erfordert `network.tlsTerminate` und Claude Code v2.1.199 oder später. `mask` Einträge werden nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Arrays werden über alle Einstellungsbereiche zusammengeführt, und `deny` hat Vorrang, wenn die gleiche Variable mit beiden Modi erscheint. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |424| `credentials.envVars` | {/* min-version: 2.1.187 */}Umgebungsvariablen zum [Schutz vor Sandbox-Befehlen](/de/sandboxing#protect-credentials). Jeder Eintrag hat einen `name` und einen `mode`; der Name muss mit einem Buchstaben oder Unterstrich beginnen und darf nur Buchstaben, Ziffern und Unterstriche enthalten. `deny` entfernt die Variable aus der Umgebung von Sandbox-Befehlen. Erfordert Claude Code v2.1.187 oder später. {{/* min-version: 2.1.199 */}}`mask` ersetzt die Variable mit einem Pro-Sitzungs-Sentinel-Wert innerhalb der Sandbox, während der Sandbox-Proxy den echten Wert bei ausgehenden Anfragen an die `injectHosts` dieses Eintrags ersetzt; es erfordert `network.tlsTerminate` und Claude Code v2.1.199 oder später. `mask` Einträge werden nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Arrays werden über alle Einstellungsbereiche zusammengeführt, und `deny` hat Vorrang, wenn die gleiche Variable mit beiden Modi erscheint. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |

419| `credentials.envVars[].injectHosts` | Hosts, wo der Sandbox-Proxy den echten Wert eines `mask` Eintrags ersetzt. Jeder Host muss auch von `network.allowedDomains` abgedeckt sein, entweder genau oder durch einen Platzhalter. Wenn nicht gesetzt, ersetzt der Proxy den Wert bei Anfragen an jeden Host in `network.allowedDomains`. Wird akzeptiert, aber ignoriert, wenn `mode` `deny` ist. Erfordert Claude Code v2.1.199 oder später. {/* min-version: 2.1.199 */} | `["api.github.com"]` |425| `credentials.envVars[].injectHosts` | Hosts, wo der Sandbox-Proxy den echten Wert eines `mask` Eintrags ersetzt. Jeder Host muss auch von `network.allowedDomains` abgedeckt sein, entweder genau oder durch einen Platzhalter. Wenn nicht gesetzt, ersetzt der Proxy den Wert bei Anfragen an jeden Host in `network.allowedDomains`. Wird akzeptiert, aber ignoriert, wenn `mode` `deny` ist. Erfordert Claude Code v2.1.199 oder später. {{/* min-version: 2.1.199 */}} | `["api.github.com"]` |

420| `credentials.allowPlaintextInject` | Erlauben Sie `mask` Substitution auf Plain-HTTP-Anfragen sowie TLS-terminiertem HTTPS. Bei Plain-HTTP ist die Upstream-Identität nicht überprüft und die Anmeldedaten werden im Klartext übertragen, daher lassen Sie dies außerhalb vertrauenswürdiger Test-Netzwerke aus. Wird nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Standard: false. Erfordert Claude Code v2.1.199 oder später. {/* min-version: 2.1.199 */} | `true` |426| `credentials.allowPlaintextInject` | Erlauben Sie `mask` Substitution auf Plain-HTTP-Anfragen sowie TLS-terminiertem HTTPS. Bei Plain-HTTP ist die Upstream-Identität nicht überprüft und die Anmeldedaten werden im Klartext übertragen, daher lassen Sie dies außerhalb vertrauenswürdiger Test-Netzwerke aus. Wird nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Standard: false. Erfordert Claude Code v2.1.199 oder später. {{/* min-version: 2.1.199 */}} | `true` |

421| `network.allowUnixSockets` | (Nur macOS) Unix-Socket-Pfade, auf die in der Sandbox zugegriffen werden kann. Wird unter Linux und WSL2 ignoriert, wo der Seccomp-Filter `socket(AF_UNIX, ...)` Aufrufe nicht überprüfen kann; verwenden Sie stattdessen `allowAllUnixSockets`. | `["~/.ssh/agent-socket"]` |427| `network.allowUnixSockets` | (Nur macOS) Unix-Socket-Pfade, auf die in der Sandbox zugegriffen werden kann. Wird unter Linux und WSL2 ignoriert, wo der Seccomp-Filter `socket(AF_UNIX, ...)` Aufrufe nicht überprüfen kann; verwenden Sie stattdessen `allowAllUnixSockets`. | `["~/.ssh/agent-socket"]` |

422| `network.allowAllUnixSockets` | Erlauben Sie alle Unix-Socket-Verbindungen in der Sandbox. Unter Linux und WSL2 ist dies die einzige Möglichkeit, Unix-Sockets zu erlauben, da der Seccomp-Filter übersprungen wird, der ansonsten `socket(AF_UNIX, ...)` Aufrufe blockiert. Standard: false | `true` |428| `network.allowAllUnixSockets` | Erlauben Sie alle Unix-Socket-Verbindungen in der Sandbox. Unter Linux und WSL2 ist dies die einzige Möglichkeit, Unix-Sockets zu erlauben, da der Seccomp-Filter übersprungen wird, der ansonsten `socket(AF_UNIX, ...)` Aufrufe blockiert. Standard: false | `true` |

423| `network.allowLocalBinding` | Erlauben Sie das Binden an Localhost-Ports (nur macOS). Standard: false | `true` |429| `network.allowLocalBinding` | Erlauben Sie das Binden an Localhost-Ports (nur macOS). Standard: false | `true` |


427| `network.allowManagedDomainsOnly` | (Nur verwaltete Einstellungen) Nur `allowedDomains` und `WebFetch(domain:...)` Allow-Regeln aus verwalteten Einstellungen werden berücksichtigt. Domänen aus Benutzer-, Projekt- und lokalen Einstellungen werden ignoriert. Nicht zulässige Domänen werden automatisch blockiert, ohne den Benutzer zu fragen. Verweigerte Domänen werden weiterhin aus allen Quellen berücksichtigt. Standard: false | `true` |433| `network.allowManagedDomainsOnly` | (Nur verwaltete Einstellungen) Nur `allowedDomains` und `WebFetch(domain:...)` Allow-Regeln aus verwalteten Einstellungen werden berücksichtigt. Domänen aus Benutzer-, Projekt- und lokalen Einstellungen werden ignoriert. Nicht zulässige Domänen werden automatisch blockiert, ohne den Benutzer zu fragen. Verweigerte Domänen werden weiterhin aus allen Quellen berücksichtigt. Standard: false | `true` |

428| `network.httpProxyPort` | HTTP-Proxy-Port, der verwendet wird, wenn Sie Ihren eigenen Proxy verwenden möchten. Wenn nicht angegeben, führt Claude seinen eigenen Proxy aus. | `8080` |434| `network.httpProxyPort` | HTTP-Proxy-Port, der verwendet wird, wenn Sie Ihren eigenen Proxy verwenden möchten. Wenn nicht angegeben, führt Claude seinen eigenen Proxy aus. | `8080` |

429| `network.socksProxyPort` | SOCKS5-Proxy-Port, der verwendet wird, wenn Sie Ihren eigenen Proxy verwenden möchten. Wenn nicht angegeben, führt Claude seinen eigenen Proxy aus. | `8081` |435| `network.socksProxyPort` | SOCKS5-Proxy-Port, der verwendet wird, wenn Sie Ihren eigenen Proxy verwenden möchten. Wenn nicht angegeben, führt Claude seinen eigenen Proxy aus. | `8081` |

430| `network.tlsTerminate` | Experimentell. Beenden Sie TLS innerhalb des Sandbox-Proxys, damit er den Inhalt von HTTPS-Anfragen lesen kann. Erforderlich für `mask` [Anmeldedaten-Substitution](/de/sandboxing#protect-credentials). Setzen Sie `{}`, um eine ephemerale Zertifizierungsstelle für die Sitzung zu generieren, oder setzen Sie `caCertPath` und `caKeyPath`, um Ihre eigene zu verwenden. Wird nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Erfordert Claude Code v2.1.199 oder später. {/* min-version: 2.1.199 */} | `{}` |436| `network.tlsTerminate` | Experimentell. Beenden Sie TLS innerhalb des Sandbox-Proxys, damit er den Inhalt von HTTPS-Anfragen lesen kann. Erforderlich für `mask` [Anmeldedaten-Substitution](/de/sandboxing#protect-credentials). Setzen Sie `{}`, um eine ephemerale Zertifizierungsstelle für die Sitzung zu generieren, oder setzen Sie `caCertPath` und `caKeyPath`, um Ihre eigene zu verwenden. Wird nur aus Benutzer-, verwalteten oder CLI-`--settings` Einstellungen berücksichtigt, nicht aus `.claude/settings.json` oder `.claude/settings.local.json`. Erfordert Claude Code v2.1.199 oder später. {{/* min-version: 2.1.199 */}} | `{}` |

431| `enableWeakerNestedSandbox` | Aktivieren Sie schwächere Sandbox für unprivilegierte Docker-Umgebungen (nur Linux und WSL2). **Reduziert die Sicherheit.** Standard: false | `true` |437| `enableWeakerNestedSandbox` | Aktivieren Sie schwächere Sandbox für unprivilegierte Docker-Umgebungen (nur Linux und WSL2). **Reduziert die Sicherheit.** Standard: false | `true` |

432| `enableWeakerNetworkIsolation` | (Nur macOS) Erlauben Sie den Zugriff auf den System-TLS-Vertrauensdienst (`com.apple.trustd.agent`) in der Sandbox. Erforderlich für Go-basierte Tools wie `gh`, `gcloud` und `terraform`, um TLS-Zertifikate zu überprüfen, wenn `httpProxyPort` mit einem MITM-Proxy und benutzerdefinierter CA verwendet wird. **Reduziert die Sicherheit** durch Öffnen eines möglichen Datenexfiltrationspfads. Standard: false | `true` |438| `enableWeakerNetworkIsolation` | (Nur macOS) Erlauben Sie den Zugriff auf den System-TLS-Vertrauensdienst (`com.apple.trustd.agent`) in der Sandbox. Erforderlich für Go-basierte Tools wie `gh`, `gcloud` und `terraform`, um TLS-Zertifikate zu überprüfen, wenn `httpProxyPort` mit einem MITM-Proxy und benutzerdefinierter CA verwendet wird. **Reduziert die Sicherheit** durch Öffnen eines möglichen Datenexfiltrationspfads. Standard: false | `true` |

433| `allowAppleEvents` | (Nur macOS) Erlauben Sie Sandbox-Befehlen, Apple Events zu senden. Erforderlich für `open`, `osascript` und Tools, die URLs in einem Browser öffnen, die ansonsten mit Fehler `-600` fehlschlagen. **Entfernt Code-Ausführungs-Isolation.** Sandbox-Befehle können andere Anwendungen unsandboxed ohne Benutzer-Aufforderung starten; sie können auch AppleScript-Befehle an laufende Anwendungen wie Terminal senden, unterliegen aber der Pro-App-macOS-Automatisierungs-Zustimmungs-Aufforderung (TCC). Wird nur aus Benutzer-, verwalteten oder CLI-Einstellungen berücksichtigt, nicht aus Projekteinstellungen. Standard: false | `true` |439| `allowAppleEvents` | (Nur macOS) Erlauben Sie Sandbox-Befehlen, Apple Events zu senden. Erforderlich für `open`, `osascript` und Tools, die URLs in einem Browser öffnen, die ansonsten mit Fehler `-600` fehlschlagen. **Entfernt Code-Ausführungs-Isolation.** Sandbox-Befehle können andere Anwendungen unsandboxed ohne Benutzer-Aufforderung starten; sie können auch AppleScript-Befehle an laufende Anwendungen wie Terminal senden, unterliegen aber der Pro-App-macOS-Automatisierungs-Zustimmungs-Aufforderung (TCC). Wird nur aus Benutzer-, verwalteten oder CLI-Einstellungen berücksichtigt, nicht aus Projekteinstellungen. Standard: false | `true` |


627 633 

628```json theme={null}634```json theme={null}

629{635{

630 "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]636 "httpHookAllowed EnvVars": ["MY_TOKEN", "HOOK_SECRET"]

631}637}

632```638```

633 639 


6681. **Verwaltete Einstellungen** ([Serververwaltete](/de/server-managed-settings), [MDM/OS-Richtlinien](#configuration-scopes) oder [Verwaltete Einstellungen](/de/settings#settings-files))6741. **Verwaltete Einstellungen** ([Serververwaltete](/de/server-managed-settings), [MDM/OS-Richtlinien](#configuration-scopes) oder [Verwaltete Einstellungen](/de/settings#settings-files))

669 * Richtlinien, die von IT über Server-Bereitstellung, MDM-Konfigurationsprofile, Registry-Richtlinien oder verwaltete Einstellungsdateien bereitgestellt werden675 * Richtlinien, die von IT über Server-Bereitstellung, MDM-Konfigurationsprofile, Registry-Richtlinien oder verwaltete Einstellungsdateien bereitgestellt werden

670 * Können nicht durch andere Ebenen überschrieben werden, einschließlich Befehlszeilenargumenten676 * Können nicht durch andere Ebenen überschrieben werden, einschließlich Befehlszeilenargumenten

671 * Innerhalb der verwalteten Ebene ist die Priorität: [`policyHelper`](#compute-managed-settings-with-a-policy-helper) Ausgabe, die bei Konfiguration die einzige verwaltete Quelle ist > Remote (claude.ai [Serververw altete](/de/server-managed-settings) oder [Claude-Apps-Gateway](/de/claude-apps-gateway)-bereitgestellt) > MDM/OS-Richtlinien > dateibasierte (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU-Registry (nur Windows). Nur eine verwaltete Quelle wird verwendet; Quellen werden nicht zusammengeführt, mit einer Ausnahme: die Sandbox-Sperr-Schlüssel `sandbox.network.allowManagedDomainsOnly` und `sandbox.filesystem.allowManagedReadPathsOnly`, mit ihren zugehörigen Allowlists, `allowAllClaudeAiMcps` und die Sandbox-Binär-Pfade `sandbox.bwrapPath` und `sandbox.socatPath` werden berücksichtigt, wenn eine Admin-kontrollierte verwaltete Quelle sie setzt; die benutzerbare HKCU-Ebene ist ausgeschlossen. Innerhalb der dateibasierten Ebene werden Drop-in-Dateien und die Basisdatei zusammengeführt.677 * Innerhalb der verwalteten Ebene ist die Priorität: [`policyHelper`](#compute-managed-settings-with-a-policy-helper) Ausgabe, die bei Konfiguration die einzige verwaltete Quelle ist > Remote (claude.ai [Serververwaltete](/de/server-managed-settings) oder [Claude-Apps-Gateway](/de/claude-apps-gateway)-bereitgestellt) > MDM/OS-Richtlinien > dateibasierte (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU-Registry (nur Windows). Nur eine verwaltete Quelle wird verwendet; Quellen werden nicht zusammengeführt, mit einer Ausnahme: die Sandbox-Sperr-Schlüssel `sandbox.network.allowManagedDomainsOnly` und `sandbox.filesystem.allowManagedReadPathsOnly`, mit ihren zugehörigen Allowlists, `allowAllClaudeAiMcps` und die Sandbox-Binär-Pfade `sandbox.bwrapPath` und `sandbox.socatPath` werden berücksichtigt, wenn eine Admin-kontrollierte verwaltete Quelle sie setzt; die benutzerbare HKCU-Ebene ist ausgeschlossen. Innerhalb der dateibasierten Ebene werden Drop-in-Dateien und die Basisdatei zusammengeführt.

672 * Eingebettete Hosts wie Claude Desktop können Richtlinien über die SDK `managedSettings` Option bereitstellen. Standardmäßig wird dies ignoriert, wenn eine Admin-bereitgestellte verwaltete Quelle vorhanden ist: Serververwaltete Einstellungen, eine MDM- oder OS-Richtlinie oder eine verwaltete Einstellungsdatei. Der benutzerbare HKCU-Registry-Fallback zählt nicht als Admin-bereitgestellte Quelle. Administratoren können sich anmelden, indem sie [`parentSettingsBehavior`](#available-settings) auf `"merge"` setzen. Die Werte des Embedders werden gefiltert, sodass sie verwaltete Richtlinien verschärfen, aber nicht lockern können.678 * Eingebettete Hosts wie Claude Desktop können Richtlinien über die SDK `managedSettings` Option bereitstellen. Standardmäßig wird dies ignoriert, wenn eine Admin-bereitgestellte verwaltete Quelle vorhanden ist: Serververwaltete Einstellungen, eine MDM- oder OS-Richtlinie oder eine verwaltete Einstellungsdatei. Der benutzerbare HKCU-Registry-Fallback zählt nicht als Admin-bereitgestellte Quelle. Administratoren können sich anmelden, indem sie [`parentSettingsBehavior`](#available-settings) auf `"merge"` setzen. Die Werte des Embedders werden gefiltert, sodass sie verwaltete Richtlinien verschärfen, aber nicht lockern können.

673 679 

6742. **Befehlszeilenargumente**6802. **Befehlszeilenargumente**


824}830}

825```831```

826 832 

833<h4 id="pluginconfigs">

834 `pluginConfigs`

835</h4>

836 

837Speichert die nicht-sensiblen Optionswerte, die die [`userConfig`](/de/plugins-reference#user-configuration) Eingabeaufforderung eines Plugins sammelt, indiziert nach Plugin-ID. Claude Code schreibt diesen Schlüssel in Benutzereinstellungen, wenn Sie das Konfigurationsdialogfeld des Plugins ausfüllen, sodass Sie ihn nicht manuell bearbeiten müssen. Sensible Optionen werden stattdessen im macOS Keychain gespeichert oder in `~/.claude/.credentials.json` auf Plattformen ohne unterstützten Keychain.

838 

839Dieses Beispiel speichert eine Option für ein Plugin, das vom `acme-tools` Marketplace installiert wurde:

840 

841```json theme={null}

842{

843 "pluginConfigs": {

844 "deployer@acme-tools": {

845 "options": {

846 "api_endpoint": "https://api.example.com"

847 }

848 }

849 }

850}

851```

852 

853`pluginConfigs` wird nur aus Benutzereinstellungen, dem `--settings` Flag und verwalteten Einstellungen gelesen. Einträge in der `.claude/settings.json` oder `.claude/settings.local.json` eines Projekts werden ignoriert, da diese Werte in Plugin-Hook-, MCP- und LSP-Konfigurationen ersetzt werden, und ein geklontes Repository darf sie nicht bereitstellen. Vor v2.1.207 wurden auch Projekt- und lokale Einstellungen gelesen.

854 

827<h4 id="extraknownmarketplaces">855<h4 id="extraknownmarketplaces">

828 `extraKnownMarketplaces`856 `extraKnownMarketplaces`

829</h4>857</h4>

troubleshooting.md +18 −14

Details

10 10 

11| Symptom | Gehen Sie zu |11| Symptom | Gehen Sie zu |

12| :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |12| :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |

13| `command not found`, Installation schlägt fehl, PATH-Probleme, `EACCES`, TLS-Fehler | [Fehlerbehebung bei Installation und Anmeldung](/de/troubleshoot-install) |13| `command not found`, Installation schlägt fehl, PATH-Probleme, `EACCES`, TLS-Fehler | [Fehlerbehebung bei Installation und Anmeldung](/docs/de/troubleshoot-install) |

14| Update oder Installation schlägt fehl mit `The connection dropped while downloading the update` oder `aborted` | [Fehlerreferenz](/de/errors#the-connection-dropped-while-downloading-the-update) |14| Update oder Installation schlägt fehl mit `The connection dropped while downloading the update` oder `aborted` | [Fehlerreferenz](/docs/de/errors#the-connection-dropped-while-downloading-the-update) |

15| Anmeldeschleifen, OAuth-Fehler, `403 Forbidden`, „Organisation deaktiviert", Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry-Anmeldedaten | [Fehlerbehebung bei Installation und Anmeldung](/de/troubleshoot-install#login-and-authentication) |15| Anmeldeschleifen, OAuth-Fehler, `403 Forbidden`, „Organisation deaktiviert", Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry-Anmeldedaten | [Fehlerbehebung bei Installation und Anmeldung](/docs/de/troubleshoot-install#login-and-authentication) |

16| Einstellungen werden nicht angewendet, Hooks werden nicht ausgelöst, MCP-Server werden nicht geladen | [Debuggen Sie Ihre Konfiguration](/de/debug-your-config) |16| Einstellungen werden nicht angewendet, Hooks werden nicht ausgelöst, MCP-Server werden nicht geladen | [Debuggen Sie Ihre Konfiguration](/docs/de/debug-your-config) |

17| `API Error: 5xx`, `529 Overloaded`, `429`, Request-Validierungsfehler | [Fehlerreferenz](/de/errors) |17| `API Error: 5xx`, `529 Overloaded`, `429`, Request-Validierungsfehler | [Fehlerreferenz](/docs/de/errors) |

18| `model not found` oder `you may not have access to it` | [Fehlerreferenz](/de/errors#theres-an-issue-with-the-selected-model) |18| `model not found` oder `you may not have access to it` | [Fehlerreferenz](/docs/de/errors#theres-an-issue-with-the-selected-model) |

19| VS Code-Erweiterung verbindet sich nicht oder erkennt Claude nicht | [VS Code-Integration](/de/vs-code#fix-common-issues) |19| VS Code-Erweiterung verbindet sich nicht oder erkennt Claude nicht | [VS Code-Integration](/docs/de/vs-code#fix-common-issues) |

20| JetBrains-Plugin oder IDE wird nicht erkannt | [JetBrains-Integration](/de/jetbrains#troubleshooting) |20| JetBrains-Plugin oder IDE wird nicht erkannt | [JetBrains-Integration](/docs/de/jetbrains#troubleshooting) |

21| Hohe CPU oder Speicher, langsame Antworten, Hänger, Suche findet Dateien nicht | [Leistung und Stabilität](#performance-and-stability) unten |21| Hohe CPU oder Speicher, langsame Antworten, Hänger, Suche findet Dateien nicht | [Leistung und Stabilität](#performance-and-stability) unten |

22 22 

23Wenn Sie sich nicht sicher sind, welcher Fall zutrifft, führen Sie `/doctor` in Claude Code aus, um eine automatisierte Überprüfung Ihrer Installation, Einstellungen, Erweiterungen und Kontextnutzung durchzuführen; es schlägt Korrektionen vor, die es nach Ihrer Bestätigung anwenden kann. Wenn `claude` überhaupt nicht startet, führen Sie stattdessen `claude doctor` aus Ihrer Shell aus. Führen Sie `/mcp` aus, um den MCP-Server-Status zu überprüfen.23Wenn Sie sich nicht sicher sind, welcher Fall zutrifft, führen Sie `/doctor` in Claude Code aus, um eine automatisierte Überprüfung Ihrer Installation, Einstellungen, Erweiterungen und Kontextnutzung durchzuführen; es schlägt Korrektionen vor, die es nach Ihrer Bestätigung anwenden kann. Wenn `claude` überhaupt nicht startet, führen Sie stattdessen `claude doctor` aus Ihrer Shell aus. Führen Sie `/mcp` aus, um den MCP-Server-Status zu überprüfen.


371. Verwenden Sie `/compact` regelmäßig, um die Kontextgröße zu reduzieren371. Verwenden Sie `/compact` regelmäßig, um die Kontextgröße zu reduzieren

382. Schließen und starten Sie Claude Code zwischen großen Aufgaben neu382. Schließen und starten Sie Claude Code zwischen großen Aufgaben neu

393. Erwägen Sie, große Build-Verzeichnisse zu Ihrer `.gitignore`-Datei hinzuzufügen393. Erwägen Sie, große Build-Verzeichnisse zu Ihrer `.gitignore`-Datei hinzuzufügen

404. Starten Sie mit [`claude --safe-mode`](/de/cli-reference#cli-flags) neu, um zu überprüfen, ob ein Plugin, MCP-Server oder Hook die Quelle ist. Dies deaktiviert alle Anpassungen für die Sitzung; wenn die Nutzung sinkt, siehe [Konfiguration debuggen](/de/debug-your-config#test-against-a-clean-configuration), um herauszufinden, welche404. Starten Sie mit [`claude --safe-mode`](/docs/de/cli-reference#cli-flags) neu, um zu überprüfen, ob ein Plugin, MCP-Server oder Hook die Quelle ist. Dies deaktiviert alle Anpassungen für die Sitzung; wenn die Nutzung sinkt, siehe [Konfiguration debuggen](/docs/de/debug-your-config#test-against-a-clean-configuration), um herauszufinden, welche

41 41 

42Wenn die Speichernutzung nach diesen Schritten hoch bleibt, führen Sie `/heapdump` aus, um einen JavaScript-Heap-Snapshot und eine Speicheraufschlüsselung auf `~/Desktop` zu schreiben. Auf Linux ohne Desktop-Ordner werden die Dateien in Ihr Home-Verzeichnis geschrieben.42Wenn die Speichernutzung nach diesen Schritten hoch bleibt, führen Sie `/heapdump` aus, um einen JavaScript-Heap-Snapshot und eine Speicheraufschlüsselung auf `~/Desktop` zu schreiben. Auf Linux ohne Desktop-Ordner werden die Dateien in Ihr Home-Verzeichnis geschrieben.

43 43 

44Die Aufschlüsselung zeigt Resident Set Size, JS Heap, Array Buffers und nicht berechneten nativen Speicher, was hilft zu identifizieren, ob das Wachstum in JavaScript-Objekten oder in nativem Code liegt. Um Retainer zu überprüfen, öffnen Sie die `.heapsnapshot`-Datei in Chrome DevTools unter Memory → Load. Fügen Sie beide Dateien bei, wenn Sie ein Speicherproblem auf [GitHub](https://github.com/anthropics/claude-code/issues) melden.44Die Aufschlüsselung zeigt die Resident Set Size, JS Heap, Array Buffer und nicht berechneten nativen Speicher, was hilft zu identifizieren, ob das Wachstum in JavaScript-Objekten oder in nativem Code liegt. Um Retainer zu überprüfen, öffnen Sie die `.heapsnapshot`-Datei in Chrome DevTools unter Memory → Load; die Aufschlüsselung ist die Datei, die auf `-diagnostics.json` endet.

45 

46<Warning>

47 Die `.heapsnapshot`-Datei enthält jeden String im Prozess. Fügen Sie sie nicht an ein öffentliches Issue an und teilen Sie sie nicht. Fügen Sie nur die `-diagnostics.json`-Datei an, wenn Sie ein Speicherproblem auf [GitHub](https://github.com/anthropics/claude-code/issues) melden. Diese Datei enthält Speicherstatistiken und keinen Gesprächsinhalt oder Anmeldedaten.

48</Warning>

45 49 

46<h3 id="large-tables-are-cut-off-in-the-terminal">50<h3 id="large-tables-are-cut-off-in-the-terminal">

47 Große Tabellen werden im Terminal abgeschnitten51 Große Tabellen werden im Terminal abgeschnitten

48</h3>52</h3>

49 53 

50Eine Markdown-Tabelle mit mehr als 200 Zeilen rendert ihre ersten 200 Zeilen gefolgt von einer `… N more rows not shown`-Zeile. Nur die Anzeige ist begrenzt: Die vollständige Tabelle bleibt in der Konversation, und [`/copy`](/de/commands) kopiert jede Zeile. Für eine Tabelle, die zu groß ist, um sie im Terminal zu lesen, bitten Sie Claude, sie stattdessen in eine Datei zu schreiben. Vor v2.1.208 renderte Claude Code jede Zeile, daher konnte das Fortsetzen einer Sitzung, die eine sehr große Tabelle enthielt, beim erneuten Rendern steckenbleiben.54Eine Markdown-Tabelle mit mehr als 200 Zeilen rendert ihre ersten 200 Zeilen gefolgt von einer `… N more rows not shown`-Zeile. Nur die Anzeige ist begrenzt: Die vollständige Tabelle bleibt in der Konversation, und [`/copy`](/docs/de/commands) kopiert jede Zeile. Für eine Tabelle, die zu groß ist, um sie im Terminal zu lesen, bitten Sie Claude, sie stattdessen in eine Datei zu schreiben. Vor v2.1.208 renderte Claude Code jede Zeile, daher konnte das Fortsetzen einer Sitzung, die eine sehr große Tabelle enthielt, beim erneuten Rendern steckenbleiben.

51 55 

52<h3 id="auto-compaction-stops-with-a-thrashing-error">56<h3 id="auto-compaction-stops-with-a-thrashing-error">

53 Auto-Kompaktierung stoppt mit einem Thrashing-Fehler57 Auto-Kompaktierung stoppt mit einem Thrashing-Fehler


59 63 

601. Bitten Sie Claude, die übergroße Datei in kleineren Chunks zu lesen, z. B. einen bestimmten Zeilenbereich oder eine Funktion, statt der ganzen Datei641. Bitten Sie Claude, die übergroße Datei in kleineren Chunks zu lesen, z. B. einen bestimmten Zeilenbereich oder eine Funktion, statt der ganzen Datei

612. Führen Sie `/compact` mit einem Fokus aus, der die große Ausgabe löscht, z. B. `/compact keep only the plan and the diff`652. Führen Sie `/compact` mit einem Fokus aus, der die große Ausgabe löscht, z. B. `/compact keep only the plan and the diff`

623. Verschieben Sie die Arbeit mit großen Dateien zu einem [Subagenten](/de/sub-agents), damit er in einem separaten Kontextfenster ausgeführt wird663. Verschieben Sie die Arbeit mit großen Dateien zu einem [Subagenten](/docs/de/sub-agents), damit er in einem separaten Kontextfenster ausgeführt wird

634. Führen Sie `/clear` aus, wenn das frühere Gespräch nicht mehr benötigt wird674. Führen Sie `/clear` aus, wenn das frühere Gespräch nicht mehr benötigt wird

64 68 

65<h3 id="command-hangs-or-freezes">69<h3 id="command-hangs-or-freezes">


77 Verzerrter oder beschädigter Text im integrierten Terminal eines Editors81 Verzerrter oder beschädigter Text im integrierten Terminal eines Editors

78</h3>82</h3>

79 83 

80Wenn Zeichen als Kästchen, Verschmierungen oder falsche Glyphen angezeigt werden, wenn Sie Claude Code im integrierten Terminal von VS Code, Cursor oder Devin Desktop ausführen, ist der GPU-Renderer des Terminals wahrscheinlich die Ursache. Führen Sie `/terminal-setup` in Claude Code aus, um `terminal.integrated.gpuAcceleration` auf `"off"` zu setzen, oder setzen Sie es manuell in Ihren Editor-Einstellungen und laden Sie das Fenster neu. Siehe [Terminalkonfiguration](/de/terminal-config) für die anderen Einstellungen, die `/terminal-setup` schreibt.84Wenn Zeichen als Kästchen, Verschmierungen oder falsche Glyphen angezeigt werden, wenn Sie Claude Code im integrierten Terminal von VS Code, Cursor oder Devin Desktop ausführen, ist der GPU-Renderer des Terminals wahrscheinlich die Ursache. Führen Sie `/terminal-setup` in Claude Code aus, um `terminal.integrated.gpuAcceleration` auf `"off"` zu setzen, oder setzen Sie es manuell in Ihren Editor-Einstellungen und laden Sie das Fenster neu. Siehe [Terminalkonfiguration](/docs/de/terminal-config) für die anderen Einstellungen, die `/terminal-setup` schreibt.

81 85 

82<h3 id="search-and-discovery-issues">86<h3 id="search-and-discovery-issues">

83 Such- und Erkennungsprobleme87 Such- und Erkennungsprobleme


117 </Tab>121 </Tab>

118</Tabs>122</Tabs>

119 123 

120Setzen Sie dann `USE_BUILTIN_RIPGREP=0` in Ihrer [Umgebung](/de/env-vars).124Setzen Sie dann `USE_BUILTIN_RIPGREP=0` in Ihrer [Umgebung](/docs/de/env-vars).

121 125 

122<h3 id="slow-or-incomplete-search-results-on-wsl">126<h3 id="slow-or-incomplete-search-results-on-wsl">

123 Langsame oder unvollständige Suchergebnisse auf WSL127 Langsame oder unvollständige Suchergebnisse auf WSL