SpyBara
Go Premium

Documentation 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

119 files changed +15,967 −1,215. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +10 −3

Details

96Verwaltete Einstellungen können Tools sperren, Sandbox-Ausführung, MCP-Server und Plugin-Quellen einschränken und steuern, welche Hooks ausgeführt werden. Jede Zeile ist eine Kontrollfläche mit den Einstellungsschlüsseln, die sie antreiben.96Verwaltete Einstellungen können Tools sperren, Sandbox-Ausführung, MCP-Server und Plugin-Quellen einschränken und steuern, welche Hooks ausgeführt werden. Jede Zeile ist eine Kontrollfläche mit den Einstellungsschlüsseln, die sie antreiben.

97 97 

98| Kontrolle | Was es tut | Wichtige Einstellungen |98| Kontrolle | Was es tut | Wichtige Einstellungen |

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

100| [Berechtigungsregeln](/docs/de/permissions) | Bestimmte Tools und Befehle zulassen, fragen oder ablehnen | `permissions.allow`, `permissions.deny` |100| [Berechtigungsregeln](/docs/de/permissions) | Bestimmte Tools und Befehle zulassen, fragen oder ablehnen | `permissions.allow`, `permissions.deny` |

101| [Berechtigungssperre](/docs/de/permissions#managed-only-settings) | Verwaltete Einstellungen zur [einzigen Quelle von Berechtigungsregeln](/docs/de/settings-reference#allowmanagedpermissionrulesonly) machen. Deaktivieren Sie `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |101| [Berechtigungssperre](/docs/de/permissions#managed-only-settings) | Verwaltete Einstellungen zur [einzigen Quelle von Berechtigungsregeln](/docs/de/settings-reference#allowmanagedpermissionrulesonly) machen. Deaktivieren Sie `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

102| [Startberechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in) | Wählen Sie den Berechtigungsmodus, in dem die Terminal-Sitzungen Ihrer Entwickler starten, anstelle des integrierten Startberechtigungsmodus, oder entfernen Sie den Auto-Modus. Die VS Code-Erweiterung liest einen `defaultMode`, den Sie nur in Pro-, Max- und Team-Plänen festlegen; [Berechtigungsmodi wechseln](/docs/de/permission-modes#switch-permission-modes) listet auf, was die Erweiterung liest | `permissions.defaultMode`, `permissions.disableAutoMode` |102| [Startberechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in) | Wählen Sie den Berechtigungsmodus, in dem die Terminal-Sitzungen Ihrer Entwickler starten, anstelle des integrierten Startberechtigungsmodus, oder entfernen Sie den Auto-Modus. Die VS Code-Erweiterung liest einen `defaultMode`, den Sie nur in Pro-, Max- und Team-Plänen festlegen; [Berechtigungsmodi wechseln](/docs/de/permission-modes#switch-permission-modes) listet auf, was die Erweiterung liest | `permissions.defaultMode`, `permissions.disableAutoMode` |

103| [Sandboxing](/docs/de/sandboxing) | Isolierung auf Betriebssystemebene des Dateisystems und Netzwerks mit Domain-Allowlists | `sandbox.enabled`, `sandbox.network.allowedDomains` |103| [Sandboxing](/docs/de/sandboxing) | Isolierung auf Betriebssystemebene des Dateisystems und Netzwerks mit Domain-Allowlists | `sandbox.enabled`, `sandbox.network.allowedDomains` |

104| [Verwaltete Richtlinie CLAUDE.md](/docs/de/memory#deploy-organization-wide-claude-md) | Organisationsweite Anweisungen, die in jeder Sitzung geladen werden, können nicht ausgeschlossen werden | Datei im verwalteten Richtlinienpfad |104| [Verwaltete Richtlinie CLAUDE.md](/docs/de/memory#deploy-organization-wide-claude-md) | Organisationsweite Anweisungen, die in jeder Sitzung geladen werden, können nicht ausgeschlossen werden | Datei im verwalteten Richtlinienpfad |

105| [MCP-Server-Kontrolle](/docs/de/managed-mcp) | Einschränken, welche MCP-Server Benutzer hinzufügen oder verbinden können, oder einen festen Satz bereitstellen | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly` oder eine bereitgestellte `managed-mcp.json`-Datei |105| [MCP-Server-Kontrolle](/docs/de/managed-mcp) | Einschränken, welche MCP-Server Benutzer hinzufügen oder verbinden können, einen festen Satz bereitstellen oder Remote-Server neben ihren eigenen für jeden Benutzer bereitstellen | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers` oder eine bereitgestellte `managed-mcp.json`-Datei |

106| [Plugin-Marketplace-Kontrolle](/docs/de/plugin-marketplaces#managed-marketplace-restrictions) | Einschränken, von welchen Marketplace-Quellen Benutzer hinzufügen und installieren können, CLI-Flags ablehnen, die Plugins, Agents und MCP-Server für einen einzelnen Lauf sideloaden, [`command`-Plugin-Quellen](/docs/de/plugin-marketplaces#command-sources) blockieren und Allowlisten, welche Plugins von Marketplaces vorgeschlagen werden können | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |106| [Plugin-Marketplace-Kontrolle](/docs/de/plugin-marketplaces#managed-marketplace-restrictions) | Einschränken, von welchen Marketplace-Quellen Benutzer hinzufügen und installieren können, CLI-Flags ablehnen, die Plugins, Agents und MCP-Server für einen einzelnen Lauf sideloaden, [`command`-Plugin-Quellen](/docs/de/plugin-marketplaces#command-sources) blockieren und Allowlisten, welche Plugins von Marketplaces vorgeschlagen werden können | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

107| [Anpassungssperre](/docs/de/settings-reference#strictpluginonlycustomization) | Blockieren Sie Skills, Agents, Hooks und MCP-Server aus Benutzer- und Projektquellen, damit sie nur aus Plugins oder verwalteten Einstellungen stammen können | `strictPluginOnlyCustomization` |107| [Anpassungssperre](/docs/de/settings-reference#strictpluginonlycustomization) | Blockieren Sie Skills, Agents, Hooks und MCP-Server aus Benutzer- und Projektquellen, damit sie nur aus Plugins oder verwalteten Einstellungen stammen können | `strictPluginOnlyCustomization` |

108| [Hook-Einschränkungen](/docs/de/settings-reference#allowmanagedhooksonly) | Einschränken, welche Hooks ausgeführt werden, und HTTP-Hook-URLs einschränken; siehe [was unter `allowManagedHooksOnly` ausgeführt wird](/docs/de/settings-reference#what-runs-under-allowmanagedhooksonly) für die vollständige Effektliste | `allowManagedHooksOnly`, `allowedHttpHookUrls` |108| [Hook-Einschränkungen](/docs/de/settings-reference#allowmanagedhooksonly) | Einschränken, welche Hooks ausgeführt werden, und HTTP-Hook-URLs einschränken; siehe [was unter `allowManagedHooksOnly` ausgeführt wird](/docs/de/settings-reference#what-runs-under-allowmanagedhooksonly) für die vollständige Effektliste | `allowManagedHooksOnly`, `allowedHttpHookUrls` |


110| [Agent-Ansicht deaktivieren](/docs/de/agent-view#how-background-sessions-are-hosted) | Schalten Sie `claude agents`, `--bg`, `/background` und den On-Demand-Supervisor aus | `disableAgentView` |110| [Agent-Ansicht deaktivieren](/docs/de/agent-view#how-background-sessions-are-hosted) | Schalten Sie `claude agents`, `--bg`, `/background` und den On-Demand-Supervisor aus | `disableAgentView` |

111| [Corporate Launcher konfigurieren](/docs/de/corporate-launcher) | Präfix des [Background-Agent-Supervisors](/docs/de/agent-view#how-background-sessions-are-hosted), seiner Worker und der [anderen abgedeckten Background-Prozesse](/docs/de/corporate-launcher#what-the-launcher-covers) mit einem erforderlichen Corporate Launcher, anstatt die Agent-Ansicht auszuschalten | `processWrapper` |111| [Corporate Launcher konfigurieren](/docs/de/corporate-launcher) | Präfix des [Background-Agent-Supervisors](/docs/de/agent-view#how-background-sessions-are-hosted), seiner Worker und der [anderen abgedeckten Background-Prozesse](/docs/de/corporate-launcher#what-the-launcher-covers) mit einem erforderlichen Corporate Launcher, anstatt die Agent-Ansicht auszuschalten | `processWrapper` |

112| [Modelleinschränkungen](/docs/de/model-config#restrict-model-selection) | `availableModels` filtert, welche Modelle in der Auswahl angezeigt werden. Das Hinzufügen von `enforceAvailableModels` beschränkt auch das automatisch ausgewählte Standardmodell. Siehe [Oberflächenabdeckung](/docs/de/model-config#surface-coverage) für die Erreichbarkeit dieser Einstellung in CLI, Web und IDE | `availableModels`, `enforceAvailableModels` |112| [Modelleinschränkungen](/docs/de/model-config#restrict-model-selection) | `availableModels` filtert, welche Modelle in der Auswahl angezeigt werden. Das Hinzufügen von `enforceAvailableModels` beschränkt auch das automatisch ausgewählte Standardmodell. Siehe [Oberflächenabdeckung](/docs/de/model-config#surface-coverage) für die Erreichbarkeit dieser Einstellung in CLI, Web und IDE | `availableModels`, `enforceAvailableModels` |

113| [Aufwandsobergrenze](/docs/de/settings-reference#maxeffortlevel) | Begrenzen Sie die [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) für jedes Modell oder pro Modell bei jedem Anbieter | `maxEffortLevel` |

113| [Versionsuntergrenze](/docs/de/settings-reference#minimumversion) | Verhindern Sie, dass Auto-Update unter ein organisationsweites Minimum installiert wird | `minimumVersion` |114| [Versionsuntergrenze](/docs/de/settings-reference#minimumversion) | Verhindern Sie, dass Auto-Update unter ein organisationsweites Minimum installiert wird | `minimumVersion` |

114| [Erforderlicher Versionsbereich](/docs/de/settings-reference#requiredminimumversion) | Weigern Sie sich, überhaupt zu starten, wenn die laufende Version außerhalb eines von der Organisation genehmigten Bereichs liegt. Stärker als `minimumVersion`, das nur Downgrades blockiert | `requiredMinimumVersion`, `requiredMaximumVersion` |115| [Erforderlicher Versionsbereich](/docs/de/settings-reference#requiredminimumversion) | Weigern Sie sich, überhaupt zu starten, wenn die laufende Version außerhalb eines von der Organisation genehmigten Bereichs liegt. Stärker als `minimumVersion`, das nur Downgrades blockiert | `requiredMinimumVersion`, `requiredMaximumVersion` |

115| [Telemetrie-Opt-out](/docs/de/data-usage#telemetry-services) | Schalten Sie Anthropic-gebundene Nutzungsmetriken, Fehlerberichte und Umfragen auf jedem Gerät aus | `env` mit `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` auf `1` gesetzt; der verlinkte Abschnitt listet die Variablen pro Kategorie auf |116| [Telemetrie-Opt-out](/docs/de/data-usage#telemetry-services) | Schalten Sie Anthropic-gebundene Nutzungsmetriken, Fehlerberichte und Umfragen auf jedem Gerät aus | `env` mit `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` auf `1` gesetzt; der verlinkte Abschnitt listet die Variablen pro Kategorie auf |

116 117 

117Organisationen, deren Mitglieder sich über claude.ai oder die Anthropic API authentifizieren, können Modelle auch ohne Bereitstellung von Einstellungen steuern: [Organisationsmodelleinschränkungen](/docs/de/model-config#organization-model-restrictions) deaktivieren einzelne Modelle, ein [Organisationsstandardmodell](/docs/de/model-config#organization-default-model) legt fest, mit welchem Modell neue Sitzungen beginnen, und [Organisationsaufwandsgrenzen](/docs/de/model-config#organization-effort-limits) begrenzen Aufwandsstufen pro Rolle. Alle drei Kontrollen erfordern einen Claude Enterprise-Plan. Modelleinschränkungen und Aufwandsgrenzen werden serverseitig durchgesetzt; das Standardmodell ist ein Ausgangspunkt, den Benutzer ändern können, es sei denn, die Organisation erzwingt es. Die Durchsetzung ist für eine begrenzte Anzahl von Organisationen verfügbar; fragen Sie Ihr Anthropic-Kontoteam nach der Verfügbarkeit. Keine dieser Kontrollen erreichen Sitzungen auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder [Claude Platform on AWS](/docs/de/claude-platform-on-aws); verwenden Sie auf diesen Anbietern `availableModels` oben für Einschränkungen und den `model`-Schlüssel in verwalteten Einstellungen für einen Standard.118Wenn Ihre Mitglieder sich über claude.ai oder die Anthropic API anmelden und Sie einen Claude Enterprise-Plan haben, können Sie Modelle auch von den Admin-Einstellungen Ihrer Organisation aus steuern, ohne etwas bereitzustellen:

119 

120* [Organisationsmodelleinschränkungen](/docs/de/model-config#organization-model-restrictions): Deaktivieren Sie einzelne Modelle. Serverseitig durchgesetzt.

121* [Organisationsstandardmodell](/docs/de/model-config#organization-default-model): Legen Sie fest, mit welchem Modell neue Sitzungen beginnen. Benutzer können es ändern, es sei denn, Ihre Organisation erzwingt den Standard, der für eine begrenzte Anzahl von Organisationen verfügbar ist; fragen Sie Ihr Anthropic-Kontoteam.

122* [Organisationsaufwandsgrenzen](/docs/de/model-config#organization-effort-limits): Begrenzen Sie Aufwandsstufen pro Rolle. Serverseitig durchgesetzt.

123 

124Keine dieser Kontrollen erreichen Sitzungen auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder [Claude Platform on AWS](/docs/de/claude-platform-on-aws). Verwenden Sie auf diesen Anbietern stattdessen verwaltete Einstellungen: `availableModels` für Einschränkungen, `model` für einen Standard und [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel) für eine Aufwandsobergrenze.

118 125 

119[Claude Code im Web](/docs/de/claude-code-on-the-web) hat seine eigene Admin-Oberfläche: Auf der Seite „Cloud-Umgebungen" in den Admin-Einstellungen erstellen Besitzer [organisationsweite gemeinsame Umgebungen](/docs/de/cloud-environments#organization-shared-environments), die die [Netzwerkzugriffsstufe](/docs/de/cloud-environments#network-access), Umgebungsvariablen und das Setup-Skript für Cloud-Sitzungen der Mitglieder festlegen. Besitzer wählen die Standardumgebung der Organisation separat unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).126[Claude Code im Web](/docs/de/claude-code-on-the-web) hat seine eigene Admin-Oberfläche: Auf der Seite „Cloud-Umgebungen" in den Admin-Einstellungen erstellen Besitzer [organisationsweite gemeinsame Umgebungen](/docs/de/cloud-environments#organization-shared-environments), die die [Netzwerkzugriffsstufe](/docs/de/cloud-environments#network-access), Umgebungsvariablen und das Setup-Skript für Cloud-Sitzungen der Mitglieder festlegen. Besitzer wählen die Standardumgebung der Organisation separat unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

120 127 

advisor.md +17 −6

Details

48/advisor opus48/advisor opus

49```49```

50 50 

51Der Befehl bestätigt mit `Advisor set to` gefolgt vom Namen des Advisor-Modells. Ihre Auswahl wird in `advisorModel` in Ihren Benutzereinstellungen gespeichert und bleibt über Sitzungen hinweg erhalten.51Der Befehl bestätigt mit `Advisor set to` gefolgt vom Namen des Advisor-Modells. Ihre Auswahl wird in `advisorModel` in Ihren Benutzereinstellungen gespeichert und bleibt über Sitzungen hinweg erhalten, außer in den Fällen, die der [`advisorModel` Eintrag](/docs/de/settings-reference#advisormodel) als nur für die aktuelle Sitzung geltend auflistet.

52 

53Der Befehl funktioniert auch dort, wo es keine Terminal-Auswahl gibt: im [nicht-interaktiven Modus](/docs/de/headless) mit `-p`, im Agent SDK, in der Desktop-App und über [Remote Control](/docs/de/remote-control). Dies erfordert Claude Code v2.1.260 oder später. Auf diesen Oberflächen:

54 

55* Führen Sie `/advisor` ohne Argument aus, um das aktuelle Advisor-Modell und die Aliase, die es akzeptiert, auszudrucken.

56* Führen Sie `/advisor` mit einem Modell aus, wie `/advisor opus`, um es festzulegen.

57* Führen Sie `/advisor off` aus, um es auszuschalten.

52 58 

53Claude Code ruft einen gespeicherten Advisor nicht auf, den die [`availableModels`](/docs/de/model-config#restrict-model-selection) Allowlist Ihrer Organisation ausschließt. Um den Advisor zu verwenden, wählen Sie ein zulässiges Modell mit `/advisor`. Claude Code speichert trotzdem einen Advisor, den Ihr aktuelles Hauptmodell nicht unterstützt. Dieser Advisor wird aktiviert, nachdem Sie zu einem [kompatiblen Hauptmodell](#choose-an-advisor-model) mit [`/model`](/docs/de/model-config#setting-your-model) wechseln.59Claude Code ruft einen gespeicherten Advisor nicht auf, den die [`availableModels`](/docs/de/model-config#restrict-model-selection) Allowlist Ihrer Organisation ausschließt. Um den Advisor zu verwenden, wählen Sie ein zulässiges Modell mit `/advisor`. Claude Code speichert trotzdem einen Advisor, den Ihr aktuelles Hauptmodell nicht unterstützt. Dieser Advisor wird aktiviert, nachdem Sie zu einem [kompatiblen Hauptmodell](#choose-an-advisor-model) mit [`/model`](/docs/de/model-config#setting-your-model) wechseln.

54 60 


92Der Advisor muss mindestens so leistungsfähig sein wie das Hauptmodell. Die akzeptierten Advisors für jedes Hauptmodell sind:98Der Advisor muss mindestens so leistungsfähig sein wie das Hauptmodell. Die akzeptierten Advisors für jedes Hauptmodell sind:

93 99 

94| Hauptmodell | Akzeptierte Advisors | Hinweise |100| Hauptmodell | Akzeptierte Advisors | Hinweise |

95| ---------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |101| ---------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

96| Haiku 4.5 | Fable, Opus, Sonnet | Haiku kann den Advisor aufrufen, kann aber nicht als einer fungieren |102| Haiku 4.5 | Fable, Opus, Sonnet | Haiku kann den Advisor aufrufen, kann aber nicht als einer fungieren |

97| Sonnet 4.6 | Fable, Opus, Sonnet | |103| Sonnet 4.6 | Fable, Opus, Sonnet | |

98| Sonnet 5 | Fable, Opus, Sonnet 5 | Ein Sonnet 4.6 Advisor wird abgelehnt |104| Sonnet 5 | Fable, Opus, Sonnet 5 | Ein Sonnet 4.6 Advisor wird abgelehnt |

99| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 und Opus 4.6 werden als gleich leistungsfähig eingestuft, daher akzeptiert ein Opus 4.6 Hauptmodell einen Sonnet 5 Advisor |105| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 und Opus 4.6 werden als gleich leistungsfähig eingestuft, daher akzeptiert ein Opus 4.6 Hauptmodell einen Sonnet 5 Advisor |

100| Opus 4.7 oder später | Fable, und Opus 4.7 oder später | Opus 4.7 und spätere Opus-Modelle werden als gleich leistungsfähig eingestuft, daher akzeptiert jedes das andere als Advisor. Ein Opus 4.7 Hauptmodell mit einem Opus 4.6 oder Sonnet 5 Advisor wird abgelehnt |106| Opus 4.7 oder später | Fable, und Opus 4.7 oder später | Opus 4.7 und spätere Opus-Modelle werden als gleich leistungsfähig eingestuft, daher akzeptiert jedes das andere als Advisor. Ein Opus 4.7 Hauptmodell mit einem Opus 4.6 oder Sonnet 5 Advisor wird abgelehnt |

101| Fable 5.1 oder Fable 5 | Fable 5.1, oder die gleiche Fable-Version | Ein Opus oder Sonnet Advisor wird abgelehnt, und ebenso ein Fable 5 Advisor für ein Fable 5.1 Hauptmodell |107| Fable 5.1 oder Fable 5 | Fable 5.1 oder Fable 5 | Ein Opus oder Sonnet Advisor wird abgelehnt |

102 108 

103Fable 5.1 erfordert Claude Code v2.1.255 oder später und Fable 5 erfordert v2.1.170 oder später, plus [Fable-Zugriff](/docs/de/model-config#work-with-fable).109Fable 5.1 erfordert Claude Code v2.1.257 oder später. Beide Fable-Modelle erfordern [Fable-Zugriff](/docs/de/model-config#work-with-fable).

104 110 

105Legen Sie den Advisor als `fable`, `opus` oder `sonnet` fest. Diese Aliase werden in die in Claude Code integrierte Standardversion für jede Modellfamilie aufgelöst, die sich mit neuen Claude Code-Versionen weiterentwickelt. Sie können auch eine vollständige Modell-ID wie `claude-opus-5` übergeben.111Legen Sie den Advisor als `fable`, `opus` oder `sonnet` fest. Diese Aliase werden in die in Claude Code integrierte Standardversion für jede Modellfamilie aufgelöst, die sich mit neuen Claude Code-Versionen weiterentwickelt. Sie können auch eine vollständige Modell-ID wie `claude-opus-5` übergeben.

106 112 


161 Kosten167 Kosten

162</h2>168</h2>

163 169 

164Wenn Claude den Advisor aufruft, liest das Advisor-Modell das Gespräch, daher verbraucht jeder Aufruf Token zu den Sätzen des Advisor-Modells zusätzlich zu Ihrer Hauptmodellnutzung. Bei API-Abrechnung werden Advisor-Token zu den Input- und Output-Sätzen des Advisor-Modells berechnet. Bei Abonnementplänen zählt die Advisor-Nutzung zu den Nutzungsgrenzen Ihres Plans, mit Ausnahme, dass ein Fable-Advisor zu [Nutzungsguthaben](/docs/de/model-config#fable-and-usage-credits) bei Plänen abgerechnet wird, bei denen die Fable-Nutzung dies tut. Wenn Ihr Konto die Zustimmung zu Nutzungsguthaben erfordert, wird ein Fable-Advisor vor der Zustimmung nicht abgerechnet, da Claude Code [die Auswahl nicht anwendet](#fable-advisor-and-usage-credits), bis Sie dies tun.170Wenn Claude den Advisor aufruft, liest das Advisor-Modell das Gespräch, daher verbraucht jeder Aufruf Token zu den Sätzen des Advisor-Modells zusätzlich zu Ihrer Hauptmodellnutzung. Wie diese Advisor-Token abgerechnet werden, hängt davon ab, wie Sie bezahlen:

171 

172* **API-Abrechnung**: Sie zahlen die Input- und Output-Sätze des Advisor-Modells für Advisor-Token

173* **Abonnementpläne**: Die Advisor-Nutzung zählt zu den Nutzungsgrenzen Ihres Plans, mit Ausnahme, dass ein Fable-Advisor zu [Nutzungsguthaben](/docs/de/model-config#fable-and-usage-credits) bei Plänen abgerechnet wird, bei denen die Fable-Nutzung dies tut

174 

175Wenn Ihr Konto die Zustimmung zu Nutzungsguthaben erfordert, wird ein Fable-Advisor vor der Zustimmung nicht abgerechnet, da Claude Code [die Auswahl nicht anwendet](#fable-advisor-and-usage-credits), bis Sie dies tun.

165 176 

166Claude ruft den Advisor an Entscheidungspunkten auf, nicht bei jedem Schritt, daher kostet die Kopplung eines schnelleren Hauptmodells mit einem stärkeren Advisor typischerweise weniger als das durchgehende Ausführen des stärkeren Modells. Die Advisor-Nutzung zählt zu den Sitzungssummen, die von [`/usage`](/docs/de/costs#track-your-costs) angezeigt werden.177Claude ruft den Advisor an Entscheidungspunkten auf, nicht bei jedem Schritt, daher kostet die Kopplung eines schnelleren Hauptmodells mit einem stärkeren Advisor typischerweise weniger als das durchgehende Ausführen des stärkeren Modells. Die Advisor-Nutzung zählt zu den Sitzungssummen, die von [`/usage`](/docs/de/costs#track-your-costs) angezeigt werden.

167 178 


189 Schalten Sie den Advisor aus200 Schalten Sie den Advisor aus

190</h2>201</h2>

191 202 

192Um die Verwendung des Advisors zu beenden und Ihren gespeicherten `advisorModel` zu löschen, führen Sie `/advisor off` aus oder wählen Sie **No advisor** in der `/advisor` Auswahl:203Um die Verwendung des Advisors zu beenden, führen Sie `/advisor off` aus oder wählen Sie **No advisor** in der `/advisor` Auswahl:

193 204 

194```205```

195/advisor off206/advisor off

Details

23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/agent-loop-diagram-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=afe723c52a324d3c61fa72fb02432ab6" className="hidden dark:block" alt="Diagramm der Agent-Schleife: Ihr Prompt wird in die agentengesteuerte Schleife eingegeben, wo Claude bewertet und entweder Werkzeugaufrufe anfordert, deren Ergebnisse in eine weitere Bewertung zurückfließen, oder die endgültige Antwort zurückgibt" width="720" height="212" data-path="images/agent-loop-diagram-dark.svg" />23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/agent-loop-diagram-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=afe723c52a324d3c61fa72fb02432ab6" className="hidden dark:block" alt="Diagramm der Agent-Schleife: Ihr Prompt wird in die agentengesteuerte Schleife eingegeben, wo Claude bewertet und entweder Werkzeugaufrufe anfordert, deren Ergebnisse in eine weitere Bewertung zurückfließen, oder die endgültige Antwort zurückgibt" width="720" height="212" data-path="images/agent-loop-diagram-dark.svg" />

24 24 

251. **Prompt empfangen.** Claude empfängt Ihren Prompt zusammen mit dem System-Prompt, Werkzeugdefinitionen und Gesprächsverlauf. Das SDK gibt eine [`SystemMessage`](#message-types) mit dem Subtyp `"init"` aus, die Sitzungsmetadaten enthält.251. **Prompt empfangen.** Claude empfängt Ihren Prompt zusammen mit dem System-Prompt, Werkzeugdefinitionen und Gesprächsverlauf. Das SDK gibt eine [`SystemMessage`](#message-types) mit dem Subtyp `"init"` aus, die Sitzungsmetadaten enthält.

262. **Bewerten und antworten.** Claude bewertet den aktuellen Status und bestimmt, wie vorzugehen ist. Es kann mit Text antworten, einen oder mehrere Werkzeugaufrufe anfordern oder beides. Das SDK gibt eine [`AssistantMessage`](#message-types) aus, die den Text und alle Werkzeugaufrufe enthält.262. **Bewerten und antworten.** Claude bewertet den aktuellen Status und bestimmt, wie vorzugehen ist. Es kann mit Text antworten, einen oder mehrere Werkzeugaufrufe anfordern oder beides. Das SDK gibt ein oder mehrere [`AssistantMessage`](#message-types)-Objekte aus, eines für jeden Inhaltsblock, wie einen Textblock oder eine Werkzeugaufrufsanforderung.

273. **Werkzeuge ausführen.** Das SDK führt jedes angeforderte Werkzeug aus und sammelt die Ergebnisse. Jeder Satz von Werkzeugergebnissen wird an Claude für die nächste Entscheidung zurückgesendet. Sie können [Hooks](/docs/de/agent-sdk/hooks) verwenden, um Werkzeugaufrufe vor ihrer Ausführung abzufangen, zu ändern oder zu blockieren.273. **Werkzeuge ausführen.** Das SDK führt jedes angeforderte Werkzeug aus und sammelt die Ergebnisse. Jeder Satz von Werkzeugergebnissen wird an Claude für die nächste Entscheidung zurückgesendet. Sie können [Hooks](/docs/de/agent-sdk/hooks) verwenden, um Werkzeugaufrufe vor ihrer Ausführung abzufangen, zu ändern oder zu blockieren.

284. **Wiederholen.** Die Schritte 2 und 3 wiederholen sich als Zyklus. Jeder vollständige Zyklus ist eine Runde. Claude ruft weiterhin Werkzeuge auf und verarbeitet Ergebnisse, bis es eine Antwort ohne Werkzeugaufrufe erzeugt.284. **Wiederholen.** Die Schritte 2 und 3 wiederholen sich als Zyklus. Jeder vollständige Zyklus ist eine Runde. Claude ruft weiterhin Werkzeuge auf und verarbeitet Ergebnisse, bis es eine Antwort ohne Werkzeugaufrufe erzeugt.

295. **Ergebnis zurückgeben.** Das SDK gibt eine endgültige [`AssistantMessage`](#message-types) mit der Textantwort (keine Werkzeugaufrufe) aus, gefolgt von einer [`ResultMessage`](#message-types) mit dem endgültigen Text, Token-Nutzung, Kosten und Sitzungs-ID.295. **Ergebnis zurückgeben.** Das SDK gibt eine endgültige [`AssistantMessage`](#message-types) mit der Textantwort (keine Werkzeugaufrufe) aus, gefolgt von einer [`ResultMessage`](#message-types) mit dem endgültigen Text, Token-Nutzung, Kosten und Sitzungs-ID.


41Zunächst sendet das SDK Ihren Prompt an Claude und gibt eine [`SystemMessage`](#message-types) mit den Sitzungsmetadaten aus. Dann beginnt die Schleife:41Zunächst sendet das SDK Ihren Prompt an Claude und gibt eine [`SystemMessage`](#message-types) mit den Sitzungsmetadaten aus. Dann beginnt die Schleife:

42 42 

431. **Runde 1:** Claude ruft `Bash` auf, um `npm test` auszuführen. Das SDK gibt eine [`AssistantMessage`](#message-types) mit dem Werkzeugaufruf aus, führt den Befehl aus und gibt dann eine [`UserMessage`](#message-types) mit der Ausgabe (drei Fehler) aus.431. **Runde 1:** Claude ruft `Bash` auf, um `npm test` auszuführen. Das SDK gibt eine [`AssistantMessage`](#message-types) mit dem Werkzeugaufruf aus, führt den Befehl aus und gibt dann eine [`UserMessage`](#message-types) mit der Ausgabe (drei Fehler) aus.

442. **Runde 2:** Claude ruft `Read` auf `auth.ts` und `auth.test.ts` auf. Das SDK gibt die Dateiinhalte zurück und gibt eine `AssistantMessage` aus.442. **Runde 2:** Claude ruft `Read` auf `auth.ts` und `auth.test.ts` auf. Das SDK gibt eine `AssistantMessage` für jeden Aufruf aus und gibt die Dateiinhalte zurück.

453. **Runde 3:** Claude ruft `Edit` auf, um `auth.ts` zu beheben, und ruft dann `Bash` auf, um `npm test` erneut auszuführen. Alle drei Tests bestehen. Das SDK gibt eine `AssistantMessage` aus.453. **Runde 3:** Claude ruft `Edit` auf, um `auth.ts` zu beheben, und ruft dann `Bash` auf, um `npm test` erneut auszuführen. Alle drei Tests bestehen. Das SDK gibt eine `AssistantMessage` für jeden Aufruf aus.

464. **Letzte Runde:** Claude erzeugt eine nur-Text-Antwort ohne Werkzeugaufrufe: „Behobener Auth-Bug, alle drei Tests bestehen jetzt." Das SDK gibt eine endgültige `AssistantMessage` mit diesem Text aus, gefolgt von einer [`ResultMessage`](#message-types) mit dem gleichen Text plus Kosten und Nutzung.464. **Letzte Runde:** Claude erzeugt eine nur-Text-Antwort ohne Werkzeugaufrufe: „Behobener Auth-Bug, alle drei Tests bestehen jetzt." Das SDK gibt eine endgültige `AssistantMessage` mit diesem Text aus, gefolgt von einer [`ResultMessage`](#message-types) mit dem gleichen Text plus Kosten und Nutzung.

47 47 

48Das waren vier Runden: drei mit Werkzeugaufrufen, eine endgültige nur-Text-Antwort.48Das waren vier Runden: drei mit Werkzeugaufrufen, eine endgültige nur-Text-Antwort.


65 * `"worker_shutting_down"`: die Schleife endet nach der aktuellen Runde, weil der Host beendet wird oder Remote Control getrennt wurde65 * `"worker_shutting_down"`: die Schleife endet nach der aktuellen Runde, weil der Host beendet wird oder Remote Control getrennt wurde

66 66 

67 In TypeScript ist jeder Subtyp außer `"init"` sein eigener Typ in der [`SDKMessage`-Union](/docs/de/agent-sdk/typescript#sdkmessage) statt eines Subtyps von `SDKSystemMessage`.67 In TypeScript ist jeder Subtyp außer `"init"` sein eigener Typ in der [`SDKMessage`-Union](/docs/de/agent-sdk/typescript#sdkmessage) statt eines Subtyps von `SDKSystemMessage`.

68* **`AssistantMessage`:** wird nach jeder Claude-Antwort ausgegeben, einschließlich der endgültigen nur-Text-Antwort. Enthält Textinhaltsblöcke und Werkzeugaufrufsblöcke aus dieser Runde.68* **`AssistantMessage`:** wird für jeden Inhaltsblock in Claudes Antworten ausgegeben, einschließlich des endgültigen nur-Text-Blocks. Jede trägt einen einzelnen Inhaltsblock, wie Text oder einen Werkzeugaufruf, und die Nachrichten aus einer Antwort teilen sich eine Nachrichten-ID.

69* **`UserMessage`:** wird nach jeder Werkzeugausführung mit dem Werkzeugergebnis-Inhalt ausgegeben, der an Claude zurückgesendet wird. Wird auch für alle Benutzereingaben ausgegeben, die Sie mid-loop streamen.69* **`UserMessage`:** wird nach jeder Werkzeugausführung mit dem Werkzeugergebnis-Inhalt ausgegeben, der an Claude zurückgesendet wird. Wird auch für alle Benutzereingaben ausgegeben, die Sie mid-loop streamen.

70* **`StreamEvent`:** wird nur ausgegeben, wenn Teilteilnachrichten aktiviert sind. Enthält rohe API-Streaming-Ereignisse (Text-Deltas, Werkzeug-Input-Chunks). Siehe [Stream-Antworten](/docs/de/agent-sdk/streaming-output).70* **`StreamEvent`:** wird nur ausgegeben, wenn Teilteilnachrichten aktiviert sind. Enthält rohe API-Streaming-Ereignisse (Text-Deltas, Werkzeug-Input-Chunks). Siehe [Stream-Antworten](/docs/de/agent-sdk/streaming-output).

71* **`ResultMessage`:** markiert das Ende der Agent-Schleife. Enthält das endgültige Textergebnis, Token-Nutzung, Kosten und Sitzungs-ID. Überprüfen Sie das Feld `subtype`, um zu bestimmen, ob die Aufgabe erfolgreich war oder ein Limit erreicht hat. Eine kleine Anzahl von nachfolgenden Systemevenementen, wie `prompt_suggestion`, können danach ankommen, daher sollten Sie den Stream bis zum Ende durchlaufen, anstatt beim Ergebnis zu unterbrechen. Siehe [Ergebnis verarbeiten](#handle-the-result).71* **`ResultMessage`:** markiert das Ende der Agent-Schleife. Enthält das endgültige Textergebnis, Token-Nutzung, Kosten und Sitzungs-ID. Überprüfen Sie das Feld `subtype`, um zu bestimmen, ob die Aufgabe erfolgreich war oder ein Limit erreicht hat. Eine kleine Anzahl von nachfolgenden Systemevenementen, wie `prompt_suggestion`, können danach ankommen, daher sollten Sie den Stream bis zum Ende durchlaufen, anstatt beim Ergebnis zu unterbrechen. Siehe [Ergebnis verarbeiten](#handle-the-result).


91 <CodeGroup>91 <CodeGroup>

92 ```python Python theme={null}92 ```python Python theme={null}

93 import asyncio93 import asyncio

94 from claude_agent_sdk import query, AssistantMessage, ResultMessage94 from claude_agent_sdk import query, AssistantMessage, ResultMessage, TextBlock, ToolUseBlock

95 95 

96 96 

97 async def main():97 async def main():

98 try:98 try:

99 async for message in query(prompt="Summarize this project"):99 async for message in query(prompt="Summarize this project"):

100 if isinstance(message, AssistantMessage):100 if isinstance(message, AssistantMessage):

101 print(f"Turn completed: {len(message.content)} content blocks")101 # Each AssistantMessage carries one content block

102 for block in message.content:

103 if isinstance(block, TextBlock):

104 print(f"Claude: {block.text}")

105 elif isinstance(block, ToolUseBlock):

106 print(f"Tool call: {block.name}")

102 if isinstance(message, ResultMessage):107 if isinstance(message, ResultMessage):

103 if message.subtype == "success":108 if message.subtype == "success":

104 print(message.result)109 print(message.result)


120 try {125 try {

121 for await (const message of query({ prompt: "Summarize this project" })) {126 for await (const message of query({ prompt: "Summarize this project" })) {

122 if (message.type === "assistant") {127 if (message.type === "assistant") {

123 console.log(`Turn completed: ${message.message.content.length} content blocks`);128 // Each assistant message carries one content block

129 for (const block of message.message.content) {

130 if (block.type === "text") {

131 console.log(`Claude: ${block.text}`);

132 } else if (block.type === "tool_use") {

133 console.log(`Tool call: ${block.name}`);

134 }

135 }

124 }136 }

125 if (message.type === "result") {137 if (message.type === "result") {

126 if (message.subtype === "success") {138 if (message.subtype === "success") {


175 187 

176Claude bestimmt, welche Werkzeuge aufgerufen werden sollen, basierend auf der Aufgabe, aber Sie kontrollieren, ob diese Aufrufe ausgeführt werden dürfen. Sie können bestimmte Werkzeuge automatisch genehmigen, andere vollständig blockieren oder Genehmigung für alles verlangen. Drei Optionen arbeiten zusammen, um zu bestimmen, was ausgeführt wird:188Claude bestimmt, welche Werkzeuge aufgerufen werden sollen, basierend auf der Aufgabe, aber Sie kontrollieren, ob diese Aufrufe ausgeführt werden dürfen. Sie können bestimmte Werkzeuge automatisch genehmigen, andere vollständig blockieren oder Genehmigung für alles verlangen. Drei Optionen arbeiten zusammen, um zu bestimmen, was ausgeführt wird:

177 189 

178* **`allowed_tools` / `allowedTools`** genehmigt automatisch aufgelistete Werkzeuge. Ein schreibgeschützter Agent mit `["Read", "Glob", "Grep"]` in seiner Werkzeugliste für zulässige Werkzeuge führt diese Werkzeuge ohne Aufforderung aus. Werkzeuge, die nicht aufgelistet sind, sind immer noch verfügbar, erfordern aber Berechtigung.190* **`allowed_tools` / `allowedTools`** genehmigt automatisch aufgelistete Werkzeuge. Ein schreibgeschützter Agent mit `["Read", "Glob", "Grep"]` in seiner Werkzeugliste für zulässige Werkzeuge führt diese Werkzeuge ohne Aufforderung aus. Werkzeuge, die nicht aufgelistet sind, sind immer noch verfügbar, und Aufrufe an sie, die Genehmigung benötigen, fallen durch zum Berechtigungsmodus und `canUseTool`.

179* **`disallowed_tools` / `disallowedTools`** blockiert aufgelistete Werkzeuge, unabhängig von anderen Einstellungen. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions) für die Reihenfolge, in der Regeln überprüft werden, bevor ein Werkzeug ausgeführt wird.191* **`disallowed_tools` / `disallowedTools`** blockiert aufgelistete Werkzeuge, unabhängig von anderen Einstellungen. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions) für die Reihenfolge, in der Regeln überprüft werden, bevor ein Werkzeug ausgeführt wird.

180* **`permission_mode` / `permissionMode`** kontrolliert, wie viel menschliche Überwachung Sie wünschen. Das SDK wertet den aktiven Modus zusammen mit Ihren Zulassungs- und Ablehnungsregeln in einer festen Reihenfolge aus, die in [Wie Berechtigungen ausgewertet werden](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) beschrieben ist. Siehe [Berechtigungsmodus](#permission-mode) für verfügbare Modi.192* **`permission_mode` / `permissionMode`** kontrolliert, wie viel menschliche Überwachung Sie wünschen. Das SDK wertet den aktiven Modus zusammen mit Ihren Zulassungs- und Ablehnungsregeln in einer festen Reihenfolge aus, die in [Wie Berechtigungen ausgewertet werden](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) beschrieben ist. Siehe [Berechtigungsmodus](#permission-mode) für verfügbare Modi.

181 193 


192Benutzerdefinierte Werkzeuge verwenden standardmäßig sequenzielle Ausführung. Um parallele Ausführung für ein benutzerdefiniertes Werkzeug zu aktivieren, setzen Sie `readOnlyHint` in seinen Anmerkungen. Beide [TypeScript](/docs/de/agent-sdk/typescript#tool) und [Python](/docs/de/agent-sdk/python#tool) SDKs verwenden diesen Feldnamen aus dem MCP SDK.204Benutzerdefinierte Werkzeuge verwenden standardmäßig sequenzielle Ausführung. Um parallele Ausführung für ein benutzerdefiniertes Werkzeug zu aktivieren, setzen Sie `readOnlyHint` in seinen Anmerkungen. Beide [TypeScript](/docs/de/agent-sdk/typescript#tool) und [Python](/docs/de/agent-sdk/python#tool) SDKs verwenden diesen Feldnamen aus dem MCP SDK.

193 205 

194<h2 id="control-how-the-loop-runs">206<h2 id="control-how-the-loop-runs">

195 Kontrollieren Sie, wie die Schleife läuft207 Steuern Sie, wie die Schleife ausgeführt wird

196</h2>208</h2>

197 209 

198Sie können begrenzen, wie viele Runden die Schleife dauert, wie viel sie kostet, wie tief Claude denkt, und ob Werkzeuge vor der Ausführung genehmigt werden müssen. All diese sind Felder auf [`ClaudeAgentOptions`](/docs/de/agent-sdk/python#claudeagentoptions) (Python) / [`Options`](/docs/de/agent-sdk/typescript#options) (TypeScript).210Sie können begrenzen, wie viele Durchläufe die Schleife durchführt, wie viel sie kostet, wie tiefgreifend Claude denkt, und ob Tools vor der Ausführung genehmigt werden müssen. All diese sind Felder auf [`ClaudeAgentOptions`](/docs/de/agent-sdk/python#claudeagentoptions) (Python) / [`Options`](/docs/de/agent-sdk/typescript#options) (TypeScript).

199 211 

200<h3 id="turns-and-budget">212<h3 id="turns-and-budget">

201 Runden und Budget213 Durchläufe und Budget

202</h3>214</h3>

203 215 

204| Option | Was es kontrolliert | Standard |216| Option | Was es steuert | Standard |

205| :--------------------------------------------- | :---------------------------------------------- | :--------- |217| :---------------------------------------------- | :---------------------------- | :--------------- |

206| Max Runden (`max_turns` / `maxTurns`) | Maximale Werkzeug-Nutzungs-Hin- und Rückfahrten | Kein Limit |218| Max. Durchläufe (`max_turns` / `maxTurns`) | Maximale Tool-Use-Rundgänge | Keine Begrenzung |

207| Max Budget (`max_budget_usd` / `maxBudgetUsd`) | Maximale Kosten vor dem Stoppen | Kein Limit |219| Max. Budget (`max_budget_usd` / `maxBudgetUsd`) | Maximale Kosten vor dem Stopp | Keine Begrenzung |

208 220 

209Wenn eines der Limits erreicht wird, gibt das SDK eine `ResultMessage` mit einem entsprechenden Fehler-Subtyp (`error_max_turns` oder `error_max_budget_usd`) zurück. Siehe [Ergebnis verarbeiten](#handle-the-result) für die Überprüfung dieser Subtypen und [`ClaudeAgentOptions`](/docs/de/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/de/agent-sdk/typescript#options) für die Syntax.221Wenn eine dieser Grenzen erreicht wird, gibt das SDK eine `ResultMessage` mit einem entsprechenden Fehler-Subtyp (`error_max_turns` oder `error_max_budget_usd`) zurück. Siehe [Handle the result](#handle-the-result) für die Überprüfung dieser Subtypen und [`ClaudeAgentOptions`](/docs/de/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/de/agent-sdk/typescript#options) für die Syntax.

210 222 

211Das Budget-Limit umfasst [Subagenten](/docs/de/agent-sdk/subagents): ihre Ausgaben zählen zur Gesamtsumme. Sobald die Ausgaben das Limit erreichen, schlägt das Spawnen eines weiteren Subagenten mit `Budget limit reached` fehl, und Claude Code stoppt alle noch laufenden Hintergrund-Subagenten. Die Limit-Durchsetzungsverhalten erfordern Claude Code v2.1.217 oder später.223Die Budget-Obergrenze deckt [Subagenten](/docs/de/agent-sdk/subagents) ab: ihre Ausgaben zählen zur Gesamtsumme. Sobald die Ausgaben die Obergrenze erreichen, schlägt das Spawnen eines weiteren Subagenten mit `Budget limit reached` fehl, und Claude Code stoppt alle noch laufenden Hintergrund-Subagenten. Die Durchsetzungsverhalten der Obergrenze erfordern Claude Code v2.1.217 oder später.

212 224 

213Mit [Streaming-Eingabe](/docs/de/agent-sdk/streaming-vs-single-mode) bleibt eine Nachricht, die noch in der Warteschlange steht, wenn eine Runde am Max-Turns-Limit endet, in der Warteschlange. Claude Code fügt sie nicht zum letzten Modellaufruf dieser Runde hinzu. Es startet eine neue Runde für die Nachricht, und die Max-Turns-Zählung beginnt für diese Runde von vorne.225Mit [Streaming-Eingabe](/docs/de/agent-sdk/streaming-vs-single-mode) bleibt eine Nachricht, die noch in der Warteschlange steht, wenn ein Durchlauf bei der max-turns-Grenze endet, in der Warteschlange. Claude Code fügt sie nicht zum letzten Modellaufruf dieses Durchlaufs hinzu. Es startet einen neuen Durchlauf für die Nachricht, und die max-turns-Zählung beginnt für diesen Durchlauf von vorne.

214 226 

215<h3 id="effort-level">227<h3 id="effort-level">

216 Anstrengungsgrad228 Anstrengungsgrad

217</h3>229</h3>

218 230 

219Die Option `effort` kontrolliert, wie viel Denken Claude anwendet. Niedrigere Anstrengungsgrade verwenden weniger Token pro Runde und reduzieren Kosten. Nicht alle Modelle unterstützen den Anstrengungsparameter. Siehe [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) für welche Modelle es unterstützen.231Die `effort`-Option steuert, wie viel Reasoning Claude anwendet. Niedrigere Anstrengungsgrade verwenden weniger Token pro Durchlauf und reduzieren die Kosten. Nicht alle Modelle unterstützen den effort-Parameter. Siehe [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) für die Modelle, die ihn unterstützen.

220 232 

221| Stufe | Verhalten | Gut für |233| Stufe | Verhalten | Geeignet für |

222| :--------- | :----------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |234| :--------- | :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------ |

223| `"low"` | Minimales Denken, schnelle Antworten | Datei-Lookups, Verzeichnisse auflisten |235| `"low"` | Minimales Reasoning, schnelle Antworten | Datei-Lookups, Verzeichnisse auflisten |

224| `"medium"` | Ausgewogenes Denken | Routine-Bearbeitungen, Standard-Aufgaben |236| `"medium"` | Ausgewogenes Reasoning | Routinemäßige Bearbeitungen, Standardaufgaben |

225| `"high"` | Gründliche Analyse | Refaktorisierungen, Debugging |237| `"high"` | Gründliche Analyse | Refaktorisierungen, Debugging |

226| `"xhigh"` | Erweiterte Denktiefe | Kodierungs- und agentengesteuerte Aufgaben auf den [Modellen, die es unterstützen](/docs/de/model-config#adjust-effort-level) |238| `"xhigh"` | Erweiterte Reasoning-Tiefe | Coding- und agentengestützte Aufgaben auf den [Modellen, die es unterstützen](/docs/de/model-config#adjust-effort-level) |

227| `"max"` | Maximale Denktiefe | Mehrstufige Probleme, die tiefe Analyse erfordern |239| `"max"` | Maximale Reasoning-Tiefe | Mehrstufige Probleme, die tiefe Analyse erfordern |

228 240 

229Wenn Sie `effort` nicht setzen, lassen beide SDKs den Parameter ungesetzt und überlassen das Standardverhalten dem Modell.241Wenn Sie `effort` nicht setzen, lassen beide SDKs den Parameter ungesetzt und überlassen das Verhalten dem Standard des Modells.

230 242 

231<Note>243<Note>

232 `effort` tauscht Latenz und Token-Kosten gegen Denktiefe innerhalb jeder Antwort. [Erweitertes Denken](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) ist eine separate Funktion, die `thinking`-Blöcke in der Ausgabe erzeugt, und das Feld `display` auf `ThinkingConfig` für [Python](/docs/de/agent-sdk/python#thinkingconfig) oder [TypeScript](/docs/de/agent-sdk/typescript#thinkingconfig) kontrolliert, ob Sie deren Text erhalten. Sie sind unabhängig: Sie können `effort: "low"` mit aktiviertem erweiterten Denken setzen oder `effort: "max"` ohne es.244 `effort` tauscht Latenz und Token-Kosten gegen Reasoning-Tiefe innerhalb jeder Antwort. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) ist eine separate Funktion, die `thinking`-Blöcke in der Ausgabe erzeugt, und das `display`-Feld auf `ThinkingConfig` für [Python](/docs/de/agent-sdk/python#thinkingconfig) oder [TypeScript](/docs/de/agent-sdk/typescript#thinkingconfig) steuert, ob Sie deren Text erhalten. Sie sind unabhängig: Sie können `effort: "low"` mit aktiviertem Extended Thinking setzen oder `effort: "max"` ohne es.

233</Note>245</Note>

234 246 

235Verwenden Sie niedrigere Anstrengung für Agenten, die einfache, gut definierte Aufgaben ausführen (wie Dateien auflisten oder ein einzelnes Grep ausführen), um Kosten und Latenz zu reduzieren. Setzen Sie `effort` in den Top-Level-`query()`-Optionen für die gesamte Sitzung oder pro Subagent mit dem Feld `effort` auf [`AgentDefinition`](/docs/de/agent-sdk/subagents#agentdefinition-configuration), um die Sitzungsebene zu überschreiben.247Verwenden Sie niedrigere Anstrengung für Agenten, die einfache, gut definierte Aufgaben ausführen (wie das Auflisten von Dateien oder das Ausführen eines einzelnen grep), um Kosten und Latenz zu reduzieren. Setzen Sie `effort` in den Top-Level-`query()`-Optionen für die gesamte Sitzung oder pro Subagent mit dem `effort`-Feld auf [`AgentDefinition`](/docs/de/agent-sdk/subagents#agentdefinition-configuration), um die Sitzungsebene zu überschreiben.

236 248 

237<h3 id="permission-mode">249<h3 id="permission-mode">

238 Berechtigungsmodus250 Genehmigungsmodus

239</h3>251</h3>

240 252 

241Die Berechtigungsmodus-Option (`permission_mode` in Python, `permissionMode` in TypeScript) kontrolliert, ob der Agent vor der Verwendung von Werkzeugen um Genehmigung fragt:253Die Genehmigungsmodus-Option (`permission_mode` in Python, `permissionMode` in TypeScript) steuert, ob der Agent vor der Verwendung von Tools um Genehmigung fragt:

242 254 

243| Modus | Verhalten | Anwendungsfall |255| Modus | Verhalten | Anwendungsfall |

244| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |256| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

245| `"default"` | Werkzeuge, die nicht durch Zulassungsregeln abgedeckt sind, lösen Ihren `canUseTool`-Rückruf aus; kein Rückruf bedeutet Ablehnung | Interaktive Anwendungen mit einem benutzerdefinierten Genehmigungsrückruf |257| `"default"` | Tool-Aufrufe, die Genehmigung benötigen und nicht durch Allow-Regeln abgedeckt sind, lösen Ihren `canUseTool`-Callback aus; kein Callback bedeutet Ablehnung | Interaktive Anwendungen mit einem benutzerdefinierten Genehmigungsrückruf |

246| `"acceptEdits"` | Genehmigt automatisch Dateibearbeitungen und häufige Dateisystem-Befehle (`mkdir`, `touch`, `mv`, `cp`, usw.); andere Bash-Befehle folgen Standardregeln | Sie vertrauen Claudes Bearbeitungen und möchten schnellere Iterationen, z. B. während des Prototyping oder beim Arbeiten in einem isolierten Verzeichnis |258| `"acceptEdits"` | Genehmigt automatisch Dateibearbeitungen und häufige Dateisystem-Befehle (`mkdir`, `touch`, `mv`, `cp` usw.); andere Bash-Befehle folgen Standardregeln | Sie vertrauen Claudes Bearbeitungen und möchten schnellere Iterationen, z. B. während des Prototyping oder beim Arbeiten in einem isolierten Verzeichnis |

247| `"plan"` | Claude erkundet und plant, ohne Ihre Quelldateien zu bearbeiten; Dateibearbeitungen werden nie automatisch genehmigt und werden durch Ihren `canUseTool`-Rückruf aufgefordert | Sie möchten, dass Claude Änderungen vorschlägt, ohne sie auszuführen, z. B. während einer Code-Überprüfung oder wenn Sie Änderungen genehmigen müssen, bevor sie vorgenommen werden |259| `"plan"` | Claude erkundet und plant, ohne Ihre Quelldateien zu bearbeiten; Dateibearbeitungen werden nie automatisch genehmigt und werden durch Ihren `canUseTool`-Callback angefordert | Sie möchten, dass Claude Änderungen vorschlägt, ohne sie auszuführen, z. B. während einer Code-Überprüfung oder wenn Sie Änderungen genehmigen müssen, bevor sie vorgenommen werden |

248| `"dontAsk"` | Fragt nie. Werkzeuge, die durch [Berechtigungsregeln](/docs/de/settings-reference#permission-settings) vorab genehmigt wurden, laufen; alles andere wird abgelehnt. `AskUserQuestion`, Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), und MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden abgelehnt, auch wenn Sie sie zugelassen haben | Sie möchten eine feste, explizite Werkzeugoberfläche für einen Headless-Agent und bevorzugen eine harte Ablehnung gegenüber stiller Abhängigkeit von fehlender `canUseTool` |260| `"dontAsk"` | Fragt nie. Tools, die durch [Genehmigungsregeln](/docs/de/settings-reference#permission-settings) vorab genehmigt sind, werden ausgeführt, ebenso wie Aufrufe, die im `default`-Modus keine Genehmigung benötigen, z. B. Datei-Lesevorgänge in Ihren Arbeitsverzeichnissen; jeder Aufruf, der sonst eine Aufforderung auslösen würde, wird abgelehnt. `AskUserQuestion`, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die als [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden auch dann abgelehnt, wenn Sie sie erlaubt haben | Sie möchten eine feste, explizite Tool-Oberfläche für einen Headless-Agent und bevorzugen eine harte Ablehnung gegenüber stiller Abhängigkeit davon, dass `canUseTool` abwesend ist |

249| `"auto"` | Verwendet einen Modell-Klassifizierer, um Genehmigungsaufforderungen zu genehmigen oder abzulehnen. Siehe [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit und Verhalten | Autonome Agenten, die immer noch Sicherheitsvorkehrungen bei der Werkzeugnutzung wünschen |261| `"auto"` | Verwendet einen Modell-Klassifizierer, um Genehmigungsaufforderungen zu genehmigen oder abzulehnen. Siehe [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit und Verhalten | Autonome Agenten, die immer noch Sicherheitsvorkehrungen bei der Tool-Nutzung wünschen |

250| `"bypassPermissions"` | Führt alle zulässigen Werkzeuge aus, ohne zu fragen, außer Werkzeuge, die durch eine explizite [`ask`-Regel](/docs/de/settings-reference#permission-settings) abgeglichen werden, Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), und Werkzeuge, die Benutzerinteraktion erfordern. Die [Sicherheitsvorkehrungen für sitzungsübergreifendes Messaging](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) gelten immer noch. Siehe [Wie Berechtigungen ausgewertet werden](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) für die Vorrangordnung. Im TypeScript SDK erfordert auch `allowDangerouslySkipPermissions: true` in `options`. Kann nicht verwendet werden, wenn als Root auf Unix ausgeführt wird. Verwenden Sie nur in isolierten Umgebungen, in denen die Aktionen des Agenten keine Systeme beeinflussen können, die Ihnen wichtig sind | CI, Container oder andere isolierte Umgebungen |262| `"bypassPermissions"` | Führt alle zulässigen Tools aus, ohne zu fragen, außer Tools, die einer expliziten [`ask`-Regel](/docs/de/settings-reference#permission-settings) entsprechen, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und Tools, die Benutzerinteraktion erfordern. Die [Cross-Session-Messaging-Schutzmaßnahmen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) gelten weiterhin. Siehe [How permissions are evaluated](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) für die Rangfolge. Im TypeScript SDK ist auch `allowDangerouslySkipPermissions: true` in `options` erforderlich. Kann nicht verwendet werden, wenn als Root auf Unix ausgeführt wird. Verwenden Sie nur in isolierten Umgebungen, in denen die Aktionen des Agenten keine Systeme beeinflussen können, die Ihnen wichtig sind | CI, Container oder andere isolierte Umgebungen |

251 263 

252Für interaktive Anwendungen verwenden Sie `"default"` mit einem Werkzeug-Genehmigungsrückruf, um Genehmigungsaufforderungen anzuzeigen. Für autonome Agenten auf einer Dev-Maschine verwenden Sie `"acceptEdits"`, um Dateibearbeitungen und häufige Dateisystem-Befehle (`mkdir`, `touch`, `mv`, `cp`, usw.) automatisch zu genehmigen, während Sie andere `Bash`-Befehle immer noch hinter Zulassungsregeln gating. Reservieren Sie `"bypassPermissions"` für CI, Container oder andere isolierte Umgebungen. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions) für vollständige Details.264Verwenden Sie für interaktive Anwendungen `"default"` mit einem Tool-Genehmigungsrückruf, um Genehmigungsaufforderungen anzuzeigen. Für autonome Agenten auf einem Dev-Computer genehmigt `"acceptEdits"` automatisch Dateibearbeitungen und häufige Dateisystem-Befehle (`mkdir`, `touch`, `mv`, `cp` usw.), während andere `Bash`-Befehle immer noch durch Allow-Regeln kontrolliert werden. Reservieren Sie `"bypassPermissions"` für CI, Container oder andere isolierte Umgebungen. Siehe [Permissions](/docs/de/agent-sdk/permissions) für vollständige Details.

253 265 

254<h3 id="model">266<h3 id="model">

255 Modell267 Modell

256</h3>268</h3>

257 269 

258Wenn Sie `model` nicht setzen, verwendet das SDK Claude Codes Standard, der von Ihrer Authentifizierungsmethode und Ihrem Abonnement abhängt. Setzen Sie es explizit (zum Beispiel, `model="claude-sonnet-5"`), um ein bestimmtes Modell zu fixieren oder um ein kleineres Modell für schnellere, billigere Agenten zu verwenden. Siehe [models](https://platform.claude.com/docs/en/about-claude/models) für verfügbare IDs.270Wenn Sie `model` nicht setzen, verwendet das SDK Claudes Code-Standard, der von Ihrer Authentifizierungsmethode und Ihrem Abonnement abhängt. Setzen Sie es explizit (z. B. `model="claude-sonnet-5"`), um ein bestimmtes Modell zu fixieren oder um ein kleineres Modell für schnellere, günstigere Agenten zu verwenden. Siehe [models](https://platform.claude.com/docs/en/about-claude/models) für verfügbare IDs.

259 271 

260<h2 id="the-context-window">272<h2 id="the-context-window">

261 Das Kontextfenster273 Das Kontextfenster

Details

92`settingSources` umfasst Benutzer-, Projekt- und lokale Einstellungen. Einige Eingaben werden unabhängig von ihrem Wert gelesen:92`settingSources` umfasst Benutzer-, Projekt- und lokale Einstellungen. Einige Eingaben werden unabhängig von ihrem Wert gelesen:

93 93 

94| Eingabe | Verhalten | Zum Deaktivieren |94| Eingabe | Verhalten | Zum Deaktivieren |

95| :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |95| :--------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

96| Verwaltete Richtlinieneinstellungen | Endpunkt-verwaltete Richtlinie, wie eine MDM-Plist, Registrierungsrichtlinie oder verwaltete Einstellungsdatei, wird vom Host geladen. [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) werden auf einer [zulässigen Konfiguration](/docs/de/server-managed-settings#platform-availability) abgerufen, wenn sich die Sitzung mit einer Organisations-OAuth-Anmeldung oder einem direkt konfigurierten API-Schlüssel authentifiziert | Endpunktrichtlinie: Entfernen Sie die verwaltete Einstellungsdatei, Plist oder Registrierungsrichtlinie vom Host. Server-verwaltete Einstellungen: werden von Ihrem Organisations-Administrator kontrolliert; können nicht vom SDK deaktiviert werden |96| Verwaltete Richtlinieneinstellungen | Endpunkt-verwaltete Richtlinie, wie eine MDM-Plist, Registrierungsrichtlinie oder verwaltete Einstellungsdatei, wird vom Host geladen. [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) werden auf einer [zulässigen Konfiguration](/docs/de/server-managed-settings#platform-availability) abgerufen, wenn sich die Sitzung mit einer qualifizierenden Anmeldedaten authentifiziert, wie eine Organisations-OAuth-Anmeldung, ein direkt konfigurierter API-Schlüssel oder ein `user_oauth` [Anthropic-Profil](/docs/de/authentication#anthropic-profiles-and-federation-credentials) | Endpunktrichtlinie: Entfernen Sie die verwaltete Einstellungsdatei, Plist oder Registrierungsrichtlinie vom Host. Server-verwaltete Einstellungen: Ein [Eigentümer](/docs/de/server-managed-settings#access-control) in Ihrer Claude-Organisation kontrolliert sie; Sie können sie nicht vom SDK deaktivieren |

97| `~/.claude.json` globale Konfiguration | Immer gelesen | Verschieben Sie mit `CLAUDE_CONFIG_DIR` in `env` |97| `~/.claude.json` globale Konfiguration | Immer gelesen | Verschieben Sie mit `CLAUDE_CONFIG_DIR` in `env` |

98| Automatisches Gedächtnis unter `~/.claude/projects/<project>/memory/` | Wird beim Sitzungsstart in die Systemaufforderung geladen. Der Agent schreibt neue Erinnerungen dort mit den Standard-Tools `Write` und `Edit` statt mit einem dedizierten Speichertool, daher müssen diese Tools aktiviert sein, damit der Agent Erinnerungen speichern kann | Setzen Sie `autoMemoryEnabled: false` in Einstellungen oder `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` in `env` |98| Automatisches Gedächtnis unter `~/.claude/projects/<project>/memory/` | Wird beim Sitzungsstart in die Systemaufforderung geladen. Der Agent schreibt neue Erinnerungen dort mit den Standard-Tools `Write` und `Edit` statt mit einem dedizierten Speichertool, daher müssen diese Tools aktiviert sein, damit der Agent Erinnerungen speichern kann | Setzen Sie `autoMemoryEnabled: false` in Einstellungen oder `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` in `env` |

99| [claude.ai MCP-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) | Geladen, wenn sich die Sitzung mit Ihrer claude.ai-Anmeldung authentifiziert. Nicht geladen, wenn `CLAUDE_CODE_OAUTH_TOKEN` ein Token von [`claude setup-token`](/docs/de/authentication#generate-a-long-lived-token) enthält, das nur Modellanfragen stellen kann. Das Übergeben von `mcpServers: {}` unterdrückt die Konnektoren nicht | Setzen Sie `strictMcpConfig: true`, [`disableClaudeAiConnectors: true`](/docs/de/mcp#disable-claude-ai-connectors) in Einstellungen oder `ENABLE_CLAUDEAI_MCP_SERVERS=false` in `env` |99| [claude.ai MCP-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) | Geladen, wenn sich die Sitzung mit Ihrer claude.ai-Anmeldung authentifiziert. Nicht geladen, wenn `CLAUDE_CODE_OAUTH_TOKEN` ein Token von [`claude setup-token`](/docs/de/authentication#generate-a-long-lived-token) enthält, das nur Modellanfragen stellen kann. Das Übergeben von `mcpServers: {}` unterdrückt die Konnektoren nicht | Setzen Sie `strictMcpConfig: true`, [`disableClaudeAiConnectors: true`](/docs/de/mcp#disable-claude-ai-connectors) in Einstellungen oder `ENABLE_CLAUDEAI_MCP_SERVERS=false` in `env` |

Details

338Die Option `tools` und die Zulassungs-/Ausschlusslisten beeinflussen zwei Ebenen: Verfügbarkeit, die steuert, ob ein Tool im Kontext von Claude angezeigt wird, und Berechtigung, die steuert, ob ein Aufruf genehmigt wird, sobald Claude ihn versucht. `tools` und Einträge in `disallowedTools` ohne Bereichsangabe ändern die Verfügbarkeit. `allowedTools` und Regeln in `disallowedTools` mit Bereichsangabe ändern die Berechtigung. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) in `allowedTools` nennen, wird die Sitzung auch in Claude Code aktiviert.338Die Option `tools` und die Zulassungs-/Ausschlusslisten beeinflussen zwei Ebenen: Verfügbarkeit, die steuert, ob ein Tool im Kontext von Claude angezeigt wird, und Berechtigung, die steuert, ob ein Aufruf genehmigt wird, sobald Claude ihn versucht. `tools` und Einträge in `disallowedTools` ohne Bereichsangabe ändern die Verfügbarkeit. `allowedTools` und Regeln in `disallowedTools` mit Bereichsangabe ändern die Berechtigung. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) in `allowedTools` nennen, wird die Sitzung auch in Claude Code aktiviert.

339 339 

340| Option | Ebene | Auswirkung |340| Option | Ebene | Auswirkung |

341| :------------------------ | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |341| :------------------------ | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

342| `tools: ["Read", "Grep"]` | Verfügbarkeit | Nur die aufgelisteten integrierten Tools befinden sich im Kontext von Claude. Nicht aufgelistete integrierte Tools werden entfernt. MCP-Tools sind nicht betroffen. |342| `tools: ["Read", "Grep"]` | Verfügbarkeit | Nur die aufgelisteten integrierten Tools befinden sich im Kontext von Claude. Nicht aufgelistete integrierte Tools werden entfernt. MCP-Tools sind nicht betroffen. |

343| `tools: []` | Verfügbarkeit | Alle integrierten Tools werden entfernt. Claude kann nur Ihre MCP-Tools verwenden. |343| `tools: []` | Verfügbarkeit | Alle integrierten Tools werden entfernt. Claude kann nur Ihre MCP-Tools verwenden. |

344| zulässige Tools | Berechtigung | Aufgelistete Tools werden ohne Genehmigungsaufforderung ausgeführt. Andere nicht aufgelistete Tools bleiben verfügbar; Aufrufe durchlaufen den [Berechtigungsfluss](/docs/de/agent-sdk/permissions). |344| zulässige Tools | Berechtigung | Aufgelistete Tools werden ohne Genehmigungsaufforderung ausgeführt. Andere nicht aufgelistete Tools bleiben verfügbar; Aufrufe durchlaufen den [Berechtigungsfluss](/docs/de/agent-sdk/permissions). |

345| nicht zulässige Tools | Beide | Ein Tool-Name ohne Bereichsangabe wie `"Bash"` entfernt das Tool aus dem Kontext von Claude, genauso wie das Weglassen aus `tools`. Eine Regel mit Bereichsangabe wie `"Bash(rm *)"` behält das Tool im Kontext und verweigert nur übereinstimmende Aufrufe. |345| nicht zulässige Tools | Beide | Ein Tool-Name ohne Bereichsangabe wie `"Bash"` entfernt das Tool aus dem Kontext von Claude, genauso wie das Weglassen aus `tools`. Eine Regel mit Bereichsangabe wie `"Bash(rm *)"` behält das Tool im Kontext und verweigert nur übereinstimmende Aufrufe, die [wie geschrieben](/docs/de/permissions#bash-rule-limits) entsprechen. |

346 346 

347Um ein integriertes Tool vollständig zu entfernen, lassen Sie es aus `tools` weg oder listen Sie seinen Namen ohne Bereichsangabe in `disallowedTools` auf (Python: `disallowed_tools`); beide halten das Tool aus dem Kontext heraus, sodass Claude es nie versucht. Eine Regel in `disallowedTools` mit Bereichsangabe blockiert übereinstimmende Aufrufe, behält das Tool aber sichtbar, sodass Claude möglicherweise einen Zug damit verschwenden kann. Siehe [Berechtigungen konfigurieren](/docs/de/agent-sdk/permissions) für die vollständige Evaluierungsreihenfolge.347Um ein integriertes Tool vollständig zu entfernen, lassen Sie es aus `tools` weg oder listen Sie seinen Namen ohne Bereichsangabe in `disallowedTools` auf (Python: `disallowed_tools`); beide halten das Tool aus dem Kontext heraus, sodass Claude es nie versucht. Eine Regel in `disallowedTools` mit Bereichsangabe blockiert übereinstimmende Aufrufe, behält das Tool aber sichtbar, sodass Claude möglicherweise einen Zug damit verschwenden kann. Siehe [Berechtigungen konfigurieren](/docs/de/agent-sdk/permissions) für die vollständige Evaluierungsreihenfolge.

348 348 

agent-sdk/examples.md +33 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Beispiele

6 

7> Finden Sie ein vollständiges, ausführbares Agent SDK-Projekt oder ein geführtes Rezept aus dem Claude Cookbook, das zu dem passt, was Sie erstellen möchten.

8 

9Diese Seite leitet Sie zu vollständigen, ausführbaren Agent SDK-Projekten und geführten Claude Cookbook-Rezepten weiter. TypeScript-Anwendungen befinden sich im Repository [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos), und Python-Rezepte befinden sich im [Claude Cookbook](https://platform.claude.com/cookbook).

10 

11<h2 id="run-a-minimal-agent-first">

12 Führen Sie zuerst einen minimalen Agent aus

13</h2>

14 

15Wenn Sie noch nichts mit dem SDK erstellt haben, beginnen Sie mit einem dieser Projekte, bevor Sie eine vollständige Anwendung erstellen:

16 

17* [Agent SDK-Schnellstart](/docs/de/agent-sdk/quickstart): Erstellen Sie Ihren ersten funktionierenden Agent in TypeScript oder Python mit Einrichtungsschritten. Der Agent findet und behebt Fehler in einer Beispieldatei.

18 

19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world): ein minimales TypeScript-Projekt zum Klonen, wenn Sie von Repository-Code aus starten möchten

20 

21<h2 id="explore-a-typescript-application">

22 Erkunden Sie eine TypeScript-Anwendung

23</h2>

24 

25Die TypeScript-Anwendungen in [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) sind Demos für die lokale Entwicklung, von einem E-Mail-Client bis zu einem Multi-Agent-Forschungssystem. Klonen Sie die Demo, deren Struktur dem entspricht, was Sie erstellen.

26 

27<h2 id="work-through-a-python-recipe">

28 Arbeiten Sie ein Python-Rezept durch

29</h2>

30 

31Die Agent SDK-Serie des Claude Cookbook ist eine Abfolge von Rezepten, jeweils ein Python-Notebook, die von einem einfachen Forschungsagent zu ausgefeilten Multi-Agent-Systemen fortschreitet. Jedes Notebook baut auf dem vorherigen auf und führt neue Konzepte und Funktionen ein. Beginnen Sie mit [dem One-Liner-Forschungsagent](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) und arbeiten Sie sich vorwärts.

32 

33Für Rezepte über Claude-Produkte hinweg siehe das vollständige [Claude Cookbook](https://platform.claude.com/cookbook).

Details

924 Tool-Ausgabe überschreitet maximale zulässige Token924 Tool-Ausgabe überschreitet maximale zulässige Token

925</h3>925</h3>

926 926 

927Das SDK wendet das gleiche MCP-Ausgabelimit wie Claude Code an. Wenn ein Tool-Ergebnis größer als 25.000 Token ist, wird die vollständige Ausgabe in einer Datei gespeichert und das Tool-Ergebnis wird durch eine Fehlermeldung ersetzt, die den Dateipfad benennt, damit der Agent die Ausgabe in Teilen zurücklesen kann. Erhöhen Sie das Limit mit der Umgebungsvariablen [`MAX_MCP_OUTPUT_TOKENS`](/docs/de/env-vars). Siehe [MCP-Ausgabelimits und Warnungen](/docs/de/mcp#mcp-output-limits-and-warnings) für das vollständige Verhalten, einschließlich wie ein Server ein höheres Pro-Tool-Limit mit der Anmerkung `anthropic/maxResultSizeChars` deklarieren kann.927Das SDK wendet das gleiche MCP-Ausgabelimit wie Claude Code an. Wenn ein Tool-Ergebnis ohne Bildinhalt größer als 25.000 Token ist, speichert Claude Code die Ausgabe in einer Datei und ersetzt das Tool-Ergebnis durch eine Fehlermeldung, die den Dateipfad benennt, damit der Agent die Ausgabe in Teilen zurücklesen kann.

928 

929Erhöhen Sie das Limit mit der Umgebungsvariablen [`MAX_MCP_OUTPUT_TOKENS`](/docs/de/env-vars). Siehe [MCP-Ausgabelimits und Warnungen](/docs/de/mcp#mcp-output-limits-and-warnings) für das vollständige Verhalten, einschließlich wie ein Server ein höheres Pro-Tool-Limit mit der Anmerkung `anthropic/maxResultSizeChars` deklarieren kann.

928 930 

929<h2 id="related-resources">931<h2 id="related-resources">

930 Verwandte Ressourcen932 Verwandte Ressourcen

Details

44 Verhalten des Agenten anpassen44 Verhalten des Agenten anpassen

45</h2>45</h2>

46 46 

47Ausgabestile, `append` und eine benutzerdefinierte Eingabeaufforderung ändern jeweils die Systemaufforderung direkt. CLAUDE.md geht einen anderen Weg: Das SDK liest sie und injiziert ihren Inhalt als Projektkontext in die Konversation, nicht in die Systemaufforderung, sodass sie das Verhalten neben jeder Systemaufforderung, die Sie wählen, prägt. [Skills](/docs/de/agent-sdk/skills), [hooks](/docs/de/agent-sdk/hooks) und [permissions](/docs/de/agent-sdk/permissions) prägen das Verhalten auch außerhalb der Systemaufforderung und werden auf eigenen Seiten behandelt.47`append` und eine benutzerdefinierte Eingabeaufforderungszeichenkette ändern jeweils die Systemaufforderung direkt, und ein Ausgabestil ändert die Anweisungen, die Claude Code Claude für jede Antwort gibt. CLAUDE.md geht einen anderen Weg: Das SDK liest sie und injiziert ihren Inhalt als Projektkontext in die Konversation, sodass sie das Verhalten neben jeder Systemaufforderung, die Sie wählen, prägt. [Skills](/docs/de/agent-sdk/skills), [hooks](/docs/de/agent-sdk/hooks) und [permissions](/docs/de/agent-sdk/permissions) prägen das Verhalten auch außerhalb der Systemaufforderung und werden auf eigenen Seiten behandelt.

48 48 

49<h3 id="claude-md-files-for-project-level-instructions">49<h3 id="claude-md-files-for-project-level-instructions">

50 CLAUDE.md-Dateien für projektspezifische Anweisungen50 CLAUDE.md-Dateien für projektspezifische Anweisungen


118 Ausgabestile für persistente Konfigurationen118 Ausgabestile für persistente Konfigurationen

119</h3>119</h3>

120 120 

121Ausgabestile sind gespeicherte Konfigurationen, die Claudes Systemaufforderung ändern. Sie werden als Markdown-Dateien gespeichert und können über Sitzungen und Projekte hinweg wiederverwendet werden.121Ausgabestile sind gespeicherte Konfigurationen von Anweisungen, die Claudes Rolle, Ton und Ausgabeformat ändern. Sie werden als Markdown-Dateien gespeichert und können über Sitzungen und Projekte hinweg wiederverwendet werden.

122 122 

123<h4 id="create-an-output-style">123<h4 id="create-an-output-style">

124 Einen Ausgabestil erstellen124 Einen Ausgabestil erstellen


387* Wenn Sie den Marker mehr als einmal einbeziehen, ist der erste die Aufteilung und das SDK entfernt die anderen.387* Wenn Sie den Marker mehr als einmal einbeziehen, ist der erste die Aufteilung und das SDK entfernt die anderen.

388* Wenn Sie den Marker weglassen, verbindet das SDK alle Zeichenketten in einen Block, genauso wie das Übergeben einer Zeichenkette.388* Wenn Sie den Marker weglassen, verbindet das SDK alle Zeichenketten in einen Block, genauso wie das Übergeben einer Zeichenkette.

389 389 

390<h3 id="change-the-prompt-of-an-existing-session">

391 Ändern Sie die Eingabeaufforderung einer bestehenden Sitzung

392</h3>

393 

394Standardmäßig erstellt Claude Code die Systemaufforderung einmal, bei der ersten Anfrage einer Sitzung, mit Ihrem `append`-Text oder benutzerdefinierten Eingabeaufforderung eingeschlossen, und zeichnet sie in der Sitzung auf. Bis die Sitzung komprimiert wird, verwendet jede spätere Anfrage diese aufgezeichnete Eingabeaufforderung, auch nachdem Sie zur Sitzung mit `resume` oder `continue` zurückkehren. Wenn Sie eine andere `append` oder benutzerdefinierte Eingabeaufforderung bei diesem späteren Aufruf übergeben, wird sie wirksam, sobald die Sitzung komprimiert wird oder in einer neuen Sitzung.

395 

396Wenn Sie Claude Code im [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) starten, indem Sie `--bare` durch `extraArgs` übergeben oder `CLAUDE_CODE_SIMPLE=1` setzen, bleibt die Aufzeichnung aus, es sei denn, Sie setzen `snapshot: true` auf der Objektform von `systemPrompt`. Das Aufzeichnen einer `append` oder benutzerdefinierten Eingabeaufforderung standardmäßig erfordert Claude Code v2.1.265 oder später, das das TypeScript Agent SDK ab v0.3.265 bündelt. Vor Claude Code v2.1.268 erstellten Sitzungen, die keine [Funktionsflags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching), einschließlich Sitzungen auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry, die Eingabeaufforderung bei jeder Anfrage neu und `snapshot` hatte keine Auswirkung.

397 

398Um die Eingabeaufforderung stattdessen bei jeder Anfrage neu zu erstellen, setzen Sie `snapshot: false` auf der Objektform von `systemPrompt` im TypeScript SDK: `{ type: "preset", preset: "claude_code", append, snapshot: false }` oder `{ type: "custom", prompt, snapshot: false }`. Verwenden Sie diese Form, während Sie an der Formulierung der Eingabeaufforderung arbeiten, oder wenn Ihre Anwendung `append` zwischen Aufrufen ändert, die die gleiche Sitzung fortsetzen. Das Feld `snapshot` erfordert `@anthropic-ai/claude-agent-sdk` v0.3.257 oder später.

399 

390<h2 id="compare-the-four-approaches">400<h2 id="compare-the-four-approaches">

391 Vergleich der vier Ansätze401 Vergleich der vier Ansätze

392</h2>402</h2>

Details

32 </Step>32 </Step>

33 33 

34 <Step title="Berechtigungsmodus">34 <Step title="Berechtigungsmodus">

35 Wenden Sie den aktiven [Berechtigungsmodus](#permission-modes) an. `bypassPermissions` genehmigt alles, das diesen Schritt erreicht, außer `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, die stattdessen durchfallen. `acceptEdits` genehmigt die unter [Accept edits mode](#accept-edits-mode-acceptedits) aufgelisteten Dateivorgänge. `plan` leitet Datei-Edit- und Shell-Write-Tools zu Ihrem `canUseTool`-Callback weiter, unabhängig von Allow-Regeln, sodass Schreibvorgänge während der Planung nicht automatisch genehmigt werden können. Andere Modi fallen durch.35 Wenden Sie den aktiven [Berechtigungsmodus](#permission-modes) an:

36 

37 * Im `bypassPermissions`-Modus genehmigt Claude Code alles, das diesen Schritt erreicht, außer `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, die stattdessen durchfallen.

38 * Im `acceptEdits`-Modus genehmigt Claude Code die unter [Accept edits mode](#accept-edits-mode-acceptedits) aufgelisteten Dateivorgänge.

39 * Im `plan`-Modus leitet Claude Code Datei-Edit- und Shell-Write-Tools zu Ihrem `canUseTool`-Callback weiter, unabhängig von Allow-Regeln, sodass Schreibvorgänge während der Planung nicht automatisch genehmigt werden können.

40 * In anderen Modi fällt die Anfrage durch.

36 </Step>41 </Step>

37 42 

38 <Step title="Allow-Regeln">43 <Step title="Allow-Regeln">

39 Prüfen Sie `allow`-Regeln (aus `allowed_tools` und settings.json). Wenn eine Regel zutrifft, wird das Tool genehmigt. `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden niemals durch eine Allow-Regel genehmigt: Sie erreichen Ihren Callback in den Modi, die Aufforderungen anzeigen, gehen zum [Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) im `auto`-Modus auf Claude Code v2.1.218 oder später, und werden im `dontAsk`-Modus abgelehnt.44 Prüfen Sie `allow`-Regeln (aus `allowed_tools` und settings.json). Wenn eine Regel zutrifft, wird das Tool genehmigt. Ein Aufruf, den das Tool selbst genehmigt, wird auch in diesem Schritt gelöst, ohne dass eine Regel erforderlich ist: zum Beispiel ein Dateilesezugriff in Ihren Arbeitsverzeichnissen oder ein [schreibgeschützter Bash-Befehl](/docs/de/permissions#read-only-commands). `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden niemals durch eine Allow-Regel genehmigt: Sie erreichen Ihren Callback in den Modi, die Aufforderungen anzeigen, gehen zum [Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) im `auto`-Modus auf Claude Code v2.1.218 oder später, und werden im `dontAsk`-Modus abgelehnt.

40 </Step>45 </Step>

41 46 

42 <Step title="canUseTool-Callback">47 <Step title="canUseTool-Callback">


68 Allow- und Deny-Regeln73 Allow- und Deny-Regeln

69</h2>74</h2>

70 75 

71`allowed_tools` und `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) fügen Einträge zu den Allow- und Deny-Regellisten im obigen Auswertungsfluss hinzu. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) in `allowed_tools` benennen, aktiviert Claude Code auch die Sitzung. Jedes andere Tool, das nicht in `allowed_tools` aufgelistet ist, ist immer noch für Claude verfügbar und fällt durch zum Berechtigungsmodus. Deny-Regeln verhalten sich unterschiedlich, je nachdem, ob sie ein Tool benennen oder ein Muster innerhalb eines Tools eingrenzen.76`allowed_tools` und `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) fügen Einträge zu den Allow- und Deny-Regellisten im obigen Auswertungsfluss hinzu. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) in `allowed_tools` benennen, aktiviert Claude Code auch die Sitzung. Jedes andere Tool, das nicht in `allowed_tools` aufgelistet ist, ist immer noch für Claude verfügbar, und ein Aufruf dazu, der eine Genehmigung benötigt, fällt durch zum Berechtigungsmodus. Deny-Regeln verhalten sich unterschiedlich, je nachdem, ob sie ein Tool benennen oder ein Muster innerhalb eines Tools eingrenzen.

72 77 

73| Option | Auswirkung |78| Option | Auswirkung |

74| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |79| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

75| `allowed_tools=["Read", "Grep"]` | `Read` und `Grep` werden automatisch genehmigt. Andere Tools, die hier nicht aufgelistet sind, existieren immer noch und fallen durch zum Berechtigungsmodus und `canUseTool`. |80| `allowed_tools=["Read", "Grep"]` | `Read` und `Grep` werden automatisch genehmigt. Andere Tools, die hier nicht aufgelistet sind, existieren immer noch, und Aufrufe dazu, die eine Genehmigung benötigen, fallen durch zum Berechtigungsmodus und `canUseTool`. |

76| `disallowed_tools=["Bash"]` | Die `Bash`-Tool-Definition wird aus der Anfrage entfernt. Claude sieht das Tool nicht und kann es nicht versuchen. |81| `disallowed_tools=["Bash"]` | Die `Bash`-Tool-Definition wird aus der Anfrage entfernt. Claude sieht das Tool nicht und kann es nicht versuchen. |

77| `disallowed_tools=["Bash(rm *)"]` | `Bash` bleibt verfügbar. Aufrufe, die `rm *` entsprechen, werden in jedem Berechtigungsmodus abgelehnt, einschließlich `bypassPermissions`. Andere `Bash`-Aufrufe fallen durch zum Berechtigungsmodus. |82| `disallowed_tools=["Bash(rm *)"]` | `Bash` bleibt verfügbar. Aufrufe, die `rm *` entsprechen, [wie geschrieben](/docs/de/permissions#bash-rule-limits), werden in jedem Berechtigungsmodus abgelehnt, einschließlich `bypassPermissions`. Andere `Bash`-Aufrufe, einschließlich `/bin/rm`, fallen durch zum Berechtigungsmodus. |

78| `disallowed_tools=["*"]` | Jede Tool-Definition wird aus der Anfrage entfernt. Tool-Name-Globs werden in Deny-Regeln unterstützt: `"*"` entspricht jedem Tool und `"mcp__*"` entspricht jedem MCP-Tool über alle Server hinweg. |83| `disallowed_tools=["*"]` | Jede Tool-Definition wird aus der Anfrage entfernt. Tool-Name-Globs werden in Deny-Regeln unterstützt: `"*"` entspricht jedem Tool und `"mcp__*"` entspricht jedem MCP-Tool über alle Server hinweg. |

79 84 

80Allow-Regeln akzeptieren Tool-Name-Globs nur nach einem literalen `mcp__<server>__`-Präfix. Das Server-Segment muss glob-frei sein, damit die Regel einen bestimmten Server benennt, den Sie konfiguriert haben: `mcp__puppeteer__*` entspricht jedem Tool vom `puppeteer`-Server, und `mcp__github__get_*` entspricht seinen `get_`-Tools. Ein unverankter Eintrag wie `allowed_tools=["*"]` oder `allowed_tools=["mcp__*"]` wird mit einer Startwarnmeldung ignoriert und genehmigt nichts automatisch.85Allow-Regeln akzeptieren Tool-Name-Globs nur nach einem literalen `mcp__<server>__`-Präfix. Das Server-Segment muss glob-frei sein, damit die Regel einen bestimmten Server benennt, den Sie konfiguriert haben: `mcp__puppeteer__*` entspricht jedem Tool vom `puppeteer`-Server, und `mcp__github__get_*` entspricht seinen `get_`-Tools. Ein unverankter Eintrag wie `allowed_tools=["*"]` oder `allowed_tools=["mcp__*"]` wird mit einer Startwarnmeldung ignoriert und genehmigt nichts automatisch.


86<Warning>91<Warning>

87 **Auto-genehmigte Tools erreichen `canUseTool` nie.** Ein Tool-Aufruf, der in einem früheren Schritt genehmigt wurde, durch `acceptEdits` oder `bypassPermissions`, oder durch eine Allow-Regel, überspringt Ihren `canUseTool`-Callback, sodass Berechtigungsprüfungen, die Sie dort durchführen, für dieses Tool stillschweigend umgangen werden. `AskUserQuestion`, MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, Connector-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), und `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, erreichen den Callback immer noch, auch wenn eine Allow-Regel passt. Im `auto`-Modus gehen kritische-Pfad-Entfernungen stattdessen zum [Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), während die anderen hier aufgelisteten Aufrufe den Callback immer noch erreichen; das Klassifizierer-Routing erfordert Claude Code v2.1.218 oder später. Im `dontAsk`-Modus werden diese Aufrufe stattdessen abgelehnt, ohne den Callback aufzurufen.92 **Auto-genehmigte Tools erreichen `canUseTool` nie.** Ein Tool-Aufruf, der in einem früheren Schritt genehmigt wurde, durch `acceptEdits` oder `bypassPermissions`, oder durch eine Allow-Regel, überspringt Ihren `canUseTool`-Callback, sodass Berechtigungsprüfungen, die Sie dort durchführen, für dieses Tool stillschweigend umgangen werden. `AskUserQuestion`, MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, Connector-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), und `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, erreichen den Callback immer noch, auch wenn eine Allow-Regel passt. Im `auto`-Modus gehen kritische-Pfad-Entfernungen stattdessen zum [Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), während die anderen hier aufgelisteten Aufrufe den Callback immer noch erreichen; das Klassifizierer-Routing erfordert Claude Code v2.1.218 oder später. Im `dontAsk`-Modus werden diese Aufrufe stattdessen abgelehnt, ohne den Callback aufzurufen.

88 93 

89 Die Abdeckung hängt von der Form des Eintrags ab: Ein einfacher Name wie `Read` oder `mcp__github__get_issue` genehmigt jeden Aufruf dieses Tools automatisch, abgesehen von den oben genannten Ausnahmen, während eine begrenzte Regel wie `Bash(ls *)` nur übereinstimmende Aufrufe automatisch genehmigt und andere `Bash`-Aufrufe immer noch zum Callback fallen. Für Prüfungen, die bei jedem Tool-Aufruf ausgeführt werden müssen, verwenden Sie einen [`PreToolUse`-Hook](/docs/de/agent-sdk/hooks): Hooks werden vor jedem anderen Schritt ausgeführt, und eine Hook-Ablehnung gilt auch im `bypassPermissions`-Modus.94 Die Abdeckung hängt von der Form des Eintrags ab: Ein einfacher Name wie `Read` oder `mcp__github__get_issue` genehmigt jeden Aufruf dieses Tools automatisch, abgesehen von den oben genannten Ausnahmen, während eine begrenzte Regel wie `Bash(npm test *)` nur übereinstimmende Aufrufe automatisch genehmigt und andere `Bash`-Aufrufe, die eine Genehmigung benötigen, immer noch zum Callback fallen. Für Prüfungen, die bei jedem Tool-Aufruf ausgeführt werden müssen, verwenden Sie einen [`PreToolUse`-Hook](/docs/de/agent-sdk/hooks): Hooks werden vor jedem anderen Schritt ausgeführt, und eine Hook-Ablehnung gilt auch im `bypassPermissions`-Modus.

90</Warning>95</Warning>

91 96 

92Für einen gesperrten Agent kombinieren Sie `allowedTools` mit `permissionMode: "dontAsk"`. Aufgelistete Tools werden genehmigt, abgesehen von den immer-Prompt-Tools in der obigen Warnung; alles andere wird direkt abgelehnt, anstatt zu fragen:97Für einen gesperrten Agent kombinieren Sie `allowedTools` mit `permissionMode: "dontAsk"`:

93 98 

94```typescript theme={null}99```typescript theme={null}

95const options = {100const options = {


98};103};

99```104```

100 105 

106Aufgelistete Tools werden genehmigt, abgesehen von den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), und jeder andere Aufruf, der eine Aufforderung auslösen würde, wird stattdessen abgelehnt. Aufrufe, die im `default`-Modus keine Genehmigung benötigen, werden ausgeführt, unabhängig davon, ob Sie sie aufgelistet haben, wie z. B. [schreibgeschützte Bash-Befehle](/docs/de/permissions#read-only-commands), Tools wie `Agent`, die vor dem Ausführen nicht fragen, und Dateileseoperationen in Ihren Arbeitsverzeichnissen. Um ein Tool vollständig außerhalb von Claudes Reichweite zu platzieren, fügen Sie seinen einfachen Namen zu `disallowedTools` hinzu.

107 

101<Warning>108<Warning>

102 **`allowed_tools` beschränkt `bypassPermissions` nicht.** `allowed_tools` genehmigt nur die Tools, die Sie aufgelistet haben. Nicht aufgelistete Tools werden von keiner Allow-Regel erfasst und fallen durch zum Berechtigungsmodus, wo `bypassPermissions` sie genehmigt. Das Setzen von `allowed_tools=["Read"]` zusammen mit `permission_mode="bypassPermissions"` genehmigt immer noch jedes Tool, einschließlich `Bash`, `Write` und `Edit`. Wenn Sie `bypassPermissions` benötigen, aber bestimmte Tools blockieren möchten, verwenden Sie `disallowed_tools`.109 **`allowed_tools` beschränkt `bypassPermissions` nicht.** `allowed_tools` genehmigt die Tools, die Sie aufgelistet haben. Andere nicht aufgelistete Tools werden von keiner Allow-Regel erfasst und fallen durch zum Berechtigungsmodus, wo `bypassPermissions` sie genehmigt. Das Setzen von `allowed_tools=["Read"]` zusammen mit `permission_mode="bypassPermissions"` genehmigt immer noch jedes Tool, einschließlich `Bash`, `Write` und `Edit`. Wenn Sie `bypassPermissions` benötigen, aber bestimmte Tools blockieren möchten, verwenden Sie `disallowed_tools`.

103</Warning>110</Warning>

104 111 

105Sie können Allow-, Deny- und Ask-Regeln auch deklarativ in `.claude/settings.json` konfigurieren. Diese Regeln werden gelesen, wenn die `project`-Einstellungsquelle aktiviert ist, was sie für Standard-`query()`-Optionen ist. Wenn Sie `setting_sources` (TypeScript: `settingSources`) explizit setzen, fügen Sie `"project"` ein, damit sie angewendet werden. Siehe [Berechtigungseinstellungen](/docs/de/settings-reference#permission-settings) für die Regelsyntax.112Sie können Allow-, Deny- und Ask-Regeln auch deklarativ in `.claude/settings.json` konfigurieren. Diese Regeln werden gelesen, wenn die `project`-Einstellungsquelle aktiviert ist, was sie für Standard-`query()`-Optionen ist. Wenn Sie `setting_sources` (TypeScript: `settingSources`) explizit setzen, fügen Sie `"project"` ein, damit sie angewendet werden. Siehe [Berechtigungseinstellungen](/docs/de/settings-reference#permission-settings) für die Regelsyntax.


117Das SDK unterstützt diese Berechtigungsmodi:124Das SDK unterstützt diese Berechtigungsmodi:

118 125 

119| Modus | Beschreibung | Tool-Verhalten |126| Modus | Beschreibung | Tool-Verhalten |

120| :------------------ | :----------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |127| :------------------ | :----------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

121| `default` | Standardberechtigungsverhalten | Keine automatischen Genehmigungen; nicht übereinstimmende Tools lösen Ihren `canUseTool`-Callback aus |128| `default` | Standardberechtigungsverhalten | Keine modusgestützten automatischen Genehmigungen; Aufrufe, die Genehmigung benötigen und keine Allow-Regel erfüllen, lösen Ihren `canUseTool`-Callback aus |

122| `dontAsk` | Ablehnung statt Nachfrage | Alles, das nicht von `allowed_tools` oder Regeln vorab genehmigt ist, wird abgelehnt; Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und Tools, die Benutzerinteraktion erfordern, werden abgelehnt, auch wenn Sie sie vorab genehmigt haben, ebenso wie `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen. `canUseTool` wird nie aufgerufen |129| `dontAsk` | Ablehnung statt Nachfrage | Jeder Aufruf, der sonst eine Nachfrage auslösen würde, wird abgelehnt. Aufrufe, die von `allowed_tools` oder Regeln genehmigt sind, werden ausgeführt, ebenso wie Aufrufe, die im `default`-Modus keine Genehmigung benötigen; Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und Tools, die Benutzerinteraktion erfordern, werden abgelehnt, auch wenn Sie sie vorab genehmigt haben, ebenso wie `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen. `canUseTool` wird nie aufgerufen |

123| `acceptEdits` | Dateibearbeitungen automatisch akzeptieren | Dateibearbeitungen und [Dateisystemvorgänge](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` usw.) werden automatisch genehmigt |130| `acceptEdits` | Dateibearbeitungen automatisch akzeptieren | Dateibearbeitungen und [Dateisystemvorgänge](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` usw.) werden automatisch genehmigt |

124| `bypassPermissions` | Berechtigungsprüfungen umgehen | Tools werden ohne Berechtigungsaufforderungen ausgeführt, mit Ausnahme von [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves). Mit Vorsicht verwenden |131| `bypassPermissions` | Berechtigungsprüfungen umgehen | Tools werden ohne Berechtigungsaufforderungen ausgeführt, mit Ausnahme von [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves). Mit Vorsicht verwenden |

125| `plan` | Planungsmodus | Claude erkundet und plant, ohne Ihre Quelldateien zu bearbeiten; Dateibearbeitungen werden nie automatisch genehmigt und werden durch Ihren `canUseTool`-Callback angefordert |132| `plan` | Planungsmodus | Claude erkundet und plant, ohne Ihre Quelldateien zu bearbeiten; Dateibearbeitungen werden nie automatisch genehmigt und werden durch Ihren `canUseTool`-Callback angefordert |

126| `auto` | Modellklassifizierte Genehmigungen | Ein Modellklassifizierer genehmigt oder lehnt Berechtigungsaufforderungen ab. Siehe [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit |133| `auto` | Modellklassifizierte Genehmigungen | Ein Modellklassifizierer genehmigt oder lehnt Berechtigungsaufforderungen ab. Siehe [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit |

127 134 

128<Warning>135<Warning>

129 **Subagent-Vererbung:** Subagents erben den Berechtigungsmodus der übergeordneten Sitzung. Ein [`AgentDefinition`'s `permissionMode`](/docs/de/agent-sdk/typescript#agentdefinition) kann ihn überschreiben, außer wenn der übergeordnete Agent `bypassPermissions`, `acceptEdits` oder `auto` verwendet: Diese Modi gelten für jeden Subagent und können nicht pro Subagent überschrieben werden. Claude Code ignoriert auch die `permissionMode: "bypassPermissions"` einer Definition, wenn der Bypass-Modus durch [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) deaktiviert ist, sodass der Subagent mit dem Modus der übergeordneten Sitzung ausgeführt wird.136 **Subagent-Vererbung:** Ein Subagent wird im Berechtigungsmodus der übergeordneten Sitzung ausgeführt, es sei denn, Sie setzen `permissionMode` auf seiner [`AgentDefinition`](/docs/de/agent-sdk/typescript#agentdefinition) und die übergeordnete Sitzung befindet sich im `default`-, `dontAsk`- oder `plan`-Modus. Selbst dann wendet Claude Code nie einen `"bypassPermissions"`-Wert an. Ein Subagent wird nur dann im `bypassPermissions`-Modus ausgeführt, wenn die übergeordnete Sitzung selbst dies tut. Die `bypassPermissions`-Ausnahme erfordert Claude Code v2.1.267 oder später.

130 137 

131 Subagents können unterschiedliche Systemaufforderungen und weniger eingeschränktes Verhalten als Ihr Hauptagent haben, daher erbt `bypassPermissions` ihnen vollständigen, autonomen Systemzugriff. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) gelten weiterhin.138 Subagents können unterschiedliche Systemaufforderungen und weniger eingeschränktes Verhalten als Ihr Hauptagent haben, daher erbt `bypassPermissions` ihnen vollständigen, autonomen Systemzugriff. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) gelten weiterhin.

132</Warning>139</Warning>


254* Dateibearbeitungen (Edit-, Write-Tools)261* Dateibearbeitungen (Edit-, Write-Tools)

255* Dateisystembefehle: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, `sed`262* Dateisystembefehle: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, `sed`

256 263 

257Beide gelten nur für Pfade innerhalb des Arbeitsverzeichnisses oder `additionalDirectories`. Pfade außerhalb dieses Bereichs, Schreibvorgänge auf geschützte Pfade und `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden weiterhin angefordert.264Beide gelten nur für Pfade innerhalb des Arbeitsverzeichnisses oder `additionalDirectories`. Im `acceptEdits`-Modus genehmigt Claude Code die Anfrage nicht automatisch, wenn Claude:

265 

266* An einem Pfad außerhalb dieses Bereichs arbeitet

267* In einen geschützten Pfad schreibt

268* Einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) mit `rm` oder `rmdir` löscht

258 269 

259**Verwenden Sie, wenn:** Sie Claudes Bearbeitungen vertrauen und schnellere Iteration wünschen, z. B. während der Prototypenerstellung oder beim Arbeiten in einem isolierten Verzeichnis.270**Verwenden Sie, wenn:** Sie Claudes Bearbeitungen vertrauen und schnellere Iteration wünschen, z. B. während der Prototypenerstellung oder beim Arbeiten in einem isolierten Verzeichnis.

260 271 


262 Don't Ask-Modus (`dontAsk`)273 Don't Ask-Modus (`dontAsk`)

263</h4>274</h4>

264 275 

265Konvertiert jede Berechtigungsaufforderung in eine Ablehnung. Tools, die von `allowed_tools`, `settings.json`-Allow-Regeln oder einem Hook vorab genehmigt sind, werden normal ausgeführt. Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), Tools, die Benutzerinteraktion erfordern, und `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden abgelehnt, auch wenn eine Allow-Regel stimmt. Ein `PreToolUse` Hook Allow hebt eine kritische Pfad-Löschung auch nicht auf. Alles andere wird abgelehnt, ohne `canUseTool` aufzurufen.276Konvertiert jede Berechtigungsaufforderung in eine Ablehnung, ohne `canUseTool` aufzurufen. Tools, die von `allowed_tools`, `settings.json`-Allow-Regeln oder einem Hook vorab genehmigt sind, werden normal ausgeführt, ebenso wie Aufrufe, die im `default`-Modus keine Genehmigung benötigen, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und Aufrufe an `Agent`. Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), Tools, die Benutzerinteraktion erfordern, und `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden abgelehnt, auch wenn eine Allow-Regel stimmt. Ein `PreToolUse` Hook Allow hebt eine kritische Pfad-Löschung auch nicht auf.

266 277 

267**Verwenden Sie, wenn:** Sie eine feste, explizite Tool-Oberfläche für einen Headless-Agent wünschen und eine harte Ablehnung gegenüber stiller Abhängigkeit von fehlender `canUseTool` bevorzugen.278**Verwenden Sie, wenn:** Sie eine feste, explizite Tool-Oberfläche für einen Headless-Agent wünschen und eine harte Ablehnung gegenüber stiller Abhängigkeit von fehlender `canUseTool` bevorzugen.

268 279 

Details

906| `session_id` | `str \| None` | `None` | Verwenden Sie eine bestimmte Sitzungs-ID statt einer automatisch generierten. Muss eine gültige UUID sein. Kann nicht mit `continue_conversation` oder `resume` kombiniert werden, es sei denn, `fork_session` ist auch gesetzt |906| `session_id` | `str \| None` | `None` | Verwenden Sie eine bestimmte Sitzungs-ID statt einer automatisch generierten. Muss eine gültige UUID sein. Kann nicht mit `continue_conversation` oder `resume` kombiniert werden, es sei denn, `fork_session` ist auch gesetzt |

907| `max_turns` | `int \| None` | `None` | Maximale agentengesteuerte Umdrehungen (Tool-Use-Rundgänge) |907| `max_turns` | `int \| None` | `None` | Maximale agentengesteuerte Umdrehungen (Tool-Use-Rundgänge) |

908| `max_budget_usd` | `float \| None` | `None` | Stoppen Sie die Abfrage, wenn die clientseitige Kostenschätzung diesen USD-Wert erreicht. Verglichen mit der gleichen Schätzung wie `total_cost_usd`; siehe [Kosten und Nutzung verfolgen](/docs/de/agent-sdk/cost-tracking) für Genauigkeitsvorbehalt |908| `max_budget_usd` | `float \| None` | `None` | Stoppen Sie die Abfrage, wenn die clientseitige Kostenschätzung diesen USD-Wert erreicht. Verglichen mit der gleichen Schätzung wie `total_cost_usd`; siehe [Kosten und Nutzung verfolgen](/docs/de/agent-sdk/cost-tracking) für Genauigkeitsvorbehalt |

909| `disallowed_tools` | `list[str]` | `[]` | Tools, die verweigert werden. Ein einfacher Name wie `"Bash"` entfernt das Tool aus Claudes Kontext. Eine scoped-Regel wie `"Bash(rm *)"` lässt das Tool verfügbar und verweigert übereinstimmende Aufrufe in jedem Berechtigungsmodus, einschließlich `bypassPermissions`. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |909| `disallowed_tools` | `list[str]` | `[]` | Tools, die verweigert werden. Ein einfacher Name wie `"Bash"` entfernt das Tool aus Claudes Kontext. Eine scoped-Regel wie `"Bash(rm *)"` lässt das Tool verfügbar und verweigert übereinstimmende Aufrufe in jedem Berechtigungsmodus, einschließlich `bypassPermissions`, für den Befehl [wie geschrieben](/docs/de/permissions#bash-rule-limits). Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |

910| `enable_file_checkpointing` | `bool` | `False` | Aktivieren Sie die Dateienänderungsverfolgung zum Zurückspulen. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |910| `enable_file_checkpointing` | `bool` | `False` | Aktivieren Sie die Dateienänderungsverfolgung zum Zurückspulen. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |

911| `model` | `str \| None` | `None` | Claude-Modell-Alias oder vollständiger Modellname. Siehe [akzeptierte Werte und anbieter-spezifische IDs](/docs/de/model-config#available-models) |911| `model` | `str \| None` | `None` | Claude-Modell-Alias oder vollständiger Modellname. Siehe [akzeptierte Werte und anbieter-spezifische IDs](/docs/de/model-config#available-models) |

912| `fallback_model` | `str \| None` | `None` | Fallback-Modell, das verwendet wird, wenn das primäre Modell fehlschlägt |912| `fallback_model` | `str \| None` | `None` | Fallback-Modell, das verwendet wird, wenn das primäre Modell fehlschlägt |


927| `user` | `str \| None` | `None` | Benutzerkennung |927| `user` | `str \| None` | `None` | Benutzerkennung |

928| `include_partial_messages` | `bool` | `False` | Schließen Sie partielle Nachrichtenstreaming-Ereignisse ein. Wenn aktiviert, werden [`StreamEvent`](#streamevent)-Nachrichten geliefert |928| `include_partial_messages` | `bool` | `False` | Schließen Sie partielle Nachrichtenstreaming-Ereignisse ein. Wenn aktiviert, werden [`StreamEvent`](#streamevent)-Nachrichten geliefert |

929| `include_hook_events` | `bool` | `False` | Schließen Sie Hook-Lebenszyklusereignisse im Nachrichtenstrom als `HookEventMessage`-Objekte ein |929| `include_hook_events` | `bool` | `False` | Schließen Sie Hook-Lebenszyklusereignisse im Nachrichtenstrom als `HookEventMessage`-Objekte ein |

930| `forward_subagent_text` | `bool` | `False` | Leiten Sie Subagenten-Text und Thinking-Blöcke im Nachrichtenstrom weiter. Standardmäßig werden nur Subagenten-`tool_use`- und `tool_result`-Blöcke ausgegeben. Erfordert Python Agent SDK 0.2.140 oder später |930| `forward_subagent_text` | `bool` | `False` | Leiten Sie Subagenten-Text und Thinking-Blöcke im Nachrichtenstrom weiter. Ohne diese Option gibt Claude Code nur Subagenten-`tool_use`- und `tool_result`-Blöcke aus, aber keinen Text oder Thinking. Erfordert Python Agent SDK 0.2.140 oder später |

931| `fork_session` | `bool` | `False` | Wenn Sie mit `resume` fortsetzen, verzweigen Sie sich zu einer neuen Sitzungs-ID, anstatt die ursprüngliche Sitzung fortzusetzen |931| `fork_session` | `bool` | `False` | Wenn Sie mit `resume` fortsetzen, verzweigen Sie sich zu einer neuen Sitzungs-ID, anstatt die ursprüngliche Sitzung fortzusetzen |

932| `resume_session_at` | `str \| None` | `None` | Beim Fortsetzen laden Sie die Konversation nur bis zu und einschließlich der Nachricht mit dieser UUID. Verwenden Sie mit `resume`, und normalerweise `fork_session`, um von einem früheren Punkt zu verzweigen. Erfordert Python Agent SDK 0.2.137 oder später |932| `resume_session_at` | `str \| None` | `None` | Beim Fortsetzen laden Sie die Konversation nur bis zu und einschließlich der Nachricht mit dieser UUID. Verwenden Sie mit `resume`, und normalerweise `fork_session`, um von einem früheren Punkt zu verzweigen. Erfordert Python Agent SDK 0.2.137 oder später |

933| `resume_drops_turn` | `str \| None` | `None` | UUID der Benutzereingabe, deren Umdrehung eine `resume_session_at`-Kürzung verwirft. Wenn gesetzt, weigert sich die CLI, die Wiederaufnahme durchzuführen, wenn der verworfene Bereich Einträge enthält, die nicht dieser Umdrehung zugeordnet werden können. Erfordert Python Agent SDK 0.2.137 oder später und Claude Code v2.1.223 oder später; die mit diesen SDK-Versionen gebündelte CLI erfüllt die Claude Code-Anforderung |933| `resume_drops_turn` | `str \| None` | `None` | UUID der Benutzereingabe, deren Umdrehung eine `resume_session_at`-Kürzung verwirft. Wenn gesetzt, weigert sich die CLI, die Wiederaufnahme durchzuführen, wenn der verworfene Bereich Einträge enthält, die nicht dieser Umdrehung zugeordnet werden können. Erfordert Python Agent SDK 0.2.137 oder später und Claude Code v2.1.223 oder später; die mit diesen SDK-Versionen gebündelte CLI erfüllt die Claude Code-Anforderung |


1181| `maxTurns` | Nein | Maximale Anzahl von Agenten-Umdrehungen, bevor der Agent stoppt |1181| `maxTurns` | Nein | Maximale Anzahl von Agenten-Umdrehungen, bevor der Agent stoppt |

1182| `background` | Nein | Führen Sie diesen Agenten als nicht-blockierende Hintergrundaufgabe aus, wenn aufgerufen |1182| `background` | Nein | Führen Sie diesen Agenten als nicht-blockierende Hintergrundaufgabe aus, wenn aufgerufen |

1183| `effort` | Nein | Reasoning-Anstrengungsstufe für diesen Agenten. Akzeptiert eine benannte Stufe oder eine Ganzzahl. Siehe [`EffortLevel`](#effortlevel) |1183| `effort` | Nein | Reasoning-Anstrengungsstufe für diesen Agenten. Akzeptiert eine benannte Stufe oder eine Ganzzahl. Siehe [`EffortLevel`](#effortlevel) |

1184| `permissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten. Siehe [`PermissionMode`](#permissionmode) |1184| `permissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten. Die [Subagenten-Vererbungsregeln](/docs/de/agent-sdk/permissions#available-modes) entscheiden, wann er angewendet wird. Siehe [`PermissionMode`](#permissionmode) |

1185 1185 

1186<Note>1186<Note>

1187 `AgentDefinition`-Feldnamen verwenden camelCase, wie `disallowedTools`, `permissionMode` und `maxTurns`. Diese Namen werden direkt dem Drahtformat zugeordnet, das mit dem TypeScript SDK geteilt wird. Dies unterscheidet sich von `ClaudeAgentOptions`, das Python snake\_case für die entsprechenden Top-Level-Felder wie `disallowed_tools` und `permission_mode` verwendet. Da `AgentDefinition` eine Dataclass ist, wirft das Übergeben eines snake\_case-Schlüsselworts einen `TypeError` zur Konstruktionszeit auf.1187 `AgentDefinition`-Feldnamen verwenden camelCase, wie `disallowedTools`, `permissionMode` und `maxTurns`. Diese Namen werden direkt dem Drahtformat zugeordnet, das mit dem TypeScript SDK geteilt wird. Dies unterscheidet sich von `ClaudeAgentOptions`, das Python snake\_case für die entsprechenden Top-Level-Felder wie `disallowed_tools` und `permission_mode` verwendet. Da `AgentDefinition` eine Dataclass ist, wirft das Übergeben eines snake\_case-Schlüsselworts einen `TypeError` zur Konstruktionszeit auf.


2697 "run_in_background": bool | None, # Agenten laufen standardmäßig im Hintergrund; auf False setzen, um synchron auszuführen2697 "run_in_background": bool | None, # Agenten laufen standardmäßig im Hintergrund; auf False setzen, um synchron auszuführen

2698 "name": str | None, # Name für den erzeugten Agent2698 "name": str | None, # Name für den erzeugten Agent

2699 "team_name": str | None, # Veraltet; wird ignoriert2699 "team_name": str | None, # Veraltet; wird ignoriert

2700 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # Veraltet; wird ignoriert. Subagenten erben den Berechtigungsmodus der übergeordneten Sitzung; die Agent-Definitions-Frontmatter kann ihn überschreiben2700 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # Veraltet; wird ignoriert. Der Berechtigungsmodus des Subagenten wird durch Vererbungsregeln bestimmt; die Agent-Definitions-Frontmatter kann ihn überschreiben

2701 "isolation": "worktree" | "remote" | None, # Isolationsmodus für die Änderungen des Agenten2701 "isolation": "worktree" | "remote" | None, # Isolationsmodus für die Änderungen des Agenten

2702}2702}

2703```2703```


3162**Tool-Name:** `TodoWrite`3162**Tool-Name:** `TodoWrite`

3163 3163 

3164<Note>3164<Note>

3165 Auf Python Agent SDK 0.2.139 und später gilt die folgende Einschränkung.

3166 

3167 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3165 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

3168 3166 

3169 * `TodoWrite`3167 * `TodoWrite`

Details

6 6 

7> Erhalten Sie Echtzeit-Antworten vom Agent SDK, während Text und Tool-Aufrufe gestreamt werden7> Erhalten Sie Echtzeit-Antworten vom Agent SDK, während Text und Tool-Aufrufe gestreamt werden

8 8 

9Standardmäßig liefert das Agent SDK vollständige `AssistantMessage`-Objekte, nachdem Claude die Generierung jeder Antwort abgeschlossen hat. Um inkrementelle Aktualisierungen zu erhalten, während Text und Tool-Aufrufe generiert werden, aktivieren Sie das Streaming von Teillmeldungen.9Standardmäßig liefert das Agent SDK eine vollständige `AssistantMessage` für jeden nicht leeren Inhaltsblock, wie einen Textblock oder einen Tool-Aufruf, nachdem Claude die Generierung dieses Blocks abgeschlossen hat. Um inkrementelle Aktualisierungen zu erhalten, während Text und Tool-Aufrufe generiert werden, aktivieren Sie das Streaming von Teillmeldungen.

10 10 

11<Tip>11<Tip>

12 Diese Seite behandelt das Ausgabe-Streaming (Empfangen von Token in Echtzeit). Informationen zu Eingabemodi (wie Sie Nachrichten senden), finden Sie unter [Nachrichten an Agenten senden](/docs/de/agent-sdk/streaming-vs-single-mode). Sie können auch [Antworten mit dem Agent SDK über die CLI streamen](/docs/de/headless).12 Diese Seite behandelt das Ausgabe-Streaming (Empfangen von Token in Echtzeit). Informationen zu Eingabemodi (wie Sie Nachrichten senden), finden Sie unter [Nachrichten an Agenten senden](/docs/de/agent-sdk/streaming-vs-single-mode). Sie können auch [Antworten mit dem Agent SDK über die CLI streamen](/docs/de/headless).


102 uuid: UUID;102 uuid: UUID;

103 session_id: string;103 session_id: string;

104 ttft_ms?: number; // Time to first token in ms, present only on message_start events104 ttft_ms?: number; // Time to first token in ms, present only on message_start events

105 user_message_uuid?: string;

105 };106 };

106 ```107 ```

107</CodeGroup>108</CodeGroup>

108 109 

109Das Feld `parent_tool_use_id` ist in Python immer `None` und in TypeScript immer `null`. Streaming-Ereignisse werden nur für die Hauptsitzung ausgegeben; Token-Level-Deltas von Subagenten werden nicht weitergeleitet. Um die Ausgabe einem Subagenten zuzuordnen, verwenden Sie vollständige Nachrichten, die `parent_tool_use_id` enthalten. Siehe [Subagenten-Aufruf erkennen](/docs/de/agent-sdk/subagents#detect-subagent-invocation).110Das Feld `parent_tool_use_id` ist in Python immer `None` und in TypeScript immer `null`. Streaming-Ereignisse werden nur für die Hauptsitzung ausgegeben; Token-Level-Deltas von Subagenten werden nicht weitergeleitet. Um die Ausgabe einem Subagenten zuzuordnen, verwenden Sie vollständige Nachrichten, die `parent_tool_use_id` enthalten. Siehe [Subagenten-Aufruf erkennen](/docs/de/agent-sdk/subagents#detect-subagent-invocation).

110 111 

112Claude Code setzt `user_message_uuid` beim ersten Nicht-Ping-Streaming-Ereignis des Durchlaufs und erneut, wenn sich die Nachricht ändert, auf die der Durchlauf antwortet, unter den Bedingungen in [`user_message_uuid`](/docs/de/agent-sdk/typescript#user_message_uuid). Der Python `StreamEvent` macht dieses Feld nicht verfügbar.

113 

111Das Feld `event` enthält das rohe Streaming-Ereignis aus der [Claude API](https://platform.claude.com/docs/en/build-with-claude/streaming#event-types). Häufige Ereignistypen sind:114Das Feld `event` enthält das rohe Streaming-Ereignis aus der [Claude API](https://platform.claude.com/docs/en/build-with-claude/streaming#event-types). Häufige Ereignistypen sind:

112 115 

113| Ereignistyp | Beschreibung |116| Ereignistyp | Beschreibung |


123 Nachrichtenfluss126 Nachrichtenfluss

124</h2>127</h2>

125 128 

126Mit aktivierten Teilnachrichten erhalten Sie Nachrichten in dieser Reihenfolge:129Claude Code gibt eine `AssistantMessage` aus, sobald jeder nicht-leere Inhaltsblock abgeschlossen ist. Eine Antwort mit einem Textblock und einem Werkzeugaufruf ergibt also zwei `AssistantMessage`-Objekte. Jedes trägt nur seinen eigenen Inhaltsblock, und beide teilen sich dieselbe Nachrichten-ID, die Sie in TypeScript als `message.message.id` und in Python als `message.message_id` lesen. Mit aktivierten Teilnachrichten kommt jede `AssistantMessage` vor dem `content_block_stop`-Ereignis dieses Blocks an, und Sie erhalten Nachrichten in dieser Reihenfolge:

127 130 

128```text theme={null}131```text theme={null}

129StreamEvent (message_start)132StreamEvent (message_start)

130StreamEvent (content_block_start) - text block133StreamEvent (content_block_start) - text block

131StreamEvent (content_block_delta) - text chunks...134StreamEvent (content_block_delta) - text chunks...

135AssistantMessage - complete text block

132StreamEvent (content_block_stop)136StreamEvent (content_block_stop)

133StreamEvent (content_block_start) - tool_use block137StreamEvent (content_block_start) - tool_use block

134StreamEvent (content_block_delta) - tool input chunks...138StreamEvent (content_block_delta) - tool input chunks...

139AssistantMessage - complete tool_use block

135StreamEvent (content_block_stop)140StreamEvent (content_block_stop)

136StreamEvent (message_delta)141StreamEvent (message_delta)

137StreamEvent (message_stop)142StreamEvent (message_stop)

138AssistantMessage - complete message with all content

139... tool executes ...143... tool executes ...

140... more streaming events for next turn ...144... more streaming events for next turn ...

141ResultMessage - final result145ResultMessage - final result

142```146```

143 147 

144Ohne aktivierte Teilnachrichten erhalten Sie alle Nachrichtentypen außer `StreamEvent`. Häufige Typen sind `SystemMessage` (Sitzungsinitialisierung), `AssistantMessage` (vollständige Antworten), `ResultMessage` (Endergebnis) und eine kompakte Grenzmarkierungsnachricht, die anzeigt, wann der Gesprächsverlauf komprimiert wurde (`SDKCompactBoundaryMessage` in TypeScript; `SystemMessage` mit Subtyp `"compact_boundary"` in Python).148Ohne aktivierte Teilnachrichten erhalten Sie alle Nachrichtentypen außer `StreamEvent`. Häufige Typen sind `SystemMessage` (Sitzungsinitialisierung), `AssistantMessage` (vollständige Inhaltsblöcke), `ResultMessage` (Endergebnis) und eine kompakte Grenzmarkierungsnachricht, die anzeigt, wann der Gesprächsverlauf komprimiert wurde (`SDKCompactBoundaryMessage` in TypeScript; `SystemMessage` mit Subtyp `"compact_boundary"` in Python).

145 149 

146<h2 id="stream-tool-calls">150<h2 id="stream-tool-calls">

147 Tool-Aufrufe streamen151 Tool-Aufrufe streamen

Details

166| `maxTurns` | `number` | Nein | Maximale Anzahl von Agent-Runden, bevor der Agent stoppt. Wenn der Agent das Limit erreicht, gibt Claude Code seine Ausgabe als teilweise markiert zurück, und Sie können [den Agent fortsetzen](#resume-subagents), um fortzufahren. Die teilweise Markierung erfordert Claude Code v2.1.246 oder später |166| `maxTurns` | `number` | Nein | Maximale Anzahl von Agent-Runden, bevor der Agent stoppt. Wenn der Agent das Limit erreicht, gibt Claude Code seine Ausgabe als teilweise markiert zurück, und Sie können [den Agent fortsetzen](#resume-subagents), um fortzufahren. Die teilweise Markierung erfordert Claude Code v2.1.246 oder später |

167| `background` | `boolean` | Nein | Führen Sie diesen Agent als nicht-blockierende Hintergrund-Aufgabe aus, wenn er aufgerufen wird |167| `background` | `boolean` | Nein | Führen Sie diesen Agent als nicht-blockierende Hintergrund-Aufgabe aus, wenn er aufgerufen wird |

168| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Nein | Reasoning-Aufwandsstufe für diesen Agent |168| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Nein | Reasoning-Aufwandsstufe für diesen Agent |

169| `permissionMode` | `PermissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten |169| `permissionMode` | `PermissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten. Die [Subagenten-Vererbungsregeln](/docs/de/agent-sdk/permissions#available-modes) entscheiden, wann er angewendet wird |

170 170 

171Im Python SDK behalten mehrteilige Feldnamen wie `disallowedTools` und `mcpServers` ihre camelCase-Schreibweise, um dem Wire-Format zu entsprechen, anstatt Pythons snake\_case-Konvention zu folgen. Siehe die [`AgentDefinition`-Referenz](/docs/de/agent-sdk/python#agentdefinition) für Details.171Im Python SDK behalten mehrteilige Feldnamen wie `disallowedTools` und `mcpServers` ihre camelCase-Schreibweise, um dem Wire-Format zu entsprechen, anstatt Pythons snake\_case-Konvention zu folgen. Siehe die [`AgentDefinition`-Referenz](/docs/de/agent-sdk/python#agentdefinition) für Details.

172 172 

Details

6 6 

7> Verfolgen Sie Todos in Agent SDK-Sitzungen und rendern Sie Claudes Fortschritt in Ihrer Anwendung aus strukturierten Tool-Aufrufen7> Verfolgen Sie Todos in Agent SDK-Sitzungen und rendern Sie Claudes Fortschritt in Ihrer Anwendung aus strukturierten Tool-Aufrufen

8 8 

9Bei den unter [Modellverfügbarkeit](#model-availability) aufgelisteten Modellen verfolgt Claude mehrstufige Arbeiten ohne eine schriftliche Todo-Liste, und Claude Code lässt die [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) standardmäßig aus Sitzungen aus. Sie benötigen nichts auf dieser Seite, damit Claude mehrstufige Aufgaben auf diesen Modellen durcharbeitet.9Claude Code stellt die [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) standardmäßig nur auf den unter [Modellverfügbarkeit](#model-availability) aufgelisteten Modellen bereit. Neuere Modelle verfolgen mehrstufige Arbeiten ohne eine schriftliche Todo-Liste, daher benötigen Sie auf diesen nichts auf dieser Seite, damit Claude mehrstufige Aufgaben durcharbeitet.

10 10 

11In einer Sitzung, die die Task-Tracking-Tools hat, führt Claude eine schriftliche Todo-Liste, aktualisiert den Status jedes Elements während der Arbeit. Sie sehen jede Änderung im Nachrichtenstrom als strukturierten Tool-Aufruf. Aktivieren Sie eine Sitzung nur, wenn Ihre Anwendung diese Tool-Aufrufe liest, sei es zum Protokollieren von Task-Aktivitäten oder zum Rendern einer eigenen Fortschrittsanzeige.11In einer Sitzung, die die Task-Tracking-Tools hat, führt Claude eine schriftliche Todo-Liste, aktualisiert den Status jedes Elements während der Arbeit. Sie sehen jede Änderung im Nachrichtenstrom als strukturierten Tool-Aufruf. Aktivieren Sie eine Sitzung nur, wenn Ihre Anwendung diese Tool-Aufrufe liest, sei es zum Protokollieren von Task-Aktivitäten oder zum Rendern einer eigenen Fortschrittsanzeige.

12 12 


15</h2>15</h2>

16 16 

17<Note>17<Note>

18 Bei TypeScript Agent SDK 0.3.233 und später oder Python Agent SDK 0.2.139 und später gilt die folgende Einschränkung.

19 

20 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:18 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

21 19 

22 * `TodoWrite`20 * `TodoWrite`


30 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.28 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

31</Note>29</Note>

32 30 

33Bei den aufgelisteten Modellen sehen Sie keine `tool_use`-Blöcke für die Tools im Nachrichtenstrom, es sei denn, Sie aktivieren eine Sitzung. Das Agent SDK wendet diese Standardeinstellungen über die Claude Code-Binärdatei an, die es bündelt. Wenn Sie `pathToClaudeCodeExecutable` (TypeScript) oder `cli_path` (Python) auf Ihre eigene Claude Code-Installation verweisen, erhalten Sie die Tools, die diese Installation bereitstellt, unter ihren eigenen Standardeinstellungen. Um die genaue Menge in einer laufenden Sitzung zu sehen, [überprüfen Sie, welche Tools verfügbar sind](/docs/de/tools-reference#check-which-tools-are-available). Um eine Sitzung zu aktivieren, führen Sie eines der folgenden Verfahren durch:31Bei einem Modell, das die Tools standardmäßig nicht hat, sehen Sie keine `tool_use`-Blöcke für diese im Nachrichtenstrom, es sei denn, Sie aktivieren eine Sitzung. Das Agent SDK wendet diese Standardeinstellungen über die Claude Code-Binärdatei an, die es bündelt. Wenn Sie `pathToClaudeCodeExecutable` (TypeScript) oder `cli_path` (Python) auf Ihre eigene Claude Code-Installation verweisen, erhalten Sie die Tools, die diese Installation bereitstellt, unter ihren eigenen Standardeinstellungen. Um die genaue Menge in einer laufenden Sitzung zu sehen, [überprüfen Sie, welche Tools verfügbar sind](/docs/de/tools-reference#check-which-tools-are-available). Um eine Sitzung zu aktivieren, führen Sie eines der folgenden Verfahren durch:

34 32 

35* Nennen Sie eines der Tools in der Option [`allowedTools`](/docs/de/agent-sdk/permissions#allow-and-deny-rules) (TypeScript) oder `allowed_tools` (Python)33* Nennen Sie eines der Tools in der Option [`allowedTools`](/docs/de/agent-sdk/permissions#allow-and-deny-rules) (TypeScript) oder `allowed_tools` (Python)

36* Listen Sie die Tools in der Option `tools` auf, die die integrierten Tools der Sitzung auf die beschriebenen beschränkt. Fügen Sie die gewünschten Tools neben den anderen integrierten Tools ein, die Sie verwenden34* Listen Sie die Tools in der Option `tools` auf, die die integrierten Tools der Sitzung auf die beschriebenen beschränkt. Fügen Sie die gewünschten Tools neben den anderen integrierten Tools ein, die Sie verwenden

agent-sdk/troubleshooting.md +161 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Fehlerbehebung im Agent SDK

6 

7> Beheben Sie Agent SDK-Fehler anhand der genauen Meldung, die Sie sehen, mit der Ursache und Lösung für jeden Fehler in den TypeScript- und Python-SDKs.

8 

9Die Einträge auf dieser Seite sind nach dem Fehler, den Sie sehen, sortiert. Jeder Eintrag nennt die Ursache und was zu tun ist.

10 

11<h2 id="cli-startup">

12 CLI-Start

13</h2>

14 

15<h3 id="clinotfounderror-claude-code-not-found">

16 CLINotFoundError: Claude Code nicht gefunden

17</h3>

18 

19Das Python SDK startet die Claude Code CLI als Unterprozess. Wenn es keine `claude`-Ausführungsdatei finden kann, schlägt die Verbindung mit einem `CLINotFoundError` fehl:

20 

21```

22Claude Code not found at: /your/configured/path

23```

24 

25Die Meldung enthält den konfigurierten Pfad, wenn Sie `ClaudeAgentOptions(cli_path=...)` setzen und dieser auf eine fehlende Datei verweist. Ohne `cli_path` durchsucht das SDK Ihren `PATH` und häufige Installationsorte, und die Meldung enthält Installationsanweisungen für Ihre Plattform.

26 

27So beheben Sie das Problem:

28 

29* Installieren Sie Claude Code, falls es nicht installiert ist. Siehe [Claude Code installieren](/docs/de/setup#install-claude-code) für den Befehl auf Ihrer Plattform.

30* Wenn Sie `cli_path` setzen, bestätigen Sie, dass die Datei existiert und die `claude`-Ausführungsdatei ist.

31* Wenn Sie sich auf `PATH`-Auflösung verlassen, bestätigen Sie, dass `claude --version` in der gleichen Umgebung funktioniert, in der Ihre Anwendung läuft. Prozesse, die Sie außerhalb Ihrer Shell starten, z. B. von einer IDE oder einem Service Manager, laufen oft mit einem anderen `PATH`.

32 

33Das TypeScript SDK sucht die CLI in seinem gebündelten Plattformpaket und dem Pfad, den Sie in `pathToClaudeCodeExecutable` setzen. Passen Sie die Meldung an, die Sie sehen:

34 

35* `Native CLI binary for <platform>-<arch> not found`: Das gebündelte Plattformpaket fehlt, meistens weil die Installation optionale Abhängigkeiten übersprungen hat. Installieren Sie `@anthropic-ai/claude-agent-sdk` neu, ohne optionale Abhängigkeiten zu überspringen, oder verweisen Sie `pathToClaudeCodeExecutable` auf eine [native Installation](/docs/de/setup#install-claude-code). In einer einzelnen ausführbaren Datei, die mit `bun build --compile` erstellt wurde, hat die gleiche Meldung eine andere Ursache und Lösung. Siehe [In eine einzelne ausführbare Datei kompilieren](/docs/de/agent-sdk/typescript#compile-to-a-single-executable).

36* `Claude Code native binary not found at <path>` oder `Claude Code executable not found at <path>. Is options.pathToClaudeCodeExecutable set?`: Die Datei im aufgelösten Pfad fehlt, oder der Prozess kann nicht darauf zugreifen. Bestätigen Sie, dass die Datei in diesem Pfad existiert und dass der Prozess darauf zugreifen kann.

37 

38<h3 id="cliconnectionerror-refusing-to-execute-batch-script">

39 CLIConnectionError: Refusing to execute batch script

40</h3>

41 

42Unter Windows schlägt die Verbindung mit einem `CLIConnectionError` fehl, wenn der CLI-Pfad, den das Python SDK verwendet, ein `.bat`- oder `.cmd`-Batch-Skript ist, einschließlich des `claude.cmd`-Shims, das eine npm-Installation erstellt:

43 

44```

45Refusing to execute batch script 'C:\\Users\\you\\AppData\\Roaming\\npm\\claude.cmd': Windows runs .bat/.cmd files via cmd.exe, which can execute commands injected through CLI arguments, and no reliable escaping for cmd.exe exists. Use a native claude executable instead: install Claude Code natively (irm https://claude.ai/install.ps1 | iex), point ClaudeAgentOptions(cli_path=...) at a claude.exe, or install the claude-agent-sdk wheel for a platform that bundles claude.exe (e.g. Windows x64).

46```

47 

48Die Weigerung ist absichtliche Sicherheitshärtung, nicht eine fehlerhafte Installation. Windows führt Batch-Skripte aus, indem es den Spawn in einen `cmd.exe /c`-Aufruf umschreibt, und `cmd.exe` analysiert die gesamte Befehlszeile zur Ausführungszeit neu, sodass ein Argumentwert injizierte Befehle ausführen kann.

49 

50Die meisten Windows-Installationen erreichen diesen Fehler nie. Das Windows x64-Wheel von `claude-agent-sdk` enthält eine `claude.exe`, und das SDK bevorzugt die gebündelte CLI, dann jede native `claude.exe`, die es entdecken kann, bevor es auf einen Batch-Shim zurückfällt. Sie sehen die Weigerung in zwei Fällen:

51 

52* Sie setzen `ClaudeAgentOptions(cli_path=...)` auf eine `.bat`- oder `.cmd`-Datei, z. B. das `claude.cmd`-Shim von npm.

53* Ihre Installation hat keine gebündelte oder native `claude.exe`, z. B. eine Quellinstallation auf ARM64 Windows, wo die einzige `claude` auf Ihrem `PATH` das npm-Shim ist.

54 

55Um das Problem zu beheben, geben Sie dem SDK eine native ausführbare Datei statt eines Batch-Skripts:

56 

57* Wenn Sie `ClaudeAgentOptions(cli_path=...)` setzen, verweisen Sie auf eine `claude.exe` oder entfernen Sie die Option. Das SDK überspringt die Erkennung, während `cli_path` gesetzt ist, sodass eine native Installation allein nicht wirksam werden kann.

58* Installieren Sie Claude Code nativ in PowerShell: `irm https://claude.ai/install.ps1 | iex`

59* Auf x64 Windows installieren Sie das `claude-agent-sdk`-Wheel, das `claude.exe` enthält.

60 

61Vor `claude-agent-sdk` 0.2.124 spawnten das Python SDK Batch-Skripte über `cmd.exe` ohne diese Überprüfung.

62 

63<h3 id="cliconnectionerror-failed-to-start-claude-code">

64 CLIConnectionError: Failed to start Claude Code

65</h3>

66 

67Das SDK hat eine Datei im aufgelösten Pfad gefunden, konnte sie aber nicht starten. Python löst diese Fehler als `CLIConnectionError` aus. TypeScript lehnt die Nachrichteniteration mit einem Fehler ab, der keine SDK-Klasse trägt. Die folgende Tabelle ordnet jede Meldung dem zu, was sie Ihnen sagt. Passen Sie die Meldung an, die Sie sehen:

68 

69| Meldung | SDK | Was es Ihnen sagt |

70| ----------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------- |

71| `Failed to start Claude Code: <detail>` | Python | Der Rest der Meldung ist der eigene Fehler des Betriebssystems |

72| `Claude Code executable at <path> exists but failed to launch` | TypeScript | Das Skript im konfigurierten Pfad kann nicht ausgeführt werden |

73| `Claude Code native binary at <path> exists but failed to launch` | TypeScript | Die Binärdatei kann nicht ausgeführt werden, mit einem libc-Vorschlag am Ende der Meldung |

74| `Failed to spawn Claude Code process: <detail>` | TypeScript | Jeder andere Startfehler |

75 

76In beiden SDKs ist die übliche Ursache ein aufgelöster Pfad, der auf etwas verweist, das nicht ausgeführt werden kann, z. B. eine Textdatei, ein Verzeichnis oder eine Datei ohne Ausführungsberechtigung. Lesen Sie den libc-Vorschlag der Meldung der nativen Binärdatei als eine mögliche Ursache.

77 

78Um das Problem in beiden SDKs zu beheben:

79 

80* Bestätigen Sie, dass der konfigurierte Pfad auf die `claude`-Ausführungsdatei selbst verweist und dass die Datei Ausführungsberechtigung hat.

81* Wenn Sie keinen benutzerdefinierten Pfad benötigen, entfernen Sie `cli_path` in Python oder `pathToClaudeCodeExecutable` in TypeScript, damit das SDK eine CLI selbst findet und seine gebündelte Kopie bevorzugt.

82* Wenn die fehlerhafte Binärdatei die gebündelte Kopie des SDK in einem Container-Image ist, installieren Sie das SDK während des Image-Builds neu, damit die gebündelte Binärdatei der Plattform des Containers entspricht, oder erstellen Sie das Image für die Architektur, auf der es läuft, neu. Die übliche Ursache ist eine Binärdatei, die nicht der Architektur oder libc des Containers entspricht, oder eine, die während des Image-Builds ihre Ausführungsberechtigung verloren hat.

83 

84<h3 id="cliconnectionerror-not-connected">

85 CLIConnectionError: Not connected

86</h3>

87 

88Das Aufrufen einer `ClaudeSDKClient`-Methode in Python, bevor der Client verbunden ist, oder nachdem er getrennt wurde, löst einen `CLIConnectionError` mit dieser Meldung aus:

89 

90```

91Not connected. Call connect() first.

92```

93 

94Tun Sie, was die Meldung sagt. Rufen Sie entweder `await client.connect()` vor jeder anderen Client-Methode auf, oder öffnen Sie den Client mit `async with ClaudeSDKClient() as client:`, was beim Eintritt verbindet.

95 

96<h2 id="cli-process-exit">

97 CLI-Prozessbeendigung

98</h2>

99 

100Die Einträge in diesem Abschnitt bedeuten, dass der Claude Code-Prozess beendet wurde, während Ihre Anwendung ihn verwendete. Welcher Fehler Sie sehen, hängt von der SDK-Sprache und davon ab, ob die CLI ein Fehlerergebnis gemeldet hat, bevor sie beendet wurde.

101 

102<h3 id="processerror-command-failed-with-exit-code">

103 ProcessError: Command failed with exit code

104</h3>

105 

106Das Python SDK löst einen `ProcessError` aus, wenn der Claude Code-Prozess mit einem Nicht-Null-Code beendet wird:

107 

108```

109Command failed with exit code 1 (exit code: 1)

110Error output: Check stderr output for details

111```

112 

113Die Meldung gibt den Exit-Code zweimal an, und die `Error output`-Zeile ist fester Text statt der Fehlerausgabe Ihres Prozesses. Der gleiche feste Text füllt das `stderr`-Attribut der Ausnahme. Das `exit_code`-Attribut der Ausnahme trägt den Code. Um zu erfassen, was die CLI tatsächlich in stderr geschrieben hat, übergeben Sie einen `stderr`-Callback in `ClaudeAgentOptions` und protokollieren Sie, was er empfängt.

114 

115Ein bloßer `ProcessError` bedeutet, dass die CLI beendet wurde, ohne ein Fehlerergebnis zu melden. Wenn die CLI eines gemeldet hat, löst das SDK stattdessen [`ResultError`](/docs/de/agent-sdk/python#resulterror) aus, das in [Claude Code hat ein Fehlerergebnis zurückgegeben](#claude-code-returned-an-error-result) behandelt wird. `ResultError` ist eine Unterklasse von `ProcessError`, sodass `except ProcessError` beide erfasst. Um sie unterschiedlich zu behandeln, setzen Sie die `except ResultError`-Klausel zuerst.

116 

117Vor `claude-agent-sdk` 0.2.140 löste das Python SDK Fehler-Ergebnis-Exits als einfache `Exception` statt als `ResultError` aus.

118 

119<h3 id="claude-code-process-exited-with-code-n">

120 Claude Code process exited with code N

121</h3>

122 

123IDE-Wrapper drucken diese Meldung auch, und die [Fehlerreferenz](/docs/de/errors#claude-code-process-exited-with-code-n) behandelt sie für VS Code und andere Launcher. Dieser Eintrag behandelt, was Ihr TypeScript SDK-Code empfängt. Das SDK zeigt einen Nicht-Null-CLI-Exit als einfachen `Error` an, der die `for await`-Schleife über die Nachrichten von `query()` ablehnt. Es gibt keine SDK-Fehlerklasse zum Erfassen, daher wickeln Sie die Schleife in `try`/`catch` ein und passen Sie die Meldung an:

124 

125```

126Claude Code process exited with code 1. stderr: <tail of the CLI's stderr>

127```

128 

129Wenn die CLI in stderr geschrieben hat, endet die Meldung mit dem Ende davon. Um den vollständigen Stream zu erfassen, übergeben Sie einen `stderr`-Callback in den Abfrageoptionen. Ein Prozess, der durch ein Signal beendet wurde, meldet `Claude Code process terminated by signal <name>` in der gleichen Form.

130 

131<h3 id="claude-code-returned-an-error-result">

132 Claude Code returned an error result

133</h3>

134 

135Beide SDKs ersetzen den Prozessbeendigungsfehler durch diese Meldung, wenn die CLI ein Fehlerergebnis gemeldet hat, bevor sie beendet wurde:

136 

137```

138Claude Code returned an error result: <the CLI's own error report>

139```

140 

141Der Text nach dem Doppelpunkt ist der Bericht der CLI über das, was schief gelaufen ist, daher beginnen Sie dort statt mit dem Exit selbst. Python löst dies als [`ResultError`](/docs/de/agent-sdk/python#resulterror) aus, dessen `data`-Attribut das vollständige Fehlerergebnis trägt. TypeScript lehnt die Nachrichtenschleife mit einem einfachen `Error` ab, der die gleiche Nachrichtenform trägt.

142 

143<h2 id="structured-outputs">

144 Strukturierte Ausgaben

145</h2>

146 

147<h3 id="structured_output-is-none-but-the-result-says-success">

148 structured\_output ist None, aber das Ergebnis sagt Erfolg

149</h3>

150 

151Eine Ergebnismeldung kann mit `subtype: "success"` enden, während `structured_output` in Python `None` oder in TypeScript `undefined` ist. Der Lauf wird abgeschlossen, aber es existiert keine validierte Ausgabe. Eine Möglichkeit, dies zu erreichen, ist ein Schema, das keine Ausgabe erfüllen kann, z. B. widersprüchliche Längenbeschränkungen. Der Lauf endet ohne Validierungsfehler, und das einzige Signal ist die fehlende `structured_output`.

152 

153Behandeln Sie dieses Ergebnis als Fehler im Anwendungscode. Überprüfen Sie sowohl, dass `subtype` `success` ist, als auch dass `structured_output` vorhanden ist, bevor Sie es verwenden. Der Abschnitt [Fehlerbehandlung](/docs/de/agent-sdk/structured-outputs#error-handling) zeigt dieses Muster für beide SDKs.

154 

155Wenn es wiederholt mit einem Schema auftritt, das Sie für korrekt halten, überprüfen Sie, dass das Schema erfüllbar ist, vereinfachen Sie es dann, bis Ausgaben validieren, und führen Sie Beschränkungen nacheinander wieder ein.

156 

157<h2 id="report-a-new-issue">

158 Ein neues Problem melden

159</h2>

160 

161Wenn Ihr Fehler hier nicht behandelt wird, überprüfen Sie die offenen Probleme oder melden Sie ein neues in den SDK-Repositories: [claude-agent-sdk-typescript](https://github.com/anthropics/claude-agent-sdk-typescript/issues) oder [claude-agent-sdk-python](https://github.com/anthropics/claude-agent-sdk-python/issues). Fügen Sie den vollständigen Fehlertext und Ihre SDK-Version ein.

Details

481Konfigurationsobjekt für die `query()`-Funktion.481Konfigurationsobjekt für die `query()`-Funktion.

482 482 

483| Eigenschaft | Typ | Standard | Beschreibung |483| Eigenschaft | Typ | Standard | Beschreibung |

484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

485| `abortController` | `AbortController` | `new AbortController()` | Controller zum Abbrechen von Operationen |485| `abortController` | `AbortController` | `new AbortController()` | Controller zum Abbrechen von Operationen |

486| `additionalDirectories` | `string[]` | `[]` | Zusätzliche Verzeichnisse, auf die Claude zugreifen kann. Das SDK übergibt jeden Eintrag an Claude Code als `--add-dir`, sodass mit der `project`-Einstellung Claude Code auch [die Skills, Befehle und Subagenten des Verzeichnisses lädt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) |486| `additionalDirectories` | `string[]` | `[]` | Zusätzliche Verzeichnisse, auf die Claude zugreifen kann. Das SDK übergibt jeden Eintrag an Claude Code als `--add-dir`, sodass mit der `project`-Einstellung Claude Code auch [die Skills, Befehle und Subagenten des Verzeichnisses lädt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) |

487| `agent` | `string` | `undefined` | Agent-Name für den Hauptthread. Der Agent muss in der `agents`-Option oder in den Einstellungen definiert sein |487| `agent` | `string` | `undefined` | Agent-Name für den Hauptthread. Der Agent muss in der `agents`-Option oder in den Einstellungen definiert sein |


495| `cwd` | `string` | `process.cwd()` | Aktuelles Arbeitsverzeichnis |495| `cwd` | `string` | `process.cwd()` | Aktuelles Arbeitsverzeichnis |

496| `debug` | `boolean` | `false` | Aktivieren Sie den Debug-Modus für den Claude Code-Prozess |496| `debug` | `boolean` | `false` | Aktivieren Sie den Debug-Modus für den Claude Code-Prozess |

497| `debugFile` | `string` | `undefined` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus |497| `debugFile` | `string` | `undefined` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus |

498| `disallowedTools` | `string[]` | `[]` | Tools, die verweigert werden. Ein einfacher Name wie `"Bash"` entfernt das Tool aus Claudes Kontext. Eine scoped-Regel wie `"Bash(rm *)"` lässt das Tool verfügbar und verweigert übereinstimmende Aufrufe in jedem Berechtigungsmodus, einschließlich `bypassPermissions`. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |498| `disallowedTools` | `string[]` | `[]` | Tools, die verweigert werden. Ein einfacher Name wie `"Bash"` entfernt das Tool aus Claudes Kontext. Eine scoped-Regel wie `"Bash(rm *)"` lässt das Tool verfügbar und verweigert übereinstimmende Aufrufe in jedem Berechtigungsmodus, einschließlich `bypassPermissions`, für den Befehl [wie geschrieben](/docs/de/permissions#bash-rule-limits). Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |

499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | Modell-Standard | Steuert, wie viel Aufwand Claude in seine Antwort investiert. Funktioniert mit adaptivem Denken, um die Denktiefe zu lenken. Siehe [Aufwandsstufe anpassen](/docs/de/model-config#adjust-effort-level) |499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | Modell-Standard | Steuert, wie viel Aufwand Claude in seine Antwort investiert. Funktioniert mit adaptivem Denken, um die Denktiefe zu lenken. Siehe [Aufwandsstufe anpassen](/docs/de/model-config#adjust-effort-level) |

500| `enableFileCheckpointing` | `boolean` | `false` | Aktivieren Sie die Dateienänderungsverfolgung zum Zurückspulen. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |500| `enableFileCheckpointing` | `boolean` | `false` | Aktivieren Sie die Dateienänderungsverfolgung zum Zurückspulen. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |

501| `env` | `Record<string, string \| undefined>` | `process.env` | Umgebungsvariablen. Wenn gesetzt, ersetzt dies die Subprocess-Umgebung, anstatt sie mit `process.env` zusammenzuführen. Übergeben Sie daher `{ ...process.env, YOUR_VAR: 'value' }`, um geerbte Variablen wie `PATH` beizubehalten. Siehe [Langsame oder steckengebliebene API-Antworten verarbeiten](#handle-slow-or-stalled-api-responses) für ein Beispiel dieses Musters und [Umgebungsvariablen](/docs/de/env-vars) für Variablen, die die zugrunde liegende CLI liest. Setzen Sie `CLAUDE_AGENT_SDK_CLIENT_APP`, um Ihre App im User-Agent-Header zu identifizieren |501| `env` | `Record<string, string \| undefined>` | `process.env` | Umgebungsvariablen. Wenn gesetzt, ersetzt dies die Subprocess-Umgebung, anstatt sie mit `process.env` zusammenzuführen. Übergeben Sie daher `{ ...process.env, YOUR_VAR: 'value' }`, um geerbte Variablen wie `PATH` beizubehalten. Siehe [Langsame oder steckengebliebene API-Antworten verarbeiten](#handle-slow-or-stalled-api-responses) für ein Beispiel dieses Musters und [Umgebungsvariablen](/docs/de/env-vars) für Variablen, die die zugrunde liegende CLI liest. Setzen Sie `CLAUDE_AGENT_SDK_CLIENT_APP`, um Ihre App im User-Agent-Header zu identifizieren |


504| `extraArgs` | `Record<string, string \| null>` | `{}` | Zusätzliche Argumente |504| `extraArgs` | `Record<string, string \| null>` | `{}` | Zusätzliche Argumente |

505| `fallbackModel` | `string` | `undefined` | Modell, das verwendet werden soll, wenn das primäre fehlschlägt |505| `fallbackModel` | `string` | `undefined` | Modell, das verwendet werden soll, wenn das primäre fehlschlägt |

506| `forkSession` | `boolean` | `false` | Beim Fortsetzen mit `resume` zu einer neuen Sitzungs-ID verzweigen, anstatt die ursprüngliche Sitzung fortzusetzen |506| `forkSession` | `boolean` | `false` | Beim Fortsetzen mit `resume` zu einer neuen Sitzungs-ID verzweigen, anstatt die ursprüngliche Sitzung fortzusetzen |

507| `forwardSubagentText` | `boolean` | `false` | Leiten Sie Subagenten-Text und Denk-Blöcke als Assistenten- und Benutzer-Nachrichten mit `parent_tool_use_id` weiter, damit Consumer ein verschachteltes Transkript rendern können. Standardmäßig werden nur `tool_use`- und `tool_result`-Blöcke von Subagenten ausgegeben. Nachrichten von Subagenten in jeder Verschachtelungstiefe werden auf Claude Code v2.1.219 und später weitergeleitet; vor v2.1.219 erschienen nur Nachrichten von Subagenten der Tiefe 1 |507| `forwardSubagentText` | `boolean` | `false` | Leiten Sie Subagenten-Text und Denk-Blöcke als Assistenten- und Benutzer-Nachrichten mit `parent_tool_use_id` weiter, damit Consumer ein verschachteltes Transkript rendern können. Ohne diese Option gibt Claude Code nur `tool_use`- und `tool_result`-Blöcke von Subagenten aus. Nachrichten von Subagenten in jeder Verschachtelungstiefe werden auf Claude Code v2.1.219 und später weitergeleitet; vor v2.1.219 erschienen nur Nachrichten von Subagenten der Tiefe 1 |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Hook-Callbacks für Ereignisse |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Hook-Callbacks für Ereignisse |

509| `includeHookEvents` | `boolean` | `false` | Schließen Sie Hook-Lebenszyklusereignisse im Nachrichtenstrom als [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) und [`SDKHookResponseMessage`](#sdkhookresponsemessage) ein. Lebenszyklusereignisse für `SessionStart`- und `Setup`-Hooks sind immer enthalten und benötigen diese Option nicht. Einige Hook-Ereignisse wie `Notification`, `SessionEnd`, `PreCompact` und `PostCompact` erzeugen niemals eine `SDKHookStartedMessage`, auch nicht mit dieser Option. Für diese Ereignisse gibt Claude Code immer noch eine `SDKHookProgressMessage` aus, während ein Command-Hook, der länger als eine Sekunde läuft, Ausgabe erzeugt, und gibt eine `SDKHookResponseMessage` nur aus, wenn ein Hook [der im Hintergrund läuft](/docs/de/hooks#run-hooks-in-the-background) beendet wird |509| `includeHookEvents` | `boolean` | `false` | Schließen Sie Hook-Lebenszyklusereignisse im Nachrichtenstrom als [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) und [`SDKHookResponseMessage`](#sdkhookresponsemessage) ein. Lebenszyklusereignisse für `SessionStart`- und `Setup`-Hooks sind immer enthalten und benötigen diese Option nicht. Einige Hook-Ereignisse wie `Notification`, `SessionEnd`, `PreCompact` und `PostCompact` erzeugen niemals eine `SDKHookStartedMessage`, auch nicht mit dieser Option. Für diese Ereignisse gibt Claude Code immer noch eine `SDKHookProgressMessage` aus, während ein Command-Hook, der länger als eine Sekunde läuft, Ausgabe erzeugt, und gibt eine `SDKHookResponseMessage` nur aus, wenn ein Hook [der im Hintergrund läuft](/docs/de/hooks#run-hooks-in-the-background) beendet wird |

510| `includePartialMessages` | `boolean` | `false` | Teilweise Nachrichtenereignisse einbeziehen |510| `includePartialMessages` | `boolean` | `false` | Teilweise Nachrichtenereignisse einbeziehen |


539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Benutzerdefinierte Funktion zum Spawnen des Claude Code-Prozesses. Verwenden Sie, um Claude Code in VMs, Containern oder Remote-Umgebungen auszuführen |539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Benutzerdefinierte Funktion zum Spawnen des Claude Code-Prozesses. Verwenden Sie, um Claude Code in VMs, Containern oder Remote-Umgebungen auszuführen |

540| `stderr` | `(data: string) => void` | `undefined` | Callback für Stderr-Ausgabe |540| `stderr` | `(data: string) => void` | `undefined` | Callback für Stderr-Ausgabe |

541| `strictMcpConfig` | `boolean` | `false` | Verwenden Sie nur die Server, die in `mcpServers` übergeben werden, und ignorieren Sie das Projekt `.mcp.json`, Benutzereinstellungen, von Plugins bereitgestellte MCP-Server und [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) |541| `strictMcpConfig` | `boolean` | `false` | Verwenden Sie nur die Server, die in `mcpServers` übergeben werden, und ignorieren Sie das Projekt `.mcp.json`, Benutzereinstellungen, von Plugins bereitgestellte MCP-Server und [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) |

542| `systemPrompt` | `string \| string[] \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean }` | `undefined` (minimale Eingabeaufforderung) | Konfiguration der Systemeingabeaufforderung. Übergeben Sie eine Zeichenkette für eine benutzerdefinierte Eingabeaufforderung oder `{ type: 'preset', preset: 'claude_code' }`, um die Systemeingabeaufforderung von Claude Code zu verwenden. Übergeben Sie ein Array von Zeichenketten mit der exportierten `SYSTEM_PROMPT_DYNAMIC_BOUNDARY`-Konstante zwischen den statischen und Pro-Request-Teilen, um [den statischen Teil einer benutzerdefinierten Eingabeaufforderung zu cachen](/docs/de/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Bei Verwendung der Preset-Objektform fügen Sie `append` hinzu, um sie mit zusätzlichen Anweisungen zu erweitern, und setzen Sie `excludeDynamicSections: true`, um sitzungsspezifischen Kontext in die erste Benutzer-Nachricht zu verschieben, um [bessere Prompt-Cache-Wiederverwendung über Maschinen hinweg](/docs/de/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |542| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (minimale Eingabeaufforderung) | Konfiguration der Systemeingabeaufforderung. Übergeben Sie eine Zeichenkette für eine benutzerdefinierte Eingabeaufforderung oder `{ type: 'preset', preset: 'claude_code' }`, um die Systemeingabeaufforderung von Claude Code zu verwenden. Übergeben Sie ein Array von Zeichenketten mit der exportierten `SYSTEM_PROMPT_DYNAMIC_BOUNDARY`-Konstante zwischen den statischen und Pro-Request-Teilen, um [den statischen Teil einer benutzerdefinierten Eingabeaufforderung zu cachen](/docs/de/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Bei Verwendung der Preset-Objektform fügen Sie `append` hinzu, um sie mit zusätzlichen Anweisungen zu erweitern, und setzen Sie `excludeDynamicSections: true`, um sitzungsspezifischen Kontext in die erste Benutzer-Nachricht zu verschieben, um [bessere Prompt-Cache-Wiederverwendung über Maschinen hinweg](/docs/de/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) zu erreichen. Setzen Sie `snapshot: false`, um die Eingabeaufforderung bei jeder Anfrage neu zu erstellen, anstatt [die Eingabeaufforderung wiederzuverwenden, die die Sitzung bei ihrer ersten Anfrage aufgezeichnet hat](/docs/de/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Um `snapshot` auf einer benutzerdefinierten Eingabeaufforderung zu setzen, übergeben Sie das `{ type: 'custom', prompt }`-Formular. Das `{ type: 'custom' }`-Formular und das `snapshot`-Feld erfordern TypeScript Agent SDK v0.3.257 oder später |

543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* API-seitiges Task-Budget in Token. Wenn gesetzt, wird dem Modell sein verbleibendes Token-Budget mitgeteilt, damit es die Tool-Nutzung pacing kann und vor dem Limit abwickelt |543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* API-seitiges Task-Budget in Token. Wenn gesetzt, wird dem Modell sein verbleibendes Token-Budget mitgeteilt, damit es die Tool-Nutzung pacing kann und vor dem Limit abwickelt |

544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` für unterstützte Modelle | Steuert das Denk-/Reasoning-Verhalten von Claude. Siehe [`ThinkingConfig`](#thinkingconfig) für Optionen |544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` für unterstützte Modelle | Steuert das Denk-/Reasoning-Verhalten von Claude. Siehe [`ThinkingConfig`](#thinkingconfig) für Optionen |

545| `title` | `string` | `undefined` | Anzeigetitel für die Sitzung. Beim Fortsetzen über `resume` oder `continue` hat der persistierte Titel der fortgesetzten Sitzung Vorrang; verwenden Sie [`renameSession()`](#renamesession), um eine vorhandene Sitzung umzubenennen |545| `title` | `string` | `undefined` | Anzeigetitel für die Sitzung. Beim Fortsetzen über `resume` oder `continue` hat der persistierte Titel der fortgesetzten Sitzung Vorrang; verwenden Sie [`renameSession()`](#renamesession), um eine vorhandene Sitzung umzubenennen |


632</h4>632</h4>

633 633 

634| Methode | Beschreibung |634| Methode | Beschreibung |

635| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |635| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

636| `interrupt()` | Unterbricht die Abfrage. Nur im Streaming-Eingabemodus verfügbar. Wenn die CLI die `interrupt_receipt_v1`-Funktion in [`SDKSystemMessage.capabilities`](#sdksystemmessage) ankündigt, wird mit einem [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) aufgelöst, das die Nachrichten auflistet, die in der Warteschlange waren, als der Interrupt ankam. Wird auf CLIs vor v2.1.205 mit `undefined` aufgelöst |636| `interrupt()` | Unterbricht die Abfrage. Nur im Streaming-Eingabemodus verfügbar. Wenn die CLI die `interrupt_receipt_v1`-Funktion in [`SDKSystemMessage.capabilities`](#sdksystemmessage) ankündigt, wird mit einem [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) aufgelöst, das die Nachrichten auflistet, die in der Warteschlange waren, als der Interrupt ankam. Wird auf CLIs vor v2.1.205 mit `undefined` aufgelöst |

637| `rewindFiles(userMessageId, options?)` | Stellt Dateien in ihren Zustand bei der angegebenen Benutzer-Nachricht wieder her. Übergeben Sie `{ dryRun: true }`, um Änderungen in der Vorschau anzuzeigen. Erfordert `enableFileCheckpointing: true`. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |637| `rewindFiles(userMessageId, options?)` | Stellt Dateien in ihren Zustand bei der angegebenen Benutzer-Nachricht wieder her. Übergeben Sie `{ dryRun: true }`, um Änderungen in der Vorschau anzuzeigen. Erfordert `enableFileCheckpointing: true`. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |

638| `setPermissionMode()` | Ändert den Berechtigungsmodus (nur im Streaming-Eingabemodus verfügbar) |638| `setPermissionMode()` | Ändert den Berechtigungsmodus (nur im Streaming-Eingabemodus verfügbar) |


647| `supportedAgents()` | Gibt verfügbare Subagenten als [`AgentInfo`](#agentinfo)`[]` zurück |647| `supportedAgents()` | Gibt verfügbare Subagenten als [`AgentInfo`](#agentinfo)`[]` zurück |

648| `mcpServerStatus()` | Gibt den Status verbundener MCP-Server zurück |648| `mcpServerStatus()` | Gibt den Status verbundener MCP-Server zurück |

649| `getContextUsage(opts?)` | Gibt ein [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) zurück, das die Kontextfenster-Nutzung der Sitzung nach Kategorie, Skill und Tool aufschlüsselt. Mit dem Standard `detail` ist es die gleichen Daten, die `/context` in einer interaktiven Sitzung anzeigt. Die [`detail`-Option](#sdkcontrolgetcontextusageresponse) erfordert Agent SDK v0.3.257 oder später |649| `getContextUsage(opts?)` | Gibt ein [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) zurück, das die Kontextfenster-Nutzung der Sitzung nach Kategorie, Skill und Tool aufschlüsselt. Mit dem Standard `detail` ist es die gleichen Daten, die `/context` in einer interaktiven Sitzung anzeigt. Die [`detail`-Option](#sdkcontrolgetcontextusageresponse) erfordert Agent SDK v0.3.257 oder später |

650| `readFile(path, options?)` | Liest eine Datei aus dem Dateisystem der Sitzung. Claude Code löst den Pfad gegen `cwd` auf und wendet die gleichen Leseberechtigung-Regeln wie das Read-Tool an. Übergeben Sie `{ maxBytes }`, um die Leseobergrenze zu ändern (Standard 1 MB, Obergrenze 10 MB) und `{ encoding: 'base64' }` für Binärdateien wie Bilder. Wird mit einem [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) aufgelöst oder `null` bei Berechtigungsverweigerung, fehlender Datei oder Transportfehler. Erfordert TypeScript SDK v0.2.121 oder später |650| `readFile(path, options?)` | Liest eine Datei aus dem Dateisystem der Sitzung. Claude Code löst den Pfad gegen `cwd` auf; [Was `readFile()` lesen kann](#what-readfile-can-read) listet die Dateien auf, die es bereitstellt. Übergeben Sie `{ maxBytes }`, um die Leseobergrenze zu ändern (Standard 1 MB, Obergrenze 10 MB) und `{ encoding: 'base64' }` für Binärdateien wie Bilder. Wird mit einem [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) aufgelöst oder `null` bei Berechtigungsverweigerung, fehlender Datei oder Transportfehler. Erfordert TypeScript SDK v0.2.121 oder später |

651| `reloadSkills()` | Lädt Skills von der Festplatte neu, sodass Skills, die Sie mid-session hinzufügen oder bearbeiten, der laufenden Sitzung zur Verfügung stehen. Wird mit einem [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) aufgelöst, das die nach dem Reload verfügbaren Skills auflistet. Erfordert Agent SDK v0.3.163 oder später |651| `reloadSkills()` | Lädt Skills von der Festplatte neu, sodass Skills, die Sie mid-session hinzufügen oder bearbeiten, der laufenden Sitzung zur Verfügung stehen. Wird mit einem [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) aufgelöst, das die nach dem Reload verfügbaren Skills auflistet. Erfordert Agent SDK v0.3.163 oder später |

652| `accountInfo()` | Gibt Kontoinformationen zurück |652| `accountInfo()` | Gibt Kontoinformationen zurück |

653| `reconnectMcpServer(serverName)` | Verbinden Sie einen MCP-Server nach Name erneut. Wenn der Name auch einem Eintrag in einer Einstellungsdatei wie `.mcp.json` oder `~/.claude.json` entspricht, verbindet Claude Code den Server, den Sie über [`mcpServers`](#options) oder `setMcpServers()` konfiguriert haben, nicht den Einstellungsdatei-Eintrag erneut. Diese Auflösungsreihenfolge erfordert Claude Code v2.1.257 oder später |653| `reconnectMcpServer(serverName)` | Verbinden Sie einen MCP-Server nach Name erneut. Wenn der Name auch einem Eintrag in einer Einstellungsdatei wie `.mcp.json` oder `~/.claude.json` entspricht, verbindet Claude Code den Server, den Sie über [`mcpServers`](#options) oder `setMcpServers()` konfiguriert haben, nicht den Einstellungsdatei-Eintrag erneut. Diese Auflösungsreihenfolge erfordert Claude Code v2.1.257 oder später |


665 665 

666Nur einige Schlüssel wirken sich mitten in der Sitzung aus:666Nur einige Schlüssel wirken sich mitten in der Sitzung aus:

667 667 

668* **Angewendet beim nächsten Turn**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Das Wechseln von `agent` wendet auch die Modellüberschreibung, Hooks und das System-Prompt dieses Agenten beim nächsten Turn an.668* **Angewendet beim nächsten Turn**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Das Wechseln von `agent` wendet auch die Modellüberschreibung und Hooks dieses Agenten beim nächsten Turn an. Sein System-Prompt wird beim nächsten Turn angewendet oder, in einer Sitzung, die [eine aufgezeichnete Systemeingabeaufforderung wiederverwenden](/docs/de/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), sobald die Sitzung komprimiert wird.

669* **Angewendet während des aktuellen Turns**: `model`. Wenn Sie `model` wechseln, während Claude an einem Turn arbeitet, beendet die Antwort, die Claude bereits generiert, auf dem alten Modell, und der Rest des Turns, beginnend mit dem nächsten Aufruf, den Claude Code an das Modell macht, verwendet das neue. Subagenten behalten ihr eigenes Modell. Vor v2.1.212 wartete ein Mid-Turn-Wechsel auf den nächsten Turn.669* **Angewendet während des aktuellen Turns**: `model`. Wenn Sie `model` wechseln, während Claude an einem Turn arbeitet, beendet die Antwort, die Claude bereits generiert, auf dem alten Modell, und der Rest des Turns, beginnend mit dem nächsten Aufruf, den Claude Code an das Modell macht, verwendet das neue. Subagenten behalten ihr eigenes Modell. Vor v2.1.212 wartete ein Mid-Turn-Wechsel auf den nächsten Turn.

670* **Keine Auswirkung mitten in der Sitzung**: die Systemeingabeaufforderungsoptionen. Diese werden einmal beim Start aufgelöst, sodass die laufende Sitzung den ursprünglichen Wert behält, obwohl der Aufruf erfolgreich ist. Um sie zu ändern, starten Sie eine neue Sitzung.670* **Keine Auswirkung mitten in der Sitzung**: die Systemeingabeaufforderungsoptionen. Diese werden einmal beim Start aufgelöst, sodass die laufende Sitzung den ursprünglichen Wert behält, obwohl der Aufruf erfolgreich ist. Um sie zu ändern, starten Sie eine neue Sitzung.

671 671 


750 750 

751Die Antwort meldet immer `fast_mode_state`, und wenn etwas [Fast Mode](/docs/de/fast-mode) blockiert, trägt `fast_mode_disabled_reason` den Grund-Code daneben, sodass Sie den blockierten Zustand erklären können, anstatt die Verfügbarkeit neu abzuleiten. Beide Verhaltensweisen erfordern Claude Code v2.1.219 oder später. Vor v2.1.219 ließ die Antwort `fast_mode_state` weg, wenn Fast Mode nicht verfügbar war, und trug niemals einen Grund. Für die Grund-Codes und ihre Bedeutungen siehe [`fast_mode_disabled_reason`](#sdkresultmessage) auf der Ergebnis-Nachricht.751Die Antwort meldet immer `fast_mode_state`, und wenn etwas [Fast Mode](/docs/de/fast-mode) blockiert, trägt `fast_mode_disabled_reason` den Grund-Code daneben, sodass Sie den blockierten Zustand erklären können, anstatt die Verfügbarkeit neu abzuleiten. Beide Verhaltensweisen erfordern Claude Code v2.1.219 oder später. Vor v2.1.219 ließ die Antwort `fast_mode_state` weg, wenn Fast Mode nicht verfügbar war, und trug niemals einen Grund. Für die Grund-Codes und ihre Bedeutungen siehe [`fast_mode_disabled_reason`](#sdkresultmessage) auf der Ergebnis-Nachricht.

752 752 

753Wenn ein Client `initialize` an eine bereits laufende Sitzung sendet, trägt der Control-Response-Wrapper auch ein optionales `pending_permission_requests`-Array. Das Feld befindet sich auf dem Response-Wrapper selbst, nicht in der oben beschriebenen `SDKControlInitializeResponse`-Nutzlast. Jeder Eintrag ist eine vollständige `control_request`-Nachricht mit der gleichen `{ type: "control_request", request_id, request }`-Form, die die Sitzung für Berechtigungsanfragen während der Ausführung streamt.753Der Control-Response-Wrapper für eine erfolgreiche `initialize` trägt auch ein `pending_permission_requests`-Array. Das Feld befindet sich auf dem Response-Wrapper selbst, nicht in der oben beschriebenen `SDKControlInitializeResponse`-Nutzlast. Jeder Eintrag ist eine vollständige `control_request`-Nachricht mit der gleichen `{ type: "control_request", request_id, request }`-Form, die die Sitzung für Berechtigungsanfragen während der Ausführung streamt.

754 754 

755Dies sind Anfragen, die vor der Verbindung des Clients gestellt wurden und noch auf eine Antwort warten. Das SDK liest das Array für Sie und versendet jeden Eintrag an Ihren [`canUseTool`](#canusetool)-Callback, die gleiche Wiederversendung, die [`reinitialize()`](#query-object) nach einer Transportlücke auslöst. Behandeln Sie wiederholte Request-IDs idempotent, da ein Eintrag eine Anfrage wiederholen kann, die der Callback bereits erhalten hat, bevor die Verbindung unterbrochen wurde.755Das Array listet die Berechtigungsanfragen auf, die dieser Claude Code-Prozess gestellt hat und noch nicht aufgelöst hat. Das SDK liest das Array für Sie und versendet jeden Eintrag an Ihren [`canUseTool`](#canusetool)-Callback, die gleiche Wiederversendung, die [`reinitialize()`](#query-object) nach einer Transportlücke auslöst. Behandeln Sie wiederholte Request-IDs idempotent, da ein Eintrag eine Anfrage wiederholen kann, die der Callback bereits erhalten hat, bevor die Verbindung unterbrochen wurde.

756 

757Das Array ist immer auf einer erfolgreichen `initialize`-Antwort vorhanden und ist leer, wenn dieser Prozess keine ungelöste Berechtigungsanfrage hat. Erfordert Claude Code v2.1.268 oder später. Frühere Versionen könnten das Feld weglassen, daher behandeln Sie ein fehlendes Feld als ältere CLI, wenn Sie das Wire-Protokoll selbst analysieren, anstatt als Beweis, dass nichts ausstehend ist.

756 758 

757<h3 id="sdkcontrolinterruptresponse">759<h3 id="sdkcontrolinterruptresponse">

758 `SDKControlInterruptResponse`760 `SDKControlInterruptResponse`


915 917 

916`contents` enthält den Dateitext oder Base64-Daten, wenn Sie `encoding: 'base64'` angefordert haben; das `encoding`-Feld der Antwort wird in diesem Fall auf `'base64'` gesetzt. `absPath` ist der aufgelöste absolute Pfad. `truncated` wird gesetzt, wenn die Datei länger als die `maxBytes`-Obergrenze war und der Inhalt bei diesem Limit abgeschnitten wurde.918`contents` enthält den Dateitext oder Base64-Daten, wenn Sie `encoding: 'base64'` angefordert haben; das `encoding`-Feld der Antwort wird in diesem Fall auf `'base64'` gesetzt. `absPath` ist der aufgelöste absolute Pfad. `truncated` wird gesetzt, wenn die Datei länger als die `maxBytes`-Obergrenze war und der Inhalt bei diesem Limit abgeschnitten wurde.

917 919 

920<h4 id="what-readfile-can-read">

921 Was `readFile()` lesen kann

922</h4>

923 

924`readFile()` stellt einen engeren Satz von Dateien bereit als das Read-Tool:

925 

926* Eine reguläre Datei in einem der Arbeitsverzeichnisse der Sitzung, z. B. `cwd` und `additionalDirectories`

927* Ein paar von Claude Codes eigenen Dateien für die Sitzung, z. B. Tool-Ergebnisse

928 

929`Read`-Deny- und Ask-Regeln blockieren immer noch einen übereinstimmenden Pfad, und eine breite `Read`-Allow-Regel öffnet nicht den Rest des Dateisystems für `readFile()`. Für alles andere wird der Aufruf mit `null` aufgelöst.

930 

918<h3 id="sdkcontrolreloadskillsresponse">931<h3 id="sdkcontrolreloadskillsresponse">

919 `SDKControlReloadSkillsResponse`932 `SDKControlReloadSkillsResponse`

920</h3>933</h3>


968| `background` | Nein | Führen Sie diesen Agent als nicht-blockierende Hintergrund-Aufgabe aus, wenn er aufgerufen wird |981| `background` | Nein | Führen Sie diesen Agent als nicht-blockierende Hintergrund-Aufgabe aus, wenn er aufgerufen wird |

969| `memory` | Nein | Speicherquelle für diesen Agent: `'user'`, `'project'` oder `'local'` |982| `memory` | Nein | Speicherquelle für diesen Agent: `'user'`, `'project'` oder `'local'` |

970| `effort` | Nein | Reasoning-Aufwandsstufe für diesen Agent. Akzeptiert eine benannte Stufe oder eine Ganzzahl |983| `effort` | Nein | Reasoning-Aufwandsstufe für diesen Agent. Akzeptiert eine benannte Stufe oder eine Ganzzahl |

971| `permissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten. Siehe [`PermissionMode`](#permissionmode) |984| `permissionMode` | Nein | Berechtigungsmodus für die Tool-Ausführung innerhalb dieses Agenten. Die [Subagenten-Vererbungsregeln](/docs/de/agent-sdk/permissions#available-modes) entscheiden, wann er angewendet wird. Siehe [`PermissionMode`](#permissionmode) |

972| `criticalSystemReminder_EXPERIMENTAL` | Nein | Experimentell: Kritische Erinnerung, die zur Systemeingabeaufforderung hinzugefügt wird |985| `criticalSystemReminder_EXPERIMENTAL` | Nein | Experimentell: Kritische Erinnerung, die zur Systemeingabeaufforderung hinzugefügt wird |

973 986 

974<h3 id="agentmcpserverspec">987<h3 id="agentmcpserverspec">


1324 1337 

1325Das `message`-Feld ist eine [`BetaMessage`](https://platform.claude.com/docs/de/api/messages/create) aus dem Anthropic SDK. Es enthält Felder wie `id`, `content`, `model`, `stop_reason` und `usage`.1338Das `message`-Feld ist eine [`BetaMessage`](https://platform.claude.com/docs/de/api/messages/create) aus dem Anthropic SDK. Es enthält Felder wie `id`, `content`, `model`, `stop_reason` und `usage`.

1326 1339 

1327`SDKAssistantMessageError` ist einer von: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'` oder `'unknown'`. `'model_not_found'` bedeutet, dass das ausgewählte Modell nicht existiert oder nicht für Ihr Konto oder Ihre Bereitstellung verfügbar ist. `'overloaded'` bedeutet, dass die API einen 529-Fehler zurückgegeben hat, weil der Server ausgelastet ist, im Gegensatz zu `'rate_limit'`, das ein 429-Fehler gegen Ihr Kontingent ist. `'account_on_hold'` bedeutet [Ihr Konto ist gesperrt](/docs/de/errors#your-account-is-on-hold).1340`SDKAssistantMessageError` ist einer von: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'` oder `'unknown'`. Vier dieser Werte bedeuten mehr als ihre Namen aussagen:

1341 

1342* `'model_not_found'`: Das ausgewählte Modell existiert nicht oder ist nicht für Ihr Konto oder Ihre Bereitstellung verfügbar

1343* `'overloaded'`: Die API hat einen 529-Fehler zurückgegeben, weil der Server ausgelastet ist, im Gegensatz zu `'rate_limit'`, das ein 429-Fehler gegen Ihr Kontingent ist

1344* `'account_on_hold'`: [Ihr Konto ist gesperrt](/docs/de/errors#your-account-is-on-hold)

1345* `'cloud_credential_error'`: Claude Code konnte keine verwendbaren AWS- oder Google Cloud-Anmeldedaten auf der Maschine, auf der es läuft, abrufen, daher erreichte keine Anfrage den Cloud-Anbieter. Die übliche Ursache ist eine Cloud-Anmeldung, die abgelaufen ist oder auf dieser Maschine nie abgeschlossen wurde, obwohl ein kurzzeitig unerreichbarer Anmeldedatendienst denselben Wert meldet. Siehe [AWS- oder Google Cloud-Anmeldedaten konnten nicht geladen werden](/docs/de/errors#could-not-load-aws-or-google-cloud-credentials). Erfordert TypeScript Agent SDK v0.3.267 oder später, das Claude Code v2.1.267 bündelt

1328 1346 

1329`aborted` ist `true`, wenn ein Interrupt oder Abbruch die Assistenten-Nachricht vor Abschluss des Streams abgeschnitten hat: Die Nachricht hat keinen `stop_reason` und der Inhalt kann mitten im Wort enden. Das Feld fehlt bei normal abgeschlossenen Nachrichten. Es erfordert Agent SDK v0.3.214 oder später.1347`aborted` ist `true`, wenn ein Interrupt oder Abbruch die Assistenten-Nachricht vor Abschluss des Streams abgeschnitten hat: Die Nachricht hat keinen `stop_reason` und der Inhalt kann mitten im Wort enden. Das Feld fehlt bei normal abgeschlossenen Nachrichten. Es erfordert Agent SDK v0.3.214 oder später.

1330 1348 


1459* `api_error_status`: Der HTTP-Statuscode des API-Fehlers, der die Konversation beendet hat. Fehlt oder ist `null`, wenn der Turn ohne API-Fehler endete.1477* `api_error_status`: Der HTTP-Statuscode des API-Fehlers, der die Konversation beendet hat. Fehlt oder ist `null`, wenn der Turn ohne API-Fehler endete.

1460* `ttft_ms`: Zeit bis zum ersten Token in Millisekunden, gemessen, wenn die erste vollständige Assistenten-Nachricht ankommt. Nur auf dem Success-Arm vorhanden.1478* `ttft_ms`: Zeit bis zum ersten Token in Millisekunden, gemessen, wenn die erste vollständige Assistenten-Nachricht ankommt. Nur auf dem Success-Arm vorhanden.

1461* `ttft_stream_ms`: Zeit in Millisekunden bis zum ersten `message_start`-Stream-Ereignis, wenn der Response-Stream öffnet. Niedriger als `ttft_ms`; die Lücke zwischen den beiden ist die Zeit, die zum Streamen der ersten Nachricht benötigt wird. Nur auf dem Success-Arm vorhanden.1479* `ttft_stream_ms`: Zeit in Millisekunden bis zum ersten `message_start`-Stream-Ereignis, wenn der Response-Stream öffnet. Niedriger als `ttft_ms`; die Lücke zwischen den beiden ist die Zeit, die zum Streamen der ersten Nachricht benötigt wird. Nur auf dem Success-Arm vorhanden.

1462* `user_message_uuid`: Die `uuid` der Nachricht, die Sie gesendet haben und diesen Turn gestartet hat. Siehe [`user_message_uuid`](#user_message_uuid) für welche Ergebnisse sie tragen.1480* `user_message_uuid`: Die `uuid` der Nachricht, die Sie gesendet haben und diesen Turn beantwortet hat. Siehe [`user_message_uuid`](#user_message_uuid) für welche Ergebnisse sie tragen.

1463* `user_message_uuids`: Die `uuid`s jeder Nachricht, die Sie gesendet haben und die Claude Code in diesem Turn beantwortet hat. Siehe [`user_message_uuids`](#user_message_uuids).1481* `user_message_uuids`: Die `uuid`s jeder Nachricht, die Sie gesendet haben und die Claude Code in diesem Turn beantwortet hat. Siehe [`user_message_uuids`](#user_message_uuids).

1464* `request_sent_wall_ms`: Epoch-Millisekunden, zu denen Claude Code die API-Anfrage versendet hat, für Joins gegen Server-seitige Zeitstempel. Nur auf dem Success-Arm vorhanden, zusammen mit `user_message_uuid`, wenn `is_error` false ist.1482* `request_sent_wall_ms`: Epoch-Millisekunden, zu denen Claude Code die API-Anfrage versendet hat, für Joins gegen Server-seitige Zeitstempel. Nur zusammen mit [`user_message_uuid`](#user_message_uuid) vorhanden, auf einem Success-Ergebnis mit `is_error` false, dessen Turn eine API-Anfrage versendet hat.

1465* `first_content_frame_ms`: Zeit in Millisekunden bis zum ersten `content_block_start`- oder `content_block_delta`-Stream-Ereignis, wobei Thinking-Blöcke als Inhalt gezählt werden. Nur auf dem Success-Arm vorhanden, wenn `is_error` false ist. Erfordert Agent SDK v0.3.260 oder später.1483* `first_content_frame_ms`: Zeit in Millisekunden bis zum ersten `content_block_start`- oder `content_block_delta`-Stream-Ereignis, wobei Thinking-Blöcke als Inhalt gezählt werden. Nur auf dem Success-Arm vorhanden, wenn `is_error` false ist. Erfordert Agent SDK v0.3.260 oder später.

1466* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: Zeitangaben zum Hochladen des ersten Stream-Ereignisses des Turns. Claude Code zeichnet sie nur in Sitzungen auf, die es zu claude.ai streamt, wie [Cloud-Sitzungen](/docs/de/claude-code-on-the-web), und die Ergebnisse, die `query()` liefert, enthalten sie nicht. Erfordert Agent SDK v0.3.260 oder später.1484* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: Zeitangaben zum Hochladen des ersten Stream-Ereignisses des Turns. Claude Code zeichnet sie nur in Sitzungen auf, die es zu claude.ai streamt, wie [Cloud-Sitzungen](/docs/de/claude-code-on-the-web), und die Ergebnisse, die `query()` liefert, enthalten sie nicht. Erfordert Agent SDK v0.3.260 oder später.

1467* `usage`: Nur Hauptagenten-Schleife. Schließt Subagenten- und Hilfmodell-Aufrufe aus und ist pro Turn in Streaming-Input-Sitzungen. Bevorzugen Sie `modelUsage` für Token-/Kostenabrechnung.1485* `usage`: Nur Hauptagenten-Schleife. Schließt Subagenten- und Hilfmodell-Aufrufe aus und ist pro Turn in Streaming-Input-Sitzungen. Bevorzugen Sie `modelUsage` für Token-/Kostenabrechnung.


1499 `user_message_uuid`1517 `user_message_uuid`

1500</h4>1518</h4>

1501 1519 

1502Die `uuid` der [`SDKUserMessage`](#sdkusermessage), die den Turn gestartet hat, wiedergegeben, damit Sie Claude Codes Antwort mit der Nachricht abgleichen können, die Sie gesendet haben. Claude Code wiederholt sie nur, wenn Sie `uuid` auf dieser Nachricht setzen. Das Feld ist optional auf `SDKUserMessage`, und eine String-Eingabeaufforderung, die an `query()` übergeben wird, trägt keine.1520Die `uuid` der [`SDKUserMessage`](#sdkusermessage), die den Turn beantwortet, wiedergegeben, damit Sie Claude Codes Antwort mit der Nachricht abgleichen können, die Sie gesendet haben. Claude Code wiederholt eine `uuid` nur, wenn Sie eine auf der Nachricht setzen. Das Feld ist optional auf `SDKUserMessage`, und eine String-Eingabeaufforderung, die an `query()` übergeben wird, trägt keine.

1521 

1522Welche Ihrer Nachrichten ein Turn beantwortet, hängt davon ab, wie der Turn gestartet wurde:

1503 1523 

1504Wenn Sie mehrere Nachrichten dicht beieinander senden, kann Claude Code sie in einen Turn zusammenführen. Das Feld trägt dann nur die `uuid` der letzten Nachricht. Um die Antwort mit einer der zusammengeführten Nachrichten abzugleichen, verwenden Sie [`user_message_uuids`](#user_message_uuids).1524* **Eine reguläre Nachricht, die Sie gesendet haben**, d. h. eine ohne `isSynthetic: true`: Der Turn beantwortet diese Nachricht für seinen gesamten Lauf. Wenn Sie mehrere Nachrichten dicht beieinander senden, kann Claude Code sie in einen Turn zusammenführen, und das Feld trägt dann nur die `uuid` der letzten Nachricht. Um die Antwort mit einer der zusammengeführten Nachrichten abzugleichen, verwenden Sie [`user_message_uuids`](#user_message_uuids).

1525*

1505 1526 

1506Wenn Sie `uuid` setzen, wiederholt Claude Code es auf drei Arten von Frames:1527**Eine Nachricht, die Sie mit `isSynthetic: true` gesendet haben**: Der Turn beantwortet diese Nachricht zunächst. Wenn Claude Code eine reguläre Nachricht von Ihnen zwischen Tool-Aufrufen aufgreift, beantwortet der Turn die aufgegriffene Nachricht von da an. Das Wiederholen einer synthetischen Nachricht `uuid` erfordert Agent SDK v0.3.265 oder später; frühere Versionen wiederholen nichts bei synthetischen Turns.

1528 

1529*

1530 

1531**Eine Eingabeaufforderung, die Claude Code selbst generiert hat**, wie der Turn, der unterbrochene Arbeit nach einem Sitzungsneustart fortsetzt: Der Turn beantwortet zunächst keine Nachricht von Ihnen und seine Frames tragen keine Wiederholung. Wenn Claude Code eine reguläre Nachricht von Ihnen zwischen Tool-Aufrufen aufgreift, beantwortet der Turn diese Nachricht von da an. Die Aufgreif-Wiederholung erfordert Agent SDK v0.3.265 oder später; frühere Versionen wiederholen nichts bei diesen Turns.

1532 

1533Claude Code wiederholt die `uuid` der beantworteten Nachricht auf drei Arten von Frames:

1534 

1535* **Das Ergebnis**: Jedes Ergebnis eines Turns, der eine Nachricht beantwortet, die Sie gesendet haben. Jedes solche Ergebnis trägt es auf Agent SDK v0.3.265 oder später. Vor v0.3.265 fehlte das Success-Ergebnis eines Turns, den eine reguläre Nachricht gestartet hat, wenn der Turn keine API-Anfrage versendet hat oder mit einem aufgeschobenen Tool-Aufruf endete. Vor v0.3.246 fehlte es auch auf Fehler-Ergebnissen, und vor v0.3.216 auf jedem Ergebnis.

1536*

1537 

1538**Die erste Antwort des Turns**: die erste [Assistenten-Nachricht](#sdkassistantmessage), oder mit `includePartialMessages` das erste [Stream-Ereignis](#sdkpartialassistantmessage), dessen `event.type` nicht `ping` ist, damit Sie die Antwort binden können, bevor das Ergebnis ankommt. Wenn ein Turn nichts streamt, setzt Claude Code es auf die erste Assistenten-Nachricht statt. Die erste-Antwort-Wiederholung erfordert Agent SDK v0.3.246 oder später. Wenn sich die Nachricht, die der Turn beantwortet, mitten im Turn ändert, trägt die erste Antwort nach der Änderung das Feld auch auf Agent SDK v0.3.265 oder später; frühere Versionen setzen es auf einen Antwort-Frame pro Turn.

1507 1539 

1508* **Das Ergebnis**: auf dem Success-Arm mit `is_error` false, zusammen mit `request_sent_wall_ms`, das Agent SDK v0.3.216 oder später erfordert. Claude Code wiederholt es auch auf einem Fehler-Ergebnis, das eine Nachricht beantwortet, die Sie gesendet haben, was Agent SDK v0.3.246 oder später erfordert.

1509* **Die erste Antwort des Turns**: die erste [Assistenten-Nachricht](#sdkassistantmessage), oder mit `includePartialMessages` das erste [Stream-Ereignis](#sdkpartialassistantmessage), dessen `event.type` nicht `ping` ist, damit Sie die Antwort binden können, bevor das Ergebnis ankommt. Wenn ein Turn nichts streamt, setzt Claude Code es auf die erste Assistenten-Nachricht statt. Ein Antwort-Frame pro Turn trägt es. Erfordert Agent SDK v0.3.246 oder später.

1510* **Jeder [`thinking_tokens`](#sdkthinkingtokensmessage)-Frame des Turns**: damit Sie den Thinking-Fortschritt der Nachricht zuordnen können, die Sie gesendet haben, ohne auf die erste Antwort des Turns zu warten. Erfordert Agent SDK v0.3.260 oder später.1540* **Jeder [`thinking_tokens`](#sdkthinkingtokensmessage)-Frame des Turns**: damit Sie den Thinking-Fortschritt der Nachricht zuordnen können, die Sie gesendet haben, ohne auf die erste Antwort des Turns zu warten. Erfordert Agent SDK v0.3.260 oder später.

1511 1541 

1512Claude Code lässt das Feld in diesen Fällen weg:1542Claude Code lässt das Feld in diesen Fällen weg:

1513 1543 

1514* Spätere Assistenten-Nachrichten und Stream-Ereignisse desselben Turns1544* Antwort-Frames außer diesen ersten Antworten

1515* Subagenten-Frames1545* Subagenten-Frames

1516* Synthetische Turns, wie geplante1546* Turns, die keine Nachricht mit einer `uuid` beantworten: Der Turn beantwortete eine Nachricht, die Sie ohne eine gesendet haben, oder Claude Code startete den Turn selbst und griff keine reguläre Nachricht auf, die eine hat

1517* Ergebnisse, die keine Nachricht beantworten, die Sie gesendet haben, wie das zurückgesetzte Ergebnis nach einem abgestürzten Worker-Prozess1547* Ergebnisse, die keine Nachricht beantworten, die Sie gesendet haben, wie das zurückgesetzte Ergebnis nach einem abgestürzten Worker-Prozess

1518 1548 

1519<h4 id="user_message_uuids">1549<h4 id="user_message_uuids">


1522 1552 

1523Die `uuid`s jeder Nachricht, die Sie gesendet haben und die Claude Code in diesem Turn beantwortet hat. Wenn Sie mehrere Nachrichten dicht beieinander senden, kann Claude Code sie in einen Turn zusammenführen, und `user_message_uuid` benennt dann nur die letzte davon. Um die Antwort mit einer der zusammengeführten Nachrichten abzugleichen, suchen Sie nach der `uuid` dieser Nachricht überall in dieser Liste. Erfordert Agent SDK v0.3.259 oder später.1553Die `uuid`s jeder Nachricht, die Sie gesendet haben und die Claude Code in diesem Turn beantwortet hat. Wenn Sie mehrere Nachrichten dicht beieinander senden, kann Claude Code sie in einen Turn zusammenführen, und `user_message_uuid` benennt dann nur die letzte davon. Um die Antwort mit einer der zusammengeführten Nachrichten abzugleichen, suchen Sie nach der `uuid` dieser Nachricht überall in dieser Liste. Erfordert Agent SDK v0.3.259 oder später.

1524 1554 

1525Claude Code setzt die Liste zusammen mit `user_message_uuid` auf die erste Antwort des Turns und auf das Ergebnis. Für den vollständigen Satz von Frames, die `user_message_uuid` tragen, und die Version, die jeder erfordert, siehe [`user_message_uuid`](#user_message_uuid). Die Liste enthält immer `user_message_uuid` und hält höchstens 64 Einträge. Eine Nachricht, die Sie senden, während der Turn läuft und die Claude Code zwischen Tool-Aufrufen aufgreift, erscheint nur in der Ergebnis-Liste.1555Claude Code setzt die Liste zusammen mit `user_message_uuid` auf jeden Antwort-Frame, der dieses Feld trägt, und auf das Ergebnis. Für den vollständigen Satz von Frames, die `user_message_uuid` tragen, und die Version, die jeder erfordert, siehe [`user_message_uuid`](#user_message_uuid). Die Liste enthält immer `user_message_uuid` und hält höchstens 64 Einträge.

1556 

1557Wenn Claude Code eine reguläre Nachricht aufgreift, die Sie während eines Turns versendet haben, fügt es die `uuid` dieser Nachricht zur Ergebnis-Liste hinzu.

1526 1558 

1527Wenn eine erste Antwort oder ein Ergebnis `user_message_uuid` ohne die Liste trägt, kam es von einer früheren Claude Code-Version, daher greifen Sie auf das einzelne Feld zurück.1559Wenn eine erste Antwort oder ein Ergebnis `user_message_uuid` ohne die Liste trägt, kam es von einer früheren Claude Code-Version, daher greifen Sie auf das einzelne Feld zurück.

1528 1560 


1602 uuid: UUID;1634 uuid: UUID;

1603 session_id: string;1635 session_id: string;

1604 ttft_ms?: number; // Zeit bis zum ersten Token in ms, nur bei message_start-Ereignissen vorhanden1636 ttft_ms?: number; // Zeit bis zum ersten Token in ms, nur bei message_start-Ereignissen vorhanden

1605 user_message_uuid?: string; // Vorhanden auf höchstens einem Stream-Ereignis pro Turn1637 user_message_uuid?: string;

1606 user_message_uuids?: string[];1638 user_message_uuids?: string[];

1607};1639};

1608```1640```

1609 1641 

1610Claude Code setzt `user_message_uuid` und `user_message_uuids` auf ein Stream-Ereignis pro Turn unter den Bedingungen in [`user_message_uuid`](#user_message_uuid).1642Claude Code setzt `user_message_uuid` und `user_message_uuids` auf das erste nicht-ping-Stream-Ereignis des Turns und erneut, wenn sich die Nachricht, die der Turn beantwortet, ändert, unter den Bedingungen in [`user_message_uuid`](#user_message_uuid).

1611 1643 

1612<h3 id="sdkcompactboundarymessage">1644<h3 id="sdkcompactboundarymessage">

1613 `SDKCompactBoundaryMessage`1645 `SDKCompactBoundaryMessage`


2787**Tool-Name:** `Agent`. Der vorherige Name `Task` wird immer noch als Alias akzeptiert, und das `tools`-Array in der [`SDKSystemMessage`](#sdksystemmessage)-Init-Nachricht listet dieses Tool derzeit als `Task` für Rückwärtskompatibilität auf.2819**Tool-Name:** `Agent`. Der vorherige Name `Task` wird immer noch als Alias akzeptiert, und das `tools`-Array in der [`SDKSystemMessage`](#sdksystemmessage)-Init-Nachricht listet dieses Tool derzeit als `Task` für Rückwärtskompatibilität auf.

2788 2820 

2789<Note>2821<Note>

2790 Das Feld `mode` ist veraltet und wird auf Claude Code v2.1.212 oder später ignoriert: Subagenten [erben den Berechtigungsmodus der übergeordneten Sitzung](/docs/de/agent-sdk/permissions#available-modes), und die [`permissionMode`](#agentdefinition) einer Subagenten-Definition kann ihn außer Kraft setzen, außer wenn die übergeordnete Sitzung `bypassPermissions`, `acceptEdits` oder `auto` verwendet. Ab v2.1.223 ignoriert Claude Code die `permissionMode: "bypassPermissions"` einer Definition, wenn der Bypass-Modus durch [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) deaktiviert ist.2822 Das Feld `mode` ist veraltet und wird auf Claude Code v2.1.212 oder später ignoriert. Ein Subagent wird entweder im Berechtigungsmodus der übergeordneten Sitzung oder in der [`permissionMode`](#agentdefinition) seiner Definition ausgeführt, und die [Subagent-Vererbungsregeln](/docs/de/agent-sdk/permissions#available-modes) entscheiden, welche.

2791</Note>2823</Note>

2792 2824 

2793```typescript theme={null}2825```typescript theme={null}


2799 run_in_background?: boolean;2831 run_in_background?: boolean;

2800 name?: string;2832 name?: string;

2801 team_name?: string; // Veraltet; wird ignoriert2833 team_name?: string; // Veraltet; wird ignoriert

2802 mode?: "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan"; // Veraltet; wird ignoriert. Subagenten erben den Berechtigungsmodus der übergeordneten Sitzung; die Frontmatter der Agenten-Definition kann ihn außer Kraft setzen2834 mode?: "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan"; // Veraltet; wird ignoriert. Die Subagent-Vererbungsregeln entscheiden über den Berechtigungsmodus eines Subagenten

2803 isolation?: "worktree" | "remote";2835 isolation?: "worktree" | "remote";

2804};2836};

2805```2837```


2844};2876};

2845```2877```

2846 2878 

2847Führt Bash-Befehle mit optionalem Timeout und Hintergrundausführung aus. Das Arbeitsverzeichnis bleibt zwischen Befehlen erhalten; Shell-Status wie exportierte Umgebungsvariablen nicht.2879Führt Bash-Befehle mit optionalem Timeout und Hintergrundausführung aus. Das Arbeitsverzeichnis bleibt zwischen Befehlen erhalten, einschließlich Befehlen, die in späteren Turns einer Multi-Turn-Sitzung ausgeführt werden; Shell-Status wie exportierte Umgebungsvariablen nicht. Für die Grenzen, welche Verzeichniswechsel übertragen werden, siehe [Was zwischen Befehlen erhalten bleibt](/docs/de/tools-reference#what-persists-between-commands).

2848 2880 

2849<h3 id="monitor">2881<h3 id="monitor">

2850 Monitor2882 Monitor


3094Erstellt und verwaltet eine strukturierte Aufgabenliste zum Verfolgen des Fortschritts.3126Erstellt und verwaltet eine strukturierte Aufgabenliste zum Verfolgen des Fortschritts.

3095 3127 

3096<Note>3128<Note>

3097 Ab TypeScript Agent SDK 0.3.233 und später gilt die folgende Einschränkung.

3098 

3099 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3129 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

3100 3130 

3101 * `TodoWrite`3131 * `TodoWrite`


3452};3482};

3453```3483```

3454 3484 

3455Veröffentlicht eine lokale `.html`- oder `.md`-Datei als gehostete Artifact-Seite oder listet die veröffentlichten Artifacts des Benutzers auf. Lassen Sie `action` weg oder übergeben Sie `"publish"`, um `file_path` zu veröffentlichen, das für die Publish-Aktion zusammen mit `favicon` erforderlich ist, ein oder zwei Emoji für den Browser-Tab. `title` benennt die veröffentlichte Seite im Browser-Tab und in der Galerie, wenn die HTML-Datei kein `<title>`-Tag hat. `url` zielt auf ein vorhandenes Artifact ab, um es an Ort und Stelle zu aktualisieren, anstatt ein neues zu erstellen.3485Veröffentlicht eine lokale `.html`- oder `.md`-Datei als gehostete Artifact-Seite oder listet die veröffentlichten Artifacts des Benutzers auf. Lassen Sie `action` weg oder übergeben Sie `"publish"`, um `file_path` zu veröffentlichen, das für die Publish-Aktion zusammen mit `favicon` erforderlich ist, ein oder zwei Emoji, die das Artifact in der Galerie des Benutzers markieren. `title` benennt die veröffentlichte Seite im Browser-Tab und in der Galerie, wenn die HTML-Datei kein `<title>`-Tag hat. `url` zielt auf ein vorhandenes Artifact ab, um es an Ort und Stelle zu aktualisieren, anstatt ein neues zu erstellen.

3456 3486 

3457`force` ist ein letzter Ausweg zum Überschreiben, der eine neuere Version verwirft, die eine andere Sitzung veröffentlicht hat. Bei einem Konflikt gibt die fehlgeschlagene Veröffentlichung den neueren Inhalt zurück; Claude führt seine Änderungen in diesen Inhalt ein oder liest das Artifact erneut und veröffentlicht erneut. Übergeben Sie `force` nur, wenn der Benutzer explizit darum bittet, diese Version zu verwerfen.3487`force` ist ein letzter Ausweg zum Überschreiben, der eine neuere Version verwirft, die eine andere Sitzung veröffentlicht hat. Bei einem Konflikt gibt die fehlgeschlagene Veröffentlichung den neueren Inhalt zurück; Claude führt seine Änderungen in diesen Inhalt ein oder liest das Artifact erneut und veröffentlicht erneut. Übergeben Sie `force` nur, wenn der Benutzer explizit darum bittet, diese Version zu verwerfen.

3458 3488 


4045 4075 

4046Gibt den abgerufenen Inhalt mit HTTP-Status und Metadaten zurück.4076Gibt den abgerufenen Inhalt mit HTTP-Status und Metadaten zurück.

4047 4077 

4048`artifactRead` ist nur vorhanden, wenn Claude ein Artefakt abgerufen hat, das die Sitzung veröffentlichen kann, und es enthält immer den `slug` dieses Artefakts.4078`artifactRead` ist Claude Codes eigener Datensatz eines Artefakt-Lesevorgangs, vorhanden nur, wenn Claude ein Artefakt abgerufen hat, das die Sitzung veröffentlichen kann. Claude Code liest es zurück, wenn eine Sitzung fortgesetzt wird, damit eine spätere Veröffentlichung auf der richtigen Version aufbaut; Ihr Code muss nicht darauf reagieren. `slug` benennt das Artefakt, `ver` ist die Version, die der Lesevorgang aufgezeichnet hat, und ist abwesend, wenn er keine aufgezeichnet hat, und `seeded: false` markiert einen Lesevorgang, dessen vollständige Quelle Claude nicht erreichte. Das Feld `seeded` erfordert Agent SDK v0.3.239 oder später.

4049 

4050`seeded` ist `false` bei einem Lesen, das nicht die vollständige Quelle der Seite lieferte, und dieser Eintrag enthält kein `ver`. Das Feld erfordert Agent SDK v0.3.239 oder später.

4051 4079 

4052<h3 id="websearch-2">4080<h3 id="websearch-2">

4053 WebSearch4081 WebSearch


4134Gibt die vorherigen und aktualisierten Aufgabenlisten zurück.4162Gibt die vorherigen und aktualisierten Aufgabenlisten zurück.

4135 4163 

4136<Note>4164<Note>

4137 Bei TypeScript Agent SDK 0.3.233 und später gilt die folgende Einschränkung.

4138 

4139 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:4165 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

4140 4166 

4141 * `TodoWrite`4167 * `TodoWrite`


5337Um einen Wiederholungs-Indikator aus `subagent_retry` zu rendern:5363Um einen Wiederholungs-Indikator aus `subagent_retry` zu rendern:

5338 5364 

5339* Verfolgen Sie den Indikator nach `parent_tool_use_id`, das pro Subagent eindeutig ist. `tool_use_id` wird von parallelen Subagenten aus einem Assistenten-Turn geteilt, daher würde die Verfolgung danach den Indikator eines Subagenten löschen. Löschen Sie den Indikator, wenn ein späterer `tool_progress` für den gleichen `parent_tool_use_id` ankommt, ohne `subagent_retry` noch `heartbeat: true`, oder wenn die Ergebnis-Nachricht des Tools ankommt. Frames mit `heartbeat: true` melden nur Lebendigkeit, daher behalten Sie den Indikator, wenn einer ankommt. `attempt` kann `max_retries` unter persistenter Wiederholung überschreiten, daher leiten Sie das Löschen nicht von den Zählern ab.5365* Verfolgen Sie den Indikator nach `parent_tool_use_id`, das pro Subagent eindeutig ist. `tool_use_id` wird von parallelen Subagenten aus einem Assistenten-Turn geteilt, daher würde die Verfolgung danach den Indikator eines Subagenten löschen. Löschen Sie den Indikator, wenn ein späterer `tool_progress` für den gleichen `parent_tool_use_id` ankommt, ohne `subagent_retry` noch `heartbeat: true`, oder wenn die Ergebnis-Nachricht des Tools ankommt. Frames mit `heartbeat: true` melden nur Lebendigkeit, daher behalten Sie den Indikator, wenn einer ankommt. `attempt` kann `max_retries` unter persistenter Wiederholung überschreiten, daher leiten Sie das Löschen nicht von den Zählern ab.

5340* Behandeln Sie `error_category` als geschlossene Menge von Tokens zur Auswahl Ihres eigenen Nachrichtentextes, nicht als Anzeigetext: `rate_limit`, `overloaded`, `authentication_failed`, `server_error` oder `unknown`.5366* Behandeln Sie `error_category` als Token zur Auswahl Ihres eigenen Nachrichtentextes, nicht als Anzeigetext. Die Werte sind `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` und `unknown`. Behandeln Sie einen Wert, den Sie nicht erkennen, wie `unknown`, weil spätere Versionen Werte hinzufügen können.

5341 5367 

5342<h3 id="sdkauthstatusmessage">5368<h3 id="sdkauthstatusmessage">

5343 `SDKAuthStatusMessage`5369 `SDKAuthStatusMessage`

agent-teams.md +6 −6

Details

1633. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/de/model-config#environment-variables), wenn es auf etwas anderes als `inherit` gesetzt ist.1633. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/de/model-config#environment-variables), wenn es auf etwas anderes als `inherit` gesetzt ist.

1644. Das aktuelle Modell des Leads.1644. Das aktuelle Modell des Leads.

165 165 

166[`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/de/sub-agents#run-every-subagent-on-one-model) gilt auch für Teammates sowie für Subagents.166Wenn Sie [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/de/sub-agents#run-every-subagent-on-one-model) setzen, gelten die ersten beiden Quellen nicht. Claude Code wählt das Modell jedes Teammates aus `CLAUDE_CODE_SUBAGENT_MODEL`, wenn es auf etwas anderes als `inherit` gesetzt ist, und ansonsten aus dem aktuellen Modell des Leads. Erfordert Claude Code v2.1.257 oder später.

167 167 

168Vor v2.1.251 kam `CLAUDE_CODE_SUBAGENT_MODEL` zuerst in dieser Reihenfolge.168Vor v2.1.251 kam `CLAUDE_CODE_SUBAGENT_MODEL` zuerst in dieser Reihenfolge.

169 169 


252 Wie Claude Agent-Teams startet252 Wie Claude Agent-Teams startet

253</h3>253</h3>

254 254 

255Um ein Team zu starten, fordern Sie Claude um Teammates an. Claude startet einen Teammate, wenn er das [Agent-Tool](/docs/de/tools-reference) mit einem [`name`](/docs/de/sub-agents#subagent-names) aufruft, während Agent-Teams aktiviert sind, und Claude Code fragt Sie nicht um Bestätigung. Claude benennt auch gewöhnliche Subagenten von selbst, damit es sie später anschreiben kann, und während Agent-Teams aktiviert sind, wird ein benannter Subagent als Teammate gestartet, sodass Teams sich auch dann bilden können, wenn Sie nicht um einen gebeten haben.255Um ein Team zu starten, fordern Sie Claude um Teammates an. Claude startet einen Teammate, wenn er das [Agent-Tool](/docs/de/tools-reference) mit einem [`name`](/docs/de/sub-agents#subagent-names) aufruft, während Agent-Teams aktiviert sind, es sei denn, der Aufruf ist ein [Fork](/docs/de/sub-agents#fork-the-current-conversation) oder übergibt `isolation` beim Aufruf selbst. Claude Code fragt Sie nicht um Bestätigung für den Start.

256 256 

257Wenn Sie stattdessen Subagenten möchten, [schalten Sie Agent-Teams aus](#claude-spawns-teammates-instead-of-subagents).257Claude benennt auch gewöhnliche Subagenten von selbst, damit es sie später anschreiben kann. Diese Aufrufe folgen der gleichen Regel, sodass Teams sich auch dann bilden können, wenn Sie nicht um einen gebeten haben. Wenn Sie stattdessen Subagenten möchten, [schalten Sie Agent-Teams aus](#claude-spawns-teammates-instead-of-subagents).

258 258 

259<h3 id="architecture">259<h3 id="architecture">

260 Architektur260 Architektur


294 Verwenden Sie Subagent-Definitionen für Teammates294 Verwenden Sie Subagent-Definitionen für Teammates

295</h3>295</h3>

296 296 

297Beim Erzeugen eines Teammates können Sie einen [Subagent](/docs/de/sub-agents)-Typ aus jedem [Subagent-Bereich](/docs/de/sub-agents#choose-the-subagent-scope) referenzieren: Projekt, Benutzer, Plugin oder CLI-definiert. Dies ermöglicht es Ihnen, eine Rolle einmal zu definieren, wie z. B. einen Security-Reviewer oder Test-Runner, und sie sowohl als delegierter Subagent als auch als Agent-Team-Teammate wiederzuverwenden.297Beim Erzeugen eines Teammates in beiden Anzeigemodi können Sie einen [Subagent](/docs/de/sub-agents)-Typ aus dem Projekt, Benutzer oder verwalteten [Subagent-Bereich](/docs/de/sub-agents#choose-the-subagent-scope) referenzieren. Dies ermöglicht es Ihnen, eine Rolle einmal zu definieren, wie z. B. einen Security-Reviewer oder Test-Runner, und sie sowohl als delegierter Subagent als auch als Agent-Team-Teammate wiederzuverwenden.

298 298 

299Um eine Subagent-Definition zu verwenden, benennen Sie sie, wenn Sie Claude auffordern, den Teammate zu erzeugen:299Um eine Subagent-Definition zu verwenden, benennen Sie sie, wenn Sie Claude auffordern, den Teammate zu erzeugen:

300 300 


314 Berechtigungen314 Berechtigungen

315</h3>315</h3>

316 316 

317Teammates starten mit den Berechtigungseinstellungen des Leads. Wenn der Lead mit `--dangerously-skip-permissions` ausgeführt wird, tun dies auch alle Teammates. Nach dem Erzeugen können Sie einzelne Teammate-Modi ändern, aber Sie können keine Pro-Teammate-Modi zum Zeitpunkt des Erzeugung setzen.317Teammates starten mit dem Berechtigungsmodus des Leads, außer dem [`dontAsk`-Modus](/docs/de/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), den sie nicht erben. Wenn der Lead mit `--dangerously-skip-permissions` ausgeführt wird, tun dies auch alle Teammates. Nach dem Erzeugen können Sie den Berechtigungsmodus eines einzelnen Teammates ändern, aber Sie können keine Pro-Teammate-Berechtigungsmodi zum Zeitpunkt des Erzeugung setzen.

318 318 

319Teammate-Berechtigungsaufforderungen werden an die Lead-Sitzung weitergeleitet, also genehmigen Sie sie dort selbst. [Plan-Genehmigung](#have-teammates-plan-before-implementing) ist die konzipierte Ausnahme: die Lead-Sitzung gewährt Teammate-Plan-Genehmigungen ohne eine separate Aufforderung an Sie.319Teammate-Berechtigungsaufforderungen werden an die Lead-Sitzung weitergeleitet, also genehmigen Sie sie dort selbst. [Plan-Genehmigung](#have-teammates-plan-before-implementing) ist die konzipierte Ausnahme: die Lead-Sitzung gewährt Teammate-Plan-Genehmigungen ohne eine separate Aufforderung an Sie.

320 320 


549* **Keine verschachtelten Teams**: Teammates können ihre eigenen Teammates nicht erzeugen. Nur der Lead kann das Team verwalten.549* **Keine verschachtelten Teams**: Teammates können ihre eigenen Teammates nicht erzeugen. Nur der Lead kann das Team verwalten.

550* **Keine Hintergrund-Subagenten von In-Process-Teammates**: die eigenen Subagenten eines In-Process-Teammates laufen im Vordergrund, da die Hintergrundarbeit eines Teammates nicht länger als der Prozess des Leads bestehen kann. Claude Code gibt einen Fehler zurück, wenn ein Teammate einen Subagenten erzeugt, dessen Definition `background: true` setzt. Eine `run_in_background: true`-Anfrage eines Teammates schlägt ebenfalls fehl, entweder mit einem Fehler oder durch stilles Ausführen im Vordergrund, wie in [wie Claude Code Vordergrund oder Hintergrund auswählt](/docs/de/sub-agents#run-subagents-in-foreground-or-background) beschrieben. Subagenten, die aus der Hauptkonversation gestartet werden, folgen dem [Hintergrund-Standard](/docs/de/sub-agents#run-subagents-in-foreground-or-background).550* **Keine Hintergrund-Subagenten von In-Process-Teammates**: die eigenen Subagenten eines In-Process-Teammates laufen im Vordergrund, da die Hintergrundarbeit eines Teammates nicht länger als der Prozess des Leads bestehen kann. Claude Code gibt einen Fehler zurück, wenn ein Teammate einen Subagenten erzeugt, dessen Definition `background: true` setzt. Eine `run_in_background: true`-Anfrage eines Teammates schlägt ebenfalls fehl, entweder mit einem Fehler oder durch stilles Ausführen im Vordergrund, wie in [wie Claude Code Vordergrund oder Hintergrund auswählt](/docs/de/sub-agents#run-subagents-in-foreground-or-background) beschrieben. Subagenten, die aus der Hauptkonversation gestartet werden, folgen dem [Hintergrund-Standard](/docs/de/sub-agents#run-subagents-in-foreground-or-background).

551* **Lead ist fest**: die Hauptsitzung ist der Lead für seine Lebensdauer. Sie können einen Teammate nicht zum Lead befördern oder die Führung übertragen.551* **Lead ist fest**: die Hauptsitzung ist der Lead für seine Lebensdauer. Sie können einen Teammate nicht zum Lead befördern oder die Führung übertragen.

552* **Berechtigungen beim Erzeugen gesetzt**: alle Teammates starten mit dem Berechtigungsmodus des Leads. Sie können einzelne Teammate-Modi nach dem Erzeugen ändern, aber Sie können keine Pro-Teammate-Modi zum Zeitpunkt des Erzeugung setzen.552* **Berechtigungen beim Erzeugen gesetzt**: Teammates starten mit dem Berechtigungsmodus, der unter [Berechtigungen](#permissions) beschrieben ist. Sie können den Berechtigungsmodus eines einzelnen Teammates nach dem Erzeugen ändern, aber Sie können keine Pro-Teammate-Berechtigungsmodi zum Zeitpunkt des Erzeugung setzen.

553* **Split Panes erfordern tmux oder iTerm2**: der Standard-In-Process-Modus funktioniert in jedem Terminal. Der Split-Pane-Modus wird in VS Code's integriertem Terminal, Windows Terminal oder Ghostty nicht unterstützt.553* **Split Panes erfordern tmux oder iTerm2**: der Standard-In-Process-Modus funktioniert in jedem Terminal. Der Split-Pane-Modus wird in VS Code's integriertem Terminal, Windows Terminal oder Ghostty nicht unterstützt.

554 554 

555<h2 id="next-steps">555<h2 id="next-steps">

agent-view.md +88 −16

Details

133 133 

134Der Terminal-Tab-Titel zeigt die Anzahl der wartenden Eingaben, während die Agenten-Ansicht offen ist: `2 awaiting input · claude agents`, wenn Sitzungen Eingabe benötigen, oder `claude agents`, wenn keine benötigen.134Der Terminal-Tab-Titel zeigt die Anzahl der wartenden Eingaben, während die Agenten-Ansicht offen ist: `2 awaiting input · claude agents`, wenn Sitzungen Eingabe benötigen, oder `claude agents`, wenn keine benötigen.

135 135 

136Um den Sitzungsstatus aus einem Skript oder einem anderen Programm zu lesen, verwenden Sie [`claude agents --json`](#read-session-state-from-a-script) anstelle der Dateien unter `~/.claude/jobs/`.

137 

136Während die Agenten-Ansicht offen ist, sendet Claude Code auch eine Benachrichtigung über Ihren konfigurierten [Terminal-Benachrichtigungskanal](/docs/de/terminal-config#get-a-terminal-bell-or-notification), wenn eine lokale Hintergrund-Sitzung Ihre Eingabe benötigt, fertig wird oder fehlschlägt. Sitzungen, die nach einem Zeitplan ausgeführt werden, wie z. B. [`/loop`](/docs/de/scheduled-tasks)-Sitzungen, benachrichtigen nur, wenn sie Ihre Eingabe benötigen. Benachrichtigungen verwenden die gleiche [`preferredNotifChannel`-Einstellung](/docs/de/settings-reference#preferrednotifchannel) wie der Rest von Claude Code und lösen den [`Notification`-Hook](/docs/de/hooks#notification) mit dem Typ `agent_needs_input` oder `agent_completed` aus.138Während die Agenten-Ansicht offen ist, sendet Claude Code auch eine Benachrichtigung über Ihren konfigurierten [Terminal-Benachrichtigungskanal](/docs/de/terminal-config#get-a-terminal-bell-or-notification), wenn eine lokale Hintergrund-Sitzung Ihre Eingabe benötigt, fertig wird oder fehlschlägt. Sitzungen, die nach einem Zeitplan ausgeführt werden, wie z. B. [`/loop`](/docs/de/scheduled-tasks)-Sitzungen, benachrichtigen nur, wenn sie Ihre Eingabe benötigen. Benachrichtigungen verwenden die gleiche [`preferredNotifChannel`-Einstellung](/docs/de/settings-reference#preferrednotifchannel) wie der Rest von Claude Code und lösen den [`Notification`-Hook](/docs/de/hooks#notification) mit dem Typ `agent_needs_input` oder `agent_completed` aus.

137 139 

138Hintergrund-Sitzungen benötigen kein offenes Terminal, um weiter zu funktionieren. Ein separater [Supervisor-Prozess](#the-supervisor-process) führt sie aus, sodass Sie die Agenten-Ansicht schließen, Ihre Shell schließen oder eine neue interaktive Sitzung starten können und Ihre versendete Arbeit läuft weiter.140Hintergrund-Sitzungen benötigen kein offenes Terminal, um weiter zu funktionieren. Ein separater [Supervisor-Prozess](#the-supervisor-process) führt sie aus, sodass Sie die Agenten-Ansicht schließen, Ihre Shell schließen oder eine neue interaktive Sitzung starten können und Ihre versendete Arbeit läuft weiter.


218 220 

219Angehängte Sitzungen werden immer im [Vollbildmodus](/docs/de/fullscreen) gerendert, unabhängig von Ihrer `tui`-Einstellung, da eine Hintergrund-Sitzung keinen Terminal-Scrollback zum Anhängen hat. Scrollen Sie mit `PgUp`, `PgDn` oder dem Mausrad, und drücken Sie `Ctrl+O` für den Transkript-Modus. Ihr natives Terminal-Scroll und tmux-Kopiermodus zeigen nur den aktuellen Viewport, genau wie wenn Sie eine beliebige Vollbildanwendung ausführen.221Angehängte Sitzungen werden immer im [Vollbildmodus](/docs/de/fullscreen) gerendert, unabhängig von Ihrer `tui`-Einstellung, da eine Hintergrund-Sitzung keinen Terminal-Scrollback zum Anhängen hat. Scrollen Sie mit `PgUp`, `PgDn` oder dem Mausrad, und drücken Sie `Ctrl+O` für den Transkript-Modus. Ihr natives Terminal-Scroll und tmux-Kopiermodus zeigen nur den aktuellen Viewport, genau wie wenn Sie eine beliebige Vollbildanwendung ausführen.

220 222 

221Drücken Sie `←` auf einer leeren Eingabeaufforderung, oder führen Sie `/exit` aus, um sich abzuhängen und zur Agenten-Ansicht zurückzukehren, ob Sie die Sitzung von der Agenten-Ansicht aus geöffnet haben oder mit `claude attach <id>` von Ihrer Shell aus.223`←` hängt auch ab, während das [`/btw`-Overlay](/docs/de/interactive-mode#side-questions-with-%2Fbtw) offen ist. Erfordert Claude Code v2.1.257 oder später. Eine Nebenfrage, die noch antwortet, läuft weiter, während Sie weg sind. Das nächste Mal, wenn Sie anhängen, öffnet sich das Overlay mit ihr erneut, oder mit ihrer Antwort.

222 224 

223Unter Windows, wenn Sie `←` innerhalb von etwa einer halben Sekunde nach dem Anhängen drücken, zeigt Claude Code `Ambiguous ←, press again to detach`, da das Terminal in diesem Fenster einen Druck von vor dem Anhängen erneut zugestellen kann. Drücken Sie `←` erneut, um sich abzuhängen.225Unter Windows, wenn Sie `←` innerhalb von etwa einer halben Sekunde nach dem Anhängen drücken, zeigt Claude Code `Ambiguous ←, press again to detach`, da das Terminal in diesem Fenster einen Druck von vor dem Anhängen erneut zugestellen kann. Drücken Sie `←` erneut, um sich abzuhängen.

224 226 


330| `Ctrl+C` | Eingabe löschen; zweimal drücken, um zu beenden |332| `Ctrl+C` | Eingabe löschen; zweimal drücken, um zu beenden |

331| `?` | Alle Kürzel anzeigen |333| `?` | Alle Kürzel anzeigen |

332 334 

335`Ctrl+S`, `Ctrl+T` und `Ctrl+G` folgen Ihrem [`keybindings.json`](/docs/de/keybindings). Binden Sie `Ctrl+S` und `Ctrl+T` mit den Aktionen `agents:switchView` und `agents:togglePin` im [`Agents`-Kontext](/docs/de/keybindings#agents-actions) neu oder heben Sie die Bindung auf, und `Ctrl+G` durch die `chat:externalEditor`-Bindung des `Chat`-Kontexts. Die anderen Kürzel in der Tabelle können nicht neu gebunden werden.

336 

333<h2 id="dispatch-new-agents">337<h2 id="dispatch-new-agents">

334 Neue Agenten versenden338 Neue Agenten versenden

335</h2>339</h2>


473claude --agent code-reviewer --bg "address review comments on PR 1234"477claude --agent code-reviewer --bg "address review comments on PR 1234"

474```478```

475 479 

476Wenn der Name keinem Ihrer Subagenten entspricht, schlägt der Start fehl: Claude Code druckt eine `no agent named`-Warnung und meldet die Sitzung immer noch als versandt, aber die Sitzung wird sofort mit einem `--agent '<name>' not found`-Fehler beendet.480Wenn der Name keinem Ihrer Subagenten entspricht, schlägt der Start fehl: Claude Code druckt eine `no agent named`-Warnung und meldet die Sitzung immer noch als versendet, aber die Sitzung wird sofort mit einem `--agent '<name>' not found`-Fehler beendet.

481 

482Wenn die versendete Sitzung später fortgesetzt oder neu gestartet wird, stellt Claude Code den Agenten und seine Tool-Einschränkungen wieder her; für seinen System-Prompt siehe [System-Prompt-Flags in fortgesetzten Gesprächen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Es sucht zuerst im Sitzungsverzeichnis nach dem Agenten, sofern Sie diesen Arbeitsbereich [vertraut haben](/docs/de/permissions#project-allow-rules-and-workspace-trust), sodass ein projektbezogener Agent immer noch geladen wird, wenn die Sitzung aus einem anderen Verzeichnis fortgesetzt wird. Wenn der Agent nicht mehr existiert, wird die Sitzung mit den Standard-Tools fortgesetzt und sein Transkript öffnet sich mit einer [Warnung, die den Agenten benennt](/docs/de/errors#session-agent-no-longer-available).

483 

484Um ein vorhandenes Gespräch im Hintergrund fortzusetzen, übergeben Sie seine vollständige Sitzungs-ID mit `--resume`:

485 

486```bash theme={null}

487claude --resume 1f0e2c9a-6d0b-4c11-9f39-2a77c1d4e8b5 --bg "pick up where you left off and finish the migration"

488```

489 

490Auf Claude Code v2.1.257 oder später setzt Claude Code diese Sitzung entweder unter der gleichen ID fort oder startet eine Kopie unter einer neuen ID und druckt eine `note:`-Zeile, die erklärt, warum es nicht an Ort und Stelle fortgesetzt werden konnte. Wenn die Sitzung an Ort und Stelle fortgesetzt wird, zeigt `claude agents` eine Zeile dafür an.

477 491 

478Wenn die versendete Sitzung später fortgesetzt oder neu gestartet wird, stellt Claude Code den System-Prompt und die Tool-Einschränkungen des Agenten wieder her. Es sucht zuerst im Sitzungsverzeichnis nach dem Agenten, sofern Sie diesen Arbeitsbereich [vertraut haben](/docs/de/permissions#project-allow-rules-and-workspace-trust), sodass ein projektbezogener Agent immer noch geladen wird, wenn die Sitzung aus einem anderen Verzeichnis fortgesetzt wird. Wenn der Agent nicht mehr existiert, wird die Sitzung mit den Standard-Tools und dem Standard-System-Prompt fortgesetzt und sein Transkript öffnet sich mit einer [Warnung, die den Agenten benennt](/docs/de/errors#session-agent-no-longer-available).492Wenn Sie `--bg` mit `--continue`, einem bloßen `--resume` oder `--resume` mit einem Namen oder Dateipfad kombinieren, startet Claude Code immer eine solche Kopie. Fügen Sie `--fork-session` hinzu, um absichtlich eine Kopie zu starten, ohne die Notiz.

479 493 

480Übergeben Sie `--name`, um den Anzeigenamen der Sitzung in der Agenten-Ansicht anstelle des automatisch generierten festzulegen:494Übergeben Sie `--name`, um den Anzeigenamen der Sitzung in der Agenten-Ansicht anstelle des automatisch generierten festzulegen:

481 495 


561 575 

562* Die Agenten-Ansicht entfernt ihn, einschließlich nicht committeter Änderungen, daher committen Sie zuerst, was Sie behalten möchten.576* Die Agenten-Ansicht entfernt ihn, einschließlich nicht committeter Änderungen, daher committen Sie zuerst, was Sie behalten möchten.

563* `claude rm` behält ihn zusammen mit der Sitzungszeile, wenn er nicht committete Änderungen hat.577* `claude rm` behält ihn zusammen mit der Sitzungszeile, wenn er nicht committete Änderungen hat.

564* Weder die Agenten-Ansicht noch `claude rm` entfernen einen Worktree mit Commits, die Claude Code nicht bestätigen kann, sind anderswo gespeichert, oder einen, den eine andere laufende Sitzung verwendet oder gesperrt hat. Claude Code behält den Worktree und die Sitzung, und benennt das beibehaltene Verzeichnis und den Grund.578* Weder die Agenten-Ansicht noch `claude rm` entfernen einen Worktree, den eine andere laufende Sitzung verwendet oder gesperrt hat, und das Löschen erneut ändert das nicht. Claude Code behält den Worktree und die Sitzung, und benennt das beibehaltene Verzeichnis und den Grund; in der Agenten-Ansicht zeigt die Sitzungszeile `not deleted`. Schließen Sie die andere Sitzung, dann löschen Sie erneut.

579* Wenn Sie eine Sitzung löschen, deren Worktree Commits hat, die Claude Code nicht bestätigen kann, sind anderswo gespeichert, behält Claude Code den Worktree und die Sitzung, und die Nachricht benennt den Branch des Worktrees und wie viele Commits nicht gepusht sind. Die Nachricht bietet auch die zwei Wege nach vorne: Pushen Sie die Commits, oder löschen Sie erneut, um sie zu verwerfen.

565 580 

566 Commits auf einem Remote blockieren das Löschen nicht. Auch nicht Commits auf der lokalen Kopie des Standard-Branches Ihres `origin`-Remote, solange dieser Branch in Ihrem Haupt-Checkout ausgecheckt ist, dem Repository-Verzeichnis selbst, nicht einem Worktree.581 Commits auf einem Remote blockieren das Löschen nicht. Auch nicht Commits auf der lokalen Kopie des Standard-Branches Ihres `origin`-Remote, solange dieser Branch in Ihrem Haupt-Checkout ausgecheckt ist, dem Repository-Verzeichnis selbst, nicht einem Worktree.

567 582 

568 In der Agenten-Ansicht zeigt ein abgelehntes Löschen `not deleted` mit dem Grund auf der Sitzungszeile. Pushen Sie die Commits, mergen Sie sie in diesen Standard-Branch, oder schließen Sie die andere Sitzung, dann löschen Sie erneut.583 Nach dieser Ablehnung wählen Sie:

584 

585 * Um die Commits zu behalten, pushen Sie sie, oder mergen Sie sie in diesen Standard-Branch, dann löschen Sie die Sitzung erneut.

586 * Um sie zu verwerfen, löschen Sie die Sitzung erneut ohne zu pushen: Drücken Sie `Ctrl+X` zweimal auf ihrer Zeile in der Agenten-Ansicht, oder führen Sie den `claude rm <id> --discard-unpushed`-Befehl aus, den die Ablehnung druckte. Dies entfernt die Sitzung und den Worktree zusammen mit seinem Branch, verwirft die nicht gepushten Commits und alle nicht committeten Änderungen.

587 

588 Wenn Sie erneut löschen, verwirft Claude Code nur, was die Ablehnung zeigte: Wenn der Worktree einen Commit gewonnen hat, behält Claude Code ihn erneut und zeigt den aktualisierten Zustand.

589 

590 Wenn die Aufzeichnungen einer anderen abgeschlossenen Sitzung auch den Worktree benennen, bleibt er, wenn Sie erneut löschen; pushen Sie die Commits, dann löschen Sie erneut.

569* Ein Worktree, den Git nicht mehr erkennt, z. B. nach `git worktree prune`, blockiert das Löschen nicht. Claude Code löscht die Sitzung und lässt das Verzeichnis auf der Festplatte.591* Ein Worktree, den Git nicht mehr erkennt, z. B. nach `git worktree prune`, blockiert das Löschen nicht. Claude Code löscht die Sitzung und lässt das Verzeichnis auf der Festplatte.

592* Wenn Git oder Ihr [`WorktreeRemove`-Hook](/docs/de/hooks#worktreeremove) fehlschlägt, den Worktree zu entfernen, behält Claude Code den Worktree und die Sitzung, und die Nachricht benennt die Ursache. Für einen Hook sagt die Nachricht, wie er endete, z. B. `exited 1`, und zitiert den Anfang seines stderr. Die Nachricht sagt Ihnen auch, welche dieser Aktionen Sie als nächstes tun sollten:

593 

594 * Löschen Sie die Sitzung erneut, um das Verzeichnis trotzdem zu entfernen, indem Sie `Ctrl+X` zweimal auf ihrer Zeile in der Agenten-Ansicht drücken oder den `claude rm <id> --force-remove-worktree <worktree-id>`-Befehl ausführen, den die `claude rm`-Ablehnung druckte. Claude Code bietet dies nur an, wenn es bestätigen kann, dass das Verzeichnis einer der verknüpften Worktrees des Repositories unter `.claude/worktrees/` ist, ohne nicht committete Änderungen an verfolgten Dateien, ohne verschachteltes Repository darin und ohne Aufzeichnung einer anderen Sitzung, die es benennt. Der Branch des Worktrees bleibt im Repository.

595 * Beheben Sie, was im Weg steht, z. B. indem Sie nicht committete Änderungen committen oder stashen, schließen Sie, was das Verzeichnis verwendet, oder beheben Sie den Hook, dann löschen Sie die Sitzung erneut.

596 * Entfernen Sie das Verzeichnis selbst, dann löschen Sie die Sitzung erneut.

570 597 

571Ein Worktree, den Sie selbst erstellt haben und in dem Sie die Sitzung gestartet haben, wird in jedem Fall beibehalten.598Ein Worktree, den Sie selbst erstellt haben und in dem Sie die Sitzung gestartet haben, wird in jedem Fall beibehalten.

572 599 


637Der [Berechtigungsmodus](/docs/de/permissions) hängt davon ab, wie Sie die Sitzung gestartet haben:664Der [Berechtigungsmodus](/docs/de/permissions) hängt davon ab, wie Sie die Sitzung gestartet haben:

638 665 

639* **Mit `/bg` oder `←` in den Hintergrund verschoben**: Claude Code behält den Berechtigungsmodus, in dem sich die Sitzung befand, daher bleibt eine Sitzung, die Sie zu `acceptEdits` oder `auto` gewechselt haben, nach dem Trennen in diesem Modus666* **Mit `/bg` oder `←` in den Hintergrund verschoben**: Claude Code behält den Berechtigungsmodus, in dem sich die Sitzung befand, daher bleibt eine Sitzung, die Sie zu `acceptEdits` oder `auto` gewechselt haben, nach dem Trennen in diesem Modus

640* **Aus einer Agenten-Ansicht versendet, die Sie mit `←` geöffnet haben**: Die neue Sitzung startet im Berechtigungsmodus der Sitzung, von der Sie kamen667* **Aus einer Agenten-Ansicht versendet, die Sie mit `←` geöffnet haben**: Die Konfiguration des Ziels kommt zuerst, und der Berechtigungsmodus der Sitzung, von der Sie kamen, gilt, wenn nichts anderes einen setzt

641* **Aus `claude agents` versendet, das in einer Shell gestartet wurde, oder mit `claude --bg`**: Die neue Sitzung startet so, wie eine neue `claude`-Sitzung in diesem Verzeichnis würde, es sei denn, Sie haben sie aus einer Agenten-Ansicht versendet, die Sie mit [Versand-Standardwerten](#dispatch-defaults) geöffnet haben. [Welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) listet die Reihenfolge auf668* **Aus `claude agents` versendet, das in einer Shell gestartet wurde, oder mit `claude --bg`**: Die neue Sitzung startet so, wie eine neue `claude`-Sitzung in diesem Verzeichnis würde, es sei denn, Sie haben sie aus einer Agenten-Ansicht versendet, die Sie mit [Versand-Standardwerten](#dispatch-defaults) geöffnet haben. [Welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) listet die Reihenfolge auf

642 669 

670Für eine Sitzung, die Sie aus einer Agenten-Ansicht versenden, die Sie mit `←` geöffnet haben, nimmt Claude Code den Berechtigungsmodus aus dem ersten dieser Punkte, der zutrifft:

671 

6721. Der [`permissions.defaultMode`](/docs/de/settings-reference#permissions-defaultmode) des Zielverzeichnisses. Zwei Quellregeln gelten:

673 * `auto` und `bypassPermissions` [treten nur aus verwalteten Einstellungen, einer `--settings`-Datei oder `~/.claude/settings.json` in Kraft](/docs/de/settings-reference#permissions-defaultmode).

674 * Claude Code lehnt einen `defaultMode` aus der `.claude/settings.json` oder `.claude/settings.local.json` des Projekts ab, der einen permissiveren Modus auswählt als die Sitzung, von der Sie kamen, war.

6752. Der Berechtigungsmodus der Sitzung, von der Sie kamen

676 

677Wenn Claude Code einen Modus einer Quelle als zu permissiv ablehnt, entscheidet die nächste Quelle in der Liste. Wenn Sie beispielsweise aus einer Plan-Modus-Sitzung in ein Verzeichnis versenden, dessen eingecheckten Einstellungen `acceptEdits` anfordern, startet die neue Sitzung im Plan-Modus. Wenn Sie diesen `defaultMode` zu `~/.claude/settings.json` verschieben, gilt er unabhängig vom Berechtigungsmodus der Sitzung, von der Sie kamen.

678 

679Permissivität läuft Plan, dann Manual und `dontAsk`, dann `acceptEdits` und auto, die jeweils als permissiver als die andere zählen, dann `bypassPermissions`.

680 

643<h4 id="dispatch-defaults">681<h4 id="dispatch-defaults">

644 Versand-Standardwerte682 Versand-Standardwerte

645</h4>683</h4>


672 710 

673Claude Code behält auch einen Namen, den Sie mit [`/rename`](/docs/de/commands) oder `Ctrl+R` festgelegt haben, über diesen Neustart hinweg, sodass Sie immer noch [`claude --resume <name>`](/docs/de/sessions#name-your-sessions) ausführen können, um die Sitzung zu erreichen.711Claude Code behält auch einen Namen, den Sie mit [`/rename`](/docs/de/commands) oder `Ctrl+R` festgelegt haben, über diesen Neustart hinweg, sodass Sie immer noch [`claude --resume <name>`](/docs/de/sessions#name-your-sessions) ausführen können, um die Sitzung zu erreichen.

674 712 

713Ein Prompt, den Sie mit [`Ctrl+S`](/docs/de/interactive-mode#general-controls) während des Anhängens verstaut haben, wird auch mit der Sitzung beibehalten. Öffnen Sie die Sitzung erneut, nachdem ihr Prozess gestoppt oder neu gestartet wurde, und `Ctrl+S` stellt den verstaut Text wieder her. Eingefügter Inhalt im Verstau überlebt den Neustart nicht.

714 

675<h3 id="settings-plugins-and-mcp-servers">715<h3 id="settings-plugins-and-mcp-servers">

676 Einstellungen, Plugins und MCP-Server716 Einstellungen, Plugins und MCP-Server

677</h3>717</h3>


705Jede Hintergrund-Sitzung hat eine kurze ID, die Sie aus der Shell verwenden können. Die ID wird gedruckt, wenn Sie eine Sitzung mit `claude --bg` starten, und die ID jeder Sitzung ist ihr Verzeichnisname unter `~/.claude/jobs/`. Diese Befehle sind nützlich zum Scripting oder wenn Sie die Agenten-Ansicht nicht öffnen möchten.745Jede Hintergrund-Sitzung hat eine kurze ID, die Sie aus der Shell verwenden können. Die ID wird gedruckt, wenn Sie eine Sitzung mit `claude --bg` starten, und die ID jeder Sitzung ist ihr Verzeichnisname unter `~/.claude/jobs/`. Diese Befehle sind nützlich zum Scripting oder wenn Sie die Agenten-Ansicht nicht öffnen möchten.

706 746 

707| Befehl | Zweck |747| Befehl | Zweck |

708| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |748| :--------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

709| `claude agents` | Agenten-Ansicht öffnen |749| `claude agents` | Agenten-Ansicht öffnen |

710| `claude agents --cwd <path>` | Agenten-Ansicht auf Sitzungen beschränken, die unter `<path>` gestartet wurden |750| `claude agents --cwd <path>` | Agenten-Ansicht auf Sitzungen beschränken, die unter `<path>` gestartet wurden |

711| `claude agents --json` | Sitzungen als JSON-Array drucken und beenden. Siehe [Sitzungen als JSON auflisten](#list-sessions-as-json) |751| `claude agents --json` | Sitzungen als JSON-Array drucken und beenden. Siehe [Sitzungen als JSON auflisten](#list-sessions-as-json) |


715| `claude respawn <id>` | Eine Sitzung neu starten (laufend oder gestoppt), z. B. um eine aktualisierte Claude Code-Binärdatei zu verwenden. Die neu gestartete Sitzung setzt ihr gespeichertes Gespräch fort; wenn keines auf der Festplatte vorhanden ist, führt sie ihre ursprüngliche Eingabeaufforderung erneut als neues Gespräch aus |755| `claude respawn <id>` | Eine Sitzung neu starten (laufend oder gestoppt), z. B. um eine aktualisierte Claude Code-Binärdatei zu verwenden. Die neu gestartete Sitzung setzt ihr gespeichertes Gespräch fort; wenn keines auf der Festplatte vorhanden ist, führt sie ihre ursprüngliche Eingabeaufforderung erneut als neues Gespräch aus |

716| `claude respawn --all` | Jede laufende Sitzung neu starten, z. B. um alle Sitzungen auf einmal auf eine aktualisierte Claude Code-Binärdatei zu verschieben |756| `claude respawn --all` | Jede laufende Sitzung neu starten, z. B. um alle Sitzungen auf einmal auf eine aktualisierte Claude Code-Binärdatei zu verschieben |

717| `claude rm <id>` | Eine Sitzung aus der Liste entfernen, zusammen mit einem Worktree, den Claude dafür erstellt hat, wenn es sicher zu löschen ist; siehe [Was das Löschen einer Sitzung entfernt](#what-deleting-a-session-removes). Das Gesprächstranskript bleibt auf Ihrem lokalen Computer und bleibt über `claude --resume` verfügbar |757| `claude rm <id>` | Eine Sitzung aus der Liste entfernen, zusammen mit einem Worktree, den Claude dafür erstellt hat, wenn es sicher zu löschen ist; siehe [Was das Löschen einer Sitzung entfernt](#what-deleting-a-session-removes). Das Gesprächstranskript bleibt auf Ihrem lokalen Computer und bleibt über `claude --resume` verfügbar |

758| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Eine Sitzung löschen, deren Löschung wegen nicht gepushter Commits abgelehnt wurde, und dabei den Worktree zusammen mit seinem Branch und seinen Commits verwerfen. Übergeben Sie den genauen Wert, den die Ablehnung gedruckt hat; siehe [Was das Löschen einer Sitzung entfernt](#what-deleting-a-session-removes). Erfordert v2.1.260 oder später |

759| `claude rm <id> --force-remove-worktree <worktree-id>` | Eine Sitzung löschen, deren Löschung abgelehnt wurde, weil git oder der `WorktreeRemove`-Hook seinen Worktree nicht entfernen konnte, und dabei das Worktree-Verzeichnis trotzdem löschen und seinen Branch im Repository belassen. Übergeben Sie den genauen Wert, den die Ablehnung gedruckt hat; siehe [Was das Löschen einer Sitzung entfernt](#what-deleting-a-session-removes). Erfordert v2.1.268 oder später |

718| `claude daemon status` | Den Status des [Supervisors](#the-supervisor-process), die Version, das Socket-Verzeichnis und die Anzahl der Worker drucken |760| `claude daemon status` | Den Status des [Supervisors](#the-supervisor-process), die Version, das Socket-Verzeichnis und die Anzahl der Worker drucken |

719| `claude daemon stop --any` | Den Supervisor-Prozess und die Hintergrund-Sitzungen, die er hostet, stoppen. Übergeben Sie `--keep-workers`, um Hintergrund-Sitzungen laufen zu lassen, damit der nächste Supervisor sich mit ihnen verbinden kann. Der nächste `claude agents` oder `claude --bg` startet einen neuen Supervisor |761| `claude daemon stop --any` | Den Supervisor-Prozess und die Hintergrund-Sitzungen, die er hostet, stoppen. Übergeben Sie `--keep-workers`, um Hintergrund-Sitzungen laufen zu lassen, damit der nächste Supervisor sich mit ihnen verbinden kann. Der nächste `claude agents` oder `claude --bg` startet einen neuen Supervisor |

720 762 


730| :------------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |772| :------------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

731| `cwd`, `kind`, `startedAt` | Immer | Das Arbeitsverzeichnis, `interactive` oder `background`, und die Startzeit in Unix-Millisekunden |773| `cwd`, `kind`, `startedAt` | Immer | Das Arbeitsverzeichnis, `interactive` oder `background`, und die Startzeit in Unix-Millisekunden |

732| `id` | Hintergrund-Sitzungen | Kurze ID, verwendbar mit `claude attach`, `claude logs` und `claude stop` |774| `id` | Hintergrund-Sitzungen | Kurze ID, verwendbar mit `claude attach`, `claude logs` und `claude stop` |

733| `state` | Hintergrund-Sitzungen | Einer von `working`, `blocked`, `done`, `failed` oder `stopped` |775| `state` | Hintergrund-Sitzungen | Einer von `working`, `blocked`, `done`, `failed` oder `stopped`. Siehe [Sitzungsstatus aus einem Skript lesen](#read-session-state-from-a-script), um zu erfahren, was jeder Wert bedeutet |

734| `pid`, `status` | Während der Prozess aktiv ist | Prozess-ID und aktueller Status |776| `pid`, `status` | Während der Prozess aktiv ist | Prozess-ID und einer von `busy`, `waiting` oder `idle` |

735| `waitingFor` | Wenn `status` `waiting` ist | Worauf die Sitzung blockiert ist: `permission prompt` für eine Genehmigung, `input needed` für eine Frage von Claude oder eine Eingabeanforderung eines MCP-Servers, `sandbox request`, `worker request` oder `dialog open` |777| `waitingFor` | Wenn `status` `waiting` ist | Worauf die Sitzung blockiert ist: `permission prompt` für eine Genehmigung, `input needed` für eine Frage von Claude oder eine Eingabeanforderung eines MCP-Servers, `sandbox request`, `worker request` oder `dialog open` |

736| `sessionId`, `name` | Wenn gesetzt | `sessionId` ist die vollständige Sitzungs-UUID, verwendbar mit [`claude --resume`](/docs/de/sessions). Der `name` einer interaktiven Sitzung ist ihr [Standard-Anzeigename](/docs/de/sessions#name-your-sessions), bis Sie die Sitzung benennen oder einen Plan darin akzeptieren |778| `sessionId`, `name` | Wenn gesetzt | `sessionId` ist die vollständige Sitzungs-UUID, verwendbar mit [`claude --resume`](/docs/de/sessions). Der `name` einer interaktiven Sitzung ist ihr [Standard-Anzeigename](/docs/de/sessions#name-your-sessions), bis Sie die Sitzung benennen oder einen Plan darin akzeptieren |

737 779 

780<h3 id="read-session-state-from-a-script">

781 Sitzungsstatus aus einem Skript lesen

782</h3>

783 

784`claude agents --json` ist die unterstützte Methode, um Sitzungsstatus von außerhalb von Claude Code zu lesen, beispielsweise aus einer Statusleiste, einem Scheduler oder einer anderen Claude-Sitzung, die Hintergrundarbeit überwacht. Fragen Sie `claude agents --json --all` ab, das weiterhin Sitzungen auflistet, deren Prozess beendet wurde, und lesen Sie den `state`, `status` und `waitingFor` jedes Eintrags.

785 

786| `state` | Was es bedeutet |

787| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

788| `working` | Ein Turn wird ausgeführt, oder die Sitzung befindet sich zwischen Schritten der Arbeit, die sie selbst antreibt, wie z. B. eine [`/loop`](/docs/de/scheduled-tasks)-Iteration oder ein Warten auf CI. `status` teilt Ihnen mit, ob sein Prozess gerade `busy` ist |

789| `blocked` | Die Sitzung wartet auf Sie: eine Frage, die sie gestellt hat, eine Genehmigung oder Sandbox-Entscheidung, ein Fehler, den nur Sie beheben können, wie z. B. ein abgelaufener Login, oder ihre erste Eingabeaufforderung, wenn Sie sie ohne eine gestartet haben. Wenn das Warten eine offene Eingabeaufforderung in einem Live-Prozess ist, benennt `waitingFor` sie |

790| `done` | Der letzte Turn hat beendet, was Sie gefragt haben, und die Sitzung ist bereit für Ihre nächste Eingabeaufforderung, unabhängig davon, ob sein Prozess noch aktiv ist oder nicht |

791| `failed`, `stopped` | Die Aufgabe endete mit einem Fehler, oder die Sitzung wurde gestoppt |

792 

793Eine Sitzung, die ihren Turn beendet hat und auf Ihre nächste Anweisung wartet, liest `done`, nicht `blocked`. `blocked` bedeutet immer, dass die Sitzung etwas von Ihnen benötigt, bevor sie fortfahren kann.

794 

795Die Dateien unter `~/.claude/jobs/<id>/` sind keine stabile Schnittstelle. Werte, die eine Sitzung oder ein anderes Programm in `state`, `detail`, `tempo` oder `needs` schreibt, werden beim nächsten Update ersetzt.

796 

797Wenn Sie möchten, dass eine Sitzung Fortschritt in ihren eigenen Worten meldet, lassen Sie sie eine eigene Datei schreiben, beispielsweise unter `$CLAUDE_JOB_DIR/tmp`, anstatt `state.json` zu bearbeiten.

798 

738<h2 id="how-background-sessions-are-hosted">799<h2 id="how-background-sessions-are-hosted">

739 Wie Hintergrund-Sitzungen gehostet werden800 Wie Hintergrund-Sitzungen gehostet werden

740</h2>801</h2>


751 812 

752Jede Sitzung ist ihr eigener Claude Code-Prozess unter dem Supervisor, und was mit diesem Prozess geschieht, hängt vom Status der Sitzung ab:813Jede Sitzung ist ihr eigener Claude Code-Prozess unter dem Supervisor, und was mit diesem Prozess geschieht, hängt vom Status der Sitzung ab:

753 814 

754* **Funktioniert, wartet auf Sie oder ist angehängt**: Der Prozess läuft weiter. Ein laufender Subagent, Workflow oder Monitor zählt als funktionierend.815* **Funktioniert, wartet auf eine Berechtigung oder einen anderen Dialog oder ist angehängt**: Der Prozess läuft weiter. Ein laufender Subagent, Workflow oder Monitor zählt als funktionierend.

755* **Fertig und unverbunden für etwa eine Stunde**: Der Supervisor stoppt den Prozess, um Ressourcen freizugeben. Das Gespräch bleibt auf der Festplatte, und das nächste Mal, wenn Sie anhängen oder antworten, wird die Sitzung fortgesetzt. Heften Sie eine Sitzung mit `Ctrl+T` an, um ihren Prozess im Leerlauf am Laufen zu halten.816* **Fertig oder wartet auf Ihre nächste Nachricht und unverbunden für etwa eine Stunde**: Der Supervisor stoppt den Prozess, um Ressourcen freizugeben. Eine Sitzung, die ihren Zug beendet hat, indem sie Ihnen eine Frage gestellt hat, zählt als Warten auf Ihre nächste Nachricht. Das Gespräch bleibt auf der Festplatte, und das nächste Mal, wenn Sie anhängen oder antworten, wird die Sitzung fortgesetzt. Heften Sie eine Sitzung mit `Ctrl+T` an, um ihren Prozess im Leerlauf am Laufen zu halten.

756* **Unerwartet beendet, während der Supervisor läuft**: Der Supervisor startet den Prozess neu. Das Beenden einer Sitzung, die Sie selbst mit `←` oder `/background` in den Hintergrund verschoben haben, beispielsweise mit `kill`, markiert sie als gestoppt statt neu gestartet. Für Sitzungen, die mit einem Herunterfahren beendet wurden, siehe [Sitzungen werden nach dem Herunterfahren als fehlgeschlagen oder gestoppt angezeigt](#sessions-show-as-failed-after-shutdown).817* **Unerwartet beendet, während der Supervisor läuft**: Der Supervisor startet den Prozess neu. Das Beenden einer Sitzung, die Sie selbst mit `←` oder `/background` in den Hintergrund verschoben haben, beispielsweise mit `kill`, markiert sie als gestoppt statt neu gestartet. Für Sitzungen, die mit einem Herunterfahren beendet wurden, siehe [Sitzungen werden nach dem Herunterfahren als fehlgeschlagen oder gestoppt angezeigt](#sessions-show-as-failed-after-shutdown).

757* **Nach einem automatischen Update**: Der Supervisor startet sich selbst in der neuen Version neu und verschiebt untätige Sitzungen im Hintergrund. Sitzungen, die funktionieren, auf Sie warten oder angehängt sind, werden nicht unterbrochen.818* **Nach einem automatischen Update**: Der Supervisor startet sich selbst in der neuen Version neu und verschiebt untätige Sitzungen im Hintergrund. Sitzungen, die funktionieren, auf Sie warten oder angehängt sind, werden nicht unterbrochen.

758 819 


767Der Sitzungsstatus wird unter Ihrem Claude Code-Konfigurationsverzeichnis gespeichert. Wenn Sie [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) setzen, verwendet der Supervisor stattdessen dieses Verzeichnis und läuft als separate Instanz mit ihren eigenen Sitzungen.828Der Sitzungsstatus wird unter Ihrem Claude Code-Konfigurationsverzeichnis gespeichert. Wenn Sie [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) setzen, verwendet der Supervisor stattdessen dieses Verzeichnis und läuft als separate Instanz mit ihren eigenen Sitzungen.

768 829 

769| Pfad | Inhalt |830| Pfad | Inhalt |

770| :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- |831| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

771| `~/.claude/daemon.log` | Supervisor-Protokoll |832| `~/.claude/daemon.log` | Supervisor-Protokoll |

772| `~/.claude/daemon/roster.json` | Liste der laufenden Hintergrund-Sitzungen, verwendet zum Wiederherstellen der Verbindung nach einem Neustart |833| `~/.claude/daemon/roster.json` | Liste der laufenden Hintergrund-Sitzungen, verwendet zum Wiederherstellen der Verbindung nach einem Neustart |

773| `~/.claude/jobs/<id>/state.json` | Pro-Sitzungs-Status in der Agenten-Ansicht angezeigt |834| `~/.claude/jobs/<id>/state.json` | Pro-Sitzungs-Status in der Agenten-Ansicht angezeigt. Lesen Sie ihn über [`claude agents --json`](#read-session-state-from-a-script) statt die Datei zu analysieren |

774| `~/.claude/jobs/<id>/tmp/` | Pro-Sitzungs-Scratch-Verzeichnis. Schreibvorgänge hier erfordern keine Berechtigung. Wird entfernt, wenn die Sitzung gelöscht wird |835| `~/.claude/jobs/<id>/tmp/` | Pro-Sitzungs-Scratch-Verzeichnis. Clauds `Write`- und `Edit`-Aufrufe hier erfordern keine Berechtigung. Wird entfernt, wenn die Sitzung gelöscht wird |

775 836 

776Jede Hintergrund-Sitzung hat die Umgebungsvariable `CLAUDE_JOB_DIR` auf ihr `~/.claude/jobs/<id>`-Verzeichnis gesetzt, daher können Shell-Befehle, die die Sitzung ausführt, temporäre Dateien in `$CLAUDE_JOB_DIR/tmp` schreiben, ohne mit parallelen Sitzungen zu kollidieren.837Jede Hintergrund-Sitzung hat die Umgebungsvariable `CLAUDE_JOB_DIR` auf ihr `~/.claude/jobs/<id>`-Verzeichnis gesetzt, daher können Shell-Befehle, die die Sitzung ausführt, temporäre Dateien in `$CLAUDE_JOB_DIR/tmp` schreiben, ohne mit parallelen Sitzungen zu kollidieren.

777 838 


983Die Agenten-Ansicht hat sich während der Forschungsvorschau schnell entwickelt. Wenn Sie eine ältere Claude Code-Version verwenden, kann sich einiges auf dieser Seite unterscheiden; insbesondere lehnt `claude agents` Flags ab, die es noch nicht unterstützt, mit einem `unknown option`-Fehler. Die folgende Tabelle listet auf, wann jedes Flag und Verhalten hinzugefügt wurde.1044Die Agenten-Ansicht hat sich während der Forschungsvorschau schnell entwickelt. Wenn Sie eine ältere Claude Code-Version verwenden, kann sich einiges auf dieser Seite unterscheiden; insbesondere lehnt `claude agents` Flags ab, die es noch nicht unterstützt, mit einem `unknown option`-Fehler. Die folgende Tabelle listet auf, wann jedes Flag und Verhalten hinzugefügt wurde.

984 1045 

985| Version | Änderung |1046| Version | Änderung |

986| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1047| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1048| v2.1.268 | Wenn ein [Löschen abgelehnt wird](#what-deleting-a-session-removes), weil Git oder Ihr `WorktreeRemove`-Hook den Worktree nicht entfernen konnte, benennt die Nachricht die Ursache, einschließlich wie ein Hook endete und der Anfang seiner Stderr. Für einen verknüpften Worktree unter dem Repository-Verzeichnis `.claude/worktrees/` ohne nicht committete Änderungen an verfolgten Dateien, kein verschachteltes Repository darin und kein anderer Sitzungs-Datensatz, der ihn benennt, entfernt das erneute Löschen der Sitzung das Verzeichnis trotzdem, aus der Agenten-Ansicht oder mit `claude rm <id> --force-remove-worktree <worktree-id>`. Vor dieser Version zeigte die Zeile nur `worktree could not be removed (WorktreeRemove hook failed)` oder Gits Fehler, die Stderr des Hooks ging nur ins Debug-Protokoll, und das erneute Löschen wurde auf die gleiche Weise abgelehnt. |

1049| v2.1.260 | Wenn Sie [eine Sitzung in den Hintergrund verschieben](#from-inside-a-session), zeigt die [Agenten-Auflistung](/docs/de/cross-session-messaging#see-which-sessions-claude-can-reach) Ihrer anderen Sitzungen die Unterhaltung einmal als ihre Hintergrund-Sitzung an, und ihre Nachrichten daran erreichen das Terminal nicht mehr, von dem Sie sie verschoben haben. Vor dieser Version konnte das Terminal als zweite interaktive Sitzung unter dem Namen der Unterhaltung aufgelistet bleiben, und eine Sitzung, die die Unterhaltung vor dem Verschieben benachrichtigt hatte, lieferte weiterhin an dieses Terminal. |

1050| v2.1.260 | Wenn ein [Löschen über nicht gepushte Commits abgelehnt wird](#what-deleting-a-session-removes), benennt die Nachricht den Branch des Worktree und wie viele Commits nicht gepusht sind, und das erneute Löschen der Sitzung verwirft den Worktree und seine Commits. Vor dieser Version sagte die Ablehnung nur `worktree has commits that are not pushed anywhere`, das erneute Löschen wurde auf die gleiche Weise abgelehnt, und das Löschen der Sitzung erforderte das Pushen der Commits oder das manuelle Entfernen des Worktree. |

1051| v2.1.257 | `←` [trennt sich von einer angehängten Sitzung, während die `/btw`-Überlagerung offen ist](#attach-to-a-session), auch mitten in einer Antwort, und die Überlagerung öffnet sich erneut, wenn Sie sich das nächste Mal anhängen. Vor dieser Version trennte sich `←` nicht, während die Überlagerung offen war. |

1052| v2.1.257 | Wenn Sie [`claude --resume <session-id> --bg`](#from-your-shell) ausführen, setzt Claude Code diese Sitzung unter ihrer eigenen ID fort oder startet eine Kopie unter einer neuen ID und druckt eine `note:`-Zeile, die erklärt warum. `--continue`, ein bloßes `--resume` und `--resume` mit einem Namen oder Pfad starten eine Kopie mit derselben Notiz. Vor dieser Version startete `--resume` mit `--bg` immer eine Kopie unter einer neuen ID und sagte nichts. |

1053| v2.1.257 | Wenn Sie eine Sitzung aus einer Agenten-Ansicht versenden, die Sie mit `←` öffneten, startet Claude Code sie im [Berechtigungsmodus, den das Zielverzeichnis konfiguriert](#permission-mode) über `permissions.defaultMode`. Wenn das Verzeichnis keinen festlegt, gilt der Berechtigungsmodus der Sitzung, von der Sie kamen. Vor dieser Version startete die versendete Sitzung immer im Berechtigungsmodus der Sitzung, von der Sie kamen, und überschrieb ihn. |

1054| v2.1.257 | `Ctrl+S`, `Ctrl+T` und `Ctrl+G` in der Agenten-Ansicht [folgen Ihrer `keybindings.json`](#keyboard-shortcuts): `Ctrl+S` und `Ctrl+T` über die `agents:switchView`- und `agents:togglePin`-Aktionen des `Agents`-Kontexts, und `Ctrl+G` über die `chat:externalEditor`-Bindung des `Chat`-Kontexts. Vor dieser Version ignorierte die Agenten-Ansicht `keybindings.json` und diese Tasten waren fest. |

1055| v2.1.257 | Das Starten des [Hintergrunddienstes](#the-supervisor-process) erholt sich von zwei Fehlerursachen. Bei einer macOS-npm-Installation [wartet ein Start während einer Selbstaktualisierung](/docs/de/errors#eacces-when-starting-a-background-session) auf die Installation, anstatt den Platzhalter auszuführen, den npm während des Austauschs der Binärdatei ablegt. Unter Windows wird eine veraltete `daemon.lock`, die vor dem letzten Neustart der Maschine geschrieben wurde, oder deren aufgezeichnete Prozess-ID jetzt zu einem anderen Prozess gehört, ersetzt. Vor dieser Version schlugen der macOS-Start mit `Error: claude native binary not installed.` während des Installationsfensters fehl, und die Windows-Sperre ließ jeden Start mit [`exited before it became reachable`](/docs/de/errors#background-service-exited-before-it-became-reachable) fehlschlagen, bis Sie `~/.claude/daemon.lock` löschten. |

1056| v2.1.257 | Wenn Sie eine Hintergrund-Sitzung öffnen oder versenden, während ein anderer Claude Code-Prozess ein npm-Update herunterlädt, [wartet Claude Code bis zu zwei Minuten](/docs/de/errors#eacces-when-starting-a-background-session), während die Installation läuft, und schlägt dann fehl mit `Claude Code is being updated by npm on this machine`. Vor dieser Version stoppte das Warten nach zehn Sekunden, sodass das Öffnen mit `Couldn't start the background service` fehlschlug, während der Download noch lief. |

1057| v2.1.257 | Eine Hintergrund-Sitzung, die eine [sitzungsübergreifende Nachricht](/docs/de/cross-session-messaging#control-inbound-messages) zu Ihrer Genehmigung hält, zeigt `approve message from` auf ihrer `Needs input`-Zeile mit der Adresse des Absenders und dem Namen, den der Absender beansprucht. Vor dieser Version wechselte die Zeile zu `Needs input`, behielt aber ihren vorherigen Text, sodass nichts in `claude agents` die wartende Nachricht oder ihren Absender benannte. |

1058| v2.1.257 | Eine Eingabeaufforderung, die mit `Ctrl+S` in einer geöffneten Hintergrund-Sitzung verstaut wird, [wird mit der Sitzung beibehalten](#what-persists-across-restarts), sodass `Ctrl+S` sie nach dem Stoppen und erneuten Starten des Sitzungsprozesses wiederherstellt. Vor dieser Version lebte der Verstau nur im laufenden Prozess und ging verloren, wenn die Sitzung lange genug untätig war, damit ihr Prozess stoppte, oder wenn sie gestoppt und dann erneut geöffnet wurde. |

987| v2.1.251 | In einer Hintergrund-Sitzung, die nicht [in einen Worktree verschoben wurde](#how-file-edits-are-isolated), können Claude und die Subagenten, die es spawnt, Dateien in einem verknüpften Git-Worktree bearbeiten. |1059| v2.1.251 | In einer Hintergrund-Sitzung, die nicht [in einen Worktree verschoben wurde](#how-file-edits-are-isolated), können Claude und die Subagenten, die es spawnt, Dateien in einem verknüpften Git-Worktree bearbeiten. |

988| v2.1.251 | Claude Code leitet ein Cloud-Provider-Gateway weiter, das in der Shell exportiert wird, von der Sie versenden, wie `ANTHROPIC_VERTEX_BASE_URL` oder `ANTHROPIC_BEDROCK_BASE_URL` mit seinem Auth-Bypass-Flag, an [den Worker der Sitzung](#llm-gateway) unter denselben Bedingungen wie `ANTHROPIC_BASE_URL`. Vor dieser Version schlugen alle Anfragen fehl, die die Sitzung machte, wenn Sie von einer Shell aus backgroundeten oder versendeten, die nur durch ein solches Gateway authentifiziert wurde, weil der Endpunkt und das Flag aus ihrer Umgebung gelöscht wurden. |1060| v2.1.251 | Claude Code leitet ein Cloud-Provider-Gateway weiter, das in der Shell exportiert wird, von der Sie versenden, wie `ANTHROPIC_VERTEX_BASE_URL` oder `ANTHROPIC_BEDROCK_BASE_URL` mit seinem Auth-Bypass-Flag, an [den Worker der Sitzung](#llm-gateway) unter denselben Bedingungen wie `ANTHROPIC_BASE_URL`. Vor dieser Version schlugen alle Anfragen fehl, die die Sitzung machte, wenn Sie von einer Shell aus backgroundeten oder versendeten, die nur durch ein solches Gateway authentifiziert wurde, weil der Endpunkt und das Flag aus ihrer Umgebung gelöscht wurden. |

989| v2.1.251 | Wenn eine Hintergrund-Sitzung startet, während ein anderer Claude Code-Prozess einen [Plugin-Marketplace](/docs/de/plugin-marketplaces) aktualisiert, wie eine Schwester-Sitzung, die die [Marketplace-Autoupdate](/docs/de/discover-plugins#configure-auto-updates) ausführt, hält Claude Code die Plugins dieses Marketplace verfügbar. Vor dieser Version konnte eine solche Sitzung ohne Skills, Agenten, Hooks und MCP-Server dieses Marketplace starten und so für ihren gesamten Lauf bleiben. |1061| v2.1.251 | Wenn eine Hintergrund-Sitzung startet, während ein anderer Claude Code-Prozess einen [Plugin-Marketplace](/docs/de/plugin-marketplaces) aktualisiert, wie eine Schwester-Sitzung, die die [Marketplace-Autoupdate](/docs/de/discover-plugins#configure-auto-updates) ausführt, hält Claude Code die Plugins dieses Marketplace verfügbar. Vor dieser Version konnte eine solche Sitzung ohne Skills, Agenten, Hooks und MCP-Server dieses Marketplace starten und so für ihren gesamten Lauf bleiben. |


1014| v2.1.216 | `/fork`: die [Bestätigung](#from-inside-a-session) ist eine Zeile, die den Zustand der Kopie, den Namen ihrer Agenten-Ansicht-Zeile und ihre Sitzungs-ID für `claude attach` zeigt, endend mit `runs in the origin tree` oder `edits this checkout` nur, wenn die Kopie im Haupt-Arbeitsbaum läuft oder den Checkout bearbeitet, den Sie offen haben. Das Klicken auf den Namen verschiebt diese Sitzung in den Hintergrund und öffnet die Agenten-Ansicht in der Sitzung der Kopie. Die Bestätigung wiederholt nicht mehr den Berechtigungsmodus der Kopie; frühere Versionen druckten eine mehrzeilige Bestätigung ohne klickbaren Namen.<br /><br />Benötigt Eingabe: `/install-github-app` und die `/mcp`-Einstellungsliste, die ausgeführt werden, während niemand angehängt ist, zeigen die Sitzung unter `Needs input` mit einer Zeile, die den Befehl benennt, und das Anhängen und erneute Ausführen des Befehls setzt fort; von v2.1.208 bis v2.1.215 wurden sie in diesem Zustand vollständig abgelehnt.<br /><br />`--agent`-Wiederherstellung: Das Fortsetzen oder Neustarten einer [backgrounded `--agent`-Sitzung](#from-your-shell) stellt den System-Prompt des Agenten und die Tool-Einschränkungen wieder her, wobei das Verzeichnis der Sitzung selbst nach dem Agenten durchsucht wird, wenn sein Workspace vertraut wird; eine Sitzung, deren Agent nicht mehr existiert, wird mit den Standard-Tools und dem System-Prompt fortgesetzt und öffnet sich mit einer sichtbaren Warnung, anstatt stillschweigend auf den Standard-Agent zurückzusetzen.<br /><br />`Ctrl+X`: Das zweimalige Drücken löscht eine Sitzung, auch wenn der Stoppversuch fehlschlägt, anstatt dass ein fehlgeschlagener Stopp das ausstehende Löschen abbricht, und eine gelöschte Sitzung, deren Worker-Prozess gestorben war, taucht beim nächsten Aktualisieren nicht mehr auf.<br /><br />Worktree-Löschung: Eine Sitzung, deren Worktree-Verzeichnis zu keinem Git-Repository gehört, kann gelöscht werden; vor dieser Version wurde jeder Versuch, eine solche Sitzung zu löschen, abgelehnt. Ein Verzeichnis, das bereits weg ist, wird sofort gelöscht. Der Doppeldruck der Agenten-Ansicht entfernt ein Verzeichnis, das noch Dateien hat, und führt Ihren `WorktreeRemove`-Hook für ein Hook-erstelltes Verzeichnis aus, es sei denn, eine andere Sitzung benennt es auch. `claude rm` behält ein solches Verzeichnis, wenn Dateien vorhanden sind. |1086| v2.1.216 | `/fork`: die [Bestätigung](#from-inside-a-session) ist eine Zeile, die den Zustand der Kopie, den Namen ihrer Agenten-Ansicht-Zeile und ihre Sitzungs-ID für `claude attach` zeigt, endend mit `runs in the origin tree` oder `edits this checkout` nur, wenn die Kopie im Haupt-Arbeitsbaum läuft oder den Checkout bearbeitet, den Sie offen haben. Das Klicken auf den Namen verschiebt diese Sitzung in den Hintergrund und öffnet die Agenten-Ansicht in der Sitzung der Kopie. Die Bestätigung wiederholt nicht mehr den Berechtigungsmodus der Kopie; frühere Versionen druckten eine mehrzeilige Bestätigung ohne klickbaren Namen.<br /><br />Benötigt Eingabe: `/install-github-app` und die `/mcp`-Einstellungsliste, die ausgeführt werden, während niemand angehängt ist, zeigen die Sitzung unter `Needs input` mit einer Zeile, die den Befehl benennt, und das Anhängen und erneute Ausführen des Befehls setzt fort; von v2.1.208 bis v2.1.215 wurden sie in diesem Zustand vollständig abgelehnt.<br /><br />`--agent`-Wiederherstellung: Das Fortsetzen oder Neustarten einer [backgrounded `--agent`-Sitzung](#from-your-shell) stellt den System-Prompt des Agenten und die Tool-Einschränkungen wieder her, wobei das Verzeichnis der Sitzung selbst nach dem Agenten durchsucht wird, wenn sein Workspace vertraut wird; eine Sitzung, deren Agent nicht mehr existiert, wird mit den Standard-Tools und dem System-Prompt fortgesetzt und öffnet sich mit einer sichtbaren Warnung, anstatt stillschweigend auf den Standard-Agent zurückzusetzen.<br /><br />`Ctrl+X`: Das zweimalige Drücken löscht eine Sitzung, auch wenn der Stoppversuch fehlschlägt, anstatt dass ein fehlgeschlagener Stopp das ausstehende Löschen abbricht, und eine gelöschte Sitzung, deren Worker-Prozess gestorben war, taucht beim nächsten Aktualisieren nicht mehr auf.<br /><br />Worktree-Löschung: Eine Sitzung, deren Worktree-Verzeichnis zu keinem Git-Repository gehört, kann gelöscht werden; vor dieser Version wurde jeder Versuch, eine solche Sitzung zu löschen, abgelehnt. Ein Verzeichnis, das bereits weg ist, wird sofort gelöscht. Der Doppeldruck der Agenten-Ansicht entfernt ein Verzeichnis, das noch Dateien hat, und führt Ihren `WorktreeRemove`-Hook für ein Hook-erstelltes Verzeichnis aus, es sei denn, eine andere Sitzung benennt es auch. `claude rm` behält ein solches Verzeichnis, wenn Dateien vorhanden sind. |

1015| v2.1.214 | Eine Sitzung, die mit `←` oder `/background` in den Hintergrund verschoben und untätig gelassen wird, ohne dass etwas läuft, hat ihren Prozess wie jede andere untätige Sitzung gestoppt, anstatt ihren Prozess und den Hintergrunddienst unbegrenzt laufen zu lassen. Eine abgeschlossene Sitzung kann mit `claude rm` oder aus der Agenten-Ansicht entfernt werden, nachdem der Hintergrunddienst untätig geworden ist, und eine Sitzung, die einen Worktree betreten hat, nachdem sie aus einem Verzeichnis versendet wurde, das kein Git-Repository ist, wie ein Multi-Repo-Workspace-Ordner, kann aus der Agenten-Ansicht gelöscht werden, wenn der Worktree selbst zu einem Git-Repository gehört, weil die Bereinigung aus dem Worktree statt aus dem Verzeichnis aufgelöst wird, aus dem die Sitzung versendet wurde; beide Entfernungen wurden vor jedem Versuch abgelehnt. Das Erneute Öffnen einer gestoppten Sitzung stellt ihre gespeicherte Unterhaltung wieder her, auch wenn ein Ordner im Transkript-Speicher nicht gelesen werden kann. |1087| v2.1.214 | Eine Sitzung, die mit `←` oder `/background` in den Hintergrund verschoben und untätig gelassen wird, ohne dass etwas läuft, hat ihren Prozess wie jede andere untätige Sitzung gestoppt, anstatt ihren Prozess und den Hintergrunddienst unbegrenzt laufen zu lassen. Eine abgeschlossene Sitzung kann mit `claude rm` oder aus der Agenten-Ansicht entfernt werden, nachdem der Hintergrunddienst untätig geworden ist, und eine Sitzung, die einen Worktree betreten hat, nachdem sie aus einem Verzeichnis versendet wurde, das kein Git-Repository ist, wie ein Multi-Repo-Workspace-Ordner, kann aus der Agenten-Ansicht gelöscht werden, wenn der Worktree selbst zu einem Git-Repository gehört, weil die Bereinigung aus dem Worktree statt aus dem Verzeichnis aufgelöst wird, aus dem die Sitzung versendet wurde; beide Entfernungen wurden vor jedem Versuch abgelehnt. Das Erneute Öffnen einer gestoppten Sitzung stellt ihre gespeicherte Unterhaltung wieder her, auch wenn ein Ordner im Transkript-Speicher nicht gelesen werden kann. |

1016| v2.1.213 | `/install-github-app`, die [`/mcp`](/docs/de/mcp)-Einstellungsliste und MCP-Authentifizierungsaktionen funktionieren in einer Hintergrund-Sitzung, während ein Terminal angehängt ist, und werden nur abgelehnt, wenn niemand angehängt ist, mit einer Nachricht, die Sie auffordert, den Befehl anzuhängen und erneut auszuführen; von v2.1.208 bis v2.1.212 wurden sie auch mit angehängtem Terminal abgelehnt. |1088| v2.1.213 | `/install-github-app`, die [`/mcp`](/docs/de/mcp)-Einstellungsliste und MCP-Authentifizierungsaktionen funktionieren in einer Hintergrund-Sitzung, während ein Terminal angehängt ist, und werden nur abgelehnt, wenn niemand angehängt ist, mit einer Nachricht, die Sie auffordert, den Befehl anzuhängen und erneut auszuführen; von v2.1.208 bis v2.1.212 wurden sie auch mit angehängtem Terminal abgelehnt. |

1017| v2.1.212 | `[/fork` in einer interaktiven Sitzung]\(#from-inside-a-session) kopiert die Unterhaltung in eine neue Hintergrund-Sitzung, die als ihre eigene Zeile angezeigt wird, benannt nach der Sitzung, aus der sie kam, oder für einen aufgeforderten Fork einer unbenannten Sitzung, nach der Fork-Eingabeaufforderung, während das Original weiterläuft; das frühere Forked-Subagent-Verhalten von `/fork` wurde zu `/subtask` verschoben. Mit [Agenten-Ansicht ausgeschaltet](#turn-off-agent-view) behält `/fork` das Forked-Subagent-Verhalten. Eine fokussierte Zeile, die auf ihre erste Eingabeaufforderung wartet, zeigt `space to send it a prompt`. `Ctrl+J` fügt eine neue Zeile in die Versand-Eingabe auf Terminals mit erweiterter Schlüsselberichterstattung ein, wo der Tastendruck zuvor ignoriert wurde, und die `?`-Überlagerung listet die Verknüpfung auf. Der Hinweis `←` der Fußzeile in einer interaktiven Sitzung zeigt kurz `N done` an, wenn eine Hintergrund-Sitzung beendet wird, während keine Ihre Eingabe benötigen. Das Eingeben eines bloßen `/resume` in der Agenten-Ansicht öffnet eine Auswahl von vergangenen Sitzungen des Repositorys, aus dem Sie die Agenten-Ansicht öffneten, einschließlich aus der Liste gelöschter Sitzungen, und das Auswählen einer setzt sie als Hintergrund-Sitzung fort; vor dieser Version war `/resume` in der Agenten-Ansicht nicht verfügbar und gelöschte Sitzungen waren nur mit `claude --resume` oder `/resume` aus einer interaktiven Sitzung erreichbar. Zielgerichtete, begrenzte und eingeschränkte Formulare behalten den Hinweis `attach to a session to run it`, den frühere Versionen für jede Formulare zeigten. Sitzungen, die auf eine Sandbox-Netzwerk-Host-Eingabeaufforderung, eine MCP-Eingabeanfrage oder eine verwaltete Einstellungs-Eingabeaufforderung warten, werden als `Needs input` anstatt `Working` angezeigt, in der Agenten-Ansicht und in `claude agents --json`, und eine Frage von Claude meldet `waitingFor: input needed` anstatt `permission prompt`. Das Anhängen an eine Sitzung, deren Prozess gestoppt wurde, zeigt ihr Transkript formatiert wie die Live-Sitzung es rendert, anstatt als Rohtext. Eine gestoppte Sitzung, deren Transkript an einem unerwarteten Ort ist, wird über einen letzten Scan Ihrer gespeicherten Transkripte fortgesetzt, und das Öffnen einer Zeile, die kein gespeichertes Transkript hat, zeigt `Press enter again to restart this session fresh`, startet es beim zweiten Druck frisch neu; v2.1.211 zeigte die Ablehnung ohne Möglichkeit, aus der Agenten-Ansicht neu zu starten. |1089| v2.1.212 | `/fork` in einer interaktiven Sitzung [kopiert die Unterhaltung](#from-inside-a-session) in eine neue Hintergrund-Sitzung, die als ihre eigene Zeile angezeigt wird, benannt nach der Sitzung, aus der sie kam, oder für einen aufgeforderten Fork einer unbenannten Sitzung, nach der Fork-Eingabeaufforderung, während das Original weiterläuft; das frühere Forked-Subagent-Verhalten von `/fork` wurde zu `/subtask` verschoben. Mit [Agenten-Ansicht ausgeschaltet](#turn-off-agent-view) behält `/fork` das Forked-Subagent-Verhalten. Eine fokussierte Zeile, die auf ihre erste Eingabeaufforderung wartet, zeigt `space to send it a prompt`. `Ctrl+J` fügt eine neue Zeile in die Versand-Eingabe auf Terminals mit erweiterter Schlüsselberichterstattung ein, wo der Tastendruck zuvor ignoriert wurde, und die `?`-Überlagerung listet die Verknüpfung auf. Der Hinweis `←` der Fußzeile in einer interaktiven Sitzung zeigt kurz `N done` an, wenn eine Hintergrund-Sitzung beendet wird, während keine Ihre Eingabe benötigen. Das Eingeben eines bloßen `/resume` in der Agenten-Ansicht öffnet eine Auswahl von vergangenen Sitzungen des Repositorys, aus dem Sie die Agenten-Ansicht öffneten, einschließlich aus der Liste gelöschter Sitzungen, und das Auswählen einer setzt sie als Hintergrund-Sitzung fort; vor dieser Version war `/resume` in der Agenten-Ansicht nicht verfügbar und gelöschte Sitzungen waren nur mit `claude --resume` oder `/resume` aus einer interaktiven Sitzung erreichbar. Zielgerichtete, begrenzte und eingeschränkte Formulare behalten den Hinweis `attach to a session to run it`, den frühere Versionen für jede Formulare zeigten. Sitzungen, die auf eine Sandbox-Netzwerk-Host-Eingabeaufforderung, eine MCP-Eingabeanfrage oder eine verwaltete Einstellungs-Eingabeaufforderung warten, werden als `Needs input` anstatt `Working` angezeigt, in der Agenten-Ansicht und in `claude agents --json`, und eine Frage von Claude meldet `waitingFor: input needed` anstatt `permission prompt`. Das Anhängen an eine Sitzung, deren Prozess gestoppt wurde, zeigt ihr Transkript formatiert wie die Live-Sitzung es rendert, anstatt als Rohtext. Eine gestoppte Sitzung, deren Transkript an einem unerwarteten Ort ist, wird über einen letzten Scan Ihrer gespeicherten Transkripte fortgesetzt, und das Öffnen einer Zeile, die kein gespeichertes Transkript hat, zeigt `Press enter again to restart this session fresh`, startet es beim zweiten Druck frisch neu; v2.1.211 zeigte die Ablehnung ohne Möglichkeit, aus der Agenten-Ansicht neu zu starten. |

1018| v2.1.211 | Das Aufwecken einer gestoppten Sitzung durch Anhängen oder Antworten aus dem Verzeichnis, in dem sie läuft, leitet das Gateway `ANTHROPIC_BASE_URL` Ihrer Shell erneut weiter, unter denselben Bedingungen wie ein frischer Versand, sodass eine Sitzung, die über ein Gateway `ANTHROPIC_AUTH_TOKEN` authentifiziert ist, auf dem Gateway fortgesetzt wird, anstatt `Not logged in` zu melden. Das Anhängen an eine gestoppte Sitzung, die vor ihrer ersten Antwort aus einer anderen Unterhaltung in den Hintergrund verschoben wurde, wird mit `This session has no saved transcript` abgelehnt, anstatt stillschweigend eine leere Unterhaltung unter derselben Sitzungs-ID zu starten; das Öffnen derselben Zeile aus der Agenten-Ansicht zeigte die Ablehnung in der Fußzeile. Das Beenden des Prozesses einer `←`- oder `/background`-Sitzung von außerhalb von Claude Code markiert ihn als gestoppt, anstatt dass der Supervisor ihn neu startet, ein bereits auf der Festplatte aufgezeichneter Stopp wird beachtet, es sei denn, eine Antwort, die Sie gesendet haben, wartet noch auf Zustellung, eine nach einem Absturz neu gestartete Sitzung wird ihr mitgeteilt, dass sie neu gestartet wurde, und eine neu gestartete `←`- oder `/background`-Sitzung setzt keine unterbrochene Antwort älter als etwa eine Stunde fort. Eine Sitzungs-Benennungs-Antwort, die die Eingabeaufforderung beantwortet oder ablehnt, anstatt sie zu kennzeichnen, wie für eine Eingabeaufforderung, die hauptsächlich ein Link ist, wird verworfen und die Zeile behält einen Namen, der aus dem Eingabeaufforderungs-Text entnommen wird. Das Löschen einer Sitzung, deren Worktree-Git nicht mehr erkennt, ist erfolgreich, lässt das Worktree-Verzeichnis auf der Festplatte und benennt seinen Pfad, anstatt dass jeder Versuch abgelehnt wird. Eine abgelehnte Löschung zeigt den Grund auf der Zeile der Sitzung an, einschließlich des zugrunde liegenden Git-Fehlers, wenn der Worktree nicht entfernt werden konnte, anstatt dass die Zeile stillschweigend erneut angezeigt wird. |1090| v2.1.211 | Das Aufwecken einer gestoppten Sitzung durch Anhängen oder Antworten aus dem Verzeichnis, in dem sie läuft, leitet das Gateway `ANTHROPIC_BASE_URL` Ihrer Shell erneut weiter, unter denselben Bedingungen wie ein frischer Versand, sodass eine Sitzung, die über ein Gateway `ANTHROPIC_AUTH_TOKEN` authentifiziert ist, auf dem Gateway fortgesetzt wird, anstatt `Not logged in` zu melden. Das Anhängen an eine gestoppte Sitzung, die vor ihrer ersten Antwort aus einer anderen Unterhaltung in den Hintergrund verschoben wurde, wird mit `This session has no saved transcript` abgelehnt, anstatt stillschweigend eine leere Unterhaltung unter derselben Sitzungs-ID zu starten; das Öffnen derselben Zeile aus der Agenten-Ansicht zeigte die Ablehnung in der Fußzeile. Das Beenden des Prozesses einer `←`- oder `/background`-Sitzung von außerhalb von Claude Code markiert ihn als gestoppt, anstatt dass der Supervisor ihn neu startet, ein bereits auf der Festplatte aufgezeichneter Stopp wird beachtet, es sei denn, eine Antwort, die Sie gesendet haben, wartet noch auf Zustellung, eine nach einem Absturz neu gestartete Sitzung wird ihr mitgeteilt, dass sie neu gestartet wurde, und eine neu gestartete `←`- oder `/background`-Sitzung setzt keine unterbrochene Antwort älter als etwa eine Stunde fort. Eine Sitzungs-Benennungs-Antwort, die die Eingabeaufforderung beantwortet oder ablehnt, anstatt sie zu kennzeichnen, wie für eine Eingabeaufforderung, die hauptsächlich ein Link ist, wird verworfen und die Zeile behält einen Namen, der aus dem Eingabeaufforderungs-Text entnommen wird. Das Löschen einer Sitzung, deren Worktree-Git nicht mehr erkennt, ist erfolgreich, lässt das Worktree-Verzeichnis auf der Festplatte und benennt seinen Pfad, anstatt dass jeder Versuch abgelehnt wird. Eine abgelehnte Löschung zeigt den Grund auf der Zeile der Sitzung an, einschließlich des zugrunde liegenden Git-Fehlers, wenn der Worktree nicht entfernt werden konnte, anstatt dass die Zeile stillschweigend erneut angezeigt wird. |

1019| v2.1.210 | `claude attach` wartet, während der Hintergrunddienst startet oder sich erneut verbindet, anstatt mit einem `job not found`- oder `still starting`-Fehler fehlzuschlagen, meldet eine Sitzung, die während des Anhängens beendet wird, als beendet, und wendet eine während eines langsamen Anhängens vorgenommene Terminal-Größenänderung an, wenn das Anhängen abgeschlossen ist. Der Hinweis `←` der Eingabeaufforderungs-Fußzeile für die Eingabe-Anzahl wird auf jedem Anbieter angezeigt, einschließlich Drittanbieter-Anbieter, die zuvor die einfache `← for agents`-Formulare zeigten. Das Verschieben einer Sitzung in den Hintergrund mit `←` überträgt Claudes Aufgabenliste zur Hintergrund-Sitzung, anstatt sie zu verwerfen. Die Zeile, auf die Sie `←` drückten, behält einen fetten, nicht abgedimmten Namen, nachdem die Auswahl verschoben wird. `claude agents --effort` akzeptiert `ultracode`, anstatt es stillschweigend zu verwerfen. |1091| v2.1.210 | `claude attach` wartet, während der Hintergrunddienst startet oder sich erneut verbindet, anstatt mit einem `job not found`- oder `still starting`-Fehler fehlzuschlagen, meldet eine Sitzung, die während des Anhängens beendet wird, als beendet, und wendet eine während eines langsamen Anhängens vorgenommene Terminal-Größenänderung an, wenn das Anhängen abgeschlossen ist. Der Hinweis `←` der Eingabeaufforderungs-Fußzeile für die Eingabe-Anzahl wird auf jedem Anbieter angezeigt, einschließlich Drittanbieter-Anbieter, die zuvor die einfache `← for agents`-Formulare zeigten. Das Verschieben einer Sitzung in den Hintergrund mit `←` überträgt Claudes Aufgabenliste zur Hintergrund-Sitzung, anstatt sie zu verwerfen. Die Zeile, auf die Sie `←` drückten, behält einen fetten, nicht abgedimmten Namen, nachdem die Auswahl verschoben wird. `claude agents --effort` akzeptiert `ultracode`, anstatt es stillschweigend zu verwerfen. |

1020| v2.1.208 | Das Anhängen an eine Sitzung, deren Prozess gestoppt wurde, zeigt den letzten Bildschirmvoll ihres Transkripts an, während der Prozess startet, anstatt nur eine `Session is starting`-Notiz. Eine Antwort, die nicht zugestellt werden kann, weil der Hintergrunddienst nicht erreichbar ist oder das Senden fehlschlägt, wird gespeichert und als nächste Eingabeaufforderung der Sitzung gesendet, wenn ihr Prozess wieder startet; vor dieser Version ging eine Antwort, die verloren ging, während der Hintergrunddienst nicht erreichbar war, verloren. Ein Prozess, dessen eigene Binärdatei durch ein Update ersetzt wurde, kann den Supervisor immer noch starten, vom installierten `claude`-Launcher oder der neuesten Version auf der Festplatte, anstatt fehlzuschlagen, bis Claude Code neu gestartet wurde. Ein Supervisor, der eine ältere Version ausführt, startet eine untätige Sitzung, die von einer neueren Version gestartet wurde, niemals auf seiner eigenen älteren Binärdatei neu. Das Löschen einer Sitzung entfernt ihren Worktree auch nachdem die Sitzung den Worktree auf einen anderen Branch verschoben hat, und behält den Worktree zusammen mit der Sitzungszeile, wenn der Worktree Commits hat, die nirgendwo gepusht werden, oder eine andere Sitzung ihn beansprucht, anstatt die Commits zu zerstören oder den Worktree verwaist zu lassen. `/install-github-app` und die `/mcp`-Einstellungsliste und ihre Authentifizierungsaktionen werden in einer Hintergrund-Sitzung mit einer Nachricht abgelehnt, die die Alternative benennt; in v2.1.208 nur wurde die `/model`-Auswahl auf die gleiche Weise abgelehnt und ein eingegebenes `/model <name>` schaltete nur diese Sitzung um, anstatt auch Ihr Standard-Modell zu speichern. |1092| v2.1.208 | Das Anhängen an eine Sitzung, deren Prozess gestoppt wurde, zeigt den letzten Bildschirmvoll ihres Transkripts an, während der Prozess startet, anstatt nur eine `Session is starting`-Notiz. Eine Antwort, die nicht zugestellt werden kann, weil der Hintergrunddienst nicht erreichbar ist oder das Senden fehlschlägt, wird gespeichert und als nächste Eingabeaufforderung der Sitzung gesendet, wenn ihr Prozess wieder startet; vor dieser Version ging eine Antwort, die verloren ging, während der Hintergrunddienst nicht erreichbar war, verloren. Ein Prozess, dessen eigene Binärdatei durch ein Update ersetzt wurde, kann den Supervisor immer noch starten, vom installierten `claude`-Launcher oder der neuesten Version auf der Festplatte, anstatt fehlzuschlagen, bis Claude Code neu gestartet wurde. Ein Supervisor, der eine ältere Version ausführt, startet eine untätige Sitzung, die von einer neueren Version gestartet wurde, niemals auf seiner eigenen älteren Binärdatei neu. Das Löschen einer Sitzung entfernt ihren Worktree auch nachdem die Sitzung den Worktree auf einen anderen Branch verschoben hat, und behält den Worktree zusammen mit der Sitzungszeile, wenn der Worktree Commits hat, die nirgendwo gepusht werden, oder eine andere Sitzung ihn beansprucht, anstatt die Commits zu zerstören oder den Worktree verwaist zu lassen. `/install-github-app` und die `/mcp`-Einstellungsliste und ihre Authentifizierungsaktionen werden in einer Hintergrund-Sitzung mit einer Nachricht abgelehnt, die die Alternative benennt; in v2.1.208 nur wurde die `/model`-Auswahl auf die gleiche Weise abgelehnt und ein eingegebenes `/model <name>` schaltete nur diese Sitzung um, anstatt auch Ihr Standard-Modell zu speichern. |

agents.md +1 −1

Details

19 19 

20Drei weitere Tools unterstützen diese Arbeit, ohne selbst eine Möglichkeit zu sein, Agenten auszuführen:20Drei weitere Tools unterstützen diese Arbeit, ohne selbst eine Möglichkeit zu sein, Agenten auszuführen:

21 21 

22* [Worktrees](/docs/de/worktrees) geben jeder Sitzung einen separaten Git-Checkout, sodass parallele Sitzungen niemals dieselben Dateien bearbeiten. Verwenden Sie sie für Sitzungen, die Sie selbst ausführen. Die Agent-Ansicht verschiebt jede versendete Sitzung automatisch in ihren eigenen Worktree, und Subagenten, die Sie spawnen, können jeweils einen erhalten.22* [Worktrees](/docs/de/worktrees) geben jeder Sitzung einen separaten Git-Checkout, sodass parallele Sitzungen niemals dieselben Dateien bearbeiten. Verwenden Sie sie für Sitzungen, die Sie selbst ausführen. Eine Sitzung, die Sie aus der Agent-Ansicht versenden, [wird vor der Bearbeitung von Dateien in ihren eigenen Worktree verschoben](/docs/de/agent-view#how-file-edits-are-isolated), und Subagenten, die Sie spawnen, können jeweils einen erhalten.

23* [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging) ermöglicht es Claude, Ihre anderen Claude Code-Sitzungen auf diesem Computer, auf einem anderen Computer oder auf [Claude Code im Web](/docs/de/claude-code-on-the-web) aufzulisten und zu kontaktieren, sodass Sitzungen, die Sie selbst ausführen, Ergebnisse und Status untereinander weitergeben können.23* [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging) ermöglicht es Claude, Ihre anderen Claude Code-Sitzungen auf diesem Computer, auf einem anderen Computer oder auf [Claude Code im Web](/docs/de/claude-code-on-the-web) aufzulisten und zu kontaktieren, sodass Sitzungen, die Sie selbst ausführen, Ergebnisse und Status untereinander weitergeben können.

24* [`/batch`](/docs/de/commands) ist ein [Skill](/docs/de/skills), der Claude eine große Änderung in 5 bis 30 Worktree-isolierte Subagenten aufteilt, die jeweils einen Pull Request öffnen. Es ist eine gepackte Verwendung von Subagenten und Worktrees, keine separate Koordinationsstil.24* [`/batch`](/docs/de/commands) ist ein [Skill](/docs/de/skills), der Claude eine große Änderung in 5 bis 30 Worktree-isolierte Subagenten aufteilt, die jeweils einen Pull Request öffnen. Es ist eine gepackte Verwendung von Subagenten und Worktrees, keine separate Koordinationsstil.

25 25 

Details

190 190 

191Jede Auflösung der Kette läuft nach 60 Sekunden ab. Wenn ein Schritt in der Kette steckenbleibt, beispielsweise ein `credential_process`-Helfer, der auf eine Eingabe wartet, die er nicht erhalten kann, schlägt die Anfrage mit [`AWS default-chain credential resolve timed out`](/docs/de/errors#aws-default-chain-credential-resolve-timed-out) fehl. Wenn Ihre Kette eine interaktive Anmeldung ausführt, die legitim länger dauert, z. B. browsergestützte SSO mit MFA über einen Wrapper wie `aws-vault`, erhöhen Sie das Limit in Millisekunden mit [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars). Vor v2.1.207 ließ eine steckengebliebene Anmeldedatenauflösung die Anfrage auf unbestimmte Zeit warten.191Jede Auflösung der Kette läuft nach 60 Sekunden ab. Wenn ein Schritt in der Kette steckenbleibt, beispielsweise ein `credential_process`-Helfer, der auf eine Eingabe wartet, die er nicht erhalten kann, schlägt die Anfrage mit [`AWS default-chain credential resolve timed out`](/docs/de/errors#aws-default-chain-credential-resolve-timed-out) fehl. Wenn Ihre Kette eine interaktive Anmeldung ausführt, die legitim länger dauert, z. B. browsergestützte SSO mit MFA über einen Wrapper wie `aws-vault`, erhöhen Sie das Limit in Millisekunden mit [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars). Vor v2.1.207 ließ eine steckengebliebene Anmeldedatenauflösung die Anfrage auf unbestimmte Zeit warten.

192 192 

193Außer wenn Sie sich mit einem Amazon Bedrock API-Schlüssel authentifizieren, wendet der [Setup-Assistent](#sign-in-with-bedrock) das gleiche Limit auf jeden AWS-Aufruf an, den er bei der Überprüfung Ihrer Anmeldedaten durchführt, und auf die Anmeldedaten-Suche vor jeder Modellprüfung. Während der Anmeldedaten-Überprüfung schlägt eine Prüfung, die das Limit überschreitet, mit [`Timed out after 60s waiting for AWS`](/docs/de/errors#bedrock-setup-verification-timed-out-waiting-for-aws) fehl.

194 

193<h4 id="advanced-credential-configuration">195<h4 id="advanced-credential-configuration">

194 Erweiterte Anmeldedatenkonfiguration196 Erweiterte Anmeldedatenkonfiguration

195</h4>197</h4>


263 265 

264Beachten Sie beim Aktivieren von Amazon Bedrock für Claude Code Folgendes:266Beachten Sie beim Aktivieren von Amazon Bedrock für Claude Code Folgendes:

265 267 

266* Ab v2.1.172 müssen Sie nur `AWS_REGION` setzen, um die Region Ihres AWS-Profils zu überschreiben oder wenn Ihr Profil keine Region hat. Claude Code löst die Region in dieser Reihenfolge auf:268* Sie müssen nur `AWS_REGION` setzen, um die Region Ihres AWS-Profils zu überschreiben oder wenn Ihr Profil keine Region hat. Claude Code löst die Region in dieser Reihenfolge auf:

267 269 

268 * `AWS_REGION`270 * `AWS_REGION`

269 * `AWS_DEFAULT_REGION`271 * `AWS_DEFAULT_REGION`


274 276 

275 Das aktive Profil ist `AWS_PROFILE`, falls gesetzt, andernfalls `default`. Setzen Sie `AWS_SHARED_CREDENTIALS_FILE` oder `AWS_CONFIG_FILE`, um auf nicht standardmäßige Dateipfade zu verweisen.277 Das aktive Profil ist `AWS_PROFILE`, falls gesetzt, andernfalls `default`. Setzen Sie `AWS_SHARED_CREDENTIALS_FILE` oder `AWS_CONFIG_FILE`, um auf nicht standardmäßige Dateipfade zu verweisen.

276 278 

277 Führen Sie `/status` aus, um die aufgelöste Region anzuzeigen. Wenn die Region aus Ihren AWS-Konfigurationsdateien oder dem Standard-Fallback stammt, notiert Claude Code auch die Quelle in der `/status`-Ausgabe. In v2.1.171 und früher liest Claude Code die AWS-Konfigurationsdateien nicht, daher setzen Sie `AWS_REGION` explizit.279 Führen Sie `/status` aus, um die aufgelöste Region anzuzeigen. Wenn die Region aus Ihren AWS-Konfigurationsdateien oder dem Standard-Fallback stammt, notiert Claude Code auch die Quelle in der `/status`-Ausgabe.

278* Bei Verwendung von Amazon Bedrock ist der `/logout`-Befehl nicht verfügbar, da die Authentifizierung über AWS-Anmeldedaten erfolgt.280* Bei Verwendung von Amazon Bedrock ist der `/logout`-Befehl nicht verfügbar, da die Authentifizierung über AWS-Anmeldedaten erfolgt.

279* Das WebSearch-Tool ist auf Amazon Bedrock nicht verfügbar. Siehe [WebSearch-Tool-Verhalten](/docs/de/tools-reference#websearch-tool-behavior).281* Das WebSearch-Tool ist auf Amazon Bedrock nicht verfügbar. Siehe [WebSearch-Tool-Verhalten](/docs/de/tools-reference#websearch-tool-behavior).

280* Sie können Einstellungsdateien für Umgebungsvariablen wie `AWS_PROFILE` verwenden, die Sie nicht an andere Prozesse weitergeben möchten. Siehe [Einstellungen](/docs/de/settings) für weitere Informationen.282* Sie können Einstellungsdateien für Umgebungsvariablen wie `AWS_PROFILE` verwenden, die Sie nicht an andere Prozesse weitergeben möchten. Siehe [Einstellungen](/docs/de/settings) für weitere Informationen.


529export AWS_REGION=us-east-1531export AWS_REGION=us-east-1

530```532```

531 533 

532Claude Code erstellt die Endpunkt-URL aus der AWS-Region. Ab v2.1.172 wird die Region mit der gleichen Priorität aufgelöst wie [Amazon Bedrock oben](#3-configure-claude-code); frühere Versionen verwenden nur `AWS_REGION`. Um die URL für einen benutzerdefinierten Endpunkt oder ein Gateway zu überschreiben, legen Sie `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` fest.534Claude Code erstellt die Endpunkt-URL aus der AWS-Region, aufgelöst mit der gleichen Priorität wie [Amazon Bedrock oben](#3-configure-claude-code). Um die URL für einen benutzerdefinierten Endpunkt oder ein Gateway zu überschreiben, legen Sie `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` fest.

533 535 

534Führen Sie `/status` in Claude Code aus, um zu bestätigen. Die Provider-Zeile zeigt `Amazon Bedrock (Mantle)`, wenn Mantle aktiv ist.536Führen Sie `/status` in Claude Code aus, um zu bestätigen. Die Provider-Zeile zeigt `Amazon Bedrock (Mantle)`, wenn Mantle aktiv ist.

535 537 


605 607 

606Wenn Ihre Netzwerkumgebung automatische browserbasierte SSO-Flows beeinträchtigt, verwenden Sie `aws sso login` manuell, bevor Sie Claude Code starten, anstatt sich auf `awsAuthRefresh` zu verlassen.608Wenn Ihre Netzwerkumgebung automatische browserbasierte SSO-Flows beeinträchtigt, verwenden Sie `aws sso login` manuell, bevor Sie Claude Code starten, anstatt sich auf `awsAuthRefresh` zu verlassen.

607 609 

610<h3 id="certificate-errors-behind-a-tls-inspecting-proxy">

611 Zertifikatsfehler hinter einem TLS-inspizierenden Proxy

612</h3>

613 

614Claude Code wendet Ihre [CA-Zertifikatsspeicher](/docs/de/network-config#ca-certificate-store)-Konfiguration auf seine Anfragen an AWS an, einschließlich:

615 

616* Modellermittlung

617* Token-Zählung

618* Die STS- und SSO-Rollenberechtigungsaufrufe, die Ihre AWS-Anmeldedaten auflösen

619* Die [Setup-Assistent](#sign-in-with-bedrock)-Berechtigungsüberprüfung und Modellprüfungen

620 

621Für diese Anfragen benötigt ein Unternehmens-Stammzertifikat in Ihrem Betriebssystem-Vertrauensspeicher oder `NODE_EXTRA_CA_CERTS`-Bundle keine Amazon Bedrock-spezifische Einrichtung.

622 

623Vor v2.1.260 wendete Claude Code Ihre CA-Konfiguration auf diese Anfragen nur an, wenn sie durch einen konfigurierten Proxy gingen, und bei einer direkten Verbindung vertrauten sie nur auf den Standard-Zertifikatsspeicher der Laufzeit.

624 

625Vor v2.1.261 vertraute die Berechtigungssuche hinter den Modellprüfungen des Setup-Assistenten mit der Option **Anmeldedaten verwenden, die bereits in meiner Umgebung vorhanden sind** immer noch nur auf den Standard-Zertifikatsspeicher der Laufzeit. Hinter einem TLS-inspizierenden Proxy, dessen Stammzertifikat nur im Betriebssystem-Speicher vorhanden ist, schlugen die betroffenen Anfragen mit `unable to get local issuer certificate` fehl, oder der Assistent zeigte Modelle als `unreachable` an, während Inferenzanfragen erfolgreich waren. Aktualisieren Sie auf v2.1.261 oder später.

626 

608<h3 id="region-issues">627<h3 id="region-issues">

609 Regionsprobleme628 Regionsprobleme

610</h3>629</h3>

analytics.md +5 −11

Details

26* **Rangliste**: Top-Beitragsteller, sortiert nach Claude Code-Nutzung26* **Rangliste**: Top-Beitragsteller, sortiert nach Claude Code-Nutzung

27* **Datenexport**: Beitragsdaten als CSV für benutzerdefinierte Berichte herunterladen27* **Datenexport**: Beitragsdaten als CSV für benutzerdefinierte Berichte herunterladen

28 28 

29Für Pro-Benutzer-Token-Zählungen und Kostenschätzungen konfigurieren Sie [OpenTelemetry-Export](/de/monitoring-usage), oder exportieren Sie den [Ausgabenbericht](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) aus den Analytics-Einstellungen Ihrer Organisation, der die Token-Nutzung und geschätzte Ausgabenguthaben-Ausgaben pro Benutzer und pro Modell auflistet.29Für Pro-Benutzer-Token-Zählungen und Kostenschätzungen konfigurieren Sie [OpenTelemetry-Export](/docs/de/monitoring-usage), oder exportieren Sie den [Ausgabenbericht](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) aus den Analytics-Einstellungen Ihrer Organisation, der die Token-Nutzung und geschätzte Ausgabenguthaben-Ausgaben pro Benutzer und pro Modell auflistet.

30 30 

31<h3 id="enable-contribution-metrics">31<h3 id="enable-contribution-metrics">

32 Beitragskennzahlen aktivieren32 Beitragskennzahlen aktivieren


41Sie benötigen die Owner-Rolle, um Analytics-Einstellungen zu konfigurieren. Ein GitHub-Admin muss die GitHub-App installieren.41Sie benötigen die Owner-Rolle, um Analytics-Einstellungen zu konfigurieren. Ein GitHub-Admin muss die GitHub-App installieren.

42 42 

43<Warning>43<Warning>

44 Beitragskennzahlen sind nicht für Organisationen mit aktiviertem [Zero Data Retention](/de/zero-data-retention) verfügbar. Das Analytics-Dashboard zeigt nur Nutzungsmetriken an.44 Beitragskennzahlen sind nicht für Organisationen mit aktiviertem [Zero Data Retention](/docs/de/zero-data-retention) verfügbar. Das Analytics-Dashboard zeigt nur Nutzungsmetriken an.

45</Warning>45</Warning>

46 46 

47<Steps>47<Steps>


139 139 

140Wenn Beitragskennzahlen aktiviert sind, analysiert Claude Code zusammengeführte Pull Requests, um zu bestimmen, welcher Code mit Claude Code-Unterstützung geschrieben wurde. Dies geschieht durch Abgleich der Claude Code-Sitzungsaktivität mit dem Code in jedem PR.140Wenn Beitragskennzahlen aktiviert sind, analysiert Claude Code zusammengeführte Pull Requests, um zu bestimmen, welcher Code mit Claude Code-Unterstützung geschrieben wurde. Dies geschieht durch Abgleich der Claude Code-Sitzungsaktivität mit dem Code in jedem PR.

141 141 

142<h4 id="tagging-criteria">

143 Tagging-Kriterien

144</h4>

145 

146PRs werden als „with Claude Code" gekennzeichnet, wenn sie mindestens eine Codezeile enthalten, die während einer Claude Code-Sitzung geschrieben wurde. Das System verwendet konservatives Matching: Nur Code, bei dem hohes Vertrauen in die Beteiligung von Claude Code besteht, wird als unterstützt gezählt.

147 

148<h4 id="attribution-process">142<h4 id="attribution-process">

149 Zuordnungsprozess143 Zuordnungsprozess

150</h4>144</h4>


267 Verwandte Ressourcen261 Verwandte Ressourcen

268</h2>262</h2>

269 263 

270* [Monitoring mit OpenTelemetry](/de/monitoring-usage): Exportieren Sie Echtzeit-Metriken und Ereignisse in Ihren Observability-Stack264* [Monitoring mit OpenTelemetry](/docs/de/monitoring-usage): Exportieren Sie Echtzeit-Metriken und Ereignisse in Ihren Observability-Stack

271* [Kosten effektiv verwalten](/de/costs): Legen Sie Ausgabenlimits fest und optimieren Sie die Token-Nutzung265* [Kosten effektiv verwalten](/docs/de/costs): Legen Sie Ausgabenlimits fest und optimieren Sie die Token-Nutzung

272* [Berechtigungen](/de/permissions): Konfigurieren Sie Rollen und Berechtigungen266* [Berechtigungen](/docs/de/permissions): Konfigurieren Sie Rollen und Berechtigungen

artifacts.md +45 −15

Details

35 Was ein Artefakt nicht ist35 Was ein Artefakt nicht ist

36</h3>36</h3>

37 37 

38Ein Artefakt ist eine Erfassung von Arbeit: eine einzelne, in sich geschlossene Seite ohne Backend, daher kann es keine Formulareingaben speichern oder mehrere Routen bedienen, und sein einziger Weg zu externen Daten, wenn jemand es anzeigt, ist das [Aufrufen von MCP-Konnektoren](#pull-live-data-with-mcp-connectors). Für ein gehostetes internes Tool mit einem Backend stellen Sie es stattdessen auf Ihrer eigenen Infrastruktur bereit. Siehe [Seitenbeschränkungen](#page-constraints) für die vollständige Liste der Limits.38Ein Artefakt ist eine Erfassung von Arbeit: eine einzelne, in sich geschlossene Seite ohne Backend, daher kann es keine mehreren Routen bedienen. Für ein gehostetes internes Tool mit einem Backend stellen Sie es stattdessen auf Ihrer eigenen Infrastruktur bereit. Siehe [Seitenbeschränkungen](#page-constraints) für die vollständige Liste der Limits.

39 39 

40<h2 id="create-an-artifact">40<h2 id="create-an-artifact">

41 Erstellen Sie ein Artefakt41 Erstellen Sie ein Artefakt


58 58 

59Nachdem Sie ein Artefakt einmal genehmigt haben, veröffentlicht Claude Code es erneut, ohne zu fragen, und fragt in einigen Fällen erneut, einschließlich wenn:59Nachdem Sie ein Artefakt einmal genehmigt haben, veröffentlicht Claude Code es erneut, ohne zu fragen, und fragt in einigen Fällen erneut, einschließlich wenn:

60 60 

61* Claude deklariert eine Laufzeitfähigkeit für die Seite, wie [Konnektor-Aufrufe](#pull-live-data-with-mcp-connectors)61* Claude deklariert eine Laufzeitfähigkeit für die Seite, wie [Konnektor-Aufrufe](#pull-live-data-with-mcp-connectors) oder [Datei-Downloads](#offer-a-file-download)

62* Sie haben es seitdem [öffentlich freigegeben](#share-an-artifact)62* Sie haben es seitdem [öffentlich freigegeben](#share-an-artifact)

63* Sie haben es seitdem mit bestimmten Personen oder Ihrer Organisation freigegeben, wobei die neueste Version als die Version ausgewählt ist, die Betrachter sehen63* Sie haben es seitdem mit bestimmten Personen oder Ihrer Organisation freigegeben, wobei die neueste Version als die Version ausgewählt ist, die Betrachter sehen

64 64 

65Nach der ersten Veröffentlichung druckt Claude die URL aus, und Ihr Browser öffnet die neue Seite. Drücken Sie `Ctrl+]` jederzeit, um das neueste Artefakt aus dem Terminal erneut zu öffnen.65Nach der ersten Veröffentlichung druckt Claude die URL aus, und Ihr Browser öffnet die neue Seite. Wenn Sie die Aufforderung über [Remote Control](/docs/de/remote-control) von claude.ai, Claude Desktop oder der Claude Mobile-App gesendet haben, öffnet sich auf dem Computer, auf dem die Sitzung läuft, keine Registerkarte. Der Browser öffnet sich dort beim nächsten Mal, wenn Claude das Artefakt aus einer Aufforderung veröffentlicht, die Sie im Terminal eingeben. Drücken Sie `Ctrl+]` jederzeit, um das neueste Artefakt der Sitzung erneut zu öffnen.

66 66 

67Claude wählt den Titel des Artefakts und ein Emoji für sein Browser-Tab-Symbol. Beide werden in Ihrer [Galerie von Artefakten](#share-an-artifact) auf claude.ai und in freigegebenen Links angezeigt, daher bitten Sie Claude, einen bestimmten Titel oder ein bestimmtes Symbol zu verwenden, wenn Sie einen möchten.67Claude wählt den Titel des Artefakts und ein Emoji, und beide werden in Ihrer [Galerie von Artefakten](#share-an-artifact) auf claude.ai und in freigegebenen Links angezeigt. Claude kann auch ein Browser-Tab-Symbol auswählen, das dem entspricht, was die Seite ist, wie ein Diagramm oder ein Kalender. Bitten Sie Claude um einen bestimmten Titel, ein bestimmtes Emoji oder ein bestimmtes Tab-Symbol, wenn Sie einen möchten.

68 68 

69Um zu verhindern, dass der Browser automatisch geöffnet wird, wenn ein neues Artefakt veröffentlicht wird, setzen Sie `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` in Ihrer Umgebung.69Um zu verhindern, dass der Browser automatisch geöffnet wird, wenn ein neues Artefakt veröffentlicht wird, setzen Sie `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` in Ihrer Umgebung.

70 70 


115 115 

116Ein Bearbeiter veröffentlicht neue Versionen auf die gleiche Weise wie Sie [das Artefakt aus einer anderen Sitzung aktualisieren](#update-an-artifact): Er oder sie gibt Claude die URL des Artefakts, oder fügt es aus [`/artifacts`](#find-an-artifact-again) an, und Claude ruft den aktuellen Inhalt ab und veröffentlicht ihn mit seinen oder ihren Änderungen erneut. Jeder, der die Seite offen hat, sieht jede Aktualisierung live.116Ein Bearbeiter veröffentlicht neue Versionen auf die gleiche Weise wie Sie [das Artefakt aus einer anderen Sitzung aktualisieren](#update-an-artifact): Er oder sie gibt Claude die URL des Artefakts, oder fügt es aus [`/artifacts`](#find-an-artifact-again) an, und Claude ruft den aktuellen Inhalt ab und veröffentlicht ihn mit seinen oder ihren Änderungen erneut. Jeder, der die Seite offen hat, sieht jede Aktualisierung live.

117 117 

118<h2 id="read-an-artifact-shared-with-you">

119 Ein mit Ihnen geteiltes Artefakt lesen

120</h2>

121 

122Wenn jemand ein Artefakt mit Ihnen teilt, können Sie Claude es lesen lassen: Geben Sie Claude seine URL oder fügen Sie es aus [`/artifacts`](#find-an-artifact-again) an.

123 

124Claude liest eine Seite, die jemand anderes geschrieben hat, auf die gleiche Weise wie eine Webseite mit [WebFetch](/docs/de/tools-reference#webfetch-tool-behavior): Es erhält eine Zusammenfassung dessen, was es gefragt hat, anstelle der rohen Seite, und die Zusammenfassung meldet in die Seite geschriebene Anweisungen, anstatt sie weiterzuleiten. Claude Code speichert auch den vollständigen Quellcode der Seite in einer lokalen Datei, die Claude öffnen kann, wenn es den genauen Inhalt benötigt, z. B. um das Artefakt als [Editor](#let-someone-edit-with-you) erneut zu veröffentlichen.

125 

118<h2 id="collect-comments-on-an-artifact">126<h2 id="collect-comments-on-an-artifact">

119 Sammeln Sie Kommentare zu einem Artefakt127 Sammeln Sie Kommentare zu einem Artefakt

120</h2>128</h2>


165Wenn der Dienst, der Kommentare liefert, nicht verfügbar wird oder nicht mehr antwortet, versucht Claude Code, sich eine Weile erneut zu verbinden, und stoppt dann die Überwachung jedes Artefakts, das Ihre Sitzung überwacht hat.173Wenn der Dienst, der Kommentare liefert, nicht verfügbar wird oder nicht mehr antwortet, versucht Claude Code, sich eine Weile erneut zu verbinden, und stoppt dann die Überwachung jedes Artefakts, das Ihre Sitzung überwacht hat.

166 174 

167<h2 id="pull-live-data-with-mcp-connectors">175<h2 id="pull-live-data-with-mcp-connectors">

168 Frische Daten mit MCP-Konnektoren abrufen176 Live-Daten mit MCP-Konnektoren abrufen

169</h2>177</h2>

170 178 

171Ein Artefakt kann [MCP-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) jedes Mal aufrufen, wenn jemand es anzeigt, sodass die Seite aktuelle Daten anstelle eines Snapshots aus der Sitzung anzeigt, in der sie erstellt wurde. Konnektoraufrufe aus Artefakten sind in den Plänen Pro, Max, Team und Enterprise verfügbar und erfordern Claude Code v2.1.209 oder später. In früheren Versionen veröffentlicht Claude die Seite mit den Daten, die die Sitzung während der Erstellung gesammelt hat.179Ein Artefakt kann [MCP-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) jedes Mal aufrufen, wenn jemand es anzeigt, sodass die Seite aktuelle Daten anstelle eines Snapshots aus der Sitzung anzeigt, in der sie erstellt wurde. Konnektoraufrufe aus Artefakten sind in den Plänen Pro, Max, Team und Enterprise verfügbar und erfordern Claude Code v2.1.209 oder später. In früheren Versionen veröffentlicht Claude die Seite mit den Daten, die die Sitzung während der Erstellung gesammelt hat.

172 180 

173Um eine Konnektoren-gestützte Seite zu erstellen, nennen Sie den Konnektor und die gewünschten Daten in Ihrer Eingabeaufforderung:181Um eine Konnektor-gestützte Seite zu erstellen, nennen Sie den Konnektor und die gewünschten Daten in Ihrer Eingabeaufforderung:

174 182 

175```text wrap theme={null}183```text wrap theme={null}

176Build a dashboard artifact of our open pull requests that pulls the live list through my GitHub connector when the page loads.184Build a dashboard artifact of our open pull requests that pulls the live list through my GitHub connector when the page loads.

177```185```

178 186 

179Claude deklariert, welche Konnektoren die Seite aufrufen darf, als Teil der Veröffentlichung, und die Seite kann keine Konnektoren außerhalb dieser Deklaration aufrufen. Nur Konnektoren aus Ihrem claude.ai-Konto kommen in Frage: Claude nennt sie in der Deklaration, und wenn jemand die Seite anzeigt, wird jeder Aufruf [über die eigene Verbindung des anzeigenden Kontos zu diesem Konnektor ausgeführt](#how-connector-calls-work-for-viewers). Lokale MCP-Server, die Sie in Claude Code konfigurieren, wie Server aus `.mcp.json`, können Daten liefern, während Claude die Seite erstellt, aber die veröffentlichte Seite kann sie nicht aufrufen.187Claude deklariert, welche Konnektoren die Seite aufrufen darf, als Teil der Veröffentlichung, und die Seite kann keine Konnektoren außerhalb dieser Deklaration aufrufen. Nur Konnektoren aus Ihrem claude.ai-Konto kommen in Frage: Claude benennt sie in der Deklaration, und wenn jemand die Seite anzeigt, wird jeder Aufruf [über die eigene Verbindung des anzeigenden Kontos zu diesem Konnektor ausgeführt](#how-connector-calls-work-for-viewers). Lokale MCP-Server, die Sie in Claude Code konfigurieren, wie Server aus `.mcp.json`, können Daten liefern, während Claude die Seite erstellt, aber die veröffentlichte Seite kann sie nicht aufrufen.

180 188 

181Die Seite ruft Daten beim Laden ab und kann in einem Intervall aktualisiert werden oder wenn ein Betrachter ein Aktualisierungssteuerelement auf der Seite verwendet. Antworten werden im Browser des Betrachters zwischengespeichert, sodass eine erneut geöffnete Seite sofort aus den zwischengespeicherten Antworten gerendert wird und sich dann mit frischen Ergebnissen aktualisiert.189Die Seite ruft Daten beim Laden ab und kann in einem Intervall aktualisiert werden oder wenn ein Betrachter ein Aktualisierungssteuerelement auf der Seite verwendet. Antworten werden im Browser des Betrachters zwischengespeichert, sodass eine erneut geöffnete Seite sofort aus den zwischengespeicherten Antworten gerendert wird und sich dann mit frischen Ergebnissen aktualisiert.

182 190 


188 196 

189* **Jeder Betrachter verwendet seine eigenen Konnektoren**: Aufrufe erfolgen über die verbundenen Tools des anzeigenden Kontos, sodass zwei Personen, die dasselbe Dashboard öffnen, je nach dem, worauf ihre Konten zugreifen können, unterschiedliche Daten sehen können. Die Seite sieht niemals die Anmeldedaten von jemandem; claude.ai führt die Aufrufe im Namen der Seite aus.197* **Jeder Betrachter verwendet seine eigenen Konnektoren**: Aufrufe erfolgen über die verbundenen Tools des anzeigenden Kontos, sodass zwei Personen, die dasselbe Dashboard öffnen, je nach dem, worauf ihre Konten zugreifen können, unterschiedliche Daten sehen können. Die Seite sieht niemals die Anmeldedaten von jemandem; claude.ai führt die Aufrufe im Namen der Seite aus.

190* **Betrachter genehmigen den Zugriff zuerst**: claude.ai fragt jeden Betrachter um Genehmigung, bevor der erste Konnektoraufruf der Seite erfolgt. Ein Betrachter, der ablehnt oder keinen Konnektor verbunden hat, den die Seite verwendet, sieht die Seite immer noch ohne ihre Live-Abschnitte.198* **Betrachter genehmigen den Zugriff zuerst**: claude.ai fragt jeden Betrachter um Genehmigung, bevor der erste Konnektoraufruf der Seite erfolgt. Ein Betrachter, der ablehnt oder keinen Konnektor verbunden hat, den die Seite verwendet, sieht die Seite immer noch ohne ihre Live-Abschnitte.

191* **Aktionen verwenden auch das Konto des Betrachters**: Eine Seite kann Steuerelemente anbieten, die Konnektortools mit Nebenwirkungen aufrufen, z. B. das Posten einer Nachricht oder das Aktualisieren eines Problems. Die Aktion erfolgt über das Konto derjenigen Person, die das Steuerelement auswählt.199* **Aktionen verwenden auch das Konto des Betrachters**: Eine Seite kann Steuerelemente anbieten, die Konnektor-Tools mit Nebenwirkungen aufrufen, z. B. das Posten einer Nachricht oder das Aktualisieren eines Problems. Die Aktion erfolgt über das Konto derjenigen Person, die das Steuerelement auswählt.

192 200 

193Wenn Sie planen, eine Konnektoren-gestützte Seite freizugeben, bitten Sie Claude, in jedem Live-Abschnitt eine Fallback-Nachricht einzufügen, die den benötigten Konnektor nennt. Ein Betrachter, dem die Verbindung fehlt, sieht dann, was verbunden werden muss, anstatt eines leeren Abschnitts.201Wenn Sie planen, eine Konnektor-gestützte Seite freizugeben, bitten Sie Claude, in jedem Live-Abschnitt eine Fallback-Nachricht einzufügen, die den benötigten Konnektor benennt. Ein Betrachter, dem die Verbindung fehlt, sieht dann, was verbunden werden muss, anstatt eines leeren Abschnitts.

194 202 

195Ein Artefakt, das Konnektoren aufruft, kann in keinem Plan über einen öffentlichen Link freigegeben werden. In den Plänen Team und Enterprise können Sie es privat halten oder [es innerhalb Ihrer Organisation freigeben](#share-an-artifact). In den Plänen Pro und Max, bei denen ein öffentlicher Link die einzige Möglichkeit zum Freigeben ist, bleibt ein Konnektoren-gestütztes Artefakt privat für Sie.203Ein Artefakt, das Konnektoren aufruft, kann in keinem Plan über einen öffentlichen Link freigegeben werden. In den Plänen Team und Enterprise können Sie es privat halten oder [es innerhalb Ihrer Organisation freigeben](#share-an-artifact). In den Plänen Pro und Max, bei denen ein öffentlicher Link die einzige Möglichkeit zum Freigeben ist, bleibt ein Konnektor-gestütztes Artefakt privat für Sie.

196 204 

197<h3 id="the-page-shows-no-live-data-for-a-viewer">205<h3 id="the-page-shows-no-live-data-for-a-viewer">

198 Die Seite zeigt keine Live-Daten für einen Betrachter206 Die Seite zeigt für einen Betrachter keine Live-Daten an

199</h3>207</h3>

200 208 

201Wenn eine Konnektoren-gestützte Seite gerendert wird, aber ihre Live-Abschnitte für jemanden, mit dem Sie sie geteilt haben, leer bleiben, arbeiten Sie diese Ursachen durch:209Wenn eine Konnektor-gestützte Seite gerendert wird, aber ihre Live-Abschnitte für jemanden, mit dem Sie sie geteilt haben, leer bleiben, arbeiten Sie diese Ursachen durch:

202 210 

203* **Der Betrachter hat den Konnektor nicht verbunden**: Konnektoren sind pro Konto, daher benötigt jeder Betrachter seine eigene Verbindung zu jedem Konnektor, den die Seite aufruft. Sie können einen unter **Einstellungen > Konnektoren** auf claude.ai hinzufügen und dann die Seite neu laden.211* **Der Betrachter hat den Konnektor nicht verbunden**: Konnektoren sind pro Konto, daher benötigt jeder Betrachter seine eigene Verbindung zu jedem Konnektor, den die Seite aufruft. Sie können einen unter **Einstellungen > Konnektoren** auf claude.ai hinzufügen und dann die Seite neu laden.

204* **Der Betrachter hat die Genehmigungsanfrage abgelehnt**: Eine Ablehnung gilt für den Rest dieses Seitenladegangs. Das Neuladen der Seite bringt die Genehmigungsanfrage zurück.212* **Der Betrachter hat die Genehmigungsanfrage abgelehnt**: Eine Ablehnung gilt für den Rest dieses Seitenladevorgangs. Das Neuladen der Seite bringt die Genehmigungsanfrage zurück.

205* **Konnektoraufrufe sind für die Organisation deaktiviert**: Ein Besitzer steuert den [**Artefakt-Konnektoren aktivieren**-Schalter](#control-connector-calls-from-artifacts) in den Admin-Einstellungen.213* **Konnektoraufrufe sind für die Organisation deaktiviert**: Ein Besitzer steuert den [**Artefakt-Konnektoren aktivieren**-Schalter](#control-connector-calls-from-artifacts) in den Admin-Einstellungen.

214* **Die Seite ruft Tool-Namen auf, die der Konnektor nicht verfügbar macht**: Die betroffenen Abschnitte bleiben für alle leer, einschließlich Sie. Dies kann vorkommen, wenn eine Seite die einzelnen Tools hinter einem Gateway-ähnlichen Konnektor benennt, der nur wenige seiner eigenen Tools verfügbar macht. Bitten Sie Claude, die Tool-Namen zu korrigieren, die die Seite aufruft, und veröffentlichen Sie sie erneut.

215 

216 Wenn Claude die Seite veröffentlicht und die Tools dieses Konnektors in Ihrer Sitzung verfügbar sind, überprüft Claude Code die Tool-Namen, die die Seite deklariert, anhand dieser, warnt Claude vor Namen, die nicht übereinstimmen, und weigert sich zu veröffentlichen, wenn keine übereinstimmen. Vor v2.1.265 wurde die Seite ohne Überprüfung veröffentlicht.

217 

218<h2 id="offer-a-file-download">

219 Dateidownload anbieten

220</h2>

221 

222Ein Artefakt kann Betrachtern eine Datei anbieten, die die Seite generiert, z. B. einen CSV-Export einer Tabelle oder ein PNG eines Diagramms. Der Betrachter speichert sie über ein Download-Steuerelement auf der Seite, z. B. eine Schaltfläche. Dateidownloads sind eine Laufzeitfunktion, die claude.ai pro Konto aktiviert, daher prüft Claude, ob Ihr Konto diese Funktion hat, bevor es das Steuerelement erstellt.

223 

224Betrachter können eine Datei nicht über einen gewöhnlichen Download-Link oder ein Skript auf der Seite speichern, da der Artefakt-Viewer auf claude.ai jeden Download blockiert, den die Seite selbst startet, einschließlich Links zu `data:`- oder `blob:`-URLs. Wenn eine Seite auf diese Weise erstellte Download-Schaltflächen hat, bitten Sie Claude, diese mit der Downloads-Funktion neu zu erstellen.

225 

226Um eine Datei anzubieten, fordern Sie das Steuerelement und das Dateiformat in Ihrer Eingabeaufforderung an:

227 

228```text wrap theme={null}

229Add a button that downloads this table as a CSV file.

230```

231 

232Claude deklariert die Downloads-Funktion als Teil der Veröffentlichung, auf die gleiche Weise wie es [Konnektoren deklariert](#pull-live-data-with-mcp-connectors).

206 233 

207<h2 id="what-you-can-build">234<h2 id="what-you-can-build">

208 Was Sie erstellen können235 Was Sie erstellen können


301| Beschränkung | Auswirkung |328| Beschränkung | Auswirkung |

302| :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |329| :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

303| Externe Anfragen | Die Seite kann Schriftarten von Google Fonts laden und Skripte von [vier öffentlichen CDN-Hosts](#allowlist-the-viewer-domain): cdnjs, den Tailwind- und jQuery-CDNs und ausgewählten Pfaden auf jsDelivr wie `/npm/`. Die CSP blockiert jedes externe Bild und alle anderen externen Skripte, Stylesheets und Schriftarten, und lässt `fetch`, XHR und WebSocket-Aufrufe nur den Ursprung der Seite selbst und die Google Fonts-Hosts erreichen. Claude lädt daher jede Bibliothek, die die Seite benötigt, von einem dieser CDNs, inline alle anderen CSS und JavaScript, und bettet Bilder als Data-URIs ein. [Connector-Aufrufe](#pull-live-data-with-mcp-connectors) erfolgen über claude.ai, das den Netzwerkaufruf selbst tätigt. |330| Externe Anfragen | Die Seite kann Schriftarten von Google Fonts laden und Skripte von [vier öffentlichen CDN-Hosts](#allowlist-the-viewer-domain): cdnjs, den Tailwind- und jQuery-CDNs und ausgewählten Pfaden auf jsDelivr wie `/npm/`. Die CSP blockiert jedes externe Bild und alle anderen externen Skripte, Stylesheets und Schriftarten, und lässt `fetch`, XHR und WebSocket-Aufrufe nur den Ursprung der Seite selbst und die Google Fonts-Hosts erreichen. Claude lädt daher jede Bibliothek, die die Seite benötigt, von einem dieser CDNs, inline alle anderen CSS und JavaScript, und bettet Bilder als Data-URIs ein. [Connector-Aufrufe](#pull-live-data-with-mcp-connectors) erfolgen über claude.ai, das den Netzwerkaufruf selbst tätigt. |

304| Kein Backend | Ein Artefakt ist eine statische Seite. Es kann keine Daten speichern, die über ein Formular eingereicht werden, oder Betrachter selbst authentifizieren. Der einzige Weg, Daten abzurufen, wenn jemand die Seite anzeigt, ist das [Aufrufen von MCP-Konnektoren](#pull-live-data-with-mcp-connectors), nicht eine eigene API. |331| Kein Backend | Ein Artefakt ist eine statische Seite. Es kann Betrachter nicht selbst authentifizieren. |

332| Downloads | Die Seite kann einen Download nicht selbst starten. Um Betrachtern zu ermöglichen, eine Datei zu speichern, die die Seite generiert, erklärt Claude die Downloads-Funktion. Siehe [Eine Datei zum Download anbieten](#offer-a-file-download). |

305| Einzelne Seite | Relative Links werden nicht aufgelöst, da nichts neben der Seite bereitgestellt wird. Für mehrteilige Inhalte verwendet Claude In-Page-Anker anstelle von separaten Dateien. |333| Einzelne Seite | Relative Links werden nicht aufgelöst, da nichts neben der Seite bereitgestellt wird. Für mehrteilige Inhalte verwendet Claude In-Page-Anker anstelle von separaten Dateien. |

306| Quelldateitypen | Die veröffentlichte Datei muss `.html`, `.htm` oder `.md` sein. Markdown-Dateien werden als gestyltes HTML gerendert. |334| Quelldateitypen | Die veröffentlichte Datei muss `.html`, `.htm` oder `.md` sein und muss als UTF-8 oder als Little-Endian-UTF-16 durch ihre Byte-Order-Marke dekodierbar sein. Markdown-Dateien werden als gestyltes HTML gerendert. Eine Datei, die nicht dekodierbar ist oder das Ersatzzeichen `U+FFFD` enthält, wird [mit der Zeile und Spalte zum Beheben abgelehnt](/docs/de/errors#the-source-file-is-not-valid-utf-8-text). |

307| Gerenderte Größe | Die gerenderte Seite muss 16 MiB oder kleiner sein. Große eingebettete Bilder sind die übliche Ursache, wenn eine Veröffentlichung aus Größengründen fehlschlägt. |335| Gerenderte Größe | Die gerenderte Seite muss 16 MiB oder kleiner sein. Große eingebettete Bilder sind die übliche Ursache, wenn eine Veröffentlichung aus Größengründen fehlschlägt. |

308 336 

309Das Generieren eines Artefakts verwendet Ausgabe-Token wie jede andere Antwort, und eine gestylte Seite ist token-intensiver als derselbe Inhalt als Terminaltext. Inline-CSS, JavaScript für interaktive Steuerelemente und besonders Bilder, die als Data-URIs eingebettet sind, sind die Hauptbeiträge. Um die Token-Kosten eines Artefakts zu reduzieren:337Das Generieren eines Artefakts verwendet Ausgabe-Token wie jede andere Antwort, und eine gestylte Seite ist token-intensiver als derselbe Inhalt als Terminaltext. Inline-CSS, JavaScript für interaktive Steuerelemente und besonders Bilder, die als Data-URIs eingebettet sind, sind die Hauptbeiträge. Um die Token-Kosten eines Artefakts zu reduzieren:


343 371 

344Sie können auch `"enableArtifact": false` in der `.claude/settings.json` oder `.claude/settings.local.json` eines Projekts setzen, um Artefakte für Sitzungen in diesem Projekt auszuschalten. Ein `"enableArtifact": true` in einer der beiden Dateien schaltet sie nicht wieder ein. Das Ehren des Schlüssels in Projekt- und lokalen Einstellungen erfordert Claude Code v2.1.242 oder später.372Sie können auch `"enableArtifact": false` in der `.claude/settings.json` oder `.claude/settings.local.json` eines Projekts setzen, um Artefakte für Sitzungen in diesem Projekt auszuschalten. Ein `"enableArtifact": true` in einer der beiden Dateien schaltet sie nicht wieder ein. Das Ehren des Schlüssels in Projekt- und lokalen Einstellungen erfordert Claude Code v2.1.242 oder später.

345 373 

374Wenn Sie eine `WebFetch`-Ablehnungs- oder Anfrage-Regel ohne `domain:`-Teil hinzufügen, schaltet sie Artefakte nicht aus und blockiert auch keine Artefakt-Lesevorgänge. Eine [`WebFetch(domain:claude.ai)`-Regel in `deny` oder `ask` gilt für Artefakt-Lesevorgänge](/docs/de/permissions#allow-or-deny-every-fetch).

375 

346<h2 id="manage-artifacts-for-your-organization">376<h2 id="manage-artifacts-for-your-organization">

347 Verwalten Sie Artefakte für Ihre Organisation377 Verwalten Sie Artefakte für Ihre Organisation

348</h2>378</h2>

Details

130* **Wovon es Sie abmeldet**: Claude Code meldet Sie von jeder claude.ai-Anmeldung ab, die auf dem Computer gespeichert ist130* **Wovon es Sie abmeldet**: Claude Code meldet Sie von jeder claude.ai-Anmeldung ab, die auf dem Computer gespeichert ist

131* **Wie man es rückgängig macht**: Führen Sie `/logout` aus, das die Anmeldedaten entfernt und widerruft, die diese Anmeldung geschrieben hat131* **Wie man es rückgängig macht**: Führen Sie `/logout` aus, das die Anmeldedaten entfernt und widerruft, die diese Anmeldung geschrieben hat

132 132 

133Wenn Ihre Organisation [serverseitig verwaltete Einstellungen](/docs/de/server-managed-settings) verwendet, gelten diese für diese Anmeldung auf Claude Code v2.1.257 oder später.

134 

133Alles andere über Profile gilt für diese Anmeldung, einschließlich wo sie gegen Ihre anderen Anmeldedaten rangiert, die `Profile`-Zeile, die Sie in `/status` erhalten, und die Funktionen, die eine claude.ai-Anmeldung benötigen. Siehe [Anthropic-Profile und Verbundanmeldedaten](#anthropic-profiles-and-federation-credentials).135Alles andere über Profile gilt für diese Anmeldung, einschließlich wo sie gegen Ihre anderen Anmeldedaten rangiert, die `Profile`-Zeile, die Sie in `/status` erhalten, und die Funktionen, die eine claude.ai-Anmeldung benötigen. Siehe [Anthropic-Profile und Verbundanmeldedaten](#anthropic-profiles-and-federation-credentials).

134 136 

135<h3 id="cloud-provider-authentication">137<h3 id="cloud-provider-authentication">


233 235 

234Eine angemeldete [Claude Apps Gateway](/docs/de/claude-apps-gateway) Sitzung steht außerhalb dieser Liste: Sie ist eine Anbieterauswahl wie Amazon Bedrock oder Google Cloud's Agent Platform und hat Vorrang vor ihnen. Wenn eine Gateway-Sitzung vorhanden ist, authentifiziert sich die CLI mit dem Gateway-Token, auch wenn `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX` oder `CLAUDE_CODE_USE_FOUNDRY` gesetzt ist, und Anmeldequellen oben wie der Bearer-Token, API-Schlüssel, `apiKeyHelper` und Profile werden nicht verwendet.236Eine angemeldete [Claude Apps Gateway](/docs/de/claude-apps-gateway) Sitzung steht außerhalb dieser Liste: Sie ist eine Anbieterauswahl wie Amazon Bedrock oder Google Cloud's Agent Platform und hat Vorrang vor ihnen. Wenn eine Gateway-Sitzung vorhanden ist, authentifiziert sich die CLI mit dem Gateway-Token, auch wenn `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX` oder `CLAUDE_CODE_USE_FOUNDRY` gesetzt ist, und Anmeldequellen oben wie der Bearer-Token, API-Schlüssel, `apiKeyHelper` und Profile werden nicht verwendet.

235 237 

236Wenn Sie ein aktives Claude-Abonnement haben, aber auch `ANTHROPIC_API_KEY` in Ihrer Umgebung gesetzt haben, hat der API-Schlüssel Vorrang, sobald er genehmigt ist. Dies kann zu Authentifizierungsfehlern führen, wenn der Schlüssel zu einer deaktivierten oder abgelaufenen Organisation gehört. Führen Sie `unset ANTHROPIC_API_KEY` aus, um auf Ihr Abonnement zurückzugreifen, und überprüfen Sie `/status`, um zu bestätigen, welche Methode aktiv ist. Die Zeile `Login method` zeigt Ihr Abonnementkonto an, und eine Zeile `API key` wird angezeigt, wenn ein API-Schlüssel verwendet wird.238Wenn die [verwalteten Einstellungen](/docs/de/managed-settings) Ihres Computers [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) auf `"gateway"` setzen oder [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl) setzen, und Sie keinen Cloud-Anbieter durch eine Variable wie `CLAUDE_CODE_USE_BEDROCK` oder `CLAUDE_CODE_USE_VERTEX` auswählen, verwendet Ihre Sitzung nur die Gateway-Anmeldung. Claude Code überspringt die anderen Anmeldequellen und fordert Sie auf, sich mit `/login` anzumelden. Siehe [Administrator policy requires a Cloud gateway sign-in](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) für das, was Sie mit jeder verbleibenden Anmeldedaten sehen. Vor v2.1.261 oder vor v2.1.265 auf einem Computer, der nur `forceLoginGatewayUrl` setzt, verwendete Claude Code eine verbleibende gespeicherte Anmeldung auf diesen Computern, bis Sie sich beim Gateway anmeldeten.

239 

240Wenn Sie ein aktives Claude-Abonnement haben, aber auch `ANTHROPIC_API_KEY` in Ihrer Umgebung gesetzt haben, verwendet Claude Code den API-Schlüssel, sobald Sie ihn genehmigen. Dies kann zu Authentifizierungsfehlern führen, wenn der Schlüssel zu einer deaktivierten oder abgelaufenen Organisation gehört.

241 

242Führen Sie `unset ANTHROPIC_API_KEY` aus, um auf Ihr Abonnement zurückzugreifen, und überprüfen Sie `/status`, um zu bestätigen, welche Methode aktiv ist. Wenn sowohl eine Anmeldung als auch ein API-Schlüssel konfiguriert sind, markiert `/status` die Anmeldedaten, die nicht verwendet werden.

237 243 

238[Claude Code im Web](/docs/de/claude-code-on-the-web) verwendet immer Ihre Abonnement-Anmeldedaten. Wenn Sie `ANTHROPIC_API_KEY` oder `ANTHROPIC_AUTH_TOKEN` in der Sandbox-Umgebung gesetzt haben, überschreiben diese nicht Ihre Abonnement-Anmeldedaten.244[Claude Code im Web](/docs/de/claude-code-on-the-web) verwendet immer Ihre Abonnement-Anmeldedaten. Wenn Sie `ANTHROPIC_API_KEY` oder `ANTHROPIC_AUTH_TOKEN` in der Sandbox-Umgebung gesetzt haben, überschreiben diese nicht Ihre Abonnement-Anmeldedaten.

239 245 


255 261 

256Die `user_oauth` Regel verhindert, dass ein verwaistes `ant auth login` Profil Ihre Anfragen vom Konto weg verschiebt, bei dem Sie sich mit `/login` angemeldet haben. Für die Verbundsvariablen liest Claude Code auch die anderen Variablen in der [WIF-Referenz](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables), wie `ANTHROPIC_IDENTITY_TOKEN_FILE`, wenn es Ihr Identitäts-Token austauscht. Für das Profildateiformat siehe die [WIF-Referenz](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file).262Die `user_oauth` Regel verhindert, dass ein verwaistes `ant auth login` Profil Ihre Anfragen vom Konto weg verschiebt, bei dem Sie sich mit `/login` angemeldet haben. Für die Verbundsvariablen liest Claude Code auch die anderen Variablen in der [WIF-Referenz](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables), wie `ANTHROPIC_IDENTITY_TOKEN_FILE`, wenn es Ihr Identitäts-Token austauscht. Für das Profildateiformat siehe die [WIF-Referenz](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file).

257 263 

258Um zu bestätigen, welche Quelle Claude Code gewählt hat, führen Sie `/status` aus: Eine `Profile` Zeile benennt die Quelle anstelle der `Login method` Zeile. Wenn Sie Claude Code mit `--debug` starten, schreibt es auch eine `Using Anthropic profile auth` Zeile mit dem Quellnamen in das Debug-Protokoll unter `~/.claude/debug/<session-id>.txt`. Wenn Claude Code ein `user_oauth` aktives Profil überspringt, weil Sie eine funktionierend `/login` Anmeldedaten haben, schreibt es eine Warnung in das Debug-Protokoll, dass es stattdessen die claude.ai-Anmeldung verwendet. Wenn die Anmeldung eines `user_oauth` Profils abgelaufen ist und Claude Code sie nicht erneuern kann, schlagen Anfragen mit [Anthropic profile login expired](/docs/de/errors#anthropic-profile-login-expired) fehl.264Um zu bestätigen, welche Quelle Claude Code gewählt hat, führen Sie `/status` aus. Eine `Profile` Zeile benennt die Quelle anstelle der `Login method` Zeile. Wenn die Anmeldedaten die verwendete Anmeldedaten sind, zeigen die Zeilen `Organization` und `Email` ihr Konto an.

265 

266Wenn Sie Claude Code mit `--debug` starten, schreibt es auch eine `Using Anthropic profile auth` Zeile mit dem Quellnamen in das Debug-Protokoll unter `~/.claude/debug/<session-id>.txt`. Wenn Claude Code ein `user_oauth` aktives Profil überspringt, weil Sie eine funktionierend `/login` Anmeldedaten haben, schreibt es eine Warnung in das Debug-Protokoll, dass es stattdessen die claude.ai-Anmeldung verwendet.

267 

268Wenn die Anmeldung eines `user_oauth` Profils abgelaufen ist und Claude Code sie nicht erneuern kann, schlagen Anfragen mit [Anthropic profile login expired](/docs/de/errors#anthropic-profile-login-expired) fehl.

259 269 

260Funktionen, die Ihre claude.ai-Anmeldung benötigen, wie [claude.ai Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) und [`/schedule`](/docs/de/routines), sind nicht verfügbar, während eine dieser Quellen ausgewählt ist. Um Claude Code davon abzuhalten, eine Quelle auszuwählen:270Funktionen, die Ihre claude.ai-Anmeldung benötigen, wie [claude.ai Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) und [`/schedule`](/docs/de/routines), sind nicht verfügbar, während eine dieser Quellen ausgewählt ist. Um Claude Code davon abzuhalten, eine Quelle auszuwählen:

261 271 

Details

36 36 

37<Info>Vor v2.1.211 erlaubte der Klassifizierer Pushes nur zu Ihrem Arbeitszweig, von Claude erstellten Zweigen und regelmäßigen Pushes zum Standard-Zweig.</Info>37<Info>Vor v2.1.211 erlaubte der Klassifizierer Pushes nur zu Ihrem Arbeitszweig, von Claude erstellten Zweigen und regelmäßigen Pushes zum Standard-Zweig.</Info>

38 38 

39Wenn Sie vor jedem Push oder Pull Request einen menschlichen Checkpoint wünschen, fügen Sie Berechtigungsregeln hinzu: Die [Rezepte unten](#add-a-human-checkpoint) halten den Auto-Modus für alles andere aktiviert.39Wenn Sie vor jedem Push und Pull Request einen menschlichen Checkpoint wünschen, fügen Sie Berechtigungsregeln hinzu: Die [Rezepte unten](#add-a-human-checkpoint) halten den Auto-Modus für alles andere aktiviert.

40 40 

41<h3 id="add-a-human-checkpoint">41<h3 id="add-a-human-checkpoint">

42 Einen menschlichen Checkpoint hinzufügen42 Einen menschlichen Checkpoint hinzufügen


55}55}

56```56```

57 57 

58Diese Regeln entsprechen Befehlen, die mit `git push` oder `gh pr create` beginnen. Ein Push, den Claude auf andere Weise schreibt, wie `git -C <dir> push` oder `git -c <key>=<value> push`, [entspricht der Regel nicht](/docs/de/permissions#bash-rule-limits), daher wird er nicht kontrolliert. Für einen Checkpoint, der den vollständigen Befehlstext überprüft, fügen Sie einen [PreToolUse Hook](/docs/de/hooks#pretooluse) hinzu.

59 

58Wählen Sie den Mechanismus, der der Festigkeit der erforderlichen Grenze entspricht:60Wählen Sie den Mechanismus, der der Festigkeit der erforderlichen Grenze entspricht:

59 61 

60| Grenze | Mechanismus | Verhalten im Auto-Modus |62| Grenze | Mechanismus | Verhalten im Auto-Modus |

61| :--------------------------------- | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |63| :--------------------------------- | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

62| Aufforderung vor der Aktion | `permissions.ask` | Fordert immer für inhaltsgebundene Regeln wie das obige Rezept auf. Der Klassifizierer kann eine übereinstimmende Aktion nicht automatisch genehmigen. |64| Aufforderung vor der Aktion | `permissions.ask` | Fordert immer für einen Befehl auf, der einer inhaltsgebundenen Regel wie dem obigen Rezept entspricht. Der Klassifizierer kann eine übereinstimmende Aktion nicht automatisch genehmigen. |

63| Aktion niemals ausführen | `permissions.deny` | Blockiert, bevor der Klassifizierer konsultiert wird. Weder der Klassifizierer noch die Benutzerabsicht können dies überschreiben. |65| Aktion niemals ausführen | `permissions.deny` | Blockiert, bevor der Klassifizierer konsultiert wird. Weder der Klassifizierer noch die Benutzerabsicht können dies überschreiben. |

64| Einmalige Grenze für diese Sitzung | Geben Sie es im Gespräch an, z. B. „nicht pushen, bis ich überprüft habe" | Der Klassifizierer blockiert übereinstimmende Aktionen, aber die Grenze kann verloren gehen, wenn die [Kontext-Komprimierung](/docs/de/costs#reduce-token-usage) die Nachricht entfernt, die sie angegeben hat. Verwenden Sie eine Ask- oder Deny-Regel für eine dauerhafte Garantie. |66| Einmalige Grenze für diese Sitzung | Geben Sie es im Gespräch an, z. B. „nicht pushen, bis ich überprüft habe" | Der Klassifizierer blockiert übereinstimmende Aktionen, aber die Grenze kann verloren gehen, wenn die [Kontext-Komprimierung](/docs/de/costs#reduce-token-usage) die Nachricht entfernt, die sie angegeben hat. Verwenden Sie eine Ask- oder Deny-Regel für eine dauerhafte Garantie. |

65 67 


395 397 

396Um zu sehen, was der Klassifizierer blockiert hat, suchen Sie den Tool-Aufruf im Gespräch. Wenn der Aufruf verkürzt oder in eine Zusammenfassungszeile wie `Ran 3 shell commands` eingeklappt angezeigt wird, drücken Sie `Ctrl+O`, um den [Transcript-Viewer](/docs/de/interactive-mode#transcript-viewer) zu öffnen, der ihn erweitert.398Um zu sehen, was der Klassifizierer blockiert hat, suchen Sie den Tool-Aufruf im Gespräch. Wenn der Aufruf verkürzt oder in eine Zusammenfassungszeile wie `Ran 3 shell commands` eingeklappt angezeigt wird, drücken Sie `Ctrl+O`, um den [Transcript-Viewer](/docs/de/interactive-mode#transcript-viewer) zu öffnen, der ihn erweitert.

397 399 

398Zwei weitere Stellen auf dem Bildschirm, die Ablehnungen melden, lassen den Befehl oder die URL aus: Die Benachrichtigung neben dem Eingabefeld, z. B. `bash denied by auto mode · Blocked by classifier · /permissions`, gibt das Tool und den Grund an, und die Registerkarte **Kürzlich abgelehnt** listet einen Shell-Befehl nach der Beschreibung auf, die Claude dafür geschrieben hat. Um die genaue Eingabe dieser Ablehnungen programmgesteuert zu erfassen, fügen Sie einen [`PermissionDenied`-Hook](/docs/de/hooks#permissiondenied) hinzu, der sie als `tool_input` empfängt.400Zwei weitere Stellen auf dem Bildschirm, die Ablehnungen melden, lassen den Befehl oder die URL aus: Die Benachrichtigung neben dem Eingabefeld, z. B. `bash denied by auto mode · [Data Exfiltration] · /permissions`, gibt das Tool und den Grund an, und die Registerkarte **Kürzlich abgelehnt** listet einen Shell-Befehl nach der Beschreibung auf, die Claude dafür geschrieben hat. Um die genaue Eingabe dieser Ablehnungen programmgesteuert zu erfassen, fügen Sie einen [`PermissionDenied`-Hook](/docs/de/hooks#permissiondenied) hinzu, der sie als `tool_input` empfängt.

399 401 

400Der Text unter dem Aufruf teilt Ihnen mit, ob es etwas zu beheben gibt. Text, der ein Problem mit dem Klassifizierer selbst meldet, z. B. ein Modell, das `is temporarily unavailable` ist, oder ein Klassifizierer-Fehler, bedeutet, dass Claude Code den Aufruf ohne endgültige Entscheidung des Klassifizierers blockiert hat; siehe [Auto-Modus kann die Sicherheit einer Aktion nicht bestimmen](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für weitere Informationen. Andernfalls bedeutet eine Zeile, die `Denied by auto mode classifier` mit einem Grund wie `Blocked by classifier` liest, dass der Klassifizierer den Aufruf für unsicher befunden hat. Wählen Sie daher die Behebung aus dem aus, was der Aufruf erreichen oder tun wollte:402Der Text unter dem Aufruf teilt Ihnen mit, ob es etwas zu beheben gibt. Text, der ein Problem mit dem Klassifizierer selbst meldet, z. B. ein Modell, das `is temporarily unavailable` ist, oder ein Klassifizierer-Fehler, bedeutet, dass Claude Code den Aufruf ohne endgültige Entscheidung des Klassifizierers blockiert hat; siehe [Auto-Modus kann die Sicherheit einer Aktion nicht bestimmen](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für weitere Informationen. Andernfalls bedeutet eine Zeile, die `Denied by auto mode classifier` mit einem Grund wie `[Production Deploy]` oder `Blocked by classifier` liest, dass der Klassifizierer den Aufruf für unsicher befunden hat. Wählen Sie daher die Behebung aus dem aus, was der Aufruf erreichen oder tun wollte:

401 403 

402* Ein Ziel, das Claude während der gesamten Aufgabe benötigt, z. B. eine Paket-Registry, eine interne Domäne oder einen Repository-Host: Fügen Sie es zu `autoMode.environment` hinzu.404* Ein Ziel, das Claude während der gesamten Aufgabe benötigt, z. B. eine Paket-Registry, eine interne Domäne oder einen Repository-Host: Fügen Sie es zu `autoMode.environment` hinzu.

403* Ein Befehl, den Sie von nun an ohne Überprüfung ausführen möchten: Fügen Sie eine `allow`-Regel hinzu.405* Ein Befehl, den Sie von nun an ohne Überprüfung ausführen möchten: Fügen Sie eine `allow`-Regel hinzu.


405 407 

406Sie können den Umgebungseintrag oder die `allow`-Regel aus der Registerkarte [**Auto-Modus**](#edit-rules-from-permissions) des Dialogs `/permissions` hinzufügen.408Sie können den Umgebungseintrag oder die `allow`-Regel aus der Registerkarte [**Auto-Modus**](#edit-rules-from-permissions) des Dialogs `/permissions` hinzufügen.

407 409 

408Der mit dem Aufruf angezeigte Grund ist der feste Text `Blocked by classifier` in den meisten Sitzungen, in Claude Code v2.1.208 und später: Der Klassifizierer bewertet jede Aktion auf einer internen Schweregrad-Skala, anstatt eine Erklärung zu schreiben. Einige Sitzungen führen ein Klassifizierer-Modell aus, das stattdessen eine kurze Erklärung schreibt, in v2.1.193 und später; wenn eine angezeigt wird, behandeln Sie sie als Hinweis darauf, welches Ziel oder welche Absicht dem Klassifizierer fehlte. Claude Code wählt das Klassifizierer-Modell aus, daher ist es nicht etwas, das Sie konfigurieren können, welcher Grund angezeigt wird.410In den meisten Sitzungen benennt der Grund die Regel, die der Klassifizierer abgeglichen hat, in eckigen Klammern, z. B. `[Data Exfiltration]` oder `[Production Deploy]`, und einige Sitzungen führen ein Klassifizierer-Modell aus, das eine kurze Erklärung hinzufügt. Claude Code wählt das Klassifizierer-Modell aus, daher ist es nicht etwas, das Sie konfigurieren können, welche Form Sie sehen.

409 411 

410<h3 id="fix-repeated-denials">412<h3 id="fix-repeated-denials">

411 Wiederholte Ablehnungen beheben413 Wiederholte Ablehnungen beheben

best-practices.md +26 −26

Details

389***389***

390 390 

391<h2 id="manage-your-session">391<h2 id="manage-your-session">

392 Verwalten Sie Ihre Session392 Verwalten Sie Ihre Sitzung

393</h2>393</h2>

394 394 

395Konversationen sind persistent und reversibel. Nutzen Sie dies zu Ihrem Vorteil!395Konversationen sind persistent und reversibel. Nutzen Sie dies zu Ihrem Vorteil!

396 396 

397<h3 id="course-correct-early-and-often">397<h3 id="course-correct-early-and-often">

398 Korrigieren Sie früh und oft398 Korrigieren Sie früh und häufig

399</h3>399</h3>

400 400 

401<Tip>401<Tip>

402 Korrigieren Sie Claude, sobald Sie bemerken, dass es vom Weg abkommt.402 Korrigieren Sie Claude, sobald Sie bemerken, dass es vom Kurs abweicht.

403</Tip>403</Tip>

404 404 

405Die besten Ergebnisse kommen aus engen Feedback-Schleifen. Obwohl Claude gelegentlich Probleme beim ersten Versuch perfekt löst, führt eine schnelle Korrektur im Allgemeinen zu besseren Lösungen schneller.405Die besten Ergebnisse entstehen durch enge Feedback-Schleifen. Obwohl Claude Probleme gelegentlich beim ersten Versuch perfekt löst, führt eine schnelle Korrektur in der Regel zu besseren Lösungen in kürzerer Zeit.

406 406 

407* **`Esc`**: stoppen Sie Claude mitten in einer Aktion mit der `Esc`-Taste. Der Kontext wird beibehalten, sodass Sie umleiten können.407* **`Esc`**: Stoppen Sie Claude mit der `Esc`-Taste mitten in einer Aktion. Der Kontext bleibt erhalten, sodass Sie umleiten können.

408* **`Esc + Esc` oder `/rewind`**: drücken Sie `Esc` zweimal oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen und die vorherige Konversation und den Code-Status wiederherzustellen, oder fassen Sie eine ausgewählte Nachricht zusammen.408* **`Esc + Esc` oder `/rewind`**: Drücken Sie `Esc` zweimal oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen und den vorherigen Konversations- und Code-Status wiederherzustellen, oder fassen Sie eine ausgewählte Nachricht zusammen.

409* **`"Undo that"`**: lassen Sie Claude seine Änderungen rückgängig machen.409* **`"Undo that"`**: Lassen Sie Claude seine Änderungen rückgängig machen.

410* **`/clear`**: setzen Sie den Kontext zwischen nicht verwandten Aufgaben zurück. Lange Sessions mit irrelevantem Kontext können die Leistung reduzieren.410* **`/clear`**: Setzen Sie den Kontext zwischen nicht zusammenhängenden Aufgaben zurück. Lange Sitzungen mit irrelevantem Kontext können die Leistung verringern.

411 411 

412Wenn Sie Claude mehr als zweimal bei demselben Problem in einer Session korrigiert haben, ist der Kontext mit fehlgeschlagenen Ansätzen überladen. Führen Sie `/clear` aus und beginnen Sie mit einem spezifischeren Prompt, der das Gelernte einbezieht. Eine saubere Session mit einem besseren Prompt übertrifft fast immer eine lange Session mit angesammelten Korrektionen.412Wenn Sie Claude in einer Sitzung mehr als zweimal zur gleichen Frage korrigiert haben, ist der Kontext mit fehlgeschlagenen Ansätzen überladen. Führen Sie `/clear` aus und beginnen Sie mit einer spezifischeren Eingabeaufforderung neu, die das Gelernte berücksichtigt. Eine saubere Sitzung mit einer besseren Eingabeaufforderung übertrifft fast immer eine lange Sitzung mit angesammelten Korrektionen.

413 413 

414<h3 id="manage-context-aggressively">414<h3 id="manage-context-aggressively">

415 Verwalten Sie den Kontext aggressiv415 Verwalten Sie den Kontext aggressiv

416</h3>416</h3>

417 417 

418<Tip>418<Tip>

419 Führen Sie `/clear` zwischen nicht verwandten Aufgaben aus, um den Kontext zurückzusetzen.419 Führen Sie `/clear` zwischen nicht zusammenhängenden Aufgaben aus, um den Kontext zurückzusetzen.

420</Tip>420</Tip>

421 421 

422Claude Code komprimiert automatisch die Konversationshistorie, wenn Sie sich den Kontextlimits nähern, was wichtigen Code und Entscheidungen bewahrt und Platz freimacht.422Claude Code komprimiert automatisch die Konversationshistorie, wenn Sie sich den Kontextgrenzen nähern, wodurch wichtiger Code und Entscheidungen erhalten bleiben und Platz freigegeben wird.

423 423 

424Während langer Sessions kann sich Claudes Kontextfenster mit irrelevanten Konversationen, Dateiinhalten und Befehlen füllen. Dies kann die Leistung reduzieren und Claude manchmal ablenken.424Während langer Sitzungen kann sich das Kontextfenster von Claude mit irrelevanten Konversationen, Dateiinhalten und Befehlen füllen. Dies kann die Leistung verringern und Claude manchmal ablenken.

425 425 

426* Verwenden Sie `/clear` häufig zwischen Aufgaben, um das Kontextfenster vollständig zurückzusetzen426* Verwenden Sie `/clear` häufig zwischen Aufgaben, um das Kontextfenster vollständig zurückzusetzen

427* Wenn die automatische Komprimierung ausgelöst wird, fasst Claude zusammen, was am wichtigsten ist, einschließlich Code-Muster, Dateizustände und wichtige Entscheidungen427* Wenn die automatische Komprimierung ausgelöst wird, fasst Claude zusammen, was am wichtigsten ist, einschließlich Code-Muster, Dateizustände und wichtiger Entscheidungen

428* Für mehr Kontrolle führen Sie `/compact <instructions>` aus, wie `/compact Focus on the API changes`428* Für mehr Kontrolle führen Sie `/compact <instructions>` aus, wie `/compact Focus on the API changes`

429* Um nur einen Teil der Konversation zu komprimieren, verwenden Sie `Esc + Esc` oder `/rewind`, wählen Sie einen Nachricht-Checkpoint und wählen Sie **Summarize from here** oder **Summarize up to here**. Das erste verdichtet Nachrichten von diesem Punkt an, während der frühere Kontext erhalten bleibt; das zweite verdichtet frühere Nachrichten, während neuere vollständig erhalten bleiben. Siehe [das Rewind-Menü's Zusammenfassungsoptionen](/docs/de/checkpointing#rewind-and-summarize).429* Um nur einen Teil der Konversation zu komprimieren, verwenden Sie `Esc + Esc` oder `/rewind`, wählen Sie einen Nachricht-Checkpoint aus und wählen Sie **Summarize from here** oder **Summarize up to here**. Das erste komprimiert Nachrichten von diesem Punkt an, während es den früheren Kontext intakt hält; das zweite komprimiert frühere Nachrichten, während es die neuesten vollständig behält. Siehe [die Zusammenfassungsoptionen des Rewind-Menüs](/docs/de/checkpointing#rewind-and-summarize).

430* Passen Sie das Komprimierungsverhalten in CLAUDE.md mit Anweisungen wie `"When compacting, always preserve the full list of modified files and any test commands"` an, um sicherzustellen, dass kritischer Kontext die Zusammenfassung überlebt430* Passen Sie das Komprimierungsverhalten in CLAUDE.md mit Anweisungen wie `"When compacting, always preserve the full list of modified files and any test commands"` an, um sicherzustellen, dass kritischer Kontext die Zusammenfassung übersteht

431* Für Fragen, die nicht im Kontext bleiben müssen, verwenden Sie [`/btw`](/docs/de/interactive-mode#side-questions-with-%2Fbtw). Die Antwort gelangt niemals in die Konversationshistorie, sodass Sie ein Detail überprüfen können, ohne den Kontext zu vergrößern.431* Für Fragen, die nicht im Kontext bleiben müssen, verwenden Sie [`/btw`](/docs/de/interactive-mode#side-questions-with-%2Fbtw). Die Antwort gelangt nie in die Konversationshistorie, sodass Sie ein Detail überprüfen können, ohne den Kontext zu vergrößern.

432 432 

433<h3 id="use-subagents-for-investigation">433<h3 id="use-subagents-for-investigation">

434 Verwenden Sie Subagents für Untersuchungen434 Verwenden Sie Subagenten für Untersuchungen

435</h3>435</h3>

436 436 

437<Tip>437<Tip>

438 Delegieren Sie Forschung mit `"use subagents to investigate X"`. Sie erkunden in einem separaten Kontext und halten Ihre Hauptkonversation sauber für die Implementierung.438 Delegieren Sie Recherchen mit `"use subagents to investigate X"`. Sie erkunden in einem separaten Kontext und halten Ihre Hauptkonversation sauber für die Implementierung.

439</Tip>439</Tip>

440 440 

441Da der Kontext Ihre grundlegende Einschränkung ist, verwenden Sie Subagents, um Forschung aus ihm herauszuhalten. Wenn Claude eine Codebase erforscht, liest er viele Dateien, die alle Ihren Kontext verbrauchen. Subagents laufen in separaten Kontextfenstern und berichten Zusammenfassungen zurück:441Da Kontext Ihre grundlegende Einschränkung ist, verwenden Sie Subagenten, um Recherchen aus ihm herauszuhalten. Wenn Claude eine Codebasis recherchiert, liest es viele Dateien, die alle Ihren Kontext verbrauchen. Subagenten laufen in separaten Kontextfenstern und berichten Zusammenfassungen zurück:

442 442 

443```text wrap theme={null}443```text wrap theme={null}

444Use subagents to investigate how our authentication system handles token444Use subagents to investigate how our authentication system handles token

445refresh, and whether we have any existing OAuth utilities I should reuse.445refresh, and whether we have any existing OAuth utilities I should reuse.

446```446```

447 447 

448Sie können Subagents auch zur Überprüfung verwenden, nachdem Claude etwas implementiert hat. Siehe [Fügen Sie einen adversarialen Review-Schritt hinzu](#add-an-adversarial-review-step).448Sie können Subagenten auch zur Überprüfung verwenden, nachdem Claude etwas implementiert hat. Siehe [Fügen Sie einen adversarialen Überprüfungsschritt hinzu](#add-an-adversarial-review-step).

449 449 

450<h3 id="rewind-with-checkpoints">450<h3 id="rewind-with-checkpoints">

451 Rewind mit Checkpoints451 Rewind mit Checkpoints

452</h3>452</h3>

453 453 

454<Tip>454<Tip>

455 Jeder Prompt, den Sie senden, erstellt einen Checkpoint. Sie können Konversation, Code oder beides zu jedem vorherigen Checkpoint wiederherstellen.455 Jede Eingabeaufforderung, die Sie senden und die einen Turn startet, erstellt einen Checkpoint. Sie können Konversation, Code oder beides auf jeden vorherigen Checkpoint zurücksetzen.

456</Tip>456</Tip>

457 457 

458Claude erstellt automatisch Snapshots von Dateien vor jeder Änderung, sodass ein Checkpoint diese wiederherstellen kann. Doppeltippen Sie auf `Escape` oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen. Sie können nur Konversation wiederherstellen, nur Code wiederherstellen, beides wiederherstellen oder eine ausgewählte Nachricht zusammenfassen. Siehe [Checkpointing](/docs/de/checkpointing) für Details.458Claude erstellt automatisch Snapshots von Dateien vor jeder Änderung, sodass ein Checkpoint sie wiederherstellen kann. Drücken Sie zweimal `Escape` oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen. Sie können nur die Konversation wiederherstellen, nur den Code wiederherstellen, beides wiederherstellen oder eine ausgewählte Nachricht zusammenfassen. Siehe [Checkpointing](/docs/de/checkpointing) für Details.

459 459 

460Anstatt jeden Schritt sorgfältig zu planen, können Sie Claude bitten, etwas Riskantes zu versuchen. Wenn es nicht funktioniert, rewind und versuchen Sie einen anderen Ansatz. Checkpoints bleiben über Sessions hinweg erhalten, sodass Sie Ihr Terminal schließen und später immer noch rewind können.460Anstatt jeden Schritt sorgfältig zu planen, können Sie Claude sagen, etwas Riskantes zu versuchen. Wenn es nicht funktioniert, rewind und versuchen Sie einen anderen Ansatz. Checkpoints werden mit der Konversation gespeichert, sodass Sie Ihr Terminal schließen, die Sitzung später fortsetzen und immer noch rewind können.

461 461 

462<Warning>462<Warning>

463 Checkpoints verfolgen nur Änderungen, die durch Claudes Datei-Bearbeitungstools vorgenommen wurden. Änderungen, die durch Bash-Befehle oder externe Prozesse vorgenommen wurden, werden nicht erfasst. Dies ist kein Ersatz für Git.463 Checkpoints verfolgen nur Änderungen, die durch Claudes Datei-Bearbeitungswerkzeuge vorgenommen wurden. Änderungen, die durch Bash-Befehle oder externe Prozesse vorgenommen wurden, werden nicht erfasst. Dies ist kein Ersatz für git.

464</Warning>464</Warning>

465 465 

466<h3 id="resume-conversations">466<h3 id="resume-conversations">


468</h3>468</h3>

469 469 

470<Tip>470<Tip>

471 Benennen Sie Sessions mit `/rename` und behandeln Sie sie wie Branches: jeder Workstream erhält seinen eigenen persistenten Kontext.471 Benennen Sie Sitzungen mit `/rename` und behandeln Sie sie wie Branches: Jeder Arbeitsstrom erhält seinen eigenen persistenten Kontext.

472</Tip>472</Tip>

473 473 

474Claude Code speichert Konversationen lokal, sodass Sie den Kontext nicht erneut erklären müssen, wenn sich eine Aufgabe über mehrere Sitzungen erstreckt. Führen Sie [`claude --continue`](/docs/de/sessions#resume-a-session) aus, um die letzte Session fortzusetzen, oder `claude --resume`, um aus einer Liste auszuwählen. Geben Sie Sessions aussagekräftige Namen wie `oauth-migration`, damit Sie sie später finden können. Siehe [Manage sessions](/docs/de/sessions) für den vollständigen Satz von Resume-, Branch- und Benennungskontrollen.474Claude Code speichert Konversationen lokal, sodass Sie den Kontext nicht erneut erklären müssen, wenn eine Aufgabe mehrere Sitzungen umfasst. Führen Sie [`claude --continue`](/docs/de/sessions#resume-a-session) aus, um dort weiterzumachen, wo Sie aufgehört haben, oder `claude --resume`, um aus einer Liste auszuwählen. Geben Sie Sitzungen aussagekräftige Namen wie `oauth-migration`, damit Sie sie später finden können. Siehe [Verwalten Sie Sitzungen](/docs/de/sessions) für den vollständigen Satz von Resume-, Branch- und Benennungskontrollen.

475 475 

476***476***

477 477 

channels.md +2 −2

Details

47 * `Marketplace "claude-plugins-official" not found`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.47 * `Marketplace "claude-plugins-official" not found`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.

48 * The plugin is [not found in the marketplace](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.48 * The plugin is [not found in the marketplace](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.

49 49 

50 Wenn die Installation nach einem Installationsbereich fragt, wählen Sie die Benutzerbereichsoption, damit das Plugin in allen Ihren Projekten verfügbar ist. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie diesen Befehl aus, um den Konfigurationsbefehl des Plugins zu aktivieren.50 Wenn die Installation nach einem Installationsbereich fragt, wählen Sie die Benutzerbereichsoption, damit das Plugin in allen Ihren Projekten verfügbar ist. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting), um den Konfigurationsbefehl des Plugins verfügbar zu machen.

51 </Step>51 </Step>

52 52 

53 <Step title="Konfigurieren Sie Ihr Token">53 <Step title="Konfigurieren Sie Ihr Token">


125 * `Marketplace "claude-plugins-official" not found`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.125 * `Marketplace "claude-plugins-official" not found`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.

126 * The plugin is [not found in the marketplace](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.126 * The plugin is [not found in the marketplace](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.

127 127 

128 Wenn die Installation nach einem Installationsbereich fragt, wählen Sie die Benutzerbereichsoption, damit das Plugin in allen Ihren Projekten verfügbar ist. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie diesen Befehl aus, um den Konfigurationsbefehl des Plugins zu aktivieren.128 Wenn die Installation nach einem Installationsbereich fragt, wählen Sie die Benutzerbereichsoption, damit das Plugin in allen Ihren Projekten verfügbar ist. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting), um den Konfigurationsbefehl des Plugins verfügbar zu machen.

129 </Step>129 </Step>

130 130 

131 <Step title="Konfigurieren Sie Ihr Token">131 <Step title="Konfigurieren Sie Ihr Token">

Details

170 170 

171 Wenn das Ereignis nicht ankommt, hängt die Diagnose davon ab, was `curl` zurückgegeben hat:171 Wenn das Ereignis nicht ankommt, hängt die Diagnose davon ab, was `curl` zurückgegeben hat:

172 172 

173 * **`curl` erfolgreich, aber nichts erreicht Claude**: führen Sie `/mcp` in Ihrer Sitzung aus, um den Status des Servers zu überprüfen. Ein `failed`-Status bedeutet normalerweise einen Abhängigkeits- oder Importfehler in Ihrer Serverdatei; überprüfen Sie das Debug-Log unter `~/.claude/debug/<session-id>.txt` für die stderr-Spur.173 * **`curl` erfolgreich, aber nichts erreicht Claude**: führen Sie `/mcp` in Ihrer Sitzung aus, um den Status des Servers zu überprüfen. Ein `failed`-Status bedeutet normalerweise einen Abhängigkeits- oder Importfehler in Ihrer Serverdatei. Um die stderr-Spur zu sehen, starten Sie mit `claude --debug --dangerously-load-development-channels server:webhook` neu und überprüfen Sie das Debug-Log unter `~/.claude/debug/<session-id>.txt`.

174 * **`curl` schlägt mit "connection refused" fehl**: der Port ist entweder noch nicht gebunden oder ein veralteter Prozess aus einem früheren Lauf hält ihn. `lsof -i :<port>` zeigt, was lauscht; `kill` den veralteten Prozess, bevor Sie Ihre Sitzung neu starten.174 * **`curl` schlägt mit "connection refused" fehl**: der Port ist entweder noch nicht gebunden oder ein veralteter Prozess aus einem früheren Lauf hält ihn. `lsof -i :<port>` zeigt, was lauscht; `kill` den veralteten Prozess, bevor Sie Ihre Sitzung neu starten.

175 </Step>175 </Step>

176</Steps>176</Steps>

checkpointing.md +29 −21

Details

9Claude Code verfolgt automatisch Claudes Dateibearbeitungen während Sie arbeiten, sodass Sie Änderungen schnell rückgängig machen und zu vorherigen Zuständen zurückspulen können, falls etwas schiefgeht.9Claude Code verfolgt automatisch Claudes Dateibearbeitungen während Sie arbeiten, sodass Sie Änderungen schnell rückgängig machen und zu vorherigen Zuständen zurückspulen können, falls etwas schiefgeht.

10 10 

11<h2 id="how-checkpoints-work">11<h2 id="how-checkpoints-work">

12 Wie Checkpointing funktioniert12 Wie Checkpoints funktionieren

13</h2>13</h2>

14 14 

15Während Sie mit Claude arbeiten, erfasst Checkpointing automatisch den Zustand Ihres Codes vor jeder Benutzereingabe.15Während Sie mit Claude arbeiten, erfasst Checkpointing automatisch den Zustand Ihres Codes vor jedem Prompt, den Sie senden und der einen Turn startet.

16 16 

17<h3 id="automatic-tracking">17<h3 id="automatic-tracking">

18 Automatische Verfolgung18 Automatische Verfolgung


20 20 

21Claude Code verfolgt alle Änderungen, die von seinen Datei-Bearbeitungswerkzeugen vorgenommen werden:21Claude Code verfolgt alle Änderungen, die von seinen Datei-Bearbeitungswerkzeugen vorgenommen werden:

22 22 

23* Jede Benutzereingabe erstellt einen neuen Checkpoint23* Jeder Prompt, den Sie senden und der einen Turn startet, erstellt einen neuen Checkpoint

24* Claude Code behält Datei-Snapshots für die 100 neuesten Checkpoints in einer Sitzung. Das Verwerfen eines älteren Checkpoints löscht die Snapshot-Dateien, auf die kein verbleibender Checkpoint verweist, mit Ausnahme des ersten Snapshots jeder Datei, den die VS Code-Erweiterung als Grundlage für ihre Sitzungs-Diffs verwendet.24* Claude Code speichert Datei-Snapshots für die 100 neuesten Checkpoints in einer Sitzung. Das Verwerfen eines älteren Checkpoints löscht die Snapshot-Dateien, auf die kein verbleibender Checkpoint verweist, außer dem ersten Snapshot jeder Datei, den die VS Code-Erweiterung als Baseline für ihre Sitzungs-Diffs verwendet.

25* Claude Code speichert Checkpoints mit der Konversation, sodass Sie nach dem Fortsetzen einer Sitzung immer noch `/rewind` ausführen können25* Claude Code speichert Checkpoints mit der Konversation, sodass Sie `/rewind` auch nach dem Fortsetzen einer Sitzung noch ausführen können

26* Claude Code löscht die Datei-Snapshots einer Sitzung in der [Aufbewahrungsbereinigung](/docs/de/claude-directory#cleaned-up-automatically), standardmäßig etwa 30 Tage nach dem letzten Speichern der Sitzung. Das Zurückspulen zu einem Checkpoint, dessen Snapshots weg sind, kann mit [`No files were restored`](/docs/de/errors#no-files-were-restored) fehlschlagen. Um Snapshots länger zu behalten, setzen Sie [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays).26* Claude Code löscht die Datei-Snapshots einer Sitzung im [Aufbewahrungsdurchlauf](/docs/de/claude-directory#cleaned-up-automatically), standardmäßig etwa 30 Tage, nachdem die Sitzung zuletzt einen gespeichert hat. Das Zurückspulen zu einem Checkpoint, dessen Snapshots weg sind, kann mit [`No files were restored`](/docs/de/errors#no-files-were-restored) fehlschlagen. Um Snapshots länger zu behalten, setzen Sie [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays).

27 27 

28<h3 id="rewind-and-summarize">28<h3 id="rewind-and-summarize">

29 Zurückspulen und zusammenfassen29 Rewind und Zusammenfassung

30</h3>30</h3>

31 31 

32Führen Sie `/rewind` aus, oder drücken Sie `Esc` zweimal, wenn das Eingabefeld leer ist, um das Zurückspul-Menü zu öffnen.32Führen Sie `/rewind` aus, oder drücken Sie `Esc` zweimal, wenn das Prompt-Eingabefeld leer ist, um das Rewind-Menü zu öffnen.

33 33 

34<Note>34<Note>

35 Wenn das Eingabefeld Text enthält, löscht doppeltes `Esc` diesen stattdessen, anstatt das Menü zu öffnen. Der gelöschte Text wird in Ihrem Eingabeverlauf gespeichert, sodass Sie `Oben` drücken können, um ihn abzurufen, nachdem Sie das Zurückspul-Menü verlassen haben.35 Wenn das Prompt-Eingabefeld Text enthält, löscht doppeltes `Esc` diesen stattdessen, anstatt das Menü zu öffnen. Der gelöschte Text wird in Ihrem Eingabeverlauf gespeichert, sodass Sie `Up` drücken können, um ihn abzurufen, nachdem Sie im Rewind-Menü fertig sind.

36</Note>36</Note>

37 37 

38Das Zurückspul-Menü listet jede Eingabe auf, die Sie während der Sitzung gesendet haben. Wählen Sie den Punkt aus, auf den Sie einwirken möchten, und wählen Sie dann eine Aktion:38Das Rewind-Menü listet jeden Prompt auf, den Sie während der Sitzung gesendet haben, außer [Nachrichten, die sich einem laufenden Turn angeschlossen haben](#messages-sent-mid-turn-not-checkpointed). Wählen Sie den Punkt aus, auf den Sie einwirken möchten, und wählen Sie dann eine Aktion:

39 39 

40* **Code und Konversation wiederherstellen**: Setzt sowohl Code als auch Konversation auf diesen Punkt zurück40* **Code und Konversation wiederherstellen**: Revert sowohl Code als auch Konversation zu diesem Punkt

41* **Konversation wiederherstellen**: Zurückspulen zu dieser Nachricht, während der aktuelle Code beibehalten wird41* **Konversation wiederherstellen**: Zurückspulen zu dieser Nachricht, während der aktuelle Code beibehalten wird

42* **Code wiederherstellen**: Dateiänderungen rückgängig machen, während die Konversation beibehalten wird42* **Code wiederherstellen**: Dateiänderungen rückgängig machen, während die Konversation beibehalten wird

43* **Von hier aus zusammenfassen**: Komprimieren Sie die Konversation von diesem Punkt an in eine Zusammenfassung und geben Sie Kontextfensterplatz frei43* **Von hier aus zusammenfassen**: Komprimieren Sie die Konversation von diesem Punkt an in eine Zusammenfassung und geben Sie Kontextfensterplatz frei

44* **Bis hier zusammenfassen**: Komprimieren Sie die Konversation vor diesem Punkt in eine Zusammenfassung und behalten Sie spätere Nachrichten intakt44* **Bis hier zusammenfassen**: Komprimieren Sie die Konversation vor diesem Punkt in eine Zusammenfassung und behalten Sie spätere Nachrichten bei

45* **Nie Sinn**: Kehren Sie zur Nachrichtenliste zurück, ohne Änderungen vorzunehmen45* **Abbrechen**: Kehren Sie zur Nachrichtenliste zurück, ohne Änderungen vorzunehmen

46 46 

47Die beiden Code-Wiederherstellungsoptionen werden nur angezeigt, wenn der ausgewählte Checkpoint nachverfolgbare Dateiänderungen zum Rückgängigmachen hat. Wenn nach diesem Punkt keine Dateibearbeitungen erfasst wurden, bietet das Menü nur **Konversation wiederherstellen**, die Zusammenfassungsoptionen und **Nie Sinn** an.47Die beiden Code-Wiederherstellungsoptionen werden nur angezeigt, wenn der ausgewählte Checkpoint nachverfolgbare Dateiänderungen zum Rückgängigmachen hat. Wenn nach diesem Punkt keine Dateibearbeitungen erfasst wurden, bietet das Menü nur **Konversation wiederherstellen**, die Zusammenfassungsoptionen und **Abbrechen**.

48 48 

49Nach dem Wiederherstellen der Konversation oder dem Auswählen von „Von hier aus zusammenfassen" wird die ursprüngliche Eingabe aus der ausgewählten Nachricht in das Eingabefeld wiederhergestellt, sodass Sie sie erneut senden oder bearbeiten können.49Nach dem Wiederherstellen der Konversation oder nach Auswahl von „Von hier aus zusammenfassen" wird der ursprüngliche Prompt aus der ausgewählten Nachricht in das Eingabefeld wiederhergestellt, sodass Sie ihn erneut senden oder bearbeiten können.

50 50 

51Das Auswählen von „Bis hier zusammenfassen" hinterlässt Sie am Ende der Konversation mit leerem Eingabefeld. Bei beiden Zusammenfassungsoptionen wird ein Marker **Zusammengefasste Konversation** in der Konversation angezeigt, wo die komprimierten Nachrichten waren.51Die Auswahl von „Bis hier zusammenfassen" lässt Sie am Ende der Konversation mit leerem Eingabefeld zurück. Bei beiden Zusammenfassungsoptionen wird ein **Zusammengefasste Konversation**-Marker in der Konversation angezeigt, wo die komprimierten Nachrichten waren.

52 52 

53<h4 id="rewind-past-a-cleared-conversation">53<h4 id="rewind-past-a-cleared-conversation">

54 Zurückspulen über eine gelöschte Konversation hinaus54 Rewind über eine gelöschte Konversation hinweg

55</h4>55</h4>

56 56 

57Wenn Sie `/clear` früher im selben Claude Code-Prozess ausgeführt haben, zeigt das Zurückspul-Menü einen zusätzlichen Eintrag oben in der Liste mit der Bezeichnung `/resume <session-id> (vorherige Sitzung)` an. Wählen Sie ihn aus, um die Konversation fortzusetzen, die vor dem Ausführen von `/clear` aktiv war. Der Eintrag ist verfügbar, bis Sie Claude Code beenden oder eine andere Sitzung fortsetzen, und erfordert Claude Code v2.1.191 oder später. In früheren Versionen führen Sie `/resume` aus und wählen die vorherige Sitzung aus der Liste aus.57Wenn Sie `/clear` früher im selben Claude Code-Prozess ausgeführt haben, zeigt das Rewind-Menü einen zusätzlichen Eintrag oben in der Liste mit der Bezeichnung `/resume <session-id> (previous session)`. Wählen Sie ihn aus, um die Konversation fortzusetzen, die vor dem Ausführen von `/clear` aktiv war. Der Eintrag ist verfügbar, bis Sie Claude Code beenden oder eine andere Sitzung fortsetzen, und erfordert Claude Code v2.1.191 oder später. In früheren Versionen führen Sie `/resume` aus und wählen die vorherige Sitzung stattdessen aus der Liste aus.

58 58 

59<h4 id="guide-a-summary">59<h4 id="guide-a-summary">

60 Zusammenfassung lenken60 Eine Zusammenfassung leiten

61</h4>61</h4>

62 62 

63Das Zusammenfassen ändert keine Dateien auf der Festplatte, und die ursprünglichen Nachrichten bleiben im Sitzungstranskript, sodass Claude die Details immer noch referenzieren kann. Um zu lenken, worauf sich die Zusammenfassung konzentriert, markieren Sie eine **Zusammenfassen**-Option mit den Pfeiltasten und geben Sie Anweisungen ein, wo die Zeile **add context (optional)** liest, und drücken Sie dann `Enter`. Das Auswählen der Option mit ihrer Zahlentaste fasst sofort ohne Anweisungen zusammen.63Das Zusammenfassen ändert keine Dateien auf der Festplatte, und die ursprünglichen Nachrichten bleiben im Sitzungstranskript, sodass Claude die Details immer noch referenzieren kann. Um zu lenken, worauf sich die Zusammenfassung konzentriert, markieren Sie eine **Zusammenfassen**-Option mit den Pfeiltasten und geben Sie Anweisungen ein, wo die Zeile **add context (optional)** liest, und drücken Sie dann `Enter`. Die Auswahl der Option mit ihrer Zahlentaste fasst sofort ohne Anweisungen zusammen.

64 64 

65<Note>65<Note>

66 Zusammenfassen hält Sie in derselben Sitzung und komprimiert Kontext, wie ein gezieltes `/compact`. Um abzuzweigen und einen anderen Ansatz zu versuchen, während Sie die ursprüngliche Sitzung intakt bewahren, verwenden Sie stattdessen [`/branch`](/docs/de/sessions#branch-a-session) oder `claude --continue --fork-session`.66 Zusammenfassen hält Sie in derselben Sitzung und komprimiert den Kontext, ähnlich wie ein gezieltes `/compact`. Um abzuzweigen und einen anderen Ansatz zu versuchen, während die ursprüngliche Sitzung intakt bleibt, verwenden Sie stattdessen [`/branch`](/docs/de/sessions#branch-a-session) oder `claude --continue --fork-session`.

67</Note>67</Note>

68 68 

69<h2 id="common-use-cases">69<h2 id="common-use-cases">


110 110 

111Checkpointing verfolgt nur Dateien, die in der aktuellen Sitzung bearbeitet wurden. Manuelle Änderungen, die Sie an Dateien außerhalb von Claude Code vornehmen, und Bearbeitungen aus anderen gleichzeitigen Sitzungen werden normalerweise nicht erfasst, es sei denn, sie ändern zufällig dieselben Dateien wie die aktuelle Sitzung.111Checkpointing verfolgt nur Dateien, die in der aktuellen Sitzung bearbeitet wurden. Manuelle Änderungen, die Sie an Dateien außerhalb von Claude Code vornehmen, und Bearbeitungen aus anderen gleichzeitigen Sitzungen werden normalerweise nicht erfasst, es sei denn, sie ändern zufällig dieselben Dateien wie die aktuelle Sitzung.

112 112 

113<h3 id="messages-sent-mid-turn-not-checkpointed">

114 Nachrichten, die während eines Zuges gesendet werden, werden nicht als Checkpoint erstellt

115</h3>

116 

117Wenn eine Nachricht, die Sie [in die Warteschlange einreihen, während Claude arbeitet](/docs/de/interactive-mode#queue-messages-while-claude-works), Claude innerhalb des laufenden Zuges erreicht, wird sie in diesen Zug integriert, anstatt einen neuen zu starten. Die Nachricht wird in der Unterhaltung angezeigt, aber Claude Code erstellt keinen Checkpoint dafür, und das Zurückspulen-Menü listet sie nicht auf. Eine in die Warteschlange eingereihte Nachricht, die Claude Code als eigenen Zug sendet, erhält wie gewohnt einen Checkpoint.

118 

119Um eine solche Nachricht zu entfernen oder die Bearbeitungen rückgängig zu machen, die Claude nach ihr vorgenommen hat, spulen Sie zu dem Prompt zurück, der den Zug gestartet hat. Dies spult den gesamten Zug zurück, einschließlich der Arbeit, die Claude vor dem Eintreffen Ihrer Nachricht geleistet hat.

120 

113<h3 id="symlinked-and-hard-linked-paths-not-restored">121<h3 id="symlinked-and-hard-linked-paths-not-restored">

114 Symverlinkte und hart verlinkte Pfade werden nicht wiederhergestellt122 Symverlinkte und hart verlinkte Pfade werden nicht wiederhergestellt

115</h3>123</h3>

Details

135 Diese Konfiguration reicht für eine funktionierende Anmeldeschleife mit dem Standard-Bedrock-Modellkatalog aus. Sobald es läuft, fügen Sie Pro-Gruppen-RBAC und verwaltete Einstellungen über [`managed.policies`](/docs/de/claude-apps-gateway-config#managed) hinzu, Telemetrie-Verteilung über [`telemetry`](/docs/de/claude-apps-gateway-config#telemetry) und Multi-Upstream-Failover, bereitgestellte Durchsatz-ARNs oder Nicht-US-Regionen über [`models`](/docs/de/claude-apps-gateway-config#models).135 Diese Konfiguration reicht für eine funktionierende Anmeldeschleife mit dem Standard-Bedrock-Modellkatalog aus. Sobald es läuft, fügen Sie Pro-Gruppen-RBAC und verwaltete Einstellungen über [`managed.policies`](/docs/de/claude-apps-gateway-config#managed) hinzu, Telemetrie-Verteilung über [`telemetry`](/docs/de/claude-apps-gateway-config#telemetry) und Multi-Upstream-Failover, bereitgestellte Durchsatz-ARNs oder Nicht-US-Regionen über [`models`](/docs/de/claude-apps-gateway-config#models).

136 136 

137 <Note>137 <Note>

138 Der Amazon-Bedrock-Upstream benötigt einen AWS-Principal mit `bedrock:InvokeModel` und `bedrock:InvokeModelWithResponseStream` auf beiden `inference-profile/us.anthropic.*`-ARNs und den zugrunde liegenden `foundation-model/anthropic.*`-ARNs, und Anthropics einmalige Anwendungsform muss für das Konto aus der Bedrock-Konsole des Modellkatalogs eingereicht werden. Stellen Sie die Anmeldedaten mit IRSA auf EKS, einer ECS-Task-Rolle oder einem EC2-Instance-Profil bereit, anstatt statische Schlüssel zu verwenden. Die [`upstreams`-Referenz](/docs/de/claude-apps-gateway-config#upstreams) hat die vollständigen IAM-Details, die Cloud-übergreifende Anmeldedaten-Matrix und die `auth`-Blöcke für die anderen Anbieter.138 Der Amazon-Bedrock-Upstream benötigt einen AWS-Principal mit `bedrock:InvokeModel` und `bedrock:InvokeModelWithResponseStream` auf beiden `inference-profile/us.anthropic.*`-ARNs und den zugrunde liegenden `foundation-model/anthropic.*`-ARNs. Er benötigt auch Anthropics einmalige Anwendungsform, die für das Konto aus der Bedrock-Konsole des Modellkatalogs eingereicht werden muss. Stellen Sie die Anmeldedaten mit IRSA auf EKS, einer ECS-Task-Rolle oder einem EC2-Instance-Profil bereit, anstatt statische Schlüssel zu verwenden. Die [`upstreams`-Referenz](/docs/de/claude-apps-gateway-config#upstreams) hat die vollständigen IAM-Details, die Cloud-übergreifende Anmeldedaten-Matrix und die `auth`-Blöcke für die anderen Anbieter.

139 </Note>139 </Note>

140 </Step>140 </Step>

141 141 


259 259 

260Entwickler verbinden sich von ihren eigenen Laptops mit einer Browser-Anmeldung, indem sie ihr Unternehmensarbeitskonto verwenden. Sie benötigen kein claude.ai-Konto, keinen API-Schlüssel und kein Abonnement, da Anfragen an das Modell über das Gateway mit den Upstream-Anmeldedaten der Organisation gehen. Die Verbindung wird durch die [clientseitigen verwalteten Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) gesteuert, die Sie über MDM pushen, daher gibt es keine manuelle Einrichtung auf der Entwicklerseite; dieser Abschnitt behandelt, was der Admin konfiguriert.260Entwickler verbinden sich von ihren eigenen Laptops mit einer Browser-Anmeldung, indem sie ihr Unternehmensarbeitskonto verwenden. Sie benötigen kein claude.ai-Konto, keinen API-Schlüssel und kein Abonnement, da Anfragen an das Modell über das Gateway mit den Upstream-Anmeldedaten der Organisation gehen. Die Verbindung wird durch die [clientseitigen verwalteten Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) gesteuert, die Sie über MDM pushen, daher gibt es keine manuelle Einrichtung auf der Entwicklerseite; dieser Abschnitt behandelt, was der Admin konfiguriert.

261 261 

262Die CLI fingerabdruckt das TLS-Blatt-Zertifikat des Gateways beim ersten Verbinden und heftet es pro Hostname an. Veröffentlichen Sie den erwarteten SHA-256-Fingerabdruck zusammen mit der Gateway-URL, damit Entwickler etwas zum Vergleichen haben. Die `/login`-Eingabeaufforderung zeigt die ersten 16 Zeichen des Fingerabdrucks als Kleinbuchstaben-Hexadezimal ohne Doppelpunkte. Um den vollständigen Fingerabdruck in dieser Form aus der Zertifikatsdatei auszudrucken, führen Sie aus:262Die CLI fingerabdruckt das TLS-Blatt-Zertifikat des Gateways beim ersten Verbinden und heftet es pro Hostname an. Sie überprüft diesen Pin erneut während der Anmeldung, bei stillen Sitzungsaktualisierungen und beim Abrufen verwalteter Einstellungen, während Inferenzanfragen die standardmäßige TLS-Validierung ohne Pin verwenden. Anfragen, die über einen HTTPS-Proxy weitergeleitet werden, überspringen die Pin-Überprüfung, daher fügen Sie den Gateway-Host zu `NO_PROXY` hinzu, um sie direkt zu halten.

263 

264Veröffentlichen Sie den erwarteten SHA-256-Fingerabdruck zusammen mit der Gateway-URL, damit Entwickler etwas zum Vergleichen haben. Die `/login`-Eingabeaufforderung zeigt die ersten 16 Zeichen des Fingerabdrucks als Kleinbuchstaben-Hexadezimal ohne Doppelpunkte. Um den vollständigen Fingerabdruck in dieser Form aus der Zertifikatsdatei auszudrucken, führen Sie aus:

263 265 

264```bash theme={null}266```bash theme={null}

265openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'267openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'


267 269 

268Wenn das Zertifikat rotiert, sieht jeder Entwickler die Vertrauensaufforderung erneut, daher behandeln Sie Rotationen als geplantes Ereignis und veröffentlichen Sie den Fingerabdruck erneut. Wenn Ihre Gateway-Richtlinie [Einstellungen enthält, die Genehmigung benötigen](/docs/de/server-managed-settings#security-approval-dialogs), sieht der Entwickler auch diesen Genehmigungsdialog erneut nach Akzeptanz des neuen Zertifikats, da Claude Code die [Genehmigungserinnerung](/docs/de/server-managed-settings#approval-memory) an das angeheftete Zertifikat bindet.270Wenn das Zertifikat rotiert, sieht jeder Entwickler die Vertrauensaufforderung erneut, daher behandeln Sie Rotationen als geplantes Ereignis und veröffentlichen Sie den Fingerabdruck erneut. Wenn Ihre Gateway-Richtlinie [Einstellungen enthält, die Genehmigung benötigen](/docs/de/server-managed-settings#security-approval-dialogs), sieht der Entwickler auch diesen Genehmigungsdialog erneut nach Akzeptanz des neuen Zertifikats, da Claude Code die [Genehmigungserinnerung](/docs/de/server-managed-settings#approval-memory) an das angeheftete Zertifikat bindet.

269 271 

270Nach der Anmeldung zeigt die [Modellauswahl](/docs/de/model-config) die Modelle in der `availableModels`-Zulassungsliste des Entwicklers, verwaltete Einstellungen werden beim Start angewendet und stündlich aktualisiert, und Telemetrie wird an Ihren Collector weitergeleitet. Sitzungen werden vor Ablauf von `ttl_hours` stillschweigend aktualisiert, und eine fehlgeschlagene Aktualisierung nach IdP-Entbereitstellung fordert eine erneute Anmeldung auf.272Sobald sich der Entwickler angemeldet hat, zeigt die [Modellauswahl](/docs/de/model-config) die Modelle in der `availableModels`-Zulassungsliste des Entwicklers. Verwaltete Einstellungen werden beim Start angewendet und stündlich aktualisiert, und Telemetrie wird an Ihren Collector weitergeleitet.

273 

274Sitzungen werden vor Ablauf von `ttl_hours` stillschweigend aktualisiert. Wenn eine Aktualisierung nach IdP-Entbereitstellung fehlschlägt, fordert Claude Code den Entwickler auf, sich erneut anzumelden.

271 275 

272<h3 id="set-the-gateway-url">276<h3 id="set-the-gateway-url">

273 Gateway-URL festlegen277 Gateway-URL festlegen


283}287}

284```288```

285 289 

286Der Entwickler drückt Enter, um sich zu verbinden. Die [Fingerabdruck-Eingabeaufforderung beim ersten Verbinden](#connect-developers) wird immer noch angezeigt.290Der Entwickler drückt Enter, um sich zu verbinden. Die [Fingerabdruck-Eingabeaufforderung beim ersten Verbinden](#connect-developers) wird immer noch angezeigt. Sobald die Datei auf einer Maschine vorhanden ist, sieht ein Entwickler, der die Gateway-Anmeldung nicht abgeschlossen hat, eine der unter [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschriebenen Meldungen. Entwickler, die einen Cloud-Anbieter über eine Umgebungsvariable wie `CLAUDE_CODE_USE_BEDROCK` auswählen, benötigen die Gateway-Anmeldung nicht.

287 291 

288Ein Entwickler kann dies nicht manuell einrichten. Die Anmeldungsauswahl hat keine Gateway-Option, und `forceLoginGatewayUrl` wird in den eigenen Einstellungsdateien eines Entwicklers ignoriert. `forceLoginMethod` allein, ohne URL, lässt den Entwickler bei einer „Kontaktieren Sie Ihren IT-Administrator"-Nachricht. Die Anmeldeschlüssel gehören in die Datei, die Sie auf Maschinen pushen, nicht in den `managed.policies[].cli`-Block des Gateways, der nur bereits verbundene Clients erreicht.292Ein Entwickler kann dies nicht manuell einrichten. Die Anmeldungsauswahl hat keine Gateway-Option, und `forceLoginGatewayUrl` wird in den eigenen Einstellungsdateien eines Entwicklers ignoriert. `forceLoginMethod` allein, ohne URL, lässt den Entwickler bei einer „Kontaktieren Sie Ihren IT-Administrator"-Nachricht. Die Anmeldeschlüssel gehören in die Datei, die Sie auf Maschinen pushen, nicht in den `managed.policies[].cli`-Block des Gateways, der nur bereits verbundene Clients erreicht.

289 293 


419Diese Garantien gelten für jede Sitzung, die sich über `/login` angemeldet hat. Die eingebetteten Sitzungen, die Claude Desktop startet, erhalten ihre Richtlinie wie in [Richtlinie an Claude Desktop-Sitzungen liefern](#deliver-policy-to-claude-desktop-sessions) beschrieben, und die Telemetrie-Aufzählung sagt, wohin ihre Exporte gehen.423Diese Garantien gelten für jede Sitzung, die sich über `/login` angemeldet hat. Die eingebetteten Sitzungen, die Claude Desktop startet, erhalten ihre Richtlinie wie in [Richtlinie an Claude Desktop-Sitzungen liefern](#deliver-policy-to-claude-desktop-sessions) beschrieben, und die Telemetrie-Aufzählung sagt, wohin ihre Exporte gehen.

420 424 

421* **Modellzugriff**: Anfragen für Modelle, die die Richtlinie nicht gewährt, geben 400 zurück, und die `/model`-Auswahl wird auf die `availableModels`-Zulassungsliste der Richtlinie gefiltert. Setzen Sie [`enforceAvailableModels: true`](/docs/de/model-config#default-model-behavior) in der Richtlinie, damit die Standard-Option zu einem Modell in `availableModels` aufgelöst wird, anstatt zu Claude Codes integriertem Standard; ohne sie bleibt Standard wählbar und wird bei der Anfrageverarbeitung abgelehnt, wenn dieses Modell nicht gewährt wird.425* **Modellzugriff**: Anfragen für Modelle, die die Richtlinie nicht gewährt, geben 400 zurück, und die `/model`-Auswahl wird auf die `availableModels`-Zulassungsliste der Richtlinie gefiltert. Setzen Sie [`enforceAvailableModels: true`](/docs/de/model-config#default-model-behavior) in der Richtlinie, damit die Standard-Option zu einem Modell in `availableModels` aufgelöst wird, anstatt zu Claude Codes integriertem Standard; ohne sie bleibt Standard wählbar und wird bei der Anfrageverarbeitung abgelehnt, wenn dieses Modell nicht gewährt wird.

422* **Telemetrie-Ziel**: In Sitzungen, die sich über `/login` angemeldet haben, sendet die CLI ihre OTLP/HTTP-Exporte unabhängig von einem lokal gesetzten `OTEL_EXPORTER_OTLP_ENDPOINT` an das Gateway, und das Gateway leitet sie an die Ziele in [`telemetry.forward_to`](/docs/de/claude-apps-gateway-config#telemetry) weiter. In den eingebetteten Sitzungen, die [Claude Desktop startet](#connect-claude-desktop), sendet die CLI ihre Exporte an den konfigurierten `OTEL_EXPORTER_OTLP_ENDPOINT`. Die CLI hängt das Gateway-Sitzungstoken an diese Exporte nur an, wenn dieser Endpunkt auf das Gateway selbst zeigt. Ohne konfiguriertes Ziel für ein Signal akzeptiert das Gateway es und verwirft es, daher wenn Sie bereits Claude Code-Telemetrie direkt erfassen, fügen Sie Ihren Collector als `forward_to`-Ziel hinzu.426* **Telemetrie-Ziel**: In Sitzungen, die sich über `/login` angemeldet haben, sendet die CLI ihre OTLP/HTTP-Exporte an das Gateway statt an einen lokal gesetzten `OTEL_EXPORTER_OTLP_ENDPOINT`, es sei denn, eine Richtlinie [benennt Ihren Collector als Endpunkt](/docs/de/claude-apps-gateway-config#export-directly-to-your-collector). Das Gateway leitet die Exporte, die es empfängt, an die Ziele in [`telemetry.forward_to`](/docs/de/claude-apps-gateway-config#telemetry) weiter.

423* **Anmeldedaten**: Das Gateway-Token ist die einzige Anmeldedaten der Sitzung. `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `apiKeyHelper`, [Anthropic-Profile](/docs/de/authentication#anthropic-profiles-and-federation-credentials) und jede frühere claude.ai-Anmeldung werden ignoriert, während angemeldet, daher müssen sich Entwickler nicht zuerst von claude.ai abmelden.427 * In den eingebetteten Sitzungen, die [Claude Desktop startet](#connect-claude-desktop), sendet die CLI ihre Exporte an den konfigurierten `OTEL_EXPORTER_OTLP_ENDPOINT`. Die CLI hängt das Gateway-Sitzungstoken an diese Exporte nur an, wenn dieser Endpunkt auf das Gateway selbst zeigt.

428 * Ohne konfiguriertes Ziel für ein Signal akzeptiert das Gateway es und verwirft es.

429 * Wenn Sie bereits Claude Code-Telemetrie direkt erfassen, fügen Sie Ihren Collector als `forward_to`-Ziel hinzu, oder benennen Sie ihn in einer Richtlinie, um das Relay zu überspringen.

430* **Anmeldedaten**: Das Gateway-Token ist die einzige Anmeldedaten der Sitzung. [Anthropic-Profile](/docs/de/authentication#anthropic-profiles-and-federation-credentials) und jede frühere claude.ai-Anmeldung werden ignoriert, während angemeldet, daher müssen sich Entwickler nicht zuerst von claude.ai abmelden. Für einen konfigurierten `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder `apiKeyHelper`-Anmeldedaten siehe [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

424* **Verwaltete Einstellungen**: Gesperrte Schlüssel können nicht lokal überschrieben werden. Die CLI wendet die Richtlinie beim Start an und wendet Änderungen bei jeder stündlichen Abfrage an, abgesehen von den [Änderungen, die nur beim nächsten Start angewendet werden](/docs/de/server-managed-settings#fetch-and-caching-behavior).431* **Verwaltete Einstellungen**: Gesperrte Schlüssel können nicht lokal überschrieben werden. Die CLI wendet die Richtlinie beim Start an und wendet Änderungen bei jeder stündlichen Abfrage an, abgesehen von den [Änderungen, die nur beim nächsten Start angewendet werden](/docs/de/server-managed-settings#fetch-and-caching-behavior).

425* **Startup**: Angemeldete Sitzungen beenden sich beim Start mit einem Fehler nach etwa 10 Sekunden, wenn das Gateway unerreichbar ist, anstatt ohne ihre Einstellungen zu starten.432* **Startup mit dem Gateway unerreichbar**: Angemeldete Sitzungen beenden sich beim Start mit einem Fehler nach etwa 10 Sekunden, anstatt ohne ihre Einstellungen zu starten.

433* **Startup nach dem Gateway beendet die Sitzung**: siehe [Fail-Closed-Startup erzwingen](/docs/de/server-managed-settings#enforce-fail-closed-startup) für die Starts, die abgemeldet vom Gateway öffnen, und die, die beenden, wenn das Gateway mit einem `401` antwortet.

426* **Entbereitstellung**: Eine Sitzung, deren Benutzer im IdP deaktiviert ist, läuft innerhalb von `ttl_hours` ab, wenn die nächste Aktualisierung fehlschlägt.434* **Entbereitstellung**: Eine Sitzung, deren Benutzer im IdP deaktiviert ist, läuft innerhalb von `ttl_hours` ab, wenn die nächste Aktualisierung fehlschlägt.

427 435 

428<h3 id="what-the-organization-can-see">436<h3 id="what-the-organization-can-see">


449| Pro-Benutzer- und Pro-Gruppen-Ausgabenlimits | Verfügbar | Siehe [Ausgabenlimits](/docs/de/claude-apps-gateway-spend-limits) |457| Pro-Benutzer- und Pro-Gruppen-Ausgabenlimits | Verfügbar | Siehe [Ausgabenlimits](/docs/de/claude-apps-gateway-spend-limits) |

450| Serverseitige Websuche | Nicht verfügbar | Die CLI kann nicht sehen, welchen Upstream-Anbieter das Gateway leitet, daher kann sie Websuche-Unterstützung nicht überprüfen und deaktiviert WebSearch auf Gateway-Sitzungen |458| Serverseitige Websuche | Nicht verfügbar | Die CLI kann nicht sehen, welchen Upstream-Anbieter das Gateway leitet, daher kann sie Websuche-Unterstützung nicht überprüfen und deaktiviert WebSearch auf Gateway-Sitzungen |

451| [Remote Control](/docs/de/remote-control) | Nicht verfügbar | Die CLI zeigt [einen Fehler an, der das Gateway benennt](/docs/de/errors#remote-control-requires-the-anthropic-api) |459| [Remote Control](/docs/de/remote-control) | Nicht verfügbar | Die CLI zeigt [einen Fehler an, der das Gateway benennt](/docs/de/errors#remote-control-requires-the-anthropic-api) |

452| Standard-Prompt-Caching | Verfügbar | Das Gateway leitet `cache_control`-Breakpoints an jeden Upstream weiter, und die CLI markiert den [Systemkontext, den sie mitten im Gespräch anhängt](/docs/de/prompt-caching#where-the-cache-lives) zum Caching auf Gateway-Sitzungen, wie auf jedem anderen Anbieter und jeder anderen Verbindung. |460| [`/design-sync`](/docs/de/commands#all-commands) und `/design-login` | Nicht verfügbar | Beide benötigen claude.ai, das die CLI auf Gateway-Sitzungen nicht kontaktiert, daher erscheint keiner der Befehle dort |

461| Funktionen, die Abrufen von Feature-Flags benötigen, wie `/import` und `claude import` | Nicht verfügbar | Die CLI überspringt den Flag-Abruf auf Gateway-Sitzungen. [Funktionen, die Abrufen von Feature-Flags benötigen](/docs/de/env-vars#features-that-need-feature-flag-fetching) listet auf, was das deaktiviert |

462| Standard-Prompt-Caching | Verfügbar | Das Gateway leitet `cache_control`-Breakpoints an jeden Upstream weiter. [Wo der Cache lebt](/docs/de/prompt-caching#where-the-cache-lives) behandelt, welche Blöcke die CLI markiert, einschließlich des Systemkontexts, den sie mitten im Gespräch anhängt |

453| 1-Stunden-Cache-TTL | Nicht verfügbar | Die CLI lässt die Extended-Cache-TTL-Beta auf Gateway-Sitzungen aus, da nicht jeder Upstream, zu dem das Gateway leiten kann, die 1-Stunden-TTL unterstützt, daher verwendet Prompt-Caching über das Gateway die 5-Minuten-TTL; siehe die Beta-Header-Notiz oben |463| 1-Stunden-Cache-TTL | Nicht verfügbar | Die CLI lässt die Extended-Cache-TTL-Beta auf Gateway-Sitzungen aus, da nicht jeder Upstream, zu dem das Gateway leiten kann, die 1-Stunden-TTL unterstützt, daher verwendet Prompt-Caching über das Gateway die 5-Minuten-TTL; siehe die Beta-Header-Notiz oben |

454| Auto-Modus | Verfügbar | Folgt den [Regeln für Drittanbieter-Anbieter](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): Nur die Modelle, die auf Drittanbieter-Anbietern berechtigt sind, können es verwenden. Vor v2.1.207 erforderte Auto-Modus auf Gateway-Sitzungen das Setzen von `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, lieferbar über den verwalteten Richtlinien-`env`-Block |464| Auto-Modus | Verfügbar | Folgt den [Regeln für Drittanbieter-Anbieter](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): Nur die Modelle, die auf Drittanbieter-Anbietern berechtigt sind, können es verwenden. Vor v2.1.207 erforderte Auto-Modus auf Gateway-Sitzungen das Setzen von `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, lieferbar über den verwalteten Richtlinien-`env`-Block |

455| First-Party-Only-Optimierungen wie globaler Cache-Umfang und Token-effiziente Tools | Nicht verfügbar | Die CLI aktiviert sie nicht auf Gateway-Sitzungen; siehe die Beta-Header-Notiz oben |465| First-Party-Only-Optimierungen wie globaler Cache-Umfang und Token-effiziente Tools | Nicht verfügbar | Die CLI aktiviert sie nicht auf Gateway-Sitzungen; siehe die Beta-Header-Notiz oben |

Details

32 32 

33* [`admin`](#admin): Admin-API-Authentifizierung und Aufbewahrung für Ausgabenlimits33* [`admin`](#admin): Admin-API-Authentifizierung und Aufbewahrung für Ausgabenlimits

34* [`enforcement`](#enforcement): Ausgabenlimit-Verhalten bei Fehler-offen oder Fehler-geschlossen34* [`enforcement`](#enforcement): Ausgabenlimit-Verhalten bei Fehler-offen oder Fehler-geschlossen

35* [`pricing`](#pricing): vertraglich vereinbarte Sätze und ein Rabattmultiplikator für das Ausgabenmessgerät35* [`pricing`](#pricing): vertraglich vereinbarte Sätze und ein Rabattmultiplikator für das Ausgabenmessgerät und für die Kostenzahlen, die Entwickler sehen

36* [`models`](#models) und `auto_include_builtin_models`: von Admin kuratierte Modellliste und Pro-Upstream-IDs36* [`models`](#models) und `auto_include_builtin_models`: von Admin kuratierte Modellliste und Pro-Upstream-IDs

37* [`managed`](#managed): verwaltete Einstellungsrichtlinien nach IdP-Gruppe37* [`managed`](#managed): verwaltete Einstellungsrichtlinien nach IdP-Gruppe

38* [`telemetry`](#telemetry): OTLP-Weiterleitung an Ihren Observability-Stack38* [`telemetry`](#telemetry): OTLP-Weiterleitung an Ihren Observability-Stack


60Der `listen`-Block steuert, wo das Gateway bereitgestellt wird: die Bindungsadresse und der Port, der extern sichtbare Ursprung und optionale TLS-Beendigung.60Der `listen`-Block steuert, wo das Gateway bereitgestellt wird: die Bindungsadresse und der Port, der extern sichtbare Ursprung und optionale TLS-Beendigung.

61 61 

62| Feld | Erforderlich | Beschreibung |62| Feld | Erforderlich | Beschreibung |

63| ---------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |63| ---------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `host` | Nein | Bindungsadresse. Standard `0.0.0.0`. |64| `host` | Nein | Bindungsadresse. Standard `0.0.0.0`. |

65| `port` | Nein | Bindungsport. Standard `8080`. |65| `port` | Nein | Bindungsport. Standard `8080`. |

66| `public_url` | Sofern `host` nicht Loopback ist | Der extern sichtbare `https://`-Ursprung, der zum Erstellen des IdP-`redirect_uri` und der Erkennungsmetadaten verwendet wird. Erforderlich, wenn `host` keine Loopback-Adresse ist, unabhängig davon, ob TLS bei einem Proxy wie ALB, Ingress oder Cloud Run oder beim Gateway selbst über `tls` beendet wird, da das Gateway seinen eigenen Ursprung niemals von `X-Forwarded-*`-Headern ableitet; diese sind Client-spoofbar. Der Start schlägt ohne sie fehl. `trusted_proxies` unten regelt nur die Client-IP-Auflösung. Auch erforderlich, um [Telemetrie](#telemetry) zu aktivieren, da das Gateway den OTLP-Endpunkt, den es an Clients pusht, aus dieser URL erstellt. |66| `public_url` | Sofern `host` nicht loopback ist | Der extern sichtbare `https://`-Ursprung, der zum Erstellen des IdP-`redirect_uri` und der Discovery-Metadaten verwendet wird. Erforderlich, wenn `host` keine Loopback-Adresse ist, unabhängig davon, ob TLS bei einem Proxy wie ALB, Ingress oder Cloud Run oder beim Gateway selbst über `tls` beendet wird, da das Gateway seinen eigenen Ursprung niemals aus `X-Forwarded-*`-Headern ableitet; diese können vom Client gefälscht werden. Der Start schlägt ohne diese fehl. `trusted_proxies` unten regelt nur die Client-IP-Auflösung. Auch erforderlich, um [Telemetrie](#telemetry) zu aktivieren, da das Gateway den OTLP-Endpunkt, den es an Clients überträgt, aus dieser URL erstellt. |

67| `tls.cert` / `tls.key` | Nein | PEM-Pfade, wenn das Gateway selbst TLS beendet |67| `tls.cert` / `tls.key` | Nein | PEM-Pfade, wenn das Gateway TLS selbst beendet |

68| `trusted_proxies` | Nein | CIDRs oder IPs von Load Balancern vor dem Gateway. Wenn gesetzt, vertraut das Gateway `X-Forwarded-For` nur von diesen Peers und zeichnet die echte Client-IP für Pro-IP-Rate-Limiting und Audit auf. Äquivalent zu nginx `set_real_ip_from`. |68| `trusted_proxies` | Nein | CIDRs oder IPs von Load Balancern vor dem Gateway. Wenn gesetzt, vertraut das Gateway `X-Forwarded-For` nur von diesen Peers und zeichnet die echte Client-IP für Pro-IP-Ratenbegrenzung und Audit auf. Äquivalent zu nginx `set_real_ip_from`. `X-Forwarded-For`-Einträge, die als `ipv4:port` oder `[ipv6]:port` geschrieben sind, wie es einige Load Balancer tun, werden mit dem Port gelesen, der gelöscht wird. Eine IPv6-Adresse mit angehängtem Port und ohne Klammern kann als eine andere Adresse gelesen werden oder überhaupt nicht gelesen werden, daher deaktivieren Sie die Port-Option auf jedem Proxy, der diese Form schreibt. |

69 69 

70<h3 id="oidc">70<h3 id="oidc">

71 `oidc`71 `oidc`


73 73 

74Der `oidc`-Block verbindet das Gateway mit Ihrem Identitätsanbieter und entscheidet, wer sich anmelden kann. Er benennt den Aussteller und OAuth-Client, ordnet die Ansprüche zu, die E-Mail und Gruppen enthalten, und beschränkt die Anmeldung nach E-Mail-Domäne oder Gruppe.74Der `oidc`-Block verbindet das Gateway mit Ihrem Identitätsanbieter und entscheidet, wer sich anmelden kann. Er benennt den Aussteller und OAuth-Client, ordnet die Ansprüche zu, die E-Mail und Gruppen enthalten, und beschränkt die Anmeldung nach E-Mail-Domäne oder Gruppe.

75 75 

76OpenID Connect (OIDC) ist das SSO-Protokoll, das das Gateway mit Ihrem Identitätsanbieter verwendet; siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup) für das, was Sie auf der IdP-Seite registrieren müssen.76OpenID Connect (OIDC) ist das SSO-Protokoll, das das Gateway mit Ihrem Identitätsanbieter verwendet; siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup) für das, was auf der IdP-Seite registriert werden muss.

77 77 

78| Feld | Erforderlich | Beschreibung |78| Feld | Erforderlich | Beschreibung |

79| ------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |79| ------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

80| `issuer` | Ja | OIDC-Erkennungsbasis. Muss Erkennung unter `/.well-known/openid-configuration` bereitstellen. Verwenden Sie HTTPS in der Produktion; das Gateway akzeptiert einen `http://`-Aussteller. Ein Loopback-Aussteller wie `http://localhost:8081` wird vom [SSRF-Schutz](/docs/de/claude-apps-gateway-deploy#threat-model-summary) abgelehnt, es sei denn, `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` ist in der Gateway-Umgebung gesetzt. |80| `issuer` | Ja | OIDC-Discovery-Basis. Muss Discovery unter `/.well-known/openid-configuration` bereitstellen. Verwenden Sie HTTPS in der Produktion; das Gateway akzeptiert einen `http://`-Aussteller. Ein Loopback-Aussteller wie `http://localhost:8081` wird vom [SSRF-Schutz](/docs/de/claude-apps-gateway-deploy#threat-model-summary) abgelehnt, sofern `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` in der Umgebung des Gateways nicht gesetzt ist. |

81| `client_id` / `client_secret` | Ja | Aus Ihrer OAuth-Client-Registrierung |81| `client_id` / `client_secret` | Ja | Aus Ihrer OAuth-Client-Registrierung |

82| `allowed_email_domains` | Nein | Lehnen Sie id\_tokens ab, deren `email`-Anspruch nicht in einer dieser Domänen liegt, Groß-/Kleinschreibung ignoriert. Verteidigungstiefe gegen Multi-Tenant-IdP-Fehlkonfiguration. Unabhängig von dieser Einstellung wird ein id\_token, dessen `email_verified`-Anspruch explizit `false` ist, immer abgelehnt. |82| `allowed_email_domains` | Nein | Lehnen Sie id\_tokens ab, deren `email`-Anspruch nicht in einer dieser Domänen liegt, Groß-/Kleinschreibung wird ignoriert. Defense-in-Depth gegen Multi-Tenant-IdP-Fehlkonfiguration. Unabhängig von dieser Einstellung wird ein id\_token, dessen `email_verified`-Anspruch explizit `false` ist, immer abgelehnt. |

83| `allowed_groups` | Nein | Beschränken Sie die Anmeldung auf Mitglieder dieser IdP-Gruppen, abgeglichen gegen `groups_claim`. Ein Benutzer in einer zulässigen E-Mail-Domäne, aber in keiner dieser Gruppen, wird abgelehnt. Erfordert, dass der IdP den Gruppenanspruch ausgibt. Der Abgleich ist ein exakter, Groß-/Kleinschreibung beachtender Zeichenfolgenvergleich gegen die Werte in diesem Anspruch, und das Gateway erweitert verschachtelte Gruppen nicht: Um Mitglieder einer Untergruppe zuzulassen, listen Sie die Untergruppe hier auf oder konfigurieren Sie den IdP, um flache Mitgliedschaft auszugeben. |83| `allowed_groups` | Nein | Beschränken Sie die Anmeldung auf Mitglieder dieser IdP-Gruppen, abgeglichen gegen `groups_claim`. Ein Benutzer in einer zulässigen E-Mail-Domäne, aber in keiner dieser Gruppen, wird abgelehnt. Erfordert, dass der IdP den Gruppenanspruch ausgibt. Der Abgleich ist ein exakter, Groß-/Kleinschreibung beachtender Zeichenfolgenvergleich gegen die Werte in diesem Anspruch, und das Gateway erweitert verschachtelte Gruppen nicht: Um Mitglieder einer Untergruppe zuzulassen, listen Sie die Untergruppe hier auf oder konfigurieren Sie den IdP so, dass er flache Mitgliedschaften ausgibt. |

84| `groups_claim` | Nein | Welcher id\_token-Anspruch trägt die Gruppenmitgliedschaft. Standard `groups`. Microsoft Entra gibt App-Rollen unter `roles` aus. Akzeptiert einen flachen Schlüssel oder einen RFC 6901 JSON Pointer wie `/resource_access/gateway/roles` für verschachtelte Ansprüche. |84| `groups_claim` | Nein | Welcher id\_token-Anspruch trägt die Gruppenmitgliedschaft. Standard `groups`. Microsoft Entra gibt App-Rollen unter `roles` aus. Akzeptiert einen flachen Schlüssel oder einen RFC-6901-JSON-Pointer wie `/resource_access/gateway/roles` für verschachtelte Ansprüche. |

85| `google_groups` | Nein | Schlagen Sie die Gruppen des angemeldeten Benutzers über die Google Workspace Admin SDK Directory API nach, da Googles id\_token keinen Gruppenanspruch trägt. Setzen Sie `service_account_json_path` auf eine Service-Account-Schlüsseldatei mit Domain-weiter Delegation im Bereich `https://www.googleapis.com/auth/admin.directory.group.readonly` und `admin_email` auf einen Workspace-Administrator, den der Service Account annimmt; die Directory API erfordert ein echtes Admin-Subjekt. Die E-Mail-Adressen jeder Benutzergruppe werden zu ihrem Gruppenanspruch, sodass `allowed_groups` und `managed.policies.match.groups` auf Gruppen-E-Mails abgeglichen werden. |85| `google_groups` | Nein | Schlagen Sie die Gruppen des angemeldeten Benutzers über die Google Workspace Admin SDK Directory API nach, da Googles id\_token keinen Gruppenanspruch trägt. Setzen Sie `service_account_json_path` auf eine Service-Account-Schlüsseldatei mit Domain-weiter Delegierung im Bereich `https://www.googleapis.com/auth/admin.directory.group.readonly`, und `admin_email` auf einen Workspace-Administrator, den der Service Account annimmt; die Directory API erfordert ein echtes Admin-Subjekt. Die E-Mail-Adressen jeder Benutzergruppe werden zu ihrem Gruppenanspruch, daher stimmen `allowed_groups` und `managed.policies.match.groups` mit Gruppen-E-Mails überein. |

86| `email_claim` | Nein | Welcher id\_token-Anspruch trägt die E-Mail des Benutzers. Standard `email`. Einige IdPs wie ADFS und Entra B2C geben stattdessen `upn` oder `preferred_username` aus. Akzeptiert einen flachen Schlüssel, einen JSON Pointer oder eine Liste von Fallback-Schlüsseln, wobei der erste vorhandene Schlüssel verwendet wird. |86| `email_claim` | Nein | Welcher id\_token-Anspruch trägt die E-Mail des Benutzers. Standard `email`. Einige IdPs wie ADFS und Entra B2C geben stattdessen `upn` oder `preferred_username` aus. Akzeptiert einen flachen Schlüssel, einen JSON-Pointer oder eine Liste von Fallback-Schlüsseln, wobei der erste vorhandene Schlüssel verwendet wird. |

87| `scopes` | Nein | Vollständige Überschreibung der OIDC-Bereiche, die das Gateway anfordert. Standard `[openid, profile, email, offline_access]`. Setzen Sie, wenn Ihr IdP Bereiche ablehnt, die er nicht erkennt, oder einen benutzerdefinierten Bereich erfordert, um Gruppen oder E-Mail auszugeben. Muss `openid` enthalten. Das Löschen von `offline_access` deaktiviert Aktualisierungstoken, sodass Entwickler die Browser-Anmeldung alle `session.ttl_hours` erneut ausführen. Siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup) für Pro-IdP-Bereich-Rezepte wie Googles Aktualisierungstoken-Fluss. |87| `scopes` | Nein | Vollständige Überschreibung der OIDC-Bereiche, die das Gateway anfordert. Standard `[openid, profile, email, offline_access]`. Setzen Sie, wenn Ihr IdP Bereiche ablehnt, die er nicht erkennt, oder einen benutzerdefinierten Bereich erfordert, um Gruppen oder E-Mail auszugeben. Muss `openid` enthalten. Das Löschen von `offline_access` deaktiviert Aktualisierungstoken, daher führen Entwickler die Browser-Anmeldung alle `session.ttl_hours` erneut aus. Siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup) für IdP-spezifische Bereichsrezepte wie Googles Aktualisierungstoken-Flow. |

88| `extra_auth_params` | Nein | Zusätzliche Abfrageparameter, die wörtlich an die IdP-Autorisierungsanfrage angehängt werden. Dies ist der Überschreibungsmechanismus für IdP-spezifisches Verhalten, wie `access_type: offline` für Google-Aktualisierungstoken, `domain_hint` für einige Entra-Mandanten oder `acr_values` für Step-up-Flüsse. Kann die vom Gateway verwalteten Protokollparameter nicht überschreiben: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` und `client_id`. |88| `scope_on_refresh` | Nein | Senden Sie auch `scope` mit der gleichen Liste wie die Anmeldeanfrage, wenn das Gateway ein Aktualisierungstoken austauscht. Standard `false`: die Aktualisierungsanfrage lässt `scope` weg. Die meisten IdPs geben bei jeder Aktualisierung ein id\_token zurück und benötigen dies nicht. Setzen Sie `true`, wenn Ihr IdP ein id\_token bei Aktualisierung nur zurückgibt, wenn `openid` erneut angefordert wird, was Okta für seinen Aktualisierungszuschuss dokumentiert. Ohne ein id\_token hängt jede Aktualisierung davon ab, dass der Userinfo-Endpunkt des IdP das aktualisierte Zugriffstoken akzeptiert. Wenn Sie die Anmeldung oder Richtlinienabgleiche auf Gruppen beschränken und das id\_token Ihres IdP zur Aktualisierungszeit diese auslässt, setzen Sie auch `userinfo_fallback: true`, damit das Gateway diese vom Userinfo-Endpunkt ausfüllt. Ein IdP, der weniger Bereiche als angefordert gewährte, kann die Aktualisierung mit `invalid_scope` ablehnen, auch für bestehende Sitzungen, wenn Sie Einträge zu `scopes` hinzufügen, während dies aktiviert ist. Heben Sie den Schlüssel auf, wenn Aktualisierungen nach dem Setzen am `token_endpoint` fehlschlagen. Erfordert Claude Code v2.1.260 oder später auf dem Gateway-Server. |

89| `userinfo_fallback` | Nein | Wenn der id\_token E-Mail oder Gruppen auslässt, rufen Sie sie von `/userinfo` ab. Erforderlich für Keycloak-Lightweight-Zugriffstokens, den Okta-Org-Server und ADFS-Minimal-Tokens. Der id\_token bleibt maßgeblich; userinfo füllt nur Lücken. Standard `false`. |89| `extra_auth_params` | Nein | Zusätzliche Abfrageparameter, die wörtlich an die IdP-Autorisierungsanfrage angehängt werden. Dies ist der Überschreibungsmechanismus für IdP-spezifisches Verhalten, wie `access_type: offline` für Google-Aktualisierungstoken, `domain_hint` für einige Entra-Mandanten oder `acr_values` für Step-up-Flows. Kann die vom Gateway verwalteten Protokollparameter nicht überschreiben: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` und `client_id`. |

90| `use_pkce` | Nein | Senden Sie eine PKCE (S256)-Herausforderung bei der Autorisierungsanfrage. Standard `true`. Setzen Sie `false` nur, wenn Ihr IdP PKCE für diesen vertraulichen Client ablehnt. |90| `userinfo_fallback` | Nein | Wenn das id\_token E-Mail oder Gruppen auslässt, rufen Sie diese von `/userinfo` ab. Erforderlich für Keycloak-Lightweight-Zugriffstokens, den Okta-Org-Server und ADFS-Minimal-Tokens. Das id\_token bleibt maßgeblich; userinfo füllt nur Lücken. Standard `false`. |

91| `clock_skew_seconds` | Nein | Tolerieren Sie Uhrenabweichungen beim Validieren von id\_token-Zeitansprüchen. Standard `0`, was streng ist. Erhöhen Sie, wenn Sie "Token abgelaufen / noch nicht gültig"-Fehler direkt nach der Anmeldung aufgrund von Host-/IdP-Uhrenabweichung sehen. |91| `use_pkce` | Nein | Senden Sie eine PKCE-Herausforderung (S256) in der Autorisierungsanfrage. Standard `true`. Setzen Sie `false` nur, wenn Ihr IdP PKCE für diesen vertraulichen Client ablehnt. |

92| `clock_skew_seconds` | Nein | Tolerieren Sie Uhrenabweichungen beim Validieren von id\_token-Zeitansprüchen. Standard `0`, was streng ist. Erhöhen Sie, wenn Sie unmittelbar nach der Anmeldung aufgrund von Host-/IdP-Uhrenabweichung Fehler „Token abgelaufen / noch nicht gültig" sehen. |

92| `token_endpoint_auth_method` | Nein | Überschreiben Sie die Token-Endpunkt-Authentifizierungsmethode. Akzeptiert `client_secret_basic` oder `client_secret_post`. Standardmäßig automatisch ausgehandelt. |93| `token_endpoint_auth_method` | Nein | Überschreiben Sie die Token-Endpunkt-Authentifizierungsmethode. Akzeptiert `client_secret_basic` oder `client_secret_post`. Standardmäßig automatisch ausgehandelt. |

93| `id_token_signed_response_alg` | Nein | Erwarteter id\_token-Signaturalgorithmus. Standard `RS256`. Setzen Sie für IdPs, die mit ES256, PS256 oder EdDSA signieren. |94| `id_token_signed_response_alg` | Nein | Erwarteter id\_token-Signaturalgorithmus. Standard `RS256`. Setzen Sie für IdPs, die mit ES256, PS256 oder EdDSA signieren. |

94| `additional_authorized_parties` | Nein | Zusätzliche `azp`-Werte, die neben `client_id` akzeptiert werden, für Keycloak-Broker und Token-Exchange-Flüsse |95| `additional_authorized_parties` | Nein | Zusätzliche `azp`-Werte, die neben `client_id` akzeptiert werden, für Keycloak-Broker und Token-Exchange-Flows |

95| `discovery_url` | Nein | Rufen Sie das Erkennungsdokument von dieser URL ab, anstatt es vom `issuer` abzuleiten, für IdPs hinter einem Proxy, der den Aussteller-Host umschreibt. Der Pfad muss `/.well-known/` enthalten. |96| `discovery_url` | Nein | Rufen Sie das Discovery-Dokument von dieser URL ab, anstatt es von `issuer` abzuleiten, für IdPs hinter einem Proxy, der den Aussteller-Host umschreibt. Der Pfad muss `/.well-known/` enthalten. |

96| `use_proxy` | Nein | Senden Sie die eigenen IdP-Anfragen des Gateways durch den Forward Proxy in `HTTPS_PROXY` oder `HTTP_PROXY`, wobei `NO_PROXY` beachtet wird. Nicht gesetzt oder `false`, gehen diese Anfragen direkt. Erfordert v2.1.227 oder später; siehe [IdP-Anfragen durch einen Forward Proxy](#idp-requests-through-a-forward-proxy) unten. |97| `use_proxy` | Nein | Senden Sie die eigenen IdP-Anfragen des Gateways durch den Forward-Proxy in `HTTPS_PROXY` oder `HTTP_PROXY`, wobei `NO_PROXY` beachtet wird. Nicht gesetzt oder `false`, diese Anfragen gehen direkt. Erfordert v2.1.227 oder später; siehe [IdP-Anfragen durch einen Forward-Proxy](#idp-requests-through-a-forward-proxy) unten. |

97| `form_action_origins` | Nein | Zusätzliche Ursprünge für die `Content-Security-Policy: form-action`-Direktive der `/device`-Seite. Das Gateway erlaubt bereits `'self'` und den erkannten `authorization_endpoint`-Ursprung, aber Chrome erzwingt `form-action` gegen die gesamte Umleitungskette. Wenn Ihr IdP durch einen zweiten Host umleitet, wie Azure AD, das zu ADFS verbunden ist, Hub-Spoke-Okta oder ein unternehmensweiter SSO-Interceptor, listen Sie jeden Ursprung auf, durch den die Autorisierungsanfrage umgeleitet werden kann. |98| `form_action_origins` | Nein | Zusätzliche Ursprünge für die `Content-Security-Policy: form-action`-Direktive der `/device`-Seite. Das Gateway erlaubt bereits `'self'` und den erkannten `authorization_endpoint`-Ursprung, aber Chrome erzwingt `form-action` gegen die gesamte Umleitungskette. Wenn Ihr IdP durch einen zweiten Host umleitet, wie Azure AD, das zu ADFS verbunden ist, Hub-Spoke-Okta oder ein unternehmensweiter SSO-Interceptor, listen Sie jeden Ursprung auf, durch den die Autorisierungsanfrage umgeleitet werden kann. |

98| `ca_cert_pem` | Nein | Das PEM-codierte CA-Zertifikat selbst, nicht ein Pfad zu einer Datei. Es ersetzt den System-Trust-Store nur für IdP-Anfragen. Zum Laden einer gemounteten Datei schreiben Sie `${file:/etc/gateway/idp-ca.pem}`. Verwenden Sie für Keycloak oder Dex hinter unternehmensweiter PKI. |99| `ca_cert_pem` | Nein | Das PEM-codierte CA-Zertifikat selbst, nicht ein Pfad zu einer Datei. Es ersetzt den System-Trust-Store nur für IdP-Anfragen. Um eine bereitgestellte Datei zu laden, schreiben Sie `${file:/etc/gateway/idp-ca.pem}`. Verwenden Sie für Keycloak oder Dex hinter unternehmensweiter PKI. |

99 100 

100<h4 id="idp-requests-through-a-forward-proxy">101<h4 id="idp-requests-through-a-forward-proxy">

101 IdP-Anfragen durch einen Forward Proxy102 IdP-Anfragen durch einen Forward-Proxy

102</h4>103</h4>

103 104 

104Die Inferenz-Upstreams beachten `HTTPS_PROXY` und `HTTP_PROXY` auf jeder Version. Die eigenen Anfragen des Gateways an den IdP, Erkennung, JWKS, Token und Userinfo gehen direkt, es sei denn, Sie setzen `oidc.use_proxy: true`, was v2.1.227 oder später erfordert. Wenn eine Proxy-Variable gesetzt ist, `use_proxy` nicht gesetzt ist und der Aussteller nicht von `NO_PROXY` abgedeckt ist, hält das Gateway diese Anfragen direkt und protokolliert beim Start einen Hinweis, der Sie auffordert, eine Wahl zu treffen; `use_proxy: false` hält sie direkt und stellt den Hinweis stumm.105Die Inference-Upstreams beachten `HTTPS_PROXY` und `HTTP_PROXY` in jeder Version. Die eigenen Anfragen des Gateways an den IdP, Discovery, JWKS, Token und Userinfo gehen direkt, sofern Sie nicht `oidc.use_proxy: true` setzen, was v2.1.227 oder später erfordert. Wenn eine Proxy-Variable gesetzt ist, `use_proxy` nicht gesetzt ist und der Aussteller nicht von `NO_PROXY` abgedeckt ist, hält das Gateway diese Anfragen direkt und protokolliert beim Start einen Hinweis, der Sie auffordert, eine Wahl zu treffen; `use_proxy: false` hält sie direkt und unterdrückt den Hinweis.

105 106 

106Mit `use_proxy: true` löst der Pod jeden IdP-Endpunkt-Hostnamen selbst auf und fordert den Proxy auf, sich mit der aufgelösten IP-Adresse zu `CONNECT`, sodass der Proxy `CONNECT` zur IP-Adresse jedes Hosts akzeptieren muss, den das Erkennungsdokument benennt, nicht nur den Aussteller. Verwenden Sie eine `http://`-Proxy-URL. `ca_cert_pem` und der [SSRF-Schutz](/docs/de/claude-apps-gateway-deploy#threat-model-summary) gelten auch auf dem Proxy-Pfad.107Mit `use_proxy: true` löst der Pod den Hostnamen jedes IdP-Endpunkts selbst auf und fordert den Proxy auf, sich mit der aufgelösten IP-Adresse zu `CONNECT`, daher muss der Proxy `CONNECT` zur IP-Adresse jedes Hosts akzeptieren, den das Discovery-Dokument benennt, nicht nur den Aussteller. Verwenden Sie eine `http://`-Proxy-URL. `ca_cert_pem` und der [SSRF-Schutz](/docs/de/claude-apps-gateway-deploy#threat-model-summary) gelten auch auf dem Proxy-Pfad.

107 108 

108<h3 id="session">109<h3 id="session">

109 `session`110 `session`

110</h3>111</h3>

111 112 

112Der `session`-Block formt die Bearer-Token, die das Gateway nach der Anmeldung ausstellt: das Geheimnis, das sie signiert, und wie lange sie leben.113Der `session`-Block formt die Bearer-Tokens, die das Gateway nach der Anmeldung ausgibt: das Geheimnis, das sie signiert, und wie lange sie leben.

113 114 

114| Feld | Erforderlich | Beschreibung |115| Feld | Erforderlich | Beschreibung |

115| ------------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |116| ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `jwt_secret` | Ja | Mindestens 32 Bytes Entropie, zum Beispiel von `openssl rand -base64 32`. Signiert die HS256-Bearer-Tokens des Gateways. Akzeptiert einen einzelnen String oder ein Array für Rotation: Index 0 signiert und alle Einträge verifizieren. Um zu rotieren, stellen Sie ein neues Geheimnis voran, warten Sie `ttl_hours`, dann löschen Sie das alte. |117| `jwt_secret` | Ja | Mindestens 32 Bytes Entropie, zum Beispiel von `openssl rand -base64 32`. Signiert die HS256-Bearer-Tokens des Gateways. Akzeptiert eine einzelne Zeichenkette oder ein Array zur Rotation: Index 0 signiert und alle Einträge verifizieren. Zum Rotieren fügen Sie ein neues Geheimnis vorne hinzu, warten `ttl_hours`, dann löschen Sie das alte. |

117| `ttl_hours` | Nein | Gateway-Bearer-Token-Lebensdauer. Standard `1`. Die CLI aktualisiert sich stillschweigend vor Ablauf, wenn der IdP Aktualisierungstoken ausgibt. Eine kürzere Lebensdauer hebt die Bereitstellung schneller auf; eine längere macht weniger IdP-Rundfahrten. Wenn Ihr IdP keine Aktualisierungstoken ausstellen kann, weil `offline_access` nicht verfügbar ist, gibt es keine stille Aktualisierung, also erhöhen Sie dies auf `8` oder `12`, um zu vermeiden, dass Entwickler alle Stunde zur Browser-Anmeldung zurückgesendet werden. |118| `ttl_hours` | Nein | Lebensdauer des Gateway-Bearer-Tokens. Standard `1`. Die CLI aktualisiert automatisch vor Ablauf, wenn der IdP Aktualisierungstoken ausgibt. Eine kürzere Lebensdauer hebt die Bereitstellung schneller auf; eine längere macht weniger IdP-Roundtrips. Wenn Ihr IdP keine Aktualisierungstoken ausstellen kann, weil `offline_access` nicht verfügbar ist, gibt es keine automatische Aktualisierung, daher erhöhen Sie dies auf `8` oder `12`, um zu vermeiden, dass Entwickler stündlich zur Browser-Anmeldung zurückkehren. |

118 119 

119<h3 id="store">120<h3 id="store">

120 `store`121 `store`

121</h3>122</h3>

122 123 

123Der `store`-Block zeigt das Gateway auf seine PostgreSQL-Datenbank, die Gerätezuschüsse und Rate-Limit-Zähler enthält.124Der `store`-Block verweist das Gateway auf seine PostgreSQL-Datenbank, die Gerätezuschüsse und Ratenbegrenzungszähler enthält.

124 125 

125| Feld | Erforderlich | Beschreibung |126| Feld | Erforderlich | Beschreibung |

126| ----------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |127| ----------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

127| `postgres_url` | Ja | `postgres://` oder `postgresql://` URL. Erforderlich: das Gerätezuschuss-Rendezvous, wo der Browser-Callback schreibt und die Polling-CLI liest, benötigt Cross-Replica-Status. Das Gateway führt seine eigenen Schema-Migrationen beim Start aus und bei Upgrades, sodass die Rolle Rechte zum Erstellen und Ändern von Tabellen im Zielschema benötigt. Siehe [Upgrades](/docs/de/claude-apps-gateway-deploy#upgrades) und [Postgres](/docs/de/claude-apps-gateway-deploy#postgres). |128| `postgres_url` | Ja | `postgres://` oder `postgresql://` URL. Erforderlich: das Gerätezuschuss-Rendezvous, wo der Browser-Callback schreibt und die Polling-CLI liest, benötigt Zustand über Replikas hinweg. Das Gateway führt seine eigenen Schema-Migrationen beim Start und bei Upgrades aus, daher benötigt die Rolle Rechte zum Erstellen und Ändern von Tabellen im Zielschema. Siehe [Upgrades](/docs/de/claude-apps-gateway-deploy#upgrades) und [Postgres](/docs/de/claude-apps-gateway-deploy#postgres). |

128| `username` | Nein | Überschreibt den Benutzer in `postgres_url` |129| `username` | Nein | Überschreibt den Benutzer in `postgres_url` |

129| `password` | Nein | Datenbankberechtigungsnachweis. Setzen Sie ihn hier anstelle von `postgres_url`, damit die Berechtigung aus der URL bleibt. Akzeptiert beliebige Zeichen und hat Vorrang vor URL-Berechtigungsnachweisen. |130| `password` | Nein | Datenbankberechtigungsnachweis. Setzen Sie ihn hier anstelle von `postgres_url`, damit der Berechtigungsnachweis aus der URL bleibt. Akzeptiert beliebige Zeichen und hat Vorrang vor URL-Berechtigungsnachweisen. |

130| `max_connections` | Nein | Postgres-Verbindungspool-Größe pro Replik. Standard `5`, was konservativ und freundlich zu gemeinsamen Datenbanken ist. Mit [Ausgabenlimits](#admin) aktiviert, macht der Hot Path ein paar Operationen pro Inferenzanfrage, also erhöhen Sie es für eine dedizierte Datenbank unter Last und halten Sie Replikas × dies unter der `max_connections` der Datenbank. |131| `max_connections` | Nein | Postgres-Verbindungspool-Größe pro Replik. Standard `5`, was konservativ und freundlich zu gemeinsamen Datenbanken ist. Mit [Ausgabenlimits](#admin) aktiviert, führt der Hot-Path einige Operationen pro Inference-Anfrage durch, daher erhöhen Sie ihn für eine dedizierte Datenbank unter Last, und halten Sie Replikas × dies unter dem `max_connections` der Datenbank. |

131 132 

132Für die lokale Entwicklung zeigen Sie `postgres_url` auf einen Wegwerf-Postgres-Container, zum Beispiel `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.133Für die lokale Entwicklung verweisen Sie `postgres_url` auf einen Wegwerf-Postgres-Container, zum Beispiel `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

133 134 

134<h3 id="upstreams">135<h3 id="upstreams">

135 `upstreams`136 `upstreams`

136</h3>137</h3>

137 138 

138`upstreams` ist eine geordnete Liste. Das Gateway leitet Inferenz an den ersten Upstream weiter, der das angeforderte Modell auflöst. Bei `5xx`, `429`, `401`, `403`, `404` oder Timeout schlägt es zum nächsten fehl; andere `4xx` nicht, da diese Fehler der Anfrage statt dem Upstream zuzuordnen sind. Ein `401` oder `403` bedeutet, dass die eigenen Berechtigungsnachweise des Gateways gegen diesen Upstream fehlgeschlagen sind, und ein `404` bedeutet, dass dieser Upstream das angeforderte Modell nicht bedient, sodass ein späterer Upstream in der Liste es immer noch kann.139`upstreams` ist eine geordnete Liste. Das Gateway leitet Inference an den ersten Upstream weiter, der das angeforderte Modell auflöst.

139 140 

140Failover bei `404` erfordert Gateway v2.1.198 oder später. Frühere Releases gaben den ersten `404` an den Client zurück, auch wenn ein späterer Upstream in der Liste das Modell bediente.141Bei `5xx`, `429`, `401`, `403`, `404` oder Timeout schlägt das Gateway zum nächsten Upstream fehl über; andere `4xx` nicht, da diese Fehler dem Request statt dem Upstream zuzuordnen sind. Ein `401` oder `403` bedeutet, dass die eigene Berechtigung des Gateways gegen diesen Upstream fehlgeschlagen ist. Ein `404` bedeutet, dass dieser Upstream das angeforderte Modell nicht bereitstellt, daher kann ein späterer Upstream in der Liste es immer noch tun.

142 

143Wenn Sie `forward_user_identity: true` auf einem Upstream setzen, schlägt ein `429`, das dieser auf eine Anfrage zurückgibt, die die E-Mail des Entwicklers trug, nicht fehl über. Siehe [wie eine Pro-Benutzer-Limit-Ablehnung den Entwickler erreicht](#per-user-identity-headers-for-a-proxy-you-run).

144 

145Failover bei `404` erfordert Gateway v2.1.198 oder später. Frühere Versionen gaben den ersten `404` an den Client zurück, auch wenn ein späterer Upstream in der Liste das Modell bereitstellte.

141 146 

142Mehrere Upstreams desselben Anbieters müssen einen unterschiedlichen `name:` setzen.147Mehrere Upstreams desselben Anbieters müssen einen unterschiedlichen `name:` setzen.

143 148 

144Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry-Clients werden einmal beim Start erstellt, und ihre SDKs aktualisieren Berechtigungsnachweise intern, sodass das Rotieren von Cloud-Berechtigungsnachweisen keinen Neustart erfordert. Statische Anthropic-API-Schlüssel und Bearer werden beim Start gelesen; siehe [Anthropic API](#anthropic-api).149Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry-Clients werden beim Start einmal erstellt, und ihre SDKs aktualisieren Berechtigungsnachweise intern, daher erfordert das Rotieren von Cloud-Berechtigungsnachweisen keinen Neustart. Statische Anthropic-API-Schlüssel und Bearer werden beim Start gelesen; siehe [Anthropic API](#anthropic-api).

145 150 

146<h4 id="upstream-error-messages">151<h4 id="upstream-error-messages">

147 Upstream-Fehlermeldungen152 Upstream-Fehlermeldungen

148</h4>153</h4>

149 154 

150Das Gateway gibt die Fehlerantwort eines Upstream oder sein eigenes `502` zurück, je nachdem, wie die Upstreams geantwortet haben:155Das Gateway gibt die Fehlerantwort eines Upstreams oder sein eigenes `502` zurück, je nachdem, wie die Upstreams antworteten:

151 156 

152* **Ein Upstream gab einen Status zurück, bei dem das Gateway nicht [failover](#multiple-upstreams)**: dieser Upstream's Antwort. Das Gateway versucht keine weiteren Upstreams.157* **Ein Upstream gab einen Status zurück, bei dem das Gateway nicht [fehlschlägt über](#multiple-upstreams)**: diese Upstream-Antwort. Das Gateway versucht keine weiteren Upstreams.

153* **Jeder Upstream, den das Gateway versucht hat, ist auf eine Weise fehlgeschlagen, bei der es [failover](#multiple-upstreams)**: der letzte `429`. Wenn keiner einen `429` zurückgab, bevorzugt das Gateway in Reihenfolge den letzten `401` oder `403`, den letzten `404` und den letzten `501`. Wenn keiner von diesen zurückgab, das Gateway's eigenes `502`, `all upstreams failed (N attempted)`, wobei N jeden Eintrag in [`upstreams`](#upstreams) zählt, einschließlich Einträge, die das Gateway übersprungen hat, weil sie das angeforderte Modell nicht bedienen.158* **Jeder Upstream, den das Gateway versuchte, schlug auf eine Weise fehl, bei der es [fehlschlägt über](#multiple-upstreams)**: das letzte `429`. Wenn keiner ein `429` zurückgab, bevorzugt das Gateway in der Reihenfolge das letzte `401` oder `403`, das letzte `404` und das letzte `501`. Wenn keiner von diesen zurückgab, das eigene `502` des Gateways, `all upstreams failed (N attempted)`, wobei N jeden Eintrag in [`upstreams`](#upstreams) zählt, einschließlich Einträge, die das Gateway übersprungen hat, weil sie das angeforderte Modell nicht bereitstellen.

154 159 

155Wenn das Gateway eine Upstream-Antwort zurückgibt, behält es den Statuscode des Upstream. Ob es die Nachricht des Upstream behält, hängt vom Anbieter ab. Ein Anthropic API-Upstream's Fehlerkörper erreicht den Entwickler unverändert.160Wenn das Gateway eine Upstream-Antwort zurückgibt, behält es den Statuscode des Upstreams. Ob es die Nachricht des Upstreams behält, hängt vom Anbieter ab. Eine Fehlerantwort eines Anthropic-API-Upstreams erreicht den Entwickler unverändert.

156 161 

157Die Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry-Upstreams können Ihre Konto-IDs, Rollen-ARNs und Projekt-IDs in ihrem Fehlertext benennen. Das Gateway zeichnet diesen vollständigen Text im [Betriebsprotokoll](/docs/de/claude-apps-gateway-deploy#logs) auf. Was der Entwickler von diesen Upstreams sieht, hängt von der Ablehnung ab:162Die Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry-Upstreams können Ihre Konto-IDs, Rollen-ARNs und Projekt-IDs in ihrem Fehlertext benennen. Das Gateway zeichnet diesen vollständigen Text im [Betriebsprotokoll](/docs/de/claude-apps-gateway-deploy#logs) auf. Was der Entwickler von diesen Upstreams sieht, hängt von der Ablehnung ab:

158 163 

159* `400` oder `413` in Anthropic's Standard-Fehler-Envelope: die Nachricht des Upstream selbst, wie `prompt is too long`. Claude Platform on AWS, Agent Platform und Microsoft Foundry geben dieses Envelope für Modell-API-Ablehnungen zurück.164* `400` oder `413` in Anthropics Standard-Fehler-Envelope: die eigene Nachricht des Upstreams, wie `prompt is too long`. Claude Platform on AWS, Agent Platform und Microsoft Foundry geben dieses Envelope für Modell-API-Ablehnungen zurück.

160* `400` oder `413` in der eigenen Form des Anbieters: ein `capability_rejected:`-Token. Wenn das Gateway die Ablehnung nicht klassifizieren kann, `upstream rejected the request` bei einem `400` oder `request too large for this upstream` bei einem `413`.165* `400` oder `413` in der eigenen Form des Anbieters: ein `capability_rejected:`-Token. Wenn das Gateway die Ablehnung nicht klassifizieren kann, `upstream rejected the request` bei einem `400` oder `request too large for this upstream` bei einem `413`.

161* Jeder andere Status: generischer Pro-Status-Text, wie `upstream rate limit exceeded` bei einem `429`.166* Jeder andere Status: generischer Pro-Status-Text, wie `upstream rate limit exceeded` bei einem `429`.

162 167 

163Zum Beispiel ersetzt das Gateway Amazon Bedrock's `Input is too long for requested model.` durch `capability_rejected: prompt_too_long`. Claude Code [komprimiert automatisch](/docs/de/errors#prompt-is-too-long) bei diesem Token, wie es bei `prompt is too long` tut.168Zum Beispiel ersetzt das Gateway Amazon Bedrocks `Input is too long for requested model.` durch `capability_rejected: prompt_too_long`. Claude Code [komprimiert automatisch](/docs/de/errors#prompt-is-too-long) auf dieses Token, wie es auf `prompt is too long` tut.

164 169 

165Das Beibehalten einer Cloud-Upstream's `400` oder `413`-Nachricht oder das Ersetzen durch ein `capability_rejected:`-Token erfordert Gateway v2.1.233 oder später.170Das Beibehalten einer Cloud-Upstream-Nachricht von `400` oder `413` oder das Ersetzen durch ein `capability_rejected:`-Token erfordert Gateway v2.1.233 oder später.

166 171 

167<h4 id="anthropic-api">172<h4 id="anthropic-api">

168 Anthropic API173 Anthropic API


175 - provider: anthropic180 - provider: anthropic

176 auth:181 auth:

177 api_key: ${ANTHROPIC_API_KEY}182 api_key: ${ANTHROPIC_API_KEY}

178 # ODER ein OAuth-Bearer (z.B. ein Workload-Identity-Federation-ausgetauschter Token):183 # OR an OAuth bearer (e.g. a Workload-Identity-Federation-exchanged token):

179 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}184 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

180 # base_url: https://api.anthropic.com # Standard; Überschreibung für einen Forward Proxy185 # base_url: https://api.anthropic.com # default; override for a forward proxy

181```186```

182 187 

183Die zwei Berechtigungsnachweis-Formulare unterscheiden sich im Header, den sie senden:188Die zwei Berechtigungsnachweis-Formen unterscheiden sich im Header, den sie senden:

184 189 

185* **`api_key`**: sendet `x-api-key`. Rotieren Sie ihn in der Claude Console und aktualisieren Sie die Env-Variable.190* **`api_key`**: sendet `x-api-key`. Rotieren Sie ihn in der Claude Console und aktualisieren Sie die Umgebungsvariable.

186* **`oauth_token`**: sendet `Authorization: Bearer`. Verwenden Sie das Bearer-Formular, wenn Ihre Organisation kurzlebige Token statt langlebiger API-Schlüssel ausgibt. Der Bearer wird einmal beim Start gelesen, also aktualisieren Sie durch Remounten des Geheimnisses und Neustart.191* **`oauth_token`**: sendet `Authorization: Bearer`. Verwenden Sie die Bearer-Form, wenn Ihre Organisation kurzlebige Tokens statt langlebiger API-Schlüssel ausgibt. Der Bearer wird einmal beim Start gelesen, daher aktualisieren Sie durch Remounten des Geheimnisses und Neustart.

187 192 

188Anstelle eines statischen Schlüssels oder Bearers können Sie Workload Identity Federation verwenden. Erstellen Sie eine Verbindungsregel, indem Sie dem [Workload Identity Federation-Leitfaden](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) folgen, dann mounten Sie das OIDC-JWT Ihrer Workload als Datei, wie ein Kubernetes-projiziertes Service-Account-Token oder ein ID-Token einer CI-Plattform. Das Gateway tauscht das JWT gegen einen kurzlebigen Bearer aus und aktualisiert ihn automatisch. Die Token-Datei wird bei jedem Austausch erneut gelesen, sodass rotierte projizierte Tokens ohne Neustart aufgegriffen werden.193Anstelle eines statischen Schlüssels oder Bearers können Sie Workload Identity Federation verwenden. Erstellen Sie eine Verbindungsregel, indem Sie dem [Workload Identity Federation-Leitfaden](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) folgen, dann mounten Sie das OIDC-JWT Ihrer Workload als Datei, wie ein Kubernetes-projiziertes Service-Account-Token oder ein ID-Token einer CI-Plattform. Das Gateway tauscht das JWT gegen einen kurzlebigen Bearer aus und aktualisiert ihn automatisch. Die Token-Datei wird bei jedem Austausch erneut gelesen, daher werden rotierte projizierte Tokens ohne Neustart aufgegriffen.

189 194 

190```yaml theme={null}195```yaml theme={null}

191upstreams:196upstreams:


194 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}199 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

195 organization_id: ${ANTHROPIC_ORGANIZATION_ID}200 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

196 identity_token_file: /var/run/secrets/anthropic/id-token201 identity_token_file: /var/run/secrets/anthropic/id-token

197 # workspace_id: wrkspc_... # erforderlich, wenn die Regel >1 Workspace abdeckt202 # workspace_id: wrkspc_... # required if the rule covers >1 workspace

198 # service_account_id: svac_... # optionale erwartete Zielprüfung203 # service_account_id: svac_... # optional expected-target check

199```204```

200 205 

201<a id="per-user-identity-headers-for-a-proxy-you-run" />206<a id="per-user-identity-headers-for-a-proxy-you-run" />

202 207 

203<h5 id="per-user-identity-headers-for-a-proxy-you-run">208<h5 id="per-user-identity-headers-for-a-proxy-you-run">

204 Per-User-Identitäts-Header für einen Proxy, den Sie betreiben209 Pro-Benutzer-Identitäts-Header für einen Proxy, den Sie betreiben

205</h5>210</h5>

206 211 

207Sie können einen `provider: anthropic`-Upstream's `base_url` auf einen Proxy zeigen, den Sie betreiben, anstatt auf die Anthropic API. Um diesem Proxy zu sagen, welcher Entwickler jede Anfrage gesendet hat, setzen Sie `forward_user_identity: true` auf diesem Upstream. Der Proxy kann dann Ausgaben pro Entwickler zuordnen. Erfordert ein Gateway, das Claude Code v2.1.233 oder später ausführt.212Sie können die `base_url` eines `provider: anthropic`-Upstreams auf einen Proxy verweisen, den Sie betreiben, anstatt auf die Anthropic API. Um diesem Proxy mitzuteilen, welcher Entwickler jede Anfrage gesendet hat, setzen Sie `forward_user_identity: true` auf diesem Upstream. Der Proxy kann dann Ausgaben pro Entwickler zuordnen. Erfordert ein Gateway, das Claude Code v2.1.233 oder später ausführt.

208 213 

209Zum Beispiel, für einen Proxy unter `upstream-gateway.internal.example.com`:214Zum Beispiel für einen Proxy unter `upstream-gateway.internal.example.com`:

210 215 

211```yaml theme={null}216```yaml theme={null}

212upstreams:217upstreams:


214 base_url: https://upstream-gateway.internal.example.com219 base_url: https://upstream-gateway.internal.example.com

215 auth:220 auth:

216 api_key: ${PROXY_KEY}221 api_key: ${PROXY_KEY}

217 forward_user_identity: true # Standard false222 forward_user_identity: true # default false

218```223```

219 224 

220Das Gateway fügt diese Header zu jeder Anfrage hinzu, die es an diesen Upstream weiterleitet.225Das Gateway fügt diese Header zu jeder Anfrage hinzu, die es an diesen Upstream weiterleitet.

221 226 

222| Header | Wert |227| Header | Wert |

223| ----------------------------- | ------------------------------------------------------------------- |228| ----------------------------- | ------------------------------------------------------------------- |

224| `x-litellm-end-user-id` | Die E-Mail des Entwicklers, wenn der IdP eine bereitgestellt hat. |229| `x-litellm-end-user-id` | Die E-Mail des Entwicklers, wenn der IdP eine lieferte. |

225| `x-claude-gateway-user-id` | Das IdP-Subjekt des Entwicklers, aus dem `sub`-Anspruch des Tokens. |230| `x-claude-gateway-user-id` | Das IdP-Subjekt des Entwicklers, aus dem `sub`-Anspruch des Tokens. |

226| `x-claude-gateway-user-email` | Die E-Mail des Entwicklers, wenn der IdP eine bereitgestellt hat. |231| `x-claude-gateway-user-email` | Die E-Mail des Entwicklers, wenn der IdP eine lieferte. |

227 232 

228Wenn das IdP-Token keine E-Mail trägt, sendet das Gateway nur `x-claude-gateway-user-id` und lässt die zwei E-Mail-Header weg. Wenn Ihr IdP die E-Mail in einem anderen Anspruch ablegt, setzen Sie [`oidc.email_claim`](#oidc) auf diesen Anspruch.233Wenn das IdP-Token keine E-Mail trägt, sendet das Gateway nur `x-claude-gateway-user-id` und lässt die zwei E-Mail-Header weg. Wenn Ihr IdP die E-Mail in einem anderen Anspruch ablegt, setzen Sie [`oidc.email_claim`](#oidc) auf diesen Anspruch.

229 234 

235Wenn Ihr Proxy `429` auf eine Anfrage antwortet, die die E-Mail des Entwicklers trug, gibt das Gateway diese Antwort unverändert an den Entwickler zurück, anstatt zum nächsten Upstream fehlzuschlagen, daher hält das Budget oder die Ratenbegrenzung pro Benutzer Ihres Proxys. Die anderen Antworten des Proxys folgen den gewöhnlichen [Failover-Regeln](#upstreams). Wenn das IdP-Token eines Entwicklers keine E-Mail trägt, leitet das Gateway seine Anfragen ohne die E-Mail-Header weiter, daher zählt ein `429` auf eine dieser Anfragen als Upstream-Kapazität und schlägt fehl über. Vor v2.1.267 auf dem Gateway-Server schlug jedes `429` fehl über.

236 

230Setzen Sie `forward_user_identity` nur auf einem Upstream, dessen `base_url` ein Proxy ist, den Sie betreiben. Das Gateway sendet Entwickler-E-Mails an jeden Server, den diese `base_url` benennt. Wenn die `base_url` die Anthropic API ist, die Standard ist, weigert sich das Gateway zu starten.237Setzen Sie `forward_user_identity` nur auf einem Upstream, dessen `base_url` ein Proxy ist, den Sie betreiben. Das Gateway sendet Entwickler-E-Mails an jeden Server, den diese `base_url` benennt. Wenn die `base_url` die Anthropic API ist, die Standard ist, weigert sich das Gateway zu starten.

231 238 

232<h4 id="amazon-bedrock">239<h4 id="amazon-bedrock">


239upstreams:246upstreams:

240 - provider: bedrock247 - provider: bedrock

241 region: us-east-1248 region: us-east-1

242 auth: {} # bevorzugt: AWS-Standard-Berechtigungskette249 auth: {} # preferred: AWS default credential chain

243 # ODER explizite Berechtigungsnachweise:250 # OR explicit credentials:

244 # auth:251 # auth:

245 # aws_access_key_id: ${AWS_AKID}252 # aws_access_key_id: ${AWS_AKID}

246 # aws_secret_access_key: ${AWS_SK}253 # aws_secret_access_key: ${AWS_SK}

247 # aws_session_token: ${AWS_ST}254 # aws_session_token: ${AWS_ST}

248 # ODER ein Bedrock-API-Bearer-Token:255 # OR a Bedrock API bearer token:

249 # auth:256 # auth:

250 # aws_bearer_token: ${AWS_BEARER_TOKEN}257 # aws_bearer_token: ${AWS_BEARER_TOKEN}

251 # Überschreiben Sie den bedrock-runtime-Endpunkt für FIPS oder VPC-Endpunkt-Bereitstellungen:258 # Override the bedrock-runtime endpoint for FIPS or VPC-endpoint deployments:

252 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com259 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

253```260```

254 261 

255Ein leerer `auth`-Block verwendet die Standard-Berechtigungskette des AWS SDK: Env-Variablen, `~/.aws/credentials`, ECS-Task-Rolle, EC2-Instanzmetadaten oder IRSA auf EKS. In der Produktion geben Sie dem Gateway-Pod eine IAM-Rolle statt statische Schlüssel in ein Container-Image einzubetten.262Ein leerer `auth`-Block verwendet die Standard-Berechtigungskette des AWS SDK: Umgebungsvariablen, `~/.aws/credentials`, ECS-Task-Rolle, EC2-Instanz-Metadaten oder IRSA auf EKS. Geben Sie in der Produktion dem Gateway-Pod eine IAM-Rolle, anstatt statische Schlüssel in ein Container-Image einzubetten.

256 263 

257Explizite Berechtigungsnachweise müssen vollständig sein: Das Gateway schlägt beim Start fehl, wenn `aws_access_key_id` und `aws_secret_access_key` nicht zusammen gesetzt sind, oder wenn `aws_session_token` ohne sie gesetzt ist. Vor v2.1.207 bestand ein partieller `auth:`-Block die Validierung.264Explizite Berechtigungsnachweise müssen vollständig sein: Das Gateway schlägt beim Start fehl, wenn `aws_access_key_id` und `aws_secret_access_key` nicht zusammen gesetzt sind, oder wenn `aws_session_token` ohne sie gesetzt ist. Vor v2.1.207 bestand ein partieller `auth:`-Block die Validierung.

258 265 

259| Setup | Wie |266| Setup | Wie |

260| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |267| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

261| IAM-Berechtigungen | Gewähren Sie dem Gateway-Principal `bedrock:InvokeModel` und `bedrock:InvokeModelWithResponseStream` sowohl auf den Inferenz-Profil-ARNs als auch auf den zugrunde liegenden Foundation-Model-ARNs. Für den integrierten Katalog in US-Regionen: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` und `arn:aws:bedrock:*::foundation-model/anthropic.*`. |268| IAM-Berechtigungen | Gewähren Sie dem Principal des Gateways `bedrock:InvokeModel` und `bedrock:InvokeModelWithResponseStream` auf sowohl den Inference-Profil-ARNs als auch den zugrunde liegenden Foundation-Modell-ARNs. Für den integrierten Katalog in US-Regionen: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` und `arn:aws:bedrock:*::foundation-model/anthropic.*`. Gewähren Sie auch `bedrock:CountTokens` auf den Foundation-Modell-ARNs. Das Gateway verwendet es, kostenlos, um die Eingabe-Tokens einer Anfrage zu zählen, die der Client abgebrochen hat, daher bleiben [Ausgabenlimits](#admin) genau. Ohne es fällt das Gateway auf eine Ein-Token-Bedrock-Anfrage für diese Zählung zurück. |

262| Modellzugriff | Amazon Bedrock aktiviert Modellzugriff standardmäßig in kommerziellen Regionen. Das verbleibende Konto-Level-Gate ist Anthropic's einmaliges Anwendungsformular: Wenn niemand in Ihrem AWS-Konto es eingereicht hat, öffnen Sie die Amazon Bedrock-Konsole, wählen Sie ein Anthropic-Modell aus dem Modellkatalog und füllen Sie das Formular aus. Siehe [Anwendungsdetails einreichen](/docs/de/amazon-bedrock#1-submit-use-case-details) für das AWS Organizations-Formular und die Berechtigungen, die der Einreicher benötigt. |269| Modellzugriff | Amazon Bedrock aktiviert Modellzugriff standardmäßig in kommerziellen Regionen. Das verbleibende Konto-Level-Gate ist Anthropics einmaliges Anwendungsformular: Wenn niemand in Ihrem AWS-Konto es eingereicht hat, öffnen Sie die Amazon Bedrock-Konsole, wählen Sie ein Anthropic-Modell aus dem Modellkatalog und füllen Sie das Formular aus. Siehe [Anwendungsdetails einreichen](/docs/de/amazon-bedrock#1-submit-use-case-details) für das AWS Organizations-Formular und die Berechtigungen, die der Einreicher benötigt. |

263| EKS (IRSA) | Erstellen Sie eine IAM-Rolle mit der obigen Richtlinie und einer Vertrauensrichtlinie für den OIDC-Provider Ihres Clusters, der auf das Service-Account des Gateways beschränkt ist. Kommentieren Sie das Service-Account mit `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`. `auth: {}` nimmt es auf. |270| EKS (IRSA) | Erstellen Sie eine IAM-Rolle mit der obigen Richtlinie und einer Vertrauensrichtlinie für den OIDC-Provider Ihres Clusters, der auf das Service-Account des Gateways beschränkt ist. Kommentieren Sie das Service-Account mit `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`. `auth: {}` nimmt es auf. |

264| ECS / EC2 | Hängen Sie die IAM-Rolle an die Task-Definition oder das Instance-Profil an. `auth: {}` nimmt es auf. |271| ECS / EC2 | Fügen Sie die IAM-Rolle an die Task-Definition oder das Instance-Profil an. `auth: {}` nimmt es auf. |

265| Überall sonst | Übergeben Sie Berechtigungsnachweise über die Env-Variablen `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` und `AWS_SESSION_TOKEN`, oder setzen Sie sie explizit in `auth:` mit `${VAR}`-Erweiterung |272| Überall sonst | Übergeben Sie Berechtigungsnachweise über die Umgebungsvariablen `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` und `AWS_SESSION_TOKEN`, oder setzen Sie sie explizit in `auth:` mit `${VAR}`-Erweiterung |

266| Region | `region:` ist die API-Endpunkt-Region. Cross-Region-Inferenz-Profile routen über die Geo (US, EU, APAC) unabhängig davon, welche Sie wählen. Für Nicht-US-Regionen oder bereitgestellte Durchsatz-ARNs fügen Sie einen [`models:`](#models)-Block mit den richtigen Pro-Upstream-IDs hinzu. |273| Region | `region:` ist die API-Endpunkt-Region. Cross-Region-Inference-Profile leiten über die Geo (US, EU, APAC) weiter, unabhängig davon, welche Sie wählen. Für Nicht-US-Regionen oder bereitgestellte Durchsatz-ARNs fügen Sie einen [`models:`](#models)-Block mit den richtigen Pro-Upstream-IDs hinzu. |

267 274 

268<h4 id="claude-platform-on-aws">275<h4 id="claude-platform-on-aws">

269 Claude Platform on AWS276 Claude Platform on AWS

270</h4>277</h4>

271 278 

272Claude Platform on AWS bedient die First-Party-Anthropic-API auf AWS-Infrastruktur unter `aws-external-anthropic.<region>.api.aws`. Sie verwendet First-Party-Modell-IDs, berücksichtigt `anthropic-beta`-Header wie gesendet und bedient `count_tokens`, sodass keine der Bedrock-spezifischen Übersetzung gilt. Der `anthropicAws`-Provider erfordert Claude Code v2.1.198 oder später; frühere Gateway-Releases lehnen ihn beim Start ab.279Claude Platform on AWS bedient die First-Party-Anthropic-API auf AWS-Infrastruktur unter `aws-external-anthropic.<region>.api.aws`. Sie verwendet First-Party-Modell-IDs, beachtet `anthropic-beta`-Header wie gesendet und bedient `count_tokens`, daher gilt keine der Bedrock-spezifischen Übersetzung. Der `anthropicAws`-Provider erfordert Claude Code v2.1.198 oder später; frühere Gateway-Versionen lehnen ihn beim Start ab.

273 280 

274Für die Client-seitige Bereitstellung derselben Plattform siehe [Claude Code on Claude Platform on AWS](/docs/de/claude-platform-on-aws). Der Gateway-seitige Upstream:281Für die Client-seitige Bereitstellung derselben Plattform siehe [Claude Code on Claude Platform on AWS](/docs/de/claude-platform-on-aws). Der Gateway-seitige Upstream:

275 282 


279 region: us-east-1286 region: us-east-1

280 workspace_id: wrkspc_...287 workspace_id: wrkspc_...

281 auth:288 auth:

282 api_key: ${ANTHROPIC_AWS_API_KEY} # gesendet als x-api-key289 api_key: ${ANTHROPIC_AWS_API_KEY} # sent as x-api-key

283 # ODER SigV4 über die AWS-Standard-Berechtigungskette:290 # OR SigV4 via the AWS default credential chain:

284 # auth: {}291 # auth: {}

285 # ODER explizite SigV4-Berechtigungsnachweise:292 # OR explicit SigV4 credentials:

286 # auth:293 # auth:

287 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}294 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

288 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}295 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

289 # Überschreiben Sie den abgeleiteten Endpunkt:296 # Override the derived endpoint:

290 # base_url: https://aws-external-anthropic.us-east-1.api.aws297 # base_url: https://aws-external-anthropic.us-east-1.api.aws

291```298```

292 299 

293Die Plattform läuft in einem separaten AWS-Konto von Amazon Bedrock und signiert SigV4-Anfragen für seinen eigenen Service-Namen, `aws-external-anthropic`, sodass eine Bedrock-scoped IAM-Rolle es nicht autorisiert. Ein API-Schlüssel in `auth.api_key` hat Vorrang, wenn SigV4-Berechtigungsnachweise auch gesetzt sind. Ein leerer `auth`-Block verwendet die Standard-Berechtigungskette des AWS SDK, dieselbe Kette, die der [Amazon Bedrock](#amazon-bedrock)-Upstream verwendet.300Die Plattform läuft in einem separaten AWS-Konto von Amazon Bedrock und signiert SigV4-Anfragen für seinen eigenen Service-Namen, `aws-external-anthropic`, daher autorisiert eine Bedrock-scoped IAM-Rolle es nicht. Ein API-Schlüssel in `auth.api_key` hat Vorrang, wenn SigV4-Berechtigungsnachweise auch gesetzt sind. Ein leerer `auth`-Block verwendet die Standard-Berechtigungskette des AWS SDK, die gleiche Kette, die der [Amazon Bedrock](#amazon-bedrock)-Upstream verwendet.

294 301 

295| Feld | Erforderlich | Beschreibung |302| Feld | Erforderlich | Beschreibung |

296| ------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |303| ------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |

297| `region` | Ja | AWS-Region, Kleinbuchstaben, Ziffern und Bindestriche. Das Gateway leitet den Endpunkt davon ab als `https://aws-external-anthropic.<region>.api.aws`. |304| `region` | Ja | AWS-Region, Kleinbuchstaben, Ziffern und Bindestriche. Das Gateway leitet den Endpunkt davon ab als `https://aws-external-anthropic.<region>.api.aws`. |

298| `workspace_id` | Ja | Gesendet als Header bei jeder Anfrage; die Plattform erfordert es |305| `workspace_id` | Ja | Wird als Header bei jeder Anfrage gesendet; die Plattform erfordert es |

299| `auth.api_key` | Nein | API-Schlüssel für die Plattform, gesendet als `x-api-key`. Kein Bearer-Token: die zwei Auth-Modi sind ein API-Schlüssel oder SigV4. |306| `auth.api_key` | Nein | API-Schlüssel für die Plattform, gesendet als `x-api-key`. Kein Bearer-Token: die zwei Auth-Modi sind ein API-Schlüssel oder SigV4. |

300| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Nein | Explizite SigV4-Berechtigungsnachweise. Das Setzen eines ohne das andere schlägt beim Start fehl. `auth.aws_session_token` wird neben ihnen akzeptiert. |307| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Nein | Explizite SigV4-Berechtigungsnachweise. Das Setzen eines ohne das andere schlägt beim Start fehl. `auth.aws_session_token` wird neben ihnen akzeptiert. |

301| `base_url` | Nein | Überschreiben Sie den abgeleiteten Endpunkt |308| `base_url` | Nein | Überschreiben Sie den abgeleiteten Endpunkt |


313 - provider: vertex320 - provider: vertex

314 region: us-east5321 region: us-east5

315 project_id: example-prod322 project_id: example-prod

316 auth: {} # bevorzugt: Application Default Credentials323 auth: {} # preferred: Application Default Credentials

317 # ODER eine Service-Account-Schlüsseldatei:324 # OR a service account key file:

318 # auth: { service_account_json: /secrets/sa.json }325 # auth: { service_account_json: /secrets/sa.json }

319 # Überschreiben Sie den aiplatform-Endpunkt für Private Service Connect:326 # Override the aiplatform endpoint for Private Service Connect:

320 # base_url: https://us-east5-aiplatform.p.googleapis.com327 # base_url: https://us-east5-aiplatform.p.googleapis.com

321```328```

322 329 

323Ein leerer `auth`-Block verwendet Application Default Credentials: `GOOGLE_APPLICATION_CREDENTIALS`, GCE-Metadaten oder GKE Workload Identity. Service-Account-JSON-Schlüsseldateien werden unterstützt, aber nicht empfohlen; verwenden Sie Workload Identity oder hängen Sie ein Service-Account an die GCE- oder Cloud Run-Instanz an.330Ein leerer `auth`-Block verwendet Application Default Credentials: `GOOGLE_APPLICATION_CREDENTIALS`, GCE-Metadaten oder GKE Workload Identity. Service-Account-JSON-Schlüsseldateien werden unterstützt, aber nicht empfohlen; verwenden Sie Workload Identity oder fügen Sie ein Service-Account an die GCE- oder Cloud Run-Instanz an.

324 331 

325Setzen Sie `region: global`, um [Agent Platforms globalen Endpunkt](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) statt eines regionalen zu verwenden. Google leitet dann jede Anfrage an eine verfügbare Region weiter, sodass Sie die Pro-Region-Modellverfügbarkeit nicht verfolgen. Das Setzen einer bestimmten Region heftet jede Anfrage daran.332Setzen Sie `region: global`, um den [globalen Endpunkt für Google Cloud's Agent Platform](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) anstelle eines regionalen zu verwenden. Google leitet dann jede Anfrage an eine verfügbare Region weiter, daher verfolgen Sie keine Pro-Region-Modellverfügbarkeit. Das Setzen einer bestimmten Region heftet jede Anfrage daran.

326 333 

327| Setup | Wie |334| Setup | Wie |

328| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |335| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

329| IAM-Berechtigungen | Gewähren Sie dem Gateway-Service-Account `roles/aiplatform.user` auf dem Projekt oder eine benutzerdefinierte Rolle mit `aiplatform.endpoints.predict`. Aktivieren Sie die Agent Platform API (`aiplatform.googleapis.com`). |336| IAM-Berechtigungen | Gewähren Sie dem Service-Account des Gateways `roles/aiplatform.user` auf dem Projekt, oder eine benutzerdefinierte Rolle mit `aiplatform.endpoints.predict`. Aktivieren Sie Google Cloud's Agent Platform API (`aiplatform.googleapis.com`). |

330| Modellzugriff | Aktivieren Sie in Model Garden die Claude-Modelle für Ihr Projekt. Sie werden in bestimmten Regionen veröffentlicht; überprüfen Sie die Modellkarte auf unterstützte Regionen. |337| Modellzugriff | Aktivieren Sie in Model Garden die Claude-Modelle für Ihr Projekt. Sie veröffentlichen zu bestimmten Regionen; überprüfen Sie die Modellkarte auf unterstützte Regionen. |

331| GKE (Workload Identity) | Binden Sie ein GCP-Service-Account an das Kubernetes-Service-Account des Gateways und kommentieren Sie das KSA mit `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`. `auth: {}` nimmt es auf. |338| GKE (Workload Identity) | Binden Sie ein GCP-Service-Account an das Kubernetes-Service-Account des Gateways und kommentieren Sie das KSA mit `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`. `auth: {}` nimmt es auf. |

332| Cloud Run / GCE | Setzen Sie das Service-Account des Service auf eines mit `roles/aiplatform.user`. `auth: {}` nimmt es auf. |339| Cloud Run / GCE | Setzen Sie das Service-Account des Service auf eines mit `roles/aiplatform.user`. `auth: {}` nimmt es auf. |

333| Überall sonst | `auth: { service_account_json: /secrets/sa.json }`, der Pfad zu einer JSON-Schlüsseldatei, die als Geheimnis gemountet ist. Das Feld nimmt einen Dateipfad, nicht den Schlüsselinhalt, also ist keine `${file:…}`-Erweiterung beteiligt. |340| Überall sonst | `auth: { service_account_json: /secrets/sa.json }`, der Pfad zu einer JSON-Schlüsseldatei, die als Geheimnis bereitgestellt wird. Das Feld nimmt einen Dateipfad, nicht den Schlüsselinhalt, daher ist keine `${file:…}`-Erweiterung beteiligt. |

334 341 

335<h4 id="microsoft-foundry">342<h4 id="microsoft-foundry">

336 Microsoft Foundry343 Microsoft Foundry

337</h4>344</h4>

338 345 

339Für die Client-seitige Foundry-Bereitstellung siehe [Claude Code on Microsoft Foundry](/docs/de/microsoft-foundry). Der Gateway-seitige Upstream:346Für die Client-seitige Microsoft Foundry-Bereitstellung siehe [Claude Code on Microsoft Foundry](/docs/de/microsoft-foundry). Der Gateway-seitige Upstream:

340 347 

341```yaml theme={null}348```yaml theme={null}

342upstreams:349upstreams:

343 - provider: foundry350 - provider: foundry

344 resource: example-foundry # https://example-foundry.services.ai.azure.com351 resource: example-foundry # https://example-foundry.services.ai.azure.com

345 auth: { use_azure_ad: true } # bevorzugt: DefaultAzureCredential / Managed Identity352 auth: { use_azure_ad: true } # preferred: DefaultAzureCredential / Managed Identity

346 # ODER ein API-Schlüssel:353 # OR an API key:

347 # auth:354 # auth:

348 # api_key: ${FOUNDRY_API_KEY}355 # api_key: ${FOUNDRY_API_KEY}

349```356```

350 357 

351`use_azure_ad: true` wird durch `DefaultAzureCredential` aufgelöst: Managed Identity auf AKS, ACI oder App Service; die Azure CLI; oder Umgebungsberechtigungsnachweise. API-Schlüssel funktionieren, sind aber projektumfassend und rotieren nicht automatisch. Der Foundry-Endpunkt wird von `resource:` abgeleitet; setzen Sie das optionale `base_url`, um es für souveräne Clouds wie Azure Government zu überschreiben.358`use_azure_ad: true` löst durch `DefaultAzureCredential` auf: Managed Identity auf AKS, ACI oder App Service; die Azure CLI; oder Umgebungsberechtigungsnachweise. API-Schlüssel funktionieren, sind aber projektumfassend und rotieren nicht automatisch. Der Endpunkt von Microsoft Foundry wird von `resource:` abgeleitet; setzen Sie das optionale `base_url`, um es für souveräne Clouds wie Azure Government zu überschreiben.

352 359 

353| Setup | Wie |360| Setup | Wie |

354| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |361| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

355| RBAC | Gewähren Sie dem Gateway-Identity `Azure AI User` oder `Cognitive Services User` auf der Foundry-Ressource |362| RBAC | Gewähren Sie der Identität des Gateways `Azure AI User` oder `Cognitive Services User` auf der Microsoft Foundry-Ressource |

356| Bereitstellungen | Foundry verwendet von Admin gewählte Bereitstellungsnamen, nicht kanonische Modell-IDs. Fügen Sie einen [`models:`](#models)-Block hinzu, der jede kanonische ID Ihrem Bereitstellungsnamen zuordnet. |363| Bereitstellungen | Microsoft Foundry verwendet von Administratoren gewählte Bereitstellungsnamen, nicht kanonische Modell-IDs. Fügen Sie einen [`models:`](#models)-Block hinzu, der jede kanonische ID Ihrem Bereitstellungsnamen zuordnet. |

357| AKS (Workload-Identität) | Verbinden Sie eine User-Assigned Managed Identity mit dem OIDC-Issuer des Clusters und binden Sie sie an das Service-Account des Gateways. `use_azure_ad: true` nimmt es über `WorkloadIdentityCredential` auf. |364| AKS (Workload Identity) | Verbinden Sie eine User-Assigned Managed Identity mit dem OIDC-Aussteller des Clusters und binden Sie sie an das Service-Account des Gateways. `use_azure_ad: true` nimmt es über `WorkloadIdentityCredential` auf. |

358| ACI / App Service | Aktivieren Sie system-zugewiesene oder user-zugewiesene Managed Identity auf der Ressource. `use_azure_ad: true` nimmt es auf. |365| ACI / App Service | Aktivieren Sie system-zugewiesene oder user-zugewiesene Managed Identity auf der Ressource. `use_azure_ad: true` nimmt es auf. |

359| Überall sonst | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Zitieren Sie `${…}` innerhalb von `{ }`. |366| Überall sonst | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Zitieren Sie `${…}` innerhalb von `{ }`. |

360 367 


362 Mehrere Upstreams369 Mehrere Upstreams

363</h4>370</h4>

364 371 

365Derselbe Anbieter kann mehr als einmal mit einem unterschiedlichen `name:` erscheinen. Dies deckt verschiedene Regionen, verschiedene Konten über verschiedene Berechtigungsketten, bereitgestellter Durchsatz versus On-Demand und Cross-Provider-Fallback ab.372Der gleiche Provider kann mehr als einmal mit einem unterschiedlichen `name:` erscheinen. Dies deckt verschiedene Regionen, verschiedene Konten über verschiedene Berechtigungsketten, bereitgestellter Durchsatz versus On-Demand und Cross-Provider-Fallback ab.

366 373 

367Das Gateway versucht Upstreams in Reihenfolge. `5xx`, `429`, `401`, `403`, `404`, Timeouts und fehlender Endpunkt (`501`) schlagen fehl; andere `4xx` nicht.374Das Gateway versucht Upstreams in Reihenfolge. `5xx`, `429`, `401`, `403`, `404`, Timeouts und fehlender Endpunkt (`501`) schlagen fehl über; andere `4xx` nicht.

368 375 

369`429` ist Pro-Upstream-Kapazität, sodass bereitgestellter Durchsatz (PT)-Erschöpfung zu On-Demand fehlschlägt. `404` ist Pro-Upstream-Modellverfügbarkeit, sodass ein Upstream, der ein Modell nicht aktiviert hat, einen späteren Upstream, der es bedient, nicht blockiert. Ein Upstream, der das angeforderte Modell nicht auflösen kann, wird ohne Netzwerk-Rundfahrt übersprungen.376`429` ist Pro-Upstream-Kapazität, daher schlägt bereitgestellter Durchsatz (PT)-Erschöpfung zu On-Demand fehl über. Wenn Sie [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) auf einem Upstream setzen, ist ein `429` auf eine Anfrage, die die E-Mail des Entwicklers trug, eine Pro-Benutzer-Ablehnung statt und schlägt nicht fehl über.

370 377 

371Dieses Beispiel leitet eine bereitgestellte Durchsatz-Bedrock-Zuteilung zuerst weiter, überläuft zu On-Demand und einem zweiten Konto und fällt zuletzt auf die Anthropic API zurück:378`404` ist Pro-Upstream-Modellverfügbarkeit, daher blockiert ein Upstream, der ein Modell nicht aktiviert hat, keinen späteren Upstream, der es bedient. Ein Upstream, der das angeforderte Modell nicht auflösen kann, wird ohne Netzwerk-Roundtrip übersprungen.

379 

380Dieses Beispiel leitet eine bereitgestellte Durchsatz-Amazon Bedrock-Zuteilung zuerst weiter, überläuft zu On-Demand und einem zweiten Konto und fällt zuletzt auf die Anthropic API zurück:

372 381 

373```yaml theme={null}382```yaml theme={null}

374upstreams:383upstreams:

375 # Primär: bereitgestellter Durchsatz in Ihrer Heimatregion.384 # Primary: provisioned throughput in your home region.

376 - name: bedrock-pt385 - name: bedrock-pt

377 provider: bedrock386 provider: bedrock

378 region: us-east-1387 region: us-east-1

379 auth: {}388 auth: {}

380 # Überlauf: On-Demand Cross-Region.389 # Overflow: on-demand cross-region.

381 - name: bedrock-od390 - name: bedrock-od

382 provider: bedrock391 provider: bedrock

383 region: us-west-2392 region: us-west-2

384 auth: {}393 auth: {}

385 # Anderes Konto: eine separate Bedrock-Zuteilung über angenommene Rollberechtigungsnachweise.394 # Different account: a separate Bedrock allotment via assumed-role creds.

386 - name: bedrock-acct2395 - name: bedrock-acct2

387 provider: bedrock396 provider: bedrock

388 region: us-east-1397 region: us-east-1

389 auth:398 auth:

390 aws_access_key_id: ${ACCT2_AKID}399 aws_access_key_id: ${ACCT2_AKID}

391 aws_secret_access_key: ${ACCT2_SK}400 aws_secret_access_key: ${ACCT2_SK}

392 # Letzter Ausweg: direkte Anthropic API.401 # Last resort: direct Anthropic API.

393 - name: anthropic-fallback402 - name: anthropic-fallback

394 provider: anthropic403 provider: anthropic

395 auth:404 auth:

396 api_key: ${ANTHROPIC_API_KEY}405 api_key: ${ANTHROPIC_API_KEY}

397 406 

398# Pro-Upstream-Modell-IDs werden auf dem `name:` des Upstream geschlüsselt; ein Upstream407# Per-upstream model IDs are keyed on the upstream's `name:`.

399# ohne `name:` nimmt standardmäßig seinen Provider-String (z.B. `bedrock`). Jeder

400# Upstream, der nicht für ein Modell aufgelistet ist, wird übersprungen, was ist, wie Sie ein Modell

401# zu bereitgestelltem Durchsatz routen, während alles andere On-Demand bleibt.

402models:408models:

403 - id: claude-opus-4-8409 - id: claude-opus-4-8

404 label: Claude Opus 4.8410 label: Claude Opus 4.8


411 417 

412| Hebel | Wie |418| Hebel | Wie |

413| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |419| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

414| Verschiedene Regionen | Ein Bedrock-Upstream pro Region, jeder mit seiner eigenen `region:`. Mit [`auto_include_builtin_models: true`](#models) routen die Cross-Region-Inferenz-Profile automatisch; für Region-gepinnte Bereitstellungen verwenden Sie einen `models:`-Block. |420| Verschiedene Regionen | Ein Amazon Bedrock-Upstream pro Region, jeder mit seiner eigenen `region:`. Mit [`auto_include_builtin_models: true`](#models) leiten die Cross-Region-Inference-Profile automatisch weiter; für Region-geheftete Bereitstellungen verwenden Sie einen `models:`-Block. |

415| Verschiedene Konten | Ein Bedrock-Upstream pro Konto, jeder mit seinen eigenen Berechtigungsnachweisen in `auth:`. Die Standard-Kette (`auth: {}`) verwendet die Pod-Identität; für ein zweites Konto setzen Sie explizite Berechtigungsnachweise oder ein Bearer-Token. |421| Verschiedene Konten | Ein Amazon Bedrock-Upstream pro Konto, jeder mit seinen eigenen Berechtigungsnachweisen in `auth:`. Die Standard-Kette (`auth: {}`) verwendet die Identität des Pods; für ein zweites Konto setzen Sie explizite Berechtigungsnachweise oder ein Bearer-Token. |

416| Bereitgestellter Durchsatz | Ordnen Sie das Modell der bereitgestellten Durchsatz-ARN in `models:` für den Namen dieses Upstream zu. Andere Upstreams behalten die On-Demand-ID, sodass PT-Kapazität vor dem Failover erschöpft ist. |422| Bereitgestellter Durchsatz | Ordnen Sie das Modell der bereitgestellten Durchsatz-ARN in `models:` für den Namen dieses Upstreams zu. Andere Upstreams behalten die On-Demand-ID, daher wird PT-Kapazität vor dem Failover erschöpft. |

417| VPC / FIPS-Endpunkte | Setzen Sie `base_url:` auf dem Upstream auf Ihren VPC-Endpunkt oder FIPS-Endpunkt-URL |423| VPC / FIPS-Endpunkte | Setzen Sie `base_url:` auf dem Upstream auf Ihre VPC-Endpunkt- oder FIPS-Endpunkt-URL |

418| Modell-gesteuertes Routing | Nur ein benutzerdefiniertes Modell `id`, eines, das kein integriertes Claude-Modell ist, überspringt die Upstreams, die in seiner `upstream_model:`-Karte fehlen. Das Gateway versucht integrierte Modelle auf jedem Upstream in Reihenfolge und verwendet die Standard-ID des Anbieters, wo die Karte keinen Eintrag hat, sodass für integrierte Modelle die Karte ändert, welche ID ein Upstream erhält, statt ob er versucht wird; ein Upstream, der die ID ablehnt, folgt denselben [Failover-Regeln](#upstreams) wie jeder andere Upstream-Fehler. |424| Modell-scoped Routing | Nur eine benutzerdefinierte Modell-`id`, eine, die kein integriertes Claude-Modell ist, überspringt die Upstreams, die in ihrer `upstream_model:`-Karte fehlen. Das Gateway versucht integrierte Modelle auf jedem Upstream in Reihenfolge und verwendet die Standard-ID des Anbieters, wo die Karte keinen Eintrag hat, daher ändert die Karte für integrierte Modelle, welche ID ein Upstream erhält, statt ob er versucht wird; ein Upstream, der die ID ablehnt, folgt den gleichen [Failover-Regeln](#upstreams) wie jeder andere Upstream-Fehler. |

419 425 

420Das Failover zwischen Cloud-Anbietern oder zur direkten Anthropic API ändert, welche Vereinbarung, Geographie und andere Bedingungen die Anfrage regeln.426Das Failover zwischen Cloud-Anbietern oder zur direkten Anthropic API ändert, welche Vereinbarung, Geographie und andere Bedingungen die Anfrage regeln.

421 427 

422Die CLI wendet dasselbe Feature-Gating auf Gateways an, unabhängig davon, welcher Upstream eine bestimmte Anfrage bedient, sodass Failover kein Body-Feld sendet, das ein Upstream ablehnen würde.428Die CLI wendet die gleiche Feature-Gating auf Gateways an, unabhängig davon, welcher Upstream eine gegebene Anfrage bedient, daher sendet Failover kein Body-Feld, das ein Upstream ablehnen würde.

423 429 

424<h2 id="optional-sections">430<h2 id="optional-sections">

425 Optionale Abschnitte431 Optionale Abschnitte


475Der `pricing`-Block teilt dem Ausgabenzähler mit, was statt USD-Listenpreis zu berechnen ist, sodass Caps und [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) Ihre vertraglich vereinbarten Sätze widerspiegeln. Beträge bleiben in USD und sind eine Schätzung, keine Rechnung. Zwei Voraussetzungen:481Der `pricing`-Block teilt dem Ausgabenzähler mit, was statt USD-Listenpreis zu berechnen ist, sodass Caps und [`/effective`](/docs/de/claude-apps-gateway-spend-limits#%2Feffective) Ihre vertraglich vereinbarten Sätze widerspiegeln. Beträge bleiben in USD und sind eine Schätzung, keine Rechnung. Zwei Voraussetzungen:

476 482 

477* Claude Code v2.1.227 oder später auf dem Gateway-Server. Frühere Versionen lehnen den unbekannten Schlüssel beim Start ab.483* Claude Code v2.1.227 oder später auf dem Gateway-Server. Frühere Versionen lehnen den unbekannten Schlüssel beim Start ab.

478* Ein [`admin:`](#admin)-Block, da nur der Ausgabenzähler `pricing` liest. Das Gateway weigert sich zu starten, wenn `pricing` gesetzt ist und kein `admin`.484* Ein [`admin:`](#admin)-Block oder, in v2.1.268 oder später, ein [`managed:`](#managed)-Block mit mindestens einer Richtlinie. Das Gateway weigert sich zu starten, wenn `pricing` gesetzt ist und keiner dieser Blöcke vorhanden ist, da nichts ihn lesen würde.

479 485 

480```yaml theme={null}486```yaml theme={null}

481pricing:487pricing:


492| Feld | Erforderlich | Beschreibung |498| Feld | Erforderlich | Beschreibung |

493| ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |499| ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

494| `multiplier` | Nein | Standard `1`. Der Zähler multipliziert jeden gemessenen Betrag mit diesem, ob listenpreisig oder überschrieben, sodass `0.85` 85% des Preises abrechnet. Muss größer als 0 und höchstens 1 sein. |500| `multiplier` | Nein | Standard `1`. Der Zähler multipliziert jeden gemessenen Betrag mit diesem, ob listenpreisig oder überschrieben, sodass `0.85` 85% des Preises abrechnet. Muss größer als 0 und höchstens 1 sein. |

495| `overrides` | Nein | Zeilen von `{upstream, model, input, output, cache_read, cache_write}` in USD pro Million Token. Alle vier Sätze sind erforderlich und müssen positiv sein. |501| `overrides` | Nein | Zeilen von `{upstream, model, input, output, cache_read, cache_write}` in USD pro Million Token. Alle vier Sätze sind erforderlich. Jeder muss größer als 0 und höchstens 10000 sein. |

496 502 

497Wie der Zähler eine Überschreibungszeile passt:503Wie der Zähler eine Überschreibungszeile passt:

498 504 


504 510 

505Für Pro-Region-Sätze geben Sie jeder Region ihren eigenen benannten Upstream und eine Zeile pro Upstream.511Für Pro-Region-Sätze geben Sie jeder Region ihren eigenen benannten Upstream und eine Zeile pro Upstream.

506 512 

513<h4 id="send-the-rates-to-signed-in-clients">

514 Sätze an angemeldete Clients senden

515</h4>

516 

517Mit v2.1.268 oder später auf dem Gateway-Server fügt das Gateway auch die Sätze aus `pricing` in die [`managed`](#managed)-Richtlinien ein, die es bedient, als die [`modelPricing`](/docs/de/settings-reference#modelpricing)-verwaltete Einstellung. Entwickler, die von einer Richtlinie abgeglichen werden, sehen dann die `pricing`-Sätze für den ersten Upstream, der jede Modell-ID in `/usage`, der Statuszeile und OpenTelemetry bedient. Ein Entwickler, der keine Richtlinie passt, erhält keine verwalteten Einstellungen, sodass seine Zahlen bei Listenpreis bleiben. Clients wenden die Einstellung in Claude Code v2.1.242 oder später an.

518 

519* Was das Gateway hinzufügt: Es fügt den `multiplier` und, für jede Modell-ID, die ein Client anfordern kann, die Überschreibungszeile des ersten Upstream, der diese ID bedient, hinzu, es sei denn, der `cli`-Block einer Richtlinie setzt bereits `modelPricing`. Eine Rate, die nur ein Failover-Upstream berechnet, bleibt auf dem Gateway.

520* Opt eine Richtlinie aus: Setzen Sie `modelPricing` auf `{}` im `cli`-Block dieser Richtlinie, und ihre Entwickler bleiben bei Listenpreis.

521* Behalten Sie die eigenen Sätze einer Richtlinie: Eine Richtlinie, deren `cli`-Block `modelPricing` mit ihrem eigenen `multiplier` oder `overrides` setzt, behält dieses `modelPricing` ganz, und das Gateway fügt keine Sätze davon hinzu.

522 

507<h3 id="models">523<h3 id="models">

508 `models`524 `models`

509</h3>525</h3>


640```656```

641 657 

642| Schlüssel | Durchgesetzt von | Effekt |658| Schlüssel | Durchgesetzt von | Effekt |

643| ------------------------------------------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |659| ------------------------------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

644| `availableModels` | Gateway + CLI | Modell-Zulassungsliste. Auch unter `/v1/messages` überprüft, sodass ein gepatchter Client ihn nicht umgehen kann. |660| `availableModels` | Gateway + CLI | Modell-Zulassungsliste. Auch unter `/v1/messages` überprüft, sodass ein gepatchter Client ihn nicht umgehen kann. |

645| `permissions.allow` / `.deny` | CLI | Tool- und Befehlsregeln. Siehe [Berechtigungen](/docs/de/permissions). |661| `permissions.allow` / `.deny` | CLI | Tool- und Befehlsregeln. Siehe [Berechtigungen](/docs/de/permissions). |

646| `permissions.disableBypassPermissionsMode` | CLI | Setzen Sie auf `disable`, um [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), den Modus, der Berechtigungsaufforderungen überspringt, und das `--dangerously-skip-permissions`-Flag zu blockieren |662| `permissions.disableBypassPermissionsMode` | CLI | Setzen Sie auf `disable`, um [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), den Modus, der Berechtigungsaufforderungen überspringt, und das `--dangerously-skip-permissions`-Flag zu blockieren |

647| `allowManagedPermissionRulesOnly` | CLI | Wenn `true`, werden verwaltete Einstellungen die einzige Einstellungsquelle von Berechtigungsregeln. Der [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly)-Eintrag listet jede Quelle auf, die Claude Code dann ignoriert. |663| `allowManagedPermissionRulesOnly` | CLI | Wenn `true`, werden verwaltete Einstellungen die einzige Einstellungsquelle von Berechtigungsregeln. Der [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly)-Eintrag listet jede Quelle auf, die Claude Code dann ignoriert. |

648| `env` | CLI | Umgebungsvariablen, die in den CLI-Prozess zusammengeführt werden. Verwenden Sie für Telemetrie, Auto-Update und Modellnamen-Überschreibungen. |664| `env` | CLI | Umgebungsvariablen, die in den CLI-Prozess zusammengeführt werden. Verwenden Sie für Telemetrie, Auto-Update und Modellnamen-Überschreibungen. |

649| `hooks` | CLI | Org-weite [Hooks](/docs/de/hooks) |665| `hooks` | CLI | Org-weite [Hooks](/docs/de/hooks) |

666| `managedMcpServers` | CLI | Remote MCP-Server [bereitgestellt für jeden passenden Entwickler](/docs/de/managed-mcp#provide-servers-through-managed-settings) neben den Servern, die sie selbst hinzufügen, `http` und `sse` nur. Siehe [MCP-Server in einer Richtlinie](#mcp-servers-in-a-policy). Erfordert Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients. Frühere Clients ignorieren den Schlüssel. |

650 667 

651Da diese Einstellungen über das Netzwerk ankommen, zeigt die CLI jedem Entwickler einen Sicherheitsgenehmigungsdialog, bevor die unten aufgelisteten Einstellungen angewendet werden:668Da diese Einstellungen über das Netzwerk ankommen, zeigt die CLI jedem Entwickler einen Sicherheitsgenehmigungsdialog, bevor die unten aufgelisteten Einstellungen angewendet werden:

652 669 


670 687 

671Der `cli`-Schlüssel wurde in früheren Releases `settings` genannt. Diese Schreibweise wird immer noch als Alias akzeptiert, aber neue Bereitstellungen sollten `cli` verwenden.688Der `cli`-Schlüssel wurde in früheren Releases `settings` genannt. Diese Schreibweise wird immer noch als Alias akzeptiert, aber neue Bereitstellungen sollten `cli` verwenden.

672 689 

690<h4 id="mcp-servers-in-a-policy">

691 MCP-Server in einer Richtlinie

692</h4>

693 

694Um MCP-Server für die Claude Code-Clients bereitzustellen, die eine Richtlinie passt, setzen Sie [`managedMcpServers`](/docs/de/managed-mcp#provide-servers-through-managed-settings) im `cli`-Block dieser Richtlinie. Sie benötigen Claude Code v2.1.259 oder später auf dem Gateway-Server und auf Clients.

695 

696Das Gateway überprüft jeden Eintrag beim Start mit [den gleichen Regeln, die Claude Code auf dem Client anwendet](/docs/de/managed-mcp#what-an-entry-can-contain), und wenn ein Eintrag eine Prüfung nicht besteht, weigert sich das Gateway zu starten und benennt den Eintrag.

697 

698Wenn Sie eine `${VAR}`-Referenz in `gateway.yaml` schreiben, löst das Gateway sie aus seiner Umgebung beim Start durch [Geheimnis-Erweiterung](#secret-expansion) auf, bevor es die Eintrag-Prüfungen ausführt, sodass jeder passende Client den Literalwert erhält und ihn lesen kann. Die [Header-Anleitung für bereitgestellte Server](/docs/de/managed-mcp#provide-servers-through-managed-settings) gilt für den erweiterten Wert.

699 

700Das Gateway lehnt die `.mcp.json`-Schreibweise `mcpServers` in einem `cli`-Block ab, und sein Boot-Fehler benennt `managedMcpServers` als den zu verwendenden Schlüssel. Vor v2.1.259 lehnte das Gateway jede MCP-Server-Definition in einem `cli`-Block ab.

701 

673<h4 id="claude-desktop-overlay">702<h4 id="claude-desktop-overlay">

674 Claude Desktop-Überlagerung703 Claude Desktop-Überlagerung

675</h4>704</h4>


685* Die Modellliste, aus `availableModels`714* Die Modellliste, aus `availableModels`

686* Deaktivierte Tools, aus bloßen Tool-Namen-`permissions.deny`-Einträgen. Wenn Sie `disabledBuiltinTools` im `desktop`-Block der Richtlinie setzen, bedient das Gateway die Vereinigung Ihres Wertes und der abgeleiteten Liste, sodass Sie auf diese Weise mehr Tools deaktivieren können, aber eines, das Sie durch `permissions.deny` deaktiviert haben, nicht wieder aktivieren können715* Deaktivierte Tools, aus bloßen Tool-Namen-`permissions.deny`-Einträgen. Wenn Sie `disabledBuiltinTools` im `desktop`-Block der Richtlinie setzen, bedient das Gateway die Vereinigung Ihres Wertes und der abgeleiteten Liste, sodass Sie auf diese Weise mehr Tools deaktivieren können, aber eines, das Sie durch `permissions.deny` deaktiviert haben, nicht wieder aktivieren können

687* Die Egress-Zulassungsliste, aus `sandbox.network.allowedDomains`. Wenn Sie `coworkEgressAllowedHosts` im `desktop`-Block der Richtlinie setzen, verwendet das Gateway stattdessen diesen Wert716* Die Egress-Zulassungsliste, aus `sandbox.network.allowedDomains`. Wenn Sie `coworkEgressAllowedHosts` im `desktop`-Block der Richtlinie setzen, verwendet das Gateway stattdessen diesen Wert

688* Ein OTLP-Endpunkt, der auf das Gateway selbst zeigt, das zu Ihren Zielen ausstrahlt, eingeschlossen, wenn [`telemetry`](#telemetry)-Weiterleitung konfiguriert ist717* Ein OTLP-Endpunkt, der auf das Gateway selbst zeigt, und die Identitätsattribute des angemeldeten Benutzers. Das Gateway leitet die Exporte weiter, die es bei diesem Endpunkt erhält, an Ihre `forward_to`-Ziele. Es schließt den Endpunkt und die Attribute ein, wenn Sie sowohl [`telemetry.forward_to`](#telemetry) als auch `listen.public_url` setzen.

718 

719 Claude Desktop exportiert jedes Signal mit einer Codierung: `http/protobuf`, oder `http/json`, wenn Sie `OTEL_EXPORTER_OTLP_PROTOCOL` oder eine seiner Pro-Signal-Varianten auf `http/json` im `env` der Richtlinie setzen. Vor Claude Code v2.1.261 auf dem Gateway-Server setzte die Antwort `http/json` unabhängig davon, sodass ein Collector, der nur Protobuf akzeptiert, Claude Desktops Exporte ablehnte

689 720 

690Um `disabledBuiltinTools` oder `coworkEgressAllowedHosts` im `desktop`-Block einer Richtlinie zu setzen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server.721Um `disabledBuiltinTools`, `coworkEgressAllowedHosts` oder Claude Desktops eigene `managedMcpServers`-Einstellung im `desktop`-Block einer Richtlinie zu setzen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server. Claude Desktops `managedMcpServers` nimmt einen Array-Wert statt eines Objekts.

691 722 

692Das Gateway lässt Schlüssel ohne Claude Desktop-Äquivalent weg, wie `hooks` und gesteuerter Berechtigungsregeln wie `Bash(npm *)`, aus der Bootstrap-Antwort.723Das Gateway lässt Schlüssel ohne Claude Desktop-Äquivalent weg, wie `hooks` und gesteuerter Berechtigungsregeln wie `Bash(npm *)`, aus der Bootstrap-Antwort.

693 724 


708Jeder Schlüssel ist optional; Claude Desktop wendet seinen eigenen Standard für jeden Schlüssel an, den Sie weglassen. Das Gateway validiert jeden `desktop`-Block beim Start gegen das Konfigurationsschema, das Claude Desktop selbst verwendet, sodass ein Fehler beim Gateway-Start als Fehler auftaucht, der den Schlüssel benennt, anstatt jeden verbundenen Desktop zu erreichen. Das Gateway schlägt beim Start fehl, wenn ein Block enthält:739Jeder Schlüssel ist optional; Claude Desktop wendet seinen eigenen Standard für jeden Schlüssel an, den Sie weglassen. Das Gateway validiert jeden `desktop`-Block beim Start gegen das Konfigurationsschema, das Claude Desktop selbst verwendet, sodass ein Fehler beim Gateway-Start als Fehler auftaucht, der den Schlüssel benennt, anstatt jeden verbundenen Desktop zu erreichen. Das Gateway schlägt beim Start fehl, wenn ein Block enthält:

709 740 

710* Ein unbekannter Schlüssel741* Ein unbekannter Schlüssel

711* Ein erkannter Schlüssel, dessen Wert Claude Desktop ablehnen oder stillschweigend löschen würde, wie ein leerer Wert oder ein falsch geschriebener Unterschlüssel in einem verschachtelten Eintrag742* Ein erkannter Schlüssel, dessen Wert Claude Desktop ablehnen oder stillschweigend löschen würde, wie ein leerer Wert oder ein falsch geschriebener Unterschlüssel in einem verschachtelten Eintrag. Vor v2.1.260 ließ das Gateway ein falsch geschriebenes Feld in einem verschachtelten Objekt eines `managedMcpServers`- oder `orgPluginSettings`-Eintrags stillschweigend fallen, anstatt beim Start zu fehlschlagen.

712* Ein Schlüssel, den das Gateway selbst berechnet: die Inferenzverbindung, die Modellliste und das OTLP-Relais. Konfigurieren Sie diese durch [`upstreams`](#upstreams), [`models`](#models) und den [`telemetry`](#telemetry)-Abschnitt `forward_to`.743* Ein Schlüssel, den das Gateway selbst berechnet: die Inferenzverbindung, die Modellliste und das OTLP-Relais. Konfigurieren Sie diese durch [`upstreams`](#upstreams), [`models`](#models) und den [`telemetry`](#telemetry)-Abschnitt `forward_to`.

713* Ein Legacy-Alias eines aktuellen Schlüssels. Im Boot-Fehler benennt das Gateway den kanonischen Schlüssel zum Schreiben.744* Ein Legacy-Alias eines aktuellen Schlüssels. Im Boot-Fehler benennt das Gateway den kanonischen Schlüssel zum Schreiben.

714 745 

715Wie beim `cli`-Block validiert das Gateway gegen das Schema, das mit seiner installierten Version gebündelt ist. Um eine Einstellung bereitzustellen, die von einer neueren Claude Desktop-Version eingeführt wurde, aktualisieren Sie das Gateway zuerst.746Wenn Sie einen veralteten Wert oder eine Eintrag-Form verwenden, wie einen `managedMcpServers`-Eintrag ohne `transport`, startet das Gateway und protokolliert eine Warnung, die den Ersatz benennt.

747 

748Das Gateway validiert einen `desktop`-Block gegen das Schema, das mit seiner installierten Version gebündelt ist, wie es den `cli`-Block tut. Um eine Einstellung bereitzustellen, die von einer neueren Claude Desktop-Version eingeführt wurde, aktualisieren Sie das Gateway zuerst. Zum Beispiel benötigen `userPluginMarketplacesEnabled` und `userPluginUploadsEnabled` Claude Code v2.1.260 oder später auf dem Gateway-Server und Claude Desktop 1.37937.0 oder später auf den Maschinen der Mitglieder.

749 

750Wenn Sie `orgPluginSettings` im `desktop`-Block einer Richtlinie setzen, bedient das Gateway es in der Array-Form, die Claude Desktop 1.15200.0 und später liest. Ältere Desktops ignorieren das Array und erzwingen keine Plugin-Tool-Richtlinie, also aktualisieren Sie Mitglieder auf 1.15200.0 oder später, bevor Sie sich darauf verlassen.

716 751 

717Das Gateway füllt Schlüssel, die der `desktop`-Block einer Richtlinie nicht setzt, aus dem `match: {}`-Catch-All-`desktop`-Block, auf die gleiche Weise, wie es den `cli`-Block einer Richtlinie aus der Basis füllt. Wenn Sie `disabledBuiltinTools` oder `builtinToolPolicy` sowohl in der Basis als auch in einer Rollen-Richtlinie setzen, behält das Gateway die Einschränkung der Basis:752Das Gateway füllt Schlüssel, die der `desktop`-Block einer Richtlinie nicht setzt, aus dem `match: {}`-Catch-All-`desktop`-Block, auf die gleiche Weise, wie es den `cli`-Block einer Richtlinie aus der Basis füllt. Wenn Sie `disabledBuiltinTools` oder `builtinToolPolicy` sowohl in der Basis als auch in einer Rollen-Richtlinie setzen, behält das Gateway die Einschränkung der Basis:

718 753 


733 768 

734Gateway-Richtlinien gelten für jeden Claude Code-Aufruf auf der Maschine, einschließlich nicht-interaktiver `claude -p`-Läufe und Sessions, die vom Agent SDK erzeugt werden. Wenn das Gateway beim Start nicht erreichbar ist, beenden sich angemeldete Sessions mit einem Fehler, anstatt ohne ihre Richtlinie zu laufen.769Gateway-Richtlinien gelten für jeden Claude Code-Aufruf auf der Maschine, einschließlich nicht-interaktiver `claude -p`-Läufe und Sessions, die vom Agent SDK erzeugt werden. Wenn das Gateway beim Start nicht erreichbar ist, beenden sich angemeldete Sessions mit einem Fehler, anstatt ohne ihre Richtlinie zu laufen.

735 770 

736<Warning>

737 Beim Start lehnt das Gateway `mcpServers` innerhalb eines Richtlinien-`cli`-Blocks ab. Sie können MCP-Server nicht pro Gruppe an Claude Code-Clients verteilen; stellen Sie MCP-Server über die dateibasierte `managed-mcp.json` auf jedem Gerät bereit oder lassen Sie Entwickler sie lokal hinzufügen. Sie können Claude Desktops `managedMcpServers`-Einstellung an Claude Desktop-Clients durch einen `desktop`-Block einer Richtlinie bereitstellen. Um es zu setzen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server.

738</Warning>

739 

740<h3 id="telemetry">771<h3 id="telemetry">

741 `telemetry`772 `telemetry`

742</h3>773</h3>

743 774 

744Die CLI sendet OpenTelemetry Protocol (OTLP) über HTTP-Metriken, Logs und, wenn aktiviert, Traces an das Gateway, das sie wörtlich an jedes konfigurierte Ziel weiterleitet. Siehe [Überwachung der Nutzung](/docs/de/monitoring-usage) für die Metriken und Ereignisse, die die CLI ausgibt.775Die CLI sendet Metriken, Logs und, wenn aktiviert, Traces an das Gateway, das sie wörtlich an jedes konfigurierte Ziel weiterleitet. Die Exporte verwenden OpenTelemetry Protocol (OTLP) über HTTP. Um das Relais zu überspringen und Sessions direkt an Ihren Collector exportieren zu lassen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector). Siehe [Überwachung der Nutzung](/docs/de/monitoring-usage) für die Metriken und Ereignisse, die die CLI ausgibt.

745 776 

746Die CLI stempelt jeden Export mit der Identität des authentifizierten Benutzers, gelesen aus dem Gateway-ausgegebenen JWT: die `user.id`-, `user.email`- und `user.groups`-Attribute. Pro-Entwickler-Kosten- und Nutzungszuordnung funktioniert daher ohne Entwickler-seitige Konfiguration.777Die CLI stempelt jeden Export mit der Identität des authentifizierten Benutzers, gelesen aus dem Gateway-ausgegebenen JWT: die `user.id`-, `user.email`- und `user.groups`-Attribute. Pro-Entwickler-Kosten- und Nutzungszuordnung funktioniert daher ohne Entwickler-seitige Konfiguration.

747 778 

779[Claude Desktop](#claude-desktop-overlay) und Cowork-Sessions, die sich durch das Gateway anmelden, stempeln ihre Telemetrie mit `user.email` und `user.groups` neben `enduser.id`, sodass Sie Terminal-, Desktop- und Cowork-Nutzung mit einer Abfrage auf `user.email` oder `user.groups` abdecken können. `user.groups` ist die kommagetrennte IdP-Gruppenliste.

780 

781Wie alle OpenTelemetry-Daten von Claude Code gehen diese Attribute nur an Ziele, die Ihre Organisation konfiguriert, niemals an Anthropic.

782 

783Wenn die Gruppenliste eines Benutzers länger als 255 Zeichen ist, sobald sie prozentcodiert ist, oder ein Gruppenname ein Komma oder Gleichheitszeichen enthält, lässt das Gateway `user.groups` aus der Desktop- und Cowork-Telemetrie dieses Benutzers weg, anstatt es zu kürzen. Die Terminal-Sessions dieses Benutzers tragen immer noch die vollständige Liste.

784 

785Sie benötigen Claude Code v2.1.265 oder später auf dem Gateway-Server für `user.email` und `user.groups` auf Desktop- und Cowork-Telemetrie, und Claude Desktop 1.24012 oder später auf der Maschine jedes Entwicklers für `user.groups`.

786 

748```yaml theme={null}787```yaml theme={null}

749telemetry:788telemetry:

750 forward_to:789 forward_to:


776 815 

777Für einen In-Cluster-Collector stellen Sie ihn über HTTPS unter seiner eigenen internen Adresse bereit, oder führen Sie ihn als Sidecar mit der Variable gesetzt aus.816Für einen In-Cluster-Collector stellen Sie ihn über HTTPS unter seiner eigenen internen Adresse bereit, oder führen Sie ihn als Sidecar mit der Variable gesetzt aus.

778 817 

779Telemetrie ist in der CLI standardmäßig aus. Das Konfigurieren von `telemetry.forward_to` zusammen mit `listen.public_url` schaltet es ein. Das Gateway pusht sechs Env-Variablen an jeden verbundenen Client durch `/managed/settings`:818Telemetrie ist in der CLI standardmäßig aus. Wenn Sie sowohl `telemetry.forward_to` als auch `listen.public_url` setzen, schaltet das Gateway es für verbundene Clients ein, indem es sechs Umgebungsvariablen durch `/managed/settings` pusht:

780 819 

781* `CLAUDE_CODE_ENABLE_TELEMETRY=1`820* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

782* `OTEL_METRICS_EXPORTER=otlp`821* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` und `OTEL_TRACES_EXPORTER`, jeweils auf `otlp` gesetzt, wenn mindestens ein `forward_to`-Ziel dieses Signal aktiviert, und auf `none` ansonsten

783* `OTEL_LOGS_EXPORTER=otlp`

784* `OTEL_TRACES_EXPORTER=otlp`

785* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`822* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

786* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`823* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

787 824 

788Der gepushte Endpunkt wird aus der öffentlichen URL erstellt, sodass Metriken und Logs keine OTEL-Konfiguration von Entwicklern oder Richtlinien benötigen. Die gepushte Konfiguration wird auf der verwalteten Ebene angewendet, überschreibt `OTEL_*`-Variablen, die ein Entwickler lokal setzt. Unabhängig davon, ob das Gateway diese Variablen pusht, sendet eine CLI, die sich durch `/login` angemeldet hat und OTLP/HTTP-Export aktiviert hat, ihre Exporte an das Gateway statt an einen lokal konfigurierten Endpunkt, und ohne ein `forward_to`-Ziel für ein Signal akzeptiert das Gateway es und verwirft es; wenn Sie bereits Claude Code-Telemetrie direkt sammeln, fügen Sie Ihren Collector als `forward_to`-Ziel hinzu.825Vor Claude Code v2.1.265 auf dem Gateway-Server pushte das Gateway alle drei Exporter-Selektoren als `otlp`, einschließlich für Signale, die kein Ziel aktivierte.

826 

827Der gepushte Endpunkt wird aus der öffentlichen URL erstellt, sodass Metriken und Logs keine OTEL-Konfiguration von Entwicklern oder Richtlinien benötigen.

828 

829Entwickler, die sich durch `/login` anmelden, können ihre Exporte nicht mit ihrer eigenen OTEL-Konfiguration umleiten:

830 

831* **Lokal gesetzte Variablen**: Claude Code wendet die gepushten Variablen auf der verwalteten Ebene an, sodass jede den Wert überschreibt, den ein Entwickler lokal dafür setzt.

832* **Lokal konfigurierte Endpunkte**: Mit OTLP/HTTP-Export aktiviert ignoriert die CLI jeden lokal konfigurierten Endpunkt, unabhängig davon, ob das Gateway die Telemetrie-Variablen gepusht hat. Seine Exporte gehen an das Gateway, es sei denn, eine Richtlinie [benennt Ihren Collector als Endpunkt](#export-directly-to-your-collector).

833 

834Ohne ein `forward_to`-Ziel für ein Signal akzeptiert das Gateway es und verwirft es. Wenn Entwickler bereits Claude Code-Telemetrie an einen Ihrer Collector exportieren, fügen Sie ihn als `forward_to`-Ziel hinzu, mit Logs oder Traces aktiviert, wenn sie diese exportieren, sodass er ihre Daten weiterhin erhält, nachdem sie sich anmelden. Um das Relais stattdessen zu überspringen, [benennen Sie den Collector in einer Richtlinie](#export-directly-to-your-collector).

835 

836[Traces](/docs/de/monitoring-usage#traces-beta) erfordern zusätzlich `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` auf jedem Client. Setzen Sie es in einem verwalteten Richtlinien-`env`-Block, da das Gateway es nicht pusht. Entwickler genehmigen es im gleichen [Sicherheitsgenehmigungsdialog](#managed), den der gepushte Endpunkt bereits auslöst.

789 837 

790[Traces](/docs/de/monitoring-usage#traces-beta) erfordern zusätzlich `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` auf jedem Client. Das Gateway pusht diese Variable nicht, also setzen Sie sie durch einen verwalteten Richtlinien-`env`-Block. Sie ist nicht unter den Variablen, die Claude Code ohne die Genehmigung des Entwicklers anwendet, sodass die Bereitstellung durch eine Richtlinie durch den gleichen [Sicherheitsgenehmigungsdialog](#managed) abgedeckt ist, den der gepushte OTLP-Endpunkt bereits auslöst.838Setzen Sie es auf `1` nur in den Richtlinien, deren Gruppen Sie verfolgen möchten. Eine Richtlinie, die es nicht setzt, erbt den Wert von Ihrer `match: {}`-Catch-All-Richtlinie, wenn diese einen setzt, pro den [Zusammenführungsregeln](#managed). Um zu verhindern, dass die Clients einer Gruppe Traces senden, auch wenn ein Entwickler die Variable lokal setzt, setzen Sie sie auf `0` in der Richtlinie dieser Gruppe.

791 839 

792Sowohl Protobuf- als auch JSON-OTLP-Codierungen werden weitergeleitet, und jedes OpenTelemetry-kompatible Backend funktioniert als Ziel.840Sowohl Protobuf- als auch JSON-OTLP-Codierungen werden weitergeleitet, und jedes OpenTelemetry-kompatible Backend funktioniert als Ziel.

793 841 

842<h4 id="export-directly-to-your-collector">

843 Direkt an Ihren Collector exportieren

844</h4>

845 

846Um Sessions, die sich durch `/login` anmelden, Telemetrie direkt an Ihren Collector senden zu lassen, anstatt durch das Relais, setzen Sie `OTEL_EXPORTER_OTLP_ENDPOINT` auf die `https://`-Basis-URL des Collectors im `env`-Block einer [verwalteten Richtlinie](#managed). Claude Code hängt `/v1/metrics`, `/v1/logs` oder `/v1/traces` an die URL an, die Sie setzen, wie `https://otel-collector.example.com:4318`, und exportiert jedes Signal dort über OTLP/HTTP. Erfordert Claude Code v2.1.265 oder später auf der Maschine jedes Entwicklers. Frühere Clients exportieren durch das Relais.

847 

848Um sich beim Collector zu authentifizieren, setzen Sie `OTEL_EXPORTER_OTLP_HEADERS` im gleichen `env`-Block. Sessions senden niemals das Gateway-Sitzungstoken des Entwicklers an einen Collector, der auf diese Weise benannt wird.

849 

850Wenn Sie diesen Endpunkt in einer Richtlinie hinzufügen oder ändern, fragt Claude Code jeden Entwickler, ihn im [Sicherheitsgenehmigungsdialog](#managed) zu genehmigen, bevor er ihn in einer interaktiven Session anwendet.

851 

852Claude Code überprüft den Endpunkt, bevor es ein Signal direkt exportiert, und behält dieses Signal auf dem Relais, wenn eine Prüfung fehlschlägt. Die Prüfungen schließen ein:

853 

854* Der Endpunkt kommt vom Gateway selbst. Wenn Sie die gleiche Variable in einem MDM-Profil oder einer lokalen `managed-settings.json` setzen, bleiben Exporte auf dem Relais.

855* Die URL verwendet `https://`, oder `http://` zu einer Loopback-Adresse

856* Die URL wird zu einem Pfad aufgelöst, der mit `/v1/<signal>` endet, ohne Abfrage oder Fragment. Claude Code erstellt diesen Pfad selbst aus der generischen Variablen. Es verwendet eine Pro-Signal-Variable wie `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` wie geschrieben, also schließen Sie den vollständigen Pfad dort ein.

857* Die URL ist nicht der eigene Host des Gateways. Ein Endpunkt, der an das Gateway adressiert ist, behält den Relais-Pfad und sein Sitzungstoken.

858* Weder Sie noch der Entwickler haben [`otelHeadersHelper`](/docs/de/settings-reference#otelheadershelper) in einer Einstellungsquelle konfiguriert. Mit einem Helper konfiguriert, bleibt jedes Signal auf dem Relais.

859 

860Der Endpunkt, den Sie benennen, ändert nur, wohin Exporte gehen. Sie wählen immer noch, welche Signale überhaupt exportieren, mit den `OTEL_*_EXPORTER`-Selektoren.

861 

862Der Endpunkt allein schaltet Export nicht ein, also setzen Sie auch die Variablen, die es tun, es sei denn, das Gateway pusht sie bereits:

863 

864* Wenn das Gateway bereits [die Telemetrie-Variablen pusht](#telemetry), decken sie Aktivierung, Selektoren und Protokoll ab, und Ihr expliziter Endpunkt überschreibt den gepushten `<public_url>`-Wert. Setzen Sie einen `OTEL_*_EXPORTER`-Selektor auf `otlp` selbst nur für ein Signal, das kein `forward_to`-Ziel aktiviert.

865* Wenn es nicht, setzen Sie auch `CLAUDE_CODE_ENABLE_TELEMETRY=1`, die `OTEL_*_EXPORTER`-Selektoren und `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`.

866 

867Wenn sich der Entwickler abmeldet oder bei einem anderen Gateway anmeldet, stoppen Exporte an den Collector und Claude Code verwirft jeden verbleibenden Batch, anstatt ihn zu senden.

868 

869<h4 id="when-a-destination-fails">

870 Wenn ein Ziel fehlschlägt

871</h4>

872 

873Das Gateway puffert, wiederholt oder speichert Telemetrie nicht, sodass es einen Export verwirft, der einen Ziel nicht erreicht, anstatt ihn spät zu liefern. Jedes Ziel erfolgreich oder schlägt auf eigene Faust fehl, und der exportierende Client erhält eine Erfolgsmeldung in jedem Fall, sodass eine fehlgeschlagene Lieferung nur im Log des Gateways angezeigt wird.

874 

875Nach fünf aufeinanderfolgenden fehlgeschlagenen Lieferungen an ein Ziel pausiert das Gateway die Weiterleitung daran in 30-Sekunden-Abschnitten, protokolliert jede Pause, bis eine Lieferung erfolgreich ist. Jede Fehlerantwort, Timeout oder Verbindungsfehler zählt als fehlgeschlagene Lieferung, außer `400`, `413`, `415`, `422` und `431`, die bedeuten, dass der Collector diese Exports Payload als fehlgeformt oder zu groß ablehnte.

876 

877Eine abgelehnte Payload rückt weder vor noch setzt den Fehlerzähler zurück: Das Gateway leitet weiterhin an das Ziel weiter und protokolliert eine Warnung, die es und den Status benennt, bei der ersten Ablehnung des Ziels und alle hundert danach.

878 

794<h3 id="http-tuning">879<h3 id="http-tuning">

795 HTTP-Abstimmung880 HTTP-Abstimmung

796</h3>881</h3>


798Vier optionale Top-Level-Blöcke, `access_control`, `limits`, `timeouts` und `rate_limits`, stimmen die HTTP-Oberfläche ab. Die Standardwerte passen zu den meisten Bereitstellungen.883Vier optionale Top-Level-Blöcke, `access_control`, `limits`, `timeouts` und `rate_limits`, stimmen die HTTP-Oberfläche ab. Die Standardwerte passen zu den meisten Bereitstellungen.

799 884 

800| Block | Schlüssel | Standard | Beschreibung |885| Block | Schlüssel | Standard | Beschreibung |

801| ---------------- | ---------------------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |886| ---------------- | ---------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

802| `access_control` | `allow_cidrs` / `deny_cidrs` | leer | Eingehende IP-Zulassung/Ablehnung nach Client-Adresse, nach `trusted_proxies`-Auflösung. `deny_cidrs` wird zuerst überprüft; ein Client, den es passt, wird abgelehnt, auch wenn `allow_cidrs` auch passt. Wenn `allow_cidrs` nicht leer ist, ist das Gateway Standard-Ablehnung. `/healthz` und `/readyz` sind von `allow_cidrs` ausgenommen. |887| `access_control` | `allow_cidrs` / `deny_cidrs` | leer | Eingehende IP-Zulassung/Ablehnung nach Client-Adresse, nach `trusted_proxies`-Auflösung. `deny_cidrs` wird zuerst überprüft; ein Client, den es passt, wird abgelehnt, auch wenn `allow_cidrs` auch passt. Wenn `allow_cidrs` nicht leer ist, ist das Gateway Standard-Ablehnung. `/healthz` und `/readyz` sind von `allow_cidrs` ausgenommen. Wenn ein vertrauenswürdiger Proxy einen `X-Forwarded-For`-Eintrag sendet, der keine IP-Adresse ist, ist der echte Client unbekannt und das Gateway protokolliert eine Warnung einmal, die benennt, was zu überprüfen ist. Wo eine der Listen auf die Anfrage zutrifft, lehnt es sie mit `403` und Audit-Grund `xff_unparseable` ab. Wo keine zutrifft, bedient es die Anfrage und verwendet die Adresse des Proxy selbst als Client-IP für Pro-IP-Rate-Limits und Audit. |

803| `limits` | `max_request_bytes` | 32 MiB | Max eingehende Anfragebody; übergroße Anfragen erhalten `413`, bevor der Body gepuffert wird. Erhöhen Sie für große Datei- oder Bildanfragen. |888| `limits` | `max_request_bytes` | 32 MiB | Max eingehende Anfragebody; übergroße Anfragen erhalten `413`, bevor der Body gepuffert wird. Erhöhen Sie für große Datei- oder Bildanfragen. |

804| `limits` | `max_request_header_bytes` | nicht gesetzt | Wenn gesetzt, geben übergroße Header `431` zurück |889| `limits` | `max_request_header_bytes` | nicht gesetzt | Wenn gesetzt, geben übergroße Header `431` zurück |

805| `limits` | `max_url_length` | nicht gesetzt | Wenn gesetzt, gibt eine zu lange URL `414` zurück |890| `limits` | `max_url_length` | nicht gesetzt | Wenn gesetzt, gibt eine zu lange URL `414` zurück |


878# fail_closed_on_error: false963# fail_closed_on_error: false

879 964 

880# Meter zu vertraglich vereinbarten Sätzen statt USD-Listenpreis. Erfordert admin:.965# Meter zu vertraglich vereinbarten Sätzen statt USD-Listenpreis. Erfordert admin:.

966# Mit managed: gehen die gleichen Sätze auch an angemeldete Clients.

881# Die folgenden Sätze sind Platzhalter, keine echten Vertragspreise.967# Die folgenden Sätze sind Platzhalter, keine echten Vertragspreise.

882# pricing:968# pricing:

883# multiplier: 0.85969# multiplier: 0.85


971 1057 

972`parentSettingsBehavior: "merge"` behält Claude Desktop's Bereitstellung der Egress-Allowlist für seine eingebetteten Claude Code-Sitzungen bei; [Richtlinie für Claude Desktop-Sitzungen bereitstellen](/docs/de/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) erklärt den Mechanismus und wo sich die Opt-in befinden muss.1058`parentSettingsBehavior: "merge"` behält Claude Desktop's Bereitstellung der Egress-Allowlist für seine eingebetteten Claude Code-Sitzungen bei; [Richtlinie für Claude Desktop-Sitzungen bereitstellen](/docs/de/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) erklärt den Mechanismus und wo sich die Opt-in befinden muss.

973 1059 

974Stellen Sie die `managed-settings.json`-Datei auf jedem Gerät bereit, typischerweise über Ihre MDM-Plattform. Der Dateipfad unterscheidet sich je nach Plattform:1060Stellen Sie die `managed-settings.json`-Datei auf jedem Gerät bereit, typischerweise über Ihre MDM-Plattform. Der Dateipfad unterscheidet sich je nach Plattform. Siehe [wo jeder Mechanismus die Richtlinie speichert](/docs/de/managed-settings#where-each-mechanism-stores-the-policy).

975 

976| Plattform | Pfad |

977| ------------- | ---------------------------------------------------------------------------------------------------------------------------------- |

978| macOS | `/Library/Application Support/ClaudeCode/managed-settings.json`, oder die `com.anthropic.claudecode` verwaltete Präferenzen-Domäne |

979| Linux und WSL | `/etc/claude-code/managed-settings.json` |

980| Windows | `C:\Program Files\ClaudeCode\managed-settings.json`, oder Gruppenrichtlinie über die HKLM-Registrierung |

981 1061 

982Standardmäßig ersetzt eine Registrierungsrichtlinie unter Windows oder ein verwaltetes Preferences-Plist unter macOS die `managed-settings.json`-Datei, anstatt sie damit zu zusammenzuführen, mit Ausnahme der [Ausnahmeschlüssel und quellenübergreifenden Überprüfungen oben](#precedence-with-other-managed-sources). Alle drei Schlüssel in diesem Snippet folgen der Regel mit der höchsten Prioritätsquelle, daher müssen Flotten, die Richtlinien über Gruppenrichtlinien oder Konfigurationsprofile bereitstellen, alle drei stattdessen in diesem Mechanismus platzieren.1062Standardmäßig ersetzt eine Registrierungsrichtlinie unter Windows oder ein verwaltetes Preferences-Plist unter macOS die `managed-settings.json`-Datei, anstatt sie damit zu zusammenzuführen, mit Ausnahme der [Ausnahmeschlüssel und quellenübergreifenden Überprüfungen oben](#precedence-with-other-managed-sources). Alle drei Schlüssel in diesem Snippet folgen der Regel mit der höchsten Prioritätsquelle, daher müssen Flotten, die Richtlinien über Gruppenrichtlinien oder Konfigurationsprofile bereitstellen, alle drei stattdessen in diesem Mechanismus platzieren.

983 1063 

Details

62 62 

63Jede 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. Die [Google Cloud](/docs/de/claude-apps-gateway-on-gcp)- und [AWS](/docs/de/claude-apps-gateway-on-aws)-Beispiele haben 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.63Jede 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. Die [Google Cloud](/docs/de/claude-apps-gateway-on-gcp)- und [AWS](/docs/de/claude-apps-gateway-on-aws)-Beispiele haben 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.

64 64 

65Leiten Sie Anfragen nicht an die Device-Authorization- und Token-Endpunkte des Gateways um, z. B. mit einem HTTP-zu-HTTPS- oder Host-Kanonisierungs-Rewrite am Ingress. Claude Code folgt Umleitungen bei diesen Anfragen nicht, daher bricht eine Ingress-Regel, die sie umleitet, die Anmeldung und Token-Aktualisierung.

66 

65Geben Sie dem Proxy ein Idle-Timeout, das länger ist als das Keepalive-Intervall des Gateways, das vom Upstream abhängt:67Geben Sie dem Proxy ein Idle-Timeout, das länger ist als das Keepalive-Intervall des Gateways, das vom Upstream abhängt:

66 68 

67* Bei jedem Upstream außer `provider: anthropic` schreibt das Gateway einen SSE-`ping`, sobald ein Stream etwa 15 Sekunden lang stumm war.69* Bei jedem Upstream außer `provider: anthropic` schreibt das Gateway einen SSE-`ping`, sobald ein Stream etwa 15 Sekunden lang stumm war.


118 Pushen Sie die Gateway-URL zu Entwicklermaschinen120 Pushen Sie die Gateway-URL zu Entwicklermaschinen

119</h3>121</h3>

120 122 

121Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod`, `forceLoginGatewayUrl` und `parentSettingsBehavior: "merge"` ü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 und das Claude-Desktop-`bootstrapUrl`-Äquivalent.123Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod`, `forceLoginGatewayUrl` und `parentSettingsBehavior: "merge"` ü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.

124 

125Sobald Sie die Schlüssel bereitstellen, stoppt Claude Code die Verwendung eines übrigen API-Schlüssels oder claude.ai-Anmeldung auf der Maschine, daher planen Sie den Push zusammen mit Ihren Anmeldeanweisungen. [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschreibt die Meldungen, die Entwickler sehen.

126 

127Siehe [wo jeder Mechanismus die Richtlinie speichert](/docs/de/managed-settings#where-each-mechanism-stores-the-policy) für die Dateipfade und [Client-seitige verwaltete Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) für das Claude-Desktop-`bootstrapUrl`-Äquivalent.

122 128 

123<h2 id="operations">129<h2 id="operations">

124 Betrieb130 Betrieb


134 140 

135* **Audit-Events**: einzeilige JSON pro sicherheitsrelevantes Event. Leiten Sie stderr an Ihren Log-Aggregator. Die ausgegebenen Events umfassen `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` und `admin.limit.delete`. Felder variieren je nach Event:141* **Audit-Events**: einzeilige JSON pro sicherheitsrelevantes Event. Leiten Sie stderr an Ihren Log-Aggregator. Die ausgegebenen Events umfassen `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` und `admin.limit.delete`. Felder variieren je nach Event:

136 * Erfolgreiche Mint- und Refresh-Events tragen `sub`, `email`, `client_ip` und das Ergebnis142 * Erfolgreiche Mint- und Refresh-Events tragen `sub`, `email`, `client_ip` und das Ergebnis

137 * `auth.denied` und `access.denied` tragen den Grund und die Client-IP, plus den Anfragepfad für `auth.denied`, da bei diesen Ablehnungen keine Benutzeridentität existiert143 * `auth.denied` und `access.denied` tragen den Grund und die Client-IP, plus den Anfragepfad für `auth.denied`, da bei diesen Ablehnungen keine Benutzeridentität existiert. Zwei `access.denied`-Gründe ändern, was das Event trägt:

144 * `xff_unparseable`: das Event trägt auch den `X-Forwarded-For`-Eintrag, der nicht gelesen werden konnte

145 * `client_ip_unknown`: das Event trägt keine Client-IP, da die Verbindung keine Peer-Adresse hatte, während eine `access_control`-Liste gesetzt war

138 * `inference` zeichnet auf, welcher Upstream die Anfrage bedient hat und den Antwortstatus146 * `inference` zeichnet auf, welcher Upstream die Anfrage bedient hat und den Antwortstatus

139 * `desktop_bootstrap.denied` zeichnet einen abgelehnten Claude Desktop Bootstrap-Abruf mit dem Grund (`not_configured`, `policy_not_opted_in` oder `no_policy_matched`) und der Identität des Benutzers auf147 * `desktop_bootstrap.denied` zeichnet einen abgelehnten Claude Desktop Bootstrap-Abruf mit dem Grund (`not_configured`, `policy_not_opted_in` oder `no_policy_matched`) und der Identität des Benutzers auf

140 * `admin.denied` zeichnet einen abgelehnten Admin-API-Auth-Versuch mit der Client-IP, Methode, Pfad und einem Grund auf, ohne das präsentierte Schlüsselmaterial: `invalid_key`, wenn ein `x-api-key` präsentiert wurde, aber keinen konfigurierten Schlüssel entsprach, `bearer_rejected`, wenn nur ein `Authorization`-Header präsentiert wurde und er sich nicht als Gateway-Sitzung in `admin.admin_groups` verifizierte, oder `no_credentials`, wenn keiner der Header präsentiert wurde148 * `admin.denied` zeichnet einen abgelehnten Admin-API-Auth-Versuch mit der Client-IP, Methode, Pfad und einem Grund auf, ohne das präsentierte Schlüsselmaterial: `invalid_key`, wenn ein `x-api-key` präsentiert wurde, aber keinen konfigurierten Schlüssel entsprach, `bearer_rejected`, wenn nur ein `Authorization`-Header präsentiert wurde und er sich nicht als Gateway-Sitzung in `admin.admin_groups` verifizierte, oder `no_credentials`, wenn keiner der Header präsentiert wurde


272Die 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.280Die 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.

273 281 

274| Symptom | Ursache | Behebung |282| Symptom | Ursache | Behebung |

275| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |283| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

276| 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 |284| 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 |

285| Die Anfragen eines Entwicklers schlagen mit `Not signed in to the Cloud gateway — run /login.` fehl | Die verwalteten Einstellungen der Maschine setzen `forceLoginMethod: "gateway"` oder `forceLoginGatewayUrl`, und die Sitzung hat keine Gateway-Anmeldung. Eine verbleibende claude.ai-Anmeldung erfüllt die Anforderung nicht. | Lassen Sie den Entwickler `/login` ausführen und die Gateway-Anmeldung abschließen. Siehe auch [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

277| Claude Desktop meldet, dass seine Bootstrap-Konfiguration nicht abgerufen werden konnte | `/user/bootstrap` gab 404 zurück: die Richtlinie, die dem Benutzer entspricht, trägt keinen `desktop`-Schlüssel, oder es wurde keine Richtlinie gefunden. Das Gateway-Audit-Protokoll zeichnet jede Ablehnung als `desktop_bootstrap.denied` mit dem Grund auf. | Fügen Sie einen `desktop`-Block zur Richtlinie hinzu, die dem Benutzer entspricht, oder zur `match: {}`-Basisebene; ein leeres `desktop: {}` reicht aus. Siehe [Claude-Desktop-Overlay](/docs/de/claude-apps-gateway-config#claude-desktop-overlay). |286| Claude Desktop meldet, dass seine Bootstrap-Konfiguration nicht abgerufen werden konnte | `/user/bootstrap` gab 404 zurück: die Richtlinie, die dem Benutzer entspricht, trägt keinen `desktop`-Schlüssel, oder es wurde keine Richtlinie gefunden. Das Gateway-Audit-Protokoll zeichnet jede Ablehnung als `desktop_bootstrap.denied` mit dem Grund auf. | Fügen Sie einen `desktop`-Block zur Richtlinie hinzu, die dem Benutzer entspricht, oder zur `match: {}`-Basisebene; ein leeres `desktop: {}` reicht aus. Siehe [Claude-Desktop-Overlay](/docs/de/claude-apps-gateway-config#claude-desktop-overlay). |

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 |287| 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 |

288| Startup oder `/login` meldet `Claude Code may not be enabled for your organization` nach einer 403 beim Laden der verwalteten Einstellungen | Das Gateway oder etwas davor hat die `/managed/settings`-Anfrage mit 403 beantwortet. Die Gateway-eigene Einstellungsroute antwortet niemals mit 403. Der Status stammt von den [`access_control`](/docs/de/claude-apps-gateway-config#http-tuning)-IP-Überprüfungen oder von einem Proxy oder WAF vor dem Gateway. Das Audit-Protokoll zeichnet eine IP-Überprüfungs-Ablehnung als `access.denied` mit dem Grund auf. Der Entwickler bleibt angemeldet. | Überprüfen Sie das Audit-Protokoll auf `access.denied` zum Zeitpunkt des Fehlers und beheben Sie die `access_control`-Listen oder das Front-End, dann lassen Sie den Entwickler `claude` erneut starten |

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. | 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). |289| 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. | 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 would go through proxy <proxy>, which is not on a private network` | 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. Die Nachricht benennt den genauen `NO_PROXY`-Eintrag, der hinzugefügt werden soll |290| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | 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. Die Nachricht benennt den genauen `NO_PROXY`-Eintrag, der hinzugefügt werden soll |

281| CLI `/login`: `Could not resolve the configured HTTP proxy` | Der Hostname in `HTTPS_PROXY` oder `HTTP_PROXY` wird von der Entwicklermaschine nicht aufgelöst, typischerweise weil sie nicht mit dem Unternehmens-Netzwerk verbunden ist | Lassen Sie den Entwickler sich mit Ihrem Netzwerk oder VPN verbinden und versuchen Sie erneut, oder beheben Sie die Proxy-URL |291| CLI `/login`: `Could not resolve the configured HTTP proxy` | Der Hostname in `HTTPS_PROXY` oder `HTTP_PROXY` wird von der Entwicklermaschine nicht aufgelöst, typischerweise weil sie nicht mit dem Unternehmens-Netzwerk verbunden ist | Lassen Sie den Entwickler sich mit Ihrem Netzwerk oder VPN verbinden und versuchen Sie erneut, oder beheben Sie die Proxy-URL |


286| Boot beendet mit einem Postgres-Berechtigungsfehler | Die Datenbankrolle fehlen DDL-Rechte auf ihrem Schema | Gewähren Sie der Rolle `CREATE` auf dem Gateway-Schema, damit sie seine Tabellen beim Boot erstellen und ändern kann |296| Boot beendet mit einem Postgres-Berechtigungsfehler | Die Datenbankrolle fehlen DDL-Rechte auf ihrem Schema | Gewähren Sie der Rolle `CREATE` auf dem Gateway-Schema, damit sie seine Tabellen beim Boot erstellen und ändern kann |

287| `/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`. |297| `/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| Protokoll: `token exchange failed request_id=<id>: id_token missing email claim` | Der IdP enthält `email` nicht standardmäßig im id\_token. Diese Ablehnung wird nur ausgelöst, wenn `allowed_email_domains` gesetzt ist; ohne sie prägt ein fehlende E-Mail eine Sitzung ohne E-Mail | Konfigurieren Sie den IdP, um `email` im id\_token auszugeben. Okta: Fügen Sie `email` zu den ID-Token-Claims eines benutzerdefinierten Autorisierungsservers hinzu. Entra: Fügen Sie `email` als optionalen Claim bei der App-Registrierung hinzu. PingFederate: Aktivieren Sie eine OpenID-Connect-Richtlinie, die `email` ausgibt. Wenn der IdP `email` vom Userinfo-Endpoint bedient, aber nicht im id\_token einbeziehen wird, wie der Okta-Org-Autorisierungsserver, setzen Sie `oidc.userinfo_fallback: true`. |298| Protokoll: `token exchange failed request_id=<id>: id_token missing email claim` | Der IdP enthält `email` nicht standardmäßig im id\_token. Diese Ablehnung wird nur ausgelöst, wenn `allowed_email_domains` gesetzt ist; ohne sie prägt ein fehlende E-Mail eine Sitzung ohne E-Mail | Konfigurieren Sie den IdP, um `email` im id\_token auszugeben. Okta: Fügen Sie `email` zu den ID-Token-Claims eines benutzerdefinierten Autorisierungsservers hinzu. Entra: Fügen Sie `email` als optionalen Claim bei der App-Registrierung hinzu. PingFederate: Aktivieren Sie eine OpenID-Connect-Richtlinie, die `email` ausgibt. Wenn der IdP `email` vom Userinfo-Endpoint bedient, aber nicht im id\_token einbeziehen wird, wie der Okta-Org-Autorisierungsserver, setzen Sie `oidc.userinfo_fallback: true`. |

299| Protokoll: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, und Entwickler sehen `Cloud gateway session expired` alle `session.ttl_hours` | Der IdP akzeptierte den Refresh-Token, gab aber keinen id\_token damit zurück, daher fragte das Gateway den Userinfo-Endpoint des IdP nach den Claims des Benutzers. Der IdP lehnte den erneuerten Access-Token dort ab. Das Gateway antwortet `temporarily_unavailable`, daher behält Claude Code den Refresh-Token, kann aber die Sitzung nicht erneuern. Gateway-Versionen vor v2.1.260 protokollieren dieselbe Zeile ohne das `(at …)`-Detail. | Setzen Sie [`oidc.scope_on_refresh: true`](/docs/de/claude-apps-gateway-config#oidc), verfügbar in Gateway v2.1.260 oder später, damit die Refresh-Anfrage erneut nach `openid` fragt. Einige IdPs, wie Okta, geben einen id\_token bei Refresh nur zurück, wenn gefragt. Auf PingFederate aktivieren Sie stattdessen **Return ID Token On Refresh Grant** unter **Applications > OAuth > OpenID Connect Policy Management**. Der Schlüssel ändert das Verhalten von PingFederate nicht. Für andere IdPs, die ihn immer noch weglassen, überprüfen Sie, ob der Userinfo-Endpoint Access-Token akzeptiert, die von einem Refresh ausgestellt wurden. Als Übergangslösung erhöhen Sie [`session.ttl_hours`](/docs/de/claude-apps-gateway-config#session). Siehe [Identity-Provider-Setup](#identity-provider-setup) für den Deprovisioning-Tradeoff. |

289| Jede Amazon-Bedrock-Anfrage gibt 502 zurück; Protokoll zeigt `Could not load credentials from any providers` | Auf EC2 blockiert IMDSv2s Standard-Hop-Limit von 1 die Instanz-Metadata-Anfrage von innerhalb des Containers. Boot und `/readyz` bestehen trotzdem, da das AWS SDK Instanz-Anmeldedaten bei der ersten Anfrage auflöst, nicht bei der Client-Konstruktion | Erhöhen Sie das Hop-Limit mit `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oder setzen Sie es in der Launch-Vorlage. Die Änderung gilt für jeden Container auf der Instanz. Bevorzugen Sie ECS-Task-Rollen, wo verfügbar, die Anmeldedaten vom ECS-Container-Credentials-Endpoint lesen und die Änderung ganz vermeiden, oder wenden Sie die Änderung auf einer dedizierten Gateway-Instanz an, um die Exposition zu begrenzen. |300| Jede Amazon-Bedrock-Anfrage gibt 502 zurück; Protokoll zeigt `Could not load credentials from any providers` | Auf EC2 blockiert IMDSv2s Standard-Hop-Limit von 1 die Instanz-Metadata-Anfrage von innerhalb des Containers. Boot und `/readyz` bestehen trotzdem, da das AWS SDK Instanz-Anmeldedaten bei der ersten Anfrage auflöst, nicht bei der Client-Konstruktion | Erhöhen Sie das Hop-Limit mit `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oder setzen Sie es in der Launch-Vorlage. Die Änderung gilt für jeden Container auf der Instanz. Bevorzugen Sie ECS-Task-Rollen, wo verfügbar, die Anmeldedaten vom ECS-Container-Credentials-Endpoint lesen und die Änderung ganz vermeiden, oder wenden Sie die Änderung auf einer dedizierten Gateway-Instanz an, um die Exposition zu begrenzen. |

290| IdP-Fehler: unknown or unsupported scope | Der IdP lehnt Scopes ab, die er nicht erkennt | Setzen Sie `oidc.scopes` auf genau die Liste, die Ihr IdP akzeptiert; sie muss `openid` enthalten. Der Standard ist `openid profile email offline_access`. |301| IdP-Fehler: unknown or unsupported scope | Der IdP lehnt Scopes ab, die er nicht erkennt | Setzen Sie `oidc.scopes` auf genau die Liste, die Ihr IdP akzeptiert; sie muss `openid` enthalten. Der Standard ist `openid profile email offline_access`. |

291| Sitzungen erneuern sich nicht stillschweigend nach dem Setzen von `oidc.scopes` | `offline_access` wurde aus der Überschreibung gelöscht | Fügen Sie `offline_access` zurück, wenn Ihr IdP es unterstützt. Ohne einen Refresh-Token führen Entwickler die Browser-Anmeldung alle `session.ttl_hours` erneut aus. |302| Sitzungen erneuern sich nicht stillschweigend nach dem Setzen von `oidc.scopes` | `offline_access` wurde aus der Überschreibung gelöscht | Fügen Sie `offline_access` zurück, wenn Ihr IdP es unterstützt. Ohne einen Refresh-Token führen Entwickler die Browser-Anmeldung alle `session.ttl_hours` erneut aus. |


296| 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 |307| 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| 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. |308| 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. |

298| CLI `/login` schließt die Browser-Anmeldung ab, dann endet die Sitzung mit `Cloud gateway sign-in was not completed` und einem TLS-Zertifikat-Mismatch | Bei der ersten Anfrage nach der Anmeldung präsentierte das Gateway ein Zertifikat, das nicht dem Fingerprint entspricht, den Claude Code angeheftet hat, daher behielt Claude Code keine Gateway-Anmeldedaten. Die üblichen Ursachen sind Replikationen hinter einer Adresse, die unterschiedliche Zertifikate bedienen, oder etwas auf dem Netzwerkpfad, das TLS abfängt. | Bedienen Sie ein Zertifikat für den Hostnamen, zum Beispiel durch einmaliges Beenden von TLS beim Ingress, dann lassen Sie den Entwickler `/login` erneut ausführen. Wenn sich dieses Zertifikat vom angehefteten unterscheidet, zeigt Claude Code die [Vertrauens-Aufforderung](/docs/de/claude-apps-gateway#connect-developers) erneut mit einer Warnung an, dass sich das Zertifikat geändert hat. |309| CLI `/login` schließt die Browser-Anmeldung ab, dann endet die Sitzung mit `Cloud gateway sign-in was not completed` und einem TLS-Zertifikat-Mismatch | Bei der ersten Anfrage nach der Anmeldung präsentierte das Gateway ein Zertifikat, das nicht dem Fingerprint entspricht, den Claude Code angeheftet hat, daher behielt Claude Code keine Gateway-Anmeldedaten. Die üblichen Ursachen sind Replikationen hinter einer Adresse, die unterschiedliche Zertifikate bedienen, oder etwas auf dem Netzwerkpfad, das TLS abfängt. | Bedienen Sie ein Zertifikat für den Hostnamen, zum Beispiel durch einmaliges Beenden von TLS beim Ingress, dann lassen Sie den Entwickler `/login` erneut ausführen. Wenn sich dieses Zertifikat vom angehefteten unterscheidet, zeigt Claude Code die [Vertrauens-Aufforderung](/docs/de/claude-apps-gateway#connect-developers) erneut mit einer Warnung an, dass sich das Zertifikat geändert hat. |

310| CLI `/login` stoppt mit `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Eine Anmeldungs-Anfrage erreichte einen Server, dessen Zertifikat nicht dem entspricht, das der Entwickler akzeptiert hat, als `/login` begann: Replikationen hinter einer Adresse, die unterschiedliche Zertifikate bedienen, TLS-Abfangung auf dem Pfad, oder eine Zertifikat-Rotation während der Anmeldung. | Bedienen Sie ein Zertifikat für den Hostnamen, dann lassen Sie den Entwickler die Anmeldung erneut starten und überprüfen Sie das neue Zertifikat bei der [Vertrauens-Aufforderung](/docs/de/claude-apps-gateway#connect-developers). |

299 311 

300Die Mismatch-Nachricht enthält den Gateway-Hostnamen und die ersten 16 Zeichen jedes Fingerprints, den angehefteten und den präsentierten.312Die `Cloud gateway sign-in was not completed`-Nachricht benennt den Gateway-Hostnamen. Wenn Claude Code sowohl den angehefteten Fingerprint als auch den präsentierten hat, zeigt die Nachricht auch die ersten 16 Zeichen jedes.

301 313 

302Wenn Claude Code `couldn't load your organization's managed settings` nach einer Gateway-Anmeldung meldet, benennt Claude Code den Grund, startet an Ort und Stelle neu und setzt das Gespräch fort. Wenn Claude Code nicht neu starten kann, zum Beispiel in einer Hintergrund-Sitzung, beendet Claude Code die Sitzung und behält die Anmeldung.314Wenn Claude Code `couldn't load your organization's managed settings` nach einer Gateway-Anmeldung meldet, benennt Claude Code den Grund, startet an Ort und Stelle neu und setzt das Gespräch fort. Wenn Claude Code nicht neu starten kann, zum Beispiel in einer Hintergrund-Sitzung, beendet Claude Code die Sitzung und behält die Anmeldung.

303 315 

claude-apps-gateway-on-aws.md +554 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude-Apps-Gateway auf AWS bereitstellen

6 

7> Ein praktisches Beispiel für die Ausführung von Claude-Apps-Gateway auf AWS: ECS Fargate oder EKS, Amazon RDS für PostgreSQL, AWS Secrets Manager und IAM-rollenbasierte Authentifizierung bei Amazon Bedrock.

8 

9<Note>

10 Diese Seite zeigt eine Möglichkeit, Claude-Apps-Gateway auf AWS auszuführen. Die Konfiguration ist ein funktionierendes Beispiel für kundenverwaltete Infrastruktur und keine unterstützte Produktionsbereitstellung. Nutzen Sie sie, um zu verstehen, wie die einzelnen Komponenten zusammenpassen, bevor Sie sie an Ihre eigene Umgebung anpassen. Für die plattformunabhängigen Anforderungen siehe den [Bereitstellungsleitfaden](/docs/de/claude-apps-gateway-deploy).

11</Note>

12 

13Dieses Beispiel stellt Claude-Apps-Gateway auf AWS mit Amazon Bedrock als Modell-Upstream bereit und nutzt entweder [Amazon ECS](https://aws.amazon.com/ecs/) auf [AWS Fargate](https://aws.amazon.com/fargate/) oder [Amazon EKS](https://aws.amazon.com/eks/) für die Berechnung. [Okta](https://www.okta.com/) ist der Beispiel-Identitätsanbieter (IdP), aber jeder OpenID Connect (OIDC) konforme IdP funktioniert. Siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup) für Details pro IdP.

14 

15<Note>

16 Bedrock ist nicht der einzige Claude-Upstream auf AWS. Das Gateway unterstützt auch Claude Platform on AWS, die von Anthropic betriebene Claude-API mit AWS-Authentifizierung und AWS-Marketplace-Abrechnung, anstelle von Bedrock oder neben ihm. Der Upstream-Eintrag, die Anmeldedaten und die IAM-Berechtigungen unterscheiden sich von den auf dieser Seite beschriebenen Bedrock-spezifischen; die [Claude Platform on AWS Upstream-Referenz](/docs/de/claude-apps-gateway-config#claude-platform-on-aws) behandelt, was sich ändert, und der Rest dieser Seite gilt unverändert.

17</Note>

18 

19<h2 id="architecture">

20 Architektur

21</h2>

22 

23<Frame caption="Die Beispielarchitektur mit Amazon Bedrock als Modell-Upstream. Ein Claude Platform on AWS Upstream nimmt die gleiche Position ein.">

24 <img src="https://mintcdn.com/claude-code/PHweeRmDUYEKff49/images/claude-gateway-aws-architecture.svg?fit=max&auto=format&n=PHweeRmDUYEKff49&q=85&s=8599cc34aa28522cde208ee831439bb4" alt="Diagramm von Claude-Apps-Gateway auf AWS: Claude Code Clients verbinden sich über HTTPS mit einem internen Application Load Balancer, der das Gateway (ECS Fargate oder EKS) frontet, das in privaten Subnetzen neben einer Amazon RDS für PostgreSQL Instanz für Sitzungszustand läuft. Das Gateway meldet Benutzer über OIDC gegen den Unternehmens-IdP an, liest Geheimnisse aus AWS Secrets Manager, leitet Modellanfragen an Amazon Bedrock mit seiner IAM-Rolle weiter und zieht sein Image bei der Bereitstellung aus Amazon ECR." width="820" height="430" data-path="images/claude-gateway-aws-architecture.svg" />

25</Frame>

26 

27Das Gateway läuft als privater HTTPS-Endpunkt in Ihrem Netzwerk, bei dem sich Entwickler über Ihren IdP anmelden. Ihre Claude Code Sitzungen erreichen Claude-Modelle auf Amazon Bedrock über die IAM-Rolle des Gateways, sodass keine Modellanmeldedaten auf Entwicklermaschinen landen. Die Referenzkonfiguration stellt bereit:

28 

29* **Amazon ECS auf AWS Fargate** Service oder **Amazon EKS** Deployment, das den Gateway-Container ausführt

30* **Amazon ECR** Repository für das Gateway-Image

31* **Amazon RDS für PostgreSQL** Instanz in privaten Subnetzen, nicht öffentlich zugänglich, für den [Store](/docs/de/claude-apps-gateway-config#store) des Gateways

32* **AWS Secrets Manager** Geheimnisse für den JWT-Signaturschlüssel, das OIDC-Client-Geheimnis und die Postgres-URL

33* **IAM-Rolle** mit `bedrock:InvokeModel`, `bedrock:InvokeModelWithResponseStream` und `bedrock:CountTokens`, angehängt als ECS-Task-Rolle oder gebunden über IAM Roles for Service Accounts (IRSA) auf EKS

34* **Interner Application Load Balancer** für HTTPS

35 

36<h2 id="prerequisites">

37 Voraussetzungen

38</h2>

39 

40Die Anleitung erstellt die eigenen Ressourcen des Gateways, basiert aber auf Netzwerk- und Identitätsinfrastruktur, die Sie bereits haben. Bevor Sie beginnen, benötigen Sie:

41 

42* Ein AWS-Konto mit Berechtigung zum Erstellen der [oben genannten Ressourcen](#architecture)

43* Die [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) installiert und [authentifiziert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html), sowie [Docker](https://docs.docker.com/get-started/get-docker/) lokal installiert

44* Ein [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) mit mindestens zwei [privaten Subnetzen](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in verschiedenen Verfügbarkeitszonen mit ausgehendem Internetzugang über ein [NAT-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html); der interne Load Balancer benötigt Subnetze in zwei AZs, und das Gateway benötigt Egress zu Bedrock und Ihrem IdP

45* Eine Okta OIDC-Webanwendung mit Redirect-URI `https://<gateway-host>/oauth/callback`; siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup)

46* Ein TLS-Hostname für das Gateway, typischerweise ein interner DNS-Name in einer [Route 53 privaten gehosteten Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html), der auf den Load Balancer zeigt, mit einem [ACM-Zertifikat](https://docs.aws.amazon.com/acm/latest/userguide/gs.html) für diesen Namen, importiert oder ausgestellt von [AWS Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)

47 

48<h3 id="set-your-environment-variables">

49 Legen Sie Ihre Umgebungsvariablen fest

50</h3>

51 

52Jeder Befehl auf dieser Seite liest vier Werte aus Ihrer Shell: `AWS_REGION`, `ACCOUNT_ID`, `VPC_ID` und `PRIVATE_SUBNETS`.

53 

54Wählen Sie eine US-Region, in der Bedrock die Claude-Modelle bereitstellt, die Sie benötigen. Die Anleitung basiert auf dem integrierten Modellkatalog des Gateways, der zu `us.anthropic.*` Inferenzprofilen aufgelöst wird, und die IAM-Richtlinie gewährt diese ARNs. In einer nicht-US-Region fügen Sie einen [`models:` Block](/docs/de/claude-apps-gateway-config#models) mit den Inferenzprofil-IDs dieser Region hinzu und ändern das ARN-Präfix der IAM-Richtlinie entsprechend.

55 

56Wenn Sie die VPC-ID nicht zur Hand haben, listen Sie Ihre VPCs mit `aws ec2 describe-vpcs` auf und listen Sie dann die Subnetze dieser VPC auf, um zwei private in verschiedenen Verfügbarkeitszonen zu finden:

57 

58```bash theme={null}

59aws ec2 describe-subnets --filters "Name=vpc-id,Values=<your-vpc-id>" \

60 --query 'Subnets[].{ID:SubnetId,AZ:AvailabilityZone,CIDR:CidrBlock}' --output table

61```

62 

63Exportieren Sie alle vier, bevor Sie fortfahren:

64 

65```bash theme={null}

66export AWS_REGION=us-east-1 # eine US-Region, in der Bedrock die Claude-Modelle bereitstellt, die Sie benötigen

67export ACCOUNT_ID="$(aws sts get-caller-identity --query Account --output text)"

68export VPC_ID=<your-vpc-id>

69export PRIVATE_SUBNETS="<subnet-id-a> <subnet-id-b>"

70```

71 

72<h2 id="deploy-the-gateway">

73 Stellen Sie das Gateway bereit

74</h2>

75 

76Die folgenden Schritte stellen die vollständige Bereitstellung mit `aws` Befehlen bereit.

77 

78<Steps>

79 <Step title="Erstellen Sie die Sicherheitsgruppen">

80 Drei Sicherheitsgruppen verketten den Verkehrspfad: Ihr Unternehmensnetzwerk erreicht den Load Balancer auf 443, der Load Balancer erreicht das Gateway auf 8080, und das Gateway erreicht Postgres auf 5432. Nichts anderes ist erreichbar. Wie Sie sie anhängen, hängt vom Compute-Pfad ab:

81 

82 * Auf ECS Fargate hängt der Bereitstellungsschritt `$ALB_SG` an den Load Balancer und `$GW_SG` an den Service an.

83 * Auf EKS erstellt der AWS Load Balancer Controller seine eigene Frontend-Sicherheitsgruppe für den ALB, daher werden `$ALB_SG` und `$GW_SG` nicht verwendet: die Annotation `inbound-cidrs` des Bereitstellungsschritts beschränkt den Listener auf Ihr Unternehmensnetzwerk, und die Datenbanksicherheitsgruppe lässt stattdessen die Sicherheitsgruppe des Clusters zu.

84 

85 ```bash theme={null}

86 ALB_SG="$(aws ec2 create-security-group --group-name claude-gateway-alb \

87 --description "Claude gateway ALB" --vpc-id "$VPC_ID" \

88 --query GroupId --output text)"

89 GW_SG="$(aws ec2 create-security-group --group-name claude-gateway-svc \

90 --description "Claude gateway service" --vpc-id "$VPC_ID" \

91 --query GroupId --output text)"

92 DB_SG="$(aws ec2 create-security-group --group-name claude-gateway-db \

93 --description "Claude gateway Postgres" --vpc-id "$VPC_ID" \

94 --query GroupId --output text)"

95 

96 aws ec2 authorize-security-group-ingress --group-id "$ALB_SG" \

97 --protocol tcp --port 443 --cidr <your-corporate-cidr>

98 aws ec2 authorize-security-group-ingress --group-id "$GW_SG" \

99 --protocol tcp --port 8080 --source-group "$ALB_SG"

100 aws ec2 authorize-security-group-ingress --group-id "$DB_SG" \

101 --protocol tcp --port 5432 --source-group "$GW_SG"

102 ```

103 </Step>

104 

105 <Step title="Erstellen Sie die IAM-Rollen und reichen Sie das Use-Case-Formular ein">

106 Das Gateway läuft mit einer dedizierten Task-Rolle, deren einzige Berechtigung das Aufrufen von Claude-Modellen auf Bedrock ist. Gemäß der [Bedrock Upstream-Referenz](/docs/de/claude-apps-gateway-config#amazon-bedrock) muss die Richtlinie sowohl die Cross-Region-Inferenzprofil-ARNs als auch die zugrunde liegenden Foundation-Model-ARNs abdecken:

107 

108 ```bash theme={null}

109 cat > bedrock-invoke.json <<EOF

110 {

111 "Version": "2012-10-17",

112 "Statement": [{

113 "Effect": "Allow",

114 "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream", "bedrock:CountTokens"],

115 "Resource": [

116 "arn:aws:bedrock:${AWS_REGION}:${ACCOUNT_ID}:inference-profile/us.anthropic.*",

117 "arn:aws:bedrock:*::foundation-model/anthropic.*"

118 ]

119 }]

120 }

121 EOF

122 cat > ecs-trust.json <<'EOF'

123 {

124 "Version": "2012-10-17",

125 "Statement": [{

126 "Effect": "Allow",

127 "Principal": { "Service": "ecs-tasks.amazonaws.com" },

128 "Action": "sts:AssumeRole"

129 }]

130 }

131 EOF

132 

133 aws iam create-role --role-name claude-gateway-task \

134 --assume-role-policy-document file://ecs-trust.json

135 aws iam put-role-policy --role-name claude-gateway-task \

136 --policy-name bedrock-invoke --policy-document file://bedrock-invoke.json

137 ```

138 

139 ECS benötigt auch eine Ausführungsrolle, die der ECS-Agent selbst verwendet, um das Image aus ECR zu ziehen und die später erstellten Secrets Manager-Werte einzuspritzen. Sie ist getrennt von der Task-Rolle, die das Gateway zur Laufzeit mit dem AWS SDK verwendet:

140 

141 ```bash theme={null}

142 aws iam create-role --role-name claude-gateway-execution \

143 --assume-role-policy-document file://ecs-trust.json

144 aws iam attach-role-policy --role-name claude-gateway-execution \

145 --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

146 cat > secrets-read.json <<EOF

147 {

148 "Version": "2012-10-17",

149 "Statement": [{

150 "Effect": "Allow",

151 "Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"],

152 "Resource": [

153 "arn:aws:secretsmanager:${AWS_REGION}:${ACCOUNT_ID}:secret:gateway-jwt-secret-??????",

154 "arn:aws:secretsmanager:${AWS_REGION}:${ACCOUNT_ID}:secret:gateway-oidc-client-secret-??????",

155 "arn:aws:secretsmanager:${AWS_REGION}:${ACCOUNT_ID}:secret:gateway-postgres-url-??????"

156 ]

157 }]

158 }

159 EOF

160 aws iam put-role-policy --role-name claude-gateway-execution \

161 --policy-name read-gateway-secrets --policy-document file://secrets-read.json

162 ```

163 

164 Die Richtlinie nennt eine ARN pro Geheimnis statt eines bloßen `gateway-*` Wildcards, das in einem gemeinsamen Konto auch nicht verwandte Geheimnisse abgleichen würde; das nachfolgende `-??????` gleicht genau das zufällige sechsstellige Suffix ab, das Secrets Manager an jede Geheimnis-ARN anhängt. Ein nachfolgendes `-*` wäre ein einfaches Präfix-Glob und würde auch längere Namen wie `gateway-postgres-url-prod` abgleichen.

165 

166 Die IAM-Richtlinie gewährt dem Gateway die Berechtigung, Bedrock aufzurufen, und Bedrock ermöglicht den Modellzugriff standardmäßig in kommerziellen Regionen. Das verbleibende Konto-Level-Gate ist Anthropics einmaliges Use-Case-Formular: Wenn niemand in Ihrem Konto es eingereicht hat, öffnen Sie die [Amazon Bedrock Konsole](https://console.aws.amazon.com/bedrock/), wählen Sie ein Anthropic-Modell aus dem Modellkatalog und füllen Sie das Formular aus. Der Zugriff wird unmittelbar nach der Einreichung gewährt; siehe [Claude Code auf Amazon Bedrock](/docs/de/amazon-bedrock#1-submit-use-case-details) für das AWS Organizations Formular und die IAM-Berechtigungen, die der Einreicher benötigt.

167 

168 Der EKS-Pfad verwendet beide Richtliniendokumente stattdessen auf einer IRSA-Rolle anstelle der zwei ECS-Rollen; siehe den Bereitstellungsschritt.

169 </Step>

170 

171 <Step title="Stellen Sie Amazon RDS für PostgreSQL bereit">

172 Die Instanz läuft in den privaten Subnetzen ohne öffentliche Adresse und mit aktivierter Speicherverschlüsselung. Die Engine-Version ist auf Postgres 16 festgelegt, was den unterstützten Boden des Gateways von PostgreSQL 14 erfüllt und garantiert, dass die Parametergruppe unten mit der Instanz übereinstimmt.

173 

174 Erstellen Sie zunächst die Subnet-Gruppe, die die Datenbank in den privaten Subnetzen platziert, und eine Parametergruppe mit `rds.force_ssl=1`, damit der Server Klartextverbindungen ablehnt. Die Engine-Version ist einmal festgelegt, da die Parametergruppen-Familie mit der Engine-Hauptversion übereinstimmen muss, die die Instanz ausführt:

175 

176 ```bash theme={null}

177 aws rds create-db-subnet-group --db-subnet-group-name claude-gateway-db \

178 --db-subnet-group-description "Claude gateway" --subnet-ids $PRIVATE_SUBNETS

179 

180 PG_VERSION=16

181 PG_FAMILY="postgres${PG_VERSION}"

182 aws rds create-db-parameter-group --db-parameter-group-name claude-gateway-db \

183 --db-parameter-group-family "$PG_FAMILY" \

184 --description "Claude gateway - require TLS on every connection"

185 aws rds modify-db-parameter-group --db-parameter-group-name claude-gateway-db \

186 --parameters "ParameterName=rds.force_ssl,ParameterValue=1,ApplyMethod=immediate"

187 ```

188 

189 Erstellen Sie dann die Instanz mit einem generierten Master-Passwort:

190 

191 ```bash theme={null}

192 PGPASS="$(openssl rand -hex 24)"

193 aws rds create-db-instance --db-instance-identifier claude-gateway-db \

194 --engine postgres --engine-version "$PG_VERSION" \

195 --db-instance-class db.t4g.micro \

196 --allocated-storage 20 --db-name claude_gateway \

197 --master-username gateway --master-user-password "$PGPASS" \

198 --db-subnet-group-name claude-gateway-db \

199 --db-parameter-group-name claude-gateway-db \

200 --vpc-security-group-ids "$DB_SG" \

201 --no-publicly-accessible --storage-encrypted

202 ```

203 

204 Das Literal `--master-user-password` Argument ist in der Prozesstabelle und in Audit-/EDR-Protokollen sichtbar, während der Befehl ausgeführt wird, die gleiche Exposition, die der Geheimnisse-Schritt behandelt. Auf einem gemeinsamen oder überwachten Host übergeben Sie das Passwort stattdessen über `--cli-input-json` aus einer `0600` Datei, wie es das `setup.sh` des Bundles tut.

205 

206 Warten Sie, bis die Instanz hochfährt, was mehrere Minuten dauern kann, lesen Sie dann ihren privaten Endpunkt und stellen Sie die Verbindungszeichenfolge zusammen, die das Gateway verwendet:

207 

208 ```bash theme={null}

209 aws rds wait db-instance-available --db-instance-identifier claude-gateway-db

210 DB_HOST="$(aws rds describe-db-instances --db-instance-identifier claude-gateway-db \

211 --query 'DBInstances[0].Endpoint.Address' --output text)"

212 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${DB_HOST}:5432/claude_gateway?sslmode=verify-full"

213 ```

214 

215 `sslmode=verify-full` lässt das Gateway das RDS-Serverzertifikat und den Hostnamen überprüfen, nicht nur verschlüsseln. Der Vertrauensanker ist das [AWS RDS Zertifikat-Bundle](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem), das der Image-Build-Schritt unten zu `/etc/claude/rds-global-bundle.pem` kopiert und über `NODE_EXTRA_CA_CERTS` vertraut. Hängen Sie keinen libpq-Stil `sslrootcert=` Parameter an die URL an: Der Gateway-Treiber liest nur `sslmode` aus der Abfragezeichenfolge und würde `sslrootcert` als Startup-Parameter an Postgres weiterleiten, das der Server ablehnt.

216 

217 Der ECS-Service oder die EKS-Pods müssen in diesem VPC ausgeführt werden, damit sie den privaten Endpunkt der Instanz erreichen können, und die `claude-gateway-db` Sicherheitsgruppe lässt nur die Sicherheitsgruppe des Gateways zu.

218 </Step>

219 

220 <Step title="Schreiben Sie gateway.yaml">

221 Der `upstreams` Block zeigt auf Bedrock mit `auth: {}`, daher authentifiziert sich das Gateway über die AWS-Standard-Anmeldekette aus der Task-Rolle auf ECS oder der IRSA-Rolle auf EKS. Siehe die [Konfigurationsreferenz](/docs/de/claude-apps-gateway-config) für jedes Feld.

222 

223 Zwei `listen` Felder beschreiben, was das Gateway frontet:

224 

225 * `public_url`: die externe `https://` Herkunft, erforderlich für jeden nicht-Loopback-Bind; siehe die [`listen` Referenz](/docs/de/claude-apps-gateway-config#listen). Das Gateway erstellt den IdP `redirect_uri` und sein Discovery-Dokument nur aus diesem Wert, niemals aus `X-Forwarded-*` Headern.

226 * `trusted_proxies`: die Quellbereiche des Front-End. Das Gateway berücksichtigt `X-Forwarded-For` nur, wenn der TCP-Peer in dieser Liste ist, geht dann die Kette über vertrauenswürdige Hops, sodass Anmelderate-Limits pro IP und Audit-Events Entwickler-IPs statt der Load-Balancer-IP aufzeichnen.

227 

228 Auf beiden Pfaden ist das Front-End ein interner ALB, ob direkt erstellt oder vom AWS Load Balancer Controller, und ALB-Knoten nehmen Adressen aus den Subnetzen, an die sie angehängt sind, daher setzen Sie `trusted_proxies` auf die CIDRs dieser Subnetze. Dies vertraut jedem Host in diesen Subnetzen als Proxy. Halten Sie die Ingress-Quelle des ALB, Ihre Unternehmens-CIDR, davon ab, sich zu überlappen, und teilen Sie die Subnetze nicht mit nicht vertrauenswürdigen Workloads, die Client-IPs über `X-Forwarded-For` fälschen könnten.

229 

230 Das ALB-Attribut zur Beibehaltung des Client-Ports, `routing.http.xff_client_port.enabled`, kann bei beiden Einstellungen bleiben: Wenn es aktiviert ist, schreibt der ALB den Client als `203.0.113.7:54321` oder `[2001:db8::1]:54321`, und das Gateway liest beide mit dem Port gelöscht.

231 

232 ```yaml gateway.yaml theme={null}

233 listen:

234 host: 0.0.0.0

235 port: 8080

236 public_url: https://claude-gateway.internal.example.com

237 trusted_proxies: [<your-alb-subnet-cidrs>]

238 

239 oidc:

240 issuer: https://example.okta.com

241 client_id: 0oa1example2

242 client_secret: ${OIDC_CLIENT_SECRET} # EKS: ${file:/secrets/oidc-client-secret}

243 allowed_email_domains: [example.com]

244 # Der Okta-Org-Autorisierungsserver gibt ein dünnes id_token zurück, das

245 # E-Mail und Gruppen auslässt; das Gateway füllt sie aus /userinfo.

246 userinfo_fallback: true

247 # Okta gibt Gruppen nur aus, wenn der `groups` Scope angefordert wird und

248 # der Gruppen-Anspruchsfilter der App sie zulässt.

249 scopes: [openid, profile, email, offline_access, groups]

250 

251 session:

252 jwt_secret: ${GATEWAY_JWT_SECRET} # EKS: ${file:/secrets/jwt-secret}

253 ttl_hours: 8 # begrenzt die Deprovisionierungs-Latenz; senken Sie

254 # gegen 1 für straffere Sperrung

255 

256 store:

257 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}

258 

259 upstreams:

260 - provider: bedrock

261 region: <your-region> # stimmen Sie mit $AWS_REGION überein, damit die IAM

262 # Richtlinien-ARNs es abdecken

263 auth: {} # AWS Standard-Anmeldekette:

264 # ECS Task-Rolle oder IRSA auf EKS

265 ```

266 

267 <Note>

268 Nur der `oidc` Block ist Okta-spezifisch. Um stattdessen Microsoft Entra ID zu verwenden, setzen Sie `issuer` auf `https://login.microsoftonline.com/<tenant-id>/v2.0`, lassen Sie `userinfo_fallback` und den `groups` Scope weg, und beachten Sie, dass Entra Gruppen-Objekt-IDs statt Namen ausgibt, daher müssen [`managed.policies`](/docs/de/claude-apps-gateway-config#managed) auf den GUIDs abgleichen, oder auf App-Rollen mit `oidc.groups_claim: roles`. Siehe [Identitätsanbieter-Setup](/docs/de/claude-apps-gateway-deploy#identity-provider-setup).

269 </Note>

270 </Step>

271 

272 <Step title="Speichern Sie Geheimnisse in AWS Secrets Manager">

273 Erstellen Sie drei Geheimnisse; die Ausführungsrolle aus dem IAM-Schritt kann sie bereits lesen:

274 

275 ```bash theme={null}

276 aws secretsmanager create-secret --name gateway-jwt-secret \

277 --secret-string "$(openssl rand -base64 32)"

278 aws secretsmanager create-secret --name gateway-oidc-client-secret \

279 --secret-string '<your-okta-client-secret>'

280 aws secretsmanager create-secret --name gateway-postgres-url \

281 --secret-string "$GATEWAY_POSTGRES_URL"

282 ```

283 

284 Beachten Sie die ARN, die jeder Aufruf ausgibt; die ECS-Task-Definition referenziert Geheimnisse nach ARN.

285 

286 <Note>

287 Literal `--secret-string` Argumente sind in der Prozesstabelle und in Audit-/EDR-Protokollen sichtbar, während jeder Befehl ausgeführt wird. Auf einem gemeinsamen oder überwachten Host legen Sie den Wert in eine `0600` Datei und übergeben Sie stattdessen `--secret-string file://<path>`. Das `setup.sh` des Bundles hält Geheimniswerte auf die gleiche Weise aus dem Prozess-argv, indem es `0600` temporäre Dateien an `--cli-input-json` übergibt.

288 </Note>

289 

290 Im Gegensatz zu den Geheimnissen enthält `gateway.yaml` selbst keine Geheimniswerte, da jede Anmeldedaten beim Start über [`${VAR}` oder `${file:...}` Erweiterung](/docs/de/claude-apps-gateway-config#secret-expansion) aufgelöst wird. Wie alles den Container erreicht, unterscheidet sich je nach Pfad:

291 

292 * Auf ECS kopiert der Build des nächsten Schritts `gateway.yaml` in das Image bei `/etc/claude/gateway.yaml`, und die Task-Definition injiziert die drei Geheimnisse als Umgebungsvariablen über sein `secrets` Feld, daher referenziert die YAML `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` und `${GATEWAY_POSTGRES_URL}`.

293 * Auf EKS mounten Sie `gateway.yaml` aus einer ConfigMap und die Geheimnisse als Dateien bei `/secrets`, referenziert als `${file:/secrets/...}`. Beziehen Sie die Kubernetes Secrets aus Secrets Manager mit dem External Secrets Operator oder dem AWS-Provider des Secrets Store CSI-Treibers, oder erstellen Sie sie direkt mit `kubectl`.

294 </Step>

295 

296 <Step title="Erstellen Sie das Image und pushen Sie es zu Amazon ECR">

297 Erstellen Sie das Image gemäß den [Container-Image-Anforderungen](/docs/de/claude-apps-gateway-deploy#container-image), wobei Sie die `linux-x64` glibc-Binärdatei bei `./claude` im Build-Kontext platzieren. Schreiben Sie Ihr eigenes Dockerfile gemäß diesen Anforderungen oder beginnen Sie mit dem [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/examples/gateway/aws/Dockerfile) des Bundles, das die ausgefüllte `gateway.yaml` aus den vorherigen Schritten in das Image bei `/etc/claude/gateway.yaml` kopiert. Auf ECS ist diese eingebettete Kopie, wie die Konfiguration den Container erreicht, weshalb der Build nach dem Schreiben der Datei kommt. Der EKS-Pfad mountet stattdessen `gateway.yaml` aus einer ConfigMap bei der Bereitstellung, daher ist die eingebettete Kopie dort ungenutzt.

298 

299 Das Image trägt auch das AWS RDS Zertifikat-Bundle als Vertrauensanker für das `sslmode=verify-full` der Verbindungszeichenfolge, daher laden Sie es zunächst in den Build-Kontext herunter. AWS rotiert das Bundle (neue regionale CAs werden angehängt), daher laden Sie es pro Build herunter, statt einen Checksum zu pinnen oder es zu committen:

300 

301 ```bash theme={null}

302 curl -fL --proto '=https' -o rds-global-bundle.pem \

303 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

304 ```

305 

306 Die Container-Image-Anforderungen decken das Bundle nicht ab, daher müssen Sie, wenn Sie Ihr eigenes Dockerfile schreiben, die zwei Zeilen hinzufügen, die es kopieren und vertrauen; das `Dockerfile` des Bundles enthält bereits beide:

307 

308 ```dockerfile theme={null}

309 COPY rds-global-bundle.pem /etc/claude/rds-global-bundle.pem

310 ENV NODE_EXTRA_CA_CERTS=/etc/claude/rds-global-bundle.pem

311 ```

312 

313 Erstellen Sie das ECR-Repository und melden Sie Docker darin an. Unveränderliche Tags bedeuten, dass das `<version>` Tag, das der Bereitstellungsschritt pinnt, später nicht stillschweigend auf ein anderes Image umgeleitet werden kann:

314 

315 ```bash theme={null}

316 aws ecr create-repository --repository-name claude-gateway \

317 --image-tag-mutability IMMUTABLE \

318 --image-scanning-configuration scanOnPush=true

319 aws ecr get-login-password --region "$AWS_REGION" \

320 | docker login --username AWS --password-stdin \

321 "${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"

322 ```

323 

324 Erstellen und pushen Sie das Image. Die Task-Definition unten führt `linux/amd64` aus, daher muss die Plattform hier übereinstimmen; für Fargate auf ARM64 (Graviton) erstellen Sie `linux/arm64` mit der `linux-arm64` Binärdatei und setzen Sie `cpuArchitecture` stattdessen auf `ARM64`:

325 

326 ```bash theme={null}

327 docker build --platform=linux/amd64 \

328 -t "${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/claude-gateway:<version>" .

329 docker push "${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/claude-gateway:<version>"

330 ```

331 </Step>

332 

333 <Step title="Bereitstellen">

334 <Tabs>

335 <Tab title="ECS Fargate">

336 Erstellen Sie den Cluster und eine Log-Gruppe für die stderr des Gateways, die sowohl seine Audit-Events als auch Betriebsprotokolle trägt. Die Aufbewahrung ist ein separater Aufruf, und ohne eine CloudWatch behält die Protokolle für immer; richten Sie die 90 Tage auf Ihre Audit-Aufbewahrungsrichtlinie aus:

337 

338 ```bash theme={null}

339 aws ecs create-cluster --cluster-name claude-gateway

340 aws logs create-log-group --log-group-name /ecs/claude-gateway

341 aws logs put-retention-policy --log-group-name /ecs/claude-gateway \

342 --retention-in-days 90

343 ```

344 

345 Schreiben Sie die Task-Definition. Die Task-Rolle trägt die Bedrock-Berechtigung und die Ausführungsrolle injiziert die Geheimnisse; verwenden Sie die Geheimnis-ARNs aus dem Secrets Manager-Schritt:

346 

347 ```json claude-gateway-task.json theme={null}

348 {

349 "family": "claude-gateway",

350 "networkMode": "awsvpc",

351 "requiresCompatibilities": ["FARGATE"],

352 "cpu": "1024",

353 "memory": "2048",

354 "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" },

355 "executionRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-execution",

356 "taskRoleArn": "arn:aws:iam::<account-id>:role/claude-gateway-task",

357 "containerDefinitions": [

358 {

359 "name": "gateway",

360 "image": "<account-id>.dkr.ecr.<region>.amazonaws.com/claude-gateway:<version>",

361 "portMappings": [{ "containerPort": 8080 }],

362 "secrets": [

363 { "name": "GATEWAY_JWT_SECRET", "valueFrom": "<gateway-jwt-secret ARN>" },

364 { "name": "OIDC_CLIENT_SECRET", "valueFrom": "<gateway-oidc-client-secret ARN>" },

365 { "name": "GATEWAY_POSTGRES_URL", "valueFrom": "<gateway-postgres-url ARN>" }

366 ],

367 "logConfiguration": {

368 "logDriver": "awslogs",

369 "options": {

370 "awslogs-group": "/ecs/claude-gateway",

371 "awslogs-region": "<region>",

372 "awslogs-stream-prefix": "gateway"

373 }

374 }

375 }

376 ]

377 }

378 ```

379 

380 Registrieren Sie es:

381 

382 ```bash theme={null}

383 aws ecs register-task-definition --cli-input-json file://claude-gateway-task.json

384 ```

385 

386 Setzen Sie einen internen ALB davor mit einer Zielgruppe, die das Gateway health-checkt. `--ip-address-type ipv4` ist wichtig: Ein interner Dual-Stack-ALB veröffentlicht öffentliche AAAA-Datensätze, die die `/login` private-Netzwerk-Prüfung ablehnt:

387 

388 ```bash theme={null}

389 ALB_ARN="$(aws elbv2 create-load-balancer --name claude-gateway \

390 --scheme internal --type application --ip-address-type ipv4 \

391 --subnets $PRIVATE_SUBNETS --security-groups "$ALB_SG" \

392 --query 'LoadBalancers[0].LoadBalancerArn' --output text)"

393 

394 TG_ARN="$(aws elbv2 create-target-group --name claude-gateway \

395 --protocol HTTP --port 8080 --vpc-id "$VPC_ID" --target-type ip \

396 --health-check-path /readyz \

397 --query 'TargetGroups[0].TargetGroupArn' --output text)"

398 ```

399 

400 Fügen Sie den HTTPS-Listener hinzu. `--ssl-policy` pinnt einen modernen TLS-Boden, da das Weglassen auf die Legacy-Standard-Richtlinie `ELBSecurityPolicy-2016-08` zurückfällt, die immer noch TLS 1.0/1.1 akzeptiert.

401 

402 Der ALB schließt eine Verbindung nach 60 Sekunden ohne Daten standardmäßig. Die Keepalive-Pings des Gateways halten Streams innerhalb dieses Standards, daher erhöht das Erhöhen des Timeouts die Marge über der Ping-Kadenz; die [Troubleshooting](#troubleshooting) Zeile auf abgebrochenen Streams behandelt den Mechanismus und ältere Gateways. Die folgenden Befehle fügen den Listener hinzu und erhöhen das Timeout:

403 

404 ```bash theme={null}

405 aws elbv2 create-listener --load-balancer-arn "$ALB_ARN" \

406 --protocol HTTPS --port 443 \

407 --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \

408 --certificates CertificateArn=<your-acm-certificate-arn> \

409 --default-actions Type=forward,TargetGroupArn="$TG_ARN"

410 

411 aws elbv2 modify-load-balancer-attributes --load-balancer-arn "$ALB_ARN" \

412 --attributes Key=idle_timeout.timeout_seconds,Value=3600

413 ```

414 

415 Erstellen Sie den Service. Der Deployment-Schalter rollt eine Bereitstellung, deren Tasks weiterhin fehlschlagen, von einem schlechten Image oder einer nicht bootfähigen Konfiguration, zurück zum letzten stabilen Zustand, statt fehlgeschlagene Tasks für immer neu zu starten:

416 

417 ```bash theme={null}

418 aws ecs create-service --cluster claude-gateway --service-name claude-gateway \

419 --task-definition claude-gateway --desired-count 1 --launch-type FARGATE \

420 --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \

421 --health-check-grace-period-seconds 60 \

422 --network-configuration "awsvpcConfiguration={subnets=[$(echo $PRIVATE_SUBNETS | tr ' ' ',')],securityGroups=[$GW_SG],assignPublicIp=DISABLED}" \

423 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

424 ```

425 

426 Die 60-Sekunden-Gnadenfrist gibt einer kalten Task Zeit, das Image zu ziehen, sich mit dem Store zu verbinden und seinen ersten Health-Check zu beantworten, bevor ECS beginnt, Fehler gegen die Bereitstellung zu zählen. Der Health-Check der Zielgruppe auf `GET /readyz` überprüft, ob der Store erreichbar ist, daher kommt eine Task, die Postgres nicht erreichen kann, nie in Rotation; siehe [Ausfallverhalten](/docs/de/claude-apps-gateway-deploy#outage-behavior) für den Tradeoff und die `/healthz` Alternative.

427 

428 Die Tasks laufen in privaten Subnetzen ohne öffentliche IP, daher geht der gesamte Egress (zu Bedrock, Ihrem IdP, Secrets Manager, ECR und CloudWatch Logs) durch das NAT-Gateway. Um Bedrock-Verkehr vom öffentlichen Pfad zu halten, erstellen Sie einen `bedrock-runtime` Interface VPC-Endpunkt und zeigen Sie die `base_url` des Upstream darauf, wie in der [Bedrock Upstream-Referenz](/docs/de/claude-apps-gateway-config#amazon-bedrock) gezeigt; der IdP benötigt immer noch Internet-Egress.

429 

430 Beenden Sie, indem Sie Entwicklern einen privat auflösbaren Hostnamen geben: In einer Route 53 privaten gehosteten Zone, alias den internen DNS-Namen des Gateways zum ALB, und setzen Sie `listen.public_url` auf diesen Hostnamen. Der eigene `*.elb.amazonaws.com` Name des ALB wird zu privaten Adressen auf einem internen ALB aufgelöst, kann aber Ihr ACM-Zertifikat nicht tragen, daher verwenden Sie Ihren eigenen Namen.

431 

432 Aktualisieren Sie die autorisierte Redirect-URI des OAuth-Clients auf `<public_url>/oauth/callback`, bevor die erste Anmeldung. Nach dem Ändern von `public_url` erstellen Sie das Image unter einem neuen Tag neu, registrieren Sie eine neue Task-Definition-Revision und stellen Sie erneut bereit. Auf ECS lebt die Einstellung in der eingebetteten `gateway.yaml` des Images, und das Gateway erstellt seinen öffentlichen Ursprung nur aus dieser Einstellung, ignoriert `X-Forwarded-Host` und `X-Forwarded-Proto`. `X-Forwarded-For` wird nur berücksichtigt, wenn `listen.trusted_proxies` gesetzt ist.

433 </Tab>

434 

435 <Tab title="EKS">

436 Dieser Pfad benötigt `kubectl` und `eksctl` lokal installiert, und einen bestehenden EKS-Cluster mit einem IAM OIDC-Provider und dem AWS Load Balancer Controller installiert. Der Cluster muss auf `$VPC_ID` sein, damit Pods den RDS-Privatendpunkt erreichen können, und die `claude-gateway-db` Sicherheitsgruppe muss die Sicherheitsgruppe des Clusters oder des Pods des Clusters anstelle von `$GW_SG` zulassen.

437 

438 Auf EKS erhält das Gateway seine Bedrock-Anmeldedaten über IRSA statt der ECS-Rollen. Die `ecs-tasks.amazonaws.com` Vertrauensrichtlinie aus dem IAM-Schritt gilt hier nicht; IRSA benötigt eine Rolle, deren Vertrauensrichtlinie auf dem OIDC-Provider des Clusters föderiert ist, begrenzt auf `system:serviceaccount:claude-gateway:gateway`. `eksctl create iamserviceaccount` erstellt diese Rolle, hängt die Richtlinien an und kommentiert das Kubernetes-Dienstkonto mit der Rollen-ARN in einem Schritt. Verwandeln Sie die zwei Richtliniendokumente aus dem IAM-Schritt in verwaltete Richtlinien, die es anhängen kann:

439 

440 ```bash theme={null}

441 BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \

442 --policy-document file://bedrock-invoke.json --query Policy.Arn --output text)"

443 SECRETS_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-secrets-read \

444 --policy-document file://secrets-read.json --query Policy.Arn --output text)"

445 

446 kubectl create namespace claude-gateway

447 eksctl create iamserviceaccount --cluster <your-cluster> --region "$AWS_REGION" \

448 --namespace claude-gateway --name gateway --role-name claude-gateway \

449 --attach-policy-arn "$BEDROCK_POLICY_ARN" \

450 --attach-policy-arn "$SECRETS_POLICY_ARN" \

451 --approve

452 ```

453 

454 Die Geheimnisse-Richtlinie wird nur benötigt, wenn die Pods Secrets Manager selbst lesen, wie es der AWS-Provider des Secrets Store CSI-Treibers mit dem Dienstkonto des Mounting-Pods tut; lassen Sie sie weg, wenn Sie die Kubernetes Secrets auf andere Weise erstellen. Der Provider benötigt beide Aktionen der Richtlinie: Er ruft `DescribeSecret` auf, wenn er rotierte Geheimnisse abstimmt, daher gewährt ein `GetSecretValue`-only Grant Mounts beim ersten Deploy, stoppt aber das Abholen von Rotationen.

455 

456 Stellen Sie das Gateway als Standard-Deployment plus Service und Ingress bereit, wie in [Kubernetes-Bereitstellung](/docs/de/claude-apps-gateway-deploy#kubernetes) beschrieben, mit:

457 

458 * `serviceAccountName: gateway`

459 * `gateway.yaml` gemountet aus einer ConfigMap und die Geheimnisse als Dateien bei `/secrets` gemountet

460 * die Readiness-Probe auf `GET /readyz` gerichtet

461 

462 Für das Front-End, ein Ingress, das vom AWS Load Balancer Controller verwaltet wird, stellt den internen ALB bereit. Kommentieren Sie es mit:

463 

464 * `alb.ingress.kubernetes.io/scheme: internal` und `alb.ingress.kubernetes.io/target-type: ip`

465 * `alb.ingress.kubernetes.io/ip-address-type: ipv4`, daher werden keine öffentlichen AAAA-Datensätze für die `/login` [private-Netzwerk-Prüfung](/docs/de/claude-apps-gateway#prerequisites) veröffentlicht, die sie ablehnt

466 * `alb.ingress.kubernetes.io/inbound-cidrs: <your-corporate-cidr>`, daher lässt die Controller-verwaltete Frontend-Sicherheitsgruppe nur Ihr Unternehmensnetzwerk anstelle des `0.0.0.0/0` Standards zu

467 * `alb.ingress.kubernetes.io/certificate-arn` mit dem ACM-Zertifikat

468 * `alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06`, daher fällt der Listener nicht auf die Legacy-Standard-Richtlinie zurück, die TLS 1.0 und 1.1 akzeptiert

469 * `alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=3600`, eine Marge über dem Streaming-Keepalive des Gateways; siehe [Troubleshooting](#troubleshooting)

470 

471 Mit IRSA liest das AWS SDK ein projiziertes Service-Account-Token und tauscht es mit AWS STS aus, daher benötigt der Pod niemals den EC2-Instanz-Metadaten-Service; eine Egress-NetworkPolicy kann `169.254.169.254` für Gateway-Pods blockieren. Das Node-Hop-Limit-Problem in [Troubleshooting](#troubleshooting) unten gilt nur für Cluster, die IRSA überspringen und sich auf Node-Instanzrollen verlassen.

472 </Tab>

473 </Tabs>

474 </Step>

475 

476 <Step title="Pushen Sie die Gateway-URL zu Entwicklermaschinen">

477 Das Gateway läuft jetzt, aber Entwickler können es von `/login` nicht erreichen, bis die Gateway-URL auf ihren Maschinen ist. Setzen Sie `forceLoginMethod` und `forceLoginGatewayUrl` in der [verwalteten Einstellungsdatei](/docs/de/claude-apps-gateway#set-the-gateway-url), die Sie über MDM auf jedes Gerät bereitstellen. Es gibt keine Gateway-Option im Login-Picker für einen Entwickler, um manuell auszuwählen.

478 </Step>

479</Steps>

480 

481<h2 id="terraform-reference">

482 Terraform-Referenz

483</h2>

484 

485Das Begleit-Bundle bei [`examples/gateway/aws`](https://github.com/anthropics/claude-code/tree/main/examples/gateway/aws) packt diese Seite als Code:

486 

487* **`setup.sh`** skriptet die Bereitstellungs-Anleitung oben mit den gleichen `aws` Befehlen auf dem ECS Fargate-Pfad. Es ist idempotent: Bestehende Ressourcen werden erkannt und übersprungen, daher ist das erneute Ausführen sicher, und jeder Standard kann über Umgebungsvariable überschrieben werden. Sie erstellen immer noch das Okta OIDC-Client-Geheimnis und das ACM-Zertifikat selbst: Ein Lauf ohne sie überspringt die ECS/ALB-Bereitstellung, nennt die fehlenden Eingaben und druckt den `create-secret` Befehl; erstellen Sie beide und führen Sie erneut aus. Das Bedrock-Use-Case-Formular und der Route 53-Alias werden als nächste Schritte statt automatisch ausgeführt, und der Client-MDM-Push bleibt ein manueller Schritt von dieser Seite.

488* **`gateway.yaml.example`** ist die Konfigurationsvorlage aus dem gateway.yaml-Schritt, mit den optionalen Schlüsseln kommentiert. Kopieren Sie sie zu `gateway.yaml` und ersetzen Sie jeden `REPLACE_ME`, bevor Sie erstellen.

489* **`Dockerfile`** erstellt das Runtime-Image aus der vorkompilierten `linux-x64` Binärdatei und kopiert Ihre ausgefüllte `gateway.yaml` bei `/etc/claude/gateway.yaml`, plus das AWS RDS Zertifikat-Bundle, das das `sslmode=verify-full` des Stores verankert. `setup.sh` lädt das Bundle nur herunter, wenn es nicht bereits im Build-Kontext ist; löschen Sie die Datei und erstellen Sie unter einem neuen Tag neu, um eine AWS CA-Rotation zu erhalten. Die Konfigurationsdatei enthält keine Geheimniswerte, da jede Anmeldedaten beim Start über `${VAR}` Erweiterung aufgelöst wird. Eine Konfigurationsbearbeitung bedeutet daher einen Rebuild unter einem neuen Tag; `setup.sh` automatisiert dies durch Tagging-Images mit einem Hash der Datei.

490* **`terraform/`** stellt den gleichen ECS Fargate-Umfang deklarativ bereit: die Sicherheitsgruppen, IAM-Rollen, ECR-Repository, RDS-Instanz, Secrets Manager-Geheimnisse und den ECS-Service hinter dem internen ALB. Das VPC und die privaten Subnetze bleiben Voraussetzungen, die als Variablen übergeben werden. Terraform erstellt das ECR-Repository, erstellt aber nicht das Image, und die Service-Definition referenziert das Image, daher ist die Anwendung zwei Durchläufe: eine gezielte Anwendung für das Repository, dann der Build und Push, dann die vollständige Anwendung. Das `terraform/README.md` des Bundles behandelt die Variablen, den Remote-State und den Abbau.

491 

492Wie diese Seite ist das Bundle ein funktionierendes Beispiel für kundenverwaltete Infrastruktur statt einer unterstützten Produktionsbereitstellung; überprüfen und passen Sie es an Ihre eigene Umgebung an, bevor Sie sich darauf verlassen.

493 

494<h2 id="troubleshooting">

495 Troubleshooting

496</h2>

497 

498Für Gateway-Boot- und Login-Fehler siehe die plattformunabhängige [Troubleshooting-Tabelle](/docs/de/claude-apps-gateway-deploy#troubleshooting). Die Einträge unten sind spezifisch für AWS.

499 

500| Symptom | Ursache | Behebung |

501| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

502| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Der Gateway-Name wird zu mindestens einer öffentlichen Adresse aufgelöst. Ein Dual-Stack-interner ALB veröffentlicht öffentliche AAAA-Datensätze, und die [private-Netzwerk-Prüfung](/docs/de/claude-apps-gateway#prerequisites) erfordert, dass jede aufgelöste Adresse privat ist | Erstellen Sie den ALB mit `--ip-address-type ipv4`, oder bedienen Sie einen separaten internen DNS-Namen ohne öffentlichen AAAA-Datensatz |

503| Jede Bedrock-Anfrage gibt 502 zurück; Log zeigt `Could not load credentials from any providers` | Die Task läuft auf dem ECS EC2-Start-Typ ohne Task-Rolle, oder der Pod läuft auf einem EKS-Knoten ohne IRSA, daher kommen Anmeldedaten aus Instanz-Metadaten, die IMDSv2's Standard-Hop-Limit von 1 innerhalb eines Containers stoppt. Keiner der Pfade auf dieser Seite ist betroffen: Fargate-Task-Rollen und IRSA verwenden keine Instanz-Metadaten | Bevorzugen Sie Task-Rollen und IRSA. Wo Instanz-Anmeldedaten unvermeidlich sind, erhöhen Sie das Hop-Limit mit `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`; die [plattformunabhängige Tabelle](/docs/de/claude-apps-gateway-deploy#troubleshooting) behandelt die Tradeoffs |

504| Bedrock-Anfragen geben `403 AccessDeniedException` zurück | Das Konto hat das einmalige Use-Case-Formular von Anthropic nicht eingereicht, das automatische AWS Marketplace-Abonnement, das beim ersten Invoke des Kontos beginnt, ist noch nicht abgeschlossen, oder die Task-Rollen-Richtlinie fehlen die Inferenzprofil- oder Foundation-Model-ARNs | Reichen Sie das Use-Case-Formular aus dem Modellkatalog der Bedrock-Konsole ein; wenn es gerade eingereicht wurde oder dies der erste Invoke des Kontos ist, versuchen Sie es nach ein paar Minuten erneut. Gewähren Sie `bedrock:InvokeModel` und `bedrock:InvokeModelWithResponseStream` auf beiden ARN-Familien. |

505| Bedrock gibt eine `ValidationException` zurück, die besagt, dass On-Demand-Durchsatz nicht unterstützt wird | Ein benutzerdefinierter `models:` Eintrag wird zu einer bloßen Foundation-Model-ID zugeordnet, die die Region nur über Inferenzprofile bedient | Ordnen Sie das Modell stattdessen seiner Cross-Region-Inferenzprofil-ID (`us.anthropic.*`) zu; der integrierte Katalog tut dies bereits |

506| ECS-Task stoppt mit `ResourceInitializationError`, bevor das Gateway etwas protokolliert | Die Ausführungsrolle kann die Secrets Manager-Geheimnisse nicht lesen, oder die privaten Subnetze haben keinen Pfad zu Secrets Manager oder ECR | Gewähren Sie `secretsmanager:GetSecretValue` auf den drei `gateway-` Geheimnis-ARNs der Ausführungsrolle, und stellen Sie Egress über das NAT-Gateway bereit, oder ohne eines, Interface-Endpunkte für Secrets Manager, ECR und CloudWatch Logs, die der `awslogs` Treiber in der gleichen Phase benötigt, plus einen S3-Gateway-Endpunkt |

507| Gateway-Boot beendet mit einem Postgres-Verbindungs-Timeout-Fehler | Die Datenbanksicherheitsgruppe lässt die Sicherheitsgruppe des Gateways nicht auf 5432 zu, oder der Service läuft außerhalb des VPC der Datenbank; der Store stoppt das Warten nach 5 Sekunden | Erlauben Sie 5432 von der Sicherheitsgruppe des Gateways auf der Datenbank, und führen Sie den Service im gleichen VPC wie die DB-Subnet-Gruppe aus |

508| Gateway-Boot beendet mit einem Postgres TLS-Zertifikat-Verifizierungsfehler | Die Verbindungszeichenfolge setzt `sslmode=verify-full`, aber das Image vertraut dem RDS CA-Bundle nicht: Das Bundle wurde nicht in das Image kopiert, oder `NODE_EXTRA_CA_CERTS` zeigt nicht darauf | Fügen Sie die zwei Dockerfile-Zeilen des Build-Schritts hinzu, die das Bundle kopieren und `NODE_EXTRA_CA_CERTS` setzen, erstellen Sie dann neu, pushen Sie unter einem neuen Tag und stellen Sie erneut bereit |

509| Streaming-Antworten brechen während einer ruhigen Periode ab | Ein Gateway älter als v2.1.229 auf einem Bedrock- oder Claude Platform on AWS-Upstream sendet nichts, während der Upstream ruhig ist, zum Beispiel während erweitertem Denken ohne gestreamte Ausgabe. Das ALB schließt eine Verbindung nach 60 Sekunden ohne Daten standardmäßig, daher schneidet es den Stream bei dieser Lücke ab. Gateways v2.1.229 und später halten einen ruhigen Stream unter diesem Timeout: auf diesen Upstreams gibt das Gateway ein SSE `ping` Event aus, sobald etwa 15 Sekunden ohne Stream-Daten vergangen sind, und auf einem Anthropic API-Upstream leitet es die eigenen Pings der API weiter | Aktualisieren Sie das Gateway auf v2.1.229 oder später, oder setzen Sie das `idle_timeout.timeout_seconds` Attribut auf `3600`, über `modify-load-balancer-attributes` oder die `load-balancer-attributes` Ingress-Annotation auf EKS |

510 

511<h2 id="telemetry">

512 Telemetrie

513</h2>

514 

515Das Gateway gibt Ihnen pro-Entwickler Nutzungsmetriken ohne jede pro-Maschinen OTEL-Konfiguration. Claude Code gibt OpenTelemetry (OTLP) Metriken, Protokolle und Opt-in-Traces aus; [Überwachung der Nutzung](/docs/de/monitoring-usage) behandelt alles, was die CLI meldet. Bei Gateway-Sitzungen stempelt die CLI jeden Export mit den authentifizierten IdP-Identitätsattributen `user.id`, `user.email` und `user.groups`, daher wird die Nutzung pro Entwickler ohne `OTEL_RESOURCE_ATTRIBUTES` Rohrleitungen zusammengefasst.

516 

517Das Gateway selbst ist ein authentifiziertes OTLP-Relais. Setzen Sie [`telemetry.forward_to`](/docs/de/claude-apps-gateway-config#telemetry) zusammen mit `listen.public_url`, und es pusht die OTEL-Exporter-Einstellungen zu jedem verbundenen Client und leitet seinen OTLP-Verkehr wörtlich zu jedem Ziel weiter, das Sie auflisten. Jedes Ziel entscheidet sich unabhängig für Metriken, Protokolle und Traces, und der Standard ist nur Metriken; siehe die [`telemetry` Referenz](/docs/de/claude-apps-gateway-config#telemetry) für die pro-Signal-Felder und ihre Empfindlichkeits-Tradeoffs. Das Gateway puffert, aggregiert oder speichert keine Telemetrie, daher ist, wo die Daten landen, vollständig die Exporter-Konfiguration des Collectors.

518 

519Client-Telemetrie ist standardmäßig aus; das Konfigurieren von `telemetry.forward_to` ist, was sie für verbundene Entwickler einschaltet, und jeder interaktive Client zeigt einen einmaligen Sicherheitsgenehmigungsdialog für die gepushten Einstellungen, wie in der [Konfigurationsreferenz](/docs/de/claude-apps-gateway-config#telemetry) beschrieben. Auf AWS wird jedes Signal wie folgt einem Ziel zugeordnet.

520 

521<h3 id="client-metrics-logs-and-traces">

522 Client-Metriken, Protokolle und Traces

523</h3>

524 

525Zeigen Sie `telemetry.forward_to` auf einen OpenTelemetry-Collector, wie den [AWS Distro for OpenTelemetry (ADOT) Collector](https://aws-otel.github.io/), und exportieren Sie von dort zu Amazon CloudWatch, Amazon Managed Service for Prometheus oder einem beliebigen OTLP-Backend.

526 

527Führen Sie den Collector als seinen eigenen internen Service aus, der über `https://` erreichbar ist; die [`telemetry` Referenz](/docs/de/claude-apps-gateway-config#telemetry) behandelt die Loopback-Ausnahme und `CLAUDE_GATEWAY_ALLOW_LOOPBACK`.

528 

529<h3 id="gateway-logs">

530 Gateway-Protokolle

531</h3>

532 

533Auf ECS Fargate, kein zusätzliches Setup: Der `awslogs` Treiber liefert die stderr des Gateways, die seine Audit-Events und Betriebsprotokolle trägt, zur `/ecs/claude-gateway` Log-Gruppe, die oben erstellt wurde. Auf EKS erreichen Pod-Protokolle CloudWatch nicht standardmäßig, daher geht die Audit-Spur verloren, bis Sie Log-Erfassung installieren: Das Amazon CloudWatch Observability Add-on mit aktivierter Container-Log-Erfassung, oder ein Fluent Bit DaemonSet. Auf beiden Pfaden fragen Sie die Protokolle mit CloudWatch Logs Insights ab und fahren Alarme von Metrik-Filtern.

534 

535<h3 id="container-metrics">

536 Container-Metriken

537</h3>

538 

539Aktivieren Sie Container Insights auf dem Cluster mit `aws ecs update-cluster-settings --cluster claude-gateway --settings name=containerInsights,value=enabled` für pro-Task CPU, Speicher und Netzwerk. Auf EKS installieren Sie das Amazon CloudWatch Observability Add-on.

540 

541<h3 id="spend">

542 Ausgaben

543</h3>

544 

545Telemetrie zeigt Nutzung im Nachhinein; [Ausgabenlimits](/docs/de/claude-apps-gateway-spend-limits) sind die Live-Ansicht des Gateways pro Entwickler und Durchsetzung auf der gemeinsamen Upstream-Anmeldedaten.

546 

547<h2 id="next-steps">

548 Nächste Schritte

549</h2>

550 

551* [Konfigurationsreferenz](/docs/de/claude-apps-gateway-config): jede `gateway.yaml` Option, einschließlich `managed.policies` und `telemetry`

552* [Bereitstellung und Betrieb](/docs/de/claude-apps-gateway-deploy): IdP-Setup, Health-Checks, JWT-Geheimnis-Rotation, Upgrades und das Sicherheitsmodell

553* [Claude-Apps-Gateway Übersicht](/docs/de/claude-apps-gateway): Schnellstart und Verbindung von Entwicklern

554* [AWS-Beispiele für Claude-Apps-Gateway](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway): Von AWS verwaltete Bereitstellungsbeispiele, die eine Reihe von Kundenumgebungen abdecken

Details

42 42 

43Cloud-Sitzungen benötigen Zugriff auf Ihre GitHub-Repositories, um Code zu klonen und Branches zu pushen. Sie können Zugriff auf zwei Arten gewähren:43Cloud-Sitzungen benötigen Zugriff auf Ihre GitHub-Repositories, um Code zu klonen und Branches zu pushen. Sie können Zugriff auf zwei Arten gewähren:

44 44 

45| Methode | Funktionsweise | Am besten für |45| Methode | Funktionsweise | Repositories, auf die Sitzungen zugreifen können | Am besten für |

46| :--------------- | :---------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |46| :--------------- | :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |

47| **GitHub App** | Autorisieren Sie die Claude GitHub App während des [Web-Onboardings](/docs/de/web-quickstart). | Browser-Onboarding; Teams, die [Auto-fix](#auto-fix-pull-requests) möchten |47| **GitHub App** | Autorisieren Sie die Claude GitHub App während des [Web-Onboardings](/docs/de/web-quickstart) | Alle öffentlichen Repositories und private Repositories, auf denen die Claude GitHub App installiert ist | Browser-Onboarding; Teams, die [Auto-fix](#auto-fix-pull-requests) möchten |

48| **`/web-setup`** | Führen Sie `/web-setup` in Ihrem Terminal aus, um Ihr lokales `gh` CLI-Token mit Ihrem Claude-Konto zu synchronisieren. | Einzelne Entwickler, die bereits `gh` verwenden |48| **`/web-setup`** | Führen Sie `/web-setup` in Ihrem Terminal aus, um Ihr lokales `gh` CLI-Token an Ihr Claude-Konto zu senden | Alle Repositories, auf die Ihr `gh`-Token zugreifen kann, unabhängig davon, ob die App installiert ist oder nicht | Einzelne Entwickler, die bereits `gh` verwenden |

49 49 

50<Note>50Die Installation der Claude GitHub App auf einem Repository ermöglicht auch [Auto-fix](#auto-fix-pull-requests) für Pull Requests darin.

51 Bei beiden Methoden kann eine Cloud-Sitzung auf jedes Repository zugreifen, das das verbundene GitHub-Konto sehen kann, nicht nur auf die Repositories, auf denen die Claude GitHub App installiert ist. Die App-Installation ermöglicht PR-Webhooks für [Auto-fix](#auto-fix-pull-requests); es ist keine Zugriffskontrolle auf Sitzungsebene. Um einzuschränken, welche Repositories Ihr Team von Cloud-Sitzungen aus erreichen kann, beschränken Sie den Zugriff auf GitHub selbst, beispielsweise durch Einschränkung der Team- oder Repository-Mitgliedschaft für die verbundenen GitHub-Konten.

52</Note>

53 51 

54Beide Methoden funktionieren. Informationen dazu, wie `/schedule` den Zugriff überprüft, bevor eine Routine erstellt wird, finden Sie unter [Repositories und Branch-Berechtigungen](/docs/de/routines#repositories-and-branch-permissions). Siehe [Vom Terminal verbinden](/docs/de/web-quickstart#connect-from-your-terminal) für die `/web-setup`-Anleitung.52Informationen dazu, wie `/schedule` den Repository-Zugriff überprüft, bevor eine Routine erstellt wird, finden Sie unter [Repositories und Branch-Berechtigungen](/docs/de/routines#repositories-and-branch-permissions). Siehe [Vom Terminal verbinden](/docs/de/web-quickstart#connect-from-your-terminal) für die `/web-setup`-Anleitung, einschließlich dessen, was `/web-setup` speichert und wie Sie es entfernen.

55 53 

56Quick web setup ist eine Organisationseinstellung, die es Mitgliedern ermöglicht, GitHub mit `/web-setup` zu verbinden, überspringt die Claude GitHub App-Installationsaufforderung während des Browser-Onboardings und lässt das Browser-Onboarding die [**Standard**-Umgebung](/docs/de/cloud-environments#the-default-environment) für sie erstellen, anstatt das Umgebungsformular anzuzeigen. Bei Team- und Enterprise-Plänen ist es standardmäßig deaktiviert, was `/web-setup` verbirgt. Ein [Owner](/docs/de/server-managed-settings#access-control) aktiviert es mit dem **Quick web setup**-Umschalter unter [**Admin-Einstellungen > Claude Code**](https://claude.ai/admin-settings/claude-code).54Quick web setup ist eine Organisationseinstellung, die es Mitgliedern ermöglicht, GitHub mit `/web-setup` zu verbinden, überspringt die Claude GitHub App-Installationsaufforderung während des Browser-Onboardings und lässt das Browser-Onboarding die [**Standard**-Umgebung](/docs/de/cloud-environments#the-default-environment) für sie erstellen, anstatt das Umgebungsformular anzuzeigen. Bei Team- und Enterprise-Plänen ist es standardmäßig deaktiviert, was `/web-setup` verbirgt. Ein [Owner](/docs/de/server-managed-settings#access-control) aktiviert es mit dem **Quick web setup**-Umschalter unter [**Admin-Einstellungen > Claude Code**](https://claude.ai/admin-settings/claude-code).

57 55 


79claude --cloud "Fix the authentication bug in src/auth/login.ts"77claude --cloud "Fix the authentication bug in src/auth/login.ts"

80```78```

81 79 

82Dies erstellt eine neue Cloud-Sitzung auf claude.ai. Die Cloud-VM klont das GitHub-Remote Ihres aktuellen Verzeichnisses bei Ihrem aktuellen Branch, nicht Ihren lokalen Checkout, daher pushen Sie zuerst, wenn Sie lokale Commits haben. `--cloud` funktioniert mit einem Repository auf einmal. Die Aufgabe wird in der Cloud ausgeführt, während Sie lokal weiterarbeiten. Die ältere Schreibweise `--remote` funktioniert immer noch als veralteter Alias für `--cloud`.80Dies erstellt eine neue Cloud-Sitzung auf claude.ai. Die Cloud-VM klont das GitHub-Remote Ihres aktuellen Verzeichnisses bei Ihrem aktuellen Branch, nicht Ihren lokalen Checkout, daher pushen Sie zuerst, wenn Sie lokale Commits haben. Siehe [Senden Sie lokale Repositories ohne GitHub](#send-local-repositories-without-github) für die Fälle, in denen Claude Code Ihr lokales Repository hochlädt, anstatt es zu klonen.

81 

82`--cloud` funktioniert mit einem Repository auf einmal. Die Aufgabe wird in der Cloud ausgeführt, während Sie lokal weiterarbeiten. Die ältere Schreibweise `--remote` funktioniert immer noch als veralteter Alias für `--cloud`.

83 83 

84Während der Cloud-Container startet, zeigt die CLI eine Live-Checkliste von Setup-Schritten an, wie z. B. das Klonen des Repositories und das Ausführen Ihres [Setup-Skripts](/docs/de/cloud-environments#setup-scripts). Sie reiht Nachrichten ein, die Sie während der Bereitstellung eingeben, und sendet sie, sobald die Sitzung bereit ist.84Während der Cloud-Container startet, zeigt die CLI eine Live-Checkliste von Setup-Schritten an, wie z. B. das Klonen des Repositories und das Ausführen Ihres [Setup-Skripts](/docs/de/cloud-environments#setup-scripts). Sie reiht Nachrichten ein, die Sie während der Bereitstellung eingeben, und sendet sie, sobald die Sitzung bereit ist.

85 85 


121 Senden Sie lokale Repositories ohne GitHub121 Senden Sie lokale Repositories ohne GitHub

122</h4>122</h4>

123 123 

124Wenn Sie `claude --cloud` aus einem Repository ausführen, das nicht mit GitHub verbunden ist, bündelt Claude Code Ihr lokales Repository und lädt es direkt in die Cloud-Sitzung hoch. Das Bündel enthält Ihre vollständige Repository-Historie über alle Branches hinweg, plus alle nicht committeten Änderungen an verfolgten Dateien.124Wenn Sie `claude --cloud` aus einem Repository ausführen, das kein Git-Remote hat, oder aus einem github.com-Repository, auf dem die Claude GitHub App nicht installiert ist, bündelt Claude Code Ihr lokales Repository und lädt es direkt in die Cloud-Sitzung hoch. Dies gilt auch, wenn Sie GitHub mit `/web-setup` verbunden haben. Das Bündel enthält Ihre vollständige Repository-Historie über alle Branches hinweg, plus nicht committete Änderungen an verfolgten Dateien.

125 125 

126Auf macOS, Linux und WSL lässt Claude Code nicht committete Änderungen an Dateien, die wie Anmeldedaten oder Schlüssel benannt sind, aus dem Upload weg und benennt die Dateien, die es weggelassen hat. Dies umfasst `.env`-Dateien, Terraform `*.tfvars`-Dateien und Schlüsseldateien wie `id_rsa` und `*.pem`. Die Sitzung startet mit der committeten Version jeder Datei oder ohne die Datei, wenn keine committiert ist. In einem verknüpften Worktree, Submodul oder ähnlichem Layout lädt Claude Code diese Änderungen mit dem Rest hoch und benennt die Dateien, die es hochlädt.126Auf macOS, Linux und WSL lässt Claude Code nicht committete Änderungen an Dateien, die wie Anmeldedaten oder Schlüssel benannt sind, aus dem Upload weg und benennt die Dateien, die es weggelassen hat. Dies umfasst `.env`-Dateien, Terraform `*.tfvars`-Dateien und Schlüsseldateien wie `id_rsa` und `*.pem`. Die Sitzung startet mit der committeten Version jeder Datei oder ohne die Datei, wenn keine committiert ist. In einem verknüpften Worktree, Submodul oder ähnlichem Layout lädt Claude Code diese Änderungen mit dem Rest hoch und benennt die Dateien, die es hochlädt.

127 127 

128Dieses Fallback wird automatisch aktiviert, wenn GitHub-Zugriff nicht verfügbar ist. Um es zu erzwingen, auch wenn GitHub verbunden ist, setzen Sie `CCR_FORCE_BUNDLE=1`:128Um ein Bündel hochzuladen, auch wenn Claude Code andernfalls vom Remote klonen würde, setzen Sie `CCR_FORCE_BUNDLE=1`:

129 129 

130```bash theme={null}130```bash theme={null}

131CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"131CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"


136* Das Verzeichnis muss ein Git-Repository mit mindestens einem Commit sein136* Das Verzeichnis muss ein Git-Repository mit mindestens einem Commit sein

137* Das gebündelte Repository muss unter 100 MB liegen. Größere Repositories fallen auf das Bündeln nur des aktuellen Branches zurück, dann auf einen einzelnen gequetschten Snapshot des Arbeitsbaums, und schlagen nur fehl, wenn der Snapshot immer noch zu groß ist137* Das gebündelte Repository muss unter 100 MB liegen. Größere Repositories fallen auf das Bündeln nur des aktuellen Branches zurück, dann auf einen einzelnen gequetschten Snapshot des Arbeitsbaums, und schlagen nur fehl, wenn der Snapshot immer noch zu groß ist

138* Nicht verfolgte Dateien sind nicht enthalten; führen Sie `git add` auf Dateien aus, die die Cloud-Sitzung sehen soll138* Nicht verfolgte Dateien sind nicht enthalten; führen Sie `git add` auf Dateien aus, die die Cloud-Sitzung sehen soll

139* Sitzungen, die aus einem Bündel erstellt wurden, können nicht zurück zu einem Remote pushen, es sei denn, Sie haben auch [GitHub-Authentifizierung](#github-authentication-options) konfiguriert139* Sitzungen, die aus einem Bündel erstellt wurden, können nur dann zurück zu einem GitHub-Remote pushen, wenn Ihre [GitHub-Verbindung](#github-authentication-options) Push-Zugriff auf dieses Repository hat

140 140 

141<h3 id="send-follow-ups-from-the-cli">141<h3 id="send-follow-ups-from-the-cli">

142 Senden Sie Folgenachrichten von der CLI142 Senden Sie Folgenachrichten von der CLI


261 261 

262Jede Sitzung zeigt einen Diff-Indikator mit hinzugefügten und entfernten Zeilen, wie `+42 -18`. Wählen Sie ihn, um die Diff-Ansicht zu öffnen, hinterlassen Sie Inline-Kommentare zu bestimmten Zeilen und senden Sie sie mit Ihrer nächsten Nachricht an Claude.262Jede Sitzung zeigt einen Diff-Indikator mit hinzugefügten und entfernten Zeilen, wie `+42 -18`. Wählen Sie ihn, um die Diff-Ansicht zu öffnen, hinterlassen Sie Inline-Kommentare zu bestimmten Zeilen und senden Sie sie mit Ihrer nächsten Nachricht an Claude.

263 263 

264Claude Code berechnet diese Diffs, einschließlich der Pro-Datei-Diffs, die als Claude-Bearbeitungen angezeigt werden, aus rohem Git-Blob-Inhalt, daher gelten Diff-Treiber und `textconv`-Filter, die im Repository konfiguriert sind, nicht.264Claude Code berechnet diese Diffs, einschließlich der Pro-Datei-Diffs, die als Claude-Bearbeitungen angezeigt werden, aus rohem Git-Blob-Inhalt, daher gelten Diff-Treiber und `textconv`-Filter, die im Repository konfiguriert sind, nicht. Für eine Datei in einem Repository, das nicht einer der eigenen Checkouts der Sitzung ist, wie eine während der Sitzung im Workspace geklonte Datei, zeigt der Pro-Datei-Diff die Claude-Bearbeitung selbst anstelle eines Git-Vergleichs.

265 265 

266Siehe [Überprüfung und Iteration](/docs/de/web-quickstart#review-and-iterate) für die vollständige Anleitung, einschließlich PR-Erstellung. Um Claude den PR auf CI-Fehler und Review-Kommentare automatisch überwachen zu lassen, siehe [Auto-fix Pull Requests](#auto-fix-pull-requests).266Siehe [Überprüfung und Iteration](/docs/de/web-quickstart#review-and-iterate) für die vollständige Anleitung, einschließlich PR-Erstellung. Um Claude den PR auf CI-Fehler und Review-Kommentare automatisch überwachen zu lassen, siehe [Auto-fix Pull Requests](#auto-fix-pull-requests).

267 267 


352Jede Cloud-Sitzung ist von Ihrem Computer und von anderen Sitzungen durch mehrere Schichten getrennt:352Jede Cloud-Sitzung ist von Ihrem Computer und von anderen Sitzungen durch mehrere Schichten getrennt:

353 353 

354* **Isolierte virtuelle Maschinen**: Jede Sitzung wird in einer isolierten, von Anthropic verwalteten VM ausgeführt. Sitzungen, die Ihre Organisation zu einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) leitet, werden stattdessen auf Ihrer eigenen Infrastruktur ausgeführt, wo Isolation die Verantwortung Ihrer Bereitstellung ist354* **Isolierte virtuelle Maschinen**: Jede Sitzung wird in einer isolierten, von Anthropic verwalteten VM ausgeführt. Sitzungen, die Ihre Organisation zu einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) leitet, werden stattdessen auf Ihrer eigenen Infrastruktur ausgeführt, wo Isolation die Verantwortung Ihrer Bereitstellung ist

355* **Netzwerkzugriffskontrolle**: In von Anthropic gehosteten Umgebungen ist der Netzwerkzugriff standardmäßig begrenzt und kann deaktiviert werden. In einer selbstgehosteten Umgebung beschränken Sie den Sitzungs-Egress an Ihrer eigenen Netzwerkgrenze. Wenn Claude Code mit deaktiviertem Netzwerkzugriff ausgeführt wird, kann Claude Code immer noch mit der Anthropic API kommunizieren, was möglicherweise ermöglicht, dass Daten die VM verlassen.355* <span id="default-allowed-domains" />**Netzwerkzugriffskontrolle**: In von Anthropic gehosteten Umgebungen ist der Netzwerkzugriff standardmäßig begrenzt und kann deaktiviert werden. Siehe [Netzwerkzugriff](/docs/de/cloud-environments#network-access) für die Zugriffsstufen, die [standardmäßig zulässigen Domänen](/docs/de/cloud-environments#default-allowed-domains) und den Datenverkehr, der nicht durch die Zulassungsliste läuft. In einer selbstgehosteten Umgebung beschränken Sie den Sitzungs-Egress an Ihrer eigenen Netzwerkgrenze. Wenn Claude Code mit deaktiviertem Netzwerkzugriff ausgeführt wird, kann Claude Code immer noch mit der Anthropic API kommunizieren, was möglicherweise ermöglicht, dass Daten die VM verlassen.

356* **Schutz von Anmeldedaten**: In von Anthropic gehosteten Umgebungen befinden sich Git-Anmeldedaten und Signaturschlüssel außerhalb der Sandbox, und ein Proxy authentifiziert sich im Namen der Sitzung mit scoped Credentials. In einer selbstgehosteten Umgebung stellt Ihre Bereitstellung Git-Anmeldedaten bereit; siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git)356* **Schutz von Anmeldedaten**: In von Anthropic gehosteten Umgebungen befinden sich Git-Anmeldedaten und Signaturschlüssel außerhalb der Sandbox, und ein Proxy authentifiziert sich im Namen der Sitzung mit scoped Credentials. In einer selbstgehosteten Umgebung stellt Ihre Bereitstellung Git-Anmeldedaten bereit; siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git)

357* **API-Anmeldedaten**: In von Anthropic gehosteten Umgebungen auf Pro- und Max-Plänen bleiben Schlüssel, die Sie [zu einer Cloud-Umgebung hinzufügen](/docs/de/cloud-environments#add-api-credentials), auf die gleiche Weise außerhalb der Sandbox, angehängt an übereinstimmende Anfragen, nachdem sie die Sitzung verlassen. Eine selbstgehostete Umgebung hat keine API-Anmeldedaten, und Team- und Enterprise-Pläne haben sie noch nicht357* **API-Anmeldedaten**: In von Anthropic gehosteten Umgebungen auf Pro- und Max-Plänen bleiben Schlüssel, die Sie [zu einer Cloud-Umgebung hinzufügen](/docs/de/cloud-environments#add-api-credentials), auf die gleiche Weise außerhalb der Sandbox, angehängt an übereinstimmende Anfragen, nachdem sie die Sitzung verlassen. Eine selbstgehostete Umgebung hat keine API-Anmeldedaten, und Team- und Enterprise-Pläne haben sie noch nicht

358* **Sichere Analyse**: Code wird in der isolierten Umgebung der Sitzung analysiert und geändert, bevor PRs erstellt werden358* **Sichere Analyse**: Code wird in der isolierten Umgebung der Sitzung analysiert und geändert, bevor PRs erstellt werden


371 371 

372* Überprüfen Sie [status.claude.com](https://status.claude.com) auf Cloud-Sitzungs-Incidents372* Überprüfen Sie [status.claude.com](https://status.claude.com) auf Cloud-Sitzungs-Incidents

373* Versuchen Sie es nach einer Minute erneut, da die Kapazität bei Bedarf bereitgestellt wird373* Versuchen Sie es nach einer Minute erneut, da die Kapazität bei Bedarf bereitgestellt wird

374* Bestätigen Sie, dass Ihr Repository erreichbar ist. Das verbindende GitHub-Konto muss Zugriff auf das Repository auf GitHub haben, entweder durch die Claude GitHub App-Autorisierung oder ein `gh`-Token, das über `/web-setup` synchronisiert wird. Die Installation der App auf dem Repository ist nicht erforderlich. Siehe [GitHub-Authentifizierungsoptionen](#github-authentication-options).374* Bestätigen Sie, dass Ihre GitHub-Verbindung das Repository erreichen kann, indem Sie [Keine Repositories werden nach dem Verbinden von GitHub angezeigt](/docs/de/web-quickstart#no-repositories-appear-after-connecting-github) befolgen

375 375 

376<h3 id="unable-to-get-organization-uuid">376<h3 id="unable-to-get-organization-uuid">

377 Unable to get organization UUID377 Unable to get organization UUID


395 Umgebung abgelaufen395 Umgebung abgelaufen

396</h3>396</h3>

397 397 

398Cloud-Sitzungen werden nach einer Inaktivitätszeit beendet und die Sitzungs-VM wird freigegeben. Im Web wird die Sitzung in der Sitzungsliste als abgelaufen markiert.398Cloud-Sitzungen werden nach einer Inaktivitätszeit beendet und die Sitzungs-VM wird freigegeben. Eine Sitzung gilt als inaktiv, während sie darauf wartet, dass Sie einen [MCP-Connector](/docs/de/cloud-environments#network-access)-Tool-Aufruf genehmigen oder sich bei einem MCP-Server anmelden, und sie kann während dieses Wartens ablaufen. Im Web wird die Sitzung in der Sitzungsliste als abgelaufen markiert.

399 399 

400Öffnen Sie die Sitzung erneut von [claude.ai/code](https://claude.ai/code), um eine frische VM mit Ihrer wiederhergestellten Gesprächshistorie bereitzustellen. Hintergrundarbeit, die noch lief, als die VM freigegeben wurde, wie Subagents und Shell-Befehle, wird nicht wiederhergestellt.400Öffnen Sie die Sitzung erneut von [claude.ai/code](https://claude.ai/code), um eine frische VM mit Ihrer wiederhergestellten Gesprächshistorie bereitzustellen. Hintergrundarbeit, die noch lief, als die VM freigegeben wurde, wie Subagents und Shell-Befehle, wird nicht wiederhergestellt.

401 401 


407 407 

408* **Ratenlimits**: Claude Code im Web teilt Ratenlimits mit allen anderen Claude- und Claude Code-Nutzungen in Ihrem Konto. Das Ausführen mehrerer Aufgaben parallel verbraucht proportional mehr Ratenlimits. Es gibt keine separate Compute-Gebühr für die Cloud-VM.408* **Ratenlimits**: Claude Code im Web teilt Ratenlimits mit allen anderen Claude- und Claude Code-Nutzungen in Ihrem Konto. Das Ausführen mehrerer Aufgaben parallel verbraucht proportional mehr Ratenlimits. Es gibt keine separate Compute-Gebühr für die Cloud-VM.

409* **Repository-Authentifizierung**: Sie können Sitzungen nur vom Web zum lokalen Computer verschieben, wenn Sie sich bei demselben Konto authentifizieren409* **Repository-Authentifizierung**: Sie können Sitzungen nur vom Web zum lokalen Computer verschieben, wenn Sie sich bei demselben Konto authentifizieren

410* **Plattformbeschränkungen**: Repository-Klonen und Pull Request-Erstellung erfordern GitHub. Selbstgehostete [GitHub Enterprise Server](/docs/de/github-enterprise-server)-Instanzen werden für Team- und Enterprise-Pläne unterstützt. GitLab, Bitbucket und andere Nicht-GitHub-Repositories können als lokales [Bündel](#send-local-repositories-without-github) zu Cloud-Sitzungen gesendet werden, aber die Sitzung kann nicht zurück zum Remote pushen410* **Plattformbeschränkungen**: Repository-Klonen und Pull Request-Erstellung erfordern GitHub. Selbstgehostete [GitHub Enterprise Server](/docs/de/github-enterprise-server)-Instanzen werden für Team- und Enterprise-Pläne unterstützt. Sie können GitLab, Bitbucket oder andere Nicht-GitHub-Repositories als [lokales Bündel](#send-local-repositories-without-github) zu einer Cloud-Sitzung senden, indem Sie `CCR_FORCE_BUNDLE=1` setzen, aber die Sitzung kann die Ergebnisse nicht zurück zum Remote pushen

411* **Organisations-IP-Allowlist**: Cloud-Sitzungen rufen die Anthropic API von von Anthropic verwalteter Infrastruktur auf, nicht von Ihrem Netzwerk, während Sitzungen in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) sie von Ihrem eigenen Netzwerk aufrufen. Wenn Ihre Organisation [IP-Allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) aktiviert hat, schlägt jede von Anthropic gehostete Cloud-Sitzung mit einem Authentifizierungsfehler fehl. Das gleiche gilt für [Code Review](/docs/de/code-review) und [Routines](/docs/de/routines), die auf von Anthropic gehosteten Umgebungen ausgeführt werden; eine Routine, die zu einer selbstgehosteten Umgebung geleitet wird, ruft die API von Ihrem eigenen Netzwerk auf. Kontaktieren Sie [Anthropic Support](https://support.claude.com/), um von Anthropic gehostete Services von der IP-Allowlist Ihrer Organisation auszunehmen.411* **Organisations-IP-Allowlist**: Cloud-Sitzungen rufen die Anthropic API von von Anthropic verwalteter Infrastruktur auf, nicht von Ihrem Netzwerk, während Sitzungen in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) sie von Ihrem eigenen Netzwerk aufrufen. Wenn Ihre Organisation [IP-Allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) aktiviert hat, schlägt jede von Anthropic gehostete Cloud-Sitzung mit einem Authentifizierungsfehler fehl. Das gleiche gilt für [Code Review](/docs/de/code-review) und [Routines](/docs/de/routines), die auf von Anthropic gehosteten Umgebungen ausgeführt werden; eine Routine, die zu einer selbstgehosteten Umgebung geleitet wird, ruft die API von Ihrem eigenen Netzwerk auf. Kontaktieren Sie [Anthropic Support](https://support.claude.com/), um von Anthropic gehostete Services von der IP-Allowlist Ihrer Organisation auszunehmen.

412 412 

413<h2 id="related-resources">413<h2 id="related-resources">

Details

1505| [`.worktreeinclude`](#ce-worktreeinclude) | Nur Projekt | ✓ | Gitignorierte Dateien zum Kopieren in neue Worktrees | [Worktrees](/docs/de/worktrees#copy-gitignored-files-into-worktrees) |1505| [`.worktreeinclude`](#ce-worktreeinclude) | Nur Projekt | ✓ | Gitignorierte Dateien zum Kopieren in neue Worktrees | [Worktrees](/docs/de/worktrees#copy-gitignored-files-into-worktrees) |

1506| [`skills/<name>/SKILL.md`](#ce-skills) | Projekt und global | ✓ | Wiederverwendbare Prompts, aufgerufen mit `/name` oder automatisch aufgerufen | [Skills](/docs/de/skills) |1506| [`skills/<name>/SKILL.md`](#ce-skills) | Projekt und global | ✓ | Wiederverwendbare Prompts, aufgerufen mit `/name` oder automatisch aufgerufen | [Skills](/docs/de/skills) |

1507| [`commands/*.md`](#ce-commands) | Projekt und global | ✓ | Einzeldatei-Prompts; gleicher Mechanismus wie Skills | [Skills](/docs/de/skills) |1507| [`commands/*.md`](#ce-commands) | Projekt und global | ✓ | Einzeldatei-Prompts; gleicher Mechanismus wie Skills | [Skills](/docs/de/skills) |

1508| [`output-styles/*.md`](#ce-output-styles) | Projekt und global | ✓ | Benutzerdefinierte System-Prompt-Abschnitte | [Ausgabestile](/docs/de/output-styles) |1508| [`output-styles/*.md`](#ce-output-styles) | Projekt und global | ✓ | Benutzerdefinierte Anweisungssätze, die anpassen, wie Claude funktioniert | [Ausgabestile](/docs/de/output-styles) |

1509| [`agents/*.md`](#ce-agents) | Projekt und global | ✓ | Subagent-Definitionen mit eigenem Prompt und Tools | [Subagents](/docs/de/sub-agents) |1509| [`agents/*.md`](#ce-agents) | Projekt und global | ✓ | Subagent-Definitionen mit eigenem Prompt und Tools | [Subagents](/docs/de/sub-agents) |

1510| [`workflows/*.js`](#ce-workflows) | Projekt und global | ✓ | Dynamische Workflow-Skripte, geschrieben von Claude und gespeichert von `/workflows`; jede Datei wird zu einem `/<name>`-Befehl | [Dynamische Workflows](/docs/de/workflows) |1510| [`workflows/*.js`](#ce-workflows) | Projekt und global | ✓ | Dynamische Workflow-Skripte, geschrieben von Claude und gespeichert von `/workflows`; jede Datei wird zu einem `/<name>`-Befehl | [Dynamische Workflows](/docs/de/workflows) |

1511| [`agent-memory/<name>/`](#ce-agent-memory) | Projekt und global | ✓ | Persistentes Memory für Subagents | [Persistentes Memory](/docs/de/sub-agents#enable-persistent-memory) |1511| [`agent-memory/<name>/`](#ce-agent-memory) | Projekt und global | ✓ | Persistentes Memory für Subagents | [Persistentes Memory](/docs/de/sub-agents#enable-persistent-memory) |

claude-security.md +171 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Scannen Sie Ihre Codebasis auf Sicherheitslücken

6 

7> Installieren Sie das Claude Security Plugin, um Ihre Codebasis in einer Claude Code-Sitzung auf Sicherheitslücken zu scannen und Erkenntnisse in Patches umzuwandeln, die Sie überprüfen und anwenden.

8 

9Das Claude Security Plugin führt einen Multi-Agent-Sicherheitslücken-Scan Ihrer Codebasis innerhalb einer Claude Code-Sitzung durch. Ein Team von Claude-Agenten kartiert Ihre Architektur, erstellt ein Bedrohungsmodell, sucht nach Sicherheitslücken und überprüft unabhängig jeden Fund, bevor der Bericht geschrieben wird. Verwenden Sie das Plugin, um ein ganzes Repository zu scannen oder [nur einen Satz von Änderungen](#scan-only-your-changes), wie das Diff eines Branches, das Diff eines Pull Requests oder einen einzelnen Commit, und wandeln Sie dann die Erkenntnisse Ihrer Wahl in Patches um, die Sie selbst überprüfen und anwenden.

10 

11Das Plugin wird lokal in Ihrer Sitzung ausgeführt, verwendet die Modelle, auf die Sie in Claude Code Zugriff haben, und jeder Scan wird auf die Nutzungslimits Ihres Plans angerechnet. Wenn Sie einen verwalteten Service möchten, der Ihre Repositories überwacht, oder Scans auf [Claude Mythos 5](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) ausführen möchten, siehe das [Claude Security](https://claude.com/product/claude-security) Produkt, das im Enterprise-Plan verfügbar ist. Das Plugin erreicht Code, den das verwaltete Produkt nicht erreichen kann, wie Repositories, die auf GitLab oder Bitbucket gehostet werden, oder auf Netzwerken, die keine eingehenden Verbindungen zulassen.

12 

13Das Plugin unterscheidet sich auch von den Überprüfungswerkzeugen, die bereits in Claude Code vorhanden sind: Das [Security Guidance Plugin](/docs/de/security-guidance) überprüft Code, während Claude ihn schreibt, [`/security-review`](/docs/de/commands#all-commands) führt einen einzelnen Durchgang über Ihren Branch durch, und [Code Review](/docs/de/code-review) überprüft Pull Requests. Wie die Ebenen zusammenpassen, siehe [Wie das Plugin mit anderen Sicherheitswerkzeugen passt](#how-the-plugin-fits-with-other-security-tools).

14 

15<h2 id="prerequisites">

16 Voraussetzungen

17</h2>

18 

19Um das Plugin auszuführen, benötigen Sie:

20 

21* Einen bezahlten Plan für die [dynamischen Workflows](/docs/de/workflows), die der Scan verwendet, um seine Agenten zu orchestrieren. Aktivieren Sie sie auf Pro über die Zeile „Dynamic workflows" in `/config`.

22* Python 3.9 oder später, verfügbar auf Ihrem `PATH` als `python3`. Überprüfen Sie mit `python3 --version`. Das Tooling des Plugins verwendet nur die Python-Standardbibliothek, daher wird nichts installiert.

23* Linux, macOS oder Windows.

24* Git, für Änderungsscans und zum Umwandeln von Erkenntnissen in Patches; diese Jobs unterstützen keine anderen Versionskontrollsysteme. Ein vollständiger Scan funktioniert in jedem Verzeichnis, mit oder ohne Versionskontrolle.

25 

26<h2 id="install-the-plugin">

27 Installieren Sie das Plugin

28</h2>

29 

30Installieren Sie in einer Claude Code-Sitzung aus dem [offiziellen Anthropic-Marketplace](/docs/de/discover-plugins#official-anthropic-marketplace):

31 

32```text theme={null}

33/plugin install claude-security@claude-plugins-official

34```

35 

36Der Befehl öffnet die Details des Plugins, wo Sie einen [Installationsbereich](/docs/de/discover-plugins#install-plugins) wählen, um die Installation zu starten.

37 

38Wenn die Installation fehlschlägt, hängt die Behebung von der Meldung ab, die Claude Code meldet:

39 

40* Wenn es meldet `Marketplace "claude-plugins-official" not found`, fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.

41* Wenn es meldet, dass es [das Plugin im Marketplace nicht finden kann](/docs/de/discover-plugins#install-plugins), überprüfen Sie den Plugin-Namen auf Tippfehler.

42 

43Überprüfen Sie die Installationszusammenfassung. Wenn sie meldet `Run /reload-plugins to activate.`, lesen Sie [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting), um das Plugin in Ihrer aktuellen Sitzung zu aktivieren.

44 

45Sobald das Plugin aktiv ist, sind Sie bereit zum [Scannen und Beheben Ihrer Codebasis](#scan-and-fix-your-codebase).

46 

47<h3 id="uninstall-the-plugin">

48 Deinstallieren Sie das Plugin

49</h3>

50 

51Um das Plugin zu entfernen, deinstallieren Sie es aus dem `/plugin`-Menü, oder führen Sie `claude plugin uninstall claude-security` in Ihrem Terminal aus.

52 

53<h2 id="scan-and-fix-your-codebase">

54 Scannen und beheben Sie Ihre Codebasis

55</h2>

56 

57Das Plugin fügt einen Befehl hinzu, `/claude-security`, der ein Menü mit seinen drei Jobs öffnet: Scannen der Codebasis, Scannen einer Reihe von Änderungen und Vorschlagen von Patches. Der glückliche Weg führt einen vollständigen Scan durch und wandelt dann seine Erkenntnisse in Patches um:

58 

59<Steps>

60 <Step title="Öffnen Sie das Claude Security-Menü">

61 Führen Sie `/claude-security` aus und wählen Sie **Scan codebase**.

62 </Step>

63 

64 <Step title="Wählen Sie aus, was gescannt werden soll">

65 Das Plugin liest zunächst Ihr Repository, bietet dann das gesamte Repository oder einen fokussierten Bereich an, wobei die Dateianzahl und die relativen Kosten jeder Option angegeben sind. Wählen Sie das gesamte Repository, oder antworten Sie „I don't know" und das Plugin wählt einen sinnvollen Standard für die Größe Ihres Repositories.

66 </Step>

67 

68 <Step title="Bestätigen Sie den Durchlauf">

69 Ein Scan kann eine Weile dauern, kann eine erhebliche Anzahl von Tokens verwenden und erfordert, dass Claude Code offen bleibt, während er abgeschlossen wird. Nichts wird ausgeführt, bis Sie bestätigen.

70 </Step>

71 

72 <Step title="Lesen Sie den Bericht">

73 Während der Scan läuft, meldet er jede Phase, wenn sie beginnt, mit den Details verfügbar unter [`/workflows`](/docs/de/workflows). Die Ergebnisse landen in einem Verzeichnis mit Zeitstempel in Ihrem Repository, beschrieben in [Lesen Sie die Scan-Ergebnisse](#read-the-scan-results).

74 </Step>

75 

76 <Step title="Wandeln Sie Erkenntnisse in Patches um">

77 Führen Sie `/claude-security` erneut aus und wählen Sie **Suggest patches**, wählen Sie dann, welche Erkenntnisse Sie adressieren möchten. Überprüfte Patches landen im `patches/`-Ordner des Berichts; [Beheben Sie Erkenntnisse](#fix-findings) behandelt, wie jeder Patch erstellt und überprüft wird.

78 </Step>

79 

80 <Step title="Wenden Sie die Patches an, die Sie akzeptieren">

81 Wenden Sie jeden Patch aus Ihrer Shell mit `git apply` an, in seinem eigenen Pull Request. Patches werden niemals automatisch angewendet.

82 </Step>

83</Steps>

84 

85Sie müssen nicht vom Menü aus starten: Fragen Sie direkt nach einem Job, als Argumente für den Befehl, wie `/claude-security scan my branch`, oder in einfacher Sprache, wie „scan commit abc1234". Das Plugin funktioniert am besten im [Auto-Modus](/docs/de/permission-modes), der es den Agenten des Scans ermöglicht, ohne eine Berechtigungsaufforderung bei jedem Schritt fortzufahren.

86 

87<h3 id="scan-only-your-changes">

88 Scannen Sie nur Ihre Änderungen

89</h3>

90 

91Wenn Ihr Branch Commits hat, die seine Basis nicht hat, bietet das `/claude-security`-Menü an, nur dieses Diff zu scannen, damit Sie einen Branch vor dem Zusammenführen überprüfen können. Sie können auch einen Ihrer offenen Pull Requests scannen oder einen einzelnen Commit scannen, indem Sie danach fragen, wie z. B. „scan commit abc1234". Nur committete Änderungen werden gescannt: Committen oder stashen Sie laufende Änderungen zuerst, oder führen Sie einen vollständigen Scan durch, der den Arbeitsbaum liest.

92 

93Änderungsscans benötigen ein Git-Repository; vollständige Scans eines unversionierten Verzeichnisses funktionieren immer noch. Das Finden Ihrer offenen Pull Requests ist der einzige Schritt, der das Netzwerk erreicht, und er wird nur angeboten, wenn Ihre Sitzung bereits die Berechtigung hat, die GitHub CLI auszuführen und `gh` angemeldet ist.

94 

95<h3 id="scope-large-repositories">

96 Umfang großer Repositories

97</h3>

98 

99Scannen Sie bei einem großen Repository jeweils einen Bereich statt des gesamten Baums. Wählen Sie einen der fokussierten Bereiche, die das Plugin anbietet, wie z. B. Ihre API-Schicht oder Ihren Authentifizierungscode, und die Ausführung passt sich an das an, was Sie wählen. Der Abschnitt „Coverage" des Berichts gibt an, was untersucht wurde und was nicht. Führen Sie jederzeit einen weiteren Scan in einem anderen Bereich durch.

100 

101<h3 id="read-the-scan-results">

102 Lesen Sie die Scan-Ergebnisse

103</h3>

104 

105Jeder Scan schreibt seine Ergebnisse in ein Verzeichnis `CLAUDE-SECURITY-<timestamp>/` mit Zeitstempel in Ihrem Repository:

106 

107* **`CLAUDE-SECURITY-RESULTS.md`**: der Bericht, mit der ID jedes Funds, wie z. B. `F1`, plus seine Auswirkung, Exploitierungsszenario, Schweregrad, Konfidenz und Empfehlung

108* **`CLAUDE-SECURITY-RESULTS.jsonl`**: die gleichen Erkenntnisse in maschinenlesbarer Form, ein JSON-Objekt pro Zeile

109* **`CLAUDE-SECURITY-RESULTS.sarif`**: die gleichen Erkenntnisse als [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) Log für GitHub Code Scanning und jedes andere Tool, das den Standard liest. Der Scan klassifiziert Erkenntnisse unter ihren [CWE](https://cwe.mitre.org/) Schwächekategorien

110* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: der Revisionsstempel, der aufzeichnet, welcher Commit gescannt wurde, mit welchem Aufwand, ob nicht committete Änderungen Teil des gescannten Baums waren, und wie gründlich der Durchlauf überprüft wurde, damit ein Bericht immer an den Code gebunden ist, den er beschreibt. Ein Scan außerhalb der Versionskontrolle stempelt `UNVERSIONED` anstelle des Commits

111 

112Dieses Verzeichnis ist die einzige Änderung, die ein Scan an Ihrem Checkout vornimmt, und es hat sein eigenes `.gitignore`, daher wird ein verirrtes `git add` niemals einen Bericht in einen Commit fegen. Um einen Bericht in der Historie für einen Audit-Trail zu behalten, löschen Sie diese eine `.gitignore`-Datei und committen Sie das Verzeichnis wie jedes andere.

113 

114Erkenntnisse erscheinen nur im Bericht, nachdem unabhängige Verifier-Agenten sie analysiert haben, was Berichte kurz und lesenswert hält. Scans sind nicht deterministisch: Zwei Scans des gleichen Codes können unterschiedliche Erkenntnisse aufdecken. Führen Sie Scans regelmäßig durch, und verwenden Sie die Revisionsstempel, um jeden Bericht dem genauen Code und den Einstellungen zuzuordnen, die er abdeckte.

115 

116<h2 id="fix-findings">

117 Beheben Sie Erkenntnisse

118</h2>

119 

120Starten Sie den Fix-Flow, indem Sie **Suggest patches** aus dem `/claude-security`-Menü wählen, oder fragen Sie in einfacher Sprache, wie z. B. „fix finding F3", wählen Sie dann, welche Erkenntnisse aus dem Bericht Sie adressieren möchten. Patches werden gegen committeten Code erstellt, und der Bericht muss immer noch den Code beschreiben, den Sie haben: Erkenntnisse, deren Code sich seitdem geändert hat, werden mit einer Notiz übersprungen, und das Plugin bietet einen frischen Scan statt des Patchens aus einem veralteten Bericht an. Jeder Patch wird in einer Arbeitskopie Ihres Repositories entworfen, daher bleiben Ihre Quelldateien unberührt, bis Sie einen Patch selbst anwenden.

121 

122Vor der Lieferung wird jeder Patch von einem Agenten überprüft, der unabhängig von dem ist, der ihn geschrieben hat, der Ihre Projekttests gegen die Änderung ausführt, wenn der Code sie hat, und das Diff auf seine eigenen Bedingungen liest, um alles Neue zu finden, das es möglicherweise einführt. Ein Patch wird nur geschrieben, wenn diese Überprüfung bestätigen kann, dass die Änderung den einen Fund adressiert, keine neue Sicherheitslücke einführt und das Verhalten ansonsten unverändert lässt. Wenn es nicht für alle drei garantieren kann, erhalten Sie stattdessen eine kurze Notiz, die erklärt, warum.

123 

124<h3 id="patches-are-never-applied-automatically">

125 Patches werden niemals automatisch angewendet

126</h3>

127 

128Das Anwenden eines Patches ist immer Ihre Entscheidung. Patches landen im `patches/`-Ordner des Berichts, ein `F<n>.patch` pro Fund mit einer Notiz daneben, die die Änderung erklärt. Wenden Sie einen aus Ihrer Shell an, oder bitten Sie Claude, ihn anzuwenden und einen Pull Request zu öffnen:

129 

130```bash theme={null}

131git apply CLAUDE-SECURITY-<timestamp>/patches/F1.patch

132```

133 

134Wenn der gepatchte Code keine Tests hat, sagt die Notiz des Patches dies, daher wissen Sie, dass seine Überprüfung ohne einen Test-Pass lief. Wenden Sie jeden Patch in seinem eigenen Pull Request an, damit er überprüft und getestet werden kann.

135 

136<h2 id="how-the-plugin-fits-with-other-security-tools">

137 Wie das Plugin mit anderen Sicherheitswerkzeugen passt

138</h2>

139 

140Das Claude Security Plugin ist die On-Demand-Deep-Scan-Schicht in einem Defense-in-Depth-Stack, neben dem [Security Guidance Plugin](/docs/de/security-guidance), [`/security-review`](/docs/de/commands#all-commands), [Code Review](/docs/de/code-review), dem verwalteten [Claude Security](https://claude.com/product/claude-security) Produkt und Ihren bestehenden Scannern:

141 

142| Phase | Werkzeug | Was es abdeckt |

143| :----------------------------- | :----------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |

144| In Sitzung | [Security Guidance Plugin](/docs/de/security-guidance) | Häufige Sicherheitslücken in Code, den Claude schreibt, behoben in der gleichen Sitzung |

145| On Demand, einzelner Durchgang | [`/security-review`](/docs/de/commands#all-commands) | Einmaliger Sicherheitsdurchgang auf dem aktuellen Branch |

146| On Demand, Deep Scan | Claude Security Plugin | Multi-Agent-Scan eines Repositories oder Diffs, mit unabhängig überprüften Erkenntnissen und Patches |

147| Bei Pull Request | [Code Review](/docs/de/code-review), Team- und Enterprise-Pläne | Multi-Agent-Korrektheit und Sicherheitsüberprüfung mit vollständigem Codebase-Kontext |

148| Verwaltet | [Claude Security](https://claude.com/product/claude-security), Enterprise-Plan | Gehostetes Scannen, das verbundene Repositories überwacht |

149| In CI | Ihre bestehenden statischen Analyse- und Abhängigkeitsscanner | Sprachspezifische Regeln, Supply-Chain-Checks und Richtliniendurchsetzung |

150 

151Das Plugin ersetzt Ihre bestehenden Source-Code-Sicherheitswerkzeuge nicht. Führen Sie es neben statischer Analyse, Abhängigkeitsscanning und Code-Review aus: Es argumentiert über Ihren Code so, wie es ein menschlicher Sicherheitsforscher tun würde, was die deterministischen Checks ergänzt, die diese Werkzeuge bieten.

152 

153<h2 id="troubleshooting">

154 Troubleshooting

155</h2>

156 

157**Das `/claude-security`-Menü öffnet sich mit einer Python-Warnung.** Das Plugin benötigt `python3` 3.9 oder später auf Ihrem `PATH`. Wenn es `python3` überhaupt nicht finden kann, warnt das Menü, dass Claude Security nicht funktioniert, bis eines installiert ist; wenn das erste `python3` auf Ihrem `PATH` älter ist, benennt die Warnung die Version, die es gefunden hat. Installieren Sie Python 3, oder setzen Sie ein neueres `python3` zuerst auf Ihren `PATH`, dann starten Sie eine neue Sitzung.

158 

159**Sie können eine Meldung „safeguards flagged this message" sehen, wenn Sie auf einem Fable-Modell scannen.** Die Meldung benennt das Modell, zum Beispiel „Fable 5.1's safeguards flagged this message". Die Cybersecurity-Sicherheitsklassifizierer von Fable kennzeichnen bestimmte Anfragen, und Claude Code führt eine gekennzeichnete Anfrage auf einem Opus-Modell durch [automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) erneut aus. Dies ist zu erwarten, und der Scan sollte immer noch erfolgreich abgeschlossen werden.

160 

161<h2 id="related-resources">

162 Verwandte Ressourcen

163</h2>

164 

165Um tiefer in die Teile einzusteigen, die diese Seite berührt:

166 

167* [Security Guidance Plugin](/docs/de/security-guidance): Fangen Sie Probleme in Code ab, während Claude ihn schreibt, in der gleichen Sitzung

168* [Code Review](/docs/de/code-review): Richten Sie die Multi-Agent-Überprüfung zur PR-Zeit ein

169* [Claude Security](https://claude.com/product/claude-security): Der verwaltete Service, der verbundene Repositories überwacht

170* [Claude Code-Sicherheit](/docs/de/security): Wie Claude Code Vertrauen, Berechtigungen und Schutzmaßnahmen angeht

171* [Entdecken und installieren Sie Plugins](/docs/de/discover-plugins#official-anthropic-marketplace): Durchsuchen Sie andere offizielle Plugins

claude-tag.md +11 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Tag

6 

7> Bringen Sie Claude mit Claude Tag in die Slack-Kanäle Ihres Teams und finden Sie die Setup- und Nutzungsdokumentation auf claude.com.

8 

9[Claude Tag](https://claude.com/product/tag) ist eine Slack-Integration, die `@Claude` in den Kanälen Ihres Teams als gemeinsame Identität Ihrer Organisation mit vom Administrator konfigurierten Zugriffsrechten ausführt. Jeder in einem Kanal kann `@Claude` in einen Thread markieren und ihm eine Aufgabe zuweisen. Lesen Sie die [Claude Tag-Dokumentation](https://claude.com/docs/claude-tag/overview) auf claude.com, um sie einzurichten und zu verwenden.

10 

11Claude Tag ist in Team- und Enterprise-Plänen verfügbar und unterscheidet sich von der früheren [Claude Code in Slack](/docs/de/slack), die jede Sitzung unter dem Konto eines einzelnen Benutzers ausführt. In Pro- und Max-Plänen, in denen Claude Tag nicht verfügbar ist, bleibt Claude Code in Slack der Setup-Pfad.

cli-reference.md +25 −13

Details

13Sie können Sitzungen starten, Inhalte weiterleiten, Gespräche fortsetzen und Updates verwalten mit diesen Befehlen:13Sie können Sitzungen starten, Inhalte weiterleiten, Gespräche fortsetzen und Updates verwalten mit diesen Befehlen:

14 14 

15| Befehl | Beschreibung | Beispiel |15| Befehl | Beschreibung | Beispiel |

16| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |16| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |

17| `claude` | Interaktive Sitzung starten | `claude` |17| `claude` | Interaktive Sitzung starten | `claude` |

18| `claude "query"` | Interaktive Sitzung mit initialem Prompt starten | `claude "explain this project"` |18| `claude "query"` | Interaktive Sitzung mit initialem Prompt starten | `claude "explain this project"` |

19| `claude -p "query"` | Abfrage über SDK, dann beenden | `claude -p "explain this function"` |19| `claude -p "query"` | Abfrage über SDK, dann beenden | `claude -p "explain this function"` |


34| `claude daemon status` | Drucken Sie den Hintergrund-Sitzungs-[Supervisor](/docs/de/agent-view#the-supervisor-process) Status, Version, Socket-Verzeichnis und Worker-Anzahl für Diagnosen. Beendet mit 1, wenn der Supervisor nicht läuft | `claude daemon status` |34| `claude daemon status` | Drucken Sie den Hintergrund-Sitzungs-[Supervisor](/docs/de/agent-view#the-supervisor-process) Status, Version, Socket-Verzeichnis und Worker-Anzahl für Diagnosen. Beendet mit 1, wenn der Supervisor nicht läuft | `claude daemon status` |

35| `claude daemon stop --any` | Stoppen Sie den Hintergrund-Sitzungs-[Supervisor](/docs/de/agent-view#the-supervisor-process) und die Sitzungen, die er hostet. Übergeben Sie `--keep-workers`, um Hintergrundsitzungen laufen zu lassen, damit sich der nächste Supervisor mit ihnen verbindet. `--any` bestätigt das Stoppen eines On-Demand-Supervisors, was die Standardeinstellung ist. Verwenden Sie dies, um sich von einem [nicht reagierenden Supervisor](/docs/de/agent-view#agent-view-says-the-background-service-did-not-respond) zu erholen | `claude daemon stop --any --keep-workers` |35| `claude daemon stop --any` | Stoppen Sie den Hintergrund-Sitzungs-[Supervisor](/docs/de/agent-view#the-supervisor-process) und die Sitzungen, die er hostet. Übergeben Sie `--keep-workers`, um Hintergrundsitzungen laufen zu lassen, damit sich der nächste Supervisor mit ihnen verbindet. `--any` bestätigt das Stoppen eines On-Demand-Supervisors, was die Standardeinstellung ist. Verwenden Sie dies, um sich von einem [nicht reagierenden Supervisor](/docs/de/agent-view#agent-view-says-the-background-service-did-not-respond) zu erholen | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Drucken Sie schreibgeschützte Installations- und Einstellungsdiagnosen vom Terminal aus, ohne eine Sitzung zu starten, einschließlich Installationsintegrität, Validierungsfehlern in der Einstellungsdatei und Remote Control-Berechtigung. Für die In-Session-Setup-Überprüfung, die auch Fixes anwenden kann, führen Sie [`/doctor`](/docs/de/commands#all-commands) aus | `claude doctor` |36| `claude doctor` | Drucken Sie schreibgeschützte Installations- und Einstellungsdiagnosen vom Terminal aus, ohne eine Sitzung zu starten, einschließlich Installationsintegrität, Validierungsfehlern in der Einstellungsdatei und Remote Control-Berechtigung. Für die In-Session-Setup-Überprüfung, die auch Fixes anwenden kann, führen Sie [`/doctor`](/docs/de/commands#all-commands) aus | `claude doctor` |

37| `claude import [codex\|gemini]` | Starten Sie eine interaktive Sitzung, die [`/import`](/docs/de/commands#all-commands) ausführt, um Konfiguration von anderen Coding-Agenten in Claude Code zu bringen. Akzeptiert die gleichen `--dry-run` und `--yes` Optionen wie der Befehl. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS. Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) deaktivieren. Erfordert Claude Code v2.1.213 oder später | `claude import codex --dry-run` |37| `claude import [source]` | Starten Sie eine interaktive Sitzung, die [`/import`](/docs/de/commands#all-commands) ausführt, um Konfiguration von anderen Coding-Agenten in Claude Code zu bringen. Akzeptiert die gleichen `--dry-run` und `--yes` Optionen wie der Befehl. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS. Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) deaktivieren. Erfordert Claude Code v2.1.213 oder später | `claude import codex --dry-run` |

38| `claude logs <id>` | Drucken Sie die aktuelle Ausgabe aus einer [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |38| `claude logs <id>` | Drucken Sie die aktuelle Ausgabe aus einer [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

39| `claude mcp` | Model Context Protocol (MCP) Server konfigurieren | Siehe die [Claude Code MCP-Dokumentation](/docs/de/mcp). |39| `claude mcp` | Model Context Protocol (MCP) Server konfigurieren | Siehe die [Claude Code MCP-Dokumentation](/docs/de/mcp). |

40| `claude mcp login <name>` | Führen Sie den OAuth-Fluss eines konfigurierten MCP-Servers aus, ohne das interaktive `/mcp`-Panel zu öffnen. Funktioniert für HTTP-, SSE- und claude.ai-Connector-Server. Fügen Sie `--no-browser` über SSH hinzu, um die Autorisierungs-URL auszudrucken, anstatt einen Browser zu öffnen, und fügen Sie dann die Umleitungs-URL an der Eingabeaufforderung ein. Erfordert Claude Code v2.1.186 oder später. Siehe [Authentifizierung über die Befehlszeile](/docs/de/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Führen Sie den OAuth-Fluss eines konfigurierten MCP-Servers aus, ohne das interaktive `/mcp`-Panel zu öffnen. Funktioniert für HTTP-, SSE- und claude.ai-Connector-Server. Fügen Sie `--no-browser` über SSH hinzu, um die Autorisierungs-URL auszudrucken, anstatt einen Browser zu öffnen, und fügen Sie dann die Umleitungs-URL an der Eingabeaufforderung ein. Erfordert Claude Code v2.1.186 oder später. Siehe [Authentifizierung über die Befehlszeile](/docs/de/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |


43| `claude project purge [path]` | Löschen Sie alle lokalen Claude Code-Status für ein Projekt: Transkripte, Aufgabenlisten, Debug-Protokolle, Datei-Bearbeitungsverlauf, Prompt-Verlaufszeilen und den Projekteintrag in `~/.claude.json`. Lassen Sie `[path]` weg, um aus einer interaktiven Liste auszuwählen. Flags: `--dry-run` zum Vorschau, `-y`/`--yes` zum Überspringen der Bestätigung, `-i`/`--interactive` zum Bestätigen jedes Elements, `--all` für jedes Projekt. Siehe [Lokale Daten löschen](/docs/de/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Löschen Sie alle lokalen Claude Code-Status für ein Projekt: Transkripte, Aufgabenlisten, Debug-Protokolle, Datei-Bearbeitungsverlauf, Prompt-Verlaufszeilen und den Projekteintrag in `~/.claude.json`. Lassen Sie `[path]` weg, um aus einer interaktiven Liste auszuwählen. Flags: `--dry-run` zum Vorschau, `-y`/`--yes` zum Überspringen der Bestätigung, `-i`/`--interactive` zum Bestätigen jedes Elements, `--all` für jedes Projekt. Siehe [Lokale Daten löschen](/docs/de/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Starten Sie einen [Remote Control](/docs/de/remote-control) Server, um Claude Code von Claude.ai oder der Claude App zu steuern. Läuft im Server-Modus (keine lokale interaktive Sitzung). Siehe [Server-Modus-Flags](/docs/de/remote-control#start-a-remote-control-session). Nach dem Stoppen des Servers können Sie die Sitzungen, die er bedient hat, zurückbringen. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](/docs/de/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Starten Sie einen [Remote Control](/docs/de/remote-control) Server, um Claude Code von Claude.ai oder der Claude App zu steuern. Läuft im Server-Modus (keine lokale interaktive Sitzung). Siehe [Server-Modus-Flags](/docs/de/remote-control#start-a-remote-control-session). Nach dem Stoppen des Servers können Sie die Sitzungen, die er bedient hat, zurückbringen. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](/docs/de/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Starten Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) neu, ob laufend oder gestoppt, mit ihrer Konversation intakt. Verwenden Sie `--all`, um jede laufende Sitzung neu zu starten, z. B. um eine aktualisierte Claude Code Binärdatei zu verwenden | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Starten Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) neu, ob laufend oder gestoppt, mit ihrer Konversation intakt. Verwenden Sie `--all`, um jede laufende Sitzung neu zu starten, z. B. um eine aktualisierte Claude Code Binärdatei zu verwenden | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Entfernen Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) aus der Liste. Das Konversationstranskript bleibt auf Ihrem lokalen Computer erhalten und ist über `claude --resume` verfügbar | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Entfernen Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) aus der Liste. Wenn die Entfernung [über das Worktree der Sitzung abgelehnt wird](/docs/de/agent-view#what-deleting-a-session-removes) und ein zweites `claude rm` kann es beheben, gibt die Ablehnung das genaue Flag und den Wert aus, die übergeben werden sollen: `--discard-unpushed <commit>@<worktree-id>` verwirft ein Worktree, das nicht gepushte Commits zusammen mit diesen Commits hat, und `--force-remove-worktree <worktree-id>` löscht ein Worktree-Verzeichnis, das git oder der `WorktreeRemove` Hook nicht entfernen konnte. `--discard-unpushed` erfordert Claude Code v2.1.260 oder später, und `--force-remove-worktree` erfordert v2.1.268 oder später. Das Konversationstranskript bleibt auf Ihrem lokalen Computer erhalten und ist über `claude --resume` verfügbar | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | Starten Sie einen Runner-Prozess, der diese Maschine oder diesen Container bei einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) registriert und Claude Code Cloud-Sitzungen auf Ihrer Infrastruktur hostet. Führen Sie `claude self-hosted-runner setup` für eine geführte Operator-Anleitung aus, `claude self-hosted-runner doctor`, um [einen bereitgestellten Runner zu diagnostizieren](/docs/de/self-hosted-environments-deploy#troubleshooting), und `claude self-hosted-runner orchestrator`, um [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners) zu spawnen. Erfordert Claude Code v2.1.224 oder später | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | Starten Sie einen Runner-Prozess, der diese Maschine oder diesen Container bei einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) registriert und Claude Code Cloud-Sitzungen auf Ihrer Infrastruktur hostet. Führen Sie `claude self-hosted-runner setup` für eine geführte Operator-Anleitung aus, `claude self-hosted-runner doctor`, um [einen bereitgestellten Runner zu diagnostizieren](/docs/de/self-hosted-environments-deploy#troubleshooting), und `claude self-hosted-runner orchestrator`, um [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners) zu spawnen. Erfordert Claude Code v2.1.224 oder später | `claude self-hosted-runner setup` |

48| `claude setup-token` | Generieren Sie ein langlebiges OAuth-Token für CI und Skripte. Gibt das Token auf dem Terminal aus, ohne es zu speichern. Erfordert ein Claude-Abonnement. Siehe [Generieren Sie ein langlebiges Token](/docs/de/authentication#generate-a-long-lived-token) | `claude setup-token` |48| `claude setup-token` | Generieren Sie ein langlebiges OAuth-Token für CI und Skripte. Gibt das Token auf dem Terminal aus, ohne es zu speichern. Erfordert ein Claude-Abonnement. Siehe [Generieren Sie ein langlebiges Token](/docs/de/authentication#generate-a-long-lived-token) | `claude setup-token` |

49| `claude stop <id>` | Stoppen Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell). Akzeptiert auch `claude kill` | `claude stop 7c5dcf5d` |49| `claude stop <id>` | Stoppen Sie eine [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell). Akzeptiert auch `claude kill` | `claude stop 7c5dcf5d` |

50| `claude ultrareview [target]` | Führen Sie [ultrareview](/docs/de/ultrareview#run-ultrareview-non-interactively) nicht interaktiv aus. Gibt Ergebnisse auf stdout aus und beendet sich mit 0 bei Erfolg oder 1 bei Fehler. Verwenden Sie `--json` für die rohe Nutzlast und `--timeout <minutes>`, um das 30-Minuten-Standard zu überschreiben. Verwenden Sie `--post` auf einem `github.com` Pull-Request-Ziel, um die fertigen Ergebnisse als einen einfachen Kommentar von Ihrem GitHub-Konto auf dem PR zu posten. `--no-post` ist die Standardeinstellung. Erfordert Claude Code v2.1.227 oder später. Siehe [Ergebnisse auf den Pull Request posten](/docs/de/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |50| `claude ultrareview [target]` | Führen Sie [ultrareview](/docs/de/ultrareview#run-ultrareview-non-interactively) nicht interaktiv aus. Gibt Ergebnisse auf stdout aus und beendet sich mit 0 bei Erfolg oder 1 bei Fehler. Verwenden Sie `--json` für die rohe Nutzlast und `--timeout <minutes>`, um das 45-Minuten-Standard zu überschreiben. Verwenden Sie `--post` auf einem `github.com` Pull-Request-Ziel, um die fertigen Ergebnisse als einen einfachen Kommentar von Ihrem GitHub-Konto auf dem PR zu posten. `--no-post` ist die Standardeinstellung. `--post` und `--no-post` erfordern Claude Code v2.1.227 oder später. Siehe [Ergebnisse auf den Pull Request posten](/docs/de/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |

51 51 

52Wenn Sie einen Unterbefehl falsch eingeben, schlägt Claude Code die nächste Übereinstimmung vor und beendet sich, ohne eine Sitzung zu starten. Zum Beispiel gibt `claude udpate` `Did you mean claude update?` aus.52Wenn Sie einen Unterbefehl falsch eingeben, schlägt Claude Code die nächste Übereinstimmung vor und beendet sich, ohne eine Sitzung zu starten. Zum Beispiel gibt `claude udpate` `Did you mean claude update?` aus.

53 53 


79| `--channels` | (Forschungsvorschau) MCP-Server, deren [Kanal](/docs/de/channels) Benachrichtigungen Claude in dieser Sitzung abhören sollte. Durch Leerzeichen getrennte Liste von `plugin:<name>@<marketplace>` Einträgen. Erfordert Anthropic-Authentifizierung über claude.ai oder einen Console API-Schlüssel | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Forschungsvorschau) MCP-Server, deren [Kanal](/docs/de/channels) Benachrichtigungen Claude in dieser Sitzung abhören sollte. Durch Leerzeichen getrennte Liste von `plugin:<name>@<marketplace>` Einträgen. Erfordert Anthropic-Authentifizierung über claude.ai oder einen Console API-Schlüssel | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Aktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für Web-Automatisierung und Tests | `claude --chrome` |80| `--chrome` | Aktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für Web-Automatisierung und Tests | `claude --chrome` |

81| `--cloud` | Mit einer Aufgabenbeschreibung erstellen Sie eine neue [Web-Sitzung](/docs/de/claude-code-on-the-web) auf claude.ai. Mit einer Sitzungs-ID (`session_...` oder `cse_...`) oder einer claude.ai/code URL stellen Sie stattdessen eine Nachricht in diese bestehende Sitzung in die Warteschlange, mit `-p`. Siehe [Senden Sie eine Folgenachricht](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | Mit einer Aufgabenbeschreibung erstellen Sie eine neue [Web-Sitzung](/docs/de/claude-code-on-the-web) auf claude.ai. Mit einer Sitzungs-ID (`session_...` oder `cse_...`) oder einer claude.ai/code URL stellen Sie stattdessen eine Nachricht in diese bestehende Sitzung in die Warteschlange, mit `-p`. Siehe [Senden Sie eine Folgenachricht](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |

82| `--continue`, `-c` | Laden Sie die letzte Konversation im aktuellen Verzeichnis, überspringen Sie [Hintergrund-Sitzungen, Sitzungen, die mit `claude -p` oder dem Agent SDK erstellt wurden, und Sitzungen, deren erster Prompt `/loop` war](/docs/de/sessions#resume-a-session). `claude -p --continue` schließt `-p`, SDK und `/loop` Sitzungen ein. Schließt Sitzungen ein, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben | `claude --continue` |82| `--continue`, `-c` | Laden Sie die letzte Konversation im aktuellen Verzeichnis, einschließlich einer [Hintergrund-Sitzung, die beendet wurde](/docs/de/sessions#resume-a-session); das Öffnen beendeter Hintergrund-Sitzungen erfordert Claude Code v2.1.257 oder später. Überspringt Sitzungen, die mit `claude -p` oder dem Agent SDK erstellt wurden, und Sitzungen, deren erster Prompt `/loop` war. `claude -p --continue` schließt `-p`, SDK und `/loop` Sitzungen ein. Schließt Sitzungen ein, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben | `claude --continue` |

83| `--dangerously-load-development-channels` | Aktivieren Sie [Kanäle](/docs/de/channels-reference#test-during-the-research-preview), die sich nicht auf der genehmigten Zulassungsliste befinden, für die lokale Entwicklung. Akzeptiert `plugin:<name>@<marketplace>` und `server:<name>` Einträge. Fordert zur Bestätigung auf | `claude --dangerously-load-development-channels server:webhook` |83| `--dangerously-load-development-channels` | Aktivieren Sie [Kanäle](/docs/de/channels-reference#test-during-the-research-preview), die sich nicht auf der genehmigten Zulassungsliste befinden, für die lokale Entwicklung. Akzeptiert `plugin:<name>@<marketplace>` und `server:<name>` Einträge. Fordert zur Bestätigung auf | `claude --dangerously-load-development-channels server:webhook` |

84| `--dangerously-skip-permissions` | Überspringen Sie Berechtigungsaufforderungen. Entspricht `--permission-mode bypassPermissions`. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) für das, was dies überspringt und nicht überspringt. Für Sitzungen, die mit `--bg` gestartet wurden, wird der Modus [beibehalten, wenn der Supervisor die Sitzung neu startet](/docs/de/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Überspringen Sie Berechtigungsaufforderungen. Entspricht `--permission-mode bypassPermissions`. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) für das, was dies überspringt und nicht überspringt. Für Sitzungen, die mit `--bg` gestartet wurden, wird der Modus [beibehalten, wenn der Supervisor die Sitzung neu startet](/docs/de/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

85| `--debug` | Aktivieren Sie den Debug-Modus mit optionaler Kategoriefilterung, wie z. B. `--debug='mcp,startup'` oder `--debug='!1p'`. Der Filter bindet nur in der `=` Form; ein durch Leerzeichen getrennter Filter aktiviert den Debug-Modus ohne Filterung | `claude --debug='mcp,startup'` |85| `--debug` | Aktivieren Sie den Debug-Modus mit optionaler Kategoriefilterung, wie z. B. `--debug='mcp,startup'` oder `--debug='!1p'`. Der Filter bindet nur in der `=` Form; ein durch Leerzeichen getrennter Filter aktiviert den Debug-Modus ohne Filterung | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus. Hat Vorrang vor `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus. Hat Vorrang vor `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--disable-slash-commands` | Deaktivieren Sie alle Skills und Befehle für diese Sitzung | `claude --disable-slash-commands` |87| `--disable-slash-commands` | Deaktivieren Sie alle Skills und Befehle für diese Sitzung | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | Ablehnungsregeln. Ein bloßer Tool-Name entfernt die entsprechenden Tools aus dem Kontext von Claude: `"Edit"` entfernt Edit, `"*"` entfernt jedes Tool und `"mcp__*"` entfernt jedes MCP-Tool. Eine scoped Regel wie `Bash(rm *)` lässt das Tool verfügbar und lehnt nur übereinstimmende Aufrufe ab. Eine Regel, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) benennt, kann es nicht entfernen, während ein anderes Tool verfügbar bleibt | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |88| `--disallowedTools`, `--disallowed-tools` | Ablehnungsregeln. Ein bloßer Tool-Name entfernt die entsprechenden Tools aus dem Kontext von Claude: `"Edit"` entfernt Edit, `"*"` entfernt jedes Tool und `"mcp__*"` entfernt jedes MCP-Tool. Eine scoped Regel wie `Bash(rm *)` lässt das Tool verfügbar und lehnt nur [wie geschrieben](/docs/de/permissions#bash-rule-limits) übereinstimmende Aufrufe ab. Eine Regel, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) benennt, kann es nicht entfernen, während ein anderes Tool verfügbar bleibt | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | Legen Sie die [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max` oder `ultracode`. Verfügbare Stufen hängen vom Modell ab. `ultracode` startet die Sitzung mit `xhigh` Aufwand und [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) aktiviert, und erfordert Claude Code v2.1.203 oder später. Überschreibt die [`modelSettings`](/docs/de/settings-reference#modelsettings) und [`effortLevel`](/docs/de/settings-reference#effortlevel) Einstellungen für diese Sitzung und wird nicht beibehalten | `claude --effort high` |89| `--effort` | Legen Sie die [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max` oder `ultracode`. Verfügbare Stufen hängen vom Modell ab. `ultracode` startet die Sitzung mit `xhigh` Aufwand und [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) aktiviert, und erfordert Claude Code v2.1.203 oder später. Überschreibt die [`modelSettings`](/docs/de/settings-reference#modelsettings) und [`effortLevel`](/docs/de/settings-reference#effortlevel) Einstellungen für diese Sitzung und wird nicht beibehalten | `claude --effort high` |

90| `--enable-auto-mode` | Entfernt in v2.1.111. Auto-Modus ist jetzt standardmäßig im `Shift+Tab` Zyklus; verwenden Sie `--permission-mode auto`, um darin zu starten | `claude --permission-mode auto` |90| `--enable-auto-mode` | Entfernt in v2.1.111. Auto-Modus ist jetzt standardmäßig im `Shift+Tab` Zyklus; verwenden Sie `--permission-mode auto`, um darin zu starten | `claude --permission-mode auto` |

91| `--environment <environment-id>` | Erstellen Sie eine neue Cloud-Sitzung, die in der [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) mit der angegebenen ID ausgeführt wird. Umgebungs-IDs beginnen mit `ccpool_`. Siehe [`--environment` Dispatch-Verhalten](/docs/de/self-hosted-environments-testing#environment-dispatch-behavior) für Dispatch-Verhalten und die Flag-Kombinationen, die es ablehnt. Erfordert Claude Code v2.1.224 oder später | `claude -p "Fix the login bug" --environment ccpool_abc123` |91| `--environment <environment-id>` | Erstellen Sie eine neue Cloud-Sitzung, die in der [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) mit der angegebenen ID ausgeführt wird. Umgebungs-IDs beginnen mit `ccpool_`. Siehe [`--environment` Dispatch-Verhalten](/docs/de/self-hosted-environments-testing#environment-dispatch-behavior) für Dispatch-Verhalten und die Flag-Kombinationen, die es ablehnt. Erfordert Claude Code v2.1.224 oder später | `claude -p "Fix the login bug" --environment ccpool_abc123` |


93| `--exec` | Führen Sie einen Shell-Befehl als PTY-gestützten Hintergrund-Job anstelle einer Claude-Sitzung aus. Verwenden Sie mit `--bg`, um von der Shell aus zu starten | `claude --bg --exec 'pytest -x'` |93| `--exec` | Führen Sie einen Shell-Befehl als PTY-gestützten Hintergrund-Job anstelle einer Claude-Sitzung aus. Verwenden Sie mit `--bg`, um von der Shell aus zu starten | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | Aktivieren Sie automatisches Fallback auf das angegebene Modell oder die angegebenen Modelle, wenn das primäre Modell überlastet ist oder nicht verfügbar ist, zum Beispiel ein veraltetes Modell. Akzeptiert eine durch Kommas getrennte Liste, die der Reihe nach versucht wird. Siehe [Fallback-Modellketten](/docs/de/model-config#fallback-model-chains). Um eine Kette über Sitzungen hinweg beizubehalten, verwenden Sie die [`fallbackModel` Einstellung](/docs/de/settings-reference#fallbackmodel), die dieses Flag überschreibt | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | Aktivieren Sie automatisches Fallback auf das angegebene Modell oder die angegebenen Modelle, wenn das primäre Modell überlastet ist oder nicht verfügbar ist, zum Beispiel ein veraltetes Modell. Akzeptiert eine durch Kommas getrennte Liste, die der Reihe nach versucht wird. Siehe [Fallback-Modellketten](/docs/de/model-config#fallback-model-chains). Um eine Kette über Sitzungen hinweg beizubehalten, verwenden Sie die [`fallbackModel` Einstellung](/docs/de/settings-reference#fallbackmodel), die dieses Flag überschreibt | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | Erstellen Sie beim Fortsetzen eine neue Sitzungs-ID, anstatt die ursprüngliche wiederzuverwenden (verwenden Sie mit `--resume` oder `--continue`) | `claude --resume abc123 --fork-session` |95| `--fork-session` | Erstellen Sie beim Fortsetzen eine neue Sitzungs-ID, anstatt die ursprüngliche wiederzuverwenden (verwenden Sie mit `--resume` oder `--continue`) | `claude --resume abc123 --fork-session` |

96| `--forward-subagent-text` | Geben Sie [Subagenten](/docs/de/sub-agents) Text und Thinking-Blöcke im Ausgabestrom als `assistant` und `user` Nachrichten mit `parent_tool_use_id` gesetzt aus, sodass Sie das Transkript jedes Subagenten rekonstruieren können. Ohne dieses Flag gibt Claude Code nur Subagenten `tool_use` und `tool_result` Blöcke aus. Erfordert `--print` und `--output-format stream-json`. Claude Code leitet auch Nachrichten von [verschachtelten Subagenten](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) weiter, setzt `parent_tool_use_id` auf die ID des Agent-Tool-Aufrufs, der jeden spawnt; dies erfordert Claude Code v2.1.219 oder später. Die [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/de/env-vars) Umgebungsvariable aktiviert das gleiche Verhalten. Erfordert Claude Code v2.1.211 oder später | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |96| `--forward-subagent-text` | Geben Sie [Subagenten](/docs/de/sub-agents) Text und Thinking-Blöcke im Ausgabestrom als `assistant` und `user` Nachrichten mit `parent_tool_use_id` gesetzt aus, sodass Sie das Transkript jedes Subagenten rekonstruieren können. Ohne dieses Flag lässt Claude Code den Text und die Thinking-Blöcke eines Subagenten, der im [Vordergrund](/docs/de/sub-agents#run-subagents-in-foreground-or-background) läuft, weg. Erfordert `--print` und `--output-format stream-json`. Claude Code leitet auch Nachrichten von [verschachtelten Subagenten](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) weiter, setzt `parent_tool_use_id` auf die ID des Agent-Tool-Aufrufs, der jeden spawnt; dies erfordert Claude Code v2.1.219 oder später. Die [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/de/env-vars) Umgebungsvariable aktiviert das gleiche Verhalten. Erfordert Claude Code v2.1.211 oder später | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |

97| `--from-pr` | Öffnen Sie die Sitzungsauswahl gefiltert auf Sitzungen, die mit einem bestimmten Pull Request verknüpft sind. Akzeptiert eine PR-Nummer, eine GitHub oder GitHub Enterprise PR URL, eine GitLab Merge Request URL oder eine Bitbucket Pull Request URL. Sitzungen werden automatisch verknüpft, wenn Claude den Pull Request erstellt | `claude --from-pr 123` |97| `--from-pr` | Öffnen Sie die Sitzungsauswahl gefiltert auf Sitzungen, die mit einem bestimmten Pull Request verknüpft sind. Akzeptiert eine PR-Nummer, eine GitHub oder GitHub Enterprise PR URL, eine GitLab Merge Request URL oder eine Bitbucket Pull Request URL. Sitzungen werden automatisch verknüpft, wenn Claude den Pull Request erstellt | `claude --from-pr 123` |

98| `--ide` | Verbinden Sie sich automatisch beim Start mit der IDE, wenn genau eine gültige IDE verfügbar ist | `claude --ide` |98| `--ide` | Verbinden Sie sich automatisch beim Start mit der IDE, wenn genau eine gültige IDE verfügbar ist | `claude --ide` |

99| `--init` | Führen Sie [Setup Hooks](/docs/de/hooks#setup) mit dem `init` Matcher vor der Sitzung aus (nur Print-Modus) | `claude -p --init "query"` |99| `--init` | Führen Sie [Setup Hooks](/docs/de/hooks#setup) mit dem `init` Matcher vor der Sitzung aus (nur Print-Modus) | `claude -p --init "query"` |


114| `--permission-mode` | Beginnen Sie in einem angegebenen [Berechtigungsmodus](/docs/de/permission-modes). Akzeptiert `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` oder `manual` als Alias für `default`. Der `manual` Alias wählt den Berechtigungsmodus aus, den die Benutzeroberfläche als Manuell kennzeichnet und erfordert Claude Code v2.1.200 oder später; `claude --help` listet ihn anstelle von `default` auf, und beide Werte funktionieren. Überschreibt `defaultMode` aus Einstellungsdateien. Ohne dieses Flag oder `--dangerously-skip-permissions` startet eine neue Sitzung im Berechtigungsmodus, der in [welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) beschrieben wird. Für `-p` ist das `default`, wenn nichts konfiguriert ist | `claude --permission-mode plan` |114| `--permission-mode` | Beginnen Sie in einem angegebenen [Berechtigungsmodus](/docs/de/permission-modes). Akzeptiert `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` oder `manual` als Alias für `default`. Der `manual` Alias wählt den Berechtigungsmodus aus, den die Benutzeroberfläche als Manuell kennzeichnet und erfordert Claude Code v2.1.200 oder später; `claude --help` listet ihn anstelle von `default` auf, und beide Werte funktionieren. Überschreibt `defaultMode` aus Einstellungsdateien. Ohne dieses Flag oder `--dangerously-skip-permissions` startet eine neue Sitzung im Berechtigungsmodus, der in [welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) beschrieben wird. Für `-p` ist das `default`, wenn nichts konfiguriert ist | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Geben Sie ein MCP-Tool an, um Berechtigungsaufforderungen im nicht-interaktiven Modus zu verarbeiten. Claude Code wartet darauf, dass sich der MCP-Server dieses Tools verbindet, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars) Startup-Timeout, standardmäßig 30 Sekunden. <br /><br />Das Prompt-Tool kann ein MCP-Tool, das als [Benutzerinteraktion erforderlich](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet ist, nicht genehmigen: Claude Code konvertiert ein `allow` Ergebnis für eines in eine Ablehnung. Diese Einschränkung erfordert Claude Code v2.1.199 oder später | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | Geben Sie ein MCP-Tool an, um Berechtigungsaufforderungen im nicht-interaktiven Modus zu verarbeiten. Claude Code wartet darauf, dass sich der MCP-Server dieses Tools verbindet, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars) Startup-Timeout, standardmäßig 30 Sekunden. <br /><br />Das Prompt-Tool kann ein MCP-Tool, das als [Benutzerinteraktion erforderlich](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet ist, nicht genehmigen: Claude Code konvertiert ein `allow` Ergebnis für eines in eine Ablehnung. Diese Einschränkung erfordert Claude Code v2.1.199 oder später | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Legen Sie fest, wer Berechtigungsaufforderungen im Print-Modus beantwortet. Mit dem Standard `host` sendet Claude Code sie an den Agent SDK Host oder das `--permission-prompt-tool` Tool. Übergeben Sie `none`, wenn niemand antworten kann, und Claude Code lehnt sie stattdessen ab. Siehe [Schalten Sie Berechtigungsaufforderungen in unbeaufsichtigten Läufen aus](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs). Erfordert Claude Code v2.1.259 oder später | `claude -p --permission-prompts none "query"` |116| `--permission-prompts` | Legen Sie fest, wer Berechtigungsaufforderungen im Print-Modus beantwortet. Mit dem Standard `host` sendet Claude Code sie an den Agent SDK Host oder das `--permission-prompt-tool` Tool. Übergeben Sie `none`, wenn niemand antworten kann, und Claude Code lehnt sie stattdessen ab. Siehe [Schalten Sie Berechtigungsaufforderungen in unbeaufsichtigten Läufen aus](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs). Erfordert Claude Code v2.1.259 oder später | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Laden Sie ein Plugin aus einem Verzeichnis oder `.zip` Archiv nur für diese Sitzung. Jedes Flag nimmt einen Pfad auf. Wiederholen Sie das Flag für mehrere Plugins: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |117| `--plugin-dir` | Laden Sie ein Plugin aus einem Verzeichnis oder `.zip` Archiv, oder mehrere aus einem [Ordner von Plugins](/docs/de/plugins#test-your-plugins-locally), nur für diese Sitzung. Jedes Flag nimmt einen Pfad auf. Wiederholen Sie das Flag für mehrere Pfade: `--plugin-dir A --plugin-dir B.zip`. Das Übergeben eines Ordners von Plugins erfordert Claude Code v2.1.265 oder später | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Rufen Sie ein Plugin `.zip` Archiv von einer URL nur für diese Sitzung ab. Wiederholen Sie das Flag für mehrere Plugins, oder übergeben Sie durch Leerzeichen getrennte URLs in einem einzelnen Wert in Anführungszeichen | `claude --plugin-url https://example.com/plugin.zip` |118| `--plugin-url` | Rufen Sie ein Plugin `.zip` Archiv von einer URL nur für diese Sitzung ab. Wiederholen Sie das Flag für mehrere Plugins, oder übergeben Sie durch Leerzeichen getrennte URLs in einem einzelnen Wert in Anführungszeichen | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Geben Sie die Antwort ohne interaktiven Modus aus (siehe [Agent SDK-Dokumentation](/docs/de/agent-sdk/overview) für Details zur programmatischen Verwendung) | `claude -p "query"` |119| `--print`, `-p` | Geben Sie die Antwort ohne interaktiven Modus aus (siehe [Agent SDK-Dokumentation](/docs/de/agent-sdk/overview) für Details zur programmatischen Verwendung) | `claude -p "query"` |

120| `--prompt-suggestions` | Geben Sie eine `prompt_suggestion` Nachricht mit einem vorhergesagten nächsten Benutzer-Prompt nach jedem Turn aus, der einen erzeugt; sehr kurze Konversationen können keine erzeugen. Erfordert `--print`, `--output-format stream-json` und `--verbose`. Siehe [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | Geben Sie eine `prompt_suggestion` Nachricht mit einem vorhergesagten nächsten Benutzer-Prompt nach jedem Turn aus, der einen erzeugt; sehr kurze Konversationen können keine erzeugen. Erfordert `--print`, `--output-format stream-json` und `--verbose`. Siehe [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |


124| `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte [Remote Control](/docs/de/remote-control) Sitzungsnamen, wenn kein expliziter Name gesetzt ist. Standardmäßig der Hostname Ihrer Maschine, was Namen wie `myhost-graceful-unicorn` erzeugt. Setzen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für den gleichen Effekt | `claude remote-control --remote-control-session-name-prefix dev-box` |124| `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte [Remote Control](/docs/de/remote-control) Sitzungsnamen, wenn kein expliziter Name gesetzt ist. Standardmäßig der Hostname Ihrer Maschine, was Namen wie `myhost-graceful-unicorn` erzeugt. Setzen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für den gleichen Effekt | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | Geben Sie Benutzernachrichten von stdin auf stdout zurück zur Bestätigung aus. Erfordert `--input-format stream-json` und `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |125| `--replay-user-messages` | Geben Sie Benutzernachrichten von stdin auf stdout zurück zur Bestätigung aus. Erfordert `--input-format stream-json` und `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | Starten Sie im eingeschränkten Modus. Verwenden Sie ihn, wenn ein Evaluierungs-Harness `claude` auf einer gemeinsamen Maschine antreibt und Claude Code keine Befehle ausführen oder die Benutzer- und Projekteinstellungen dieser Maschine lesen darf. Claude Code entfernt die integrierten Tools, die Befehle oder Code ausführen, und WebFetch, es sei denn, Sie benennen sie einzeln in `--tools`, nicht durch die `default` Voreinstellung. Es beschränkt auch die integrierten Datei-Tools auf die [Arbeitsverzeichnisse](/docs/de/permissions#working-directories), lädt nur [verwaltete Einstellungen](/docs/de/managed-settings) und `--settings`, lehnt [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) ab, und [lehnt ab, Cloud-Sitzungen zu erstellen](/docs/de/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Erfordert Claude Code v2.1.248 oder später | `claude --restricted -p "query"` |126| `--restricted` | Starten Sie im eingeschränkten Modus. Verwenden Sie ihn, wenn ein Evaluierungs-Harness `claude` auf einer gemeinsamen Maschine antreibt und Claude Code keine Befehle ausführen oder die Benutzer- und Projekteinstellungen dieser Maschine lesen darf. Claude Code entfernt die integrierten Tools, die Befehle oder Code ausführen, und WebFetch, es sei denn, Sie benennen sie einzeln in `--tools`, nicht durch die `default` Voreinstellung. Es beschränkt auch die integrierten Datei-Tools auf die [Arbeitsverzeichnisse](/docs/de/permissions#working-directories), lädt nur [verwaltete Einstellungen](/docs/de/managed-settings) und `--settings`, lehnt [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) ab, und [lehnt ab, Cloud-Sitzungen zu erstellen](/docs/de/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Erfordert Claude Code v2.1.248 oder später | `claude --restricted -p "query"` |

127| `--resume`, `-r` | Setzen Sie eine bestimmte Sitzung nach ID oder Name fort, oder zeigen Sie eine interaktive Auswahl an, um eine Sitzung auszuwählen. Die Auswahl und Namenssuche schließen Sitzungen ein, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben. Wenn Sie eine Sitzungs-ID übergeben, durchsucht Claude Code das aktuelle Projektverzeichnis und seine Git Worktrees, dann jedes andere Projekt auf dieser Maschine. Vor v2.1.223 deckte die ID-Suche nur das aktuelle Projektverzeichnis und seine Git Worktrees ab. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet | `claude --resume auth-refactor` |127| `--resume`, `-r` | Setzen Sie eine bestimmte Sitzung nach ID oder Name fort, oder zeigen Sie eine interaktive Auswahl an, um eine Sitzung auszuwählen. Anstelle einer ID können Sie den absoluten Pfad zur [Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) einer Sitzung im `.jsonl` Format übergeben. Die Auswahl und Namenssuche schließen Sitzungen ein, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben. Wenn Sie eine Sitzungs-ID übergeben, durchsucht Claude Code das aktuelle Projektverzeichnis und seine Git Worktrees, dann jedes andere Projekt auf dieser Maschine. Vor v2.1.223 deckte die ID-Suche nur das aktuelle Projektverzeichnis und seine Git Worktrees ab. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet | `claude --resume auth-refactor` |

128| `--safe-mode` | Starten Sie mit allen Anpassungen deaktiviert, um eine fehlerhafte Konfiguration zu beheben: CLAUDE.md, Skills, Plugins, Hooks, MCP-Server, benutzerdefinierte Befehle und Agenten, Ausgabestile, Workflows, benutzerdefinierte Designs, benutzerdefinierte Tastenkombinationen, Statusleiste und Dateivorschlag-Befehle, LSP-Server und Auto-Memory werden nicht geladen. Authentifizierung, Modellauswahl, integrierte Tools und Berechtigungen funktionieren normal, was sich von [`--bare`](/docs/de/headless#start-faster-with-bare-mode) unterscheidet. Die verwaltete Einstellungsrichtlinie gilt weiterhin, einschließlich richtliniengesteuerter Hooks, Statusleiste und Dateivorschlag-Befehle; verwaltete Plugins, verwaltete Skills, verwaltete CLAUDE.md und richtliniengesteuerter MCP-Server nicht. Nützlich, um zu überprüfen, ob eine Anpassung das [automatische Fallback von Modellen](/docs/de/model-config#automatic-model-fallback) auslöst. Setzt [`CLAUDE_CODE_SAFE_MODE`](/docs/de/env-vars) | `claude --safe-mode` |128| `--safe-mode` | Starten Sie mit allen Anpassungen deaktiviert, um eine fehlerhafte Konfiguration zu beheben: CLAUDE.md, Skills, Plugins, Hooks, MCP-Server, benutzerdefinierte Befehle und Agenten, Ausgabestile, Workflows, benutzerdefinierte Designs, benutzerdefinierte Tastenkombinationen, Statusleiste und Dateivorschlag-Befehle, LSP-Server und Auto-Memory werden nicht geladen. Authentifizierung, Modellauswahl, integrierte Tools und Berechtigungen funktionieren normal, was sich von [`--bare`](/docs/de/headless#start-faster-with-bare-mode) unterscheidet. Die verwaltete Einstellungsrichtlinie gilt weiterhin, einschließlich richtliniengesteuerter Hooks, Statusleiste und Dateivorschlag-Befehle; verwaltete Plugins, verwaltete Skills, verwaltete CLAUDE.md und richtliniengesteuerter MCP-Server nicht. Nützlich, um zu überprüfen, ob eine Anpassung das [automatische Fallback von Modellen](/docs/de/model-config#automatic-model-fallback) auslöst. Setzt [`CLAUDE_CODE_SAFE_MODE`](/docs/de/env-vars) | `claude --safe-mode` |

129| `--session-id` | Verwenden Sie eine bestimmte Sitzungs-ID für die Konversation (muss eine gültige UUID sein) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |129| `--session-id` | Verwenden Sie eine bestimmte Sitzungs-ID für die Konversation (muss eine gültige UUID sein) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Durch Kommas getrennte Liste von Einstellungsquellen zum Laden (`user`, `project`, `local`) | `claude --setting-sources user,project` |130| `--setting-sources` | Durch Kommas getrennte Liste von Einstellungsquellen zum Laden (`user`, `project`, `local`) | `claude --setting-sources user,project` |


132| `--strict-mcp-config` | Verwenden Sie nur MCP-Server aus `--mcp-config`, ignorieren Sie alle anderen MCP-Konfigurationen. Siehe [Exklusive Kontrolle mit managed-mcp.json](/docs/de/managed-mcp#exclusive-control-with-managed-mcp-json) für das, was das Flag unter einer verwalteten MCP-Datei bewirkt | `claude --strict-mcp-config --mcp-config ./mcp.json` |132| `--strict-mcp-config` | Verwenden Sie nur MCP-Server aus `--mcp-config`, ignorieren Sie alle anderen MCP-Konfigurationen. Siehe [Exklusive Kontrolle mit managed-mcp.json](/docs/de/managed-mcp#exclusive-control-with-managed-mcp-json) für das, was das Flag unter einer verwalteten MCP-Datei bewirkt | `claude --strict-mcp-config --mcp-config ./mcp.json` |

133| `--system-prompt` | Ersetzen Sie den gesamten Systemprompt durch benutzerdefinierten Text | `claude --system-prompt "You are a Python expert"` |133| `--system-prompt` | Ersetzen Sie den gesamten Systemprompt durch benutzerdefinierten Text | `claude --system-prompt "You are a Python expert"` |

134| `--system-prompt-file` | Laden Sie den Systemprompt aus einer Datei, ersetzen Sie den Standard-Prompt | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | Laden Sie den Systemprompt aus einer Datei, ersetzen Sie den Standard-Prompt | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | Übergeben Sie `off`, um den Systemprompt bei jeder Anfrage neu zu erstellen, anstatt den Prompt [aufgezeichnet bei der ersten Anfrage der Konversation](#system-prompt-flags-in-resumed-conversations) wiederzuverwenden, zum Beispiel während Sie den Text von `--append-system-prompt` über `--continue` Läufe hinweg iterieren. Erfordert Claude Code v2.1.257 oder später | `claude --system-prompt-snapshot off` |

135| `--teleport` | Setzen Sie eine [Web-Sitzung](/docs/de/claude-code-on-the-web) in Ihrem lokalen Terminal fort | `claude --teleport` |136| `--teleport` | Setzen Sie eine [Web-Sitzung](/docs/de/claude-code-on-the-web) in Ihrem lokalen Terminal fort | `claude --teleport` |

136| `--teammate-mode` | Legen Sie fest, wie [Agent-Team](/docs/de/agent-teams) Teamkollegen angezeigt werden: `in-process` (Standard), `auto`, `tmux` oder `iterm2` (hinzugefügt in v2.1.186). Überschreibt die [`teammateMode`](/docs/de/settings-reference#teammatemode) Einstellung für diese Sitzung. Siehe [Anzeigemodus wählen](/docs/de/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |137| `--teammate-mode` | Legen Sie fest, wie [Agent-Team](/docs/de/agent-teams) Teamkollegen angezeigt werden: `in-process` (Standard), `auto`, `tmux` oder `iterm2` (hinzugefügt in v2.1.186). Überschreibt die [`teammateMode`](/docs/de/settings-reference#teammatemode) Einstellung für diese Sitzung. Siehe [Anzeigemodus wählen](/docs/de/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

137| `--tmux` | Erstellen Sie eine tmux-Sitzung für den Worktree. Erfordert `--worktree`. Verwendet native iTerm2-Bereiche, wenn verfügbar; übergeben Sie `--tmux=classic` für traditionelles tmux | `claude -w feature-auth --tmux` |138| `--tmux` | Erstellen Sie eine tmux-Sitzung für den Worktree. Erfordert `--worktree`. Verwendet native iTerm2-Bereiche, wenn verfügbar; übergeben Sie `--tmux=classic` für traditionelles tmux | `claude -w feature-auth --tmux` |

138| `--tools` | Beschränken Sie, welche integrierten Tools Claude verwenden kann. Verwenden Sie `""`, um alle zu deaktivieren, `"default"` für alle oder Tool-Namen wie `"Bash,Edit,Read"`. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) hier benennen, aktiviert Claude Code die Sitzung auch dafür. Das Flag beeinflusst MCP-Tools nicht; um diese auch zu verweigern, verwenden Sie `--disallowedTools "mcp__*"`. Eine Liste, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) auslässt, entfernt es nicht; `""` entfernt es nur, wenn keine MCP-Tools verbleiben | `claude --tools "Bash,Edit,Read"` |139| `--tools` | Beschränken Sie, welche integrierten Tools Claude verwenden kann. Verwenden Sie `""`, um alle zu deaktivieren, `"default"` für die Standard-Gruppe, oder Tool-Namen wie `"Bash,Edit,Read"`. Auf macOS, Linux und WSL lässt die Standard-Gruppe `Glob` und `Grep` aus, wie unter [Glob-Tool-Verhalten](/docs/de/tools-reference#glob-tool-behavior) beschrieben. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) hier benennen, aktiviert Claude Code die Sitzung auch dafür. Das Flag beeinflusst MCP-Tools nicht; um diese auch zu verweigern, verwenden Sie `--disallowedTools "mcp__*"`. Eine Liste, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) auslässt, entfernt es nicht; `""` entfernt es nur, wenn keine MCP-Tools verbleiben | `claude --tools "Bash,Edit,Read"` |

139| `--verbose` | Aktivieren Sie ausführliches Logging, zeigt vollständige Turn-by-Turn-Ausgabe. Überschreibt die [`viewMode`](/docs/de/settings-reference#viewmode) Einstellung für diese Sitzung | `claude --verbose` |140| `--verbose` | Aktivieren Sie ausführliches Logging, zeigt vollständige Turn-by-Turn-Ausgabe. Überschreibt die [`viewMode`](/docs/de/settings-reference#viewmode) Einstellung für diese Sitzung | `claude --verbose` |

140| `--version`, `-v` | Geben Sie die Versionsnummer aus | `claude -v` |141| `--version`, `-v` | Geben Sie die Versionsnummer aus | `claude -v` |

141| `--worktree`, `-w` | Starten Sie Claude in einem isolierten [Git Worktree](/docs/de/worktrees) bei `<repo>/.claude/worktrees/<name>`. Wenn Sie keinen Namen angeben, wird einer automatisch generiert. Übergeben Sie `#<number>`, eine GitHub Pull Request URL oder eine GitLab Merge Request URL, um [diesen PR oder MR von `origin` abzurufen und den Worktree davon zu verzweigen](/docs/de/worktrees#branch-from-a-pull-request). Das Verzweigen von einer GitLab Merge Request erfordert Claude Code v2.1.233 oder später | `claude -w feature-auth` |142| `--worktree`, `-w` | Starten Sie Claude in einem isolierten [Git Worktree](/docs/de/worktrees) bei `<repo>/.claude/worktrees/<name>`. Wenn Sie keinen Namen angeben, wird einer automatisch generiert. Übergeben Sie `#<number>`, eine GitHub Pull Request URL oder eine GitLab Merge Request URL, um [diesen PR oder MR von `origin` abzurufen und den Worktree davon zu verzweigen](/docs/de/worktrees#branch-from-a-pull-request). Das Verzweigen von einer GitLab Merge Request erfordert Claude Code v2.1.233 oder später | `claude -w feature-auth` |


144 System-Prompt-Flags145 System-Prompt-Flags

145</h3>146</h3>

146 147 

147Claude Code bietet vier Flags zum Anpassen des Systemprompts. Alle vier funktionieren sowohl im interaktiven als auch im nicht-interaktiven Modus.148Claude Code bietet fünf Flags zum Anpassen des Systemprompts. Vier setzen seinen Text, und mit `--system-prompt-snapshot` kontrollieren Sie, ob eine Konversation den Text behält, mit dem sie gestartet wurde. Alle fünf funktionieren sowohl im interaktiven als auch im nicht-interaktiven Modus.

148 149 

149| Flag | Verhalten | Beispiel |150| Flag | Verhalten | Beispiel |

150| :---------------------------- | :--------------------------------------- | :------------------------------------------------------ |151| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |

151| `--system-prompt` | Ersetzt den gesamten Standard-Prompt | `claude --system-prompt "You are a Python expert"` |152| `--system-prompt` | Ersetzt den gesamten Standard-Prompt | `claude --system-prompt "You are a Python expert"` |

152| `--system-prompt-file` | Ersetzt mit Dateiinhalten | `claude --system-prompt-file ./prompts/review.txt` |153| `--system-prompt-file` | Ersetzt mit Dateiinhalten | `claude --system-prompt-file ./prompts/review.txt` |

153| `--append-system-prompt` | Fügt zum Standard-Prompt an | `claude --append-system-prompt "Always use TypeScript"` |154| `--append-system-prompt` | Fügt zum Standard-Prompt an | `claude --append-system-prompt "Always use TypeScript"` |

154| `--append-system-prompt-file` | Fügt Dateiinhalte zum Standard-Prompt an | `claude --append-system-prompt-file ./style-rules.txt` |155| `--append-system-prompt-file` | Fügt Dateiinhalte zum Standard-Prompt an | `claude --append-system-prompt-file ./style-rules.txt` |

156| `--system-prompt-snapshot` | Mit `off` wird der Prompt bei jeder Anfrage neu erstellt. Mit `on`, dem Standard, wird ein aufgezeichneter Prompt wiederverwendet, wo [Aufzeichnung anwendbar ist](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

155 157 

156`--system-prompt` und `--system-prompt-file` schließen sich gegenseitig aus. Die Append-Flags können mit einem der Ersetzungs-Flags kombiniert werden.158`--system-prompt` und `--system-prompt-file` schließen sich gegenseitig aus. Die Append-Flags können mit einem der Ersetzungs-Flags kombiniert werden.

157 159 

158Wählen Sie basierend darauf, ob Claude Codes Standard-Identität noch zu Ihrer Aufgabe passt. Verwenden Sie ein Append-Flag, wenn Claude ein Coding-Assistent bleiben sollte, der auch Ihre zusätzlichen Regeln befolgt: Pro-Aufruf-Anweisungen, Ausgabeformatierung oder Domänenkontext für ein `-p` Skript. Das Anhängen bewahrt die Standard-Tool-Anleitung, Sicherheitsanweisungen und Coding-Konventionen, sodass Sie nur das liefern, was sich unterscheidet. Verwenden Sie ein Ersetzungs-Flag, wenn sich die Oberfläche, Identität oder das Berechtigungsmodell von Claude Code unterscheidet, wie ein Nicht-Coding-Agent in einer Pipeline, die kein Mensch überwacht. Das Ersetzen verwirft den gesamten Standard-Prompt, einschließlich Tool-Anleitung und Sicherheitsanweisungen, sodass Sie die Verantwortung für das übernehmen, was Ihre Aufgabe noch benötigt.160Wählen Sie basierend darauf, ob Claude Codes Standard-Identität noch zu Ihrer Aufgabe passt. Verwenden Sie ein Append-Flag, wenn Claude ein Coding-Assistent bleiben sollte, der auch Ihre zusätzlichen Regeln befolgt: Pro-Aufruf-Anweisungen, Ausgabeformatierung oder Domänenkontext für ein `-p` Skript. Das Anhängen bewahrt die Standard-Tool-Anleitung, Sicherheitsanweisungen und Coding-Konventionen, sodass Sie nur das liefern, was sich unterscheidet. Verwenden Sie ein Ersetzungs-Flag, wenn sich die Oberfläche, Identität oder das Berechtigungsmodell von Claude Code unterscheidet, wie ein Nicht-Coding-Agent in einer Pipeline, die kein Mensch überwacht. Das Ersetzen verwirft den gesamten Standard-Prompt, einschließlich Tool-Anleitung und Sicherheitsanweisungen, sodass Sie die Verantwortung für das übernehmen, was Ihre Aufgabe noch benötigt.

159 161 

160Diese Flags gelten nur für den aktuellen Aufruf. Für persistente Personas, die Sie zwischen verschiedenen Projekten wechseln und teilen können, verwenden Sie [Ausgabestile](/docs/de/output-styles). Für Projektkonventionen, die Claude immer befolgen sollte, verwenden Sie [CLAUDE.md](/docs/de/memory). Der [Agent SDK-Leitfaden zu Systemprompts](/docs/de/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) behandelt die gleiche Entscheidung ausführlicher.162Für persistente Personas, die Sie zwischen verschiedenen Projekten wechseln und teilen können, verwenden Sie [Ausgabestile](/docs/de/output-styles). Für Projektkonventionen, die Claude immer befolgen sollte, verwenden Sie [CLAUDE.md](/docs/de/memory). Der [Agent SDK-Leitfaden zu Systemprompts](/docs/de/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) behandelt die gleiche Entscheidung ausführlicher.

163 

164<h4 id="system-prompt-flags-in-resumed-conversations">

165 System-Prompt-Flags in fortgesetzten Konversationen

166</h4>

167 

168Standardmäßig erstellt Claude Code den Systemprompt einmal, bei der ersten Anfrage einer Konversation, mit dem Text aus allen System-Prompt-Flags angewendet, und zeichnet ihn in der Sitzung auf. Bis die Konversation komprimiert wird, verwendet jede spätere Anfrage diesen aufgezeichneten Prompt, auch nachdem Sie zur Konversation mit `--resume` oder `--continue` zurückkehren. Wenn Sie bei diesem späteren Start unterschiedlichen System-Prompt-Flag-Text übergeben, oder keinen, tritt er in Kraft, sobald die Konversation komprimiert wird oder wenn Sie eine neue Konversation starten.

169 

170Wenn Sie Claude Code im [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) starten, indem Sie `--bare` übergeben oder `CLAUDE_CODE_SIMPLE=1` setzen, bleibt die Aufzeichnung aus, es sei denn, Sie übergeben `--system-prompt-snapshot on`. Vor v2.1.268 bauten Sitzungen, die keine [Feature-Flags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching), einschließlich Sitzungen auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry, den Prompt bei jeder Anfrage neu auf und `--system-prompt-snapshot` hatte keine Auswirkung.

171 

172Um den Prompt bei jeder Anfrage neu zu erstellen, zum Beispiel während Sie seine Formulierung über `--continue` Läufe hinweg iterieren, übergeben Sie `--system-prompt-snapshot off`. Vor v2.1.265 schaltete das Übergeben eines der System-Prompt-Flags auch die Aufzeichnung aus, es sei denn, Sie übergaben `--system-prompt-snapshot on`.

161 173 

162<h2 id="see-also">174<h2 id="see-also">

163 Siehe auch175 Siehe auch

cloud-environments.md +806 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Cloud-Umgebungen konfigurieren

6 

7> Konfigurieren Sie Cloud-Umgebungen für Claude Code Cloud-Sitzungen: Netzwerkzugriffsstufen, Umgebungsvariablen, Setup-Skripte und Umgebungs-Caching.

8 

9<Note>

10 Cloud-Umgebungen erfordern [Claude Code im Web](/docs/de/claude-code-on-the-web), das sich in der Forschungsvorschau für Pro-, Max- und Team-Benutzer sowie für Enterprise-Benutzer mit [Premium-Sitzen oder Chat + Claude Code-Sitzen](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan) befindet.

11</Note>

12 

13Jede [Cloud-Sitzung](/docs/de/claude-code-on-the-web) wird in einer Cloud-Umgebung ausgeführt. Sie können eine Umgebung so konfigurieren, dass sie [Netzwerkzugriff](#access-levels) zulässt oder verweigert, [Umgebungsvariablen](#set-environment-variables) für die Sitzung festlegt, auf Pro- und Max-Plänen [API-Anmeldedaten](#add-api-credentials) speichert, die Sitzungen verwenden, ohne sie zu sehen, und ein [Setup-Skript](#setup-scripts) ausführt, bevor Claude mit der Arbeit beginnt.

14 

15Die gleichen Umgebungen gelten überall dort, wo Sie eine Cloud-Sitzung starten: [Claude Code im Web](/docs/de/claude-code-on-the-web), das Terminal mit [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web), [Claude Tag](https://claude.com/docs/claude-tag/overview), [Routinen](/docs/de/routines), die [Claude Mobile-App](/docs/de/mobile) und die [Desktop-App](/docs/de/desktop). Jede dieser Oberflächen kann auch zu einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) weiterleiten. [Verfügbarkeit und Einschränkungen](/docs/de/self-hosted-environments#availability-and-limitations) behandelt, was Claude noch nicht verwenden kann, wenn eine Claude Tag-Sitzung in einer ausgeführt wird.

16 

17<Info>

18 [Remote Control](/docs/de/remote-control)-Sitzungen verbinden die Web- und Mobile-Schnittstellen mit einer Sitzung auf Ihrem eigenen Computer, die das Netzwerk und die Dateien Ihres Computers nutzt, nicht eine Cloud-Umgebung. Claude Tag-Kanalsitzungen verwenden nur Umgebungen auf Organisationsebene, entweder [gemeinsame Umgebungen](#organization-shared-environments) oder [selbstgehostete Umgebungen](/docs/de/self-hosted-environments).

19</Info>

20 

21<h2 id="the-default-environment">

22 Die Standard-Umgebung

23</h2>

24 

25Wenn Sie noch keine Umgebung haben, richtet das Onboarding die **Standard**-Umgebung für Sie ein. Wie hängt davon ab, wo Sie das Onboarding durchführen:

26 

27* **CLI-Flüsse wie `/web-setup`**: erstellen **Standard** für Sie

28* **Web-Onboarding auf Pro und Max**: erstellt **Standard** für Sie

29* **Web-Onboarding auf Team und Enterprise**: zeigt ein Formular **Erstellen Sie Ihre erste Cloud-Umgebung**, es sei denn, ein Eigentümer hat [Schnelles Web-Setup](/docs/de/claude-code-on-the-web#github-authentication-options) aktiviert; behalten Sie die Standardwerte des Formulars bei und klicken Sie auf **Erstellen und fertig**, um die gleiche **Standard**-Umgebung zu erhalten

30 

31**Standard** hat keine eigene Konfiguration:

32 

33* [**Vertrauenswürdiger** Netzwerkzugriff](#access-levels): Sitzungen erreichen Paketregistrierungen und andere [auf die Whitelist gesetzte Domänen](#default-allowed-domains) und sonst nichts über das Netzwerk der Sitzung.

34* Keine andere Konfiguration: **Standard** definiert keine Umgebungsvariablen oder Setup-Skripte, daher starten Sitzungen nur mit den [vorinstallierten Tools](#installed-tools).

35 

36Wenn nur **Standard** verfügbar ist, wird jede Sitzung darin ausgeführt. Wenn Sie mehr als eine Umgebung haben, wählen Sitzungen eine pro Oberfläche:

37 

38* Im Web, in der Desktop-App und in der Mobile-App verwenden Sitzungen die im [Selector](#configure-your-environment) angezeigte Umgebung. Ein [Organisations-Standard](#organization-shared-environments), der von einem Eigentümer festgelegt wurde, füllt die Auswahl, wenn Sie noch keine ausgewählt haben.

39* Aus der CLI verwendet Claude Code Ihre [`/remote-env`-Auswahl](#select-an-environment-from-the-cli) oder fällt auf die von Anthropic gehostete Umgebung zurück, wenn Ihre Liste eine hat, und andernfalls auf die erste Umgebung in Ihrer Liste, die keine Bridge-Umgebung ist, ein Eintrag [Remote Control](/docs/de/remote-control) registriert, um Ihren eigenen Computer darzustellen, anstatt eine Cloud-Umgebung. Für eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) überschreibt das Übergeben von `--environment <environment-id>` mit ihrer `ccpool_`-ID [wenn Sie eine Sitzung versenden](/docs/de/self-hosted-environments-testing#run-the-test-loop) die `/remote-env`-Auswahl und den Fallback für diese Invocation. Claude Code lehnt von Anthropic gehostete `env_`-IDs ab, die an das Flag übergeben werden, daher verwenden Sie `/remote-env`, um diese anzusteuern. Das Flag erfordert Claude Code v2.1.224 oder später.

40 

41Konfigurieren Sie eine Umgebung, wenn der Standard nicht ausreicht: wenn Claude Domänen außerhalb der [Standard-Whitelist](#default-allowed-domains) erreichen muss, Umgebungsvariablen für seine Sitzungen benötigt oder Abhängigkeiten installiert werden müssen, bevor es mit der Arbeit beginnt.

42 

43<h2 id="configure-your-environment">

44 Konfigurieren Sie Ihre Umgebung

45</h2>

46 

47Erstellen, bearbeiten und archivieren Sie Umgebungen über die Umgebungsauswahl, die Sie auf [claude.ai/code](https://claude.ai/code) nach dem [Web-Onboarding](/docs/de/web-quickstart) oder über das Eingabefeld in der [Desktop-App](/docs/de/desktop#cloud-sessions) erreichen. Umgebungen, die Sie erstellen, sind persönlich für Ihr Konto; [gemeinsame Umgebungen](#organization-shared-environments), die von einem Eigentümer erstellt wurden, erscheinen in derselben Auswahl. Siehe [Installierte Tools](#installed-tools) für das, was ohne Konfiguration verfügbar ist.

48 

49<Steps>

50 <Step title="Öffnen Sie die Umgebungsauswahl">

51 Wählen Sie auf [claude.ai/code](https://claude.ai/code) das Cloud-Symbol aus, das den Namen der aktuellen Umgebung anzeigt, in der Zeile über dem Nachrichtenfeld. Es gibt keine Einstellungsseite oder direkte URL für die Auswahl.

52 

53 <Frame>

54 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-selector.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=cc2813a5664519eaf5a89d793ce5af26" alt="Die Umgebungsauswahl ist über dem Nachrichtenfeld auf claude.ai/code geöffnet. Die Cloud-Schaltfläche mit dem Umgebungsnamen „Default&#x22; befindet sich in der Zeile über dem Nachrichtenfeld. Das offene Menü zeigt eine lokale Zeile mit den Bezeichnungen „Download&#x22; und „Desktop only&#x22;, einen Cloud-Bereich, in dem die Umgebung „Default&#x22; mit einem Häkchen ausgewählt ist und beim Hovern ein Einstellungszahnrad anzeigt, eine Option „Add cloud environment&#x22; und einen Bereich „Remote Control&#x22; mit Setupanweisungen." width="1672" height="682" data-path="images/cloud-environment-selector.png" />

55 </Frame>

56 </Step>

57 

58 <Step title="Fügen Sie eine Umgebung hinzu oder bearbeiten Sie eine">

59 Wählen Sie **Add cloud environment** aus, oder bewegen Sie den Mauszeiger über eine vorhandene Umgebung und wählen Sie das Einstellungssymbol aus, das auf der rechten Seite angezeigt wird. Der Dialog enthält den Namen, die Netzwerkzugriffsstufe, Umgebungsvariablen und ein Setup-Skript. Wenn Sie eine vorhandene Cloud-Umgebung auf einem Pro- oder Max-Plan bearbeiten, enthält der Dialog auch [API-Anmeldedaten](#add-api-credentials).

60 

61 <Frame>

62 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="Der Dialog „New cloud environment&#x22;. Ein Namensfeld mit dem Platzhalter „Default&#x22;, eine Netzwerkzugriff-Auswahl auf „Trusted&#x22; mit Links zur Netzwerkrichtlinie und Zugriffsstufen, ein Feld für Umgebungsvariablen mit .env-Format-Platzhaltertext und einem Hinweis, dass Werte für jeden sichtbar sind, der die Umgebung nutzt, ein Feld für das Setup-Skript, das als Bash-Skript beschrieben wird und beim Start einer neuen Sitzung ausgeführt wird, bevor Claude Code startet, sowie Schaltflächen „Cancel&#x22; und „Create environment&#x22;." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />

63 </Frame>

64 </Step>

65</Steps>

66 

67<h3 id="set-environment-variables">

68 Legen Sie Umgebungsvariablen fest

69</h3>

70 

71Umgebungsvariablen verwenden das `.env`-Format, ein `KEY=value`-Paar pro Zeile. Einfache Werte benötigen keine Anführungszeichen, und wenn Sie einen Wert mit einem passenden Paar in Anführungszeichen setzen, werden die Anführungszeichen nicht Teil des Wertes. Setzen Sie einen Wert in Anführungszeichen, der sich über mehrere Zeilen erstreckt oder ein `#` enthält: in einem Wert ohne Anführungszeichen startet `#` einen Kommentar und der Rest der Zeile wird verworfen.

72 

73Das folgende Beispiel definiert drei Variablen.

74 

75```text theme={null}

76NODE_ENV=development

77LOG_LEVEL=debug

78DATABASE_URL=postgres://localhost:5432/myapp

79```

80 

81Jede Sitzung kopiert die Werte der Umgebung einmal beim Start in gewöhnliche Umgebungsvariablen, die jeder Befehl, den Claude ausführt, lesen kann. Da laufende Sitzungen die Konfiguration nicht erneut lesen, wirken sich Änderungen oder Hinzufügungen von Variablen auf Sitzungen aus, die Sie danach starten; Sitzungen, die bereits laufen, behalten die Werte, mit denen sie gestartet wurden.

82 

83Claude Code im Web setzt auch einige Variablen selbst, wenn es eine Sitzung startet. Für [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/de/claude-code-on-the-web#manage-context) überschreibt der Wert, den Claude Code im Web setzt, einen, den Sie hier hinzufügen, daher hat das Hinzufügen dieses Schlüssels hier keine Auswirkung.

84 

85Jeder, der die Umgebung nutzt, kann die Werte lesen. Auf Pro- und Max-Plänen verwenden Sie stattdessen eine [API-Anmeldedaten](#add-api-credentials) für einen Schlüssel, den der Agent-Proxy an eine Anfrage anhängen kann. Die [Anfragen, die niemals eine Anmeldedaten erhalten](#requests-that-never-get-the-credential), sind dort aufgelistet.

86 

87<h3 id="add-api-credentials">

88 Fügen Sie API-Anmeldedaten hinzu

89</h3>

90 

91Eine API-Anmeldedaten ist ein API-Schlüssel oder Token, den Sie in einer Cloud-Umgebung speichern, damit Claude diese API aus jeder Sitzung in der Umgebung aufrufen kann, ohne den Schlüssel zu sehen. Der Agent-Proxy von Anthropic fügt den Schlüssel zu Anfragen für die Hosts hinzu, die Sie auflisten, nachdem jede Anfrage die Sitzungs-VM verlässt. Der Schlüssel erreicht niemals Claude, die Befehle, die er ausführt, oder die Umgebungsvariablen der Sitzung.

92 

93API-Anmeldedaten sind auf Pro- und Max-Plänen verfügbar. Sie sind auf Team- oder Enterprise-Plänen noch nicht verfügbar, daher erscheint der Abschnitt **API-Anmeldedaten** nicht im Umgebungs-Dialog auf diesen Plänen.

94 

95<h4 id="requirements">

96 Anforderungen

97</h4>

98 

99Zwei davon entscheiden, ob Sie eine Anmeldedaten hinzufügen können, und zwei entscheiden, ob der Agent-Proxy sie einmal hinzugefügt verwenden kann:

100 

101* **Rolle**: eine Organisations-Admin-Rolle in Ihrer claude.ai-Organisation

102 * Auf Team und Enterprise halten Eigentümer sie und Administratoren nicht

103 * Auf Pro und Max halten Sie sie in Ihrer eigenen Organisation

104 * Ohne sie sehen Sie stattdessen einen Hinweis auf der Anmeldedaten-Liste, auch auf Ihren eigenen Umgebungen. Bitten Sie einen Eigentümer, die Anmeldedaten zu einer gemeinsamen Umgebung hinzuzufügen und Ihre Sitzungen dort auszuführen

105* **Umgebungstyp**: eine von Anthropic gehostete Cloud-Umgebung, die bereits existiert. Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) hat keine API-Anmeldedaten

106* **API-Erreichbarkeit**: die API akzeptiert Verbindungen aus dem Internet, da Anfragen aus Anthropic-Netzwerk verlassen

107* **Verschlüsselungsschlüssel**: wenn Ihre Organisation kundenverwaltete Verschlüsselungsschlüssel verwendet, können Sie keine Anmeldedaten speichern

108 

109<h4 id="add-a-credential">

110 Fügen Sie eine Anmeldedaten hinzu

111</h4>

112 

113Sie fügen Anmeldedaten einzeln aus dem Editor einer Umgebung hinzu, die bereits existiert. Der Dialog für eine neue Umgebung bietet sie nicht an. Es gibt auch keine Bearbeitung. Um die Hosts oder den Wert einer Anmeldedaten zu ändern, löschen Sie sie und fügen Sie sie erneut hinzu.

114 

115<Steps>

116 <Step title="Öffnen Sie die API-Anmeldedaten der Umgebung">

117 [Öffnen Sie die Umgebung zur Bearbeitung](#configure-your-environment) auf [claude.ai/code](https://claude.ai/code). Im Dialog **Update cloud environment** finden Sie **API-Anmeldedaten** unter **Umgebungsvariablen**. Sie sehen die Anmeldedaten, die bereits in der Umgebung vorhanden sind, jeweils mit den Hosts, auf die sie sich beziehen.

118 </Step>

119 

120 <Step title="Fügen Sie die Anmeldedaten hinzu">

121 Wählen Sie **Add credential** und füllen Sie das Formular aus. Behalten Sie den Standard **Credential type**, **Bearer**, für einen API-Schlüssel, der in einem Request-Header verläuft, und füllen Sie diese Felder aus:

122 

123 * **Name**: ein Label für die Anmeldedaten, wie `Internal billing API`

124 * **Allowed websites**: die Hosts der API, wie `api.example.com`. Ein führendes `*.` passt zu jeder Subdomain

125 * **Custom headers**: eine Zeile für den Header, der den Schlüssel trägt. Die Zeile beginnt mit `Authorization` als **Name** des Headers und `Bearer` als **Prefix**; fügen Sie den Schlüssel selbst als **Value** ein. Für einen Header wie `X-Api-Key`, der den bloßen Wert nimmt, ändern Sie den Namen und löschen Sie das Prefix

126 

127 Für eine API, die sich anders authentifiziert, wählen Sie einen anderen **Credential type**. Die Liste ist die gleiche, die [Claude Tag](https://claude.com/docs/claude-tag/overview), die Slack-Integration für Team- und Enterprise-Pläne, für [Verbindungen](https://claude.com/docs/claude-tag/admins/add-connections) anbietet.

128 </Step>

129 

130 <Step title="Speichern Sie die Anmeldedaten">

131 Wählen Sie **Connect**. Die Anmeldedaten erscheinen in der Liste mit ihren Hosts, gespeichert ohne die Schaltfläche **Save changes** des Dialogs. Sie können den Wert nach dem Speichern nicht erneut anzeigen.

132 </Step>

133</Steps>

134 

135Um zu bestätigen, dass die Anmeldedaten funktioniert, starten Sie eine Sitzung in der Umgebung und bitten Sie Claude, die API aufzurufen, zum Beispiel mit `curl`. Die API antwortet, als ob der Schlüssel in der Anfrage wäre, und der Schlüssel erscheint nicht in den Umgebungsvariablen der Sitzung oder in einer Datei. Wenn die Liste eine Anmeldedaten als **Not sent** markiert, sagt der Hinweis darunter, warum und was zu tun ist. Zwei Anmeldedaten, deren Hosts sich überlappen, ohne genau zu passen, erhalten keinen Marker, und der Agent-Proxy sendet nur eine von ihnen.

136 

137<h4 id="which-requests-get-the-credential">

138 Welche Anfragen erhalten die Anmeldedaten

139</h4>

140 

141Der Agent-Proxy fügt eine Anmeldedaten an eine Anfrage an, wenn der Host der Anfrage einem passt, den Sie auf dieser Anmeldedaten aufgelistet haben. Sitzungen können diese Hosts erreichen, auch wenn die [Netzwerkzugriffsstufe](#access-levels) der Umgebung dies sonst nicht zulassen würde, außer den [Hosts, die der Agent-Proxy überspringt](#requests-that-never-get-the-credential). Die Anmeldedaten gelten in jeder Sitzung, die in der Umgebung läuft, wer sie auch immer gestartet hat, bis Sie sie löschen.

142 

143<h4 id="requests-that-never-get-the-credential">

144 Anfragen, die niemals die Anmeldedaten erhalten

145</h4>

146 

147Der Agent-Proxy fügt niemals eine Anmeldedaten, die Sie hinzufügen, zu diesen Anfragen hinzu:

148 

149* **GitHub**: der [GitHub-Proxy](#github-proxy) authentifiziert Anfragen an GitHub stattdessen, daher benötigen Sie keine API-Anmeldedaten dafür

150* **Die Anthropic-API und öffentliche Paketregistrierungen**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io` und `proxy.golang.org`

151* **Setup-Skript-Anfragen**: Claude Code verbindet sich mit dem Agent-Proxy, wenn es startet, nachdem das [Setup-Skript](#setup-scripts) ausgeführt wurde

152 

153<h3 id="select-an-environment-from-the-cli">

154 Wählen Sie eine Umgebung aus der CLI aus

155</h3>

156 

157Führen Sie `/remote-env` in Ihrem Terminal aus, um die Standardumgebung für Cloud-Sitzungen auszuwählen, die Sie über die CLI erstellen, wie [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web). Der Befehl öffnet eine Auswahl Ihrer vorhandenen Umgebungen und speichert Ihre Wahl im Schlüssel `remote.defaultEnvironmentId` in Ihren [Benutzereinstellungen](/docs/de/settings#where-settings-live), sodass sie in jedem Projekt auf Ihrem Computer gilt, bis Sie sie ändern, es sei denn, derselbe Schlüssel ist auf einer höheren Prioritäts-[Einstellungsebene](/docs/de/settings#settings-precedence) gesetzt, wie in den Projekteinstellungen eines Repositorys.

158 

159Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments)-ID, die die Form `ccpool_...` hat, folgt einer strengeren Quellregel. Siehe [`remote.defaultEnvironmentId`](/docs/de/settings-reference#remote-defaultenvironmentid) für die Einstellungsebenen, die Claude Code dafür berücksichtigt.

160 

161`/remote-env` setzt nur den Standard: Es startet keine Sitzung und kann keine Umgebungen hinzufügen oder bearbeiten. Verwalten Sie diese über die [Umgebungsauswahl](#configure-your-environment).

162 

163<h3 id="archive-an-environment">

164 Archivieren Sie eine Umgebung

165</h3>

166 

167Um eine Umgebung zu archivieren, öffnen Sie sie zur Bearbeitung und wählen Sie **Archive** aus. Sie können eine Umgebung nicht löschen, nur archivieren.

168 

169Das Archivieren wirkt sich auf neue Sitzungen aus, nicht auf laufende:

170 

171* Sitzungen, die bereits in der Umgebung laufen, funktionieren weiterhin.

172* Die Umgebung verschwindet aus der Auswahl und aus `/remote-env`, sodass Sie sie nicht für neue Sitzungen auswählen können.

173* API-Anmeldedaten in der Umgebung bleiben in ihren laufenden Sitzungen angehängt. Löschen Sie alle, die Sie nicht mehr benötigen, bevor Sie archivieren.

174* Keine neue Sitzung kann in einer archivierten Umgebung starten, auf keiner Oberfläche. Wenn die Umgebung Ihr gespeicherter [CLI-Standard](#select-an-environment-from-the-cli) war, startet Claude Code CLI-Cloud-Sitzungen in der von Anthropic gehosteten Umgebung, wenn Ihre Liste eine hat, und andernfalls in der ersten Umgebung in Ihrer Liste, die keine [Remote Control Bridge-Umgebung](#the-default-environment) ist. Alles, das explizit mit der Umgebung konfiguriert ist, wie eine [Routine](/docs/de/routines#environments-and-network-access), kann keine neuen Sitzungen darin starten. Verweisen Sie es auf eine andere Umgebung.

175 

176<h3 id="organization-shared-environments">

177 Gemeinsame Umgebungen der Organisation

178</h3>

179 

180Auf Team- und Enterprise-Plänen kann ein Eigentümer Cloud-Umgebungen erstellen, die mit jedem Mitglied der Organisation geteilt werden. Die gleiche Rolle verwaltet alles andere auf der Seite **Cloud environments** in den Admin-Einstellungen, einschließlich [selbstgehosteter Umgebungen](/docs/de/self-hosted-environments); die Admin-Rolle kann die Seite nicht öffnen. Die vollständige Liste der Rollen, die die Seite öffnen können, ist die für [Verwaltung von Server-verwalteten Einstellungen](/docs/de/server-managed-settings#access-control). Gemeinsame Umgebungen erscheinen in der Umgebungsauswahl jedes Mitglieds neben ihren persönlichen, sodass ein Team sich auf eine Konfiguration einigen kann, anstatt dass jedes Mitglied sie neu erstellt.

181 

182Erstellen, bearbeiten und archivieren Sie gemeinsame Umgebungen auf der Seite **Cloud environments** in den [Admin-Einstellungen](https://claude.ai/admin-settings). Eine gemeinsame Umgebung öffnet sich auch aus der [Umgebungsauswahl](#configure-your-environment) auf [claude.ai/code](https://claude.ai/code): Ein Eigentümer kann sie dort bearbeiten. Andere Mitglieder sehen sie schreibgeschützt. Jede gemeinsame Umgebung hat einen Namen, eine [Netzwerkzugriffsstufe](#access-levels), [Umgebungsvariablen](#set-environment-variables) im `.env`-Format und ein [Setup-Skript](#setup-scripts). Eigentümer wählen die [Standardumgebung](#the-default-environment) der Organisation separat auf [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) aus.

183 

184Jedes Mitglied liest die Variablen einer gemeinsamen Umgebung in seinen Sitzungen, daher fügen Sie keine Geheimnisse darin ein. [API-Anmeldedaten](#add-api-credentials), die Sitzungen einen Schlüssel geben, den sie nicht lesen können, sind auf Team- oder Enterprise-Plänen noch nicht verfügbar.

185 

186<h3 id="set-the-environment-a-claude-tag-channel-uses">

187 Legen Sie die Umgebung fest, die ein Claude Tag-Kanal verwendet

188</h3>

189 

190In [Claude Tag](https://claude.com/docs/claude-tag/overview)-Kanälen arbeitet Claude als gemeinsame Identität Ihrer Organisation, nicht als ein Mitglied, daher verwenden Kanalsitzungen nur Umgebungen auf Organisationsebene, entweder gemeinsame Umgebungen oder [selbstgehostete Umgebungen](/docs/de/self-hosted-environments). Um einem Kanal eine Toolchain zu geben, die nicht [vorinstalliert](#installed-tools) ist, wie .NET, kann ein Eigentümer eine [gemeinsame Umgebung](#organization-shared-environments) aus der Seite **Cloud environments** in den Admin-Einstellungen mit einem [Setup-Skript](#setup-scripts) erstellen, das sie installiert. Verweisen Sie den Kanal auf eine Umgebung auf eine von zwei Arten:

191 

192* Legen Sie eine gemeinsame oder selbstgehostete Umgebung als [Standardumgebung](#the-default-environment) der Organisation auf [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) fest.

193* [Heften Sie eine an einen Kanal](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) in den Claude Tag-Admin-Einstellungen an.

194 

195<h2 id="network-access">

196 Netzwerkzugriff

197</h2>

198 

199Jede Umgebung setzt eine Netzwerkzugriffsstufe, die die ausgehenden Verbindungen steuert, die ihre Sitzungen herstellen können. Die Standard-Stufe, **Trusted**, erlaubt Paketregistrierungen und andere [auf die Whitelist gesetzte Domänen](#default-allowed-domains); **Custom** nimmt Ihre eigene Domänenliste.

200 

201Um die Netzwerkzugriffsstufe einer Umgebung zu ändern, [öffnen Sie sie zur Bearbeitung](#configure-your-environment) und verwenden Sie den **Network access**-Selector im Dialog. Das Cloud-Symbol, das den Selector öffnet, erscheint auf den App-Oberflächen, die unter [Die Standard-Umgebung](#the-default-environment) aufgelistet sind, und im [Routine-Editor](/docs/de/routines#environments-and-network-access); persönliche Umgebungen haben keine separate Seite in Ihren claude.ai-Kontoeinstellungen.

202 

203<Note>

204 MCP-Konnektoren, die Sie auf einer Sitzung oder Routine aktivieren, funktionieren, ohne ihre Hosts zu **Allowed domains** hinzuzufügen, da der Konnektoren-Verkehr über Anthropic-Server verläuft, anstatt über das Netzwerk der Sitzung. Sie konfigurieren Konnektoren pro Sitzung oder pro Routine; entfernen Sie alle, die Sie nicht benötigen, um zu begrenzen, welche Tools Claude erreichen kann. Dies beruht auf dem gleichen Anthropic-gebundenen Kanal, der unter [Security and isolation](/docs/de/claude-code-on-the-web#security-and-isolation) erwähnt wird.

205</Note>

206 

207<h3 id="access-levels">

208 Zugriffsstufen

209</h3>

210 

211Das Feld **Network access** im [Umgebungs-Dialog](#configure-your-environment) nimmt eine von vier Stufen:

212 

213| Stufe | Ausgehende Verbindungen |

214| :---------- | :----------------------------------------------------------------------------------------------------------- |

215| **None** | Kein ausgehender Netzwerkzugriff über das Netzwerk der Sitzung |

216| **Trusted** | Nur [auf die Whitelist gesetzte Domänen](#default-allowed-domains): Paketregistrierungen, GitHub, Cloud-SDKs |

217| **Full** | Jede Domäne |

218| **Custom** | Ihre eigene Whitelist, optional einschließlich der Standards |

219 

220Welche Stufe Sie auch wählen, Sitzungen können diese immer noch erreichen, da jede einen Pfad nimmt, der nicht durch die Netzwerk-Whitelist der Sitzung geht:

221 

222* GitHub, durch seinen [separaten Proxy](#github-proxy)

223* [MCP-Konnektoren](#network-access), die Sie aktivieren, deren Verkehr über Anthropic-Server verläuft

224* Die Hosts, die Sie auf den [API-Anmeldedaten](#add-api-credentials) der Umgebung aufgelistet haben, außer den [Hosts, die der Agent-Proxy überspringt](#requests-that-never-get-the-credential)

225* Die Anthropic-API, für Claude Code-eigene Anfragen, auch bei **None**, wie unter [Security and isolation](/docs/de/claude-code-on-the-web#security-and-isolation) erwähnt

226 

227<h3 id="allow-specific-domains">

228 Erlauben Sie bestimmte Domänen

229</h3>

230 

231Um Domänen zu erlauben, die nicht in der Trusted-Liste sind, wählen Sie **Custom** in den Netzwerkzugriff-Einstellungen der Umgebung, dann listen Sie eine Domäne pro Zeile im Feld **Allowed domains** auf. Dieses Beispiel erlaubt drei Hosts, die ein internes Projekt benötigen könnte.

232 

233```text theme={null}

234api.example.com

235*.internal.example.com

236registry.example.com

237```

238 

239Sitzungen in dieser Umgebung können jetzt `api.example.com`, jede Subdomain von `internal.example.com` und `registry.example.com` erreichen, und keine anderen Domänen über das Netzwerk der Sitzung. [GitHub-Verkehr](#github-proxy), [MCP-Konnektoren-Verkehr](#network-access) und Anfragen an die Hosts der [API-Anmeldedaten](#add-api-credentials) der Umgebung, außer den [Hosts, die der Agent-Proxy überspringt](#requests-that-never-get-the-credential), gehen nicht durch diese Whitelist. Ein führendes `*.` passt zu jeder Subdomain. Um die [Trusted-Domänen](#default-allowed-domains) auch zu behalten, aktivieren Sie **Also include default list of common package managers**; lassen Sie es deaktiviert, um nur das zu erlauben, was Sie auflisten.

240 

241Wenn Ihre Organisation [Artifacts](/docs/de/artifacts#availability) verwendet, benötigen Sie `*.frame.claudeusercontent.com` nicht in der Liste, damit Sitzungen sie lesen können. Wenn die Liste diesen Host auslässt, liest Claude Code Artifact-Inhalte stattdessen über die Verbindung der Sitzung zu Anthropic. Behalten Sie den Host in einer Whitelist in zwei Situationen:

242 

243* **Sitzungen in dieser Umgebung öffnen öffentliche Artifacts einer anderen Organisation**: Claude Code ruft diese direkt vom Host ab, daher fügen Sie ihn zu dieser Liste hinzu.

244* **Sie konfigurieren die lokale CLI oder einen selbstgehosteten Runner**: behalten Sie den Host in dieser Whitelist. Siehe [Netzwerkzugriff-Anforderungen](/docs/de/network-config#network-access-requirements) und die selbstgehosteten [Netzwerk-Anforderungen](/docs/de/self-hosted-environments-deploy#network-requirements).

245 

246Jede Umgebung hat ihre eigene Whitelist für zulässige Domänen; es gibt keine Organisations-Whitelist, die Administratoren an die Umgebungen jedes Mitglieds pushen können. [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) gelten immer noch in Cloud-Sitzungen, aber keine von ihnen fügt Domänen zur Netzwerk-Whitelist der Umgebung hinzu.

247 

248<h3 id="github-proxy">

249 GitHub-Proxy

250</h3>

251 

252In von Anthropic gehosteten Umgebungen gehen alle GitHub-Operationen durch einen dedizierten Proxy, der Ihre echten GitHub-Anmeldedaten außerhalb der Sitzungs-VM hält, unabhängig von der [Zugriffsstufe](#access-levels) der Umgebung. Sitzungen in einer selbstgehosteten Umgebung authentifizieren Git-Operationen mit Anmeldedaten, die Ihre Bereitstellung bereitstellt; [Configure git](/docs/de/self-hosted-environments-deploy#configure-git) behandelt die Optionen, einschließlich pro-Sitzung geprägter Anmeldedaten und eines Opt-in zu diesem gleichen Proxy. Der Proxy bietet:

253 

254* **Git-Anmeldedaten**: Der Git-Client in der VM verwendet eine begrenzte Anmeldedaten, die der Proxy überprüft und gegen Ihren echten GitHub-Token austauscht.

255* **API-Anfragen**: Anfragen von den integrierten GitHub-Tools und von `gh` unter dem [`proxy-injected`-Platzhalter](#work-with-github-issues-and-pull-requests) gehen mit Ihren echten Anmeldedaten aus.

256* **Push-Schutz**: `git push` funktioniert nur gegen den aktuellen Arbeitszweig der Sitzung; Klonen, Abrufen und PR-Operationen funktionieren normal.

257* **Repository-Bereich**: GitHub-API und Release-Asset-Anfragen erreichen nur Repositories, die an die Sitzung angehängt sind, daher erhält ein Setup-Skript, das Release-Assets aus einem nicht angehängten Repository herunterlädt, einen 403.

258* **GraphQL-Einschränkungen**: der Proxy bedient nur einen angehefteten Satz von GraphQL-Operationen für Pull-Request-Workflows. Der Proxy lehnt alles andere auf dem GraphQL-Endpunkt mit einem 403 ab, der sagt `This GraphQL query is not enabled for this session` und nennt den REST-Fallback, `gh api repos/{owner}/{repo}/...`. Die Einschränkung gilt für jede Anfrage durch den Proxy, unabhängig von den Anmeldedaten, die Sie bereitstellen, daher erhält ein `GH_TOKEN`, den Sie setzen, den gleichen 403. Claude kann GitHub-APIs, die nur in GraphQL existieren, wie Projects v2, nicht durch den Proxy erreichen.

259 

260Committed-Dateien aus öffentlichen Repositories kommen über `raw.githubusercontent.com` an, das der [Sicherheits-Proxy](#security-proxy) stattdessen handhabt. Diese Domäne ist in der Standard-[Trusted-Liste](#default-allowed-domains), daher bleiben diese Dateien erreichbar, es sei denn, die [Zugriffsstufe](#access-levels) der Umgebung schließt sie aus.

261 

262<h3 id="security-proxy">

263 Sicherheits-Proxy

264</h3>

265 

266Cloud-Sitzungen in von Anthropic gehosteten Umgebungen laufen hinter einem HTTP/HTTPS-Netzwerk-Proxy für Sicherheits- und Missbrauchspräventionszwecke; in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments-deploy#default-deny-egress) verläuft ausgehender Verkehr stattdessen durch Ihre eigene Netzwerk-Grenze. Der gesamte ausgehende Internet-Verkehr aus einer von Anthropic gehosteten Sitzung verläuft durch diesen Proxy, der Folgendes bietet:

267 

268* Schutz vor böswilligen Anfragen

269* Ratenbegrenzung und Missbrauchsprävention

270* Inhaltsfilterung für erhöhte Sicherheit

271* Ein DNS-Audit-Trail der angeforderten Hostnamen

272 

273<h2 id="what’s-available-in-cloud-sessions">

274 Was ist in Cloud-Sitzungen verfügbar

275</h2>

276 

277In von Anthropic gehosteten Umgebungen erhält jede Sitzung eine frische virtuelle Maschine (VM) mit Ubuntu 24.04 auf x86\_64, unabhängig von Ihrem eigenen Betriebssystem und CPU-Architektur, mit Ihrem geklonten Repository und vorinstallierten gängigen Toolchains. Wenn eine Abhängigkeit vorkompilierte Binärdateien bereitstellt, wie Ruby-Gems mit nativen Erweiterungen oder vorgefertigte Python-Wheels, verwenden Sie seinen x86\_64 Linux-Build, um die VM zu entsprechen. Dieser Abschnitt behandelt die von Anthropic gehosteten Standardeinstellungen, die integrierten GitHub-Tools, wie man [Tests und Services ausführt](#run-tests-start-services-and-add-packages) und die [Ressourcenlimits](#resource-limits), die jede VM erhält.

278 

279<Note>

280 Sitzungen, die Ihre Organisation zu einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) leitet, laufen stattdessen auf Ihren eigenen Runnern mit den Tools, die Ihr Runner-Image bereitstellt.

281</Note>

282 

283<h3 id="what-carries-over-from-your-setup">

284 Was wird von Ihrem Setup übernommen

285</h3>

286 

287Cloud-Sitzungen starten aus einem frischen Klon Ihres Repositories. Alles, das Sie in das Repo committen, ist verfügbar. Alles, das Sie nur auf Ihrem eigenen Computer installiert oder konfiguriert haben, ist nicht in der Sitzung verfügbar. Die Richtlinie Ihrer Organisation kommt separat über [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) an.

288 

289| | Verfügbar in Cloud-Sitzungen | Warum |

290| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

291| Die `CLAUDE.md` Ihres Repos | Ja | Teil des Klons |

292| Die `.claude/settings.json`-Hooks Ihres Repos | Ja | Teil des Klons |

293| Die `.mcp.json` MCP-Server Ihres Repos | Ja | Teil des Klons |

294| Das `.claude/rules/` Ihres Repos | Ja | Teil des Klons |

295| Die `.claude/skills/`, `.claude/agents/`, `.claude/commands/` Ihres Repos | Ja | Teil des Klons |

296| Plugins, die in `.claude/settings.json` deklariert sind | Ja | Installiert beim Sitzungsstart aus dem [Marketplace](/docs/de/plugin-marketplaces), den Sie deklariert haben. Erfordert Netzwerkzugriff, um die Marketplace-Quelle zu erreichen |

297| Die [Server-verwalteten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation | Ja | Abgerufen von Anthropic-Servern, wenn die Sitzung startet. Siehe [Surface coverage](/docs/de/model-config#surface-coverage) für die Durchsetzung von `availableModels` in Cloud-Sitzungen. Einstellungen, die auf Ihrem Gerät über MDM oder verwaltete Einstellungsdateien bereitgestellt werden, gelten nicht, da die Sitzung auf einer von Anthropic verwalteten VM läuft; in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) lesen Sitzungen auch die verwaltete Einstellungsdatei im Runner-Image, pro [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) |

298| Ihre Benutzer `~/.claude/CLAUDE.md` | Nein | Lebt auf Ihrem Computer, nicht im Repo |

299| Ihre Benutzer `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | Nein | Leben auf Ihrem Computer, nicht im Repo. Committen Sie sie stattdessen in das Verzeichnis `.claude/` des Repos. Cloud-Sitzungen laden automatisch Skills, die Sie auf claude.ai aktivieren |

300| Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind | Nein | Benutzer-scoped `enabledPlugins` lebt in `~/.claude/settings.json`. Deklarieren Sie sie stattdessen in der `.claude/settings.json` des Repos, oder aktivieren Sie sie für Ihr claude.ai-Konto, damit Claude Code sie als [synced plugins](/docs/de/plugins-reference#synced-plugins) lädt |

301| MCP-Server, die Sie mit `claude mcp add` im Standard-lokalen Bereich oder Benutzerbereich hinzugefügt haben | Nein | Diese schreiben in `~/.claude.json` auf Ihrem Computer, nicht im Repo. Fügen Sie den Server mit `claude mcp add --scope project` hinzu, das die [`.mcp.json`](/docs/de/mcp#project-scope) des Repos schreibt, und committen Sie diese Datei |

302| Transport-Variablen in der `.claude/settings.json` `env`-Block Ihres Repos, wie `NODE_EXTRA_CA_CERTS` und die [mTLS-Client-Zertifikat-Variablen](/docs/de/network-config#mtls-authentication) | Nein | Die Hosting-Umgebung verwaltet die API-Verbindung der Sitzung, daher ignoriert Claude Code diese Schlüssel und notiert jeden ignorierten Schlüssel im Debug-Log der Sitzung |

303| API-Schlüssel und Tokens für Services, die Claude aufruft | Auf Pro- und Max-Plänen, als [API-Anmeldedaten](#add-api-credentials) | Sie fügen den Schlüssel einmal auf der Umgebung hinzu und der Agent-Proxy fügt ihn an Anfragen für die Hosts an, die Sie auflisten. Ein Schlüssel, den der Agent-Proxy [nicht anhängen kann](#requests-that-never-get-the-credential), oder ein beliebiger Schlüssel auf einem Team- oder Enterprise-Plan, bleibt in einer Umgebungsvariable |

304| Interaktive Authentifizierung wie AWS SSO | Nein | Nicht unterstützt. SSO erfordert browserbasierte Anmeldung, die nicht in einer Cloud-Sitzung ausgeführt werden kann |

305 

306Um Ihre eigene Konfiguration in Cloud-Sitzungen verfügbar zu machen, committen Sie sie in das Repo.

307 

308Jeder, der die Umgebung nutzt, kann ihre Umgebungsvariablen und Setup-Skripte lesen. Der Hinweis des Dialogs unter **Umgebungsvariablen** sagt dies und warnt vor dem Hinzufügen von Geheimnissen. Auf Pro- und Max-Plänen speichern Sie einen Schlüssel, den der Agent-Proxy anhängen kann, als [API-Anmeldedaten](#add-api-credentials) stattdessen.

309 

310<h3 id="installed-tools">

311 Installierte Tools

312</h3>

313 

314Cloud-Sitzungen werden mit gängigen Sprach-Runtimes, Build-Tools und Datenbanken vorinstalliert geliefert. Die folgende Tabelle fasst zusammen, was nach Kategorie enthalten ist.

315 

316| Kategorie | Enthalten |

317| :-------------- | :----------------------------------------------------------------------- |

318| **Python** | Python 3.x mit pip, poetry, uv, black, mypy, pytest, ruff |

319| **Node.js** | 20, 21 und 22, mit npm, yarn, pnpm, bun¹, eslint, prettier, chromedriver |

320| **Ruby** | 3.1, 3.2, 3.3 mit gem, bundler, rbenv |

321| **PHP** | 8.3 mit Composer |

322| **Java** | OpenJDK 21 mit Maven und Gradle |

323| **Go** | Go mit Modul-Unterstützung |

324| **Rust** | rustc und cargo |

325| **C/C++** | GCC, Clang, cmake, ninja, conan |

326| **Docker** | docker, dockerd, docker compose |

327| **Datenbanken** | PostgreSQL 16, Redis 7.0 |

328| **Utilities** | git, gh, jq, yq, ripgrep, tmux, vim, nano |

329 

330¹ Bun ist installiert, hat aber bekannte [Proxy-Kompatibilitätsprobleme](#install-dependencies-with-a-sessionstart-hook) beim Paket-Abrufen.

331 

332Um die Versionen der meisten Tools in dieser Tabelle zu erhalten, bitten Sie Claude, `check-tools` in einer Cloud-Sitzung auszuführen. Es ist ein Shell-Befehl, der auf der Sitzungs-VM installiert ist, kein Slash-Befehl; Sie bitten Claude, weil [Claude alle VM-Befehle für Sie ausführt](#run-tests-start-services-and-add-packages). Für ein Tool, das es nicht meldet, wie Ruby, PHP, bun, PostgreSQL oder Redis, bitten Sie Claude, den Versions-Befehl des Tools selbst auszuführen, zum Beispiel `psql --version`.

333 

334Node.js-Versionen sind unter `/opt/node20`, `/opt/node21` und `/opt/node22` installiert, mit 22 auf `PATH` standardmäßig. Um mit einer anderen Version zu arbeiten, bitten Sie Claude, das `bin`-Verzeichnis dieser Version, wie `/opt/node20/bin`, zu `PATH` voranstellen.

335 

336Toolchains außerhalb dieser Liste, wie das .NET SDK, sind nicht vorinstalliert, auch wenn ihre Paketregistrierungen auf der [Standard-Whitelist](#default-allowed-domains) sind. Installieren Sie sie mit einem [Setup-Skript](#setup-scripts).

337 

338<h3 id="work-with-github-issues-and-pull-requests">

339 Arbeiten Sie mit GitHub-Issues und Pull Requests

340</h3>

341 

342Cloud-Sitzungen enthalten integrierte GitHub-Tools, die Claude Issues lesen, Pull Requests auflisten, Diffs abrufen und Kommentare posten lassen, ohne Setup. Diese Tools authentifizieren sich über den [GitHub-Proxy](#github-proxy) mit der Methode, die Sie unter [GitHub-Authentifizierungsoptionen](/docs/de/claude-code-on-the-web#github-authentication-options) konfiguriert haben, daher betritt Ihr Token niemals den Container.

343 

344Sie können `GH_TOKEN` oder `GITHUB_TOKEN` selbst in [Umgebungseinstellungen](#set-environment-variables) setzen, oder beide ungesetzt lassen und den [GitHub-Proxy](#github-proxy) für Sie authentifizieren lassen:

345 

346* Wenn Sie einen Token setzen, wird er unverändert an den Container übergeben, daher verwenden Ihre Skripte und GitHub's [`gh` CLI](https://cli.github.com) ihn direkt.

347* Wenn Sie keinen setzen und der [GitHub-Proxy](#github-proxy) die Authentifizierung für Ihre Sitzung handhabt, lesen beide Variablen als die Platzhalter-Zeichenkette `proxy-injected` in den Befehlen, die Claude ausführt, und der Proxy ersetzt Ihre echten Anmeldedaten bei ausgehenden GitHub-Anfragen. `gh` funktioniert ohne einen Token von Ihnen, aber ein Skript, das `GITHUB_TOKEN` direkt liest, erhält den Platzhalter, nicht einen verwendbaren Token.

348 

349Ein Token, den Sie setzen, ist eine gewöhnliche Umgebungsvariable, daher kann jeder, der die Umgebung nutzt, ihn lesen; der Proxy-Pfad hält die Anmeldedaten aus der Umgebungskonfiguration und der Sitzungs-VM.

350 

351Um zu überprüfen, welcher Fall auf Ihre Sitzung zutrifft, bitten Sie Claude, `echo $GH_TOKEN` auszuführen.

352 

353GitHub's [`gh` CLI](https://cli.github.com) ist vorinstalliert. Wenn Sie einen `gh`-Befehl benötigen, den die integrierten Tools nicht abdecken, wie `gh release` oder `gh workflow run`, bitten Sie Claude, ihn auszuführen. `gh` liest `GH_TOKEN` automatisch, daher müssen Sie `gh auth login` nicht ausführen.

354 

355<h3 id="link-output-back-to-the-session">

356 Verknüpfen Sie die Ausgabe zurück zur Sitzung

357</h3>

358 

359Jede Cloud-Sitzung hat eine Transkript-URL auf claude.ai, und die Sitzung kann ihre eigene ID aus der Umgebungsvariable `CLAUDE_CODE_REMOTE_SESSION_ID` lesen. Verwenden Sie dies, um einen nachverfolgbaren Link in PR-Bodies, Commit-Nachrichten, Slack-Posts oder generierten Berichten zu platzieren, damit ein Reviewer den Lauf öffnen kann, der sie produziert hat.

360 

361Commits, die Claude in einer Cloud-Sitzung erstellt, enthalten einen `Claude-Session: <url>` Git-Trailer, und PR-Bodies enthalten die Sitzungs-URL auf ihrer eigenen Zeile. Dies erfordert v2.1.179 oder später. Um den Trailer und den PR-Body-Link zu weglassen, setzen Sie [`attribution.sessionUrl`](/docs/de/settings-reference#attribution-sessionurl) auf `false`. Die Einstellung erfordert v2.1.182 oder später.

362 

363Um den Sitzungs-Link in etwas anderem als einem Commit oder PR einzuschließen, wie eine Slack-Nachricht, die Claude postet, oder eine Berichtsdatei, die sie schreibt, lassen Sie Claude den folgenden Befehl ausführen und verwenden Sie seine Ausgabe. Der Befehl konvertiert das `cse_`-Präfix im Wert der Umgebungsvariable in das `session_`-Präfix, das die Transkript-URL erwartet:

364 

365```bash theme={null}

366echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"

367```

368 

369<h3 id="run-tests-start-services-and-add-packages">

370 Führen Sie Tests aus, starten Sie Services und fügen Sie Pakete hinzu

371</h3>

372 

373Sie erhalten keine Shell in die Sitzungs-VM. Claude führt jeden Befehl für Sie aus, daher formulieren Sie die Aufgaben in diesem Abschnitt als Anfragen in Ihrem Prompt.

374 

375<h4 id="run-tests">

376 Führen Sie Tests aus

377</h4>

378 

379Claude führt Tests als Teil der Arbeit an einer Aufgabe aus. Bitten Sie darum in Ihrem Prompt, wie „Beheben Sie die fehlgeschlagenen Tests in `tests/`" oder „Führen Sie pytest nach jeder Änderung aus." Test-Runner, die mit den [vorinstallierten Toolchains](#installed-tools) kommen, wie pytest und cargo test, funktionieren ohne zusätzliches Setup. Ein Runner, den Ihr Projekt als Abhängigkeit deklariert, wie jest, installiert sich mit Ihren Abhängigkeiten.

380 

381<h4 id="start-services">

382 Starten Sie Services

383</h4>

384 

385PostgreSQL und Redis sind vorinstalliert, aber nicht standardmäßig laufen. Bitten Sie Claude, diejenigen zu starten, die Sie benötigen; die Befehle, die es ausführt, sind:

386 

387```bash theme={null}

388service postgresql start

389```

390 

391```bash theme={null}

392service redis-server start

393```

394 

395Docker ist für die Ausführung von containerisierten Services verfügbar. Bitten Sie Claude, `docker compose up` auszuführen, um die Services Ihres Projekts zu starten. Der Netzwerkzugriff zum Abrufen von Images folgt der [Zugriffsstufe](#access-levels) Ihrer Umgebung, und die [Trusted-Standardeinstellungen](#default-allowed-domains) enthalten Docker Hub und andere gängige Registrierungen.

396 

397Wenn Ihre Images groß oder langsam zum Abrufen sind, fügen Sie `docker compose pull` oder `docker compose build` zu Ihrem [Setup-Skript](#setup-scripts) hinzu. Der [Umgebungs-Cache](#environment-caching) behält die abgerufenen Images, daher hat jede neue Sitzung sie auf der Festplatte. Der Cache speichert nur Dateien, keine laufenden Prozesse, daher startet Claude die Container immer noch jede Sitzung.

398 

399<h4 id="add-packages">

400 Fügen Sie Pakete hinzu

401</h4>

402 

403Um Pakete hinzuzufügen, die nicht vorinstalliert sind, verwenden Sie ein [Setup-Skript](#setup-scripts). Der [Umgebungs-Cache](#environment-caching) behält das, was das Skript installiert, daher sind Pakete, die Sie dort installieren, am Anfang jeder Sitzung verfügbar, ohne jedes Mal neu zu installieren. Sie können Claude auch bitten, Pakete mid-Sitzung zu installieren, aber diese Installationen werden nicht auf andere Sitzungen übertragen.

404 

405<h3 id="resource-limits">

406 Ressourcenlimits

407</h3>

408 

409Cloud-Sitzungen in von Anthropic gehosteten Umgebungen laufen mit ungefähren Ressourcen-Obergrenzen, die sich im Laufe der Zeit ändern können:

410 

411* 4 vCPUs

412* 16 GB RAM

413* 30 GB Festplatte

414 

415Die VM kann Aufgaben stoppen, die erheblich mehr Speicher benötigen, wie große Build-Jobs oder speicherintensive Tests. Für Workloads jenseits dieser Limits verwenden Sie [Remote Control](/docs/de/remote-control), um Claude Code auf Ihrer eigenen Hardware auszuführen, oder führen Sie Cloud-Sitzungen in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) auf Compute aus, die Ihre Organisation betreibt.

416 

417<h2 id="setup-scripts">

418 Setup-Skripte

419</h2>

420 

421Ein Setup-Skript ist ein Bash-Skript, das ausgeführt wird, wenn eine neue Cloud-Sitzung startet, bevor Claude Code startet. Verwenden Sie Setup-Skripte, um Abhängigkeiten zu installieren, Tools zu konfigurieren oder alles zu abrufen, das die Sitzung benötigt, das nicht vorinstalliert ist.

422 

423Skripte werden als Root auf Ubuntu 24.04 ausgeführt, daher funktionieren `apt install` und die meisten Sprach-Paketmanager.

424 

425Um ein Setup-Skript hinzuzufügen, öffnen Sie den Umgebungseinstellungs-Dialog und geben Sie Ihr Skript in das Feld **Setup script** ein.

426 

427Dieses Beispiel installiert [ShellCheck](https://www.shellcheck.net/), das nicht vorinstalliert ist.

428 

429```bash theme={null}

430#!/bin/bash

431apt update && apt install -y shellcheck

432```

433 

434<h3 id="script-requirements">

435 Skript-Anforderungen

436</h3>

437 

438Ein Setup-Skript hat drei Einschränkungen, um die herum zu schreiben:

439 

440* **Exit zero**: Wenn das Skript mit Non-Zero beendet wird, schlägt die Sitzung fehl zu starten. Hängen Sie `|| true` an nicht-kritische Befehle an, damit ein gelegentlicher Installationsfehler die Sitzung nicht blockiert.

441* **Beenden Sie innerhalb von fünf Minuten**: Halten Sie die Gesamtlaufzeit des Skripts unter ungefähr fünf Minuten, damit der [Umgebungs-Cache](#environment-caching) erstellt werden kann. Führen Sie unabhängige Installationen parallel mit `&` und `wait` aus, und verschieben Sie jeden einzelnen Download, der nicht passt, in einen [SessionStart Hook](#setup-scripts-vs-sessionstart-hooks), der ihn im Hintergrund startet.

442* **Netzwerkzugriff für Installationen**: Paket-Installationen müssen Registrierungen erreichen. Die Standard-**Trusted**-Stufe deckt [gängige Paketregistrierungen](#default-allowed-domains) ab, einschließlich npm, PyPI, RubyGems und crates.io; mit **None** Netzwerkzugriff schlagen Installationen fehl.

443 

444<h3 id="environment-caching">

445 Umgebungs-Caching

446</h3>

447 

448Das Setup-Skript wird das erste Mal ausgeführt, wenn Sie eine Sitzung in einer Umgebung starten. Nach Abschluss erstellt Anthropic einen Snapshot des Dateisystems und verwendet diesen Snapshot als Ausgangspunkt für spätere Sitzungen. Neue Sitzungen starten mit Ihren Abhängigkeiten, Tools und Docker-Images bereits auf der Festplatte und überspringen den Setup-Skript-Schritt. Dies hält den Start schnell, auch wenn das Skript große Toolchains installiert oder Container-Images abruft.

449 

450Der Cache ist ein Dateisystem-Snapshot, daher behält er, was das Setup-Skript auf die Festplatte schreibt, und verliert alles, das nur laufen war. Pakete, die Sie installieren, Docker-Images, die Sie abrufen, und Dateien, die Sie schreiben, werden alle übertragen. Eine Datenbank, die das Skript gestartet hat, ein `docker compose up`-Stack oder ein anderer Hintergrund-Prozess nicht; starten Sie diese pro Sitzung, indem Sie Claude bitten oder mit einem [SessionStart Hook](#setup-scripts-vs-sessionstart-hooks).

451 

452Das Setup-Skript wird erneut ausgeführt, um den Cache neu zu erstellen, wenn Sie das Setup-Skript oder die zulässigen Netzwerk-Hosts der Umgebung ändern, und wenn der Cache seine Ablaufzeit nach ungefähr sieben Tagen erreicht. Das Fortsetzen einer vorhandenen Sitzung führt das Setup-Skript niemals erneut aus.

453 

454Sie müssen Caching nicht aktivieren oder Snapshots selbst verwalten.

455 

456<h3 id="setup-scripts-vs-sessionstart-hooks">

457 Setup-Skripte vs. SessionStart Hooks

458</h3>

459 

460Verwenden Sie ein Setup-Skript, um die VM selbst bereitzustellen: Toolchains und CLI-Tools, die nicht [vorinstalliert](#installed-tools) sind. Verwenden Sie einen [SessionStart Hook](/docs/de/hooks#sessionstart) für Projekt-Setup, das überall laufen sollte, Cloud und lokal, wie `npm install`.

461 

462Setup-Skripte und SessionStart Hooks werden in einer festen Reihenfolge ausgeführt, wenn eine Cloud-Sitzung startet. Die Tabelle vergleicht, wo Sie sie konfigurieren, wann sie ausgeführt werden, und wo sie ausgeführt werden.

463 

464| | Setup-Skripte | SessionStart Hooks |

465| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

466| **Wo Sie sie konfigurieren** | Der Umgebungs-Dialog auf [claude.ai/code](https://claude.ai/code), plus die Seite **Cloud environments** für [gemeinsame Umgebungen](#organization-shared-environments) | Eine [Einstellungsdatei](/docs/de/settings#where-settings-live) wie die `.claude/settings.json` Ihres Repos; siehe [Was wird von Ihrem Setup übernommen](#what-carries-over-from-your-setup) für welche Dateien eine Cloud-Sitzung erreichen |

467| **Wann sie ausgeführt werden** | Bevor Claude Code startet, übersprungen wenn eine [gecachte Umgebung](#environment-caching) existiert | Nach Claude Code startet, auf jeder Sitzung einschließlich fortgesetzt |

468| **Wo sie ausgeführt werden** | Cloud-Sitzungen nur | Lokale und Cloud-Sitzungen |

469 

470Wenn Sie SessionStart Hooks in Ihrer Benutzer-Level `~/.claude/settings.json` haben, erwarten Sie sie nicht in der Cloud: Benutzer-Level-Einstellungen bleiben auf Ihrem Computer. Welche anderen Hooks ausgeführt werden, hängt davon ab, wo die Sitzung läuft:

471 

472* **Von Anthropic gehostete Umgebung**: Claude Code führt Hooks aus dem Repository und aus den [Server-verwalteten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation aus.

473* **[Selbstgehostete Umgebung](/docs/de/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code führt auch die Hooks aus, die der Operator aus dem `~/.claude/` des Runner-Hosts seeded hat, und die Hooks in der verwalteten Einstellungsdatei des Runner-Images, wenn diese Datei eine der [verwalteten Quellen ist, die Claude Code anwendet](/docs/de/managed-settings#how-claude-code-combines-managed-sources).

474 

475<h3 id="install-dependencies-with-a-sessionstart-hook">

476 Installieren Sie Abhängigkeiten mit einem SessionStart Hook

477</h3>

478 

479Um Abhängigkeiten nur in Cloud-Sitzungen zu installieren, kombinieren Sie einen SessionStart Hook mit einem Skript, das überprüft, wo es läuft.

480 

481Fügen Sie zunächst einen SessionStart Hook zur `.claude/settings.json` Ihres Repos hinzu. Diese Konfiguration teilt Claude Code mit, `scripts/install_pkgs.sh` aus Ihrem Repository auszuführen, wenn eine Sitzung startet oder fortgesetzt wird:

482 

483```json theme={null}

484{

485 "hooks": {

486 "SessionStart": [

487 {

488 "matcher": "startup|resume",

489 "hooks": [

490 {

491 "type": "command",

492 "command": "bash \"$CLAUDE_PROJECT_DIR\"/scripts/install_pkgs.sh"

493 }

494 ]

495 }

496 ]

497 }

498}

499```

500 

501Der `matcher` begrenzt den Hook auf die `startup`- und `resume`-Events, und `$CLAUDE_PROJECT_DIR` wird zum Repository-Root aufgelöst, daher findet der Hook das Skript unabhängig vom Arbeitsverzeichnis der Sitzung.

502 

503Erstellen Sie als Nächstes das Skript unter `scripts/install_pkgs.sh`. Es beendet sich sofort außerhalb der Cloud, dann installiert Ihre Abhängigkeiten:

504 

505```bash theme={null}

506#!/bin/bash

507 

508if [ "$CLAUDE_CODE_REMOTE" != "true" ]; then

509 exit 0

510fi

511 

512npm install

513pip install -r requirements.txt

514exit 0

515```

516 

517Die `CLAUDE_CODE_REMOTE`-Überprüfung ist das, was die Installation auf Cloud-Sitzungen begrenzt: Die Umgebung der Sitzungs-VM trägt diese Variable als `true`, sie ist niemals `true` lokal, daher beendet sich das Skript auf Ihrem Laptop, bevor es etwas installiert.

518 

519Zusammen geben die beiden Dateien jeder Cloud-Sitzung einen frischen `npm install` und `pip install` beim Start, während lokale Sitzungen unberührt bleiben.

520 

521<h4 id="limitations-in-cloud-sessions">

522 Einschränkungen in Cloud-Sitzungen

523</h4>

524 

525SessionStart Hooks verhalten sich in der Cloud gleich wie lokal, mit diesen Vorbehalten:

526 

527* **Keine Cloud-only-Scoping**: Hooks werden in lokalen und Cloud-Sitzungen ausgeführt. Um lokale Ausführung zu überspringen, überprüfen Sie die Umgebungsvariable `CLAUDE_CODE_REMOTE`, wie oben gezeigt.

528* **Erfordert Netzwerkzugriff**: Installationsbefehle müssen Paketregistrierungen erreichen. Wenn Ihre Umgebung **None** Netzwerkzugriff nutzt, schlagen diese Hooks fehl. Die [Standard-Whitelist](#default-allowed-domains) unter **Trusted** deckt npm, PyPI, RubyGems und crates.io ab.

529* **Proxy-Kompatibilität**: In von Anthropic gehosteten Umgebungen verläuft der gesamte ausgehende Verkehr durch einen [Sicherheits-Proxy](#security-proxy), und einige Paketmanager funktionieren nicht korrekt damit; Bun ist ein bekanntes Beispiel. In einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments-deploy#default-deny-egress) verläuft ausgehender Verkehr stattdessen durch Ihre eigene Netzwerk-Grenze.

530* **Fügt Startup-Latenz hinzu**: Hooks werden jedes Mal ausgeführt, wenn eine Sitzung startet oder fortgesetzt wird, anders als Setup-Skripte, die vom [Umgebungs-Caching](#environment-caching) profitieren. Halten Sie Installationsskripte schnell, indem Sie überprüfen, ob Abhängigkeiten bereits vorhanden sind, bevor Sie neu installieren.

531 

532Um das Basis-Image anzupassen, verwenden Sie ein Setup-Skript, um zu installieren, was Sie auf dem [bereitgestellten Image](#installed-tools) benötigen, oder führen Sie Ihr eigenes Image als Container neben Claude mit `docker compose` aus. Das vollständige Ersetzen des Basis-Images wird noch nicht unterstützt.

533 

534<h2 id="default-allowed-domains">

535 Standard-zulässige Domänen

536</h2>

537 

538Mit **Trusted**-Netzwerkzugriff können Sitzungen standardmäßig die folgenden Domänen erreichen. Domänen, die mit `*` gekennzeichnet sind, zeigen Wildcard-Subdomain-Matching an, daher erlaubt `*.gcr.io` jede Subdomain von `gcr.io`.

539 

540<AccordionGroup>

541 <Accordion title="Anthropic-Services">

542 * api.anthropic.com

543 * statsig.anthropic.com

544 * docs.claude.com

545 * platform.claude.com

546 * code.claude.com

547 * claude.ai

548 </Accordion>

549 

550 <Accordion title="Versionskontrolle">

551 * github.com

552 * [www.github.com](http://www.github.com)

553 * api.github.com

554 * npm.pkg.github.com

555 * raw\.githubusercontent.com

556 * pkg-npm.githubusercontent.com

557 * objects.githubusercontent.com

558 * release-assets.githubusercontent.com

559 * codeload.github.com

560 * avatars.githubusercontent.com

561 * camo.githubusercontent.com

562 * gist.github.com

563 * gitlab.com

564 * [www.gitlab.com](http://www.gitlab.com)

565 * registry.gitlab.com

566 * bitbucket.org

567 * [www.bitbucket.org](http://www.bitbucket.org)

568 * api.bitbucket.org

569 </Accordion>

570 

571 <Accordion title="Container-Registrierungen">

572 * registry-1.docker.io

573 * auth.docker.io

574 * index.docker.io

575 * hub.docker.com

576 * [www.docker.com](http://www.docker.com)

577 * production.cloudflare.docker.com

578 * download.docker.com

579 * gcr.io

580 * \*.gcr.io

581 * ghcr.io

582 * mcr.microsoft.com

583 * \*.data.mcr.microsoft.com

584 * public.ecr.aws

585 </Accordion>

586 

587 <Accordion title="Cloud-Plattformen">

588 * cloud.google.com

589 * accounts.google.com

590 * gcloud.google.com

591 * \*.googleapis.com

592 * storage.googleapis.com

593 * compute.googleapis.com

594 * container.googleapis.com

595 * azure.com

596 * portal.azure.com

597 * microsoft.com

598 * [www.microsoft.com](http://www.microsoft.com)

599 * \*.microsoftonline.com

600 * packages.microsoft.com

601 * dotnet.microsoft.com

602 * dot.net

603 * visualstudio.com

604 * dev.azure.com

605 * \*.amazonaws.com

606 * \*.api.aws

607 * oracle.com

608 * [www.oracle.com](http://www.oracle.com)

609 * java.com

610 * [www.java.com](http://www.java.com)

611 * java.net

612 * [www.java.net](http://www.java.net)

613 * download.oracle.com

614 * yum.oracle.com

615 </Accordion>

616 

617 <Accordion title="JavaScript und Node Paketmanager">

618 * registry.npmjs.org

619 * [www.npmjs.com](http://www.npmjs.com)

620 * [www.npmjs.org](http://www.npmjs.org)

621 * npmjs.com

622 * npmjs.org

623 * yarnpkg.com

624 * registry.yarnpkg.com

625 </Accordion>

626 

627 <Accordion title="Python Paketmanager">

628 * pypi.org

629 * [www.pypi.org](http://www.pypi.org)

630 * files.pythonhosted.org

631 * pythonhosted.org

632 * test.pypi.org

633 * pypi.python.org

634 * pypa.io

635 * [www.pypa.io](http://www.pypa.io)

636 </Accordion>

637 

638 <Accordion title="Ruby Paketmanager">

639 * rubygems.org

640 * [www.rubygems.org](http://www.rubygems.org)

641 * api.rubygems.org

642 * index.rubygems.org

643 * ruby-lang.org

644 * [www.ruby-lang.org](http://www.ruby-lang.org)

645 * rubyforge.org

646 * [www.rubyforge.org](http://www.rubyforge.org)

647 * rubyonrails.org

648 * [www.rubyonrails.org](http://www.rubyonrails.org)

649 * rvm.io

650 * get.rvm.io

651 </Accordion>

652 

653 <Accordion title="Rust Paketmanager">

654 * crates.io

655 * [www.crates.io](http://www.crates.io)

656 * index.crates.io

657 * static.crates.io

658 * rustup.rs

659 * static.rust-lang.org

660 * [www.rust-lang.org](http://www.rust-lang.org)

661 </Accordion>

662 

663 <Accordion title="Go Paketmanager">

664 * proxy.golang.org

665 * sum.golang.org

666 * index.golang.org

667 * golang.org

668 * [www.golang.org](http://www.golang.org)

669 * goproxy.io

670 * pkg.go.dev

671 </Accordion>

672 

673 <Accordion title="JVM Paketmanager">

674 * maven.org

675 * repo.maven.org

676 * central.maven.org

677 * repo1.maven.org

678 * repo.maven.apache.org

679 * jcenter.bintray.com

680 * gradle.org

681 * [www.gradle.org](http://www.gradle.org)

682 * services.gradle.org

683 * plugins.gradle.org

684 * kotlinlang.org

685 * [www.kotlinlang.org](http://www.kotlinlang.org)

686 * spring.io

687 * repo.spring.io

688 </Accordion>

689 

690 <Accordion title="Andere Paketmanager">

691 * packagist.org (PHP Composer)

692 * [www.packagist.org](http://www.packagist.org)

693 * repo.packagist.org

694 * nuget.org (.NET NuGet)

695 * [www.nuget.org](http://www.nuget.org)

696 * api.nuget.org

697 * pub.dev (Dart/Flutter)

698 * api.pub.dev

699 * hex.pm (Elixir/Erlang)

700 * [www.hex.pm](http://www.hex.pm)

701 * cpan.org (Perl CPAN)

702 * [www.cpan.org](http://www.cpan.org)

703 * metacpan.org

704 * [www.metacpan.org](http://www.metacpan.org)

705 * api.metacpan.org

706 * cocoapods.org (iOS/macOS)

707 * [www.cocoapods.org](http://www.cocoapods.org)

708 * cdn.cocoapods.org

709 * haskell.org

710 * [www.haskell.org](http://www.haskell.org)

711 * hackage.haskell.org

712 * swift.org

713 * [www.swift.org](http://www.swift.org)

714 </Accordion>

715 

716 <Accordion title="Linux-Distributionen">

717 * archive.ubuntu.com

718 * security.ubuntu.com

719 * ubuntu.com

720 * [www.ubuntu.com](http://www.ubuntu.com)

721 * \*.ubuntu.com

722 * ppa.launchpad.net

723 * launchpad.net

724 * [www.launchpad.net](http://www.launchpad.net)

725 * \*.nixos.org

726 </Accordion>

727 

728 <Accordion title="Entwicklungstools und Plattformen">

729 * dl.k8s.io (Kubernetes)

730 * pkgs.k8s.io

731 * k8s.io

732 * [www.k8s.io](http://www.k8s.io)

733 * releases.hashicorp.com (HashiCorp)

734 * apt.releases.hashicorp.com

735 * rpm.releases.hashicorp.com

736 * archive.releases.hashicorp.com

737 * hashicorp.com

738 * [www.hashicorp.com](http://www.hashicorp.com)

739 * repo.anaconda.com (Anaconda/Conda)

740 * conda.anaconda.org

741 * anaconda.org

742 * [www.anaconda.com](http://www.anaconda.com)

743 * anaconda.com

744 * continuum.io

745 * apache.org (Apache)

746 * [www.apache.org](http://www.apache.org)

747 * archive.apache.org

748 * downloads.apache.org

749 * eclipse.org (Eclipse)

750 * [www.eclipse.org](http://www.eclipse.org)

751 * download.eclipse.org

752 * nodejs.org (Node.js)

753 * [www.nodejs.org](http://www.nodejs.org)

754 * developer.apple.com

755 * developer.android.com

756 * pkg.stainless.com

757 * binaries.prisma.sh

758 </Accordion>

759 

760 <Accordion title="Cloud-Services und Monitoring">

761 * statsig.com

762 * [www.statsig.com](http://www.statsig.com)

763 * api.statsig.com

764 * sentry.io

765 * \*.sentry.io

766 * downloads.sentry-cdn.com

767 * http-intake.logs.datadoghq.com

768 * browser-intake-us5-datadoghq.com

769 * \*.datadoghq.com

770 * \*.datadoghq.eu

771 * api.honeycomb.io

772 </Accordion>

773 

774 <Accordion title="Content Delivery und Mirrors">

775 * sourceforge.net

776 * \*.sourceforge.net

777 * packagecloud.io

778 * \*.packagecloud.io

779 * fonts.googleapis.com

780 * fonts.gstatic.com

781 </Accordion>

782 

783 <Accordion title="Schema und Konfiguration">

784 * json-schema.org

785 * [www.json-schema.org](http://www.json-schema.org)

786 * json.schemastore.org

787 * [www.schemastore.org](http://www.schemastore.org)

788 </Accordion>

789 

790 <Accordion title="Model Context Protocol">

791 * \*.modelcontextprotocol.io

792 </Accordion>

793</AccordionGroup>

794 

795<h2 id="related-resources">

796 Verwandte Ressourcen

797</h2>

798 

799* [Claude Code im Web](/docs/de/claude-code-on-the-web): Starten, verwalten und teilen Sie Cloud-Sitzungen

800* [Web-Schnellstart](/docs/de/web-quickstart): Verbinden Sie GitHub und starten Sie Ihre erste Cloud-Sitzung

801* [Claude Tag](https://claude.com/docs/claude-tag/overview): Sitzungen, die Claude aus Slack startet, werden in den gleichen Umgebungen ausgeführt

802* [Routinen](/docs/de/routines): Geplante Läufe verwenden die gleichen Umgebungen und Netzwerkzugriffsstufen

803* [Remote Control](/docs/de/remote-control): Führen Sie Sitzungen auf dem Netzwerk und den Dateien Ihres eigenen Computers aus

804* [Selbstgehostete Umgebungen](/docs/de/self-hosted-environments): Führen Sie Cloud-Sitzungen auf der eigenen Infrastruktur Ihrer Organisation aus

805* [SessionStart Hooks](/docs/de/hooks#sessionstart): Repo-committed Setup, das in lokalen und Cloud-Sitzungen ausgeführt wird

806* [Server-verwaltete Einstellungen](/docs/de/server-managed-settings): Organisations-Richtlinie, die Cloud-Sitzungen erreicht

code-review.md +5 −1

Details

342 Sie können auch Flags hinzufügen:342 Sie können auch Flags hinzufügen:

343 343 

344 * `--fix`: wendet die Erkenntnisse auf Ihren Arbeitsbaum an, nachdem die Überprüfung abgeschlossen ist344 * `--fix`: wendet die Erkenntnisse auf Ihren Arbeitsbaum an, nachdem die Überprüfung abgeschlossen ist

345 * `--comment`: veröffentlicht die Erkenntnisse als Inline-PR-Kommentare345 * `--comment`: veröffentlicht die Erkenntnisse als Inline-Kommentare auf einem GitHub Pull Request oder auf einer GitLab Merge Request als einzelne Notiz

346 * `--post`: bei einer `ultra` Cloud-Überprüfung eines `github.com` Pull Request wählt es das Veröffentlichen der abgeschlossenen Erkenntnisse zum PR im Startdialog vor; siehe [Erkenntnisse zum Pull Request veröffentlichen](/docs/de/ultrareview#post-findings-to-the-pull-request). Erfordert Claude Code v2.1.227 oder später346 * `--post`: bei einer `ultra` Cloud-Überprüfung eines `github.com` Pull Request wählt es das Veröffentlichen der abgeschlossenen Erkenntnisse zum PR im Startdialog vor; siehe [Erkenntnisse zum Pull Request veröffentlichen](/docs/de/ultrareview#post-findings-to-the-pull-request). Erfordert Claude Code v2.1.227 oder später

347 

348 Wenn Sie `--comment` für eine GitLab Merge Request übergeben, veröffentlicht Claude Code die Erkenntnisse über GitLabs `glab` CLI. Erfordert Claude Code v2.1.257 oder später. Wenn `glab` nicht installiert ist, druckt Claude die Erkenntnisse stattdessen im Terminal.

349 

350 Übergeben Sie die Merge Request als ihre URL oder eine `!123` Referenz. Claude Code behandelt eine bloße Nummer oder einen Branch-Namen als Merge Request nur, wenn der Checkout-Ursprung auf `gitlab.com` liegt. Auf einer selbstverwalteten GitLab-Instanz übergeben Sie die URL oder das `!123` Format.

347 </Step>351 </Step>

348 352 

349 <Step title="Arbeiten Sie weiter">353 <Step title="Arbeiten Sie weiter">

commands.md +9 −9

Details

52</Note>52</Note>

53 53 

54| Befehl | Zweck |54| Befehl | Zweck |

55| :-------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |55| :----------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

56| `/add-dir <path>` | Fügen Sie ein Arbeitsverzeichnis für den Dateizugriff während der aktuellen Sitzung hinzu. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) aus dem hinzugefügten Verzeichnis. Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path) nicht hinzufügen, wie z. B. `\\server\share`. Nach einem erfolgreichen Hinzufügen werden Ihre [`DirectoryAdded`-Hooks](/docs/de/hooks#directoryadded) ausgeführt. Wenn Sie ihn ausführen, während Claude antwortet, fordert Claude Code Sie auf, das Verzeichnis sofort zu bestätigen, und sobald Sie bestätigen, kann Claudes nächster Tool-Aufruf in derselben Runde darauf zugreifen. Vor v2.1.234 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war |56| `/add-dir <path>` | Fügen Sie ein Arbeitsverzeichnis für den Dateizugriff während der aktuellen Sitzung hinzu. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) aus dem hinzugefügten Verzeichnis. Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path) nicht hinzufügen, wie z. B. `\\server\share`. Nach einem erfolgreichen Hinzufügen werden Ihre [`DirectoryAdded`-Hooks](/docs/de/hooks#directoryadded) ausgeführt. Wenn Sie ihn ausführen, während Claude antwortet, fordert Claude Code Sie auf, das Verzeichnis sofort zu bestätigen, und sobald Sie bestätigen, kann Claudes nächster Tool-Aufruf in derselben Runde darauf zugreifen. Vor v2.1.234 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war |

57| `/advisor [model\|off]` | Aktivieren oder deaktivieren Sie das [Advisor-Tool](/docs/de/advisor), das ein zweites Modell zu Schlüsselmomenten während einer Aufgabe konsultiert. Akzeptiert `fable`, `opus`, `sonnet` oder eine vollständige Modell-ID. `fable` erfordert [Fable-Zugriff](/docs/de/advisor#choose-an-advisor-model). Ohne Argument öffnet sich eine Auswahl |57| `/advisor [model\|off]` | Aktivieren oder deaktivieren Sie das [Advisor-Tool](/docs/de/advisor), das ein zweites Modell zu Schlüsselmomenten während einer Aufgabe konsultiert. Akzeptiert `fable`, `opus`, `sonnet` oder eine vollständige Modell-ID. `fable` erfordert [Fable-Zugriff](/docs/de/advisor#choose-an-advisor-model). Ohne Argument öffnet sich eine Auswahl. In einer Sitzung ohne interaktives Terminal oder über [Remote Control](/docs/de/remote-control#limitations) übergeben Sie das Modell oder `off` als Argument; ohne Argument dort druckt der Befehl den aktuellen Advisor als Text. Diese Formen erfordern Claude Code v2.1.260 oder später |

58| `/agents` | Ab v2.1.198 druckt das Ausführen von `/agents` eine Erinnerung aus, Claude zu bitten, [Subagenten](/docs/de/sub-agents) zu erstellen oder zu verwalten, oder `.claude/agents/` oder `~/.claude/agents/` direkt zu bearbeiten. In v2.1.197 und früher öffnet sich eine interaktive Schnittstelle zum Erstellen und Verwalten von Subagenten-Konfigurationen |58| `/agents` | Ab v2.1.198 druckt das Ausführen von `/agents` eine Erinnerung aus, Claude zu bitten, [Subagenten](/docs/de/sub-agents) zu erstellen oder zu verwalten, oder `.claude/agents/` oder `~/.claude/agents/` direkt zu bearbeiten. In v2.1.197 und früher öffnet sich eine interaktive Schnittstelle zum Erstellen und Verwalten von Subagenten-Konfigurationen |

59| `/artifacts` | Listet die [Artefakte](/docs/de/artifacts#find-an-artifact-again) auf, die Sie besitzen oder die mit Ihnen geteilt werden, und fügen Sie dann eines an die Sitzung an, öffnen Sie es in Ihrem Browser oder kopieren Sie seinen Link. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind. Erfordert Claude Code v2.1.208 oder später; das Anhängen mit `Enter` erfordert v2.1.216 |59| `/artifacts` | Listet die [Artefakte](/docs/de/artifacts#find-an-artifact-again) auf, die Sie besitzen oder die mit Ihnen geteilt werden, und fügen Sie dann eines an die Sitzung an, öffnen Sie es in Ihrem Browser oder kopieren Sie seinen Link. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind. Erfordert Claude Code v2.1.208 oder später; das Anhängen mit `Enter` erfordert v2.1.216 |

60| `/auto-mode-setup` | [Entwurf `autoMode.environment`-Einträge](/docs/de/auto-mode-config#generate-environment-entries) aus Ihrem Projekt und kürzlichen Sitzungen, überprüfen Sie dann den Entwurf und speichern Sie ihn in Ihren Benutzereinstellungen. Erfordert einen Pro-, Max- oder Team-Plan und Claude Code v2.1.228 oder später. Unter nativem Windows erfordert v2.1.233 oder später |60| `/auto-mode-setup` | [Entwurf `autoMode.environment`-Einträge](/docs/de/auto-mode-config#generate-environment-entries) aus Ihrem Projekt und kürzlichen Sitzungen, überprüfen Sie dann den Entwurf und speichern Sie ihn in Ihren Benutzereinstellungen. Erfordert einen Pro-, Max- oder Team-Plan und Claude Code v2.1.228 oder später. Unter nativem Windows erfordert v2.1.233 oder später |


67| `/bug [report]` | Melden Sie einen Fehler oder teilen Sie Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einzubeziehen ist, und bestätigen auf einem Zustimmungsbildschirm, bevor etwas gesendet wird. Wenn Sie bei Anthropic auf einer First-Party-Verbindung angemeldet sind, geht der Bericht an Anthropic; bei einem Drittanbieter oder ohne Anthropic-Anmeldedaten schreibt Claude Code den Bericht in ein [lokales Archiv unter `~/.claude/feedback-bundles/`](/docs/de/data-usage#telemetry-services), das Sie selbst weiterleiten. In der [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) öffnet `/bug` stattdessen den eigenen Feedback-Dialog der Erweiterung; erfordert Claude Code v2.1.229 oder später. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort. Vor v2.1.232 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |67| `/bug [report]` | Melden Sie einen Fehler oder teilen Sie Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einzubeziehen ist, und bestätigen auf einem Zustimmungsbildschirm, bevor etwas gesendet wird. Wenn Sie bei Anthropic auf einer First-Party-Verbindung angemeldet sind, geht der Bericht an Anthropic; bei einem Drittanbieter oder ohne Anthropic-Anmeldedaten schreibt Claude Code den Bericht in ein [lokales Archiv unter `~/.claude/feedback-bundles/`](/docs/de/data-usage#telemetry-services), das Sie selbst weiterleiten. In der [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) öffnet `/bug` stattdessen den eigenen Feedback-Dialog der Erweiterung; erfordert Claude Code v2.1.229 oder später. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort. Vor v2.1.232 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |

68| `/cd <path>` | Verschieben Sie diese Sitzung in ein neues Arbeitsverzeichnis und behalten Sie die Konversation. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die Vorschläge erfordern Claude Code v2.1.206 oder später. Für das, was Claude Code aus dem neuen Verzeichnis sofort anwendet, wenn Sie sich verschieben, und wie sich `/cd` von `/add-dir` unterscheidet, siehe [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |68| `/cd <path>` | Verschieben Sie diese Sitzung in ein neues Arbeitsverzeichnis und behalten Sie die Konversation. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die Vorschläge erfordern Claude Code v2.1.206 oder später. Für das, was Claude Code aus dem neuen Verzeichnis sofort anwendet, wenn Sie sich verschieben, und wie sich `/cd` von `/add-dir` unterscheidet, siehe [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Konfigurieren Sie [Claude in Chrome](/docs/de/chrome)-Einstellungen |69| `/chrome` | Konfigurieren Sie [Claude in Chrome](/docs/de/chrome)-Einstellungen |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize]` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie [Claude API](https://platform.claude.com/docs/en/api/overview)- und [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview)-Referenzmaterial für die Sprache Ihres Projekts. Wird auch automatisch aktiviert, wenn Ihr Code `anthropic` oder `@anthropic-ai/sdk` importiert. Führen Sie `migrate` aus, um vorhandenen Claude API-Code auf ein neueres Modell zu aktualisieren. Führen Sie `upgrade` aus, um die Anthropic SDK-Abhängigkeit Ihres Projekts über eine Hauptversion zu verschieben, derzeit das Python-Paket `anthropic` von 0.x zu 1.x. Führen Sie `managed-agents-onboard` für eine Anleitung aus, die einen neuen Managed Agent erstellt. Führen Sie `prompt-audit` aus, um Anweisungen zu kennzeichnen, die für ältere Modelle in Ihren Prompts, Skills und Tool-Beschreibungen geschrieben wurden, und schlagen Sie Fixes als Diff vor. Führen Sie `cost-optimize` aus, um zu profilieren, wohin die Claude API-Ausgaben Ihres Projekts gehen, und schlagen Sie Einsparungen aus Optionen wie Prompt-Caching, Trimmen unnötiger Input- und Output-Token, Batch-Verarbeitung, Aufwand und Modellwahl vor, eine Änderung nach der anderen. Der Subbefehl `prompt-audit` erfordert Claude Code v2.1.221 oder später, `upgrade` erfordert v2.1.236 oder später, und `cost-optimize` erfordert v2.1.247 oder später |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie [Claude API](https://platform.claude.com/docs/en/api/overview)- und [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview)-Referenzmaterial für die Sprache Ihres Projekts. Wird auch automatisch aktiviert, wenn Ihr Code `anthropic` oder `@anthropic-ai/sdk` importiert. Führen Sie `migrate` aus, um vorhandenen Claude API-Code auf ein neueres Modell zu aktualisieren. Führen Sie `upgrade` aus, um die Anthropic SDK-Abhängigkeit Ihres Projekts über eine Hauptversion zu verschieben, derzeit das Python-Paket `anthropic` von 0.x zu 1.x. Führen Sie `managed-agents-onboard` für eine Anleitung aus, die einen neuen Managed Agent erstellt. Führen Sie `prompt-audit` aus, um Anweisungen zu kennzeichnen, die für ältere Modelle in Ihren Prompts, Skills und Tool-Beschreibungen geschrieben wurden, und schlagen Sie Fixes als Diff vor. Führen Sie `cost-optimize` aus, um zu profilieren, wohin die Claude API-Ausgaben Ihres Projekts gehen, und schlagen Sie Einsparungen aus Optionen wie Prompt-Caching, Trimmen unnötiger Input- und Output-Token, Batch-Verarbeitung, Aufwand und Modellwahl vor, eine Änderung nach der anderen. Führen Sie `build-eval` aus, um einen Eval-Satz für Ihre Claude-gestützte App zu erstellen, und `hillclimb`, um die App iterativ gegen einen vorhandenen Eval zu verbessern. Der Subbefehl `prompt-audit` erfordert Claude Code v2.1.221 oder später, `upgrade` erfordert v2.1.236 oder später, `cost-optimize` erfordert v2.1.247 oder später, und `build-eval` und `hillclimb` erfordern v2.1.259 oder später |

71| `/clear [name]` | Starten Sie eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume`-Auswahl zu kennzeichnen. Um Kontext freizugeben und gleichzeitig die gleiche Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort, oder stellen Sie sie in demselben Claude Code-Prozess wieder her, aus [dem Rewind-Menü-Eintrag der vorherigen Sitzung](/docs/de/checkpointing#rewind-past-a-cleared-conversation). Der Rewind-Eintrag erfordert Claude Code v2.1.191 oder später. Aliase: `/reset`, `/new` |71| `/clear [name]` | Starten Sie eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume`-Auswahl zu kennzeichnen. Um Kontext freizugeben und gleichzeitig die gleiche Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort, oder stellen Sie sie in demselben Claude Code-Prozess wieder her, aus [dem Rewind-Menü-Eintrag der vorherigen Sitzung](/docs/de/checkpointing#rewind-past-a-cleared-conversation). Der Rewind-Eintrag erfordert Claude Code v2.1.191 oder später. Aliase: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, auf Korrektheitsfehler und Bereinigungsmöglichkeiten. Übergeben Sie `--fix`, um Erkenntnisse anzuwenden, `--comment`, um sie als Inline-GitHub-PR-Kommentare zu posten, oder `ultra`, um eine tiefe [Cloud-Überprüfung](/docs/de/ultrareview) auszuführen. Mit `ultra` auf einem `github.com`-PR-Ziel wählt `--post` das [Posten der fertigen Erkenntnisse zum PR](/docs/de/ultrareview#post-findings-to-the-pull-request) im Launch-Dialog vor. Siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die Aufwandsebenen, Zielbestimmung und wie es sich auf `/simplify` bezieht. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, auf Korrektheitsfehler und Bereinigungsmöglichkeiten. Übergeben Sie `--fix`, um Erkenntnisse anzuwenden, `--comment`, um sie auf dem GitHub PR oder GitLab Merge Request zu posten, oder `ultra`, um eine tiefe [Cloud-Überprüfung](/docs/de/ultrareview) auszuführen. Das Posten auf einem GitLab Merge Request erfordert Claude Code v2.1.257 oder später. Mit `ultra` auf einem `github.com`-PR-Ziel übergeben Sie `--post`, um [das Posten der fertigen Erkenntnisse zum PR](/docs/de/ultrareview#post-findings-to-the-pull-request) im Launch-Dialog vorzuwählen; `--post` erfordert Claude Code v2.1.227 oder später. Siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die Aufwandsebenen, Zielbestimmung und wie es sich auf `/simplify` bezieht. Alias: `/review` |

73| `/color [color\|default]` | Legen Sie die Farbe der Eingabeaufforderungsleiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default`, um zurückzusetzen, oder führen Sie ohne Argument aus, um eine zufällige Farbe zu wählen. Wenn [Remote Control](/docs/de/remote-control) verbunden ist, wird die Farbe mit claude.ai/code synchronisiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später |73| `/color [color\|default]` | Legen Sie die Farbe der Eingabeaufforderungsleiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default`, um zurückzusetzen, oder führen Sie ohne Argument aus, um eine zufällige Farbe zu wählen. Wenn [Remote Control](/docs/de/remote-control) verbunden ist, wird die Farbe mit claude.ai/code synchronisiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später |

74| `/compact [instructions]` | Geben Sie Kontext frei, indem Sie die bisherige Konversation zusammenfassen. Übergeben Sie optional Fokusanweisungen für die Zusammenfassung. Siehe [wie Komprimierung Regeln, Skills und Memory-Dateien handhabt](/docs/de/context-window#what-survives-compaction) |74| `/compact [instructions]` | Geben Sie Kontext frei, indem Sie die bisherige Konversation zusammenfassen. Übergeben Sie optional Fokusanweisungen für die Zusammenfassung. Siehe [wie Komprimierung Regeln, Skills und Memory-Dateien handhabt](/docs/de/context-window#what-survives-compaction) |

75| `/config [key=value ...]` | Öffnen Sie die [Einstellungen](/docs/de/settings)-Schnittstelle, um Design, Modell, [Ausgabestil](/docs/de/output-styles) und andere Voreinstellungen anzupassen. Ab v2.1.181 können Sie ein oder mehrere `key=value`-Paare übergeben, um eine Einstellung direkt festzulegen, ohne die Schnittstelle zu öffnen, z. B. `/config thinking=false`. Ab v2.1.182 werden auch benannte Kurzschlüssel akzeptiert, wie z. B. `/config theme=dark` oder `/config model=sonnet`. Das `key=value`-Formular funktioniert auch im nicht-interaktiven Modus (`-p`) und aus der Claude Mobile App über [Remote Control](/docs/de/remote-control). Das `key=value`-Formular kann eine Einstellung, die Ihre Bestätigung im Panel benötigt, nicht aktivieren, wie z. B. [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann sie aber deaktivieren. Führen Sie `/config --help` aus, um die Schlüssel aufzulisten, die es akzeptiert. Alias: `/settings` |75| `/config [key=value ...]` | Öffnen Sie die [Einstellungen](/docs/de/settings)-Schnittstelle, um Design, Modell, [Ausgabestil](/docs/de/output-styles) und andere Voreinstellungen anzupassen. Ab v2.1.181 können Sie ein oder mehrere `key=value`-Paare übergeben, um eine Einstellung direkt festzulegen, ohne die Schnittstelle zu öffnen, z. B. `/config thinking=false`. Ab v2.1.182 werden auch benannte Kurzschlüssel akzeptiert, wie z. B. `/config theme=dark` oder `/config model=sonnet`. Das `key=value`-Formular funktioniert auch im nicht-interaktiven Modus (`-p`) und aus der Claude Mobile App über [Remote Control](/docs/de/remote-control). Das `key=value`-Formular kann eine Einstellung, die Ihre Bestätigung im Panel benötigt, nicht aktivieren, wie z. B. [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann sie aber deaktivieren. Führen Sie `/config --help` aus, um die Schlüssel aufzulisten, die es akzeptiert. Alias: `/settings` |


81| `/deep-research <question>` | **[Workflow](/docs/de/workflows#bundled-workflows).** Verteilen Sie Web-Suchen zu einer Frage, rufen Sie Quellen ab und überprüfen Sie sie, und synthetisieren Sie einen zitierten Bericht |81| `/deep-research <question>` | **[Workflow](/docs/de/workflows#bundled-workflows).** Verteilen Sie Web-Suchen zu einer Frage, rufen Sie Quellen ab und überprüfen Sie sie, und synthetisieren Sie einen zitierten Bericht |

82| `/design [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Entwerfen Sie UI-Mockups, Screen-Flows, Landing Pages oder Poster als Artboards auf einer Leinwand, veröffentlicht als [Artefakt](/docs/de/artifacts#draft-a-design-canvas), das eine Forschungsvorschau von Claude Design's Editor ausführt, z. B. `/design a settings screen for a mobile banking app`. Wo das Speichern für Ihr Konto aktiviert ist, bearbeiten Sie die Artboards auf der Leinwand und speichern, um eine neue Version zu veröffentlichen; andernfalls sehen Sie den Entwurf und exportieren ihn als PNG oder PDF. Erfordert eine Sitzung, in der [Artefakte verfügbar](/docs/de/artifacts#availability) sind, und Claude Code v2.1.234 oder später. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |82| `/design [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Entwerfen Sie UI-Mockups, Screen-Flows, Landing Pages oder Poster als Artboards auf einer Leinwand, veröffentlicht als [Artefakt](/docs/de/artifacts#draft-a-design-canvas), das eine Forschungsvorschau von Claude Design's Editor ausführt, z. B. `/design a settings screen for a mobile banking app`. Wo das Speichern für Ihr Konto aktiviert ist, bearbeiten Sie die Artboards auf der Leinwand und speichern, um eine neue Version zu veröffentlichen; andernfalls sehen Sie den Entwurf und exportieren ihn als PNG oder PDF. Erfordert eine Sitzung, in der [Artefakte verfügbar](/docs/de/artifacts#availability) sind, und Claude Code v2.1.234 oder später. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |

83| `/design-login` | Autorisieren Sie Design-System-Zugriff für `/design-sync` mit Ihrem claude.ai-Konto |83| `/design-login` | Autorisieren Sie Design-System-Zugriff für `/design-sync` mit Ihrem claude.ai-Konto |

84| `/design-sync [hint]` | **[Skill](/docs/de/skills#bundled-skills).** Konvertieren Sie das React-Design-System Ihres Repos und laden Sie es zu [Claude Design](https://claude.ai/design) hoch, damit die Designs, die es produziert, Ihre echten Komponenten verwenden. Benennen Sie optional das Design-System, z. B. `/design-sync Acme DS`. Eine erste Synchronisierung überprüft jede Komponente und kann auf einem großen Repo mehrere Stunden dauern. Verfügbar auf der Anthropic API; auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS kann das zugrunde liegende Tool claude.ai nicht erreichen, daher ist der Befehl dort nicht verfügbar |84| `/design-sync [hint]` | **[Skill](/docs/de/skills#bundled-skills).** Konvertieren Sie das React-Design-System Ihres Repos und laden Sie es zu [Claude Design](https://claude.ai/design) hoch, damit die Designs, die es produziert, Ihre echten Komponenten verwenden. Benennen Sie optional das Design-System, z. B. `/design-sync Acme DS`. Eine erste Synchronisierung überprüft jede Komponente und kann auf einem großen Repo mehrere Stunden dauern. Verfügbar auf der Anthropic API. Es benötigt claude.ai, das die CLI nicht auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS kontaktiert, oder durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations), daher ist der Befehl dort nicht verfügbar |

85| `/desktop` | Setzen Sie die aktuelle Sitzung in der Claude Code Desktop-App fort. Erfordert macOS oder x64 Windows und ein Claude-Abonnement. Alias: `/app` |85| `/desktop` | Setzen Sie die aktuelle Sitzung in der Claude Code Desktop-App fort. Erfordert macOS oder x64 Windows und ein Claude-Abonnement. Alias: `/app` |

86| `/diff` | Überprüfen Sie die Änderungen in Ihrem Arbeitsbaum, einschließlich der Änderungen, die Claude bisher vorgenommen hat. Siehe [Änderungen mit /diff überprüfen](/docs/de/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | Überprüfen Sie die Änderungen in Ihrem Arbeitsbaum, einschließlich der Änderungen, die Claude bisher vorgenommen hat. Siehe [Änderungen mit /diff überprüfen](/docs/de/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor` | **[Skill](/docs/de/skills#bundled-skills).** Führen Sie eine Setup-Überprüfung aus, die Probleme diagnostiziert und beheben kann. Überprüft die Installationsintegrität, einschließlich doppelter oder verbleibender Installationen, `PATH`-Problemen und nicht analysierbaren Einstellungsdateien. Findet ungenutzte Skills, MCP-Server und Plugins im Vergleich zu ihren Kontextkosten, kennzeichnet langsame [Hooks](/docs/de/hooks) und überprüft auf eine neuere Version auf Ihrem [Release-Kanal](/docs/de/setup#configure-release-channel). Dedupliziert lokale `CLAUDE.md`-Dateien gegen eingecheckte, trimmt eingecheckte [`CLAUDE.md`](/docs/de/memory#my-claude-md-is-too-large)-Dateien, indem Inhalte gekürzt werden, die Claude aus der Codebasis ableiten könnte, und migriert die immer geladene Anleitung, die bleibt, in [Skills](/docs/de/skills) und verschachtelte `CLAUDE.md`-Dateien, die bei Bedarf geladen werden. Bietet auch an, [Auto-Modus](/docs/de/permissions#permission-modes) zu Ihrem Standard zu machen und häufig abgelehnte schreibgeschützte Befehle [vorab zu genehmigen](/docs/de/permissions). Meldet Erkenntnisse zuerst und fragt um Bestätigung, bevor etwas geändert wird. Vom Terminal aus druckt `claude doctor` schreibgeschützte Installationsdiagnostiken, ohne eine Sitzung zu starten. Alias: `/checkup`. Die `CLAUDE.md`-Trimm-Überprüfung erfordert Claude Code v2.1.206 oder später. Vor v2.1.205 öffnete `/doctor` einen schreibgeschützten Diagnose-Bildschirm und das Drücken von `f` sendete den Bericht an Claude |87| `/doctor` | **[Skill](/docs/de/skills#bundled-skills).** Führen Sie eine Setup-Überprüfung aus, die Probleme diagnostiziert und beheben kann. Überprüft die Installationsintegrität, einschließlich doppelter oder verbleibender Installationen, `PATH`-Problemen und nicht analysierbaren Einstellungsdateien. Findet ungenutzte Skills, MCP-Server und Plugins im Vergleich zu ihren Kontextkosten, kennzeichnet langsame [Hooks](/docs/de/hooks) und überprüft auf eine neuere Version auf Ihrem [Release-Kanal](/docs/de/setup#configure-release-channel). Dedupliziert lokale `CLAUDE.md`-Dateien gegen eingecheckte, trimmt eingecheckte [`CLAUDE.md`](/docs/de/memory#my-claude-md-is-too-large)-Dateien, indem Inhalte gekürzt werden, die Claude aus der Codebasis ableiten könnte, und migriert die immer geladene Anleitung, die bleibt, in [Skills](/docs/de/skills) und verschachtelte `CLAUDE.md`-Dateien, die bei Bedarf geladen werden. Bietet auch an, [Auto-Modus](/docs/de/permissions#permission-modes) zu Ihrem Standard zu machen und häufig abgelehnte schreibgeschützte Befehle [vorab zu genehmigen](/docs/de/permissions). Meldet Erkenntnisse zuerst und fragt um Bestätigung, bevor etwas geändert wird. Vom Terminal aus druckt `claude doctor` schreibgeschützte Installationsdiagnostiken, ohne eine Sitzung zu starten. Alias: `/checkup`. Die `CLAUDE.md`-Trimm-Überprüfung erfordert Claude Code v2.1.206 oder später. Vor v2.1.205 öffnete `/doctor` einen schreibgeschützten Diagnose-Bildschirm und das Drücken von `f` sendete den Bericht an Claude |


98| `/help` | Zeigen Sie Hilfe und verfügbare Befehle an |98| `/help` | Zeigen Sie Hilfe und verfügbare Befehle an |

99| `/hooks` | Sehen Sie sich [Hook](/docs/de/hooks)-Konfigurationen für Tool-Ereignisse an |99| `/hooks` | Sehen Sie sich [Hook](/docs/de/hooks)-Konfigurationen für Tool-Ereignisse an |

100| `/ide` | Verwalten Sie IDE-Integrationen und zeigen Sie den Status an |100| `/ide` | Verwalten Sie IDE-Integrationen und zeigen Sie den Status an |

101| `/import [codex\|gemini] [--dry-run] [--yes]` | Bringen Sie Konfiguration von anderen Coding-Agenten auf Ihrem Computer, derzeit OpenAI Codex und Google Gemini CLI, in Claude Code, einschließlich Anweisungsdateien, MCP-Server, Befehle, Subagenten und Skills. Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` listet `/import` auf, was es gefunden hat, und gibt Ihnen den Befehl, der den Import bestätigt. Fügen Sie `--dry-run` hinzu, um eine Vorschau ohne Schreiben anzuzeigen, oder `--yes`, um die interaktive Auswahl zu überspringen. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS. Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausschalten. Erfordert Claude Code v2.1.213 oder später |101| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Bringen Sie Konfiguration von OpenAI Codex, Google Gemini CLI oder Cursor auf Ihrem Computer in Claude Code, einschließlich Anweisungsdateien, MCP-Server, Befehle, Subagenten und Skills. Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` listet `/import` auf, was es gefunden hat, und gibt Ihnen den Befehl, der den Import bestätigt. Fügen Sie `--dry-run` hinzu, um eine Vorschau ohne Schreiben anzuzeigen, oder `--yes`, um die interaktive Auswahl zu überspringen. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS, oder durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations). Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausschalten. Erfordert Claude Code v2.1.213 oder später. Das Importieren von Cursor erfordert v2.1.265 oder später |

102| `/init` | Initialisieren Sie das Projekt mit einer `CLAUDE.md`-Anleitung. Legen Sie `CLAUDE_CODE_NEW_INIT=1` fest, um einen interaktiven Flow, der auch Skills, Hooks und persönliche Memory-Dateien durchläuft. Wenn `/init` Konfiguration von einem Coding-Agenten findet, den `/import` unterstützt, bietet es an, sie mit `/import` zu übertragen |102| `/init` | Initialisieren Sie das Projekt mit einer `CLAUDE.md`-Anleitung. Legen Sie `CLAUDE_CODE_NEW_INIT=1` fest, um einen interaktiven Flow, der auch Skills, Hooks und persönliche Memory-Dateien durchläuft. Wenn `/init` OpenAI Codex oder Google Gemini CLI-Konfiguration findet, bietet es an, sie mit `/import` zu übertragen |

103| `/insights` | Generieren Sie einen HTML-Bericht, der Ihre kürzlichen Sitzungen auf diesem Computer analysiert: in welchen Projekten Sie arbeiten, wie Sie Claude Code verwenden, wo Dinge schiefgehen und Funktionen zum Ausprobieren. Nicht verfügbar in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Siehe [Analysieren Sie Ihre Nutzungsmuster](/docs/de/costs#analyze-your-usage-patterns) für den Berichtsspeicherort, die Aufbewahrung und die Kosten |103| `/insights` | Generieren Sie einen HTML-Bericht, der Ihre kürzlichen Sitzungen auf diesem Computer analysiert: in welchen Projekten Sie arbeiten, wie Sie Claude Code verwenden, wo Dinge schiefgehen und Funktionen zum Ausprobieren. Nicht verfügbar in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Siehe [Analysieren Sie Ihre Nutzungsmuster](/docs/de/costs#analyze-your-usage-patterns) für den Berichtsspeicherort, die Aufbewahrung und die Kosten |

104| `/install-github-app` | Installieren Sie die Claude GitHub App für ein Repository, mit einem optionalen Schritt zum Einrichten von [GitHub Actions](/docs/de/github-actions)-Workflows und Geheimnissen. Führt Sie durch die Auswahl eines Repos und die Konfiguration der Integration |104| `/install-github-app` | Installieren Sie die Claude GitHub App für ein Repository, mit einem optionalen Schritt zum Einrichten von [GitHub Actions](/docs/de/github-actions)-Workflows und Geheimnissen. Führt Sie durch die Auswahl eines Repos und die Konfiguration der Integration. Funktioniert nur mit github.com-Repositories. Wenn das Git-Remote Ihres Repositorys auf gitlab.com oder bitbucket.org ist, druckt der Befehl eine Benachrichtigung und beendet sich, anstatt die Einrichtung zu starten. Um Claude Code aus GitLab-Pipelines auszuführen, siehe [GitLab CI/CD](/docs/de/gitlab-ci-cd) |

105| `/install-slack-app` | Installieren Sie die Claude Slack-App. Öffnet einen Browser, um den OAuth-Flow zu vervollständigen |105| `/install-slack-app` | Installieren Sie die Claude Slack-App. Öffnet einen Browser, um den OAuth-Flow zu vervollständigen |

106| `/keybindings` | Öffnen Sie Ihre [Tastaturkürzel](/docs/de/keybindings)-Datei |106| `/keybindings` | Öffnen Sie Ihre [Tastaturkürzel](/docs/de/keybindings)-Datei |

107| `/list-agents` | Listet die Subagenten, [Agent-Team](/docs/de/agent-teams)-Teamkollegen und andere Claude Code-Sitzungen auf, die Claude anschreiben kann, mit dem Namen, der für jeden verwendet werden soll. Siehe [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging). Auch verfügbar als `/peers`. Erfordert Claude Code v2.1.224 oder später; frühere Versionen melden `Unknown command: /list-agents`. Teamkollegen-Zeilen und die erste Zeile, die den Namen dieser Sitzung anzeigt, erfordern v2.1.239 oder später. Nur verfügbar in Sitzungen, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability) |107| `/list-agents` | Listet die Subagenten, [Agent-Team](/docs/de/agent-teams)-Teamkollegen und andere Claude Code-Sitzungen auf, die Claude anschreiben kann, mit dem Namen, der für jeden verwendet werden soll. Siehe [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging). Auch verfügbar als `/peers`. Erfordert Claude Code v2.1.224 oder später; frühere Versionen melden `Unknown command: /list-agents`. Teamkollegen-Zeilen und die erste Zeile, die den Namen dieser Sitzung anzeigt, erfordern v2.1.239 oder später. Nur verfügbar in Sitzungen, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability) |


123| `/rate-limit-options` | Zeigen Sie Möglichkeiten, weiterzuarbeiten, wenn ein claude.ai-Nutzungslimit eine Anfrage blockiert: warten und [automatisch fortfahren, wenn das Limit zurückgesetzt wird](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset), [Nutzungsguthaben](/docs/de/costs#add-usage-credits-to-your-subscription) hinzufügen oder Ihren Plan upgraden. Claude Code kann dieses Menü auch von selbst öffnen, wenn Sie ein Limit an Ihrem eigenen Terminal erreichen. Siehe [Automatisches Fortfahren ausschalten](/docs/de/interactive-mode#turn-automatic-continue-off). Erfordert ein claude.ai-Abonnement. Wird nicht im Befehlsmenü angezeigt; geben Sie es vollständig ein. Die Warte- und Fortfahren-Zeilen erfordern Claude Code v2.1.234 oder später |123| `/rate-limit-options` | Zeigen Sie Möglichkeiten, weiterzuarbeiten, wenn ein claude.ai-Nutzungslimit eine Anfrage blockiert: warten und [automatisch fortfahren, wenn das Limit zurückgesetzt wird](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset), [Nutzungsguthaben](/docs/de/costs#add-usage-credits-to-your-subscription) hinzufügen oder Ihren Plan upgraden. Claude Code kann dieses Menü auch von selbst öffnen, wenn Sie ein Limit an Ihrem eigenen Terminal erreichen. Siehe [Automatisches Fortfahren ausschalten](/docs/de/interactive-mode#turn-automatic-continue-off). Erfordert ein claude.ai-Abonnement. Wird nicht im Befehlsmenü angezeigt; geben Sie es vollständig ein. Die Warte- und Fortfahren-Zeilen erfordern Claude Code v2.1.234 oder später |

124| `/recap` | Generieren Sie eine einzeilige Zusammenfassung der aktuellen Sitzung auf Anfrage. Siehe [Sitzungs-Recap](/docs/de/interactive-mode#session-recap) für das automatische Recap, das angezeigt wird, nachdem Sie weg waren |124| `/recap` | Generieren Sie eine einzeilige Zusammenfassung der aktuellen Sitzung auf Anfrage. Siehe [Sitzungs-Recap](/docs/de/interactive-mode#session-recap) für das automatische Recap, das angezeigt wird, nachdem Sie weg waren |

125| `/release-notes` | Sehen Sie sich das Changelog in einem interaktiven Versions-Picker an. Wählen Sie eine bestimmte Version aus, um ihre Release Notes zu sehen, oder wählen Sie, um alle Versionen anzuzeigen. Die Notizen erscheinen in Ihrem Transkript, ohne in die Konversation einzutreten, die Claude sieht |125| `/release-notes` | Sehen Sie sich das Changelog in einem interaktiven Versions-Picker an. Wählen Sie eine bestimmte Version aus, um ihre Release Notes zu sehen, oder wählen Sie, um alle Versionen anzuzeigen. Die Notizen erscheinen in Ihrem Transkript, ohne in die Konversation einzutreten, die Claude sieht |

126| `/reload-plugins [--force]` | Laden Sie alle aktiven [Plugins](/docs/de/plugins) neu, um ausstehende Änderungen anzuwenden, ohne neu zu starten. Meldet Anzahlen für jede neu geladene Komponente und kennzeichnet alle Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen werden und den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt, es sei denn, Sie übergeben `--force` |126| `/reload-plugins [--force]` | Laden Sie alle aktiven [Plugins](/docs/de/plugins) neu, um ausstehende Änderungen anzuwenden, ohne neu zu starten. Meldet Anzahlen für jede neu geladene Komponente und kennzeichnet alle Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen werden und den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt, es sei denn, Sie übergeben `--force`. Auch im nicht-interaktiven Modus (`-p`), dem Agent SDK und der Desktop-App verfügbar, wo es nur bei direkt in die Sitzung eingegebener Eingabe ausgeführt wird und Plugin-MCP-Server-Änderungen nicht anwendet; erfordert Claude Code v2.1.260 oder später. Siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) |

127| `/reload-skills` | Scannen Sie [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, damit Skills, die während der Sitzung auf der Festplatte hinzugefügt oder geändert wurden, ohne Neustart verfügbar werden. Meldet, wie viele Skills verfügbar sind und wie viele hinzugefügt oder entfernt wurden |127| `/reload-skills` | Scannen Sie [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, damit Skills, die während der Sitzung auf der Festplatte hinzugefügt oder geändert wurden, ohne Neustart verfügbar werden. Meldet, wie viele Skills verfügbar sind und wie viele hinzugefügt oder entfernt wurden |

128| `/remote-control` | Machen Sie diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai verfügbar. Das Ausführen während der Abmeldung druckt, dass Remote Control ein claude.ai-Abonnement erfordert, und teilt Ihnen mit, wie Sie sich anmelden; vor v2.1.206 meldete es `Unknown command: /remote-control`. Alias: `/rc` |128| `/remote-control` | Machen Sie diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai verfügbar. Das Ausführen während der Abmeldung druckt, dass Remote Control ein claude.ai-Abonnement erfordert, und teilt Ihnen mit, wie Sie sich anmelden; vor v2.1.206 meldete es `Unknown command: /remote-control`. Alias: `/rc` |

129| `/remote-env` | Wählen Sie die Standardumgebung für [Cloud-Agenten](/docs/de/cloud-environments#select-an-environment-from-the-cli) |129| `/remote-env` | Wählen Sie die Standardumgebung für [Cloud-Agenten](/docs/de/cloud-environments#select-an-environment-from-the-cli) |

Details

1588 1588 

1589Die Sitzung durchläuft einen realistischen Ablauf mit repräsentativen Token-Zählungen:1589Die Sitzung durchläuft einen realistischen Ablauf mit repräsentativen Token-Zählungen:

1590 1590 

1591* **Bevor Sie etwas eingeben**: CLAUDE.md, automatisches Gedächtnis, MCP-Tool-Namen und Skill-Beschreibungen werden alle in den Kontext geladen. Ihr eigenes Setup kann hier mehr hinzufügen, wie ein [Ausgabestil](/docs/de/output-styles) oder Text aus [`--append-system-prompt`](/docs/de/cli-reference), die beide auf die gleiche Weise in die System-Eingabeaufforderung gehen.1591* **Bevor Sie etwas eingeben**: CLAUDE.md, automatisches Gedächtnis, MCP-Tool-Namen und Skill-Beschreibungen werden alle in den Kontext geladen. Ihr eigenes Setup kann hier mehr hinzufügen, wie ein [Ausgabestil](/docs/de/output-styles) oder Text aus [`--append-system-prompt`](/docs/de/cli-reference).

1592* **Während Claude arbeitet**: Jeder Dateilesevorgang fügt zum Kontext hinzu, [pfadgebundene Regeln](/docs/de/memory#path-specific-rules) werden automatisch zusammen mit übereinstimmenden Dateien geladen, und ein [PostToolUse Hook](/docs/de/hooks-guide) wird nach jeder Bearbeitung ausgelöst.1592* **Während Claude arbeitet**: Jeder Dateilesevorgang fügt zum Kontext hinzu, [pfadgebundene Regeln](/docs/de/memory#path-specific-rules) werden automatisch zusammen mit übereinstimmenden Dateien geladen, und ein [PostToolUse Hook](/docs/de/hooks-guide) wird nach jeder Bearbeitung ausgelöst.

1593* **Die Folgeeingabeaufforderung**: Ein [Subagent](/docs/de/sub-agents) verarbeitet die Recherche in seinem eigenen separaten Kontextfenster, sodass die großen Dateilesevorgang außerhalb des Ihren bleiben. Nur die Zusammenfassung und ein kleiner Metadaten-Trailer kommen zurück.1593* **Die Folgeeingabeaufforderung**: Ein [Subagent](/docs/de/sub-agents) verarbeitet die Recherche in seinem eigenen separaten Kontextfenster, sodass die großen Dateilesevorgang außerhalb des Ihren bleiben. Nur die Zusammenfassung und ein kleiner Metadaten-Trailer kommen zurück.

1594* **Am Ende**: `/compact` ersetzt die Konversation durch eine strukturierte Zusammenfassung. Der meiste Startuinhalt wird automatisch neu geladen; die folgende Tabelle zeigt, was mit jedem Mechanismus geschieht.1594* **Am Ende**: `/compact` ersetzt die Konversation durch eine strukturierte Zusammenfassung. Der meiste Startinhalt wird automatisch neu geladen; die folgende Tabelle zeigt, was mit jedem Mechanismus geschieht.

1595 1595 

1596<h2 id="what-survives-compaction">1596<h2 id="what-survives-compaction">

1597 Was die Komprimierung übersteht1597 Was die Komprimierung übersteht


1601 1601 

1602| Mechanismus | Nach der Komprimierung |1602| Mechanismus | Nach der Komprimierung |

1603| :---------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |1603| :---------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |

1604| System-Eingabeaufforderung und Ausgabestil | Unverändert; nicht Teil der Nachrichtenhistorie |1604| System-Eingabeaufforderung und Ausgabestil | Beide gelten weiterhin |

1605| Projekt-Root CLAUDE.md und ungebundene Regeln | Neu eingefügt von der Festplatte |1605| Projekt-Root CLAUDE.md und ungebundene Regeln | Neu eingefügt von der Festplatte |

1606| Automatisches Gedächtnis | Neu eingefügt von der Festplatte |1606| Automatisches Gedächtnis | Neu eingefügt von der Festplatte |

1607| Der Plan, den Claude im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben hat | Neu eingefügt von der Festplatte |1607| Der Plan, den Claude im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben hat | Neu eingefügt von der Festplatte |


1630* **Zwischen Aufgaben löschen**: Führen Sie `/clear` aus, wenn Sie zu nicht verwandter Arbeit wechseln. Alte Konversationen verdrängen die Dateien, die Sie als nächstes benötigen, und kosten Token bei jeder Nachricht.1630* **Zwischen Aufgaben löschen**: Führen Sie `/clear` aus, wenn Sie zu nicht verwandter Arbeit wechseln. Alte Konversationen verdrängen die Dateien, die Sie als nächstes benötigen, und kosten Token bei jeder Nachricht.

1631* **Große Lesevorgänge delegieren**: Senden Sie Recherche an einen [Subagent](/docs/de/sub-agents), sodass die Dateiinhalte in seinem Kontextfenster bleiben, nicht in Ihrem.1631* **Große Lesevorgänge delegieren**: Senden Sie Recherche an einen [Subagent](/docs/de/sub-agents), sodass die Dateiinhalte in seinem Kontextfenster bleiben, nicht in Ihrem.

1632 1632 

1633Wenn Sie ein größeres Fenster benötigen, anstatt ein kleineres Gespräch zu führen, unterstützen Fable 5.1, Fable 5, Sonnet 5, Opus 4.6 und später sowie Sonnet 4.6 ein Kontextfenster mit 1 Million Token. Siehe [Erweiterter Kontext](/docs/de/model-config#extended-context) für die Verfügbarkeit nach Plan und wie Sie eine `[1m]` Modellvariante auswählen. Sonnet 5 läuft mit 1M ohne `[1m]` Variante zur Auswahl; siehe [Sonnet 5 Kontextfenster](/docs/de/model-config#sonnet-5-context-window) für seine automatischen Kompressionsschwellen und die LLM-Gateway-Ausnahme. Die Komprimierung funktioniert auf die gleiche Weise bei der größeren Grenze.1633Wenn Sie ein größeres Fenster benötigen, anstatt ein kleineres Gespräch zu führen, unterstützen Fable-Modelle, Sonnet 5, Opus 4.6 und später sowie Sonnet 4.6 ein Kontextfenster mit 1 Million Token. Siehe [Erweiterter Kontext](/docs/de/model-config#extended-context) für die Verfügbarkeit nach Plan und wie Sie eine `[1m]` Modellvariante auswählen. Die Komprimierung funktioniert auf die gleiche Weise bei der größeren Grenze.

1634 

1635Sonnet 5 läuft mit dem 1M-Kontextfenster und hat keine `[1m]`-Variante zur Auswahl. Siehe [Sonnet 5 Kontextfenster](/docs/de/model-config#sonnet-5-context-window) für seine automatischen Kompressionsschwellen und die LLM-Gateway-Ausnahme.

1634 1636 

1635Der Punkt, an dem die automatische Komprimierung ausgeführt wird, hängt von Ihrem Modell und Ihrer Konfiguration ab. Siehe [Standardschwellen für automatische Komprimierung](/docs/de/model-config#default-auto-compact-thresholds) für die Grenzen pro Modell, und [Fenster für ein Gateway oder benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id), wenn Claude Code das falsche Fenster für Ihre Modell-ID annimmt, wie z. B. einen [LLM-Gateway](/docs/de/llm-gateway)-Alias.1637Der Punkt, an dem die automatische Komprimierung ausgeführt wird, hängt von Ihrem Modell und Ihrer Konfiguration ab. Siehe [Standardschwellen für automatische Komprimierung](/docs/de/model-config#default-auto-compact-thresholds) für die Grenzen pro Modell, und [Fenster für ein Gateway oder benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id), wenn Claude Code das falsche Fenster für Ihre Modell-ID annimmt, wie z. B. einen [LLM-Gateway](/docs/de/llm-gateway)-Alias.

1636 1638 

Details

49 Namen von Hilfsprozessen in Prozessmonitoren49 Namen von Hilfsprozessen in Prozessmonitoren

50</h3>50</h3>

51 51 

52Mit einem konfigurierten Launcher zeigen `ps` und Activity Monitor den versionierten Binärnamen für die Hintergrund-Hilfsprozesse anstelle von Claude Codes `claude bg-pty-host` und `claude bg-spare` Labels an, da der `exec` des Launchers die Argumentliste neu erstellt. Die Umbenennung ist ein Nebeneffekt, keine Verschleierung: Die Prozesse sind ansonsten unverändert, und Claude Code identifiziert seine eigenen Prozesse nach Binärpfad, niemals nach Anzeigename.52Mit einem konfigurierten Launcher zeigen `ps` und Activity Monitor keine Claude-Code-Labels `claude bg-pty-host` und `claude bg-spare` mehr für die Hintergrund-Hilfsprozesse an, da der `exec` des Launchers die Argumentliste neu erstellt. Das Verlieren der Labels ist ein Nebeneffekt, keine Verschleierung: Die Prozesse sind ansonsten unverändert, und Claude Code identifiziert seine eigenen Prozesse nach Binärpfad, niemals nach Anzeigename.

53 53 

54<h2 id="set-up-the-launcher">54<h2 id="set-up-the-launcher">

55 Richten Sie den Launcher ein55 Richten Sie den Launcher ein

costs.md +5 −1

Details

356 Passen Sie das erweiterte Denken an356 Passen Sie das erweiterte Denken an

357</h3>357</h3>

358 358 

359Erweitertes Denken ist standardmäßig aktiviert, da es die Leistung bei komplexen Planungs- und Denkaufgaben erheblich verbessert. Thinking-Token werden als Output-Token abgerechnet, und das Standard-Budget kann je nach Modell Zehntausende Token pro Anfrage betragen. Für einfachere Aufgaben, bei denen tiefes Denken nicht erforderlich ist, können Sie Kosten reduzieren, indem Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) mit `/effort` senken oder in `/model`, Denken in `/config` deaktivieren oder auf Modellen mit einem [festen Thinking-Budget](/docs/de/model-config#adaptive-reasoning-and-fixed-thinking-budgets) das Budget durch Setzen der `MAX_THINKING_TOKENS` [Umgebungsvariable](/docs/de/env-vars) senken, beispielsweise `MAX_THINKING_TOKENS=8000`. Adaptive-Reasoning-Modelle ignorieren Budgets ungleich Null, daher verwenden Sie stattdessen Anstrengungsstufen. Das Deaktivieren von Thinking ist auf Fable-Modellen nicht verfügbar, die immer erweitertes Denken verwenden.359Erweitertes Denken ist standardmäßig aktiviert, da es die Leistung bei komplexen Planungs- und Denkaufgaben erheblich verbessert. Thinking-Token werden als Output-Token abgerechnet, und das Standard-Budget kann je nach Modell Zehntausende Token pro Anfrage betragen.

360 

361Für einfachere Aufgaben, bei denen tiefes Denken nicht erforderlich ist, können Sie Kosten reduzieren, indem Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) mit `/effort` senken oder in `/model`, oder indem Sie Denken in `/config` deaktivieren. Sie können Denken auf Fable-Modellen nicht ausschalten, die immer erweitertes Denken verwenden.

362 

363Auf Modellen mit einem [festen Thinking-Budget](/docs/de/model-config#adaptive-reasoning-and-fixed-thinking-budgets) können Sie das Budget auch senken, indem Sie die `MAX_THINKING_TOKENS` [Umgebungsvariable](/docs/de/env-vars) setzen, beispielsweise `MAX_THINKING_TOKENS=8000`. Adaptive-Reasoning-Modelle ignorieren Budgets ungleich Null, daher verwenden Sie stattdessen Anstrengungsstufen.

360 364 

361<h3 id="delegate-verbose-operations-to-subagents">365<h3 id="delegate-verbose-operations-to-subagents">

362 Delegieren Sie ausführliche Operationen an Subagents366 Delegieren Sie ausführliche Operationen an Subagents

cross-session-messaging.md +405 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Nachrichten an Ihre anderen Claude Code-Sitzungen

6 

7> Lassen Sie Claude Ihre anderen Claude Code-Sitzungen auf diesem Computer auflisten und anschreiben, und erreichen Sie Ihre Sitzungen auf anderen Computern oder im Web.

8 

9<Note>

10 Sitzungsübergreifendes Messaging erfordert Claude Code v2.1.224 oder später auf macOS und Linux, einschließlich Linux in WSL 2. Unter nativem Windows ist Claude Code v2.1.234 oder später erforderlich. Wenn eine Sitzung die Anforderungen erfüllt, ist Messaging aktiviert und es ist nichts zu aktivieren. Siehe [Verfügbarkeit](#availability) für Anbieteranforderungen und wie Sie bestätigen, dass eine Sitzung dies hat.

11</Note>

12 

13Sitzungsübergreifendes Messaging ermöglicht es Claude, eine Nachricht von einer Ihrer Claude Code-Sitzungen an eine andere zu übermitteln. Wenn eine Änderung in einer Sitzung das bricht, woran eine andere arbeitet, kann Claude diese Sitzung warnen, bevor Sie es bemerken. Wenn eine Sitzung eine Frage beantwortet, bei der eine andere blockiert ist, kann Claude die Antwort übermitteln.

14 

15Eine Nachricht ist ein Textabschnitt, den ein Claude an einen anderen schreibt, niemals die Gesprächsverlauf oder Dateien des Absenders. Um ein ganzes Gespräch oder seinen Kontext zu verschieben, [setzen Sie die Sitzung statt dessen fort](/docs/de/sessions#resume-a-session).

16 

17Claude verwendet zwei Tools für dies: `ListAgents` um zu entdecken, welche Agenten es erreichen kann, und `SendMessage` um eine Nachricht an einen von ihnen nach Name zu übermitteln. Mit demselben `SendMessage` Tool kann Claude auch [Subagenten](/docs/de/sub-agents#resume-subagents) und [Agent-Team](/docs/de/agent-teams) Teamkollegen innerhalb einer einzelnen Sitzung oder eines Teams anschreiben. Diese Seite behandelt Nachrichten zwischen Ihren unabhängigen Sitzungen.

18 

19<h2 id="when-to-use-cross-session-messaging">

20 Wann Cross-Session-Messaging verwendet werden sollte

21</h2>

22 

23Verwenden Sie Messaging, wenn eine Ihrer Sitzungen etwas hat, das eine andere Sitzung während einer Aufgabe benötigt. Claude kann eine Nachricht von selbst senden, wenn es den Bedarf sieht, zum Beispiel nach einer Änderung, die sich auf die Arbeit einer anderen Sitzung auswirkt, oder Sie können es auffordern, eine zu senden. Die häufigen Fälle:

24 

25* **Ein Ergebnis übergeben**: Wenn eine Sitzung eine Breaking Change entdeckt oder eine Entscheidung trifft, fasst Claude sie für die Sitzung zusammen, die an dem betroffenen Bereich arbeitet, anstatt dass Sie sie dort erneut erklären.

26* **Parallele Worktrees koordinieren**: Wenn Sitzungen dasselbe Repository in separaten [Worktrees](/docs/de/worktrees) bearbeiten, kann Claude die anderen Sitzungen darüber informieren, was eingecheckt wurde.

27* **Status von langfristiger Arbeit abrufen**: Lassen Sie eine Migration oder einen Test-Lauf an die Sitzung berichten, die Sie beobachten, oder fragen Sie selbst danach. Wenn diese Sitzung auf diesem Computer ist, kann Claude auch [sie fragen, um eine Benachrichtigung zu erhalten, wenn sie das nächste Mal untätig wird oder beendet wird](#get-a-notice-when-another-session-goes-idle).

28* **Nachrichten über Computer hinweg**: Erreichen Sie eine Ihrer Sitzungen auf einem anderen Computer oder im Web.

29 

30Verwenden Sie Messaging zwischen unabhängigen Sitzungen, die Sie selbst starten und steuern. Claude Code hat eine dedizierte Funktion für jede der anderen Möglichkeiten, mehrere Sitzungen auszuführen oder zu erreichen, verwenden Sie also die für das, was Sie tun, gebaute:

31 

32* Um ein Gespräch in einem anderen Terminal fortzusetzen oder seinen Kontext mit einer neuen Sitzung zu teilen, [setzen Sie die Sitzung fort](/docs/de/sessions#resume-a-session)

33* Für ein koordiniertes Team von Sitzungen, die Claude spawnt und beaufsichtigt, verwenden Sie [Agent-Teams](/docs/de/agent-teams)

34* Um viele Sitzungen von einem Ort aus zu beobachten und zu steuern, verwenden Sie [Agent-Ansicht](/docs/de/agent-view)

35* Um eine Sitzung selbst von Ihrem Telefon oder einem anderen Gerät aus zu steuern, anstatt dass Sitzungen sich gegenseitig benachrichtigen, verwenden Sie [Remote Control](/docs/de/remote-control)

36* Um externe Ereignisse wie CI-Ergebnisse oder Chat-Nachrichten in eine Sitzung zu pushen, verwenden Sie [Kanäle](/docs/de/channels)

37 

38<h2 id="message-another-session">

39 Eine andere Sitzung benachrichtigen

40</h2>

41 

42Wenn eine Ihrer Sitzungen etwas lernt, das eine andere Sitzung benötigt, wie eine Erkenntnis, einen Status oder eine Entscheidung, leitet Claude es weiter, anstatt dass Sie zwischen Terminals kopieren und einfügen. Claude findet das Ziel mit `ListAgents` und sendet mit `SendMessage`, sodass Sie diese Tools nie selbst aufrufen. Claude kann entscheiden, eine Nachricht zu senden, ohne gefragt zu werden, und Sie können auch eine anfordern.

43 

44Um selbst eine anzufordern, teilen Sie Claude mit, was die andere Sitzung wissen oder tun soll. Dieses Beispiel ist eine Eingabeaufforderung, die Sie eingeben, nicht eine Nachricht, die Claude sendet:

45 

46```text wrap theme={null}

47Fragen Sie die Sitzung, die in meinem anderen Terminal läuft, ob die Migration abgeschlossen ist

48```

49 

50Claude schreibt die eigentliche Nachricht selbst, sodass Ihre Eingabeaufforderung den Inhalt Claude überlassen kann. Diese Eingabeaufforderung fordert eine Zusammenfassung an, ohne ihre Formulierung vorzuschreiben, und was Claude sendet, variiert:

51 

52```text wrap theme={null}

53Erklären Sie der Sitzung, die an der Payments-API arbeitet, was wir gerade getan haben

54```

55 

56Um das Ziel selbst zu benennen, erwähnen Sie die Sitzung in Ihrer Eingabeaufforderung: Geben Sie `@` gefolgt von den ersten Buchstaben des Sitzungsnamens ein und wählen Sie die Sitzung aus der Typeahead-Liste aus, genauso wie Sie [einen Subagenten @-erwähnen](/docs/de/sub-agents#invoke-subagents-explicitly). Erfordert Claude Code v2.1.232 oder später. Claude Code fügt die Erwähnung ein, z. B. `@api-worker`, und teilt Claude mit, welche Sitzung sie benennt, sodass Claude diese Sitzung benachrichtigen kann, ohne Ihre Sitzungen zuerst aufzulisten. Diese Eingabeaufforderung benennt das Ziel mit einer Erwähnung:

57 

58```text wrap theme={null}

59Lassen Sie @api-worker wissen, dass die Schemamigration abgeschlossen ist

60```

61 

62Die Typeahead-Liste zeigt Ihre anderen aktiven Sitzungen auf diesem Computer. Zwei Fälle erfordern mehr als die ersten Buchstaben eines Namens:

63 

64* **Eine Sitzung außerhalb dieses Computers**: Eine Cloud- oder Remote-Control-Sitzung wird in der Typeahead-Liste nur angezeigt, nachdem Claude Ihre Sitzungen außerhalb dieses Computers aufgelistet oder benachrichtigt hat. Bitten Sie Claude daher, diese zuerst aufzulisten.

65* **Ein Name mit einem Leerzeichen oder anderen Zeichen außerhalb von Buchstaben, Ziffern, Bindestrichen und Unterstrichen**: Geben Sie ihn in doppelten Anführungszeichen ein, z. B. `@"release notes"`. Wenn Sie die Sitzung aus der Typeahead-Liste auswählen, fügt Claude Code die Anführungszeichen für Sie ein.

66 

67Sie können die Erwähnung auch ohne die Auswahl eingeben. Wenn mehr als eine aktive Sitzung auf den erwähnten Namen antwortet, fragt Claude Sie, welche Sie meinen, bevor die Nachricht gesendet wird.

68 

69Informationen darüber, wie die Nachricht aussieht, die Claude schreibt, wenn sie ankommt, einschließlich eines Beispiels, finden Sie unter [wie eine Nachricht aussieht](#what-a-message-looks-like).

70 

71<h3 id="message-delivery">

72 Nachrichtenübermittlung

73</h3>

74 

75Die empfangende Claude liest die Nachricht zwischen Werkzeugaufrufen während eines aktiven Zugs, sodass ein laufendes Werkzeug nie unterbrochen wird. Wenn die empfangende Sitzung untätig ist, startet Claude Code einen neuen Zug mit der Nachricht.

76 

77Eine Nachricht von einer anderen Sitzung kommt als Klartext an. Wenn sie eine Datei oder eine [MCP-Ressource](/docs/de/mcp#use-mcp-resources) mit `@` erwähnt, sieht Claude die Erwähnung wie geschrieben und Claude Code fügt nichts an, unabhängig davon, ob die Nachricht einen neuen Zug startet oder während eines ankommt. Claude kann einen erwähnten Pfad auf der empfangenden Maschine immer noch mit seinen eigenen Werkzeugen öffnen, vorbehaltlich der Berechtigungen dieser Sitzung. Vor v2.1.251 hat eine `@`-Erwähnung in einer Nachricht, die einen neuen Zug startete, die Datei oder MCP-Ressource auf der Empfängerseite angehängt.

78 

79Claude Code lehnt eine Nachricht in den folgenden Fällen ab:

80 

81* Die Nachricht überschreitet die [Größenbeschränkung](#limitations). Claude Code lehnt sie in der sendenden Sitzung ab, bevor sie versendet wird.

82* Ein schneller Nachrichtenstoß zu einer Sitzung auf diesem Computer hat erreicht, was [diese Sitzung akzeptiert](#limitations). Claude Code lehnt weitere Nachrichten an diese Sitzung ab.

83* Das Antwortziel auf diesem Computer besteht einen Sicherheitscheck nicht, z. B. ein symbolisch verknüpftes Ziel oder ein Endpunkt, der nicht der erwartete Prozess ist. [Ablehnung zum Senden einer sitzungsübergreifenden Nachricht](/docs/de/errors#refusing-to-send-a-cross-session-message) listet diese Checks auf.

84* Claude adressiert die Nachricht an den Namen dieser Sitzung selbst, wie unter [Sehen Sie, welche Sitzungen Claude erreichen kann](#see-which-sessions-claude-can-reach) beschrieben.

85 

86Die empfangende Sitzung überprüft jede ankommende Nachricht gegen ihre eigenen [Eingangskontrollen](#control-inbound-messages), und die Überprüfung endet in einem von drei Ergebnissen:

87 

88* **Zugestellt**: Claude Code übergibt die Nachricht an die empfangende Claude.

89* **Gehalten**: Claude Code legt die Nachricht unzugestellt beiseite. Eine gehaltene Nachricht erreicht Claude nur, wenn Sie sie genehmigen oder eine spätere Änderung des Modus oder der Einstellungen dies zulässt.

90* **Abgelehnt**: Claude Code verwirft die Nachricht, ohne sie zuzustellen.

91 

92Nach der Zustellung zählt die Nachricht zur [Nutzung](/docs/de/costs) wie eine Eingabeaufforderung, die Sie eingeben, und die empfangende Claude kann auf die gleiche Weise antworten, außer im [einseitigen sitzungsübergreifenden Fall](#message-sessions-on-other-machines).

93 

94Berechtigungsgrenzen bleiben pro Sitzung. Claude wird angewiesen, eine andere Sitzung nie um eine Aktion zu bitten, die in ihrer eigenen Sitzung verweigert oder blockiert wurde, oder die ihre eigenen Berechtigungseinstellungen blockieren würden, und diese Arbeit stattdessen an Sie zurückzuleiten. Auf der Empfängerseite gelten die [Berechtigungsaufforderungen und Regeln der empfangenden Sitzung selbst](#how-a-session-treats-an-incoming-message) immer noch für alles, das die Nachricht anfordert.

95 

96<h3 id="get-a-notice-when-another-session-goes-idle">

97 Erhalten Sie eine Benachrichtigung, wenn eine andere Sitzung untätig wird

98</h3>

99 

100Claude kann eine Ihrer Sitzungen auf diesem Computer bitten, eine Benachrichtigung zu senden, wenn diese Sitzung das nächste Mal untätig wird oder beendet wird. Untätig bedeutet hier, dass die Sitzung einen Zug mit nichts in der Warteschlange beendet hat. Verwenden Sie dies, wenn Sie auf eine lange Aufgabe in einer anderen Sitzung warten und hören möchten, wenn sie erledigt ist, anstatt zu überprüfen. Erfordert Claude Code v2.1.236 oder später in beiden Sitzungen.

101 

102<h4 id="ask-for-a-notice">

103 Fordern Sie eine Benachrichtigung an

104</h4>

105 

106Teilen Sie Claude mit, worauf Sie warten. Diese Eingabeaufforderung fordert eine Benachrichtigung von der Migrationssitzung an:

107 

108```text wrap theme={null}

109Sagen Sie mir, wenn die Migrationssitzung mit ihrer Arbeit fertig ist

110```

111 

112Claude abonniert mit dem `SendMessage`-Werkzeug-Input `notify_when_idle`, entweder an eine Nachricht angehängt, die es ohnehin sendet, oder allein. Allein abonniert Claude Code, ohne einen Zug in der beobachteten Sitzung zu starten oder Token auszugeben, und sendet die Benachrichtigung sofort, wenn diese Sitzung bereits untätig ist. An eine Nachricht angehängt, liefert Claude Code die Nachricht zuerst und sendet die Benachrichtigung später.

113 

114<h4 id="what-each-session-shows">

115 Was jede Sitzung anzeigt

116</h4>

117 

118Die beobachtete Sitzung zeigt eine Zeile an, die besagt, dass ein anderer Prozess gebeten hat, benachrichtigt zu werden, wenn die Sitzung das nächste Mal untätig wird. Die anfragende Sitzung zeigt die Benachrichtigung als eine Zeile an, die die beobachtete Sitzung benennt. Die Zeile kann die Zeit enthalten, zu der der Zug dieser Sitzung beendet wurde, und einen einzeiligen Status aus diesem Zug. Wenn die anfragende Sitzung untätig ist, startet Claude Code einen neuen Zug mit der Benachrichtigung.

119 

120<h4 id="limits">

121 Limits

122</h4>

123 

124Die Benachrichtigung ist einmalig: Claude Code sendet sie einmal von der beobachteten Sitzung, und keine der beiden Sitzungen fragt die andere ab. Wenn innerhalb von 12 Stunden keine Benachrichtigung ankommt, verwirft Claude Code das Abonnement und teilt Claude dies mit, sodass es nicht weiter wartet.

125 

126Die [Eingangskontrollen](#control-inbound-messages) jeder Seite gelten für eine Benachrichtigung wie eine Nachricht:

127 

128* **`refuse` auf einer Seite**: nichts kommt an. Die beobachtete Sitzung verwirft die Anfrage, ohne sie aufzuzeichnen oder zu beantworten, sodass das Abonnement nach 12 Stunden unantwortlich abläuft, und eine anfragende Sitzung mit `refuse` abonniert nie.

129* **`hold` auf einer Seite**: die Benachrichtigung kommt mit weniger an. Die beobachtete Sitzung lässt den einzeiligen Status weg, und die anfragende Sitzung zeigt die Benachrichtigung in Ihrem Transkript an, ohne sie an Claude zu liefern.

130 

131Nur die Claude in Ihrer Hauptkonversation kann abonnieren, und nur zu Ihren Sitzungen auf diesem Computer. Wenn ein Subagent oder ein Agent-Team-Kollege `notify_when_idle` setzt, macht Claude Code kein Abonnement und teilt ihm dies mit. Wenn Claude eine Benachrichtigung von einem anderen Agenten anfordert, z. B. einem Kollegen, einem Subagenten oder einer Sitzung außerhalb dieses Computers, lehnt Claude Code den gesamten Aufruf ab, einschließlich jeder daran angehängten Nachricht, und meldet die Ablehnung Claude, damit es die Nachricht ohne die Anfrage erneut senden kann.

132 

133<h3 id="see-which-sessions-claude-can-reach">

134 Sehen Sie, welche Sitzungen Claude erreichen kann

135</h3>

136 

137Claude findet das Ziel einer Nachricht selbst, sodass Sie nichts ausführen müssen, bevor Sie es auffordern zu senden. Um selbst zu sehen, welche Sitzungen Claude erreichen kann, führen Sie den Befehl `/list-agents` aus. Die erste Zeile ist, wenn vorhanden, der Name dieser Sitzung selbst, den Ihre anderen Sitzungen verwenden, um sie zu benachrichtigen. Die Zeilen darunter sind die Sitzungen, die Claude erreichen kann:

138 

139* **Subagenten**: Agenten, die in der aktuellen Sitzung ausgeführt werden.

140* **Kollegen**: die [Agent-Team](/docs/de/agent-teams)-Kollegen dieser Sitzung. Vor v2.1.239 erschienen Kollegen nicht in der Auflistung, obwohl Claude sie bereits nach Name benachrichtigen konnte.

141* **Ihre anderen lokalen Sitzungen**: Claude-Code-Sitzungen, die auf demselben Computer ausgeführt werden, einschließlich [Hintergrundsitzungen](/docs/de/agent-view). Eine Sitzung wird nur angezeigt, wenn sie einen [Inbox-Socket](#the-sessions-inbox-socket) bindet.

142* **Ihre Cloud-Sitzungen**: Ihre [Claude Code im Web](/docs/de/claude-code-on-the-web)-Sitzungen, angezeigt, während diese Sitzung mit [Remote Control](/docs/de/remote-control) verbunden ist. Claude Code kennzeichnet sie in der Auflistung als `cloud`.

143* **Ihre Remote-Control-Sitzungen auf anderen Computern**: angezeigt, während diese Sitzung mit [Remote Control](/docs/de/remote-control) verbunden ist, und gekennzeichnet als `Remote Control`. Claude Code zeigt `offline` als Status einer Sitzung an, deren Remote-Control-Verbindung unterbrochen wurde.

144 

145Diese Sitzung ist keine der Zeilen. Wenn Claude eine Nachricht an den Namen dieser Sitzung selbst adressiert, lehnt Claude Code sie ab und teilt Claude mit, dass das Ziel die aktuelle Sitzung ist. Vor v2.1.239 zeigte die Auflistung nicht den Namen dieser Sitzung an, und Claude Code meldete eine an sie gesendete Nachricht als einen Agenten, den es nicht finden konnte.

146 

147Während diese Sitzung mit [Remote Control](/docs/de/remote-control) verbunden ist, behält Claude Code einige Details Ihrer lokalen Sitzungen aus der `/list-agents`-Ausgabe zurück, ohne zu ändern, was Claude selbst sieht, wenn es nach einer Sitzung zum Benachrichtigen sucht:

148 

149* **Arbeitsverzeichnisse**: Es lässt das Arbeitsverzeichnis jeder lokalen Sitzung weg.

150* **Sitzungsnamen**: Es lässt jeden Sitzungsnamen weg, den es nicht einer Person zuordnen kann, sodass eine Zeile ohne Namen `(unnamed session)` lautet.

151* **Die erste Zeile**: Es lässt die Zeile mit dem Namen dieser Sitzung weg, es sei denn, Sie haben diesen Namen an diesem Terminal eingegeben, mit `--name` oder mit `/rename` und dem Namen, seit Sie die Sitzung gestartet oder zuletzt fortgesetzt haben.

152 

153Wenn die Ausgabe etwas auflistet, endet sie mit einer Notiz, die besagt, dass Details zurückgehalten wurden. Das Ausführen von `/rename` gefolgt von einem ungenutzten Namen an der eigenen Tastatur einer Sitzung gibt dieser Sitzung einen Namen, der in der Ausgabe angezeigt wird.

154 

155Claude Code liest Ihre Cloud- und Remote-Control-Sitzungslisten von neuesten zuerst und stoppt nach einer begrenzten Anzahl von Seiten für jede. Wenn Ihr Konto mehr dieser Sitzungen hat, als passen, listet Claude Code die älteren nicht auf, und Claude kann sie nicht nach Name benachrichtigen. Wenn dies geschieht, teilt Claude Code dies in der Auflistung mit, und Claude sieht die gleiche Notiz, wenn es eine Nachricht sendet.

156 

157Claude adressiert eine Sitzung außerhalb dieses Computers nach Name, genauso wie eine lokale Sitzung. Siehe [Benachrichtigung von Sitzungen auf anderen Computern](#message-sessions-on-other-machines) für die Reise dieser Nachrichten.

158 

159Eine Sitzung antwortet auf den Namen, den Sie mit dem Befehl [`/rename`](/docs/de/commands) oder dem Flag [`--name`](/docs/de/cli-reference#cli-flags) setzen. Wenn Sie keinen setzen, benennt Claude Code die Sitzung selbst. Für eine interaktive Sitzung ist dies der Name, der in [Auflistungen laufender Sitzungen](/docs/de/sessions#name-your-sessions) angezeigt wird.

160 

161Wenn Sie eine Sitzung umbenennen, aktualisiert Claude Code auch den gemeinsamen Datensatz, den Ihre anderen Sitzungen verwenden, um den Namen der Sitzung nachzuschlagen. Wenn es diesen Datensatz nicht aktualisieren kann, warnt es Sie in der `/rename`-Ausgabe, dass andere Sitzungen möglicherweise immer noch den alten Namen anzeigen. Führen Sie die Sitzung mit [`--debug`](/docs/de/cli-reference#cli-flags) aus, und Claude Code protokolliert die Ursache des fehlgeschlagenen Updates.

162 

163Wenn Sie eine Sitzung umbenennen oder eine interaktive mit einem Namen starten oder fortsetzen, den eine andere aktive Sitzung auf diesem Computer bereits verwendet, behält Claude Code den Namen bei der Sitzung, die ihn bereits hat, und [benennt Ihren in eine Variante um](/docs/de/sessions#name-your-sessions). Sitzungen können immer noch einen Namen teilen, z. B. wenn eine von ihnen eine frühere Version von Claude Code ausführt oder der gemeinsame Name einer ist, die Claude Code generiert hat. Es sei denn, diese Sitzung ist mit Remote Control verbunden. Claude Code zeigt das Arbeitsverzeichnis jeder lokalen Sitzung in der `/list-agents`-Ausgabe an, sodass Sie gleichnamige Sitzungen unterscheiden können, wenn sie in verschiedenen Verzeichnissen ausgeführt werden. Claude adressiert die Nachricht auf eine von zwei Arten, je nachdem, wie viele aktive Sitzungen auf den Namen antworten:

164 

165* **Eine Sitzung antwortet auf den Namen**: Claude Code liefert die Nachricht nur auf dem Namen.

166* **Mehrere Sitzungen teilen den Namen, oder Claude Code konnte nicht überall überprüfen, wo Ihre Sitzungen ausgeführt werden**: Claude fügt jeder Zeile seiner Auflistung einen kurzen Bezeichner hinzu und verwendet den Bezeichner in der Adresse.

167 

168<h3 id="message-sessions-on-other-machines">

169 Benachrichtigung von Sitzungen auf anderen Computern

170</h3>

171 

172Wie eine Nachricht reist und ob sie Anthropic-Server durchläuft, hängt davon ab, wo die Zielsitzung ausgeführt wird:

173 

174| Wo die andere Sitzung ausgeführt wird | Wie die Nachricht reist |

175| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |

176| Auf diesem Computer | Über einen Pro-Sitzungs-Socket auf macOS und Linux oder ein Pro-Sitzungs-Named-Pipe auf nativem Windows, nie durch Anthropic-Server |

177| Auf einem anderen Ihrer Computer | Durch Anthropic-Server, ankommend über die [Remote Control](/docs/de/remote-control)-Verbindung dieses Computers |

178| Auf [Claude Code im Web](/docs/de/claude-code-on-the-web) | Durch Anthropic-Server, direkt zur Cloud-Sitzung |

179 

180Das Starten einer Konversation mit einer Sitzung auf einem anderen Ihrer Computer erfordert Claude Code v2.1.225 oder später und ein Ziel, das [in der Auflistung angezeigt wird](#see-which-sessions-claude-can-reach). Vor v2.1.225 konnte Claude nur auf eine Nachricht antworten, die von einer ankam.

181 

182Sie können eine Sitzung benachrichtigen, die als `offline` in [der Auflistung](#see-which-sessions-claude-can-reach) angezeigt wird, eine, deren Remote-Control-Verbindung unterbrochen wurde. Der Versand geht durch, aber die Nachricht kommt nur an, nachdem die Maschine dieser Sitzung sich erneut verbunden hat. Claude wird darüber informiert, wenn es sendet.

183 

184Same-Machine-Lieferung funktioniert überall dort, wo die Funktion aktiviert ist. Jede Sitzung registriert sich in Dateien auf der Festplatte. Wenn Claude Ihre lokalen Sitzungen auflistet oder benachrichtigt, liest Claude Code diese Dateien, um die Sitzungen zu finden, sodass zwei Sitzungen sich nur erreichen können, wenn sie die gleichen Dateien sehen können.

185 

186Ein Container hat sein eigenes Dateisystem, sodass eine Sitzung darin und eine Sitzung auf dem Host sich nicht erreichen können. Zwei Sitzungen im gleichen Container können sich immer noch gegenseitig benachrichtigen, einschließlich auf einem [selbstgehosteten Runner](/docs/de/self-hosted-environments). Eine Sitzung in WSL 2 und eine native Windows-Sitzung auf demselben Computer können sich auch nicht erreichen, da sie sich unter verschiedenen Home-Verzeichnissen registrieren und auf verschiedene Socket-Typen abhören.

187 

188Während diese Sitzung mit Remote Control verbunden ist, zeigt Claude Code die Nachricht in der Konversation dieser Sitzung unter dem Remote-Control-Namen dieser Sitzung an, wenn Sie eine Sitzung auf einem anderen Ihrer Computer benachrichtigen. Die Claude auf diesem Computer kann auf diesen Namen antworten. Wenn diese Sitzung beispielsweise mit Remote Control als `laptop-graceful-unicorn` verbunden ist und Sie Ihren Desktop benachrichtigen, sehen Sie die Nachricht in der Desktop-Sitzung unter `laptop-graceful-unicorn`.

189 

190Wenn diese Sitzung nicht mit Remote Control verbunden ist, wenn Claude an eine Sitzung außerhalb dieses Computers sendet, geht die Nachricht immer noch durch, aber ohne eine [Antwortwort](#what-a-message-looks-like), sodass die empfangende Claude nicht antworten kann. Claude wird darüber informiert, wenn es sendet.

191 

192Um Ihre Genehmigung zu verlangen, bevor eine Nachricht außerhalb dieses Computers geht, setzen Sie [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).

193 

194<h2 id="how-a-session-treats-an-incoming-message">

195 Wie eine Sitzung eine ankommende Nachricht behandelt

196</h2>

197 

198Wenn Sitzung A Sitzung B benachrichtigt, teilt Claude Code B's Claude mit, dass die Nachricht von einer anderen Sitzung kam, nicht von Ihnen, und begrenzt, was die Nachricht tun kann:

199 

200* **Es kann nichts genehmigen**: Eine Nachricht von einer anderen Sitzung zählt niemals als Ihre Zustimmung, sodass sie nicht auf eine ausstehende Berechtigungsaufforderung in Ihrem Namen antworten kann.

201* **Es kann die Konfiguration nicht ändern**: Claude Code weist den empfangenden Claude an, niemals Berechtigungseinstellungen, `CLAUDE.md` oder andere Konfiguration zu ändern, weil eine andere Sitzung es fragte.

202* **Befehle werden nicht ausgeführt**: Ein Befehl im Text der Nachricht, wie `/compact`, kommt als Klartext an. Claude Code führt ihn niemals aus.

203* **Berechtigungsaufforderungen werden immer noch ausgelöst**: Wenn das Handeln auf die Nachricht eine Berechtigung erfordert, die die empfangende Sitzung nicht hat, sehen Sie die gleiche Aufforderung, die Sie für jede andere Arbeit sehen würden.

204 

205<h3 id="what-a-message-looks-like">

206 Wie eine Nachricht aussieht

207</h3>

208 

209Wenn eine Nachricht ankommt, zeigt Claude Code sie im Gespräch als eine schwache einzeilige Vorschau an, und die Vorschauzeile bleibt danach im Gespräch. Die Vorschau trägt den Namen des Absenders und die erste Zeile der Nachricht, abgeschnitten mit `…`, wenn sie lang ist, wie `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`. Vor v2.1.247 zeigte Claude Code die ankommende Nachricht vollständig anstelle einer Vorschau an.

210 

211Jede dieser zeigt Ihnen den vollständigen Text:

212 

213* Drücken Sie `Ctrl+O`, um den [Transkript-Viewer](/docs/de/interactive-mode#transcript-viewer) zu öffnen und den vollständigen Text unter dem Namen der Sitzung des Absenders zu lesen.

214* In einer Sitzung, die mit [`--verbose`](/docs/de/cli-reference#cli-flags) gestartet wurde, zeigt Claude Code den vollständigen Text anstelle der Vorschau an.

215 

216Die Vorschau verkürzt nur das, was Sie sehen. Ob Sie es erweitern oder nicht, Claude liest die vollständige Nachricht.

217 

218Claude empfängt die Nachricht mit dem Namen des Absenders und einer Antwortwort, außer für eine [einseitige Cross-Computer-Nachricht](#message-sessions-on-other-machines), die keine Antwortwort trägt. Über den Namen und die Antwortwort hinaus erhält der empfangende Claude den Text der Nachricht, niemals die Gesprächshistorie oder Dateien des Absenders. [Nachrichtenübermittlung](#message-delivery) behandelt `@`-Erwähnungen im Text.

219 

220Eine Nachricht, die ein [Subagent](/docs/de/sub-agents) schrieb, kommt unter dem Namen der sendenden Sitzung an, mit dem Subagenten im Nachrichtentext identifiziert. Eine Antwort darauf erreicht das Hauptgespräch dieser Sitzung, nicht den Subagenten.

221 

222Dieses Beispiel ist eine Nachricht, die ein Claude an einen anderen schrieb, wie sein vollständiger Text liest, wenn Sie ihn erweitern:

223 

224```text wrap theme={null}

225Schema migration finished

226The new column is tenant_id, and rebasing on main is safe now.

227```

228 

229<h3 id="control-inbound-messages">

230 Inbound-Nachrichten kontrollieren

231</h3>

232 

233Setzen Sie [`crossSessionInbound`](/docs/de/settings-reference#crosssessioninbound), um zu wählen, was eine Sitzung mit Nachrichten tut, die von Ihren anderen Sitzungen ankommen:

234 

235| Wert | Verhalten |

236| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

237| `accept` | Claude Code übermittelt jede Nachricht an Claude |

238| `hold` | Claude Code zeigt eine Benachrichtigung für jede Nachricht an und übermittelt sie nicht. Wenn ein `accept` später gilt, gemäß den [Vorrangregeln](/docs/de/settings-reference#crosssessioninbound), gibt Claude Code die gehaltenen Nachrichten frei |

239| `refuse` | Claude Code verwirft jede Nachricht, ohne sie zu übermitteln |

240 

241Über das Bearbeiten einer Einstellungsdatei hinaus können Sie den Wert in der `/config`-Zeile **Nachrichten von Ihren anderen Sitzungen** auswählen. Claude Code schreibt den Wert, den Sie auswählen, in Ihre Benutzereinstellungen. Die Zeile erfordert Claude Code v2.1.232 oder später und erscheint nicht, während verwaltete Einstellungen oder das Flag `--settings` den Schlüssel setzt, da ein Benutzereinstellungswert dann nicht gelten würde. Claude Code lehnt die Kurzform `/config crossSessionInbound=value` für diesen Schlüssel ab.

242 

243Um zu sehen, welcher Wert gilt, folgen Sie den `crossSessionInbound`-Vorrangregeln in der [Einstellungsreferenz](/docs/de/settings-reference#crosssessioninbound). Wenn kein Wert gilt, entscheidet Claude Code pro Nachricht aus den Berechtigungsmodi der beiden Sitzungen. Es gruppiert Sitzungen, die [Berechtigungsaufforderungen umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), in eine Klasse und jede andere Sitzung in die andere. Plan Mode zählt als Umgehen in Sitzungen mit verfügbaren Bypass-Berechtigungen, und [auto](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits` und `dontAsk` zählen als Aufforderung:

244 

245* **Die empfangende Sitzung fordert Berechtigungen an**: Claude Code übermittelt jede Nachricht. Es hält eine nur für Ihre Genehmigung, wenn die sendende Sitzung sich selbst als Umgehen von Berechtigungsaufforderungen identifiziert.

246* **Die empfangende Sitzung umgeht Berechtigungsaufforderungen**: Claude Code hält jede Nachricht für Ihre Genehmigung. Es übermittelt eine nur, wenn die sendende Sitzung sich selbst auch als Umgehen identifiziert.

247 

248Wenn der Standard eine Nachricht hält, öffnet Claude Code einen Genehmigungsdialog in der empfangenden Sitzung. Der Dialog zeigt den Absender und eine Vorschau:

249 

250* **Genehmigen** übermittelt diese eine Nachricht an Claude.

251* **Ablehnen** oder das Schließen des Dialogs verwirft sie.

252* Wenn der Dialog über die [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry)-Frist hinaus unantwortlich bleibt, schließt Claude Code ihn und verwirft die Nachricht. Die Frist beträgt standardmäßig fünf Minuten.

253* Während kein Terminal an eine [Hintergrund-Sitzung](/docs/de/agent-view) angehängt ist, lässt Claude Code den Dialog über die Frist hinaus offen. Nachdem Sie angehängt haben, schließt Claude Code den Dialog und verwirft die Nachricht nur, wenn sie für einen vollständigen Fristzeitraum unantwortlich bleibt.

254* Wenn sich die Berechtigungsmodus-Klasse dieser Sitzung ändert, während Nachrichten gehalten werden, wendet Claude Code die Inbound-Regeln erneut an, übermittelt die Nachrichten, die sie jetzt akzeptieren, und zeigt eine Benachrichtigung an.

255* Wenn eine Einstellungsänderung `refuse` anwendbar macht, während Nachrichten gehalten werden, verwirft Claude Code jede gehaltene Nachricht und meldet eine Ablehnung an jeden Absender, den es erreichen kann.

256 

257Wenn der Absender eine interaktive Sitzung auf dem gleichen Computer ist, zeigt Claude Code dort eine Benachrichtigung, wenn der Empfänger die Nachricht hält, und eine Nachverfolgung, wenn der Empfänger sie später übermittelt, ablehnt oder ablaufen lässt. Wenn der Empfänger sie ablehnt, zeigt Claude Code dort eine Benachrichtigung an, dass der Empfänger keine Cross-Session-Nachrichten akzeptiert, und teilt dem Claude des Absenders mit, nicht zu warten oder erneut zu senden.

258 

259Claude Code hält höchstens 100 Nachrichten, getrennt von der Übermittlungswarteschlange, und verwirft danach die ältesten.

260 

261<h3 id="non-interactive-sessions">

262 Nicht-interaktive Sitzungen

263</h3>

264 

265Claude Code bindet einen Inbox-Socket für eine [`claude -p`](/docs/de/headless)-Sitzung wie eine interaktive, sodass ein langfristiger `-p`-Worker Nachrichten empfangen kann und in der Auflistung angezeigt wird. Wenn Sie eine Sitzung im [Bare Mode](/docs/de/headless#start-faster-with-bare-mode) starten, bindet Claude Code den Socket nicht, sodass diese Sitzung keine Nachrichten empfangen kann und nicht in der Agent-Liste angezeigt wird.

266 

267Eine `-p`-Sitzung kann den Genehmigungsdialog nicht anzeigen. Wenn der [Inbound-Standard](#control-inbound-messages) eine Nachricht dort hält, behält Claude Code sie für die gleiche [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry)-Frist, die der Dialog verwendet, standardmäßig fünf Minuten:

268 

269* **Vor der Frist**: Wenn eine Einstellung oder Einstellungsänderung die Nachricht zulässt, übermittelt Claude Code sie.

270* **Nach der Frist**: Claude Code verwirft die Nachricht und meldet sie als abgelaufen an einen Absender, den es erreichen kann.

271 

272Setzen Sie `dialogExpiry` auf `"never"`, um Standard-gehaltene Nachrichten bis zum Ende der Sitzung zu behalten. Eine Nachricht, die durch eine explizite `hold`-Einstellung gehalten wird, läuft nicht ab; Claude Code übermittelt sie nur, wenn ein `accept` später gilt.

273 

274Wenn die Sitzung mit noch gehaltenen Nachrichten endet, meldet Claude Code sie als abgelaufen an jeden Absender, den es erreichen kann. Vor v2.1.225 galt keine Frist in einer `-p`-Sitzung: Eine gehaltene Nachricht blieb gehalten, es sei denn, eine Berechtigungsmodus-Änderung während des Laufs übermittelte sie, und eine Sitzung, die mit gehaltenen Nachrichten endete, meldete nichts an ihre Absender.

275 

276Um einen `-p`-Worker unbeaufsichtigt Nachrichten zu nehmen, starten Sie ihn mit `crossSessionInbound` auf `accept` in seinem `--settings`-Wert. Ein `accept` in Ihren Benutzereinstellungen funktioniert auch, gilt aber für jede Sitzung, die Sie ausführen.

277 

278<h3 id="the-sessions-inbox-socket">

279 Der Inbox-Socket der Sitzung

280</h3>

281 

282Lesen Sie diesen Abschnitt, wenn eine Sitzung, die Sie erwarten, nicht in der Agent-Liste ist, wenn Sie möchten, dass ein Skript oder Hook in eine Sitzung postet, oder wenn ein sandboxierter Befehl den Socket nicht erreichen kann.

283 

284Claude Code bindet einen Inbox-Socket für jede Sitzung mit aktiviertem Cross-Session-Messaging, wo andere Sitzungen auf dem Computer Nachrichten übermitteln. Der Socket ist ein Unix-Domain-Socket auf macOS und Linux, einschließlich Linux in WSL 2, und ein Named Pipe auf nativem Windows. Für welche Sitzungstypen einen binden, siehe [Nicht-interaktive Sitzungen](#non-interactive-sessions).

285 

286Sie können den Pfad des Sockets an zwei Stellen finden:

287 

288* `/status` zeigt ihn in der Zeile `Peer address`. Der Pfad ist mit `uds:` vorangestellt.

289* Claude Code exportiert ihn zu [Hooks](/docs/de/hooks) und Bash-Befehlen als die Umgebungsvariable [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/de/env-vars#variables):

290 * In einer Sitzung, die mit aktiviertem Messaging startet, exportiert Claude Code die Variable, bevor ein Hook läuft, einschließlich `SessionStart`.

291 * Jede Sitzung exportiert ihren eigenen Socket, niemals einen, der von einer übergeordneten Sitzung geerbt wird.

292 

293Auf macOS und Linux beschränkt Claude Code den Socket auf Ihren Betriebssystem-Benutzer. Auf nativem Windows erfordert es stattdessen, dass jede Verbindung sich zuerst mit einem Schlüssel authentifiziert, den nur Ihr Betriebssystem-Benutzer lesen kann. Auf jeden Fall kann auf einem gemeinsamen Computer die Sitzung eines anderen Benutzers nicht an ihn übermitteln.

294 

295Auf macOS und Linux lehnt Claude Code auch ab, den Socket in einem Verzeichnis zu erstellen, das es nicht akzeptieren kann, zum Beispiel eines, das ein anderer Benutzer besitzt, und verwendet stattdessen ein privates Pro-Benutzer-Verzeichnis, `/tmp/cc-socks-<uid>`. Wenn es kein Verzeichnis akzeptieren kann, läuft die Sitzung ohne einen Inbox: Claude Code zeigt eine Benachrichtigung, `/status` zeigt `unavailable` und den Grund in seiner Zeile `Peer address`, und das [`--debug`](/docs/de/cli-reference#cli-flags)-Protokoll erfasst die vollständige Ablehnung.

296 

297Neben dem Pfad des Sockets exportiert Claude Code ein Pro-Sitzungs-Token als [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/de/env-vars#variables). Ein Skript, das an seinen eigenen Socket der Sitzung postet, kann `{"type":"auth","token":"<token>"}` als erste Zeile seiner Verbindung senden, wobei `<token>` der Wert von `CLAUDE_CODE_MESSAGING_TOKEN` ist. Ob Claude Code die Zeile erfordert, hängt von der Plattform ab:

298 

299* **macOS und Linux, einschließlich WSL 2**: die Zeile ist optional. Claude Code akzeptiert eine Verbindung mit oder ohne sie.

300* **Natives Windows**: die Zeile ist erforderlich. Claude Code schließt jede Verbindung, deren erste Zeile keine gültige Auth-Zeile ist, und übermittelt nichts von dieser Verbindung.

301 

302Öffnen Sie die Verbindung nur, wenn die Nachricht, die Sie posten, bereit ist. Claude Code schließt eine Verbindung, die innerhalb von 30 Sekunden keine vollständige Zeile gesendet hat, sodass erfassen Sie zuerst die Ausgabe eines langsamen Befehls und öffnen Sie dann die Verbindung, um sie zu senden.

303 

304Die [Eigene-Kind-Regeln](#own-child-messages) unten sagen, wann Claude Code das Token konsultiert und wie es eine Nachricht behandelt, die es nicht verifizieren kann.

305 

306<span id="own-child-messages" />Claude Code führt Nachrichten, die auf dem Socket ankommen, durch die gleichen [Inbound-Kontrollen](#control-inbound-messages) wie jede andere Peer-Nachricht, mit einer Ausnahme und einer Voraussetzung:

307 

308* **Eigene-Kind-Nachrichten**: Wenn kein `crossSessionInbound`-Wert gilt, übermittelt Claude Code eine Nachricht, die es verifiziert, kam von den eigenen Kind-Prozessen der Sitzung, wie ein Hook oder Bash-Befehl, der an seinen eigenen Socket der Sitzung zurückpostet.

309 * Auf Linux, einschließlich in WSL 2, kann Claude Code durch Prozess-Beweis verifizieren, auch für ein Kind, das bereits beendet wurde. Auf macOS kann es das nur verifizieren, während der postende Prozess noch läuft, und in einem Container, wo Claude Code als Prozess-ID 1 läuft, hat es überhaupt keinen Prozess-Beweis. Auf nativem Windows hat es auch keinen.

310 * Auf macOS, nachdem der postende Prozess beendet wurde, und in Containern, wo Claude Code als Prozess-ID 1 läuft, fehlt dieser Prozess-Beweis, und Claude Code verifiziert stattdessen ein Kind, das das exportierte [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/de/env-vars#variables) der Sitzung in der Auth-Zeile gesendet hat, die seine Verbindung öffnete. Auf nativem Windows ist dieses Token die einzige Möglichkeit, wie Claude Code eine Eigene-Kind-Nachricht verifiziert.

311 * Wenn Claude Code auf keine Weise verifizieren kann, behandelt es die Nachricht wie jede andere, die keine Berechtigungsklasse behauptet, sodass eine Sitzung, die Berechtigungsaufforderungen umgeht, sie für Ihre Genehmigung hält.

312* **Sandboxierte Sitzungen**: Kontrollieren Sie, ob ein Bash-Befehl den Socket von innen in der [Sandbox](/docs/de/sandboxing) mit den Unix-Socket-Einstellungen der Sandbox erreichen kann, [`sandbox.network.allowAllUnixSockets` und `sandbox.network.allowUnixSockets`](/docs/de/settings-reference#sandbox-settings).

313 

314<h2 id="restrict-cross-session-messaging">

315 Cross-Session-Messaging einschränken

316</h2>

317 

318Über die Pro-Nachricht-Standards hinaus können Sie Messaging auf zwei Wegen einschränken. Verlangen Sie Ihre Genehmigung, bevor eine Nachricht den Computer verlässt, oder schalten Sie Messaging für eine Sitzung oder eine Organisation aus.

319 

320<h3 id="require-approval-for-cross-machine-messages">

321 Genehmigung für Cross-Computer-Nachrichten verlangen

322</h3>

323 

324Setzen Sie [`isolatePeerMachines`](/docs/de/settings-reference#isolatepeermachines) auf `true`, um Ihre explizite Genehmigung zu verlangen, bevor ein `SendMessage` eine Sitzung jenseits dieses Computers erreicht:

325 

326```json theme={null}

327{

328 "isolatePeerMachines": true

329}

330```

331 

332Mit diesem Satz fragt Claude Code nach Ihrer Genehmigung, bevor Claude's Nachricht an eine Sitzung jenseits dieses Computers geht, auch im `bypassPermissions`-Modus, der gewöhnliche Berechtigungsaufforderungen überspringt. Ein `true` aus einem beliebigen Einstellungsbereich gilt, sodass eine eingecheckte Projektdatei die Anforderung einschalten, aber nicht ausschalten kann. Claude Code fordert nicht für Nachrichten zwischen Sitzungen auf dem gleichen Computer auf.

333 

334<h3 id="turn-off-cross-session-messaging">

335 Cross-Session-Messaging ausschalten

336</h3>

337 

338Empfangen und Senden sind separate Kontrollen, schalten Sie also aus, welche Richtung Sie benötigen, oder beide. Verwenden Sie `crossSessionInbound` für Nachrichten, die ankommen, und Berechtigungsregeln für das, was Claude hier senden oder auflisten kann:

339 

340* **Empfangen stoppen**: Setzen Sie `crossSessionInbound` auf `refuse`, und Claude Code verwirft eingehende Peer-Nachrichten, ohne sie zu übermitteln. Aus Projekt- oder lokalen Einstellungen gilt `refuse` über jede andere Quelle, und aus Ihren Benutzereinstellungen gilt es, es sei denn, verwaltete Einstellungen oder das Flag `--settings` setzen einen Wert.

341* **Senden und Auflisten stoppen**: Fügen Sie [Berechtigungsregeln zum Ablehnen](/docs/de/permissions#tool-specific-permission-rules) hinzu, die `SendMessage` und `ListAgents` benennen. Beide nehmen den bloßen Tool-Namen ohne Spezifizierer.

342 

343Administratoren können beide Seiten für eine Organisation in [verwalteten Einstellungen](/docs/de/managed-settings) ausschalten, indem sie die Ablehnungsregeln mit dem `refuse` kombinieren:

344 

345```json theme={null}

346{

347 "permissions": {

348 "deny": ["SendMessage", "ListAgents"]

349 },

350 "crossSessionInbound": "refuse"

351}

352```

353 

354Mit diesem an Ort und Stelle bindet Claude Code immer noch den Inbox-Socket jeder Sitzung, verwirft aber jede Nachricht, die darauf ankommt, ohne etwas an Claude zu übermitteln. Das Ablehnen von `SendMessage` entfernt auch Messaging an Subagenten und Agent-Team-Teamkollegen, da das gleiche Tool beiden dient. Eine ablehnende Sitzung zeigt keine sichtbare Änderung in ihrem eigenen `/status` oder in den Auflistungen anderer Sitzungen auf dem gleichen Computer, um es zu bestätigen, überprüfen Sie die Einstellungsdateien, die auf diese Sitzung gelten, anstatt ihren Status.

355 

356<h2 id="availability">

357 Verfügbarkeit

358</h2>

359 

360Cross-Session-Messaging erfordert Claude Code v2.1.224 oder später auf macOS, Linux und WSL 2, und v2.1.234 oder später auf nativem Windows. Verfügbarkeit und welche Sitzungen Claude benachrichtigen kann, hängen auch von Ihrem Betriebssystem, Anbieter und Konfiguration ab:

361 

362* **Betriebssystem**: verfügbar auf macOS, Windows und Linux, einschließlich Linux in WSL 2.

363 

364* **Sitzungen auf diesem Computer**: verfügbar auf jedem Anbieter, einschließlich Amazon Bedrock, Claude Platform auf AWS, Google Cloud's Agent Platform und Microsoft Foundry, und in Sitzungen, die mit [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) aus laufen. Auf diesen Anbietern und mit Flag-Abruf aus erfordert Same-Machine-Messaging Claude Code v2.1.248 oder später. Claude Code übermittelt diese Nachrichten über einen [Pro-Sitzungs-Socket auf Ihrem Computer](#the-sessions-inbox-socket), niemals durch Anthropic-Server.

365 

366 Um eine Sitzung davon abzuhalten, sie zu empfangen, setzen Sie [`crossSessionInbound`](#turn-off-cross-session-messaging) auf `refuse`.

367 

368* **Sitzungen jenseits dieses Computers**: Claude findet Ihre [Claude Code im Web](/docs/de/claude-code-on-the-web)-Sitzungen und Ihre Sitzungen auf anderen Computern von einer Sitzung, die mit Remote Control verbunden ist, was eine claude.ai-Anmeldung als aktive Authentifizierung dieser Sitzung und die anderen [Remote Control-Anforderungen](/docs/de/remote-control#requirements) benötigt. Claude kann diese Sitzungen nicht mit einem API-Schlüssel oder auf Amazon Bedrock, Claude Platform auf AWS, Google Cloud's Agent Platform und Microsoft Foundry finden.

369 

370Um eine Sitzung zu überprüfen, geben Sie `/list-agents` ein, auch verfügbar als `/peers`. Das Ergebnis trennt eine Sitzung, die die Funktion nicht hat, von einer Sitzung, wo etwas Engeres eine Nachricht blockierte, wie ein fehlendes `SendMessage`-Tool oder ein abgelehnter Send:

371 

372* **`/list-agents` wird nicht erkannt**: die Sitzung hat kein Cross-Session-Messaging. Arbeiten Sie durch die Anforderungen oben, beginnend mit `claude --version` für die Versionsanforderung.

373* **`/list-agents` funktioniert, aber ein Send kam nicht an**: Messaging ist an, und etwas Engeres gilt:

374 * **Ablehnungsregeln**: eine [Berechtigungsregel zum Ablehnen](#turn-off-cross-session-messaging) entfernt die Tools `SendMessage` und `ListAgents`.

375 * **Inbound-Kontrollen**: die [Inbound-Kontrollen der empfangenden Sitzung](#control-inbound-messages) können das, was Sie senden, halten oder ablehnen.

376 * **Cloud-Sitzung fehlt**: eine Cloud-Sitzung erscheint nur, während diese Sitzung mit [Remote Control](/docs/de/remote-control) verbunden ist.

377 * **Sitzung auf anderem Computer fehlt**: eine Sitzung auf einem anderen Ihrer Computer erscheint nur, wenn sie mit [Remote Control](/docs/de/remote-control) läuft und diese Sitzung auch verbunden ist.

378 * **Sitzung auf anderem Computer `offline`**: eine Nachricht an eine Sitzung, die als `offline` aufgelistet ist, wird durchgeleitet, kommt aber [erst an, nachdem sich der Computer dieser Sitzung wieder verbindet](#message-sessions-on-other-machines).

379 * **Ältere Cloud- oder Sitzung auf anderem Computer fehlt**: Claude Code [liest diese Sitzungslisten neueste zuerst und stoppt nach einer begrenzten Anzahl von Seiten](#see-which-sessions-claude-can-reach), sodass Claude eine Sitzung, die über sie hinausfiel, nicht nach Name benachrichtigen kann.

380 * **Ein Gespräch starten**: [Nachrichten an Sitzungen auf anderen Computern](#message-sessions-on-other-machines) behandelt das Starten eines Gesprächs mit einer Sitzung jenseits dieses Computers.

381 

382In einer Sitzung mit Messaging zeigt `/status` auch eine Zeile `Peer address` mit der eigenen Inbox-Adresse der Sitzung, oder `unavailable` und den Grund, wenn Claude Code [einen Inbox nicht einrichten konnte](#the-sessions-inbox-socket).

383 

384<h2 id="limitations">

385 Einschränkungen

386</h2>

387 

388Die Grenzen hier sind Eigenschaften des Messaging-Kanals selbst und gelten überall dort, wo die Funktion läuft. Für Plattform- und Anbieter-Lücken, siehe stattdessen [Verfügbarkeit](#availability).

389 

390* **Nur Klartext**: Claude sendet nur Klartext über Sitzungen. Strukturierte [Agent-Team](/docs/de/agent-teams)-Protokoll-Nachrichten bleiben in einem Team.

391* **Same-Machine-Nachrichtengröße ist begrenzt**: Claude Code lehnt eine Nachricht an eine Sitzung auf diesem Computer ab, sobald ihre serialisierte Form etwa eine Million Zeichen überschreitet. Die Ablehnung [benennt die genauen Größen](/docs/de/errors#message-too-large-for-cross-session-delivery). Nichts erreicht die empfangende Sitzung.

392* **Schnelle Bursts an eine Sitzung werden beim Absender abgelehnt**: Sobald ein schneller Burst von Nachrichten an eine Sitzung auf diesem Computer erreicht, was diese Sitzung akzeptiert, lehnt Claude Code weitere Sends in der sendenden Sitzung ab. Die [Ablehnung benennt den Burst](/docs/de/errors#too-many-messages-to-this-session-just-now) und teilt Claude mit, den Rest in eine Nachricht zu packen oder zu warten. Vor v2.1.236 meldete Claude Code diese Sends als gesendet, während die empfangende Sitzung sie verwarf.

393* **Nachrichtenschleifen werden gedrosselt**: In der empfangenden Sitzung drosselt Claude Code wiederholte Nachrichten pro Absender, verwirft identische Wiederholungen, die in einem kurzen Fenster ankommen, und reiht höchstens 50 akzeptierte Nachrichten für Claude zum Lesen ein. Eine Nachrichtenschleife zwischen zwei Sitzungen stoppt daher von selbst. Wenn die Ratenbegrenzung, Wiederholungsprüfung oder Warteschlangen-Obergrenze eine Nachricht von einer interaktiven Sitzung auf diesem Computer verwirft, teilt Claude Code dieser Sitzung mit, welche verwirft wurde, und teilt ihrem Claude mit, nicht sofort erneut zu senden.

394 

395<h2 id="related-resources">

396 Verwandte Ressourcen

397</h2>

398 

399* [Subagenten](/docs/de/sub-agents#resume-subagents) und [Agent-Teams](/docs/de/agent-teams#messages-between-agents): Messaging innerhalb einer einzelnen Sitzung oder eines Teams

400* [Hintergrund-Agenten](/docs/de/agent-view): Versenden und überwachen Sie die parallelen Sitzungen, die Sie möglicherweise benachrichtigen

401* [Remote Control](/docs/de/remote-control): Verbinden Sie diese Sitzung, um Ihre Sitzungen auf anderen Computern zu erreichen

402* [Einstellungen](/docs/de/settings-reference#all-settings): `crossSessionInbound`, `isolatePeerMachines` und `dialogExpiry`

403* [Berechtigungsmodi](/docs/de/permission-modes): die Modi hinter den zwei Klassen des Inbound-Standards

404* [Tools-Referenz](/docs/de/tools-reference): die Zeilen `ListAgents` und `SendMessage` in der Tools-Tabelle

405* [Agenten parallel ausführen](/docs/de/agents): vergleichen Sie die Wege, wie Claude Code mehrere Agenten ausführt

Details

73* Ein falsch geschriebener Tool-Name erzeugt einen Matcher, der nichts entspricht, sodass der Hook stillschweigend fehlschlägt.73* Ein falsch geschriebener Tool-Name erzeugt einen Matcher, der nichts entspricht, sodass der Hook stillschweigend fehlschlägt.

74* Ein Array-Wert ist ein Schemafehler: Claude Code zeigt einen Einstellungsfehler an und lehnt die gesamte Benutzer-, Projekt- oder lokale Einstellungsdatei ab, `claude doctor` meldet den Validierungsfehler, und kein Hook aus dieser Datei wird in `/hooks` angezeigt. In [verwalteten Einstellungen](/docs/de/managed-settings) löscht Claude Code den gesamten `hooks`-Schlüssel aus der Datei, die das Array enthält, sodass keine Hooks aus dieser Datei gelten. Die anderen Einstellungen der Datei gelten weiterhin, und `claude doctor` listet den gelöschten Schlüssel auf.74* Ein Array-Wert ist ein Schemafehler: Claude Code zeigt einen Einstellungsfehler an und lehnt die gesamte Benutzer-, Projekt- oder lokale Einstellungsdatei ab, `claude doctor` meldet den Validierungsfehler, und kein Hook aus dieser Datei wird in `/hooks` angezeigt. In [verwalteten Einstellungen](/docs/de/managed-settings) löscht Claude Code den gesamten `hooks`-Schlüssel aus der Datei, die das Array enthält, sodass keine Hooks aus dieser Datei gelten. Die anderen Einstellungen der Datei gelten weiterhin, und `claude doctor` listet den gelöschten Schlüssel auf.

75 75 

76Änderungen an `settings.json` werden in der laufenden Sitzung nach einer kurzen Dateistabilitätsverzögerung wirksam. Sie müssen nicht neu starten. Wenn `/hooks` einige Sekunden nach dem Speichern immer noch die alte Definition anzeigt, führen Sie `/hooks` erneut aus, um die Ansicht zu aktualisieren.76Wenn Sie `settings.json` bearbeiten, wird die Änderung in der laufenden Sitzung nach einer kurzen Dateistabilitätsverzögerung wirksam, auch wenn Sie die Datei oder den `.claude/`-Ordner des Projekts selbst nach dem Start der Sitzung erstellen. Sie müssen nicht neu starten. Vor v2.1.257 erkannte Claude Code Bearbeitungen in einem `.claude/`-Ordner, der nach dem Start der Sitzung erstellt wurde, nicht.

77 

78Wenn `/hooks` einige Sekunden nach dem Speichern immer noch die alte Definition anzeigt, führen Sie `/hooks` erneut aus, um die Ansicht zu aktualisieren.

77 79 

78Wenn `/hooks` den Hook anzeigt, aber er wird immer noch nicht ausgelöst, besteht der nächste Schritt darin, die Hook-Auswertung live zu beobachten. Starten Sie eine Sitzung mit `claude --debug` und lösen Sie den Tool-Aufruf aus. Das Debug-Protokoll zeichnet jedes Ereignis, welche Matcher überprüft wurden, und den Exit-Code und die Ausgabe des Hooks auf. Siehe [Debug Hooks](/docs/de/hooks#debug-hooks) für das Protokollformat und [Hooks Troubleshooting](/docs/de/hooks-guide#limitations-and-troubleshooting) für häufige Fehlermuster.80Wenn `/hooks` den Hook anzeigt, aber er wird immer noch nicht ausgelöst, besteht der nächste Schritt darin, die Hook-Auswertung live zu beobachten. Starten Sie eine Sitzung mit `claude --debug` und lösen Sie den Tool-Aufruf aus. Das Debug-Protokoll zeichnet jedes Ereignis, welche Matcher überprüft wurden, und den Exit-Code und die Ausgabe des Hooks auf. Siehe [Debug Hooks](/docs/de/hooks#debug-hooks) für das Protokollformat und [Hooks Troubleshooting](/docs/de/hooks-guide#limitations-and-troubleshooting) für häufige Fehlermuster.

79 81 


120| Projekt-MCP-Server hinzugefügt, aber erscheint nicht | Die einmalige Genehmigungsaufforderung wurde verworfen | Projektbezogene Server erfordern Genehmigung. Führen Sie `/mcp` aus, um den Status zu sehen und zu genehmigen. |122| Projekt-MCP-Server hinzugefügt, aber erscheint nicht | Die einmalige Genehmigungsaufforderung wurde verworfen | Projektbezogene Server erfordern Genehmigung. Führen Sie `/mcp` aus, um den Status zu sehen und zu genehmigen. |

121| MCP-Server kann nicht von einigen Verzeichnissen aus gestartet werden | `command` oder `args` verwendet einen relativen Dateipfad | Verwenden Sie absolute Pfade für lokale Skripte. Ausführbare Dateien auf Ihrem `PATH` wie `npx` oder `uvx` funktionieren wie gewohnt. |123| MCP-Server kann nicht von einigen Verzeichnissen aus gestartet werden | `command` oder `args` verwendet einen relativen Dateipfad | Verwenden Sie absolute Pfade für lokale Skripte. Ausführbare Dateien auf Ihrem `PATH` wie `npx` oder `uvx` funktionieren wie gewohnt. |

122| MCP-Server startet ohne erwartete Umgebungsvariablen | Die Serverkonfiguration setzt sie nicht, und sie befinden sich nicht in der Umgebung, die Claude Code an stdio-Server übergibt: seine eigene Umgebung, minus die [Variablen, die es aus Unterprozessen entfernt](/docs/de/monitoring-usage#administrator-configuration) | Setzen Sie pro-Server `env` in der Serverkonfiguration `.mcp.json`, was nicht von der Startumgebung oder dem Workspace-Vertrauen abhängt. |124| MCP-Server startet ohne erwartete Umgebungsvariablen | Die Serverkonfiguration setzt sie nicht, und sie befinden sich nicht in der Umgebung, die Claude Code an stdio-Server übergibt: seine eigene Umgebung, minus die [Variablen, die es aus Unterprozessen entfernt](/docs/de/monitoring-usage#administrator-configuration) | Setzen Sie pro-Server `env` in der Serverkonfiguration `.mcp.json`, was nicht von der Startumgebung oder dem Workspace-Vertrauen abhängt. |

123| `Bash(rm *)`-Deny-Regel blockiert nicht `/bin/rm` oder `find -delete` | Präfix-Regeln entsprechen der wörtlichen Befehlszeichenkette, nicht der zugrunde liegenden ausführbaren Datei | Fügen Sie explizite Muster für jede Variante hinzu, oder verwenden Sie einen [PreToolUse-Hook](/docs/de/hooks-guide) oder die [Sandbox](/docs/de/sandboxing) für eine harte Garantie. |125| `Bash(rm *)`-Deny-Regel blockiert nicht `/bin/rm` oder `find -delete` | Bash-Regeln entsprechen der wörtlichen Befehlszeichenkette, nicht der zugrunde liegenden ausführbaren Datei; siehe [was eine Bash-Regel nicht entspricht](/docs/de/permissions#bash-rule-limits) | Verwenden Sie einen [PreToolUse-Hook](/docs/de/hooks-guide) oder die [Sandbox](/docs/de/sandboxing) für eine harte Garantie. |

124 126 

125<h2 id="related-resources">127<h2 id="related-resources">

126 Verwandte Ressourcen128 Verwandte Ressourcen

desktop.md +16 −11

Details

9Die Claude Desktop-App hat drei Registerkarten: **Chat** für Gespräche, **Cowork** für [Dispatch und längere agentengestützte Arbeiten](https://claude.com/product/cowork) und **Code** für Softwareentwicklung. Diese Seite ist die Referenz für die Registerkarte Code.9Die Claude Desktop-App hat drei Registerkarten: **Chat** für Gespräche, **Cowork** für [Dispatch und längere agentengestützte Arbeiten](https://claude.com/product/cowork) und **Code** für Softwareentwicklung. Diese Seite ist die Referenz für die Registerkarte Code.

10 10 

11<CardGroup cols={3}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Für macOS herunterladen" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universeller Build für Intel und Apple Silicon

14 </Card>14 </Card>

15 15 

16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Für Windows herunterladen" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 Für x64-Prozessoren

18 </Card>18 </Card>

19 19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/docs/en/desktop-linux">20 <Card title="Claude für Linux abrufen (Beta)" icon="linux" href="/docs/de/desktop-linux">

21 apt or .deb for Ubuntu and Debian21 apt oder .deb für Ubuntu und Debian

22 </Card>22 </Card>

23</CardGroup>23</CardGroup>

24 24 

25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/docs/en/desktop-linux).25Für Windows ARM64 laden Sie das [ARM64-Installationsprogramm](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs) herunter. Unter Linux installieren Sie mit apt; siehe [Claude Desktop unter Linux](/docs/de/desktop-linux).

26 26 

27Nach der Installation starten Sie Claude, melden sich an und klicken auf die Registerkarte **Code**. Beim ersten Öffnen unter Windows benötigen Sie [Git für Windows](https://git-scm.com/downloads/win) installiert; starten Sie die App nach der Installation neu. Eine Anleitung für Ihre erste Sitzung finden Sie im [Leitfaden „Erste Schritte"](/docs/de/desktop-quickstart).27Nach der Installation starten Sie Claude, melden sich an und klicken auf die Registerkarte **Code**. Beim ersten Öffnen unter Windows benötigen Sie [Git für Windows](https://git-scm.com/downloads/win) installiert; starten Sie die App nach der Installation neu. Eine Anleitung für Ihre erste Sitzung finden Sie im [Leitfaden „Erste Schritte"](/docs/de/desktop-quickstart).

28 28 


98 98 

99<span id="auto-mode-availability" />99<span id="auto-mode-availability" />

100 100 

101Auto mode ist für alle Benutzer auf der Anthropic API verfügbar und erfordert Claude Opus 4.6 oder später, Sonnet 4.6 oder später, oder ein Fable-Modell. Organisationsadministratoren können Auto mode mit dem Schlüssel `disableAutoMode` in [verwalteten Einstellungen](#managed-settings) ausschalten.101Auto mode ist für alle Benutzer auf der Anthropic API verfügbar und erfordert Claude Opus 4.6 oder später, Sonnet 4.6 oder später, oder ein [Fable-Modell](/docs/de/model-config#work-with-fable). Organisationsadministratoren können Auto mode mit dem Schlüssel `disableAutoMode` in [verwalteten Einstellungen](#managed-settings) ausschalten.

102 102 

103Bei Enterprise-Bereitstellungen, die Desktop zu Google Cloud's Agent Platform weiterleiten, ist Auto mode auch standardmäßig verfügbar; siehe [Auto mode on Bedrock, Agent Platform, or Foundry](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) für die unterstützten Modelle.103Bei Enterprise-Bereitstellungen, die Desktop zu Google Cloud's Agent Platform weiterleiten, ist Auto mode auch standardmäßig verfügbar; siehe [Auto mode on Bedrock, Agent Platform, or Foundry](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) für die unterstützten Modelle.

104 104 


743 743 

744Cloud-Sitzungen werden im Hintergrund fortgesetzt, auch wenn Sie die App schließen. Die Nutzung wird auf Ihre [Abonnementplanlimits](/docs/de/costs) angerechnet, ohne separate Compute-Gebühren.744Cloud-Sitzungen werden im Hintergrund fortgesetzt, auch wenn Sie die App schließen. Die Nutzung wird auf Ihre [Abonnementplanlimits](/docs/de/costs) angerechnet, ohne separate Compute-Gebühren.

745 745 

746Sie können benutzerdefinierte Cloud-Umgebungen mit verschiedenen Netzwerkzugriffsstufen und Umgebungsvariablen erstellen. Wählen Sie das Umgebungs-Dropdown beim Starten einer Cloud-Sitzung und wählen Sie **Cloud-Umgebung hinzufügen**. Siehe [Cloud-Umgebungen konfigurieren](/docs/de/cloud-environments) für Details zur Konfiguration von Netzwerkzugriff und Umgebungsvariablen.746Sie können benutzerdefinierte Cloud-Umgebungen mit verschiedenen Netzwerkzugriffsstufen und Umgebungsvariablen erstellen. Wenn Sie eine Cloud-Sitzung starten, öffnen Sie das Umgebungs-Dropdown im Eingabefeld, um diese zu verwalten:

747 

748* **Eine Umgebung hinzufügen**: wählen Sie **Cloud-Umgebung hinzufügen**

749* **Eine Ihrer eigenen Umgebungen bearbeiten oder archivieren**: fahren Sie mit der Maus darüber und klicken Sie auf das Zahnrad-Symbol

750 

751Siehe [Cloud-Umgebungen konfigurieren](/docs/de/cloud-environments) für Details zur Konfiguration von Netzwerkzugriff und Umgebungsvariablen.

747 752 

748<h3 id="ssh-sessions">753<h3 id="ssh-sessions">

749 SSH-Sitzungen754 SSH-Sitzungen


828Verwaltete Einstellungen überschreiben Projekt- und Benutzereinstellungen und gelten für Claude-Code-Sitzungen in Desktop. Sie können diese Schlüssel in der [verwalteten Einstellungsdatei](/docs/de/managed-settings) Ihrer Organisation oder remote über die Admin-Konsole festlegen.833Verwaltete Einstellungen überschreiben Projekt- und Benutzereinstellungen und gelten für Claude-Code-Sitzungen in Desktop. Sie können diese Schlüssel in der [verwalteten Einstellungsdatei](/docs/de/managed-settings) Ihrer Organisation oder remote über die Admin-Konsole festlegen.

829 834 

830| Schlüssel | Beschreibung |835| Schlüssel | Beschreibung |

831| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |836| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

832| `permissions.disableBypassPermissionsMode` | auf `"disable"` setzen, um Benutzer daran zu hindern, den Bypass-Berechtigungsmodus zu aktivieren. |837| `permissions.disableBypassPermissionsMode` | auf `"disable"` setzen, um Benutzer daran zu hindern, den Bypass-Berechtigungsmodus zu aktivieren. |

833| `disableAutoMode` | auf `"disable"` setzen, um [Auto](/docs/de/permission-modes#eliminate-prompts-with-auto-mode)-Modus aus dem Moduswahlschalter zu entfernen. Auch unter `permissions` akzeptiert. |838| `disableAutoMode` | auf `"disable"` setzen, um [Auto](/docs/de/permission-modes#eliminate-prompts-with-auto-mode)-Modus aus dem Moduswahlschalter zu entfernen. Auch unter `permissions` akzeptiert. |

834| `autoMode` | passen Sie an, was der Auto-Modus-Klassifizierer über Ihre Organisation vertraut und blockiert. Siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config). |839| `autoMode` | passen Sie an, was der Auto-Modus-Klassifizierer über Ihre Organisation vertraut und blockiert. Siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config). |


838| `sshConfigs` | vorkonfigurieren Sie [SSH-Verbindungen](#pre-configure-ssh-connections-for-your-team), die in der Umgebungs-Dropdown angezeigt werden. Benutzer können verwaltete Verbindungen nicht bearbeiten oder löschen. |843| `sshConfigs` | vorkonfigurieren Sie [SSH-Verbindungen](#pre-configure-ssh-connections-for-your-team), die in der Umgebungs-Dropdown angezeigt werden. Benutzer können verwaltete Verbindungen nicht bearbeiten oder löschen. |

839| `sshHostAllowlist` | beschränken Sie [SSH-Sitzungen](#restrict-which-ssh-hosts-users-can-connect-to) auf Hosts, deren aufgelöster Hostname einem dieser Muster entspricht. Ein leeres Array deaktiviert SSH-Sitzungen. Wird nur aus verwalteten Einstellungen gelesen. |844| `sshHostAllowlist` | beschränken Sie [SSH-Sitzungen](#restrict-which-ssh-hosts-users-can-connect-to) auf Hosts, deren aufgelöster Hostname einem dieser Muster entspricht. Ein leeres Array deaktiviert SSH-Sitzungen. Wird nur aus verwalteten Einstellungen gelesen. |

840| `disableDesktopLocalSessions` | auf `true` setzen, um [Code-Sitzungen, die auf dem Gerät ausgeführt werden](#local-sessions-on-managed-devices), auszuschalten und SSH-Sitzungen zu anderen Hosts sowie Cloud-Sitzungen verfügbar zu lassen. Der Wert muss der JSON-Boolean `true` sein. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.37937.0 oder später. |845| `disableDesktopLocalSessions` | auf `true` setzen, um [Code-Sitzungen, die auf dem Gerät ausgeführt werden](#local-sessions-on-managed-devices), auszuschalten und SSH-Sitzungen zu anderen Hosts sowie Cloud-Sitzungen verfügbar zu lassen. Der Wert muss der JSON-Boolean `true` sein. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.37937.0 oder später. |

841| `managedMcpServers` | übertragen Sie MCP-Serverkonfigurationen an alle Benutzer. Nur in Drittanbieter-Desktop-Bereitstellungen (3P) verfügbar. Geben Sie in jedem Eintrag einen Transport von `"http"`, `"sse"` oder `"stdio"`, Verbindungsdetails und optional eine `toolPolicy`-Zuordnung an, um einzuschränken, welche Tools dieses Servers Benutzer aufrufen können. Stellen Sie diesen Schlüssel über die verwaltete Einstellungsdatei, MDM oder eine Claude-Apps-Gateway-Richtlinie [`desktop`-Block](/docs/de/claude-apps-gateway-config#claude-desktop-overlay) bereit, da Drittanbieter-Bereitstellungen keine Admin-Konsolen-Einstellungen erhalten. Um diesen Schlüssel über das Gateway bereitzustellen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server. |846| `managedMcpServers` | übertragen Sie MCP-Serverkonfigurationen an alle Benutzer. Nur in Drittanbieter-Desktop-Bereitstellungen (3P) verfügbar. Geben Sie in jedem Eintrag einen Transport von `"http"`, `"sse"` oder `"stdio"`, Verbindungsdetails und optional eine `toolPolicy`-Zuordnung an, um einzuschränken, welche Tools dieses Servers Benutzer aufrufen können. Stellen Sie diesen Schlüssel über die verwaltete Einstellungsdatei, MDM oder eine Claude-Apps-Gateway-Richtlinie [`desktop`-Block](/docs/de/claude-apps-gateway-config#claude-desktop-overlay) bereit, da Drittanbieter-Bereitstellungen keine Admin-Konsolen-Einstellungen erhalten. Um diesen Schlüssel über das Gateway bereitzustellen, benötigen Sie Claude Code v2.1.232 oder später auf dem Gateway-Server. Dies ist der eigene Schlüssel der Desktop-App; Claude Code liest eine [gleichnamige verwaltete Einstellung](/docs/de/managed-mcp#provide-servers-through-managed-settings) mit einer anderen Eintragsform. |

842 847 

843Welche verwalteten Einstellungen eine Desktop-Sitzung erreichen, hängt davon ab, wo diese Sitzung ausgeführt wird. Modellbeschränkungen wie [`availableModels`](/docs/de/model-config#restrict-model-selection) werden in Desktop-Claude-Code-Sitzungen auf die gleiche Weise durchgesetzt wie in der Terminal-CLI; siehe [Oberflächenabdeckung](/docs/de/model-config#surface-coverage).848Welche verwalteten Einstellungen eine Desktop-Sitzung erreichen, hängt davon ab, wo diese Sitzung ausgeführt wird. Modellbeschränkungen wie [`availableModels`](/docs/de/model-config#restrict-model-selection) werden in Desktop-Claude-Code-Sitzungen auf die gleiche Weise durchgesetzt wie in der Terminal-CLI; siehe [Oberflächenabdeckung](/docs/de/model-config#surface-coverage).

844 849 

desktop-ios-simulator.md +176 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# iOS-Apps im Simulator testen

6 

7> Claude Code Desktop öffnet Ihre App im iOS-Simulator-Bereich, wenn Claude sie erstellt, ausführt oder überprüft. Jede Sitzung hat einen separaten Simulator.

8 

9<Note>

10 Der iOS-Simulator-Bereich befindet sich in der öffentlichen Beta in Claude Code Desktop auf macOS. Er ist in den Pro-, Max-, Team- und Enterprise-Plänen verfügbar, außer in Enterprise-Organisationen mit aktivierter HIPAA-Konfiguration.

11</Note>

12 

13Der iOS-Simulator-Bereich zeigt Ihre App, die in Apples iOS-Simulator läuft, neben Ihrer Unterhaltung in Claude Code Desktop. Wenn Claude Ihre App in einem Simulator erstellt, installiert, startet oder überprüft, öffnet sich der Bereich automatisch und streamt den Gerätebildschirm live. Nutzen Sie ihn, um Claude beim Ausführen und Testen Ihrer App zu beobachten, oder tippen Sie selbst durch die App, während Claude weiterarbeitet.

14 

15Der Simulator-Bereich steuert den Simulator direkt, daher benötigt er keine [Computernutzung](/docs/de/desktop#let-claude-use-your-computer) und übernimmt niemals Ihren Bildschirm oder verbirgt Ihre anderen Fenster. Über die CLI erreicht Claude den iOS-Simulator durch [Computernutzung](/docs/de/computer-use#test-a-simulator-flow), die den Simulator auf Ihrem Bildschirm auf die gleiche Weise steuert wie Sie mit einer Maus.

16 

17<h2 id="requirements">

18 Anforderungen

19</h2>

20 

21Der Simulator-Bereich nutzt Apples Simulator-Tools, die die Desktop-App nicht enthält. Stellen Sie vor dem Starten einer Sitzung sicher, dass Sie folgende Voraussetzungen erfüllen:

22 

23* Claude Desktop v1.24012.0 oder später

24* Einen Mac, da Apples iOS-Simulator nur auf macOS läuft

25* [Xcode](https://developer.apple.com/xcode/) mit installierter iOS-Plattform, die die Simulator-Geräte bereitstellt. Wenn Xcode noch keine Simulatoren auflistet, siehe [Der Simulator-Bereich sagt, dass keine Simulatoren gefunden wurden](#the-simulator-pane-says-no-simulators-were-found)

26 * Verwenden Sie Xcode 26.x. Der Bereich funktioniert noch nicht mit Xcode 27, das die Simulator-App durch Device Hub ersetzt. Wenn `xcode-select` auf Ihrem Mac auf Xcode 27 verweist, siehe [Der Simulator-Bereich schlägt mit Xcode 27 fehl](#the-simulator-pane-fails-with-xcode-27)

27 

28<Note>

29 Auf dieser Seite bezieht sich „Gerät" auf ein simuliertes iPhone oder iPad, eines der gleichen Simulator-Geräte, die Sie in Xcode unter **Window → Devices and Simulators** verwalten, nicht auf physische Hardware.

30</Note>

31 

32Der Simulator-Bereich ist nur in lokalen Sitzungen verfügbar. In [Cloud-](/docs/de/desktop#run-long-running-tasks-remotely) und [SSH-](/docs/de/desktop#ssh-sessions) Sitzungen läuft Claude auf einem Computer, der die Simulatoren auf Ihrem Mac nicht erreichen kann.

33 

34<h2 id="run-your-app-in-the-simulator">

35 Führen Sie Ihre App im Simulator aus

36</h2>

37 

38Sie benötigen keinen Befehl oder keine Einstellung, um den Simulator-Bereich zu öffnen. Claude öffnet ihn, wenn er Ihre App in einem Simulator ausführt.

39 

40<Steps>

41 <Step title="Öffnen Sie Ihr iOS-Projekt">

42 Öffnen Sie in Claude Code Desktop die Registerkarte **Code** und starten Sie eine Sitzung mit dem Projektordner Ihrer App als [Projektordner](/docs/de/desktop#start-a-session). Jedes Projekt, das eine App für den iOS-Simulator erstellt, funktioniert.

43 </Step>

44 

45 <Step title="Bitten Sie Claude, die App auszuführen oder zu testen">

46 Formulieren Sie die Aufgabe rund um das Ausführen oder Überprüfen der App. Zum Beispiel:

47 

48 ```text theme={null}

49 Build the app and run it in the simulator to check the onboarding flow.

50 ```

51 </Step>

52 

53 <Step title="Beobachten Sie die App im Simulator-Bereich">

54 Wenn die App in einem Simulator startet, öffnet sich der iOS-Simulator-Bereich neben der Unterhaltung. Wenn Claude ein Gerät zum ersten Mal nutzt, fragt die Desktop-App Sie um Erlaubnis; siehe [Gewähren Sie Claude Zugriff auf ein Gerät](#grant-claude-access-to-a-device). Claude installiert die App, tippt sie durch und liest den Bildschirm, um seine eigenen Änderungen zu überprüfen, während Sie zuschauen.

55 </Step>

56</Steps>

57 

58Der Simulator-Bereich öffnet sich, wenn Claude die App in einem Simulator startet, an jedem Punkt in der Sitzung. Wenn Ihre Anfrage darum geht, die App zu sehen, zum Beispiel „sieht der neue Bildschirm richtig aus?", startet Claude einen Simulator, bevor er mit der Arbeit beginnt. Nachdem Claude einen Fehler behoben oder einen Bildschirm geändert hat, bitten Sie ihn, die Änderung zu überprüfen: Das Neustarten der App öffnet den Bereich erneut, wenn er nicht offen ist.

59 

60Der Simulator-Bereich zeigt das Gerät, auf dem die App tatsächlich gestartet wurde. Um auf einem bestimmten Gerät zu testen, nennen Sie es in Ihrer Anfrage, zum Beispiel „führe es auf dem iPhone SE Simulator aus", und Claude zielt auf dieses Gerät ab, wenn es erstellt und startet.

61 

62Ein Gerät, das Claude startet, erscheint auch in Apples Simulator-App, und Claude kann die App auf einem Gerät installieren, das Sie bereits gestartet haben.

63 

64Sie können den Simulator-Bereich auch selbst öffnen. Sobald die Sitzung einen Simulator angehängt hat oder Swift-Dateien bearbeitet hat, zeigt das Menü **Views** in der Sitzungs-Symbolleiste einen Eintrag **iOS Simulator**. Wenn der Bereich noch kein Gerät anzeigt, klicken Sie auf **Attach simulator** oder wählen Sie ein bestimmtes Gerät aus dem Geräte-Menü daneben; wenn Sie ein ausgeschaltetes Gerät auswählen, wird es gestartet. Wenn Xcode oder seine Simulatoren fehlen, zeigt der Bereich stattdessen die Einrichtungsschritte an und markiert sie, wenn Sie sie abschließen.

65 

66<h2 id="control-the-simulator-yourself">

67 Steuern Sie den Simulator selbst

68</h2>

69 

70Der Simulator-Bereich ist interaktiv, nicht nur ein Viewer. Während Claude arbeitet oder zwischen Aufgaben können Sie:

71 

72* Tippen und wischen, indem Sie auf dem Gerätebildschirm klicken und ziehen

73* Hardware-Tasten mit den gleichen Tastenkombinationen wie in Apples Simulator-App drücken: **Cmd+Shift+H** für Home, **Cmd+L** zum Sperren, **Cmd+Up Arrow** und **Cmd+Down Arrow** für Lautstärke

74* Das Gerät um eine Vierteldrehung im Uhrzeigersinn mit der Schaltfläche drehen oder **Cmd+Right Arrow**

75* Wechseln Sie das Gerät, das der Bereich anzeigt, über das Geräte-Menü, das die Betriebssystemversion jedes Simulators und seinen Status anzeigt

76* Speichern Sie einen Screenshot mit **Cmd+S** oder eine Bildschirmaufzeichnung mit **Cmd+R**, indem Sie die Erfassungsschaltflächen des Bereichs oder die Tastenkombinationen verwenden; die Dateien werden auf Ihrem Desktop gespeichert

77* Beenden Sie das Streaming eines Geräts, ohne es auszuschalten, indem Sie auf **Detach simulator** klicken, das den Bereich in seinen Zustand **Attach simulator** zurückversetzt

78 

79Die Zeile unter dem Gerätenamen optimiert den Videostrom vom Simulator. Senken Sie **Frame rate** oder **Resolution**, wenn der Bereich Ihren Mac belastet, wechseln Sie **Encoding** zwischen H.264 und JPEG, oder aktivieren Sie **FPS**, um die Bildrate anzuzeigen, die der Bereich empfängt. Diese Einstellungen ändern, wie der Bereich das Gerät anzeigt, nicht wie die App läuft.

80 

81Sie und Claude steuern das gleiche Gerät, daher ändern Ihre Taps den App-Status, den Claude sieht. Um Claude einen bestimmten Bildschirm überprüfen zu lassen, navigieren Sie dorthin, indem Sie tippen, und fragen Sie dann. Während Claude das Gerät steuert, zeigt der Bereich ein Badge **Claude is using this device** über dem Bildschirm an; halten Sie mit dem Tippen an, bis das Badge verschwindet, damit das Ergebnis die App und nicht Ihre Eingabe widerspiegelt.

82 

83<h2 id="how-sessions-manage-devices">

84 Wie Sitzungen Geräte verwalten

85</h2>

86 

87Jedes Gerät gehört der Sitzung, die es gestartet hat, daher teilen sich [parallele Sitzungen](/docs/de/desktop#work-in-parallel-with-sessions) kein Gerät: Was Sie im Bereich einer Sitzung sehen, spiegelt die Arbeit dieser Sitzung wider, nicht die einer anderen. Das Wechseln von Sitzungen in der Seitenleiste wechselt die Simulator-Ansicht zusammen mit der Unterhaltung, und das Zurückwechseln setzt das gleiche Gerät fort, wo es aufgehört hat. Wenn Claude mit mehr als einem Gerät arbeitet, öffnet jedes seinen eigenen Bereich, bis zu 4 pro Sitzung.

88 

89Claude Code Desktop fährt die Simulatoren herunter, die es gestartet hat, sobald sie nicht mehr verwendet werden: wenn Sie die App beenden, wenn Sie die Sitzung archivieren, oder 10 Minuten, nachdem Sie ein Gerät von seinem Bereich trennen. Geräte, die Sie selbst starten, ob vom Bereich oder in Apples Simulator-App, werden niemals automatisch heruntergefahren. Um das angehängte Gerät sofort herunterzufahren, verwenden Sie die Schaltfläche zum Herunterfahren im Bereich.

90 

91<h2 id="grant-claude-access-to-a-device">

92 Claude Zugriff auf ein Gerät gewähren

93</h2>

94 

95Claude fragt nach Ihrer Zustimmung, bevor es ein Gerät steuert, während das Erstellen der App oder das Öffnen einer URL darauf Ihrem Sitzungs-Berechtigungsmodus folgt. Sie oder Ihre Organisation können Claudes Zugriff auch vollständig deaktivieren.

96 

97<h3 id="allow-a-device-the-first-time">

98 Ein Gerät beim ersten Mal zulassen

99</h3>

100 

101Wenn Claude einen Simulator zum ersten Mal verwendet, fragt Sie die Desktop-App, ob Sie ihn zulassen möchten. Die Zustimmung umfasst die Steuerung dieses Geräts und das Erstellen von Screenshots davon, und Sie erteilen sie einmal pro Gerät statt einmal pro Sitzung. Claudes Screenshots des Geräts werden an Anthropic gesendet und unterliegen Ihren normalen Einstellungen zur Aufbewahrung von Gesprächen, daher melden Sie sich nicht bei echten Konten auf einem Gerät an, das Claude verwendet.

102 

103Nachdem Sie ein Gerät zulassen, laufen Claudes Aktionen darauf, wie Tippen, Eingeben, Starten der App und Erstellen von Screenshots, ohne weitere Aufforderungen ab. Sie haben das gleiche Vertrauen wie Ihr Klicken im Bereich, und sie berühren nur das simulierte Gerät, daher benötigt der Bereich nicht die macOS-Barrierefreiheits- und Bildschirmaufzeichnungsberechtigungen, die die Computernutzung erfordert.

104 

105Wenn Sie ablehnen, startet das Gerät immer noch und der Bereich funktioniert immer noch für Ihre eigenen Taps; nur Claudes Zugriff bleibt deaktiviert. Um Ihre Meinung später zu ändern, klicken Sie auf **Let Claude use it** im Bereich.

106 

107<h3 id="actions-that-follow-your-permission-mode">

108 Aktionen, die Ihrem Berechtigungsmodus folgen

109</h3>

110 

111Zwei Aktionen folgen Ihrem Sitzungs-[Berechtigungsmodus](/docs/de/permissions#permission-modes) statt der einmaligen Zustimmung:

112 

113* Das Öffnen einer URL auf dem Gerät, beispielsweise zum Testen eines Deep Links oder zum Laden einer Seite in Safaris des Geräts, da eine URL Daten vom Gerät tragen kann.

114* Das Erstellen der App, da `xcodebuild` die Build-Skripte Ihres Projekts auf Ihrem Mac ausführt. Das Überprüfen eines bereits laufenden Builds wird nicht aufgefordert.

115 

116<h3 id="turn-off-simulator-access">

117 Simulator-Zugriff deaktivieren

118</h3>

119 

120Sie können Claudes Simulator-Zugriff in den Einstellungen der Desktop-App deaktivieren. Organisationen haben zwei Möglichkeiten, ihn für alle zu deaktivieren:

121 

122* Die `disableMobileSimulatorTools` [verwaltete Einstellung](/docs/de/desktop#managed-settings) blockiert Claudes Simulator-Tools. Der Simulator-Bereich bleibt für Ihre eigenen Taps nutzbar, und die Einstellung kann nicht von innerhalb der App überschrieben werden.

123* Der `requireCoworkFullVmSandbox` Policy-Schlüssel, der Claudes Tools in einer isolierten virtuellen Maschine statt auf Ihrem Mac ausführt, deaktiviert den Simulator-Bereich und Claudes Simulator-Tools vollständig, sodass der Bereich kein Gerät anschließen kann, während er gesetzt ist.

124 

125Claude teilt Ihnen mit, wenn einer dieser Fälle zutrifft.

126 

127<h2 id="limitations">

128 Einschränkungen

129</h2>

130 

131Claude steuert nur simulierte Geräte und kann kein physisches iPhone oder iPad steuern. Um auf einem zu testen, führen Sie die App selbst von Xcode aus, beschreiben Sie dann, was Sie sehen, oder hängen Sie einen Screenshot an die Unterhaltung an, damit Claude daraus arbeiten kann.

132 

133<h2 id="troubleshooting">

134 Fehlerbehebung

135</h2>

136 

137<h3 id="the-simulator-pane-doesn’t-open-when-claude-runs-the-app">

138 Der Simulator-Bereich öffnet sich nicht, wenn Claude die App ausführt

139</h3>

140 

141Claude hat möglicherweise nicht erkannt, dass Sie die App ausführen oder testen möchten, oder die Simulator-Tools fehlen möglicherweise. Überprüfen Sie folgende Punkte:

142 

143* Geben Sie das Ziel explizit an, zum Beispiel „führe die App im iOS-Simulator aus und tippe durch den Signup-Flow".

144* Bestätigen Sie, dass Xcode und die iOS-Simulatoren installiert sind und dass Ihre Xcode-Version die [Anforderungen](#requirements) erfüllt.

145* Wenn Ihre Organisation Claude Code verwaltet, können die [Simulator-Tools durch Policy deaktiviert sein](#turn-off-simulator-access).

146* Wenn Sie sich in einer Enterprise-Organisation mit aktivierter HIPAA-Konfiguration befinden, ist der Simulator-Bereich für Sie nicht verfügbar.

147* Der Simulator-Bereich erfordert Claude Desktop v1.24012.0 oder später. Öffnen Sie **Claude → Check for Updates** und starten Sie die App neu.

148 

149<h3 id="the-simulator-pane-says-no-simulators-were-found">

150 Der Simulator-Bereich sagt, dass keine Simulatoren gefunden wurden

151</h3>

152 

153Wenn `xcode-select` auf Xcode 27 verweist, kann der Bereich melden, dass keine Simulatoren gefunden wurden, obwohl Geräte vorhanden sind; siehe [Der Simulator-Bereich schlägt mit Xcode 27 fehl](#the-simulator-pane-fails-with-xcode-27). Andernfalls ist Xcode installiert, hat aber keine iOS-Simulatoren zum Auflisten. Der Simulator-Bereich zeigt die zu befolgenden Einrichtungsschritte an und markiert sie, wenn jeder abgeschlossen ist. Um das fehlende Teil manuell zu installieren, laden Sie die iOS-Simulator-Laufzeit aus den Einstellungen von Xcode herunter, oder führen Sie `xcodebuild -downloadPlatform iOS` aus.

154 

155<h3 id="the-simulator-pane-fails-with-xcode-27">

156 Der Simulator-Bereich schlägt mit Xcode 27 fehl

157</h3>

158 

159Der Bereich funktioniert noch nicht mit Xcode 27, das die Simulator-App durch Device Hub ersetzt. Mit Xcode 27 ausgewählt schlägt das Angehängen eines Geräts fehl, oder der Bereich meldet, dass keine Simulatoren gefunden wurden, obwohl Geräte vorhanden sind.

160 

161Der Bereich nutzt das Xcode, auf das `xcode-select` verweist. Wenn Xcode 27 Ihre einzige Installation ist, installieren Sie zuerst Xcode 26.x daneben. Wählen Sie dann die 26.x-Installation nach ihrem Pfad aus. Wenn es beispielsweise als `/Applications/Xcode-26.4.app` installiert ist:

162 

163```bash theme={null}

164sudo xcode-select -s /Applications/Xcode-26.4.app

165```

166 

167Führen Sie `xcode-select -p` aus, um zu überprüfen, welche Installation ausgewählt ist.

168 

169<h2 id="see-also">

170 Siehe auch

171</h2>

172 

173* [Computernutzung in Desktop](/docs/de/desktop#let-claude-use-your-computer): Bildschirmsteuerung für Apps ohne einen dedizierten Bereich

174* [Computernutzung über die CLI](/docs/de/computer-use): wie die CLI den iOS-Simulator erreicht

175* [Arbeiten Sie parallel mit Sitzungen](/docs/de/desktop#work-in-parallel-with-sessions): wie Sitzungen Änderungen isolieren

176* [Erste Schritte mit Claude Code Desktop](/docs/de/desktop-quickstart)

Details

9Die Desktop-App bietet Ihnen Claude Code mit einer grafischen Benutzeroberfläche, die für die Ausführung mehrerer Sitzungen nebeneinander konzipiert ist: eine Seitenleiste zur Verwaltung paralleler Arbeit, ein Drag-and-Drop-Layout mit integriertem Terminal und Datei-Editor, visuelle Diff-Überprüfung, Live-App-Vorschau, GitHub-PR-Überwachung mit automatischem Merge und geplante Aufgaben. Kein Terminal erforderlich.9Die Desktop-App bietet Ihnen Claude Code mit einer grafischen Benutzeroberfläche, die für die Ausführung mehrerer Sitzungen nebeneinander konzipiert ist: eine Seitenleiste zur Verwaltung paralleler Arbeit, ein Drag-and-Drop-Layout mit integriertem Terminal und Datei-Editor, visuelle Diff-Überprüfung, Live-App-Vorschau, GitHub-PR-Überwachung mit automatischem Merge und geplante Aufgaben. Kein Terminal erforderlich.

10 10 

11<CardGroup cols={3}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Für macOS herunterladen" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universeller Build für Intel und Apple Silicon

14 </Card>14 </Card>

15 15 

16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Für Windows herunterladen" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 Für x64-Prozessoren

18 </Card>18 </Card>

19 19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/docs/en/desktop-linux">20 <Card title="Claude für Linux abrufen (Beta)" icon="linux" href="/docs/de/desktop-linux">

21 apt or .deb for Ubuntu and Debian21 apt oder .deb für Ubuntu und Debian

22 </Card>22 </Card>

23</CardGroup>23</CardGroup>

24 24 

25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/docs/en/desktop-linux).25Für Windows ARM64 laden Sie das [ARM64-Installationsprogramm](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs) herunter. Unter Linux installieren Sie mit apt; siehe [Claude Desktop unter Linux](/docs/de/desktop-linux).

26 26 

27<Note>27<Note>

28 Claude Code erfordert ein [Pro-, Max-, Team- oder Enterprise-Abonnement](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).28 Claude Code erfordert ein [Pro-, Max-, Team- oder Enterprise-Abonnement](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

Details

14 Planungsoptionen vergleichen14 Planungsoptionen vergleichen

15</h2>15</h2>

16 16 

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code bietet drei Möglichkeiten, um wiederkehrende oder einmalige Aufgaben zu planen:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/de/routines) | [Desktop](/docs/de/desktop-scheduled-tasks) | [`/loop`](/docs/de/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |20| :------------------------------- | :------------------------------------------- | :----------------------------------------------- | :--------------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Läuft auf | Cloud, standardmäßig von Anthropic verwaltet | Ihr Computer | Ihr Computer |

22| Requires machine on | No | Yes | Yes |22| Erfordert Computer eingeschaltet | Nein | Ja | Ja |

23| Requires open session | No | No | Yes |23| Erfordert offene Sitzung | Nein | Nein | Ja |

24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |24| Persistent über Neustarts | Ja | Ja | Wiederhergestellt bei `--resume`, mit [Ausnahmen](/docs/de/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Zugriff auf lokale Dateien | Nein (frischer Klon) | Ja | Ja |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP-Server | Konnektoren pro Aufgabe konfiguriert | [Konfigurationsdateien](/docs/de/mcp) und Konnektoren | Erbt von Sitzung |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Berechtigungsaufforderungen | Nein (läuft autonom) | Pro Aufgabe konfigurierbar | Erbt von Sitzung |

28| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |28| Anpassbarer Zeitplan | Via `/schedule` in der CLI | Ja | Ja |

29| Minimum interval | 1 hour | 1 minute | 1 minute |29| Minimales Intervall | 1 Stunde | 1 Minute | 1 Minute |

30 30 

31<Tip>31<Tip>

32 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.32 Verwenden Sie **Cloud-Aufgaben** für Arbeiten, die zuverlässig ohne Ihren Computer ausgeführt werden sollen. Verwenden Sie **Desktop-Aufgaben**, wenn Sie Zugriff auf lokale Dateien und Tools benötigen. Verwenden Sie **`/loop`** für schnelle Abfragen während einer Sitzung.

33</Tip>33</Tip>

34 34 

35<Note>35<Note>

Details

207 </Step>207 </Step>

208 208 

209 <Step title="Verwenden Sie Ihr neues Plugin">209 <Step title="Verwenden Sie Ihr neues Plugin">

210 Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie `/reload-plugins` aus, und wenn dies warnt, dass das Neuladen das Gespräch erneut liest, führen Sie es als `/reload-plugins --force` erneut aus.210 Wenn die Installationszusammenfassung `Run /reload-plugins to activate.` meldet, führt Claude Code dann dieses Neuladen für Sie aus. Wenn das Neuladen warnt, dass Ihre nächste Nachricht das Gespräch erneut lesen würde, führen Sie `/reload-plugins --force` aus, um das Plugin zu aktivieren.

211 211 

212 Plugin-Skills werden nach dem Plugin-Namen benannt, daher bietet **commit-commands** Skills wie `/commit-commands:commit`.212 Plugin-Skills werden nach dem Plugin-Namen benannt, daher bietet **commit-commands** Skills wie `/commit-commands:commit`.

213 213 


311```311```

312 312 

313<Note>313<Note>

314 URL-basierte Marktplätze haben einige Einschränkungen im Vergleich zu Git-basierten Marktplätzen. Wenn beim Installieren von Plugins Fehler „Pfad nicht gefunden" auftreten, siehe [Fehlerbehebung](/docs/de/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).314 URL-basierte Marktplätze haben einige Einschränkungen im Vergleich zu Git-basierten Marktplätzen. Wenn beim Installieren von Plugins Fehler auftreten, siehe [Fehlerbehebung](/docs/de/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

315</Note>315</Note>

316 316 

317<h2 id="install-plugins">317<h2 id="install-plugins">


349Wenn Sie von der `/plugin`-Schnittstelle aus installieren, teilt Ihnen die Installationszusammenfassung mit, ob das Plugin in Ihrer aktuellen Sitzung aktiv ist:349Wenn Sie von der `/plugin`-Schnittstelle aus installieren, teilt Ihnen die Installationszusammenfassung mit, ob das Plugin in Ihrer aktuellen Sitzung aktiv ist:

350 350 

351* `Plugin is now active.`: Claude Code hat das Plugin als Teil der Installation aktiviert.351* `Plugin is now active.`: Claude Code hat das Plugin als Teil der Installation aktiviert.

352* `Run /reload-plugins to activate.`: Das Plugin ist noch nicht aktiv, da die Aktivierung [den Prompt-Cache ungültig machen würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin) oder da der Aktivierungsversuch fehlgeschlagen ist. Führen Sie den Befehl aus, um das Plugin zu aktivieren.352* `Run /reload-plugins to activate.`: Das Plugin ist noch nicht aktiv, da die Aktivierung [den Prompt-Cache ungültig machen würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin) oder da der Aktivierungsversuch fehlgeschlagen ist. Claude Code führt dann `/reload-plugins` für Sie aus. Wenn diese Neuladen vor dem Prompt-Cache warnt, führen Sie `/reload-plugins --force` aus, um [das Plugin trotzdem zu aktivieren](#apply-plugin-changes-without-restarting).

353* Wenn das Plugin nicht geladen wird, meldet die Zusammenfassung den Fehler und die Registerkarte `/plugin` **Errors** zeigt die Details.353* Wenn das Plugin nicht geladen wird, meldet die Zusammenfassung den Fehler und die Registerkarte `/plugin` **Errors** zeigt die Details.

354 354 

355Vor v2.1.221 trat keine Installation in der aktuellen Sitzung in Kraft, bis Sie `/reload-plugins` ausführten oder neu starteten.355Vor v2.1.221 trat keine Installation in der aktuellen Sitzung in Kraft, bis Sie `/reload-plugins` ausführten oder neu starteten.


393 393 

394Sie können Plugins auch mit direkten Befehlen verwalten:394Sie können Plugins auch mit direkten Befehlen verwalten:

395 395 

396* Wenn Sie `/plugin disable`, `/plugin enable` oder `/plugin uninstall` ausführen, öffnet Claude Code das Plugin-Panel, um die Änderung anzuwenden, und lässt es offen. Drücken Sie **Esc**, um das Panel zu schließen, bevor Sie einen anderen Befehl eingeben.396* Wenn Sie `/plugin disable`, `/plugin enable` oder `/plugin uninstall` ausführen, öffnet Claude Code das Plugin-Panel, um die Änderung anzuwenden, und lässt es offen. Drücken Sie **Esc**, um das Panel zu schließen, bevor Sie einen anderen Befehl eingeben. [Wenden Sie Plugin-Änderungen an, ohne neu zu starten](#apply-plugin-changes-without-restarting) beschreibt, wann die Änderung in Ihrer Sitzung wirksam wird.

397* Verwenden Sie für Scripting stattdessen die `claude plugin` Shell-Befehle, die das Panel nicht öffnen.397* Verwenden Sie für Scripting stattdessen die `claude plugin` Shell-Befehle, die das Panel nicht öffnen.

398 398 

399Installierte Plugins auflisten, ohne das Menü zu öffnen:399Installierte Plugins auflisten, ohne das Menü zu öffnen:


437 Wenden Sie Plugin-Änderungen an, ohne neu zu starten437 Wenden Sie Plugin-Änderungen an, ohne neu zu starten

438</h3>438</h3>

439 439 

440Wenn die [Installationszusammenfassung](#install-plugins) `Plugin is now active.` meldet, hat Claude Code das Plugin bereits aktiviert, und Sie können diesen Schritt überspringen. Für alles andere wenden Sie alle Änderungen an, die Sie während der Sitzung aktiviert oder deaktiviert haben, und Installationen, deren Zusammenfassung `Run /reload-plugins to activate.` meldet, ohne neu zu starten:440Wenn Sie das Menü `/plugin` schließen, führt Claude Code `/reload-plugins` für Sie aus, um die Änderungen anzuwenden, die Sie darin vorgenommen haben, wie das Installieren, Aktivieren, Deaktivieren und Deinstallieren von Plugins. Wenn das Neuladen den [Prompt-Cache invalidieren würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin), warnt es und lässt die Änderungen stattdessen ausstehend; führen Sie `/reload-plugins --force` aus, um sie trotzdem anzuwenden. Wenn Claude noch antwortet, wenn Sie das Menü schließen, wird das Neuladen ausgeführt, nachdem die Antwort beendet ist.

441 441 

442```shell theme={null}442Für Plugin-Änderungen, die außerhalb des Menüs stattfinden, führen Sie `/reload-plugins` selbst aus. Diese Änderungen umfassen:

443/reload-plugins443 

444```444* Ein `claude plugin` Befehl, den Sie in einem anderen Terminal ausgeführt haben

445* Bearbeitungen an einem Plugin, das Sie mit [`--plugin-dir`](/docs/de/plugins#test-your-plugins-locally) geladen haben, während Sie es entwickeln

446* Ein Plugin [Auto-Update](#configure-auto-updates), dessen Benachrichtigung Sie auffordert, neu zu laden

447* Eine Änderung in einem [`--plugin-dir` Ordner](/docs/de/plugins#test-your-plugins-locally), die Claude Code hielt, weil das Anwenden den Prompt-Cache invalidieren würde

448 

449Vor v2.1.268 blieben Plugins, die Sie im Menü aktiviert, deaktiviert oder deinstalliert haben, und Installationen, die während der Installation nicht aktiviert wurden, ausstehend, bis Sie `/reload-plugins` ausgeführt haben.

450 

451`/reload-plugins` wird auch in Sitzungen ohne interaktives Terminal ausgeführt, wie die Desktop-App, das Agent SDK und [nicht-interaktiver Modus](/docs/de/headless) mit `-p`. Erfordert Claude Code v2.1.260 oder später. Zwei Limits gelten in diesen Sitzungen:

445 452 

446Wenn das Neuladen den Prompt-Cache invalidieren würde, warnt der Befehl und überspringt, bis Sie ihn mit `--force` erneut ausführen.453* Der Befehl wird nur ausgeführt, wenn Sie ihn direkt in die Sitzung eingeben, wie in der `-p` Eingabeaufforderung oder dem Eingabefeld der Desktop-App. Wenn Sie ihn stattdessen über eine Remote-Verbindung senden, wie [Remote Control](/docs/de/remote-control) oder eine weitergeleitet Chat-Nachricht, lehnt der Befehl ab, ohne etwas neu zu laden.

454* Das Neuladen verbindet oder trennt keine Plugin-MCP-Server. Diese Änderungen treten in Ihrer nächsten Sitzung in Kraft.

447 455 

448Claude Code lädt alle aktiven Plugins neu und zeigt Zählungen für Plugins, Skills, Agenten, Hooks, Plugin-MCP-Server und Plugin-LSP-Server an. In der Skills-Zählung bezieht Claude Code jeden Skill ein, den ein Plugin bereitstellt: sowohl seine `commands/`-Einträge als auch seine `SKILL.md`-Skills. Vor v2.1.246 zählte Claude Code nur `commands/`-Einträge, sodass es einen Plugin-`SKILL.md`-Skill neu laden konnte und immer noch `0 skills` in der Zusammenfassung meldete.456Claude Code lädt alle aktiven Plugins neu und zeigt Zählungen für Plugins, Skills, Agenten, Hooks, Plugin-MCP-Server und Plugin-LSP-Server an, wobei die Plugin-MCP-Server-Zählung in einer Sitzung ohne interaktives Terminal weggelassen wird. In der Skills-Zählung bezieht Claude Code jeden Skill ein, den ein Plugin bereitstellt: sowohl seine `commands/`-Einträge als auch seine `SKILL.md`-Skills. Vor v2.1.246 zählte Claude Code nur `commands/`-Einträge, sodass es einen Plugin-`SKILL.md`-Skill neu laden konnte und immer noch `0 skills` in der Zusammenfassung meldete.

449 457 

450Das Neuladen hat Tokenkosten bei der nächsten Anfrage: Neu geladene Komponenten kündigen sich in Inhalten an, die zum Gespräch hinzugefügt werden, während der vorhandene Verlauf weiterhin aus dem Prompt-Cache gelesen wird. Ein Plugin, das MCP-Server bereitstellt, kostet mehr, wenn seine Tools nicht durch [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aufgeschoben werden: Die Änderung invalidiert den Cache und die nächste Anfrage liest das gesamte Gespräch erneut. Siehe [Aktivieren oder Deaktivieren eines Plugins](/docs/de/prompt-caching#enabling-or-disabling-a-plugin) für Details.458Das Neuladen hat Tokenkosten bei der nächsten Anfrage: Neu geladene Komponenten kündigen sich in Inhalten an, die zum Gespräch hinzugefügt werden, während der vorhandene Verlauf weiterhin aus dem Prompt-Cache gelesen wird. Ein Plugin, das MCP-Server bereitstellt, kostet mehr, wenn seine Tools nicht durch [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aufgeschoben werden: Die Änderung invalidiert den Cache und die nächste Anfrage liest das gesamte Gespräch erneut. Siehe [Aktivieren oder Deaktivieren eines Plugins](/docs/de/prompt-caching#enabling-or-disabling-a-plugin) für Details.

451 459 

errors.md +555 −71

Details

69| `OAuth token revoked` / `OAuth token has expired` | [Authentifizierung](#oauth-token-revoked-or-expired) |69| `OAuth token revoked` / `OAuth token has expired` | [Authentifizierung](#oauth-token-revoked-or-expired) |

70| `API Error: 401 Invalid authentication credentials` | [Authentifizierung](#api-error-401-invalid-authentication-credentials) |70| `API Error: 401 Invalid authentication credentials` | [Authentifizierung](#api-error-401-invalid-authentication-credentials) |

71| `Login expired · Please run /login` | [Authentifizierung](#login-expired) |71| `Login expired · Please run /login` | [Authentifizierung](#login-expired) |

72| `Not signed in to the Cloud gateway — run /login.` | [Authentifizierung](#administrator-policy-requires-a-cloud-gateway-sign-in) |

73| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentifizierung](#administrator-policy-requires-a-cloud-gateway-sign-in) |

72| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentifizierung](#login-expired) |74| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentifizierung](#login-expired) |

73| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentifizierung](#your-account-is-on-hold) |75| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentifizierung](#your-account-is-on-hold) |

74| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentifizierung](#your-account-is-on-hold) |76| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentifizierung](#your-account-is-on-hold) |


77| `does not meet scope requirement user:profile` | [Authentifizierung](#oauth-scope-requirement) |79| `does not meet scope requirement user:profile` | [Authentifizierung](#oauth-scope-requirement) |

78| `claude.ai rejected the session token` / `session token rejected` | [Authentifizierung](#claude-ai-rejected-the-session-token) |80| `claude.ai rejected the session token` / `session token rejected` | [Authentifizierung](#claude-ai-rejected-the-session-token) |

79| `Issuer mismatch in authorization response (RFC 9207)` | [Authentifizierung](#issuer-mismatch-in-authorization-response) |81| `Issuer mismatch in authorization response (RFC 9207)` | [Authentifizierung](#issuer-mismatch-in-authorization-response) |

82| `Cloud gateway session expired — run /login to reconnect.` | [Authentifizierung](#cloud-gateway-session-expired) |

83| `Cloud gateway <url> no longer accepts this session` | [Authentifizierung](#cloud-gateway-session-expired) |

80| `AWS credentials expired or invalid` | [Authentifizierung](#aws-credentials-expired-or-invalid) |84| `AWS credentials expired or invalid` | [Authentifizierung](#aws-credentials-expired-or-invalid) |

81| `AWS authentication failed` | [Authentifizierung](#aws-authentication-failed) |85| `AWS authentication failed` | [Authentifizierung](#aws-authentication-failed) |

86| `Could not load AWS credentials` / `Could not load Google Cloud credentials` | [Authentifizierung](#could-not-load-aws-or-google-cloud-credentials) |

82| `AWS default-chain credential resolve timed out` | [Authentifizierung](#aws-default-chain-credential-resolve-timed-out) |87| `AWS default-chain credential resolve timed out` | [Authentifizierung](#aws-default-chain-credential-resolve-timed-out) |

83| `Could not load the default credentials` auf Google Clouds Agent Platform | [Automatische Wiederholungen](#automatic-retries) |88| `Timed out after 60s waiting for AWS` | [Authentifizierung](#bedrock-setup-verification-timed-out-waiting-for-aws) |

89| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Authentifizierung](#bedrock-setup-verification-timed-out-waiting-for-aws) |

90| `Could not load the default credentials` auf Google Clouds Agent Platform | [Authentifizierung](#could-not-load-aws-or-google-cloud-credentials) |

84| `Unable to connect to API` | [Netzwerk](#unable-to-connect-to-api) |91| `Unable to connect to API` | [Netzwerk](#unable-to-connect-to-api) |

85| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, jeweils mit einem Fehlercode in Klammern | [Netzwerk](#unable-to-connect-to-api) |92| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, jeweils mit einem Fehlercode in Klammern | [Netzwerk](#unable-to-connect-to-api) |

86| `Unable to connect to Anthropic services` während des Setups | [Netzwerk](#unable-to-connect-to-anthropic-services) |93| `Unable to connect to Anthropic services` während des Setups | [Netzwerk](#unable-to-connect-to-anthropic-services) |


91| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Netzwerk](#bedrock-streaming-response-has-an-unexpected-content-type) |98| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Netzwerk](#bedrock-streaming-response-has-an-unexpected-content-type) |

92| `SSL certificate verification failed` | [Netzwerk](#ssl-certificate-errors) |99| `SSL certificate verification failed` | [Netzwerk](#ssl-certificate-errors) |

93| `SSL certificate error (...)` während des Logins oder Starts | [Netzwerk](#ssl-certificate-errors) |100| `SSL certificate error (...)` während des Logins oder Starts | [Netzwerk](#ssl-certificate-errors) |

101| `unable to get local issuer certificate` | [Netzwerk](#ssl-certificate-errors) |

94| `403` mit `x-deny-reason: host_not_allowed` in einer Cloud- oder Routine-Sitzung | [Netzwerk](#host-not-allowed-in-a-cloud-session) |102| `403` mit `x-deny-reason: host_not_allowed` in einer Cloud- oder Routine-Sitzung | [Netzwerk](#host-not-allowed-in-a-cloud-session) |

95| `proxy refused the connection` | [Netzwerk](#the-proxy-refused-the-connection) |103| `proxy refused the connection` | [Netzwerk](#the-proxy-refused-the-connection) |

96| `403` mit `This GraphQL query is not enabled for this session` in einer Cloud-Sitzung | [GitHub-Proxy](/docs/de/cloud-environments#github-proxy) |104| `403` mit `This GraphQL query is not enabled for this session` in einer Cloud-Sitzung | [GitHub-Proxy](/docs/de/cloud-environments#github-proxy) |


107| `upstream rejected the request` / `request too large for this upstream` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |115| `upstream rejected the request` / `request too large for this upstream` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |

108| `upstream rate limit exceeded` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |116| `upstream rate limit exceeded` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |

109| `all upstreams failed (N attempted)` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |117| `all upstreams failed (N attempted)` auf einer Claude-Apps-Gateway-Sitzung | [Upstream-Fehlermeldungen](/docs/de/claude-apps-gateway-config#upstream-error-messages) |

118| `Claude Code may not be enabled for your organization` nach einer Claude-Apps-Gateway-Anmeldung | [Fehlerbehebung für Claude-Apps-Gateway](/docs/de/claude-apps-gateway-deploy#troubleshooting) |

110| `Context exceeds the ...-token limit by ... tokens` in `/context`-Ausgabe | [Anfragefehler](#context-exceeds-the-token-limit) |119| `Context exceeds the ...-token limit by ... tokens` in `/context`-Ausgabe | [Anfragefehler](#context-exceeds-the-token-limit) |

111| `Error during compaction: Conversation too long` | [Anfragefehler](#error-during-compaction-conversation-too-long) |120| `Error during compaction: Conversation too long` | [Anfragefehler](#error-during-compaction-conversation-too-long) |

112| `Request too large` | [Anfragefehler](#request-too-large) |121| `Request too large` | [Anfragefehler](#request-too-large) |


115| `Unable to resize image` | [Anfragefehler](#unable-to-resize-image) |124| `Unable to resize image` | [Anfragefehler](#unable-to-resize-image) |

116| `PDF too large` / `PDF is password protected` | [Anfragefehler](#pdf-errors) |125| `PDF too large` / `PDF is password protected` | [Anfragefehler](#pdf-errors) |

117| `Extra inputs are not permitted` | [Anfragefehler](#extra-inputs-are-not-permitted) |126| `Extra inputs are not permitted` | [Anfragefehler](#extra-inputs-are-not-permitted) |

118| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` | [Anfragefehler](#tool-input-schema-is-invalid) |127| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Anfragefehler](#tool-input-schema-is-invalid) |

119| `There's an issue with the selected model` | [Anfragefehler](#theres-an-issue-with-the-selected-model) |128| `There's an issue with the selected model` | [Anfragefehler](#theres-an-issue-with-the-selected-model) |

120| `Model ... is not a recognized model id` | [Anfragefehler](#model-is-not-a-recognized-model-id) |129| `Model ... is not a recognized model id` | [Anfragefehler](#model-is-not-a-recognized-model-id) |

130| `Model ... not found` | [Anfragefehler](#model-not-found) |

121| `Claude Opus is not available with the Claude Pro plan` | [Anfragefehler](#claude-opus-is-not-available-with-the-claude-pro-plan) |131| `Claude Opus is not available with the Claude Pro plan` | [Anfragefehler](#claude-opus-is-not-available-with-the-claude-pro-plan) |

122| `Claude Code ... does not support this model; version ... or newer is required` | [Anfragefehler](#claude-code-does-not-support-this-model) |132| `Claude Code ... does not support this model; version ... or newer is required` | [Anfragefehler](#claude-code-does-not-support-this-model) |

133| `Claude Code ... is older than the minimum version required by your organization's policy` | [Anfragefehler](#claude-code-does-not-support-this-model) |

123| `Model ... is restricted by your organization's settings` | [Anfragefehler](#model-is-restricted-by-your-organizations-settings) |134| `Model ... is restricted by your organization's settings` | [Anfragefehler](#model-is-restricted-by-your-organizations-settings) |

135| `Model switch ... blocked by a PreModelSwitch hook` | [Anfragefehler](#model-switch-was-blocked-by-a-premodelswitch-hook) |

136| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Anfragefehler](#couldnt-save-it-as-your-default) |

124| `thinking.type.enabled is not supported for this model` | [Anfragefehler](#thinking-type-enabled-is-not-supported-for-this-model) |137| `thinking.type.enabled is not supported for this model` | [Anfragefehler](#thinking-type-enabled-is-not-supported-for-this-model) |

125| `Effort '<level>' isn't available with thinking turned off on this model` | [Anfragefehler](#effort-isnt-available-with-thinking-turned-off) |138| `Effort '<level>' isn't available with thinking turned off on this model` | [Anfragefehler](#effort-isnt-available-with-thinking-turned-off) |

126| `effort '<level>' is not supported when thinking is disabled` | [Anfragefehler](#effort-isnt-available-with-thinking-turned-off) |139| `effort '<level>' is not supported when thinking is disabled` | [Anfragefehler](#effort-isnt-available-with-thinking-turned-off) |


141| `Error: Invalid --agents configuration:` | [Befehlszeilenfehler](#invalid-agents-configuration) |154| `Error: Invalid --agents configuration:` | [Befehlszeilenfehler](#invalid-agents-configuration) |

142| `Error: Settings file exceeds the 2MiB limit` | [Befehlszeilenfehler](#settings-file-exceeds-the-2mib-limit) |155| `Error: Settings file exceeds the 2MiB limit` | [Befehlszeilenfehler](#settings-file-exceeds-the-2mib-limit) |

143| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Befehlszeilenfehler](#the-current-directory-no-longer-exists) |156| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Befehlszeilenfehler](#the-current-directory-no-longer-exists) |

157| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Befehlszeilenfehler](#directory-couldnt-be-resolved-to-a-real-location) |

144| `Error: Workspace not trusted` beim Starten von Remote Control | [Befehlszeilenfehler](#workspace-not-trusted-when-starting-remote-control) |158| `Error: Workspace not trusted` beim Starten von Remote Control | [Befehlszeilenfehler](#workspace-not-trusted-when-starting-remote-control) |

145| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Befehlszeilenfehler](#not-carried-over-to-the-sessions-remote-control-starts) |159| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Befehlszeilenfehler](#not-carried-over-to-the-sessions-remote-control-starts) |

146| `` `claude import` is not yet available in this build `` | [Befehlszeilenfehler](#claude-import-is-not-yet-available-in-this-build) |160| `` `claude import` is not yet available in this build `` | [Befehlszeilenfehler](#claude-import-is-not-yet-available-in-this-build) |

147| `Could not read Claude Code config` | [Befehlszeilenfehler](#could-not-read-claude-code-config) |161| `Could not read Claude Code config` | [Befehlszeilenfehler](#could-not-read-claude-code-config) |

148| `Could not import <server>: <reason>` | [Befehlszeilenfehler](#could-not-import-a-server-from-claude-desktop) |162| `Could not import <server>: <reason>` | [Befehlszeilenfehler](#could-not-import-a-server-from-claude-desktop) |

163| `Cannot add MCP server to scope: managed` | [Befehlszeilenfehler](#cannot-add-mcp-server-to-the-managed-scope) |

149| `is Anthropic-hosted and doesn't support local OAuth` | [Befehlszeilenfehler](#anthropic-hosted-and-doesnt-support-local-oauth) |164| `is Anthropic-hosted and doesn't support local OAuth` | [Befehlszeilenfehler](#anthropic-hosted-and-doesnt-support-local-oauth) |

165| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Befehlszeilenfehler](#cant-read-mcp-json) |

150| `Server rejected the Authorization header minted by the configured headersHelper` | [Befehlszeilenfehler](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |166| `Server rejected the Authorization header minted by the configured headersHelper` | [Befehlszeilenfehler](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

151| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Befehlszeilenfehler](#mcp-permission-prompt-tool-not-found) |167| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Befehlszeilenfehler](#mcp-permission-prompt-tool-not-found) |

168| `OAuth callback port <port> is already in use — another process may be holding it` | [Befehlszeilenfehler](#oauth-callback-port-is-already-in-use) |

152| `Shell command failed for pattern "..."`, von `/security-review` oder einem Skill, der dynamischen Kontext injiziert | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |169| `Shell command failed for pattern "..."`, von `/security-review` oder einem Skill, der dynamischen Kontext injiziert | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |

153| `Shell command permission check failed for pattern "..."`, von einem Skill, der dynamischen Kontext injiziert | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |170| `Shell command permission check failed for pattern "..."`, von einem Skill, der dynamischen Kontext injiziert | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |

154| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |171| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Befehlszeilenfehler](#security-review-fails-without-origin-head) |

155| `Input must be provided either through stdin or as a prompt argument when using --print` | [Befehlszeilenfehler](#input-must-be-provided-when-using-print) |172| `Input must be provided either through stdin or as a prompt argument when using --print` | [Befehlszeilenfehler](#input-must-be-provided-when-using-print) |

156| `Error: Input contained only whitespace` | [Befehlszeilenfehler](#input-contained-only-whitespace) |173| `Error: Input contained only whitespace` | [Befehlszeilenfehler](#input-contained-only-whitespace) |

157| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Befehlszeilenfehler](#input-contained-only-whitespace) |174| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Befehlszeilenfehler](#input-contained-only-whitespace) |

175| `Error: stream-json input carried over 256M characters with no newline` | [Befehlszeilenfehler](#stream-json-input-carried-over-256m-characters-with-no-newline) |

158| `Unknown command: /<name>`, mit oder ohne einen `Did you mean`-Vorschlag | [Befehlszeilenfehler](#unknown-command) |176| `Unknown command: /<name>`, mit oder ohne einen `Did you mean`-Vorschlag | [Befehlszeilenfehler](#unknown-command) |

159| `Diff is too large for ultrareview` / `PR #<N> is too large for ultrareview` | [Befehlszeilenfehler](#diff-is-too-large-for-ultrareview) |177| `Diff is too large for ultrareview` / `PR #<N> is too large for ultrareview` | [Befehlszeilenfehler](#diff-is-too-large-for-ultrareview) |

160| `Could not find merge-base with <branch>` | [Befehlszeilenfehler](#could-not-find-merge-base-with-the-base-branch) |178| `Could not find merge-base with <branch>` | [Befehlszeilenfehler](#could-not-find-merge-base-with-the-base-branch) |


169| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |187| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |

170| `Your Zed keymap isn't a readable list of keybindings` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |188| `Your Zed keymap isn't a readable list of keybindings` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |

171| `Skill usage reports are not available on this connection.` | [Befehlszeilenfehler](#skill-usage-reports-are-not-available-on-this-connection) |189| `Skill usage reports are not available on this connection.` | [Befehlszeilenfehler](#skill-usage-reports-are-not-available-on-this-connection) |

190| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin-Fehler](#plugin-eval-is-currently-in-early-access) |

172| `Marketplace "<name>" is registered from an untrusted source` | [Plugin-Fehler](#marketplace-is-registered-from-an-untrusted-source) |191| `Marketplace "<name>" is registered from an untrusted source` | [Plugin-Fehler](#marketplace-is-registered-from-an-untrusted-source) |

173| `references ${user_config.*} in a shell-form command` | [Plugin-Fehler](#plugin-command-references-user-config) |192| `references ${user_config.*} in a shell-form command` | [Plugin-Fehler](#plugin-command-references-user-config) |

174| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin-Fehler](#plugin-command-references-user-config) |193| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin-Fehler](#plugin-command-references-user-config) |

175| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin-Fehler](#plugin-command-references-user-config) |194| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin-Fehler](#plugin-command-references-user-config) |

176| `Plugin archive integrity check failed` | [Plugin-Fehler](#plugin-archive-integrity-check-failed) |195| `Plugin archive integrity check failed` | [Plugin-Fehler](#plugin-archive-integrity-check-failed) |

177| `path escapes plugin directory` | [Plugin-Fehler](#path-escapes-plugin-directory) |196| `path escapes plugin directory` | [Plugin-Fehler](#path-escapes-plugin-directory) |

197| `path could not be checked` | [Plugin-Fehler](#path-could-not-be-checked) |

198| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin-Fehler](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

199| `Plugin source path refused` | [Plugin-Fehler](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

178| `Failed to load marketplace configuration` | [Plugin-Fehler](#failed-to-load-marketplace-configuration) |200| `Failed to load marketplace configuration` | [Plugin-Fehler](#failed-to-load-marketplace-configuration) |

179| `Marketplace configuration file is corrupted` | [Plugin-Fehler](#failed-to-load-marketplace-configuration) |201| `Marketplace configuration file is corrupted` | [Plugin-Fehler](#failed-to-load-marketplace-configuration) |

180| `would be spawned with zero tools — refusing` | [Werkzeugfehler](#agent-would-be-spawned-with-zero-tools) |202| `would be spawned with zero tools — refusing` | [Werkzeugfehler](#agent-would-be-spawned-with-zero-tools) |


195| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Werkzeugfehler](#refusing-after-a-symlink-changed) |217| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Werkzeugfehler](#refusing-after-a-symlink-changed) |

196| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Werkzeugfehler](#refusing-after-a-symlink-changed) |218| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Werkzeugfehler](#refusing-after-a-symlink-changed) |

197| `task output swap refused (tasks dir moved or linked)` | [Werkzeugfehler](#task-output-swap-refused) |219| `task output swap refused (tasks dir moved or linked)` | [Werkzeugfehler](#task-output-swap-refused) |

220| `Command killed: its output file was replaced or could no longer be verified` | [Werkzeugfehler](#task-output-swap-refused) |

221| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |

222| `the source file has the replacement character U+FFFD` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |

198| `Can't open MCP settings while no terminal is attached to this background session` | [Fehler in Hintergrund-Sitzungen](#commands-refused-in-a-background-session) |223| `Can't open MCP settings while no terminal is attached to this background session` | [Fehler in Hintergrund-Sitzungen](#commands-refused-in-a-background-session) |

199| `Can't open MCP settings in a background session` | [Fehler in Hintergrund-Sitzungen](#commands-refused-in-a-background-session) |224| `Can't open MCP settings in a background session` | [Fehler in Hintergrund-Sitzungen](#commands-refused-in-a-background-session) |

200| `blocked because the path is spelled in a form that cannot be safely resolved` | [Fehler in Hintergrund-Sitzungen](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |225| `blocked because the path is spelled in a form that cannot be safely resolved` | [Fehler in Hintergrund-Sitzungen](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


203| `Can't open — this session is running in another terminal` | [Fehler in Hintergrund-Sitzungen](#this-session-is-running-in-another-terminal) |228| `Can't open — this session is running in another terminal` | [Fehler in Hintergrund-Sitzungen](#this-session-is-running-in-another-terminal) |

204| `This conversation is already open in another running Claude session` | [Fehler in Hintergrund-Sitzungen](#this-session-is-running-in-another-terminal) |229| `This conversation is already open in another running Claude session` | [Fehler in Hintergrund-Sitzungen](#this-session-is-running-in-another-terminal) |

205| `This session's saved conversation is no longer on disk` | [Fehler in Hintergrund-Sitzungen](#this-sessions-saved-conversation-is-no-longer-on-disk) |230| `This session's saved conversation is no longer on disk` | [Fehler in Hintergrund-Sitzungen](#this-sessions-saved-conversation-is-no-longer-on-disk) |

231| `kept <id> — <n> unpushed commits on <branch>` | [Fehler in Hintergrund-Sitzungen](#worktree-has-commits-that-are-not-pushed-anywhere) |

206| `kept <id> — worktree has commits that are not pushed anywhere` | [Fehler in Hintergrund-Sitzungen](#worktree-has-commits-that-are-not-pushed-anywhere) |232| `kept <id> — worktree has commits that are not pushed anywhere` | [Fehler in Hintergrund-Sitzungen](#worktree-has-commits-that-are-not-pushed-anywhere) |

207| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Fehler in Hintergrund-Sitzungen](#terminal-host-process-died) |233| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Fehler in Hintergrund-Sitzungen](#terminal-host-process-died) |

208| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Fehler in Hintergrund-Sitzungen](#session-isnt-responding) |234| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Fehler in Hintergrund-Sitzungen](#session-isnt-responding) |


212| `EUNKNOWN: unknown error, uv_spawn` | [Fehler in Hintergrund-Sitzungen](#eunknown-when-starting-a-background-session) |238| `EUNKNOWN: unknown error, uv_spawn` | [Fehler in Hintergrund-Sitzungen](#eunknown-when-starting-a-background-session) |

213| `EACCES: permission denied, posix_spawn` | [Fehler in Hintergrund-Sitzungen](#eacces-when-starting-a-background-session) |239| `EACCES: permission denied, posix_spawn` | [Fehler in Hintergrund-Sitzungen](#eacces-when-starting-a-background-session) |

214| `exited before it became reachable` | [Fehler in Hintergrund-Sitzungen](#background-service-exited-before-it-became-reachable) |240| `exited before it became reachable` | [Fehler in Hintergrund-Sitzungen](#background-service-exited-before-it-became-reachable) |

241| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Fehler in Hintergrund-Sitzungen](#working-directory-no-longer-exists-when-starting-a-background-session) |

242| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Fehler in Hintergrund-Sitzungen](#eacces-when-starting-a-background-session) |

215| `Claude Code process exited with code N` | [Wrapper- und IDE-Fehler](#claude-code-process-exited-with-code-n) |243| `Claude Code process exited with code N` | [Wrapper- und IDE-Fehler](#claude-code-process-exited-with-code-n) |

216| `Could not locate the Claude CLI on PATH` | [Wrapper- und IDE-Fehler](#could-not-locate-the-claude-cli-on-path) |244| `Could not locate the Claude CLI on PATH` | [Wrapper- und IDE-Fehler](#could-not-locate-the-claude-cli-on-path) |

217| `Restored the code, but skipped N files` | [Rewind-Warnungen und Fehler](#restored-the-code-but-skipped-files) |245| `Restored the code, but skipped N files` | [Rewind-Warnungen und Fehler](#restored-the-code-but-skipped-files) |


225| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Konfigurationswarnungen](#workspace-has-not-been-trusted) |253| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Konfigurationswarnungen](#workspace-has-not-been-trusted) |

226| `is a network path, which cannot be added as a working directory` | [Konfigurationswarnungen](#working-directory-is-a-network-path) |254| `is a network path, which cannot be added as a working directory` | [Konfigurationswarnungen](#working-directory-is-a-network-path) |

227| `Remote managed settings failed to load (<cause>)` | [Konfigurationswarnungen](#remote-managed-settings-failed-to-load) |255| `Remote managed settings failed to load (<cause>)` | [Konfigurationswarnungen](#remote-managed-settings-failed-to-load) |

256| `Managed settings were not approved; exiting without applying them.` | [Konfigurationswarnungen](#managed-settings-were-not-approved) |

228| `MCP server <name> is blocked by enterprise managed policy` | [Konfigurationswarnungen](#mcp-server-is-blocked-by-enterprise-managed-policy) |257| `MCP server <name> is blocked by enterprise managed policy` | [Konfigurationswarnungen](#mcp-server-is-blocked-by-enterprise-managed-policy) |

229| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |258| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |

230| `Managed settings drop-in directory could not be read` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |259| `Managed settings drop-in directory could not be read` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |


235| `... has a wildcard before the rest of the command` | [Konfigurationswarnungen](#has-a-wildcard-before-the-rest-of-the-command) |264| `... has a wildcard before the rest of the command` | [Konfigurationswarnungen](#has-a-wildcard-before-the-rest-of-the-command) |

236| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Konfigurationswarnungen](#the-200k-limit-isnt-enforced) |265| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Konfigurationswarnungen](#the-200k-limit-isnt-enforced) |

237| `[claude-code:unrecognized_model]` | [Konfigurationswarnungen](#unrecognized-model-id-on-a-request) |266| `[claude-code:unrecognized_model]` | [Konfigurationswarnungen](#unrecognized-model-id-on-a-request) |

267| `Stale sandbox mask files left by a killed session` | [Konfigurationswarnungen](#stale-sandbox-mask-files-left-by-a-killed-session) |

238| Antworten scheinen von geringerer Qualität als üblich | [Antwortqualität](#responses-seem-lower-quality-than-usual) |268| Antworten scheinen von geringerer Qualität als üblich | [Antwortqualität](#responses-seem-lower-quality-than-usual) |

239 269 

240<h2 id="automatic-retries">270<h2 id="automatic-retries">


255* Ein Request, der abgelehnt wurde, weil die Eingabe plus `max_tokens` das Kontext-Limit überschreitet. Das erneute Senden würde auf die gleiche Weise fehlschlagen, daher wiederholt Claude Code mit reduziertem `max_tokens` und stoppt die Wiederholung und komprimiert stattdessen in zwei Fällen:285* Ein Request, der abgelehnt wurde, weil die Eingabe plus `max_tokens` das Kontext-Limit überschreitet. Das erneute Senden würde auf die gleiche Weise fehlschlagen, daher wiederholt Claude Code mit reduziertem `max_tokens` und stoppt die Wiederholung und komprimiert stattdessen in zwei Fällen:

256 * Wenn keine Reduktion passt, zum Beispiel wenn das Gespräch selbst das Kontext-Fenster fast ausfüllt.286 * Wenn keine Reduktion passt, zum Beispiel wenn das Gespräch selbst das Kontext-Fenster fast ausfüllt.

257 * Wenn eine Wiederholung `max_tokens` nicht weiter verringern kann. Vor v2.1.218 konnte Claude Code einen reduzierten Request erneut senden, der immer noch nicht passte, z. B. wenn das Extended-Thinking-Budget das verbleibende Kontext überschritt, bis das Wiederholungs-Budget aufgebraucht war.287 * Wenn eine Wiederholung `max_tokens` nicht weiter verringern kann. Vor v2.1.218 konnte Claude Code einen reduzierten Request erneut senden, der immer noch nicht passte, z. B. wenn das Extended-Thinking-Budget das verbleibende Kontext überschritt, bis das Wiederholungs-Budget aufgebraucht war.

258* Ein abgelaufenes oder fehlendes Google Cloud-Credential auf [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), das sich als Fehler wie `Could not load the default credentials` äußert. Claude Code verwirft seine zwischengespeicherten Credentials und wiederholt bis zu zweimal, führt Ihren [`gcpAuthRefresh`](/docs/de/google-vertex-ai#advanced-credential-configuration)-Befehl aus, wenn Sie einen konfiguriert haben, und meldet dann den Fehler, damit Sie sich sofort erneut authentifizieren können. [Google Cloud's Agent Platform troubleshooting](/docs/de/google-vertex-ai#troubleshooting) behandelt die erneute Authentifizierung. Vor v2.1.228 wiederholte Claude Code ein fehlgeschlagenes Credential durch das vollständige Wiederholungs-Budget, bevor der Fehler angezeigt wurde.288* Ein abgelaufenes oder fehlendes Google Cloud-Credential auf [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), oder AWS-Credentials, die auf Ihrem Computer nicht geladen werden können. Claude Code verwirft seine zwischengespeicherten Credentials und wiederholt bis zu zweimal, meldet dann den Fehler, damit Sie sich sofort erneut authentifizieren können, wie unter [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials) beschrieben. Vor v2.1.228 wiederholte Claude Code ein fehlgeschlagenes Google Cloud-Credential durch das vollständige Wiederholungs-Budget, bevor der Fehler angezeigt wurde.

259* Ein `401` oder `403` von der Anthropic API, direkt oder über ein [LLM gateway](/docs/de/llm-gateway), während ein [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Skript das Credential liefert. Claude Code führt das Skript erneut aus und wiederholt mit seiner frischen Ausgabe, innerhalb des vollständigen Wiederholungs-Budgets. Wenn das Skript selbst bei der erneuten Ausführung fehlschlägt, zeigt Claude Code stattdessen [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing) an.289* Ein `401` oder `403` von der Anthropic API, direkt oder über ein [LLM gateway](/docs/de/llm-gateway), während ein [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Skript das Credential liefert. Claude Code führt das Skript erneut aus und wiederholt mit seiner frischen Ausgabe, innerhalb des vollständigen Wiederholungs-Budgets. Wenn das Skript selbst bei der erneuten Ausführung fehlschlägt, zeigt Claude Code stattdessen [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing) an.

260 290 

261Vor v2.1.227 lautete `Connection lost before a response was produced` `Connection closed while thinking, before producing a response` und `The response stalled before a response was produced` lautete `Response stalled while thinking, before producing a response`.291Vor v2.1.227 lautete `Connection lost before a response was produced` `Connection closed while thinking, before producing a response` und `The response stalled before a response was produced` lautete `Response stalled while thinking, before producing a response`.


585Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change615Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change

586```616```

587 617 

588Die Meldungen nennen das Fable-Modell der Sitzung, daher lesen sie auf Fable 5 `continuing on Fable 5` und `Fable 5 now uses usage credits`. Vor v2.1.255 begann die erste Meldung mit `Fable 5 limit reached`.618Die Meldungen nennen das Fable-Modell der Sitzung, daher lesen sie auf Fable 5 `continuing on Fable 5` und `Fable 5 now uses usage credits`. Vor v2.1.257 begann die erste Meldung mit `Fable 5 limit reached`.

589 619 

590Dies geschieht in [Remote Control](/docs/de/remote-control)-Sitzungen, [Hintergrund-Sitzungen](/docs/de/agent-view) und [Agent-Team](/docs/de/agent-teams)-Kollegensitzungen. Claude Code zeigt die Bestätigungsaufforderung nur in der interaktiven Ansicht der Sitzung an: das Terminal, in dem sie ausgeführt wird, oder für eine Hintergrund-Sitzung die [Agenten-Ansicht](/docs/de/agent-view), sobald Sie sie anhängen. Ein Remote-Control-Client kann sie nicht anzeigen. Claude Code schließt die Aufforderung bei der [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry)-Frist, standardmäßig fünf Minuten, oder sobald eine neue Aufforderung ankommt, während niemand an diesem Terminal eingegeben hat, wie z. B. eine Aufforderung, die von einem Remote-Control-Client gesendet wird. Das Eingeben am Terminal, in dem die Sitzung ausgeführt wird, bricht die Frist ab, und Claude Code wartet auf Ihre Antwort. In der angehängten Ansicht einer Hintergrund-Sitzung bricht das Eingeben die Frist nicht ab, und eine neue Aufforderung schließt immer noch die Bestätigungsaufforderung, daher antworten Sie, bevor eines davon geschieht. Claude Code sendet nichts und behält Ihr Modell, daher zeigt Claude Code die Bestätigungsaufforderung erneut an, wenn Sie Ihre nächste Aufforderung senden.620Dies geschieht in [Remote Control](/docs/de/remote-control)-Sitzungen, [Hintergrund-Sitzungen](/docs/de/agent-view) und [Agent-Team](/docs/de/agent-teams)-Kollegensitzungen. Claude Code zeigt die Bestätigungsaufforderung nur in der interaktiven Ansicht der Sitzung an: das Terminal, in dem sie ausgeführt wird, oder für eine Hintergrund-Sitzung die [Agenten-Ansicht](/docs/de/agent-view), sobald Sie sie anhängen. Ein Remote-Control-Client kann sie nicht anzeigen. Claude Code schließt die Aufforderung bei der [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry)-Frist, standardmäßig fünf Minuten, oder sobald eine neue Aufforderung ankommt, während niemand an diesem Terminal eingegeben hat, wie z. B. eine Aufforderung, die von einem Remote-Control-Client gesendet wird. Das Eingeben am Terminal, in dem die Sitzung ausgeführt wird, bricht die Frist ab, und Claude Code wartet auf Ihre Antwort. In der angehängten Ansicht einer Hintergrund-Sitzung bricht das Eingeben die Frist nicht ab, und eine neue Aufforderung schließt immer noch die Bestätigungsaufforderung, daher antworten Sie, bevor eines davon geschieht. Claude Code sendet nichts und behält Ihr Modell, daher zeigt Claude Code die Bestätigungsaufforderung erneut an, wenn Sie Ihre nächste Aufforderung senden.

591 621 


764Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output794Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

765```795```

766 796 

797In [nicht-interaktivem Modus](/docs/de/headless) trägt stderr auch den spezifischen Grund, mit dem Präfix `apiKeyHelper failed:`.

798 

767Claude Code führt das Skript erneut aus und versucht die Anfrage bis zu zwei weitere Male, bevor diese Meldung angezeigt wird, sodass der Fehler innerhalb von drei Versuchen auftritt. Vor v2.1.208 hat Claude Code das gesamte [Wiederholungsbudget](#automatic-retries) aufgewendet, um die Anfrage mit der Platzhalter-Anmeldedaten erneut zu senden, und dann einen generischen `401`-Authentifizierungsfehler statt des Skriptfehlers gemeldet.799Claude Code führt das Skript erneut aus und versucht die Anfrage bis zu zwei weitere Male, bevor diese Meldung angezeigt wird, sodass der Fehler innerhalb von drei Versuchen auftritt. Vor v2.1.208 hat Claude Code das gesamte [Wiederholungsbudget](#automatic-retries) aufgewendet, um die Anfrage mit der Platzhalter-Anmeldedaten erneut zu senden, und dann einen generischen `401`-Authentifizierungsfehler statt des Skriptfehlers gemeldet.

768 800 

769Das Ausführen von `/login` hilft hier nicht: die Ausgabe des Helpers [hat Vorrang](/docs/de/authentication#authentication-precedence) vor einer gespeicherten Anmeldung, solange die Einstellung vorhanden ist.801Das Ausführen von `/login` hilft hier nicht: die Ausgabe des Helpers [hat Vorrang](/docs/de/authentication#authentication-precedence) vor einer gespeicherten Anmeldung, solange die Einstellung vorhanden ist.


942* `OAuth token unavailable`: Claude Code hatte kein gespeichertes Anmelde-Token, als die Anmeldedaten der Verbindung zur Erneuerung fällig wurden974* `OAuth token unavailable`: Claude Code hatte kein gespeichertes Anmelde-Token, als die Anmeldedaten der Verbindung zur Erneuerung fällig wurden

943* `OAuth token refresh failed`: claude.ai lehnte Ihr gespeichertes Anmelde-Token ab, während Claude Code sich erneut verbunden hat, und das Aktualisieren des Tokens hat kein neues produziert975* `OAuth token refresh failed`: claude.ai lehnte Ihr gespeichertes Anmelde-Token ab, während Claude Code sich erneut verbunden hat, und das Aktualisieren des Tokens hat kein neues produziert

944* `JWT refresh failed: no OAuth token`: Claude Code hat kein gespeichertes Anmelde-Token zum Erneuern gefunden976* `JWT refresh failed: no OAuth token`: Claude Code hat kein gespeichertes Anmelde-Token zum Erneuern gefunden

945* `Signed out of Claude`: Sie haben sich auf diesem Computer abgemeldet, z. B. durch Ausführen von `/logout` in einem anderen Terminal, sodass Claude Code keine gespeicherte Anmeldung mehr hat, um die Verbindung mit zu erneuern977* `Signed out of Claude`: Sie haben sich auf diesem Computer abgemeldet, z. B. durch Ausführung von `/logout` in einem anderen Terminal, sodass Claude Code keine gespeicherte Anmeldung mehr hat, um die Verbindung mit zu erneuern

946 978 

947**Was zu tun ist:**979**Was zu tun ist:**

948 980 


957 Remote Control wurde gestoppt, weil sich das angemeldete Konto geändert hat989 Remote Control wurde gestoppt, weil sich das angemeldete Konto geändert hat

958</h3>990</h3>

959 991 

960Claude Code zeigt diese Zeile während einer [Remote Control](/docs/de/remote-control)-Sitzung an, wenn Sie sich auf diesem Computer bei einem anderen claude.ai-Konto oder einer anderen Organisation anmelden. Sie haben den Wechsel außerhalb der Claude Code-Sitzung vorgenommen, z. B. durch Ausführen von `/login` in einem anderen Terminal.992Claude Code zeigt diese Zeile während einer [Remote Control](/docs/de/remote-control)-Sitzung an, wenn Sie sich auf diesem Computer bei einem anderen claude.ai-Konto oder einer anderen Organisation anmelden. Sie haben den Wechsel außerhalb der Claude Code-Sitzung vorgenommen, z. B. durch Ausführung von `/login` in einem anderen Terminal.

961 993 

962Eine Remote Control-Sitzung, die Sie gestartet haben, während Sie sich durch `/login` angemeldet haben, gehört zum claude.ai-Konto und zur Organisation, die zum Zeitpunkt des Starts angemeldet waren.994Eine Remote Control-Sitzung, die Sie gestartet haben, während Sie sich durch `/login` angemeldet haben, gehört zum claude.ai-Konto und zur Organisation, die zum Zeitpunkt des Starts angemeldet waren.

963 995 


1028 1060 

1029**Was zu tun ist:**1061**Was zu tun ist:**

1030 1062 

1031* Wenn `/status` eine `API key`-Zeile zeigt, ist ein genehmigter [`ANTHROPIC_API_KEY`](/docs/de/authentication#authentication-precedence) die aktive Anmeldedaten und hat Vorrang vor Ihrer Anmeldung, sodass `/login` ihn nicht ersetzt. Rotieren Sie den Schlüssel in der Claude Console, oder greifen Sie auf Ihr Abonnement zurück, indem Sie `unset ANTHROPIC_API_KEY` ausführen, oder in PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.1063* Wenn `/status` eine `API key`-Zeile zeigt, die nicht als nicht in Gebrauch markiert ist, ist ein genehmigter [`ANTHROPIC_API_KEY`](/docs/de/authentication#authentication-precedence) die aktive Anmeldedaten und hat Vorrang vor Ihrer Anmeldung, sodass `/login` ihn nicht ersetzt. Rotieren Sie den Schlüssel in der Claude Console, oder greifen Sie auf Ihr Abonnement zurück, indem Sie `unset ANTHROPIC_API_KEY` ausführen, oder in PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.

1032* Wenn `/status` nur Ihre Anmeldung zeigt, führen Sie `/login` einmal aus. Wenn die Anmeldedaten widerrufen wurden, ersetzt eine frische Anmeldung sie.1064* Wenn `/status` nur Ihre Anmeldung zeigt, führen Sie `/login` einmal aus. Wenn die Anmeldedaten widerrufen wurden, ersetzt eine frische Anmeldung sie.

1033* Wenn die gleiche Meldung für das gleiche Anmeldekonto zurückkehrt, ist das Konto oder die Organisation nicht mehr aktiv. Überprüfen Sie das Konto und die Organisation, die `/status` meldet, und bitten Sie Ihren Organisations-Administrator, den Zugriff wiederherzustellen.1065* Wenn die gleiche Meldung für das gleiche Anmeldekonto zurückkehrt, ist das Konto oder die Organisation nicht mehr aktiv. Überprüfen Sie das Konto und die Organisation, die `/status` meldet, und bitten Sie Ihren Organisations-Administrator, den Zugriff wiederherzustellen.

1034* Wenn [`ANTHROPIC_BASE_URL`](/docs/de/env-vars) auf ein [LLM-Gateway](/docs/de/llm-gateway) zeigt, ist der Text nach `401` die Meldung Ihres Gateways statt Anthropic's, und `/login` ändert ihn nicht. Korrigieren Sie stattdessen die Anmeldedaten, die Ihr Gateway erwartet.1066* Wenn [`ANTHROPIC_BASE_URL`](/docs/de/env-vars) auf ein [LLM-Gateway](/docs/de/llm-gateway) zeigt, ist der Text nach `401` die Meldung Ihres Gateways statt Anthropic's, und `/login` ändert ihn nicht. Korrigieren Sie stattdessen die Anmeldedaten, die Ihr Gateway erwartet.


1063* Im nicht-interaktiven Modus führen Sie `claude` in der gleichen Umgebung aus, führen Sie `/login` aus, dann führen Sie Ihren Befehl erneut aus. Für Automatisierung, die sich nicht interaktiv anmelden kann, authentifizieren Sie sich mit `ANTHROPIC_API_KEY` oder [generieren Sie ein langlebiges Token mit `claude setup-token`](/docs/de/authentication#generate-a-long-lived-token).1095* Im nicht-interaktiven Modus führen Sie `claude` in der gleichen Umgebung aus, führen Sie `/login` aus, dann führen Sie Ihren Befehl erneut aus. Für Automatisierung, die sich nicht interaktiv anmelden kann, authentifizieren Sie sich mit `ANTHROPIC_API_KEY` oder [generieren Sie ein langlebiges Token mit `claude setup-token`](/docs/de/authentication#generate-a-long-lived-token).

1064* Wenn die Anmeldung weiterhin fehlschlägt, siehe [Anmeldung und Authentifizierung](/docs/de/troubleshoot-install#login-and-authentication)1096* Wenn die Anmeldung weiterhin fehlschlägt, siehe [Anmeldung und Authentifizierung](/docs/de/troubleshoot-install#login-and-authentication)

1065 1097 

1098<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1099 Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung

1100</h3>

1101 

1102Ein Administrator's [verwaltete Einstellungen](/docs/de/managed-settings) auf diesem Computer setzen [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) auf `"gateway"` oder setzen [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl). Sofern Sie nicht einen Cloud-Provider durch eine Variable wie `CLAUDE_CODE_USE_BEDROCK` auswählen, akzeptiert Claude Code dann nur die [Claude apps gateway](/docs/de/claude-apps-gateway)-Anmeldung. Sie sehen eine von zwei Meldungen:

1103 

1104```text theme={null}

1105Not signed in to the Cloud gateway — run /login.

1106```

1107 

1108Modellanfragen schlagen mit dieser Meldung fehl, wenn die Sitzung keine Gateway-Anmeldung hat, z. B. weil Sie `/login` nicht seit der Ankunft der Richtlinie auf dem Computer ausgeführt haben.

1109 

1110Wenn Sie auch einen `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder `apiKeyHelper`-Anmeldedaten konfiguriert haben und die verwalteten Einstellungen `forceLoginMethod` setzen, beendet Claude Code beim Start statt mit einer Meldung, die beginnt:

1111 

1112```text theme={null}

1113Administrator policy requires a Cloud gateway sign-in on this machine; the

1114Anthropic-issued credential configured here (ANTHROPIC_API_KEY,

1115ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.

1116```

1117 

1118**Was zu tun ist:**

1119 

1120* Führen Sie `/login` aus und schließen Sie die Anmeldung auf dem **Cloud gateway**-Bildschirm ab

1121* Für die Startup-Meldung entfernen Sie die `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder `apiKeyHelper`-Einstellung, die Sie konfiguriert haben, starten Sie dann `claude` und führen Sie `/login` aus

1122* Wenn Sie glauben, dass der Computer das Gateway nicht erfordern sollte, bitten Sie den Administrator, der ihn verwaltet, `forceLoginMethod` und `forceLoginGatewayUrl` aus seinen verwalteten Einstellungen zu entfernen

1123 

1124In v2.1.265 zeigte eine Regression auch die erste Meldung in einigen LLM-Gateway- und Proxy-Konfigurationen, die sich mit einem API-Schlüssel, `apiKeyHelper` oder benutzerdefinierten Headern authentifizieren, selbst ohne Administrator-Anforderung auf dem Computer. Aktualisieren Sie auf v2.1.266 oder später. Sie müssen Ihre Konfiguration nicht ändern.

1125 

1126Vor v2.1.261 verwendete Claude Code auf Computern, die `forceLoginMethod` auf `"gateway"` setzen, eine verbleibende gespeicherte Anmeldung statt Modellanfragen fehlschlagen zu lassen, und meldete eine konfigurierte Umgebungs-Anmeldedaten mit `This machine's managed settings require a first-party login` statt der Startup-Meldung. Vor v2.1.265 erforderte ein Computer, dessen verwaltete Einstellungen nur `forceLoginGatewayUrl` setzen, nicht die Gateway-Anmeldung, und Claude Code verwendete eine verbleibende Anmeldedaten dort.

1127 

1066<h3 id="your-account-is-on-hold">1128<h3 id="your-account-is-on-hold">

1067 Ihr Konto ist gesperrt1129 Ihr Konto ist gesperrt

1068</h3>1130</h3>


1201* Wenn Ihre Anmeldedaten aktuell sind, bestätigen Sie die IAM-Berechtigungen in [IAM-Konfiguration](/docs/de/amazon-bedrock#iam-configuration), die an die Identität angehängt sind, die Sie verwenden, und dass das ausgewählte Modell für Ihr Konto und Ihre Region aktiviert ist1263* Wenn Ihre Anmeldedaten aktuell sind, bestätigen Sie die IAM-Berechtigungen in [IAM-Konfiguration](/docs/de/amazon-bedrock#iam-configuration), die an die Identität angehängt sind, die Sie verwenden, und dass das ausgewählte Modell für Ihr Konto und Ihre Region aktiviert ist

1202* Führen Sie `aws sts get-caller-identity` aus, um zu bestätigen, welche Identität Ihre Anfragen verwenden; ein veraltetes `AWS_PROFILE` oder Standardprofil ist eine häufige Ursache für eine Berechtigungsnichtübereinstimmung1264* Führen Sie `aws sts get-caller-identity` aus, um zu bestätigen, welche Identität Ihre Anfragen verwenden; ein veraltetes `AWS_PROFILE` oder Standardprofil ist eine häufige Ursache für eine Berechtigungsnichtübereinstimmung

1203 1265 

1266<h3 id="could-not-load-aws-or-google-cloud-credentials">

1267 AWS-Anmeldedaten konnten nicht geladen werden oder Google Cloud-Anmeldedaten

1268</h3>

1269 

1270Claude Code konnte keine verwendbaren Anmeldedaten aus der AWS-Anmeldedaten-Provider-Chain oder aus Ihren Google-Anwendungsstandardanmeldedaten auf dem Computer, auf dem es ausgeführt wird, erhalten, sodass keine Anfrage Ihren Cloud-Provider erreichte. Claude Code löscht seine zwischengespeicherten Anmeldedaten und versucht zweimal erneut, bevor diese Meldung angezeigt wird. Das Detail nach dem `·` benennt die spezifische Ursache, z. B. eine abgelaufene SSO-Sitzung, fehlende Anwendungsstandardanmeldedaten, die als `Could not load the default credentials` gemeldet werden, oder eine widerrufene Anmeldung, die als `invalid_grant` gemeldet wird:

1271 

1272```text theme={null}

1273API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1274API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1275```

1276 

1277Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` und im [Agent SDK](/docs/de/agent-sdk/overview) ist der strukturierte Fehlercode `cloud_credential_error`. Vor v2.1.267 zeigte die Meldung nur den Detail-Text nach `API Error:`, und der strukturierte Code war `server_error` oder `unknown`.

1278 

1279**Was zu tun ist:**

1280 

1281* Führen Sie den Anmeldungsbefehl Ihres Providers aus, z. B. `aws sso login --profile myprofile` oder `gcloud auth application-default login`, dann versuchen Sie es erneut. [Bedrock, Agent Platform oder Foundry-Anmeldedaten werden nicht geladen](/docs/de/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) zeigt, wie Sie die Anmeldedaten außerhalb von Claude Code bestätigen

1282* Wenn das Detail `AWS default-chain credential resolve timed out` liest, hat die Chain gehangen statt fehlgeschlagen, also folgen Sie stattdessen [AWS-Standard-Chain-Anmeldedaten-Auflösung hat das Zeitlimit überschritten](#aws-default-chain-credential-resolve-timed-out)

1283 

1204<h3 id="aws-default-chain-credential-resolve-timed-out">1284<h3 id="aws-default-chain-credential-resolve-timed-out">

1205 AWS-Standard-Chain-Anmeldedaten-Auflösung hat das Zeitlimit überschritten1285 AWS-Standard-Chain-Anmeldedaten-Auflösung hat das Zeitlimit überschritten

1206</h3>1286</h3>

1207 1287 

1208Die AWS-Standard-Anmeldedaten-Provider-Chain hat Anmeldedaten nicht innerhalb von 60 Sekunden produziert, sodass Claude Code die Auflösung gestoppt und die Anfrage fehlgeschlagen hat. Der Fehler ist lokale Anmeldedaten-Auflösung: die Anfrage erreichte nie [Amazon Bedrock](/docs/de/amazon-bedrock), [Claude Platform on AWS](/docs/de/claude-platform-on-aws) oder den [Mantle-Endpunkt](/docs/de/amazon-bedrock#use-the-mantle-endpoint). Claude Code löscht seinen [Anmeldedaten-Cache](/docs/de/amazon-bedrock#credential-caching-and-resolution-timeout) und versucht es erneut, bevor dieser Fehler auftritt, sodass die Chain bei wiederholten Versuchen steckengeblieben ist, wenn Sie ihn sehen.1288Die AWS-Standard-Anmeldedaten-Provider-Chain hat Anmeldedaten nicht innerhalb von 60 Sekunden produziert, sodass Claude Code die Auflösung gestoppt und die Anfrage fehlgeschlagen hat. Dieses Zeitlimit ist eine Ursache von [AWS-Anmeldedaten konnten nicht geladen werden oder Google Cloud-Anmeldedaten](#could-not-load-aws-or-google-cloud-credentials). Der Fehler ist lokale Anmeldedaten-Auflösung: die Anfrage erreichte nie [Amazon Bedrock](/docs/de/amazon-bedrock), [Claude Platform on AWS](/docs/de/claude-platform-on-aws) oder den [Mantle-Endpunkt](/docs/de/amazon-bedrock#use-the-mantle-endpoint). Claude Code löscht seinen [Anmeldedaten-Cache](/docs/de/amazon-bedrock#credential-caching-and-resolution-timeout) und versucht es erneut, bevor dieser Fehler auftritt, sodass die Chain bei wiederholten Versuchen steckengeblieben ist, wenn Sie ihn sehen.

1209 1289 

1210```text theme={null}1290```text theme={null}

1211API Error: AWS default-chain credential resolve timed out1291API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1212```1292```

1213 1293 

1214Häufige Ursachen sind ein `credential_process`-Befehl in Ihrem AWS-Profil, der auf Eingabe wartet, die er nicht erhalten kann, und ein Container oder eine VM, deren Instance-Metadaten-Dienst (IMDS) nie auf die Probe der Chain antwortet. Vor v2.1.207 ließ eine steckengebliebene Chain die Anfrage auf unbestimmte Zeit warten, statt mit dieser Meldung fehlzuschlagen.1294Häufige Ursachen sind ein `credential_process`-Befehl in Ihrem AWS-Profil, der auf Eingabe wartet, die er nicht erhalten kann, und ein Container oder eine VM, deren Instance-Metadaten-Dienst (IMDS) nie auf die Probe der Chain antwortet.

1295 

1296Vor v2.1.267 lautete die Meldung `API Error: AWS default-chain credential resolve timed out`.

1297Vor v2.1.207 ließ eine steckengebliebene Chain die Anfrage auf unbestimmte Zeit warten, statt mit dieser Meldung fehlzuschlagen.

1215 1298 

1216**Was zu tun ist:**1299**Was zu tun ist:**

1217 1300 


1219* Schließen Sie den Anmeldeschritt ab, bevor Sie Claude Code starten, z. B. `aws sso login --profile myprofile`, sodass die Chain aus dem lokalen SSO-Cache aufgelöst wird, statt auf einen Browser-Flow zu warten1302* Schließen Sie den Anmeldeschritt ab, bevor Sie Claude Code starten, z. B. `aws sso login --profile myprofile`, sodass die Chain aus dem lokalen SSO-Cache aufgelöst wird, statt auf einen Browser-Flow zu warten

1220* Wenn Ihre Chain eine interaktive Anmeldung ausführt, die legitim mehr als 60 Sekunden benötigt, z. B. SSO mit MFA durch einen Wrapper wie `aws-vault`, erhöhen Sie das Limit in Millisekunden mit [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars)1303* Wenn Ihre Chain eine interaktive Anmeldung ausführt, die legitim mehr als 60 Sekunden benötigt, z. B. SSO mit MFA durch einen Wrapper wie `aws-vault`, erhöhen Sie das Limit in Millisekunden mit [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars)

1221 1304 

1305<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1306 Bedrock-Setup-Verifizierung hat das Zeitlimit überschritten, während auf AWS gewartet wurde

1307</h3>

1308 

1309Ein Aufruf an AWS während des [Bedrock-Setup-Assistenten](/docs/de/amazon-bedrock#sign-in-with-bedrock)'s Anmeldedaten-Verifizierung, z. B. die Anmeldedaten-Suche oder die Identitätsprüfung, hat nicht innerhalb der 60-Sekunden-Grenze beendet. Der Assistent stoppt das Warten und schlägt den Verifizierungsschritt fehl:

1310 

1311```text theme={null}

1312Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

1313```

1314 

1315Die Zahl spiegelt Ihr Limit wider: 60 Sekunden standardmäßig, oder der Wert, den Sie in [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars) setzen.

1316 

1317Häufige Ursachen sind ein Netzwerk oder Proxy, das Anfragen an AWS staut, einschließlich der SSO-Token-Aktualisierung, und ein Anmeldedaten-Helper, der immer noch auf Eingabe wartet, die Sie nicht sehen können. Erhöhen Sie das Limit nur, wenn der Helper legitim mehr Zeit benötigt.

1318 

1319Eine einzelne steckengebliebene Anfrage an AWS kann auch auf ihrem eigenen Pro-Anfrage-Zeitlimit fehlschlagen, das eine kürzere Meldung auf dem gleichen Schritt zeigt:

1320 

1321```text theme={null}

1322A request to AWS timed out. Check your network and proxy settings, then try again.

1323```

1324 

1325Wenn die gleichen Zeitüberschreitungen auf dem Modell-Pin-Schritt auftreten, markiert der Assistent ein Modell als `unreachable` statt eine der beiden Meldungen zu zeigen.

1326 

1327**Was zu tun ist:**

1328 

1329* Führen Sie `aws sts get-caller-identity` in der gleichen Shell aus. Wenn es auch hängt, ist die Stagnation außerhalb von Claude Code, in Ihrem Netzwerk, Ihrem Proxy oder dem Anmeldedaten-Helper in Ihrem AWS-Profil; beheben Sie das zuerst.

1330* Schließen Sie jede interaktive Anmeldung ab, bevor Sie den Assistenten öffnen, z. B. `aws sso login --profile myprofile`

1331* Wenn ein Anmeldedaten-Helper in Ihrem AWS-Profil legitim länger als 60 Sekunden benötigt, um Sie aufzufordern, erhöhen Sie das Limit in Millisekunden mit [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/de/env-vars)

1332 

1333<h3 id="cloud-gateway-session-expired">

1334 Cloud-Gateway-Sitzung abgelaufen

1335</h3>

1336 

1337Sie haben sich durch ein [Claude apps gateway](/docs/de/claude-apps-gateway) angemeldet, und die auf diesem Computer gespeicherte Gateway-Sitzung ist abgelaufen und konnte nicht erneuert werden, oder das Gateway akzeptiert sie nicht mehr, z. B. nachdem das Gateway's [JWT-Geheimnis rotiert wurde](/docs/de/claude-apps-gateway-deploy#jwt-secret-rotation). Wenn Sie diese Zeile sehen, wenn Sie `claude` interaktiv starten, hat die Sitzung ohne Gateway-Anmeldung geöffnet:

1338 

1339```text theme={null}

1340Cloud gateway session expired — run /login to reconnect.

1341```

1342 

1343Die gleiche Zeile kann während der Sitzung erscheinen, wenn die Gateway-Anmeldedaten ablaufen und Claude Code sie nicht erneuern kann.

1344 

1345In einem [nicht-interaktiven](/docs/de/headless) Lauf, einer Hintergrund- oder anderen unbeaufsichtigten Sitzung oder einem `claude`-Unterbefehl außer `claude auth` beendet Claude Code statt mit dieser Meldung:

1346 

1347```text theme={null}

1348Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1349```

1350 

1351**Was zu tun ist:**

1352 

1353* Führen Sie `/login` in der Sitzung aus und schließen Sie die Browser-Anmeldung ab

1354* Für einen nicht-interaktiven Start starten Sie `claude` in der gleichen Umgebung, führen Sie `/login` aus, dann führen Sie Ihren Befehl erneut aus

1355 

1222<h2 id="network-and-connection-errors">1356<h2 id="network-and-connection-errors">

1223 Netzwerk- und Verbindungsfehler1357 Netzwerk- und Verbindungsfehler

1224</h2>1358</h2>


1378SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.1512SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

1379```1513```

1380 1514 

1515Auf [Amazon Bedrock](/docs/de/amazon-bedrock) hängen die Anfragen, die Claude Code selbst an AWS sendet, wie z. B. die STS- und SSO-Rollenkredential-Aufrufe, Modellermittlung und die Überprüfungen des Setup-Assistenten, von der gleichen Zertifikatskonfiguration ab. Siehe [Zertifikatsfehler hinter einem TLS-inspizierenden Proxy](/docs/de/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).

1516 

1381**Was zu tun ist:**1517**Was zu tun ist:**

1382 1518 

1383* Exportieren Sie das CA-Bundle Ihrer Organisation und verweisen Sie Claude Code mit `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` darauf1519* Exportieren Sie das CA-Bundle Ihrer Organisation und verweisen Sie Claude Code mit `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` darauf


1676Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.1812Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.

1677Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.1813Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.

1678Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.1814Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.

1815Unable to resize image — it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG and try again.

1816Unable to resize image — it is an animated WebP whose first frame Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Save its first frame as a PNG or JPEG and try again.

1817Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.

1679```1818```

1680 1819 

1681Claude Code ändert normalerweise die Größe großer Bilder automatisch. Diese Fehler bedeuten, dass der native Bildprozessor nicht geladen werden konnte oder einen Fehler zurückgegeben hat, daher konnte das Bild nicht in die Größe geändert werden, um in die API-Limits zu passen.1820Claude Code ändert normalerweise die Größe großer Bilder automatisch. Diese Fehler bedeuten, dass das Bild nicht dekodiert oder in der Größe geändert werden konnte, um in die API-Limits zu passen.

1682 1821 

1683**Was zu tun ist:**1822**Was zu tun ist:**

1684 1823 

1685* Wenn die Meldung Sie auffordert, das Bild zu konvertieren, konvertieren Sie es in PNG, JPEG, GIF oder WebP und hängen Sie es erneut an. Claude Code kann Dimensionen für diese Formate überprüfen, ohne den Bildprozessor zu verwenden.1824* Wenn die Meldung Sie auffordert, das Bild zu konvertieren, konvertieren Sie es in PNG, JPEG, GIF oder WebP und hängen Sie es erneut an. Claude Code kann Dimensionen für diese Formate überprüfen, ohne das Bild zu dekodieren.

1686* Wenn die Meldung ein Dimensions- oder Größenlimit meldet, ändern Sie die Größe oder komprimieren Sie das Bild unter diesem Limit, bevor Sie es anhängen.1825* Wenn die Meldung ein Dimensions- oder Größenlimit meldet, ändern Sie die Größe oder komprimieren Sie das Bild unter diesem Limit, bevor Sie es anhängen.

1826* Wenn die Meldung eine Ursache nennt, wie z. B. ein CMYK JPEG, ein animiertes WebP oder eine möglicherweise beschädigte Datei, speichern Sie das Bild in dem Format, das die Meldung vorschlägt, und hängen Sie es erneut an.

1687 1827 

1688<h3 id="pdf-errors">1828<h3 id="pdf-errors">

1689 PDF-Fehler1829 PDF-Fehler


1728 1868 

1729```text theme={null}1869```text theme={null}

1730API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid1870API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid

1871API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'

1731```1872```

1732 1873 

1874Die erste Form bedeutet, dass das Schema nicht gültiges JSON Schema draft 2020-12 ist. Die zweite bedeutet, dass ein Eigenschaftsname auf oberster Ebene nicht dem Muster entspricht, das die Meldung zitiert.

1875 

1733Claude Code [schließt MCP-Werkzeuge aus, deren Eingabeschema diese Validierung nicht bestehen würde](/docs/de/mcp#tools-with-invalid-input-schemas), wenn es die Werkzeuge eines Servers lädt, daher enthalten Anfragen normalerweise nie eines.1876Claude Code [schließt MCP-Werkzeuge aus, deren Eingabeschema diese Validierung nicht bestehen würde](/docs/de/mcp#tools-with-invalid-input-schemas), wenn es die Werkzeuge eines Servers lädt, daher enthalten Anfragen normalerweise nie eines.

1734 1877 

1735Auf einer [Bereitstellung, bei der das Flag-Abrufen ausgeschaltet ist](/docs/de/env-vars#features-that-need-feature-flag-fetching), oder auf einer Maschine, deren Flags nie angekommen sind, zeichnet Claude Code im Serverprotokoll auf, welches Werkzeug abgelehnt würde, sendet es aber trotzdem, daher kann dieser Fehler immer noch auftreten.1878Auf einer [Bereitstellung, bei der das Flag-Abrufen ausgeschaltet ist](/docs/de/env-vars#features-that-need-feature-flag-fetching), oder auf einer Maschine, deren Flags nie angekommen sind, zeichnet Claude Code im Serverprotokoll auf, welches Werkzeug abgelehnt würde, sendet es aber trotzdem, daher kann dieser Fehler immer noch auftreten.


1777 1920 

1778Der nachfolgende Hinweis nennt den nächsten passenden Alias oder die nächste Modell-ID. Wenn nichts nah genug ist, lautet es stattdessen `Run /model to see available models.`1921Der nachfolgende Hinweis nennt den nächsten passenden Alias oder die nächste Modell-ID. Wenn nichts nah genug ist, lautet es stattdessen `Run /model to see available models.`

1779 1922 

1780Claude Code erzeugt diesen Fehler lokal in dem Moment, in dem der Wechsel angefordert wird, bevor eine API-Anfrage gestellt wird. Er gilt, wenn ein Modell durch die [Agent SDK](/docs/de/agent-sdk/typescript) `setModel()`-Methode oder durch eine App wie die [Desktop-App](/docs/de/desktop) gesetzt wird, die die Claude-Code-CLI für Sie ausführt.1923Claude Code erzeugt diesen Fehler lokal in dem Moment, in dem der Wechsel angefordert wird, bevor eine API-Anfrage gestellt wird. Er gilt, wenn ein Modell durch die [Agent SDK](/docs/de/agent-sdk/typescript) `setModel()`-Methode, durch eine App wie die [Desktop-App](/docs/de/desktop), die die Claude-Code-CLI für Sie ausführt, oder wenn Sie ein Modell von einem Gerät auswählen, das über [Remote Control](/docs/de/remote-control) verbunden ist, gesetzt wird. Vor v2.1.260 deckte die Überprüfung Remote Control-Auswahlen nicht ab, daher wendete Claude Code die Auswahl an und die nächste Anfrage schlug mit [Es gibt ein Problem mit dem ausgewählten Modell](#theres-an-issue-with-the-selected-model) fehl.

1781 1924 

1782**Was zu tun ist:**1925**Was zu tun ist:**

1783 1926 


1786* Ein Modell, das vor v2.1.200 gespeichert wurde, wird durch diese Überprüfung nicht repariert. Wenn ein veralteter Wert immer wieder zurückkommt, entfernen Sie ihn aus den unter [Setzen Sie Ihr Modell](/docs/de/model-config#setting-your-model) aufgelisteten Orten.1929* Ein Modell, das vor v2.1.200 gespeichert wurde, wird durch diese Überprüfung nicht repariert. Wenn ein veralteter Wert immer wieder zurückkommt, entfernen Sie ihn aus den unter [Setzen Sie Ihr Modell](/docs/de/model-config#setting-your-model) aufgelisteten Orten.

1787* Die Überprüfung wird nur auf der Anthropic-API ausgeführt. Auf jedem anderen Anbieter oder Gateway, einschließlich eines benutzerdefinierten `ANTHROPIC_BASE_URL`, definiert der Anbieter die Modellnamen, daher akzeptiert Claude Code jede Zeichenkette und leitet sie durch. Claude Code kann immer noch die [nicht erkannte Modell-Diagnosezeile](#unrecognized-model-id-on-a-request) zur Anfragetime auf jedem Anbieter schreiben.1930* Die Überprüfung wird nur auf der Anthropic-API ausgeführt. Auf jedem anderen Anbieter oder Gateway, einschließlich eines benutzerdefinierten `ANTHROPIC_BASE_URL`, definiert der Anbieter die Modellnamen, daher akzeptiert Claude Code jede Zeichenkette und leitet sie durch. Claude Code kann immer noch die [nicht erkannte Modell-Diagnosezeile](#unrecognized-model-id-on-a-request) zur Anfragetime auf jedem Anbieter schreiben.

1788 1931 

1932<h3 id="model-not-found">

1933 Modell nicht gefunden

1934</h3>

1935 

1936Sie haben ein Modell mit `/model <name>` ausgewählt und Claude Code konnte nicht bestätigen, dass ein Modell mit diesem Namen existiert. Wenn der Name kein [Modellalias](/docs/de/model-config#model-aliases) oder eine andere Schreibweise ist, die Claude Code lokal akzeptiert, überprüft `/model` ihn mit einer minimalen API-Anfrage, und dieser Fehler ist normalerweise die Antwort Ihres API-Endpunkts. Ein Name, der überhaupt keine Modell-ID sein kann, wie einer mit Leerzeichen, erhält die gleiche Meldung.

1937 

1938```text theme={null}

1939Model 'claude-opus-9' not found

1940```

1941 

1942Bei Anbietern mit anbieterspezifischen Modell-IDs kann die Meldung einen `Try '...' instead`-Vorschlag hinzufügen, der die ID Ihres Anbieters für ein Fallback-Modell nennt.

1943 

1944**Was zu tun ist:**

1945 

1946* Führen Sie `/model` ohne Argument aus und wählen Sie aus den Modellen, die für Ihr Konto verfügbar sind, oder verwenden Sie einen [Modellalias](/docs/de/model-config#model-aliases) wie `sonnet`, der zu einem verwalteten Standard aufgelöst wird

1947* Wenn Sie eine vollständige ID eingegeben haben, überprüfen Sie sie gegen den Modellkatalog Ihres Anbieters. Ein neu gestartetes Modell kann auf der Anthropic-API verfügbar sein, bevor Ihr Anbieter oder Ihre Region es anbietet.

1948* Vor v2.1.265 lehnte `/model` auch die `opusplan[1m]`-Alias-Schreibweise mit diesem Fehler ab. Auf diesen Versionen aktualisieren Sie Claude Code, oder setzen Sie das Modell in [Einstellungen](/docs/de/model-config#setting-your-model) oder mit `--model` statt.

1949 

1789<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">1950<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

1790 Claude Opus ist nicht mit dem Claude Pro-Plan verfügbar1951 Claude Opus ist nicht mit dem Claude Pro-Plan verfügbar

1791</h3>1952</h3>


1806 Claude Code unterstützt dieses Modell nicht1967 Claude Code unterstützt dieses Modell nicht

1807</h3>1968</h3>

1808 1969 

1809Das Modell, das Sie ausgewählt haben, erfordert eine neuere Claude-Code-Version als die, die die Anfrage stellt. Der Server überprüft dies pro Modell.1970Die API lehnte die Anfrage mit einem 400 ab, weil Ihre Claude-Code-Version unter einem erforderlichen Minimum liegt. Entweder erfordert das Modell, das Sie ausgewählt haben, eine neuere Version, die der Server pro Modell überprüft, oder die Richtlinie Ihrer Organisation erfordert eine. Der 400 trägt den Fehlercode `claude_code_version_too_old`, und die Meldung sagt, welches Minimum gilt.

1810 1971 

1811```text theme={null}1972```text theme={null}

1812API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.1973API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.

1813```1974```

1814 1975 

1976Die Richtlinien-Formulierung der Organisation lautet:

1977 

1978```text theme={null}

1979API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

1980```

1981 

1815**Was zu tun ist:**1982**Was zu tun ist:**

1816 1983 

1817* Führen Sie `claude update` aus, oder aktualisieren Sie die Claude-Desktop-App, dann starten Sie eine neue Sitzung auf dem Modell1984* Führen Sie `claude update` aus, oder aktualisieren Sie die Claude-Desktop-App, dann starten Sie eine neue Sitzung

1818* Um in der aktuellen Sitzung weiterzuarbeiten, wechseln Sie mit `/model` zu einem anderen Modell1985* Für die Pro-Modell-Formulierung können Sie in der aktuellen Sitzung weitermachen, indem Sie mit `/model` zu einem anderen Modell wechseln

1986* Für die Organisationsrichtlinien-Formulierung aktualisieren Sie, bevor Sie fortfahren

1819 1987 

1820<h3 id="model-is-restricted-by-your-organizations-settings">1988<h3 id="model-is-restricted-by-your-organizations-settings">

1821 Modell ist durch die Einstellungen Ihrer Organisation eingeschränkt1989 Modell ist durch die Einstellungen Ihrer Organisation eingeschränkt


1837* Wenn das eingeschränkte Modell in `--model`, `ANTHROPIC_MODEL`, dem `model`-Feld einer Einstellungsdatei oder dem `model`-Frontmatter eines [Subagenten](/docs/de/sub-agents#choose-a-model), einer Fähigkeit oder eines Befehls gesetzt wurde, entfernen oder aktualisieren Sie diesen Wert, damit der Hinweis nicht erneut auftritt2005* Wenn das eingeschränkte Modell in `--model`, `ANTHROPIC_MODEL`, dem `model`-Feld einer Einstellungsdatei oder dem `model`-Frontmatter eines [Subagenten](/docs/de/sub-agents#choose-a-model), einer Fähigkeit oder eines Befehls gesetzt wurde, entfernen oder aktualisieren Sie diesen Wert, damit der Hinweis nicht erneut auftritt

1838* Wenn Sie Zugriff auf das eingeschränkte Modell benötigen, bitten Sie Ihren Organisationsadministrator, es zu aktivieren. Siehe [Organisationsmodell-Einschränkungen](/docs/de/model-config#organization-model-restrictions).2006* Wenn Sie Zugriff auf das eingeschränkte Modell benötigen, bitten Sie Ihren Organisationsadministrator, es zu aktivieren. Siehe [Organisationsmodell-Einschränkungen](/docs/de/model-config#organization-model-restrictions).

1839 2007 

2008<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2009 Modellwechsel wurde durch einen PreModelSwitch-Hook blockiert

2010</h3>

2011 

2012Ein [PreModelSwitch-Hook](/docs/de/hooks#premodelswitch) hat den Modellwechsel, den Sie oder ein Client angefordert haben, nicht genehmigt, daher behält die Sitzung ihr aktuelles Modell. Wenn der Wechsel von einem [Agent SDK](/docs/de/agent-sdk/overview)-Host oder [Remote Control](/docs/de/remote-control) statt von einem Befehl kam, den Sie eingegeben haben, lautet die Meldung `Model switch blocked by a PreModelSwitch hook` ohne Nennung des Zielmodells.

2013 

2014```text theme={null}

2015Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.

2016```

2017 

2018Der Grund nach dem Doppelpunkt sagt, was den Wechsel ablehnte:

2019 

2020* **Ein Grund, den ein Hook geschrieben hat**: Ein PreModelSwitch-Hook lieferte diesen Grund, wenn er [den Wechsel ablehnte oder um Bestätigung bat](/docs/de/hooks#premodelswitch-decision-control). Beheben Sie, was er verlangt, oder wählen Sie ein Modell, das Ihre Hooks zulassen.

2021* **`PreModelSwitch hook <name> did not respond before its timeout`**: Ein Hook, der nicht vor seinem [Timeout](/docs/de/hooks#timeouts) antwortet, blockiert den Wechsel. Beheben Sie den hängenden Befehl oder erhöhen Sie das `timeout` dieses Hooks, dann wechseln Sie erneut.

2022* **`confirmation required, and this session cannot ask`**: Ein Hook antwortete `ask` ohne Grund, und eine Kontrollabfrage hat keine Möglichkeit, die Bestätigungsaufforderung anzuzeigen. Ein `/model`-Befehl in einem [`-p`-Lauf](/docs/de/headless) meldet die gleiche Bedingung mit `(run /model interactively to confirm)` nach dem Grund. Machen Sie den Wechsel von einer interaktiven Sitzung, oder ändern Sie die Entscheidung des Hooks für dieses Modell.

2023* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code konnte nicht sagen, welche PreModelSwitch-Hooks Ihre Organisation [verwaltete Plugins](/docs/de/settings-reference#enabledplugins) liefern, zum Beispiel weil ein verwaltetes Plugin nicht geladen werden konnte. Einer dieser Hooks könnte den Wechsel blockieren, daher weigert sich Claude Code, statt den Wechsel unkontrolliert anzuwenden. Der Anfang des Grundes nennt, was fehlgeschlagen ist. Claude Code überprüft bei jedem Wechselversuch erneut, daher stoppt ein Fehler, der seitdem geklärt wurde, das Blockieren; wenn es weiterhin fehlschlägt, führen Sie `claude --debug` aus und wechseln Sie erneut, um die Details zu erfassen, dann beheben Sie das Plugin oder bitten Sie Ihren Admin, es zu beheben.

2024* **`a PreModelSwitch hook failed before answering`** oder **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: Der Hook-Lauf endete ohne Urteil, und Claude Code behandelt das nicht als Genehmigung. Führen Sie `claude --debug` aus, um zu sehen, was fehlgeschlagen ist, dann wechseln Sie erneut.

2025 

2026Vor v2.1.260 lautete die verwaltete Plugin-Ablehnung `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code wiederholte das Plugin-Laden einmal und lehnte dann später Wechsel in der Sitzung ab, auch wenn Ihre Organisation keine Plugins verwaltete. Starten Sie die Sitzung auf diesen Versionen neu, um das Plugin-Laden erneut auszuführen.

2027 

2028<h3 id="couldnt-save-it-as-your-default">

2029 Konnte es nicht als Standard speichern

2030</h3>

2031 

2032Sie haben ein Modell ausgewählt, um es als Standard zu speichern, zum Beispiel mit `/model <name>` oder `Enter` in der `/model`-Auswahl, und Claude Code konnte die Auswahl nicht in Ihre Benutzereinstellungsdatei `~/.claude/settings.json` schreiben. Der Wechsel selbst wurde angewendet, daher läuft die aktuelle Sitzung auf dem Modell, das Sie ausgewählt haben, aber Ihr Standard ist unverändert und die nächste Sitzung startet auf dem alten Wert.

2033 

2034```text theme={null}

2035Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)

2036```

2037 

2038Der Grund nach dem Dateipfad sagt, was fehlgeschlagen ist:

2039 

2040* **`can't be written (<code>)`**: Der Schreibvorgang schlug mit dem Betriebssystemfehlercode in Klammern fehl, wie `EROFS`, wenn die Datei oder die Datei, auf die sie verweist, auf einem Dateisystem sitzt, das Schreibvorgänge ablehnt. Machen Sie die Datei beschreibbar und wechseln Sie erneut. Wenn ein anderes Werkzeug die Datei erzeugt, setzen Sie stattdessen den `model`-Schlüssel in diesem Werkzeug; siehe [Eine Änderung, die Sie in Claude Code gemacht haben, geht in neuen Sitzungen verloren](/docs/de/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

2041* **`isn't valid JSON`**: Die Datei auf der Festplatte wird nicht geparst, und Claude Code lässt sie unverändert, statt Inhalte zu überschreiben, die es nicht zurücklesen kann. Beheben Sie den Syntaxfehler, dann wechseln Sie erneut; siehe [Beheben Sie eine kaputte Einstellungsdatei](/docs/de/settings#fix-a-broken-settings-file).

2042 

2043Ein Hinweis, der mit `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` endet, bedeutet, dass der Schreibvorgang nach drei Sekunden nicht beendet war. Er wird im Hintergrund fortgesetzt, daher kann der Standard immer noch gespeichert werden; überprüfen Sie, mit welchem Modell Ihre nächste Sitzung startet, oder führen Sie `/model <name>` erneut aus.

2044 

2045Vor v2.1.265 sagte der Hinweis, das Modell sei `saved as your default for new sessions`, auch wenn der Schreibvorgang fehlgeschlagen war.

2046 

1840<h3 id="thinking-type-enabled-is-not-supported-for-this-model">2047<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

1841 thinking.type.enabled wird für dieses Modell nicht unterstützt2048 thinking.type.enabled wird für dieses Modell nicht unterstützt

1842</h3>2049</h3>


2123 2330 

2124```text theme={null}2331```text theme={null}

2125The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.2332The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2333error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2126```2334```

2127 2335 

2336Die Ursache und die Lösung sind für beide Formen gleich.

2337 

2128Wenn Claude Code das Arbeitsverzeichnis aus einem anderen Grund nicht lesen kann, z. B. aufgrund einer Berechtigungsänderung, benennt die Meldung stattdessen den Fehlercode: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`2338Wenn Claude Code das Arbeitsverzeichnis aus einem anderen Grund nicht lesen kann, z. B. aufgrund einer Berechtigungsänderung, benennt die Meldung stattdessen den Fehlercode: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2129 2339 

2340Auf macOS bedeutet `EPERM` für ein Verzeichnis in `~/Desktop`, `~/Documents`, `~/Downloads` oder iCloud Drive normalerweise, dass macOS Ihre Terminal-App von diesem Ordner blockiert. Andere Befehle, die diesen Ordner lesen, schlagen auf die gleiche Weise fehl: `ls` dort meldet `Operation not permitted`, auch mit `sudo`.

2341 

2130**Was zu tun ist:**2342**Was zu tun ist:**

2131 2343 

2132* Wechseln Sie zu einem Verzeichnis, das existiert, z. B. Ihr Home- oder Projektverzeichnis, und führen Sie dann `claude` erneut aus2344* Wechseln Sie zu einem Verzeichnis, das existiert, z. B. Ihr Home- oder Projektverzeichnis, und führen Sie dann `claude` erneut aus

2133* Wenn das Verzeichnis unter demselben Pfad neu erstellt wurde, hält Ihre Shell immer noch das gelöschte. Führen Sie `cd "$PWD"` aus oder verlassen Sie das Verzeichnis und betreten Sie es erneut, und führen Sie dann `claude` erneut aus2345* Wenn das Verzeichnis unter demselben Pfad neu erstellt wurde, hält Ihre Shell immer noch das gelöschte. Führen Sie `cd "$PWD"` aus oder verlassen Sie das Verzeichnis und betreten Sie es erneut, und führen Sie dann `claude` erneut aus

2346* Für `EPERM` auf macOS beenden Sie Ihre Terminal-App mit Cmd+Q, öffnen Sie sie erneut, kehren Sie zu diesem Ordner zurück, und führen Sie `claude` aus. Wenn `ls` in diesem Ordner immer noch fehlschlägt, öffnen Sie **Systemeinstellungen > Datenschutz & Sicherheit > Dateien und Ordner**, aktivieren Sie den Ordner für Ihre Terminal-App, und öffnen Sie dann das Terminal erneut

2347 

2348<h3 id="directory-couldnt-be-resolved-to-a-real-location">

2349 Verzeichnis konnte nicht zu einem echten Ort aufgelöst werden

2350</h3>

2351 

2352Sie haben `/add-dir` für ein Unterverzeichnis Ihres Arbeitsverzeichnisses ausgeführt, und Claude Code konnte das Verzeichnis nicht zu seinem echten Ort auflösen.

2353 

2354Sie haben bereits Dateizugriff auf ein Unterverzeichnis des Arbeitsverzeichnisses, daher lädt `/add-dir` nur seine Fähigkeiten, Befehle und Agenten. Bevor sie geladen werden, überprüft Claude Code, dass der echte Ort des Verzeichnisses, mit aufgelösten Symlinks, sich im Arbeitsverzeichnis befindet. Wenn Claude Code diesen Ort nicht auflösen kann, lädt es nichts und zeigt diese Meldung:

2355 

2356```text theme={null}

2357packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

2358```

2359 

2360**Was zu tun ist:**

2361 

2362* Überprüfen Sie, dass der Pfad ein echtes Verzeichnis im Arbeitsverzeichnis benennt, und führen Sie dann `/add-dir` erneut aus

2363* Die Meldung ändert Ihren Dateizugriff nicht; sie meldet nur, dass der `.claude/`-Inhalt des Verzeichnisses nicht geladen wurde

2364 

2365Vor v2.1.261 erschien diese Meldung auch für jeden `/add-dir <subdirectory>`, wenn das Arbeitsverzeichnis auf einem `/net/<host>`-Automount war, wo Claude Code sich weigert, Pfade nach Design aufzulösen; das Verzeichnis war in Ordnung und ein Wiederholungsversuch konnte nicht helfen.

2134 2366 

2135<h3 id="workspace-not-trusted-when-starting-remote-control">2367<h3 id="workspace-not-trusted-when-starting-remote-control">

2136 Arbeitsbereich nicht vertraut beim Starten der Remote-Steuerung2368 Arbeitsbereich nicht vertraut beim Starten der Remote-Steuerung


2187Claude Code schaltet `claude import` über eine Feature-Flag ein, die es von Anthropic abruft und auf der Festplatte zwischenspeichert. Diese Meldung bedeutet, dass der zwischengespeicherte Wert ausgeschaltet ist. Die Ursache ist normalerweise eine der folgenden:2419Claude Code schaltet `claude import` über eine Feature-Flag ein, die es von Anthropic abruft und auf der Festplatte zwischenspeichert. Diese Meldung bedeutet, dass der zwischengespeicherte Wert ausgeschaltet ist. Die Ursache ist normalerweise eine der folgenden:

2188 2420 

2189* Sie haben seit der Installation keine Sitzung gestartet, daher hat Claude Code die Flag noch nicht abgerufen. Der erste `claude import` kann dies drucken, auch wenn die Funktion für Sie verfügbar ist.2421* Sie haben seit der Installation keine Sitzung gestartet, daher hat Claude Code die Flag noch nicht abgerufen. Der erste `claude import` kann dies drucken, auch wenn die Funktion für Sie verfügbar ist.

2190* Sie verwenden Claude Code über Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS. Claude Code ruft Feature-Flags auf diesen Anbietern nicht ab, daher bleibt `claude import` nicht verfügbar.2422* Sie verwenden Claude Code über Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform auf AWS oder über ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway#availability-and-limitations). Claude Code ruft Feature-Flags in diesen Sitzungen nicht ab, daher bleibt `claude import` nicht verfügbar.

2191* Sie haben `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` oder [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) gesetzt, was das Abrufen von Feature-Flags ausschaltet, daher bleibt `claude import` nicht verfügbar.2423* Sie haben `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` oder [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) gesetzt, was das Abrufen von Feature-Flags ausschaltet, daher bleibt `claude import` nicht verfügbar.

2192 2424 

2193**Was zu tun ist:**2425**Was zu tun ist:**


2227* Benennen Sie den Server in `claude_desktop_config.json` um, um nur Buchstaben, Zahlen, Bindestriche und Unterstriche zu verwenden, und führen Sie dann `claude mcp add-from-claude-desktop` erneut aus2459* Benennen Sie den Server in `claude_desktop_config.json` um, um nur Buchstaben, Zahlen, Bindestriche und Unterstriche zu verwenden, und führen Sie dann `claude mcp add-from-claude-desktop` erneut aus

2228* Fügen Sie diesen Server direkt mit `claude mcp add` oder `claude mcp add-json` unter einem gültigen Namen hinzu. Siehe [MCP-Server aus Claude Desktop importieren](/docs/de/mcp#import-mcp-servers-from-claude-desktop).2460* Fügen Sie diesen Server direkt mit `claude mcp add` oder `claude mcp add-json` unter einem gültigen Namen hinzu. Siehe [MCP-Server aus Claude Desktop importieren](/docs/de/mcp#import-mcp-servers-from-claude-desktop).

2229 2461 

2462<h3 id="cannot-add-mcp-server-to-the-managed-scope">

2463 MCP-Server kann nicht zum verwalteten Bereich hinzugefügt werden

2464</h3>

2465 

2466Sie haben `claude mcp add` oder `claude mcp add-json` mit `--scope managed` ausgeführt. Dieser Bereich enthält die Server, die Ihre Organisation über die verwaltete Einstellung [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) bereitstellt. Claude Code liest sie nur aus verwalteten Einstellungen, daher kann der Befehl keinen Server in diesen Bereich schreiben.

2467 

2468```text theme={null}

2469Cannot add MCP server to scope: managed

2470```

2471 

2472**Was zu tun ist:**

2473 

2474* Fügen Sie den Server zu einem Bereich hinzu, in den Sie schreiben können: `local`, `user` oder `project`. Ohne `--scope` verwendet der Befehl `local`. Siehe [MCP-Installationsbereiche](/docs/de/mcp#mcp-installation-scopes)

2475* Um den Server jedem Benutzer in Ihrer Organisation bereitzustellen, fügen Sie ihn zu [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) in den verwalteten Einstellungen hinzu, die Sie bereitstellen

2476 

2477<h3 id="cant-read-mcp-json">

2478 .mcp.json kann nicht gelesen werden

2479</h3>

2480 

2481Ein Befehl, der die Projekt-[`.mcp.json`](/docs/de/mcp#project-scope) liest, wie `claude mcp add` oder `claude mcp add-json` mit `--scope project`, oder `claude mcp remove`, hat festgestellt, dass die Datei in Ihrem aktuellen Verzeichnis keine reguläre Datei ist oder größer als 2 MiB ist, daher wird er mit diesem Fehler beendet, anstatt die Datei zu lesen.

2482 

2483```text theme={null}

2484Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

2485```

2486 

2487Vor v2.1.257 ließ eine FIFO bei `.mcp.json` den Befehl für immer ohne Ausgabe warten, und ein Symlink zu einer Gerätedatei wie `/dev/zero` vergrößerte den Speicher, bis der Prozess beendet wurde.

2488 

2489**Was zu tun ist:**

2490 

2491* Überprüfen Sie, was bei `.mcp.json` in Ihrem aktuellen Verzeichnis sitzt. Ersetzen Sie es durch eine gewöhnliche JSON-Datei im [Projekt-Scope-Format](/docs/de/mcp#project-scope), oder löschen Sie es, und führen Sie dann den Befehl erneut aus.

2492 

2230<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">2493<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

2231 Server ist von Anthropic gehostet und unterstützt lokales OAuth nicht2494 Server ist von Anthropic gehostet und unterstützt lokales OAuth nicht

2232</h3>2495</h3>


2281* Bestätigen Sie, dass der Tool-Name dem `mcp__<server>__<tool>`-Namen entspricht, den der Server bereitstellt2544* Bestätigen Sie, dass der Tool-Name dem `mcp__<server>__<tool>`-Namen entspricht, den der Server bereitstellt

2282* Wenn der Server länger als 30 Sekunden zum Starten benötigt, erhöhen Sie [`MCP_TIMEOUT`](/docs/de/env-vars)2545* Wenn der Server länger als 30 Sekunden zum Starten benötigt, erhöhen Sie [`MCP_TIMEOUT`](/docs/de/env-vars)

2283 2546 

2547<h3 id="oauth-callback-port-is-already-in-use">

2548 OAuth-Callback-Port wird bereits verwendet

2549</h3>

2550 

2551Wenn Sie sich bei einem Remote-MCP-Server mit OAuth anmelden, startet Claude Code einen lokalen Listener, um den Anmelde-Callback zu empfangen. Wenn der Port, den dieser Listener benötigt, von einem anderen Prozess gehalten wird, schlägt die Anmeldung mit dieser Meldung fehl. Dies geschieht hauptsächlich mit einem [festen Callback-Port](/docs/de/mcp#use-a-fixed-oauth-callback-port), der über die Variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/de/env-vars) oder `--callback-port` gesetzt wird, da Claude Code ohne einen verfügbaren Port auswählt.

2552 

2553```text theme={null}

2554OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

2555```

2556 

2557Unter Windows ist der vorgeschlagene Befehl stattdessen `netstat -ano | findstr :<port>`.

2558 

2559**Was zu tun ist:**

2560 

2561* Führen Sie den Befehl aus der Meldung aus, um den Prozess zu finden, der den Port hält, und stoppen Sie ihn oder warten Sie, bis er beendet ist

2562* Wenn ein anderes Programm diesen Port dauerhaft benötigt, registrieren Sie einen anderen Redirect-URI beim Server und setzen Sie seinen Port mit `MCP_OAUTH_CALLBACK_PORT` oder `--callback-port`, je nachdem, was Sie verwenden

2563* Starten Sie dann die Anmeldung erneut, zum Beispiel indem Sie den Server in `/mcp` auswählen

2564 

2284<h3 id="security-review-fails-without-origin-head">2565<h3 id="security-review-fails-without-origin-head">

2285 /security-review schlägt ohne origin/HEAD fehl2566 /security-review schlägt ohne origin/HEAD fehl

2286</h3>2567</h3>


2290```text theme={null}2571```text theme={null}

2291Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]2572Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]

2292fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.2573fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.

2293Use '---- to separate paths from revisions, like this:2574Use '--' to separate paths from revisions, like this:

2294'git <command> [<revision>...] -- [<file>...]'2575'git <command> [<revision>...] -- [<file>...]'

2295```2576```

2296 2577 


2337 2618 

2338* Fügen Sie sichtbaren Text in die Eingabeaufforderung ein. Wenn ein Skript die Eingabeaufforderung aus einer Variablen oder Datei erstellt, überprüfen Sie, dass die Quelle nicht leer ist, bevor Sie Claude Code aufrufen.2619* Fügen Sie sichtbaren Text in die Eingabeaufforderung ein. Wenn ein Skript die Eingabeaufforderung aus einer Variablen oder Datei erstellt, überprüfen Sie, dass die Quelle nicht leer ist, bevor Sie Claude Code aufrufen.

2339 2620 

2621<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

2622 stream-json-Eingabe trug über 256M Zeichen ohne Zeilenumbruch

2623</h3>

2624 

2625Ihr Programm hat mehr als 268.435.456 Zeichen auf stdin ohne Zeilenumbruch an einen `claude -p --input-format stream-json`-Lauf gesendet, daher druckt Claude Code diesen Fehler auf stderr und wird mit Code 1 beendet, anstatt mehr Eingabe zu puffern. Die Meldung gibt dieses Budget als `256M` an. Vor v2.1.257 hat Claude Code solche Eingaben ohne Limit gepuffert, was den Speicher vergrößert hat, bis der Prozess abgestürzt ist oder beendet wurde.

2626 

2627```text theme={null}

2628Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

2629```

2630 

2631Eingabe dieser Länge ohne Zeilenumbruch bedeutet normalerweise, dass der Producer überhaupt kein stream-json-Producer ist, wie eine Binärdatei oder einfache Log-Ausgabe, die versehentlich gepipet wird. Eine einzelne Nachricht über dem Budget schlägt dieselbe Überprüfung fehl.

2632 

2633**Was zu tun ist:**

2634 

2635* Überprüfen Sie, was auf stdin gepipet wird. Mit [`--input-format stream-json`](/docs/de/cli-reference#cli-flags) muss jede Nachricht eine newline-terminierte JSON-Zeile sein

2636* Um stattdessen einfachen Text zu senden, lassen Sie `--input-format stream-json` weg; `claude -p` liest standardmäßig eine einfache Text-Eingabeaufforderung von stdin

2637 

2340<h3 id="unknown-command">2638<h3 id="unknown-command">

2341 Unbekannter Befehl2639 Unbekannter Befehl

2342</h3>2640</h3>


2423Sie haben `/code-review ultra <PR#>` oder `claude ultrareview <PR#>` ausgeführt, und bevor die Cloud-Sitzung erstellt wird, fragt Claude Code den Server, ob [das GitHub-Konto, das mit Ihrem Claude-Konto verbunden ist](/docs/de/ultrareview#review-a-pull-request), das Repository des PR erreichen kann. Kein Konto ist verbunden, oder die Verbindung ist abgelaufen, daher würde der Cloud-Clone fehlschlagen und Claude Code weigert sich zu starten. Claude Code gibt keinen kostenlosen Lauf aus und belastet keine Nutzungsguthaben für einen abgelehnten Start.2721Sie haben `/code-review ultra <PR#>` oder `claude ultrareview <PR#>` ausgeführt, und bevor die Cloud-Sitzung erstellt wird, fragt Claude Code den Server, ob [das GitHub-Konto, das mit Ihrem Claude-Konto verbunden ist](/docs/de/ultrareview#review-a-pull-request), das Repository des PR erreichen kann. Kein Konto ist verbunden, oder die Verbindung ist abgelaufen, daher würde der Cloud-Clone fehlschlagen und Claude Code weigert sich zu starten. Claude Code gibt keinen kostenlosen Lauf aus und belastet keine Nutzungsguthaben für einen abgelehnten Start.

2424 2722 

2425```text theme={null}2723```text theme={null}

2426Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/code/onboarding?step=alt-auth — then re-run /code-review ultra 1234 (allow a minute after connecting).2724Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

2427```2725```

2428 2726 

2429Wenn [`/web-setup`](/docs/de/web-quickstart#connect-from-your-terminal) in Ihrer Sitzung nicht verfügbar ist, benennt die Meldung nur den claude.ai-Link.2727Wenn [`/web-setup`](/docs/de/web-quickstart#connect-from-your-terminal) in Ihrer Sitzung nicht verfügbar ist, benennt die Meldung nur den claude.ai-Link.

2430 2728 

2431**Was zu tun ist:**2729**Was zu tun ist:**

2432 2730 

2433* Führen Sie `/web-setup` aus, um Ihren GitHub CLI-Login mit Ihrem Claude-Konto zu verbinden, oder verbinden Sie ein Konto unter [claude.ai/code/onboarding](https://claude.ai/code/onboarding?step=alt-auth)2731* Führen Sie `/web-setup` aus, um Ihren GitHub CLI-Login mit Ihrem Claude-Konto zu verbinden, oder verbinden Sie ein Konto unter [claude.ai/connect-github](https://claude.ai/connect-github)

2434* Führen Sie die Review eine Minute nach der Verbindung erneut aus2732* Führen Sie die Review eine Minute nach der Verbindung erneut aus

2435 2733 

2436Vor v2.1.248 überprüfte Claude Code dies nicht vor dem Start.2734Vor v2.1.248 überprüfte Claude Code dies nicht vor dem Start.


2587 2885 

2588Diese Fehler stammen aus der [Plugin](/docs/de/plugins)- und [Marketplace](/docs/de/plugin-marketplaces)-Konfiguration. Bei Plugin-Problemen, die keine der Meldungen auf dieser Seite erzeugen, wie z. B. eine Marketplace-URL, die nicht geladen wird, oder ein Plugin, das installiert wird, aber nicht angezeigt wird, siehe [Plugin-Fehlerbehebung](/docs/de/discover-plugins#troubleshooting).2886Diese Fehler stammen aus der [Plugin](/docs/de/plugins)- und [Marketplace](/docs/de/plugin-marketplaces)-Konfiguration. Bei Plugin-Problemen, die keine der Meldungen auf dieser Seite erzeugen, wie z. B. eine Marketplace-URL, die nicht geladen wird, oder ein Plugin, das installiert wird, aber nicht angezeigt wird, siehe [Plugin-Fehlerbehebung](/docs/de/discover-plugins#troubleshooting).

2589 2887 

2888<h3 id="plugin-eval-is-currently-in-early-access">

2889 plugin eval ist derzeit in Early Access

2890</h3>

2891 

2892Sie haben [`claude plugin eval`](/docs/de/plugin-evals) oder `claude plugin eval init` ausgeführt und es wurde mit Exit-Code 1 beendet, bevor es etwas tat, mit einer dieser Meldungen:

2893 

2894```text theme={null}

2895`plugin eval` is currently in early access

2896```

2897 

2898```text theme={null}

2899`plugin eval` is currently unavailable

2900```

2901 

2902Die erste Meldung bedeutet, dass Ihr Build älter als v2.1.269 ist, der ersten Version, in der der Befehl allgemein verfügbar ist. Die zweite bedeutet, dass Anthropic den Befehl serverseitig deaktiviert hat; nichts auf Ihrem Computer schaltet ihn wieder ein.

2903 

2904**Was zu tun ist:**

2905 

2906* Führen Sie `claude --version` aus, dann `claude update`, und führen Sie den Befehl erneut in einer neuen Sitzung aus. Siehe die [Anforderungen für Plugin-Evals](/docs/de/plugin-evals#requirements)

2907* Wenn Sie die zweite Meldung auf einem aktuellen Build sehen, versuchen Sie es später erneut nach einem weiteren `claude update`

2908 

2590<h3 id="marketplace-is-registered-from-an-untrusted-source">2909<h3 id="marketplace-is-registered-from-an-untrusted-source">

2591 Marketplace ist von einer nicht vertrauenswürdigen Quelle registriert2910 Marketplace ist von einer nicht vertrauenswürdigen Quelle registriert

2592</h3>2911</h3>


2597Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.2916Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

2598```2917```

2599 2918 

2919Für einen Marketplace, dessen Quelle kein GitHub-Repository oder eine Git-URL ist, wie z. B. ein lokales Verzeichnis, lautet der mittlere Satz `can only be used with GitHub sources from the 'anthropics' organization` statt dessen. `claude plugin marketplace add` führt die gleiche Überprüfung durch und lehnt einen reservierten Namen mit `Failed to add marketplace:` gefolgt von demselben reservierten Namen-Satz ab.

2920 

2600**Was zu tun ist:**2921**Was zu tun ist:**

2601 2922 

2602* Führen Sie `claude plugin marketplace remove <name>` aus und fügen Sie den Marketplace dann erneut aus dem offiziellen `github.com/anthropics`-Repository hinzu2923* Wenn der Marketplace bereits registriert ist, führen Sie `claude plugin marketplace remove <name>` aus und fügen Sie ihn dann erneut aus dem offiziellen `github.com/anthropics`-Repository hinzu

2603* Wenn Sie einen Drittanbieter-Marketplace veröffentlichen, der den Namen verwendet hat, bevor er reserviert wurde, benennen Sie ihn um und bitten Sie Benutzer, ihn von Ihrer Quelle erneut hinzuzufügen2924* Wenn Sie einen Drittanbieter-Marketplace veröffentlichen, der den Namen verwendet hat, bevor er reserviert wurde, benennen Sie ihn um und bitten Sie Benutzer, ihn von Ihrer Quelle erneut hinzuzufügen

2604* Siehe die Liste der reservierten Namen unter [Marketplace-Schema](/docs/de/plugin-marketplaces#marketplace-schema)2925* Siehe die Liste der reservierten Namen unter [Marketplace-Schema](/docs/de/plugin-marketplaces#marketplace-schema)

2605 2926 


2671commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory2992commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

2672```2993```

2673 2994 

2995Auf macOS und Linux lehnt Claude Code auch einen Komponentenpfad ab, der an irgendeiner Stelle einen Backslash enthält, auch wenn der Pfad im Plugin bleibt. Ein Plugin, dessen Komponentenpfade Windows-ähnliche Trennzeichen verwenden, wird auf Windows geladen und löst diese Ablehnung auf den anderen Plattformen aus:

2996 

2997```text theme={null}

2998commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

2999```

3000 

2674Vor v2.1.251 lud Claude Code einen `commands`-Pfad, der in einem Marketplace-Eintrag deklariert war, auch wenn er außerhalb des Plugin-Verzeichnisses zeigte. Claude Code lehnte bereits Pfade ab, die in `plugin.json` deklariert waren, und die anderen Komponentenpfade in einem Marketplace-Eintrag.3001Vor v2.1.251 lud Claude Code einen `commands`-Pfad, der in einem Marketplace-Eintrag deklariert war, auch wenn er außerhalb des Plugin-Verzeichnisses zeigte. Claude Code lehnte bereits Pfade ab, die in `plugin.json` deklariert waren, und die anderen Komponentenpfade in einem Marketplace-Eintrag.

2675 3002 

2676Vor v2.1.257 überprüfte die Kontrolle nur die Schreibweise des Pfads, nicht wo ein Symlink führt.3003Vor v2.1.257 überprüfte die Kontrolle nur die Schreibweise des Pfads, nicht wo ein Symlink führt.


2679 3006 

2680* Verschieben Sie die referenzierte Datei in das Plugin-Verzeichnis und zeigen Sie mit einem `./` relativen Pfad darauf3007* Verschieben Sie die referenzierte Datei in das Plugin-Verzeichnis und zeigen Sie mit einem `./` relativen Pfad darauf

2681* Wenn der Pfad ein Symlink zu einer Datei außerhalb des Plugins ist, ersetzen Sie den Symlink durch eine Kopie der Datei3008* Wenn der Pfad ein Symlink zu einer Datei außerhalb des Plugins ist, ersetzen Sie den Symlink durch eine Kopie der Datei

3009* Wenn die Meldung sagt, dass der Pfad einen Backslash enthält, schreiben Sie den Pfad mit Schrägstrichen, z. B. `./commands/deploy.md`

2682* Um Dateien mit anderen Plugins im selben Marketplace zu teilen, verlinken Sie sie mit einem Symlink im Plugin-Verzeichnis, gemäß den [Symlink-Regeln](/docs/de/plugins-reference#share-files-within-a-marketplace-with-symlinks)3010* Um Dateien mit anderen Plugins im selben Marketplace zu teilen, verlinken Sie sie mit einem Symlink im Plugin-Verzeichnis, gemäß den [Symlink-Regeln](/docs/de/plugins-reference#share-files-within-a-marketplace-with-symlinks)

2683 3011 

3012<h3 id="path-could-not-be-checked">

3013 Pfad konnte nicht überprüft werden

3014</h3>

3015 

3016Claude Code fragte das Betriebssystem, ob ein Plugin-Pfad existiert, und erhielt einen Fehler, der nicht „nicht gefunden" ist, daher wird nicht geladen, was der Pfad benennt. Wie viel des Plugins geladen wird, hängt davon ab, welcher Pfad fehlgeschlagen ist:

3017 

3018* Einer der [Standard-Komponentenordner](/docs/de/plugins-reference#file-locations-reference) eines Plugins, wie z. B. `skills/` oder `commands/`: Die anderen Komponenten des Plugins werden weiterhin geladen

3019* Das eigene Verzeichnis des Plugins: Nichts aus diesem Plugin wird geladen

3020 

3021Sie sehen diesen Fehler nicht für einen Pfad, der überhaupt nicht existiert. In `/plugin` wird der Fehler unter dem Plugin angezeigt und benennt den Pfad und den Code, den das Betriebssystem zurückgegeben hat:

3022 

3023```text theme={null}

3024skills path could not be checked: /home/user/my-plugin/skills (ELOOP)

3025```

3026 

3027In `claude plugin list` liest sich derselbe Fehler als `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.

3028 

3029Ursachen, die diesen Fehler erzeugen, sind:

3030 

3031* `ELOOP`: Ein Symlink im Pfad zeigt auf sich selbst oder bildet eine Schleife

3032* `EIO` oder `ESTALE`: Der Pfad befindet sich auf einer unterbrochenen oder veralteten Netzwerkbereitstellung

3033* `EACCES`: Eines der Verzeichnisse über dem Pfad verweigert Ihnen die Berechtigung, es zu durchqueren

3034 

3035**Was zu tun ist:**

3036 

3037* Ersetzen Sie einen Symlink, der auf sich selbst zeigt, durch einen echten Ordner, oder löschen Sie ihn

3038* Wenn sich der Pfad auf einer Netzwerkbereitstellung befindet, hängen Sie die Freigabe erneut ein

3039* Wenn der Code `EACCES` ist, stellen Sie Ihre Ausführungsberechtigung für die Verzeichnisse über dem Pfad wieder her

3040* Führen Sie `/reload-plugins` aus, nachdem Sie den Pfad behoben haben, oder starten Sie Claude Code neu, um das Plugin oder die Komponente zu laden

3041 

3042Vor v2.1.265 behandelte Claude Code einen Standard-Komponentenordner, den es nicht überprüfen konnte, als abwesend und lud das Plugin ohne diese Komponente, ohne Fehler.

3043 

3044<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">

3045 Marketplace-Eintragspfad bleibt nicht im Marketplace-Verzeichnis

3046</h3>

3047 

3048Der [Marketplace-Eintrag](/docs/de/plugin-marketplaces#plugin-entries) des Plugins deklariert einen Quellpfad, den Claude Code nicht zu einem Ort im eigenen Verzeichnis des Marketplace auflösen kann, daher wird das Plugin nicht installiert oder geladen. Die Ablehnung umfasst:

3049 

3050* Ein Eintrags-Pfad, der absolut ist, mit `..` aus dem Marketplace klettert oder wie ein Netzwerkpfad geschrieben ist

3051* Ein Eintrag in einem Marketplace, der aus einer Remote-Quelle wie Git oder einer URL abgerufen wird, der sein Ziel durch einen Symlink erreicht, der außerhalb des Marketplace-Verzeichnisses aufgelöst wird

3052* Ein relativer Eintrag in einem Marketplace, der von einer direkten URL zu seiner `marketplace.json` hinzugefügt wurde: Claude Code lädt nur diese Datei herunter, daher existieren keine lokalen Plugin-Dateien für den Pfad zum Benennen. Siehe [Plugins mit relativen Pfaden schlagen in URL-basierten Marketplaces fehl](/docs/de/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3053 

3054`claude plugin install` meldet die Ablehnung wie folgt:

3055 

3056```text theme={null}

3057Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped or link-traversing entry, an entry of a fetched marketplace that resolves outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)

3058```

3059 

3060Wenn ein bereits installiertes Plugin-Eintrag die gleiche Überprüfung nicht besteht, zeigt `claude plugin list` das Plugin als `failed to load` mit:

3061 

3062```text theme={null}

3063Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.

3064```

3065 

3066**Was zu tun ist:**

3067 

3068* Wenn Sie den Marketplace verwalten, schreiben Sie den `source` des Eintrags als einen einfachen relativen Pfad wie `./plugins/my-plugin`, und halten Sie jeden Symlink, den er kreuzt, auf das Marketplace-Verzeichnis gerichtet

3069* Wenn Sie den Marketplace von einer direkten URL hinzugefügt haben, können relative Einträge nicht aufgelöst werden. Bitten Sie den Marketplace-Autor, [eine andere Plugin-Quelle](/docs/de/plugin-marketplaces#plugin-sources) zu verwenden, oder fügen Sie den Marketplace stattdessen aus seinem Git-Repository hinzu

3070 

2684<h3 id="failed-to-load-marketplace-configuration">3071<h3 id="failed-to-load-marketplace-configuration">

2685 Fehler beim Laden der Marketplace-Konfiguration3072 Fehler beim Laden der Marketplace-Konfiguration

2686</h3>3073</h3>


2709 Werkzeugfehler3096 Werkzeugfehler

2710</h2>3097</h2>

2711 3098 

2712Diese Fehler stammen von Claudes integrierten Werkzeugen. Claude korrigiert die meisten Werkzeugfehler automatisch. Wenn eine Änderung von Ihnen erforderlich ist, gibt die Liste **Was zu tun ist** für diesen Fehler an, was zu ändern ist.3099Diese Fehler stammen von Claudes integrierten Werkzeugen. Claude behebt die meisten Werkzeugfehler automatisch. Wenn eine Änderung von Ihnen erforderlich ist, gibt die **Was zu tun ist**-Liste dieses Fehlers an, was zu ändern ist.

2713 3100 

2714<h3 id="agent-would-be-spawned-with-zero-tools">3101<h3 id="agent-would-be-spawned-with-zero-tools">

2715 Agent würde mit null Werkzeugen erzeugt3102 Agent würde mit null Werkzeugen erzeugt


2717 3104 

2718Jeder Eintrag in der [`tools`-Liste](/docs/de/sub-agents#supported-frontmatter-fields) des Subagenten konnte mit keinem verwendbaren Werkzeug abgeglichen werden, daher weigerte sich Claude Code, den Subagenten zu starten: Ohne Werkzeuge konnte er nicht handeln. Die Nachricht gruppiert Ihre Einträge nach dem, was schiefgelaufen ist:3105Jeder Eintrag in der [`tools`-Liste](/docs/de/sub-agents#supported-frontmatter-fields) des Subagenten konnte mit keinem verwendbaren Werkzeug abgeglichen werden, daher weigerte sich Claude Code, den Subagenten zu starten: Ohne Werkzeuge konnte er nicht handeln. Die Nachricht gruppiert Ihre Einträge nach dem, was schiefgelaufen ist:

2719 3106 

2720* **Unbekannt**: Der Eintrag stimmt mit keinem Werkzeugnamen überein, normalerweise ein Tippfehler wie `Grpe` für `Grep`.3107* **Nicht erkannt**: Der Eintrag stimmt mit keinem Werkzeugnamen überein, normalerweise ein Tippfehler wie `Grpe` für `Grep`.

2721* **Nicht für Subagenten verfügbar**: Der Eintrag benennt ein echtes Werkzeug, das [Subagenten nicht verwenden können](/docs/de/sub-agents#available-tools). Hintergrund-Subagenten behalten einen kleineren integrierten Werkzeugsatz, daher landet ein Eintrag, den nur ein Vordergrund-Subagent verwenden kann, hier, wenn der Subagent im Hintergrund ausgeführt würde, was die Standardeinstellung ist. Wenn Sie `Agent` auflisten, wird die Nachricht stattdessen unter der nächsten Gruppe gemeldet.3108* **Nicht für Subagenten verfügbar**: Der Eintrag benennt ein echtes Werkzeug, das [Subagenten nicht verwenden können](/docs/de/sub-agents#available-tools). Hintergrund-Subagenten behalten einen kleineren integrierten Werkzeugsatz, daher landet ein Eintrag, den nur ein Vordergrund-Subagent verwenden kann, hier, wenn der Subagent im Hintergrund ausgeführt würde, was die Standardeinstellung ist. Wenn Sie `Agent` auflisten, meldet die Nachricht ihn stattdessen unter der nächsten Gruppe.

2722* **Stimmt mit keinen Werkzeugen in dieser Sitzung überein**: Der Eintrag ist gültig, aber kein Werkzeug in der aktuellen Sitzung stimmt gerade damit überein, wie `mcp__github__*` ohne verbundenen GitHub-MCP-Server oder `Agent` für einen Subagenten bei der [Tiefenlimitierung](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents).3109* **Stimmt mit keinen Werkzeugen in dieser Sitzung überein**: Der Eintrag ist gültig, aber kein Werkzeug in der aktuellen Sitzung stimmt gerade damit überein, wie `mcp__github__*` ohne verbundenen GitHub-MCP-Server oder `Agent` für einen Subagenten am [Tiefenlimit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents).

2723 3110 

2724Das Weglassen des `tools`-Feldes löst diese Weigerung niemals aus. Wenn Sie die `tools`-Liste leer lassen oder `disallowedTools` jeden Eintrag darin entfernt, startet Claude Code auch den Subagenten ohne Werkzeuge.3111Das Weglassen des `tools`-Feldes löst diese Weigerung niemals aus. Wenn Sie die `tools`-Liste leer lassen oder `disallowedTools` jeden Eintrag darin entfernt, startet Claude Code auch den Subagenten ohne Werkzeuge.

2725 3112 

2726Vor v2.1.208 wurde der Subagent ohne Werkzeuge gestartet und konnte ein leeres oder verwirrendes Ergebnis zurückgeben.3113Vor v2.1.208 wurde der Subagent ohne Werkzeuge gestartet und konnte ein leeres oder verwirrendes Ergebnis zurückgeben.

2727 3114 

2728```text theme={null}3115```text theme={null}

2729Agent 'code-reviewer' würde mit null Werkzeugen erzeugt — Weigerung. Seine Tools-Liste wurde zu nichts aufgelöst: unbekannt [Grpe]. Beheben Sie die Werkzeug-Frontmatter des Agenten oder übergeben Sie einen anderen subagent_type.3116Agent 'code-reviewer' würde mit null Werkzeugen erzeugt — Weigerung. Seine tools-Liste wurde zu nichts aufgelöst: nicht erkannt [Grpe]. Beheben Sie die tools-Frontmatter des Agenten oder übergeben Sie einen anderen subagent_type.

2730```3117```

2731 3118 

2732**Was zu tun ist:**3119**Was zu tun ist:**


2735* Entfernen Sie Einträge für Werkzeuge, die die Sitzung nicht hat, wie MCP-Werkzeuge von einem Server, der nicht verbunden ist3122* Entfernen Sie Einträge für Werkzeuge, die die Sitzung nicht hat, wie MCP-Werkzeuge von einem Server, der nicht verbunden ist

2736* Für ein Werkzeug, das [Hintergrund-Subagenten ablegen](/docs/de/sub-agents#available-tools), wie `LSP`, entfernen Sie den Eintrag. Um das Werkzeug zu behalten, [schalten Sie den Fork-Modus aus](/docs/de/sub-agents#turn-fork-mode-on-or-off) und bitten Sie Claude, den Subagenten im Vordergrund auszuführen3123* Für ein Werkzeug, das [Hintergrund-Subagenten ablegen](/docs/de/sub-agents#available-tools), wie `LSP`, entfernen Sie den Eintrag. Um das Werkzeug zu behalten, [schalten Sie den Fork-Modus aus](/docs/de/sub-agents#turn-fork-mode-on-or-off) und bitten Sie Claude, den Subagenten im Vordergrund auszuführen

2737* Löschen Sie das `tools`-Feld, anstatt Werkzeuge aufzulisten, um dem Subagenten jedes [für Subagenten verfügbare Werkzeug](/docs/de/sub-agents#available-tools) zu geben3124* Löschen Sie das `tools`-Feld, anstatt Werkzeuge aufzulisten, um dem Subagenten jedes [für Subagenten verfügbare Werkzeug](/docs/de/sub-agents#available-tools) zu geben

2738* Für eine `tools`-Liste, die nur `Agent` enthält, erhöhen Sie die [Tiefenlimitierung](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) oder geben Sie dem Agenten mindestens ein anderes Werkzeug: Claude Code behält `Agent` bei dieser Limitierung zurück, daher wird eine Liste mit nichts anderem darin zu keinen Werkzeugen aufgelöst3125* Für eine `tools`-Liste, die nur `Agent` enthält, erhöhen Sie das [Tiefenlimit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) oder geben Sie dem Agenten mindestens ein anderes Werkzeug: Claude Code behält `Agent` bei diesem Limit zurück, daher wird eine Liste mit nichts anderem darin zu keinen Werkzeugen aufgelöst

2739 3126 

2740<h3 id="file-is-covered-by-a-read-deny-rule">3127<h3 id="file-is-covered-by-a-read-deny-rule">

2741 Datei wird durch eine Read-Ablehnungsregel abgedeckt3128 Datei wird durch eine Read-Ablehnungsregel abgedeckt

2742</h3>3129</h3>

2743 3130 

2744Das Edit- oder Write-Werkzeug wurde auf einem Pfad aufgerufen, der einer [`Read`-Ablehnungsregel](/docs/de/permissions#read-and-edit) entspricht, einschließlich der Erstellung einer neuen Datei unter diesem Pfad. Beide Werkzeuge ändern Inhalte, die Claude zurücklesen können muss, daher weigert sich Claude Code, den Aufruf zu tätigen, bevor ein Dateizugriff erfolgt. NotebookEdit wird nicht durch `Read`-Ablehnungsregeln abgedeckt. Vor v2.1.228 blockierte die Regel nur das Edit-Werkzeug, und vor v2.1.208 blockierte nur eine `Edit`-Ablehnungsregel Bearbeitungen.3131Das Edit- oder Write-Werkzeug wurde auf einem Pfad aufgerufen, der durch eine [`Read`-Ablehnungsregel](/docs/de/permissions#read-and-edit) abgeglichen wird, einschließlich der Erstellung einer neuen Datei unter diesem Pfad. Beide Werkzeuge ändern Inhalte, die Claude zurücklesen können muss, daher weigert sich Claude Code, den Aufruf zu tätigen, bevor ein Dateizugriff erfolgt. NotebookEdit wird nicht durch `Read`-Ablehnungsregeln abgedeckt. Vor v2.1.228 blockierte die Regel nur das Edit-Werkzeug, und vor v2.1.208 blockierte nur eine `Edit`-Ablehnungsregel Bearbeitungen.

2745 3132 

2746```text theme={null}3133```text theme={null}

2747Datei wird durch eine Read-Ablehnungsregel in Ihren Berechtigungseinstellungen abgedeckt und kann nicht bearbeitet werden.3134Datei wird durch eine Read-Ablehnungsregel in Ihren Berechtigungseinstellungen abgedeckt und kann nicht bearbeitet werden.

2748```3135```

2749 3136 

2750Wenn Claude Code das Write-Werkzeug ablehnt, endet die Nachricht stattdessen mit `und kann nicht geschrieben werden`.3137Wenn Claude Code das Write-Werkzeug ablehnt, endet die Nachricht mit `und kann nicht geschrieben werden`.

2751 3138 

2752**Was zu tun ist:**3139**Was zu tun ist:**

2753 3140 


2770**Was zu tun ist:**3157**Was zu tun ist:**

2771 3158 

2772* Normalerweise nichts: Die Nachricht listet die Subagenten auf, die die Sitzung hat, daher kann Claude mit einem von ihnen erneut versuchen3159* Normalerweise nichts: Die Nachricht listet die Subagenten auf, die die Sitzung hat, daher kann Claude mit einem von ihnen erneut versuchen

2773* Wenn Claude weiterhin fehlschlägt, fügen Sie `general-purpose` zur `tools: Agent(...)`-Zulassungsliste hinzu, oder heben Sie `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` auf3160* Wenn Claude weiterhin fehlschlägt, fügen Sie `general-purpose` zur `tools: Agent(...)`-Zulassungsliste hinzu, oder deaktivieren Sie `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

2774 3161 

2775Vor v2.1.235 schlug derselbe Aufruf mit `Agent-Typ 'general-purpose' nicht gefunden` fehl.3162Vor v2.1.235 schlug derselbe Aufruf mit `Agent type 'general-purpose' not found` fehl.

2776 3163 

2777<h3 id="memory-index-is-over-its-read-limit">3164<h3 id="memory-index-is-over-its-read-limit">

2778 Speicherindex überschreitet sein Lesenlimit3165 Speicherindex überschreitet sein Lesenlimit

2779</h3>3166</h3>

2780 3167 

2781Claude schrieb in den [automatischen Speicher](/docs/de/memory#auto-memory)-Index `MEMORY.md` und ließ ihn über eines seiner Lesenlimits hinaus: 200 Zeilen oder 25 KB. Der Schreibvorgang war erfolgreich, aber nur die ersten 200 Zeilen oder 25 KB, je nachdem, was zuerst kommt, werden zu Beginn einer Sitzung geladen, daher wird alles über dem Limit jedes Mal, wenn der Index gelesen wird, verworfen. Vor v2.1.210 wurde ein über dem Limit liegender Index beim nächsten Laden stillschweigend gekürzt, ohne ein Schreibzeitsignal.3168Claude schrieb in den [automatischen Speicher](/docs/de/memory#auto-memory)-Index `MEMORY.md` und ließ ihn über eines seiner Lesenlimits hinaus: 200 Zeilen oder 25 KB. Der Schreibvorgang war erfolgreich, aber nur die ersten 200 Zeilen oder 25 KB, je nachdem, was zuerst kommt, werden zu Beginn einer Sitzung geladen, daher wird alles über dem Limit jedes Mal gelöscht, wenn der Index gelesen wird. Vor v2.1.210 wurde ein über dem Limit liegender Index beim nächsten Laden stillschweigend gekürzt, ohne ein Schreibzeitsignal.

2782 3169 

2783```text theme={null}3170```text theme={null}

2784Fehler: Dieser Schreibvorgang ließ den Speicherindex bei MEMORY.md bei 214 Zeilen, über seinem 200-Zeilen-Lesenlimit. Der Schreibvorgang war erfolgreich, aber alles über dem Limit wird stillschweigend verworfen, jedes Mal wenn der Index geladen wird — Einträge am Ende sind bereits für Leser unsichtbar. Schreiben Sie ihn jetzt auf unter 140 Zeilen um: Behalten Sie eine Zeile pro Eintrag, verschieben Sie Details in Themendateien, und führen Sie stale Einträge zusammen oder löschen Sie sie.3171Fehler: Dieser Schreibvorgang ließ den Speicherindex bei MEMORY.md bei 214 Zeilen, über seinem 200-Zeilen-Lesenlimit. Der Schreibvorgang war erfolgreich, aber alles über dem Limit wird stillschweigend gelöscht, jedes Mal wenn der Index geladen wird — Einträge am Ende sind bereits für Leser unsichtbar. Schreiben Sie ihn jetzt auf unter 140 Zeilen um: Behalten Sie eine Zeile pro Eintrag, verschieben Sie Details in Themendateien, und führen Sie stale Einträge zusammen oder löschen Sie sie.

2785```3172```

2786 3173 

2787Nur der Inhalt, der geladen wird, zählt zu den Limits. YAML-Frontmatter und Block-Level-HTML-Kommentare werden entfernt, bevor der Index geladen wird, daher sind sie von der Messung ausgeschlossen. Vor v2.1.211 maß Claude Code die Rohdatei, und Frontmatter oder Kommentare könnten diesen Fehler auslösen, selbst wenn der geladene Inhalt passte.3174Nur der Inhalt, der geladen wird, zählt zu den Limits. YAML-Frontmatter und Block-Level-HTML-Kommentare werden entfernt, bevor der Index geladen wird, daher sind sie von der Messung ausgeschlossen. Vor v2.1.211 maß Claude Code die Rohdatei, und Frontmatter oder Kommentare konnten diesen Fehler auslösen, selbst wenn der geladene Inhalt passte.

2788 3175 

2789Claude Code liefert den Fehler an Claude nach dem Schreibvorgang, anstatt ihn als Banner in Ihrem Terminal zu drucken, daher bemerken Sie ihn möglicherweise nur im Transkript.3176Claude Code liefert den Fehler an Claude nach dem Schreibvorgang, anstatt ihn als Banner in Ihrem Terminal zu drucken, daher bemerken Sie ihn möglicherweise nur im Transkript.

2790 3177 

2791Wenn Claudes Schreibvorgang die Datei einem Limit nahe bringt, ohne es zu überschreiten, gibt Claude Code stattdessen eine mildere Erinnerung zurück, um den Index zu komprimieren, anstatt diesen Fehler.3178Wenn Claudes Schreibvorgang die Datei einem Limit nahe bringt, ohne es zu überschreiten, gibt Claude Code stattdessen eine mildere Erinnerung zurück, um den Index zu komprimieren.

2792 3179 

2793**Was zu tun ist:**3180**Was zu tun ist:**

2794 3181 


2802Ein `pkill`-Befehl in einem Bash-Werkzeugaufruf verwendete ein Muster, normalerweise mit `-f`, das mit dem Claude Code-Prozess selbst übereinstimmt, daher weigert sich Claude Code, den Befehl auszuführen, anstatt die Sitzung zu beenden. Claude Code testet das Muster mit `pgrep`, bevor `pkill` ausgeführt wird, und weigert sich, wenn seine eigene Prozess-ID im Ergebnis ist. Die Überprüfung läuft nur unter Linux; unter macOS wird `pkill` unverändert ausgeführt. Vor v2.1.214 wurde der Befehl ausgeführt, und ein übereinstimmendes Muster beendete die Claude Code-Sitzung mitten im Zug.3189Ein `pkill`-Befehl in einem Bash-Werkzeugaufruf verwendete ein Muster, normalerweise mit `-f`, das mit dem Claude Code-Prozess selbst übereinstimmt, daher weigert sich Claude Code, den Befehl auszuführen, anstatt die Sitzung zu beenden. Claude Code testet das Muster mit `pgrep`, bevor `pkill` ausgeführt wird, und weigert sich, wenn seine eigene Prozess-ID im Ergebnis ist. Die Überprüfung läuft nur unter Linux; unter macOS wird `pkill` unverändert ausgeführt. Vor v2.1.214 wurde der Befehl ausgeführt, und ein übereinstimmendes Muster beendete die Claude Code-Sitzung mitten im Zug.

2803 3190 

2804```text theme={null}3191```text theme={null}

2805pkill: Weigerung auszuführen — dieses Muster stimmt mit dem Claude CLI-Prozess überein (PID 12345). Verengen Sie das Muster, oder zielen Sie auf Ihre eigenen untergeordneten Prozesse mit `pkill -P $$ ...` ab.3192pkill: Weigerung auszuführen — dieses Muster stimmt mit dem Claude CLI-Prozess überein (PID 12345). Verengen Sie das Muster, oder zielen Sie auf Ihre eigenen Kinder mit `pkill -P $$ ...`.

2806```3193```

2807 3194 

2808Die Weigerung erscheint im Bash-Werkzeugergebnis, anstatt als Banner in Ihrem Terminal, und Claude passt den Befehl normalerweise selbst an.3195Die Weigerung erscheint im Bash-Werkzeugergebnis, anstatt als Banner in Ihrem Terminal, und Claude passt den Befehl normalerweise selbst an.

2809 3196 

2810**Was zu tun ist:**3197**Was zu tun ist:**

2811 3198 

2812* Verengen Sie das Muster, damit es nur den beabsichtigten Prozess abgleicht, zum Beispiel den vollständigen Pfad der Zielbinärdatei anstelle einer kurzen Teilzeichenkette3199* Verengen Sie das Muster, damit es nur den beabsichtigten Prozess abgleicht, zum Beispiel den vollständigen Pfad der Zielbinärdatei anstelle einer kurzen Teilzeichenfolge

2813* Um Prozesse zu stoppen, die von der aktuellen Shell gestartet wurden, verwenden Sie `pkill -P $$` mit dem Muster, das die Übereinstimmung auf die untergeordneten Prozesse der Shell selbst beschränkt3200* Um Prozesse zu stoppen, die von der aktuellen Shell gestartet wurden, verwenden Sie `pkill -P $$` mit dem Muster, das die Übereinstimmung auf die eigenen Kindprozesse der Shell beschränkt

2814 3201 

2815<h3 id="failed-to-write-to-a-teammate-inbox">3202<h3 id="failed-to-write-to-a-teammate-inbox">

2816 Fehler beim Schreiben in den Posteingang eines Teamkollegen3203 Fehler beim Schreiben in den Posteingang eines Teamkollegen


2818 3205 

2819Claude Code konnte keine Nachricht in die Postfachdatei eines Teamkollegen unter `~/.claude/teams/{team-name}/inboxes/` schreiben, daher erhielt der Empfänger nichts. Der Schreibvorgang schlägt fehl, wenn Claude Code die Datei nicht erstellen oder aktualisieren kann, zum Beispiel weil die Festplatte voll ist, das Verzeichnis nicht beschreibbar ist oder ein anderer Agent die Postfachsperre zu lange hält. Vor v2.1.224 meldete Claude Code die Nachricht als gesendet, selbst wenn der Schreibvorgang fehlschlug.3206Claude Code konnte keine Nachricht in die Postfachdatei eines Teamkollegen unter `~/.claude/teams/{team-name}/inboxes/` schreiben, daher erhielt der Empfänger nichts. Der Schreibvorgang schlägt fehl, wenn Claude Code die Datei nicht erstellen oder aktualisieren kann, zum Beispiel weil die Festplatte voll ist, das Verzeichnis nicht beschreibbar ist oder ein anderer Agent die Postfachsperre zu lange hält. Vor v2.1.224 meldete Claude Code die Nachricht als gesendet, selbst wenn der Schreibvorgang fehlschlug.

2820 3207 

2821Der Fehler erscheint im Werkzeugergebnis des sendenden Agenten, anstatt als Banner in Ihrem Terminal, und sein Text teilt Claude mit, es erneut zu versuchen:3208Der Fehler erscheint im Werkzeugergebnis des sendenden Agenten, anstatt als Banner in Ihrem Terminal, und sein Text weist Claude an, es erneut zu versuchen:

2822 3209 

2823```text theme={null}3210```text theme={null}

2824Fehler beim Schreiben in den Posteingang des Forschers — nichts wurde gesendet. Versuchen Sie es erneut, oder kontaktieren Sie den Lead.3211Fehler beim Schreiben in den Posteingang des Forschers — nichts wurde gesendet. Versuchen Sie es erneut, oder kontaktieren Sie den Lead.

2825```3212```

2826 3213 

2827Strukturierte [Agent-Team](/docs/de/agent-teams)-Protokollnachrichten schlagen auf die gleiche Weise fehl, und der Fehler benennt die unzugestellte Nachricht: Wenn Claude Code eine Plangenehmigung, Planablehnung, Abschaltsanforderung oder Abschaltungsablehnung nicht schreiben kann, liest sich der Fehler `Fehler beim Schreiben der <Nachricht> in den Posteingang von <Name> — nichts wurde gesendet`. Die `Plangenehmigung` in dieser Liste ist die Entscheidung des Leads, den Plan eines Teamkollegen zu genehmigen; die Planeinreichung des Teamkollegen ist die separate `Plangenehmigungsanforderung`-Nachricht. Diese Nachricht und zwei weitere Protokollnachrichten tragen ihren eigenen Nachrichtentext und ihre Konsequenzen:3214Strukturierte [Agent-Team](/docs/de/agent-teams)-Protokollnachrichten schlagen auf die gleiche Weise fehl, und der Fehler benennt die unzugestellte Nachricht: Wenn Claude Code eine Plangenehmigung, Planablehnung, Abschaltsanforderung oder Abschaltungsablehnung nicht schreiben kann, liest sich der Fehler `Fehler beim Schreiben der <Nachricht> in den Posteingang von <Name> — nichts wurde gesendet`. Die `Plangenehmigung` in dieser Liste ist die Entscheidung des Leads, der den Plan eines Teamkollegen genehmigt; die Planeinreichung des Teamkollegen ist die separate `Plangenehmigungsanforderung`-Nachricht. Diese Nachricht und zwei weitere Protokollnachrichten tragen ihren eigenen Nachrichtentext und ihre Konsequenz:

2828 3215 

2829* `Fehler beim Schreiben der Plangenehmigungsanforderung in den Posteingang des Leads — Plan nicht eingereicht; versuchen Sie es erneut`: Der Plan des Teamkollegen erreichte den Lead nie, und der Teamkollege bleibt im Planmodus, bis eine Neueinreichung erfolgreich ist3216* `Fehler beim Schreiben der Plangenehmigungsanforderung in den Posteingang des Leads — Plan nicht eingereicht; versuchen Sie es erneut`: Der Plan des Teamkollegen erreichte den Lead nie, und der Teamkollege bleibt im Planmodus, bis eine Neueinreichung erfolgreich ist

2830* `Die Berechtigungsanforderung konnte nicht an den Team-Lead zugestellt werden (Postfachschreibfehler)`: Die Berechtigungsanforderung des Teamkollegen erreichte den Lead nie, daher genehmigte niemand den Werkzeugaufruf3217* `Die Berechtigungsanforderung konnte nicht an den Team-Lead zugestellt werden (Postfachschreibfehler)`: Die Berechtigungsanforderung des Teamkollegen erreichte den Lead nie, daher genehmigte niemand den Werkzeugaufruf


2834 3221 

2835**Was zu tun ist:**3222**Was zu tun ist:**

2836 3223 

2837* Bitten Sie den Absender, die Nachricht erneut zu senden; Contention für die Postfachsperre ist vorübergehend und wird beim Wiederholen gelöscht3224* Bitten Sie den Absender, die Nachricht erneut zu senden; Konflikte um die Postfachsperre sind vorübergehend und klären sich beim erneuten Versuch

2838* Überprüfen Sie den freien Speicherplatz, und überprüfen Sie, dass `~/.claude/teams` und die Dateien darunter von Ihrem Benutzer beschreibbar sind3225* Überprüfen Sie den freien Speicherplatz, und überprüfen Sie, dass `~/.claude/teams` und die Dateien darunter von Ihrem Benutzer beschreibbar sind

2839 3226 

2840<h3 id="message-too-large-for-cross-session-delivery">3227<h3 id="message-too-large-for-cross-session-delivery">


2851 3238 

2852**Was zu tun ist:**3239**Was zu tun ist:**

2853 3240 

2854* Bitten Sie Claude, die Nachricht zusammenzufassen, oder den Masseninhalt in eine Datei zu legen und den Dateipfad zu senden3241* Bitten Sie Claude, die Nachricht zusammenzufassen, oder legen Sie den Masseninhalt in eine Datei und senden Sie den Dateipfad

2855* Bitten Sie Claude, den Inhalt auf mehrere kürzere Nachrichten zu verteilen3242* Bitten Sie Claude, den Inhalt auf mehrere kürzere Nachrichten zu verteilen

2856 3243 

2857Vor v2.1.235 meldete Claude Code eine übergroße Nachricht als gesendet. Die empfangende Sitzung verwarf sie ungelesen.3244Vor v2.1.235 meldete Claude Code eine übergroße Nachricht als gesendet. Die empfangende Sitzung ließ sie ungelesen fallen.

2858 3245 

2859<h3 id="too-many-messages-to-this-session-just-now">3246<h3 id="too-many-messages-to-this-session-just-now">

2860 Zu viele Nachrichten an diese Sitzung gerade eben3247 Zu viele Nachrichten an diese Sitzung gerade eben


2863Claude sendete einen schnellen Schub von [sitzungsübergreifenden Nachrichten](/docs/de/cross-session-messaging) an eine Ihrer Sitzungen auf dieser Maschine, und der Schub erreichte das, was diese Sitzung akzeptiert. Claude Code lehnte den nächsten Sendevorgang ab, und die empfangende Sitzung erhielt nichts davon. Die Weigerung erscheint im Werkzeugergebnis der sendenden Sitzung, nicht als Banner in Ihrem Terminal:3250Claude sendete einen schnellen Schub von [sitzungsübergreifenden Nachrichten](/docs/de/cross-session-messaging) an eine Ihrer Sitzungen auf dieser Maschine, und der Schub erreichte das, was diese Sitzung akzeptiert. Claude Code lehnte den nächsten Sendevorgang ab, und die empfangende Sitzung erhielt nichts davon. Die Weigerung erscheint im Werkzeugergebnis der sendenden Sitzung, nicht als Banner in Ihrem Terminal:

2864 3251 

2865```text wrap theme={null}3252```text wrap theme={null}

2866Fehler beim Senden an api-worker: Zu viele Nachrichten an diese Sitzung gerade eben: 30 wurden kürzlich gesendet und mehr würden durch sein Ratenlimit verworfen, daher wurde diese nicht gesendet. Fassen Sie das Verbleibende in eine Nachricht zusammen, oder warten Sie ein wenig, bevor Sie mehr senden.3253Fehler beim Senden an api-worker: Zu viele Nachrichten an diese Sitzung gerade eben: 30 wurden kürzlich gesendet und mehr würden durch sein Ratenlimit gelöscht, daher wurde diese nicht gesendet. Fassen Sie das Verbleibende in eine Nachricht zusammen, oder warten Sie ein wenig, bevor Sie mehr senden.

2867```3254```

2868 3255 

2869**Was zu tun ist:**3256**Was zu tun ist:**

2870 3257 

2871* Normalerweise nichts: Claude fasst den verbleibenden Inhalt in eine Nachricht zusammen, oder wartet, bevor mehr gesendet wird3258* Normalerweise nichts: Claude fasst den verbleibenden Inhalt in eine Nachricht zusammen, oder wartet, bevor mehr gesendet wird

2872* Wenn Sie den Schub selbst veranlasst haben, bitten Sie Claude, das Verbleibende in eine einzelne Nachricht zu kombinieren3259* Wenn Sie den Schub selbst ausgelöst haben, bitten Sie Claude, das Verbleibende in eine einzelne Nachricht zu kombinieren

2873 3260 

2874Vor v2.1.236 meldete Claude Code diese Sendungen als gesendet. Die empfangende Sitzung verwarf sie ungelesen.3261Vor v2.1.236 meldete Claude Code diese Sendungen als gesendet. Die empfangende Sitzung ließ sie ungelesen fallen.

2875 3262 

2876<h3 id="refusing-to-send-a-cross-session-message">3263<h3 id="refusing-to-send-a-cross-session-message">

2877 Weigerung, eine sitzungsübergreifende Nachricht zu senden3264 Weigerung, eine sitzungsübergreifende Nachricht zu senden

2878</h3>3265</h3>

2879 3266 

2880Bevor Claude Code eine [sitzungsübergreifende Nachricht](/docs/de/cross-session-messaging) an eine andere Ihrer Sitzungen auf dieser Maschine schreibt, überprüft es, dass die Postfach-Socket der Zielsitzung der Endpunkt ist, an den die Nachricht adressiert wurde. Wenn eine Überprüfung fehlschlägt, weigert sich Claude Code, den Sendevorgang in der sendenden Sitzung durchzuführen, und die Zielsitzung erhält nichts. Für eine Nachricht, die Claude sendet, erscheint die Weigerung im Werkzeugergebnis der sendenden Sitzung:3267Bevor Claude Code eine [sitzungsübergreifende Nachricht](/docs/de/cross-session-messaging) an eine andere Ihrer Sitzungen auf dieser Maschine schreibt, überprüft es, dass das Postfach-Socket der Zielsitzung der Endpunkt ist, an den die Nachricht adressiert wurde. Wenn eine Überprüfung fehlschlägt, weigert sich Claude Code, den Sendevorgang in der sendenden Sitzung durchzuführen, und die Zielsitzung erhält nichts. Für eine Nachricht, die Claude sendet, erscheint die Weigerung im Werkzeugergebnis der sendenden Sitzung:

2881 3268 

2882```text theme={null}3269```text theme={null}

2883Fehler beim Senden an api-worker: Weigerung zu senden: Antwortziel ist ein Symlink3270Fehler beim Senden an api-worker: Weigerung zu senden: Antwortziel ist ein Symlink


2888* `Antwortziel ist ein Symlink`: Ein symbolischer Link sitzt am Socket-Pfad der Zielsitzung. Claude Code liefert nicht durch ihn, weil ein Link dort die Nachricht zu einem Endpunkt umleiten könnte, den die Zielsitzung nicht erstellt hat.3275* `Antwortziel ist ein Symlink`: Ein symbolischer Link sitzt am Socket-Pfad der Zielsitzung. Claude Code liefert nicht durch ihn, weil ein Link dort die Nachricht zu einem Endpunkt umleiten könnte, den die Zielsitzung nicht erstellt hat.

2889* `Antwortziel kann nicht überprüft werden`: Claude Code konnte den Zielpfad überhaupt nicht inspizieren, zum Beispiel weil das Lesen mit einem Berechtigungsfehler fehlschlug.3276* `Antwortziel kann nicht überprüft werden`: Claude Code konnte den Zielpfad überhaupt nicht inspizieren, zum Beispiel weil das Lesen mit einem Berechtigungsfehler fehlschlug.

2890* `Verbundener Endpunkt ist nicht der erwartete Prozess`: Der Prozess, der den Socket hält, ist nicht die Sitzung, an die die Nachricht adressiert wurde, daher ist die Adresse veraltet oder ein anderer Prozess hat den Socket ersetzt.3277* `Verbundener Endpunkt ist nicht der erwartete Prozess`: Der Prozess, der den Socket hält, ist nicht die Sitzung, an die die Nachricht adressiert wurde, daher ist die Adresse veraltet oder ein anderer Prozess hat den Socket ersetzt.

2891* `Identität des verbundenen Endpunkts konnte nicht gelesen werden`: Claude Code verbunden, konnte aber nicht lesen, welcher Prozess das andere Ende hält, daher konnte es das Ziel nicht bestätigen. Dies kann vorübergehend sein.3278* `Verbundene Endpunkt-Identität konnte nicht gelesen werden`: Claude Code verbunden, konnte aber nicht lesen, welcher Prozess das andere Ende hält, daher konnte es das Ziel nicht bestätigen. Dies kann vorübergehend sein.

2892* `Verbundener Endpunkt wird nicht von diesem Benutzer besessen`: Der Prozess, der den Socket hält, läuft unter einem anderen Benutzerkonto, daher ist es nicht eine Ihrer Sitzungen.3279* `Verbundener Endpunkt wird nicht von diesem Benutzer besessen`: Der Prozess, der den Socket hält, läuft unter einem anderen Benutzerkonto, daher ist es nicht eine Ihrer Sitzungen.

2893* `Besitzer des verbundenen Endpunkts konnte nicht gelesen werden`: Claude Code verbunden, konnte aber nicht lesen, welches Benutzerkonto das andere Ende besitzt, daher konnte es bestätigen, dass der Endpunkt Ihnen gehört.3280* `Verbundene Endpunkt-Besitzer konnte nicht gelesen werden`: Claude Code verbunden, konnte aber nicht lesen, welches Benutzerkonto das andere Ende besitzt, daher konnte es nicht bestätigen, dass der Endpunkt Ihnen gehört.

2894* `Verbundener Endpunkt ist ein anderer Prozess mit der erwarteten PID`: Die Prozess-ID stimmt mit der überein, an die die Nachricht adressiert wurde, aber Claude Code konnte nicht bestätigen, dass es derselbe Prozess ist. Normalerweise hat diese Sitzung beendet und das Betriebssystem hat ihre Prozess-ID wiederverwendet, daher ist die Adresse veraltet.3281* `Verbundener Endpunkt ist ein anderer Prozess mit der erwarteten PID`: Die Prozess-ID stimmt mit der überein, an die die Nachricht adressiert wurde, aber Claude Code konnte nicht bestätigen, dass es derselbe Prozess ist. Normalerweise hat diese Sitzung beendet und das Betriebssystem hat ihre Prozess-ID wiederverwendet, daher ist die Adresse veraltet.

2895 3282 

2896**Was zu tun ist:**3283**Was zu tun ist:**

2897 3284 

2898* Normalerweise nichts: Die Überprüfungen verhindern, dass eine Nachricht einen anderen Endpunkt als die Sitzung erreicht, an die sie adressiert wurde, und nichts wurde gesendet3285* Normalerweise nichts: Die Überprüfungen verhindern, dass eine Nachricht einen anderen Endpunkt als die Sitzung erreicht, an die sie adressiert wurde, und nichts wurde gesendet

2899* Bitten Sie Claude, Ihre Sitzungen erneut aufzulisten und erneut zu senden; eine Weigerung, die durch eine veraltete Adresse verursacht wird, wird gelöscht, sobald Claude an die aktuelle sendet3286* Bitten Sie Claude, Ihre Sitzungen erneut aufzulisten und erneut zu senden; eine Weigerung, die durch eine veraltete Adresse verursacht wird, klärt sich, sobald Claude an die aktuelle sendet

2900* Wenn `Antwortziel ist ein Symlink` für eine Sitzung wiederholt wird, überprüfen Sie, was einen Link am Socket-Pfad dieser Sitzung erstellt hat, angezeigt in ihrer `/status` unter `Peer address`3287* Wenn `Antwortziel ist ein Symlink` für eine Sitzung wiederholt wird, überprüfen Sie, was einen Link am Socket-Pfad dieser Sitzung erstellt hat, angezeigt in ihrem `/status` unter `Peer address`

2901* Für `Identität des verbundenen Endpunkts konnte nicht gelesen werden`, erneut senden; die Bedingung kann vorübergehend sein3288* Für `Verbundene Endpunkt-Identität konnte nicht gelesen werden`, erneut senden; die Bedingung kann vorübergehend sein

2902* Wenn `Verbundener Endpunkt wird nicht von diesem Benutzer besessen` auf einer gemeinsamen Maschine erscheint, läuft die Sitzung unter dieser Adresse unter einem anderen Benutzerkonto, daher kann Claude sie nicht von Ihrem aus kontaktieren3289* Wenn `Verbundener Endpunkt wird nicht von diesem Benutzer besessen` auf einer gemeinsamen Maschine erscheint, läuft die Sitzung unter diesem Endpunkt unter einem anderen Benutzerkonto, daher kann Claude sie nicht von Ihrem aus kontaktieren

2903 3290 

2904Vor v2.1.248 überprüfte Claude Code nicht den Benutzer, der den Endpunkt besitzt, oder die Prozessstartzeit, daher erscheinen die Verweigerungen, die diese Überprüfungen benennen, nicht auf früheren Versionen.3291Vor v2.1.248 überprüfte Claude Code nicht den Besitzer des Endpunkts oder die Prozessstartzeit, daher erscheinen die Weigerungen, die diese Überprüfungen benennen, nicht auf früheren Versionen.

2905 3292 

2906<h3 id="refusing-after-a-symlink-changed">3293<h3 id="refusing-after-a-symlink-changed">

2907 Weigerung, einen Pfad zu lesen, zu schreiben oder zu durchsuchen3294 Weigerung, einen Pfad zu lesen, zu schreiben oder zu durchsuchen


2915 3302 

2916Der Text nach dem Pfad benennt den Grund:3303Der Text nach dem Pfad benennt den Grund:

2917 3304 

2918* `Seine Symlink-Auflösung hat sich nach der Berechtigungsprüfung geändert`: Ein Symlink entlang des Pfads oder bei einer Grep- oder Glob-Suchroot wurde zwischen der Berechtigungsprüfung und der Operation ersetzt3305* `Seine Symlink-Auflösung hat sich nach der Berechtigungsprüfung geändert`: Ein Symlink entlang des Pfads oder an einer Grep- oder Glob-Suchroot wurde zwischen der Berechtigungsprüfung und der Operation ersetzt

2919* `Seine Übergeordnete-Verzeichnis-Symlink-Auflösung hat sich nach der Berechtigungsprüfung geändert`: Ein Verzeichnis, das der Schreibpfad durchläuft, wird nicht mehr zu dem genehmigten Ort aufgelöst3306* `Seine Übergeordnete-Verzeichnis-Symlink-Auflösung hat sich nach der Berechtigungsprüfung geändert`: Ein Verzeichnis, das der Schreibpfad durchläuft, führt nicht mehr zu dem genehmigten Ort

2920* `Es ist ein symbolischer Link. Schreiben Sie stattdessen zum Zielpfad des Links`: Ein symbolischer Link sitzt am genehmigten Schreibort selbst3307* `Es ist ein symbolischer Link. Schreiben Sie stattdessen zum Ziel des Links`: Ein symbolischer Link sitzt am genehmigten Schreibort selbst

2921* `Ein Pfad, durch den eine seiner Read-Ablehnungsregeln geschrieben wird, hat sich geändert, während die Suche vorbereitet wurde. Versuchen Sie es erneut.`: Eine `Read`-Ablehnungsregel für die Suche benennt einen Pfad, der durch einen Symlink führt, und dieser Link hat sich geändert, während Claude Code die Suche vorbereitete3308* `Ein Pfad, durch den eine seiner Read-Ablehnungsregeln geschrieben wird, hat sich geändert, während die Suche vorbereitet wurde. Versuchen Sie es erneut.`: Eine `Read`-Ablehnungsregel für die Suche benennt einen Pfad, der durch einen Symlink führt, und dieser Link hat sich geändert, während Claude Code die Suche vorbereitete

2922* `Es konnte nicht geöffnet werden (EACCES) — es ist nicht lesbar, oder wird gleichzeitig ersetzt.`: Die Suchroot existiert, konnte aber nicht geöffnet werden; der eingeklammerte Code ist der Betriebssystemfehler3309* `Es konnte nicht geöffnet werden (EACCES) — es ist nicht lesbar, oder wird gleichzeitig ersetzt.`: Die Suchroot existiert, konnte aber nicht geöffnet werden; der eingeklammerte Code ist der Betriebssystemfehler

2923* `Seine Berechtigungsprüfung ist abgelaufen, bevor sie ausgeführt wurde (zu viele gleichzeitige Dateivorgänge). Versuchen Sie es erneut.`: Claude Code hat den Genehmigungsdatensatz unter vielen gleichzeitigen Dateivorgängen entfernt, bevor das Werkzeug ihn verwendete; das Wiederholen führt eine frische Berechtigungsprüfung durch3310* `Seine Berechtigungsprüfung ist abgelaufen, bevor sie ausgeführt wurde (zu viele gleichzeitige Dateivorgänge). Versuchen Sie es erneut.`: Claude Code hat den Genehmigungsdatensatz unter vielen gleichzeitigen Dateivorgängen entfernt, bevor das Werkzeug ihn verwendete; das erneute Versuchen führt eine frische Berechtigungsprüfung durch

2924* `ripgrep wurde nur nach Name auf PATH gefunden, und eine Suche außerhalb des Arbeitsverzeichnisses kann Ihre Read-Ablehnungsregeln in dieser Konfiguration nicht anwenden`: Claude Code konnte die `rg`-Binärdatei nicht zu einem absoluten Pfad auflösen, daher weigert es sich, Suchen außerhalb des Arbeitsverzeichnisses durchzuführen, anstatt eine auszuführen, die Ihre Ablehnungsregeln nicht abdecken3311* `ripgrep wurde nur nach Name auf PATH gefunden, und eine Suche außerhalb des Arbeitsverzeichnisses kann Ihre Read-Ablehnungsregeln in dieser Konfiguration nicht anwenden`: Claude Code konnte die `rg`-Binärdatei nicht zu einem absoluten Pfad auflösen, daher weigert es sich, Suchen außerhalb des Arbeitsverzeichnisses durchzuführen, anstatt eine auszuführen, die Ihre Ablehnungsregeln nicht abdecken

2925 3312 

2926**Was zu tun ist:**3313**Was zu tun ist:**

2927 3314 

2928* Normalerweise nichts: Die Weigerung erreicht Claude als Werkzeugergebnis, und die abgelehnte Operation wird nicht ausgeführt3315* Normalerweise nichts: Die Weigerung erreicht Claude als Werkzeugergebnis, und die abgelehnte Operation wird nicht ausgeführt

2929* Wenn eine Symlink-Weigerung auf einem Pfad wiederholt wird, finden Sie, was einen Link dort ständig umschreibt, wie ein Build-Tool oder Datei-Watcher, oder bitten Sie Claude, stattdessen den aufgelösten Pfad der Datei zu verwenden3316* Wenn eine Symlink-Weigerung auf einem Pfad wiederholt wird, finden Sie, was einen Link dort ständig umschreibt, wie ein Build-Tool oder Datei-Watcher, oder bitten Sie Claude, stattdessen den aufgelösten Pfad der Datei zu verwenden

3317* Wenn diese Weigerung für jede Datei erscheint, während Claude Code unter Windows in einem AppContainer oder Sandbox mit eingeschränktem Token läuft, aktualisieren Sie auf v2.1.265 oder später

2930* Für die ripgrep-Weigerung installieren Sie ripgrep mit Ihrem Paketmanager, damit `rg` zu einem absoluten Pfad auf `PATH` aufgelöst wird, oder halten Sie Suchen unter dem Arbeitsverzeichnis3318* Für die ripgrep-Weigerung installieren Sie ripgrep mit Ihrem Paketmanager, damit `rg` zu einem absoluten Pfad auf `PATH` aufgelöst wird, oder halten Sie Suchen unter dem Arbeitsverzeichnis

2931 3319 

2932Vor v2.1.251 überprüfte Claude Code die Auflösung eines Pfads nur für Dateischreibvorgänge erneut, daher konnte ein Link, der nach der Berechtigungsprüfung ersetzt wurde, einen Lese- oder Suchvorgang zu einem anderen Ort umleiten, ohne eine Nachricht. Von diesen Verweigerungen erscheint nur die Übergeordnete-Verzeichnis-Schreib-Weigerung auf früheren Versionen.3320Vor v2.1.251 überprüfte Claude Code die Auflösung eines Pfads nur für Dateischreibvorgänge erneut, daher konnte ein Link, der nach der Berechtigungsprüfung ersetzt wurde, einen Lese- oder Suchvorgang zu einem anderen Ort umleiten, ohne eine Nachricht. Von diesen Weigerungen erscheint nur die Übergeordnete-Verzeichnis-Schreib-Weigerung auf früheren Versionen.

2933 3321 

2934<h3 id="task-output-swap-refused">3322<h3 id="task-output-swap-refused">

2935 Task-Ausgabe-Swap abgelehnt3323 Task-Ausgabe-Swap abgelehnt

2936</h3>3324</h3>

2937 3325 

2938Claude Code speichert die Ausgabe jedes Bash-Befehls in einer Datei unter seinem Temp-Verzeichnis. Diese Nachricht bedeutet, dass ein Verzeichnis auf dem Pfad dieser Datei ein symbolischer Link ist oder verschoben wurde, daher weigerte sich Claude Code, den Befehl auszuführen, anstatt seine Ausgabe durch diesen Pfad zu schreiben. Die Nachricht erscheint im Bash-Werkzeugergebnis:3326Claude Code speichert die Ausgabe jedes Bash-Befehls in einer Datei unter seinem Temp-Verzeichnis. Jedes Mal, wenn es eine dieser Dateien öffnet, überprüft es, dass der Pfad immer noch zu der Datei führt, die es erstellt hat, ohne Symlink, zusätzlichen Hard Link oder verschobenes Verzeichnis, das ihn umleitet. Diese Nachricht bedeutet, dass diese Überprüfung fehlgeschlagen ist, daher weigerte sich Claude Code, die Operation durchzuführen, anstatt die Ausgabe durch diesen Pfad zu schreiben oder zu lesen. Die Nachricht erscheint im Bash-Werkzeugergebnis:

2939 3327 

2940```text wrap theme={null}3328```text wrap theme={null}

2941Task-Ausgabe-Swap abgelehnt (Tasks-Verzeichnis verschoben oder verlinkt): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. Zur Wiederherstellung: Starten Sie Claude Code mit CLAUDE_CODE_TMPDIR neu, das auf ein frisches Verzeichnis gesetzt ist; oder, wenn /private/tmp/claude-501/-Users-you-my-project ein verwaistes Verzeichnis oder ein Symlink ist, der nicht dort sein sollte, entfernen Sie diesen Eintrag selbst (nicht das, worauf er zeigt) und starten Sie neu.3329Task-Ausgabe-Swap abgelehnt (Tasks-Verzeichnis verschoben oder verlinkt): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. Zur Wiederherstellung: Starten Sie Claude Code mit CLAUDE_CODE_TMPDIR neu, das auf ein frisches Verzeichnis gesetzt ist; oder, wenn /private/tmp/claude-501/-Users-you-my-project ein verwaistes Verzeichnis oder ein Symlink ist, der nicht dort sein sollte, entfernen Sie diesen Eintrag selbst (nicht das, worauf er zeigt) und starten Sie neu.

2942```3330```

2943 3331 

3332Der eingeklammerte Text benennt die Überprüfung, die fehlgeschlagen ist. Gründe wie `Ausgabe-Symlink wurde umgeleitet`, `Ausgabedatei-Identität geändert` und `nicht eine reguläre Datei` melden alle dieselbe Bedingung: Etwas am oder entlang des Ausgabepfads ist nicht mehr die Datei, die Claude Code erstellt hat. Nur einige Gründe tragen einen `Zur Wiederherstellung:`-Satz.

3333 

3334Wenn die Überprüfung fehlschlägt, während ein Befehl noch läuft, stoppt Claude Code den Befehl, und sein Ergebnis meldet:

3335 

3336```text theme={null}

3337Befehl beendet: Seine Ausgabedatei wurde ersetzt oder konnte nicht mehr überprüft werden

3338```

3339 

2944**Was zu tun ist:**3340**Was zu tun ist:**

2945 3341 

2946* Aktualisieren Sie auf v2.1.260 oder später. Frühere Versionen zeigten diese Nachricht manchmal, wenn kein Link oder verschobenes Verzeichnis vorhanden war3342* Aktualisieren Sie auf v2.1.260 oder später. Frühere Versionen zeigten diese Nachricht manchmal, wenn kein Link oder verschobenes Verzeichnis vorhanden war

2947* Starten Sie Claude Code mit [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) neu, das auf ein frisches Verzeichnis gesetzt ist3343* Starten Sie Claude Code mit [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) neu, das auf ein frisches Verzeichnis gesetzt ist

2948* Oder überprüfen Sie Ihr Projektverzeichnis unter dem Claude Code-Temp-Verzeichnis, `/private/tmp/claude-501/-Users-you-my-project` in der Beispielnachricht. Wenn dieser Pfad ein Symlink ist, oder ein Verzeichnis, das nicht dort sein sollte, entfernen Sie den Link oder das Verzeichnis selbst, anstatt das Ziel des Links, und starten Sie Claude Code neu3344* Oder überprüfen Sie Ihr Projektverzeichnis unter dem Claude Code-Temp-Verzeichnis, `/private/tmp/claude-501/-Users-you-my-project` in der Beispielnachricht. Wenn dieser Pfad ein Symlink ist, oder ein Verzeichnis, das nicht dort sein sollte, entfernen Sie den Link oder das Verzeichnis selbst, anstatt das Ziel des Links, und starten Sie Claude Code neu

3345* Wenn die Weigerung wiederholt wird, ersetzt, verlinkt oder entfernt ein Prozess Einträge unter Claudes Temp-Verzeichnis, während die Sitzung läuft. Setzen Sie [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) auf ein Verzeichnis, das nichts anderes verwaltet, und starten Sie neu

3346 

3347<h3 id="the-source-file-is-not-valid-utf-8-text">

3348 Die Quelldatei ist kein gültiger UTF-8-Text

3349</h3>

3350 

3351Claude versuchte, ein [Artefakt](/docs/de/artifacts) aus einer Datei zu veröffentlichen, deren Bytes nicht als Text dekodiert werden, oder deren Text bereits das Ersatzzeichen `U+FFFD` enthält, daher weigerte sich Claude Code, die Veröffentlichung durchzuführen, bevor etwas hochgeladen wurde. Die Nachricht erscheint im Artifact-Werkzeugergebnis und benennt die erste Position zum Beheben:

3352 

3353```text wrap theme={null}

3354file_path: Die Quelldatei ist kein gültiger UTF-8-Text (erstes ungültiges Byte bei Zeile 12, Spalte 40). Sie kann in einer anderen Kodierung gespeichert sein oder Binärdaten enthalten. Schreiben Sie sie als UTF-8 um, dann veröffentlichen Sie erneut. Nichts wurde veröffentlicht.

3355 

3356file_path: Die Quelldatei hat das Ersatzzeichen U+FFFD bei Zeile 12, Spalte 40, normalerweise dort gelassen, wo eine frühere Bearbeitung oder ein Einfügen ein Zeichen verloren hat. Ersetzen Sie es durch den beabsichtigten Text (in HTML schreiben Sie ein beabsichtigtes U+FFFD als &#xFFFD;), dann veröffentlichen Sie erneut. Nichts wurde veröffentlicht.

3357```

3358 

3359Claude Code dekodiert die Datei als UTF-8, oder als UTF-16, wenn sie mit einer Little-Endian-UTF-16-Byte-Order-Marke beginnt. Wenn eine solche UTF-16-Datei nicht dekodiert, benennt die erste Nachricht `UTF-16` und weist Sie immer noch an, die Datei als UTF-8 umzuschreiben. Wenn mehr Positionen der benannten folgen, fügt die Nachricht eine Zählung wie `(+2 weitere)` nach der Position hinzu.

3360 

3361**Was zu tun ist:**

3362 

3363* Normalerweise nichts: Claude schreibt die Datei um und veröffentlicht erneut

3364* Wenn die Datei eine ist, die Sie geschrieben oder exportiert haben, speichern Sie sie erneut als UTF-8, und ersetzen Sie jedes `U+FFFD` durch das Zeichen, das eine frühere Bearbeitung, ein Einfügen oder eine Konvertierung verloren hat

3365* Um ein beabsichtigtes `U+FFFD` auf der Seite anzuzeigen, schreiben Sie es als `&#xFFFD;` im HTML, anstatt das Literalzeichen

3366 

3367Vor v2.1.267 lud Claude Code eine solche Datei ohne Überprüfung hoch, und der Server lehnte die Veröffentlichung stattdessen ab.

2949 3368 

2950<h2 id="background-session-errors">3369<h2 id="background-session-errors">

2951 Fehler in Hintergrund-Sitzungen3370 Fehler in Hintergrund-Sitzungen


3069 Worktree hat Commits, die nirgendwo gepusht werden3488 Worktree hat Commits, die nirgendwo gepusht werden

3070</h3>3489</h3>

3071 3490 

3072Sie haben versucht, eine [Hintergrund-Sitzung](/docs/de/agent-view#what-deleting-a-session-removes) zu löschen, deren Worktree Commits enthält, die Claude Code nicht bestätigen kann, dass sie anderswo gespeichert sind. Claude Code behält den Worktree und die Sitzungszeile bei, anstatt die Commits zu zerstören. `claude rm` druckt den beibehaltenen Pfad und den Grund:3491Sie haben versucht, eine [Hintergrund-Sitzung](/docs/de/agent-view#what-deleting-a-session-removes) zu löschen, deren Worktree Commits enthält, die Claude Code nicht bestätigen kann, dass sie anderswo gespeichert sind. Claude Code behält den Worktree und die Sitzungszeile bei, anstatt die Commits zu zerstören. `claude rm` nennt den Branch und die nicht gepushten Commits und sagt, wie Sie vorgehen:

3073 3492 

3074```text theme={null}3493```text theme={null}

3075kept 7c5dcf5d — worktree has commits that are not pushed anywhere3494kept 7c5dcf5d — 2 unpushed commits on claude/fix-login (a1b2c3d Fix login flow, … and 1 more)

3076 worktree kept at /home/you/project/.claude/worktrees/fix-login3495 worktree: /home/you/project/.claude/worktrees/fix-login

3077 resolve that (commit/push, or remove the worktree), then run 'claude rm 7c5dcf5d' again3496 push them, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

3078```3497```

3079 3498 

3080Wenn Sie aus der [Agent-Ansicht](/docs/de/agent-view) mit einem doppelten `Ctrl+X`-Druck löschen, stimmen Sie dem Verwerfen von nicht committeten Änderungen zu, aber nicht dem Verwerfen von Commits, daher lehnt Claude Code auch dort ab. Nach einer abgelehnten Löschung zeigt die Sitzungszeile `not deleted` mit dem gleichen Grund.3499Wenn Claude Code die Commits nicht zusammenfassen kann, liest sich die Meldung stattdessen `worktree has commits that are not pushed anywhere`. In der [Agent-Ansicht](/docs/de/agent-view) zeigt die Sitzungszeile `not deleted` mit dem gleichen Grund.

3081 3500 

3082Commits auf einem Remote blockieren die Löschung nicht. Auch nicht Commits auf der lokalen Kopie des Standard-Branches Ihres `origin`-Remote, solange dieser Branch in Ihrem Haupt-Checkout ausgecheckt ist, dem Repository-Verzeichnis selbst, nicht einem Worktree.3501Commits auf einem Remote blockieren die Löschung nicht. Auch nicht Commits auf der lokalen Kopie des Standard-Branches Ihres `origin`-Remote, solange dieser Branch in Ihrem Haupt-Checkout ausgecheckt ist, dem Repository-Verzeichnis selbst, nicht einem Worktree.

3083 3502 

3084**Was zu tun ist:**3503**Was zu tun ist:**

3085 3504 

3086* Pushen Sie den Branch des Worktree, oder mergen Sie ihn in den Standard-Branch, der in Ihrem Haupt-Checkout ausgecheckt ist, dann löschen Sie die Sitzung erneut3505* Um die Commits zu behalten, pushen Sie den Branch des Worktree, oder mergen Sie ihn in den Standard-Branch, der in Ihrem Haupt-Checkout ausgecheckt ist, dann löschen Sie die Sitzung erneut

3087* Um die Sitzung zu löschen, ohne die Commits zu pushen oder zu mergen, notieren Sie sich zunächst den Branch, den `git worktree list` für den Pfad anzeigt, den die Meldung nennt. Entfernen Sie den Worktree selbst mit `git worktree remove --force <path>`, wie in [Subagenten- und Hintergrund-Sitzungs-Worktrees bereinigen](/docs/de/worktrees#clean-up-subagent-and-background-session-worktrees) beschrieben, dann führen Sie `claude rm <id>` erneut aus. Keiner der Schritte löscht diesen Branch, daher bleiben die Commits darauf, bis Sie `git branch -D <branch>` ausführen.3506* Um die Commits zu verwerfen, führen Sie den `claude rm <id> --discard-unpushed`-Befehl aus, den die Meldung druckte, oder drücken Sie `Ctrl+X` zweimal auf der Sitzungszeile in der Agent-Ansicht erneut. Dies entfernt die Sitzung und den Worktree zusammen mit seinem Branch, den nicht gepushten Commits und allen nicht committeten Änderungen. Wenn der Worktree seit der Ablehnung einen Commit gewonnen hat, behält Claude Code ihn erneut und zeigt den aktualisierten Status

3507* Wenn die Meldung sagt, dass der Worktree auch von einer anderen beendeten Sitzung aufgezeichnet wird, blockiert das Löschen erneut nicht, ihn zu verwerfen: pushen Sie die Commits, dann löschen Sie die Sitzung erneut

3508 

3509Vor v2.1.260 nannte die Meldung nicht den Branch oder die Commits, und das Löschen erneut wurde auf die gleiche Weise abgelehnt: das Löschen der Sitzung ohne Pushen bedeutete das Entfernen des Worktree selbst mit `git worktree remove --force <path>`, dann das erneute Ausführen von `claude rm <id>`.

3088 3510 

3089Vor v2.1.248 zählte der Standard-Branch, der in Ihrem Haupt-Checkout ausgecheckt ist, nicht: Ein Branch, den Sie bereits dort gemergt haben, löste diese Ablehnung immer noch aus, bis seine Commits einen Remote erreichten.3511Vor v2.1.248 zählte der Standard-Branch, der in Ihrem Haupt-Checkout ausgecheckt ist, nicht: Ein Branch, den Sie bereits dort gemergt haben, löste diese Ablehnung immer noch aus, bis seine Commits einen Remote erreichten.

3090 3512 


3175 3597 

3176Die Warnung nennt nur die Verzeichnisse, die Claude Code durchsucht hat, und sie erscheint im fortgesetzten Gespräch, ob Sie eine [Hintergrund-Sitzung](/docs/de/agent-view) aufwecken, `/resume` oder `claude --resume` ausführen, oder im [nicht-interaktiven Modus](/docs/de/headless) fortsetzen, wo sie auch zu stderr geht. Sitzungen, die `--input-format stream-json` verwenden, zeigen sie nicht, da das Agent SDK Agenten nach dem Start bereitstellt.3598Die Warnung nennt nur die Verzeichnisse, die Claude Code durchsucht hat, und sie erscheint im fortgesetzten Gespräch, ob Sie eine [Hintergrund-Sitzung](/docs/de/agent-view) aufwecken, `/resume` oder `claude --resume` ausführen, oder im [nicht-interaktiven Modus](/docs/de/headless) fortsetzen, wo sie auch zu stderr geht. Sitzungen, die `--input-format stream-json` verwenden, zeigen sie nicht, da das Agent SDK Agenten nach dem Start bereitstellt.

3177 3599 

3178Claude Code speichert den Fallback nicht in der Sitzung, daher wiederholt sich die Warnung bei jedem Fortsetzen, bis Sie handeln. Der eingebaute `claude`-Agent löst die Warnung nicht aus, da das Zurückfallen auf den Standard-Toolset für ihn nichts ändert. Vor v2.1.216 setzte Claude Code stillschweigend als Standard-Agent fort, und die Suche deckte nur das Verzeichnis ab, von dem aus Sie fortgesetzt haben, daher ging ein Projekt-Agenten bei jedem Fortsetzen von einem anderen Verzeichnis verloren.3600Claude Code speichert den Fallback nicht in der Sitzung, daher wiederholt sich die Warnung bei jedem Fortsetzen, bis Sie handeln. Der eingebaute `claude`-Agent löst die Warnung nicht aus, da das Zurückfallen auf den Standard-Toolset für ihn nichts ändert. Vor v2.1.216 setzte Claude Code stillschweigend als Standard-Agent fort, und die Suche deckte nur das Verzeichnis ab, von dem aus Sie fortgesetzt haben, daher ging ein Projekt-Agent bei jedem Fortsetzen von einem anderen Verzeichnis verloren.

3179 3601 

3180**Was zu tun ist:**3602**Was zu tun ist:**

3181 3603 

3182* Erstellen Sie die Agent-Datei unter `.claude/agents/<name>.md` im Projekt der Sitzung oder unter `~/.claude/agents/<name>.md` für einen persönlichen Agent neu, dann setzen Sie erneut fort3604* Erstellen Sie die Agent-Datei unter `.claude/agents/<name>.md` im Projekt der Sitzung oder unter `~/.claude/agents/<name>.md` für einen persönlichen Agent neu, dann setzen Sie erneut fort

3183* Oder setzen Sie mit `--agent <name>` fort, das einen Agent benennt, der existiert, um die Sitzung stattdessen als dieser Agent auszuführen3605* Oder setzen Sie mit `--agent <name>` fort, das einen Agent benennt, der existiert, um die Sitzung stattdessen als dieser Agent auszuführen

3184* Wenn der Agent Projekt-Agenten ist und Sie das ursprüngliche Verzeichnis der Sitzung nicht vertraut haben, führen Sie Claude Code dort einmal aus, akzeptieren Sie den Vertrauensdialog, dann setzen Sie erneut fort3606* Wenn der Agent Projekt-Agent ist und Sie das ursprüngliche Verzeichnis der Sitzung nicht vertraut haben, führen Sie Claude Code dort einmal aus, akzeptieren Sie den Vertrauensdialog, dann setzen Sie erneut fort

3185 3607 

3186<h3 id="claude_code_process_wrapper-launcher-errors">3608<h3 id="claude_code_process_wrapper-launcher-errors">

3187 CLAUDE\_CODE\_PROCESS\_WRAPPER Launcher-Fehler3609 CLAUDE\_CODE\_PROCESS\_WRAPPER Launcher-Fehler


3238 3660 

3239Wenn Sie eine Sitzung mit `/background` oder `claude --bg` starten, erscheint der gleiche Grund innerhalb von `Couldn't reach the background service (...)`. Während des gleichen Neuinstallationsfensters kann der Fehler einen anderen Code benennen, wie `ENOENT` oder `ENOEXEC`, oder `EUNKNOWN` oder `EPERM` auf Windows; ein `EUNKNOWN`, das über Wiederholungen hinweg anhält, hat eine [andere Ursache](#eunknown-when-starting-a-background-session).3661Wenn Sie eine Sitzung mit `/background` oder `claude --bg` starten, erscheint der gleiche Grund innerhalb von `Couldn't reach the background service (...)`. Während des gleichen Neuinstallationsfensters kann der Fehler einen anderen Code benennen, wie `ENOENT` oder `ENOEXEC`, oder `EUNKNOWN` oder `EPERM` auf Windows; ein `EUNKNOWN`, das über Wiederholungen hinweg anhält, hat eine [andere Ursache](#eunknown-when-starting-a-background-session).

3240 3662 

3241Bei einer npm-Installation wartet Claude Code bis zu zehn Sekunden, bis die Neuinstallation fertig ist, und versucht es automatisch erneut, daher sehen Sie den Fehler nur, wenn die Binärdatei länger nicht ausführbar bleibt, wie während npm das Paket noch herunterlädt. Vor v2.1.246 schlug Claude Code sofort fehl.3663Bei einer npm-Installation wartet Claude Code auf die Neuinstallation und versucht es automatisch erneut: bis zu zehn Sekunden, und bis zu zwei Minuten, während eine npm-Installation von Claude Code auf der Maschine sichtbar noch läuft, was einen anderen Claude Code-Prozess abdeckt, der ein Update herunterlädt. Wenn die Installation länger als diese Wartezeit dauert, benennt der Fehler das Update stattdessen des bloßen Fehlercodes:

3664 

3665```text theme={null}

3666Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

3667```

3668 

3669Vor v2.1.257 stoppte die Wartezeit bei zehn Sekunden in jedem Fall, daher erschien dieser Fehler, während ein anderer Claude Code-Prozess noch ein Update herunterlädt. Vor v2.1.246 schlug Claude Code sofort fehl, ohne zu warten.

3242 3670 

3243**Was zu tun ist:**3671**Was zu tun ist:**

3244 3672 

3245* Warten Sie ein paar Sekunden, dann öffnen Sie die Sitzung oder entsenden Sie erneut.3673* Warten Sie ein paar Sekunden, dann öffnen Sie die Sitzung oder entsenden Sie erneut. Wenn die Meldung sagt, Claude Code wird aktualisiert, versuchen Sie es erneut, nachdem das Update fertig ist.

3246* Wenn der Fehler anhält, während keine npm-Installation läuft, kann Ihr Benutzer die installierte Binärdatei nicht ausführen. Überprüfen Sie ihre Berechtigungen und die ihres Verzeichnisses, oder installieren Sie Claude Code neu.3674* Wenn der Fehler anhält, während keine npm-Installation läuft, kann Ihr Benutzer die installierte Binärdatei nicht ausführen. Überprüfen Sie ihre Berechtigungen und die ihres Verzeichnisses, oder installieren Sie Claude Code neu.

3247 3675 

3248<h3 id="background-service-exited-before-it-became-reachable">3676<h3 id="background-service-exited-before-it-became-reachable">


3259 3687 

3260Claude Code meldet den Fehler mit der Fehlerzeile des Service. Vor v2.1.246 wurde der Fehler nur nach einer 45-Sekunden-Wartezeit angezeigt, als `background service did not become reachable within 45s`, ohne die Fehlerzeile des Service.3688Claude Code meldet den Fehler mit der Fehlerzeile des Service. Vor v2.1.246 wurde der Fehler nur nach einer 45-Sekunden-Wartezeit angezeigt, als `background service did not become reachable within 45s`, ohne die Fehlerzeile des Service.

3261 3689 

3690Zwei zitierte Gründe haben bekannte Ursachen:

3691 

3692* `Error: claude native binary not installed.`: eine npm-Installation ersetzt die Claude Code-Binärdatei zu diesem Zeitpunkt, daher führte der Service stattdessen npm-Platzhalter aus. Versuchen Sie es erneut, nachdem die Installation fertig ist; wenn die Zeile mit keiner Installation läuft anhält, [schließen Sie die npm-Installation ab](/docs/de/troubleshoot-install#native-binary-not-found-after-npm-install). Vor v2.1.257 produzierte eine macOS npm-Selbstaktualisierung diesen Fehler bei jedem Start während des Installationsfensters.

3693* `nothing on stderr` mit Exit-Code 1, bei jedem Start, auf Windows: `daemon.lock` benennt einen Prozess, den Claude Code weder signalisieren noch beweisen kann, dass er weg ist, daher schließt jeder neue Service, dass ein anderer die Sperre hält und beendet sich. Eine Sperre, deren Schreiber Claude Code beweisen kann, dass er weg ist, wird von selbst ersetzt und produziert diesen Fehler nicht. Wenn der Fehler bei jedem Start wiederholt wird, löschen Sie `~/.claude/daemon.lock`, dann öffnen Sie die Sitzung oder entsenden Sie erneut. Vor v2.1.257 blockierte eine solche Sperre jeden Start, bis Sie die Datei löschten.

3694 

3262**Was zu tun ist:**3695**Was zu tun ist:**

3263 3696 

3264* Wenn die Meldung eine Zeile zitiert, beheben Sie, was sie benennt, dann öffnen Sie die Sitzung oder entsenden Sie erneut. Der nächste Versuch startet den Service erneut3697* Wenn die Meldung eine Zeile zitiert, beheben Sie, was sie benennt, dann öffnen Sie die Sitzung oder entsenden Sie erneut. Der nächste Versuch startet den Service erneut

3265* Führen Sie `claude daemon status` aus, um zu überprüfen, ob ein Service jetzt läuft3698* Führen Sie `claude daemon status` aus, um zu überprüfen, ob ein Service jetzt läuft

3266 3699 

3700<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">

3701 Arbeitsverzeichnis existiert nicht mehr beim Starten einer Hintergrund-Sitzung

3702</h3>

3703 

3704Sie haben versucht, eine [Hintergrund-Sitzung](/docs/de/agent-view) in einem Verzeichnis zu starten, das nicht mehr existiert. Dies geschieht, wenn Sie aus der Agent-Ansicht entsenden oder `/background` ausführen, nachdem das Verzeichnis, in dem Sie arbeiten, gelöscht oder verschoben wurde. Es geschieht auch, wenn Sie sich an eine Sitzung anhängen oder eine neu starten, deren Prozess beendet wurde und deren Verzeichnis weg ist, da der neue Prozess in diesem gleichen Verzeichnis starten würde. Claude Code startet die Sitzung nicht, und die Meldung nennt das fehlende Verzeichnis:

3705 

3706```text theme={null}

3707Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)

3708```

3709 

3710Vor v2.1.257 schien die Sitzung zu starten und zeigte sich dann in der Agent-Ansicht als fehlgeschlagene Zeile mit dem gleichen Grund.

3711 

3712**Was zu tun ist:**

3713 

3714* Erstellen Sie das Verzeichnis neu, das die Meldung nennt, oder entsenden Sie aus einem Verzeichnis, das existiert, dann versuchen Sie es erneut

3715 

3267<h2 id="wrapper-and-ide-errors">3716<h2 id="wrapper-and-ide-errors">

3268 Fehler bei Wrapper und IDE3717 Fehler bei Wrapper und IDE

3269</h2>3718</h2>


3533 3982 

3534Vor v2.1.248 meldete Claude Code einen fehlgeschlagenen Einstellungsabruf nur im Debug-Protokoll.3983Vor v2.1.248 meldete Claude Code einen fehlgeschlagenen Einstellungsabruf nur im Debug-Protokoll.

3535 3984 

3985<h3 id="managed-settings-were-not-approved">

3986 Verwaltete Einstellungen wurden nicht genehmigt

3987</h3>

3988 

3989Die [servergesteuerten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation enthalten Einstellungen, die Ihre Genehmigung benötigen, und Sie haben den [Sicherheitsgenehmigungsdialog](/docs/de/server-managed-settings#security-approval-dialogs) abgelehnt, daher wird Claude Code beendet, ohne sie anzuwenden:

3990 

3991```text theme={null}

3992Managed settings were not approved; exiting without applying them.

3993```

3994 

3995**Was zu tun ist:**

3996 

3997* Starten Sie Claude Code erneut und genehmigen Sie den Dialog, um unter den Einstellungen Ihrer Organisation fortzufahren. Ein abgelehnter Dialog wird nicht gespeichert, daher erscheint er beim nächsten Start erneut.

3998* Wenn Sie sich über eine Einstellung unsicher sind, die der Dialog auflistet, fragen Sie denjenigen, der die verwalteten Einstellungen Ihrer Organisation verwaltet, bevor Sie genehmigen

3999 

3536<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">4000<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

3537 MCP-Server wird durch Unternehmensrichtlinie blockiert4001 MCP-Server wird durch Unternehmensrichtlinie blockiert

3538</h3>4002</h3>


3752 4216 

3753Vor v2.1.233 schrieb Claude Code keine Zeile, wenn es eine Anfrage für eine Modell-ID sendete, die es nicht erkannte.4217Vor v2.1.233 schrieb Claude Code keine Zeile, wenn es eine Anfrage für eine Modell-ID sendete, die es nicht erkannte.

3754 4218 

4219<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

4220 Veraltete Sandbox-Maskierungsdateien, die von einer beendeten Sitzung hinterlassen wurden

4221</h3>

4222 

4223`claude doctor` gibt diese Warnung in seinen Diagnosen aus, und `/status` listet die gleiche Zeile auf. Sie erscheint unter Linux und WSL2, wenn [Sandboxing](/docs/de/sandboxing) mit Dateisystem-Isolation aktiviert ist.

4224 

4225Während ein sandboxierter Befehl ausgeführt wird, hält die Sandbox eine Schreibverweigerung auf einer Datei, die noch nicht existiert, indem sie dort einen 0-Byte-Platzhalter mit Lesezugriff erstellt, und entfernt ihn danach. Eine Sitzung, die vor dieser Bereinigung beendet wird, z. B. durch SIGKILL, hinterlässt die Platzhalter. Spätere Sitzungen binden sie bei jedem Start erneut schreibgeschützt, daher schlägt ein Einstellungsschreiben wie das Speichern von „Ja, und nicht mehr fragen" fehl, wo einer sitzt.

4226 

4227```text theme={null}

4228- Stale sandbox mask files left by a killed session: /home/you/project/.claude/settings.local.json

4229 Fix: Remove each with `rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, and the sandbox binds it read-only again on every start

4230```

4231 

4232**Was zu tun ist:**

4233 

4234* Beenden Sie alle anderen Claude Code-Sitzungen, die in diesem Projekt ausgeführt werden, löschen Sie dann jede aufgelistete Datei mit `rm`. Die Warnung listet bis zu drei Dateien auf und zählt den Rest, daher führen Sie `claude doctor` erneut aus, nachdem Sie gelöscht haben, bis die Warnung nicht mehr erscheint. Ein Platzhalter, den die Sandbox einer anderen Sitzung noch verwendet, ist ein aktiver Teil des Schreibschutzes dieser Sitzung

4235* Wenn eine Berechtigungswahl, die Sie mit „Ja, und nicht mehr fragen" gespeichert haben, nicht haften blieb, speichern Sie sie erneut, nachdem Sie den Platzhalter gelöscht haben

4236 

4237Vor v2.1.257 kennzeichnete `claude doctor` diese Dateien nicht; frühere Versionen hinterlassen die gleichen Platzhalter, wenn eine Sitzung beendet wird.

4238 

3755<h2 id="responses-seem-lower-quality-than-usual">4239<h2 id="responses-seem-lower-quality-than-usual">

3756 Antworten scheinen von geringerer Qualität als üblich4240 Antworten scheinen von geringerer Qualität als üblich

3757</h2>4241</h2>

Details

41* **MCP servers**: [Konnektoren von claude.ai](/docs/de/mcp#use-mcp-servers-from-claude-ai) werden nur geladen, wenn Ihr claude.ai-Abonnement die aktive Authentifizierungsmethode ist. [Tool-Suche](/docs/de/mcp#configure-tool-search) ist standardmäßig deaktiviert, wenn `ANTHROPIC_BASE_URL` auf einen Nicht-First-Party-Host verweist, und wird auf Google Cloud's Agent Platform-Modellen vor der Claude 4.5-Generation oder auf Microsoft Foundry [Bereitstellungen, die auf Azure gehostet werden](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) nicht unterstützt41* **MCP servers**: [Konnektoren von claude.ai](/docs/de/mcp#use-mcp-servers-from-claude-ai) werden nur geladen, wenn Ihr claude.ai-Abonnement die aktive Authentifizierungsmethode ist. [Tool-Suche](/docs/de/mcp#configure-tool-search) ist standardmäßig deaktiviert, wenn `ANTHROPIC_BASE_URL` auf einen Nicht-First-Party-Host verweist, und wird auf Google Cloud's Agent Platform-Modellen vor der Claude 4.5-Generation oder auf Microsoft Foundry [Bereitstellungen, die auf Azure gehostet werden](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) nicht unterstützt

42* **Subagents**: der integrierte [Explore Subagent](/docs/de/sub-agents#built-in-subagents) begrenzt sein vererbtes Modell auf Opus auf der Claude API und erbt das Modell der Hauptkonversation direkt auf jedem anderen Anbieter, einschließlich Claude Platform on AWS42* **Subagents**: der integrierte [Explore Subagent](/docs/de/sub-agents#built-in-subagents) begrenzt sein vererbtes Modell auf Opus auf der Claude API und erbt das Modell der Hauptkonversation direkt auf jedem anderen Anbieter, einschließlich Claude Platform on AWS

43* **[Commands](/docs/de/commands#all-commands)**:43* **[Commands](/docs/de/commands#all-commands)**:

44 * `/design-sync` und `/import` mit seiner `claude import` Subbefehlsform sind auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform on AWS nicht verfügbar44 * `/design-sync` und `/import` mit seiner `claude import` Subbefehlsform sind auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform on AWS nicht verfügbar, und über ein [Claude apps gateway](/docs/de/claude-apps-gateway#availability-and-limitations)

45 * `/voice` erfordert ein claude.ai-Konto45 * `/voice` erfordert ein claude.ai-Konto

46 * `/list-agents` und sein Alias `/peers` sind nur in Sitzungen verfügbar, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability)46 * `/list-agents` und sein Alias `/peers` sind nur in Sitzungen verfügbar, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability)

47 47 

fullscreen.md +5 −2

Details

33 * Wenn Sie vor Ihre erste Nachricht zurückgespult haben, startet Claude Code mit einem leeren Gespräch neu33 * Wenn Sie vor Ihre erste Nachricht zurückgespult haben, startet Claude Code mit einem leeren Gespräch neu

34* Ihr [Berechtigungsmodus](/docs/de/permission-modes) und [Aufwandsstufe](/docs/de/model-config#adjust-effort-level)34* Ihr [Berechtigungsmodus](/docs/de/permission-modes) und [Aufwandsstufe](/docs/de/model-config#adjust-effort-level)

35* Das Modell, das Sie zuletzt mit [`/model`](/docs/de/model-config#setting-your-model) ausgewählt haben35* Das Modell, das Sie zuletzt mit [`/model`](/docs/de/model-config#setting-your-model) ausgewählt haben

36* Regeln, die Sie mit [`--allowed-tools` oder `--disallowed-tools`](/docs/de/cli-reference#cli-flags) übergeben haben, und Ihre `--agent`, `--agents` und `--append-system-prompt` Flags36* Regeln, die Sie mit [`--allowed-tools` oder `--disallowed-tools`](/docs/de/cli-reference#cli-flags) übergeben haben, und Ihre `--agent`, `--agents`, `--append-system-prompt` und `--system-prompt-snapshot` Flags

37 37 

38Claude Code lehnt einen Neustart ab, wenn die Sitzung eine Einschränkung hat, die es nicht an den neu gestarteten Prozess übergeben kann. Einschränkungen, die es nicht übergeben kann, sind:38Claude Code lehnt einen Neustart ab, wenn die Sitzung eine Einschränkung hat, die es nicht an den neu gestarteten Prozess übergeben kann. Einschränkungen, die es nicht übergeben kann, sind:

39 39 


103* **Klicken Sie auf eine Option in einem Auswahlmenü**, um sie auszuwählen. Dies umfasst Berechtigungsaufforderungen, `/model`, `/config` und andere Dialoge, die eine Liste von Optionen anzeigen. Das Hovern zeigt einen Zeiger auf der Zeile unter Ihrem Cursor. Erfordert Claude Code v2.1.187 oder später.103* **Klicken Sie auf eine Option in einem Auswahlmenü**, um sie auszuwählen. Dies umfasst Berechtigungsaufforderungen, `/model`, `/config` und andere Dialoge, die eine Liste von Optionen anzeigen. Das Hovern zeigt einen Zeiger auf der Zeile unter Ihrem Cursor. Erfordert Claude Code v2.1.187 oder später.

104* **Klicken Sie auf eine Option in einem Mehrfachauswahlmenü**, um sie umzuschalten, und klicken Sie auf die Schaltfläche „Senden", um Ihre Auswahl zu bestätigen. Wenn Sie auf eine Freitextzeile klicken, z. B. die `Other`-Zeile in einer Multiple-Choice-Frage, wird das Eingabefeld fokussiert, damit Sie eine Antwort eingeben können. Erfordert Claude Code v2.1.208 oder später.104* **Klicken Sie auf eine Option in einem Mehrfachauswahlmenü**, um sie umzuschalten, und klicken Sie auf die Schaltfläche „Senden", um Ihre Auswahl zu bestätigen. Wenn Sie auf eine Freitextzeile klicken, z. B. die `Other`-Zeile in einer Multiple-Choice-Frage, wird das Eingabefeld fokussiert, damit Sie eine Antwort eingeben können. Erfordert Claude Code v2.1.208 oder später.

105* **Klicken Sie auf ein reduziertes Werkzeugergebnis**, um es zu erweitern und die vollständige Ausgabe anzuzeigen. Klicken Sie erneut, um es zu reduzieren. Der Werkzeugaufruf und sein Ergebnis werden zusammen erweitert. Nur Nachrichten, die mehr anzuzeigen haben, sind anklickbar.105* **Klicken Sie auf ein reduziertes Werkzeugergebnis**, um es zu erweitern und die vollständige Ausgabe anzuzeigen. Klicken Sie erneut, um es zu reduzieren. Der Werkzeugaufruf und sein Ergebnis werden zusammen erweitert. Nur Nachrichten, die mehr anzuzeigen haben, sind anklickbar.

106 * Durch Klicken wird auch die Ausgabe eines `!`-Shell-Befehls erweitert, unabhängig davon, ob es sich um ein älteres abgeschnittenes Ergebnis oder die Live-Fortschrittszeile während der Befehlsausführung handelt. Erfordert Claude Code v2.1.257 oder später.

106* **Halten Sie `Cmd` auf macOS oder `Ctrl` auf Linux und Windows und klicken Sie auf eine URL oder einen Dateipfad**, um ihn zu öffnen. Einfache `http://`- und `https://`-URLs werden in Ihrem Browser geöffnet, und Dateipfade in der Werkzeugausgabe, wie die nach einem Edit oder Write gedruckten, werden in Ihrer Standardanwendung geöffnet. Ein einfacher Klick ohne den Modifikator öffnet keine Links und entspricht dem nativen Terminalverhalten.107* **Halten Sie `Cmd` auf macOS oder `Ctrl` auf Linux und Windows und klicken Sie auf eine URL oder einen Dateipfad**, um ihn zu öffnen. Einfache `http://`- und `https://`-URLs werden in Ihrem Browser geöffnet, und Dateipfade in der Werkzeugausgabe, wie die nach einem Edit oder Write gedruckten, werden in Ihrer Standardanwendung geöffnet. Ein einfacher Klick ohne den Modifikator öffnet keine Links und entspricht dem nativen Terminalverhalten.

107 * Claude Code rendert einen Netzwerkpfad (UNC-Pfad), z. B. `\\server\share\file.ts`, als reinen Text ohne Link, da das Öffnen eines Netzwerkpfads Ihre Windows-Anmeldedaten an den Host senden kann, den er benennt.108 * Claude Code rendert einen Netzwerkpfad (UNC-Pfad), z. B. `\\server\share\file.ts`, als reinen Text ohne Link, da das Öffnen eines Netzwerkpfads Ihre Windows-Anmeldedaten an den Host senden kann, den er benennt.

108 * Einige macOS-Terminals leiten `Cmd`+Klick an die laufende Anwendung weiter, anstatt den Link selbst zu öffnen, und das Terminal-Mausprotokoll hat keine Möglichkeit, die `Cmd`-Taste zu codieren, daher empfängt Claude Code einen einfachen Klick. In Ghostty und in Warp auf macOS erkennt Claude Code dies und ermöglicht es, dass ein einfacher Klick auf einen Link ihn öffnet, und das Halten von `Cmd` funktioniert immer noch.109 * Einige macOS-Terminals leiten `Cmd`+Klick an die laufende Anwendung weiter, anstatt den Link selbst zu öffnen, und das Terminal-Mausprotokoll hat keine Möglichkeit, die `Cmd`-Taste zu codieren, daher empfängt Claude Code einen einfachen Klick. In Ghostty und in Warp auf macOS erkennt Claude Code dies und ermöglicht es, dass ein einfacher Klick auf einen Link ihn öffnet, und das Halten von `Cmd` funktioniert immer noch.


148 149 

149Diese Aktionen können neu gebunden werden. Siehe [Scroll-Aktionen](/docs/de/keybindings#scroll-actions) für die vollständige Liste der Aktionsnamen, einschließlich Varianten für halbe und ganze Seiten, die standardmäßig nicht gebunden sind.150Diese Aktionen können neu gebunden werden. Siehe [Scroll-Aktionen](/docs/de/keybindings#scroll-actions) für die vollständige Liste der Aktionsnamen, einschließlich Varianten für halbe und ganze Seiten, die standardmäßig nicht gebunden sind.

150 151 

152Während Sie nach oben gescrollt sind, zeigt eine schwache Kopfzeile oben im Gespräch die neueste Eingabeaufforderung an, die über die Ansicht hinaus gescrollt ist. Klicken Sie auf die Zeile, um zu dieser Eingabeaufforderung zu springen.

153 

151<h3 id="auto-follow">154<h3 id="auto-follow">

152 Automatisches Folgen155 Automatisches Folgen

153</h3>156</h3>


178 181 

179Ein Wert von `3` entspricht dem Standard in `vim` und ähnlichen Anwendungen. Die Einstellung akzeptiert jeden positiven Wert bis zu 20, einschließlich Bruchteile unter 1, wie `0.25`, um beschleunigtes Trackpad- und Mausrad-Scrolling in Terminals zu verlangsamen, die Rad-Ereignisse bereits verstärken.182Ein Wert von `3` entspricht dem Standard in `vim` und ähnlichen Anwendungen. Die Einstellung akzeptiert jeden positiven Wert bis zu 20, einschließlich Bruchteile unter 1, wie `0.25`, um beschleunigtes Trackpad- und Mausrad-Scrolling in Terminals zu verlangsamen, die Rad-Ereignisse bereits verstärken.

180 183 

181Um die Scroll-Geschwindigkeit interaktiv anzupassen, führen Sie `/scroll-speed` aus. Der Dialog zeigt ein Lineal, das Sie scrollen können, während er offen ist, damit Sie die Änderung sofort spüren können. Drücken Sie `←` und `→`, um die Geschwindigkeit anzupassen, `r`, um auf den automatisch erkannten Standard zurückzusetzen, und `Enter`, um zu speichern. Der Dialog schreitet in ganzen Zahlen bis zu 10 vor, und auf Terminals, die feinere Kontrolle unterstützen, bietet er auch Viertelschritte bis zu 0,25. Viertelschritte erfordern Claude Code v2.1.172 oder später.184Um die Scroll-Geschwindigkeit interaktiv anzupassen, führen Sie `/scroll-speed` aus. Der Dialog zeigt ein Lineal, das Sie scrollen können, während er offen ist, damit Sie die Änderung sofort spüren können. Drücken Sie `←` und `→`, um die Geschwindigkeit anzupassen, `r`, um auf den automatisch erkannten Standard zurückzusetzen, und `Enter`, um zu speichern. Der Dialog schreitet in ganzen Zahlen bis zu 10 vor, und auf Terminals, die feinere Kontrolle unterstützen, bietet er auch Viertelschritte bis zu 0,25.

182 185 

183Der Befehl schreibt den gleichen Wert, den die Umgebungsvariable `CLAUDE_CODE_SCROLL_SPEED` setzt, persistent in `~/.claude/settings.json`. Das Maximum des Dialogs ist 10: Wenn Sie einen höheren Wert über die Umgebungsvariable setzen, zeigt der Dialog 10 an, und das Speichern aus dem Dialog speichert 10. Der Befehl ist im JetBrains IDE-Terminal nicht verfügbar.186Der Befehl schreibt den gleichen Wert, den die Umgebungsvariable `CLAUDE_CODE_SCROLL_SPEED` setzt, persistent in `~/.claude/settings.json`. Das Maximum des Dialogs ist 10: Wenn Sie einen höheren Wert über die Umgebungsvariable setzen, zeigt der Dialog 10 an, und das Speichern aus dem Dialog speichert 10. Der Befehl ist im JetBrains IDE-Terminal nicht verfügbar.

184 187 

Details

30 Schnelles Setup30 Schnelles Setup

31</h3>31</h3>

32 32 

33`/install-github-app` funktioniert nur mit github.com-Repositories. Wenn sich das Git-Remote Ihres Repositories auf gitlab.com oder bitbucket.org befindet, druckt der Befehl eine Benachrichtigung aus und beendet sich, anstatt das Setup zu starten. Um Claude Code aus GitLab-Pipelines auszuführen, siehe [Claude Code GitLab CI/CD](/docs/de/gitlab-ci-cd).

34 

33Bevor Sie beginnen, installieren Sie die [GitHub CLI](https://cli.github.com) und authentifizieren Sie sie mit `gh auth login`. Claude Code prüft darauf und warnt Sie, wenn sie fehlt.35Bevor Sie beginnen, installieren Sie die [GitHub CLI](https://cli.github.com) und authentifizieren Sie sie mit `gh auth login`. Claude Code prüft darauf und warnt Sie, wenn sie fehlt.

34 36 

35Öffnen Sie `claude` im Repository, das Sie verbinden möchten, führen Sie `/install-github-app` aus und folgen Sie den Aufforderungen. Claude Code installiert die Claude GitHub App und richtet dann ein Authentifizierungsgeheimnis für die Workflows ein:37Öffnen Sie `claude` im Repository, das Sie verbinden möchten, führen Sie `/install-github-app` aus und folgen Sie den Aufforderungen. Claude Code installiert die Claude GitHub App und richtet dann ein Authentifizierungsgeheimnis für die Workflows ein:

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code GitHub Actions mit Cloud-Anbietern verwenden

6 

7> Führen Sie Claude Code GitHub Actions über Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry statt über die Claude API aus

8 

9[Claude Code GitHub Actions](/docs/de/github-actions) ruft standardmäßig die Claude API auf. Um Inferenzen stattdessen über Ihr eigenes Cloud-Konto zu leiten, legen Sie die Provider-Eingabe der Claude Code GitHub Action fest und konfigurieren Sie Ihre Cloud so, dass sie das OpenID Connect (OIDC)-Token des Workflows vertraut. Der Workflow authentifiziert sich mit diesem Token, sodass Sie keine langlebigen Cloud-Anmeldedaten in Ihrem Repository speichern.

10 

11<Info>

12 Diese Seite baut auf der [GitHub Actions-Einrichtung](/docs/de/github-actions#setup) auf. Sie setzt voraus, dass Sie bereits die Workflow-Datei und den `anthropics/claude-code-action`-Schritt kennen, und behandelt nur, was ein Cloud-Anbieter ändert.

13</Info>

14 

15<h2 id="choose-your-provider">

16 Wählen Sie Ihren Anbieter

17</h2>

18 

19Die Claude Code GitHub Action unterstützt drei Anbieter, und die Einrichtungsschritte unterscheiden sich nur in der Cloud-seitigen Konfiguration. Verwenden Sie den Anbieter, bei dem Ihre Organisation bereits Zugriff auf Claude-Modelle hat. Sie teilen der Claude Code GitHub Action mit, welchen Anbieter Sie verwenden möchten, mit einer Eingabe im `with:`-Block des `anthropics/claude-code-action`-Schritts:

20 

21* **Amazon Bedrock**: `use_bedrock: "true"`

22* **Google Cloud's Agent Platform**: `use_vertex: "true"`

23* **Microsoft Foundry**: `use_foundry: "true"`

24 

25Die vollständigen Workflow-Beispiele unter [Richten Sie die Integration ein](#set-up-the-integration) enthalten bereits die Eingabe für jeden Anbieter.

26 

27<h2 id="prerequisites">

28 Voraussetzungen

29</h2>

30 

31Bevor Sie beginnen, benötigen Sie:

32 

33* Administratorzugriff auf das Repository, in dem die Claude Code GitHub Action ausgeführt wird, um eine GitHub App zu installieren und Geheimnisse hinzuzufügen

34* Berechtigung zum Erstellen von Identitätsressourcen in Ihrem Cloud-Konto: IAM-Rollen und OIDC-Identitätsanbieter auf AWS, Workload Identity Federation-Ressourcen und Dienstkonten auf Google Cloud oder Microsoft Entra-Anwendungen auf Azure

35* Claude-Modellzugriff auf Ihrem Anbieter:

36 * **Amazon Bedrock**: Zugriff auf Claude-Modelle gewährt. Cross-Region-Inferenzprofile wie die `us.`-Modell-IDs in den Beispielen dieser Seite benötigen Zugriff in jeder Region ihrer Regionsgruppe. Siehe [Claude Code auf Amazon Bedrock](/docs/de/amazon-bedrock)

37 * **Google Cloud's Agent Platform**: ein Projekt mit aktivierter Agent Platform API und Zugriff auf Claude-Modelle. Siehe [Claude Code auf Google Cloud's Agent Platform](/docs/de/google-vertex-ai)

38 * **Microsoft Foundry**: eine Foundry-Ressource mit einer Claude-Modellbereitstellung. Siehe [Claude Code auf Microsoft Foundry](/docs/de/microsoft-foundry)

39 

40<h2 id="set-up-the-integration">

41 Richten Sie die Integration ein

42</h2>

43 

44Über die Voraussetzungen hinaus erstellen Sie vier Dinge: eine GitHub-Identität für die Claude Code GitHub Action, die Cloud-seitige Vertrauenskonfiguration, die Repository-Geheimnisse und die Workflow-Datei. Die folgenden Schritte führen Sie durch jeden Punkt.

45 

46<Steps>

47 <Step title="Wählen Sie eine GitHub-Identität">

48 Die Claude Code GitHub Action pusht Commits und postet Kommentare über eine GitHub-Identität. Die [Schnelleinrichtung](/docs/de/github-actions#quick-setup) installiert die offizielle Claude GitHub App dafür. Mit einem Cloud-Anbieter wählen Sie die Identität selbst:

49 

50 * **Offizielle [Claude GitHub App](https://github.com/apps/claude)**: installieren Sie sie im Repository, oder überspringen Sie zum nächsten Schritt, wenn sie bereits installiert ist

51 * **Benutzerdefinierte GitHub App**: erstellen Sie Ihre eigene App, wie unten beschrieben, wenn Sie nur die drei Berechtigungen möchten, die die Claude Code GitHub Action verwendet, anstelle des [vollständigen Satzes der offiziellen App](/docs/de/github-actions#github-app-permissions)

52 * **GitHub's automatisches `GITHUB_TOKEN`**: keine App zu erstellen oder zu installieren, aber GitHub löst Ihre CI-Workflows nicht bei Commits aus, die damit erstellt wurden

53 

54 Die Workflow-Beispiele im vierten Schritt authentifizieren sich mit einer benutzerdefinierten App. Dieser Schritt sagt auch, was für die anderen beiden Optionen zu ändern ist.

55 

56 Um eine benutzerdefinierte App zu erstellen, [registrieren Sie eine neue GitHub App](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app) mit deaktivierten Webhooks, da diese Integration sie nicht verwendet. Gewähren Sie ihr drei Repository-Berechtigungen:

57 

58 * **Contents**: Lesen und Schreiben

59 * **Issues**: Lesen und Schreiben

60 * **Pull requests**: Lesen und Schreiben

61 

62 Nach der Registrierung der App generieren Sie einen privaten Schlüssel und behalten die heruntergeladene `.pem`-Datei, notieren Sie die App-ID von der Einstellungsseite der App, und [installieren Sie die App](https://docs.github.com/en/apps/using-github-apps/installing-your-own-github-app) im Repository, in dem die Claude Code GitHub Action ausgeführt wird. Sie fügen den Schlüssel und die ID als Geheimnisse im dritten Schritt hinzu.

63 </Step>

64 

65 <Step title="Konfigurieren Sie die Cloud-Authentifizierung">

66 Konfigurieren Sie Ihre Cloud so, dass sie das OIDC-Token vertraut, das GitHub dem Workflow ausstellt, damit jede Workflow-Ausführung kurzlebige Cloud-Anmeldedaten erhält. Die Aufzählungspunkte in jeder Registerkarte fassen zusammen, was zu erstellen ist, und jede Registerkarte verlinkt auf die eigene Anleitung des Cloud-Anbieters für die Schritte auf Konsolenebene.

67 

68 <Tabs>

69 <Tab title="Amazon Bedrock">

70 Erstellen Sie die Vertrauenskonfiguration in Ihrem AWS-Konto, indem Sie der [AWS-Anleitung zum Erstellen von OIDC-Identitätsanbietern](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) folgen:

71 

72 * Fügen Sie einen GitHub OIDC-Identitätsanbieter mit Provider-URL `https://token.actions.githubusercontent.com` und Audience `sts.amazonaws.com` hinzu

73 * Erstellen Sie eine IAM-Rolle, der dieser Anbieter als Web-Identität vertraut, und fügen Sie die scoped Invocation Policy aus [IAM-Konfiguration](/docs/de/amazon-bedrock#iam-configuration) an, die `bedrock:InvokeModel`, `bedrock:InvokeModelWithResponseStream`, `bedrock:ListInferenceProfiles` und `bedrock:GetInferenceProfile` sowie zwei `aws-marketplace`-Abonnementaktionen gewährt

74 * Begrenzen Sie die Vertrauensrichtlinie der Rolle auf Ihr Repository mit einer Bedingung wie `repo:your-org/your-repo:*`. Siehe [GitHub's OIDC-Härtungsanleitung](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) für das Anspruchsformat

75 

76 Notieren Sie sich das ARN der Rolle. Sie fügen es als Geheimnis im nächsten Schritt hinzu.

77 </Tab>

78 

79 <Tab title="Google Cloud's Agent Platform">

80 Erstellen Sie die Verbundressourcen in Ihrem Google Cloud-Projekt, indem Sie der [Workload Identity Federation-Dokumentation](https://cloud.google.com/iam/docs/workload-identity-federation) folgen:

81 

82 * Aktivieren Sie drei APIs: IAM Credentials, Security Token Service (STS) und die Agent Platform API, deren Servicename `aiplatform.googleapis.com` ist

83 * Erstellen Sie einen Workload Identity Pool mit einem GitHub OIDC-Anbieter, dessen Aussteller `https://token.actions.githubusercontent.com` ist, und fügen Sie eine Attributbedingung hinzu, die den Pool auf Ihr Repository beschränkt

84 * Erstellen Sie ein dediziertes Dienstkonto nur mit der Rolle `Vertex AI User`, die `roles/aiplatform.user` ist, und erlauben Sie dem Pool, es zu imitieren

85 

86 Notieren Sie sich den vollständigen Ressourcennamen des Anbieters und die E-Mail-Adresse des Dienstkontos. Sie fügen sie als Geheimnisse im nächsten Schritt hinzu.

87 </Tab>

88 

89 <Tab title="Microsoft Foundry">

90 Erstellen Sie eine Microsoft Entra-Anwendung mit einer Verbundberechtigung für Ihr Repository, indem Sie [Microsofts Anleitung zur Authentifizierung von GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect) befolgen:

91 

92 * Registrieren Sie eine Microsoft Entra-Anwendung und fügen Sie eine Verbundidentitätsberechtigung hinzu, die Tokens vertraut, die GitHub für Ihr Repository ausstellt. Eine benutzerzugewiesene verwaltete Identität funktioniert anstelle einer Anwendung. Beide haben die Client-ID, die Sie unten notieren

93 * Weisen Sie der Anwendung die Rolle `Azure AI User` auf Ihrer Foundry-Ressource zu. Siehe [Azure RBAC-Konfiguration](/docs/de/microsoft-foundry#azure-rbac-configuration) für eine engere benutzerdefinierte Rolle

94 

95 Notieren Sie sich die Client-ID der Anwendung, Ihre Mandanten-ID und Ihre Abonnement-ID. Sie fügen sie als Geheimnisse im nächsten Schritt hinzu.

96 </Tab>

97 </Tabs>

98 </Step>

99 

100 <Step title="Fügen Sie Repository-Geheimnisse hinzu">

101 Fügen Sie im Repository, in dem die Claude Code GitHub Action ausgeführt wird, die Geheimnisse für Ihren Anbieter sowie die beiden App-Geheimnisse hinzu, wenn Sie im ersten Schritt eine benutzerdefinierte GitHub App erstellt haben. Siehe GitHub's Anleitung zu [Verwendung von Geheimnissen in GitHub Actions](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions).

102 

103 | Geheimnis | Benötigt für | Wert |

104 | -------------------------------- | ----------------------------- | -------------------------------------------------- |

105 | `AWS_ROLE_TO_ASSUME` | Amazon Bedrock | Das ARN der IAM-Rolle |

106 | `GCP_WORKLOAD_IDENTITY_PROVIDER` | Google Cloud's Agent Platform | Der vollständige Ressourcennamen des Anbieters |

107 | `GCP_SERVICE_ACCOUNT` | Google Cloud's Agent Platform | Die E-Mail-Adresse des Dienstkontos |

108 | `AZURE_CLIENT_ID` | Microsoft Foundry | Die Client-ID der Entra-Anwendung |

109 | `AZURE_TENANT_ID` | Microsoft Foundry | Ihre Microsoft Entra-Mandanten-ID |

110 | `AZURE_SUBSCRIPTION_ID` | Microsoft Foundry | Ihre Azure-Abonnement-ID |

111 | `APP_ID` | Benutzerdefinierte GitHub App | Die ID der GitHub App |

112 | `APP_PRIVATE_KEY` | Benutzerdefinierte GitHub App | Der Inhalt der `.pem`-Datei mit privatem Schlüssel |

113 </Step>

114 

115 <Step title="Erstellen Sie die Workflow-Datei">

116 Erstellen Sie eine Workflow-Datei für Ihren Anbieter, z. B. `.github/workflows/claude.yml`. Jedes Beispiel antwortet auf `@claude`-Erwähnungen, authentifiziert sich bei GitHub mit einer benutzerdefinierten App und enthält die Berechtigung `id-token: write`, die GitHub benötigt, um das OIDC-Token auszustellen, das Ihr Cloud-Anbieter gegen Anmeldedaten austauscht.

117 

118 Wenn Sie im ersten Schritt eine andere GitHub-Identität gewählt haben, passen Sie das Beispiel an:

119 

120 * **Offizielle Claude GitHub App**: löschen Sie den Schritt „Generate GitHub App token" und die Zeile `github_token`

121 * **GitHub's automatisches Token**: löschen Sie den Token-Generierungsschritt und ändern Sie die Zeile `github_token` in `github_token: ${{ secrets.GITHUB_TOKEN }}`

122 

123 <Warning>

124 In öffentlichen Repositories startet ein Kommentar mit dem Trigger-Ausdruck von jedem Benutzer diesen Workflow. Die Credential-Schritte werden ausgeführt, bevor die Claude Code GitHub Action die Schreibzugriffsberechtigung des Kommentators überprüft. Die Action lehnt daher nicht autorisierte Benutzer erst ab, nachdem der Workflow ein App-Token generiert und sich bei Ihrem Cloud-Anbieter angemeldet hat, was Audit-Log-Einträge hinterlässt und Actions-Minuten verbraucht. Um solche Ausführungen zu vermeiden, fügen Sie einen Schritt hinzu, der die Schreibzugriffsberechtigung des Kommentators vor den Credential-Schritten überprüft.

125 </Warning>

126 

127 <Tabs>

128 <Tab title="Amazon Bedrock">

129 Ersetzen Sie den Wert `aws-region` durch Ihren eigenen. Der Credentials-Schritt exportiert ihn als `AWS_REGION` für den Rest des Jobs.

130 

131 ```yaml theme={null}

132 name: Claude PR Action

133 

134 permissions:

135 contents: write

136 pull-requests: write

137 issues: write

138 id-token: write

139 

140 on:

141 issue_comment:

142 types: [created]

143 pull_request_review_comment:

144 types: [created]

145 issues:

146 types: [opened]

147 

148 jobs:

149 claude-pr:

150 if: |

151 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

152 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

153 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

154 runs-on: ubuntu-latest

155 steps:

156 - name: Checkout repository

157 uses: actions/checkout@v6

158 

159 - name: Generate GitHub App token

160 id: app-token

161 uses: actions/create-github-app-token@v2

162 with:

163 app-id: ${{ secrets.APP_ID }}

164 private-key: ${{ secrets.APP_PRIVATE_KEY }}

165 

166 - name: Configure AWS Credentials (OIDC)

167 uses: aws-actions/configure-aws-credentials@v4

168 with:

169 role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}

170 aws-region: us-west-2

171 

172 - uses: anthropics/claude-code-action@v1

173 with:

174 github_token: ${{ steps.app-token.outputs.token }}

175 use_bedrock: "true"

176 claude_args: '--model us.anthropic.claude-sonnet-4-6'

177 ```

178 

179 <Tip>

180 Bedrock-Modell-IDs enthalten ein Cross-Region-Inferenzprofilpräfix wie `us.`. Verwenden Sie das Präfix für die Regionsgruppe, in der Sie Modellzugriff gewährt haben.

181 </Tip>

182 </Tab>

183 

184 <Tab title="Google Cloud's Agent Platform">

185 Ersetzen Sie den Wert `CLOUD_ML_REGION` durch Ihren eigenen. Sie müssen die Projekt-ID nicht hardcodieren, da der Workflow sie aus der Ausgabe des `auth`-Schritts liest.

186 

187 ```yaml theme={null}

188 name: Claude PR Action

189 

190 permissions:

191 contents: write

192 pull-requests: write

193 issues: write

194 id-token: write

195 

196 on:

197 issue_comment:

198 types: [created]

199 pull_request_review_comment:

200 types: [created]

201 issues:

202 types: [opened]

203 

204 jobs:

205 claude-pr:

206 if: |

207 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

208 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

209 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

210 runs-on: ubuntu-latest

211 steps:

212 - name: Checkout repository

213 uses: actions/checkout@v6

214 

215 - name: Generate GitHub App token

216 id: app-token

217 uses: actions/create-github-app-token@v2

218 with:

219 app-id: ${{ secrets.APP_ID }}

220 private-key: ${{ secrets.APP_PRIVATE_KEY }}

221 

222 - name: Authenticate to Google Cloud

223 id: auth

224 uses: google-github-actions/auth@v2

225 with:

226 workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}

227 service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

228 

229 - uses: anthropics/claude-code-action@v1

230 with:

231 github_token: ${{ steps.app-token.outputs.token }}

232 use_vertex: "true"

233 claude_args: '--model claude-sonnet-5'

234 env:

235 ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}

236 CLOUD_ML_REGION: us-east5

237 ```

238 </Tab>

239 

240 <Tab title="Microsoft Foundry">

241 Ersetzen Sie `your-resource-name` durch Ihren Foundry-Ressourcennamen. Claude Code erstellt die Endpunkt-URL daraus. Der `azure/login`-Schritt meldet sich mit dem OIDC-Token des Workflows an, und Claude Code nimmt die Anmeldedaten über die Azure [Standard-Credential-Chain](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) auf.

242 

243 ```yaml theme={null}

244 name: Claude PR Action

245 

246 permissions:

247 contents: write

248 pull-requests: write

249 issues: write

250 id-token: write

251 

252 on:

253 issue_comment:

254 types: [created]

255 pull_request_review_comment:

256 types: [created]

257 issues:

258 types: [opened]

259 

260 jobs:

261 claude-pr:

262 if: |

263 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

264 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

265 (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))

266 runs-on: ubuntu-latest

267 steps:

268 - name: Checkout repository

269 uses: actions/checkout@v6

270 

271 - name: Generate GitHub App token

272 id: app-token

273 uses: actions/create-github-app-token@v2

274 with:

275 app-id: ${{ secrets.APP_ID }}

276 private-key: ${{ secrets.APP_PRIVATE_KEY }}

277 

278 - name: Authenticate to Azure

279 uses: azure/login@v2

280 with:

281 client-id: ${{ secrets.AZURE_CLIENT_ID }}

282 tenant-id: ${{ secrets.AZURE_TENANT_ID }}

283 subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

284 

285 - uses: anthropics/claude-code-action@v1

286 with:

287 github_token: ${{ steps.app-token.outputs.token }}

288 use_foundry: "true"

289 claude_args: '--model claude-sonnet-5'

290 env:

291 ANTHROPIC_FOUNDRY_RESOURCE: your-resource-name

292 ```

293 

294 <Tip>

295 Verwenden Sie eine Modell-ID, die einer Claude-Bereitstellung in Ihrer Foundry-Ressource entspricht. Siehe [Claude Code auf Microsoft Foundry](/docs/de/microsoft-foundry) für Modellkonfiguration und Versionsfixierung.

296 </Tip>

297 </Tab>

298 </Tabs>

299 

300 Mit jedem Anbieter können Sie die Lauflänge und Kosten begrenzen, indem Sie `--max-turns` zu `claude_args` hinzufügen. Siehe [Verwalten Sie Kosten](/docs/de/github-actions#manage-costs).

301 </Step>

302 

303 <Step title="Testen Sie die Einrichtung">

304 Erwähnen Sie `@claude` in einem Issue- oder PR-Kommentar, und beobachten Sie dann die Ausführung auf der Registerkarte „Actions" des Repositories. Claude antwortet in einem Kommentar zum gleichen Issue oder PR.

305 </Step>

306</Steps>

307 

308<h2 id="troubleshooting">

309 Fehlerbehebung

310</h2>

311 

312Eine fehlgeschlagene Ausführung bricht normalerweise an einer von zwei Stellen:

313 

314* **Authentifizierungsfehler**: normalerweise eine OIDC-Fehlkonfiguration. Überprüfen Sie, dass der Workflow die Berechtigung `id-token: write` enthält, dass die Repository-Bedingung der Vertrauenskonfiguration genau mit Ihrem Repository übereinstimmt, und dass die Geheimnisnamen in Ihrem Workflow mit den hinzugefügten übereinstimmen

315* **Trigger- und CI-Probleme**: diese verhalten sich gleich wie bei der Claude Code GitHub Action, die die Claude API aufruft. Siehe den [Fehlerbehebungsabschnitt](/docs/de/github-actions#troubleshooting) der Hauptseite und die [FAQ](https://github.com/anthropics/claude-code-action/blob/main/docs/faq.md) der Claude Code GitHub Action

316 

317<h2 id="what’s-next">

318 Nächste Schritte

319</h2>

320 

321* [Claude Code GitHub Actions](/docs/de/github-actions) für Beispiele, Parameter und Best Practices

322* [Claude Code auf Amazon Bedrock](/docs/de/amazon-bedrock) für Bedrock-Modell-IDs und Regionen

323* [Claude Code auf Google Cloud's Agent Platform](/docs/de/google-vertex-ai) für Agent Platform-Modell-IDs und Regionen

324* [Claude Code auf Microsoft Foundry](/docs/de/microsoft-foundry) für Foundry-Modell- und Endpunktkonfiguration

glossary.md +4 −4

Details

180 Effort Level180 Effort Level

181</h3>181</h3>

182 182 

183Eine Einstellung, die steuert, wie viel des adaptiven Reasoning-Thinking-Budgets Claude bei jedem Turn verwendet. Höherer Aufwand bedeutet mehr Thinking-Tokens und tiefere Überlegungen; niedrigerer Aufwand ist schneller und billiger. Effort wird auf Fable 5.1 und Fable 5, auf Opus 4.6 und später sowie auf Sonnet 4.6 und später unterstützt.183Eine Einstellung, die adaptives Reasoning steuert, wodurch das Modell bei jedem Schritt entscheiden kann, ob und wie viel es denken soll. Höherer Aufwand bedeutet mehr Thinking-Tokens und tieferes Reasoning; niedrigerer Aufwand ist schneller und günstiger. Effort wird auf Fable-Modellen, auf Opus 4.6 und später sowie auf Sonnet 4.6 und später unterstützt.

184 184 

185Weitere Informationen: [Passen Sie das Effort Level an](/docs/de/model-config#adjust-effort-level)185Weitere Informationen: [Effort Level anpassen](/docs/de/model-config#adjust-effort-level)

186 186 

187<h3 id="extended-thinking">187<h3 id="extended-thinking">

188 Extended Thinking188 Extended Thinking


190 190 

191Sichtbares schrittweises Reasoning, das das Modell vor der Antwort durchführt. Sie können es mit dem [Effort Level](#effort-level) anpassen oder Thinking-Tokens mit `MAX_THINKING_TOKENS` auf Modellen mit einem festen Thinking-Budget begrenzen. Thinking erscheint in grauem kursivem Text im Terminal.191Sichtbares schrittweises Reasoning, das das Modell vor der Antwort durchführt. Sie können es mit dem [Effort Level](#effort-level) anpassen oder Thinking-Tokens mit `MAX_THINKING_TOKENS` auf Modellen mit einem festen Thinking-Budget begrenzen. Thinking erscheint in grauem kursivem Text im Terminal.

192 192 

193Weitere Informationen: [Verwenden Sie Extended Thinking](/docs/de/model-config#extended-thinking)193Weitere Informationen: [Extended Thinking verwenden](/docs/de/model-config#extended-thinking)

194 194 

195<h2 id="h">195<h2 id="h">

196 H196 H


266 Output Style266 Output Style

267</h3>267</h3>

268 268 

269Eine Konfiguration, die Claudes System-Prompt ändert, um Antwortverhalten, Ton oder Format zu ändern. Im Gegensatz zu [CLAUDE.md](#claude-md), das Claude Code als Benutzernachricht nach dem System-Prompt bereitgestellt wird, ändert ein Output Style den System-Prompt selbst.269Eine Konfiguration, die die Anweisungen ändert, die Claude Code Claude gibt, um Antwortverhalten, Ton oder Format festzulegen. Im Gegensatz zu [CLAUDE.md](#claude-md), das Projektkontext neben Claudes Standard-Anweisungen hinzufügt, kann ein benutzerdefinierter Output Style die Standard-Softwareentwicklungs-Anweisungen ersetzen.

270 270 

271Weitere Informationen: [Output Styles](/docs/de/output-styles)271Weitere Informationen: [Output Styles](/docs/de/output-styles)

272 272 

goal.md +1 −1

Details

113 Mit aktivem Ziel fortfahren113 Mit aktivem Ziel fortfahren

114</h3>114</h3>

115 115 

116Wenn Sie eine Sitzung fortsetzen, stellt Claude Code ein Ziel wieder her, das noch aktiv war, als die Sitzung endete. Claude Code stellt es auf jeder Fortsetzungsroute wieder her: `--continue`, `--resume` mit einer Sitzungs-ID oder einem Namen, und der [Sitzungsauswahl](/docs/de/sessions#use-the-session-picker). Vor v2.1.239 stellte Claude Code das Ziel auf jeder Route außer der `claude --resume` Auswahl wieder her.116Wenn Sie eine Sitzung fortsetzen, stellt Claude Code ein Ziel wieder her, das noch aktiv war, als die Sitzung endete. Claude Code stellt es auf jeder Fortsetzungsroute wieder her: `--continue`, `--resume` mit einer Sitzungs-ID, einem Namen oder einem [Transkript-Dateipfad](/docs/de/sessions#resume-a-session), und der [Sitzungsauswahl](/docs/de/sessions#use-the-session-picker). Vor v2.1.239 stellte Claude Code das Ziel auf jeder Route außer der `claude --resume` Auswahl wieder her.

117 117 

118Claude Code übernimmt die Bedingung, setzt aber die Turnanzahl, den Timer und die Token-Ausgabe-Baseline zurück. Es stellt ein Ziel nicht wieder her, das bereits erreicht oder gelöscht wurde.118Claude Code übernimmt die Bedingung, setzt aber die Turnanzahl, den Timer und die Token-Ausgabe-Baseline zurück. Es stellt ein Ziel nicht wieder her, das bereits erreicht oder gelöscht wurde.

119 119 

Details

166Claude Code unterstützt [X.509-zertifikatbasierte Workload Identity Federation](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates) über die gleiche Application Default Credentials-Kette. Legen Sie `GOOGLE_APPLICATION_CREDENTIALS` auf den Pfad Ihrer Anmeldedaten-Konfigurationsdatei fest.166Claude Code unterstützt [X.509-zertifikatbasierte Workload Identity Federation](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates) über die gleiche Application Default Credentials-Kette. Legen Sie `GOOGLE_APPLICATION_CREDENTIALS` auf den Pfad Ihrer Anmeldedaten-Konfigurationsdatei fest.

167 167 

168<Note>168<Note>

169 Claude Code verwendet `ANTHROPIC_VERTEX_PROJECT_ID` als die Projekt-ID für Google Cloud's Agent Platform-Anfragen. Die Umgebungsvariablen `GCLOUD_PROJECT` und `GOOGLE_CLOUD_PROJECT` sowie die Anmeldedatei, auf die `GOOGLE_APPLICATION_CREDENTIALS` verweist, haben Vorrang vor ihr. Wenn keine dieser Optionen gesetzt sind, wird die Projekt-ID aus Ihrer `gcloud`-Konfiguration oder dem angehängten Service-Konto aufgelöst.169 Claude Code adressiert Google Cloud's Agent Platform-Anfragen an das Projekt in `ANTHROPIC_VERTEX_PROJECT_ID`, auch wenn `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` oder die Anmeldedatei, auf die `GOOGLE_APPLICATION_CREDENTIALS` verweist, ein anderes Projekt trägt.

170</Note>170</Note>

171 171 

172<h4 id="advanced-credential-configuration">172<h4 id="advanced-credential-configuration">


184}184}

185```185```

186 186 

187Vor dem Ausführen des Befehls fordert Claude Code ein Zugriffstoken mit Ihren aktuellen Anmeldedaten an, um zu bestätigen, dass sie tatsächlich abgelaufen sind, und überspringt den Befehl, wenn sie noch funktionieren.

188 

189Wenn die Überprüfung nicht innerhalb von fünf Sekunden abgeschlossen wird, überspringt Claude Code auch den Befehl und führt ihn nur aus, nachdem eine Anfrage mit einem Anmeldedatenfehler fehlschlägt. Vor v2.1.261 zählte eine Überprüfung, die abgelaufen war, als abgelaufene Anmeldedaten, sodass der Befehl Ihren Browser beim Start öffnen konnte, obwohl Ihre Anmeldedaten noch gültig waren.

190 

187Claude Code zeigt Ihnen die Ausgabe des Befehls an, kann aber keine interaktive Eingabe an den Befehl senden. Dies funktioniert gut für browserbasierte Authentifizierungsabläufe, bei denen die CLI eine URL anzeigt und Sie die Authentifizierung im Browser abschließen. Der Aktualisierungsbefehl läuft nach drei Minuten ab, wenn die Authentifizierung nicht abgeschlossen ist. Wenn Sie `gcpAuthRefresh` in Projekteinstellungen wie `.claude/settings.json` festlegen, führt Claude Code ihn unter der gleichen [Workspace-Vertrauensregel wie Hooks in Einstellungsdateien](/docs/de/permissions#what-runs-before-you-trust-a-folder) aus, die `-p`-Sitzungen in Ordnern einschließt, denen Sie noch nie vertraut haben.191Claude Code zeigt Ihnen die Ausgabe des Befehls an, kann aber keine interaktive Eingabe an den Befehl senden. Dies funktioniert gut für browserbasierte Authentifizierungsabläufe, bei denen die CLI eine URL anzeigt und Sie die Authentifizierung im Browser abschließen. Der Aktualisierungsbefehl läuft nach drei Minuten ab, wenn die Authentifizierung nicht abgeschlossen ist. Wenn Sie `gcpAuthRefresh` in Projekteinstellungen wie `.claude/settings.json` festlegen, führt Claude Code ihn unter der gleichen [Workspace-Vertrauensregel wie Hooks in Einstellungsdateien](/docs/de/permissions#what-runs-before-you-trust-a-folder) aus, die `-p`-Sitzungen in Ordnern einschließt, denen Sie noch nie vertraut haben.

188 192 

189<h3 id="4-configure-claude-code">193<h3 id="4-configure-claude-code">

headless.md +13 −6

Details

207 207 

208Nachrichten von [Subagenten](/docs/de/sub-agents) erscheinen im Stream als `assistant`- und `user`-Nachrichten, deren `parent_tool_use_id`-Feld die ID des Tool-Aufrufs ist, der die Subagent spawnte. Nachrichten aus der Hauptkonversation tragen `null` in diesem Feld.208Nachrichten von [Subagenten](/docs/de/sub-agents) erscheinen im Stream als `assistant`- und `user`-Nachrichten, deren `parent_tool_use_id`-Feld die ID des Tool-Aufrufs ist, der die Subagent spawnte. Nachrichten aus der Hauptkonversation tragen `null` in diesem Feld.

209 209 

210Standardmäßig gibt Claude Code nur Subagenten-`tool_use`- und `tool_result`-Blöcke aus. Übergeben Sie [`--forward-subagent-text`](/docs/de/cli-reference#cli-flags) oder setzen Sie [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/de/env-vars), um auch Subagenten-Text- und Thinking-Blöcke auszugeben, damit Sie das Transkript jeder Subagent rekonstruieren können. Dies erfordert Claude Code v2.1.211 oder später.210Die erste Nachricht von einer Subagent, die im [Vordergrund](/docs/de/sub-agents#run-subagents-in-foreground-or-background) läuft, ist eine `user`-Nachricht, die die Eingabeaufforderung trägt, die sie antreibt. Nach dieser ersten Nachricht gibt Claude Code aus:

211 

212* **Standardmäßig**: die Subagenten-`tool_use`- und `tool_result`-Blöcke.

213* **Mit [`--forward-subagent-text`](/docs/de/cli-reference#cli-flags) oder [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/de/env-vars)**: auch die Subagenten-Text- und Thinking-Blöcke, damit Sie das Transkript jeder Subagent rekonstruieren können. Dies erfordert Claude Code v2.1.211 oder später.

211 214 

212Wenn Sie eine der beiden Optionen aktivieren, leitet Claude Code Nachrichten von [Subagenten auf jeder Verschachtelungstiefe](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) weiter: Wenn eine Subagent ihre eigene Subagent spawnt, tragen die Nachrichten der verschachtelten Subagent die ID des Agent-Tool-Aufrufs, der sie spawnte, in `parent_tool_use_id`, sodass Sie den vollständigen Verschachtelungsbaum durch Verfolgung dieser IDs rekonstruieren können. Vor v2.1.219 erschienen Nachrichten von verschachtelten Subagenten nicht im Stream.215Wenn Sie eine der beiden Optionen aktivieren, leitet Claude Code Nachrichten von [Subagenten auf jeder Verschachtelungstiefe](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) weiter: Wenn eine Subagent ihre eigene Subagent spawnt, tragen die Nachrichten der verschachtelten Subagent die ID des Agent-Tool-Aufrufs, der sie spawnte, in `parent_tool_use_id`, sodass Sie den vollständigen Verschachtelungsbaum durch Verfolgung dieser IDs rekonstruieren können. Vor v2.1.219 erschienen Nachrichten von verschachtelten Subagenten nicht im Stream.

213 216 

217Skills, die [in einer Subagent laufen](/docs/de/skills#run-skills-in-a-subagent), erscheinen im Stream auf die gleiche Weise: die erste Nachricht des gegabelten Skills ist eine `user`-Nachricht, die den Skill-Inhalt trägt, der den Lauf antreibt. Wenn Sie eine der beiden Optionen aktivieren, enthält der Stream auch die Text- und Thinking-Blöcke des gegabelten Skills. Vor v2.1.265 erschienen nur die `tool_use`- und `tool_result`-Blöcke eines gegabelten Skills im Stream.

218 

214<h4 id="handle-api-retries">219<h4 id="handle-api-retries">

215 API-Wiederholungen verarbeiten220 API-Wiederholungen verarbeiten

216</h4>221</h4>


222| `type` | `"system"` | Nachrichtentyp |227| `type` | `"system"` | Nachrichtentyp |

223| `subtype` | `"api_retry"` | identifiziert dies als Wiederholungsereignis |228| `subtype` | `"api_retry"` | identifiziert dies als Wiederholungsereignis |

224| `attempt` | Ganzzahl | aktuelle Versuchsnummer, beginnend bei 1 |229| `attempt` | Ganzzahl | aktuelle Versuchsnummer, beginnend bei 1 |

225| `max_retries` | Ganzzahl | insgesamt zulässige Wiederholungen |230| `max_retries` | Ganzzahl | insgesamt zulässige Wiederholungen für diese Fehlerursache, die weniger als das sitzungsweite Budget sein kann |

226| `retry_delay_ms` | Ganzzahl | Millisekunden bis zum nächsten Versuch |231| `retry_delay_ms` | Ganzzahl | Millisekunden bis zum nächsten Versuch |

227| `error_status` | Ganzzahl oder null | HTTP-Statuscode oder `null` für Verbindungsfehler ohne HTTP-Antwort |232| `error_status` | Ganzzahl oder null | HTTP-Statuscode des fehlgeschlagenen Versuchs oder `null`, wenn der Versuch keine HTTP-Antwort von der API erhielt |

228| `no_response` | Objekt, optional | vorhanden nur, wenn der fehlgeschlagene Versuch [keine Antwortheader rechtzeitig](/docs/de/errors#no-response-from-api) erhielt. `waited_ms` ist, wie lange dieser Versuch wartete, und `retry_wait_ms` ist, wie lange die Wiederholung wartet. In diesen Ereignissen spiegelt `max_retries` die eine Wiederholung wider, die diese Ursache normalerweise erhält, nicht das sitzungsweite Budget. Erfordert Claude Code v2.1.261 oder später |233| `no_response` | Objekt, optional | vorhanden nur, wenn der fehlgeschlagene Versuch [keine Antwortheader rechtzeitig](/docs/de/errors#no-response-from-api) erhielt. `waited_ms` ist, wie lange dieser Versuch wartete, und `retry_wait_ms` ist, wie lange die Wiederholung wartet. In diesen Ereignissen spiegelt `max_retries` die eine Wiederholung wider, die diese Ursache normalerweise erhält, nicht das sitzungsweite Budget. Erfordert Claude Code v2.1.261 oder später |

229| `error` | Zeichenkette | Fehlerkategorie: `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens` oder `unknown` |234| `error` | Zeichenkette | Fehlerkategorie: `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` oder `unknown` |

230| `uuid` | Zeichenkette | eindeutige Ereigniskennung |235| `uuid` | Zeichenkette | eindeutige Ereigniskennung |

231| `session_id` | Zeichenkette | Sitzung, zu der das Ereignis gehört |236| `session_id` | Zeichenkette | Sitzung, zu der das Ereignis gehört |

232 237 


293Um einen Baseline für die gesamte Sitzung festzulegen, anstatt einzelne Tools aufzulisten, übergeben Sie einen [Berechtigungsmodus](/docs/de/permission-modes). Für `-p` ist der [integrierte Starterechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in) auf jedem Plan Manual, übergeben Sie also den Berechtigungsmodus, den Sie möchten:298Um einen Baseline für die gesamte Sitzung festzulegen, anstatt einzelne Tools aufzulisten, übergeben Sie einen [Berechtigungsmodus](/docs/de/permission-modes). Für `-p` ist der [integrierte Starterechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in) auf jedem Plan Manual, übergeben Sie also den Berechtigungsmodus, den Sie möchten:

294 299 

295* **`auto`**: Übergeben Sie `--permission-mode auto`, um einen Klassifizierer die meisten Aktionen überprüfen zu lassen, anstatt Sie300* **`auto`**: Übergeben Sie `--permission-mode auto`, um einen Klassifizierer die meisten Aktionen überprüfen zu lassen, anstatt Sie

296* **`dontAsk`**: Claude Code verweigert alles, das nicht in Ihren `permissions.allow`-Regeln oder dem [schreibgeschützten Befehlssatz](/docs/de/permissions#read-only-commands) enthalten ist, was für gesperrte CI-Läufe nützlich ist. `AskUserQuestion`, 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, werden verweigert, auch wenn eine Allow-Regel passt301* **`dontAsk`**: Claude Code verweigert jeden Aufruf, der sonst eine Aufforderung auslösen würde, was für gesperrte CI-Läufe nützlich ist. Aktionen, die im Manual-Modus keine Genehmigung benötigen, werden immer noch ausgeführt, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und dem [schreibgeschützten Befehlssatz](/docs/de/permissions#read-only-commands), ebenso wie Aktionen, die Ihre `--allowedTools`-Einträge oder `permissions.allow`-Regeln abdecken. `AskUserQuestion`, 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, werden verweigert, auch wenn eine Allow-Regel passt

297* **`acceptEdits`**: Claude schreibt Dateien ohne Aufforderung, und Claude Code genehmigt automatisch häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp`. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), gelten immer noch. Abgesehen vom schreibgeschützten Befehlssatz benötigen andere Shell-Befehle und Netzwerkanfragen immer noch einen `--allowedTools`-Eintrag oder eine `permissions.allow`-Regel. Siehe [was `acceptEdits` automatisch genehmigt](/docs/de/permission-modes#auto-approve-file-edits-with-acceptedits-mode) für die vollständige Liste302* **`acceptEdits`**: Claude schreibt Dateien ohne Aufforderung, und Claude Code genehmigt automatisch häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp`. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), gelten immer noch. Abgesehen vom schreibgeschützten Befehlssatz benötigen andere Shell-Befehle und Netzwerkanfragen immer noch einen `--allowedTools`-Eintrag oder eine `permissions.allow`-Regel. Siehe [was `acceptEdits` automatisch genehmigt](/docs/de/permission-modes#auto-approve-file-edits-with-acceptedits-mode) für die vollständige Liste

298 303 

299Dieses Beispiel wendet Lint-Fixes mit `acceptEdits` als Baseline an:304Dieses Beispiel wendet Lint-Fixes mit `acceptEdits` als Baseline an:


361 Gespräche fortsetzen366 Gespräche fortsetzen

362</h3>367</h3>

363 368 

364Verwenden Sie `--continue`, um das neueste Gespräch fortzusetzen, oder `--resume` mit einer Sitzungs-ID, um ein bestimmtes Gespräch fortzusetzen. `--continue` überspringt [Hintergrund-Sitzungen](/docs/de/sessions#resume-a-session). Dieses Beispiel führt eine Überprüfung durch und sendet dann Folgeeingabeaufforderungen:369Verwenden Sie `--continue`, um das neueste Gespräch fortzusetzen, oder `--resume` mit einer Sitzungs-ID, um ein bestimmtes Gespräch fortzusetzen. Bei Claude Code v2.1.257 oder später, wenn Sie `--continue` übergeben, öffnet Claude Code eine [Hintergrund-Sitzung](/docs/de/sessions#resume-a-session), die beendet ist, aber nicht eine, die noch läuft. Dieses Beispiel führt eine Überprüfung durch und sendet dann Folgeeingabeaufforderungen:

365 370 

366```bash theme={null}371```bash theme={null}

367# First request372# First request


381 386 

382Sie können die beiden Befehle aus verschiedenen Verzeichnissen ausführen: Claude Code [findet die Sitzung anhand ihrer ID](/docs/de/sessions#resume-a-session) in jedem Projekt auf diesem Computer. Vor v2.1.223 suchte Claude Code die ID nur im aktuellen Projektverzeichnis und seinen Git-Worktrees, sodass Sie beide Befehle aus demselben Verzeichnis ausführen mussten.387Sie können die beiden Befehle aus verschiedenen Verzeichnissen ausführen: Claude Code [findet die Sitzung anhand ihrer ID](/docs/de/sessions#resume-a-session) in jedem Projekt auf diesem Computer. Vor v2.1.223 suchte Claude Code die ID nur im aktuellen Projektverzeichnis und seinen Git-Worktrees, sodass Sie beide Befehle aus demselben Verzeichnis ausführen mussten.

383 388 

389Anstelle der Sitzungs-ID können Sie `--resume` den absoluten Pfad zu einer Sitzungs-[Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) im `.jsonl`-Format übergeben, und Claude Code setzt das in dieser Datei gespeicherte Gespräch fort.

390 

384<h2 id="next-steps">391<h2 id="next-steps">

385 Nächste Schritte392 Nächste Schritte

386</h2>393</h2>

hooks-guide.md +81 −76

Details

499 499 

500Claude Code löst Hook-Events an bestimmten Lebenszykluspunkten aus. Wenn ein Event ausgelöst wird, führt Claude Code alle übereinstimmenden Hooks parallel aus; siehe [Hook-Handler-Felder](/docs/de/hooks#hook-handler-fields) für die Behandlung doppelter Handler. Die folgende Tabelle zeigt jedes Event und wann es ausgelöst wird:500Claude Code löst Hook-Events an bestimmten Lebenszykluspunkten aus. Wenn ein Event ausgelöst wird, führt Claude Code alle übereinstimmenden Hooks parallel aus; siehe [Hook-Handler-Felder](/docs/de/hooks#hook-handler-fields) für die Behandlung doppelter Handler. Die folgende Tabelle zeigt jedes Event und wann es ausgelöst wird:

501 501 

502| Event | When it fires |502| Ereignis | Wann es ausgelöst wird |

503| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |503| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

504| `SessionStart` | When a session begins or resumes |504| `SessionStart` | Wenn eine Sitzung beginnt oder fortgesetzt wird |

505| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |505| `Setup` | Wenn Sie Claude Code mit `--init-only` starten oder mit `--init` oder `--maintenance` im `-p`-Modus. Für einmalige Vorbereitung in CI oder Skripten |

506| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |506| `UserPromptSubmit` | Wenn Sie eine Eingabeaufforderung absenden, bevor Claude sie verarbeitet |

507| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |507| `UserPromptExpansion` | Wenn ein von Ihnen eingegebener Befehl in eine Eingabeaufforderung erweitert wird, bevor sie Claude erreicht. Kann die Erweiterung blockieren |

508| `PreToolUse` | Before a tool call executes. Can block it |508| `PreToolUse` | Bevor ein Werkzeugaufruf ausgeführt wird. Kann ihn blockieren |

509| `PermissionRequest` | When a tool call needs a permission decision |509| `PermissionRequest` | Wenn ein Werkzeugaufruf eine Genehmigungsentscheidung benötigt |

510| `PermissionDenied` | When auto mode denies a tool call, including denials without a classifier verdict. Use JSON `hookSpecificOutput.retry: true` to tell the model it may retry the denied tool call. Claude Code ignores `retry` when the classifier produced no verdict |510| `PermissionDenied` | Wenn der automatische Modus einen Werkzeugaufruf ablehnt, einschließlich Ablehnungen ohne Klassifizierer-Urteil. Verwenden Sie JSON `hookSpecificOutput.retry: true`, um dem Modell mitzuteilen, dass es den abgelehnten Werkzeugaufruf möglicherweise erneut versuchen kann. Claude Code ignoriert `retry`, wenn der Klassifizierer kein Urteil gefällt hat |

511| `PostToolUse` | After a tool call succeeds |511| `PostToolUse` | Nach erfolgreichem Werkzeugaufruf |

512| `PostToolUseFailure` | After a tool call fails |512| `PostToolUseFailure` | Nach fehlgeschlagenem Werkzeugaufruf |

513| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |513| `PostToolBatch` | Nach Auflösung eines vollständigen Satzes paralleler Werkzeugaufrufe, bevor der nächste Modellaufruf erfolgt |

514| `Notification` | When Claude Code sends a notification |514| `Notification` | Wenn Claude Code eine Benachrichtigung sendet |

515| `MessageDisplay` | While assistant message text is displayed |515| `MessageDisplay` | Während der Text der Assistentnachricht angezeigt wird |

516| `SubagentStart` | When a subagent is spawned |516| `SubagentStart` | Wenn ein Subagent erzeugt wird |

517| `SubagentStop` | When a subagent finishes |517| `SubagentStop` | Wenn ein Subagent beendet wird |

518| `TaskCreated` | When a task is being created via `TaskCreate` |518| `TaskCreated` | Wenn eine Aufgabe über `TaskCreate` erstellt wird |

519| `TaskCompleted` | When a task is being marked as completed |519| `TaskCompleted` | Wenn eine Aufgabe als abgeschlossen markiert wird |

520| `Stop` | When Claude finishes responding |520| `Stop` | Wenn Claude die Antwort beendet |

521| `StopFailure` | When the turn ends due to an API error |521| `StopFailure` | Wenn die Runde aufgrund eines API-Fehlers endet |

522| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |522| `TeammateIdle` | Wenn ein [Agent-Team](/docs/de/agent-teams)-Teamkollege im Begriff ist, untätig zu werden |

523| `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 |523| `InstructionsLoaded` | Wenn eine CLAUDE.md- oder `.claude/rules/*.md`-Datei in den Kontext geladen wird. Wird beim Sitzungsstart und beim verzögerten Laden von Dateien während einer Sitzung ausgelöst |

524| `ConfigChange` | When a configuration file changes during a session |524| `ConfigChange` | Wenn sich eine Konfigurationsdatei während einer Sitzung ändert |

525| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |525| `CwdChanged` | Wenn sich das Arbeitsverzeichnis ändert, z. B. wenn Claude einen `cd`-Befehl ausführt. Nützlich für reaktive Umgebungsverwaltung mit Tools wie direnv |

526| `DirectoryAdded` | When a working directory is added mid-session via `/add-dir` or the SDK `register_repo_root` control request |526| `DirectoryAdded` | Wenn ein Arbeitsverzeichnis während einer Sitzung über `/add-dir` oder die SDK-Steueranforderung `register_repo_root` hinzugefügt wird |

527| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |527| `FileChanged` | Wenn sich eine überwachte Datei auf der Festplatte ändert. Das Feld `matcher` gibt an, welche Dateinamen überwacht werden sollen |

528| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |528| `WorktreeCreate` | Wenn ein Worktree über `--worktree`, `isolation: "worktree"` oder für eine Hintergrundsitzung erstellt wird. Ersetzt das Standard-Git-Verhalten |

529| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |529| `WorktreeRemove` | Wenn ein Worktree beim Sitzungsende, beim Beenden eines Subagenten oder beim Löschen einer Hintergrundsitzung entfernt wird |

530| `PreCompact` | Before context compaction |530| `PreCompact` | Vor Kontextkomprimierung |

531| `PostCompact` | After context compaction completes |531| `PostCompact` | Nach Abschluss der Kontextkomprimierung |

532| `PreModelSwitch` | Before Claude Code applies a model switch that you or a client requested. Can block the switch |532| `PreModelSwitch` | Bevor Claude Code einen Modellwechsel anwendet, den Sie oder ein Client angefordert haben. Kann den Wechsel blockieren |

533| `PostModelSwitch` | After the session's model changes, including changes Claude Code makes on its own, such as restoring the model when you resume a session |533| `PostModelSwitch` | Nach Änderung des Modells der Sitzung, einschließlich Änderungen, die Claude Code selbst vornimmt, z. B. Wiederherstellung des Modells beim Fortsetzen einer Sitzung |

534| `Elicitation` | When an MCP server requests user input during a tool call |534| `Elicitation` | Wenn ein MCP-Server während eines Werkzeugaufrufs Benutzereingaben anfordert |

535| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |535| `ElicitationResult` | Nachdem ein Benutzer auf eine MCP-Abfrage antwortet, bevor die Antwort an den Server zurückgesendet wird |

536| `SessionEnd` | When a session terminates |536| `SessionEnd` | Wenn eine Sitzung beendet wird |

537 537 

538Jeder 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:538Jeder 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:

539 539 


731| `SubagentStop` | Agent-Typ | gleiche Werte wie `SubagentStart` |731| `SubagentStop` | Agent-Typ | gleiche Werte wie `SubagentStart` |

732| `ConfigChange` | Konfigurationsquelle | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |732| `ConfigChange` | Konfigurationsquelle | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |

733| `DirectoryAdded` | wie das Verzeichnis hinzugefügt wurde | `slash_command`, `register_repo_root` |733| `DirectoryAdded` | wie das Verzeichnis hinzugefügt wurde | `slash_command`, `register_repo_root` |

734| `StopFailure` | Fehlertyp | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `unknown` |734| `StopFailure` | Fehlertyp | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, `unknown` |

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

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

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


995 995 

996Beachten Sie diese Einschränkungen beim Entwerfen von Hooks:996Beachten Sie diese Einschränkungen beim Entwerfen von Hooks:

997 997 

998* Command-Hooks kommunizieren nur über stdout, stderr und Exit-Codes. Sie können `/`-Befehle oder Tool-Aufrufe nicht auslösen. Text, der über `additionalContext` zurückgegeben wird, wird als Systemerinnerung injiziert, die Claude als Klartext liest. HTTP-Hooks kommunizieren stattdessen über den Response-Body.998* Command Hooks kommunizieren nur über stdout, stderr und Exit-Codes. Sie können keine `/`-Befehle oder Tool-Aufrufe auslösen. Text, der über `additionalContext` zurückgegeben wird, wird als Systemhinweis eingefügt, den Claude als Klartext liest. HTTP Hooks kommunizieren stattdessen über den Response-Body.

999* Hook-Timeouts variieren je nach Typ. Überschreiben Sie pro Hook mit dem Feld `timeout` in Sekunden.999* Hook-Timeouts variieren je nach Typ. Überschreiben Sie pro Hook mit dem Feld `timeout` in Sekunden.

1000 * `command`, `http`, `mcp_tool`: 10 Minuten. Claude Code senkt diesen Standard auf 30 Sekunden für `UserPromptSubmit`, `PreModelSwitch` und `PostModelSwitch`-Hooks und auf 10 Sekunden für `MessageDisplay`-Hooks.1000 * `command`, `http`, `mcp_tool`: 10 Minuten. Claude Code senkt diesen Standard auf 30 Sekunden für `UserPromptSubmit`-, `PreModelSwitch`- und `PostModelSwitch`-Hooks und auf 10 Sekunden für `MessageDisplay`-Hooks.

1001 * `prompt`: 30 Sekunden.1001 * `prompt`: 30 Sekunden.

1002 * `agent`: 60 Sekunden.1002 * `agent`: 60 Sekunden.

1003 * [`SessionEnd`](/docs/de/hooks#sessionend)-Hooks aller Typen teilen sich ein Budget von 1,5 Sekunden. Wenn Ihre Einstellungen ein längeres `timeout` pro Hook setzen, erhöht Claude Code das Budget, um es zu erfüllen, bis zu 60 Sekunden.1003 * [`SessionEnd`](/docs/de/hooks#sessionend)-Hooks aller Typen teilen sich ein Budget von 1,5 Sekunden. Wenn Ihre Einstellungen ein längeres `timeout` pro Hook setzen, erhöht Claude Code das Budget entsprechend, bis zu 60 Sekunden.

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

1005* `PermissionRequest`-Hooks werden ausgelöst, wenn Claude Code Sie um Genehmigung bitten wird.1005* `PermissionRequest`-Hooks werden ausgelöst, wenn Claude Code Sie um Genehmigung bitten möchte.

1006 * Im [nicht-interaktiven Modus](/docs/de/headless) mit dem Flag `-p` existiert diese Aufforderung nur, wenn der Callback [`canUseTool`](/docs/de/agent-sdk/permissions) des Agent SDK sie bereitstellt. Bei einfachen `-p`-Läufen oder mit `--permission-prompt-tool` verwenden Sie stattdessen `PreToolUse`-Hooks für automatisierte Berechtigungsentscheidungen.1006 * Im [nicht-interaktiven Modus](/docs/de/headless) mit dem Flag `-p` existiert diese Eingabeaufforderung nur, wenn der [`canUseTool`-Callback](/docs/de/agent-sdk/permissions) des Agent SDK sie bereitstellt. Bei einfachen `-p`-Läufen oder mit `--permission-prompt-tool` verwenden Sie stattdessen `PreToolUse`-Hooks für automatisierte Genehmigungsentscheidungen.

1007 * Hintergrund-Subagenten können im nicht-interaktiven Modus keine Aufforderung anzeigen. Claude Code führt die Hooks für ihre Tool-Aufrufe trotzdem aus, und wenn kein Hook eine Entscheidung zurückgibt, wird der Aufruf verweigert. In einer interaktiven Sitzung werden Aufforderungen von Hintergrund-Subagenten in Ihrer Hauptsitzung angezeigt und die Hooks werden wie gewohnt ausgelöst.1007 * Hintergrund-Subagenten können im nicht-interaktiven Modus keine Eingabeaufforderung anzeigen. Claude Code führt die Hooks für ihre Tool-Aufrufe weiterhin aus, und wenn kein Hook eine Entscheidung zurückgibt, wird der Aufruf abgelehnt. In einer interaktiven Sitzung werden Eingabeaufforderungen von Hintergrund-Subagenten in Ihrer Hauptsitzung angezeigt und die Hooks werden wie gewohnt ausgelöst.

1008* `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.1008* `Stop`-Hooks werden ausgelöst, wenn Claude die Antwort beendet, nicht nur bei Aufgabenvollendung. Sie werden nicht bei Benutzerunterbrechungen ausgelöst. API-Fehler lösen stattdessen [`StopFailure`](/docs/de/hooks#stopfailure) aus.

1009* 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.1009* Wenn mehrere `PreToolUse`-Hooks [`updatedInput`](/docs/de/hooks#pretooluse) zurückgeben, um die Argumente eines Tools umzuschreiben, hat der zuletzt fertiggestellte Effekt. Da Hooks parallel ausgeführt werden, ist die Reihenfolge nicht deterministisch. Vermeiden Sie, dass mehr als ein Hook die Eingabe desselben Tools ändert.

1010 1010 

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

1012 Hooks und Berechtigungsmodi1012 Hooks und Genehmigungsmodi

1013</h3>1013</h3>

1014 1014 

1015`PreToolUse`-Hooks werden vor jeder Berechtigungsmodus-Überprüfung ausgelöst, in jedem [Berechtigungsmodus](/docs/de/permission-modes), einschließlich `dontAsk`. 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.1015`PreToolUse`-Hooks werden vor jeder Genehmigungsmodus-Prüfung in jedem [Genehmigungsmodus](/docs/de/permission-modes) ausgelöst, einschließlich `dontAsk`. Ein Hook, der `permissionDecision: "deny"` zurückgibt, blockiert das Tool auch im `bypassPermissions`-Modus oder mit `--dangerously-skip-permissions`. Dies ermöglicht es Ihnen, eine Richtlinie durchzusetzen, die Benutzer nicht umgehen können, indem sie ihren Genehmigungsmodus ändern.

1016 1016 

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

1018 1018 

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

1020 Hook wird nicht ausgelöst1020 Hook wird nicht ausgelöst


1022 1022 

1023Der Hook ist konfiguriert, wird aber nie ausgeführt.1023Der Hook ist konfiguriert, wird aber nie ausgeführt.

1024 1024 

1025* Führen Sie `/hooks` aus und bestätigen Sie, dass der Hook unter dem richtigen Event angezeigt wird1025* Führen Sie `/hooks` aus und bestätigen Sie, dass der Hook unter dem richtigen Ereignis angezeigt wird

1026* Überprüfen Sie, dass das Matcher-Muster den Tool-Namen genau abgleicht. Matcher sind Groß-/Kleinschreibung-empfindlich1026* Überprüfen Sie, dass das Matcher-Muster den Tool-Namen genau entspricht. Matcher sind Groß-/Kleinschreibung-empfindlich

1027* Überprüfen Sie, dass Sie den richtigen Event-Typ auslösen: `PreToolUse` wird vor der Tool-Ausführung ausgelöst, `PostToolUse` wird danach ausgelöst. Ein `PermissionRequest`-Hook wird ausgelöst, wenn Claude Code Sie um Genehmigung bitten wird; siehe die [Einschränkungen](#limitations) für die nicht-interaktiven Fälle1027* Überprüfen Sie, dass Sie den richtigen Ereignistyp auslösen: `PreToolUse` wird vor der Tool-Ausführung ausgelöst, `PostToolUse` wird danach ausgelöst. Ein `PermissionRequest`-Hook wird ausgelöst, wenn Claude Code Sie um Genehmigung bitten möchte; siehe die [Einschränkungen](#limitations) für die nicht-interaktiven Fälle

1028 1028 

1029<h3 id="hook-error-in-output">1029<h3 id="hook-error-in-output">

1030 Hook-Fehler in der Ausgabe1030 Hook-Fehler in der Ausgabe

1031</h3>1031</h3>

1032 1032 

1033Sie sehen eine Meldung wie "PreToolUse hook error: ..." im Transkript.1033Sie sehen eine Nachricht wie „PreToolUse hook error: ..." im Transkript.

1034 1034 

1035* Ihr Skript wurde unerwartet mit einem Nicht-Null-Code beendet. Testen Sie es manuell, indem Sie Beispiel-JSON pipen:1035* Ihr Skript wurde unerwartet mit einem Code ungleich Null beendet. Testen Sie es manuell, indem Sie Beispiel-JSON pipen:

1036 ```bash theme={null}1036 ```bash theme={null}

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

1038 echo $? # Überprüfen Sie den Exit-Code1038 echo $? # Check the exit code

1039 ```1039 ```

1040* 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 spawnt1040* Wenn Sie „command not found" sehen, verwenden Sie absolute Pfade oder `${CLAUDE_PROJECT_DIR}`, um auf Skripte zu verweisen. Um Shell-Quoting ganz 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 Shell spawnt

1041* Wenn Sie "jq: command not found" sehen, installieren Sie `jq` oder verwenden Sie Python/Node.js zum Parsen von JSON1041* Wenn Sie „jq: command not found" sehen, installieren Sie `jq` oder verwenden Sie Python/Node.js für JSON-Parsing

1042* Wenn die Meldung eine JSON-Validierungsmeldung anzeigt, wurde die stdout Ihres Hooks als JSON geparst, aber die Schema-Validierung ist fehlgeschlagen. Wenn sie eine JSON-Parse-Meldung anzeigt, sah die stdout wie ein JSON-Objekt aus, war aber kein gültiges JSON. Beides passiert auch bei Exit 0.1042* Wenn die Benachrichtigung eine JSON-Validierungsmeldung anzeigt, wurde die stdout Ihres Hooks als JSON geparst, aber die Schema-Validierung ist fehlgeschlagen. Wenn sie eine JSON-Parse-Meldung anzeigt, sah die stdout wie ein JSON-Objekt aus, war aber kein gültiges JSON. Beides passiert auch bei Exit 0.

1043 1043 

1044 Um einen Parse-Fehler zu beheben, erstellen Sie die Payload mit einem JSON-Encoder wie `jq` statt String-Verkettung, damit Anführungszeichen und Backslashes in Werten escaped werden. Der Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) der Referenz behandelt die Exit-Code- und JSON-Kombinationen1044 Um einen Parse-Fehler zu beheben, erstellen Sie die Payload mit einem JSON-Encoder wie `jq` statt String-Verkettung, damit Anführungszeichen und Backslashes in Werten escaped werden. Der Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) der Referenz behandelt die Exit-Code- und JSON-Kombinationen

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


1050 1050 

1051Sie haben eine Einstellungsdatei bearbeitet, aber die Hooks werden nicht im Menü angezeigt.1051Sie haben eine Einstellungsdatei bearbeitet, aber die Hooks werden nicht im Menü angezeigt.

1052 1052 

1053* Datei-Bearbeitungen werden normalerweise automatisch aufgegriffen. Wenn sie nach ein paar Sekunden nicht angezeigt wurden, hat der Datei-Watcher die Änderung möglicherweise verpasst: Starten Sie Ihre Sitzung neu, um ein Neuladen zu erzwingen.1053* Dateibearbeitungen werden normalerweise automatisch aufgegriffen. Wenn sie nach einigen Sekunden nicht angezeigt werden, hat der Datei-Watcher die Änderung möglicherweise übersehen: Starten Sie Ihre Sitzung neu, um ein Neuladen zu erzwingen.

1054* Überprüfen Sie, dass Ihr JSON gültig ist: Nachfolgende Kommas und Kommentare sind nicht zulässig1054* Überprüfen Sie, dass Ihr JSON gültig ist: Nachfolgende Kommas und Kommentare sind nicht zulässig

1055* Bestätigen Sie, dass die Einstellungsdatei am richtigen Speicherort ist: `.claude/settings.json` für Projekt-Hooks, `~/.claude/settings.json` für globale Hooks1055* Bestätigen Sie, dass sich die Einstellungsdatei am richtigen Ort befindet: `.claude/settings.json` für Projekt-Hooks, `~/.claude/settings.json` für globale Hooks

1056 1056 

1057<h3 id="stop-hook-hits-the-block-cap">1057<h3 id="stop-hook-hits-the-block-cap">

1058 Stop-Hook trifft die Blockierungsgrenze1058 Stop Hook trifft die Block-Obergrenze

1059</h3>1059</h3>

1060 1060 

1061Claude arbeitet weiter, anstatt zu stoppen, und beendet dann den Zug mit einer Warnung, dass der Stop-Hook zu viele Male hintereinander blockiert hat.1061Claude arbeitet weiter, anstatt zu stoppen, und beendet dann den Turn mit einer Warnung, dass der Stop Hook zu viele Male hintereinander blockiert hat.

1062 1062 

1063Claude Code setzt einen Stop-Hook außer Kraft, nachdem er acht Mal hintereinander blockiert hat, ohne Fortschritt zu erzielen. Ihr Hook-Skript muss überprüfen, ob es bereits eine Fortsetzung ausgelöst hat. Parsen Sie das Feld `stop_hook_active` aus der JSON-Eingabe und beenden Sie früh, wenn es `true` ist:1063Claude Code überschreibt einen Stop Hook, nachdem er achtmal hintereinander blockiert hat, ohne Fortschritt. Ihr Hook-Skript muss überprüfen, ob es bereits eine Fortsetzung ausgelöst hat. Parsen Sie das Feld `stop_hook_active` aus der JSON-Eingabe und beenden Sie es früh, wenn es `true` ist:

1064 1064 

1065```bash theme={null}1065```bash theme={null}

1066#!/bin/bash1066#!/bin/bash

1067INPUT=$(cat)1067INPUT=$(cat)

1068if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then1068if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then

1069 exit 0 # Erlauben Sie Claude zu stoppen1069 exit 0 # Allow Claude to stop

1070fi1070fi

1071# ... Rest Ihrer Hook-Logik1071# ... rest of your hook logic

1072```1072```

1073 1073 

1074Wenn 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).1074Wenn Ihr Hook legitim mehr als acht Iterationen benötigt, um zu konvergieren, erhöhen Sie die Obergrenze mit [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/de/env-vars).

1075 1075 

1076<h3 id="hook-json-has-no-effect">1076<h3 id="hook-json-has-no-effect">

1077 Hook-JSON hat keine Auswirkung1077 Hook JSON hat keine Auswirkung

1078</h3>1078</h3>

1079 1079 

1080Ihr Hook gibt gültiges JSON aus, aber die Entscheidung hat keine Auswirkung und es wird kein Fehler im Transkript angezeigt.1080Ihr Hook gibt gültiges JSON aus, aber die Entscheidung hat keine Auswirkung und es wird kein Fehler im Transkript angezeigt. Überprüfen Sie, welche Ursache zutrifft:

1081 1081 

1082Wenn Claude Code einen Shell-Form-Command-Hook ausführt, einen ohne `args`, spawnt es `sh -c` auf macOS und Linux, Git Bash auf Windows oder PowerShell, wenn Git Bash standardmäßig nicht installiert ist. Diese Shell ist nicht-interaktiv, aber Git Bash und einige Konfigurationen, wie `BASH_ENV`, das auf `~/.bashrc` zeigt, sourcen trotzdem Ihr Profil. Wenn dieses Profil bedingungslose `echo`-Anweisungen enthält, wird die Ausgabe Ihrem Hook-JSON vorangestellt:1082* **Zusätzliche Ausgabe vor dem JSON**: Etwas anderes schreibt zuerst zu stdout, normalerweise ein bedingungsloses `echo` in Ihrem Shell-Profil, sodass die Ausgabe nicht mehr mit `{` beginnt und Claude Code sie nicht als JSON parst. Die Ursache und Lösung folgen dieser Liste.

1083* **Ein Feld auf der falschen Ebene**: Vergleichen Sie die Platzierung jedes Feldes mit dem Format [JSON output](/docs/de/hooks#json-output). Zum Beispiel gehört `permissionDecision` in `hookSpecificOutput`, nicht auf der obersten Ebene.

1084 

1085Wenn Claude Code einen Shell-Form-Command Hook ausführt, einen ohne `args`, spawnt es `sh -c` auf macOS und Linux, Git Bash auf Windows oder PowerShell, wenn Git Bash nicht standardmäßig installiert ist. Diese Shell ist nicht-interaktiv, aber Git Bash und einige Konfigurationen, wie `BASH_ENV`, das auf `~/.bashrc` zeigt, sourchen immer noch Ihr Profil. Wenn dieses Profil bedingungslose `echo`-Anweisungen enthält, wird die Ausgabe Ihrem Hook-JSON vorangestellt:

1083 1086 

1084```text theme={null}1087```text theme={null}

1085Shell ready on arm641088Shell ready on arm64

1086{"decision": "block", "reason": "Not allowed"}1089{"decision": "block", "reason": "Not allowed"}

1087```1090```

1088 1091 

1089Die kombinierte Ausgabe beginnt nicht mehr mit `{`, daher behandelt Claude Code alle stdout als Klartext und ignoriert das JSON. Bei Exit 0 wird nichts im Transkript gemeldet; der Parse-Versuch wird nur im [Debug-Protokoll](/docs/de/hooks#debug-hooks) aufgezeichnet. Um dies zu beheben, wrappen Sie Echo-Anweisungen in Ihrem Shell-Profil, sodass sie nur in interaktiven Shells ausgeführt werden:1092Die kombinierte Ausgabe beginnt nicht mehr mit `{`, daher behandelt Claude Code alle stdout als Klartext und ignoriert das JSON. Bei Exit 0 wird nichts im Transkript gemeldet; der Parse-Versuch wird nur im [Debug-Protokoll](/docs/de/hooks#debug-hooks) aufgezeichnet. Um dies zu beheben, wickeln Sie Echo-Anweisungen in Ihrem Shell-Profil ein, damit sie nur in interaktiven Shells ausgeführt werden:

1090 1093 

1091```bash theme={null}1094```bash theme={null}

1092# In ~/.zshrc oder ~/.bashrc1095# In ~/.zshrc or ~/.bashrc

1093if [[ $- == *i* ]]; then1096if [[ $- == *i* ]]; then

1094 echo "Shell ready"1097 echo "Shell ready"

1095fi1098fi

1096```1099```

1097 1100 

1098Die Variable `$-` enthält Shell-Flags, und `i` bedeutet interaktiv. Hooks werden in nicht-interaktiven Shells ausgeführt, sodass das Echo übersprungen wird.1101Die Variable `$-` enthält Shell-Flags, und `i` bedeutet interaktiv. Hooks werden in nicht-interaktiven Shells ausgeführt, daher wird das Echo übersprungen.

1102 

1103Wenn Ihr Hook `permissionDecision` oder `additionalContext` auf der obersten Ebene statt in `hookSpecificOutput` zurückgibt, wird das JSON immer noch geparst, und Claude Code ignoriert die falsch platzierten Felder ohne Fehler zu melden. Um zu sehen, welche Felder ignoriert wurden, starten Sie Claude Code mit `claude --debug` und suchen Sie im [Debug-Protokoll](/docs/de/hooks#debug-hooks) nach `Hook JSON output had unrecognized keys`.

1099 1104 

1100<h3 id="debug-techniques">1105<h3 id="debug-techniques">

1101 Debug-Techniken1106 Debug-Techniken


1103 1108 

1104Drücken Sie `Ctrl+O`, um die Transkript-Ansicht zu öffnen und das Ergebnis einer Hook-Ausführung zu überprüfen:1109Drücken Sie `Ctrl+O`, um die Transkript-Ansicht zu öffnen und das Ergebnis einer Hook-Ausführung zu überprüfen:

1105 1110 

1106* **Erfolgreiche Ausführung**: Sie sehen nichts, es sei denn, das Hook-JSON zeigt etwas an, wie `systemMessage` oder Stop-Hook-Feedback.1111* **Erfolgreiche Ausführung**: Sie sehen nichts, es sei denn, der Hook-JSON zeigt etwas an, wie `systemMessage` oder Stop Hook-Feedback.

1107 * Um zu bestätigen, dass ein Hook ausgeführt wurde, überprüfen Sie auf seine Auswirkung, wie eine reformatierte Datei, oder aktivieren Sie Debug-Logging wie unten beschrieben und lösen Sie den Hook erneut aus1112 * Um zu bestätigen, dass ein Hook ausgeführt wurde, überprüfen Sie auf seine Auswirkung, wie eine umformatierte Datei, oder aktivieren Sie Debug-Protokollierung wie unten beschrieben und lösen Sie den Hook erneut aus

1108* **Blockierender Fehler**: Bei den meisten Events sehen Sie das Feedback des Hooks. Wenn das Hook-JSON eine blockierende Entscheidung getroffen hat, ist das Feedback der Grund aus dieser Entscheidung; andernfalls ist es der stderr des Hooks. Bei einigen Events, wie `ConfigChange` und `Elicitation`, wird ein Block nicht angezeigt.1113* **Blockierender Fehler**: Bei den meisten Ereignissen sehen Sie das Feedback des Hooks. Wenn das Hook-JSON eine blockierende Entscheidung getroffen hat, ist das Feedback der Grund aus dieser Entscheidung; andernfalls ist es der stderr des Hooks. Bei einigen Ereignissen, wie `ConfigChange` und `Elicitation`, wird ein Block nicht angezeigt.

1109* **Nicht-blockierender Fehler**: Die Aktion wurde fortgesetzt, und Sie sehen eine `<hook name> hook error`-Meldung mit einer kurzen Erklärung, wie die erste Zeile von stderr mit dem Präfix `Failed with non-blocking status code:` oder eine JSON-Validierungs- oder Parse-Meldung.1114* **Nicht-blockierender Fehler**: Die Aktion wurde fortgesetzt, und Sie sehen eine Benachrichtigung `<hook name> hook error` mit einer kurzen Erklärung, wie die erste Zeile von stderr mit dem Präfix `Failed with non-blocking status code:` oder eine JSON-Validierungs- oder Parse-Meldung.

1110 1115 

1111Welche Exit-Code- und JSON-Kombinationen jedes Ergebnis erzeugen, einschließlich der Pro-Event-Ausnahmen, ist im Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) der Referenz definiert.1116Welche Exit-Code- und JSON-Kombinationen jedes Ergebnis erzeugen, einschließlich der ereignisspezifischen Ausnahmen, ist im Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) der Referenz definiert.

1112 1117 

1113Für vollständige Ausführungsdetails einschließlich welche Hooks abgeglichen wurden, ihrer Exit-Codes, stdout und stderr, lesen Sie das Debug-Protokoll. Starten Sie Claude Code mit `claude --debug-file /tmp/claude.log`, um in einen bekannten Pfad zu schreiben, dann `tail -f /tmp/claude.log` in einem anderen Terminal. Wenn Sie ohne dieses Flag gestartet haben, führen Sie `/debug` während der Sitzung aus, um Logging zu aktivieren und den Protokollpfad zu finden.1118Für vollständige Ausführungsdetails, einschließlich welche Hooks übereinstimmten, ihre Exit-Codes, stdout und stderr, lesen Sie das Debug-Protokoll. Starten Sie Claude Code mit `claude --debug-file /tmp/claude.log`, um in einen bekannten Pfad zu schreiben, dann `tail -f /tmp/claude.log` in einem anderen Terminal. Wenn Sie ohne dieses Flag gestartet haben, führen Sie `/debug` während der Sitzung aus, um die Protokollierung zu aktivieren und den Protokollpfad zu finden.

1114 1119 

1115<h2 id="learn-more">1120<h2 id="learn-more">

1116 Weitere Informationen1121 Weitere Informationen

Details

141 141 

142Weitere Informationen finden Sie in der [Befehlsreferenz](/docs/de/commands) für die vollständige Liste der in Claude Code enthaltenen Befehle.142Weitere Informationen finden Sie in der [Befehlsreferenz](/docs/de/commands) für die vollständige Liste der in Claude Code enthaltenen Befehle.

143 143 

144<h3 id="complete-a-command-mid-prompt">

145 Befehl mitten in einer Eingabeaufforderung vervollständigen

146</h3>

147 

148Die Befehlsvervollständigung funktioniert auch teilweise durch eine Eingabeaufforderung: Geben Sie `/` nach einem Leerzeichen ein, gefolgt von den ersten Buchstaben eines Namens, wie in `Tests ausführen, dann /com`. Nur Befehle, deren Namen mit diesen Buchstaben beginnen, stimmen überein, daher hält ein Dateipfad wie `/tmp/notes.md` keine Liste offen. Claude Code führt einen Befehl nur aus, wenn der Befehl [Ihre Nachricht startet](/docs/de/commands).

149 

150* **Bei der [Vollbildwiedergabe](/docs/de/fullscreen)**: Die Übereinstimmungen werden als Liste angezeigt, während Sie eingeben, ohne dass eine Zeile hervorgehoben ist, daher sendet `Enter` Ihre Eingabeaufforderung wie eingegeben. Drücken Sie `Tab`, um die beste Übereinstimmung einzufügen, oder wählen Sie eine Zeile mit den Pfeiltasten und `Enter` aus.

151* **Außerhalb des Vollbildmodus**: Der Rest der besten Übereinstimmung wird als Geistertext an Ihrem Cursor angezeigt, mit einer Anzahl wie `+2`, wenn mehr Befehle übereinstimmen. Drücken Sie `Tab`, um die einzige Übereinstimmung einzufügen, oder um die Liste zu öffnen, wenn mehrere übereinstimmen, wählen Sie dann eine Zeile mit den Pfeiltasten und `Enter` aus.

152 

153In beiden Renderern drücken Sie `Tab` auf einem bloßen Mid-Prompt `/`, um jeden Befehl aufzulisten.

154 

155Ein Plugin-Skill stimmt auch mit seinem bloßen Namen überein, daher findet `/deploy` einen Skill namens `myplugin:deploy-app`. Wenn Sie die Übereinstimmung einfügen, schreibt Claude Code den vollständigen `/myplugin:deploy-app`.

156 

144<h2 id="vim-editor-mode">157<h2 id="vim-editor-mode">

145 Vim-Editor-Modus158 Vim-Editor-Modus

146</h2>159</h2>


335* Hintergrund-Tasks werden automatisch bereinigt, wenn Claude Code beendet wird. Unter macOS und Linux werden Prozesse, die sich von der Shell der Task abgetrennt haben, wie solche, die unter `setsid` oder `timeout` gestartet wurden, auch beendet, wenn Sie eine Hintergrund-Task von [`/tasks`](/docs/de/commands) aus stoppen oder Claude Code sie beim Beenden stoppt348* Hintergrund-Tasks werden automatisch bereinigt, wenn Claude Code beendet wird. Unter macOS und Linux werden Prozesse, die sich von der Shell der Task abgetrennt haben, wie solche, die unter `setsid` oder `timeout` gestartet wurden, auch beendet, wenn Sie eine Hintergrund-Task von [`/tasks`](/docs/de/commands) aus stoppen oder Claude Code sie beim Beenden stoppt

336* Wenn Sie die Sitzung in den Hintergrund verschieben, anstatt sie zu beenden, werden Ihre Hintergrund-Tasks in der Hintergrund-Sitzung weiterhin ausgeführt. Siehe [Sitzung in den Hintergrund verschieben](/docs/de/agent-view#from-inside-a-session)349* Wenn Sie die Sitzung in den Hintergrund verschieben, anstatt sie zu beenden, werden Ihre Hintergrund-Tasks in der Hintergrund-Sitzung weiterhin ausgeführt. Siehe [Sitzung in den Hintergrund verschieben](/docs/de/agent-view#from-inside-a-session)

337* Hintergrund-Tasks werden automatisch beendet, wenn die Ausgabe 5 GB überschreitet, mit einer Notiz in stderr, die erklärt, warum350* Hintergrund-Tasks werden automatisch beendet, wenn die Ausgabe 5 GB überschreitet, mit einer Notiz in stderr, die erklärt, warum

338* Unter macOS und Linux beendet Claude Code laufende Hintergrund-Tasks, wenn das Betriebssystem ein Speicherdrucksignal sendet, sofern die Sitzung mindestens 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Setzen Sie [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/de/env-vars) auf `1`, um dies auszuschalten. Erfordert Claude Code v2.1.193 oder später. Hintergrund-Befehle, die sich im Besitz eines [Subagenten](/docs/de/sub-agents) befinden, werden stattdessen nach 60 Minuten beendet, konfigurierbar in Millisekunden mit [`CLAUDE_SUBAGENT_BG_SHELL_MAX_MS`](/docs/de/env-vars). Ein Befehl, der sich im Besitz eines Subagenten befindet und im Vordergrund ausgeführt wird, endet auch, wenn dieser Subagent seine endgültige Antwort gibt; siehe [Hintergrund-Befehle](/docs/de/tools-reference#background-commands) in der Tools-Referenz. Vor v2.1.218 deckten weder die Speicherdruckreap noch das 60-Minuten-Limit Befehle ab, die mit `Ctrl+B` in den Hintergrund verschoben wurden351* Unter macOS und Linux beendet Claude Code laufende Hintergrund-Tasks, wenn das Betriebssystem ein Speicherdrucksignal sendet, sofern die Sitzung mindestens 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Setzen Sie [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/de/env-vars) auf `1`, um dies auszuschalten. Erfordert Claude Code v2.1.193 oder später

352* Hintergrund-Befehle, die sich im Besitz eines [Subagenten](/docs/de/sub-agents) befinden, haben keine Zeitbegrenzung, außer dass ein Befehl, der sich im Besitz eines Subagenten befindet und im Vordergrund ausgeführt wird, endet, wenn dieser Subagent seine endgültige Antwort gibt; siehe [Hintergrund-Befehle](/docs/de/tools-reference#background-commands) in der Tools-Referenz. Vor v2.1.218 deckten weder die Speicherdruckreap noch das 60-Minuten-Limit Befehle ab, die mit `Ctrl+B` in den Hintergrund verschoben wurden

339 353 

340Um alle Hintergrund-Task-Funktionen zu deaktivieren, setzen Sie die Umgebungsvariable `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1`. Siehe [Umgebungsvariablen](/docs/de/env-vars) für Details.354Um alle Hintergrund-Task-Funktionen zu deaktivieren, setzen Sie die Umgebungsvariable `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1`. Siehe [Umgebungsvariablen](/docs/de/env-vars) für Details.

341 355 


370* Beenden Sie mit `Escape`, `Backspace` oder `Ctrl+U` bei einer leeren Eingabeaufforderung384* Beenden Sie mit `Escape`, `Backspace` oder `Ctrl+U` bei einer leeren Eingabeaufforderung

371* Das Einfügen von Text, der mit `!` beginnt, in eine leere Eingabeaufforderung aktiviert automatisch den Shell-Modus und entspricht dem eingegebenen `!`-Verhalten385* Das Einfügen von Text, der mit `!` beginnt, in eine leere Eingabeaufforderung aktiviert automatisch den Shell-Modus und entspricht dem eingegebenen `!`-Verhalten

372 386 

373In einer regulären interaktiven Sitzung werden Befehle, die Sie im Shell-Modus eingeben, außerhalb der [Sandbox](/docs/de/sandboxing) ausgeführt, auch wenn Sie Sandboxing aktiviert haben, da die Sandbox für die Befehle gilt, die Claude ausführt. Siehe [strikter Sandbox-Modus](/docs/de/sandboxing#the-unsandboxed-retry-escape-hatch) für die Sitzungen, in denen Shell-Modus-Befehle auch sandboxed ausgeführt werden, wie Hintergrund-Sitzungen mit striktem Sandbox-Modus aktiviert.387Sofern Ihre Sitzung nicht eine der unter [striktem Sandbox-Modus](/docs/de/sandboxing#the-unsandboxed-retry-escape-hatch) aufgelisteten ist, werden Befehle, die Sie im Shell-Modus eingeben, außerhalb der [Sandbox](/docs/de/sandboxing) ausgeführt, auch wenn Sie Sandboxing aktiviert haben, da die Sandbox für die Befehle gilt, die Claude ausführt.

374 388 

375Claude antwortet automatisch auf die Befehlsausgabe, sobald sie im Transkript ankommt, sodass Sie `! npm test` ausführen und eine Erklärung der Fehler ohne eine zweite Eingabeaufforderung erhalten können. Die Antwort kostet das Gleiche wie das Senden einer normalen Eingabeaufforderung. Um das frühere Verhalten wiederherzustellen, bei dem die Ausgabe zum Kontext hinzugefügt wird, ohne eine Antwort zu geben, setzen Sie [`respondToBashCommands`](/docs/de/settings-reference#respondtobashcommands) auf `false` in `settings.json`. Vor v2.1.186 hat der Shell-Modus die Ausgabe immer zum Kontext hinzugefügt, ohne eine Antwort zu geben.389Claude antwortet automatisch auf die Befehlsausgabe, sobald sie im Transkript ankommt, sodass Sie `! npm test` ausführen und eine Erklärung der Fehler ohne eine zweite Eingabeaufforderung erhalten können. Die Antwort kostet das Gleiche wie das Senden einer normalen Eingabeaufforderung. Um das frühere Verhalten wiederherzustellen, bei dem die Ausgabe zum Kontext hinzugefügt wird, ohne eine Antwort zu geben, setzen Sie [`respondToBashCommands`](/docs/de/settings-reference#respondtobashcommands) auf `false` in `settings.json`. Vor v2.1.186 hat der Shell-Modus die Ausgabe immer zum Kontext hinzugefügt, ohne eine Antwort zu geben.

376 390 


576 590 

577Führen Sie `/diff` aus, um die Änderungen in Ihrem Arbeitsverzeichnis zu überprüfen, ohne Claude Code zu verlassen. Sie sehen die bisherigen Bearbeitungen von Claude zusammen mit allem anderen, das Sie noch nicht committed haben.591Führen Sie `/diff` aus, um die Änderungen in Ihrem Arbeitsverzeichnis zu überprüfen, ohne Claude Code zu verlassen. Sie sehen die bisherigen Bearbeitungen von Claude zusammen mit allem anderen, das Sie noch nicht committed haben.

578 592 

593In den Änderungen, die `/diff` aus Git liest, wird ein Submodul als einzelner Eintrag angezeigt, und nur wenn sich der Commit, auf den es verweist, ändert; Bearbeitungen von Dateien innerhalb des Submoduls werden dort nicht angezeigt.

594 

579In der [Vollbilddarstellung](/docs/de/fullscreen) öffnet `/diff` das [Diff-Panel](#diff-panel) neben dem Gespräch, das offen bleibt und sich aktualisiert, während Sie weiterarbeiten. Im klassischen Renderer öffnet `/diff` den [Diff-Viewer](#diff-viewer) anstelle der Eingabeaufforderung, und Sie schließen ihn, wenn Sie fertig sind.595In der [Vollbilddarstellung](/docs/de/fullscreen) öffnet `/diff` das [Diff-Panel](#diff-panel) neben dem Gespräch, das offen bleibt und sich aktualisiert, während Sie weiterarbeiten. Im klassischen Renderer öffnet `/diff` den [Diff-Viewer](#diff-viewer) anstelle der Eingabeaufforderung, und Sie schließen ihn, wenn Sie fertig sind.

580 596 

581<h3 id="diff-panel">597<h3 id="diff-panel">


640 656 

641Ihre fünf neuesten früheren Nebenfragen werden als gedimmte Liste über der aktuellen Antwort angezeigt, mit einer Anzahl älterer. Sie bleiben außerhalb des Gesprächsverlaufs.657Ihre fünf neuesten früheren Nebenfragen werden als gedimmte Liste über der aktuellen Antwort angezeigt, mit einer Anzahl älterer. Sie bleiben außerhalb des Gesprächsverlaufs.

642 658 

643Um nach dem Schließen zum Overlay zurückzukehren, führen Sie `/btw` ohne Frage aus. Das Overlay öffnet sich erneut bei Ihrem letzten Austausch. Drücken Sie `Left`, um durch frühere Antworten zurückzugehen. Vor v2.1.212 gab `/btw` ohne Frage stattdessen eine Nutzungsmeldung aus.659Um nach dem Schließen zum Overlay zurückzukehren, führen Sie `/btw` ohne Frage aus. Das Overlay öffnet sich erneut bei Ihrem letzten Austausch. Vor v2.1.212 gab `/btw` ohne Frage stattdessen eine Nutzungsmeldung aus.

644 660 

645Sobald die Antwort angezeigt wird, akzeptiert das Overlay diese Tasten.661Sobald die Antwort angezeigt wird, akzeptiert das Overlay diese Tasten.

646 662 

647| Taste | Aktion |663| Taste | Aktion |

648| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |664| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

649| `Space`, `Enter`, `Escape` | Schließen Sie die Antwort und kehren Sie zur Eingabeaufforderung zurück |665| `Space`, `Enter`, `Escape` | Schließen Sie die Antwort und kehren Sie zur Eingabeaufforderung zurück |

650| `Up` / `Down` | Scrollen Sie die Antwort |666| `Up` / `Down` | Scrollen Sie die Antwort |

651| `Left` / `Right` | Wechseln Sie zwischen dieser Antwort und Ihren früheren `/btw`-Antworten. `Left` wechselt zu älteren Antworten und `Right` kehrt zur aktuellen zurück. Erfordert Claude Code v2.1.187 oder später |667| `Shift+Left` / `Shift+Right` | Wechseln Sie zwischen dieser Antwort und Ihren früheren `/btw`-Antworten. `Shift+Left` wechselt zu älteren Antworten und `Shift+Right` kehrt zur aktuellen zurück. `[` und `]` machen dasselbe, für Terminals, die `Shift` nicht mit Pfeiltasten melden. `Tab` / `Shift+Tab` durchlaufen die gleichen Antworten. Erfordert Claude Code v2.1.257 oder später. Zwischen v2.1.187 und v2.1.256 waren die Tasten einfach `Left` / `Right` |

652| `c` | Kopieren Sie die Antwort als rohen Markdown in Ihre Zwischenablage. Verwenden Sie dies statt Mausauswahl, die das hart umgebrochene Terminal-Rendering statt des Quelltexts erfasst |668| `c` | Kopieren Sie die Antwort als rohen Markdown in Ihre Zwischenablage. Verwenden Sie dies statt Mausauswahl, die das hart umgebrochene Terminal-Rendering statt des Quelltexts erfasst |

653| `f` | Starten Sie einen [verzweigten Subagenten](/docs/de/sub-agents#fork-the-current-conversation), der das übergeordnete Gespräch plus diese Frage und Antwort erbt, damit er mit vollständigem Werkzeugzugriff fortfahren kann. Sie bleiben in der aktuellen Sitzung und finden die Verzweigung im [Panel unter Ihrer Eingabeaufforderung](/docs/de/sub-agents#observe-and-steer-running-forks). Nur in lokalen Sitzungen verfügbar |669| `f` | Starten Sie einen [verzweigten Subagenten](/docs/de/sub-agents#fork-the-current-conversation), der das übergeordnete Gespräch plus diese Frage und Antwort erbt, damit er mit vollständigem Werkzeugzugriff fortfahren kann. Sie bleiben in der aktuellen Sitzung und finden die Verzweigung im [Panel unter Ihrer Eingabeaufforderung](/docs/de/sub-agents#observe-and-steer-running-forks). Nur in lokalen Sitzungen verfügbar |

654| `x` | Löschen Sie die Liste der früheren `/btw`-Austausche, die über der aktuellen Antwort angezeigt werden |670| `x` | Löschen Sie die Liste der früheren `/btw`-Austausche, die über der aktuellen Antwort angezeigt werden |

655 671 

672In einer angehängten [Hintergrund-Sitzung](/docs/de/agent-view#attach-to-a-session) trennt `Left` die Verbindung und bringt Sie zur Agent-Ansicht zurück, auch während die Antwort noch ankommt. Die Nebenfrage läuft weiter, während Sie weg sind. Das nächste Mal, wenn Sie sich an die Sitzung anhängen, öffnet sich das Overlay mit der Nebenfrage oder mit ihrer Antwort. Vor v2.1.257 trennte `Left` dort nicht.

673 

656`/btw` sieht Ihr vollständiges Gespräch, hat aber keine Werkzeuge. Ein [Subagent](/docs/de/sub-agents) hat Werkzeuge und startet von der Eingabeaufforderung, die er erhält, oder, für eine [Verzweigung](/docs/de/sub-agents#fork-the-current-conversation), von einer Kopie dieses Gesprächs. Verwenden Sie `/btw`, um zu fragen, was Claude bereits aus dieser Sitzung weiß; verwenden Sie einen Subagenten, um etwas Neues herauszufinden.674`/btw` sieht Ihr vollständiges Gespräch, hat aber keine Werkzeuge. Ein [Subagent](/docs/de/sub-agents) hat Werkzeuge und startet von der Eingabeaufforderung, die er erhält, oder, für eine [Verzweigung](/docs/de/sub-agents#fork-the-current-conversation), von einer Kopie dieses Gesprächs. Verwenden Sie `/btw`, um zu fragen, was Claude bereits aus dieser Sitzung weiß; verwenden Sie einen Subagenten, um etwas Neues herauszufinden.

657 675 

658<h2 id="task-list">676<h2 id="task-list">


661 679 

662Die Aufgabenliste ist Claudes Checkliste: Elemente, die Claude erstellt hat, um mehrstufige Arbeiten zu planen, mit Indikatoren, die zeigen, was ausstehend, in Bearbeitung oder abgeschlossen ist. Sie ist vom Hintergrund-Task-View getrennt. Um laufende Shells und Subagenten zu sehen, verwenden Sie stattdessen [`/tasks`](/docs/de/commands).680Die Aufgabenliste ist Claudes Checkliste: Elemente, die Claude erstellt hat, um mehrstufige Arbeiten zu planen, mit Indikatoren, die zeigen, was ausstehend, in Bearbeitung oder abgeschlossen ist. Sie ist vom Hintergrund-Task-View getrennt. Um laufende Shells und Subagenten zu sehen, verwenden Sie stattdessen [`/tasks`](/docs/de/commands).

663 681 

664Bei [Opus 4.8, Sonnet 5, Fable 5, Mythos 5 und späteren Versionen dieser Familien](/docs/de/tools-reference#task-tool-availability) verfolgt Claude mehrstufige Arbeiten ohne eine schriftliche Checkliste, und Claude Code stellt nicht die Tools bereit, die diese Liste füllen, daher bleibt sie leer. Wenn Sie die Aufgabenliste auf diesen Modellen trotzdem möchten, aktivieren Sie sie mit `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` oder einer der anderen Möglichkeiten unter [Task-Tool-Verfügbarkeit](/docs/de/tools-reference#task-tool-availability). Bei früheren Modellen wie Opus 4.7 und nachdem Sie aktiviert haben, funktioniert die Aufgabenliste wie folgt:682Die Liste wird nur in Sitzungen gefüllt, die die Task-Tracking-Tools haben, die Claude Code standardmäßig auf [Claude 3.x-Modellen, Opus 4 bis 4.7, Sonnet 4 bis 4.6 und Haiku 4.5](/docs/de/tools-reference#task-tool-availability) bereitstellt. Bei jedem anderen Modell, einschließlich einer Modell-ID, die Claude Code nicht erkennt, bleibt die Liste leer, es sei denn, Sie aktivieren sie mit `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` oder einer der anderen Möglichkeiten unter [Task-Tool-Verfügbarkeit](/docs/de/tools-reference#task-tool-availability). Wenn die Sitzung die Tools hat, funktioniert die Aufgabenliste wie folgt:

665 683 

666* Drücken Sie `Ctrl+T`, um die Aufgabenlisten-Ansicht umzuschalten. Die Anzeige zeigt bis zu fünf Aufgaben gleichzeitig. Wenn Claude noch keine Checklistenelemente erstellt hat, hat das Umschalten keine sichtbare Auswirkung, da es nichts anzuzeigen gibt684* Drücken Sie `Ctrl+T`, um die Aufgabenlisten-Ansicht umzuschalten. Die Anzeige zeigt bis zu fünf Aufgaben gleichzeitig. Wenn Claude noch keine Checklistenelemente erstellt hat, hat das Umschalten keine sichtbare Auswirkung, da es nichts anzuzeigen gibt

667* Wenn Sie die Liste erweitert lassen, stellt Claude Code die erweiterte Ansicht beim nächsten Start einer Sitzung wieder her, die noch Aufgaben enthält, z. B. mit `--resume` oder `--continue`. Wenn die Aufgabenliste leer ist, startet Claude Code sie eingeklappt685* Wenn Sie die Liste erweitert lassen, stellt Claude Code die erweiterte Ansicht beim nächsten Start einer Sitzung wieder her, die noch Aufgaben enthält, z. B. mit `--resume` oder `--continue`. Wenn die Aufgabenliste leer ist, startet Claude Code sie eingeklappt


769</Note>787</Note>

770 788 

771<h3 id="gitlab-merge-requests">789<h3 id="gitlab-merge-requests">

772 GitLab-Merge-Requests790 GitLab Merge Requests

773</h3>791</h3>

774 792 

775Wenn Sie an einem Branch mit einem offenen GitLab-Merge-Request arbeiten, zeigt Claude Code ein anklickbares `MR !N`-Badge in der Fußzeile an, das sonst den GitHub PR-Link enthält. `!N` ist GitLabs eigene Referenzsyntax für Merge Request Nummer N. Die farbige Unterlinie zeigt den Status des Merge Request:793Wenn Sie an einem Branch mit einem offenen GitLab Merge Request arbeiten, zeigt Claude Code ein anklickbares `MR !N`-Badge in der Fußzeile an, das ansonsten den GitHub PR-Link enthält. `!N` ist GitLabs eigene Referenzsyntax für Merge Request Nummer N. Die farbige Unterlinie zeigt den Status des Merge Request:

776 794 

777* Grün: GitLab meldet, dass der Merge Request zusammenführbar ist795* Grün: GitLab meldet, dass der Merge Request zusammenführbar ist

778* Gelb: jeder andere offene Status796* Gelb: jeder andere offene Status


780 798 

781Das Badge verschwindet, sobald der Merge Request zusammengeführt oder geschlossen wird.799Das Badge verschwindet, sobald der Merge Request zusammengeführt oder geschlossen wird.

782 800 

783Es wird aktualisiert, sobald ein `glab mr create` oder `git push` in der Sitzung erfolgreich ist.801Es wird aktualisiert, sobald ein `git push` oder ein `glab mr`-Befehl, der den Merge Request ändert, wie `glab mr create` oder `glab mr merge`, in der Sitzung erfolgreich ist.

784 802 

785Um das Badge zu erhalten, benötigen Sie:803Um das Badge zu erhalten, benötigen Sie:

786 804 


790 808 

791Claude Code ignoriert `glab`s Token-Umgebungsvariablen, wie `GITLAB_TOKEN`, wenn es den Status prüft, sodass Sie kein Badge von einem exportierten Token allein erhalten. Claude Code sucht auch nach `glab` und nach seinem Login einmal pro Sitzung, daher starten Sie Claude Code neu, nachdem Sie `glab` installiert haben oder `glab auth login` ausgeführt haben.809Claude Code ignoriert `glab`s Token-Umgebungsvariablen, wie `GITLAB_TOKEN`, wenn es den Status prüft, sodass Sie kein Badge von einem exportierten Token allein erhalten. Claude Code sucht auch nach `glab` und nach seinem Login einmal pro Sitzung, daher starten Sie Claude Code neu, nachdem Sie `glab` installiert haben oder `glab auth login` ausgeführt haben.

792 810 

811<h2 id="issue-reference-links">

812 Verweislinks für Probleme

813</h2>

814 

815Wenn Claude ein Problem als `owner/repo#123` erwähnt, können Sie auf den Verweis klicken, um es zu öffnen, solange Ihr Terminal Hyperlinks unterstützt. Wenn Claude Code keine Hyperlink-Unterstützung in Ihrem Terminal erkennt, setzen Sie [`FORCE_HYPERLINK`](/docs/de/env-vars) auf `1`, um die Links einzuschalten, oder auf `0`, um Verweise als einfachen Text beizubehalten.

816 

817Sie erhalten einen Link nur für die zweiteilige Form `owner/repo#123`. Diese bleiben einfacher Text:

818 

819* Ein einfaches `#123`

820* Ein verschachtelter GitLab-Pfad wie `group/subgroup/project#123`

821* Jeder Verweis innerhalb einer Code-Spanne oder eines Code-Blocks

822 

823Claude Code erstellt den Link für den Host des Repositorys, das es aus Ihrem Git-Remote identifiziert, nicht für das Repository, das der Verweis benennt:

824 

825| Host Ihres Repositorys | Wo `owner/repo#123` verlinkt |

826| :----------------------------------------------------------------------------------- | :------------------------------------------- |

827| github.com, ein GitHub Enterprise-Host oder ein Host, der nicht unten aufgeführt ist | `https://<host>/owner/repo/issues/123` |

828| gitlab.com | `https://gitlab.com/owner/repo/-/issues/123` |

829| bitbucket.org, codeberg.org oder gitea.com | Kein Link; der Verweis bleibt einfacher Text |

830 

793<h2 id="see-also">831<h2 id="see-also">

794 Siehe auch832 Siehe auch

795</h2>833</h2>

keybindings.md +35 −2

Details

65| `DiffDialog` | Diff-Viewer-Navigation |65| `DiffDialog` | Diff-Viewer-Navigation |

66| `DiffPanel` | Das [Diff-Panel](/docs/de/interactive-mode#diff-panel) ist offen |66| `DiffPanel` | Das [Diff-Panel](/docs/de/interactive-mode#diff-panel) ist offen |

67| `ModelPicker` | Modell-Picker-Aufwandsstufe |67| `ModelPicker` | Modell-Picker-Aufwandsstufe |

68| `EffortSlider` | Aufwands-Schieberegler, geöffnet durch `/effort` |

68| `Select` | Generische Select/List-Komponenten |69| `Select` | Generische Select/List-Komponenten |

69| `Plugin` | Plugin-Dialog (durchsuchen, entdecken, verwalten) |70| `Plugin` | Plugin-Dialog (durchsuchen, entdecken, verwalten) |

71| `Agents` | [Agent-Ansicht](/docs/de/agent-view) (`claude agents`) |

70| `Scroll` | Konversations-Scrolling und Textauswahl im Vollbildmodus |72| `Scroll` | Konversations-Scrolling und Textauswahl im Vollbildmodus |

71 73 

72Vor v2.1.205 existierten ein `Doctor`-Kontext und eine `doctor:fix`-Aktion für den `/doctor`-Diagnose-Bildschirm.74Vor v2.1.205 existierten ein `Doctor`-Kontext und eine `doctor:fix`-Aktion für den `/doctor`-Diagnose-Bildschirm.


123| `chat:queueSubmit` | Ctrl+X Enter | Nachricht senden, markiert zum Warten auf ihren Platz: Während Claude arbeitet, [reiht Claude Code sie ein](/docs/de/interactive-mode#queue-messages-while-claude-works) und unterbricht den Zug nie. Im Gegensatz zu `chat:submit` sendet es den Entwurf auch, wenn Autovervollständigungsvorschläge offen sind. Erfordert v2.1.247 oder später |125| `chat:queueSubmit` | Ctrl+X Enter | Nachricht senden, markiert zum Warten auf ihren Platz: Während Claude arbeitet, [reiht Claude Code sie ein](/docs/de/interactive-mode#queue-messages-while-claude-works) und unterbricht den Zug nie. Im Gegensatz zu `chat:submit` sendet es den Entwurf auch, wenn Autovervollständigungsvorschläge offen sind. Erfordert v2.1.247 oder später |

124| `chat:newline` | Ctrl+J | Zeilenumbruch einfügen, ohne zu senden |126| `chat:newline` | Ctrl+J | Zeilenumbruch einfügen, ohne zu senden |

125| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Letzte Aktion rückgängig machen |127| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Letzte Aktion rückgängig machen |

126| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | In externem Editor öffnen |128| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | In externem Editor öffnen. Die [Eingabeverteilung der Agent-Ansicht](/docs/de/agent-view#keyboard-shortcuts) folgt auch den Eintasten-Bindungen dieser Aktion |

127| `chat:stash` | Ctrl+S | Aktuelle Eingabeaufforderung speichern |129| `chat:stash` | Ctrl+S | Aktuelle Eingabeaufforderung speichern |

128| `chat:imagePaste` | Ctrl+V (Alt+V unter Windows und WSL) | Bild aus der Zwischenablage einfügen. Unter WSL sind beide Tastenkombinationen standardmäßig gebunden |130| `chat:imagePaste` | Ctrl+V (Alt+V unter Windows und WSL) | Bild aus der Zwischenablage einfügen. Unter WSL sind beide Tastenkombinationen standardmäßig gebunden |

129 131 


340| `modelPicker:increaseEffort` | Rechts | Aufwandsstufe erhöhen |342| `modelPicker:increaseEffort` | Rechts | Aufwandsstufe erhöhen |

341| `modelPicker:thisSessionOnly` | s | Hervorgehobenes Modell nur auf diese Sitzung anwenden |343| `modelPicker:thisSessionOnly` | s | Hervorgehobenes Modell nur auf diese Sitzung anwenden |

342 344 

345<h3 id="effort-slider-actions">

346 Effort-Schieberegler-Aktionen

347</h3>

348 

349Aktionen verfügbar im `EffortSlider`-Kontext, dem Schieberegler, der sich öffnet, wenn Sie `/effort` ohne Argumente ausführen. Die Tasten Links, Rechts, Enter und Escape des Schiebereglers können nicht neu gebunden werden.

350 

351| Aktion | Standard | Beschreibung |

352| :----------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

353| `effortSlider:thisSessionOnly` | s | Wenden Sie die fokussierte [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) nur auf diese Sitzung an. Erfordert v2.1.257 oder später |

354 

343<h3 id="select-actions">355<h3 id="select-actions">

344 Select-Aktionen356 Select-Aktionen

345</h3>357</h3>


384| `select:accept` | Enter, Leertaste | Ändern Sie die ausgewählte Einstellung oder öffnen Sie das Untermenü |396| `select:accept` | Enter, Leertaste | Ändern Sie die ausgewählte Einstellung oder öffnen Sie das Untermenü |

385| `confirm:no` | Escape | Schließen Sie das Panel. Änderungen sind bereits gespeichert |397| `confirm:no` | Escape | Schließen Sie das Panel. Änderungen sind bereits gespeichert |

386 398 

399<h3 id="agents-actions">

400 Agents-Aktionen

401</h3>

402 

403Aktionen verfügbar im `Agents`-Kontext, der in der [Agent-Ansicht](/docs/de/agent-view) gilt, die mit `claude agents` geöffnet wird. Erfordert v2.1.257 oder später.

404 

405| Aktion | Standard | Beschreibung |

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

407| `agents:switchView` | Ctrl+S | [Sitzungsgruppenbildung](/docs/de/agent-view#organize-the-list) zwischen Status und Verzeichnis wechseln |

408| `agents:togglePin` | Ctrl+T | Ausgewählte Sitzung [anheften oder loslösen](/docs/de/agent-view#organize-the-list) |

409 

410Während die Agent-Ansicht offen ist, verwendet Claude Code die `Agents`-Bindung für jede Taste, die der `Agents`-Kontext bindet, und ignoriert eine `Chat`- oder `Global`-Bindung auf derselben Taste. Wenn Sie beispielsweise Ctrl+S in der Agent-Ansicht drücken, wird die Sitzungsgruppenbildung gewechselt, anstatt den Standard `chat:stash` auszulösen.

411 

412Die Eingabeverteilung des externen Editors ist keine `Agents`-Aktion. Die Agent-Ansicht folgt der `Chat`-Kontext-Bindung `chat:externalEditor`, Ctrl+G standardmäßig.

413 

414Bindungen werden bei einzelnen Tastenanschlägen in der Agent-Ansicht ausgelöst, daher öffnet die Ctrl+X Ctrl+E-Kombination, die an `chat:externalEditor` gebunden ist, den Editor dort nicht.

415 

387<h3 id="voice-actions">416<h3 id="voice-actions">

388 Sprach-Aktionen417 Sprach-Aktionen

389</h3>418</h3>


476ctrl+k ctrl+s Drücken Sie Strg+K, loslassen, dann Strg+S505ctrl+k ctrl+s Drücken Sie Strg+K, loslassen, dann Strg+S

477```506```

478 507 

508Drücken Sie jede Tastenkombination innerhalb von 3 Sekunden nach der vorherigen. Wenn Sie länger warten, bricht Claude Code den Akkord ab und zeigt eine kurze Benachrichtigung an, die dies anzeigt.

509 

479<h3 id="special-keys">510<h3 id="special-keys">

480 Spezielle Tasten511 Spezielle Tasten

481</h3>512</h3>


511 542 

512Dies funktioniert auch für Akkord-Bindings. Das Aufheben aller Akkorde, die ein Präfix teilen, gibt dieses Präfix für die Verwendung als Single-Key-Binding frei. Ein Akkord in einem beliebigen aktiven Kontext behält sein Präfix reserviert, daher müssen Sie jeden Akkord in dem Kontext aufheben, der ihn definiert.543Dies funktioniert auch für Akkord-Bindings. Das Aufheben aller Akkorde, die ein Präfix teilen, gibt dieses Präfix für die Verwendung als Single-Key-Binding frei. Ein Akkord in einem beliebigen aktiven Kontext behält sein Präfix reserviert, daher müssen Sie jeden Akkord in dem Kontext aufheben, der ihn definiert.

513 544 

514Claude Code bindet diese Standard-Akkorde auf dem `ctrl+x`-Präfix: `ctrl+x ctrl+k`, `ctrl+x ctrl+e` und `ctrl+x enter` in `Chat`, `ctrl+x ctrl+b` in `Task` und `ctrl+x b` in `DiffPanel`. Der `ctrl+x enter`-Akkord erfordert v2.1.247 oder später, und `ctrl+x b` erfordert v2.1.260 oder später. Um `ctrl+x` selbst als Single-Key-Binding zurückzugewinnen, heben Sie alle auf:545Claude Code bindet diese Standard-Akkorde auf dem `ctrl+x`-Präfix: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a` und `ctrl+x tab` in `Chat`, `ctrl+x ctrl+b` in `Task` und `ctrl+x b` in `DiffPanel`. Der `ctrl+x enter`-Akkord erfordert v2.1.247 oder später, und `ctrl+x b`, `ctrl+x ctrl+a` und `ctrl+x tab` erfordern v2.1.260 oder später. Um `ctrl+x` selbst als Single-Key-Binding zurückzugewinnen, heben Sie alle auf:

515 546 

516```json theme={null}547```json theme={null}

517{548{


534 "ctrl+x ctrl+k": null,565 "ctrl+x ctrl+k": null,

535 "ctrl+x ctrl+e": null,566 "ctrl+x ctrl+e": null,

536 "ctrl+x enter": null,567 "ctrl+x enter": null,

568 "ctrl+x ctrl+a": null,

569 "ctrl+x tab": null,

537 "ctrl+x": "chat:newline"570 "ctrl+x": "chat:newline"

538 }571 }

539 }572 }

Details

176Die Deny-Regeln können alle im Repository arbeitenden Personen, nur Sie oder jede Sitzung auf dem Computer abdecken, je nachdem, in welche Einstellungsdatei Sie sie einfügen:176Die Deny-Regeln können alle im Repository arbeitenden Personen, nur Sie oder jede Sitzung auf dem Computer abdecken, je nachdem, in welche Einstellungsdatei Sie sie einfügen:

177 177 

178* **Alle, die im Repository arbeiten**: Committen Sie die Regeln zu `.claude/settings.json` im Repository-Root, wenn Sie Claude dort starten, oder in jedem Paket `.claude/`, wenn Sie von Unterverzeichnissen starten. Wie andere Projekteinstellungen auf dieser Seite wird diese Datei nicht von übergeordneten Verzeichnissen geerbt.178* **Alle, die im Repository arbeiten**: Committen Sie die Regeln zu `.claude/settings.json` im Repository-Root, wenn Sie Claude dort starten, oder in jedem Paket `.claude/`, wenn Sie von Unterverzeichnissen starten. Wie andere Projekteinstellungen auf dieser Seite wird diese Datei nicht von übergeordneten Verzeichnissen geerbt.

179* **Nur Sie selbst**: Verwenden Sie `.claude/settings.local.json` im Repository-Root, das in jeder CLI-Sitzung innerhalb des Repositorys geladen wird, unabhängig vom Startverzeichnis, außer in Fällen, in denen Claude Code [den Repository-Root nicht verwendet](/docs/de/settings#where-claude-code-looks-for-each-file), wie auf Windows. Relative Muster wie das Beispiel `Read(./vendor/**)` [verankern immer noch am aktuellen Arbeitsverzeichnis der Sitzung](/docs/de/permissions#read-and-edit) statt am Repository-Root. Wenn Sie Sitzungen von Unterverzeichnissen starten, schreiben Sie die Regeln in dieser Datei als `//`-absolute Pfade, wie `Read(//absolute/path/to/repo/vendor/**)`. Vor v2.1.211 wurde `.claude/settings.local.json` auch nur aus dem Startverzeichnis geladen.179* **Nur Sie selbst**: Verwenden Sie `.claude/settings.local.json` im Repository-Root, das in jeder CLI-Sitzung innerhalb des Repositorys geladen wird, unabhängig vom Startverzeichnis, außer in Fällen, in denen Claude Code [den Repository-Root nicht verwendet](/docs/de/settings#where-claude-code-looks-for-each-file), wie auf Windows. Relative Muster wie das Beispiel `Read(./**/vendor/**/*)` [verankern immer noch am aktuellen Arbeitsverzeichnis der Sitzung](/docs/de/permissions#read-and-edit) statt am Repository-Root. Wenn Sie Sitzungen von Unterverzeichnissen starten, schreiben Sie die Regeln in dieser Datei als `//`-absolute Pfade, wie `Read(//absolute/path/to/repo/**/vendor/**/*)`. Vor v2.1.211 wurde `.claude/settings.local.json` auch nur aus dem Startverzeichnis geladen.

180* **Alle, erzwungen in jeder Sitzung**: Setzen Sie die Regeln in [verwalteten Einstellungen](/docs/de/managed-settings), die Benutzer- und Projekteinstellungen nicht überschreiben können.180* **Alle, erzwungen in jeder Sitzung**: Setzen Sie die Regeln in [verwalteten Einstellungen](/docs/de/managed-settings), die Benutzer- und Projekteinstellungen nicht überschreiben können.

181 181 

182Das Beispiel unten blockiert Build-Artefakte und ein Vendor-SDK:182Das Beispiel unten blockiert Build-Artefakte und ein Vendor-SDK. Seine Verzeichnismuster enden mit `/**/*` statt `/**`, sodass jede Regel alles im Verzeichnis abdeckt, aber nicht das Verzeichnis selbst. Claude kann diese Verzeichnisse dann immer noch auflisten oder in sie wechseln, beispielsweise mit `ls dist` oder `cd build`.

183 183 

184```json .claude/settings.json theme={null}184```json .claude/settings.json theme={null}

185{185{

186 "permissions": {186 "permissions": {

187 "deny": [187 "deny": [

188 "Read(./**/dist/**)",188 "Read(./**/dist/**/*)",

189 "Read(./**/build/**)",189 "Read(./**/build/**/*)",

190 "Read(./**/*.generated.*)",190 "Read(./**/*.generated.*)",

191 "Read(./vendor/**)"191 "Read(./**/vendor/**/*)"

192 ]192 ]

193 }193 }

194}194}


446 "../shared"446 "../shared"

447 ],447 ],

448 "deny": [448 "deny": [

449 "Read(./**/dist/**)",449 "Read(./**/dist/**/*)",

450 "Read(./**/build/**)"450 "Read(./**/build/**/*)"

451 ]451 ]

452 }452 }

453}453}


461{461{

462 "permissions": {462 "permissions": {

463 "deny": [463 "deny": [

464 "Read(./**/dist/**)",464 "Read(./**/dist/**/*)",

465 "Read(./**/build/**)"465 "Read(./**/build/**/*)"

466 ]466 ]

467 }467 }

468}468}

Details

438 Leiten Sie zu einem Cloud-Anbieter über ein Gateway weiter438 Leiten Sie zu einem Cloud-Anbieter über ein Gateway weiter

439</h3>439</h3>

440 440 

441Diese Konfigurationen richten Claude Code auf ein Gateway über eine anbieter-spezifische Basis-URL-Variable anstelle von `ANTHROPIC_BASE_URL` aus. Amazon Bedrock und Google Cloud's Agent Platform-Gateways akzeptieren die nativen Anforderungsformate dieser Anbieter; Microsoft Foundry und Claude Platform on AWS-Gateways akzeptieren das Anthropic Messages-Format und unterscheiden sich nur in der Basis-URL-Variable, die sie erreicht.441Diese Konfigurationen richten Claude Code auf ein Gateway über eine anbieter-spezifische Basis-URL-Variable anstelle von `ANTHROPIC_BASE_URL` aus. Amazon Bedrock und Google Cloud's Agent Platform-Gateways akzeptieren die nativen Anforderungsformate dieser Anbieter; Microsoft Foundry und Claude Platform on AWS-Gateways akzeptieren das Anthropic Messages-Format. Auf den Amazon Bedrock und Google Cloud's Agent Platform-Routen begrenzt Claude Code auch die Beta-Header und Anforderungsfelder, die es sendet, auf den Satz, den der Anbieter akzeptiert. Für das, was Ihr Gateway auf jeder Route empfängt, siehe das [Gateway-Kompatibilitätsleitfaden](/docs/de/llm-gateway-protocol).

442 442 

443Verwenden Sie eine nur, wenn Ihr Gateway-Team speziell Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder die Claude Platform on AWS benannt hat. Wenn die [Überprüfungsanfrage](#verify-the-connection) oben JSON zurückgegeben hat, können Sie diesen Abschnitt überspringen.443Verwenden Sie eine nur, wenn Ihr Gateway-Team speziell Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder die Claude Platform on AWS benannt hat. Wenn die [Überprüfungsanfrage](#verify-the-connection) oben JSON zurückgegeben hat, können Sie diesen Abschnitt überspringen.

444 444 

445Legen Sie den Block für den Anbieter fest, den Ihr Gateway-Team benannt hat. Die Skip-Auth-Variablen teilen Claude Code mit, dass Anfragen nicht mit Anbieter-Anmeldedaten signiert werden sollen, da das Gateway diese hält. Wenn das Gateway sein eigenes Token benötigt, fügen Sie `ANTHROPIC_AUTH_TOKEN` nach dem Block hinzu, außer für Microsoft Foundry, das `ANTHROPIC_FOUNDRY_API_KEY` wie gezeigt verwendet.445Legen Sie den Block für den Anbieter fest, den Ihr Gateway-Team benannt hat. Die Skip-Auth-Variablen in den Amazon Bedrock, Google Cloud's Agent Platform und Claude Platform on AWS-Blöcken teilen Claude Code mit, dass Anfragen nicht mit den Cloud-Anbieter-Anmeldedaten signiert werden sollen, da das Gateway diese hält. Wenn das Gateway auch sein eigenes Token benötigt, hängt davon ab, wo Sie es einfügen, vom Anbieter ab:

446 

447* **Amazon Bedrock, Google Cloud's Agent Platform oder Claude Platform on AWS**: Fügen Sie `ANTHROPIC_AUTH_TOKEN` nach dem Block hinzu. Claude Code sendet es an das Gateway als `Authorization: Bearer`-Header. Für eine Anmeldedaten in einem anderen Schema oder Header verwenden Sie stattdessen [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers). Halten Sie die Skip-Auth-Variable in jedem Fall gesetzt, da Claude Code ohne sie jeden `Authorization`-Header entfernt, den `ANTHROPIC_AUTH_TOKEN`, ein [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) oder `ANTHROPIC_CUSTOM_HEADERS` hinzufügen würde.

448* **Microsoft Foundry**: Verwenden Sie `ANTHROPIC_FOUNDRY_API_KEY` wie sein [Block](#microsoft-foundry) zeigt

446 449 

447<h4 id="amazon-bedrock">450<h4 id="amazon-bedrock">

448 Amazon Bedrock451 Amazon Bedrock

449</h4>452</h4>

450 453 

454Lassen Sie `AWS_BEARER_TOKEN_BEDROCK` ungesetzt, wenn das Gateway sein eigenes Anmeldedaten ausstellt. Wenn Sie es festlegen, sendet Claude Code diesen [Amazon Bedrock API-Schlüssel](/docs/de/amazon-bedrock#2-configure-aws-credentials) als `Authorization`-Header anstelle Ihres Gateway-Tokens, auch mit `CLAUDE_CODE_SKIP_BEDROCK_AUTH` gesetzt.

455 

451<Tabs>456<Tabs>

452 <Tab title="Bash oder Zsh">457 <Tab title="Bash oder Zsh">

453 ```bash theme={null}458 ```bash theme={null}


470 Google Cloud's Agent Platform475 Google Cloud's Agent Platform

471</h4>476</h4>

472 477 

478Ersetzen Sie die Projekt-ID und Region durch Ihre eigenen Werte. Claude Code bezieht beide in den Pfad jeder Anfrage ein, die es an das Gateway sendet:

479 

473<Tabs>480<Tabs>

474 <Tab title="Bash oder Zsh">481 <Tab title="Bash oder Zsh">

475 ```bash theme={null}482 ```bash theme={null}


492 </Tab>499 </Tab>

493</Tabs>500</Tabs>

494 501 

502Der Block behandelt Routing und Authentifizierung. Die Region-Überschreibungen und Modell-Pins aus dem [Agent Platform-Setup](/docs/de/google-vertex-ai#4-configure-claude-code) gelten auch durch ein Gateway:

503 

504* **Pro-Modell-Regionen**: Wenn Ihr Gateway einige Modelle aus einer Region außer `CLOUD_ML_REGION` bereitstellt, legen Sie die entsprechende `VERTEX_REGION_CLAUDE_*`-Variable für jedes fest, z. B. `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`. Die [Umgebungsvariablen-Referenz](/docs/de/env-vars) listet die genauen Namen auf.

505* **Modellversionen**: Pinnen Sie `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` und `ANTHROPIC_DEFAULT_HAIKU_MODEL` wie in [Modellversionen pinnen](/docs/de/google-vertex-ai#5-pin-model-versions). Das Festlegen von `ANTHROPIC_DEFAULT_HAIKU_MODEL` verschiebt auch Hintergrundaufgaben wie Sitzungstitel zu diesem Modell, und dieser Abschnitt erklärt, welches Modell sie sonst ausführt.

506* **Modell-Fähigkeiten**: Wenn Sie eine Modell-ID pinnen, die Ihre Claude Code-Version nicht erkennt, können Funktionen wie Anstrengungsstufen oder erweitertes Denken auf ihr deaktiviert bleiben. Deklarieren Sie, was das Modell unterstützt, mit [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](/docs/de/model-config#customize-pinned-model-display-and-capabilities) und seinen Sonnet- und Haiku-Gegenstücken.

507 

495<h4 id="microsoft-foundry">508<h4 id="microsoft-foundry">

496 Microsoft Foundry509 Microsoft Foundry

497</h4>510</h4>


568| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |581| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

569| Eine Start-Warnung, die zwei Anmeldedaten-Quellen benennt und mit `auth may not work as expected` endet. Ältere Versionen zeigen stattdessen `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` an. | Eine Gateway-Anmeldedaten und ein gespeicherter Login sind beide aktiv; die Variable wird für Anfragen verwendet, aber der veraltete Login kann zu unerwartetem Auth-Verhalten führen | Heben Sie die Festlegung der Variable auf, um den gespeicherten Login zu verwenden, oder führen Sie `/logout` aus, um die Gateway-Anmeldedaten zu verwenden |582| Eine Start-Warnung, die zwei Anmeldedaten-Quellen benennt und mit `auth may not work as expected` endet. Ältere Versionen zeigen stattdessen `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` an. | Eine Gateway-Anmeldedaten und ein gespeicherter Login sind beide aktiv; die Variable wird für Anfragen verwendet, aber der veraltete Login kann zu unerwartetem Auth-Verhalten führen | Heben Sie die Festlegung der Variable auf, um den gespeicherten Login zu verwenden, oder führen Sie `/logout` aus, um die Gateway-Anmeldedaten zu verwenden |

570| `401`-Fehler, die ein ungültiges oder nicht erkanntes Token benennen | Die Anmeldedaten sind nicht eine, die das Gateway ausgestellt hat, oder sie sind in einem Header, den das Gateway nicht liest | Bestätigen Sie, dass die Variable Ihrer Anmeldedaten-Art in der [Anmeldedaten-Tabelle](#set-the-credential-variable) entspricht, und generieren Sie den Schlüssel beim Gateway neu, wenn er widerrufen wurde |583| `401`-Fehler, die ein ungültiges oder nicht erkanntes Token benennen | Die Anmeldedaten sind nicht eine, die das Gateway ausgestellt hat, oder sie sind in einem Header, den das Gateway nicht liest | Bestätigen Sie, dass die Variable Ihrer Anmeldedaten-Art in der [Anmeldedaten-Tabelle](#set-the-credential-variable) entspricht, und generieren Sie den Schlüssel beim Gateway neu, wenn er widerrufen wurde |

571| `Your apiKeyHelper script is failing` | Der Befehl in der [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Einstellung hat keinen verwendbaren Schlüssel erzeugt, daher enthalten Anfragen einen Platzhalter-Schlüssel | Führen Sie den Befehl direkt aus, um zu sehen, warum er fehlschlägt, und authentifizieren Sie sich erneut bei Ihrem Anmeldedaten-Anbieter, wenn dieser eine abgelaufene Sitzung meldet; siehe [die Fehlerreferenz](/docs/de/errors#your-apikeyhelper-script-is-failing) |584| `Your apiKeyHelper script is failing`, oder `apiKeyHelper failed:` auf stderr im nicht-interaktiven Modus | Der Befehl in der [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Einstellung hat keinen verwendbaren Schlüssel erzeugt, daher enthalten Anfragen einen Platzhalter-Schlüssel | Führen Sie den Befehl direkt aus, um zu sehen, warum er fehlschlägt, und authentifizieren Sie sich erneut bei Ihrem Anmeldedaten-Anbieter, wenn dieser eine abgelaufene Sitzung meldet; siehe [die Fehlerreferenz](/docs/de/errors#your-apikeyhelper-script-is-failing) |

572| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` wenn nichts unter der Adresse antwortet, oder `Can't reach the API server — check your internet or DNS (ENOTFOUND)` wenn der Hostname nicht aufgelöst wird, oft nach einer stillen Pause, während Claude Code [mit Backoff erneut versucht](/docs/de/errors#automatic-retries). Der Code in Klammern variiert; [Unable to connect to API](/docs/de/errors#unable-to-connect-to-api) behandelt die Code-Schreibweisen und die frühere Formulierung | Nichts antwortete unter der Basis-URL: Die Adresse ist falsch, oder ein VPN oder eine Firewall blockiert den Pfad zum Gateway | Führen Sie den [curl-Test oben](#verify-the-connection) aus, der sofort mit der gleichen Ursache fehlschlägt, und bestätigen Sie die URL und den Netzwerkpfad mit Ihrem Gateway-Team |585| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` wenn nichts unter der Adresse antwortet, oder `Can't reach the API server — check your internet or DNS (ENOTFOUND)` wenn der Hostname nicht aufgelöst wird, oft nach einer stillen Pause, während Claude Code [mit Backoff erneut versucht](/docs/de/errors#automatic-retries). Der Code in Klammern variiert; [Unable to connect to API](/docs/de/errors#unable-to-connect-to-api) behandelt die Code-Schreibweisen und die frühere Formulierung | Nichts antwortete unter der Basis-URL: Die Adresse ist falsch, oder ein VPN oder eine Firewall blockiert den Pfad zum Gateway | Führen Sie den [curl-Test oben](#verify-the-connection) aus, der sofort mit der gleichen Ursache fehlschlägt, und bestätigen Sie die URL und den Netzwerkpfad mit Ihrem Gateway-Team |

573| `API returned an empty or malformed response (HTTP 200)` | Das Gateway oder ein zwischengelagerter Proxy gab eine Nicht-API-Antwort zurück, oft eine HTML-Fehler oder Anmeldeseite | Testen Sie mit der [curl-Anfrage oben](#verify-the-connection); beheben Sie die Gateway-Route, die mit etwas anderem als einer Claude-API-Antwort antwortet. [Die Fehlerreferenz](/docs/de/errors#api-returned-an-empty-or-malformed-response) erklärt das Detail, das die Nachricht meldet |586| `API returned an empty or malformed response (HTTP 200)` | Das Gateway oder ein zwischengelagerter Proxy gab eine Nicht-API-Antwort zurück, oft eine HTML-Fehler oder Anmeldeseite | Testen Sie mit der [curl-Anfrage oben](#verify-the-connection); beheben Sie die Gateway-Route, die mit etwas anderem als einer Claude-API-Antwort antwortet. [Die Fehlerreferenz](/docs/de/errors#api-returned-an-empty-or-malformed-response) erklärt das Detail, das die Nachricht meldet |

574| `400`-Fehler, die `context_management`, `Extra inputs are not permitted` oder andere nicht erkannte Felder benennen | Das Gateway leitet Anfragen an einen Upstream weiter, der Felder ablehnt, die Claude Code an Anthropic-Format-Endpunkte sendet | Legen Sie `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` fest, das die meisten Pre-Release-Felder unterdrückt; siehe [Feature-Durchleitung](/docs/de/llm-gateway-protocol#feature-pass-through). Einige Betas werden nicht durch dieses Flag gated; für diese legen Sie die passende `CLAUDE_CODE_USE_*`-Anbieter-Variable fest, damit Claude Code nur das sendet, das dieser Anbieter akzeptiert |587| `400`-Fehler, die `context_management`, `Extra inputs are not permitted` oder andere nicht erkannte Felder benennen | Das Gateway leitet Anfragen an einen Upstream weiter, der Felder ablehnt, die Claude Code an Anthropic-Format-Endpunkte sendet | Legen Sie `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` fest, das die meisten Pre-Release-Felder unterdrückt; siehe [Feature-Durchleitung](/docs/de/llm-gateway-protocol#feature-pass-through). Einige Betas werden nicht durch dieses Flag gated; für diese legen Sie die passende `CLAUDE_CODE_USE_*`-Anbieter-Variable fest, damit Claude Code nur das sendet, das dieser Anbieter akzeptiert |

Details

54 Optionale Endpunkte und Startup-Traffic54 Optionale Endpunkte und Startup-Traffic

55</h3>55</h3>

56 56 

57Token-Counting-Endpunkte sind die einzigen optionalen: Wenn sie fehlen, greift Claude Code auf die Zählung der Kontextnutzung über den Inferenzendpunkt zurück. Inferenzanfragen werden an `/v1/messages?beta=true` gesendet, daher sollten Sie auf dem Pfad abgleichen, nicht auf der vollständigen URL. Die Google Cloud's Agent Platform-Methode hängt Suffixe an den Publisher-Modellpfad an, wie in `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`.57Token-Counting-Endpunkte sind die einzigen optionalen: Wenn sie fehlen, greift Claude Code auf eine zeichenbasierte Schätzung der Kontextnutzung zurück.

58 

59Gleichen Sie auf dem Pfad ab, nicht auf der vollständigen URL:

60 

61* Inferenzanfragen werden an `/v1/messages?beta=true` gesendet

62* Die Google Cloud's Agent Platform-Methode hängt Suffixe an den Publisher-Modellpfad an, wie in `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`

58 63 

59Ein Gateway sieht auch Best-Effort-Startup-Traffic, den es ablehnen kann, ohne etwas zu unterbrechen. Ein Anthropic Messages-Format-Gateway empfängt eine `HEAD /api/hello` Verbindungs-Aufwärm-Sonde, die Claude Code überspringt, wenn ein HTTP-Proxy oder Client-Zertifikat konfiguriert ist. Ein Amazon Bedrock-Format-Gateway empfängt eine `GET /inference-profiles?type=SYSTEM_DEFINED` Anfrage und, wenn das konfigurierte Modell ein Inferenzprofil ist, `GET /inference-profiles/{profile}` Lookups.64Ein Gateway sieht auch Best-Effort-Startup-Traffic, den es ablehnen kann, ohne etwas zu unterbrechen. Ein Anthropic Messages-Format-Gateway empfängt eine `HEAD /api/hello` Verbindungs-Aufwärm-Sonde, die Claude Code überspringt, wenn ein HTTP-Proxy oder Client-Zertifikat konfiguriert ist. Ein Amazon Bedrock-Format-Gateway empfängt eine `GET /inference-profiles?type=SYSTEM_DEFINED` Anfrage und, wenn das konfigurierte Modell ein Inferenzprofil ist, `GET /inference-profiles/{profile}` Lookups.

60 65 


152| Beta [Tool-Felder](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Tool-bezogene Beta-Header paaren sich mit Tool-Schema-Feldern wie `strict` und `defer_loading` | `400` mit Nennung des nicht erkannten Tool-Schema-Feldes, wenn der Body ohne seinen Header durchgeht | Leiten Sie beide weiter, oder [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |157| Beta [Tool-Felder](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Tool-bezogene Beta-Header paaren sich mit Tool-Schema-Feldern wie `strict` und `defer_loading` | `400` mit Nennung des nicht erkannten Tool-Schema-Feldes, wenn der Body ohne seinen Header durchgeht | Leiten Sie beide weiter, oder [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

153| [Aufwand](https://platform.claude.com/docs/de/build-with-claude/effort) und [strukturierte Ausgaben](https://platform.claude.com/docs/de/build-with-claude/structured-outputs) | Das `output_config` Body-Feld trägt Aufwand, strukturierte Ausgabeformat und Task-Budget-Einstellungen; jedes paart sich mit seinem eigenen Beta-Header | `400` mit Nennung von `output_config`, oft `Extra inputs are not permitted`, auf Bedrock- und Agent-Platform-Upstreams | Leiten Sie das Feld und seine Header zusammen weiter |158| [Aufwand](https://platform.claude.com/docs/de/build-with-claude/effort) und [strukturierte Ausgaben](https://platform.claude.com/docs/de/build-with-claude/structured-outputs) | Das `output_config` Body-Feld trägt Aufwand, strukturierte Ausgabeformat und Task-Budget-Einstellungen; jedes paart sich mit seinem eigenen Beta-Header | `400` mit Nennung von `output_config`, oft `Extra inputs are not permitted`, auf Bedrock- und Agent-Platform-Upstreams | Leiten Sie das Feld und seine Header zusammen weiter |

154| [Prompt Caching](/docs/de/prompt-caching) | Keine Beta-Paarung. Claude Code fügt `cache_control` Marker an `system` Blöcke und an `messages` Einträge an, einschließlich `role: "system"` Einträge, die mid-conversation angehängt werden | Kein Fehler: das Gespräch wird bei jedem Turn als unkacherter Input abgerechnet, sichtbar als hohe `input_tokens` mit wenig oder keiner Cache-Aktivität in `usage` | Leiten Sie `cache_control` unverändert weiter, wo immer es erscheint, und konvertieren Sie nicht Block-Form `system` oder Message-Inhalte in einfache Strings |159| [Prompt Caching](/docs/de/prompt-caching) | Keine Beta-Paarung. Claude Code fügt `cache_control` Marker an `system` Blöcke und an `messages` Einträge an, einschließlich `role: "system"` Einträge, die mid-conversation angehängt werden | Kein Fehler: das Gespräch wird bei jedem Turn als unkacherter Input abgerechnet, sichtbar als hohe `input_tokens` mit wenig oder keiner Cache-Aktivität in `usage` | Leiten Sie `cache_control` unverändert weiter, wo immer es erscheint, und konvertieren Sie nicht Block-Form `system` oder Message-Inhalte in einfache Strings |

155| [Token Counting](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Keine Beta-Paarung; verwendet den `count_tokens` Endpunkt | Claude Code fällt auf das Zählen der Kontextnutzung über den Messages-Endpunkt zurück | Stellen Sie den Endpunkt bereit, damit Token-Zählungen keine Inferenz-Anfragen verbrauchen |160| [Token Counting](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Keine Beta-Paarung; verwendet den `count_tokens` Endpunkt | Kein Fehler: Claude Code fällt auf eine zeichenbasierte Schätzung zurück, daher zeigt `/context` ungefähre Zählungen | Stellen Sie den Endpunkt für genaue Token-Zählungen bereit |

156 161 

157Die `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [Variablen](/docs/de/model-config) deklarieren Modellkapazitäten nur in den Provider-Konfigurationen: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY` und [`CLAUDE_CODE_USE_MANTLE`](/docs/de/amazon-bedrock#use-the-mantle-endpoint). Sie haben keine Auswirkung hinter einem `ANTHROPIC_BASE_URL` Gateway.162Die `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [Variablen](/docs/de/model-config) deklarieren Modellkapazitäten nur in den Provider-Konfigurationen: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY` und [`CLAUDE_CODE_USE_MANTLE`](/docs/de/amazon-bedrock#use-the-mantle-endpoint). Sie haben keine Auswirkung hinter einem `ANTHROPIC_BASE_URL` Gateway.

158 163 


160 Automatische Wiederholung und Fehlerweiterleitung165 Automatische Wiederholung und Fehlerweiterleitung

161</h3>166</h3>

162 167 

163Wenn das Upstream das `thinking` Feld, eine [Thinking-Signatur](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), eine Mid-Conversation-Systemnachricht oder den `cache_control` Marker auf einer dieser Nachrichten ablehnt, versucht Claude Code die Anfrage erneut und deaktiviert die abgelehnte Funktion für den Rest des Gesprächs. Claude Code versucht Kontextverwaltungs- oder Tool-Schema-Feld-Ablehnungen nicht erneut; diese `400` Fehler erreichen den Entwickler.168Was Claude Code nach einer Upstream-Ablehnung tut, hängt davon ab, was abgelehnt wurde:

169 

170* Wenn das Upstream das `thinking` Feld, eine Mid-Conversation-Systemnachricht oder den `cache_control` Marker auf einer solchen Nachricht ablehnt, versucht Claude Code die Anfrage erneut und deaktiviert die abgelehnte Funktion für den Rest des Gesprächs

171* Wenn das Upstream eine [Thinking-Signatur](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) ablehnt, versucht Claude Code die Anfrage ohne die früheren Thinking-Blöcke des Gesprächs erneut und hält sie aus jeder späteren Anfrage heraus. Neue Antworten enthalten immer noch Thinking

172* Claude Code versucht Ablehnungen von Kontextverwaltungs- oder Tool-Schema-Feldern nicht erneut, daher erreichen diese `400` Fehler den Entwickler

164 173 

165Die Wiederholungslogik gleicht die Fehlerformulierung des Upstreams ab, daher leiten Sie Fehler-Response-Bodies unverändert weiter. Ein Gateway, das Upstream-Fehler in seine eigene Hülle einwickelt, bricht den Wiederherstellungspfad, auch wenn es den Statuscode beibehält, es sei denn, die Nachricht der Hülle trägt ein stabiles `capability_rejected:` Token. [Claude Apps Gateway ersetzt diese Tokens für Cloud-Provider-Fehlerformulierungen](/docs/de/claude-apps-gateway-config#upstream-error-messages), zum Beispiel `capability_rejected: prompt_too_long`.174Die Wiederholungslogik gleicht die Fehlerformulierung des Upstreams ab, daher leiten Sie Fehler-Response-Bodies unverändert weiter. Ein Gateway, das Upstream-Fehler in seine eigene Hülle einwickelt, bricht den Wiederherstellungspfad, auch wenn es den Statuscode beibehält, es sei denn, die Nachricht der Hülle trägt ein stabiles `capability_rejected:` Token. [Claude Apps Gateway ersetzt diese Tokens für Cloud-Provider-Fehlerformulierungen](/docs/de/claude-apps-gateway-config#upstream-error-messages), zum Beispiel `capability_rejected: prompt_too_long`.

166 175 

managed-mcp.md +227 −100

Details

4 4 

5# Kontrollieren Sie den MCP-Serverzugriff für Ihre Organisation5# Kontrollieren Sie den MCP-Serverzugriff für Ihre Organisation

6 6 

7> Beschränken Sie, welche MCP-Server Benutzer hinzufügen oder mit verwalteten Konfigurationsdateien, Zulassungslisten und Sperrlisten verbinden können.7> Beschränken Sie, welche MCP-Server Benutzer hinzufügen oder verbinden können, oder stellen Sie Server für jeden Benutzer bereit, mit verwalteten Konfigurationsdateien, verwalteten Einstellungen, Zulassungslisten und Ablehnungslisten.

8 8 

9Standardmäßig kann jeder, der Claude Code ausführt, jeden beliebigen [MCP-Server](/docs/de/mcp) verbinden. Anthropic überprüft Konnektoren anhand seiner [Auflistungskriterien](https://claude.com/docs/connectors/building/review-criteria), bevor sie zum [Anthropic-Verzeichnis](https://claude.ai/directory) hinzugefügt werden, führt aber keine Sicherheitsprüfung durch und verwaltet keinen MCP-Server. Als Administrator können Sie einschränken, welche Server in Ihrer Organisation ausgeführt werden – von der Bereitstellung eines festen genehmigten Satzes bis zur vollständigen Deaktivierung von MCP.9Standardmäßig kann jeder, der Claude Code ausführt, jeden beliebigen [MCP-Server](/docs/de/mcp) verbinden, den er wählt. Anthropic überprüft Konnektoren anhand seiner [Auflistungskriterien](https://claude.com/docs/connectors/building/review-criteria), bevor sie zum [Anthropic-Verzeichnis](https://claude.ai/directory) hinzugefügt werden, führt aber keine Sicherheitsprüfung durch und verwaltet keinen MCP-Server. Als Administrator können Sie einschränken, welche Server in Ihrer Organisation ausgeführt werden, von der Bereitstellung eines festen genehmigten Satzes bis zur vollständigen Deaktivierung von MCP, und Sie können Server für jeden Benutzer bereitstellen.

10 10 

11Diese Einschränkungen gelten für die Server, die Claude Code selbst lädt, einschließlich der Konnektoren, die es von claude.ai abruft. Konnektoren, die die Desktop-App an ihre lokalen und SSH-Sitzungen liefert, kommen prozessinternal an und werden stattdessen von Ihren claude.ai-Organisationseinstellungen aus gesteuert; [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) zeigt, welche Kontrollen für Konnektoren in jeder Art von Sitzung gelten, einschließlich Cloud-Sitzungen.11Diese Einschränkungen gelten für die Server, die Claude Code selbst lädt, einschließlich der Konnektoren, die es von claude.ai abruft. Konnektoren, die die Desktop-App an ihre lokalen und SSH-Sitzungen liefert, kommen prozessinternal an und werden stattdessen von Ihren claude.ai-Organisationseinstellungen aus gesteuert; [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) zeigt, welche Kontrollen für Konnektoren in jeder Art von Sitzung gelten, einschließlich Cloud-Sitzungen.

12 12 

13Diese Seite behandelt folgende Themen:13Diese Seite behandelt, wie Sie:

14 14 

15* [Wählen Sie ein Muster](#choose-a-pattern), das dem erforderlichen Kontrollumfang entspricht15* [Ein Muster wählen](#choose-a-pattern), das dem erforderlichen Kontrollumfang entspricht

16* [Stellen Sie einen festen Serversatz mit `managed-mcp.json` bereit](#exclusive-control-with-managed-mcp-json), einschließlich [Deaktivierung von MCP vollständig](#disable-mcp-entirely)16* [Einen festen Serversatz mit `managed-mcp.json` bereitstellen](#exclusive-control-with-managed-mcp-json), einschließlich wie Sie [MCP vollständig deaktivieren](#disable-mcp-entirely)

17* [Kontrollieren Sie Server mit Zulassungslisten und Sperrlisten](#policy-based-control-with-allowlists-and-denylists)17* [Server durch verwaltete Einstellungen bereitstellen](#provide-servers-through-managed-settings), während Benutzer ihre eigenen behalten

18* [Teilen Sie Benutzern mit, was sie erwarten können](#how-restrictions-appear-to-users), wenn eine Einschränkung einen Server blockiert18* [Server mit Zulassungslisten und Ablehnungslisten kontrollieren](#policy-based-control-with-allowlists-and-denylists)

19* [Benutzer informieren, was sie erwarten können](#how-restrictions-appear-to-users), wenn eine Einschränkung einen Server blockiert

19* [Überwachen Sie, welche Server Ihre Organisation tatsächlich nutzt](#monitor-mcp-usage)20* [Überwachen Sie, welche Server Ihre Organisation tatsächlich nutzt](#monitor-mcp-usage)

20 21 

21<Note>22<Note>


26 Wählen Sie ein Muster27 Wählen Sie ein Muster

27</h2>28</h2>

28 29 

29Claude Code unterstützt eine Reihe von Einschränkungsstufen. Jedes Muster verwendet einen oder beide der unten behandelten Mechanismen: `managed-mcp.json` zur Bereitstellung eines festen Satzes und `allowedMcpServers`/`deniedMcpServers` zum Filtern der Benutzerkonfiguration.30Claude Code unterstützt eine Reihe von Einschränkungsstufen. Jedes Muster verwendet einen oder mehrere der folgenden Mechanismen: `managed-mcp.json` zum Bereitstellen eines festen Satzes, die verwaltete Einstellung `managedMcpServers` zum Bereitstellen von Servern neben den von Benutzern hinzugefügten und `allowedMcpServers`/`deniedMcpServers` zum Filtern dessen, was Benutzer konfigurieren.

30 31 

31| Muster | Was es tut | Konfigurieren |32| Muster | Funktion | Konfigurieren |

32| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- |33| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- |

33| **MCP deaktivieren** | Keine Server werden geladen, außer [In-Process-Servern, die die App registriert, die die Sitzung gestartet hat](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` mit einer leeren Serverzuordnung |34| **MCP deaktivieren** | Keine Server werden geladen, außer [In-Process-Servern, die die App registriert, die die Sitzung gestartet hat](#exclusive-control-with-managed-mcp-json) und alle, die Sie [über `managedMcpServers` bereitstellen](#provide-servers-through-managed-settings) | `managed-mcp.json` mit einer leeren Serverzuordnung |

34| **Feste Bereitstellung** | Jeder Benutzer erhält die gleichen Server und kann keine anderen hinzufügen | `managed-mcp.json` mit den gewünschten Servern |35| **Feste Bereitstellung** | Jeder Benutzer erhält die gleichen Server und kann keine anderen hinzufügen | `managed-mcp.json` mit den gewünschten Servern |

36| **Bereitgestellte Server** | Jeder Benutzer erhält die Remote-Server, die Sie auflisten, und behält seine eigenen | `managedMcpServers` in verwalteten Einstellungen |

35| **Genehmigter Katalog** | Veröffentlichen Sie eine Liste genehmigter Server; Benutzer fügen die gewünschten hinzu, alles andere wird blockiert | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **Genehmigter Katalog** | Veröffentlichen Sie eine Liste genehmigter Server; Benutzer fügen die gewünschten hinzu, alles andere wird blockiert | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |

36| **Nur Plugin-Server** | Benutzer können keine Server über `~/.claude.json` oder `.mcp.json` hinzufügen; Plugin-Server werden weiterhin geladen | [`strictPluginOnlyCustomization`](/docs/de/settings-reference#strictpluginonlycustomization) mit `mcp` in der Liste |38| **Nur Plugin-Server** | Benutzer können keine Server über `~/.claude.json` oder `.mcp.json` hinzufügen; Plugin-Server werden weiterhin geladen | [`strictPluginOnlyCustomization`](/docs/de/settings-reference#strictpluginonlycustomization) mit `mcp` in der Liste |

37| **Soft-Zulassungsliste** | Erzwingen Sie eine Zulassungsliste, die Benutzer in ihren eigenen Einstellungen erweitern können | `allowedMcpServers` ohne `allowManagedMcpServersOnly` |39| **Soft-Allowlist** | Erzwingen Sie eine Allowlist, die Benutzer in ihren eigenen Einstellungen erweitern können | `allowedMcpServers` ohne `allowManagedMcpServersOnly` |

38| **Nur Sperrliste** | Blockieren Sie bekannt schlechte Server, erlauben Sie alles andere | `deniedMcpServers` |40| **Nur Denylist** | Blockieren Sie bekannt schlechte Server, erlauben Sie alles andere | `deniedMcpServers` |

39| **Keine Einschränkungen** | Benutzer fügen alles hinzu | Stellen Sie keine verwaltete MCP-Konfiguration bereit |41| **Keine Einschränkungen** | Benutzer fügen alles hinzu | Stellen Sie keine verwaltete MCP-Konfiguration bereit |

40 42 

41<Note>43<Note>

42 Claude Code hat keine integrierte MCP-Serverregistrierung, die Benutzer durchsuchen und installieren können. Für das Muster des genehmigten Katalogs teilen Sie die genehmigte Liste und ihre `claude mcp add`-Befehle an einem Ort, den Ihre Benutzer finden, z. B. einem internen Wiki, oder verteilen Sie die Server als Plugins über einen [verwalteten Plugin-Marketplace](/docs/de/plugin-marketplaces#managed-marketplace-restrictions), damit Benutzer sie von `/plugin` durchsuchen und installieren können.44 Claude Code hat keine integrierte MCP-Server-Registry, die Benutzer durchsuchen und installieren können. Für das Muster des genehmigten Katalogs teilen Sie die genehmigte Liste und ihre `claude mcp add`-Befehle an einem Ort, an dem Ihre Benutzer sie finden, z. B. in einem internen Wiki, oder verteilen Sie die Server als Plugins über einen [verwalteten Plugin-Marketplace](/docs/de/plugin-marketplaces#managed-marketplace-restrictions), damit Benutzer sie von `/plugin` durchsuchen und installieren können.

43</Note>45</Note>

44 46 

45<h2 id="exclusive-control-with-managed-mcp-json">47<h2 id="exclusive-control-with-managed-mcp-json">

46 Exklusive Kontrolle mit managed-mcp.json48 Exklusive Kontrolle mit managed-mcp.json

47</h2>49</h2>

48 50 

49Wenn Sie eine `managed-mcp.json`-Datei bereitstellen, lädt Claude Code nur die Server, die diese Datei definiert, plus alle In-Process-Server, die die App registriert, die die Sitzung gestartet hat, wie z. B. der eigene Server der VS Code-Erweiterung oder die [Konnektoren, die die Desktop-App bereitstellt](/docs/de/mcp#how-connectors-reach-claude-code). Benutzer können keine anderen MCP-Server hinzufügen, ändern oder verwenden, einschließlich Plugin-bereitgestellter Server und Server, die mit dem [`--mcp-config`-CLI-Flag](/docs/de/cli-reference#cli-flags) übergeben werden. Die Datei unterdrückt auch die claude.ai-Konnektoren, die Claude Code selbst abruft, es sei denn, Sie [erlauben sie neben dem verwalteten Satz](#allow-claude-ai-connectors-alongside-the-managed-set).51Wenn Sie eine `managed-mcp.json`-Datei bereitstellen, lädt Claude Code nur die Server, die diese Datei definiert, die Server, die Sie [über `managedMcpServers` bereitstellen](#provide-servers-through-managed-settings), sowie alle In-Process-Server, die die Anwendung registriert, die die Sitzung gestartet hat, wie beispielsweise der eigene Server der VS Code-Erweiterung oder die [Konnektoren, die die Desktop-Anwendung bereitstellt](/docs/de/mcp#how-connectors-reach-claude-code). Benutzer können keine anderen MCP-Server hinzufügen, ändern oder verwenden, einschließlich Plugin-bereitgestellter Server und Server, die mit dem [`--mcp-config`-CLI-Flag](/docs/de/cli-reference#cli-flags) übergeben werden. Die Datei unterdrückt auch die claude.ai-Konnektoren, die Claude Code selbst abruft, es sei denn, Sie [erlauben sie neben dem verwalteten Satz](#allow-claude-ai-connectors-alongside-the-managed-set).

50 52 

51Was ein Benutzer sieht, wenn eine Sitzung `--mcp-config`-Server erhält, hängt davon ab, wo die Sitzung ausgeführt wird:53<h3 id="deploy-managed-mcp-json">

52 54 managed-mcp.json bereitstellen

53* Auf einer Workstation beendet Claude Code beim Start mit `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.55</h3>

54* In [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf einem Host, auf dem die Datei bereitgestellt ist, wie z. B. einem [selbstgehosteten Runner](/docs/de/self-hosted-environments-configuration#mcp-servers), startet Claude Code nur mit den verwalteten Servern und überspringt die claude.ai-Konnektoren und andere Server, die der Cloud-Host durch `--mcp-config` bereitstellt. Nichts in der Sitzung teilt dem Benutzer mit, welche Server ausgelassen wurden. Claude Code nennt sie in einer Warnung auf stderr, die ein selbstgehosteter Runner auf der `debug`-Protokollebene aufzeichnet. Vor v2.1.229 beendeten diese Sitzungen mit dem gleichen Fehler, den eine Workstation anzeigt.

55 

56Wenn ein Benutzer `--strict-mcp-config` übergibt, beendet Claude Code beim Start sowohl auf einer Workstation als auch in einer Cloud-Sitzung, da dieses Flag auffordert, den verwalteten Satz zu ersetzen.

57 

58Zwei weitere Einstellungen können den verwalteten Satz weiter filtern:

59 

60* `allowedMcpServers` und `deniedMcpServers` gelten auch für verwaltete Server, daher wird ein verwalteter Server, der diese nicht erfüllt, nicht geladen.

61* Die eigenen `deniedMcpServers` eines Benutzers werden aus seinen Einstellungen zusammengeführt, daher können Benutzer einen verwalteten Server für sich selbst blockieren.

62 56 

63Siehe [Wie ein Server bewertet wird](#how-a-server-is-evaluated) für die vollständige Reihenfolge der Überprüfungen.57`managed-mcp.json` ist eine eigenständige Datei und kann daher nicht über [servergesteuerte Einstellungen](/docs/de/server-managed-settings) bereitgestellt werden. Um Server stattdessen über verwaltete Einstellungen bereitzustellen, ohne exklusive Kontrolle, verwenden Sie [`managedMcpServers`](#provide-servers-through-managed-settings).

64 58 

65`managed-mcp.json` ist eine eigenständige Datei und kann nicht über [serververwaltete Einstellungen](/docs/de/server-managed-settings) bereitgestellt werden. Jeder Prozess, der in einen Systempfad mit Administratorrechten schreiben kann, kann sie bereitstellen. In großem Maßstab geschieht dies normalerweise über Geräteverwaltungstools wie Jamf oder ein Konfigurationsprofil auf macOS, Gruppenrichtlinie oder Intune unter Windows oder Ihre Fleet-Verwaltung Ihrer Wahl unter Linux. Claude Code sucht die Datei unter einem dieser Pfade:59Jeder Prozess, der in einen Systempfad mit Administratorrechten schreiben kann, kann die Datei bereitstellen. Über eine Flotte hinweg geschieht dies normalerweise über Geräteverwaltungstools wie Jamf oder ein Konfigurationsprofil auf macOS, Gruppenrichtlinie oder Intune unter Windows oder Ihre Flottenverwaltung Ihrer Wahl unter Linux. Claude Code sucht die Datei unter einem dieser Pfade:

66 60 

67| Plattform | Pfad |61| Plattform | Pfad |

68| :------------ | :--------------------------------------------------------- |62| :------------ | :--------------------------------------------------------- |


96```90```

97 91 

98<h3 id="authenticate-with-per-user-credentials">92<h3 id="authenticate-with-per-user-credentials">

99 Authentifizieren Sie sich mit benutzerspezifischen Anmeldedaten93 Mit benutzerspezifischen Anmeldedaten authentifizieren

100</h3>94</h3>

101 95 

102Jeder Benutzer auf dem Computer kann diese Datei lesen, daher speichern Sie keine API-Schlüssel oder andere Anmeldedaten in `env`-Blöcken. Übergeben Sie benutzerspezifische Anmeldedaten stattdessen mit einem dieser:96Jeder Benutzer auf dem Computer kann diese Datei lesen, daher speichern Sie keine API-Schlüssel oder andere Anmeldedaten in `env`-Blöcken. Übergeben Sie stattdessen benutzerspezifische Anmeldedaten mit einer dieser Optionen:

103 97 

104* [`${VAR}`-Erweiterung](/docs/de/mcp#environment-variable-expansion-in-mcp-json) zum Lesen von Geheimnissen aus der Umgebung jedes Benutzers.98* [`${VAR}`-Erweiterung](/docs/de/mcp#environment-variable-expansion-in-mcp-json) zum Lesen von Geheimnissen aus der Umgebung jedes Benutzers.

105* [OAuth oder benutzerspezifische Header](/docs/de/mcp#authenticate-with-remote-mcp-servers), damit sich jeder Benutzer selbst authentifiziert.99* [OAuth oder benutzerspezifische Header](/docs/de/mcp#authenticate-with-remote-mcp-servers), damit sich jeder Benutzer selbst authentifiziert.

106* [`headersHelper`](/docs/de/mcp#use-dynamic-headers-for-custom-authentication) zum Generieren von Anmeldedaten zum Verbindungszeitpunkt.100* [`headersHelper`](/docs/de/mcp#use-dynamic-headers-for-custom-authentication) zum Generieren von Anmeldedaten zum Verbindungszeitpunkt.

107 101 

102<h3 id="servers-passed-with-mcp-config-or-strict-mcp-config">

103 Server, die mit `--mcp-config` oder `--strict-mcp-config` übergeben werden

104</h3>

105 

106Wenn eine Sitzung Server über `--mcp-config` erhält, während `managed-mcp.json` bereitgestellt wird, unterscheidet sich das, was der Benutzer sieht, zwischen einer Workstation und einer Cloud-Sitzung:

107 

108* Auf einer Workstation beendet Claude Code beim Start mit `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

109* In [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf einem Host, auf dem die Datei bereitgestellt wird, wie beispielsweise einem [selbstgehosteten Runner](/docs/de/self-hosted-environments-configuration#mcp-servers), startet Claude Code nur mit den verwalteten Servern und überspringt die claude.ai-Konnektoren und andere Server, die der Cloud-Host über `--mcp-config` bereitstellt. Nichts in der Sitzung teilt dem Benutzer mit, welche Server ausgelassen wurden. Claude Code benennt sie in einer Warnung auf stderr, die ein selbstgehosteter Runner auf der `debug`-Protokollebene aufzeichnet.

110 

111Wenn ein Benutzer `--strict-mcp-config` übergibt, beendet Claude Code beim Start sowohl auf einer Workstation als auch in einer Cloud-Sitzung, da dieses Flag auffordert, den verwalteten Satz zu ersetzen.

112 

113<h3 id="how-allowlists-and-denylists-apply-to-the-managed-set">

114 Wie Zulassungslisten und Ablehnungslisten auf den verwalteten Satz angewendet werden

115</h3>

116 

117Die Ablehnungsliste kann die Server in `managed-mcp.json` weiter filtern:

118 

119* `deniedMcpServers` gilt auch für verwaltete Server, daher wird ein verwalteter Server, der einem Eintrag entspricht, nicht geladen.

120* Die eigene `deniedMcpServers` eines Benutzers wird aus seinen Einstellungen zusammengeführt, daher können Benutzer einen verwalteten Server für sich selbst blockieren.

121 

122`allowedMcpServers` gilt nicht für die Server in `managed-mcp.json`, mit einer Ausnahme: Claude Code überprüft immer noch einen Server, dessen Definition [`${VAR}`-Erweiterung](/docs/de/mcp#environment-variable-expansion-in-mcp-json) verwendet, gegen die Zulassungsliste, da die effektive Konfiguration dieses Servers aus der Umgebung jedes Benutzers stammt und nicht nur aus der Datei. Vor v2.1.259 musste jeder verwaltete Server die Zulassungsliste passieren, wenn eine gesetzt war. Siehe [Wie ein Server evaluiert wird](#how-a-server-is-evaluated) für die Felder, die die `${VAR}`-Überprüfung auslösen, und die vollständige Reihenfolge der Überprüfungen.

123 

124Wenn Sie `allowedMcpServers` verwendet haben, um zu verhindern, dass einige Ihrer eigenen `managed-mcp.json`-Server geladen werden, beginnen diese Server beim ersten Start jedes Benutzers von v2.1.259 oder später zu laden, es sei denn, sie verwenden `${VAR}`-Erweiterung, ohne Aufforderung oder Benachrichtigung: nur `deniedMcpServers` wird weiterhin von diesen Servern subtrahiert. Fügen Sie Ablehnungslisteneinträge für sie hinzu, oder stellen Sie eine separate `managed-mcp.json` pro Gruppe bereit, bevor Ihre Benutzer ein Upgrade durchführen.

125 

108<h3 id="validate-the-configuration">126<h3 id="validate-the-configuration">

109 Validieren Sie die Konfiguration127 Konfiguration validieren

110</h3>128</h3>

111 129 

112Um zu bestätigen, dass die Datei wirksam ist, führen Sie zwei Überprüfungen auf einem verwalteten Computer durch:130Um zu bestätigen, dass die Datei wirksam ist, führen Sie zwei Überprüfungen auf einem verwalteten Computer durch:

113 131 

1141. `claude mcp list` zeigt nur die Server in `managed-mcp.json`. Wenn die eigenen Server eines Benutzers immer noch angezeigt werden, wird die Datei nicht gelesen; überprüfen Sie den Pfad und die Berechtigungen.1321. `claude mcp list` zeigt nur die Server in `managed-mcp.json` plus alle, die Sie über `managedMcpServers` bereitstellen. Wenn die eigenen Server eines Benutzers immer noch angezeigt werden, wird die Datei nicht gelesen; überprüfen Sie den Pfad und die Berechtigungen.

1152. `claude mcp add --transport http test https://example.com/mcp` schlägt mit `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` fehl. Die URL muss kein echter Server sein, da die Richtlinienprüfung den Befehl ablehnt, bevor etwas kontaktiert wird.1332. `claude mcp add --transport http test https://example.com/mcp` schlägt mit `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` fehl. Die URL muss kein echter Server sein, da die Richtlinienüberprüfung den Befehl ablehnt, bevor etwas kontaktiert wird.

116 134 

117<h3 id="disable-mcp-entirely">135<h3 id="disable-mcp-entirely">

118 Deaktivieren Sie MCP vollständig136 MCP vollständig deaktivieren

119</h3>137</h3>

120 138 

121Stellen Sie eine `managed-mcp.json` mit einer leeren Serverzuordnung bereit, um jeden MCP-Server außer [In-Process-Servern zu blockieren, die die App registriert, die die Sitzung gestartet hat](#exclusive-control-with-managed-mcp-json):139Stellen Sie eine `managed-mcp.json` mit einer leeren Serverzuordnung bereit, um jeden MCP-Server außer [In-Process-Servern, die die Anwendung registriert, die die Sitzung gestartet hat](#exclusive-control-with-managed-mcp-json), zu blockieren:

122 140 

123```json theme={null}141```json theme={null}

124{142{


126}144}

127```145```

128 146 

129`claude mcp add` schlägt mit dem oben genannten Enterprise-Richtlinienfehler fehl. Server, die Benutzer zuvor konfiguriert hatten, werden beim nächsten Starten einer Sitzung nicht mehr geladen, ohne dass eine Warnung angezeigt wird, dass die Richtlinie der Grund ist.147`claude mcp add` schlägt mit dem oben genannten Enterprise-Richtlinienfehler fehl. Server, die Benutzer zuvor konfiguriert hatten, werden beim nächsten Start einer Sitzung nicht mehr geladen, ohne Warnung, dass die Richtlinie der Grund ist. Server, die Sie über `managedMcpServers` bereitstellen, werden weiterhin unter einer leeren Zuordnung geladen, daher lassen Sie diesen Schlüssel auch ungesetzt, um MCP vollständig zu deaktivieren.

130 148 

131<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">149<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

132 Erlauben Sie claude.ai-Konnektoren neben dem verwalteten Satz150 claude.ai-Konnektoren neben dem verwalteten Satz erlauben

133</h3>151</h3>

134 152 

135Standardmäßig unterdrückt die Bereitstellung von `managed-mcp.json` die [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai), die Claude Code selbst abruft, einschließlich Konnektoren, die ein Administrator für die Organisation in der claude.ai-Verwaltungskonsole konfiguriert hat. Um diese Konnektoren neben den Servern in `managed-mcp.json` zu laden, setzen Sie `"allowAllClaudeAiMcps": true` in einer [verwalteten Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices).153Standardmäßig unterdrückt die Bereitstellung von `managed-mcp.json` die [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai), die Claude Code selbst abruft, einschließlich Konnektoren, die ein Administrator für die Organisation in der claude.ai-Verwaltungskonsole konfiguriert hat. Um diese Konnektoren neben den Servern in `managed-mcp.json` zu laden, setzen Sie `"allowAllClaudeAiMcps": true` in einer [verwalteten Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices).

136 154 

137Mit der aktivierten Einstellung lädt Claude Code die gleichen claude.ai-Konnektoren, die es laden würde, wenn `managed-mcp.json` nicht bereitgestellt würde. [Zulassungslisten und Ablehnungslisten](#policy-based-control-with-allowlists-and-denylists) gelten weiterhin für diese Konnektoren, daher können Sie bestimmte mit `deniedMcpServers` blockieren. Die Einstellung betrifft nur die claude.ai-Konnektoren, die Claude Code selbst abruft; Plugin-bereitgestellte Server bleiben unterdrückt.155Mit der aktivierten Einstellung lädt Claude Code die gleichen claude.ai-Konnektoren, die es laden würde, wenn `managed-mcp.json` nicht bereitgestellt würde. [Zulassungslisten und Ablehnungslisten](#policy-based-control-with-allowlists-and-denylists) gelten weiterhin für diese Konnektoren, daher können Sie bestimmte mit `deniedMcpServers` blockieren. Die Einstellung betrifft nur die claude.ai-Konnektoren, die Claude Code selbst abruft; Plugin-bereitgestellte Server bleiben unterdrückt.

138 156 

139Cloud-Sitzungen und die lokalen und SSH-Sitzungen der Desktop-App erhalten Konnektoren auf andere Weise, wie in [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) beschrieben. Eine `managed-mcp.json` auf dem Host, der eine Cloud-Sitzung ausführt, wie z. B. ein [selbstgehosteter Runner-Host](/docs/de/self-hosted-environments-configuration#mcp-servers), unterdrückt die Konnektoren dieser Sitzung, unabhängig davon, ob Sie `allowAllClaudeAiMcps` setzen. Keine `managed-mcp.json` erreicht die Konnektoren, die die Desktop-App an ihre lokalen und SSH-Sitzungen bereitstellt.157Cloud-Sitzungen und die lokalen und SSH-Sitzungen der Desktop-Anwendung erhalten Konnektoren auf andere Weise, wie in [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) beschrieben. Eine `managed-mcp.json` auf dem Host, der eine Cloud-Sitzung ausführt, wie beispielsweise ein [selbstgehosteter Runner-Host](/docs/de/self-hosted-environments-configuration#mcp-servers), unterdrückt die Konnektoren dieser Sitzung, unabhängig davon, ob Sie `allowAllClaudeAiMcps` setzen oder nicht. Keine `managed-mcp.json` erreicht die Konnektoren, die die Desktop-Anwendung an ihre lokalen und SSH-Sitzungen bereitstellt.

158 

159Claude Code liest `allowAllClaudeAiMcps` nur aus von Administratoren kontrollierten Richtlinienebenen: servergesteuerte Einstellungen, ein von MDM bereitgestellter plist- oder HKLM-Registrierungsschlüssel oder eine System-`managed-settings.json`-Datei. Das Platzieren in Benutzer- oder Projekteinstellungen hat keine Auswirkung, daher können Benutzer Konnektoren, die exklusive Kontrolle unterdrückt hat, nicht erneut aktivieren.

160 

161<h2 id="provide-servers-through-managed-settings">

162 Server über verwaltete Einstellungen bereitstellen

163</h2>

140 164 

141Claude Code liest `allowAllClaudeAiMcps` nur aus von Administratoren kontrollierten Richtlinien-Ebenen: serververwaltete Einstellungen, ein von MDM bereitgestellter plist- oder HKLM-Registrierungsschlüssel oder eine System-`managed-settings.json`-Datei. Das Platzieren in Benutzer- oder Projekteinstellungen hat keine Auswirkung, daher können Benutzer Konnektoren, die exklusive Kontrolle unterdrückt hat, nicht erneut aktivieren.165Um jedem Benutzer einen Satz von Remote-MCP-Servern zur Verfügung zu stellen, ohne die ausschließliche Kontrolle über MCP zu übernehmen, listen Sie diese unter `managedMcpServers` in einer [verwalteten Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices) auf: servergesteuerte Einstellungen, eine [Claude-Apps-Gateway](/docs/de/claude-apps-gateway-config#what-goes-in-cli)-Richtlinie, ein MDM-Profil oder eine Registrierungsrichtlinie oder `managed-settings.json`. Benutzer behalten die Server, die sie selbst hinzufügen, und erhalten Ihre zusätzlich. Erfordert Claude Code v2.1.259 oder später. Frühere Clients ignorieren den Schlüssel.

166 

167Der Wert ist ein Objekt, das nach Servername verschlüsselt ist. Jeder Eintrag hat die gleiche Form wie ein HTTP- oder SSE-Server in einer Projekt-[`.mcp.json`](/docs/de/mcp#project-scope)-Datei, einschließlich der optionalen `headers`- und `oauth`-Member, die in [Authentifizierung mit Remote-MCP-Servern](/docs/de/mcp#authenticate-with-remote-mcp-servers) beschrieben sind. Dieses Beispiel stellt einen Suchserver bereit, bei dem sich jeder Benutzer mit OAuth anmeldet, und einen Datensatzserver, der einen Header sendet, den Ihre Organisation ausgibt:

168 

169```json theme={null}

170{

171 "managedMcpServers": {

172 "search": {

173 "type": "http",

174 "url": "https://search.example.com/mcp"

175 },

176 "records": {

177 "type": "http",

178 "url": "https://records.example.com/mcp",

179 "headers": {

180 "X-Records-Key": "key-issued-for-all-claude-code-users"

181 }

182 }

183 }

184}

185```

186 

187Jeder, der die verwalteten Einstellungen auf einem Computer lesen kann, einschließlich des Benutzers, kann einen Header-Wert lesen, den Sie hier festlegen. Verwenden Sie eine Anmeldeinformation, die für diese gesamte Zielgruppe ausgestellt wurde, oder lassen Sie `headers` weg und lassen Sie jeden Benutzer sich mit OAuth anmelden.

188 

189<h3 id="what-an-entry-can-contain">

190 Was ein Eintrag enthalten kann

191</h3>

192 

193Claude Code lädt einen Eintrag nur, wenn er alle folgenden Überprüfungen besteht. Es verwirft einen Eintrag, der eine nicht besteht, zeichnet einen Hinweis auf, den Sie mit `/status` lesen können, und lädt trotzdem die anderen Einträge:

194 

195* `type` ist `http` oder `sse`. Wie in `.mcp.json` wird `streamable-http` als Alias für `http` akzeptiert.

196* `url` ist eine `https://`-URL. Claude Code lehnt eine einfache `http://`-URL ab, einschließlich einer, die auf `localhost` verweist.

197* Der Eintrag hat keinen `command`-, `args`-, `env`- oder `headersHelper`-Member, daher nennt ein verwaltetes Einstellungsdokument niemals ein Programm, das auf dem Computer eines Benutzers ausgeführt werden soll.

198* Kein Wert enthält einen `${VAR}`-Verweis. Claude Code erweitert Umgebungsvariablen in diesen Einträgen nicht, daher schreiben Sie Literalwerte.

199* Der Servername enthält nur Buchstaben, Zahlen, Bindestriche und Unterstriche, und kein Schlüssel oder Wert enthält Steuerzeichen oder unsichtbare Formatierungszeichen.

200 

201Claude Desktop hat eine verwaltete Einstellung mit dem gleichen Namen, deren Wert ein Array einer anderen Eintragform ist, daher kopieren Sie nicht eine in die andere. Claude Code akzeptiert die Array-Form nicht und zeichnet stattdessen einen Hinweis auf, anstatt sie zu laden.

202 

203Ein Claude-Apps-Gateway führt die gleichen Überprüfungen beim Starten durch; siehe [MCP-Server in einer Richtlinie](/docs/de/claude-apps-gateway-config#mcp-servers-in-a-policy).

204 

205<h3 id="how-provided-servers-load">

206 Wie bereitgestellte Server geladen werden

207</h3>

208 

209Diese Regeln entscheiden, was geladen wird, wenn ein bereitgestellter Server mit einer anderen Serverdefinition oder mit einer anderen Einstellung auf dieser Seite überlappt:

210 

211* Ein bereitgestellter Server hat Vorrang vor einem Server mit dem gleichen Namen im lokalen, Projekt- oder Benutzerbereich und vor einem Plugin-Server oder claude.ai-Connector, der auf die gleiche URL verweist.

212* Wenn Sie auch `managed-mcp.json` bereitstellen, lädt Claude Code seine Server und die bereitgestellten Server zusammen, und der Eintrag der Datei hat Vorrang, wenn beide einen Namen definieren.

213* Bereitgestellte Server werden weiterhin geladen, wenn [`strictPluginOnlyCustomization`](/docs/de/settings-reference#strictpluginonlycustomization) die `mcp`-Oberfläche sperrt.

214* `deniedMcpServers` gilt für bereitgestellte Server, einschließlich Einträge aus den eigenen Einstellungen eines Benutzers, daher kann ein Benutzer einen für sich selbst blockieren. Bereitgestellte Server benötigen keinen `allowedMcpServers`-Eintrag.

215 

216Wenn Sie auch `managed-mcp.json` nicht bereitgestellt haben, behalten die Pro-Lauf-Flags ihre Bedeutung:

217 

218* Ein Server, den ein Benutzer mit `--mcp-config` unter dem gleichen Namen übergibt, ersetzt den bereitgestellten für diesen Lauf und wird gegen `allowedMcpServers` überprüft.

219* `--strict-mcp-config` lässt bereitgestellte Server zusammen mit jedem anderen konfigurierten Server weg.

220 

221Mit bereitgestelltem `managed-mcp.json` verhalten sich beide Flags wie [Ausschließliche Kontrolle mit managed-mcp.json](#exclusive-control-with-managed-mcp-json) beschreibt.

222 

223<h3 id="what-users-can-see-and-change">

224 Was Benutzer sehen und ändern können

225</h3>

226 

227Benutzer können einen bereitgestellten Server nicht bearbeiten oder entfernen:

228 

229* `claude mcp remove` meldet, dass der Server von der Organisation bereitgestellt wird.

230* Wenn Sie auch `managed-mcp.json` nicht bereitgestellt haben, wird ein Eintrag, den ein Benutzer unter dem gleichen Namen hinzufügt, gespeichert, aber nicht verwendet, während Ihrer vorhanden ist.

231* Benutzer können einen bereitgestellten Server für sich selbst in [`/mcp`](/docs/de/mcp#disable-a-server-without-removing-it) immer noch ausschalten, das bereitgestellte Server unter **Managed MCPs** auflistet.

232 

233`claude mcp get` und `/mcp` zeigen die URL eines bereitgestellten Servers nur als seinen Host an, zum Beispiel `https://mcp.example.com/…`, und `claude mcp get` zeigt seine Header-Namen ohne ihre Werte an.

234 

235<h3 id="where-managedmcpservers-applies">

236 Wo `managedMcpServers` gilt

237</h3>

238 

239Claude Code liest `managedMcpServers` aus der verwalteten Quelle, die es unter [Wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) auswählt. Wenn diese Quelle [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior) auf `"merge"` setzt, stellt Claude Code stattdessen die Server von jeder Admin-Quelle bereit, und wenn zwei Quellen den gleichen Namen definieren, gilt der Eintrag der höher eingestuften Quelle vollständig. Es liest den Schlüssel niemals aus der benutzergeschriebenen HKCU-Registrierung, aus [übergeordneten Einstellungen, die ein Embedding-Host bereitstellt](/docs/de/managed-settings#parent-settings-from-embedding-hosts), oder aus Benutzer-, Projekt- oder lokalen Einstellungsdateien, wo es den Schlüssel mit einer Warnung verwirft.

240 

241Claude Code liest den Schlüssel nicht in der Code-Registerkarte der Claude Desktop-App bei einer Drittanbieter-Bereitstellung oder in den Cowork-Sitzungen der App, da Claude Desktop die MCP-Server dieser Sitzungen selbst bereitstellt und sperrt. `/status` und `claude doctor` sagen so, wenn Ihre verwalteten Einstellungen den Schlüssel dort tragen.

242 

243<h3 id="when-provided-servers-connect">

244 Wenn bereitgestellte Server verbunden werden

245</h3>

246 

247Wenn `managedMcpServers` über servergesteuerte Einstellungen ankommt, folgt sein Timing [Abruf- und Caching-Verhalten](/docs/de/server-managed-settings#fetch-and-caching-behavior):

248 

249* Auf einem Computer mit zwischengespeicherten Einstellungen hält Claude Code die zwischengespeicherte Kopie dieses Schlüssels zurück, bis der Server die Einstellungen für die Sitzung bestätigt, und wartet auf diese Bestätigung, bevor MCP-Server geladen werden. Wenn die Bestätigung fehlschlägt, wird die Sitzung ohne die bereitgestellten Server fortgesetzt und `/status` sagt, dass sie zurückgehalten werden.

250* Beim ersten Start eines Computers, wenn noch nichts zwischengespeichert ist, verbindet eine interaktive Sitzung, die vor dem Eintreffen der Einstellungen startet, die bereitgestellten Server, sobald sie eintreffen, und ein `claude -p`-Lauf, der bereits gestartet hat, kann ohne sie beendet werden.

251 

252Mit [Gateway-Anmeldung](/docs/de/claude-apps-gateway-config#precedence-with-other-managed-sources) lädt Claude Code die Richtlinie vor dem Start der Sitzung, daher verzögert oder überspringt keiner der Fälle die bereitgestellten Server.

253 

254Interaktive Sitzungen, die bereits ausgeführt werden, wenden Ihre Änderungen am Schlüssel an:

255 

256* **Server hinzufügen**: Claude Code verbindet ihn, wenn die aktualisierten Einstellungen eintreffen, ohne einen Neustart.

257* **Eintrag eines Servers ändern**: Diese Sitzungen verbinden sich mit der neuen Definition erneut.

258* **Server entfernen**: Eine laufende interaktive Sitzung trennt ihn, sobald sie die geänderten Einstellungen liest. Ein nicht-interaktiver (`-p`)-Lauf behält ihn bis zum Ende.

142 259 

143<h2 id="policy-based-control-with-allowlists-and-denylists">260<h2 id="policy-based-control-with-allowlists-and-denylists">

144 Richtlinienbasierte Kontrolle mit Zulassungslisten und Sperrlisten261 Richtlinienbasierte Kontrolle mit Zulassungs- und Sperrlisten

145</h2>262</h2>

146 263 

147Zulassungslisten und Sperrlisten filtern, welche konfigurierten Server geladen werden dürfen. Sie sind keine Registrierung: Ein Server muss immer noch von einem Benutzer, einem Plugin oder `managed-mcp.json` hinzugefügt werden, bevor die Zulassungsliste oder Sperrliste darauf angewendet wird. Um Server für Benutzer bereitzustellen, verwenden Sie [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json). Beide Listen filtern auch Server, die mit dem [`--mcp-config` CLI-Flag](/docs/de/cli-reference#cli-flags) übergeben werden, mit Ausnahme von In-Process-`type: "sdk"`-Einträgen; `--strict-mcp-config` begrenzt, welche Konfigurationsdateien geladen werden, und umgeht keine der beiden Listen.264Zulassungs- und Sperrlisten filtern, welche konfigurierten Server geladen werden dürfen. Sie sind keine Registrierung: Ein Server muss immer noch von einem Benutzer, einem Plugin oder Ihrer Organisation hinzugefügt werden, bevor eine der beiden Listen auf ihn angewendet wird.

148 265 

149Um die Zulassungsliste verbindlich zu machen, setzen Sie `allowedMcpServers` und `allowManagedMcpServersOnly: true` zusammen in einer [verwalteten Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices), z. B. serververwaltete Einstellungen oder eine bereitgestellte `managed-settings.json`-Datei. [Beschränken Sie die Zulassungsliste auf verwaltete Einstellungen nur](#restrict-the-allowlist-to-managed-settings-only) zeigt die Konfiguration. Ohne `allowManagedMcpServersOnly` werden Zulassungslisten aus jeder Einstellungsquelle zusammengeführt, einschließlich der eigenen `~/.claude/settings.json` eines Benutzers, daher kann ein Benutzer erweitern, was Ihre Zulassungsliste erlaubt. Sperrlisten werden unabhängig davon aus jeder Quelle zusammengeführt.266Server, die Ihre Organisation über `managedMcpServers` bereitstellt, werden ohne einen Zulassungslisten-Eintrag geladen, und [Wie ein Server bewertet wird](#how-a-server-is-evaluated) behandelt `managed-mcp.json`-Server. Die Sperrliste gilt für jeden Server, unabhängig davon, woher er kommt, mit Ausnahme von In-Process-`type: "sdk"`-Einträgen.

267 

268Um Server an Benutzer bereitzustellen, verwenden Sie [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) oder [`managedMcpServers`](#provide-servers-through-managed-settings). Beide Listen filtern auch Server, die mit dem [`--mcp-config` CLI-Flag](/docs/de/cli-reference#cli-flags) übergeben werden, mit Ausnahme von In-Process-`type: "sdk"`-Einträgen; `--strict-mcp-config` begrenzt, welche Konfigurationsdateien geladen werden, und umgeht keine der beiden Listen.

269 

270Um die Zulassungsliste verbindlich zu machen, setzen Sie `allowedMcpServers` und `allowManagedMcpServersOnly: true` zusammen in einer [verwalteten Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices), z. B. servergesteuerte Einstellungen oder eine bereitgestellte `managed-settings.json`-Datei. [Beschränken Sie die Zulassungsliste auf verwaltete Einstellungen nur](#restrict-the-allowlist-to-managed-settings-only) zeigt die Konfiguration. Ohne `allowManagedMcpServersOnly` werden Zulassungslisten aus jedem Einstellungsbereich zusammengeführt, einschließlich der eigenen `~/.claude/settings.json` eines Benutzers, sodass ein Benutzer das, was Ihre Zulassungsliste erlaubt, erweitern kann. Sperrlisten werden unabhängig davon aus jedem Bereich zusammengeführt.

150 271 

151<Note>272<Note>

152 `allowManagedMcpServersOnly` ist getrennt von `allowManagedPermissionRulesOnly`, das [Berechtigungsregeln](/docs/de/permissions#managed-settings) nur sperrt. Das Setzen dieses Flags erzwingt nicht die MCP-Zulassungsliste.273 `allowManagedMcpServersOnly` ist getrennt von `allowManagedPermissionRulesOnly`, das [Berechtigungsregeln](/docs/de/permissions#managed-settings) nur sperrt. Das Setzen dieses Flags erzwingt nicht die MCP-Zulassungsliste.

153</Note>274</Note>

154 275 

155<h3 id="match-servers-by-url-command-or-name">276<h3 id="match-servers-by-url-command-or-name">

156 Passen Sie Server nach URL, Befehl oder Name an277 Server nach URL, Befehl oder Name abgleichen

157</h3>278</h3>

158 279 

159`allowedMcpServers` und `deniedMcpServers` sind Listen von Einträgen. Jeder Eintrag ist ein Objekt mit einem einzelnen Schlüssel, der Server nach ihrer URL, ihrem Befehl oder ihrem Namen identifiziert:280`allowedMcpServers` und `deniedMcpServers` sind Listen von Einträgen. Jeder Eintrag ist ein Objekt mit einem einzelnen Schlüssel, der Server nach ihrer URL, ihrem Befehl oder ihrem Namen identifiziert:

160 281 

161| Schlüssel | Passt zu | Verwenden Sie für |282| Schlüssel | Gleicht ab | Verwenden für |

162| :-------------- | :------------------------------------------------------------------------------------------------- | :---------------------------------------- |283| :-------------- | :------------------------------------------------------------------------------------------------------- | :---------------------------------------- |

163| `serverUrl` | Eine Remote-Server-URL, exakt oder mit `*`-Platzhaltern | HTTP- und SSE-Server |284| `serverUrl` | Eine Remote-Server-URL, exakt oder mit `*`-Platzhaltern | HTTP- und SSE-Server |

164| `serverCommand` | Der genaue Befehl und die Argumente, die einen Stdio-Server starten | Stdio-Server |285| `serverCommand` | Der genaue Befehl und die Argumente, die einen Stdio-Server starten | Stdio-Server |

165| `serverName` | Das vom Benutzer zugewiesene Label. Nur exakte Übereinstimmung; Platzhalter werden nicht erweitert | Beide Typen, aber siehe die Warnung unten |286| `serverName` | Die vom Benutzer zugewiesene Bezeichnung. Nur exakte Übereinstimmung; Platzhalter werden nicht erweitert | Beide Typen, aber siehe die Warnung unten |

166 287 

167Das Nicht-Setzen von `allowedMcpServers` unterscheidet sich vom Setzen auf ein leeres Array:288Das Belassen von `allowedMcpServers` ungesetzt unterscheidet sich vom Setzen auf ein leeres Array:

168 289 

169| Einstellung | Nicht gesetzt (Standard) | Leeres Array `[]` | Gefüllt |290| Einstellung | Ungesetzt (Standard) | Leeres Array `[]` | Gefüllt |

170| :------------------ | :----------------------- | :--------------------- | :---------------------------------- |291| :------------------ | :--------------------- | :------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- |

171| `allowedMcpServers` | Alle Server erlaubt | Keine Server erlaubt | Nur übereinstimmende Server erlaubt |292| `allowedMcpServers` | Alle Server erlaubt | Keine Server erlaubt, außer [den eigenen der Organisation](#how-a-server-is-evaluated) | Nur übereinstimmende Server erlaubt, außer [den eigenen der Organisation](#how-a-server-is-evaluated) |

172| `deniedMcpServers` | Keine Server blockiert | Keine Server blockiert | Übereinstimmende Server blockiert |293| `deniedMcpServers` | Keine Server blockiert | Keine Server blockiert | Übereinstimmende Server blockiert |

173 294 

174Siehe [Ungültige Einträge in verwalteten Einstellungen](/docs/de/managed-settings#invalid-entries-in-managed-settings) für das, was passiert, wenn ein Eintrag die Schemavalidierung nicht besteht.295Siehe [Ungültige Einträge in verwalteten Einstellungen](/docs/de/managed-settings#invalid-entries-in-managed-settings) für das, was passiert, wenn ein Eintrag die Schemavalidierung nicht besteht.

175 296 

176<Warning>297<Warning>

177 Ein `serverName`-Eintrag in einer der beiden Listen ist keine Sicherheitskontrolle. Der Name ist das Label, das ein Benutzer beim Ausführen von `claude mcp add` oder beim Bearbeiten einer Konfigurationsdatei zuweist, nicht der zugrunde liegende Server, daher kann ein Benutzer jeden Server `github` nennen. Für claude.ai-Konnektoren ist der Name der von claude.ai zurückgegebene Anzeigename, der sich ändern kann. Um zu erzwingen, welche Server tatsächlich ausgeführt werden, fügen Sie `serverCommand`- oder `serverUrl`-Einträge hinzu.298 Ein `serverName`-Eintrag in einer der beiden Listen ist keine Sicherheitskontrolle. Der Name ist die Bezeichnung, die ein Benutzer beim Ausführen von `claude mcp add` oder beim Bearbeiten einer Konfigurationsdatei zuweist, nicht der zugrunde liegende Server, sodass ein Benutzer jeden Server `github` nennen kann. Für claude.ai-Konnektoren ist der Name der Anzeigename, der von claude.ai zurückgegeben wird, was sich ändern kann. Um zu erzwingen, welche Server tatsächlich ausgeführt werden, fügen Sie `serverCommand`- oder `serverUrl`-Einträge hinzu.

178</Warning>299</Warning>

179 300 

180Die `serverName`-Validierung unterscheidet sich zwischen den beiden Listen:301Die `serverName`-Validierung unterscheidet sich zwischen den beiden Listen:

181 302 

182* In `deniedMcpServers` akzeptiert `serverName` jede nicht leere Zeichenkette, daher können Sie [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) nach ihrem Anzeigenamen blockieren. Beispielsweise blockiert `{ "serverName": "claude.ai Slack" }` den Slack-Konnektor. Bevorzugen Sie einen `serverUrl`-Eintrag, wenn die Sperrung robust gegen Umbenennungen sein muss, oder wenn ein Konnektor-Name kollidiert und ein ` (N)`-Suffix erhält.303* In `deniedMcpServers` akzeptiert `serverName` jede nicht leere Zeichenkette, sodass Sie [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) nach ihrem Anzeigenamen blockieren können. Zum Beispiel blockiert `{ "serverName": "claude.ai Slack" }` den Slack-Konnektor. Bevorzugen Sie einen `serverUrl`-Eintrag, wenn die Sperre robust gegen Umbenennungen sein muss, oder wenn ein Konnektor-Name kollidiert und ein ` (N)`-Suffix erhält.

183* In `allowedMcpServers` ist `serverName` auf Buchstaben, Zahlen, Bindestriche und Unterstriche beschränkt. Verwenden Sie `serverUrl`, um einen claude.ai-Konnektor in die Zulassungsliste aufzunehmen, den Claude Code selbst abruft; für Konnektoren, die ein Cloud-Host an selbstgehostete Sitzungen liefert, verwenden Sie stattdessen die unter [Konnektor-Datenverkehr verlässt Ihr Netzwerk](/docs/de/self-hosted-environments-deploy#connector-traffic-leaves-your-network) aufgelisteten Einträge.304* In `allowedMcpServers` ist `serverName` auf Buchstaben, Zahlen, Bindestriche und Unterstriche beschränkt. Verwenden Sie `serverUrl`, um einen claude.ai-Konnektor auf die Zulassungsliste zu setzen, den Claude Code selbst abruft; für Konnektoren, die ein Cloud-Host an selbstgehostete Sitzungen liefert, verwenden Sie stattdessen die unter [Konnektor-Datenverkehr verlässt Ihr Netzwerk](/docs/de/self-hosted-environments-deploy#connector-traffic-leaves-your-network) aufgelisteten Einträge.

184 305 

185Um alle claude.ai-Konnektoren auszuschalten, die Claude Code selbst abruft, siehe [`disableClaudeAiConnectors`](/docs/de/mcp#disable-claude-ai-connectors).306Um alle claude.ai-Konnektoren auszuschalten, die Claude Code selbst abruft, siehe [`disableClaudeAiConnectors`](/docs/de/mcp#disable-claude-ai-connectors).

186 307 


188 Wie ein Server bewertet wird309 Wie ein Server bewertet wird

189</h3>310</h3>

190 311 

191Vor dem Laden eines Servers, einschließlich eines aus `managed-mcp.json`, führt Claude Code die drei folgenden Überprüfungen in Reihenfolge durch. Sie werden erneut ausgeführt, wenn ein Benutzer einen Server erneut verbindet oder einen deaktivierten Server in `/mcp` wieder aktiviert. In-Process-`type: "sdk"`-Server, die [die App registriert, die die Sitzung gestartet hat](/docs/de/mcp#how-connectors-reach-claude-code), überspringen alle drei.312Vor dem Laden eines Servers, einschließlich eines aus `managed-mcp.json`, führt Claude Code die drei folgenden Überprüfungen in Reihenfolge durch. Es führt sie erneut durch, wenn ein Benutzer einen Server erneut verbindet oder einen deaktivierten in `/mcp` wieder aktiviert. In-Process-`type: "sdk"`-Server, die [die App registriert, die die Sitzung gestartet hat](/docs/de/mcp#how-connectors-reach-claude-code), überspringen alle drei.

313 

3141. **Listen zusammenführen.** Zulassungs- und Sperrlisten-Einträge aus jedem Einstellungsbereich werden in eine Zulassungsliste und eine Sperrliste kombiniert, wobei die Listen des verwalteten Bereichs von der [verwalteten Quelle oder den Quellen stammen, die Claude Code anwendet](/docs/de/managed-settings#how-claude-code-combines-managed-sources). Wenn `allowManagedMcpServersOnly` `true` ist, wird nur die verwaltete Zulassungsliste beibehalten; die Sperrliste wird immer aus jedem Bereich zusammengeführt.

3152. **Sperrliste überprüfen.** Ein Server, der einem Sperrlisten-Eintrag entspricht, nach URL, Befehl oder Name, wird blockiert. Nichts überschreibt eine Sperrlisten-Übereinstimmung.

3163. **Zulassungsliste überprüfen.** Wenn `allowedMcpServers` nirgendwo gesetzt ist, wird jeder Server, der die Sperrliste bestanden hat, geladen. Wenn es gesetzt ist, hängt das, dem der Server entsprechen muss, von seinem Typ ab, wie in der folgenden Tabelle gezeigt.

317 

318 Die eigenen Server der Organisation überspringen diese Überprüfung: jeder `managedMcpServers`-Eintrag und jeder `managed-mcp.json`-Eintrag, dessen Werte keine `${VAR}`-Erweiterung verwenden. Integrierte Server überspringen sie auch, z. B. Claude in Chrome, der `ide`-Server, mit dem Claude Code sich in einer laufenden VS Code- oder JetBrains-IDE verbindet, und Server, die die CLI selbst konfiguriert.

192 319 

1931. **Zusammenführen der Listen.** Zulassungslisten- und Sperrlisten-Einträge aus jeder Einstellungsquelle werden in eine Zulassungsliste und eine Sperrliste kombiniert, wobei die Einträge des verwalteten Bereichs aus der [verwalteten Quelle oder den verwalteten Quellen stammen, die Claude Code anwendet](/docs/de/managed-settings#how-claude-code-combines-managed-sources). Wenn `allowManagedMcpServersOnly` `true` ist, wird nur die verwaltete Zulassungsliste beibehalten; die Sperrliste wird immer aus jeder Quelle zusammengeführt.320 Ein `managed-mcp.json`-Server, der `${VAR}`-Erweiterung in seinem Befehl, seinen Argumenten, `env`, URL oder Headern verwendet, wird immer noch überprüft, ebenso wie jeder Server, den ein Benutzer, ein Plugin, `--mcp-config` oder claude.ai hinzufügt.

1942. **Überprüfen Sie die Sperrliste.** Ein Server, der einem Sperrlisten-Eintrag entspricht, nach URL, Befehl oder Name, wird blockiert. Nichts überschreibt eine Sperrlisten-Übereinstimmung.

1953. **Überprüfen Sie die Zulassungsliste.** Wenn `allowedMcpServers` nirgendwo gesetzt ist, wird jeder Server, der die Sperrliste bestanden hat, geladen. Wenn es gesetzt ist, hängt das, dem der Server entsprechen muss, von seinem Typ ab, wie in der Tabelle unten gezeigt. Integrierte Server wie Claude in Chrome, der `ide`-Server, mit dem Claude Code sich in einer laufenden VS Code- oder JetBrains-IDE verbindet, und Server, die die CLI selbst konfiguriert, überspringen diese Überprüfung.

196 321 

197| Servertyp | Erlaubt, wenn es passt zu |322| Servertyp | Erlaubt, wenn es übereinstimmt |

198| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |323| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

199| Remote (HTTP oder SSE) | Ein `serverUrl`-Eintrag. Eine `serverName`-Übereinstimmung zählt nur, wenn die Zulassungsliste keine `serverUrl`-Einträge enthält |324| Remote (HTTP oder SSE) | Ein `serverUrl`-Eintrag. Eine `serverName`-Übereinstimmung zählt nur, wenn die Zulassungsliste keine `serverUrl`-Einträge enthält |

200| Stdio | Ein `serverCommand`-Eintrag. Eine `serverName`-Übereinstimmung zählt nur, wenn die Zulassungsliste keine `serverCommand`-Einträge enthält |325| Stdio | Ein `serverCommand`-Eintrag. Eine `serverName`-Übereinstimmung zählt nur, wenn die Zulassungsliste keine `serverCommand`-Einträge enthält |

201 326 

202Drei Matching-Regeln gelten innerhalb dieser Überprüfungen:327Drei Abgleichsregeln gelten innerhalb dieser Überprüfungen:

203 328 

204* **Befehle stimmen genau überein.** Jedes Argument, in Reihenfolge. `["npx", "-y", "server"]` stimmt nicht mit `["npx", "server"]` oder `["npx", "-y", "server", "--flag"]` überein.329* **Befehle stimmen genau überein.** Jedes Argument, in Reihenfolge. `["npx", "-y", "server"]` stimmt nicht mit `["npx", "server"]` oder `["npx", "-y", "server", "--flag"]` überein.

205* **`serverCommand`- und `serverUrl`-Werte werden vor dem Matching erweitert.** Sowohl der Richtlinieneintrag als auch der konfigurierte Wert des Servers durchlaufen die [`${VAR}`- und `${VAR:-default}`-Erweiterung](/docs/de/mcp#environment-variable-expansion-in-mcp-json), daher passt ein Eintrag, der als `["${HOME}/bin/server"]` geschrieben ist, zu einer Serverkonfiguration, die entweder die gleiche Referenz oder den erweiterten Pfad verwendet. Unter Windows verweisen Sie auf eine Umgebungsvariable, die dort gesetzt ist, z. B. `${USERPROFILE}` statt `${HOME}`. `serverName`-Werte stimmen wörtlich überein und werden nie erweitert. Die beiden Seiten lesen unterschiedliche Umgebungen; [Wie Richtlinieneinträge erweitert werden](#how-policy-entries-expand) behandelt, welche und wie sich Zulassungslisten- und Sperrlisten-Einträge unterscheiden.330* **`serverCommand`- und `serverUrl`-Werte werden vor dem Abgleich erweitert.** Sowohl der Richtlinieneintrag als auch der konfigurierte Wert des Servers durchlaufen [`${VAR}`- und `${VAR:-default}`-Erweiterung](/docs/de/mcp#environment-variable-expansion-in-mcp-json), sodass ein Eintrag, der als `["${HOME}/bin/server"]` geschrieben ist, mit einer Serverkonfiguration übereinstimmt, die entweder die gleiche Referenz oder den erweiterten Pfad verwendet. Unter Windows verweisen Sie auf eine Umgebungsvariable, die dort gesetzt ist, z. B. `${USERPROFILE}` statt `${HOME}`. `serverName`-Werte stimmen wörtlich überein und werden nie erweitert. Die beiden Seiten lesen unterschiedliche Umgebungen; [Wie Richtlinieneinträge erweitert werden](#how-policy-entries-expand) behandelt, welche und wie sich Zulassungs- und Sperrlisten-Einträge unterscheiden.

206* **URLs unterstützen `*`-Platzhalter** überall im Muster, einschließlich des Schemas. Hostname-Matching ist case-insensitiv und ignoriert einen nachgestellten FQDN-Punkt, daher passt `https://Mcp.Example.com/*` zu `https://mcp.example.com/api`. Pfade bleiben case-sensitiv.331* **URLs unterstützen `*`-Platzhalter** überall im Muster, einschließlich des Schemas. Der Hostname-Abgleich ist nicht case-sensitiv und ignoriert einen nachgestellten FQDN-Punkt, sodass `https://Mcp.Example.com/*` mit `https://mcp.example.com/api` übereinstimmt. Pfade bleiben case-sensitiv.

207 332 

208| Muster | Erlaubt |333| Muster | Erlaubt |

209| :-------------------------- | :-------------------------------------------------------------------------- |334| :-------------------------- | :------------------------------------------------------------------------------------ |

210| `https://mcp.example.com/*` | Alle Pfade auf einer bestimmten Domain |335| `https://mcp.example.com/*` | Alle Pfade auf einer bestimmten Domain |

211| `https://mcp.example.com` | Auch alle Pfade auf dieser Domain. Ein Muster ohne Pfad passt zu jedem Pfad |336| `https://mcp.example.com` | Auch alle Pfade auf dieser Domain. Ein Muster ohne Pfad stimmt mit jedem Pfad überein |

212| `https://*.example.com/*` | Jede Subdomain von `example.com` |337| `https://*.example.com/*` | Jede Subdomain von `example.com` |

213| `http://localhost:*/*` | Jeder Port auf localhost |338| `http://localhost:*/*` | Jeden Port auf localhost |

214| `*://mcp.example.com/*` | Jedes Schema zu einer bestimmten Domain |339| `*://mcp.example.com/*` | Jedes Schema zu einer bestimmten Domain |

215 340 

216<h4 id="how-policy-entries-expand">341<h4 id="how-policy-entries-expand">

217 Wie Richtlinieneinträge erweitert werden342 Wie Richtlinieneinträge erweitert werden

218</h4>343</h4>

219 344 

220Der konfigurierte Wert des Servers wird aus der Live-Prozessumgebung erweitert, wie der Rest von `.mcp.json`. Ein Richtlinieneintrag wird stattdessen aus einer angehefteten Umgebung erweitert, daher kann eine Variable, die von einer Projekt- oder Benutzereinstellungsdatei gesetzt wird, nicht ändern, was ein Zulassungslisten-Eintrag bedeutet. Da ein Richtlinieneintrag immer noch vom Wert der startenden Shell für jede Variable abhängt, auf die er verweist, verwenden Sie wörtliche URLs und Befehle für Einträge, auf die Sie sich für die Durchsetzung verlassen.345Der konfigurierte Wert des Servers wird aus der Live-Prozessumgebung erweitert, wie der Rest von `.mcp.json`. Ein Richtlinieneintrag wird stattdessen aus einer angehefteten Umgebung erweitert, sodass eine Variable, die von einer Projekt- oder Benutzereinstellungsdatei gesetzt wird, nicht ändern kann, was ein Zulassungslisten-Eintrag bedeutet. Da ein Richtlinieneintrag immer noch von der Umgebungsvariable der startenden Shell abhängt, verwenden Sie wörtliche URLs und Befehle für Einträge, auf die Sie sich für die Durchsetzung verlassen.

221 346 

222| Eintragsliste | Erweitert aus | Erweiterung, die das Schema, den Host oder den Pfadbereich eines URL-Eintrags ändern würde |347| Eintragsliste | Erweitert aus | Erweiterung, die das Schema, den Host oder den Pfadbereich eines URL-Eintrags ändern würde |

223| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |348| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |

224| `allowedMcpServers` | Die Umgebung, mit der Claude Code gestartet wurde, plus `env`-Werte aus verwalteten Einstellungen | Claude Code ignoriert den Eintrag |349| `allowedMcpServers` | Die Umgebung, mit der Claude Code gestartet wurde, plus `env`-Werte aus verwalteten Einstellungen | Claude Code ignoriert den Eintrag |

225| `deniedMcpServers` | Dasselbe, und eine Variable ohne Startwert und ohne `:-default` wird aus Einstellungsdateien außerhalb des Repositorys gefüllt, z. B. Benutzer- oder verwaltete Einstellungen, die nur jemals erweitern, was der Eintrag passt | Der Eintrag passt immer noch |350| `deniedMcpServers` | Das gleiche, und eine Variable ohne Startwert und ohne `:-default` wird aus Einstellungsdateien außerhalb des Repositorys gefüllt, z. B. Benutzer- oder verwaltete Einstellungen, die nur jemals das erweitern, dem der Eintrag entspricht | Der Eintrag stimmt immer noch überein |

226 351 

227Erfordert Claude Code v2.1.219 oder später.352Erfordert Claude Code v2.1.219 oder später.

228 353 


230 Beispielkonfiguration355 Beispielkonfiguration

231</h3>356</h3>

232 357 

233Die folgende Konfiguration richtet eine harte Zulassungsliste mit einer Sperrliste ein. Die hervorgehobenen Zeilen ändern, wie der Rest der Liste bewertet wird, und die Callouts nach dem Block erklären jeweils:358Die folgende Konfiguration richtet eine strikte Zulassungsliste mit einer Sperrliste ein. Die hervorgehobenen Zeilen ändern, wie der Rest der Liste bewertet wird, und die Callouts nach dem Block erklären jeweils eine:

234 359 

235```json {3,5,11} theme={null}360```json {3,5,11} theme={null}

236{361{


250}375}

251```376```

252 377 

253* **Zeile 3**: der erste `serverUrl`-Eintrag. Sobald einer existiert, muss jeder Remote-Server einem URL-Muster entsprechen, daher kann ein Benutzer keinen nicht aufgelisteten Remote-Server erhalten, indem er ihm einen zulässigen Namen gibt.378* **Zeile 3**: der erste `serverUrl`-Eintrag. Sobald einer existiert, muss jeder Remote-Server einem URL-Muster entsprechen, sodass ein Benutzer keinen nicht aufgelisteten Remote-Server durch Vergabe eines erlaubten Namens erhalten kann.

254* **Zeile 5**: der erste `serverCommand`-Eintrag. Gleicher Effekt für Stdio-Server, daher muss jeder lokale Server genau einem aufgelisteten Befehl entsprechen.379* **Zeile 5**: der erste `serverCommand`-Eintrag. Gleicher Effekt für Stdio-Server, sodass jeder lokale Server genau einem aufgelisteten Befehl entsprechen muss.

255* **Zeile 11**: ein `serverName`-Eintrag in der Sperrliste. Sperrlisten-Einträge gelten immer, daher wird jeder Server namens `dangerous-server` blockiert, unabhängig von seiner URL oder seinem Befehl.380* **Zeile 11**: ein `serverName`-Eintrag in der Sperrliste. Sperrlisten-Einträge gelten immer, sodass jeder Server namens `dangerous-server` unabhängig von seiner URL oder seinem Befehl blockiert wird.

256 381 

257Ein `serverName`-Eintrag in dieser Zulassungsliste würde niemals etwas entsprechen, da beide Transporttypen bereits strengere Einträge haben.382Ein `serverName`-Eintrag in dieser Zulassungsliste würde nie etwas abgleichen, da beide Transporttypen bereits strengere Einträge haben.

258 383 

259Die Akkordeons unten zeigen, wie ein Server gegen andere Zulassungslisten- und Sperrlisten-Kombinationen bewertet wird.384Die Akkordeons unten gehen durch, wie ein Server gegen andere Zulassungs- und Sperrlisten-Kombinationen bewertet wird.

260 385 

261<Accordion title="Nur-URL-Zulassungsliste">386<Accordion title="Nur URL-Zulassungsliste">

262 ```json theme={null}387 ```json theme={null}

263 {388 {

264 "allowedMcpServers": [389 "allowedMcpServers": [


270 395 

271 | Server | Ergebnis |396 | Server | Ergebnis |

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

273 | HTTP-Server unter `https://mcp.example.com/api` | Erlaubt: passt zu URL-Muster |398 | HTTP-Server unter `https://mcp.example.com/api` | Erlaubt: stimmt mit URL-Muster überein |

274 | HTTP-Server unter `https://api.internal.example.com/mcp` | Erlaubt: passt zu Wildcard-Subdomain |399 | HTTP-Server unter `https://api.internal.example.com/mcp` | Erlaubt: stimmt mit Wildcard-Subdomain überein |

275 | HTTP-Server unter `https://external.example.com/mcp` | Blockiert: passt zu keinem URL-Muster |400 | HTTP-Server unter `https://external.example.com/mcp` | Blockiert: stimmt mit keinem URL-Muster überein |

276 | Stdio-Server mit beliebigem Befehl | Blockiert: keine Name- oder Befehlseinträge zum Abgleichen |401 | Stdio-Server mit beliebigem Befehl | Blockiert: keine Name- oder Befehlseinträge zum Abgleichen |

277</Accordion>402</Accordion>

278 403 

279<Accordion title="Nur-Befehl-Zulassungsliste">404<Accordion title="Nur Befehl-Zulassungsliste">

280 ```json theme={null}405 ```json theme={null}

281 {406 {

282 "allowedMcpServers": [407 "allowedMcpServers": [


287 412 

288 | Server | Ergebnis |413 | Server | Ergebnis |

289 | :--------------------------------------------------- | :-------------------------------------------- |414 | :--------------------------------------------------- | :-------------------------------------------- |

290 | Stdio-Server mit `["npx", "-y", "approved-package"]` | Erlaubt: passt zu Befehl |415 | Stdio-Server mit `["npx", "-y", "approved-package"]` | Erlaubt: stimmt mit Befehl überein |

291 | Stdio-Server mit `["node", "server.js"]` | Blockiert: passt nicht zu Befehl |416 | Stdio-Server mit `["node", "server.js"]` | Blockiert: stimmt nicht mit Befehl überein |

292 | HTTP-Server namens `my-api` | Blockiert: keine Nameneinträge zum Abgleichen |417 | HTTP-Server namens `my-api` | Blockiert: keine Name-Einträge zum Abgleichen |

293</Accordion>418</Accordion>

294 419 

295<Accordion title="Gemischte Name- und Befehl-Zulassungsliste">420<Accordion title="Gemischte Name- und Befehl-Zulassungsliste">


304 429 

305 | Server | Ergebnis |430 | Server | Ergebnis |

306 | :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |431 | :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |

307 | Stdio-Server namens `local-tool` mit `["npx", "-y", "approved-package"]` | Erlaubt: passt zu Befehl |432 | Stdio-Server namens `local-tool` mit `["npx", "-y", "approved-package"]` | Erlaubt: stimmt mit Befehl überein |

308 | Stdio-Server namens `local-tool` mit `["node", "server.js"]` | Blockiert: Befehlseinträge existieren, aber passt nicht |433 | Stdio-Server namens `local-tool` mit `["node", "server.js"]` | Blockiert: Befehlseinträge existieren, aber stimmt nicht überein |

309 | Stdio-Server namens `github` mit `["node", "server.js"]` | Blockiert: Stdio-Server müssen Befehlen entsprechen, wenn Befehlseinträge existieren |434 | Stdio-Server namens `github` mit `["node", "server.js"]` | Blockiert: Stdio-Server müssen Befehlen entsprechen, wenn Befehlseinträge existieren |

310 | HTTP-Server namens `github` | Erlaubt: passt zu Name |435 | HTTP-Server namens `github` | Erlaubt: stimmt mit Name überein |

311 | HTTP-Server namens `other-api` | Blockiert: Name passt nicht |436 | HTTP-Server namens `other-api` | Blockiert: Name stimmt nicht überein |

312</Accordion>437</Accordion>

313 438 

314<Accordion title="Nur-Name-Zulassungsliste">439<Accordion title="Nur Name-Zulassungsliste">

315 ```json theme={null}440 ```json theme={null}

316 {441 {

317 "allowedMcpServers": [442 "allowedMcpServers": [


325 | :-------------------------------------------------------- | :----------------------------------- |450 | :-------------------------------------------------------- | :----------------------------------- |

326 | Stdio-Server namens `github` mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |451 | Stdio-Server namens `github` mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |

327 | Stdio-Server namens `internal-tool` mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |452 | Stdio-Server namens `internal-tool` mit beliebigem Befehl | Erlaubt: keine Befehlsbeschränkungen |

328 | HTTP-Server namens `github` | Erlaubt: passt zu Name |453 | HTTP-Server namens `github` | Erlaubt: stimmt mit Name überein |

329 | Jeder Server namens `other` | Blockiert: Name passt nicht |454 | Beliebiger Server namens `other` | Blockiert: Name stimmt nicht überein |

330</Accordion>455</Accordion>

331 456 

332<Accordion title="Zulassungsliste mit Sperrlisten-Überschreibung">457<Accordion title="Zulassungsliste mit Sperrlisten-Überschreibung">


342 ```467 ```

343 468 

344 | Server | Ergebnis |469 | Server | Ergebnis |

345 | :-------------------------------------------------- | :------------------------------------------------------------------------------- |470 | :-------------------------------------------------- | :----------------------------------------------------------------------------------------- |

346 | HTTP-Server unter `https://mcp.example.com/api` | Erlaubt: passt zu Zulassungslisten-URL-Muster, keine Sperrlisten-Übereinstimmung |471 | HTTP-Server unter `https://mcp.example.com/api` | Erlaubt: stimmt mit Zulassungslisten-URL-Muster überein, keine Sperrlisten-Übereinstimmung |

347 | HTTP-Server unter `https://staging.example.com/api` | Blockiert: passt zu beiden, aber die Sperrliste hat Vorrang |472 | HTTP-Server unter `https://staging.example.com/api` | Blockiert: stimmt mit beiden überein, aber die Sperrliste hat Vorrang |

348 | HTTP-Server unter `https://other.com/mcp` | Blockiert: passt nicht zu Zulassungsliste |473 | HTTP-Server unter `https://other.com/mcp` | Blockiert: stimmt nicht mit der Zulassungsliste überein |

349</Accordion>474</Accordion>

350 475 

351<h3 id="restrict-the-allowlist-to-managed-settings-only">476<h3 id="restrict-the-allowlist-to-managed-settings-only">


364}489}

365```490```

366 491 

367Wenn `allowManagedMcpServersOnly` `true` ist, werden Zulassungslisten aus Benutzer-, Projekt- und lokalen Einstellungen ignoriert. Die Sperrliste wird immer noch aus allen Quellen zusammengeführt, daher können Benutzer Server immer für sich selbst blockieren.492Wenn `allowManagedMcpServersOnly` `true` ist, werden Zulassungslisten aus Benutzer-, Projekt- und lokalen Einstellungen ignoriert. Die Sperrliste wird immer noch aus jedem Einstellungsbereich zusammengeführt, sodass Benutzer Server immer für sich selbst blockieren können.

368 493 

369<h2 id="how-restrictions-appear-to-users">494<h2 id="how-restrictions-appear-to-users">

370 Wie Einschränkungen für Benutzer angezeigt werden495 Wie Einschränkungen für Benutzer angezeigt werden

371</h2>496</h2>

372 497 

373Informationen dazu, was Benutzer beim Start sehen, wenn `managed-mcp.json` bereitgestellt wird und die Sitzung auch `--mcp-config`-Server hat, finden Sie unter [Exklusive Kontrolle mit managed-mcp.json](#exclusive-control-with-managed-mcp-json). Verwenden Sie diese Tabelle, um die anderen Berichte zu erkennen und um Benutzern mitzuteilen, was sie erwarten können, bevor Sie eine Änderung einführen:498Informationen dazu, was Benutzer beim Start sehen, wenn `managed-mcp.json` bereitgestellt wird und die Sitzung auch `--mcp-config`-Server hat, finden Sie unter [Exklusive Kontrolle mit managed-mcp.json](#exclusive-control-with-managed-mcp-json). Verwenden Sie diese Tabelle, um die anderen Berichte zu erkennen und Benutzern mitzuteilen, was sie erwarten können, bevor Sie eine Änderung einführen:

374 499 

375| Einschränkung | Was der Benutzer sieht |500| Einschränkung | Was der Benutzer sieht |

376| :---------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |501| :---------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |

377| `managed-mcp.json` ist vorhanden und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |502| `managed-mcp.json` ist vorhanden und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

378| Der Server ist auf einer Sperrliste und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |503| Der Server befindet sich auf einer Ablehnungsliste und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

379| Der Server ist nicht auf der Zulassungsliste und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server "<name>": not allowed by enterprise policy` |504| Der Server befindet sich nicht auf der Zulassungsliste und der Benutzer führt `claude mcp add` aus | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

380| Ein zuvor konfigurierter Server wird jetzt durch Richtlinie blockiert | Der Server verschwindet stillschweigend aus `/mcp` und `claude mcp list` ohne Warnung |505| Der Benutzer führt `claude mcp remove` auf einem Server aus `managedMcpServers` aus | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |

381| Ein Server wird blockiert, während eine Sitzung läuft, und der Benutzer wählt **Erneut verbinden** oder schaltet ihn in `/mcp` wieder ein | [`MCP server <name> is blocked by enterprise managed policy`](/docs/de/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |506| Ein zuvor konfigurierter Server wird jetzt durch eine Richtlinie blockiert | Der Server verschwindet stillschweigend aus `/mcp` und `claude mcp list` ohne Warnung |

507| Ein Server wird blockiert, während eine Sitzung ausgeführt wird, und der Benutzer wählt **Reconnect** oder aktiviert ihn in `/mcp` erneut | [`MCP server <name> is blocked by enterprise managed policy`](/docs/de/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |

382 508 

383Wenn ein Server stillschweigend verschwindet, erhält der Benutzer kein Signal, dass die Richtlinie der Grund ist, daher teilen Sie betroffenen Benutzern mit, welche Server blockiert werden, wenn Sie eine neue Einschränkung einführen.509Wenn ein Server stillschweigend verschwindet, erhält der Benutzer kein Signal dafür, dass die Richtlinie der Grund ist. Teilen Sie betroffenen Benutzern daher mit, welche Server blockiert sind, wenn Sie eine neue Einschränkung einführen.

384 510 

385<h2 id="monitor-mcp-usage">511<h2 id="monitor-mcp-usage">

386 Überwachen Sie die MCP-Nutzung512 Überwachen Sie die MCP-Nutzung


395Jede Datei und Einstellung, die diese Seite behandelt, was sie kontrolliert und wie man sie bereitstellt:521Jede Datei und Einstellung, die diese Seite behandelt, was sie kontrolliert und wie man sie bereitstellt:

396 522 

397| Oberfläche | Was es kontrolliert | Wo es sich befindet | Wie man es bereitstellt |523| Oberfläche | Was es kontrolliert | Wo es sich befindet | Wie man es bereitstellt |

398| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |524| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

399| `managed-mcp.json` | Fester Serversatz, exklusive Kontrolle | Systempfad: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/` oder `C:\Program Files\ClaudeCode\` | MDM, GPO, Fleet-Verwaltung oder jeder Prozess mit Administratorrechten. Kann nicht über serververwaltete Einstellungen gesetzt werden |525| `managed-mcp.json` | Fester Serversatz, exklusive Kontrolle | Systempfad: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/` oder `C:\Program Files\ClaudeCode\` | MDM, GPO, Fleet-Verwaltung oder jeder Prozess mit Administratorrechten. Kann nicht über serververwaltete Einstellungen gesetzt werden |

526| `managedMcpServers` | Remote-Server, die jedem Benutzer neben seinen eigenen bereitgestellt werden | Nur verwaltete Einstellungsquellen; die Einstellung hat keine Auswirkung anderswo | Eine [verwaltete Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices): serververwaltete Einstellungen, eine Gateway-Richtlinie, `managed-settings.json`, MDM-Profil oder HKLM-Registrierung |

400| `allowedMcpServers` | Zulassungsliste zulässiger Server | Jede [Einstellungsbereich](/docs/de/settings#where-settings-live); Claude Code führt die Listen aus jedem Bereich zusammen, es sei denn, `allowManagedMcpServersOnly` ist gesetzt, und nimmt die verwaltete Bereichsliste aus der einen [verwalteten Quelle, die es auswählt](/docs/de/managed-settings#precedence-within-the-managed-tier) oder [zusammensetzt](/docs/de/managed-settings#compose-every-managed-source) | Zur Durchsetzung eine [verwaltete Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices): serververwaltete Einstellungen, `managed-settings.json`, MDM-Profil oder Registrierung |527| `allowedMcpServers` | Zulassungsliste zulässiger Server | Jede [Einstellungsbereich](/docs/de/settings#where-settings-live); Claude Code führt die Listen aus jedem Bereich zusammen, es sei denn, `allowManagedMcpServersOnly` ist gesetzt, und nimmt die verwaltete Bereichsliste aus der einen [verwalteten Quelle, die es auswählt](/docs/de/managed-settings#precedence-within-the-managed-tier) oder [zusammensetzt](/docs/de/managed-settings#compose-every-managed-source) | Zur Durchsetzung eine [verwaltete Einstellungsquelle](/docs/de/admin-setup#decide-how-settings-reach-devices): serververwaltete Einstellungen, `managed-settings.json`, MDM-Profil oder Registrierung |

401| `deniedMcpServers` | Sperrliste blockierter Server | Jede Einstellungsbereich; Claude Code führt die Listen aus jedem Bereich zusammen und über verwaltete Quellen hinweg, wie [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) beschreibt | Gleich wie `allowedMcpServers` |528| `deniedMcpServers` | Sperrliste blockierter Server | Jede Einstellungsbereich; Claude Code führt die Listen aus jedem Bereich zusammen und über verwaltete Quellen hinweg, wie [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) beschreibt | Gleich wie `allowedMcpServers` |

402| `allowManagedMcpServersOnly` | Sperrt die Zulassungsliste auf verwaltete Quellen nur | Nur verwaltete Einstellungsquellen; die Einstellung hat keine Auswirkung anderswo | Gleich wie `allowedMcpServers` |529| `allowManagedMcpServersOnly` | Sperrt die Zulassungsliste auf verwaltete Quellen nur | Nur verwaltete Einstellungsquellen; die Einstellung hat keine Auswirkung anderswo | Gleich wie `allowedMcpServers` |

managed-settings.md +445 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Verwaltete Einstellungen bereitstellen

6 

7> Stellen Sie verwaltete Einstellungen auf jedem Entwicklerrechner bereit: Bereitstellungsmechanismen pro Betriebssystem, wie Claude Code verwaltete Quellen kombiniert und wie Sie die Durchsetzung überprüfen.

8 

9Verwaltete Einstellungen sind die Einstellungen, die Ihre Organisation auf jedem Entwicklerrechner bereitstellt. Claude Code wendet sie über alle anderen Ebenen an, sodass kein Benutzer-, Projekt-, lokaler oder `--settings`-Wert sie außer Kraft setzt, mit Ausnahme einiger weniger [sicherheitsrelevanter Ausnahmen](/docs/de/settings#exceptions-to-managed-settings-precedence), bei denen ein strengerer Wert von einer niedrigeren Ebene dennoch zählt.

10 

11Diese Seite ist für den Administrator, der verwaltete Einstellungen bereitstellt oder debuggt, warum eine nicht angewendet wird. Um zu entscheiden, was durchgesetzt werden soll, beginnen Sie mit der Tabelle [Entscheiden Sie, was durchgesetzt werden soll](/docs/de/admin-setup#decide-what-to-enforce). Für den claude.ai-Konsolenpfad siehe [Serververwaltete Einstellungen](/docs/de/server-managed-settings). Für die Datei, in die die eigenen Werte eines Entwicklers gehen, siehe [Einstellungen](/docs/de/settings).

12 

13<h2 id="deploy-a-managed-settings-file">

14 Stellen Sie eine verwaltete Einstellungsdatei bereit

15</h2>

16 

17Dies ist die schnellste Möglichkeit, eine Richtlinie auf jedem Rechner einzuführen: eine `managed-settings.json`-Datei. Wenn Sie noch nicht entschieden haben, wie Sie verwaltete Einstellungen bereitstellen möchten, oder Ihre Geräte unter MDM verwaltet werden oder Entwickler Cloud-Sitzungen ausführen, lesen Sie zuerst [Wählen Sie einen Bereitstellungsmechanismus](#choose-a-delivery-mechanism).

18 

19<Steps>

20 <Step title="Schreiben Sie managed-settings.json">

21 Schreiben Sie eine `managed-settings.json`, die die Schlüssel enthält, die Sie durchsetzen möchten, in der gleichen JSON-Form wie `settings.json`. Die Tabelle [Entscheiden Sie, was durchgesetzt werden soll](/docs/de/admin-setup#decide-what-to-enforce) listet die Schlüssel hinter jedem Steuerelement auf, und jeder Eintrag in der [Einstellungsreferenz](/docs/de/settings-reference) sagt, ob eine verwaltete Quelle ihn setzen kann. Diese Datei blockiert zwei Dateileseoperationen, deaktiviert den Bypass-Modus und lässt Claude Code Berechtigungsregeln aus Benutzer-, Projekt- und lokalen Dateien sowie aus `--allowedTools` ignorieren:

22 

23 ```json managed-settings.json theme={null}

24 {

25 "permissions": {

26 "deny": [

27 "Read(./.env)",

28 "Read(./secrets/**)"

29 ],

30 "disableBypassPermissionsMode": "disable"

31 },

32 "allowManagedPermissionRulesOnly": true

33 }

34 ```

35 

36 Ein vollständigeres Beispiel, das die Form weiterer verwalteter Schlüssel zeigt, einschließlich der Anmeldemethode, Modelle, MCP-Server und Marktplätze, finden Sie unter [Die verwalteten Einstellungen einer Organisation](/docs/de/settings-example#an-organizations-managed-settings).

37 </Step>

38 

39 <Step title="Platzieren Sie die Datei auf jedem Rechner">

40 Speichern Sie die Datei als `managed-settings.json` im Systemverzeichnis für das Betriebssystem, indem Sie beliebige Tools verwenden, die bereits Dateien auf Ihrer Flotte platzieren:

41 

42 * **macOS**: `/Library/Application Support/ClaudeCode/managed-settings.json`

43 * **Linux und WSL**: `/etc/claude-code/managed-settings.json`

44 * **Windows**: `C:\Program Files\ClaudeCode\managed-settings.json`

45 </Step>

46 

47 <Step title="Bestätigen Sie, dass die Richtlinie angewendet wurde">

48 Führen Sie auf einem Rechner `/status` in Claude Code aus. Die Zeile `Setting sources` zeigt `Enterprise managed settings (file)`. Führen Sie dann einen Rollout für den Rest der Flotte durch; [Überprüfen Sie, dass eine Richtlinie in Kraft ist](#check-that-a-policy-is-in-force) behandelt, worauf Sie achten sollten, wenn die Zeile fehlt.

49 </Step>

50</Steps>

51 

52<span id="managed-settings-delivery" />

53 

54<span id="delivery-mechanisms" />

55 

56<h2 id="choose-a-delivery-mechanism">

57 Wählen Sie einen Bereitstellungsmechanismus

58</h2>

59 

60Die Datei in den obigen Schritten ist eine von vier Möglichkeiten, verwaltete Einstellungen auf einen Rechner zu bringen. Jeder Mechanismus trägt die gleichen Richtlinienschlüssel wie eine `settings.json`-Datei, daher gilt die [Einstellungsreferenz](/docs/de/settings-reference) für alle. Einige Schlüssel sind an bestimmte Quellen gebunden, und die Zeile „Scope" jedes Eintrags sagt, welche:

61 

62* **Bereitstellungssteuerelemente**: [`policyHelper`](/docs/de/settings-reference#policyhelper), [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) und [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior)

63* **Gateway-Anmeldeschlüssel**: [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl) und der `"gateway"`-Wert von [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod)

64 

65Eine verwaltete Einstellungsdatei, ein MDM-Profil oder die claude.ai-Konsole wendet eine Richtlinie auf alle an, die sie erreicht. Um einer Gruppe von Entwicklern eine andere Richtlinie zu geben, stellen Sie eine andere Datei oder ein anderes Profil für diese Gruppe bereit; die claude.ai-Konsole [kann noch keine Gruppe als Ziel festlegen](/docs/de/server-managed-settings#current-limitations), während ein selbstgehostetes [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) verwaltete Einstellungen pro IdP-Gruppe bereitstellt.

66 

67Wenn mehr als ein Mechanismus eine Richtlinie auf dem gleichen Rechner bereitstellt, verwendet Claude Code standardmäßig einen und ignoriert die anderen. [Wie Claude Code verwaltete Quellen kombiniert](#how-claude-code-combines-managed-sources) gibt die Reihenfolge und das Opt-in an, das jede Quelle anwendet.

68 

69Die MDM- und Dateireihen werden zusammen als endpunktverwaltete Einstellungen bezeichnet, da die Richtlinie auf dem Gerät des Entwicklers gespeichert ist, im Gegensatz zur serververwalteten Reihe, wo Claude Code sie abruft.

70 

71Wählen Sie einen Mechanismus danach aus, wie Sie bereits Geräte verwalten, indem Sie die folgende Tabelle verwenden.

72 

73| Mechanismus | Wie Sie ihn bereitstellen | Wann Claude Code ihn liest | Verwenden Sie ihn, wenn |

74| :------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

75| [Serververwaltete Einstellungen](/docs/de/server-managed-settings) | In der claude.ai-Verwaltungskonsole oder auf einem selbstgehosteten [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) | Beim Start abgerufen und stündlich abgefragt; siehe [Änderungen, die Genehmigung benötigen](#where-and-when-a-policy-applies) | Sie möchten einen Ort, um die Richtlinie für eine claude.ai-Organisation zu ändern, ohne jeden Rechner zu berühren |

76| MDM oder Richtlinie auf Betriebssystemebene | Als macOS-Konfigurationsprofil oder Windows-`HKLM`-Registrierungswert, über Jamf, Intune, Gruppenrichtlinie oder ein ähnliches Tool; siehe [wo jeder Mechanismus die Richtlinie speichert](#where-each-mechanism-stores-the-policy) | Beim Start gelesen und alle 30 Minuten auf Änderungen überprüft | Sie verwalten bereits Geräte mit MDM oder Gruppenrichtlinie |

77| Dateibasiert | Als `managed-settings.json` in einem Systemverzeichnis auf jedem Rechner; siehe [wo jeder Mechanismus die Richtlinie speichert](#where-each-mechanism-stores-the-policy) | Beim Start gelesen und neu geladen, wenn sich eine Datei ändert | Rechner ohne MDM, Linux-Hosts oder Images, die Sie selbst erstellen |

78| HKCU-Registrierung, Windows und WSL | Als Windows-`HKCU`-Registrierungswert; siehe [wo jeder Mechanismus die Richtlinie speichert](#where-each-mechanism-stores-the-policy) | Beim Start gelesen und alle 30 Minuten auf Änderungen überprüft; Claude Code verwendet ihn nur, wenn keine andere verwaltete Quelle einen Richtlinienschlüssel bereitstellt und keine [vom Host bereitgestellten übergeordneten Einstellungen](#let-an-embedding-host-add-policy) einen restriktiven Schlüssel liefern | Sie können den Schlüssel auf Maschinenebene `HKLM` nicht schreiben |

79 

80Starter-Vorlagen für Jamf, Iru, Intune und Gruppenrichtlinie befinden sich im [MDM-Beispiel-Repository](https://github.com/anthropics/claude-code/tree/main/examples/mdm).

81 

82Für verwaltete MCP-Server, die Sie neben einem dieser über `managed-mcp.json` bereitstellen oder durch den Schlüssel [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) bereitstellen, siehe [Verwaltete MCP-Konfiguration](/docs/de/managed-mcp).

83 

84<h3 id="where-and-when-a-policy-applies">

85 Wo und wann eine Richtlinie angewendet wird

86</h3>

87 

88Eine bereitgestellte Richtlinie erreicht die Sitzungen des Entwicklers wie folgt:

89 

90* **Oberflächen**: Auf dem Rechner des Entwicklers lesen das Terminal, die VS Code- und JetBrains-Erweiterungen, die Registerkarte „Code" der Desktop-App und [Agent SDK](/docs/de/agent-sdk/typescript)-Sitzungen alle diese Quellen. Agent SDK-Sitzungen laden verwaltete Einstellungen auch dann, wenn `settingSources` die Benutzer-, Projekt- und lokalen Dateien ausschließt.

91* **Cloud-Sitzungen**: Eine Sitzung in einer von Anthropic gehosteten Umgebung liest kein MDM-Profil oder keine Datei eines Geräts, daher muss die Richtlinie dafür aus serververwalteten Einstellungen stammen. Eine Sitzung in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) liest auch die verwaltete Einstellungsdatei in ihrem Runner-Image, standardmäßig nur wenn serververwaltete Einstellungen keinen Richtlinienschlüssel bereitstellen, mit Ausnahme der [Schlüssel, die Claude Code aus jeder Admin-Quelle liest](#keys-read-from-every-admin-source). [Wie Claude Code verwaltete Quellen kombiniert](#how-claude-code-combines-managed-sources) behandelt das Opt-in, das beide anwendet.

92* **Cowork-Sitzungen**: [Cowork](https://claude.com/docs/cowork/overview) in der Claude Desktop-App führt ihre Sitzungen auf Claude Code aus. In einer Cowork-Sitzung ruft Claude Code niemals serververwaltete Einstellungen aus der claude.ai-Verwaltungskonsole ab, auch wenn sich der Benutzer mit einem Team- oder Enterprise-Konto anmeldet, daher hängt die angewendete Richtlinie davon ab, wo die Sitzung ausgeführt wird:

93 

94 * **Auf dem Rechner des Benutzers**: Standardmäßig liest Claude Code in einer Cowork-Sitzung die MDM- oder Richtlinie auf Betriebssystemebene und die verwaltete Einstellungsdatei auf diesem Gerät, daher stellen Sie die Richtlinie dort bereit.

95 * **In einer vollständigen VM-Sandbox**: Wenn Ihre Claude Desktop-verwaltete Konfiguration [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox) setzt, wird Claude Code in einer virtuellen Maschine ausgeführt, in der die MDM-Richtlinie und die verwaltete Einstellungsdatei des Geräts nicht vorhanden sind.

96 * **Remote-Cowork-Sitzungen**: Diese werden auf von Anthropic verwalteten VMs ausgeführt, wo Claude Code keine Geräterichtlinie zum Lesen hat.

97 

98 Die Tabelle [Oberflächenabdeckung](/docs/de/model-config#surface-coverage) vergleicht Cowork mit den anderen Oberflächen.

99* **Laufende Sitzungen**: Die meisten Änderungen erreichen eine laufende Sitzung nach dem Zeitplan in der [Bereitstellungsmechanismus-Tabelle](#choose-a-delivery-mechanism), ohne einen Neustart.

100 * Änderungen an [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/de/settings-reference#requiredminimumversion) und [einigen benutzerbearbeitbaren Schlüsseln](/docs/de/settings#when-edits-take-effect) treten beim nächsten Sitzungsstart in Kraft.

101 * Ein neuer oder geänderter [`policyHelper`](/docs/de/settings-reference#policyhelper)-Eintrag tritt beim nächsten Start in Kraft. Wenn serververwaltete Einstellungen den Helper bei diesem Start überschatten, wird der Helper ausgeführt, sobald ein Abruf meldet, dass diese Einstellungen entfernt wurden.

102* **Änderungen, die Genehmigung benötigen**: Abgesehen von den [Updates, die auf den nächsten Start warten](/docs/de/server-managed-settings#fetch-and-caching-behavior), wartet eine serververwaltete Änderung an einer Einstellung, die [Genehmigung benötigt](/docs/de/server-managed-settings#security-approval-dialogs), wie ein Hook oder eine `env`-Variable, darauf, dass der Entwickler den Dialog in einer interaktiven Sitzung akzeptiert, und wird für den aktuellen Lauf in einer Sitzung angewendet, die eine IDE-Erweiterung oder das Agent SDK hostet. Andere serververwaltete Änderungen werden bei der nächsten Abfrage angewendet.

103* **Langlebige Sitzungen**: Eine Sitzung, die wochenlang offen bleibt, kann immer noch hinter einem Rollout zurückbleiben. [`requiredMinimumVersion`](/docs/de/settings-reference#requiredminimumversion) blockiert den Start einer veralteten Binärdatei und beendet keine bereits laufende Sitzung.

104 

105<span id="format-the-policy-for-each-platform" />

106 

107<h3 id="where-each-mechanism-stores-the-policy">

108 Wo jeder Mechanismus die Richtlinie speichert

109</h3>

110 

111Die Schlüssel sind überall gleich, aber jeder Mechanismus speichert sie an einem anderen Ort und in einer anderen Form:

112 

113* **Serververwaltete**: Anthropics Server oder Ihr Gateway halten die Richtlinie. Claude Code behält einen lokalen Cache, den es beim Start anwendet und [bei jedem erfolgreichen Abruf ersetzt](/docs/de/server-managed-settings#security-considerations).

114* **macOS-Konfigurationsprofil**: die verwaltete Präferenzdomäne `com.anthropic.claudecode`. Verwenden Sie die gleichen Top-Level-Schlüssel wie `managed-settings.json`, mit verschachtelten Einstellungen als Wörterbücher und Listen als plist-Arrays.

115* **Windows HKLM-Registrierung**: das JSON als `REG_SZ`- oder `REG_EXPAND_SZ`-Wert namens `Settings` unter `HKLM\SOFTWARE\Policies\ClaudeCode`.

116* **Dateibasiert**: `managed-settings.json`, ein optionales `managed-settings.d/`-Verzeichnis und `managed-mcp.json` im Systemverzeichnis: `/Library/Application Support/ClaudeCode/` auf macOS, `/etc/claude-code/` auf Linux und WSL und `C:\Program Files\ClaudeCode\` auf Windows. Claude Code liest den Legacy-Windows-Pfad `C:\ProgramData\ClaudeCode\managed-settings.json` nicht.

117* **Windows HKCU-Registrierung**: der gleiche `Settings`-Wert unter `HKCU\SOFTWARE\Policies\ClaudeCode`.

118 

119<h3 id="split-a-file-based-policy-across-teams">

120 Teilen Sie eine dateibasierte Richtlinie auf Teams auf

121</h3>

122 

123Wenn mehrere Teams Teile einer Richtlinie besitzen, platzieren Sie jeden Teil in seiner eigenen Datei in `managed-settings.d/`, neben `managed-settings.json` im gleichen Systemverzeichnis, anstatt eine gemeinsame Datei zu bearbeiten.

124 

125Claude Code führt `managed-settings.json` zuerst zusammen, dann jede `*.json`-Datei im Verzeichnis in alphabetischer Reihenfolge. Benennen Sie die Dateien mit numerischen Präfixen, um die Reihenfolge zu steuern, wie `10-telemetry.json` und `20-security.json`. Claude Code ignoriert versteckte Dateien und Dateien, die nicht auf `.json` enden.

126 

127Wenn zwei Dateien den gleichen Schlüssel setzen, kombiniert Claude Code sie nach diesen Regeln:

128 

129* **Einzelne Werte**, wie `"model": "opus"` oder `"cleanupPeriodDays": 7`: Der Wert der späteren Datei ersetzt den früheren

130* **Listen**, wie `permissions.deny` oder `sandbox.network.allowedDomains`: Die beiden Listen kombinieren, mit entfernten Duplikaten

131* **Verschachtelte Blöcke**, wie `env` oder `sandbox`: Die beiden Blöcke führen Schlüssel für Schlüssel zusammen, und jeder Schlüssel darin folgt den gleichen Regeln

132* **`fallbackModel`**: Die spätere Kette ersetzt die frühere ganz

133* **[`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) und [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers)**: Ein späterer Eintrag mit dem gleichen Namen ersetzt den früheren ganz

134* **[`modelPicker`](/docs/de/settings-reference#modelpicker)**: Die spätere Aufstellung ersetzt die frühere ganz

135 

136<span id="precedence-within-the-managed-tier" />

137 

138<span id="which-managed-source-claude-code-uses" />

139 

140<h2 id="how-claude-code-combines-managed-sources">

141 Wie Claude Code verwaltete Quellen kombiniert

142</h2>

143 

144Wenn Ihre Organisation mehr als eine verwaltete Quelle auf dem gleichen Rechner bereitstellt, entscheidet der Schlüssel [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior), was Claude Code mit den anderen macht:

145 

146* **`"first-wins"`, die Standardeinstellung**: Claude Code verwendet die höchstrangige Quelle, die mindestens einen Richtlinienschlüssel bereitstellt, und ignoriert den Rest, anstatt sie zusammenzuführen, mit Ausnahme der wenigen Schlüssel in [Schlüssel, die aus jeder Admin-Quelle gelesen werden](#keys-read-from-every-admin-source). Claude Code zeigt keine Warnung für die Quellen, die es überspringt; `/status` [nennt die Quelle, die es verwendet, und die, die es übersprungen hat](#read-the-source-in-/status).

147* **`"merge"`**: Claude Code wendet jede Admin-Quelle an, die einen Richtlinienschlüssel bereitstellt, und kombiniert sie nach Art des Schlüssels: Bei den meisten Schlüsseln gilt der Wert der höherrangigen Quelle, Listen vereinigen sich und Sperren nehmen den strengsten Wert. [Komponieren Sie jede verwaltete Quelle](#compose-every-managed-source) sagt, wo der Schlüssel zu setzen ist und wie sich jede Art von Schlüssel kombiniert. Erfordert Claude Code v2.1.242 oder später.

148 

149Beide Einstellungen ordnen die Quellen auf die gleiche Weise. Zwei Begriffe wiederholen sich in diesem Abschnitt:

150 

151* **Richtlinienschlüssel**: Jeder Einstellungsschlüssel außer den zwei Steuerschlüsseln, [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) und [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior). Eine verwaltete Einstellungsdatei oder MDM-Richtlinie, die nur diese enthält, zählt nicht, und Claude Code geht zur nächsten Quelle über.

152* **Admin-Quelle**: Eine der ersten drei Quellen unten. Die HKCU-Registrierung ist benutzerbearbeitbar und ist keine.

153 

154Claude Code überprüft die Quellen in dieser Reihenfolge, höchste Priorität zuerst:

155 

1561. Remote-Einstellungen, bereitgestellt von claude.ai als [serververwaltete Einstellungen](/docs/de/server-managed-settings) oder von einem [Claude-Apps-Gateway](/docs/de/claude-apps-gateway). Claude Code ruft diese Quelle nur ab, wenn sich die Sitzung direkt mit Anthropics API mit einem [berechtigten Login oder Schlüssel](/docs/de/server-managed-settings#platform-availability) authentifiziert oder sich bei einem Gateway mit `/login` anmeldet. Bei anderen Anbietern oder wenn `ANTHROPIC_BASE_URL` auf etwas anderes als Anthropics API zeigt, beginnt es bei der nächsten Quelle

1572. MDM- oder Richtlinien auf Betriebssystemebene: die macOS-plist oder der HKLM-Registrierungsschlüssel

1583. Verwaltete Einstellungsdateien, `managed-settings.d/*.json` und `managed-settings.json` zusammengeführt

1594. Die HKCU-Registrierung, auf Windows und auf WSL, sobald der HKLM-Registrierungsschlüssel oder die Windows-verwaltete Einstellungsdatei [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) einschaltet und der HKCU-Wert es auch setzt. Claude Code liest ihn nur, wenn keine Quelle darüber einen Richtlinienschlüssel bereitstellt und keine [vom Host bereitgestellten übergeordneten Einstellungen](#let-an-embedding-host-add-policy) einen restriktiven Schlüssel liefern

160 

161Dieses Diagramm zeigt die Rangfolge, mit Beispielen der quellübergreifenden Schlüssel, die Claude Code unter einer der beiden Einstellungen aus den ersten drei Quellen liest:

162 

163<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagramm, das die vier verwalteten Einstellungsquellen zeigt, die von Remote-Einstellungen oben über MDM, verwaltete Einstellungsdateien und die HKCU-Registrierung unten rangiert sind. Standardmäßig liefert die erste Quelle mit einem Richtlinienschlüssel die Richtlinie und der Rest wird übersprungen; mit managedSourcesBehavior auf Merge trägt jede Admin-Quelle mit einem Richtlinienschlüssel bei, kombiniert nach Art des Schlüssels, und die HKCU-Registrierung bleibt außen vor. Ein Seitenpanel zeigt, dass quellübergreifende Schlüssel wie die Sandbox-Sperren, forceRemoteSettingsRefresh und die pro-Variable env-Zusammenführung aus jeder Admin-Quelle gelesen werden, die die HKCU-Registrierung ausschließt." width="680" height="330" data-path="images/managed-source-precedence.svg" />

164 

165<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagramm, das die vier verwalteten Einstellungsquellen zeigt, die von Remote-Einstellungen oben über MDM, verwaltete Einstellungsdateien und die HKCU-Registrierung unten rangiert sind. Standardmäßig liefert die erste Quelle mit einem Richtlinienschlüssel die Richtlinie und der Rest wird übersprungen; mit managedSourcesBehavior auf Merge trägt jede Admin-Quelle mit einem Richtlinienschlüssel bei, kombiniert nach Art des Schlüssels, und die HKCU-Registrierung bleibt außen vor. Ein Seitenpanel zeigt, dass quellübergreifende Schlüssel wie die Sandbox-Sperren, forceRemoteSettingsRefresh und die pro-Variable env-Zusammenführung aus jeder Admin-Quelle gelesen werden, die die HKCU-Registrierung ausschließt." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />

166 

167<h3 id="keys-read-from-every-admin-source">

168 Schlüssel, die aus jeder Admin-Quelle gelesen werden

169</h3>

170 

171Unter der Standardeinstellung `"first-wins"` liest Claude Code die meisten Schlüssel nur aus der [Quelle, die es ausgewählt hat](#how-claude-code-combines-managed-sources), und ignoriert einen Wert in einer niedrigeren Quelle, auch wenn die ausgewählte Quelle diesen Schlüssel nicht setzt.

172 

173Einige Schlüssel funktionieren anders. Claude Code liest sie aus jeder Admin-Quelle, daher kann eine niedrigere MDM-Richtlinie oder verwaltete Einstellungsdatei sie immer noch setzen, wenn die ausgewählte Quelle es nicht tut. Claude Code lässt die benutzerbearbeitbare HKCU-Registrierung aus dieser Überprüfung aus; wenn HKCU die einzige Quelle ist und kein Host übergeordnete Einstellungen liefert, wendet HKCU wie jede ausgewählte Quelle an.

174 

175Die quellübergreifenden Schlüssel umfassen:

176 

177* `sandbox.network.allowManagedDomainsOnly` und `sandbox.filesystem.allowManagedReadPathsOnly`: Ein `true` in einer Admin-Quelle schaltet die Sperre ein. Während eine Sperre eingeschaltet ist, vereinigt Claude Code die Zulassungsliste, die sie sperrt, `sandbox.network.allowedDomains` zusammen mit `WebFetch(domain:...)`-Zulassungsregeln oder `sandbox.filesystem.allowRead`, über jede Admin-Quelle. Ohne die Sperre behandelt Claude Code die Zulassungsliste wie jeden anderen Schlüssel, daher wird unter `"first-wins"` die Zulassungsliste einer nicht ausgewählten Admin-Quelle ignoriert

178* `allowAllClaudeAiMcps`

179* Die Sandbox-Binärpfade `sandbox.bwrapPath` und `sandbox.socatPath`

180* Die Sandbox-`ripgrep`-Binärdatei, [`sandbox.ripgrep`](/docs/de/settings-reference#sandbox-ripgrep)

181* `sandbox.filesystem.disabled` und `sandbox.network.strictAllowlist`

182* [`useAutoModeDuringPlan`](/docs/de/settings-reference#useautomodeduringplan) und [`syncClaudeAiSkills`](/docs/de/settings-reference#syncclaudeaiskills), wobei ein `false` aus einer Admin-Quelle das Verhalten ausschaltet. Ein `false` in den Benutzer- oder lokalen Einstellungen des Entwicklers schaltet es auch aus; jeder Schlüssel kann nur verweigern

183* [`enableArtifact`](/docs/de/settings-reference#enableartifact), wobei ein `false` aus einer Admin-Quelle das [Artifact-Tool](/docs/de/artifacts) ausschaltet. Ein `false` in den Benutzer-, Projekt- oder lokalen Einstellungen des Entwicklers schaltet es auch aus, und keine Quelle schaltet es wieder ein; siehe [welche niedrigeren Werte dennoch zählen](/docs/de/settings#exceptions-to-managed-settings-precedence). Erfordert Claude Code v2.1.242 oder später

184* [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel), wobei die niedrigste Obergrenze in einer Admin-Quelle gilt. Wenn ein Entwickler eine niedrigere Obergrenze in seinen eigenen Einstellungen oder mit `--settings` setzt, wendet Claude Code diese an; keine Quelle kann die Obergrenze erhöhen. Erfordert Claude Code v2.1.267 oder später

185* Ein Commit-Trailer-Opt-out in `attribution` oder im veralteten `includeCoAuthoredBy` aus einer beliebigen Ebene

186* [`forceRemoteSettingsRefresh`](/docs/de/server-managed-settings)

187* `env`, zusammengeführt pro Variable über die Admin-Quellen: Jede Variable kommt aus der höchstpriorität Quelle, die sie definiert, daher füllen niedrigere Quellen Variablen, die höhere nicht setzen. Einige Variablen folgen ihren eigenen Regeln; [Pro-Schlüssel-Ausnahmen über verwaltete Quellen](/docs/de/server-managed-settings#per-key-exceptions-across-managed-sources) nennt jede. Erfordert Claude Code v2.1.223 oder später. Vor v2.1.223 wendete Claude Code nur den ganzen `env`-Block der ausgewählten Quelle an

188 

189<h3 id="compose-every-managed-source">

190 Komponieren Sie jede verwaltete Quelle

191</h3>

192 

193Um Claude Code jede Admin-Quelle anwenden zu lassen, die Ihre Organisation bereitstellt, setzen Sie [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior) auf `"merge"` in der höchstrangigen Quelle, die Sie bereitstellen. Claude Code liest den Schlüssel nur aus der höchstrangigen Quelle, die entweder den Schlüssel oder einen Richtlinienschlüssel trägt, daher kann eine niedrigere Quelle sich nicht selbst in die Zusammenführung mit der Quelle darüber einschalten, und ein Rechner, der niemals serververwaltete Einstellungen erhält, benötigt den Schlüssel auch in seinem MDM-Profil. Die benutzerbearbeitbare HKCU-Registrierung führt sich niemals mit einer anderen Quelle zusammen. Erfordert Claude Code v2.1.242 oder später.

194 

195Unter `"merge"` fügt Claude Code Listeneinträge aus einer niedrigeren Quelle, wie `permissions.allow`-Regeln und Hooks, zur Richtlinie hinzu, daher schalten Sie es nur ein, wenn jede Quelle, die unter Ihrer höchsten rangiert, unter der Kontrolle eines Administrators steht.

196 

197Diese Tabelle zeigt, wie Claude Code jede Art von Schlüssel unter `"merge"` kombiniert. Der Eintrag [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior) nennt jeden Schlüssel in drei der Zeilen: Restriction-Zulassungslisten, Werte, die ganz genommen werden, und Schlüssel, die nur aus der höchstrangigen Quelle gelesen werden.

198 

199| Art des Schlüssels | Wie Claude Code ihn kombiniert | Beispiele |

200| :-------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |

201| Listen | Kombiniert die Einträge aus jeder Quelle | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers` |

202| Sperren | Wendet den strengsten Wert an, den eine Quelle setzt; ein lockererer Wert gilt nur aus der höchstrangigen Quelle | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound` |

203| Restriction-Zulassungslisten | Nimmt die Liste ganz aus der höchstrangigen Quelle, die sie setzt, ohne Einträge aus niedrigeren Quellen hinzuzufügen | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins` und die `fallbackModel`-Kette |

204| Werte, die ganz genommen werden | Nimmt den Wert ganz aus der höchstrangigen Quelle, die ihn setzt, ohne Einträge oder Felder aus niedrigeren Quellen zu kombinieren | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

205| Bereitgestellte MCP-Server | Kombiniert die Servernamen aus jeder Quelle; wenn zwei Quellen den gleichen Namen setzen, wendet sie den ganzen Eintrag der höherrangigen Quelle an | `managedMcpServers` |

206| Schlüssel, die nur aus der höchstrangigen Quelle gelesen werden | Ignoriert den Schlüssel in jeder niedrigeren Quelle, auch wenn die höchstrangige Quelle ihn nicht setzt | Credential-Helper wie `apiKeyHelper`, Login-Pins wie `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |

207| `env` | Führt pro Variable über Admin-Quellen unter einer der beiden Einstellungen zusammen, wie [Schlüssel, die aus jeder Admin-Quelle gelesen werden](#keys-read-from-every-admin-source) beschreibt | |

208| Jeder andere Schlüssel | Nimmt den Wert aus der höchstrangigen Quelle, die ihn setzt | `model`, `cleanupPeriodDays` |

209 

210Um zu bestätigen, welche Quellen auf einem Rechner kombiniert wurden, [lesen Sie die Zeile `Setting sources` in `/status`](#read-the-source-in-/status); dieser Abschnitt sagt, was jedes Label bedeutet.

211 

212<h3 id="compute-the-policy-with-a-helper-program">

213 Berechnen Sie die Richtlinie mit einem Helper-Programm

214</h3>

215 

216Ein [`policyHelper`](/docs/de/settings-reference#policyhelper) ist eine ausführbare Datei, die Ihre MDM-Richtlinie oder verwaltete Einstellungsdatei benennt, und Claude Code führt sie aus, um verwaltete Einstellungen beim Start zu berechnen. Wenn die ausgewählte Quelle einen konfiguriert und der Helper ein `managedSettings`-Objekt ausgibt, ändert diese Ausgabe, was Claude Code liest:

217 

218* **Das ausgegebene `managedSettings`-Objekt ist die einzige verwaltete Einstellung für die Sitzung**, einschließlich für die [Schlüssel, die es sonst aus jeder Admin-Quelle liest](#keys-read-from-every-admin-source), mit Ausnahme von [`forceRemoteSettingsRefresh`, das seine eigene Startregel hat](/docs/de/settings-reference#forceremotesettingsrefresh)

219 

220Für welche Helper-Läufe fehlschlagen und was Claude Code macht, wenn einer es tut, siehe [Helper-Fehler](/docs/de/settings-reference#helper-failures).

221 

222<span id="parent-settings-from-embedding-hosts" />

223 

224<span id="control-policy-from-an-embedding-host" />

225 

226<span id="merge-policy-from-an-embedding-host" />

227 

228<h3 id="let-an-embedding-host-add-policy">

229 Lassen Sie einen Embedding-Host Richtlinie hinzufügen

230</h3>

231 

232Wenn eine andere Anwendung Claude Code startet, wie Claude Desktop, eine IDE-Erweiterung oder eine Agent SDK-App, kann dieser Host seine eigenen verwalteten Einstellungen durch die SDK-Option `managedSettings` übergeben. Claude Code nennt diese übergeordneten Einstellungen.

233 

234Standardmäßig ignoriert Claude Code übergeordnete Einstellungen, wenn eine Admin-Quelle vorhanden ist: serververwaltete Einstellungen, eine MDM- oder Richtlinie auf Betriebssystemebene oder eine verwaltete Einstellungsdatei.

235 

236Um Claude Code übergeordnete Einstellungen neben einer Admin-Quelle zusammenzuführen, setzen Sie [`parentSettingsBehavior`](/docs/de/settings-reference#parentsettingsbehavior) auf `"merge"` in der höchstpriorität verwalteten Quelle; Claude Code liest den Schlüssel nur aus dieser Quelle.

237 

238Claude Code behält dann nur die Werte des Hosts, die einschränken, was Claude tun kann, mit einer Lücke, die Sie kennen sollten: Wenn Sie auch die `allowManaged*Only`-Sperren nicht setzen, gelten die Zulassungsregeln und Sandbox-Zulassungslisten des Hosts immer noch. Siehe [Beschränken Sie übergeordnete Einstellungen](/docs/de/claude-apps-gateway#restrict-parent-settings) für die Sperren.

239 

240Ein [`policyHelper`](/docs/de/settings-reference#policyhelper) kann die übergeordnete Zusammenführung unabhängig von diesem Schlüssel ausschalten; sein Eintrag sagt, wann.

241 

242Claude Code wendet auch diese Überprüfungen auf vom Host bereitgestellte Werte allein an:

243 

244* Wenn eine Admin-Quelle `allowManagedPermissionRulesOnly` setzt, löscht Claude Code [vom Host bereitgestellte](/docs/de/claude-apps-gateway#restrict-parent-settings) Zulassungsregeln und `additionalDirectories` beim Lesen, auch wenn eine höherpriorität Quelle den Schlüssel nicht setzt. Die Auswirkung des Schlüssels auf Ihre eigenen Berechtigungsregeln kommt aus den verwalteten Einstellungen, die Claude Code anwendet, oder aus übergeordneten Einstellungen, die Sie zusammenführen möchten

245* Claude Code erzwingt den Wert `forceLoginOrgUUID` oder `allowedMcpServers` in den verwalteten Einstellungen, die es anwendet, und blockiert einen vom Host bereitgestellten. Ein Wert in einer niedrigeren Admin-Quelle, die Claude Code nicht anwendet, wendet sich weder an noch blockiert den Wert des Hosts. Der Eintrag [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior) sagt, welche Quelle jeden Schlüssel unter `"merge"` liefert. Vor v2.1.223 blockierte ein Wert in einer Admin-Quelle den Wert des Hosts

246* Ein `availableModels`-Wert folgt der gleichen Regel wie `allowedMcpServers`

247 

248<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

249 Behalten Sie Cowork-Ordnerzugriff, wenn nur verwaltete Regeln gelten

250</h4>

251 

252[Cowork](https://claude.com/docs/cowork/overview) in der Claude Desktop-App führt ihre Sitzungen auf Claude Code aus und gewährt jeder Sitzung Zugriff auf ihre Arbeitsordner, wie den Ordner, den der Benutzer verbindet, durch Zulassungsregeln, die es liefert, wenn es die Sitzung startet. Wenn Ihre verwaltete Richtlinie [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) setzt, behält Claude Code nur die Zulassungsregeln in der verwalteten Richtlinie: Es löscht Zulassungsregeln, die ein Host als übergeordnete Einstellungen, `--allowedTools` oder in einer Einstellungsdatei liefert, daher verlieren Schreibvorgänge in diese Ordner ihre Vorgenehmigung. In einer Cowork-Sitzung, die vor Bearbeitungen fragt, kann Cowork die Eingabeaufforderung nicht anzeigen, und Claude meldet jeden Schreibvorgang als blockiert, da der Pfad zu einem geschützten Ort oder einem Pfad außerhalb des verbundenen Ordners aufgelöst wird.

253 

254Um die Schreibvorgänge wiederherzustellen, fügen Sie Zulassungsregeln für diese Ordner zur verwalteten Quelle hinzu, die Claude Code [auswählt](#how-claude-code-combines-managed-sources) auf diesen Rechnern: Auf einer MDM-verwalteten Flotte ist das die MDM-Richtlinie anstelle einer separaten verwalteten Einstellungsdatei. Dieses Beispiel verwendet die Dateiform, und eine MDM-Richtlinie nimmt die gleichen Schlüssel. Es behält `allowManagedPermissionRulesOnly` gesetzt und erlaubt Bearbeitungen unter einem `CoworkProjects`-Ordner im Basisverzeichnis jedes Benutzers; ersetzen Sie den Pfad durch die Ordner, die Ihre Benutzer verbinden:

255 

256```json managed-settings.json theme={null}

257{

258 "allowManagedPermissionRulesOnly": true,

259 "permissions": {

260 "allow": [

261 "Edit(~/CoworkProjects/**)"

262 ]

263 }

264}

265```

266 

267Nachdem Sie die Richtlinie bereitgestellt haben, kann Claude Dateien unter diesem Ordner in einer neuen Cowork-Sitzung speichern. [Lesen und Bearbeiten von Regeln](/docs/de/permissions#read-and-edit) behandeln die Pfadsyntax, einschließlich der `//`-Form für absolute Pfade.

268 

269<h3 id="what-a-developer-can-change">

270 Was ein Entwickler ändern kann

271</h3>

272 

273Die eigenen Einstellungsdateien eines Entwicklers, `--settings`-Werte und Projektdateien setzen niemals einen verwalteten Wert außer Kraft; die [Ausnahmen](/docs/de/settings#exceptions-to-managed-settings-precedence) lassen nur einen strengeren Wert auf niedrigerer Ebene zählen. Vier Dinge sitzen außerhalb dieser Regel:

274 

275* **Das Modell für eine Sitzung**: Ein verwaltetes `model` ist ein Standard, keine Sperre. `--model` und `ANTHROPIC_MODEL` wählen immer noch das Modell für diese Sitzung, daher stellen Sie [`availableModels`](/docs/de/settings-reference#availablemodels) bereit, um die Auswahl einzuschränken.

276* **Lokale Administratorrechte**: Ein Entwickler, der Administrator auf dem Rechner ist, kann die verwaltete Quelle selbst bearbeiten, weshalb MDM-Tools das Profil oder die Datei nach einem Zeitplan erneut bereitstellen können und weshalb der HKLM-Registrierungsschlüssel und die macOS-verwaltete Präferenzdomäne existieren.

277* **Der serververwaltete Cache**: Serververwaltete Einstellungen stammen von Anthropics Servern, und eine Bearbeitung des lokalen Cache [dauert nur bis zum nächsten erfolgreichen Abruf](/docs/de/server-managed-settings#security-considerations).

278* **Andere Tools**: Verwaltete Einstellungen binden nur Claude Code. Ein Entwickler, der die API von einem anderen Tool aufruft, unterliegt ihnen nicht.

279 

280<span id="verify-enforcement" />

281 

282<span id="verify-that-a-policy-is-in-force" />

283 

284<h2 id="check-that-a-policy-is-in-force">

285 Überprüfen Sie, dass eine Richtlinie in Kraft ist

286</h2>

287 

288Ein Entwickler meldet, dass eine Richtlinie nicht angewendet wird, oder Sie möchten einen Rollout bestätigen, bevor Sie ihn auf die Flotte schieben. Zwei Befehle auf diesem Rechner beantworten es: `/status` zeigt, welche verwaltete Quelle Claude Code ausgewählt hat, und `claude doctor` listet auf, was es gelöscht hat.

289 

290<h3 id="read-the-source-in-/status">

291 Lesen Sie die Quelle in /status

292</h3>

293 

294Führen Sie auf dem Rechner des Entwicklers `/status` in Claude Code aus und lesen Sie die Zeile `Setting sources`. Wenn eine verwaltete Quelle in Kraft ist, listet die Zeile `Enterprise managed settings` mit der Quelle auf, die Claude Code in Klammern ausgewählt hat:

295 

296* `(remote)`: Serververwaltete Einstellungen von claude.ai oder einem Gateway

297* `(plist)` oder `(HKLM)`: Eine MDM- oder Betriebssystemrichtlinie

298* `(file)`, `(drop-ins)` oder `(file + drop-ins)`: `managed-settings.json`, das Drop-in-Verzeichnis oder beide

299* `(remote + file, merged)` oder eine andere Liste, die mit `, merged` endet: Ihre Organisation [komponiert jede verwaltete Quelle](#compose-every-managed-source), und Claude Code führte die aufgelisteten Quellen in die Richtlinie zusammen. Eine niedrigere Quelle kann immer noch `env`-Variablen liefern, ohne in der Liste zu erscheinen. Erfordert Claude Code v2.1.242 oder später

300* `(HKCU)`: Der benutzerbearbeitbare Registrierungs-Fallback

301* `(parent process)`: Ein [Embedding-Host](#let-an-embedding-host-add-policy) lieferte restriktive Einstellungen

302* `(helper)`: Ein [`policyHelper`](/docs/de/settings-reference#policyhelper), der von der ausgewählten MDM- oder Dateiquelle konfiguriert wurde

303 

304Wenn Claude Code eine verwaltete Quelle auf dem Rechner fand und sie nicht auswählte, nennt eine zweite Zeile, `Skipped sources`, jede solche Quelle. Lesen Sie sie, um eine Richtlinie, die den Rechner nie erreichte, von einer zu unterscheiden, die ihn erreichte und die eine höherpriorisierte Quelle außer Kraft setzte. Erfordert Claude Code v2.1.242 oder später.

305 

306Wenn die Richtlinie nicht angewendet wird, sagt Ihnen die Zeile `Setting sources`, welches von zwei Problemen Sie haben:

307 

308* **Die Zeile fehlt**: Claude Code fand keine verwaltete Quelle, die einen Richtlinienschlüssel bereitstellt.

309 

310 Wenn Sie eine verwaltete Einstellungsdatei bereitgestellt haben, überprüfen Sie, dass sie sich am Pfad für das Betriebssystem befindet und dass sie einen [Richtlinienschlüssel](#how-claude-code-combines-managed-sources) anstelle nur der Steuerschlüssel enthält. Eine Datei, die kein gültiges JSON ist, erzeugt diesen Zustand nicht; Claude Code [weigert sich zu starten](#find-entries-claude-code-dropped) stattdessen.

311 

312 Wenn Sie stattdessen über serververwaltete Einstellungen bereitgestellt haben, führen Sie `claude doctor` aus, das das [Abrufergebnis](/docs/de/server-managed-settings#verify-settings-delivery) meldet.

313* **Die Zeile nennt eine Quelle, die nicht die ist, die Sie bereitgestellt haben**: Eine höherpriorisierte Quelle ist vorhanden und Claude Code ignorierte Ihre, und `Skipped sources` listet sie auf. [Wie Claude Code verwaltete Quellen kombiniert](#how-claude-code-combines-managed-sources) gibt die Reihenfolge.

314 

315<span id="invalid-entries-in-managed-settings" />

316 

317<h3 id="find-entries-claude-code-dropped">

318 Finden Sie Einträge, die Claude Code gelöscht hat

319</h3>

320 

321Wenn eine verwaltete Einstellungsdatei, ein MDM-Profil, ein Registrierungswert oder eine serververwaltete Nutzlast die Schemavalidierung nicht besteht, überspringt Claude Code zuerst die einzelnen Einträge, die es reparieren kann, wie eine ungültige Berechtigungsregel, mit einer Warnung für jeden, löscht dann jeden Top-Level-Schlüssel, dessen Wert immer noch fehlschlägt, und setzt die Durchsetzung jedes verbleibenden gültigen Schlüssels fort.

322 

323Claude Code ist strenger mit den `managedSettings`, die ein [`policyHelper`](/docs/de/settings-reference#policyhelper) ausgibt: Es macht die gleichen Eintragsreparaturen, aber jede Schemaverletzung, die überlebt, schlägt den ganzen Helper-Lauf fehl, und beim Start weigert sich Claude Code zu starten, das gleiche wie für einen Helper, der mit Nicht-Null beendet wird.

324 

325Wenn eine verwaltete Einstellungsdatei, Drop-in-Datei, MDM-plist oder HKLM-Registrierungswert vorhanden ist, aber nicht als JSON-Objekt analysiert werden kann, weigert sich Claude Code zu starten und druckt [einen Fehler, der die Quelle benennt](/docs/de/errors#managed-settings-document-could-not-be-parsed), auch wenn eine andere Admin-Quelle eine gültige Richtlinie bereitstellt. Jede Quelle schlägt auf diese Weise fehl, wenn:

326 

327* **Verwaltete Einstellungsdatei oder Drop-in-Datei**: Die Datei ist kein gültiges JSON oder ihre Top-Ebene ist kein Objekt

328* **MDM-plist**: macOS's `plutil` meldet die plist als fehlerhaft oder ihr konvertierter Inhalt ist kein JSON-Objekt

329* **HKLM-Registrierungswert**: Der `Settings`-Wert ist keine Zeichenkette, ist leer oder enthält kein JSON-Objekt

330 

331Drei Quellzustände verursachen diese Weigerung nicht:

332 

333* Eine fehlende Datei, ein fehlendes Profil oder ein fehlender Registrierungswert ist kein Fehler; Claude Code läuft ohne diese Quelle.

334* Eine leere verwaltete Einstellungsdatei zählt als `{}`.

335* Ein fehlerhafter Wert im benutzerbearbeitbaren HKCU-Registrierungsschlüssel blockiert niemals den Start. Claude Code meldet ihn stattdessen als Hinweis in `/status` und `claude doctor`.

336 

337Wenn eine verwaltete Einstellungsdatei, Drop-in-Datei oder `managed-settings.d/`-Verzeichnis nicht gelesen werden kann und keine Admin-Quelle eine Richtlinie liefert, beenden Sitzungen, die sich mit claude.ai- oder Claude Console-Anmeldedaten anmelden, beim Start mit einer Nachricht, um einen Administrator zu kontaktieren.

338 

339Um einen gelöschten Eintrag zu finden, schauen Sie an einer von drei Stellen nach:

340 

341* Interaktive Sitzungen zeigen beim Start einen Dialog mit den ungültigen Einträgen.

342* Nicht-interaktive Läufe mit `-p` drucken eine Zusammenfassung auf stderr.

343* [`claude doctor`](/docs/de/debug-your-config) listet jeden ungültigen Eintrag mit seiner Quelle und seinem Feld auf.

344 

345<h4 id="keys-that-fail-closed">

346 Schlüssel, die geschlossen fehlschlagen

347</h4>

348 

349Einige Durchsetzungsschlüssel werden nicht gelöscht, wenn sie ungültig sind. Claude Code erzwingt einen strengeren Fallback, bis der Wert behoben ist; die Tabelle zeigt, was es für jeden Schlüssel erzwingt:

350 

351| Feld | Verhalten, wenn vorhanden, aber ungültig |

352| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

353| `allowedMcpServers` | Erzwungen als leere Zulassungsliste, daher werden keine MCP-Server zugelassen, bis der Wert behoben ist. Server, die Ihre Organisation durch [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) bereitstellt, werden immer noch geladen, und `managed-mcp.json`-Server werden pro [Wie ein Server evaluiert wird](/docs/de/managed-mcp#how-a-server-is-evaluated) geladen. Ein einzelner ungültiger Eintrag wird entfernt und die gültige Teilmenge wird erzwungen. |

354| `allowedHttpHookUrls` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#allowedhttphookurls), bis Sie den Wert beheben, daher wird ein HTTP-Hook nur ausgeführt, wenn eine andere Einstellungsdatei seine URL auflistet. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |

355| `httpHookAllowedEnvVars` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#httphookallowedenvvars), bis Sie den Wert beheben, daher wird eine Header-Variable nur interpoliert, wenn eine andere Einstellungsdatei sie benennt. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |

356| `allowedChannelPlugins` | Claude Code erzwingt eine leere Zulassungsliste, bis Sie den Wert beheben, daher wird kein an `--channels` übergebenes Channel-Plugin zugelassen. Wenn nur ein einzelner Eintrag ungültig ist, entfernt es diesen Eintrag und erzwingt den Rest. |

357| `allowManagedHooksOnly` | Behandelt als `true`, bis behoben: Die [Hook-Einschränkungen](/docs/de/settings-reference#allowmanagedhooksonly) gelten und, wenn `disableCommandPluginSources` nicht explizit `false` ist, sind befehlsgesteuerte Plugins deaktiviert. |

358| `allowManagedMcpServersOnly` | Behandelt als `true`. |

359| `disableCommandPluginSources` | Behandelt als `true`, daher bleiben befehlsgesteuerte Plugins deaktiviert, bis der Wert behoben ist. |

360| `availableModels` | Erzwungen als leere Zulassungsliste, bis behoben, daher ist nur das Standardmodell verfügbar; ein Nicht-String-Eintrag wird entfernt und die gültige Teilmenge wird erzwungen. |

361| `enforceAvailableModels` | Behandelt als `true`. |

362| `forceLoginOrgUUID` | Keine Organisation darf sich anmelden, bis der Wert behoben ist. |

363| `crossSessionInbound` | Behandelt als `refuse`, der restriktivste Wert, daher werden eingehende [Cross-Session-Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) abgelehnt, bis der Wert behoben ist. Der Entwickler sieht [eine Warnung](/docs/de/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

364| `deniedMcpServers` | Ein einzelner ungültiger Eintrag wird entfernt und die gültige Teilmenge wird erzwungen. Ein ganz ungültiger Wert wird mit einer Warnung gelöscht, da das Verweigern jedes Servers Server blockieren würde, die die Richtlinie nie benannt hat. |

365| `sandbox.credentials` | Ein wiederherstellbarer ungültiger Eintrag wird zu `mode: "deny"` mit einer Warnung herabgestuft; ein nicht wiederherstellbarer wird entfernt; gültige Einträge bleiben erzwungen. Siehe [ungültige Credential-Einträge](/docs/de/settings-reference#invalid-credential-entries-in-managed-settings) |

366 

367`allowedHttpHookUrls` und `httpHookAllowedEnvVars` werden über Einstellungsdateien zusammengeführt, daher gelten Einträge in Ihren Benutzer-, Projekt- oder lokalen Einstellungen immer noch, während die verwaltete Liste leer ist. Die Fallbacks für diese beiden Schlüssel und für `allowedChannelPlugins` erfordern Claude Code v2.1.267 oder später; frühere Versionen löschen den ganzen Schlüssel, wenn sein Wert oder ein Eintrag ungültig ist.

368 

369`requiredMinimumVersion` und `requiredMaximumVersion` schlagen absichtlich offen fehl: Ein ungültiger Wert wird gelöscht, anstatt erzwungen zu werden.

370 

371Diese Toleranz gilt nur für verwaltete Einstellungen. Benutzer-, Projekt- und lokale Einstellungsdateien bleiben streng: Eine Datei, deren JSON oder Top-Level-Form die Validierung nicht besteht, wird als Ganzes abgelehnt und gemeldet, und ein einzelner Eintrag, der fehlschlägt, wie eine fehlerhafte Berechtigungsregel, wird mit einer Warnung übersprungen, während der Rest der Datei angewendet wird.

372 

373<span id="managed-only-settings" />

374 

375<h2 id="keys-only-a-managed-source-can-set">

376 Schlüssel, die nur eine verwaltete Quelle setzen kann

377</h2>

378 

379Claude Code liest die folgenden Schlüssel nur aus einer verwalteten Quelle; das Platzieren in Benutzer- oder Projekteinstellungsdateien hat keine Auswirkung.

380 

381Die meisten sind Sperren: Der Wert, den eine Sperre regelt, wie Berechtigungsregeln oder `sandbox.network.allowedDomains`, ist ein gewöhnlicher Schlüssel, den jede Ebene setzen kann, und die Sperre sagt Claude Code, nur den verwalteten Wert zu beachten.

382 

383Die Tabelle behandelt die Berechtigungs-, Plugin- und Liefersteuerelemente. Für jeden Schlüssel, der hier nicht aufgelistet ist, sagt die Spalte „Scope" der [Einstellungsreferenz](/docs/de/settings-reference#all-settings) Index, ob er nur verwaltet ist; die verbleibenden nur verwalteten Schlüssel dort umfassen die Gateway-Anmelde-URL, Version, Browser, Mobile-Simulator, SSH-Host, Desktop-Lokalsitzung, Sandbox-Binärpfad, Modellpreisgestaltung und CLAUDE.md-Steuerelemente.

384 

385| Einstellung | Beschreibung |

386| :-------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

387| [`allowAllClaudeAiMcps`](/docs/de/settings-reference#allowallclaudeaimcps) | Laden Sie die claude.ai-Konnektoren, die Claude Code selbst abruft, neben einer bereitgestellten `managed-mcp.json`, anstatt sie zu unterdrücken |

388| [`allowedChannelPlugins`](/docs/de/settings-reference#allowedchannelplugins) | Zulassungsliste von Channel-Plugins, die Nachrichten schieben dürfen. Ersetzt die Standard-Anthropic-Zulassungsliste, wenn gesetzt. Erfordert `channelsEnabled: true`. Siehe [Beschränken Sie, welche Channel-Plugins ausgeführt werden können](/docs/de/channels#restrict-which-channel-plugins-can-run) |

389| [`allowManagedHooksOnly`](/docs/de/settings-reference#allowmanagedhooksonly) | Wenn `true`, beschränkt, welche Hooks ausgeführt werden; siehe [was unter `allowManagedHooksOnly` ausgeführt wird](/docs/de/settings-reference#what-runs-under-allowmanagedhooksonly) für die vollständige Effektliste |

390| [`allowManagedMcpServersOnly`](/docs/de/settings-reference#allowmanagedmcpserversonly) | Wenn `true`, werden nur `allowedMcpServers` aus verwalteten Einstellungen beachtet. `deniedMcpServers` führt immer noch aus allen Quellen zusammen. Siehe [Verwaltete MCP-Konfiguration](/docs/de/managed-mcp) |

391| [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) | Macht verwaltete Einstellungen zur einzigen Einstellungsquelle von Berechtigungsregeln. Der Eintrag listet jede Quelle auf, die er ignoriert |

392| [`blockedMarketplaces`](/docs/de/settings-reference#blockedmarketplaces) | Blockliste von Marktplatzquellen. Blockierte Quellen werden vor dem Download überprüft, daher berühren sie niemals das Dateisystem. Siehe [verwaltete Marktplatz-Einschränkungen](/docs/de/plugin-marketplaces#managed-marketplace-restrictions) |

393| [`channelsEnabled`](/docs/de/settings-reference#channelsenabled) | Erlauben Sie [Kanäle](/docs/de/channels) für die Organisation. Siehe [Enterprise-Steuerelemente](/docs/de/channels#enterprise-controls) für die Standardeinstellung auf jedem Plan |

394| [`disableCommandPluginSources`](/docs/de/settings-reference#disablecommandpluginsources) | Wenn `true`, blockiert [`command`-Plugin-Quellen](/docs/de/plugin-marketplaces#command-sources) vollständig, daher wird der vom Marktplatz deklarierte Befehl nie ausgeführt. Blockiert auch Marktplatz-[`headersHelper`-Befehle](/docs/de/plugin-marketplaces#authenticate-archive-downloads), außer für einen Marktplatz, den verwaltete Einstellungen selbst deklarieren. Wenn nicht gesetzt, folgt `allowManagedHooksOnly`. Erfordert Claude Code v2.1.229 oder später, und der `headersHelper`-Block erfordert v2.1.238 oder später |

395| [`disableSideloadFlags`](/docs/de/settings-reference#disablesideloadflags) | Lehnen Sie die Flags `--plugin-dir`, `--plugin-url`, `--agents` und `--mcp-config` beim Start ab. In Cloud-Sitzungen löscht Claude Code die MCP-Server, die der Server durch `--mcp-config` bereitgestellt hat, mit Ausnahme von In-Process-`type: "sdk"`-Einträgen, und startet die Sitzung. Erfordert Claude Code v2.1.193 oder später |

396| [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh) | Wenn `true`, blockiert CLI-Start, bis remote verwaltete Einstellungen frisch abgerufen werden, und beendet, wenn der Abruf fehlschlägt. Siehe [Fail-Closed-Durchsetzung](/docs/de/server-managed-settings#enforce-fail-closed-startup) |

397| [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) | Remote-MCP-Server, die jedem Benutzer neben ihren eigenen bereitgestellt werden. Es stellt Server bereit, anstatt etwas zu sperren. Siehe [Stellen Sie Server durch verwaltete Einstellungen bereit](/docs/de/managed-mcp#provide-servers-through-managed-settings). Erfordert Claude Code v2.1.259 oder später |

398| [`managedSourcesBehavior`](/docs/de/settings-reference#managedsourcesbehavior) | Ob Claude Code nur die höchstpriorität verwaltete Quelle anwendet oder [komponiert jede von ihnen](#compose-every-managed-source) |

399| [`parentSettingsBehavior`](/docs/de/settings-reference#parentsettingsbehavior) | Ob vom Host bereitgestellte übergeordnete Einstellungen unter der verwalteten Richtlinie zusammengeführt werden |

400| [`pluginSuggestionMarketplaces`](/docs/de/settings-reference#pluginsuggestionmarketplaces) | Marktplätze, deren Plugins Claude Code Benutzern vorschlagen darf |

401| [`pluginTrustMessage`](/docs/de/settings-reference#plugintrustmessage) | Benutzerdefinierte Nachricht, die der vor der Installation angezeigten Plugin-Vertrauenswarnung angehängt wird |

402| [`policyHelper`](/docs/de/settings-reference#policyhelper) | Ausführbare Datei, die verwaltete Einstellungen beim Start berechnet; siehe [Berechnen Sie verwaltete Einstellungen mit einem Policy-Helper](/docs/de/settings-reference#policyhelper) |

403| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/de/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Wenn `true`, werden nur `filesystem.allowRead`-Pfade aus verwalteten Einstellungen beachtet. `denyRead` führt immer noch aus allen Quellen zusammen |

404| [`sandbox.network.allowManagedDomainsOnly`](/docs/de/settings-reference#sandbox-network-allowmanageddomainsonly) | Beachten Sie nur verwaltete `allowedDomains` und `WebFetch(domain:...)`-Zulassungsregeln; blockieren Sie andere Domänen ohne Eingabeaufforderung |

405| [`strictKnownMarketplaces`](/docs/de/settings-reference#strictknownmarketplaces) | Steuert, welche Plugin-Marktplatzquellen Benutzer hinzufügen und Plugins installieren können. Siehe [verwaltete Marktplatz-Einschränkungen](/docs/de/plugin-marketplaces#managed-marketplace-restrictions) |

406| [`strictPluginOnlyCustomization`](/docs/de/settings-reference#strictpluginonlycustomization) | Blockieren Sie Skills, Agents, Hooks und MCP-Server aus Benutzer- und Projektquellen; `true` sperrt alle vier, ein Array nennt, welche |

407| [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) | Wenn im HKLM-Registrierungsschlüssel oder einer Datei unter `C:\Program Files\ClaudeCode` gesetzt, lassen Sie WSL die Windows-Richtlinienkette lesen und lesen Sie `/etc/claude-code` nur, wenn keine verwaltete Einstellungsdatei oder Drop-in unter diesem Verzeichnis einen [Richtlinienschlüssel](#how-claude-code-combines-managed-sources) bereitstellt; der Eintrag gibt die Reihenfolge |

408 

409<Note>

410 Auf Team- und Enterprise-Plänen aktiviert oder deaktiviert ein Owner [Remote Control](/docs/de/remote-control) und [Web-Sitzungen](/docs/de/claude-code-on-the-web) organisationsweit in [Claude Code-Verwaltungseinstellungen](https://claude.ai/admin-settings/claude-code). Remote Control kann zusätzlich pro Gerät mit der Einstellung [`disableRemoteControl`](/docs/de/settings-reference#disableremotecontrol) deaktiviert werden. Web-Sitzungen haben keinen verwalteten Einstellungsschlüssel pro Gerät.

411 

412 Um zu überprüfen, ob diese Organisationseinstellungen einen bestimmten Rechner erreicht haben, führen Sie dort `claude doctor` aus und lesen Sie die Zeile `Organization policy`, die sagt, wo Claude Code die Richtlinie geladen hat oder warum es nicht geladen wurde. Erfordert Claude Code v2.1.261 oder später. In einer laufenden Sitzung zeigt `/status` die gleiche Zeile, wenn die Richtlinie nicht geladen wurde.

413</Note>

414 

415<h2 id="turn-telemetry-off-for-your-organization">

416 Schalten Sie Telemetrie für Ihre Organisation aus

417</h2>

418 

419Claude Code sendet Anthropic-Betriebstelemetrie]\(/de/data-usage#telemetry-services) standardmäßig auf Sitzungen, die die Anthropic API verwenden, ob direkt, über ein LLM-Gateway oder über ein benutzerdefiniertes `ANTHROPIC_BASE_URL`; [Standardverhalten nach API-Anbieter](/docs/de/data-usage#default-behaviors-by-api-provider) sagt, welche Anbieter es senden. Um es für jeden Entwickler auszuschalten, ohne sich auf die Shell jeder Person zu verlassen, liefern Sie `DISABLE_TELEMETRY` über den `env`-Block Ihrer verwalteten Einstellungen. Dieses Beispiel setzt `DISABLE_TELEMETRY` für jeden, den die Richtlinie erreicht:

420 

421```json theme={null}

422{

423 "env": {

424 "DISABLE_TELEMETRY": "1"

425 }

426}

427```

428 

429Claude Code wendet einen Wert von `1` an, ohne dem Benutzer den [Genehmigungsdialog](/docs/de/server-managed-settings#environment-variables-and-the-approval-dialog) zu zeigen.

430 

431Wenn Sie Telemetrie ausschalten, stoppt Claude Code das Senden der Nutzungsdaten, die Ihr Organisations-[Analyse-Dashboard](/docs/de/analytics) für die Entwickler speist, die die Richtlinie erreicht. Die Variable schaltet auch das Abrufen von Feature-Flags aus, was [Features, die Feature-Flag-Abrufen benötigen](/docs/de/env-vars#features-that-need-feature-flag-fetching), für diese Entwickler nicht verfügbar macht.

432 

433[Wo und wann eine Richtlinie angewendet wird](#where-and-when-a-policy-applies) sagt, welcher Bereitstellungsmechanismus jede Oberfläche erreicht, und [Plattformverfügbarkeit](/docs/de/server-managed-settings#platform-availability) sagt, welche Sitzungen den Abruf von serververwalteten Einstellungen überspringen.

434 

435Wenn Ihre Organisation kundenverwaltete Verschlüsselungsschlüssel verwendet und Claude Code über ein Gateway leitet, sagt [Konfigurieren Sie Proxys und Gateways](/docs/de/third-party-integrations#configure-proxies-and-gateways), warum diese Sitzungen diese Variable benötigen.

436 

437<h2 id="see-also">

438 Siehe auch

439</h2>

440 

441* [Richten Sie Claude Code für Ihre Organisation ein](/docs/de/admin-setup): Entscheiden Sie, was durchgesetzt werden soll und wie

442* [Serververwaltete Einstellungen](/docs/de/server-managed-settings): Liefern Sie Richtlinie aus der claude.ai-Konsole oder einem Gateway

443* [Verwaltete MCP-Konfiguration](/docs/de/managed-mcp): Steuern Sie, welche MCP-Server Entwickler verwenden können

444* [Alle Einstellungen](/docs/de/settings-reference): Jeder Schlüssel, mit ob eine verwaltete Quelle ihn setzen kann

445* [Beispiel-Einstellungsdateien](/docs/de/settings-example#an-organizations-managed-settings): Eine vollständige `managed-settings.json`, die die Form der verwalteten Schlüssel zeigt

mcp.md +22 −11

Details

52 * `Marketplace "claude-plugins-official" nicht gefunden`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.52 * `Marketplace "claude-plugins-official" nicht gefunden`: Fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann die Installation erneut.

53 * Das Plugin ist [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.53 * Das Plugin ist [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): Überprüfen Sie den Plugin-Namen.

54 54 

55 Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie diesen Befehl aus.55 Wenn die Installationszusammenfassung `Run /reload-plugins to activate.` meldet, führt Claude Code diesen Befehl dann für Sie aus. Wenn das Neuladen warnt, dass Ihre nächste Nachricht das Gespräch erneut lesen würde, führen Sie `/reload-plugins --force` aus.

56 </Step>56 </Step>

57 57 

58 <Step title="Führen Sie die Build-Skill aus">58 <Step title="Führen Sie die Build-Skill aus">


102 Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.102 Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.

103</Warning>103</Warning>

104 104 

105Einige Dienste stellen nur einen SSE-Endpunkt bereit. Verwenden Sie den gleichen Befehl wie beim HTTP-Transport, mit `--transport sse`:105Einige Dienste stellen nur einen SSE-Endpunkt bereit. Fügen Sie diese mit dem gleichen Befehl `claude mcp add --transport http <name> <url>` wie [ein HTTP-Server](#option-1-add-a-remote-http-server) hinzu. Claude Code versucht zuerst das HTTP-Transportprotokoll und wechselt zu SSE, wenn der Server es nicht akzeptiert. Der automatische Wechsel erfordert Claude Code v2.1.265 oder später.

106 

107Bei einer früheren Version oder um sich direkt über SSE zu verbinden, übergeben Sie stattdessen `--transport sse`:

106 108 

107```bash theme={null}109```bash theme={null}

108# Grundlegende Syntax110# Grundlegende Syntax


183 Aus einer URL185 Aus einer URL

184</h4>186</h4>

185 187 

186Eine URL bedeutet, dass der Server Remote ist. Für einen `https://`-Endpunkt fügen Sie ihn mit `--transport http` hinzu, oder mit `--transport sse`, wenn die Anweisungen sagen, dass der Endpunkt SSE verwendet. Für einen `wss://`-Endpunkt verwenden Sie stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` nicht `ws` akzeptiert:188Eine URL bedeutet, dass der Server Remote ist. Für einen `https://`-Endpunkt fügen Sie ihn mit `--transport http` hinzu, oder folgen Sie [Option 2](#option-2-add-a-remote-sse-server), wenn die Anweisungen sagen, dass der Endpunkt SSE verwendet. Für einen `wss://`-Endpunkt verwenden Sie stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` nicht `ws` akzeptiert:

187 189 

188```bash theme={null}190```bash theme={null}

189claude mcp add --transport http example https://mcp.example.com/mcp191claude mcp add --transport http example https://mcp.example.com/mcp


304 306 

305Wenn der Status eines Servers `✘ Failed to connect` ist, hängt `claude mcp list` das Fehlerdetail an diese Statuszeile an, und `claude mcp get <name>` zeigt es auf einer `Issue:`-Zeile: der HTTP-Status oder Fehlercode, plus jeder Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält den gleichen vom Server gemeldeten Text in ihrer `Issue:`-Zeile. Claude Code redigiert Credential-ähnlichen Text aus diesem Detail und enthält niemals die erweiterte Server-URL, die Geheimnisse tragen kann. Claude Code hängt keinen Detail an einen `✘ Connection error`-Status an, da der Exception-Text, den es dort drucken würde, diese URL einbetten kann. Vor v2.1.219 zeigten beide Befehle nur den bloßen Fehlerstatus ohne Statuscode oder Fehlertext des Servers.307Wenn der Status eines Servers `✘ Failed to connect` ist, hängt `claude mcp list` das Fehlerdetail an diese Statuszeile an, und `claude mcp get <name>` zeigt es auf einer `Issue:`-Zeile: der HTTP-Status oder Fehlercode, plus jeder Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält den gleichen vom Server gemeldeten Text in ihrer `Issue:`-Zeile. Claude Code redigiert Credential-ähnlichen Text aus diesem Detail und enthält niemals die erweiterte Server-URL, die Geheimnisse tragen kann. Claude Code hängt keinen Detail an einen `✘ Connection error`-Status an, da der Exception-Text, den es dort drucken würde, diese URL einbetten kann. Vor v2.1.219 zeigten beide Befehle nur den bloßen Fehlerstatus ohne Statuscode oder Fehlertext des Servers.

306 308 

307Wenn Sie die Authentifizierung von `/mcp` aus abschließen und die Verbindung immer noch mit einem HTTP-Status oder einem Transport-Fehlercode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der URL, die es versucht hat, der Nachricht hinzu, die es nach dem Versuch druckt. Der Ursprung ist das Schema und der Host, plus der Port, wenn die URL einen benennt, wie `https://mcp.example.com`.309Wenn Sie die Authentifizierung von `/mcp` aus abschließen und die Verbindung immer noch mit einem HTTP-Status oder einem Transport-Fehlercode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der URL des Servers zur Nachricht hinzu, die es nach dem Versuch druckt. Der Ursprung ist das Schema und der Host, plus der Port, wenn die URL einen benennt, wie `https://mcp.example.com`.

308 310 

309* Der Pfad und die Abfrage erscheinen niemals in dieser Nachricht.311* Der Pfad und die Abfrage erscheinen niemals in dieser Nachricht.

310* Claude Code nimmt den Ursprung nach `${VAR}`-Erweiterung, daher erscheint ein Host, der aus einer Variable kommt, erweitert.312* Für einen Server im lokalen, Projekt- oder Benutzer-[Bereich](#mcp-installation-scopes) oder in verwalteter MCP-Konfiguration zeigt der Ursprung den Host, wie er in dieser Konfiguration geschrieben ist, daher wird eine `${VAR}`-Referenz im Host nicht in der Nachricht erweitert.

311* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung.313* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung.

312 314 

313Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](/docs/de/plugins)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich damit zu verbinden. Ein Plugin kann einen Platzhalter-Eintrag wie diesen für einen Connector enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Setup-Problem meldet. Die Detailansicht des Servers in `/mcp` liest `No URL configured for this server`; setzen Sie die `url` des Eintrags, um sich zu verbinden. Vor v2.1.208 meldete Claude Code eine leere `url` als Konfigurationsproblem mit einer Aufforderung zur Wiederverbindung.315Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](/docs/de/plugins)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich damit zu verbinden. Ein Plugin kann einen Platzhalter-Eintrag wie diesen für einen Connector enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Setup-Problem meldet. Die Detailansicht des Servers in `/mcp` liest `No URL configured for this server`; setzen Sie die `url` des Eintrags, um sich zu verbinden. Vor v2.1.208 meldete Claude Code eine leere `url` als Konfigurationsproblem mit einer Aufforderung zur Wiederverbindung.


345 347 

346Wenn Sie einen Server umschalten, zeichnet Claude Code Ihre Wahl pro Projekt in `~/.claude.json` in einer von zwei Listen auf, die disjunkte Sätze von Servern abdecken:348Wenn Sie einen Server umschalten, zeichnet Claude Code Ihre Wahl pro Projekt in `~/.claude.json` in einer von zwei Listen auf, die disjunkte Sätze von Servern abdecken:

347 349 

348* `disabledMcpServers`: Eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, die claude.ai-Connectoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), und integrierte Server, die standardmäßig aktiviert sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier auflisten. Wenn Sie einen claude.ai-Connector mit dem Pro-Projekt-`/mcp`-Umschalter deaktivieren, der in [claude.ai-Connectoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn in diese Liste unter seinem Anzeigenamen, zum Beispiel `claude.ai Slack`.350* `disabledMcpServers`: Eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, Server, die Ihre Organisation [über verwaltete Einstellungen bereitstellt](/docs/de/managed-mcp#provide-servers-through-managed-settings), die claude.ai-Connectoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), und integrierte Server, die standardmäßig aktiviert sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier auflisten. Wenn Sie einen claude.ai-Connector mit dem Pro-Projekt-`/mcp`-Umschalter deaktivieren, der in [claude.ai-Connectoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn in diese Liste unter seinem Anzeigenamen, zum Beispiel `claude.ai Slack`.

349* `enabledMcpServers`: Eine Opt-in-Liste für integrierte Server, die standardmäßig deaktiviert sind, wie `computer-use`. Claude Code verbindet sich mit einem standardmäßig deaktivierten Server nur, wenn Sie ihn hier auflisten.351* `enabledMcpServers`: Eine Opt-in-Liste für integrierte Server, die standardmäßig deaktiviert sind, wie `computer-use`. Claude Code verbindet sich mit einem standardmäßig deaktivierten Server nur, wenn Sie ihn hier auflisten.

350 352 

351Claude Code konsultiert genau eine der beiden Listen für jeden Server, daher überschreibt keine Liste die andere. Wenn Sie einen regulären Server zu `enabledMcpServers` hinzufügen oder einen standardmäßig deaktivierten integrierten Server zu `disabledMcpServers`, ignoriert Claude Code den Eintrag.353Claude Code konsultiert genau eine der beiden Listen für jeden Server, daher überschreibt keine Liste die andere. Wenn Sie einen regulären Server zu `enabledMcpServers` hinzufügen oder einen standardmäßig deaktivierten integrierten Server zu `disabledMcpServers`, ignoriert Claude Code den Eintrag.


371* Registriert keinen [Kanal](#push-messages-with-channels)-Server, der sich auf der neueren Revision verbindet, da diese Revision keine Kanal-Nachrichten tragen kann.373* Registriert keinen [Kanal](#push-messages-with-channels)-Server, der sich auf der neueren Revision verbindet, da diese Revision keine Kanal-Nachrichten tragen kann.

372* Schlägt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehl, deren Autorisierungsantwort einen unerwarteten Aussteller benennt.374* Schlägt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehl, deren Autorisierungsantwort einen unerwarteten Aussteller benennt.

373 375 

374Anthropic kann einen bestimmten Server auf dem früheren Protokoll halten oder von diesem Stream entfernen, mit einem Feature-Flag, das Claude Code abruft. In einer [Claude Code im Web](/docs/de/cloud-environments#network-access)-Sitzung fragt Claude Code seine MCP-Connectoren nur, wenn Sie `MCP_PROTOCOL_NEGOTIATION` auf `auto` setzen.376Anthropic kann einen bestimmten Server auf dem früheren Protokoll halten oder von diesem Stream entfernen, mit einem Feature-Flag, das Claude Code abruft.

375 377 

376Um die Runtime selbst zu wählen, setzen Sie [`MCP_SDK_GENERATION`](/docs/de/env-vars) auf `v1` oder `v2`. Um zu entscheiden, ob Claude Code fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` oder `legacy`. Wo Claude Code v1 standardmäßig verwendet, macht das Anheften von `v2` nicht, dass es fragt, daher setzen Sie auch `auto`.378Um die Runtime selbst zu wählen, setzen Sie [`MCP_SDK_GENERATION`](/docs/de/env-vars) auf `v1` oder `v2`. Um zu entscheiden, ob Claude Code fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` oder `legacy`. Wo Claude Code v1 standardmäßig verwendet, macht das Anheften von `v2` nicht, dass es fragt, daher setzen Sie auch `auto`.

377 379 


535 537 

536* **Automatischer Lebenszyklus**: Server verbinden und trennen sich an diesen Punkten:538* **Automatischer Lebenszyklus**: Server verbinden und trennen sich an diesen Punkten:

537 * Beim Sitzungsstart verbindet Claude Code die Server für aktivierte Plugins automatisch. In `/mcp` kann ein Remote-HTTP- oder SSE-Plugin-Server, den Sie zuvor verwendet haben, den [`cached`-Status](#server-status-detail) statt anzeigen; Claude Code verbindet ihn, wenn Claude eines seiner Tools zum ersten Mal aufruft539 * Beim Sitzungsstart verbindet Claude Code die Server für aktivierte Plugins automatisch. In `/mcp` kann ein Remote-HTTP- oder SSE-Plugin-Server, den Sie zuvor verwendet haben, den [`cached`-Status](#server-status-detail) statt anzeigen; Claude Code verbindet ihn, wenn Claude eines seiner Tools zum ersten Mal aufruft

538 * Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, führen Sie `/reload-plugins` aus, um seine MCP-Server zu verbinden oder zu trennen. Wenn Sie neu laden, behält Claude Code die Live-Verbindungen von Plugin-Servern, deren Konfiguration unverändert ist, und macht das gleiche, wenn Sie [die MCP-Server-Liste der Sitzung](/docs/de/agent-sdk/typescript#mcpsetserversresult) vom Agent SDK ersetzen, ohne sie zu benennen540 * Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, verbindet Claude Code seine MCP-Server oder trennt sie, wenn die Änderung angewendet wird. [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) beschreibt, wann das ist. In einer Sitzung ohne interaktives Terminal verbindet oder trennt `/reload-plugins` Plugin-MCP-Server nicht; diese Änderungen treten in Ihrer nächsten Sitzung in Kraft

541 * Wenn Sie neu laden, behält Claude Code die Live-Verbindungen von Plugin-Servern, deren Konfiguration unverändert ist, und macht das gleiche, wenn Sie [die MCP-Server-Liste der Sitzung](/docs/de/agent-sdk/typescript#mcpsetserversresult) vom Agent SDK ersetzen, ohne sie zu benennen

539 * Wenn Sie die Sitzung mit `/cd` [in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) bei v2.1.246 oder später, verbindet Claude Code die Server von Plugins, die die Einstellungen des neuen Verzeichnisses aktivieren, und trennt die Server von Plugins, die nicht mehr aktiviert sind, daher müssen Sie `/reload-plugins` nach der Verschiebung nicht ausführen542 * Wenn Sie die Sitzung mit `/cd` [in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) bei v2.1.246 oder später, verbindet Claude Code die Server von Plugins, die die Einstellungen des neuen Verzeichnisses aktivieren, und trennt die Server von Plugins, die nicht mehr aktiviert sind, daher müssen Sie `/reload-plugins` nach der Verschiebung nicht ausführen

540 * In [Web-Sitzungen](/docs/de/claude-code-on-the-web) startet ein MCP-Aufruf an einen Plugin-Server, der noch nicht verbunden ist, wie direkt nach einer Idle-Sitzung, die aufwacht, den Server bei Bedarf und wartet auf die Verbindung543 * In [Web-Sitzungen](/docs/de/claude-code-on-the-web) startet ein MCP-Aufruf an einen Plugin-Server, der noch nicht verbunden ist, wie direkt nach einer Idle-Sitzung, die aufwacht, den Server bei Bedarf und wartet auf die Verbindung

541* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird in das Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` in sein [persistentes Zustandsverzeichnis](/docs/de/plugins-reference#persistent-data-directory), und `${CLAUDE_PROJECT_DIR}` in das stabile Projektstammverzeichnis. Die Substitution gilt für:544* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird in das Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` in sein [persistentes Zustandsverzeichnis](/docs/de/plugins-reference#persistent-data-directory), und `${CLAUDE_PROJECT_DIR}` in das stabile Projektstammverzeichnis. Die Substitution gilt für:


564 MCP-Installationsbereiche567 MCP-Installationsbereiche

565</h2>568</h2>

566 569 

567MCP-Server können auf drei verschiedenen Bereichsebenen konfiguriert werden. Der Bereich, den Sie wählen, steuert, in welchen Projekten der Server geladen wird und ob die Konfiguration mit Ihrem Team geteilt wird. Administratoren können Server auch auf Unternehmensebene über [verwaltete Konfiguration](#managed-mcp-configuration) bereitstellen.570MCP-Server können auf drei verschiedenen Bereichsebenen konfiguriert werden. Der Bereich, den Sie wählen, steuert, in welchen Projekten der Server geladen wird und ob die Konfiguration mit Ihrem Team geteilt wird. Administratoren können Server auch auf Unternehmensebene über [verwaltete Konfiguration](#managed-mcp-configuration) bereitstellen oder zur Verfügung stellen.

568 571 

569| Bereich | Wird geladen in | Mit Team geteilt | Gespeichert in |572| Bereich | Wird geladen in | Mit Team geteilt | Gespeichert in |

570| ------------------------- | --------------------- | -------------------------- | --------------------------- |573| ------------------------- | --------------------- | -------------------------- | --------------------------- |


633 636 

634Aus Sicherheitsgründen fordert Claude Code eine Genehmigung an, bevor projektbegrenzte Server aus `.mcp.json`-Dateien in interaktiven Sitzungen verwendet werden. Um diese Genehmigungswahlmöglichkeiten zurückzusetzen, führen Sie `claude mcp reset-project-choices` aus.637Aus Sicherheitsgründen fordert Claude Code eine Genehmigung an, bevor projektbegrenzte Server aus `.mcp.json`-Dateien in interaktiven Sitzungen verwendet werden. Um diese Genehmigungswahlmöglichkeiten zurückzusetzen, führen Sie `claude mcp reset-project-choices` aus.

635 638 

636In `claude -p`-Läufen, [Agent SDK](/docs/de/headless)-Sitzungen und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) kann Claude Code diese Eingabeaufforderung nicht anzeigen: Es lädt projektbegrenzte Server ohne Nachfrage. Claude Code überspringt die Eingabeaufforderung auch in einer Sitzung, die Sie im `bypassPermissions`-Modus mit [`skipDangerousModePermissionPrompt`](/docs/de/settings-reference#skipdangerousmodepermissionprompt) starten. Um einen Server trotzdem auszuschließen:639In `claude -p`-Läufen, [Agent SDK](/docs/de/headless)-Sitzungen und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) kann Claude Code diese Eingabeaufforderung nicht anzeigen: Es lädt projektbegrenzte Server ohne Nachfrage. Claude Code überspringt die Eingabeaufforderung auch in einer Sitzung, die Sie im `bypassPermissions`-Modus mit [`skipDangerousModePermissionPrompt`](/docs/de/settings-reference#skipdangerousmodepermissionprompt) in Ihren Benutzereinstellungen oder in verwalteten Einstellungen starten. Um einen Server trotzdem auszuschließen:

637 640 

638* Fügen Sie ihn zu [`disabledMcpjsonServers`](/docs/de/settings-reference#disabledmcpjsonservers) hinzu, was ihn in jedem Berechtigungsmodus blockiert.641* Fügen Sie ihn zu [`disabledMcpjsonServers`](/docs/de/settings-reference#disabledmcpjsonservers) hinzu, was ihn in jedem Berechtigungsmodus blockiert.

639* Schließen Sie Projekteinstellungen vollständig mit [`--setting-sources`](/docs/de/cli-reference#cli-flags) oder der SDK-Option `settingSources` aus.642* Schließen Sie Projekteinstellungen vollständig mit [`--setting-sources`](/docs/de/cli-reference#cli-flags) oder der SDK-Option `settingSources` aus.


666 669 

667Die drei Bereiche stimmen Duplikate nach Name ab. Plugins und Connectoren stimmen nach Endpunkt ab, daher wird einer, der auf die gleiche URL oder den gleichen Befehl wie ein Server oben verweist, als Duplikat behandelt.670Die drei Bereiche stimmen Duplikate nach Name ab. Plugins und Connectoren stimmen nach Endpunkt ab, daher wird einer, der auf die gleiche URL oder den gleichen Befehl wie ein Server oben verweist, als Duplikat behandelt.

668 671 

672Ein Server, den Ihre Organisation über die verwaltete Einstellung [`managedMcpServers`](/docs/de/managed-mcp#provide-servers-through-managed-settings) bereitstellt, hat Vorrang vor all diesen, daher verbindet sich Claude Code mit der Definition der Organisation, wenn einer von ihnen ihn dupliziert. Erfordert Claude Code v2.1.259 oder später.

673 

669Wenn Sie eine lokale Sitzung in der [Code-Registerkarte der Desktop-App](/docs/de/desktop#mcp-servers-from-the-claude-desktop-chat-app) mit dem gleichen stdio-Servernamen auf der obersten Ebene von `~/.claude.json` (Benutzerbereich) und in `.mcp.json` öffnen, verwendet die Code-Registerkarte die `~/.claude.json`-Definition.674Wenn Sie eine lokale Sitzung in der [Code-Registerkarte der Desktop-App](/docs/de/desktop#mcp-servers-from-the-claude-desktop-chat-app) mit dem gleichen stdio-Servernamen auf der obersten Ebene von `~/.claude.json` (Benutzerbereich) und in `.mcp.json` öffnen, verwendet die Code-Registerkarte die `~/.claude.json`-Definition.

670 675 

671<h3 id="environment-variable-expansion-in-mcp-json">676<h3 id="environment-variable-expansion-in-mcp-json">


775* Für einen Server, bei dem Sie sich nicht angemeldet haben, kennzeichnet jeder dieser Statuscodes den Server in `/mcp`, damit Sie den OAuth-Fluss abschließen können.780* Für einen Server, bei dem Sie sich nicht angemeldet haben, kennzeichnet jeder dieser Statuscodes den Server in `/mcp`, damit Sie den OAuth-Fluss abschließen können.

776* Für einen [claude.ai-Connector](#use-mcp-servers-from-claude-ai) kennzeichnet ein `401`, das durch die Ablehnung Ihres Sitzungs-Tokens durch claude.ai verursacht wird, den Connector nicht, da eine erneute Autorisierung des Connectors Ihre Anmeldung nicht beheben kann. Claude Code zeigt stattdessen den [Zustand „Sitzungs-Token abgelehnt"](/docs/de/errors#claude-ai-rejected-the-session-token) an.781* Für einen [claude.ai-Connector](#use-mcp-servers-from-claude-ai) kennzeichnet ein `401`, das durch die Ablehnung Ihres Sitzungs-Tokens durch claude.ai verursacht wird, den Connector nicht, da eine erneute Autorisierung des Connectors Ihre Anmeldung nicht beheben kann. Claude Code zeigt stattdessen den [Zustand „Sitzungs-Token abgelehnt"](/docs/de/errors#claude-ai-rejected-the-session-token) an.

777* Für einen Server, dessen `Authorization`-Header Sie konfiguriert haben, in `headers` oder über einen [`headersHelper`](#use-dynamic-headers-for-custom-authentication), kennzeichnet ein `401` oder `403` beim Verbinden den Server nicht, da die Anmeldedaten, die behoben werden müssen, diejenigen sind, die Sie konfiguriert haben. Claude Code meldet die Verbindung stattdessen als fehlgeschlagen.782* Für einen Server, dessen `Authorization`-Header Sie konfiguriert haben, in `headers` oder über einen [`headersHelper`](#use-dynamic-headers-for-custom-authentication), kennzeichnet ein `401` oder `403` beim Verbinden den Server nicht, da die Anmeldedaten, die behoben werden müssen, diejenigen sind, die Sie konfiguriert haben. Claude Code meldet die Verbindung stattdessen als fehlgeschlagen.

783* Für einen Connector, der [an eine Cloud-Sitzung übermittelt wird](#how-connectors-reach-claude-code), führt Claude Code keinen Anmeldungsfluss aus, da die Proxy der Sitzung sich beim Connector mit der Autorisierung authentifiziert, die Sie in claude.ai gewährt haben. Wenn ein Connector dort erneut autorisiert werden muss, verbinden Sie ihn erneut unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors), anstatt aus der Sitzung.

778 784 

779Wenn eine Anfrage an einen OAuth-Server, bei dem Sie bereits angemeldet sind, `401 Unauthorized` zurückgibt, aktualisiert Claude Code das gespeicherte Token, verbindet sich erneut und wiederholt die Anfrage einmal. Der Server wird in `/mcp` nur gekennzeichnet, wenn dieser Wiederholungsversuch auch fehlschlägt. Vor v2.1.206 kennzeichnete eine Token-Aktualisierung, die aus einem vorübergehenden Grund fehlschlug, wie z. B. ein Netzwerkfehler, einen OAuth-Server als authentifizierungsbedürftig für den Rest der Sitzung, obwohl sein Refresh-Token noch gültig war.785Wenn eine Anfrage an einen OAuth-Server, bei dem Sie bereits angemeldet sind, `401 Unauthorized` zurückgibt, aktualisiert Claude Code das gespeicherte Token, verbindet sich erneut und wiederholt die Anfrage einmal. Der Server wird in `/mcp` nur gekennzeichnet, wenn dieser Wiederholungsversuch auch fehlschlägt. Vor v2.1.206 kennzeichnete eine Token-Aktualisierung, die aus einem vorübergehenden Grund fehlschlug, wie z. B. ein Netzwerkfehler, einen OAuth-Server als authentifizierungsbedürftig für den Rest der Sitzung, obwohl sein Refresh-Token noch gültig war.

780 786 


920 Tipps:926 Tipps:

921 927 

922 * Das Client-Secret wird sicher in Ihrem System-Keychain (macOS) oder einer Anmeldedatei gespeichert, nicht in Ihrer Konfiguration928 * Das Client-Secret wird sicher in Ihrem System-Keychain (macOS) oder einer Anmeldedatei gespeichert, nicht in Ihrer Konfiguration

929 * Sie können das Client-Secret nur beim Hinzufügen des Servers festlegen. Wenn Sie sich mit `claude mcp login` oder von `/mcp` authentifizieren, verwendet Claude Code das gespeicherte Secret und fordert nicht auf oder liest `MCP_CLIENT_SECRET`

930 * Um das Secret später hinzuzufügen oder zu ändern, entfernen Sie den Server mit `claude mcp remove <name>` und fügen Sie ihn dann erneut mit `--client-secret` und dem gleichen `--scope` hinzu

923 * Wenn der Server einen öffentlichen OAuth-Client ohne Secret verwendet, verwenden Sie nur `--client-id` ohne `--client-secret`931 * Wenn der Server einen öffentlichen OAuth-Client ohne Secret verwendet, verwenden Sie nur `--client-id` ohne `--client-secret`

924 * Diese Flags gelten nur für HTTP- und SSE-Transporte. Sie haben keine Auswirkung auf Stdio-Server932 * Diese Flags gelten nur für HTTP- und SSE-Transporte. Sie haben keine Auswirkung auf Stdio-Server

925 * Verwenden Sie `claude mcp get <name>`, um zu überprüfen, dass OAuth-Anmeldedaten für einen Server konfiguriert sind933 * Verwenden Sie `claude mcp get <name>`, um zu überprüfen, dass OAuth-Anmeldedaten für einen Server konfiguriert sind


1190 1198 

1191Wenn `/mcp` einen Connector, den Sie hinzugefügt haben, nicht auflistet, führen Sie `/status` aus, um zu bestätigen, welche Authentifizierungsmethode aktiv ist. Heben Sie diese Umgebungsvariable auf, entfernen Sie die `apiKeyHelper`-Einstellung oder [schalten Sie das Profil aus](/docs/de/authentication#anthropic-profiles-and-federation-credentials), und führen Sie dann `/login` aus, um Ihr claude.ai-Konto auszuwählen.1199Wenn `/mcp` einen Connector, den Sie hinzugefügt haben, nicht auflistet, führen Sie `/status` aus, um zu bestätigen, welche Authentifizierungsmethode aktiv ist. Heben Sie diese Umgebungsvariable auf, entfernen Sie die `apiKeyHelper`-Einstellung oder [schalten Sie das Profil aus](/docs/de/authentication#anthropic-profiles-and-federation-credentials), und führen Sie dann `/login` aus, um Ihr claude.ai-Konto auszuwählen.

1192 1200 

1201Wenn ein temporäres Netzwerkproblem verhindert, dass die Connector-Liste beim Start Ihrer Sitzung geladen wird, versucht Claude Code den Abruf bis zu dreimal im Hintergrund erneut, und die Connectors werden angezeigt, sobald ein erneuter Versuch erfolgreich ist. Wenn sie immer noch nicht angezeigt werden, starten Sie Claude Code neu, um die Liste erneut abzurufen.

1202 

1193Wenn `/mcp` einen Connector als `connected · session token rejected` anzeigt oder seine Detailansicht [`claude.ai rejected the session token`](/docs/de/errors#claude-ai-rejected-the-session-token) anzeigt, hat claude.ai das Token aus Ihrem Claude Code-Login abgelehnt, normalerweise weil das Login abgelaufen ist und nicht aktualisiert werden konnte. Die erneute Autorisierung des Connectors löscht diesen Status nicht, da die eigene Autorisierung des Connectors in claude.ai nicht das ist, was abgelehnt wurde. Um dies zu beheben:1203Wenn `/mcp` einen Connector als `connected · session token rejected` anzeigt oder seine Detailansicht [`claude.ai rejected the session token`](/docs/de/errors#claude-ai-rejected-the-session-token) anzeigt, hat claude.ai das Token aus Ihrem Claude Code-Login abgelehnt, normalerweise weil das Login abgelaufen ist und nicht aktualisiert werden konnte. Die erneute Autorisierung des Connectors löscht diesen Status nicht, da die eigene Autorisierung des Connectors in claude.ai nicht das ist, was abgelehnt wurde. Um dies zu beheben:

1194 1204 

11951. Führen Sie `/login` aus, um sich erneut anzumelden.12051. Führen Sie `/login` aus, um sich erneut anzumelden.


1323* **Konfigurierbare Begrenzung**: Sie können die maximale zulässige MCP-Ausgabe-Token-Menge mithilfe der Umgebungsvariablen `MAX_MCP_OUTPUT_TOKENS` anpassen1333* **Konfigurierbare Begrenzung**: Sie können die maximale zulässige MCP-Ausgabe-Token-Menge mithilfe der Umgebungsvariablen `MAX_MCP_OUTPUT_TOKENS` anpassen

1324* **Standardbegrenzung**: Das Standardmaximum beträgt 25.000 Token1334* **Standardbegrenzung**: Das Standardmaximum beträgt 25.000 Token

1325* **Geltungsbereich**: Die Umgebungsvariable gilt für Tools, die keine eigene Begrenzung deklarieren. Tools, die [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) setzen, verwenden diesen Wert stattdessen für Textinhalte, unabhängig davon, auf welchen Wert `MAX_MCP_OUTPUT_TOKENS` gesetzt ist. Tools, die Bilddaten zurückgeben, unterliegen weiterhin `MAX_MCP_OUTPUT_TOKENS`1335* **Geltungsbereich**: Die Umgebungsvariable gilt für Tools, die keine eigene Begrenzung deklarieren. Tools, die [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) setzen, verwenden diesen Wert stattdessen für Textinhalte, unabhängig davon, auf welchen Wert `MAX_MCP_OUTPUT_TOKENS` gesetzt ist. Tools, die Bilddaten zurückgeben, unterliegen weiterhin `MAX_MCP_OUTPUT_TOKENS`

1336* **Über der Begrenzung**: Wenn ein Ergebnis ohne Bildinhalt die Begrenzung überschreitet, speichert Claude Code es in einer Datei und ersetzt es im Gespräch durch eine Nachricht, die den Dateipfad benennt, damit Claude die Datei liest, wenn sie den Inhalt benötigt. Die Datei befindet sich im Verzeichnis `tool-results` der Sitzung unter [`~/.claude/projects/`](/docs/de/claude-directory#cleaned-up-automatically).

1326 1337 

1327Um die Begrenzung für Tools zu erhöhen, die große Ausgaben erzeugen:1338Um die Begrenzung für Tools zu erhöhen, die große Ausgaben erzeugen:

1328 1339 


1621 Verwaltete MCP-Konfiguration1632 Verwaltete MCP-Konfiguration

1622</h2>1633</h2>

1623 1634 

1624Für Organisationen, die eine zentralisierte Kontrolle über MCP-Server benötigen, die Benutzer verbinden können, siehe [Verwaltete MCP-Konfiguration](/docs/de/managed-mcp). Sie behandelt die Bereitstellung eines festen Serversatzes mit `managed-mcp.json`, die Einschränkung von Servern mit `allowedMcpServers` und `deniedMcpServers` sowie das, was Benutzer sehen, wenn ein Server blockiert ist.1635Für Organisationen, die eine zentralisierte Kontrolle über MCP-Server benötigen, die Benutzer verbinden können, siehe [Verwaltete MCP-Konfiguration](/docs/de/managed-mcp). Sie behandelt die Bereitstellung eines festen Serversatzes mit `managed-mcp.json`, die Bereitstellung von Servern für jeden Benutzer mit `managedMcpServers`, die Einschränkung von Servern mit `allowedMcpServers` und `deniedMcpServers` sowie das, was Benutzer sehen, wenn ein Server blockiert ist.

memory.md +4 −2

Details

275 Teilen Sie Regeln über Projekte hinweg mit Symlinks275 Teilen Sie Regeln über Projekte hinweg mit Symlinks

276</h4>276</h4>

277 277 

278Das Verzeichnis `.claude/rules/` unterstützt Symlinks, sodass Sie einen gemeinsamen Satz von Regeln pflegen und in mehrere Projekte verlinken können. Symlinks werden aufgelöst und normal geladen, und zirkuläre Symlinks werden erkannt und elegant behandelt.278Das Verzeichnis `.claude/rules/` unterstützt Symlinks, sodass Sie einen gemeinsamen Satz von Regeln pflegen und in mehrere Projekte verlinken können. Zirkuläre Symlinks werden erkannt und elegant behandelt.

279 

280Claude Code behandelt einen Symlink, dessen Ziel außerhalb Ihres Arbeitsverzeichnisses liegt, wie einen [externen Import](#import-additional-files). Die verlinkten Regeln werden nicht geladen, bis Sie externe Importe für das Projekt genehmigen, und danach werden nur die ohne ein [`paths`-Feld](#path-specific-rules) geladen. Claude Code fragt nach dieser Genehmigung nur, wenn eine Projekt-Memory-Datei eine Datei außerhalb des Arbeitsverzeichnisses mit `@path` importiert, nicht für Symlinks allein. Um gemeinsame Regeln ohne diese Genehmigung zu laden, halten Sie sie in [`~/.claude/rules/`](#user-level-rules), wo sie für jedes Projekt auf Ihrem Computer gelten.

279 281 

280Dieses Beispiel verlinkt sowohl ein gemeinsames Verzeichnis als auch eine einzelne Datei:282Dieses Beispiel verlinkt sowohl ein gemeinsames Verzeichnis als auch eine einzelne Datei:

281 283 


493 495 

494Wenn die Anweisung etwas ist, das an einem bestimmten Punkt ausgeführt werden muss, z. B. vor jedem Commit oder nach jeder Dateibearbeitung, schreiben Sie sie stattdessen als [Hook](/docs/de/hooks-guide). Hooks werden als Shell-Befehle bei festen Lebenszyklusereignissen ausgeführt und gelten unabhängig davon, was Claude entscheidet zu tun.496Wenn die Anweisung etwas ist, das an einem bestimmten Punkt ausgeführt werden muss, z. B. vor jedem Commit oder nach jeder Dateibearbeitung, schreiben Sie sie stattdessen als [Hook](/docs/de/hooks-guide). Hooks werden als Shell-Befehle bei festen Lebenszyklusereignissen ausgeführt und gelten unabhängig davon, was Claude entscheidet zu tun.

495 497 

496Für Anweisungen, die Sie auf System-Prompt-Ebene haben möchten, verwenden Sie [`--append-system-prompt`](/docs/de/cli-reference#system-prompt-flags). Dies muss bei jeder Invokation übergeben werden, daher ist es besser für Skripte und Automatisierung als für interaktive Nutzung geeignet.498Für Anweisungen, die Sie auf System-Prompt-Ebene haben möchten, verwenden Sie [`--append-system-prompt`](/docs/de/cli-reference#system-prompt-flags). Sie müssen sie bei jeder Invokation übergeben, daher ist es besser für Skripte und Automatisierung als für interaktive Nutzung geeignet. Informationen zum Verhalten beim Fortsetzen einer Konversation finden Sie unter [System-Prompt-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations).

497 499 

498<Tip>500<Tip>

499 Verwenden Sie den [`InstructionsLoaded`-Hook](/docs/de/hooks#instructionsloaded), um genau zu protokollieren, welche Anweisungsdateien geladen sind, wann sie geladen werden und warum. Dies ist nützlich zum Debuggen von pfadspezifischen Regeln oder Lazy-Loading-Dateien in Unterverzeichnissen.501 Verwenden Sie den [`InstructionsLoaded`-Hook](/docs/de/hooks#instructionsloaded), um genau zu protokollieren, welche Anweisungsdateien geladen sind, wann sie geladen werden und warum. Dies ist nützlich zum Debuggen von pfadspezifischen Regeln oder Lazy-Loading-Dateien in Unterverzeichnissen.

mobile.md +104 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code auf Mobilgeräten

6 

7> Starten, überwachen und steuern Sie Claude Code-Aufgaben von Ihrem Telefon aus mit der Claude-App für iOS und Android.

8 

9Die Claude-App für [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) und [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) ist ein Client für Claude Code-Sitzungen und nicht ein Ort, an dem Code ausgeführt wird. Von Ihrem Telefon aus erreichen Sie [Cloud-Sitzungen](#start-and-monitor-cloud-sessions) in der Cloud, eine Sitzung, die auf Ihrem eigenen Computer über [Remote Control](#continue-a-local-session-with-remote-control) läuft, oder die Desktop-App über [Dispatch](/docs/de/desktop#sessions-from-dispatch).

10 

11<Note>

12 Claude Code hat keine separate Mobile-App: Cloud-Sitzungen und Remote Control befinden sich beide im Tab **Code** in der Claude-App, und Dispatch ist eine Aufgabe, die Sie in der App anschreiben.

13</Note>

14 

15<h2 id="get-the-app">

16 App herunterladen

17</h2>

18 

19<Steps>

20 <Step title="Claude-App herunterladen">

21 Installieren Sie die Claude-App für [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) oder [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Auf einem iPad installieren Sie dieselbe iOS-App.

22 

23 <Tip>

24 Führen Sie `/mobile` in einer Claude Code-Sitzung aus, um einen QR-Code zum Herunterladen anzuzeigen, den Sie scannen können. `/ios` und `/android` machen dasselbe.

25 </Tip>

26 </Step>

27 

28 <Step title="Anmelden">

29 Melden Sie sich mit demselben claude.ai-Konto und derselben Organisation an, die Sie für Claude Code verwenden. Cloud-Sitzungen und Remote Control erfordern ein claude.ai-Konto, daher sind sie nicht mit einem Anthropic Console API-Schlüssel oder von einem Drittanbieter wie Amazon Bedrock erreichbar.

30 </Step>

31 

32 <Step title="Öffnen Sie den Code-Tab">

33 Tippen Sie in der Navigation der App auf **Code**, um Ihre Sitzungen zu erreichen, oder öffnen Sie [claude.ai/code/new](https://claude.ai/code/new) auf Ihrem Telefon, um eine neue Code-Sitzung in der App zu starten. Wenn Sie den Code-Tab nicht sehen, enthält Ihr Plan oder Ihre Organisation möglicherweise diese Funktionen nicht; siehe [Verfügbarkeit nach Abonnementplan](/docs/de/feature-availability#availability-by-subscription-plan).

34 </Step>

35</Steps>

36 

37<h2 id="work-from-your-phone">

38 Von Ihrem Telefon aus arbeiten

39</h2>

40 

41Von der App aus können Sie Cloud-Sitzungen starten, eine Claude Code-Sitzung auf Ihrem Computer steuern oder Dispatch eine Aufgabe anschreiben. Die App ist für alle drei gleich; sie unterscheiden sich darin, wo die Arbeit stattfindet.

42 

43| Funktion | Womit Sie sich verbinden | Wann zu verwenden |

44| :----------------------------------------------- | :-------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

45| [Claude Code im Web](/docs/de/claude-code-on-the-web) | Eine Cloud-Sitzung auf Cloud-Infrastruktur, standardmäßig von Anthropic verwaltet | Ihr Repository befindet sich auf GitHub und die Aufgabe sollte weiterhin ausgeführt werden, nachdem Sie Ihr Telefon weglegen. Siehe [Web-Schnellstart](/docs/de/web-quickstart), um die Einrichtung durchzuführen. |

46| [Remote Control](/docs/de/remote-control) | Eine Claude Code-Sitzung, die auf Ihrem Computer läuft | Die Arbeit benötigt Ihr lokales Dateisystem, Tools oder MCP-Server. |

47| [Dispatch](/docs/de/desktop#sessions-from-dispatch) | Die Desktop-App auf Ihrem Computer | Sie möchten eine Aufgabe anschreiben und Dispatch entscheiden lassen, wie sie ausgeführt wird. Erfordert einen Pro- oder Max-Plan. |

48 

49Wenn Ihr Computer ausgeschaltet ist, verwenden Sie Cloud-Sitzungen, die in der Cloud laufen und mit geschlossenem Laptop weiterlaufen. Remote Control und Dispatch steuern Ihren eigenen Computer, daher muss dieser eingeschaltet bleiben und Claude Code oder die Desktop-App muss laufen. Wenn Ihr Computer während einer Remote Control-Sitzung in den Ruhezustand wechselt, wird Claude Code wiederhergestellt, wenn der Computer wieder online kommt.

50 

51Einen umfassenderen Vergleich finden Sie unter [Arbeiten, wenn Sie nicht am Terminal sind](/docs/de/platforms#work-when-you-are-away-from-your-terminal).

52 

53Cloud-Sitzungen und Remote Control werden vom Tab **Code** aus ausgeführt. Für Dispatch, das Sie als Aufgabe in der App anschreiben, siehe [Sitzungen von Dispatch](/docs/de/desktop#sessions-from-dispatch).

54 

55<h3 id="start-and-monitor-cloud-sessions">

56 Cloud-Sitzungen starten und überwachen

57</h3>

58 

59Claude Code im Web führt Aufgaben auf Cloud-Infrastruktur aus, standardmäßig von Anthropic verwaltet, daher wird eine Sitzung fortgesetzt, nachdem Sie Ihr Telefon weglegen. Wählen Sie im Code-Tab ein Repository und einen Branch aus, beschreiben Sie die Aufgabe und reichen Sie sie ein. Sitzungen bleiben über Geräte hinweg erhalten: Eine Aufgabe, die Sie auf Ihrem Laptop starten, ist bereit zur Überprüfung von Ihrem Telefon aus, und eine, die Sie von Ihrem Telefon aus starten, wartet, wenn Sie wieder an Ihrem Schreibtisch sind.

60 

61Öffnen Sie eine Sitzung in der App, um den Fortschritt zu überprüfen, Fragen von Claude zu beantworten oder sie in eine neue Richtung zu lenken. Sie können Claude auch anweisen, [einen Pull Request zu überwachen](/docs/de/claude-code-on-the-web#auto-fix-pull-requests) und CI-Fehler oder Überprüfungskommentare zu beheben, wenn sie eintreffen. Um GitHub zu verbinden und Ihre Umgebung einzurichten, folgen Sie dem [Web-Schnellstart](/docs/de/web-quickstart), und siehe [Claude Code im Web](/docs/de/claude-code-on-the-web) für alles, was Cloud-Sitzungen tun können.

62 

63<h3 id="continue-a-local-session-with-remote-control">

64 Setzen Sie eine lokale Sitzung mit Remote Control fort

65</h3>

66 

67Remote Control verbindet die Claude-App mit einer Claude Code-Sitzung auf Ihrem Computer, sodass die Code-Ausführung und der Dateisystemzugriff lokal bleiben, während Sie die Sitzung von Ihrem Telefon aus steuern. Starten Sie die Sitzung auf Ihrem Computer mit `claude remote-control`, oder führen Sie `/remote-control` in einer bereits offenen Sitzung aus. Scannen Sie dann den QR-Code der Sitzung, den das Terminal anzeigen kann, oder öffnen Sie die Claude-App, tippen Sie auf **Code** und wählen Sie die Sitzung aus der Liste aus. Siehe [Von einem anderen Gerät verbinden](/docs/de/remote-control#connect-from-another-device) für jede Option.

68 

69Wenn Sie einen Anhang in der Claude-App hinzufügen, erreicht er auch die lokale Sitzung:

70 

71* **Fotos**: Claude sieht angehängte Fotos direkt als Teil Ihrer Nachricht. Claude Code speichert auch jedes Foto unter `~/.claude/uploads/` und teilt Claude den gespeicherten Dateipfad mit, damit Claude das Bild in Dateien kopieren kann, die es erstellt.

72* **Andere Dateien**: Claude Code lädt sie auf Ihren Computer herunter und übergibt sie Claude als `@`-Dateireferenzen.

73 

74Anforderungen, Aufrufmodi und Fehlerbehebung finden Sie in der [Remote Control-Übersicht](/docs/de/remote-control).

75 

76<h3 id="get-push-notifications">

77 Push-Benachrichtigungen erhalten

78</h3>

79 

80Wenn Remote Control aktiv ist, kann Claude Push-Benachrichtigungen an Ihr Telefon senden, normalerweise wenn eine lange laufende Aufgabe beendet wird oder wenn eine Entscheidung von Ihnen erforderlich ist. Sie können auch eine in Ihrem Prompt anfordern, z. B. `notify me when the tests finish`. Siehe [Mobile Push-Benachrichtigungen](/docs/de/remote-control#mobile-push-notifications) für die zwei `/config`-Umschalter und Fehlerbehebung bei der Zustellung.

81 

82Dispatch sendet seine eigene Benachrichtigung, wenn eine Code-Sitzung, die es erzeugt hat, beendet wird oder Ihre Genehmigung benötigt, beschrieben in [Sitzungen von Dispatch](/docs/de/desktop#sessions-from-dispatch).

83 

84<h2 id="limitations">

85 Einschränkungen

86</h2>

87 

88Der mobile Client deckt die meisten Anforderungen einer Sitzung ab, mit einigen Einschränkungen:

89 

90* **Nur lokal verfügbare Befehle**: Befehle, die nur in der Terminalschnittstelle ausgeführt werden, wie `/plugin` und `/resume`, funktionieren nicht aus der App. Die [Einschränkungen der Fernsteuerung](/docs/de/remote-control#limitations) listen die Befehle auf, die von mobilen Geräten aus funktionieren, und wie sich ihr Verhalten unterscheidet.

91* **Berechtigungsmodi**: Cloud-Sitzungen bieten Bearbeitungen akzeptieren, Plan und Auto im Modus-Dropdown, und Remote Control-Sitzungen bieten Manuell, Bearbeitungen akzeptieren und Plan. Sie können Bypass-Berechtigungen nicht aus der App auswählen, in beiden Fällen nicht, und Sie können Auto nicht für eine Remote Control-Sitzung auswählen. Siehe [Berechtigungsmodi wechseln](/docs/de/permission-modes#switch-permission-modes).

92* **Dispatch-Pläne**: Dispatch erfordert einen Pro- oder Max-Plan und ist nicht auf Team oder Enterprise verfügbar.

93 

94<h2 id="related-resources">

95 Verwandte Ressourcen

96</h2>

97 

98* [Plattformen und Integrationen](/docs/de/platforms): Vergleichen Sie jede Oberfläche, auf der Claude Code läuft

99* [Claude Code im Web](/docs/de/claude-code-on-the-web): Wie Cloud-Sitzungen laufen und wie Sie Arbeit zu und von Ihrem Terminal verschieben

100* [Cloud-Umgebungen konfigurieren](/docs/de/cloud-environments): Netzwerkzugriffsstufen, Umgebungsvariablen und Setup-Skripte für Cloud-Sitzungen

101* [Remote Control](/docs/de/remote-control): Setzen Sie eine lokale Sitzung von jedem Gerät aus fort

102* [Sitzungen von Dispatch](/docs/de/desktop#sessions-from-dispatch): Wie Dispatch-Aufgaben zu Code-Sitzungen in der Desktop-App werden

103* [Channels](/docs/de/channels): Fragen Sie Claude von Ihrem Telefon aus über Telegram, Discord oder iMessage, während die Arbeit auf Ihrem Computer läuft

104* [Claude Code in Slack](/docs/de/slack): Delegieren Sie Codierungsaufgaben von Ihrem Slack-Arbeitsbereich, indem Sie `@Claude` erwähnen

model-config.md +67 −32

Details

34| Modell-Alias | Verhalten |34| Modell-Alias | Verhalten |

35| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |35| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

36| **`default`** | Spezialwert, der jeden Modell-Override löscht und auf den [Laufzeit-Standard für Ihr Konto](#default-model-setting) zurückgesetzt wird. Ist selbst kein Modell-Alias |36| **`default`** | Spezialwert, der jeden Modell-Override löscht und auf den [Laufzeit-Standard für Ihr Konto](#default-model-setting) zurückgesetzt wird. Ist selbst kein Modell-Alias |

37| **`best`** | Verwendet das neueste Fable-Modell, wo es für Sie verfügbar ist, andernfalls das gleiche Modell wie `opus` |37| **`best`** | Verwendet das Modell, zu dem der Alias [`fable`](#fable-alias-resolution) aufgelöst wird, wo Fable für Sie verfügbar ist, andernfalls das gleiche Modell wie `opus` |

38| **`fable`** | Verwendet das neueste Fable-Modell für Ihre schwierigsten und längsten Aufgaben |38| **`fable`** | Verwendet das [Fable-Modell für Ihren Anbieter](#fable-alias-resolution) für Ihre schwierigsten und längsten Aufgaben |

39| **`sonnet`** | Verwendet das neueste Sonnet-Modell für tägliche Codierungsaufgaben |39| **`sonnet`** | Verwendet das neueste Sonnet-Modell für tägliche Codierungsaufgaben |

40| **`opus`** | Verwendet das neueste Opus-Modell für komplexe Reasoning-Aufgaben |40| **`opus`** | Verwendet das neueste Opus-Modell für komplexe Reasoning-Aufgaben |

41| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |41| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |


52| Amazon Bedrock, Google Cloud's Agent Platform | Opus 5 | Sonnet 4.5 |52| Amazon Bedrock, Google Cloud's Agent Platform | Opus 5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55Sofern Sie `ANTHROPIC_DEFAULT_FABLE_MODEL` nicht setzen, wird der Alias `fable` zu Fable 5.1 aufgelöst. Vor v2.1.255 wurde er zu Fable 5 aufgelöst.55<span id="fable-alias-resolution" />

56 

57Sofern Sie `ANTHROPIC_DEFAULT_FABLE_MODEL` nicht setzen, wird der Alias `fable` zu Fable 5.1 aufgelöst, außer in [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen, wo `fable` und `best` zu Fable 5 aufgelöst werden. Vor v2.1.257 wurde `fable` auf jedem Anbieter zu Fable 5 aufgelöst.

58 

59Ein Gateway, das nicht konfiguriert ist, um `claude-fable-5-1` bereitzustellen, lehnt Anfragen für dieses Modell ab. Um Fable 5.1 über ein Gateway zu verwenden, das es bereitstellt, wählen Sie es mit `/model claude-fable-5-1` aus.

56 60 

57Wenn ein Alias zu einem älteren Modell aufgelöst wird, sind neuere Modelle verfügbar, indem Sie den vollständigen Modellnamen explizit auswählen oder `ANTHROPIC_DEFAULT_OPUS_MODEL` oder `ANTHROPIC_DEFAULT_SONNET_MODEL` setzen.61Wenn ein Alias zu einem älteren Modell aufgelöst wird, sind neuere Modelle verfügbar, indem Sie den vollständigen Modellnamen explizit auswählen oder `ANTHROPIC_DEFAULT_OPUS_MODEL` oder `ANTHROPIC_DEFAULT_SONNET_MODEL` setzen.

58 62 


72 76 

73Keines der Fable-Modelle ist der Standard für den Kontotyp auf einem Plan oder Anbieter. Wählen Sie eines explizit aus:77Keines der Fable-Modelle ist der Standard für den Kontotyp auf einem Plan oder Anbieter. Wählen Sie eines explizit aus:

74 78 

75* **Fable 5.1**: Führen Sie `/model fable` aus, oder starten Sie mit `claude --model fable`.79* **Fable 5.1**: Führen Sie `/model fable` aus, oder starten Sie mit `claude --model fable`. In [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen, wo der Alias zu Fable 5 aufgelöst wird, führen Sie stattdessen `/model claude-fable-5-1` aus.

76* **Fable 5**: Wählen Sie es nach Modell-ID aus. Auf der Anthropic API führen Sie `/model claude-fable-5` aus oder starten Sie mit `claude --model claude-fable-5`. Bei anderen Anbietern verwenden Sie die Fable-5-Modell-ID Ihres Anbieters oder [fixieren Sie sie](#pin-models-for-third-party-deployments) mit `ANTHROPIC_DEFAULT_FABLE_MODEL`.80* **Fable 5**: Wählen Sie es nach Modell-ID aus. Auf der Anthropic API führen Sie `/model claude-fable-5` aus oder starten Sie mit `claude --model claude-fable-5`. Bei anderen Anbietern verwenden Sie die Fable-5-Modell-ID Ihres Anbieters oder [fixieren Sie sie](#pin-models-for-third-party-deployments) mit `ANTHROPIC_DEFAULT_FABLE_MODEL`.

77 81 

78Wenn Ihre Benutzereinstellungen `claude-fable-5` oder `claude-fable-5[1m]` als Modell enthalten, z. B. weil Sie Fable in der `/model`-Auswahl vor v2.1.255 ausgewählt haben, und Sie sich direkt mit der Anthropic API verbinden, ändert Claude Code diesen gespeicherten Wert beim ersten Ausführen von v2.1.255 oder später zu dem Alias `fable` oder `fable[1m]`, und die Startmodellzeile zeigt `(auto-updated)` einmal an. Ein `claude-fable-5`-Wert in Projekt-, lokalen oder verwalteten Einstellungen wird unverändert gelassen.82Wenn Sie sich direkt mit der Anthropic API verbinden und Ihre Benutzereinstellungen `claude-fable-5` oder `claude-fable-5[1m]` als Modell enthalten, z. B. weil Sie Fable in der `/model`-Auswahl vor v2.1.257 ausgewählt haben, ändert Claude Code diesen gespeicherten Wert beim ersten Ausführen von v2.1.257 oder später zu dem Alias `fable` oder `fable[1m]`, und die Startmodellzeile zeigt `(auto-updated)` einmal an. Ein `claude-fable-5`-Wert in Projekt-, lokalen oder verwalteten Einstellungen wird unverändert gelassen.

79 83 

80Anfragen, die die Sicherheitsklassifizierer eines Fable-Modells kennzeichnen, meist in Cybersicherheits- und Biologie-Bereichen, lösen [automatisches Modell-Fallback](#automatic-model-fallback) aus.84Anfragen, die die Sicherheitsklassifizierer eines Fable-Modells kennzeichnen, meist in Cybersicherheits- und Biologie-Bereichen, lösen [automatisches Modell-Fallback](#automatic-model-fallback) aus.

81 85 


87* **Größere Aufgaben einschätzen**: Geben Sie ihm Arbeit, die Sie normalerweise in Teile aufteilen würden. Es hält lange Sitzungen, ohne den Faden zu verlieren.91* **Größere Aufgaben einschätzen**: Geben Sie ihm Arbeit, die Sie normalerweise in Teile aufteilen würden. Es hält lange Sitzungen, ohne den Faden zu verlieren.

88 92 

89<Note>93<Note>

90 Fable 5.1 erfordert Claude Code v2.1.255 oder später. Wenn eine Anfrage dafür von einer älteren Version fehlschlägt, siehe [Claude Code does not support this model](/docs/de/errors#claude-code-does-not-support-this-model). Fable 5 erfordert v2.1.170 oder später. Führen Sie `claude update` aus, um zu aktualisieren. Zur Verfügbarkeit unter Zero Data Retention siehe [Model availability under ZDR](/docs/de/zero-data-retention#model-availability-under-zdr).94 Fable 5.1 erfordert Claude Code v2.1.257 oder später. Wenn eine Anfrage dafür von einer älteren Version fehlschlägt, siehe [Claude Code does not support this model](/docs/de/errors#claude-code-does-not-support-this-model). Führen Sie `claude update` aus, um zu aktualisieren. Zur Verfügbarkeit unter Zero Data Retention siehe [Model availability under ZDR](/docs/de/zero-data-retention#model-availability-under-zdr).

91</Note>95</Note>

92 96 

93Auf der Anthropic API listet die `/model`-Auswahl ein Fable-Modell nur auf, nachdem der Server es als verfügbar für Ihre Organisation meldet. Wenn Sie `/model fable` oder eine Fable-Modell-ID eingeben, prüft Claude Code die Verfügbarkeit direkt mit dem Server, sodass eine eingegebene Auswahl erfolgreich sein kann, auch wenn die Auswahl den Eintrag nicht auflistet.97Auf der Anthropic API listet die `/model`-Auswahl ein Fable-Modell nur auf, nachdem der Server es als verfügbar für Ihre Organisation meldet. Wenn Sie `/model fable` oder eine Fable-Modell-ID eingeben, prüft Claude Code die Verfügbarkeit direkt mit dem Server, sodass eine eingegebene Auswahl erfolgreich sein kann, auch wenn die Auswahl den Eintrag nicht auflistet.


132* `Enter`: Modell wechseln und als Standard speichern136* `Enter`: Modell wechseln und als Standard speichern

133* `s`: Modell nur für diese Sitzung wechseln137* `s`: Modell nur für diese Sitzung wechseln

134 138 

135Die direkte Eingabe von `/model <name>` verhält sich wie `Enter`. Ein mit `/model` im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag gesetztes Modell gilt nur für die aktuelle Sitzung und wird nicht als Standard gespeichert. Projekt- und verwaltete Einstellungen haben weiterhin Vorrang und werden beim nächsten Start erneut angewendet. Ein [Organisations-Standard-Modell](#organization-default-model), das Ihr Administrator konfiguriert hat, um die Benutzerauswahl zu überschreiben, wird auch beim nächsten Start erneut angewendet.139Die direkte Eingabe von `/model <name>` verhält sich wie `Enter`. Wenn Sie ein Modell mit `/model` im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p`-Flag setzen, gilt Ihre Auswahl nur für die aktuelle Sitzung und wird nicht als Standard gespeichert; `/model` in diesem Modus erfordert Claude Code v2.1.205 oder später. Projekt- und verwaltete Einstellungen haben weiterhin Vorrang und werden beim nächsten Start erneut angewendet. Ein [Organisations-Standard-Modell](#organization-default-model), das Ihr Administrator konfiguriert hat, um die Benutzerauswahl zu überschreiben, wird auch beim nächsten Start erneut angewendet.

136 140 

137In v2.1.144 bis v2.1.152 galt `/model` nur für die aktuelle Sitzung und `d` in der Auswahl speicherte einen Standard.141In v2.1.144 bis v2.1.152 galt `/model` nur für die aktuelle Sitzung und `d` in der Auswahl speicherte einen Standard.

138 142 


146 150 

147Wenn das aktive Modell beim Start aus Projekt- oder verwalteten Einstellungen statt aus Ihrer eigenen Auswahl stammt, zeigt der Start-Header, welche Einstellungsdatei es gesetzt hat. Führen Sie `/model` aus, um zu überschreiben; die Projekt- oder verwaltete Einstellung wird beim nächsten Start erneut angewendet. Auf Plattformen, die Claude Code einbetten und [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars) setzen, hat die Modellkonfiguration des Hosts Vorrang vor verwalteten Modelleinstellungen, während eine verwaltete `availableModels`-Zulassungsliste in Kraft bleibt, es sei denn, der Host liefert seine eigene; [Exceptions to managed settings precedence](/docs/de/settings#exceptions-to-managed-settings-precedence) sagt, welche Schlüssel und Variablen der Host überschreibt.151Wenn das aktive Modell beim Start aus Projekt- oder verwalteten Einstellungen statt aus Ihrer eigenen Auswahl stammt, zeigt der Start-Header, welche Einstellungsdatei es gesetzt hat. Führen Sie `/model` aus, um zu überschreiben; die Projekt- oder verwaltete Einstellung wird beim nächsten Start erneut angewendet. Auf Plattformen, die Claude Code einbetten und [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars) setzen, hat die Modellkonfiguration des Hosts Vorrang vor verwalteten Modelleinstellungen, während eine verwaltete `availableModels`-Zulassungsliste in Kraft bleibt, es sei denn, der Host liefert seine eigene; [Exceptions to managed settings precedence](/docs/de/settings#exceptions-to-managed-settings-precedence) sagt, welche Schlüssel und Variablen der Host überschreibt.

148 152 

149Wenn ein Modellwechsel über die [Agent SDK](/docs/de/agent-sdk/overview)-Methode `setModel()` oder durch eine App wie die [Desktop-App](/docs/de/desktop), die die Claude Code CLI für Sie ausführt, angefordert wird, prüft Claude Code, dass die Zeichenkette eine ist, die es erkennt, bevor es sie speichert. Diese Prüfung erfordert Claude Code v2.1.200 oder später. Auf der Anthropic API erkennt Claude Code:153Wenn Sie oder Ihre Organisation [PreModelSwitch-Hooks](/docs/de/hooks#premodelswitch) konfigurieren, werden sie ausgeführt, bevor ein angefordeter Wechsel angewendet wird, und können ihn blockieren oder Sie auffordern, ihn zu bestätigen.

154 

155Wenn Claude Code nicht feststellen kann, welche PreModelSwitch-Hooks Ihre Organisation's [verwaltete Plugins](/docs/de/settings-reference#enabledplugins) bereitstellen, z. B. weil ein verwaltetes Plugin nicht geladen werden konnte, lehnt es den Wechsel ab, anstatt ihn unkontrolliert anzuwenden, und prüft ihn bei jedem neuen Versuch erneut. Siehe [Model switch was blocked by a PreModelSwitch hook](/docs/de/errors#model-switch-was-blocked-by-a-premodelswitch-hook) für die Nachricht und Wiederherstellung.

156 

157Wenn Sie Modelle über die [Agent SDK](/docs/de/agent-sdk/overview)-Methode `setModel()` wechseln oder von einem Gerät, das über [Remote Control](/docs/de/remote-control) verbunden ist, oder eine App wie die [Desktop-App](/docs/de/desktop), die die Claude Code CLI für Sie ausführt, Claude Code wechselt, prüft Claude Code, dass die Zeichenkette eine ist, die es erkennt, bevor es sie speichert. Diese Prüfung erfordert Claude Code v2.1.200 oder später. Das Überprüfen einer Remote-Control-Auswahl erfordert Claude Code v2.1.260 oder später auf Ihrem Computer. Auf der Anthropic API erkennt Claude Code:

150 158 

151* einen Modell-Alias159* einen Modell-Alias

152* einen Eintrag aus der `/model`-Auswahl160* einen Eintrag aus der `/model`-Auswahl


417 Organisatorische Anstrengungsgrenzen425 Organisatorische Anstrengungsgrenzen

418</h2>426</h2>

419 427 

428Ihre Organisation kann die [Anstrengungsstufe](#adjust-effort-level) auf zwei Wege begrenzen. Bei einem Claude Enterprise-Plan legen Organisationsadministratoren Anstrengungsgrenzen pro Rolle fest, wie unten beschrieben. Bei jedem Plan und jedem Anbieter, einschließlich Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry, begrenzt die verwaltete Einstellung [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel) die Anstrengung stattdessen auf dem Client. Wenn beide auf ein Modell zutreffen, gilt die niedrigere Obergrenze.

429 

420Organisationsadministratoren in Claude Enterprise-Plänen können eine maximale [Anstrengungsstufe](#adjust-effort-level) pro Modell für jede benutzerdefinierte Rolle festlegen, zusammen mit Rollenbeschränkungen auf [Organisationsmodellebene](#organization-model-restrictions). Stufen über der Obergrenze werden nicht in der `/effort`-Auswahl angeboten, und das Benennen einer höheren Stufe mit `--effort` oder `/effort` wird stattdessen mit der Obergrenze ausgeführt. In interaktiven Sitzungen und einfachen Text-`--print`-Läufen warnt eine Meldung vor den angeforderten und angewendeten Stufen; bei `json`- oder `stream-json`-Ausgabe oder in Hintergrund-Agenten wird die Begrenzung stillschweigend angewendet. Obergrenzen gelten pro Modell, daher kann der Wechsel von Modellen ändern, welche Stufen verfügbar sind. Wenn mehrere Ihrer Rollen dasselbe Modell gewähren, gilt die am wenigsten restriktive Obergrenze. Erfordert Claude Code v2.1.195 oder später.430Organisationsadministratoren in Claude Enterprise-Plänen können eine maximale [Anstrengungsstufe](#adjust-effort-level) pro Modell für jede benutzerdefinierte Rolle festlegen, zusammen mit Rollenbeschränkungen auf [Organisationsmodellebene](#organization-model-restrictions). Stufen über der Obergrenze werden nicht in der `/effort`-Auswahl angeboten, und das Benennen einer höheren Stufe mit `--effort` oder `/effort` wird stattdessen mit der Obergrenze ausgeführt. In interaktiven Sitzungen und einfachen Text-`--print`-Läufen warnt eine Meldung vor den angeforderten und angewendeten Stufen; bei `json`- oder `stream-json`-Ausgabe oder in Hintergrund-Agenten wird die Begrenzung stillschweigend angewendet. Obergrenzen gelten pro Modell, daher kann der Wechsel von Modellen ändern, welche Stufen verfügbar sind. Wenn mehrere Ihrer Rollen dasselbe Modell gewähren, gilt die am wenigsten restriktive Obergrenze. Erfordert Claude Code v2.1.195 oder später.

421 431 

422Anstrengungsgrenzen werden zusammen mit [Organisationsmodellbeschränkungen](#organization-model-restrictions) bereitgestellt und erreichen dieselben Sitzungen.432Anstrengungsgrenzen werden zusammen mit [Organisationsmodellbeschränkungen](#organization-model-restrictions) bereitgestellt und erreichen dieselben Sitzungen.


442 452 

443Wenn verwaltete Einstellungen [die Zulassungsliste für das Standardmodell erzwingen](#enforce-the-allowlist-for-the-default-model) und der Kontotyp-Standard nicht in `availableModels` enthalten ist, wird `default` zum erzwungenen Standard aufgelöst, anstatt zum oben genannten Kontotyp-Standard. Wenn beide zutreffen, ersetzt der Organisationsstandard zuerst den Kontotyp-Standard und die Erzwingung wird dann darauf angewendet: Ein auf der Zulassungsliste befindlicher Organisationsstandard wird beibehalten, während einer außerhalb der Liste zum erzwungenen Standard aufgelöst wird.453Wenn verwaltete Einstellungen [die Zulassungsliste für das Standardmodell erzwingen](#enforce-the-allowlist-for-the-default-model) und der Kontotyp-Standard nicht in `availableModels` enthalten ist, wird `default` zum erzwungenen Standard aufgelöst, anstatt zum oben genannten Kontotyp-Standard. Wenn beide zutreffen, ersetzt der Organisationsstandard zuerst den Kontotyp-Standard und die Erzwingung wird dann darauf angewendet: Ein auf der Zulassungsliste befindlicher Organisationsstandard wird beibehalten, während einer außerhalb der Liste zum erzwungenen Standard aufgelöst wird.

444 454 

445Fable-Modelle sind auf keinem Plan oder Provider der Kontotyp-Standard. Wenn Sie eines mit `/model` auswählen, wird es als das ausgewählte Modell in Ihren Benutzereinstellungen gespeichert, sodass spätere Sitzungen damit beginnen. Für die einmalige Änderung, die Claude Code an einer gespeicherten Fable 5-Auswahl in v2.1.255 vornimmt, siehe [Mit Fable arbeiten](#work-with-fable).455Fable-Modelle sind auf keinem Plan oder Provider der Kontotyp-Standard. Wenn Sie eines mit `/model` auswählen, wird es als das ausgewählte Modell in Ihren Benutzereinstellungen gespeichert, sodass spätere Sitzungen damit beginnen. Für die einmalige Änderung, die Claude Code an einer gespeicherten Fable 5-Auswahl in v2.1.257 vornimmt, siehe [Mit Fable arbeiten](#work-with-fable).

446 456 

447<h3 id="opusplan-model-setting">457<h3 id="opusplan-model-setting">

448 `opusplan` Modelleinstellung458 `opusplan` Modelleinstellung


455 465 

456Dies verbindet Opus's Überlegungen für die Planung mit Sonnets Effizienz für die Ausführung.466Dies verbindet Opus's Überlegungen für die Planung mit Sonnets Effizienz für die Ausführung.

457 467 

458Die Plan-Modus-Opus-Phase verwendet das gleiche Kontextfenster wie die `opus` Modelleinstellung. Bei Abonnement-Stufen, bei denen Opus [automatisch auf 1M-Kontext aktualisiert wird](#extended-context), erhält `opusplan` die Aktualisierung auch im Plan-Modus. Um 1M-Kontext für beide Phasen zu erzwingen, wenn Sie sich nicht auf einer Auto-Upgrade-Stufe befinden, setzen Sie das Modell auf `opusplan[1m]`.468Die Plan-Modus-Opus-Phase verwendet das gleiche Kontextfenster wie die `opus` Modelleinstellung. Bei Abonnement-Stufen, bei denen Opus [automatisch auf 1M-Kontext aktualisiert wird](#extended-context), erhält `opusplan` die Aktualisierung auch im Plan-Modus. Um 1M-Kontext für beide Phasen zu erzwingen, wenn Sie sich nicht auf einer Auto-Upgrade-Stufe befinden, [setzen Sie das Modell](#setting-your-model) auf `opusplan[1m]`, zum Beispiel mit `/model opusplan[1m]`. Das Setzen mit `/model` erfordert Claude Code v2.1.265 oder später; verwenden Sie auf früheren Versionen stattdessen das `--model` Flag oder die `model` Einstellung.

459 469 

460Wenn [`availableModels`](#restrict-model-selection) das neueste Opus ausschließt, aber eine ältere Version zulässt, zum Beispiel `["sonnet", "claude-opus-4-6"]`, verwendet `opusplan` das neueste zulässige Opus für die Planung und bleibt nur bei Sonnet, wenn jedes Opus ausgeschlossen ist. Eine Haiku-Sitzung, die normalerweise im Plan-Modus zu Sonnet aktualisiert würde, verwendet ebenfalls das neueste zulässige Sonnet und bleibt nur bei Haiku, wenn jedes Sonnet ausgeschlossen ist. Vor v2.1.205 blieb der Plan-Modus beim Modell der Sitzung, wenn die neueste Version der Upgrade-Familie ausgeschlossen war, auch wenn die Zulassungsliste eine ältere Version zuließ.470Wenn [`availableModels`](#restrict-model-selection) das neueste Opus ausschließt, aber eine ältere Version zulässt, zum Beispiel `["sonnet", "claude-opus-4-6"]`, verwendet `opusplan` das neueste zulässige Opus für die Planung und bleibt nur bei Sonnet, wenn jedes Opus ausgeschlossen ist. Eine Haiku-Sitzung, die normalerweise im Plan-Modus zu Sonnet aktualisiert würde, verwendet ebenfalls das neueste zulässige Sonnet und bleibt nur bei Haiku, wenn jedes Sonnet ausgeschlossen ist. Vor v2.1.205 blieb der Plan-Modus beim Modell der Sitzung, wenn die neueste Version der Upgrade-Familie ausgeschlossen war, auch wenn die Zulassungsliste eine ältere Version zuließ.

461 471 


570| Opus 5, Sonnet 5, Opus 4.8 und Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |580| Opus 5, Sonnet 5, Opus 4.8 und Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

571| Opus 4.6 und Sonnet 4.6 | `low`, `medium`, `high`, `max` |581| Opus 4.6 und Sonnet 4.6 | `low`, `medium`, `high`, `max` |

572 582 

573Wenn Sie eine Stufe setzen, die das aktive Modell nicht unterstützt, fällt Claude Code auf die höchste unterstützte Stufe bei oder unter der von Ihnen gesetzten zurück. Zum Beispiel wird `xhigh` auf Opus 4.6 als `high` ausgeführt. Ihre Organisation kann auch begrenzen, welche Stufen für ein Modell verfügbar sind; siehe [Organisationsanstrengungsgrenzen](#organization-effort-limits).583Wenn Sie eine Stufe setzen, die das aktive Modell nicht unterstützt, fällt Claude Code auf die höchste unterstützte Stufe bei oder unter der von Ihnen gesetzten zurück. Zum Beispiel wird `xhigh` auf Opus 4.6 als `high` ausgeführt. Ihre Organisation oder Ihre eigenen Einstellungen können auch begrenzen, welche Stufen ein Modell anbietet; siehe [Organisationsanstrengungsgrenzen](#organization-effort-limits).

574 584 

575Mit der [`ultracode`](/docs/de/settings-reference#ultracode) Einstellung aus löst Claude Code die Anstrengungsstufe der Sitzung in dieser Reihenfolge auf und nimmt die erste, die zutrifft:585Mit der [`ultracode`](/docs/de/settings-reference#ultracode) Einstellung aus löst Claude Code die Anstrengungsstufe der Sitzung in dieser Reihenfolge auf und nimmt die erste, die zutrifft:

576 586 

5771. Eine explizite Wahl: die [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/de/env-vars#variables) Umgebungsvariable, Start mit `--effort` oder `/effort` in der Sitzung ([ein nicht-interaktives `/effort` hat engere Auswirkungen](#non-interactive-effort))5871. Eine explizite Wahl: die [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/de/env-vars#variables) Umgebungsvariable, Start mit `--effort` oder `/effort` in der Sitzung ([ein nicht-interaktives `/effort` hat engere Auswirkungen](#non-interactive-effort))

5782. Die Standard-Anstrengung des Modells, auf Fable 5, Opus 4.8 oder Opus 4.7: ab dem ersten Mal, wenn Sie eines dieser Modelle ausführen, behält Claude Code die Standard-Anstrengung dieses Modells über Sitzungen hinweg, auch wenn Ihre Einstellungen eine andere Stufe auflösen, bis Sie die Anstrengung einmal ändern, zum Beispiel mit einem interaktiven `/effort`, dem Anstrengungsschieber des `/model` Pickers oder `--effort` beim Start. Opus 5 und Fable 5.1 haben keinen solchen Halt5882. Die Standard-Anstrengung des Modells, auf Fable 5, Opus 4.8 oder Opus 4.7: ab dem ersten Mal, wenn Sie eines dieser Modelle ausführen, behält Claude Code die Standard-Anstrengung dieses Modells über Sitzungen hinweg, auch wenn Ihre Einstellungen eine andere Stufe auflösen. Opus 5 und Fable 5.1 haben keinen solchen Halt. Ob eine Stufe, die Sie setzen, den Halt beendet, hängt davon ab, wie Sie sie setzen, zum Beispiel:

589 * **Beendet den Halt**: Bestätigung einer Stufe interaktiv, mit `Enter` im `/effort` Schieber oder dem `/model` Picker oder mit einer Stufe, die nach `/effort` eingegeben wird, oder Auswahl einer Stufe aus der [Remote Control](/docs/de/remote-control#what-connected-devices-see) Anstrengungskontrolle eines verbundenen Geräts

590 * **Lässt den Halt für spätere Sitzungen bestehen**: `--effort` beim Start oder `s` im `/effort` Schieber oder dem `/model` Picker

5793. Ihre Einstellungen: die Stufe, die Sie für das Modell gespeichert haben, oder ein [`effortLevel`](/docs/de/settings-reference#effortlevel) Schlüssel, mit der Vorrangigkeit zwischen ihnen und über Einstellungsdateien hinweg, die unter [`modelSettings`](/docs/de/settings-reference#modelsettings) angegeben ist5913. Ihre Einstellungen: die Stufe, die Sie für das Modell gespeichert haben, oder ein [`effortLevel`](/docs/de/settings-reference#effortlevel) Schlüssel, mit der Vorrangigkeit zwischen ihnen und über Einstellungsdateien hinweg, die unter [`modelSettings`](/docs/de/settings-reference#modelsettings) angegeben ist

5804. Die Standard-Anstrengung des Modells: `high` auf jedem Modell, das Anstrengung unterstützt, außer dass Opus 4.7 auf `xhigh` standardmäßig ist und, wenn Ihre Organisation eine Standard-Anstrengungsstufe für sein [Organisationsstandardmodell](#organization-default-model) setzt, diese Stufe der Standard ist, wenn Sie dieses Modell ausführen5924. Die Standard-Anstrengung des Modells: `high` auf jedem Modell, das Anstrengung unterstützt, außer dass Opus 4.7 auf `xhigh` standardmäßig ist und, wenn Ihre Organisation eine Standard-Anstrengungsstufe für sein [Organisationsstandardmodell](#organization-default-model) setzt, diese Stufe der Standard ist, wenn Sie dieses Modell ausführen

581 593 

582Wenn Sie `low`, `medium`, `high` oder `xhigh` in einer interaktiven Sitzung auf Ihrem Computer setzen, speichert Claude Code die Stufe und wendet sie in späteren Sitzungen an. Es speichert die Stufe pro Modell unter dem [`modelSettings`](/docs/de/settings-reference#modelsettings) Schlüssel in Ihren Benutzereinstellungen, sodass jedes Modell seine eigene gespeicherte Stufe behält.594Wenn Sie `low`, `medium`, `high` oder `xhigh` in einer interaktiven Sitzung auf Ihrem Computer setzen, wählen Sie, wie lange es dauert, indem Sie bestätigen:

595 

596* `Enter` im `/effort` Schieber oder dem `/model` Picker oder eine Stufe, die nach `/effort` eingegeben wird: speichern Sie die Stufe als Ihren Standard und wenden Sie sie in späteren Sitzungen an

597* `s` im `/effort` Schieber oder dem `/model` Picker: wenden Sie die Stufe nur auf diese Sitzung an. Erfordert Claude Code v2.1.257 oder später

598 

599Claude Code speichert die Stufe pro Modell unter dem [`modelSettings`](/docs/de/settings-reference#modelsettings) Schlüssel in Ihren Benutzereinstellungen, sodass jedes Modell seine eigene gespeicherte Stufe behält.

583 600 

584`max` ist die tiefste Überlegungsstufe. Sofern Sie sie nicht über die `CLAUDE_CODE_EFFORT_LEVEL` Umgebungsvariable setzen, wendet Claude Code `max` nur auf die aktuelle Sitzung an.601`max` ist die tiefste Überlegungsstufe. Sofern Sie sie nicht über die `CLAUDE_CODE_EFFORT_LEVEL` Umgebungsvariable setzen, wendet Claude Code `max` nur auf die aktuelle Sitzung an.

585 602 


589 606 

590<span id="non-interactive-effort" />607<span id="non-interactive-effort" />

591 608 

592Eine Stufe, die mit `/effort` im [nicht-interaktiven Modus](/docs/de/headless) mit dem `-p` Flag gesetzt wird, gilt nur für die aktuelle Sitzung und wird nicht als Ihr Standard gespeichert. Es zählt auch nicht als die eine Änderung, die den Modell-Standard-Schritt oben auf Fable 5, Opus 4.8 oder Opus 4.7 beendet: während dieser Schritt wirksam ist, meldet ein nicht-interaktives `/effort` `Not applied`, daher übergeben Sie stattdessen `--effort` beim Start.609Wenn Sie eine Stufe mit `/effort` in einer [`-p` Ausführung](/docs/de/headless) setzen, wendet Claude Code sie nur auf diese Sitzung an und speichert sie nicht als Ihren Standard. Auf Fable 5, Opus 4.8 und Opus 4.7 beendet diese Stufe auch weder den Halt auf der Standard-Anstrengung des Modells noch überschreibt sie ihn für die Sitzung. Während dieser Halt wirksam ist, meldet ein nicht-interaktives `/effort` `Not applied`, daher übergeben Sie stattdessen `--effort` beim Start.

593 610 

594Das `/effort` Menü bietet auch `ultracode`. Ultracode ist eine Claude Code-Einstellung statt einer Modell-Anstrengungsstufe: es sendet `xhigh` an das Modell und hat zusätzlich Claude, um [dynamische Workflows](/docs/de/workflows) für substantive Aufgaben zu orchestrieren. Für wo es persistent gesetzt werden kann, siehe die [`ultracode`](/docs/de/settings-reference#ultracode) Einstellung.611Das `/effort` Menü bietet auch `ultracode`. Ultracode ist eine Claude Code-Einstellung statt einer Modell-Anstrengungsstufe: es sendet `xhigh` an das Modell und hat zusätzlich Claude, um [dynamische Workflows](/docs/de/workflows) für substantive Aufgaben zu orchestrieren. Für wo es persistent gesetzt werden kann, siehe die [`ultracode`](/docs/de/settings-reference#ultracode) Einstellung.

595 612 


604 621 

605Die persistierte `effortLevel` Einstellung und die `CLAUDE_CODE_EFFORT_LEVEL` Umgebungsvariable akzeptieren nicht `ultracode`. Wenn `CLAUDE_CODE_EFFORT_LEVEL` auf eine andere Stufe als `xhigh` gesetzt ist, werden Anfragen auf dieser Stufe ausgeführt und die Workflow-Orchestrierung von Ultracode bleibt inaktiv. Das Auswählen von Ultracode zeigt dann eine Warnung an, dass die Umgebungsvariable die Anstrengung für die Sitzung überschreibt.622Die persistierte `effortLevel` Einstellung und die `CLAUDE_CODE_EFFORT_LEVEL` Umgebungsvariable akzeptieren nicht `ultracode`. Wenn `CLAUDE_CODE_EFFORT_LEVEL` auf eine andere Stufe als `xhigh` gesetzt ist, werden Anfragen auf dieser Stufe ausgeführt und die Workflow-Orchestrierung von Ultracode bleibt inaktiv. Das Auswählen von Ultracode zeigt dann eine Warnung an, dass die Umgebungsvariable die Anstrengung für die Sitzung überschreibt.

606 623 

607Wenn Ultracode nicht verfügbar ist, zum Beispiel wenn [Workflows ausgeschaltet sind](/docs/de/workflows#turn-workflows-off), setzt `--effort ultracode` nur `xhigh` Anstrengung.624<span id="when-ultracode-is-available" />

625 

626Ultracode ist nicht verfügbar, wenn:

627 

628* [Workflows sind ausgeschaltet](/docs/de/workflows#turn-workflows-off)

629* Das Modell unterstützt `xhigh` Anstrengung nicht

630* Eine [Anstrengungsgrenze](#organization-effort-limits) unter `xhigh` gilt für das Modell

631 

632In diesen Fällen startet `--effort ultracode` die Sitzung mit Ultracode aus, auf der höchsten Anstrengungsstufe, die das Modell und jede Grenze zulassen, bis zu `xhigh`.

608 633 

609<h4 id="choose-an-effort-level">634<h4 id="choose-an-effort-level">

610 Wählen Sie eine Anstrengungsstufe635 Wählen Sie eine Anstrengungsstufe

611</h4>636</h4>

612 637 

613Jede Stufe handelt Tokenausgaben gegen Fähigkeit. Der Standard passt zu den meisten Codierungsaufgaben; passen Sie an, wenn Sie ein anderes Gleichgewicht möchten.638Jede Stufe handelt Token-Ausgaben gegen Fähigkeit. Der Standard passt zu den meisten Codierungsaufgaben; passen Sie an, wenn Sie ein anderes Gleichgewicht möchten.

614 639 

615| Stufe | Wann man sie verwendet |640| Stufe | Wann man sie verwendet |

616| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |641| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |


639* **In `/model`**: verwenden Sie die Pfeiltasten nach links/rechts, um den Anstrengungsschieber anzupassen, wenn Sie ein Modell auswählen664* **In `/model`**: verwenden Sie die Pfeiltasten nach links/rechts, um den Anstrengungsschieber anzupassen, wenn Sie ein Modell auswählen

640* **`--effort` Flag**: übergeben Sie einen Stufennamen, um ihn für eine einzelne Sitzung beim Start von Claude Code zu setzen665* **`--effort` Flag**: übergeben Sie einen Stufennamen, um ihn für eine einzelne Sitzung beim Start von Claude Code zu setzen

641* **Umgebungsvariable**: setzen Sie `CLAUDE_CODE_EFFORT_LEVEL` auf einen Stufennamen oder `auto`666* **Umgebungsvariable**: setzen Sie `CLAUDE_CODE_EFFORT_LEVEL` auf einen Stufennamen oder `auto`

642* **Einstellungen**: setzen Sie eine pro-Modell-Stufe in [`modelSettings`](/docs/de/settings-reference#modelsettings) oder setzen Sie [`effortLevel`](/docs/de/settings-reference#effortlevel) auf `low`, `medium`, `high` oder `xhigh` als Standard für Modelle ohne eine. `max` wird in keinem Schlüssel akzeptiert, und `ultracode` hat seinen eigenen [`ultracode`](/docs/de/settings-reference#ultracode) Schlüssel667* **Einstellungen**: setzen Sie eine pro-Modell-Stufe in [`modelSettings`](#setting-your-model) oder setzen Sie [`effortLevel`](/docs/de/settings-reference#effortlevel) auf `low`, `medium`, `high` oder `xhigh` als Standard für Modelle ohne eine. `max` wird in keinem Schlüssel akzeptiert, und `ultracode` hat seinen eigenen [`ultracode`](/docs/de/settings-reference#ultracode) Schlüssel

643* **Von einem verbundenen Gerät**: in einer [Remote Control](/docs/de/remote-control#what-connected-devices-see) Sitzung wählen Sie eine Stufe aus der Anstrengungskontrolle auf Ihrem Telefon oder in Ihrem Browser. Die Stufe gilt nur für die aktuelle Sitzung. Erfordert Claude Code v2.1.234 oder später668* **Von einem verbundenen Gerät**: in einer [Remote Control](/docs/de/remote-control#what-connected-devices-see) Sitzung wählen Sie eine Stufe aus der Anstrengungskontrolle auf Ihrem Telefon oder in Ihrem Browser. Die Stufe gilt nur für die aktuelle Sitzung, obwohl sie auch den [Halt auf der Standard-Anstrengung des Modells](#adjust-effort-level) beendet. Erfordert Claude Code v2.1.234 oder später

644* **Skill- und Subagenten-Frontmatter**: setzen Sie `effort` in einer [Skill](/docs/de/skills#frontmatter-reference) oder [Subagenten](/docs/de/sub-agents#supported-frontmatter-fields) Markdown-Datei, um die Anstrengungsstufe zu überschreiben, wenn dieser Skill oder Subagent ausgeführt wird669* **Skill- und Subagenten-Frontmatter**: setzen Sie `effort` in einer [Skill](/docs/de/skills#frontmatter-reference) oder [Subagenten](/docs/de/sub-agents#supported-frontmatter-fields) Markdown-Datei, um die Anstrengungsstufe zu überschreiben, wenn dieser Skill oder Subagent ausgeführt wird

645 670 

646Frontmatter-Anstrengung gilt, wenn dieser Skill oder Subagent aktiv ist, überschreibt die Sitzungsstufe, aber nicht die Umgebungsvariable.671Frontmatter-Anstrengung gilt, wenn dieser Skill oder Subagent aktiv ist, überschreibt die Sitzungsstufe, aber nicht die Umgebungsvariable. Eine [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel) oder [Organisationsanstrengungsgrenze](#organization-effort-limits) begrenzt immer noch die Stufe, auf der der Skill oder Subagent ausgeführt wird.

647 672 

648Der `effortLevel` Schlüssel in [verwalteten Einstellungen](/docs/de/managed-settings) ist ein Startstandardwert, keine Erzwingung: Benutzer können ihn für eine Sitzung mit `/effort` oder `--effort` ändern, und der verwaltete Wert wird in neuen Sitzungen als Standard wieder durchgesetzt.673Auf Fable 5, Opus 4.8 und Opus 4.7 gilt Frontmatter-Anstrengung auch, während der [Halt auf der Standard-Anstrengung des Modells](#adjust-effort-level) wirksam ist. Vor v2.1.267 hatte der Halt Vorrang und Claude Code ignorierte die Frontmatter-Stufe, während der Halt aktiv war.

674 

675Wenn Sie `effortLevel` in [verwalteten Einstellungen](/docs/de/managed-settings) setzen, wendet Claude Code es beim Einstellungsschritt der [Anstrengungsauflösungsreihenfolge](#adjust-effort-level) an, und Benutzer können die Stufe immer noch mit `/effort` oder `--effort` ändern. Um Benutzer bei oder unter einer Stufe zu halten, setzen Sie [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel).

649 676 

650Der Anstrengungsschieber erscheint in `/model`, wenn ein unterstütztes Modell ausgewählt ist. Die aktuelle Anstrengungsstufe wird auch in der Sitzungskopfzeile neben dem Modellnamen angezeigt, zum Beispiel „with low effort", sodass Sie bestätigen können, welche Einstellung aktiv ist, ohne `/model` zu öffnen. Die Fußzeile zeigt auch kurz die Anstrengungsstufe beim Start und wenn sie sich ändert.677Der Anstrengungsschieber erscheint in `/model`, wenn ein unterstütztes Modell ausgewählt ist. Die aktuelle Anstrengungsstufe wird auch in der Sitzungskopfzeile neben dem Modellnamen angezeigt, zum Beispiel „with low effort", sodass Sie bestätigen können, welche Einstellung aktiv ist, ohne `/model` zu öffnen. Die Fußzeile zeigt auch kurz die Anstrengungsstufe beim Start und wenn sie sich ändert.

651 678 


655 682 

656Adaptive Überlegungen machen Denken bei jedem Schritt optional, sodass Claude schneller auf Routine-Eingabeaufforderungen reagieren und tiefere Überlegungen für Schritte reservieren kann, die davon profitieren. Wenn Sie möchten, dass Claude häufiger oder seltener denkt, als die aktuelle Stufe produziert, können Sie dies direkt in Ihrer Eingabeaufforderung oder in `CLAUDE.md` sagen; das Modell reagiert auf diese Anleitung innerhalb seiner Anstrengungseinstellung.683Adaptive Überlegungen machen Denken bei jedem Schritt optional, sodass Claude schneller auf Routine-Eingabeaufforderungen reagieren und tiefere Überlegungen für Schritte reservieren kann, die davon profitieren. Wenn Sie möchten, dass Claude häufiger oder seltener denkt, als die aktuelle Stufe produziert, können Sie dies direkt in Ihrer Eingabeaufforderung oder in `CLAUDE.md` sagen; das Modell reagiert auf diese Anleitung innerhalb seiner Anstrengungseinstellung.

657 684 

658Fable 5.1, Fable 5, Sonnet 5 und Opus 4.7 und später verwenden immer adaptive Überlegungen. Der Modus mit festem Denk-Budget und `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` gelten nicht für sie.685Fable-Modelle, Sonnet 5 und Opus 4.7 und später verwenden immer adaptive Überlegungen. Der Modus mit festem Denk-Budget und `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` gelten nicht für sie.

659 686 

660Auf Opus 4.6 und Sonnet 4.6 können Sie `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` setzen, um zum vorherigen Modus mit festem Denk-Budget zurückzukehren, der von `MAX_THINKING_TOKENS` gesteuert wird. Siehe [Umgebungsvariablen](/docs/de/env-vars).687Auf Opus 4.6 und Sonnet 4.6 können Sie `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` setzen, um zum vorherigen Modus mit festem Denk-Budget zurückzukehren, der von `MAX_THINKING_TOKENS` gesteuert wird. Siehe [Umgebungsvariablen](/docs/de/env-vars).

661 688 


666Erweitertes Denken ist die Überlegung, die Claude vor der Antwort ausgibt. Bei Modellen, die [adaptive Überlegungen](#adjust-effort-level) unterstützen, ist die Anstrengungsstufe die primäre Kontrolle dafür, wie viel Denken stattfindet; die folgenden Einstellungen schalten Denken ein oder aus und steuern, wie es angezeigt wird. Mit ausgeschaltetem Denken auf der Anthropic API sendet Claude Code Anstrengung `high` statt einer höheren Stufe an Modelle, von denen es weiß, dass sie [diese Kombination nicht akzeptieren](/docs/de/errors#effort-isnt-available-with-thinking-turned-off), wie Opus 5.693Erweitertes Denken ist die Überlegung, die Claude vor der Antwort ausgibt. Bei Modellen, die [adaptive Überlegungen](#adjust-effort-level) unterstützen, ist die Anstrengungsstufe die primäre Kontrolle dafür, wie viel Denken stattfindet; die folgenden Einstellungen schalten Denken ein oder aus und steuern, wie es angezeigt wird. Mit ausgeschaltetem Denken auf der Anthropic API sendet Claude Code Anstrengung `high` statt einer höheren Stufe an Modelle, von denen es weiß, dass sie [diese Kombination nicht akzeptieren](/docs/de/errors#effort-isnt-available-with-thinking-turned-off), wie Opus 5.

667 694 

668| Kontrolle | Wie man sie setzt |695| Kontrolle | Wie man sie setzt |

669| :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |696| :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

670| Umschalter für die aktuelle Sitzung | Drücken Sie `Option+T` auf macOS oder `Alt+T` auf Windows und Linux |697| Umschalter für die aktuelle Sitzung | Drücken Sie `Option+T` auf macOS oder `Alt+T` auf Windows und Linux |

671| Setzen Sie den globalen Standard | Führen Sie `/config` aus und schalten Sie den Denkmodus um. Gespeichert als `alwaysThinkingEnabled` in `~/.claude/settings.json` |698| Setzen Sie den globalen Standard | Führen Sie `/config` aus und schalten Sie den Denkmodus um. Gespeichert als `alwaysThinkingEnabled` in `~/.claude/settings.json` |

672| Deaktivieren Sie über eine Umgebungsvariable | Setzen Sie [`MAX_THINKING_TOKENS=0`](/docs/de/env-vars), das Denken auf der Anthropic API außer auf Fable 5.1 und Fable 5 ausschaltet. Auf [Drittanbieter-Providern](/docs/de/third-party-integrations) lässt dies den `thinking` Parameter stattdessen weg, und adaptive-Überlegungs-Modelle können immer noch denken. Andere Werte gelten nur mit einem [festem Denk-Budget](#adaptive-reasoning-and-fixed-thinking-budgets) |699| Deaktivieren Sie über eine Umgebungsvariable | Setzen Sie [`MAX_THINKING_TOKENS=0`](/docs/de/env-vars), das Denken auf der Anthropic API außer auf Fable-Modellen ausschaltet. Auf [Drittanbieter-Providern](/docs/de/third-party-integrations) lässt dies den `thinking` Parameter stattdessen weg, und adaptive-Überlegungs-Modelle können immer noch denken. Andere Werte gelten nur mit einem [festem Denk-Budget](#adaptive-reasoning-and-fixed-thinking-budgets) |

673 700 

674Denken kann auf Fable 5.1 oder Fable 5 nicht ausgeschaltet werden. Der Sitzungs-Umschalter, `alwaysThinkingEnabled` und `MAX_THINKING_TOKENS=0` haben dort keine Auswirkung, und das Modell entscheidet pro Schritt, wie viel es denken soll, basierend auf der Anstrengungsstufe.701Denken kann auf Fable-Modellen nicht ausgeschaltet werden. Der Sitzungs-Umschalter, `alwaysThinkingEnabled` und `MAX_THINKING_TOKENS=0` haben dort keine Auswirkung, und das Modell entscheidet pro Schritt, wie viel es denken soll, basierend auf der Anstrengungsstufe.

675 702 

676Claude Code bricht Denk-Ausgabe standardmäßig zusammen. Drücken Sie `Ctrl+O`, um den ausführlichen Modus umzuschalten und die Überlegung als grauer kursiver Text zu sehen. Interaktive Sitzungen auf der Anthropic API erhalten standardmäßig redigierte Denk-Blöcke, daher setzen Sie `showThinkingSummaries: true` in [Einstellungen](/docs/de/settings), wenn Sie die vollständigen Zusammenfassungen verfügbar haben möchten, wenn Sie erweitern. Ihnen werden alle generierten Denk-Token berechnet, auch wenn sie zusammengeklappt oder redigiert sind.703Claude Code bricht Denk-Ausgabe standardmäßig zusammen. Drücken Sie `Ctrl+O`, um den ausführlichen Modus umzuschalten und die Überlegung als grauer kursiver Text zu sehen. Interaktive Sitzungen auf der Anthropic API erhalten standardmäßig redigierte Denk-Blöcke, daher setzen Sie `showThinkingSummaries: true` in [Einstellungen](/docs/de/settings), wenn Sie die vollständigen Zusammenfassungen verfügbar haben möchten, wenn Sie erweitern. Ihnen werden alle generierten Denk-Token berechnet, auch wenn sie zusammengeklappt oder redigiert sind.

677 704 


759* [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) komprimieren, wenn sich die Konversation dem Limit des Modells nähert786* [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) komprimieren, wenn sich die Konversation dem Limit des Modells nähert

760* Sonnet 4.6 und Opus 4.6 ohne [erweiterter Kontext](#extended-context) komprimieren bei der 200K-Grenze, ebenso wie Opus 4.8 und Opus 5, wenn sie mit einem 200K-Kontextfenster laufen, z. B. auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry787* Sonnet 4.6 und Opus 4.6 ohne [erweiterter Kontext](#extended-context) komprimieren bei der 200K-Grenze, ebenso wie Opus 4.8 und Opus 5, wenn sie mit einem 200K-Kontextfenster laufen, z. B. auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry

761* Wenn Sie [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars) setzen, komprimieren Modelle mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, bei der 200K-Grenze788* Wenn Sie [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars) setzen, komprimieren Modelle mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, bei der 200K-Grenze

762* Sonnet 5 komprimiert bei dem [Schwellwert für seine Konfiguration](#sonnet-5-context-window)789* Modelle, die mit einem nativen 1M-Fenster laufen, wie Sonnet 5, die Fable-Modelle und Opus 4.7 und später auf der Anthropic API, komprimieren, bevor das Fenster voll wird, standardmäßig bei etwa 967K Token. Auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry gibt [Modelle für Bereitstellungen von Drittanbietern anheften](#pin-models-for-third-party-deployments) an, welche Modelle mit diesem Fenster laufen; für die Konfigurationen, die Sonnet 5 stattdessen mit 200K budgetieren, siehe [Sonnet 5 Kontextfenster](#sonnet-5-context-window)

763* Sitzungen auf einer Modell-ID, die Claude Code nicht erkennt, z. B. ein [LLM-Gateway](/docs/de/llm-gateway)-Alias, komprimieren bei dem Kontextfenster, das Claude Code für die ID annimmt; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](#correct-the-window-for-a-gateway-or-custom-model-id)790* Sitzungen auf einer Modell-ID, die Claude Code nicht erkennt, z. B. ein [LLM-Gateway](/docs/de/llm-gateway)-Alias, komprimieren bei dem Kontextfenster, das Claude Code für die ID annimmt; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](#correct-the-window-for-a-gateway-or-custom-model-id)

764 791 

765<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">792<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

766 Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren793 Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren

767</h3>794</h3>

768 795 

769Bei einem [LLM-Gateway](/docs/de/llm-gateway) oder einer anderen benutzerdefinierten Bereitstellung kann Claude Code ein Kontextfenster für die Modell-ID annehmen, das sich vom echten Fenster des Modells unterscheidet, unabhängig davon, ob es die ID zu einem Claude-Modell auflöst oder nicht. [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/de/env-vars) deklariert das Fenster, das Claude Code stattdessen annehmen sollte. Wie die Variable angewendet wird, hängt von der ID ab. Eine nicht erkannte ID, eine nicht erkannte `[1m]`-ID und eine ID, die mit `claude-` beginnt oder zu einem Claude-Modell aufgelöst wird, sind drei separate Fälle:796Bei einem [LLM-Gateway](/docs/de/llm-gateway) oder einer anderen benutzerdefinierten Bereitstellung kann Claude Code ein Kontextfenster für die Modell-ID annehmen, das sich vom echten Fenster des Modells unterscheidet, unabhängig davon, ob es die ID zu einem Claude-Modell auflöst oder nicht. Setzen Sie [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/de/env-vars) auf das Fenster, das Claude Code stattdessen annehmen sollte.

797 

798Wie die Variable angewendet wird, hängt von der ID ab. Claude Code behandelt eine ID als Anbieter oder benutzerdefinierte Schreibweise, wenn sie nicht mit `claude-` beginnt, in beliebiger Schreibweise, oder wenn sie ein Suffix trägt, das Claude Code beim Lesen der ID entfernt, z. B. das `@YYYYMMDD`-Datum, das auf Google Cloud's Agent Platform verwendet wird. Vor v2.1.259 zählte Claude Code ein entferntes Suffix nicht, daher wurde eine nicht erkannte `claude-`-ID mit einem Datumssuffix als bloßer `claude-`-Name behandelt.

799 

800Eine nicht erkannte Anbieter- oder benutzerdefinierte Schreibweise, dieselbe Schreibweise mit `[1m]` und jede andere ID sind drei separate Fälle:

801 

802* Wenn Claude Code einen Anbieter oder eine benutzerdefinierte Schreibweise nicht zu einem Modell auflösen kann, das es erkennt, und die ID kein `[1m]` enthält, wird die Variable direkt angewendet und die proaktive Komprimierung wird bei dem deklarierten Fenster fortgesetzt.

803* Wenn Claude Code einen Anbieter oder eine benutzerdefinierte Schreibweise nicht zu einem Modell auflösen kann, das es erkennt, und die ID enthält `[1m]`, in beliebiger Schreibweise, nimmt Claude Code ein 1M-Fenster dafür an und die Variable wird nicht von selbst angewendet. Um das Fenster zu korrigieren und gleichzeitig die proaktive Komprimierung beizubehalten, setzen Sie auch [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars). Mit dieser Variable gesetzt, dimensioniert Claude Code die ID wie dieselbe Schreibweise ohne `[1m]`, daher wird `CLAUDE_CODE_MAX_CONTEXT_TOKENS` angewendet, wenn es auf diese ungetaggte Schreibweise angewendet würde.

804 

805 Mit einem deklarierten Fenster über 200K zeigt Claude Code dann eine [Startwarnung](/docs/de/errors#the-200k-limit-isnt-enforced) an, dass das 200K-Limit nicht erzwungen wird. Die Warnung ist in dieser Konfiguration zu erwarten.

806* Wenn die ID zu einem Modell aufgelöst wird, das Claude Code erkennt, oder die ID ein bloßer `claude-`-Name ohne Suffix ist, das Claude Code entfernen kann, in beliebiger Schreibweise, wird die Variable nur wirksam, wenn auch [`DISABLE_COMPACT`](/docs/de/env-vars) gesetzt ist, was alle Komprimierung deaktiviert.

770 807 

771* Wenn die ID nicht mit `claude-` beginnt oder `[1m]` enthält, in beliebiger Schreibweise, und Claude Code sie nicht zu einem Claude-Modell auflösen kann, wird die Variable direkt angewendet und die proaktive Komprimierung wird bei dem deklarierten Fenster fortgesetzt.808 Beispielsweise löst eine ID, die einen Claude-Modellnamen enthält, den Claude Code kennt, wie `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0`, oder das datierte `claude-sonnet-4-5@20250929`, zu diesem Modell auf. Dies umfasst IDs, die auch `[1m]` enthalten: Claude Code löst `claude-opus-4-8[1m]` zu Opus 4.8 auf, auch wenn `CLAUDE_CODE_DISABLE_1M_CONTEXT` gesetzt ist.

772* Wenn die ID nicht mit `claude-` beginnt, aber `[1m]` enthält, in beliebiger Schreibweise, und Claude Code sie nicht zu einem Claude-Modell auflösen kann, nimmt Claude Code ein 1M-Fenster dafür an und die Variable wird nicht von selbst angewendet. Um das Fenster zu korrigieren und gleichzeitig die proaktive Komprimierung beizubehalten, setzen Sie auch [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars). Mit einem deklarierten Fenster über 200K zeigt Claude Code dann eine [Startwarnung](/docs/de/errors#the-200k-limit-isnt-enforced) an, dass das 200K-Limit nicht erzwungen wird. Die Warnung ist in dieser Konfiguration zu erwarten.

773* Wenn die ID mit `claude-` in beliebiger Schreibweise beginnt oder zu einem Claude-Modell aufgelöst wird, wird die Variable nur wirksam, wenn auch [`DISABLE_COMPACT`](/docs/de/env-vars) gesetzt ist, was alle Komprimierung deaktiviert. Beispielsweise löst Claude Code eine ID auf, die einen Claude-Modellnamen enthält, z. B. `anthropic/claude-opus-4-8` oder `us.anthropic.claude-…-v1:0`, zu diesem Modell auf. Dies umfasst IDs, die auch `[1m]` enthalten: Claude Code löst `claude-opus-4-8[1m]` zu Opus 4.8 auf, auch wenn `CLAUDE_CODE_DISABLE_1M_CONTEXT` gesetzt ist.

774 809 

775Für eine Modell-ID, die Claude Code nicht erkennt, setzen Sie [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/de/env-vars), damit Claude Code nur komprimiert, nachdem die API die Konversation mit einem [zu-langen Fehler, den Claude Code erkennt](/docs/de/errors#prompt-is-too-long), ablehnt. Claude Code führt diese Wiederherstellung nicht aus, wenn ein Gateway [den Fehler](/docs/de/llm-gateway-connect#troubleshoot-gateway-errors) zu einer Formulierung umschreibt, die Claude Code nicht erkennt.810Für eine Modell-ID, die Claude Code nicht erkennt, setzen Sie [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/de/env-vars), damit Claude Code nur komprimiert, nachdem die API die Konversation mit einem [zu-langen Fehler, den Claude Code erkennt](/docs/de/errors#prompt-is-too-long), ablehnt. Claude Code führt diese Wiederherstellung nicht aus, wenn ein Gateway [den Fehler](/docs/de/llm-gateway-connect#troubleshoot-gateway-errors) zu einer Formulierung umschreibt, die Claude Code nicht erkennt.

776 811 


852 887 

853Wenden Sie das gleiche Muster auf `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` und `ANTHROPIC_DEFAULT_HAIKU_MODEL` an. Für aktuelle und ältere Modell-IDs über alle Anbieter hinweg siehe [Modellübersicht](https://platform.claude.com/docs/en/about-claude/models/overview). Um Benutzer auf eine neue Modellversion zu aktualisieren, aktualisieren Sie diese Umgebungsvariablen und stellen Sie erneut bereit.888Wenden Sie das gleiche Muster auf `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` und `ANTHROPIC_DEFAULT_HAIKU_MODEL` an. Für aktuelle und ältere Modell-IDs über alle Anbieter hinweg siehe [Modellübersicht](https://platform.claude.com/docs/en/about-claude/models/overview). Um Benutzer auf eine neue Modellversion zu aktualisieren, aktualisieren Sie diese Umgebungsvariablen und stellen Sie erneut bereit.

854 889 

855Um [erweiterten Kontext](#extended-context) für ein fixiertes Modell zu aktivieren, fügen Sie `[1m]` an die Modell-ID in `ANTHROPIC_DEFAULT_OPUS_MODEL` oder `ANTHROPIC_DEFAULT_SONNET_MODEL` an:890Um [erweiterten Kontext](#extended-context) für ein fixiertes Modell zu aktivieren, fügen Sie `[1m]` an die Modell-ID in `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` oder `ANTHROPIC_DEFAULT_FABLE_MODEL` an:

856 891 

857```bash theme={null}892```bash theme={null}

858export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'893export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

859```894```

860 895 

861Das `[1m]`-Suffix wendet das 1M-Kontextfenster auf alle Verwendungen der Aliase `opus` und `sonnet` an, einschließlich der Plan-Mode-Opus-Phase von [`opusplan`](#opusplan-model-setting).896Mit dem `[1m]`-Suffix wird das 1M-Kontextfenster auf alle Verwendungen des fixierten Alias angewendet, einschließlich der Plan-Mode-Opus-Phase von [`opusplan`](#opusplan-model-setting) und [Subagents](/docs/de/sub-agents#choose-a-model), deren `model`-Frontmatter den Alias benennt.

862 897 

863* Claude Code entfernt das Suffix, bevor die Modell-ID an Ihren Anbieter gesendet wird.898* Claude Code entfernt das Suffix, bevor die Modell-ID an Ihren Anbieter gesendet wird.

864* Fügen Sie `[1m]` nur an, wenn das zugrunde liegende Modell [1M-Kontext unterstützt](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).899* Fügen Sie `[1m]` nur an, wenn das zugrunde liegende Modell [1M-Kontext unterstützt](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).


867<Note>902<Note>

868 Eine `availableModels`-Zulassungsliste, die über [MDM oder eine verwaltete Einstellungsdatei](/docs/de/managed-settings#delivery-mechanisms) bereitgestellt wird, gilt weiterhin bei Verwendung von Drittanbieter-Anbietern; [server-verwaltete Einstellungen werden dort nicht bereitgestellt](/docs/de/server-managed-settings#platform-availability).903 Eine `availableModels`-Zulassungsliste, die über [MDM oder eine verwaltete Einstellungsdatei](/docs/de/managed-settings#delivery-mechanisms) bereitgestellt wird, gilt weiterhin bei Verwendung von Drittanbieter-Anbietern; [server-verwaltete Einstellungen werden dort nicht bereitgestellt](/docs/de/server-managed-settings#platform-availability).

869 904 

870 Die Filterung stimmt mit einem Modellalias wie `opus`, einem Versionspräfix wie `claude-opus-4-8` oder der vollständigen Modell-ID in Anbieterform überein. Anbieterspezifische Präfixe wie `us.anthropic.` werden nicht entfernt, daher müssen Sie zum Zulassen eines bestimmten Modells die vollständige Anbieterform-ID auflisten oder sie durch [`modelOverrides`](#override-model-ids-per-version) zuordnen. Alle `[1m]`-Suffixe werden sowohl aus dem Zulassungslisten-Eintrag als auch aus dem angeforderten Modell vor dem Abgleich entfernt.905 Die Filterung stimmt mit einem Modellalias wie `opus`, einem Versionspräfix wie `claude-opus-4-8` oder der vollständigen Modell-ID in Anbieterform überein. Anbieterspezifische Präfixe wie `us.anthropic.` werden nicht entfernt, daher müssen Sie zum Zulassen eines bestimmten Modells die vollständige Anbieterform-ID auflisten oder sie durch [`modelOverrides`](#override-model-ids-per-version) zuordnen. Für ein fixiertes Modell ist diese ID der Wert, den Sie in seiner `ANTHROPIC_DEFAULT_*_MODEL`-Variable setzen. Alle `[1m]`-Suffixe werden sowohl aus dem Zulassungslisten-Eintrag als auch aus dem angeforderten Modell vor dem Abgleich entfernt.

871</Note>906</Note>

872 907 

873<h3 id="customize-pinned-model-display-and-capabilities">908<h3 id="customize-pinned-model-display-and-capabilities">

Details

219**`claude_code.interaction`**219**`claude_code.interaction`**

220 220 

221| Attribut | Beschreibung | Gated durch |221| Attribut | Beschreibung | Gated durch |

222| ------------------------- | ------------------------------------------------------------------------- | ----------------------- |222| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

223| `user_prompt` | Prompt-Text. Der Wert ist `<REDACTED>`, es sei denn, das Gate ist gesetzt | `OTEL_LOG_USER_PROMPTS` |223| `user_prompt` | Prompt-Text. Der Wert ist `<REDACTED>`, es sei denn, das Gate ist gesetzt | `OTEL_LOG_USER_PROMPTS` |

224| `user_prompt_length` | Prompt-Länge in Zeichen | |224| `user_prompt_length` | Prompt-Länge in Zeichen | |

225| `interaction.sequence` | 1-basierter Zähler von Interaktionen in dieser Sitzung | |225| `interaction.sequence` | 1-basierter Zähler von Interaktionen in dieser Sitzung | |

226| `parent.source` | Wie der Span seinen Trace-Parent erhielt: `env`, wenn er unter einem eingehenden `TRACEPARENT` verschachtelt wurde, `none`, wenn er seine eigene Trace gestartet hat. Erfordert Claude Code v2.1.268 oder später | |

226| `interaction.duration_ms` | Wanduhr-Dauer des Durchgangs | |227| `interaction.duration_ms` | Wanduhr-Dauer des Durchgangs | |

227 228 

228**`claude_code.llm_request`**229**`claude_code.llm_request`**

229 230 

230| Attribut | Beschreibung | Gated durch |231| Attribut | Beschreibung | Gated durch |

231| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |232| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |

232| `model` | Modellkennung | |233| `model` | Modellkennung | |

233| `gen_ai.system` | Immer `anthropic`. OpenTelemetry GenAI semantische Konvention | |234| `gen_ai.system` | Immer `anthropic`. OpenTelemetry GenAI semantische Konvention | |

234| `gen_ai.request.model` | Gleicher Wert wie `model`. OpenTelemetry GenAI semantische Konvention | |235| `gen_ai.request.model` | Gleicher Wert wie `model`. OpenTelemetry GenAI semantische Konvention | |

235| `query_source` | Subsystem, das die Anfrage gestellt hat, wie `repl_main_thread` oder ein Subagent-Name | |236| `query_source` | Subsystem, das die Anfrage gestellt hat, wie `repl_main_thread` oder ein Subagent-Name | `ENABLE_BETA_TRACING_DETAILED` |

237| `query_source_safe` | Begrenzte Form von `query_source`, ausgegeben, ob detailliertes Beta-Tracing aktiv ist oder nicht, mit Werten wie `repl_main_thread` oder `agent.builtin.general-purpose`. `:` wird zu `.` und benutzerdefinierte Agenten erscheinen als `agent.custom`. Erfordert Claude Code v2.1.268 oder später | |

236| `agent_id` | Kennung des Subagenten oder Teamkollegen, der die Anfrage gestellt hat. Fehlt in der Hauptsitzung | |238| `agent_id` | Kennung des Subagenten oder Teamkollegen, der die Anfrage gestellt hat. Fehlt in der Hauptsitzung | |

237| `parent_agent_id` | Kennung des Agenten, der diesen erzeugt hat. Fehlt für die Hauptsitzung und für Agenten, die direkt von ihr erzeugt wurden | |239| `parent_agent_id` | Kennung des Agenten, der diesen erzeugt hat. Fehlt für die Hauptsitzung und für Agenten, die direkt von ihr erzeugt wurden | |

238| `workflow.run_id` | Run-Kennung des [Workflow](/docs/de/workflows) Tool-Durchlaufs, der diesen Agenten erzeugt hat, mit dem Präfix `wf_`. Fehlt für Agenten, die nicht durch einen Workflow erzeugt wurden | |240| `workflow.run_id` | Run-Kennung des [Workflow](/docs/de/workflows) Tool-Durchlaufs, der diesen Agenten erzeugt hat, mit dem Präfix `wf_`. Fehlt für Agenten, die nicht durch einen Workflow erzeugt wurden | |


241| `llm_request.context` | `interaction`, `tool` oder `standalone` je nach übergeordnetem Span | |243| `llm_request.context` | `interaction`, `tool` oder `standalone` je nach übergeordnetem Span | |

242| `duration_ms` | Wanduhr-Dauer einschließlich Wiederholungen | |244| `duration_ms` | Wanduhr-Dauer einschließlich Wiederholungen | |

243| `ttft_ms` | Zeit bis zum ersten Token in Millisekunden | |245| `ttft_ms` | Zeit bis zum ersten Token in Millisekunden | |

246| `first_content_ms` | Zeit vom Anfrageanfang bis zum ersten Inhaltsblock des erfolgreichen Versuchs, in Millisekunden. Fehlt bei Anfragen, die auf den nicht-Streaming-Pfad zurückgegriffen haben. Erfordert Claude Code v2.1.268 oder später | |

244| `input_tokens` | Eingabe-Token-Anzahl aus dem API-Nutzungsblock | |247| `input_tokens` | Eingabe-Token-Anzahl aus dem API-Nutzungsblock | |

245| `output_tokens` | Ausgabe-Token-Anzahl | |248| `output_tokens` | Ausgabe-Token-Anzahl | |

246| `cache_read_tokens` | Aus dem Prompt-Cache gelesene Token | |249| `cache_read_tokens` | Aus dem Prompt-Cache gelesene Token | |


252| `success` | `true` oder `false` | |255| `success` | `true` oder `false` | |

253| `status_code` | HTTP-Statuscode, wenn die Anfrage fehlgeschlagen ist | |256| `status_code` | HTTP-Statuscode, wenn die Anfrage fehlgeschlagen ist | |

254| `error` | Fehlermeldung, wenn die Anfrage fehlgeschlagen ist | |257| `error` | Fehlermeldung, wenn die Anfrage fehlgeschlagen ist | |

258| `error_class` | Kurzes Fehlerklassen-Token, wenn die Anfrage fehlgeschlagen ist, wie `api_timeout` oder `server_overload`. Erfordert Claude Code v2.1.268 oder später | |

255| `response.has_tool_call` | `true`, wenn die Antwort Tool-Use-Blöcke enthielt | |259| `response.has_tool_call` | `true`, wenn die Antwort Tool-Use-Blöcke enthielt | |

256| `stop_reason` | API-Antwort `stop_reason`, wie `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn` oder `refusal` | |260| `stop_reason` | API-Antwort `stop_reason`, wie `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn` oder `refusal` | |

257| `gen_ai.response.finish_reasons` | Gleicher Wert wie `stop_reason`, in einem String-Array verpackt. OpenTelemetry GenAI semantische Konvention | |261| `gen_ai.response.finish_reasons` | Gleicher Wert wie `stop_reason`, in einem String-Array verpackt. OpenTelemetry GenAI semantische Konvention | |


261**`claude_code.tool`**265**`claude_code.tool`**

262 266 

263| Attribut | Beschreibung | Gated durch |267| Attribut | Beschreibung | Gated durch |

264| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |268| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

265| `tool_name` | Tool-Name | |269| `tool_name` | Tool-Name | |

270| `tool_name_safe` | Form von `tool_name`, die keine benutzerdefinierte Namen trägt. Integrierte Tool-Namen werden wörtlich weitergegeben. MCP-Tool-Namen erscheinen als `mcp_other`, außer Tool-Namen, die bestimmte feste Formen entsprechen, wie `playwright` Tools mit dem Namen `browser_*`, die wörtlich weitergegeben werden. Erfordert Claude Code v2.1.268 oder später | |

271| `bash_command_class` | Für das Bash-Tool: Kategorie des ersten Programms des Befehls aus einer festen Liste, wie `vcs` oder `package_manager`. `other` für ein Programm außerhalb der Liste, `unparsed`, wenn die Zeile nicht geparst werden kann. Erfordert Claude Code v2.1.268 oder später | |

272| `bash_argv0` | Für das Bash-Tool: das erste Programm des Befehls, wenn es sich auf der gleichen festen Liste befindet, wie `git` oder `npm`. `other` für jedes Programm außerhalb der Liste. Erfordert Claude Code v2.1.268 oder später | |

266| `duration_ms` | Wanduhr-Dauer einschließlich Berechtigungswartung und Ausführung | |273| `duration_ms` | Wanduhr-Dauer einschließlich Berechtigungswartung und Ausführung | |

267| `result_tokens` | Ungefähre Token-Größe des Tool-Ergebnisses | |274| `result_tokens` | Ungefähre Token-Größe des Tool-Ergebnisses | |

268| `agent_id` | Kennung des Subagenten oder Teamkollegen, der das Tool ausgeführt hat. Fehlt in der Hauptsitzung | |275| `agent_id` | Kennung des Subagenten oder Teamkollegen, der das Tool ausgeführt hat. Fehlt in der Hauptsitzung | |


289**`claude_code.tool.execution`**296**`claude_code.tool.execution`**

290 297 

291| Attribut | Beschreibung | Gated durch |298| Attribut | Beschreibung | Gated durch |

292| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |299| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- |

293| `duration_ms` | Zeit, die für die Ausführung des Tool-Body aufgewendet wird | |300| `duration_ms` | Zeit, die für die Ausführung des Tool-Body aufgewendet wird | |

294| `tool_use_id` | Gleicher Wert wie auf dem übergeordneten `claude_code.tool` Span | |301| `tool_use_id` | Gleicher Wert wie auf dem übergeordneten `claude_code.tool` Span | |

295| `gen_ai.tool.call.id` | Gleicher Wert wie `tool_use_id`. OpenTelemetry GenAI semantische Konvention | |302| `gen_ai.tool.call.id` | Gleicher Wert wie `tool_use_id`. OpenTelemetry GenAI semantische Konvention | |

296| `success` | `true` oder `false` | |303| `success` | `true` oder `false` | |

297| `error` | Fehler-Kategoriezeichenkette, wenn die Ausführung fehlgeschlagen ist, wie `Error:ENOENT` oder `ShellError`. Enthält die vollständige Fehlermeldung, wenn das Gate gesetzt ist | `OTEL_LOG_TOOL_DETAILS` |304| `error` | Fehler-Kategoriezeichenkette, wenn die Ausführung fehlgeschlagen ist, wie `Error:ENOENT` oder `ShellError`. Enthält die vollständige Fehlermeldung, wenn das Gate gesetzt ist | `OTEL_LOG_TOOL_DETAILS` |

305| `error_class` | Die Fehlerklasse in Identifierform, mit Zeichen außerhalb von Buchstaben, Ziffern und Unterstrichen ersetzt durch `_`, wie `Error_ENOENT` oder `ShellError`. Trägt die Kategorie auch, wenn `error` die vollständige Meldung trägt. Erfordert Claude Code v2.1.268 oder später | |

298 306 

299**`claude_code.hook`**307**`claude_code.hook`**

300 308 


499| `user.account_uuid` | Konto-UUID (wenn authentifiziert) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (Standard: true) |507| `user.account_uuid` | Konto-UUID (wenn authentifiziert) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (Standard: true) |

500| `user.account_id` | Konto-ID im getaggten Format, das Anthropic-Admin-APIs entspricht (wenn authentifiziert), z. B. `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (Standard: true) |508| `user.account_id` | Konto-ID im getaggten Format, das Anthropic-Admin-APIs entspricht (wenn authentifiziert), z. B. `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (Standard: true) |

501| `user.id` | Zufällige anonyme Kennung, die beim ersten Ausführen generiert und in `~/.claude.json` gespeichert wird. Sie enthält keine persönlichen Informationen und wird nicht von Ihrem Claude-Konto abgeleitet. Das Löschen der Datei erzeugt beim nächsten Ausführen einen neuen, nicht verwandten Wert. | Immer enthalten |509| `user.id` | Zufällige anonyme Kennung, die beim ersten Ausführen generiert und in `~/.claude.json` gespeichert wird. Sie enthält keine persönlichen Informationen und wird nicht von Ihrem Claude-Konto abgeleitet. Das Löschen der Datei erzeugt beim nächsten Ausführen einen neuen, nicht verwandten Wert. | Immer enthalten |

502| `user.email` | E-Mail-Adresse des Benutzers (wenn über OAuth authentifiziert) | Immer enthalten, wenn verfügbar |510| `user.email` | E-Mail-Adresse des Benutzers, von Ihrer Anmeldung oder in einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) von den Anmeldedaten der Sitzung selbst | Immer enthalten, wenn verfügbar |

503| `terminal.type` | Terminal-Typ, z. B. `iTerm.app`, `vscode`, `cursor` oder `tmux` | Immer enthalten, wenn erkannt |511| `terminal.type` | Terminal-Typ, z. B. `iTerm.app`, `vscode`, `cursor` oder `tmux` | Immer enthalten, wenn erkannt |

504| Schlüssel aus `OTEL_RESOURCE_ATTRIBUTES` | Benutzerdefinierte Attribute, die Sie festlegen, z. B. `department` oder `team.id`. Siehe [Multi-Team-Organisationsunterstützung](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (Standard: true) |512| Schlüssel aus `OTEL_RESOURCE_ATTRIBUTES` | Benutzerdefinierte Attribute, die Sie festlegen, z. B. `department` oder `team.id`. Siehe [Multi-Team-Organisationsunterstützung](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (Standard: true) |

505 513 


1329 1337 

1330Claude Code wiederholt fehlgeschlagene API-Anfragen intern und gibt nur nach dem Aufgeben ein einzelnes `claude_code.api_error` Ereignis aus, daher ist das Ereignis selbst das Endsignal für diese Anfrage. Zwischenzeitliche Wiederholungsversuche werden nicht als separate Ereignisse protokolliert.1338Claude Code wiederholt fehlgeschlagene API-Anfragen intern und gibt nur nach dem Aufgeben ein einzelnes `claude_code.api_error` Ereignis aus, daher ist das Ereignis selbst das Endsignal für diese Anfrage. Zwischenzeitliche Wiederholungsversuche werden nicht als separate Ereignisse protokolliert.

1331 1339 

1332Das Attribut `attempt` auf dem Ereignis zeichnet auf, wie viele Versuche insgesamt unternommen wurden. `CLAUDE_CODE_MAX_RETRIES` hat einen Standardwert von 10 und ist auf 15 begrenzt; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standardwert und entfernt die Obergrenze. Wenn die Anfrage alle Wiederholungen bei einem vorübergehenden Fehler erschöpft, ist `attempt` um eins höher als dieses effektive Limit: 11 standardmäßig und nie mehr als 16, es sei denn, der Watchdog ist gesetzt. Ein niedrigerer Wert zeigt einen nicht wiederholbaren Fehler wie eine `400` Antwort an.1340Das Attribut `attempt` auf dem Ereignis zeichnet auf, wie viele Versuche insgesamt unternommen wurden. `CLAUDE_CODE_MAX_RETRIES` hat einen Standardwert von 10 und ist auf 15 begrenzt. Ab v2.1.199 können Sie `CLAUDE_CODE_RETRY_WATCHDOG` setzen, um den Standardwert zu erhöhen und die Obergrenze zu entfernen.

1341 

1342Wenn die Anfrage alle Wiederholungen bei einem vorübergehenden Fehler erschöpft, ist `attempt` um eins höher als dieses effektive Limit: 11 standardmäßig und nie mehr als 16, es sei denn, der Watchdog ist gesetzt. Ein niedrigerer Wert zeigt einen nicht wiederholbaren Fehler wie eine `400` Antwort an, oder eine Ursache mit einem eigenen kleineren Wiederholungsbudget. Zum Beispiel wiederholt Claude Code einen Fehler beim Laden von AWS- oder Google Cloud-Anmeldedaten höchstens zweimal.

1333 1343 

1334Um eine Sitzung zu unterscheiden, die sich von einer, die steckengeblieben ist, erholt hat, gruppieren Sie Ereignisse nach `session.id` und prüfen Sie, ob ein späteres `api_request` Ereignis nach dem Fehler vorhanden ist.1344Um eine Sitzung zu unterscheiden, die sich von einer, die steckengeblieben ist, erholt hat, gruppieren Sie Ereignisse nach `session.id` und prüfen Sie, ob ein späteres `api_request` Ereignis nach dem Fehler vorhanden ist.

1335 1345 


1358 Attribut-Aktionen an Benutzer1368 Attribut-Aktionen an Benutzer

1359</h3>1369</h3>

1360 1370 

1361Die [Standardattribute](#standard-attributes) auf jedem Ereignis enthalten die Identität des authentifizierten Benutzers: `user.email`, `user.account_uuid`, `user.account_id` und `organization.id`, wenn mit einem Claude-Konto angemeldet, plus `user.id` und die pro-Sitzung `session.id`. `user.id` ist ein installationsbegrenzter Bezeichner, außer bei [Claude apps gateway](/docs/de/claude-apps-gateway)-Sitzungen, wo es das IdP-Subjekt aus dem vom Gateway ausgegebenen Token ist.1371Die [Standardattribute](#standard-attributes) auf jedem Ereignis enthalten die Identität des authentifizierten Benutzers: `user.email`, `user.account_uuid`, `user.account_id` und `organization.id`, wenn mit einem Claude-Konto angemeldet oder in einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web), wenn die Anmeldedaten der Sitzung selbst diese tragen, plus `user.id` und die pro-Sitzung `session.id`. `user.id` ist ein installationsbegrenzter Bezeichner, außer bei [Claude apps gateway](/docs/de/claude-apps-gateway)-Sitzungen, wo es das IdP-Subjekt aus dem vom Gateway ausgegebenen Token ist.

1362 1372 

1363MCP-Tool-Aufrufe, Bash-Befehle und Dateibearbeitungen werden daher dem Entwickler zugeordnet, der die Sitzung gestartet hat. Claude Code handelt nicht unter einem separaten Service-Konto; die Identität, die auf jedem Ereignis aufgezeichnet wird, ist das Claude-Konto des Entwicklers selbst, oder die IdP-Identität des Entwicklers bei einer [Claude apps gateway](/docs/de/claude-apps-gateway)-Sitzung.1373MCP-Tool-Aufrufe, Bash-Befehle und Dateibearbeitungen werden daher dem Entwickler zugeordnet, der die Sitzung gestartet hat. Claude Code handelt nicht unter einem separaten Service-Konto; die Identität, die auf jedem Ereignis aufgezeichnet wird, ist das Claude-Konto des Entwicklers selbst, oder die IdP-Identität des Entwicklers bei einer [Claude apps gateway](/docs/de/claude-apps-gateway)-Sitzung.

1364 1374 


1486 1496 

1487* OpenTelemetry-Export zu Ihrem Backend ist opt-in und erfordert explizite Konfiguration. Informationen zu Anthropics separater operativer Telemetrie und wie Sie diese deaktivieren, finden Sie unter [Datennutzung](/docs/de/data-usage#telemetry-services)1497* OpenTelemetry-Export zu Ihrem Backend ist opt-in und erfordert explizite Konfiguration. Informationen zu Anthropics separater operativer Telemetrie und wie Sie diese deaktivieren, finden Sie unter [Datennutzung](/docs/de/data-usage#telemetry-services)

1488* Rohe Dateiinhalte und Code-Snippets sind nicht in Metriken oder Ereignissen enthalten. Trace-Spans sind ein separater Datenpfad: siehe die Aufzählung `OTEL_LOG_TOOL_CONTENT` unten1498* Rohe Dateiinhalte und Code-Snippets sind nicht in Metriken oder Ereignissen enthalten. Trace-Spans sind ein separater Datenpfad: siehe die Aufzählung `OTEL_LOG_TOOL_CONTENT` unten

1489* Wenn über OAuth authentifiziert, ist `user.email` in Telemetrie-Attributen enthalten. Wenn dies ein Problem für Ihre Organisation darstellt, arbeiten Sie mit Ihrem Telemetrie-Backend zusammen, um dieses Feld zu filtern oder zu schwärzen1499* Wenn über OAuth authentifiziert, ist `user.email` in Telemetrie-Attributen enthalten und wird nur an den OTel-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Wenn dies ein Problem für Ihre Organisation darstellt, arbeiten Sie mit Ihrem Telemetrie-Backend zusammen, um dieses Feld zu filtern oder zu schwärzen

1490* Benutzer-Prompt-Inhalte werden standardmäßig nicht erfasst. Nur die Prompt-Länge wird aufgezeichnet. Um Benutzer-Prompt-Inhalte einzubeziehen, setzen Sie `OTEL_LOG_USER_PROMPTS=1`1500* Benutzer-Prompt-Inhalte werden standardmäßig nicht erfasst. Nur die Prompt-Länge wird aufgezeichnet. Um Benutzer-Prompt-Inhalte einzubeziehen, setzen Sie `OTEL_LOG_USER_PROMPTS=1`

1491* Assistent-Antworttext wird standardmäßig nicht erfasst. Nur die Antwortlänge wird aufgezeichnet. Um Antworttext einzubeziehen, setzen Sie `OTEL_LOG_ASSISTANT_RESPONSES=1`. Wie alle OpenTelemetry-Daten von Claude Code wird der Antworttext nur an den OTel-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Wenn diese Variable nicht gesetzt ist, wird `OTEL_LOG_USER_PROMPTS` als Fallback verwendet, daher setzen Sie `OTEL_LOG_ASSISTANT_RESPONSES=0`, wenn Sie Prompt-Inhalte ohne Antwortinhalte möchten1501* Assistent-Antworttext wird standardmäßig nicht erfasst. Nur die Antwortlänge wird aufgezeichnet. Um Antworttext einzubeziehen, setzen Sie `OTEL_LOG_ASSISTANT_RESPONSES=1`. Wie alle OpenTelemetry-Daten von Claude Code wird der Antworttext nur an den OTel-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Wenn diese Variable nicht gesetzt ist, wird `OTEL_LOG_USER_PROMPTS` als Fallback verwendet, daher setzen Sie `OTEL_LOG_ASSISTANT_RESPONSES=0`, wenn Sie Prompt-Inhalte ohne Antwortinhalte möchten

1492* Tool-Eingabeargumente und Parameter werden standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie `OTEL_LOG_TOOL_DETAILS=1`. Für die integrierten Server von Claude Desktop werden in Sitzungen, die Claude Desktop besitzt, `tool_decision` und `tool_result` mit dem Paar `mcp_server_name`/`mcp_tool_name` übertragen, von Hosts erstellte Namen statt Argumentinhalte, auch wenn das Flag aus ist. Die Ausnahme erfordert Claude Code v2.1.214 oder später. Diese Daten werden nur an den OTEL-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Argumente können immer noch vertrauliche Werte enthalten, daher konfigurieren Sie Ihr Telemetrie-Backend, um diese Attribute nach Bedarf zu filtern oder zu schwärzen. Wenn aktiviert:1502* Tool-Eingabeargumente und Parameter werden standardmäßig nicht protokolliert. Um sie einzubeziehen, setzen Sie `OTEL_LOG_TOOL_DETAILS=1`. Für die integrierten Server von Claude Desktop werden in Sitzungen, die Claude Desktop besitzt, `tool_decision` und `tool_result` mit dem Paar `mcp_server_name`/`mcp_tool_name` übertragen, von Hosts erstellte Namen statt Argumentinhalte, auch wenn das Flag aus ist. Die Ausnahme erfordert Claude Code v2.1.214 oder später. Diese Daten werden nur an den OTEL-Endpunkt gesendet, den Sie konfigurieren, niemals an Anthropic. Argumente können immer noch vertrauliche Werte enthalten, daher konfigurieren Sie Ihr Telemetrie-Backend, um diese Attribute nach Bedarf zu filtern oder zu schwärzen. Wenn aktiviert:

Details

246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/de/chrome) Erweiterungs-WebSocket-Bridge |246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/de/chrome) Erweiterungs-WebSocket-Bridge |

247| `*.frame.claudeusercontent.com` | [Artifact](/docs/de/artifacts) Inhaltslesevorgänge. Die CLI ruft die Dateien eines Artifacts von diesem Host ab, wenn Claude eines öffnet, und nur wenn das Artifact-Tool [verfügbar](/docs/de/artifacts#availability) für Ihr Konto ist. Um das Tool auszuschalten und diese Anforderung zu entfernen, setzen Sie [`"enableArtifact": false`](/docs/de/settings-reference#enableartifact) oder [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/de/env-vars); Claude Code berücksichtigt auch die veraltete Einstellung [`disableArtifact`](/docs/de/settings-reference#disableartifact). Siehe [Disable artifacts](/docs/de/artifacts#disable-artifacts) für die Interaktion dieser Einstellungen |247| `*.frame.claudeusercontent.com` | [Artifact](/docs/de/artifacts) Inhaltslesevorgänge. Die CLI ruft die Dateien eines Artifacts von diesem Host ab, wenn Claude eines öffnet, und nur wenn das Artifact-Tool [verfügbar](/docs/de/artifacts#availability) für Ihr Konto ist. Um das Tool auszuschalten und diese Anforderung zu entfernen, setzen Sie [`"enableArtifact": false`](/docs/de/settings-reference#enableartifact) oder [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/de/env-vars); Claude Code berücksichtigt auch die veraltete Einstellung [`disableArtifact`](/docs/de/settings-reference#disableartifact). Siehe [Disable artifacts](/docs/de/artifacts#disable-artifacts) für die Interaktion dieser Einstellungen |

248| `raw.githubusercontent.com` | Changelog-Feed für [`/release-notes`](/docs/de/commands). In interaktiven Sitzungen ruft Claude Code ihn auch beim Start im Hintergrund ab, wenn sein zwischengespeichertes Changelog die laufende Version noch nicht abdeckt, z. B. beim ersten Start nach einem Update; nicht-interaktive und Cloud-Sitzungen rufen ihn nie ab |248| `raw.githubusercontent.com` | Changelog-Feed für [`/release-notes`](/docs/de/commands). In interaktiven Sitzungen ruft Claude Code ihn auch beim Start im Hintergrund ab, wenn sein zwischengespeichertes Changelog die laufende Version noch nicht abdeckt, z. B. beim ersten Start nach einem Update; nicht-interaktive und Cloud-Sitzungen rufen ihn nie ab |

249| `*-review.googlesource.com` | Gerrit-Änderungssuche bei `googlesource.com`-Checkouts. Wenn eine Claude Desktop Code-Tab-Sitzung auf einem [vertrauenswürdigen](/docs/de/permissions#project-allow-rules-and-workspace-trust) Checkout startet oder fortgesetzt wird, dessen `origin` ein `googlesource.com`-Host ist, fragt Claude Code diesen Host's `-review`-Server anonym nach der offenen Änderung, die HEADs `Change-Id` entspricht, einmal pro Start oder Fortsetzung. Andere Sitzungstypen überspringen die Suche, und kein anderer Gerrit-Host wird kontaktiert. Optional: deaktivieren mit [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) |

249| `http-intake.logs.us5.datadoghq.com` | Operationale Telemetrie-Ereignisse, die nur gesendet werden, wenn die CLI die Anthropic API direkt nutzt, niemals für Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry. Optional: deaktivieren mit [`DISABLE_TELEMETRY`](/docs/de/data-usage#telemetry-services) oder `DO_NOT_TRACK` |250| `http-intake.logs.us5.datadoghq.com` | Operationale Telemetrie-Ereignisse, die nur gesendet werden, wenn die CLI die Anthropic API direkt nutzt, niemals für Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry. Optional: deaktivieren mit [`DISABLE_TELEMETRY`](/docs/de/data-usage#telemetry-services) oder `DO_NOT_TRACK` |

250| `browser-intake-us5-datadoghq.com` | Operationale Fehlerberichte, die gesendet werden, wenn die CLI die Anthropic API direkt nutzt und ein serverseitiges Rollout-Gate sie aktiviert. Optional: deaktivieren mit `DISABLE_ERROR_REPORTING` oder `DISABLE_TELEMETRY`; siehe [Telemetry services](/docs/de/data-usage#telemetry-services) |251| `browser-intake-us5-datadoghq.com` | Operationale Fehlerberichte, die gesendet werden, wenn die CLI die Anthropic API direkt nutzt und ein serverseitiges Rollout-Gate sie aktiviert. Optional: deaktivieren mit `DISABLE_ERROR_REPORTING` oder `DISABLE_TELEMETRY`; siehe [Telemetry services](/docs/de/data-usage#telemetry-services) |

251| `formulae.brew.sh` | Versionsprüfungen auf Homebrew-Installationen aktualisieren. Andere Installationsmethoden kontaktieren diesen Host nicht |252| `formulae.brew.sh` | Versionsprüfungen auf Homebrew-Installationen aktualisieren. Andere Installationsmethoden kontaktieren diesen Host nicht |

overview.md +10 −10

Details

18 <Tab title="Terminal">18 <Tab title="Terminal">

19 Das vollständig ausgestattete CLI für die Arbeit mit Claude Code direkt in Ihrem Terminal. Bearbeiten Sie Dateien, führen Sie Befehle aus und verwalten Sie Ihr gesamtes Projekt über die Befehlszeile.19 Das vollständig ausgestattete CLI für die Arbeit mit Claude Code direkt in Ihrem Terminal. Bearbeiten Sie Dateien, führen Sie Befehle aus und verwalten Sie Ihr gesamtes Projekt über die Befehlszeile.

20 20 

21 To install Claude Code, use one of the following methods:21 Um Claude Code zu installieren, verwenden Sie eine der folgenden Methoden:

22 22 

23 <Tabs>23 <Tabs>

24 <Tab title="Native Install (Recommended)">24 <Tab title="Native Installation (Empfohlen)">

25 **macOS, Linux, WSL:**25 **macOS, Linux, WSL:**

26 26 

27 ```bash theme={null}27 ```bash theme={null}


40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41 ```41 ```

42 42 

43 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.43 Wenn Sie `The token '&&' is not a valid statement separator` sehen, befinden Sie sich in PowerShell, nicht in CMD. Wenn Sie `'irm' is not recognized as an internal or external command` sehen, befinden Sie sich in CMD, nicht in PowerShell. Ihre Eingabeaufforderung zeigt `PS C:\`, wenn Sie sich in PowerShell befinden, und `C:\` ohne `PS`, wenn Sie sich in CMD befinden.

44 44 

45 If the install command fails with `syntax error near unexpected token '<'`, a `403`, or another curl error, see [Troubleshoot installation](/docs/en/troubleshoot-install#find-your-error) to match the error to a fix and for alternative install methods.45 Wenn der Installationsbefehl mit `syntax error near unexpected token '<'`, einem `403` oder einem anderen curl-Fehler fehlschlägt, siehe [Installationsfehler beheben](/docs/de/troubleshoot-install#find-your-error), um den Fehler einer Lösung zuzuordnen und alternative Installationsmethoden zu finden.

46 46 

47 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.47 [Git für Windows](https://git-scm.com/downloads/win) wird auf nativem Windows empfohlen, damit Claude Code das Bash-Tool verwenden kann. Wenn Git für Windows nicht installiert ist, verwendet Claude Code stattdessen PowerShell als Shell-Tool. WSL-Setups benötigen Git für Windows nicht.

48 48 

49 <Info>49 <Info>

50 Native installations automatically update in the background to keep you on the latest version.50 Native Installationen werden automatisch im Hintergrund aktualisiert, um Sie auf der neuesten Version zu halten.

51 </Info>51 </Info>

52 </Tab>52 </Tab>

53 53 


56 brew install --cask claude-code56 brew install --cask claude-code

57 ```57 ```

58 58 

59 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.59 Homebrew bietet zwei Casks. `claude-code` verfolgt den stabilen Release-Kanal, der normalerweise etwa eine Woche hinter dem aktuellen Stand liegt und Releases mit großen Regressionen überspringt. `claude-code@latest` verfolgt den neuesten Kanal und erhält neue Versionen, sobald sie verfügbar sind.

60 60 

61 <Info>61 <Info>

62 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.62 Homebrew-Installationen werden nicht automatisch aktualisiert. Führen Sie `brew upgrade claude-code` oder `brew upgrade claude-code@latest` aus, je nachdem welches Cask Sie installiert haben, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

63 </Info>63 </Info>

64 </Tab>64 </Tab>

65 65 


69 ```69 ```

70 70 

71 <Info>71 <Info>

72 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.72 WinGet-Installationen werden nicht automatisch aktualisiert. Führen Sie regelmäßig `winget upgrade Anthropic.ClaudeCode` aus, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

73 </Info>73 </Info>

74 </Tab>74 </Tab>

75 </Tabs>75 </Tabs>

76 76 

77 You can also install with [apt, dnf, or apk](/docs/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.77 Sie können auch mit [apt, dnf oder apk](/docs/de/setup#install-with-linux-package-managers) auf Debian, Fedora, RHEL und Alpine installieren.

78 78 

79 Starten Sie dann Claude Code in einem beliebigen Projekt. Ersetzen Sie `your-project` durch den Pfad zu einem Projektverzeichnis auf Ihrem Computer:79 Starten Sie dann Claude Code in einem beliebigen Projekt. Ersetzen Sie `your-project` durch den Pfad zu einem Projektverzeichnis auf Ihrem Computer:

80 80 

Details

22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | Lesevorgänge, Dateibearbeitungen und häufige Dateisystembefehle (`mkdir`, `touch`, `mv`, `cp` usw.) | Iteration bei Code-Überprüfung |22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | Lesevorgänge, Dateibearbeitungen und häufige Dateisystembefehle (`mkdir`, `touch`, `mv`, `cp` usw.) | Iteration bei Code-Überprüfung |

23| [`plan`](#analyze-before-you-edit-with-plan-mode) | Lesevorgänge, plus vom Klassifizierer genehmigte Befehle, wenn [Auto-Modus](#eliminate-prompts-with-auto-mode) verfügbar ist | Erkundung einer Codebasis vor Änderungen |23| [`plan`](#analyze-before-you-edit-with-plan-mode) | Lesevorgänge, plus vom Klassifizierer genehmigte Befehle, wenn [Auto-Modus](#eliminate-prompts-with-auto-mode) verfügbar ist | Erkundung einer Codebasis vor Änderungen |

24| [`auto`](#eliminate-prompts-with-auto-mode) | Alles, mit Sicherheitsprüfungen im Hintergrund | Lange Aufgaben, Reduzierung von Aufforderungsmüdigkeit |24| [`auto`](#eliminate-prompts-with-auto-mode) | Alles, mit Sicherheitsprüfungen im Hintergrund | Lange Aufgaben, Reduzierung von Aufforderungsmüdigkeit |

25| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Nur vorab genehmigte Tools | Gesperrte CI und Skripte |25| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Lesevorgänge und vorab genehmigte Tools; alles, das eine Aufforderung auslösen würde, wird abgelehnt | Gesperrte CI und Skripte |

26| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Alles | Nur isolierte Container und VMs |26| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Alles | Nur isolierte Container und VMs |

27 27 

28Der Modus, der jede Aktion überprüft, wird in der CLI, in `claude --help`, in den VS Code- und JetBrains-Erweiterungen und in der Desktop-App als **Manual** bezeichnet. Sein Konfigurationswert ist `default`, was Hooks und SDK-Integrationen verwenden. Die CLI akzeptiert `manual` als Alias überall dort, wo Sie den Wert eingeben, zum Beispiel `claude --permission-mode manual` oder `"defaultMode": "manual"`. Das Manual-Label und der `manual`-Alias erfordern Claude Code v2.1.200 oder später. Das Label der Desktop-App hängt nicht von Ihrer CLI-Version ab.28Der Modus, der jede Aktion überprüft, wird in der CLI, in `claude --help`, in den VS Code- und JetBrains-Erweiterungen und in der Desktop-App als **Manual** bezeichnet. Sein Konfigurationswert ist `default`, was Hooks und SDK-Integrationen verwenden. Die CLI akzeptiert `manual` als Alias überall dort, wo Sie den Wert eingeben, zum Beispiel `claude --permission-mode manual` oder `"defaultMode": "manual"`. Das Manual-Label und der `manual`-Alias erfordern Claude Code v2.1.200 oder später. Das Label der Desktop-App hängt nicht von Ihrer CLI-Version ab.


131 Berechtigungsmodi wechseln131 Berechtigungsmodi wechseln

132</h2>132</h2>

133 133 

134Jede Schnittstelle hat ihre eigene Kontrolle zum Wechseln von Berechtigungsmodi während einer Sitzung und ihre eigene Weise, den Berechtigungsmodus zu wählen, den neue Sitzungen starten. Claude im Chat zu fragen, den Berechtigungsmodus zu ändern, funktioniert nicht. Wählen Sie Ihre Schnittstelle unten aus, um ihre Kontrollen zu sehen.134Jede Schnittstelle hat ihre eigene Kontrolle zum Wechseln von Berechtigungsmodi während einer Sitzung und ihre eigene Weise, den Berechtigungsmodus zu wählen, den neue Sitzungen starten. Wählen Sie Ihre Schnittstelle aus, um ihre Kontrollen zu sehen.

135 135 

136<Tabs>136<Tabs>

137 <Tab title="CLI">137 <Tab title="CLI">


409* Installation von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind409* Installation von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind

410* Lesen von `.env` und Senden von Credentials an ihre entsprechende API410* Lesen von `.env` und Senden von Credentials an ihre entsprechende API

411* Read-only HTTP-Anfragen411* Read-only HTTP-Anfragen

412* Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, einschließlich des Standard-Branchs. Ein Non-Default-Branch, dessen Name ihn als Deploy- oder Publikationsziel kennzeichnet, wie `production` oder `gh-pages`, ist nicht abgedeckt: Der Klassifizierer beurteilt einen Push dort auf seine eigenen Bedingungen. Der Inhalt des Pushes wird immer noch gegen die anderen Regeln überprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Pushes zu bestimmten Branches in jedem Modus immer noch direkt blockieren, und der Branch-Schutz des Remotes gilt immer noch. Vor v2.1.211 waren nur Pushes zum Branch, auf dem Sie gestartet haben, Branches, die Claude erstellt hat, und routinemäßige Pushes zum Standard-Branch erlaubt, und vor v2.1.203 war jeder direkte Push zum Standard-Branch blockiert412* Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, einschließlich des Standard-Branchs. Ein Non-Default-Branch, dessen Name ihn als Deploy- oder Publikationsziel kennzeichnet, wie `production` oder `gh-pages`, ist nicht abgedeckt: Der Klassifizierer beurteilt einen Push dort auf seine eigenen Bedingungen. Der Inhalt des Pushes wird immer noch gegen die anderen Regeln überprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Pushes immer noch blockieren [wie geschrieben](/docs/de/permissions#bash-rule-limits) in jedem Modus, und der Branch-Schutz des Remotes gilt immer noch. Vor v2.1.211 waren nur Pushes zum Branch, auf dem Sie gestartet haben, Branches, die Claude erstellt hat, und routinemäßige Pushes zum Standard-Branch erlaubt, und vor v2.1.203 war jeder direkte Push zum Standard-Branch blockiert

413 413 

414Claude Code v2.1.195 und später erlauben auch diese standardmäßig:414Claude Code v2.1.195 und später erlauben auch diese standardmäßig:

415 415 


428 428 

429Führen Sie `claude auto-mode defaults` aus, um die vollständigen Regellisten als JSON zu drucken. Wenn routinemäßige Aktionen blockiert werden, kann ein Administrator vertrauenswürdige Repos, Buckets und Services über die `autoMode.environment`-Einstellung hinzufügen: siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config).429Führen Sie `claude auto-mode defaults` aus, um die vollständigen Regellisten als JSON zu drucken. Wenn routinemäßige Aktionen blockiert werden, kann ein Administrator vertrauenswürdige Repos, Buckets und Services über die `autoMode.environment`-Einstellung hinzufügen: siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config).

430 430 

431Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, und Erstellen eines Pull Requests, der Ihrer Anfrage entspricht, laufen ohne Aufforderung, es sei denn, der Push oder Pull Request fällt unter die [blockierte Liste](#what-the-classifier-blocks-by-default), wie Geheimnisse oder sensible Daten, die das Repository verlassen, oder ein Pull Request, der auf ein anderes Repository oder eine andere Organisation abzielt. Um einen menschlichen Checkpoint vor diesen Aktionen zu erfordern, während Sie im Auto-Modus bleiben, fügen Sie `permissions.ask`-Regeln hinzu: siehe [Häufige Grenzen](/docs/de/auto-mode-config#common-boundaries).431Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, und Erstellen eines Pull Requests, der Ihrer Anfrage entspricht, laufen ohne Aufforderung, es sei denn, der Push oder Pull Request fällt unter die [blockierte Liste](#what-the-classifier-blocks-by-default), wie Geheimnisse oder sensible Daten, die das Repository verlassen, oder ein Pull Request, der auf ein anderes Repository oder eine andere Organisation abzielt. Um einen menschlichen Checkpoint vor diesen Befehlen zu erfordern, während Sie im Auto-Modus bleiben, fügen Sie `permissions.ask`-Regeln hinzu, die den Befehl [wie geschrieben](/docs/de/permissions#bash-rule-limits) passen: siehe [Häufige Grenzen](/docs/de/auto-mode-config#common-boundaries).

432 432 

433<h3 id="first-read-outside-the-working-directories">433<h3 id="first-read-outside-the-working-directories">

434 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse434 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse


474 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort aufgelöst. Schreibvorgänge zu [geschützten Pfaden](#protected-paths) werden zum Klassifizierer geleitet, auch wenn eine Allow-Regel passt, und ebenso `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) in Claude Code v2.1.218 und später abzielen. MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, fordern Sie direkt auf, auch wenn eine Allow-Regel passt, und ebenso Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht. Ask-Regeln, die auf dem Inhalt eines Befehls passen, wie `Bash(git push *)`, fallen auf eine Genehmigungsaufforderung zurück474 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort aufgelöst. Schreibvorgänge zu [geschützten Pfaden](#protected-paths) werden zum Klassifizierer geleitet, auch wenn eine Allow-Regel passt, und ebenso `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) in Claude Code v2.1.218 und später abzielen. MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, fordern Sie direkt auf, auch wenn eine Allow-Regel passt, und ebenso Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht. Ask-Regeln, die auf dem Inhalt eines Befehls passen, wie `Bash(git push *)`, fallen auf eine Genehmigungsaufforderung zurück

475 2. Read-only-Aktionen und Dateieditierungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgänge zu [geschützten Pfaden](#protected-paths) und [dem ersten Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), die Sie auffordern475 2. Read-only-Aktionen und Dateieditierungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgänge zu [geschützten Pfaden](#protected-paths) und [dem ersten Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), die Sie auffordern

476 3. Alles andere geht zum Klassifizierer. Die Connector-Tools und `requiresUserInteraction`-MCP-Tools, die Sie direkt in Schritt 1 auffordern, erreichen den Klassifizierer nie, daher wird weder eine von der Organisation geforderte Genehmigung noch ein Zustimmungsschritt automatisch genehmigt476 3. Alles andere geht zum Klassifizierer. Die Connector-Tools und `requiresUserInteraction`-MCP-Tools, die Sie direkt in Schritt 1 auffordern, erreichen den Klassifizierer nie, daher wird weder eine von der Organisation geforderte Genehmigung noch ein Zustimmungsschritt automatisch genehmigt

477 4. Wenn der Klassifizierer blockiert, erhält Claude den Grund und versucht eine Alternative. In den meisten Sitzungen ist der Grund der feste Text `Blocked by classifier` statt einer geschriebenen Erklärung, in Claude Code v2.1.208 und später; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)477 4. Wenn der Klassifizierer blockiert, erhält Claude den Grund und versucht eine Alternative. In den meisten Sitzungen ist der Grund der feste Text `Blocked by classifier` statt einer geschriebenen Erklärung; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)

478 478 

479 Beim Eintritt in den Auto-Modus werden breite Allow-Regeln, die willkürliche Code-Ausführung gewähren, gelöscht:479 Beim Eintritt in den Auto-Modus werden breite Allow-Regeln, die willkürliche Code-Ausführung gewähren, gelöscht:

480 480 


518 Nur vorab genehmigte Tools mit dontAsk-Modus zulassen518 Nur vorab genehmigte Tools mit dontAsk-Modus zulassen

519</h2>519</h2>

520 520 

521Wenn Sie den `dontAsk`-Modus einstellen, lehnt Claude Code automatisch jeden Tool-Aufruf ab, der sonst zu einer Eingabeaufforderung führen würde. Claude führt nur Aktionen aus, die Ihren `permissions.allow`-Regeln, [schreibgeschützten Bash-Befehlen](/docs/de/permissions#read-only-commands) und Aufrufen entsprechen, die von einem [PreToolUse Hook](/docs/de/permissions#extend-permissions-with-hooks) genehmigt wurden. Verwenden Sie diesen Modus für CI-Pipelines oder eingeschränkte Umgebungen, in denen Sie genau vordefinieren, was Claude tun darf; die Sitzung wartet nie auf Eingaben. Die Statusleiste zeigt `⏵⏵ don't ask on`, während dieser Modus aktiv ist.521Wenn Sie den `dontAsk`-Modus einstellen, lehnt Claude Code automatisch jeden Tool-Aufruf ab, der Sie sonst auffordern würde. Claude führt weiterhin Aktionen aus, die im Manual-Modus keine Genehmigung benötigen, wie z. B. Dateilesevorgänge in Ihren Arbeitsverzeichnissen und [schreibgeschützte Bash-Befehle](/docs/de/permissions#read-only-commands), sowie Aktionen, die Ihren `permissions.allow`-Regeln entsprechen, und Aufrufe, die von einem [PreToolUse-Hook](/docs/de/permissions#extend-permissions-with-hooks) genehmigt wurden. Verwenden Sie diesen Modus für CI-Pipelines oder eingeschränkte Umgebungen, in denen Sie vorab definieren, was Claude tun darf; die Sitzung wartet nie auf Eingaben. Die Statusleiste zeigt `⏵⏵ don't ask on`, während dieser Modus aktiv ist.

522 522 

523Claude Code lehnt Aufrufe ab, die Ihren expliziten [`ask`-Regeln](/docs/de/permissions#manage-permissions) entsprechen, anstatt zu einer Eingabeaufforderung zu führen. Es lehnt auch das integrierte `AskUserQuestion`-Tool und Connector-Tools ab, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht. Es lehnt MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, auf die gleiche Weise ab, da ihre Genehmigungskarte eine Antwort benötigt, die dieser Modus nie erfasst; dies erfordert Claude Code v2.1.199 oder später.523Claude Code lehnt Aufrufe ab, die Ihren expliziten [`ask`-Regeln](/docs/de/permissions#manage-permissions) entsprechen, anstatt Sie aufzufordern. Es lehnt auch das integrierte `AskUserQuestion`-Tool ab, selbst wenn Ihre Allow-Regeln damit übereinstimmen, und macht dasselbe mit Connector-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht. Es lehnt MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, auf die gleiche Weise ab, da ihre Genehmigungskarte eine Antwort benötigt, die dieser Modus nie erfasst; dies erfordert Claude Code v2.1.199 oder später.

524 524 

525`rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen, wie `rm -rf /` und `rm -rf ~`, werden verweigert, auch wenn eine Allow-Regel oder ein `PreToolUse` Hook sie zulässt.525`rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen, wie z. B. `rm -rf /` und `rm -rf ~`, werden abgelehnt, selbst wenn eine Allow-Regel damit übereinstimmt oder ein `PreToolUse`-Hook sie zulässt.

526 526 

527Cloud-Sitzungen auf [Claude Code im Web](/docs/de/claude-code-on-the-web) ignorieren `defaultMode: "dontAsk"`; siehe [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) für Details.527Cloud-Sitzungen auf [Claude Code im Web](/docs/de/claude-code-on-the-web) ignorieren `defaultMode: "dontAsk"`; siehe [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) für Details.

528 528 

529Legen Sie es beim Start mit dem Flag fest:529Stellen Sie es beim Start mit dem Flag ein:

530 530 

531```bash theme={null}531```bash theme={null}

532claude --permission-mode dontAsk532claude --permission-mode dontAsk

permissions.md +8 −4

Details

82Claude Code unterstützt mehrere Berechtigungsmodi, die steuern, wie Werkzeugaufrufe genehmigt werden. Siehe [Berechtigungsmodi](/docs/de/permission-modes) für den Zeitpunkt der Verwendung jedes Modus. Um den Modus zu ändern, in dem Sitzungen starten, legen Sie `defaultMode` in Ihren [Einstellungsdateien](/docs/de/settings#where-settings-live) fest. [Welcher Modus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) behandelt die integrierte Standardeinstellung für jeden Plan und was die VS Code-Erweiterung liest.82Claude Code unterstützt mehrere Berechtigungsmodi, die steuern, wie Werkzeugaufrufe genehmigt werden. Siehe [Berechtigungsmodi](/docs/de/permission-modes) für den Zeitpunkt der Verwendung jedes Modus. Um den Modus zu ändern, in dem Sitzungen starten, legen Sie `defaultMode` in Ihren [Einstellungsdateien](/docs/de/settings#where-settings-live) fest. [Welcher Modus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) behandelt die integrierte Standardeinstellung für jeden Plan und was die VS Code-Erweiterung liest.

83 83 

84| Modus | Beschreibung |84| Modus | Beschreibung |

85| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |85| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

86| `default` | Fordert Genehmigung bei der ersten Verwendung jedes Werkzeugs auf. Im CLI, in den VS Code- und JetBrains-Erweiterungen sowie in der Desktop-App als „Manual" gekennzeichnet, und Claude Code akzeptiert `manual` als Alias. Die Bezeichnung und der Alias erfordern Claude Code v2.1.200 oder später. Die Bezeichnung der Desktop-App hängt nicht von Ihrer CLI-Version ab |86| `default` | Fordert Genehmigung bei der ersten Verwendung jedes Werkzeugs auf. Im CLI, in den VS Code- und JetBrains-Erweiterungen sowie in der Desktop-App als „Manual" gekennzeichnet, und Claude Code akzeptiert `manual` als Alias. Die Bezeichnung und der Alias erfordern Claude Code v2.1.200 oder später. Die Bezeichnung der Desktop-App hängt nicht von Ihrer CLI-Version ab |

87| `acceptEdits` | Akzeptiert automatisch Dateibearbeitungen und häufige Dateisystem-Befehle wie `mkdir`, `touch`, `mv` und `cp` für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |87| `acceptEdits` | Akzeptiert automatisch Dateibearbeitungen und häufige Dateisystem-Befehle wie `mkdir`, `touch`, `mv` und `cp` für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |

88| `plan` | Claude liest Dateien und führt schreibgeschützte Shell-Befehle aus, um zu erkunden, bearbeitet aber nicht Ihre Quelldateien; mit [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) verfügbar, Klassifizierer-genehmigte Befehle werden auch ausgeführt. Im CLI und in der VS Code-Erweiterung als Plan gekennzeichnet |88| `plan` | Claude liest Dateien und führt schreibgeschützte Shell-Befehle aus, um zu erkunden, bearbeitet aber nicht Ihre Quelldateien; mit [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) verfügbar, Klassifizierer-genehmigte Befehle werden auch ausgeführt. Im CLI und in der VS Code-Erweiterung als Plan gekennzeichnet |

89| `auto` | Genehmigt Werkzeugaufrufe automatisch mit Hintergrund-Sicherheitsprüfungen, die überprüfen, ob Aktionen mit Ihrer Anfrage übereinstimmen |89| `auto` | Genehmigt Werkzeugaufrufe automatisch mit Hintergrund-Sicherheitsprüfungen, die überprüfen, ob Aktionen mit Ihrer Anfrage übereinstimmen |

90| `dontAsk` | Verweigert Werkzeuge automatisch, es sei denn, sie sind vorab über `/permissions` oder `permissions.allow`-Regeln genehmigt. `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie diese genehmigt haben |90| `dontAsk` | Verweigert automatisch jeden Aufruf, der sonst eine Aufforderung auslösen würde; Dateilesevorgänge in Ihren Arbeitsverzeichnissen und andere Aktionen, die keine Genehmigung benötigen, werden weiterhin ausgeführt, ebenso wie Werkzeuge, die vorab über `/permissions` oder `permissions.allow`-Regeln genehmigt wurden. `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie diese genehmigt haben |

91| `bypassPermissions` | Überspringt Berechtigungsaufforderungen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) |91| `bypassPermissions` | Überspringt Berechtigungsaufforderungen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) |

92 92 

93<Warning>93<Warning>


455Wenn Claude auf einen Symlink zugreift, überprüfen Berechtigungsregeln zwei Pfade: den Symlink selbst und die Datei, auf die er verweist. Allow- und Deny-Regeln behandeln dieses Paar unterschiedlich: Allow-Regeln fallen auf Aufforderungen zurück, während Deny-Regeln direkt blockieren.455Wenn Claude auf einen Symlink zugreift, überprüfen Berechtigungsregeln zwei Pfade: den Symlink selbst und die Datei, auf die er verweist. Allow- und Deny-Regeln behandeln dieses Paar unterschiedlich: Allow-Regeln fallen auf Aufforderungen zurück, während Deny-Regeln direkt blockieren.

456 456 

457* **Allow-Regeln**: gelten nur, wenn sowohl der Symlink-Pfad als auch sein Ziel übereinstimmen. Ein Symlink in einem zulässigen Verzeichnis, der außerhalb davon verweist, fordert Sie immer noch auf.457* **Allow-Regeln**: gelten nur, wenn sowohl der Symlink-Pfad als auch sein Ziel übereinstimmen. Ein Symlink in einem zulässigen Verzeichnis, der außerhalb davon verweist, fordert Sie immer noch auf.

458* **Deny-Regeln**: gelten, wenn entweder der Symlink-Pfad oder sein Ziel übereinstimmt. Ein Symlink, der auf eine verweigerte Datei verweist, ist selbst verweigert.458* **Deny-Regeln**: gelten, wenn entweder der Symlink-Pfad oder sein Ziel übereinstimmt. Ein Symlink, der auf eine verweigerte Datei verweist, ist selbst verweigert. Zum Beispiel mit `Read(./project/**)` zulässig und `Read(~/.ssh/**)` verweigert, wird ein Symlink bei `./project/key`, der auf `~/.ssh/id_rsa` verweist, blockiert: Das Ziel schlägt die Allow-Regel fehl und passt zur Deny-Regel.

459 459 

460Zum Beispiel mit `Read(./project/**)` zulässig und `Read(~/.ssh/**)` verweigert, wird ein Symlink bei `./project/key`, der auf `~/.ssh/id_rsa` verweist, blockiert: Das Ziel schlägt die Allow-Regel fehl und passt zur Deny-Regel.460Auf macOS und Linux gilt eine Deny- oder Ask-Regel, die durch ein symverlinktes Verzeichnis mit einem `//`, `~/` oder `/` Muster geschrieben wurde, auch am echten Ort des Verzeichnisses. Zum Beispiel auf macOS, wo `/etc` zu `/private/etc` aufgelöst wird, blockiert `Read(//etc/**)` auch `/private/etc/hosts`. Vor v2.1.268 galt eine Deny- oder Ask-Regel, die durch ein symverlinktes Verzeichnis geschrieben wurde, nicht für einen Pfad, der durch seinen echten Ort gegeben wurde.

461 461 

462Wenn ein Werkzeug eine genehmigte Datei öffnet, [bestätigt Claude Code, dass der Pfad immer noch zum Ort aufgelöst wird, den die Berechtigungsprüfung genehmigt hat](/docs/de/errors#refusing-after-a-symlink-changed).462Wenn ein Werkzeug eine genehmigte Datei öffnet, [bestätigt Claude Code, dass der Pfad immer noch zum Ort aufgelöst wird, den die Berechtigungsprüfung genehmigt hat](/docs/de/errors#refusing-after-a-symlink-changed).

463 463 


490| `WebFetch` | Claude ruft ab, ohne Sie aufzufordern. Ändert nicht, welche Hosts sandboxed-Befehle erreichen können. | Claude Code entfernt das `WebFetch`-Werkzeug, daher kann Claude überhaupt nicht abrufen. Ändert nicht, welche Hosts sandboxed-Befehle erreichen können. |490| `WebFetch` | Claude ruft ab, ohne Sie aufzufordern. Ändert nicht, welche Hosts sandboxed-Befehle erreichen können. | Claude Code entfernt das `WebFetch`-Werkzeug, daher kann Claude überhaupt nicht abrufen. Ändert nicht, welche Hosts sandboxed-Befehle erreichen können. |

491| `WebFetch(domain:*)` | Claude ruft ab, ohne Sie aufzufordern, und sandboxed-Befehle können jeden Host erreichen. | Claude Code behält das Werkzeug und weigert jeden Abruf, und sandboxed-Befehle können keinen Host erreichen. |491| `WebFetch(domain:*)` | Claude ruft ab, ohne Sie aufzufordern, und sandboxed-Befehle können jeden Host erreichen. | Claude Code behält das Werkzeug und weigert jeden Abruf, und sandboxed-Befehle können keinen Host erreichen. |

492 492 

493Die beiden Formen unterscheiden sich auch bei Lesevorgängen von [Artefakten](/docs/de/artifacts), den Seiten, die das Artifact-Werkzeug auf claude.ai veröffentlicht. Eine bare `WebFetch` Deny- oder Ask-Regel gilt nicht für diese Lesevorgänge. Eine `domain:`-Regel, die `claude.ai` oder den `*.claudeusercontent.com` Content-Host abdeckt, wie `WebFetch(domain:claude.ai)` oder `WebFetch(domain:*)`, verweigert jeden Lesevorgang oder fordert davor auf. Eine [`Artifact`-Regel](/docs/de/artifacts#disable-artifacts) tut das gleiche.

494 

495Wenn eine Regel einen Lesevorgang blockiert, benennt die Ablehnung die Regel. Vor v2.1.268 blockierte eine bare `WebFetch` Deny-Regel jeden Artefakt-Lesevorgang, und eine bare Ask-Regel forderte vor jedem auf.

496 

493Um Claude frei abrufen zu lassen, während die Sandbox-Allowlist wie sie ist bleibt, verwenden Sie die bare Form. Diese `settings.json` tut das:497Um Claude frei abrufen zu lassen, während die Sandbox-Allowlist wie sie ist bleibt, verwenden Sie die bare Form. Diese `settings.json` tut das:

494 498 

495```json theme={null}499```json theme={null}

platforms.md +10 −10

Details

48 Arbeiten Sie, wenn Sie weg von Ihrem Terminal sind48 Arbeiten Sie, wenn Sie weg von Ihrem Terminal sind

49</h2>49</h2>

50 50 

51Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.51Claude Code bietet mehrere Möglichkeiten, um zu arbeiten, wenn Sie nicht an Ihrem Terminal sind. Sie unterscheiden sich darin, was die Arbeit auslöst, wo Claude ausgeführt wird und wie viel Setup Sie benötigen.

52 52 

53| | Trigger | Claude runs on | Setup | Best for |53| | Auslöser | Claude wird ausgeführt auf | Setup | Am besten geeignet für |

54| :------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |54| :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |

55| [Dispatch](/docs/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |55| [Dispatch](/docs/de/desktop#sessions-from-dispatch) | Senden Sie eine Aufgabe aus der Claude Mobile-App | Ihr Computer (Desktop) | [Koppeln Sie die Mobile-App mit Desktop](https://support.claude.com/en/articles/13947068) | Delegieren von Arbeit, wenn Sie weg sind, minimales Setup |

56| [Remote Control](/docs/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |56| [Remote Control](/docs/de/remote-control) | Steuern Sie eine laufende Sitzung von [claude.ai/code](https://claude.ai/code) oder der Claude Mobile-App | Ihr Computer (CLI oder VS Code) | Führen Sie `claude remote-control` aus | Steuerung laufender Arbeiten von einem anderen Gerät |

57| [Channels](/docs/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/docs/en/channels#quickstart) or [build your own](/docs/en/channels-reference) | Reacting to external events like CI failures or chat messages |57| [Channels](/docs/de/channels) | Pushen Sie Ereignisse aus einer Chat-App wie Telegram oder Discord oder Ihrem eigenen Server | Ihr Computer (CLI) | [Installieren Sie ein Channel-Plugin](/docs/de/channels#quickstart) oder [erstellen Sie Ihr eigenes](/docs/de/channels-reference) | Reagieren auf externe Ereignisse wie CI-Fehler oder Chat-Nachrichten |

58| [Slack](/docs/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/docs/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/docs/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |58| [Slack](/docs/de/slack) | Erwähnen Sie `@Claude` in einem Team-Kanal | Anthropic Cloud | [Installieren Sie die Slack-App](/docs/de/slack#setting-up-claude-code-in-slack) mit [Claude Code im Web](/docs/de/claude-code-on-the-web) aktiviert | PRs und Reviews aus Team-Chat |

59| [Self-hosted environments](/docs/en/self-hosted-environments) | Start a [cloud session](/docs/en/claude-code-on-the-web) and pick your organization's environment | Your organization's infrastructure | [Deploy runners](/docs/en/self-hosted-environments-quickstart), on Team and Enterprise plans | Cloud sessions that must run inside your network |59| [Self-hosted environments](/docs/de/self-hosted-environments) | Starten Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) und wählen Sie die Umgebung Ihrer Organisation | Infrastruktur Ihrer Organisation | [Stellen Sie Runner bereit](/docs/de/self-hosted-environments-quickstart), in Team- und Enterprise-Plänen | Cloud-Sitzungen, die in Ihrem Netzwerk ausgeführt werden müssen |

60| [Scheduled tasks](/docs/en/scheduled-tasks) | Set a schedule | [CLI](/docs/en/scheduled-tasks), [Desktop](/docs/en/desktop-scheduled-tasks), or [cloud](/docs/en/routines) | Pick a frequency | Recurring automation like daily reviews |60| [Scheduled tasks](/docs/de/scheduled-tasks) | Legen Sie einen Zeitplan fest | [CLI](/docs/de/scheduled-tasks), [Desktop](/docs/de/desktop-scheduled-tasks) oder [Cloud](/docs/de/routines) | Wählen Sie eine Häufigkeit | Wiederkehrende Automatisierung wie tägliche Reviews |

61 61 

62Wenn Sie nicht sicher sind, wo Sie anfangen sollen, [installieren Sie die CLI](/docs/de/quickstart) und führen Sie sie in einem Projektverzeichnis aus. Wenn Sie lieber kein Terminal verwenden möchten, bietet [Desktop](/docs/de/desktop-quickstart) Ihnen die gleiche Engine mit einer grafischen Benutzeroberfläche.62Wenn Sie nicht sicher sind, wo Sie anfangen sollen, [installieren Sie die CLI](/docs/de/quickstart) und führen Sie sie in einem Projektverzeichnis aus. Wenn Sie lieber kein Terminal verwenden möchten, bietet [Desktop](/docs/de/desktop-quickstart) Ihnen die gleiche Engine mit einer grafischen Benutzeroberfläche.

63 63 

Details

123 123 

124Die lokale Kopie der Abhängigkeit erfüllt den Abhängigkeitseintrag Ihres Plugins, auch wenn der Eintrag einen Marketplace benennt, sodass Sie die Abhängigkeit nicht von seinem Marketplace installieren müssen. Claude Code überprüft keine [Versionsbeschränkung](#declare-a-dependency-with-a-version-constraint) gegen eine lokale Kopie, daher muss die lokale `plugin.json` keine `version` haben. Vor v2.1.242 stimmte ein Abhängigkeitseintrag, der einen Marketplace benannte, nie mit der lokalen Kopie überein, und Claude Code deaktivierte Ihr Plugin beim Laden.124Die lokale Kopie der Abhängigkeit erfüllt den Abhängigkeitseintrag Ihres Plugins, auch wenn der Eintrag einen Marketplace benennt, sodass Sie die Abhängigkeit nicht von seinem Marketplace installieren müssen. Claude Code überprüft keine [Versionsbeschränkung](#declare-a-dependency-with-a-version-constraint) gegen eine lokale Kopie, daher muss die lokale `plugin.json` keine `version` haben. Vor v2.1.242 stimmte ein Abhängigkeitseintrag, der einen Marketplace benannte, nie mit der lokalen Kopie überein, und Claude Code deaktivierte Ihr Plugin beim Laden.

125 125 

126Wenn sich beide Plugins in einem übergeordneten Ordner befinden, können Sie diesen Ordner einmal an `--plugin-dir` übergeben. Wenn der Ordner selbst kein Plugin ist, lädt Claude Code jeden untergeordneten Ordner, der eine `.claude-plugin/plugin.json` hat. Erfordert Claude Code v2.1.265 oder später.

127 

126Wenn Sie die Abhängigkeit nicht von ihrem Marketplace installiert haben, wird Ihr Plugin nicht mehr geladen, wenn die lokale Kopie verschwindet:128Wenn Sie die Abhängigkeit nicht von ihrem Marketplace installiert haben, wird Ihr Plugin nicht mehr geladen, wenn die lokale Kopie verschwindet:

127 129 

128* **Sie haben die lokale Kopie deaktiviert**: Claude Code deaktiviert Ihr Plugin beim nächsten Plugin-Laden. Für einen Abhängigkeitseintrag, der einen Marketplace benennt, meldet Claude Code `Dependency "<name>@inline" is disabled — enable it or remove the dependency`; für einen Eintrag mit bloßem Namen meldet es die Abhängigkeit nach ihrem bloßen Namen. `<name>@inline` ist die Art, wie Claude Code jedes `--plugin-dir` und `--plugin-url` Plugin identifiziert.130* **Sie haben die lokale Kopie deaktiviert**: Claude Code deaktiviert Ihr Plugin beim nächsten Plugin-Laden. Für einen Abhängigkeitseintrag, der einen Marketplace benennt, meldet Claude Code `Dependency "<name>@inline" is disabled — enable it or remove the dependency`; für einen Eintrag mit bloßem Namen meldet es die Abhängigkeit nach ihrem bloßen Namen. `<name>@inline` ist die Art, wie Claude Code jedes `--plugin-dir` und `--plugin-url` Plugin identifiziert.

plugin-evals.md +705 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Plugins mit Evals testen

6 

7> Schreiben Sie Eval-Fälle für Ihr Claude Code Plugin, führen Sie sie mit claude plugin eval aus, bewerten Sie die Ergebnisse, vergleichen Sie sie mit einer Baseline ohne Plugin und gaten Sie CI basierend auf dem Score.

8 

9`claude plugin eval` führt Ihr [Plugin](/docs/de/plugins) gegen eine Suite von Testfällen aus und bewertet die Ergebnisse. Jeder Fall ist eine realistische Eingabeaufforderung plus ein oder mehrere Grader. Ein Grader ist eine Bestanden/Nicht-Bestanden-Prüfung auf das, was Claude produziert hat, wie z. B. ein Regex über die Antwort, ob ein bestimmtes Tool aufgerufen wurde, oder eine Rubrik, die ein zweites Modell über die Antwort beurteilt.

10 

11Sie müssen die Suite nicht von Hand schreiben; `claude plugin eval init` fragt Sie nach Ihrem Plugin, schlägt die Fälle und Grader vor, probiert sie aus und schreibt die Dateien, und Sie können Claude bitten, dasselbe aus einer bereits offenen Sitzung zu tun.

12 

13Verwenden Sie Evals, um zu messen, wie zuverlässig Ihr Plugin Claude zum richtigen Ergebnis lenkt, um Regressionen zu erkennen, wenn Sie das Plugin ändern oder ein neues Modell ausgeliefert wird, und um zu sehen, was das Plugin im Vergleich zu keinem Plugin beiträgt.

14 

15Diese Seite ist für Plugin- und Skill-Autoren, die ein funktionierendes Plugin haben und sein Verhalten testen möchten, sowie für Teams, die Plugin-Änderungen in CI gaten. Das Fallformat unterscheidet sich von der Datei `evals/evals.json`, die das [skill-creator Plugin](/docs/de/skills#run-evals-with-skill-creator) verwendet. Um ein Plugin zu erstellen, siehe [Plugins erstellen](/docs/de/plugins); um die Dateien eines Plugins auf Syntax- und Schemafehler zu überprüfen, anstatt sein Verhalten zu überprüfen, verwenden Sie [`claude plugin validate`](/docs/de/plugins-reference#plugin-validate).

16 

17<Note>

18 Jeder Eval-Durchlauf und jeder Judge-Grader ist ein echter Modellaufruf auf Ihrem Konto, der gegen die Nutzung Ihres Plans oder Ihre API-Rechnung angerechnet wird. Überprüfen Sie daher zunächst die [Anforderungen](#requirements). Erstellen Sie dann Ihre [erste Eval-Suite](#create-your-first-eval-suite), oder gehen Sie zu [Evals in CI ausführen](#run-evals-in-ci), wenn Sie bereits eine haben.

19</Note>

20 

21<h2 id="requirements">

22 Anforderungen

23</h2>

24 

25Um Plugin-Evals auszuführen, benötigen Sie:

26 

27* Claude Code v2.1.269 oder später. Führen Sie `claude --version` aus, um zu überprüfen, und `claude update`, um zu aktualisieren.

28* Ein Plugin-Verzeichnis mit einem `plugin.json` oder `.claude-plugin/plugin.json` Manifest, oder ein [Skills-Directory-Plugin](/docs/de/plugins-reference#skills-directory-plugins).

29* Die gleiche Authentifizierung und den gleichen Modell-Provider, den Ihre normalen Claude Code Sitzungen verwenden. Eval-Durchläufe, Judge-bewertete Grader und `claude plugin eval init` rufen das Modell mit Ihren Anmeldedaten auf, daher werden sie gegen Ihre Plan-Nutzungslimits oder Ihre API-Rechnung angerechnet. Wenn der Befehl Kosten meldet, ist die Zahl eine [Listenpreis-Schätzung](/docs/de/costs) dieser Aufrufe.

30 

31<h2 id="how-an-eval-run-works">

32 Wie ein Eval-Durchlauf funktioniert

33</h2>

34 

35Eine Eval-Suite befindet sich in einem Verzeichnis namens `evals/` innerhalb Ihres Plugins, angeordnet wie [Fälle schreiben und verfeinern](#write-and-refine-cases) zeigt. Jeder Fall ist sein eigenes Unterverzeichnis mit einer [Eingabeaufforderung](#set-run-limits-and-tools-in-prompt-md) und einem oder mehreren [Gradern](#grade-the-result). Die Eingabeaufforderung ist etwas, das eine Person, die Ihr Plugin verwendet, eingeben könnte, wie z. B. eine Anfrage, die einer seiner Skills verarbeiten sollte.

36 

37<h3 id="what-happens-in-a-run">

38 Was in einem Durchlauf passiert

39</h3>

40 

41Für jeden Durchlauf eines Falls startet Claude Code eine frische, [isolierte](#how-runs-are-isolated) [nicht-interaktive Sitzung](/docs/de/headless) mit nur Ihrem Plugin geladen, sendet die Eingabeaufforderung und lässt Claude arbeiten, bis es fertig ist oder das Limit des Falls für Züge oder Zeit erreicht. Jeder Grader überprüft dann die endgültige Antwort, das Transkript oder eine Datei, die Claude erstellt hat, und bestätigt oder lehnt ab.

42 

43<h3 id="how-a-case-is-scored">

44 Wie ein Fall bewertet wird

45</h3>

46 

47Ein Durchlauf eines nicht-deterministischen Agenten sagt Ihnen wenig, daher wird jeder Fall standardmäßig dreimal ausgeführt. Der Score eines Durchlaufs ist der Anteil seiner bestandenen Grader, gewichtet, wenn Sie Gewichte festlegen, und der Score des Falls ist der Durchschnitt über seine Durchläufe. Ein Fall wird bestanden, wenn sein Score den [`--threshold`](#command-options) erfüllt, standardmäßig 1,0. Bei Modellaufrufen führt eine Suite ungefähr Fälle × Durchläufe Agent-Durchläufe mit dem Plugin durch und ebenso viele für die [Baseline ohne Plugin](#the-no-plugin-baseline), plus drei kurze Judge-Aufrufe pro `llm` oder `baseline` Grader pro Durchlauf.

48 

49<h3 id="the-no-plugin-baseline">

50 Die Baseline ohne Plugin

51</h3>

52 

53Ein hoher Score allein sagt Ihnen nicht, dass das Plugin geholfen hat, da Claude auch ohne es gleich gut abschneiden könnte. Um die beiden zu trennen, werden die Durchläufe jedes Falls standardmäßig mit keinem Plugin geladen wiederholt, und Sie erhalten zwei Scores, `WITH` und `W/OUT`. Ihr Unterschied, `Δ`, ist das, was das Plugin beigetragen hat. Wenn ein Fall sowohl mit als auch ohne Plugin 1,0 bewertet wird, ist das Plugin nicht das, was ihn bestanden hat. Die beiden Sätze von Durchläufen werden als With-Arm und Without-Arm bezeichnet; [Vergleich mit einer Baseline ohne Plugin](#compare-against-a-no-plugin-baseline) behandelt, wie Grader über sie hinweg bewertet werden und wie man die Baseline ausschaltet.

54 

55<h2 id="create-your-first-eval-suite">

56 Erstellen Sie Ihre erste Eval-Suite

57</h2>

58 

59Diese Anleitung schreibt einen Fall für Ihr eigenes Plugin, führt ihn aus und liest das Ergebnis. Bevor Sie beginnen, stellen Sie sicher, dass Sie haben:

60 

61* Claude Code v2.1.269 oder später und die anderen [Anforderungen](#requirements)

62* Ein Terminal, das in Ihrem Plugin-Stammverzeichnis geöffnet ist, dem Verzeichnis, das `plugin.json` oder `.claude-plugin/plugin.json` enthält

63* Einen Skill im Plugin, den Sie testen möchten, und eine Anfrage, die ein Benutzer eingeben würde, die ihn auslösen sollte

64 

65<Steps>

66 <Step title="Erstellen Sie die Fälle">

67 Führen Sie vom Plugin-Stammverzeichnis aus aus:

68 

69 ```bash theme={null}

70 claude plugin eval init

71 ```

72 

73 Wenn Claude Code diesem Verzeichnis noch nicht vertraut, fragt es zunächst `Trust this plugin directory?`; antworten Sie mit `y`. Eine interaktive Claude Code Sitzung wird dann geöffnet. Claude liest Ihr Plugin und fragt Sie, wie ein gutes Ergebnis aussieht, schlägt Eingabeaufforderungen vor, die das Plugin auslösen sollten und nicht sollten, entwirft Grader für jeden, probiert sie einmal aus, um zu überprüfen, ob sie sich verhalten, und schreibt ein Fallverzeichnis pro Eingabeaufforderung unter `evals/`, jeweils nach seiner Eingabeaufforderung benannt. Wenn Claude Ihnen sagt, dass die Suite bereit ist, beenden Sie diese Sitzung mit `/exit` oder Ctrl+D, um zu Ihrer Shell zurückzukehren.

74 

75 Wenn Sie bereits eine Claude Code Sitzung am Plugin-Stammverzeichnis geöffnet haben, können Sie stattdessen Claude dort bitten, `claude plugin eval init` auszuführen. Claude führt den Befehl aus und stellt Ihnen dann die gleichen Fragen in dieser Konversation.

76 

77 Wenn Sie einen Fall lieber selbst schreiben möchten, um genau zu sehen, welche Dateien enthalten sind, folgen Sie [Schreiben Sie einen Fall von Hand](#write-a-case-manually) und kommen Sie hierher zurück, um ihn auszuführen.

78 </Step>

79 

80 <Step title="Führen Sie die Suite aus">

81 Zurück an Ihrer Shell im Plugin-Stammverzeichnis führen Sie jeden Fall unter `evals/` aus:

82 

83 ```bash theme={null}

84 claude plugin eval .

85 ```

86 

87 Sie haben diesem Verzeichnis bereits in Schritt 1 vertraut, daher startet der Durchlauf sofort. Wenn Sie den Fall stattdessen von Hand geschrieben haben, fragt der Durchlauf zunächst `Trust this plugin directory? [y/N]`; antworten Sie mit `y`. [Was ein Durchlauf zugreifen kann](#security) erklärt, wofür Sie zustimmen.

88 

89 Jeder Fall wird dreimal mit Ihrem Plugin und dreimal ohne es ausgeführt, daher ist ein Fall sechs Durchläufe. Eine Fortschrittszeile wird gedruckt, wenn jeder Durchlauf fertig ist, mit dem Score dieses Durchlaufs und dem Urteil jedes Graders.

90 </Step>

91 

92 <Step title="Lesen Sie die Zusammenfassung">

93 Wenn die Suite fertig ist, sehen Sie eine Zusammenfassungstabelle, gefolgt von dem Ort, an den der Bericht ging:

94 

95 ```text theme={null}

96 CASE WITH W/OUT Δ RUNS COST NOTES

97 first-case 1.00 0.33 +0.67 6 $0.41

98 

99 1 case(s) · mean Δ +0.67 · 74s · $0.41

100 Report: /Users/you/my-plugin/evals/results/2026-09-10T17-02-11-482Z/report.html

101 Published: https://claude.ai/... · keep local next time with --no-publish

102 ```

103 

104 `WITH` ist der Score des Falls mit Ihrem Plugin geladen, `W/OUT` ist der Score ohne es, und ein positives `Δ` bedeutet, dass das Plugin den Score erhöht hat. `COST` ist eine Listenpreis-Schätzung der Modellaufrufe, und `NOTES` zeigt die Erklärung des höchstgewichteten fehlgeschlagenen Graders oder den Fehler des Durchlaufs aus dem With-Arm.

105 </Step>

106 

107 <Step title="Öffnen Sie den Bericht und iterieren Sie">

108 Öffnen Sie die `Published:` URL oder den `Report:` Pfad, wenn keine `Published:` Zeile angezeigt wird, um das Urteil jedes Graders und die Erklärung für jeden Durchlauf zu sehen, und für `llm` Grader die Stimmen des Judges und den Auszug, den er bewertet hat. Die `Published:` Zeile wird nur angezeigt, wenn Ihr Konto [Berichte veröffentlichen](#html-report) kann.

109 

110 Der häufigste erste Fund ist ein `Δ` nahe Null mit dem fehlgeschlagenen `tool_used: Skill` Grader des Falls, was bedeutet, dass Claude Ihren Skill bei natürlicher Formulierung nicht auswählt. Passen Sie die [`description`](/docs/de/skills#frontmatter-reference) des Skills an, führen Sie `claude plugin eval .` erneut aus und vergleichen Sie.

111 

112 Um einen Fall kostengünstig zu iterieren, führen Sie einen einzelnen Arm einmal aus. Ein einzelner Durchlauf ist verrauscht, daher bestätigen Sie jede Änderung bei den standardmäßigen drei Durchläufen, bevor Sie ihr vertrauen. Mit einem Arm zeigt die Tabelle `SCORE` und `PASS%` Spalten statt `WITH`, `W/OUT` und `Δ`:

113 

114 ```bash theme={null}

115 claude plugin eval . --case <case-name> --runs 1 --ablation none

116 ```

117 

118 Ersetzen Sie `<case-name>` durch einen der Verzeichnisnamen unter `evals/`.

119 </Step>

120</Steps>

121 

122<h2 id="write-and-refine-cases">

123 Fälle schreiben und verfeinern

124</h2>

125 

126Die Fälle, die `claude plugin eval init` schreibt, sind einfache Dateien, die Sie öffnen, ändern und hinzufügen können. Ein Fall ist ein Verzeichnis unter dem Eval-Verzeichnis des Plugins, das eine `prompt.md`, eine `case.yaml` oder beide enthält. Um Fälle zu gruppieren, verschachteln Sie sie unter einem Verzeichnis, das selbst kein Fall ist; alles innerhalb eines Fallverzeichnisses, wie `graders/` und Fixture-Dateien, gehört zu diesem Fall.

127 

128Dies ist das Layout, das `claude plugin eval init` schreibt und das für neue Suites verwendet werden sollte. Die [Eval-Suite-Referenz](#eval-suite-reference) hat den vollständigen Baum, einschließlich Mocks und Ergebnisse:

129 

130```text theme={null}

131my-plugin/

132├── .claude-plugin/plugin.json

133├── skills/...

134└── evals/

135 ├── first-case/

136 │ ├── prompt.md # frontmatter: case fields; body: the prompt

137 │ ├── graders/

138 │ │ ├── criteria.md # frontmatter: type + options; body: rubric or pattern

139 │ │ └── skill-fired.md

140 │ └── case.yaml # optional: only for context.* fields

141 ├── ignores-unrelated-request/

142 │ └── ...

143 └── results/ # written by each run; add to .gitignore

144```

145 

146<h3 id="write-a-case-manually">

147 Schreiben Sie einen Fall von Hand

148</h3>

149 

150Der empfohlene Weg ist, Claude die Fälle mit `claude plugin eval init` schreiben zu lassen. Um stattdessen einen selbst zu schreiben, beginnen Sie mit einer leeren Vorlage. Der folgende Befehl schreibt einen Fall namens `first-case` mit einer Platzhalter-`prompt.md` und einem Platzhalter-Grader und führt nichts aus:

151 

152```bash theme={null}

153claude plugin eval init --bare first-case

154```

155 

156```text theme={null}

157evals/first-case/

158├── prompt.md # the prompt sent to Claude, plus run limits

159└── graders/

160 └── criteria.md # one grader: how to score the result

161```

162 

163In `prompt.md` schreiben Sie die Nachricht, die Claude in jedem Durchlauf erhält, und legen die Limits und Tools des Durchlaufs in seinem Frontmatter fest. Öffnen Sie `evals/first-case/prompt.md` und ersetzen Sie den Platzhalter-Body durch eine Anfrage, die einer Ihrer Skills verarbeiten sollte, formuliert wie ein Benutzer sie eingeben würde, anstatt den Skill zu benennen. Dieses Beispiel ist für einen Skill, der Commit-Nachrichten entwirft; verwenden Sie Ihre eigene Anfrage:

164 

165```markdown theme={null}

166---

167max_turns: 10

168allowed_tools: [Read, Glob, Grep, Skill]

169---

170 

171Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.

172```

173 

174Jeder Durchlauf startet in einem leeren Arbeitsverzeichnis, daher legen Sie alles, was die Aufgabe benötigt, in die Eingabeaufforderung selbst, oder [richten Sie den Arbeitsbereich zuerst ein](#add-setup-or-history-with-case-yaml). Die [vollständige Liste der Frontmatter-Felder](#prompt-md-fields) behandelt das Modell, Timeout, Tags und Umgebungsvariablen.

175 

176Jede Datei unter `graders/` ist eine Prüfung, die nach dem Durchlauf angewendet wird. Öffnen Sie `evals/first-case/graders/criteria.md` und ersetzen Sie den Platzhalter durch eine Rubrik für das Judge-Modell, geschrieben als konkrete PASS- und FAIL-Bedingungen:

177 

178```markdown theme={null}

179---

180type: llm

181---

182 

183PASS if <what a correct response contains>.

184FAIL if <what a wrong or missing response looks like>.

185```

186 

187Fügen Sie dann einen zweiten Grader hinzu, der überprüft, ob Ihr Skill das ist, was die Antwort produziert hat. Erstellen Sie `evals/first-case/graders/skill-fired.md`, ersetzen Sie `your-skill-name` durch den `name` aus Ihrem Skill's `SKILL.md`:

188 

189```markdown theme={null}

190---

191type: tool_used

192tool: Skill

193input_match: '"skill"\s*:\s*"(?:[\w-]+:)?your-skill-name"'

194---

195```

196 

197Dies wird bestanden, wenn Claude diesen Skill mindestens einmal während des Durchlaufs aufgerufen hat, einschließlich seiner namensraum-qualifizierten Form `plugin-name:skill-name`. [Grader-Typen](#grader-types) listet die anderen verfügbaren Prüfungen auf, wie z. B. das Abgleichen eines Regex oder das Bestätigen, dass eine Datei erstellt wurde.

198 

199Wenn beide Dateien gespeichert sind, führen Sie den Fall wie die [Schnellstart](#create-your-first-eval-suite) mit `claude plugin eval .` vom Plugin-Stammverzeichnis aus.

200 

201<h3 id="set-run-limits-and-tools-in-prompt-md">

202 Legen Sie Durchlauf-Limits und Tools in prompt.md fest

203</h3>

204 

205Legen Sie `max_turns`, `timeout_seconds`, `model`, `tags` und die `allowed_tools` eines Falls in der Frontmatter von `prompt.md` fest; die [prompt.md Frontmatter](#prompt-md-fields) Referenz listet jedes Feld und seinen Standard auf. Claude erhält den Body genau wie Sie ihn geschrieben haben. `@path` Erwähnungen darin werden nicht in Datei-Anhänge erweitert, daher müssen Sie, wenn Claude eine Datei lesen muss, ein Tool dafür in `allowed_tools` gewähren.

206 

207<h3 id="grade-the-result">

208 Wählen Sie Grader und gewichten Sie sie

209</h3>

210 

211Die Frontmatter eines Graders legt seinen `type` fest und optional ein `weight`, das ihn für mehr des Scores des Durchlaufs zählen lässt, und einen [`arm`](#compare-against-a-no-plugin-baseline), der steuert, wie er gegen die Baseline bewertet wird. Von den sechs Typen werden `regex`, `tool_used`, `tool_order` und `file_exists` aus dem Transkript und den Dateien berechnet und kosten nichts, während `llm` und `baseline` ein Judge-Modell aufrufen und zu den Kosten des Durchlaufs beitragen.

212 

213Es gibt keine benutzerdefinierten Code-Grader. [Grader-Typen](#grader-types) listet die Optionen und Bestanden-Bedingungen jedes Typs auf, und [was ein Grader ansehen kann](#what-a-grader-can-look-at) listet die Werte auf, die `target` und `focus` akzeptieren.

214 

215Der Judge für `llm` und `baseline` Grader ist standardmäßig ein kleines schnelles Modell. Übergeben Sie `--judge-model sonnet` oder eine vollständige Modell-ID, um ein stärkeres für nuancierte Rubriken zu verwenden.

216 

217<h4 id="choose-graders-that-give-a-stable-signal">

218 Wählen Sie Grader, die ein stabiles Signal geben

219</h4>

220 

221Ein `llm` Grader fragt ein Modell nach einem Urteil, daher kann seine Antwort zwischen Durchläufen unterschiedlich sein, und sie unterscheidet sich mehr, je länger der Text ist, den es lesen muss. Diese Gewohnheiten halten die Scores einer Suite stabil genug, um ihnen zu vertrauen:

222 

223* Für lange Ausgaben wie eine generierte Datei bewerten Sie sie mit einem `regex` Grader über den Inhalt der Datei, der die ganze Datei jedes Mal gleich überprüft. Behalten Sie `llm` Grader für kurze Ausgaben, mit Rubriken, die als konkrete PASS- und FAIL-Bedingungen geschrieben sind.

224* Geben Sie jedem Fall einen Grader auf das Ergebnis, wie die endgültige Nachricht oder eine produzierte Datei, und einen auf wie Claude dorthin kam, wie `tool_used` oder `tool_order`. Zusammen sagen sie Ihnen sowohl, ob die Antwort richtig war, als auch ob Ihr Plugin sie produziert hat.

225* Wenn ein `tool_used: Skill` Grader eines Falls bestanden wird, aber `Δ` negativ ist, verdächtigen Sie den Judge vor dem Plugin. Ein kleines Judge-Modell kann eine korrekte Antwort als falsch markieren, weil sie anders formatiert ist als das, was die Rubrik beschreibt. Führen Sie erneut mit `--judge-model sonnet` aus und straffen Sie die Rubrik, damit die Formatierung das Urteil nicht entscheidet.

226* Um zu überprüfen, dass ein Build oder Test innerhalb des Durchlaufs bestanden wurde, bitten Sie die Eingabeaufforderung Claude, ihn auszuführen und das Ergebnis in eine Datei zu schreiben, bewerten Sie diese Datei und bestätigen Sie, dass der Befehl mit einem `tool_used` Grader ausgeführt wurde, dessen `input_match` den Befehl benennt.

227 

228<h3 id="compare-against-a-no-plugin-baseline">

229 Bewerten Sie gegen die Baseline ohne Plugin

230</h3>

231 

232Wenn ein Plugin unter Test steht, wird jeder Fall standardmäßig in zwei Arms ausgeführt. Der With-Arm ist seine Durchläufe mit dem Plugin geladen, und der Without-Arm ist die gleiche Anzahl von Durchläufen ohne Plugin. Die Zusammenfassung und der Bericht zeigen beide Scores und `Δ`, den With-Arm Score minus den Without-Arm Score. Übergeben Sie `--ablation none`, um nur den With-Arm auszuführen, was die Kosten halbiert, wenn Sie den Vergleich nicht benötigen, wie z. B. beim Iterieren über Grader.

233 

234In einem Zwei-Arm-Durchlauf werden einige Grader mit `scored: false` gemeldet. Eine Prüfung wie „der Skill wurde aufgerufen" kann ohne das Plugin nie bestanden werden, daher würde das Zählen den Without-Arm gegen Null drücken und `Δ` aufblasen. Um die beiden Arms vergleichbar zu halten, schließt Claude Code solche Grader aus der Bewertung in beiden Arms aus und meldet sie im With-Arm nur als Bestanden/Nicht-Bestanden-Indikatoren. Das umfasst:

235 

236* Jeden `tool_used` Grader, dessen `tool` `Skill` ist

237* Jeden Grader, den Sie mit `arm: with-only` markieren

238 

239Wenn jeder Grader in einem Fall einer dieser ist, werden sie stattdessen normal bewertet, da es nichts mehr zu bewerten gäbe. Setzen Sie `arm: both` auf einen Grader, um ihn in beiden Arms unabhängig zu bewerten, was Sie für eine „darf den Skill nicht aufrufen" Prüfung mit `min: 0` und `max: 0` wollen. Unter `--ablation none` wird nichts ausgeschlossen, daher kann die gleiche Suite in den beiden Modi einen anderen absoluten Score produzieren.

240 

241<h3 id="use-a-different-eval-directory">

242 Verwenden Sie ein anderes Eval-Verzeichnis

243</h3>

244 

245Wenn `evals/` bereits von einem anderen Tool verwendet wird, behalten Sie die Suite in einem anderen Verzeichnis. Sie können dieses Verzeichnis in der `plugin.json` des Plugins aufzeichnen, damit jeder Durchlauf und jeder Mitarbeiter es verwendet, oder übergeben Sie es in der Befehlszeile für einen einzelnen Durchlauf:

246 

247* **In `plugin.json`**: fügen Sie `"experimental": { "evals": "quality/evals" }` hinzu.

248* **In der Befehlszeile**: übergeben Sie `--eval-dir quality/evals` an sowohl `claude plugin eval` als auch `claude plugin eval init`.

249 

250Wenn Sie beide setzen, wird das Verzeichnis der Flag verwendet. Geben Sie einen relativen Pfad aus einfachen Verzeichnisnamen wie `qa` oder `quality/evals` an; ein absoluter Pfad oder einer mit `..` wird abgelehnt: als Flag-Wert ist es ein Fehler, während ein nicht verwendbarer Manifest-Wert eine `Warning:` Zeile druckt und der Durchlauf stattdessen `evals/` verwendet. Fälle, Ergebnisse und `init` Ausgabe verschieben sich alle in dieses Verzeichnis.

251 

252<h2 id="set-up-fixtures-and-mocks">

253 Richten Sie Fixtures und Mocks ein

254</h2>

255 

256Ein Fall kann mehr als eine Eingabeaufforderung benötigen: Dateien oder ein Git-Repository im Arbeitsbereich, eine frühere Konversation zum Fortsetzen oder Antworten von den MCP-Servern, mit denen Ihr Plugin spricht. Jede davon wird neben dem Fall eingerichtet, damit Durchläufe wiederholbar bleiben.

257 

258<h3 id="add-setup-or-history-with-case-yaml">

259 Säen Sie den Arbeitsbereich oder die Konversation

260</h3>

261 

262Jeder Durchlauf startet in einem leeren Arbeitsbereich. Wenn ein Fall mehr als die Eingabeaufforderung benötigt, fügen Sie neben `prompt.md` eine `case.yaml` mit einem `context` Block hinzu.

263 

264Um zuerst Fixture-Dateien oder ein Git-Repository zu erstellen, schreiben Sie ein Bash-Skript im Fallverzeichnis und benennen Sie es in `context.scaffold_script`. Das Skript wird als Sie ausgeführt, außerhalb der Sandbox des Agenten, und nur wenn Sie `--scaffold` übergeben, daher übergeben Sie dieses Flag nur für Suites, die Sie oder Ihre Organisation geschrieben haben. Um eine frühere Konversation fortzusetzen, speichern Sie das Transkript als `.jsonl` Datei und benennen Sie es in `context.history_file`, und die Eingabeaufforderung des Falls wird zum nächsten Benutzer-Turn. Um Claude Fixture-Verzeichnisse im Fall während des Durchlaufs lesen zu lassen, listen Sie sie in `context.add_dirs` auf.

265 

266Eine `case.yaml` benötigt auch `schema_version: "1.1"` und `name`; die [case.yaml Felder](#case-yaml-fields) Referenz hat die vollständige Liste.

267 

268Diese `case.yaml` säet einen Arbeitsbereich aus einem Skript und lässt Claude Fixtures aus einem `resources/` Verzeichnis lesen:

269 

270```yaml theme={null}

271schema_version: "1.1"

272name: changelog-from-diff

273tags: [smoke]

274context:

275 scaffold_script: fixture.sh

276 add_dirs: [resources]

277```

278 

279<h3 id="mock-mcp-servers">

280 Mock MCP Server

281</h3>

282 

283Sie können ein Plugin evaluieren, dessen Skills MCP-Tools aufrufen, ohne den echten Service dahinter. Legen Sie eine Markdown-Datei pro Tool unter `evals/mocks/<server>/<tool>.md` für die ganze Suite oder unter einem eigenen `mocks/` Verzeichnis eines Falls für einen Fall, wobei `<server>` der Name des Servers in der [MCP-Konfiguration](/docs/de/plugins-reference#mcp-servers) Ihres Plugins ist.

284 

285Ein Durchlauf startet niemals die echten MCP-Server Ihres Plugins, es sei denn, Sie fragen danach. Claude Code registriert einen Stand-In unter jedem Server-Namen. Tools mit einer Mock-Datei antworten daraus und sind ohne einen `--allow-tools` Grant erlaubt, und ein Tool ohne Mock-Datei ist für Claude nicht verfügbar. Ein Server ohne Mocks überhaupt erscheint in der `mocked:` Fortschrittszeile des Falls als `plugin_<plugin>_<server>[not started: no mock]`.

286 

287Der Body der Datei ist das, was das Tool an Claude zurückgibt. Dieser Mock steht für ein `create_issue` Tool auf einem Server namens `tracker` ein, überprüft die Eingabe, die Claude sendet, und gibt den Titel zurück. Speichern Sie es als `evals/mocks/tracker/create_issue.md`:

288 

289```markdown theme={null}

290---

291expect:

292 title: string

293 priority: [low, medium, high]

294---

295 

296Created issue #4821: {{input.title}}

297```

298 

299Fügen Sie Felder aus der Eingabe des Aufrufs mit `{{input.<field>}}` ein, und den Inhalt einer Fixture-Datei neben dem Mock mit `{{file:fixtures/{input.<field>}.json}}`. Der `expect:` Block schützt die Eingabe. Wenn ein Aufruf ihn verletzt, bricht der Durchlauf mit Score 0 ab und zeichnet auf, warum, daher kann ein Fall bestätigen, was Ihr Plugin den Server zu tun bat. Setzen Sie `error: true`, um den Body stattdessen als Tool-Fehler zurückzugeben, oder `type: agent`, um ein kleines Modell als Server aus Anweisungen im Body antworten zu lassen. Die [Mock-Datei-Referenz](#mock-files) listet jeden Schlüssel und die `_server.md` und `_tools.json` Dateien auf.

300 

301Um die Aufrufe selbst zu bewerten, zeigen Sie einen Grader auf `target: mock_calls`.

302 

303Um stattdessen gegen die echten MCP-Server des Plugins auszuführen, übergeben Sie eines dieser Flags. Entweder Weg laufen diese Prozesse als Sie, außerhalb der Sandbox des Durchlaufs, und ihre Tools benötigen einen [`--allow-tools` Grant](#grant-tools):

304 

305* **`--allow-real-servers`**: starten Sie den echten Prozess für jeden Server, den Sie nicht gemockt haben, und beantworten Sie weiterhin gemockte Tools aus ihren Dateien

306* **`--mocks off`**: ignorieren Sie `mocks/` vollständig und starten Sie jeden Server, den das Plugin deklariert

307 

308<h4 id="replay-agent-mock-answers">

309 Wiedergeben Sie Agent-Mock-Antworten

310</h4>

311 

312Ein `type: agent` Mock antwortet mit einem Aufruf an das [`--judge-model`](#command-options), daher variiert seine Ausgabe zwischen Durchläufen und ändert sich, wenn Sie den Judge ändern. Wenn ein Durchlauf ohne Fehler oder Abbruch abgeschlossen wird, speichert Claude Code jede Antwort, die ein Agent-Mock gab, unter dem Ergebnisverzeichnis in `mock-recordings/`.

313 

314Öffnen Sie `ADOPT.txt` dort, um jede Aufzeichnung und das `.replay/<server>/` Verzeichnis zu sehen, um es neben den Mock zu kopieren, der es produziert hat. Nachdem Sie eine Aufzeichnung dort kopiert haben, beantworten spätere Durchläufe den identischen Aufruf daraus ohne Modellaufruf. Committen Sie `mocks/.replay/` mit dem Rest von `mocks/`, damit CI-Durchläufe wiederholbar sind.

315 

316<h2 id="run-evals">

317 Führen Sie Evals aus

318</h2>

319 

320Sobald eine Suite existiert, führt `claude plugin eval` sie aus. Sie wählen, welches Plugin und welche Fälle mit dem Zielargument ausgeführt werden, gewähren alle Tools, die die Fälle über die schreibgeschützte Menge hinaus benötigen, mit `--allow-tools`, und steuern Durchlauf-Anzahl, Modelle, Kosten und Ausgabe mit den anderen Optionen.

321 

322<h3 id="choose-what-to-evaluate">

323 Wählen Sie aus, was zu evaluieren ist

324</h3>

325 

326Meistens führen Sie `claude plugin eval .` vom Plugin-Stammverzeichnis aus, was jeden Fall in der Suite mit dem Plugin ausführt, in dem Sie stehen, geladen. Um eine einzelne `prompt.md` oder `case.yaml` Datei auszuführen oder um ein Plugin zu evaluieren, das Sie installiert haben, anstatt eines, das Sie entwickeln, übergeben Sie ein anderes Ziel:

327 

328| Ziel | Was wird ausgeführt |

329| :----------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

330| Ein Plugin-Stammverzeichnis, wie `.` | Jeder Fall unter seinem Eval-Verzeichnis, mit diesem Plugin geladen |

331| Eine einzelne `prompt.md` oder `case.yaml` Datei | Dieser Fall, mit seinem einschließenden Plugin geladen |

332| Ein installiertes Plugin nach Name, `name` oder `name@marketplace` | Die Fälle im Eval-Verzeichnis der installierten Kopie, mit der installierten Kopie geladen. Ergebnisse werden unter `./evals/results/` in Ihrem aktuellen Verzeichnis geschrieben, oder `./<dir>/results/` mit `--eval-dir` |

333| `name@skills-dir` | Das gleiche, für ein [Skills-Directory-Plugin](/docs/de/plugins-reference#skills-directory-plugins) |

334| Weggelassen | Das aktuelle Verzeichnis als Pfad |

335 

336Fügen Sie `--case <glob>` hinzu, um nach Fallname zu filtern, und `--tag <tag>`, um Fälle mit beliebigen der angegebenen Tags zu behalten. Legen Sie das Ziel vor `--tag`, `--allow-tools` und `--json`. Die ersten beiden nehmen eine Liste und `--json` nimmt einen optionalen Pfad, daher liest jede von ihnen ein Ziel, das folgt, als ihren eigenen Wert.

337 

338<h3 id="grant-tools">

339 Gewähren Sie Tools

340</h3>

341 

342Durchläufe halten niemals an, um um Erlaubnis zu fragen. Eingebaute Tools, die einen Grant benötigen, den Sie nicht gegeben haben, wie `Bash`, `Write`, `Edit`, `WebFetch` und `WebSearch`, werden aus der Sitzung entfernt, daher kann Claude sie überhaupt nicht aufrufen. Die Allowlist ist die schreibgeschützten Tools, die der Fall in `allowed_tools` auflistet, aus `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite` und die Task-Tools `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop` und `TaskOutput`, plus alles, was Sie mit `--allow-tools` gewähren, was auf jeden Fall in dem Durchlauf angewendet wird. Um Fällen die Verwendung von `Bash`, `Write`, `Edit`, `WebFetch` oder `WebSearch` zu ermöglichen, gewähren Sie sie selbst:

343 

344```bash theme={null}

345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

346```

347 

348Wenn ein Fall ein Tool fragte, das Sie nicht gewährt haben, listet der Durchlauf es auf stderr als `not granted` auf. Tools auf einem [gemockten](#mock-mcp-servers) MCP-Server benötigen keinen Grant. Tools auf einem echten Plugin-MCP-Server benötigen sowohl den Server gestartet, mit `--allow-real-servers` oder `--mocks off`, als auch einen Grant nach Name, wie `--allow-tools "mcp__plugin_my-plugin_github__*"`; Plugin-MCP-Tools werden `mcp__plugin_<plugin>_<server>__<tool>` benannt.

349 

350Wenn Sie `Bash` in irgendeiner Form gewähren, wird jeder Befehl unter Claude Code's [OS-Level Sandbox](/docs/de/sandboxing) ausgeführt. Schreibvorgänge sind auf den Arbeitsbereich des Durchlaufs beschränkt, Ihr Home-Verzeichnis und die Claude Code Konfiguration sind nicht lesbar, und der Netzwerkzugriff ist auf Domains beschränkt, die Sie mit `--allow-tools "WebFetch(domain:example.com)"` gewähren. Wenn Sie Bash oder PowerShell auf einer Maschine ohne Sandbox-Backend gewähren, weigert sich Claude Code jeden Durchlauf, anstatt ihn uneingeschränkt auszuführen, und der Fall zeigt einen Durchlauf-Fehler und normalerweise Score 0. Natives Windows hat kein Backend, daher führen Sie Shell-gewährende Suites unter WSL2 aus; unter Linux installieren Sie zuerst `bubblewrap` und `socat`. Siehe die [Sandboxing-Voraussetzungen](/docs/de/sandboxing).

351 

352<h3 id="command-options">

353 Befehlsoptionen

354</h3>

355 

356Diese Tabelle behandelt die Optionen für Durchlauf-Anzahl, Modelle, Bewertung, Kosten, Tool-Grants, Mocks und Ausgabe. Führen Sie `claude plugin eval --help` für die vollständige Liste aus, die auch `--case`, `--tag`, `--eval-dir`, `--no-scaffold`, `--report` und `--verbose` umfasst.

357 

358| Option | Standard | Effekt |

359| :------------------------- | :--------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

360| `--runs <n>` | Jedes Falls `runs`, sonst 3 | Durchläufe pro Fall pro Arm |

361| `-j`, `--concurrency <n>` | `1` | Führen Sie bis zu dieser vielen Agent-Durchläufen gleichzeitig aus, von 1 bis 8. Sie teilen sich das Rate-Limit Ihres Kontos, daher verkürzt dies die Wall-Clock-Zeit, anstatt den Durchsatz über dieses Limit hinaus zu erhöhen. Ergebnisse behalten Fallreihenfolge |

362| `--model <model>` | Jedes Falls `model`, sonst `ANTHROPIC_MODEL`, wenn gesetzt, sonst Claude Code's Standard | Modell für den Agent unter Test. Heften Sie es in CI fest, damit ein Modell-Rollout nicht mit einer Plugin-Regression verwechselt wird |

363| `--judge-model <model>` | Ein kleines schnelles Modell | Modell für `llm` und `baseline` Grader |

364| `--ablation <mode>` | `with-without`, wenn ein Plugin aufgelöst wird, sonst `none` | Ob auch jeden Fall ohne das Plugin auszuführen, um zu messen, was es hinzufügt. `none` führt einen Arm aus; `with-without` fügt die Baseline ohne Plugin hinzu |

365| `--threshold <0..1>` | `1.0` | Ein Fall wird bestanden, wenn sein With-Arm Score mindestens dies ist. Jeder Fall darunter lässt den Befehl mit 1 beenden |

366| `--max-cost-usd <usd>` | Keine Obergrenze | Eine Obergrenze auf die Listenpreis-Kostenschätzung des Durchlaufs, nicht auf die Plan-Nutzung. Überprüft, bevor jeder Durchlauf startet. Einmal ausgegeben, startet nichts Weiteres; Durchläufe, die bereits in Flug sind, beenden sich, daher kann die Ausgabe die Obergrenze um diese Durchläufe überschreiten. Wenn ein Durchlauf nicht gestartet wird, beendet sich der Befehl mit 2 mit Teilergebnissen |

367| `--allow-tools <tools...>` | Keine | Gewähren Sie Tools über die schreibgeschützte Menge. Siehe [Gewähren Sie Tools](#grant-tools) |

368| `--scaffold` | Aus | Führen Sie das [`scaffold_script`](#add-setup-or-history-with-case-yaml) jedes Falls aus |

369| `--trust-plugin` | Aus | Überspringen Sie die erste Vertrauens-Eingabeaufforderung für ein Plugin, dessen Code und Suite Sie selbst ausführen würden. Übergeben Sie es in CI, damit der Job niemals durch die Eingabeaufforderung verweigert oder daran warten gelassen wird. Siehe [Was ein Durchlauf zugreifen kann](#security) |

370| `--mocks <mode>` | `record` | `record` beantwortet MCP-Tool-Aufrufe aus [Mocks](#mock-mcp-servers), startet nicht die echten Server des Plugins und speichert Agent-Mock-Antworten zur Wiedergabe. `off` ignoriert Mocks und startet die echten MCP-Server des Plugins |

371| `--allow-real-servers` | Aus | Mit `--mocks record`, starten Sie auch die echten MCP-Server des Plugins für Server, die kein Mock haben |

372| `--json [path]` | Aus | Drucken Sie das [Ergebnis-Dokument](#json-result) auf stdout, oder schreiben Sie es in einen Pfad, der auf `.json` endet. Der Durchlauf ist ruhig: keine Fortschrittszeilen oder Zusammenfassungstabelle |

373| `--output-dir <dir>` | `<eval dir>/results/<timestamp>/` | Wo `aggregate-result.json` und `report.html` hingehen |

374| `--no-publish` | | Behalten Sie den HTML-Bericht lokal. Siehe [HTML-Bericht](#html-report) |

375| `--publish-report` | | Veröffentlichen Sie den Bericht auch dort, wo er standardmäßig lokal bleiben würde, wie ein Durchlauf, den eine Claude Code Sitzung gestartet hat |

376| `--keep-temp` | Aus | Behalten Sie das Sandbox-Verzeichnis jedes Durchlaufs und drucken Sie seinen Pfad zum Debuggen, was Claude produziert hat |

377 

378<h3 id="run-evals-in-ci">

379 Führen Sie Evals in CI aus

380</h3>

381 

382Führen Sie in Ihrem CI-Job die Suite mit `--json` aus, um das Ergebnis zum Archivieren zu schreiben, und lassen Sie den Build beim Exit-Code fehlschlagen. Übergeben Sie `--trust-plugin`, damit der Job niemals bei der [ersten Vertrauens-Eingabeaufforderung](#security) wartet, heften Sie beide Modelle fest, damit Scores über die Zeit vergleichbar sind, behalten Sie den Bericht lokal und setzen Sie eine Kostendecke als Obergrenze:

383 

384```bash theme={null}

385claude plugin eval . \

386 --trust-plugin \

387 --json results.json \

388 --threshold 0.8 \

389 --model claude-sonnet-5 \

390 --judge-model claude-haiku-4-5 \

391 --no-publish \

392 --max-cost-usd 20

393```

394 

395Der Exit-Code des Jobs sagt Ihnen, was passiert ist:

396 

397| Exit-Code | Bedeutung |

398| :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

399| 0 | Jeder Fall hat bei oder über `--threshold` bewertet und jede Falldatei geladen |

400| 1 | Ein Fall hat unter dem Threshold bewertet, eine Falldatei konnte nicht geladen werden, keine Fälle wurden gefunden, ein Durchlauf konnte nicht gestartet werden, das Plugin-Verzeichnis ist nicht vertraut und `--trust-plugin` wurde nicht übergeben, oder eine Option war ungültig |

401| 2 | Teilweiser Durchlauf: die `--max-cost-usd` Obergrenze wurde erreicht, oder Ihre Anmeldedaten wurden vor oder beim ersten Durchlauf abgelehnt. `results.json` wird immer noch mit `partial: true` und dem Grund geschrieben |

402| 130 | Unterbrochen. Teilergebnisse werden geschrieben |

403| 143 | Beendet, wie durch ein CI-Timeout |

404 

405Probleme beim Schreiben oder Veröffentlichen des HTML-Berichts ändern niemals den Exit-Code. Um zu sehen, warum ein Fall niedrig bewertet wurde, führen Sie ihn lokal ohne `--json` aus, damit die Pro-Durchlauf-Fortschritts- und Grader-Zeilen drucken.

406 

407Ein CI-Runner benötigt eine Claude Code Installation und [Anmeldedaten in der Umgebung](/docs/de/authentication) wie `ANTHROPIC_API_KEY`. Ohne `--trust-plugin` wird ein Job, dessen Checkout-Verzeichnis Claude Code noch nicht vertraut, mit Exit 1 verweigert, wenn es kein Terminal hat, oder wartet bei der Eingabeaufforderung, wenn der Runner eines zuweist. `claude plugin eval init` benötigt ein Terminal, um Ihnen seine Fragen zu stellen; führen Sie in CI `claude plugin eval init --bare <name>` aus, um die leere Vorlage zu erhalten.

408 

409Um Kosten vorhersehbar zu halten, geben Sie schnelle Every-Change-Suites nur Grader, die keinen Judge aufrufen, verwenden Sie `--ablation none`, wo Sie `Δ` nicht benötigen, und lassen Sie `partial: true` Dokumente und Durchläufe mit `skippedPaidGraders` aus jedem Trend, den Sie kartieren.

410 

411<h2 id="read-the-results">

412 Lesen Sie die Ergebnisse

413</h2>

414 

415Jeder Durchlauf mit mindestens einem Fall schreibt ein `results/<timestamp>/` Verzeichnis innerhalb des Eval-Verzeichnisses, das `aggregate-result.json` und `report.html` enthält. Für ein Pfad-Ziel, das unter dem Plugin liegt; für ein Plugin, das Sie benannt haben, liegt es unter Ihrem aktuellen Verzeichnis, wie die [Ziel-Tabelle](#choose-what-to-evaluate) zeigt. Die Zusammenfassungstabelle, das JSON und der Bericht rendern alle die gleichen Ergebnisdaten.

416 

417<h3 id="html-report">

418 HTML-Bericht

419</h3>

420 

421`report.html` ist eine einzelne in sich geschlossene Datei, die keine externen Anfragen stellt, daher können Sie sie an einen CI-Job anhängen oder von der Festplatte öffnen. Dieses Beispiel ist die Oberseite eines Berichts für einen Drei-Fall-Suite-Durchlauf mit `--threshold 0.8`; die angezeigten Kosten sind eine Listenpreis-Schätzung und variieren je nach Modell und Anzahl der Fälle:

422 

423<img src="https://mintcdn.com/claude-code/qq7LHDi_F0aeFHgk/images/plugin-eval-report.png?fit=max&auto=format&n=qq7LHDi_F0aeFHgk&q=85&s=106eb6e6a70a6565f891ea3a4564f87d" alt="Oberseite eines Eval-Berichts: eine Urteilszeile mit dem Text „Plugin-Effekt: +33,3 Punkte gegenüber Baseline, 2 verbessert, 1 gleich, 0 von 3 Fällen verschlechtert&#x22;, fünf Zusammenfassungs-Kacheln für Suite-Score, Ablations-Delta, Baseline-Score, Fälle, die den Schwellenwert erfüllen, und perfekte Durchläufe, dann der erste Fall mit seinem Delta, Score-Balken und einem Durchlauf, dessen zwei Grader beide „bestanden&#x22; anzeigen" width="1360" height="1032" data-path="images/plugin-eval-report.png" />

424 

425Lesen Sie es von oben nach unten:

426 

427* **Die Urteilszeile und Kacheln** beantworten die Frage, ob das Plugin über die gesamte Suite hinweg geholfen hat. Suite-Score ist der Durchschnitt der Pro-Fall-Scores mit Plugin, Ablations-Δ ist, wie weit dieser über oder unter dem Baseline-Score liegt, und Fälle zählt, wie viele den Schwellenwert erfüllt haben. Perfekte Durchläufe ist der Anteil der Mit-Plugin-Durchläufe, bei denen jeder Grader bestanden hat.

428* **Jede Fall-Karte** zeigt das `Δ` des Falls und den Score mit Plugin, mit einem Häkchen auf dem Balken beim Schwellenwert. Ein Fall, dessen `Δ` negativ ist, erhält eine rote linke Kante, daher heben sich Verschlechterungen beim Scrollen ab.

429* **Innerhalb eines Falls** kommen die Mit-Plugin-Durchläufe zuerst und die Baseline-Durchläufe danach. Jeder Durchlauf listet seine Grader mit einem Bestanden- oder Nicht-Bestanden-Chip auf. Ein fehlgeschlagener Grader ist bereits erweitert mit seiner Erklärung, und ein `llm` Grader zeigt auch die Stimmen des Richters und die Beweise, die ihm gezeigt wurden, was ist, wo Sie herausfinden, warum ein Durchlauf niedrig bewertet wurde. Grader, die nicht zur Bewertung zählen, wie `tool_used: Skill`, tragen ein `plugin-fired indicator` Badge.

430* **Eingabeaufforderung und Grader**, unter den Durchläufen, zeigen die Eingabeaufforderung des Falls und die Rubrik oder das Muster jedes Graders, damit jemand, der den Bericht ohne die Suite liest, sehen kann, was gefragt wurde und was als gut zählte.

431 

432Wenn Sie mit einem claude.ai Abonnement angemeldet sind und [Artifacts](/docs/de/artifacts) für Ihr Konto verfügbar sind, veröffentlicht Claude Code den Bericht auch als privates Artifact und druckt `Published: <url>`. Übergeben Sie `--no-publish`, um ihn lokal zu behalten. Wenn keine `Published:` Zeile angezeigt wird, wie bei API-Schlüssel-Authentifizierung, ist die lokale Datei der Bericht.

433 

434Ein Durchlauf, den eine Claude Code Sitzung gestartet hat, wie wenn Sie Claude bitten, die Suite für Sie auszuführen, bleibt auch lokal, und seine `Report:` Zeile sagt `kept local`. Fügen Sie `--publish-report` zu diesem Befehl hinzu, um ihn zu veröffentlichen.

435 

436<h3 id="json-result">

437 JSON-Ergebnis

438</h3>

439 

440`aggregate-result.json` und `--json` Ausgabe ist ein versioniertes Dokument mit `schemaVersion: 1` für CI-Skripte zum Parsen. Feldnamen sind camelCase und neue Felder werden hinzugefügt, ohne bestehende umzubenennen, daher schreiben Sie Ihr Skript, um Felder zu ignorieren, die es nicht erkennt.

441 

442Dies sind die Felder, die ein Gating-Skript normalerweise liest. Das Dokument trägt auch die Suite-Konfiguration, jede Grader-Definition und Pro-Durchlauf-Grader-Ergebnisse mit Erklärungen und Beweisen:

443 

444| Feld | Bedeutung |

445| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

446| `partial`, `partialReason` | `true` mit `cost_ceiling`, `interrupted` oder `auth_failed`, wenn die Suite nicht fertig wurde. Lassen Sie Teilergebnisse aus Trend-Diagrammen |

447| `aggregates.overallScore` | Mittlerer Fall-Score über die Suite |

448| `aggregates.casesPassed`, `aggregates.casesTotal` | Fälle bei oder über `--threshold` und die Gesamtzahl |

449| `aggregates.meanDelta` | Mittleres `Δ` über Fälle, unter dem Zwei-Arm-Modus |

450| `cases[].name` | Fallname |

451| `cases[].aggregates.score` | Mittlerer With-Arm-Durchlauf-Score für den Fall |

452| `cases[].aggregates.delta` | With-Arm Score minus Without-Arm Score. Weggelassen, wenn die Arms nicht vergleichbar sind |

453| `cases[].arms.with[].error` | `null`, oder warum ein Durchlauf abnormal endete, wie `timed out after 300s`. Ein Durchlauf, der gestartet, aber schlecht endete, wird immer noch auf das bewertet, was er produziert, daher impliziert ein nicht-null Fehler nicht Score 0 |

454| `cases[].arms.with[].aborted` | Vorhanden, wenn ein [Mock](#mock-mcp-servers)'s `expect:` oder `abort_when` den Durchlauf stoppte, mit `server`, `tool` und `reason`. Der Durchlauf bewertet 0 und `error` bleibt `null` |

455| `cases[].arms.with[].skippedPaidGraders` | `true`, wenn die Kostendecke dieses Durchlaufs Judge-Grader übersprungen hat, daher ist sein Score nicht vergleichbar |

456| `costUsd`, `durationSeconds`, `claudeVersion` | Geschätzte Kosten zum Listenpreis einschließlich Judge-Aufrufe, Wall-Clock-Sekunden und die Claude Code Version, die die Suite ausgeführt hat |

457 

458<h2 id="security">

459 Was ein Durchlauf zugreifen kann

460</h2>

461 

462`claude plugin eval` lädt die Skills und Hooks des Ziel-Plugins und führt seine Eval-Suite auf Ihrem Computer als Sie aus. Es auf ein Plugin zu zeigen ist die gleiche Vertrauensentscheidung wie `claude --plugin-dir`, daher evaluieren Sie nur Plugins, denen Sie vertrauen. Die in diesem Abschnitt beschriebene Isolation begrenzt, was der Agent unter Test erreichen kann; es ist keine Grenze gegen den Code des Plugins selbst, und eine Suite, die bestanden wird, sagt nichts darüber aus, ob das Plugin sicher ist.

463 

464<h3 id="trust-the-plugin-directory">

465 Vertrauen Sie dem Plugin-Verzeichnis

466</h3>

467 

468Das erste Mal, wenn Sie `claude plugin eval` gegen ein Verzeichnis ausführen, fragt Claude Code `Trust this plugin directory?`, bevor es etwas daraus lädt, es sei denn, Sie haben die Vertrauens-Eingabeaufforderung dort bereits in einer interaktiven `claude` Sitzung akzeptiert. Innerhalb eines Git-Repositorys vertraut das Beantworten mit Ja dem ganzen Repository, auch für interaktive Sitzungen. Wenn stdin oder stdout kein Terminal ist, oder unter `--json`, kann der Durchlauf nicht fragen und wird mit Exit 1 verweigert; übergeben Sie `--trust-plugin`, um das Vertrauen selbst zu bestätigen, nur für ein Plugin, das Sie auf Ihrem eigenen Computer ausführen würden. Ein Ziel, das Sie benennen, anstatt als Pfad zu geben, bedeutet ein installiertes Plugin oder ein Skills-Directory-Plugin, überspringt die Eingabeaufforderung.

469 

470Einige Teile des Plugins und der Suite werden nur ausgeführt, wenn Sie ihr Flag für diesen Durchlauf übergeben: ein Falls [`scaffold_script`](#add-setup-or-history-with-case-yaml) mit `--scaffold`, [Tools über die schreibgeschützte Menge](#grant-tools) mit `--allow-tools` und die [echten MCP-Server](#mock-mcp-servers) des Plugins mit `--allow-real-servers` oder `--mocks off`. Ein Falls `allowed_tools` und ein Skill's eigenes `allowed-tools` Frontmatter können keines von ihnen erweitern. Wenn das Plugin Hooks ausliefert, die Sie nicht geschrieben haben, oder Sie seine echten MCP-Server starten, behandeln Sie seine Scores als beratend, es sei denn, Sie führen es in einer isolierten Umgebung wie einem Container oder CI-Runner aus, da Hooks und Server außerhalb der Sandbox des Agenten laufen und die Dateien berühren könnten, die die Grader lesen.

471 

472<h3 id="how-runs-are-isolated">

473 Wie Durchläufe isoliert sind

474</h3>

475 

476Jeder Durchlauf bekommt ein Wegwerf-Home-Verzeichnis, Arbeitsverzeichnis und Claude Code Konfiguration, und der Agent unter Test wird dort als `claude -p` Kind-Prozess mit nur Ihrem Plugin geladen ausgeführt. Behalten Sie diese Konsequenzen im Auge, wenn Sie Fälle schreiben:

477 

478* **Nichts Persönliches oder Projekt-Ebene lädt.** Ihre Benutzereinstellungen, Hooks, `CLAUDE.md` Dateien, MCP-Server, andere installierte Plugins, Memory und Skills sind abwesend, und kein Projekt-Scoped `.claude/` oder `.mcp.json` über der Sandbox wird gelesen. Die meiste Ihrer Shell-Umgebung wird auch zurückgehalten; nur eine [Allowlist](#prompt-md-fields) und `EVAL_*` Variablen erreichen den Durchlauf. Wenn das Plugin Setup benötigt, versenden Sie es im Plugin, erstellen Sie es in einem `scaffold_script` oder übergeben Sie `EVAL_*` Variablen.

479* **Verwaltete Richtlinie kann einen Durchlauf immer noch einschränken.** Einschränkungen in [verwalteten Einstellungen](/docs/de/managed-settings), die ein Administrator auf der Maschine bereitgestellt hat, gelten innerhalb eines Durchlaufs, daher können Ergebnisse auf einer verwalteten Maschine von einer nicht verwalteten durch diese Richtlinie unterschiedlich sein.

480* **Das Artifact-Tool ist aus.** Ein Skill, der ein [Artifact](/docs/de/artifacts) veröffentlicht, kann nur auf das bewertet werden, was er vor diesem Schritt produziert.

481* **Die Falldefinitionen sind vor dem Agenten verborgen.** Ein Durchlauf kann das Eval-Verzeichnis nicht lesen, daher kann Claude die Eingabeaufforderung des Falls, seine Grader oder Nachbar-Fälle nicht sehen.

482* **Keine Netzwerk-Sandbox außerhalb von Shell-Befehlen.** Shell-Befehle, die Sie gewähren, werden unter den Sandbox-Regeln des Netzwerks ausgeführt. Ein `WebFetch(domain:…)` Grant erreicht diese Domain direkt, und die eigenen Hooks des Plugins und alle echten MCP-Server, die Sie starten, können jeden Host erreichen.

483 

484<h2 id="eval-suite-reference">

485 Eval-Suite-Referenz

486</h2>

487 

488Alles, was eine Eval-Suite enthalten kann, befindet sich unter dem Eval-Verzeichnis des Plugins, `evals/`, es sei denn, Sie [haben ein anderes konfiguriert](#use-a-different-eval-directory). Dieser Baum zeigt jede Datei, die `claude plugin eval` dort liest oder schreibt; nur `prompt.md` oder `case.yaml` ist erforderlich, damit ein Fall existiert:

489 

490```text theme={null}

491evals/

492├── <case>/ # one directory per case; nest under a non-case directory to group

493│ ├── prompt.md # frontmatter: case and run fields; body: the prompt

494│ ├── case.yaml # optional: context.* fields, or the whole case in one file

495│ ├── graders/

496│ │ └── <name>.md # one grader per file; frontmatter: type and options; body: rubric

497│ ├── mocks/ # optional: mocks for this case only, same layout as below

498│ └── <fixtures, scripts, transcripts referenced by case.yaml>

499├── mocks/ # optional: suite-wide MCP mocks

500│ ├── <server>/

501│ │ ├── <tool>.md # one mocked tool; body: the tool result

502│ │ ├── _server.md # optional: one agent that answers several tools

503│ │ ├── _tools.json # optional: saved tools/list response for real descriptions and schemas

504│ │ └── fixtures/ # files inserted with {{file:fixtures/...}}

505│ └── .replay/<server>/ # adopted agent-mock recordings, answered without a model call

506└── results/<timestamp>/ # written by each run; add results/ to .gitignore

507 ├── aggregate-result.json

508 ├── report.html

509 └── mock-recordings/ # agent-mock answers from clean runs, with ADOPT.txt

510```

511 

512<h3 id="prompt-md-fields">

513 prompt.md Frontmatter

514</h3>

515 

516`prompt.md` Frontmatter akzeptiert diese Felder. Ein unbekannter Schlüssel ist ein Fehler:

517 

518| Feld | Standard | Zweck |

519| :--------------------- | :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

520| `schema_version` | `"1.1"`, für Sie gesetzt | Fallformat-Version. Fälle, die als `prompt.md` geschrieben sind, erhalten sie automatisch, daher setzen Sie sie selten |

521| `name` | Der Verzeichnisname | Fallname. `--case` Globs passen ihn an und der Bericht schlüsselt ihn auf |

522| `description` | | Für Menschen. Nicht zur Laufzeit verwendet |

523| `tags` | `[]` | Labels für `--tag` Filterung. Ein Fall wird ausgeführt, wenn einer seiner Tags passt |

524| `plugins` | Das nächste einschließende Plugin | Plugin-Verzeichnisse unter Test, relativ zum Fallverzeichnis. Setzen Sie `plugins: ["../.."]`, wenn die Auto-Erkennung Ihr Plugin nicht findet; siehe [Das Plugin wurde nicht geladen](#the-baseline-arm-shows-no-plugin-or-delta-is-zero) |

525| `runs` | `3` | Durchläufe pro Arm, 1 bis 50. `--runs` überschreibt es |

526| `expected_outcome` | | Für Menschen. Nicht zur Laufzeit verwendet |

527| `model` | Der Standard der Kind-Sitzung | Modell für den Agent unter Test. `--model` überschreibt es |

528| `max_turns` | `10` | Zug-Obergrenze, bis zu 200. Sie zu treffen wird als Durchlauf-Fehler aufgezeichnet und senkt normalerweise den Score, daher setzen Sie ihn großzügig |

529| `timeout_seconds` | `300` | Wall-Clock-Obergrenze pro Durchlauf, bis zu 3600 |

530| `allowed_tools` | `[]` | Tools, die der Fall möchte, wie `[Read, Glob, Grep, Skill]`. Schreibgeschützte Tools werden gewährt, wenn sie hier aufgelistet sind; für alles andere, siehe [Gewähren Sie Tools](#grant-tools) |

531| `append_system_prompt` | | Text, der an die System-Eingabeaufforderung der Kind-Sitzung angehängt wird |

532| `env` | `{}` | Zusätzliche Umgebungsvariablen für die Kind-Sitzung. Schlüssel müssen `EVAL_[A-Z0-9_]*` entsprechen; jeder andere Schlüssel lässt den Durchlauf fehlschlagen. Der Durchlauf erbt nur eine Allowlist aus Ihrer Shell: Grundlagen wie `PATH` und Locale, Proxy- und Zertifikateinstellungen, die Variablen, die Ihren Modell-Provider auswählen und authentifizieren, die meisten `ANTHROPIC_*` und `CLAUDE_CODE_*` Konfiguration und `EVAL_*`. Um dem Plugin etwas anderes zu geben, wie eine Toolchain-Einstellung, exportieren Sie es als `EVAL_*` Variable |

533 

534<h3 id="case-yaml-fields">

535 case.yaml Felder

536</h3>

537 

538`case.yaml` beschreibt den gleichen Fall in YAML und fügt die Felder hinzu, die auf andere Dateien zeigen. Es benötigt `schema_version: "1.1"` und `name`. Die `prompt.md` Felder `description`, `tags`, `plugins`, `runs` und `expected_outcome` gehen auf die oberste Ebene; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt` und `env` gehen unter `execution:`. Wenn beide Dateien existieren, überschreibt `prompt.md` Frontmatter die passenden `case.yaml` Felder, der `prompt.md` Body ist die Eingabeaufforderung und `graders/*.md` werden nach allen in `case.yaml` aufgelisteten Gradern hinzugefügt.

539 

540Diese Felder existieren nur in `case.yaml`:

541 

542| Feld | Zweck |

543| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

544| `context.scaffold_script` | Ein Bash-Skript im Fallverzeichnis, das im leeren Arbeitsbereich vor Claude startet, um Fixture-Dateien oder ein Git-Repository zu erstellen. Es wird nur ausgeführt, wenn Sie [`--scaffold`](#add-setup-or-history-with-case-yaml) übergeben |

545| `context.history_file` | Ein `.jsonl` Transkript im Fallverzeichnis zum Fortsetzen. Die Eingabeaufforderung des Falls wird zum nächsten Benutzer-Turn |

546| `context.add_dirs` | Verzeichnisse innerhalb des Fallverzeichnisses, die Claude während des Durchlaufs lesen darf, schreibgeschützt gewährt |

547| `execution.prompt` | Die Eingabeaufforderung, wenn Sie den ganzen Fall in `case.yaml` behalten und `prompt.md` weglassen |

548| `graders` | Eine Liste von Gradern, jeder mit einem `name` plus die gleichen Schlüssel, die eine `graders/*.md` Datei in Frontmatter nimmt. Für `llm` Grader, legen Sie die Rubrik in `criteria` |

549 

550<h3 id="grader-frontmatter">

551 Grader Frontmatter

552</h3>

553 

554Jede Grader-Datei unter `graders/` nimmt diese Schlüssel in Frontmatter, plus die Optionen für seinen Typ. Der Name des Graders ist der Dateiname ohne `.md`:

555 

556| Schlüssel | Standard | Zweck |

557| :-------- | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

558| `type` | erforderlich | Einer der [Grader-Typen](#grader-types) |

559| `weight` | `1` | Relatives Gewicht im Score des Durchlaufs. Jede positive Zahl |

560| `arm` | nicht gesetzt | `with-only` schließt den Grader aus der Bewertung in einem [Zwei-Arm-Durchlauf](#compare-against-a-no-plugin-baseline) aus; `both` erzwingt, dass ein `tool_used: Skill` Grader in beiden Arms bewertet wird |

561 

562<h4 id="what-a-grader-can-look-at">

563 Was ein Grader ansehen kann

564</h4>

565 

566`regex` Grader nehmen ein `target` und `llm` Grader nehmen einen `focus`. Beide akzeptieren die gleichen Werte:

567 

568| Wert | Was der Grader sieht |

569| :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

570| `last_message` | Claude's endgültige Antwort-Text. Dies ist der Standard |

571| `trace` | Die ganze Sitzung als JSON, eine Nachricht pro Zeile. Ein `regex` Grader sieht jede Nachricht; ein `llm` Judge sieht die ersten 12 und die letzten 12. Anführungszeichen und Zeilenumbrüche darin sind JSON-escaped, daher passt ein Regex `\"` anstelle von `"` |

572| `files` | Die Liste der Pfade, die Claude während des Durchlaufs erstellt hat, einer pro Zeile. Nicht ihre Inhalte, und nicht Dateien, die ein Scaffold erstellt hat oder die Claude nur modifiziert hat |

573| `{ source: file, path: <path> }` | Der Inhalt einer Datei im Arbeitsbereich nach dem Durchlauf. Verwenden Sie dies, um zu bewerten, was das Plugin produziert hat. Eine PNG-, JPEG-, GIF- oder WebP-Datei wird einem `llm` Judge als Bild angezeigt. Ein `llm` Judge weigert sich, andere Binärdateien wie `.pptx` oder PDF zu lesen; rendern Sie sie zu einem Bild oder schreiben Sie sie als Text aus und bewerten Sie das |

574| `mock_calls` | Jeder Aufruf, den Claude an ein [gemocktes MCP-Tool](#mock-mcp-servers) machte, mit seiner Eingabe und der Antwort des Mocks |

575 

576<h4 id="grader-types">

577 Grader-Typen

578</h4>

579 

580Jeder Grader-Typ unten listet seine Optionen und wann er bestanden wird:

581 

582| Typ | Optionen | Wird bestanden, wenn |

583| :------------ | :------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

584| `regex` | `pattern`, `flags`, `match`, `target` | Das JavaScript Regex `pattern` wird im Ziel gefunden. Setzen Sie `match: not_contains`, um Abwesenheit zu erfordern, oder `match: "count:N"`, um genau N Treffer zu erfordern. Legen Sie Groß-/Kleinschreibung-Unempfindlichkeit in `flags: i`; Inline `(?i)` wird nicht unterstützt |

585| `tool_used` | `tool`, `input_match`, `min`, `max` | Die Anzahl der Aufrufe an `tool`, deren JSON-kodierte Eingabe das optionale `input_match` Regex passt, liegt zwischen `min`, Standard 1, und `max`, Standard unbegrenzt. Um zu bestätigen, dass ein Tool nie aufgerufen wurde, setzen Sie beide `min: 0` und `max: 0` |

586| `tool_order` | `before`, `after` | Beide Tools wurden aufgerufen und der erste passende `before` Aufruf geht dem ersten passenden `after` Aufruf voraus. Jeder ist ein Tool-Name oder `{ tool, input_match }` |

587| `file_exists` | `path`, `exists` | Eine Datei, die Claude erstellt hat, passt zum `path` Glob, oder keine mit `exists: false`. Nur Dateien, die während des Durchlaufs erstellt wurden, zählen |

588| `llm` | `criteria`, `focus` | Ein Judge-Modell stimmt PASS auf die Rubrik in mindestens zwei von drei Stimmen ab. Im `.md` Layout ist der Datei-Body die Kriterien |

589| `baseline` | `baseline_file`, `criteria` | Ein Judge findet, dass der Durchlauf die Kriterien mindestens so gut erfüllt wie das Referenz-Transkript bei `baseline_file`, ein `.jsonl` im Fallverzeichnis |

590 

591<h3 id="mock-files">

592 Mock-Dateien

593</h3>

594 

595Eine `<tool>.md` Datei unter `mocks/<server>/` beantwortet ein Tool. Sein Body ist das Tool-Ergebnis, mit `{{input.<field>}}` und `{{file:fixtures/<name>}}` Substitutionen. Sein Frontmatter akzeptiert diese Schlüssel:

596 

597| Schlüssel | Standard | Zweck |

598| :----------- | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

599| `type` | `fixed` | `fixed` gibt den Body wie geschrieben zurück. `agent` behandelt den Body als Anweisungen für ein kleines Modell, das den Server für den Durchlauf spielt und frühere Aufrufe als Geschichte sieht |

600| `expect` | nicht gesetzt | Eine Karte von gepunkteten Eingabe-Pfaden zu einem Typ-Namen wie `string`, `number`, `boolean`, `array` oder `object`, ein `/regex/`, ein Literal oder eine Liste erlaubter Literale. Ein Aufruf, der ihn verletzt, bricht den Durchlauf mit Score 0 ab und wird als `aborted` mit Server, Tool und Grund gemeldet |

601| `error` | `false` | `fixed` nur. Geben Sie den Body als Tool-Fehler zurück |

602| `abort_when` | nicht gesetzt | `agent` nur. Prosa, die die einzigen Bedingungen auflistet, unter denen der Agent den Durchlauf abbrechen darf |

603 

604Zwei optionale Dateien sitzen neben den Tool-Dateien in einem Server-Verzeichnis:

605 

606* **`_server.md`**: ein einzelner `type: agent` Mock, der mehrere Tools beantwortet, aufgelistet in seinem `tools:` Frontmatter-Schlüssel. Ein `<tool>.md` für das gleiche Tool hat Vorrang. Legen Sie einen `expect:` Guard auf das einzelne `<tool>.md`, nicht hier |

607* **`_tools.json`**: eine gespeicherte `tools/list` Antwort vom echten Server, daher tragen gemockte Tools ihre echten Beschreibungen und Eingabe-Schemas anstelle eines permissiven Platzhalters |

608 

609Ein Falls eigenes `mocks/` Verzeichnis verwendet das gleiche Layout und überschreibt die Suite's Mock-Datei für Datei.

610 

611<h2 id="troubleshooting">

612 Fehlerbehebung

613</h2>

614 

615Dies sind die Probleme, auf die Autoren am häufigsten stoßen, sortiert nach dem, was Sie sehen.

616 

617<h3 id="plugin-eval-is-currently-in-early-access">

618 „plugin eval is currently in early access"

619</h3>

620 

621Ihr Build ist älter als die allgemeine Verfügbarkeit des Befehls. Führen Sie `claude update` aus und führen Sie den Befehl dann erneut in einer neuen Sitzung aus.

622 

623<h3 id="plugin-eval-is-currently-unavailable">

624 „plugin eval is currently unavailable"

625</h3>

626 

627Anthropic hat den Befehl serverseitig deaktiviert. Nichts auf Ihrem Computer schaltet ihn wieder ein; führen Sie `claude update` aus und versuchen Sie es später in einer neuen Sitzung erneut.

628 

629<h3 id="is-not-a-trusted-plugin-directory-and-this-run-cannot-stop-to-ask-you-about-it">

630 „is not a trusted plugin directory, and this run cannot stop to ask you about it"

631</h3>

632 

633Dies ist der erste Durchlauf gegen ein Verzeichnis, dem Claude Code noch nicht vertraut, und es kann Sie nicht fragen, da stdin oder stdout kein Terminal ist oder Sie `--json` übergeben haben. Führen Sie `claude plugin eval <dir>` einmal in einem Terminal aus und beantworten Sie die Eingabeaufforderung, oder übergeben Sie `--trust-plugin`, wenn Sie dem Code und der Suite des Plugins vertrauen. Siehe [What a run can access](#security).

634 

635<h3 id="no-eval-cases-found">

636 „No eval cases found"

637</h3>

638 

639Es existiert kein `<case>/prompt.md` oder `<case>/case.yaml` unter dem geltenden Eval-Verzeichnis, oder Ihre `--case`- und `--tag`-Filter haben keinen Fall gefunden. Führen Sie den Befehl aus dem Plugin-Root aus, oder führen Sie `claude plugin eval init` aus, um eine Suite zu erstellen.

640 

641<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">

642 Die Baseline-Arm zeigt kein Plugin, oder Delta ist null

643</h3>

644 

645Wenn die Zusammenfassung keine `W/OUT`-Spalte hat oder der Fall mit „ablation requested but no plugin resolved" fehlschlägt, wurde kein Plugin für den Fall gefunden. Fügen Sie `plugins: ["../.."]` zum Fall hinzu und geben Sie den Pfad vom Fall-Verzeichnis zum Plugin-Verzeichnis an.

646 

647Wenn das Plugin geladen wurde und `Δ` immer noch nahe bei null liegt, während Ihr `tool_used: Skill`-Grader fehlschlägt, ist das normalerweise ein echtes Ergebnis, was bedeutet, dass die `description` des Skills nicht auf die Formulierung der Eingabeaufforderung anspricht. Passen Sie die Beschreibung an und führen Sie die gleiche Suite erneut aus.

648 

649<h3 id="everything-scores-zero-although-the-right-files-were-produced">

650 Alles bewertet null, obwohl die richtigen Dateien erstellt wurden

651</h3>

652 

653Ihre Grader zielen auf `files`, die Liste der erstellten Pfade, wenn Sie die Inhalte der Datei gemeint haben. Verwenden Sie `{ source: file, path: <path> }` als `target` oder `focus`. Separat zählt `file_exists` nur Dateien, die während des Durchlaufs erstellt wurden, daher ist eine Datei, die das Gerüst erstellt hat oder die Claude nur bearbeitet hat, für sie unsichtbar; bewerten Sie ihren Inhalt, oder verwenden Sie `tool_used` auf `Edit`.

654 

655<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

656 Ein Regex über die Trace stimmt nicht mit Text überein, den ich sehen kann

657</h3>

658 

659Das Standard-`target` ist `last_message`, nicht die Trace. Wenn Sie `trace` als Ziel verwenden, ist es JSON pro Zeile, daher erscheinen Anführungszeichen als `\"`. Regexes verwenden JavaScript-Syntax, daher setzen Sie `i` in `flags`, anstatt `(?i)` zu schreiben.

660 

661<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

662 Tools werden verweigert, MCP-Tools fehlen, oder Bash wird nicht ausgeführt

663</h3>

664 

665Alles über die schreibgeschützte Menge hinaus benötigt Ihre Genehmigung, wie z. B. `--allow-tools Bash Write`. Ihre persönlichen MCP-Server werden in einem Durchlauf nie geladen. Die eigenen Server des Plugins starten nicht, es sei denn, Sie [aktivieren sie](#mock-mcp-servers), und ihre Tools benötigen dann auch eine `--allow-tools "mcp__plugin_<plugin>_<server>__*"`-Genehmigung; ein simuliertes Tool benötigt keine.

666 

667<h3 id="the-run-exits-1-but-the-results-look-fine">

668 Der Durchlauf beendet sich mit 1, aber die Ergebnisse sehen gut aus

669</h3>

670 

671Das Standard-`--threshold` ist 1,0, daher beendet sich der Befehl mit 1, wenn ein Fall unter perfekt bewertet wird. Legen Sie einen Schwellenwert fest, der Ihrem Standard entspricht. Exit 1 deckt auch eine Fall-Datei ab, die nicht geladen werden konnte, was auf stderr über der Tabelle gemeldet wird.

672 

673<h3 id="json-output-path-must-end-in-json">

674 „--json output path must end in .json"

675</h3>

676 

677Sie haben das Ziel nach `--json` eingegeben, daher wurde es als Ausgabepfad gelesen. Geben Sie das Ziel zuerst an, wie in `claude plugin eval . --json`, oder geben Sie `--json` einen expliziten `.json`-Pfad.

678 

679<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">

680 Ein Grader zeigt passed: false unter einem Durchlauf, der 1,0 bewertet

681</h3>

682 

683Dieser Grader ist absichtlich von der Bewertung in einem Zwei-Arm-Durchlauf ausgeschlossen, und sein `scored`-Feld ist `false`. Siehe [Compare against a no-plugin baseline](#compare-against-a-no-plugin-baseline).

684 

685<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

686 Durchläufe schlagen mit einem Nutzungslimit- oder Rate-Limit-Fehler in der Mitte fehl

687</h3>

688 

689Wenn Ihr Konto während der Ausführung einer Suite das Nutzungslimit des Plans oder ein API-Rate-Limit erreicht, endet jeder spätere Durchlauf mit diesem Fehler, wird auf das bewertet, was er produziert hat, und bewertet normalerweise 0. Die Suite wird trotzdem beendet und ist nicht als `partial` gekennzeichnet, daher kann das Ergebnis wie eine Regression aussehen. Überprüfen Sie die `NOTES`-Spalte oder `cases[].arms.with[].error` im JSON auf die Limit-Nachricht, bevor Sie den Bewertungen vertrauen, und führen Sie dann erneut aus, nachdem das Limit zurückgesetzt wurde, mit `--runs 1` oder einem `--case`-Filter, wenn Sie darunter bleiben müssen.

690 

691<h3 id="runs-time-out-or-hit-the-turn-cap">

692 Durchläufe überschreiten das Zeitlimit oder erreichen die Obergrenze für Durchläufe

693</h3>

694 

695Die Standardwerte sind 10 Durchläufe und 300 Sekunden. Erhöhen Sie `max_turns` und `timeout_seconds` im Fall für Aufgaben, die mehr benötigen, und verwenden Sie `--max-cost-usd` als Kostendeckel anstelle von engen Pro-Durchlauf-Limits.

696 

697<h2 id="see-also">

698 Siehe auch

699</h2>

700 

701* [Plugins erstellen](/docs/de/plugins): bauen Sie das Plugin, das Sie testen, und laden Sie es mit `--plugin-dir` während der Entwicklung

702* [Plugins-Referenz](/docs/de/plugins-reference#plugin-eval): die `plugin eval` und `plugin eval init` Befehlseinträge und der Manifest's `experimental.evals` Schlüssel

703* [Skills](/docs/de/skills): wie die `description` eines Skills entscheidet, wann Claude ihn aufruft, was das ist, was ein Fall, der überprüft, ob der Skill auslöst, misst

704* [Sandboxing](/docs/de/sandboxing): die OS-Level Sandbox, die angewendet wird, wenn Sie Bash einem Durchlauf gewähren

705* [Erstellen und verteilen Sie einen Plugin-Marketplace](/docs/de/plugin-marketplaces): veröffentlichen Sie das Plugin, sobald seine Suite bestanden wird

plugin-hints.md +6 −6

Details

28Claude Code installiert ein Plugin nie automatisch. Der Benutzer bestätigt immer.28Claude Code installiert ein Plugin nie automatisch. Der Benutzer bestätigt immer.

29 29 

30<h2 id="emit-the-hint">30<h2 id="emit-the-hint">

31 Geben Sie den Hinweis aus31 Hint ausgeben

32</h2>32</h2>

33 33 

34Hinweis-Prompts werden nur für Plugins ausgelöst, die im offiziellen Anthropic-Marketplace aufgeführt sind. Siehe [Bringen Sie Ihr Plugin in den offiziellen Marketplace](#get-your-plugin-into-the-official-marketplace), bevor Sie die Integration bereitstellen.34Hint-Prompts werden nur für Plugins ausgelöst, die im offiziellen Anthropic-Marketplace aufgelistet sind. Siehe [Bringen Sie Ihr Plugin in den offiziellen Marketplace](#get-your-plugin-into-the-official-marketplace), bevor Sie die Integration bereitstellen.

35 35 

36Geben Sie die Ausgabe an eine Umgebungsvariable ab, damit der Marker wahrscheinlich nicht erscheint, wenn ein Mensch Ihre CLI direkt ausführt, und schreiben Sie dann das Tag auf stderr auf seiner eigenen Zeile. Wählen Sie, welche Variable überprüft werden soll:36Geben Sie die Ausgabe basierend auf einer Umgebungsvariablen frei, damit die Markierung wahrscheinlich nicht angezeigt wird, wenn ein Mensch Ihre CLI direkt ausführt. Schreiben Sie dann das Tag auf stderr auf einer eigenen Zeile. Wählen Sie, welche Variable überprüft werden soll:

37 37 

38* `CLAUDECODE`: wird auf jeder Claude Code-Version gesetzt, daher erreicht es die meisten Sitzungen. Sie wird auch in tmux-Sitzungen und stdio MCP Server-Subprozessen gesetzt, die Claude Code startet. IDE-Erweiterungen setzen sie auch in ihren integrierten Terminals, wo ein Mensch Ihre CLI direkt ausführen kann.38* `CLAUDECODE`: wird auf jeder Claude Code-Version gesetzt, daher erreicht es die meisten Sitzungen. Es wird auch in tmux-Sitzungen und stdio-MCP-Server-Subprozessen gesetzt, die Claude Code startet. IDE-Erweiterungen setzen es auch in ihren integrierten Terminals, wo ein Mensch Ihre CLI direkt ausführen kann.

39* `CLAUDE_CODE_CHILD_SESSION`: wird nur in Subprozessen gesetzt, die Claude Code selbst startet, wie z. B. Tool-Aufrufe, Hook-Befehle und [Statuszeilen](/docs/de/statusline)-Befehle, daher erreicht das Tag normalerweise kein menschliches Terminal. Ein langlebiger Prozess, der innerhalb einer Sitzung gestartet wurde, wie z. B. ein tmux-Server, erfasst die Variable, daher zeigen Shells, die später von diesem Prozess aus gestartet werden, immer noch das rohe Tag. Erfordert Claude Code v2.1.172 oder später, daher verpassen Sitzungen auf älteren Versionen den Hinweis.39* `CLAUDE_CODE_CHILD_SESSION`: wird nur in Subprozessen gesetzt, die Claude Code selbst startet, wie z. B. Tool-Aufrufe, Hook-Befehle und [Statuszeilen](/docs/de/statusline)-Befehle, daher erreicht das Tag normalerweise kein menschliches Terminal. Ein langlebiger Prozess, der innerhalb einer Sitzung gestartet wurde, wie z. B. ein tmux-Server, erfasst die Variable, daher zeigen Shells, die später von diesem Prozess aus gestartet werden, immer noch das rohe Tag.

40 40 

41Die folgenden Beispiele geben auf `CLAUDECODE` ab, um maximale Reichweite zu erreichen, und geben einen Hinweis für ein Plugin namens `example-cli` im offiziellen Marketplace aus:41Die folgenden Beispiele geben `CLAUDECODE` für maximale Reichweite frei und geben einen Hint für ein Plugin namens `example-cli` im offiziellen Marketplace aus:

42 42 

43<CodeGroup>43<CodeGroup>

44 ```javascript Node.js theme={null}44 ```javascript Node.js theme={null}

Details

96 </Step>96 </Step>

97 97 

98 <Step title="Hinzufügen und Installieren">98 <Step title="Hinzufügen und Installieren">

99 Starten Sie Claude Code aus dem Verzeichnis, das `my-marketplace` enthält, und führen Sie die folgenden Befehle aus. Der Installationsbefehl öffnet eine Plugin-Detailansicht, in der Sie einen Installationsbereich auswählen, um die Installation zu bestätigen. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie diesen Befehl aus.99 Starten Sie Claude Code aus dem Verzeichnis, das `my-marketplace` enthält, und führen Sie die folgenden Befehle aus. Der Installationsbefehl öffnet eine Plugin-Detailansicht, in der Sie einen Installationsbereich auswählen, um die Installation zu bestätigen. Überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting).

100 100 

101 ```shell theme={null}101 ```shell theme={null}

102 /plugin marketplace add ./my-marketplace102 /plugin marketplace add ./my-marketplace


173| `plugins` | array | Liste der verfügbaren Plugins | Siehe unten |173| `plugins` | array | Liste der verfügbaren Plugins | Siehe unten |

174 174 

175<Note>175<Note>

176 **Reservierte Namen**: Die folgenden Marktplatznamen sind für die offizielle Nutzung durch Anthropic reserviert und können nicht von Drittanbieter-Marktplätzen verwendet werden: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `healthcare`. Namen, die offizielle Marktplätze imitieren, wie `official-claude-plugins` oder `anthropic-plugins-v2`, sind ebenfalls blockiert. Das Reservieren dieser Namen verhindert, dass sich ein Drittanbieter-Marktplatz als von Anthropic veröffentlichte Quelle darstellt.176 **Reservierte Namen**: Die folgenden Marktplatznamen sind für die offizielle Nutzung durch Anthropic reserviert und können nicht von Drittanbieter-Marktplätzen verwendet werden: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Namen, die offizielle Marktplätze imitieren, wie `official-claude-plugins` oder `anthropic-plugins-v2`, sind ebenfalls blockiert. Das Reservieren dieser Namen verhindert, dass sich ein Drittanbieter-Marktplatz als von Anthropic veröffentlichte Quelle darstellt.

177 177 

178 Claude Code überprüft reservierte Namen jedes Mal, wenn es einen Marktplatz lädt, nicht nur wenn Sie einen hinzufügen. Ein Marktplatz, der unter einem dieser Namen registriert wurde, bevor der Name reserviert wurde, wird nicht mehr geladen und meldet, dass er [von einer nicht vertrauenswürdigen Quelle registriert ist](/docs/de/errors#marketplace-is-registered-from-an-untrusted-source). Entfernen Sie diesen Marktplatz und fügen Sie ihn erneut aus der offiziellen Anthropic-Quelle hinzu. Ein Drittanbieter-Marktplatz, der von einem neu reservierten Namen betroffen ist, wird erneut geladen, sobald Sie ihn unter einem anderen Namen erneut hinzufügen. Vor v2.1.205 waren `first-party-plugins` und `healthcare` nicht reserviert, und ein Marktplatz, der bereits unter einem reservierten Namen registriert war, wurde weiterhin geladen.178 Claude Code überprüft reservierte Namen jedes Mal, wenn es einen Marktplatz lädt, nicht nur wenn Sie einen hinzufügen. Ein Marktplatz, der unter einem dieser Namen registriert wurde, bevor der Name reserviert wurde, wird nicht mehr geladen und meldet, dass er [von einer nicht vertrauenswürdigen Quelle registriert ist](/docs/de/errors#marketplace-is-registered-from-an-untrusted-source). Entfernen Sie diesen Marktplatz und fügen Sie ihn erneut aus der offiziellen Anthropic-Quelle hinzu. Ein Drittanbieter-Marktplatz, der von einem neu reservierten Namen betroffen ist, wird erneut geladen, sobald Sie ihn unter einem anderen Namen erneut hinzufügen. Vor v2.1.205 waren `first-party-plugins` und `healthcare` nicht reserviert, und ein Marktplatz, der bereits unter einem reservierten Namen registriert war, wurde weiterhin geladen. Vor v2.1.265 war `claude-tag-plugins` nicht reserviert.

179</Note>179</Note>

180 180 

181<h3 id="owner-fields">181<h3 id="owner-fields">


226 226 

227| Feld | Typ | Beschreibung |227| Feld | Typ | Beschreibung |

228| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |228| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

229| `displayName` | string | Benutzerfreundlicher Name, der in UI-Oberflächen angezeigt wird. Fällt auf `name` zurück, wenn weggelassen. Kann Leerzeichen und beliebige Groß-/Kleinschreibung enthalten. Wird nicht für Namensräume oder Suche verwendet. |229| `displayName` | string | Benutzerfreundlicher Name, der in UI-Oberflächen angezeigt wird. Wenn weder der Eintrag noch die `plugin.json` des Plugins einen festlegen, sehen Benutzer den `name` des Plugins. Kann Leerzeichen und beliebige Groß-/Kleinschreibung enthalten. Wird nicht für Namensräume oder Suche verwendet. |

230| `description` | string | Kurze Plugin-Beschreibung |230| `description` | string | Kurze Plugin-Beschreibung |

231| `version` | string | Plugin-Version. Falls gesetzt (hier oder in `plugin.json`), wird das Plugin auf diese Zeichenkette festgelegt und Benutzer erhalten Updates nur, wenn sie sich ändert. Ein Plugin mit einer [`command`-Quelle](#command-sources) wird durch keines der beiden Felder festgelegt. Falls an keiner Stelle gesetzt, kommt die Version aus der nächsten Quelle in [Versionsverwaltung](/docs/de/plugins-reference#version-management). |231| `version` | string | Plugin-Version. Falls gesetzt (hier oder in `plugin.json`), wird das Plugin auf diese Zeichenkette festgelegt und Benutzer erhalten Updates nur, wenn sie sich ändert. Ein Plugin mit einer [`command`-Quelle](#command-sources) wird durch keines der beiden Felder festgelegt. Falls an keiner Stelle gesetzt, kommt die Version aus der nächsten Quelle in [Versionsverwaltung](/docs/de/plugins-reference#version-management). |

232| `author` | object | Plugin-Autoreninformationen (`name` erforderlich; `email` und `url` optional) |232| `author` | object | Plugin-Autoreninformationen (`name` erforderlich; `email` und `url` optional) |


241| `relevance` | object | Signale, die Claude Code mitteilen, wann dieses Plugin Benutzern empfohlen werden soll. Wirkt sich nur auf Marktplätze aus, die ein Administrator in verwalteten Einstellungen auf die Whitelist setzt. Siehe [Plugins für Ihre Organisation empfehlen](/docs/de/plugin-relevance). |241| `relevance` | object | Signale, die Claude Code mitteilen, wann dieses Plugin Benutzern empfohlen werden soll. Wirkt sich nur auf Marktplätze aus, die ein Administrator in verwalteten Einstellungen auf die Whitelist setzt. Siehe [Plugins für Ihre Organisation empfehlen](/docs/de/plugin-relevance). |

242| `defaultEnabled` | boolean | Ob das Plugin nach der Installation aktiviert ist (Standard: true). Setzen Sie auf `false`, um das Plugin deaktiviert zu installieren, bis sich der Benutzer anmeldet. Hat Vorrang vor dem gleichen Feld in der `plugin.json` des Plugins. Siehe [Standardaktivierung](/docs/de/plugins-reference#default-enablement). |242| `defaultEnabled` | boolean | Ob das Plugin nach der Installation aktiviert ist (Standard: true). Setzen Sie auf `false`, um das Plugin deaktiviert zu installieren, bis sich der Benutzer anmeldet. Hat Vorrang vor dem gleichen Feld in der `plugin.json` des Plugins. Siehe [Standardaktivierung](/docs/de/plugins-reference#default-enablement). |

243 243 

244Sowohl der Eintrag als auch die `plugin.json` des Plugins können die Anzeigefelder `displayName`, `description`, `author`, `homepage`, `repository`, `license` und `keywords` festlegen. In Plugin-Auflistungen und Details vor und nach der Installation:

245 

246* Für ein Feld, das Sie im Eintrag festlegen, sehen Benutzer den Wert des Eintrags, auch wenn `plugin.json` einen anderen festlegt.

247* Für ein Feld, das der Eintrag nicht festlegt, sehen Benutzer den `plugin.json`-Wert.

248 

249Vor der Installation kann Claude Code `plugin.json` nur für Einträge mit einer [Relative-Pfad-Quelle](#relative-paths) lesen, deren Plugin-Dateien sich im Marktplatz selbst befinden. Für einen Eintrag mit einem anderen Quellentyp sehen Benutzer nur die eigenen Felder des Eintrags, bis sie das Plugin installieren.

250 

244**Komponenten-Konfigurationsfelder:**251**Komponenten-Konfigurationsfelder:**

245 252 

246| Feld | Typ | Beschreibung |253| Feld | Typ | Beschreibung |


307}314}

308```315```

309 316 

310Pfade werden relativ zum Marktplatz-Root aufgelöst, das ist das Verzeichnis, das `.claude-plugin/` enthält. Im obigen Beispiel verweist `./plugins/my-plugin` auf `<repo>/plugins/my-plugin`, obwohl `marketplace.json` unter `<repo>/.claude-plugin/marketplace.json` lebt. Verwenden Sie nicht `../`, um Pfade außerhalb des Marktplatz-Root zu referenzieren.317Pfade werden relativ zum Marktplatz-Root aufgelöst, das ist das Verzeichnis, das `.claude-plugin/` enthält. Im obigen Beispiel verweist `./plugins/my-plugin` auf `<repo>/plugins/my-plugin`, obwohl `marketplace.json` unter `<repo>/.claude-plugin/marketplace.json` lebt. Verwenden Sie nicht `../`, um Pfade außerhalb des Marktplatz-Root zu referenzieren. Auf macOS und Linux lehnt Claude Code einen Eintragspfad mit einem Backslash irgendwo nach dem führenden `./` ab, daher schreiben Sie die Trennzeichen auf jeder Plattform als `/`.

311 318 

312Ein bloßer Name ist ein einzelner Verzeichnisname ohne `/`, wie z. B. `"formatter"`. Um bloße Namen statt `./`-Pfade zu schreiben, setzen Sie [`metadata.pluginRoot`](#optional-fields) auf das Verzeichnis, unter dem sie aufgelöst werden. Mit `"pluginRoot": "./plugins"` löst Claude Code `"source": "formatter"` zu `./plugins/formatter` auf. Erfordert Claude Code v2.1.239 oder später.319Ein bloßer Name ist ein einzelner Verzeichnisname ohne `/`, wie z. B. `"formatter"`. Um bloße Namen statt `./`-Pfade zu schreiben, setzen Sie [`metadata.pluginRoot`](#optional-fields) auf das Verzeichnis, unter dem sie aufgelöst werden. Mit `"pluginRoot": "./plugins"` löst Claude Code `"source": "formatter"` zu `./plugins/formatter` auf. Erfordert Claude Code v2.1.239 oder später.

313 320 


1270 Validierung und Tests1277 Validierung und Tests

1271</h2>1278</h2>

1272 1279 

1273Testen Sie Ihren Marktplatz vor dem Teilen.1280Testen Sie Ihren Marktplatz vor dem Teilen. Die Validierung überprüft die Dateistruktur; um zu testen, ob ein Plugin ändert, was Claude bei realistischen Eingabeaufforderungen tut, führen Sie seine Eval-Suite mit [`claude plugin eval`](/docs/de/plugin-evals) aus, bevor Sie eine neue Version veröffentlichen.

1274 1281 

1275Validieren Sie die JSON-Syntax Ihres Marktplatzes aus Ihrem Marktplatz-Verzeichnis:1282Validieren Sie die JSON-Syntax aus Ihrem Marktplatz-Verzeichnis:

1276 1283 

1277```bash theme={null}1284```bash theme={null}

1278claude plugin validate .1285claude plugin validate .


1609 Plugins mit relativen Pfaden schlagen in URL-basierten Marktplätzen fehl1616 Plugins mit relativen Pfaden schlagen in URL-basierten Marktplätzen fehl

1610</h3>1617</h3>

1611 1618 

1612**Symptome**: Einen Marktplatz über URL hinzugefügt (z. B. `https://example.com/marketplace.json`), aber Plugins mit relativen Pfadquellen wie `"./plugins/my-plugin"` schlagen mit "path not found"-Fehlern fehl.1619**Symptome**: Einen Marktplatz über eine URL wie `https://example.com/marketplace.json` hinzugefügt, aber Plugins mit relativen Pfadquellen wie `"./plugins/my-plugin"` schlagen mit `its marketplace entry path does not stay inside the marketplace directory` fehl. Bereits installierte Plugins schlagen mit `Plugin source path refused` fehl. Beide Meldungen haben einen [Fehlerreferenzeintrag](/docs/de/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

1613 1620 

1614**Ursache**: Das Hinzufügen eines URL-basierten Marktplatzes lädt nur die `marketplace.json`-Datei selbst herunter, und Claude Code lädt Plugin-Dateien nicht nach relativem Pfad von diesem Server herunter. Relative Pfade im Marktplatz-Eintrag verweisen auf Dateien auf dem Remote-Server, die nicht heruntergeladen wurden.1621**Ursache**: Das Hinzufügen eines URL-basierten Marktplatzes lädt nur die `marketplace.json`-Datei selbst herunter, und Claude Code lädt Plugin-Dateien nicht nach relativem Pfad von diesem Server herunter. Relative Pfade im Marktplatz-Eintrag verweisen auf Dateien auf dem Remote-Server, die nicht heruntergeladen wurden.

1615 1622 

plugins.md +11 −3

Details

179<Warning>179<Warning>

180 **Häufiger Fehler**: Platzieren Sie `commands/`, `agents/`, `skills/` oder `hooks/` nicht im Verzeichnis `.claude-plugin/`. Nur `plugin.json` gehört in `.claude-plugin/`. Alle anderen Verzeichnisse müssen auf der Plugin-Root-Ebene sein.180 **Häufiger Fehler**: Platzieren Sie `commands/`, `agents/`, `skills/` oder `hooks/` nicht im Verzeichnis `.claude-plugin/`. Nur `plugin.json` gehört in `.claude-plugin/`. Alle anderen Verzeichnisse müssen auf der Plugin-Root-Ebene sein.

181 181 

182 Das Plugin-Root ist das eigene Verzeichnis des einzelnen Plugins: dasjenige, das Sie an `--plugin-dir` übergeben oder das `.claude-plugin/plugin.json` enthält. Es ist niemals `~/.claude/`. Zum Beispiel liest Claude Code eine `.mcp.json`, die unter `~/.claude/.mcp.json` platziert ist, nicht.182 Das Plugin-Root ist das eigene Verzeichnis des einzelnen Plugins, z. B. `my-first-plugin/` aus dem [Schnellstart](#quickstart). Es ist niemals `~/.claude/`. Zum Beispiel liest Claude Code eine `.mcp.json`, die unter `~/.claude/.mcp.json` platziert ist, nicht.

183</Warning>183</Warning>

184 184 

185| Verzeichnis | Speicherort | Zweck |185| Verzeichnis | Speicherort | Zweck |


2344. Test coverage2344. Test coverage

235```235```

236 236 

237Nach der Installation des Plugins überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, führen Sie diesen Befehl aus, um die Skills zu laden. Für vollständige Anleitung zur Skill-Erstellung, einschließlich progressiver Offenlegung und Tool-Einschränkungen, siehe [Agent-Skills](/docs/de/skills).237Nach der Installation des Plugins überprüfen Sie die Installationszusammenfassung: Wenn sie `Run /reload-plugins to activate.` meldet, siehe [Wenden Sie Plugin-Änderungen an, ohne neu zu starten](/docs/de/discover-plugins#apply-plugin-changes-without-restarting), um die Skills in Ihrer aktuellen Sitzung zu laden. Für vollständige Anleitung zur Skill-Erstellung, einschließlich progressiver Offenlegung und Tool-Einschränkungen, siehe [Agent-Skills](/docs/de/skills).

238 238 

239<h3 id="add-lsp-servers-to-your-plugin">239<h3 id="add-lsp-servers-to-your-plugin">

240 Fügen Sie LSP-Server zu Ihrem Plugin hinzu240 Fügen Sie LSP-Server zu Ihrem Plugin hinzu


324 324 

325Wenn ein `--plugin-dir`-Plugin denselben Namen wie ein installiertes Marketplace-Plugin hat, hat die lokale Kopie in dieser Sitzung Vorrang. Dies ermöglicht es Ihnen, Änderungen an einem Plugin zu testen, das Sie bereits installiert haben, ohne es zuerst zu deinstallieren. Die Ausnahme sind Plugins, die durch verwaltete Einstellungen erzwungen aktiviert oder deaktiviert werden: `--plugin-dir` kann diese nicht überschreiben.325Wenn ein `--plugin-dir`-Plugin denselben Namen wie ein installiertes Marketplace-Plugin hat, hat die lokale Kopie in dieser Sitzung Vorrang. Dies ermöglicht es Ihnen, Änderungen an einem Plugin zu testen, das Sie bereits installiert haben, ohne es zuerst zu deinstallieren. Die Ausnahme sind Plugins, die durch verwaltete Einstellungen erzwungen aktiviert oder deaktiviert werden: `--plugin-dir` kann diese nicht überschreiben.

326 326 

327Wenn Sie Änderungen an Ihrem Plugin vornehmen, führen Sie `/reload-plugins` aus, um die Updates zu übernehmen, ohne neu zu starten. Dies lädt Plugins, Skills, Agents, Hooks, Plugin-MCP-Server und Plugin-LSP-Server neu. Testen Sie Ihre Plugin-Komponenten:327Wenn Sie Änderungen an Ihrem Plugin vornehmen, führen Sie `/reload-plugins` aus, um die Updates zu übernehmen, ohne neu zu starten. Dies lädt Plugins, Skills, Agents, Hooks, Plugin-MCP-Server und Plugin-LSP-Server neu; in einer Sitzung ohne interaktives Terminal warten Plugin-MCP-Server-Änderungen [auf Ihre nächste Sitzung](/docs/de/discover-plugins#apply-plugin-changes-without-restarting). Testen Sie Ihre Plugin-Komponenten:

328 328 

329* Versuchen Sie Ihre Skills mit `/plugin-name:skill-name`329* Versuchen Sie Ihre Skills mit `/plugin-name:skill-name`

330* Überprüfen Sie, dass Agents in `/context` unter Custom Agents angezeigt werden, oder erwähnen Sie einen mit seinem scoped Namen mit @330* Überprüfen Sie, dass Agents in `/context` unter Custom Agents angezeigt werden, oder erwähnen Sie einen mit seinem scoped Namen mit @


340 Um ein Plugin zusammen mit einem Plugin zu testen, von dem es abhängt, siehe [Testen Sie ein Plugin und seine Abhängigkeit lokal](/docs/de/plugin-dependencies#test-a-plugin-and-its-dependency-locally).340 Um ein Plugin zusammen mit einem Plugin zu testen, von dem es abhängt, siehe [Testen Sie ein Plugin und seine Abhängigkeit lokal](/docs/de/plugin-dependencies#test-a-plugin-and-its-dependency-locally).

341</Tip>341</Tip>

342 342 

343Das Testen des Plugins mit `--plugin-dir` zeigt Ihnen, dass es funktionieren kann. Um herauszufinden, wie oft Claude tatsächlich danach greift und das richtige Ergebnis erhält, führen Sie es gegen eine Reihe von Test-Prompts mit [`claude plugin eval`](/docs/de/plugin-evals) aus. Jeder Prompt wird mehrmals mit und ohne das geladene Plugin ausgeführt, sodass Sie sehen können, was das Plugin beiträgt, und Regressionsfehler erkennen können, wenn Sie es ändern oder ein neues Modell ausgeliefert wird.

344 

345Um mehrere Plugins von einem Ort aus zu laden, übergeben Sie einen Ordner, der sie enthält, z. B. `--plugin-dir ./plugins`. Das Laden eines Ordners mit Plugins erfordert Claude Code v2.1.265 oder später. Claude Code liest die oberste Ebene des Ordners, um zu entscheiden, welche Plugins geladen werden, und in einer interaktiven Sitzung überwacht es auch den Ordner auf spätere Änderungen:

346 

347* **Was wird geladen**: Wenn der Ordner keine Manifest- oder Plugin-Komponenten auf seiner obersten Ebene hat, behandelt Claude Code ihn als einen Ordner mit Plugins. Jeder unmittelbare Unterordner, der ein `.claude-plugin/plugin.json`-Manifest hat, wird als separates Plugin geladen. Claude Code überspringt alles andere im Ordner ohne Fehlermeldung, einschließlich Plugins, die kein Manifest haben.

348* **Änderungen während einer interaktiven Sitzung**: Ein Unterordner, den Sie hinzufügen, wird als neues Plugin geladen, sobald sein Manifest vorhanden ist, und wenn Sie einen Unterordner entfernen, wird sein Plugin entladen. Claude Code druckt eine Zeile in der Sitzung für jede Änderung. Wenn das Anwenden einer Änderung mitten in der Konversation den [Prompt-Cache ungültig machen würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin), hält Claude Code sie an, und die Zeile sagt, dass Sie `/reload-plugins` ausführen sollen, um sie anzuwenden.

349 

343Um ein Plugin zu testen, das bereits als `.zip`-Archiv verpackt und unter einer URL gehostet wird, z. B. ein CI-Build-Artefakt, verwenden Sie stattdessen `--plugin-url`. Claude Code ruft das Archiv beim Start ab und lädt es nur für diese Sitzung. Wenn Claude Code das Archiv nicht abrufen kann oder das Archiv ungültig ist, startet es ohne das Plugin und zeichnet einen Plugin-Ladefehler auf, den Sie in der Registerkarte **Fehler** des `/plugin`-Managers überprüfen können. Die gleichen [Vertrauensüberlegungen](/docs/de/discover-plugins#security) gelten wie für jede andere Plugin-Quelle: Verweisen Sie dieses Flag nur auf Archive, die Sie kontrollieren oder denen Sie vertrauen.350Um ein Plugin zu testen, das bereits als `.zip`-Archiv verpackt und unter einer URL gehostet wird, z. B. ein CI-Build-Artefakt, verwenden Sie stattdessen `--plugin-url`. Claude Code ruft das Archiv beim Start ab und lädt es nur für diese Sitzung. Wenn Claude Code das Archiv nicht abrufen kann oder das Archiv ungültig ist, startet es ohne das Plugin und zeichnet einen Plugin-Ladefehler auf, den Sie in der Registerkarte **Fehler** des `/plugin`-Managers überprüfen können. Die gleichen [Vertrauensüberlegungen](/docs/de/discover-plugins#security) gelten wie für jede andere Plugin-Quelle: Verweisen Sie dieses Flag nur auf Archive, die Sie kontrollieren oder denen Sie vertrauen.

344 351 

345Um mehrere Plugins zu laden, wiederholen Sie das Flag für jede URL:352Um mehrere Plugins zu laden, wiederholen Sie das Flag für jede URL:


510 Für Plugin-Entwickler517 Für Plugin-Entwickler

511</h3>518</h3>

512 519 

520* [Testen Sie Plugins mit Evals](/docs/de/plugin-evals): Messen Sie, was Ihr Plugin ändert, und gaten Sie CI darauf

513* [Erstellen und verteilen Sie einen Marketplace](/docs/de/plugin-marketplaces): Verpacken und teilen Sie Ihre Plugins521* [Erstellen und verteilen Sie einen Marketplace](/docs/de/plugin-marketplaces): Verpacken und teilen Sie Ihre Plugins

514* [Plugins-Referenz](/docs/de/plugins-reference): Vollständige technische Spezifikationen522* [Plugins-Referenz](/docs/de/plugins-reference): Vollständige technische Spezifikationen

515* Tauchen Sie tiefer in spezifische Plugin-Komponenten ein:523* Tauchen Sie tiefer in spezifische Plugin-Komponenten ein:

Details

121 121 

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

123 123 

124| Event | When it fires |124| Ereignis | Wann es ausgelöst wird |

125| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |125| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

126| `SessionStart` | When a session begins or resumes |126| `SessionStart` | Wenn eine Sitzung beginnt oder fortgesetzt wird |

127| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |127| `Setup` | Wenn Sie Claude Code mit `--init-only` starten oder mit `--init` oder `--maintenance` im `-p`-Modus. Für einmalige Vorbereitung in CI oder Skripten |

128| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |128| `UserPromptSubmit` | Wenn Sie eine Eingabeaufforderung absenden, bevor Claude sie verarbeitet |

129| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |129| `UserPromptExpansion` | Wenn ein von Ihnen eingegebener Befehl in eine Eingabeaufforderung erweitert wird, bevor sie Claude erreicht. Kann die Erweiterung blockieren |

130| `PreToolUse` | Before a tool call executes. Can block it |130| `PreToolUse` | Bevor ein Werkzeugaufruf ausgeführt wird. Kann ihn blockieren |

131| `PermissionRequest` | When a tool call needs a permission decision |131| `PermissionRequest` | Wenn ein Werkzeugaufruf eine Genehmigungsentscheidung benötigt |

132| `PermissionDenied` | When auto mode denies a tool call, including denials without a classifier verdict. Use JSON `hookSpecificOutput.retry: true` to tell the model it may retry the denied tool call. Claude Code ignores `retry` when the classifier produced no verdict |132| `PermissionDenied` | Wenn der automatische Modus einen Werkzeugaufruf ablehnt, einschließlich Ablehnungen ohne Klassifizierer-Urteil. Verwenden Sie JSON `hookSpecificOutput.retry: true`, um dem Modell mitzuteilen, dass es den abgelehnten Werkzeugaufruf möglicherweise erneut versuchen kann. Claude Code ignoriert `retry`, wenn der Klassifizierer kein Urteil gefällt hat |

133| `PostToolUse` | After a tool call succeeds |133| `PostToolUse` | Nach erfolgreichem Werkzeugaufruf |

134| `PostToolUseFailure` | After a tool call fails |134| `PostToolUseFailure` | Nach fehlgeschlagenem Werkzeugaufruf |

135| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |135| `PostToolBatch` | Nach Auflösung eines vollständigen Satzes paralleler Werkzeugaufrufe, bevor der nächste Modellaufruf erfolgt |

136| `Notification` | When Claude Code sends a notification |136| `Notification` | Wenn Claude Code eine Benachrichtigung sendet |

137| `MessageDisplay` | While assistant message text is displayed |137| `MessageDisplay` | Während der Text der Assistentnachricht angezeigt wird |

138| `SubagentStart` | When a subagent is spawned |138| `SubagentStart` | Wenn ein Subagent erzeugt wird |

139| `SubagentStop` | When a subagent finishes |139| `SubagentStop` | Wenn ein Subagent beendet wird |

140| `TaskCreated` | When a task is being created via `TaskCreate` |140| `TaskCreated` | Wenn eine Aufgabe über `TaskCreate` erstellt wird |

141| `TaskCompleted` | When a task is being marked as completed |141| `TaskCompleted` | Wenn eine Aufgabe als abgeschlossen markiert wird |

142| `Stop` | When Claude finishes responding |142| `Stop` | Wenn Claude die Antwort beendet |

143| `StopFailure` | When the turn ends due to an API error |143| `StopFailure` | Wenn die Runde aufgrund eines API-Fehlers endet |

144| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |144| `TeammateIdle` | Wenn ein [Agent-Team](/docs/de/agent-teams)-Teamkollege im Begriff ist, untätig zu werden |

145| `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 |145| `InstructionsLoaded` | Wenn eine CLAUDE.md- oder `.claude/rules/*.md`-Datei in den Kontext geladen wird. Wird beim Sitzungsstart und beim verzögerten Laden von Dateien während einer Sitzung ausgelöst |

146| `ConfigChange` | When a configuration file changes during a session |146| `ConfigChange` | Wenn sich eine Konfigurationsdatei während einer Sitzung ändert |

147| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |147| `CwdChanged` | Wenn sich das Arbeitsverzeichnis ändert, z. B. wenn Claude einen `cd`-Befehl ausführt. Nützlich für reaktive Umgebungsverwaltung mit Tools wie direnv |

148| `DirectoryAdded` | When a working directory is added mid-session via `/add-dir` or the SDK `register_repo_root` control request |148| `DirectoryAdded` | Wenn ein Arbeitsverzeichnis während einer Sitzung über `/add-dir` oder die SDK-Steueranforderung `register_repo_root` hinzugefügt wird |

149| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |149| `FileChanged` | Wenn sich eine überwachte Datei auf der Festplatte ändert. Das Feld `matcher` gibt an, welche Dateinamen überwacht werden sollen |

150| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |150| `WorktreeCreate` | Wenn ein Worktree über `--worktree`, `isolation: "worktree"` oder für eine Hintergrundsitzung erstellt wird. Ersetzt das Standard-Git-Verhalten |

151| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |151| `WorktreeRemove` | Wenn ein Worktree beim Sitzungsende, beim Beenden eines Subagenten oder beim Löschen einer Hintergrundsitzung entfernt wird |

152| `PreCompact` | Before context compaction |152| `PreCompact` | Vor Kontextkomprimierung |

153| `PostCompact` | After context compaction completes |153| `PostCompact` | Nach Abschluss der Kontextkomprimierung |

154| `PreModelSwitch` | Before Claude Code applies a model switch that you or a client requested. Can block the switch |154| `PreModelSwitch` | Bevor Claude Code einen Modellwechsel anwendet, den Sie oder ein Client angefordert haben. Kann den Wechsel blockieren |

155| `PostModelSwitch` | After the session's model changes, including changes Claude Code makes on its own, such as restoring the model when you resume a session |155| `PostModelSwitch` | Nach Änderung des Modells der Sitzung, einschließlich Änderungen, die Claude Code selbst vornimmt, z. B. Wiederherstellung des Modells beim Fortsetzen einer Sitzung |

156| `Elicitation` | When an MCP server requests user input during a tool call |156| `Elicitation` | Wenn ein MCP-Server während eines Werkzeugaufrufs Benutzereingaben anfordert |

157| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |157| `ElicitationResult` | Nachdem ein Benutzer auf eine MCP-Abfrage antwortet, bevor die Antwort an den Server zurückgesendet wird |

158| `SessionEnd` | When a session terminates |158| `SessionEnd` | Wenn eine Sitzung beendet wird |

159 159 

160**Hook-Typen**:160**Hook-Typen**:

161 161 


488 "lspServers": "./.lsp.json",488 "lspServers": "./.lsp.json",

489 "experimental": {489 "experimental": {

490 "themes": "./themes/",490 "themes": "./themes/",

491 "monitors": "./monitors.json"491 "monitors": "./monitors.json",

492 "evals": "quality/evals"

492 },493 },

493 "dependencies": [494 "dependencies": [

494 "helper-lib",495 "helper-lib",


533</h3>534</h3>

534 535 

535| Feld | Typ | Beschreibung | Beispiel |536| Feld | Typ | Beschreibung | Beispiel |

536| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |537| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------- |

537| `$schema` | string | JSON-Schema-URL für Editor-Autovervollständigung und Validierung. Claude Code ignoriert dieses Feld zur Ladezeit. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |538| `$schema` | string | JSON-Schema-URL für Editor-Autovervollständigung und Validierung. Claude Code ignoriert dieses Feld zur Ladezeit. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

538| `displayName` | string | Benutzerfreundlicher Name, der in der `/plugin`-Auswahl und anderen UI-Oberflächen angezeigt wird. Fällt auf `name` zurück, wenn weggelassen. Im Gegensatz zu `name` kann es Leerzeichen und beliebige Groß-/Kleinschreibung enthalten. Wird nicht für Namensgebung oder Suche verwendet. | `"Deployment Tools"` |539| `displayName` | string | Benutzerfreundlicher Name, der in der `/plugin`-Auswahl und anderen UI-Oberflächen angezeigt wird. Für ein Marketplace-installiertes Plugin hat ein `displayName` im [Marketplace-Eintrag](/docs/de/plugin-marketplaces#optional-plugin-fields) Vorrang vor diesem Wert. Wenn kein Anzeigename an beiden Stellen gesetzt ist, sehen Benutzer `name`. Im Gegensatz zu `name` kann es Leerzeichen und beliebige Groß-/Kleinschreibung enthalten. Wird nicht für Namensgebung oder Suche verwendet. | `"Deployment Tools"` |

539| `version` | string | Optional. Semantische Version. Das Setzen dieser Version fixiert das Plugin auf diese Versionsnummer, sodass Benutzer nur Updates erhalten, wenn Sie diese erhöhen, außer für eine [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources); siehe [Versionsverwaltung](#version-management). Falls auch im Marketplace-Eintrag gesetzt, gewinnt `plugin.json`. Falls weggelassen, kommt die Version aus der nächsten Quelle in [Versionsverwaltung](#version-management). | `"2.1.0"` |540| `version` | string | Optional. Semantische Version. Das Setzen dieser Version fixiert das Plugin auf diese Versionsnummer, sodass Benutzer nur Updates erhalten, wenn Sie diese erhöhen, außer für eine [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources); siehe [Versionsverwaltung](#version-management). Falls auch im Marketplace-Eintrag gesetzt, gewinnt `plugin.json`. Falls weggelassen, kommt die Version aus der nächsten Quelle in [Versionsverwaltung](#version-management). | `"2.1.0"` |

540| `description` | string | Kurze Erklärung des Plugin-Zwecks | `"Deployment automation tools"` |541| `description` | string | Kurze Erklärung des Plugin-Zwecks | `"Deployment automation tools"` |

541| `author` | object | Autoreninformationen | `{"name": "Dev Team", "email": "dev@company.com"}` |542| `author` | object | Autoreninformationen | `{"name": "Dev Team", "email": "dev@company.com"}` |


564</h3>565</h3>

565 566 

566| Feld | Typ | Beschreibung | Beispiel |567| Feld | Typ | Beschreibung | Beispiel |

567| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |568| :---------------------- | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

568| `skills` | string\|array | Benutzerdefinierte Skill-Verzeichnisse mit `<name>/SKILL.md`. Ergänzt den Standard-`skills/`-Scan. Siehe [Pfadverhaltenregeln](#path-behavior-rules) für die Marketplace-Root-Ausnahme | `"./custom/skills/"` |569| `skills` | string\|array | Benutzerdefinierte Skill-Verzeichnisse mit `<name>/SKILL.md`. Ergänzt den Standard-`skills/`-Scan. Siehe [Pfadverhaltenregeln](#path-behavior-rules) für die Marketplace-Root-Ausnahme | `"./custom/skills/"` |

569| `commands` | string\|array | Benutzerdefinierte flache `.md`-Skill-Dateien oder Verzeichnisse (ersetzt Standard-`commands/`) | `"./custom/cmd.md"` oder `["./cmd1.md"]` |570| `commands` | string\|array | Benutzerdefinierte flache `.md`-Skill-Dateien oder Verzeichnisse (ersetzt Standard-`commands/`) | `"./custom/cmd.md"` oder `["./cmd1.md"]` |

570| `agents` | string\|array | Benutzerdefinierte Agent-Dateien (ersetzt Standard-`agents/`) | `"./custom/agents/reviewer.md"` |571| `agents` | string\|array | Benutzerdefinierte Agent-Dateien (ersetzt Standard-`agents/`) | `"./custom/agents/reviewer.md"` |


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

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

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

579| `experimental.evals` | string\|array | Verzeichnis unter dem Plugin-Root, das die [Eval-Fälle](/docs/de/plugin-evals#use-a-different-eval-directory) des Plugins enthält, wenn es nicht das Standard-`evals/`-Verzeichnis ist. `claude plugin eval --eval-dir` überschreibt es | `"quality/evals"` |

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

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

580| `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" }]` |582| `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" }]` |


762 764 

763`${CLAUDE_PLUGIN_ROOT}` ändert sich, wenn das Plugin aktualisiert wird. Das Verzeichnis der vorherigen Version bleibt für einen Übergangszeitraum nach einem Update auf der Festplatte, aber behandeln Sie es als kurzlebig und schreiben Sie keinen Zustand dorthin. Siehe [Plugin-Caching](#plugin-caching-and-file-resolution) für Cleanup-Semantik.765`${CLAUDE_PLUGIN_ROOT}` ändert sich, wenn das Plugin aktualisiert wird. Das Verzeichnis der vorherigen Version bleibt für einen Übergangszeitraum nach einem Update auf der Festplatte, aber behandeln Sie es als kurzlebig und schreiben Sie keinen Zustand dorthin. Siehe [Plugin-Caching](#plugin-caching-and-file-resolution) für Cleanup-Semantik.

764 766 

765Wenn 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 zum neuen Pfad zu wechseln; Monitore erfordern einen Sitzungsneustart. Für ein Plugin mit einer `command`-Quelle kann Claude Code [das Plugin selbst neu laden](/docs/de/plugin-marketplaces#when-claude-code-re-runs-the-command).767Wenn 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 zum neuen Pfad zu wechseln; Monitore erfordern einen Sitzungsneustart. In einer Sitzung ohne interaktives Terminal bleibt das Reload-Plugin-MCP-Server auf dem alten Pfad, bis die nächste Sitzung beginnt. Für ein Plugin mit einer `command`-Quelle kann Claude Code [das Plugin selbst neu laden](/docs/de/plugin-marketplaces#when-claude-code-re-runs-the-command).

766 768 

767MCP-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).769MCP-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).

768 770 


873 875 

874Claude Code erlaubt einem Plugin nicht, auf Dateien außerhalb seines eigenen Verzeichnisses zu verweisen. Es lehnt einen Komponentenpfad ab, der außerhalb des Plugin-Stammverzeichnisses aufgelöst wird, unabhängig davon, ob der Pfad in `plugin.json` oder in einem [Marketplace-Eintrag](/docs/de/plugin-marketplaces#plugin-entries) deklariert ist. Dies umfasst einen Pfad, der außerhalb des Plugins verweist, wie geschrieben, z. B. `../shared-utils`, und einen Symlink, der außerhalb des Plugins führt, mit Ausnahme von [Links innerhalb eines Marketplace](#share-files-within-a-marketplace-with-symlinks).876Claude Code erlaubt einem Plugin nicht, auf Dateien außerhalb seines eigenen Verzeichnisses zu verweisen. Es lehnt einen Komponentenpfad ab, der außerhalb des Plugin-Stammverzeichnisses aufgelöst wird, unabhängig davon, ob der Pfad in `plugin.json` oder in einem [Marketplace-Eintrag](/docs/de/plugin-marketplaces#plugin-entries) deklariert ist. Dies umfasst einen Pfad, der außerhalb des Plugins verweist, wie geschrieben, z. B. `../shared-utils`, und einen Symlink, der außerhalb des Plugins führt, mit Ausnahme von [Links innerhalb eines Marketplace](#share-files-within-a-marketplace-with-symlinks).

875 877 

878Auf macOS und Linux lehnt Claude Code auch einen Komponentenpfad ab, der an irgendeiner Stelle einen Backslash enthält, auch wenn der Pfad innerhalb des Plugins bleibt. Komponenten, die mit Backslash-Pfaden deklariert sind, werden daher nur unter Windows geladen. Schreiben Sie Komponentenpfade mit Schrägstrichen, z. B. `./commands/deploy.md`.

879 

876Wenn Claude Code einen Pfad ablehnt, meldet es einen [`path escapes plugin directory`](/docs/de/errors#path-escapes-plugin-directory)-Fehler und lädt das Plugin ohne diese Komponente.880Wenn Claude Code einen Pfad ablehnt, meldet es einen [`path escapes plugin directory`](/docs/de/errors#path-escapes-plugin-directory)-Fehler und lädt das Plugin ohne diese Komponente.

877 881 

878Claude Code kopiert auch keine Dateien außerhalb des Plugin-Verzeichnisses in den Cache, wenn es das Plugin installiert. Wenn also ein Skript in einem kopierten Plugin einen Pfad über dem Plugin-Stammverzeichnis liest, findet es diese Dateien auch nicht.882Claude Code kopiert auch keine Dateien außerhalb des Plugin-Verzeichnisses in den Cache, wenn es das Plugin installiert. Wenn also ein Skript in einem kopierten Plugin einen Pfad über dem Plugin-Stammverzeichnis liest, findet es diese Dateien auch nicht.


994claude plugin init <name> [options]998claude plugin init <name> [options]

995```999```

996 1000 

997**Argumente:**1001Der Befehl nimmt diese Argumente an:

998 1002 

999* `<name>`: Plugin-Name. Wird zum Skill-Namespace und zum Verzeichnisnamen unter `~/.claude/skills/`, daher darf er keine Leerzeichen oder Pfad-Trennzeichen enthalten.1003* `<name>`: Plugin-Name. Wird zum Skill-Namespace und zum Verzeichnisnamen unter `~/.claude/skills/`, daher darf er keine Leerzeichen oder Pfad-Trennzeichen enthalten.

1000 1004 

1001**Optionen:**1005Der Befehl akzeptiert diese Optionen:

1002 1006 

1003| Option | Beschreibung | Standard |1007| Option | Beschreibung | Standard |

1004| :----------------------- | :------------------------------------------------------------------------------------------------------------------- | :---------------------- |1008| :----------------------- | :------------------------------------------------------------------------------------------------------------------- | :---------------------- |


1009| `-f, --force` | Vorhandenes `.claude-plugin/` am Ziel überschreiben | |1013| `-f, --force` | Vorhandenes `.claude-plugin/` am Ziel überschreiben | |

1010| `-h, --help` | Hilfe für Befehl anzeigen | |1014| `-h, --help` | Hilfe für Befehl anzeigen | |

1011 1015 

1012**Aliase:** `new`1016`claude plugin new` ist ein Alias für diesen Befehl.

1013 1017 

1014Jeder `--with`-Wert fügt eine Starter-Datei für diese Komponente hinzu, bereit zum Bearbeiten:1018Jeder `--with`-Wert fügt eine Starter-Datei für diese Komponente hinzu, bereit zum Bearbeiten:

1015 1019 


1025 1029 

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

1027 1031 

1028**Beispiele:**1032Diese Beispiele zeigen häufige Aufrufe:

1029 1033 

1030```bash theme={null}1034```bash theme={null}

1031# Minimales Plugin gerüsten1035# Minimales Plugin gerüsten


1048claude plugin install <plugin> [options]1052claude plugin install <plugin> [options]

1049```1053```

1050 1054 

1051**Argumente:**1055Der Befehl nimmt diese Argumente an:

1052 1056 

1053* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name` für einen bestimmten Marketplace1057* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name` für einen bestimmten Marketplace

1054 1058 

1055**Optionen:**1059Der Befehl akzeptiert diese Optionen:

1056 1060 

1057| Option | Beschreibung | Standard |1061| Option | Beschreibung | Standard |

1058| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |1062| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |

1059| `-s, --scope <scope>` | Installationsumfang: `user`, `project` oder `local` | `user` |1063| `-s, --scope <scope>` | Installationsumfang: `user`, `project` oder `local` | `user` |

1060| `--config <key=value>` | Setzen Sie eine [`userConfig`](#user-configuration)-Option, die im Plugin-Manifest deklariert ist. Wiederholen Sie das Flag, um mehrere Optionen zu setzen | |1064| `--config <key=value>` | Setzen Sie eine [`userConfig`](#user-configuration)-Option, die im Plugin-Manifest deklariert ist. Wiederholen Sie das Flag, um mehrere Optionen zu setzen | |

1061| `-y, --yes` | Akzeptieren Sie einen Befehl, den der Marketplace des Plugins deklariert, ohne die Bestätigungsaufforderung: den Befehl, der ein Plugin mit einer [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources) erzeugt, oder den [`headersHelper`](/docs/de/plugin-marketplaces#authenticate-archive-downloads), der einen Archiv-Download authentifiziert. Das Akzeptieren eines `headersHelper` erfordert Claude Code v2.1.238 oder später. Claude Code druckt den Befehl trotzdem zuerst. Erforderlich, wenn stdin oder stdout kein TTY ist. Hat keine Auswirkung innerhalb einer Claude Code-Sitzung, daher führen Sie den Befehl von Ihrem eigenen Terminal aus | |1065| `-y, --yes` | Akzeptieren Sie einen Befehl, den der Marketplace des Plugins deklariert, ohne die Bestätigungsaufforderung: den Befehl, der ein Plugin mit einer [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources) erzeugt, oder den [`headersHelper`](/docs/de/plugin-marketplaces#authenticate-archive-downloads), der einen Archiv-Download authentifiziert. Das Akzeptieren eines `headersHelper` erfordert Claude Code v2.1.238 oder später. Claude Code druckt den Befehl trotzdem zuerst. Erforderlich, wenn stdin oder stdout kein TTY ist. Hat keine Auswirkung innerhalb einer Claude Code-Sitzung, daher führen Sie den Befehl von Ihrem eigenen Terminal aus | |

1066| `--json` | Geben Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout aus, anstelle der benutzerfreundlichen Nachricht, zur Verwendung in Skripten. Siehe [JSON-Ergebnisformat](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später | |

1062| `-h, --help` | Hilfe für Befehl anzeigen | |1067| `-h, --help` | Hilfe für Befehl anzeigen | |

1063 1068 

1064Der Umfang bestimmt, welche Einstellungsdatei das installierte Plugin hinzugefügt wird. Beispielsweise schreibt `--scope project` zu `enabledPlugins` in .claude/settings.json, wodurch das Plugin für alle verfügbar wird, die das Projekt-Repository klonen.1069Der Umfang bestimmt, welche Einstellungsdatei das installierte Plugin hinzugefügt wird. Beispielsweise schreibt `--scope project` zu `enabledPlugins` in .claude/settings.json, wodurch das Plugin für alle verfügbar wird, die das Projekt-Repository klonen.

1065 1070 

1066**Beispiele:**1071<span id="plugin-json-result" />Mit `--json` ist die letzte Zeile von stdout ein JSON-Objekt. Analysieren Sie nur diese Zeile, da Claude Code jeden Befehl, den der Marketplace deklariert, davor druckt. Drei Felder sind immer vorhanden:

1072 

1073* `command`: der Unterbefehl, der ausgeführt wurde, wie `install`

1074* `outcome`: `ok` oder `failed`

1075* `message`: eine benutzerfreundliche Beschreibung des Ergebnisses

1076 

1077Andere Felder, wie `pluginId`, `scope` und `failureCode`, erscheinen nur, wenn sie zutreffen. Die `--json`-Option auf `plugin uninstall`, `plugin update`, `plugin enable` und `plugin disable` druckt das gleiche Objekt mit den eigenen Feldern dieses Unterbefehls. Ein Nutzungsfehler, wie ein ungültiger `--scope`, druckt keine Ergebniszeile und beendet sich mit 1 mit dem Grund auf stderr.

1078 

1079Diese Beispiele zeigen häufige Aufrufe:

1067 1080 

1068```bash theme={null}1081```bash theme={null}

1069# Im Benutzerumfang installieren (Standard)1082# Im Benutzerumfang installieren (Standard)


1086claude plugin uninstall <plugin> [options]1099claude plugin uninstall <plugin> [options]

1087```1100```

1088 1101 

1089**Argumente:**1102Der Befehl nimmt diese Argumente an:

1090 1103 

1091* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`1104* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`

1092 1105 

1093**Optionen:**1106Der Befehl akzeptiert diese Optionen:

1094 1107 

1095| Option | Beschreibung | Standard |1108| Option | Beschreibung | Standard |

1096| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :------- |1109| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |

1097| `-s, --scope <scope>` | Aus Umfang deinstallieren: `user`, `project` oder `local` | `user` |1110| `-s, --scope <scope>` | Aus Umfang deinstallieren: `user`, `project` oder `local` | `user` |

1098| `--keep-data` | Das [persistent data directory](#persistent-data-directory) des Plugins beibehalten | |1111| `--keep-data` | Das [persistent data directory](#persistent-data-directory) des Plugins beibehalten | |

1099| `--prune` | Auch automatisch installierte Abhängigkeiten entfernen, die kein anderes Plugin benötigt. Siehe [plugin prune](#plugin-prune) | |1112| `--prune` | Auch automatisch installierte Abhängigkeiten entfernen, die kein anderes Plugin benötigt. Siehe [plugin prune](#plugin-prune) | |

1100| `-y, --yes` | Bestätigungsaufforderung für `--prune` überspringen. Erforderlich, wenn stdin oder stdout kein TTY ist | |1113| `-y, --yes` | Bestätigungsaufforderung für `--prune` überspringen. Erforderlich, wenn stdin oder stdout kein TTY ist | |

1114| `--json` | Geben Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout aus, im [gleichen Format wie `plugin install --json`](#plugin-json-result). Kann nicht mit `--prune` kombiniert werden. Erfordert Claude Code v2.1.268 oder später | |

1101| `-h, --help` | Hilfe für Befehl anzeigen | |1115| `-h, --help` | Hilfe für Befehl anzeigen | |

1102 1116 

1103**Aliase:** `remove`, `rm`1117`claude plugin remove` und `claude plugin rm` sind Aliase für diesen Befehl.

1104 1118 

1105Standardmäßig werden beim Deinstallieren aus dem letzten verbleibenden Umfang auch das `${CLAUDE_PLUGIN_DATA}`-Verzeichnis des Plugins gelöscht. Verwenden Sie `--keep-data`, um es zu bewahren, beispielsweise beim Neuinstallieren nach dem Testen einer neuen Version.1119Standardmäßig werden beim Deinstallieren aus dem letzten verbleibenden Umfang auch das `${CLAUDE_PLUGIN_DATA}`-Verzeichnis des Plugins gelöscht. Verwenden Sie `--keep-data`, um es zu bewahren, beispielsweise beim Neuinstallieren nach dem Testen einer neuen Version.

1106 1120 


1118claude plugin prune [options]1132claude plugin prune [options]

1119```1133```

1120 1134 

1121**Optionen:**1135Der Befehl akzeptiert diese Optionen:

1122 1136 

1123| Option | Beschreibung | Standard |1137| Option | Beschreibung | Standard |

1124| :-------------------- | :--------------------------------------------------------------------------------------- | :------- |1138| :-------------------- | :--------------------------------------------------------------------------------------- | :------- |


1127| `-y, --yes` | Bestätigungsaufforderung überspringen. Erforderlich, wenn stdin oder stdout kein TTY ist | |1141| `-y, --yes` | Bestätigungsaufforderung überspringen. Erforderlich, wenn stdin oder stdout kein TTY ist | |

1128| `-h, --help` | Hilfe für Befehl anzeigen | |1142| `-h, --help` | Hilfe für Befehl anzeigen | |

1129 1143 

1130**Aliase:** `autoremove`1144`claude plugin autoremove` ist ein Alias für diesen Befehl.

1131 1145 

1132Der Befehl listet verwaiste Abhängigkeiten auf und fragt vor dem Entfernen um Bestätigung. Um ein Plugin zu entfernen und seine Abhängigkeiten in einem Schritt zu bereinigen, führen Sie `claude plugin uninstall <plugin> --prune` aus.1146Der Befehl listet verwaiste Abhängigkeiten auf und fragt vor dem Entfernen um Bestätigung. Um ein Plugin zu entfernen und seine Abhängigkeiten in einem Schritt zu bereinigen, führen Sie `claude plugin uninstall <plugin> --prune` aus.

1133 1147 


1141claude plugin enable <plugin> [options]1155claude plugin enable <plugin> [options]

1142```1156```

1143 1157 

1144**Argumente:**1158Der Befehl nimmt diese Argumente an:

1145 1159 

1146* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`1160* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`

1147 1161 

1148**Optionen:**1162Der Befehl akzeptiert diese Optionen:

1149 1163 

1150| Option | Beschreibung | Standard |1164| Option | Beschreibung | Standard |

1151| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :--------------------- |1165| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------- |

1152| `-s, --scope <scope>` | Umfang zum Aktivieren: `user`, `project` oder `local`. Wenn weggelassen, erkennt Claude Code den Umfang, in dem das Plugin installiert ist | Automatische Erkennung |1166| `-s, --scope <scope>` | Umfang zum Aktivieren: `user`, `project` oder `local`. Wenn weggelassen, erkennt Claude Code den Umfang, in dem das Plugin installiert ist | Automatische Erkennung |

1167| `--json` | Geben Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout aus, im [gleichen Format wie `plugin install --json`](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später | |

1153| `-h, --help` | Hilfe für Befehl anzeigen | |1168| `-h, --help` | Hilfe für Befehl anzeigen | |

1154 1169 

1155<h3 id="plugin-disable">1170<h3 id="plugin-disable">


1162claude plugin disable [plugin] [options]1177claude plugin disable [plugin] [options]

1163```1178```

1164 1179 

1165**Argumente:**1180Der Befehl nimmt diese Argumente an:

1166 1181 

1167* `[plugin]`: Plugin-Name oder `plugin-name@marketplace-name`. Optional bei Verwendung von `--all`1182* `[plugin]`: Plugin-Name oder `plugin-name@marketplace-name`. Optional bei Verwendung von `--all`

1168 1183 

1169**Optionen:**1184Der Befehl akzeptiert diese Optionen:

1170 1185 

1171| Option | Beschreibung | Standard |1186| Option | Beschreibung | Standard |

1172| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------- |1187| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------- |

1173| `-a, --all` | Alle aktivierten Plugins deaktivieren. Kann nicht mit `--scope` kombiniert werden | |1188| `-a, --all` | Alle aktivierten Plugins deaktivieren. Kann nicht mit `--scope` kombiniert werden | |

1174| `-s, --scope <scope>` | Umfang zum Deaktivieren: `user`, `project` oder `local`. Wenn weggelassen, erkennt Claude Code den Umfang, in dem das Plugin installiert ist | Automatische Erkennung |1189| `-s, --scope <scope>` | Umfang zum Deaktivieren: `user`, `project` oder `local`. Wenn weggelassen, erkennt Claude Code den Umfang, in dem das Plugin installiert ist | Automatische Erkennung |

1190| `--json` | Geben Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout aus, im [gleichen Format wie `plugin install --json`](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später | |

1175| `-h, --help` | Hilfe für Befehl anzeigen | |1191| `-h, --help` | Hilfe für Befehl anzeigen | |

1176 1192 

1177<h3 id="plugin-update">1193<h3 id="plugin-update">


1184claude plugin update <plugin> [options]1200claude plugin update <plugin> [options]

1185```1201```

1186 1202 

1187**Argumente:**1203Der Befehl nimmt diese Argumente an:

1188 1204 

1189* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`1205* `<plugin>`: Plugin-Name oder `plugin-name@marketplace-name`

1190 1206 

1191**Optionen:**1207Der Befehl akzeptiert diese Optionen:

1192 1208 

1193| Option | Beschreibung | Standard |1209| Option | Beschreibung | Standard |

1194| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |1210| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |

1195| `-s, --scope <scope>` | Umfang zum Aktualisieren: `user`, `project`, `local` oder `managed` | `user` |1211| `-s, --scope <scope>` | Umfang zum Aktualisieren: `user`, `project`, `local` oder `managed` | `user` |

1196| `-y, --yes` | Akzeptieren Sie einen Befehl, den der Marketplace des Plugins deklariert, ohne die Bestätigungsaufforderung: den Befehl, der ein Plugin mit einer [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources) erzeugt, oder den [`headersHelper`](/docs/de/plugin-marketplaces#authenticate-archive-downloads), der einen Archiv-Download authentifiziert. Das Akzeptieren eines `headersHelper` erfordert Claude Code v2.1.238 oder später. Claude Code druckt den Befehl trotzdem zuerst. Erforderlich, wenn stdin oder stdout kein TTY ist. Hat keine Auswirkung innerhalb einer Claude Code-Sitzung, daher führen Sie den Befehl von Ihrem eigenen Terminal aus | |1212| `-y, --yes` | Akzeptieren Sie einen Befehl, den der Marketplace des Plugins deklariert, ohne die Bestätigungsaufforderung: den Befehl, der ein Plugin mit einer [`command`-Quelle](/docs/de/plugin-marketplaces#command-sources) erzeugt, oder den [`headersHelper`](/docs/de/plugin-marketplaces#authenticate-archive-downloads), der einen Archiv-Download authentifiziert. Das Akzeptieren eines `headersHelper` erfordert Claude Code v2.1.238 oder später. Claude Code druckt den Befehl trotzdem zuerst. Erforderlich, wenn stdin oder stdout kein TTY ist. Hat keine Auswirkung innerhalb einer Claude Code-Sitzung, daher führen Sie den Befehl von Ihrem eigenen Terminal aus | |

1213| `--json` | Geben Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout aus, im [gleichen Format wie `plugin install --json`](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später | |

1197| `-h, --help` | Hilfe für Befehl anzeigen | |1214| `-h, --help` | Hilfe für Befehl anzeigen | |

1198 1215 

1199<Note>1216<Note>


1212claude plugin list [options]1229claude plugin list [options]

1213```1230```

1214 1231 

1215**Optionen:**1232Der Befehl akzeptiert diese Optionen:

1216 1233 

1217| Option | Beschreibung | Standard |1234| Option | Beschreibung | Standard |

1218| :------------ | :------------------------------------------------------------------- | :------- |1235| :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |

1219| `--json` | Ausgabe als JSON | |1236| `--json` | Ausgabe als JSON. Eine Plugin-Zeile mit Ladeproblemen oder Authoring-Warnungen trägt `errors`- oder `notes`-String-Arrays. Auf Claude Code v2.1.268 oder später geben parallele `errorDetails`- und `noteDetails`-Arrays jedem Eintrag seinen diagnostischen `type` und die Namen, auf die er sich bezieht, wie das Plugin, den Marketplace, den Server oder die Datei | |

1220| `--available` | Verfügbare Plugins aus Marketplaces einschließen. Erfordert `--json` | |1237| `--available` | Verfügbare Plugins aus Marketplaces einschließen. Erfordert `--json` | |

1221| `-h, --help` | Hilfe für Befehl anzeigen | |1238| `-h, --help` | Hilfe für Befehl anzeigen | |

1222 1239 


1238claude plugin details <name>1255claude plugin details <name>

1239```1256```

1240 1257 

1241**Argumente:**1258Der Befehl nimmt diese Argumente an:

1242 1259 

1243* `<name>`: Plugin-Name oder `plugin-name@marketplace-name`1260* `<name>`: Plugin-Name oder `plugin-name@marketplace-name`

1244 1261 

1245**Optionen:**1262Der Befehl akzeptiert diese Optionen:

1246 1263 

1247| Option | Beschreibung | Standard |1264| Option | Beschreibung | Standard |

1248| :----------- | :------------------------ | :------- |1265| :----------- | :------------------------ | :------- |


1293claude plugin validate <path> [options]1310claude plugin validate <path> [options]

1294```1311```

1295 1312 

1296**Argumente:**1313Der Befehl nimmt diese Argumente an:

1297 1314 

1298* `<path>`: Pfad zu einem Plugin-Verzeichnis oder einem Marketplace-Verzeichnis. Siehe [Validate a plugin or a directory without a manifest](/docs/de/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) für die Dateien, die ein Plugin-Lauf abdeckt.1315* `<path>`: Pfad zu einem Plugin-Verzeichnis oder einem Marketplace-Verzeichnis. Siehe [Validate a plugin or a directory without a manifest](/docs/de/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) für die Dateien, die ein Plugin-Lauf abdeckt.

1299 1316 

1300**Optionen:**1317Der Befehl akzeptiert diese Optionen:

1301 1318 

1302| Option | Beschreibung | Standard |1319| Option | Beschreibung | Standard |

1303| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |1320| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |


1317 1334 

1318Innerhalb einer interaktiven Sitzung führt `/plugin validate <path>` die gleichen Überprüfungen inline aus.1335Innerhalb einer interaktiven Sitzung führt `/plugin validate <path>` die gleichen Überprüfungen inline aus.

1319 1336 

1337<h3 id="plugin-eval">

1338 plugin eval

1339</h3>

1340 

1341Führen Sie die [eval cases](/docs/de/plugin-evals) eines Plugins aus und melden Sie bewertete Ergebnisse. Erfordert Claude Code v2.1.269 oder später. Jeder Fall ist ein Prompt plus Bewerter; Claude Code führt ihn mehrmals in einer isolierten Sitzung aus, in der nur das Ziel-Plugin geladen ist, und standardmäßig auch ohne das Plugin, damit der Bericht den Unterschied zeigt. Siehe [Test plugins with evals](/docs/de/plugin-evals) für das Case-Format, Bewerter, Ergebnisse und CI-Nutzung.

1342 

1343```bash theme={null}

1344claude plugin eval [target] [options]

1345```

1346 

1347Das optionale `target` ist ein Plugin-Verzeichnis, eine einzelne `prompt.md`- oder `case.yaml`-Datei, ein installiertes Plugin als `name` oder `name@marketplace`, oder `name@skills-dir`, und standardmäßig das aktuelle Verzeichnis. Platzieren Sie es vor `--tag`, `--allow-tools` und `--json`.

1348 

1349Diese Tabelle listet die Optionen auf, die die meisten Läufe verwenden. Führen Sie `claude plugin eval --help` aus, um den vollständigen Satz zu sehen, einschließlich `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` und `--verbose`.

1350 

1351| Option | Beschreibung | Standard |

1352| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |

1353| `--runs <n>` | Läufe pro Fall pro Arm | Jedes Case's `runs`, sonst 3 |

1354| `-j, --concurrency <n>` | Agent-Sitzungen, die gleichzeitig ausgeführt werden, 1 bis 8. Sie teilen Ihr Rate Limit | `1` |

1355| `--model <model>` | Modell für den getesteten Agent | Jedes Case's `model`, sonst `ANTHROPIC_MODEL` falls gesetzt, sonst Claude Code's Standard |

1356| `--judge-model <model>` | Modell für `llm`- und `baseline`-Bewerter | Ein kleines schnelles Modell |

1357| `--ablation <mode>` | `none` oder `with-without`. Siehe [Compare against a no-plugin baseline](/docs/de/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` wenn ein Plugin aufgelöst wird, sonst `none` |

1358| `--threshold <0..1>` | Beenden Sie mit 1, wenn ein Case unter diesem Wert bewertet wird | `1.0` |

1359| `--max-cost-usd <usd>` | Stoppen Sie vor dem nächsten Lauf, sobald die Ausgaben diesen Betrag erreichen, beenden Sie mit 2 und melden Sie Teilergebnisse | Keine Obergrenze |

1360| `--allow-tools <tools...>` | Gewähren Sie Tools über den schreibgeschützten Satz hinaus, wie `Bash`, `Write`, `Edit` oder `"mcp__plugin_<plugin>_<server>__*"`. Siehe [Grant tools](/docs/de/plugin-evals#grant-tools) | |

1361| `--scaffold` | Führen Sie das [`scaffold_script`](/docs/de/plugin-evals#add-setup-or-history-with-case-yaml) jedes Cases aus | Aus |

1362| `--trust-plugin` | Überspringen Sie die Vertrauensaufforderung beim ersten Lauf, für CI. Siehe [What a run can access](/docs/de/plugin-evals#security) | Aus |

1363| `--mocks <mode>` | `record` oder `off`. Siehe [Mock MCP servers](/docs/de/plugin-evals#mock-mcp-servers) | `record` |

1364| `--eval-dir <dir>` | Verzeichnis unter dem Plugin, das die Cases enthält | Das Manifest's `experimental.evals`, sonst `evals` |

1365| `--json [path]` | Drucken Sie das [result document](/docs/de/plugin-evals#json-result) auf stdout, oder schreiben Sie es in einen `.json`-Pfad | |

1366| `--no-publish` | Halten Sie den HTML-Bericht lokal | |

1367| `-h, --help` | Hilfe für Befehl anzeigen | |

1368 

1369Der Befehl beendet sich mit 0, wenn jeder Fall den Schwellenwert erfüllt, mit 1 bei einem fehlgeschlagenen Fall, einem Ladefehler oder einem nicht vertrauenswürdigen Plugin-Verzeichnis, mit 2 bei einem Teillauf, mit 130 bei Unterbrechung und mit 143 bei Beendigung. Siehe [Run evals in CI](/docs/de/plugin-evals#run-evals-in-ci).

1370 

1371<h3 id="plugin-eval-init">

1372 plugin eval init

1373</h3>

1374 

1375Erstellen Sie eine Eval-Suite für das Plugin im aktuellen Verzeichnis. Erfordert Claude Code v2.1.269 oder später. In einem Terminal startet dies ein Authoring-Interview, das das Plugin liest, Cases und Bewerter vorschlägt, sie pilotiert und die Dateien schreibt. Mit `--bare` oder ohne Terminal schreibt es stattdessen eine leere Single-Case-Vorlage. Wenn Sie von einer interaktiven Claude Code-Sitzung aus ausgeführt werden, druckt es die Interview-Anweisungen für diese Sitzung, um sie zu befolgen, anstatt eine Vorlage zu schreiben. Siehe [Create your first eval suite](/docs/de/plugin-evals#create-your-first-eval-suite).

1376 

1377```bash theme={null}

1378claude plugin eval init [name] [options]

1379```

1380 

1381Das optionale `name` ist ein Case-Name: Das Interview benötigt keinen, während `--bare` und die No-Terminal-Vorlagenpfad ihn benötigen. Es akzeptiert diese Optionen:

1382 

1383| Option | Beschreibung | Standard |

1384| :------------------ | :----------------------------------------------------------------------------------------- | :------------------------------------------------- |

1385| `--bare` | Schreiben Sie stattdessen ein leeres `prompt.md` und `graders/criteria.md` für `<name>` | |

1386| `-i, --interactive` | Erfordern Sie das Interview. Schlägt ohne Terminal fehl, anstatt eine Vorlage zu schreiben | |

1387| `--eval-dir <dir>` | Verzeichnis unter dem aktuellen Verzeichnis, um Cases hineinzuschreiben | Das Manifest's `experimental.evals`, sonst `evals` |

1388| `-h, --help` | Hilfe für Befehl anzeigen | |

1389 

1320<h3 id="plugin-tag">1390<h3 id="plugin-tag">

1321 plugin tag1391 plugin tag

1322</h3>1392</h3>


1327claude plugin tag [path] [options]1397claude plugin tag [path] [options]

1328```1398```

1329 1399 

1330**Argumente:**1400Der Befehl nimmt diese Argumente an:

1331 1401 

1332* `[path]`: Pfad zum Plugin-Verzeichnis. Standardmäßig das aktuelle Verzeichnis.1402* `[path]`: Pfad zum Plugin-Verzeichnis. Standardmäßig das aktuelle Verzeichnis.

1333 1403 

1334**Optionen:**1404Der Befehl akzeptiert diese Optionen:

1335 1405 

1336| Option | Beschreibung | Standard |1406| Option | Beschreibung | Standard |

1337| :-------------------- | :----------------------------------------------------------------------------------------- | :------- |1407| :-------------------- | :----------------------------------------------------------------------------------------- | :------- |

prompt-caching.md +118 −102

Details

14 Wie der Cache organisiert ist14 Wie der Cache organisiert ist

15</h2>15</h2>

16 16 

17Jedes Mal, wenn Sie eine Nachricht in Claude Code senden, wird eine neue API-Anfrage gestellt. Das Modell merkt sich nichts zwischen Anfragen, daher sendet Claude Code den vollständigen Kontext erneut: den System-Prompt, Ihren Projektkontext, jede vorherige Nachricht und jedes Tool-Ergebnis sowie Ihre neue Nachricht. Neuer Inhalt wird am Ende angehängt, was bedeutet, dass der größte Teil jeder Anfrage identisch mit der vorherigen ist. Prompt Caching ist, wie die API vermeidet, den Teil neu zu verarbeiten, der sich nicht geändert hat.17Jedes Mal, wenn Sie eine Nachricht in Claude Code senden, wird eine neue API-Anfrage gestellt. Das Modell merkt sich nichts zwischen Anfragen, daher sendet Claude Code den vollständigen Kontext erneut: die Systemaufforderung, Ihren Projektkontext, jede vorherige Nachricht und jedes Werkzeugergebnis sowie Ihre neue Nachricht. Neuer Inhalt wird am Ende angefügt, was bedeutet, dass der größte Teil jeder Anfrage identisch mit der vorherigen ist. Prompt Caching ist die Methode, mit der die API vermeidet, den Teil zu verarbeiten, der sich nicht geändert hat.

18 18 

19Die API cached durch Abgleich des Anfangs jeder Anfrage, genannt das Präfix, gegen kürzlich verarbeitete Inhalte. Bei einem normalen Turn ist das Präfix die gesamte vorherige Anfrage und nur der neueste Austausch ist neu. Der Abgleich ist exakt, daher wird alles nach einer Änderung im Präfix neu berechnet. Es gibt kein Pro-Datei- oder Pro-Segment-Caching. Siehe [wie Prompt Caching funktioniert](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works) in der API-Referenz für den zugrunde liegenden Mechanismus.19Die API speichert durch Abgleich des Anfangs jeder Anfrage, genannt das Präfix, gegen kürzlich verarbeitete Inhalte. Bei einem normalen Zug ist das Präfix die gesamte vorherige Anfrage und nur der neueste Austausch ist neu. Der Abgleich ist exakt, daher wird alles nach dem Präfix neu berechnet, wenn sich etwas im Präfix ändert. Es gibt kein Pro-Datei- oder Pro-Segment-Caching. Siehe [wie Prompt Caching funktioniert](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#how-prompt-caching-works) in der API-Referenz für den zugrunde liegenden Mechanismus.

20 20 

21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Vier Turns werden als wachsende horizontale Balken angezeigt. Die Anfrage jedes Turns enthält alles aus dem vorherigen Turn plus den neuesten Austausch am Ende angehängt. Bei den Turns zwei und drei wird das unveränderte Präfix aus dem Cache gelesen und nur der neue Austausch verarbeitet. Bei Turn vier hat sich der System-Prompt geändert, daher stimmt das Präfix nicht mehr überein und die gesamte Anfrage wird neu verarbeitet und geschrieben." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Vier Züge werden als wachsende horizontale Balken angezeigt. Die Anfrage jedes Zugs enthält alles aus dem vorherigen Zug plus den neuesten Austausch am Ende. Bei den Zügen zwei und drei wird das unveränderte Präfix aus dem Cache gelesen und nur der neue Austausch wird verarbeitet. Bei Zug vier hat sich die Systemaufforderung geändert, daher stimmt das Präfix nicht mehr überein und die gesamte Anfrage wird neu verarbeitet und geschrieben." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />

22 22 

23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=297dc1c639f0915cae858d0c4b6f3be5" className="hidden dark:block" alt="Vier Turns werden als wachsende horizontale Balken angezeigt. Die Anfrage jedes Turns enthält alles aus dem vorherigen Turn plus den neuesten Austausch am Ende angehängt. Bei den Turns zwei und drei wird das unveränderte Präfix aus dem Cache gelesen und nur der neue Austausch verarbeitet. Bei Turn vier hat sich der System-Prompt geändert, daher stimmt das Präfix nicht mehr überein und die gesamte Anfrage wird neu verarbeitet und geschrieben." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=297dc1c639f0915cae858d0c4b6f3be5" className="hidden dark:block" alt="Vier Züge werden als wachsende horizontale Balken angezeigt. Die Anfrage jedes Zugs enthält alles aus dem vorherigen Zug plus den neuesten Austausch am Ende. Bei den Zügen zwei und drei wird das unveränderte Präfix aus dem Cache gelesen und nur der neue Austausch wird verarbeitet. Bei Zug vier hat sich die Systemaufforderung geändert, daher stimmt das Präfix nicht mehr überein und die gesamte Anfrage wird neu verarbeitet und geschrieben." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />

24 24 

25Um das Beste aus dem Präfix-Abgleich herauszuholen, ordnet Claude Code jede Anfrage so, dass Inhalte, die sich zwischen Turns selten ändern, zuerst kommen:25Um das Beste aus dem Präfix-Abgleich herauszuholen, ordnet Claude Code jede Anfrage so, dass Inhalte, die sich zwischen Zügen selten ändern, zuerst kommen:

26 26 

27| Ebene | Inhalt | Ändert sich wenn |27| Ebene | Inhalt | Ändert sich wenn |

28| -------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |28| ------------------ | ------------------------------------------------------- | ------------------------------------------------------- |

29| System-Prompt | Kernanleitungen, Tool-Definitionen, Ausgabestil | Der Satz der geladenen Tool-Definitionen ändert sich, Sie wechseln den Ausgabestil, oder Claude Code wird aktualisiert |29| Systemaufforderung | Kernanweisungen, Werkzeugdefinitionen | Der Satz der geladenen Werkzeugdefinitionen ändert sich |

30| Projektkontext | CLAUDE.md, automatisches Memory, unscoped Rules | Session startet, oder nach `/clear` oder `/compact` |30| Projektkontext | CLAUDE.md, automatisches Gedächtnis, unscoped-Regeln | Sitzung startet, oder nach `/clear` oder `/compact` |

31| Konversation | Ihre Nachrichten, Claudes Antworten, Tool-Ergebnisse | Jeden Turn |31| Konversation | Ihre Nachrichten, Claudes Antworten, Werkzeugergebnisse | Jeder Zug |

32 32 

33Eine Änderung der Konversationsebene lässt den System-Prompt und Projektkontext gecacht. Eine Änderung des System-Prompts macht alles ungültig, da der gesamte spätere Inhalt nun hinter einem anderen Präfix sitzt. Die dritte Spalte gibt häufige Auslöser statt einer vollständigen Liste an, und die Abschnitte unten behandeln den vollständigen Satz.33Eine Änderung der Konversationsebene lässt die Systemaufforderung und den Projektkontext zwischengespeichert. Eine Änderung der Systemaufforderung invalidiert alles, da der gesamte spätere Inhalt nun hinter einem anderen Präfix sitzt. Die dritte Spalte gibt häufige Auslöser statt einer vollständigen Liste an, und die folgenden Abschnitte behandeln den vollständigen Satz.

34 34 

35Die Präfix-Abgleich-Regel erklärt die meisten Verhaltensweisen auf dieser Seite. [Plan Mode](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) und [Skill Loading](/docs/de/skills) hängen beispielsweise ihre Anweisungen als Konversationsnachrichten an, daher bleibt das gecachte Präfix intakt.35Die Präfix-Abgleich-Regel erklärt die meisten Verhaltensweisen auf dieser Seite. [Plan Mode](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) und [Skill-Laden](/docs/de/skills) hängen beispielsweise ihre Anweisungen als Konversationsnachrichten an, sodass das zwischengespeicherte Präfix intakt bleibt.

36 36 

37Zwei Einstellungen erscheinen nicht in der Ebenen-Tabelle, beeinflussen aber dennoch, was gecacht bleibt:37Zwei Einstellungen erscheinen nicht in der Ebenen-Tabelle, beeinflussen aber dennoch, was zwischengespeichert bleibt:

38 38 

39* **Modell**: Jedes Modell hat seinen eigenen Cache. Das Wechseln von Modellen berechnet die gesamte Anfrage neu, auch wenn der Inhalt identisch ist. Siehe [Modelle wechseln](#switching-models) unten.39* **Modell**: Jedes Modell hat seinen eigenen Cache. Das Wechseln von Modellen berechnet die gesamte Anfrage neu, auch wenn der Inhalt identisch ist. Siehe [Modelle wechseln](#switching-models) unten.

40* **Effort Level**: Bei den meisten Modellen hat jedes Effort Level seinen eigenen Cache, daher berechnet das Ändern mid-session die gesamte Anfrage neu. Bei Fable 5.1 mit einem API-Schlüssel oder einem Claude-Abonnement bleibt der Cache standardmäßig intakt. Siehe [Effort Level ändern](#changing-effort-level) unten.40* **Aufwandsstufe**: Bei den meisten Modellen hat jede Aufwandsstufe ihren eigenen Cache, daher wird die gesamte Anfrage neu berechnet, wenn Sie die Aufwandsstufe während einer Sitzung ändern. Bei Fable 5.1 mit einem API-Schlüssel oder einem Claude-Abonnement bleibt der Cache standardmäßig intakt. Siehe [Aufwandsstufe ändern](#changing-effort-level) unten.

41 41 

42<Tip>42<Tip>

43 Wählen Sie Ihr Modell und Effort Level am Anfang einer Session, dann speichern Sie `/compact` für natürliche Pausen zwischen Aufgaben. Je weniger Änderungen Sie mid-task vornehmen, desto höher ist Ihre Cache-Hit-Rate.43 Wählen Sie Ihr Modell und Ihre Aufwandsstufe am Anfang einer Sitzung aus, und speichern Sie dann `/compact` für natürliche Pausen zwischen Aufgaben. Je weniger Änderungen Sie während einer Aufgabe vornehmen, desto höher ist Ihre Cache-Hit-Rate.

44</Tip>44</Tip>

45 45 

46<h3 id="where-the-cache-lives">46<h3 id="where-the-cache-lives">

47 Wo der Cache lebt47 Wo der Cache lebt

48</h3>48</h3>

49 49 

50Caching findet server-seitig in der Infrastruktur statt, die Ihr Modell bedient. Wo das ist, hängt davon ab, wie Sie sich authentifizieren:50Das Caching erfolgt serverseitig in der Infrastruktur, die Ihr Modell bereitstellt. Wo das ist, hängt davon ab, wie Sie sich authentifizieren:

51 51 

52* **API-Schlüssel, Claude-Abonnement oder [Claude Platform on AWS](/docs/de/claude-platform-on-aws)**: Der Cache lebt in Anthropics Infrastruktur, zugänglich über die [Claude API](https://platform.claude.com/docs)52* **API-Schlüssel, Claude-Abonnement oder [Claude Platform on AWS](/docs/de/claude-platform-on-aws)**: Der Cache lebt in der Infrastruktur von Anthropic und wird über die [Claude API](https://platform.claude.com/docs) aufgerufen

53* **Amazon Bedrock oder Google Cloud's Agent Platform**: Der Cache lebt in der Serving-Infrastruktur Ihres Cloud-Providers53* **Amazon Bedrock oder Google Cloud's Agent Platform**: Der Cache lebt in der Serving-Infrastruktur Ihres Cloud-Anbieters

54* **Microsoft Foundry**: Hängt von der [Hosting-Option](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) der Bereitstellung ab. Auf Azure bereitgestellte Deployments werden auf Azure-Infrastruktur bedient; auf Anthropic bereitgestellte Deployments werden auf Anthropics Infrastruktur bedient54* **Microsoft Foundry**: Hängt von der [Hosting-Option](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) der Bereitstellung ab. Auf Azure bereitgestellte Deployments werden auf Azure-Infrastruktur bereitgestellt; auf Anthropic bereitgestellte Deployments werden auf der Infrastruktur von Anthropic bereitgestellt

55* **Benutzerdefinierte `ANTHROPIC_BASE_URL` oder [LLM Gateway](/docs/de/llm-gateway)**: Der Cache lebt dort, wo Ihre Anfragen weitergeleitet werden, und ob Caching funktioniert, hängt vom Gateway ab55* **Benutzerdefinierte `ANTHROPIC_BASE_URL` oder [LLM-Gateway](/docs/de/llm-gateway)**: Der Cache lebt dort, wo Ihre Anfragen weitergeleitet werden, und ob Caching funktioniert, hängt vom Gateway ab

56 56 

57Claude Code hängt auch System-Kontext mid-conversation an, wie Dateiänderungsbenachrichtigungen, und markiert diesen Block zum Caching auf jedem Provider und jeder Verbindung.57Claude Code hängt auch Systemkontext während der Konversation an, wie z. B. Dateiänderungsmitteilungen, und markiert diesen Block zum Caching auf jedem Anbieter und jeder Verbindung, es sei denn, Sie setzen [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities), in welchem Fall dieser Block unzwischengespeichert gesendet wird.

58 58 

59Am eigenen Endpunkt des Providers cachen Amazon Bedrock und sein [Mantle-Endpunkt](/docs/de/amazon-bedrock#use-the-mantle-endpoint), Google Clouds Agent Platform und Microsoft Foundry den Block auf die gleiche Weise wie die Claude API.59Am eigenen Endpunkt des Anbieters, Amazon Bedrock und seinem [Mantle-Endpunkt](/docs/de/amazon-bedrock#use-the-mantle-endpoint), Google Cloud's Agent Platform und Microsoft Foundry speichern den Block auf die gleiche Weise wie die Claude API.

60 60 

61Wenn Ihre Anfragen durch ein [LLM Gateway](/docs/de/llm-gateway), eine benutzerdefinierte `ANTHROPIC_BASE_URL` oder eine Cloud-Provider-Base-URL-Überschreibung wie [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/de/env-vars) geleitet werden, hängt das, was gecacht bleibt, davon ab, wie das Gateway die [`cache_control`-Marker](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) handhabt, die Claude Code sendet:61Wenn Ihre Anfragen durch ein [LLM-Gateway](/docs/de/llm-gateway), eine benutzerdefinierte `ANTHROPIC_BASE_URL` oder eine Cloud-Provider-Basis-URL-Überschreibung wie [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/de/env-vars) geleitet werden, hängt das, was zwischengespeichert bleibt, davon ab, wie das Gateway die [`cache_control`-Marker](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) handhabt, die Claude Code sendet:

62 62 

63* **Leitet sie unverändert weiter**: Der Block und Ihre Konversation cachen auf die gleiche Weise wie am eigenen Endpunkt des Providers.63* **Leitet sie unverändert weiter**: Der Block und Ihre Konversation speichern auf die gleiche Weise wie am eigenen Endpunkt des Anbieters.

64* **Lehnt die markierte Anfrage mit einem `400`-Fehler ab, der `cache_control` nennt**: Claude Code sendet die Anfrage erneut mit dem Marker, der vom Block auf Ihre letzte Konversationsnachricht verschoben wird, und behält ihn dort für den Rest der Konversation. Der Block wird als nicht gecachte Eingabe abgerechnet; Ihre Konversation bleibt gecacht.64* **Lehnt die markierte Anfrage mit einem `400`-Fehler ab, der `cache_control` nennt**: Claude Code sendet die Anfrage erneut mit dem Marker, der vom Block auf Ihre letzte Konversationsnachricht verschoben wird, und behält ihn dort für den Rest der Konversation. Der Block wird als unzwischengespeicherte Eingabe abgerechnet; Ihre Konversation bleibt zwischengespeichert.

65* **Entfernt die Marker, während es Erfolg zurückgibt**: Ihre gesamte Konversationshistorie wird auf jedem Turn als nicht gecachte Eingabe abgerechnet. Ein Gateway, das Block-Form-Systeminhalt in einen einfachen String konvertiert, lässt den Marker auf die gleiche Weise fallen.65* **Entfernt die Marker bei erfolgreicher Rückgabe**: Ihr gesamter Konversationsverlauf wird auf jedem Zug als unzwischengespeicherte Eingabe abgerechnet. Ein Gateway, das Block-Form-Systeminhalt in einen einfachen String konvertiert, lässt den Marker auf die gleiche Weise fallen.

66 66 

67Für das, was jeder Provider speichert und verarbeitet, siehe [Datennutzung](/docs/de/data-usage). Wo immer der Cache lebt, Einträge verfallen nach einer Inaktivitätsperiode, und [Cache-Lebensdauer](#cache-lifetime) unten behandelt die TTL und wie Sie sie verlängern.67Für das, was jeder Anbieter speichert und verarbeitet, siehe [Datennutzung](/docs/de/data-usage). Wo immer der Cache lebt, Einträge verfallen nach einer Inaktivitätsperiode, und [Cache-Lebensdauer](#cache-lifetime) unten behandelt die TTL und wie man sie verlängert.

68 68 

69<h2 id="actions-that-invalidate-the-cache">69<h2 id="actions-that-invalidate-the-cache">

70 Aktionen, die den Cache ungültig machen70 Aktionen, die den Cache ungültig machen

71</h2>71</h2>

72 72 

73Diese Aktionen führen dazu, dass die nächste Anfrage einen Teil oder den gesamten Cache verfehlt. Sie sehen einen einmaligen langsameren, teureren Turn, danach wird das neue Präfix gecacht. Die meisten davon sind mid-task vermeidbar, sobald Sie wissen, dass sie Kosten haben. Ein Modellwechsel kann sich kostenlos anfühlen, bis Sie den langsameren Turn bemerken, der folgt.73Diese Aktionen führen dazu, dass die nächste Anfrage einen Teil oder den gesamten Cache verfehlt. Sie sehen einen einmalig langsameren, teureren Turn, danach wird das neue Präfix zwischengespeichert. Die meisten davon sind vermeidbar, wenn Sie während einer Aufgabe wissen, dass sie Kosten verursachen. Ein Modellwechsel kann sich kostenlos anfühlen, bis Sie den langsameren Turn bemerken, der folgt.

74 74 

75* [Modelle wechseln](#switching-models)75* [Modelle wechseln](#switching-models)

76* [Anstrengungsstufe ändern](#changing-effort-level)76* [Anstrengungsstufe ändern](#changing-effort-level)

77* [Fast Mode aktivieren](#turning-on-fast-mode)77* [Schnellmodus aktivieren](#turning-on-fast-mode)

78* [Verbinden oder Trennen eines MCP-Servers](#connecting-or-disconnecting-an-mcp-server)78* [MCP-Server verbinden oder trennen](#connecting-or-disconnecting-an-mcp-server)

79* [Ein Plugin aktivieren oder deaktivieren](#enabling-or-disabling-a-plugin)79* [Plugin aktivieren oder deaktivieren](#enabling-or-disabling-a-plugin)

80* [Ein ganzes Tool ablehnen](#denying-an-entire-tool)80* [Ein ganzes Tool verweigern](#denying-an-entire-tool)

81* [Ausgabestil ändern](#changing-output-style)

82* [Konversation komprimieren](#compacting-the-conversation)81* [Konversation komprimieren](#compacting-the-conversation)

83* [Viele Bilder sammeln](#accumulating-many-images)82* [Viele Bilder sammeln](#accumulating-many-images)

84* [Claude Code aktualisieren](#upgrading-claude-code)83* [Claude Code aktualisieren](#upgrading-claude-code)


87 Modelle wechseln86 Modelle wechseln

88</h3>87</h3>

89 88 

90Jedes Modell hat seinen eigenen Cache. Das Wechseln mit [`/model`](/docs/de/model-config#setting-your-model) bedeutet, dass die nächste Anfrage die gesamte Konversationshistorie ohne Cache-Hits liest, obwohl der Inhalt identisch ist.89Jedes Modell hat seinen eigenen Cache. Das Wechseln mit [`/model`](/docs/de/model-config#setting-your-model) bedeutet, dass die nächste Anfrage die gesamte Konversationshistorie ohne Cache-Treffer liest, obwohl der Inhalt identisch ist.

91 90 

92Wenn Sie `/model` im Terminal ausführen, fordert Claude Code Sie auf, den Wechsel nur zu bestätigen, während der Cache noch warm ist. Der Cache bleibt warm für einen [Cache-TTL](#cache-lifetime) nach dem letzten Request von Claude Code in dieser Konversation oder der letzten Antwort von Claude. Sobald diese Zeit verstrichen ist, ist der Cache abgelaufen, daher wechselt Claude Code ohne zu fragen.91Wenn Sie `/model` im Terminal ausführen, fordert Claude Code Sie auf, den Wechsel nur zu bestätigen, während der Cache noch warm ist. Der Cache bleibt warm für einen [Cache-TTL](#cache-lifetime) nach dem letzten Request, den Claude Code in dieser Konversation gesendet hat, oder nach der letzten Antwort von Claude. Sobald diese Zeit verstrichen ist, ist der Cache abgelaufen, sodass Claude Code ohne Nachfrage wechselt.

93 92 

94Vor v2.1.238 prüfte Claude Code den Cache-TTL nicht und fragte auch nach dem Ablauf des Caches.93Vor v2.1.238 überprüfte Claude Code die Cache-TTL nicht und fragte auch nach Ablauf des Cache.

95 94 

96Sie können diese Bestätigung auch mit einem [PreModelSwitch Hook](/docs/de/hooks#premodelswitch-decision-control) erforderlich machen oder überspringen.95Sie können diese Bestätigung auch mit einem [PreModelSwitch Hook](/docs/de/hooks#premodelswitch-decision-control) erzwingen oder überspringen.

97 96 

98Die [`opusplan` Modelleinstellung](/docs/de/model-config#opusplan-model-setting) wird zu Opus während Plan Mode und Sonnet während der Ausführung aufgelöst, daher ist jeder Plan-Mode-Toggle ein Modellwechsel und startet einen frischen Cache.97Die [`opusplan` Modelleinstellung](/docs/de/model-config#opusplan-model-setting) wird während des Plan-Modus zu Opus und während der Ausführung zu Sonnet aufgelöst, sodass jeder Plan-Modus-Toggle ein Modellwechsel ist und einen frischen Cache startet.

99 98 

100[Automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auf Fable 5.1, Fable 5 und Opus 5 ist auch ein Modellwechsel. Wenn ein Sicherheitsklassifizierer eine Anfrage kennzeichnet und die gekennzeichnete Kategorie ein Fallback-Modell hat, führt Claude Code die Anfrage auf diesem Modell erneut aus und die Session wird dort fortgesetzt.99[Automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auf Fable-Modellen und Opus 5 ist auch ein Modellwechsel. Wenn ein Sicherheitsklassifizierer eine Anfrage in einer Kategorie mit einem Fallback-Modell kennzeichnet, führt Claude Code die Anfrage auf diesem Modell erneut aus und die Sitzung wird dort fortgesetzt.

100 

101Wenn die Frontmatter eines Skills oder Befehls ein [`model`](/docs/de/skills#frontmatter-reference) benennt, das nicht das aktuelle Modell der Sitzung ist, ist dieser Turn auch ein Modellwechsel: die nächste Anfrage liest die gesamte Konversationshistorie ohne Cache-Treffer. Das Sitzungsmodell wird bei Ihrer nächsten Eingabeaufforderung fortgesetzt. Ein `context: fork` Skill setzt stattdessen das [Modell des abgespaltenen Subagenten](/docs/de/skills#run-skills-in-a-subagent).

101 102 

102<h3 id="changing-effort-level">103<h3 id="changing-effort-level">

103 Anstrengungsstufe ändern104 Anstrengungsstufe ändern

104</h3>105</h3>

105 106 

106Bei den meisten Modellen bedeutet das Ändern der [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) mid-session, dass die nächste Anfrage die gesamte Konversationshistorie ohne Cache-Hits liest. Während der Cache noch warm ist, fordert Claude Code Sie auf, die Änderung zuerst zu bestätigen.107Bei den meisten Modellen bedeutet das Ändern der [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) während einer Sitzung, dass die nächste Anfrage die gesamte Konversationshistorie ohne Cache-Treffer liest. Während der Cache noch warm ist, fordert Claude Code Sie auf, die Änderung zuerst zu bestätigen.

107 108 

108Bei Fable 5.1 mit einem API-Schlüssel oder Claude-Abonnement behält das Ändern der Anstrengung den Cache, und Claude Code wendet die neue Stufe ohne Nachfrage an. Dies gilt nicht auf Amazon Bedrock, Google Cloud's Agent Platform oder einem [Claude-Apps-Gateway](/docs/de/claude-apps-gateway), oder wenn Sie [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) setzen oder Ihre Organisation eine HIPAA-Konfiguration hat.109Bei Fable 5.1 mit einem API-Schlüssel oder Claude-Abonnement behält das Ändern der Anstrengung den Cache, und Claude Code wendet die neue Stufe ohne Nachfrage an. Dies gilt nicht für Amazon Bedrock, Google Cloud's Agent Platform oder ein [Claude Apps Gateway](/docs/de/claude-apps-gateway), oder wenn Sie [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) setzen oder Ihre Organisation eine HIPAA-Konfiguration hat.

109 110 

110Vor v2.1.260 machte das Ändern der Anstrengung auf Fable 5.1 mit einem API-Schlüssel oder Claude-Abonnement auch den Cache ungültig.111Vor v2.1.260 machte das Ändern der Anstrengung auf Fable 5.1 mit einem API-Schlüssel oder Claude-Abonnement auch den Cache ungültig.

111 112 

112<h3 id="turning-on-fast-mode">113<h3 id="turning-on-fast-mode">

113 Fast Mode aktivieren114 Schnellmodus aktivieren

114</h3>115</h3>

115 116 

116Das Aktivieren von [Fast Mode](/docs/de/fast-mode) fügt einen Request-Header hinzu, der Teil des Cache-Schlüssels ist, daher liest die erste Anfrage, die Claude Code mit aktiviertem Fast Mode sendet, die gesamte Konversationshistorie ohne Cache-Hits. Claude Code setzt diesen Header einmal, wenn ein Turn startet, und behält ihn für den ganzen Turn, daher wenn Sie Fast Mode aktivieren, während Claude arbeitet, tritt der Cache-Miss vom Header beim ersten Request Ihres nächsten Turns auf. Diese unkachedten Input-Token werden zu [Fast-Mode-Raten](/docs/de/fast-mode#understand-the-cost-tradeoff) abgerechnet, weshalb das Aktivieren zu Beginn einer Session weniger kostet als das Aktivieren tief in einer langen Session. Wenn Ihr aktuelles Modell Fast Mode nicht unterstützt, wechselt das Aktivieren von Fast Mode auch [Ihr Modell](#switching-models), und dieser Wechsel startet von selbst einen frischen Cache beim nächsten Request im laufenden Turn.117Das Aktivieren des [Schnellmodus](/docs/de/fast-mode) fügt einen Request-Header hinzu, der Teil des Cache-Schlüssels ist, sodass die erste Anfrage, die Claude Code mit aktiviertem Schnellmodus sendet, die gesamte Konversationshistorie ohne Cache-Treffer liest. Claude Code setzt diesen Header einmal, wenn ein Turn beginnt, und behält ihn für den gesamten Turn, sodass wenn Sie den Schnellmodus aktivieren, während Claude arbeitet, der Cache-Miss des Headers bei der ersten Anfrage Ihres nächsten Turns auftritt. Diese nicht zwischengespeicherten Input-Token werden zu [Schnellmodus-Raten](/docs/de/fast-mode#understand-the-cost-tradeoff) abgerechnet, weshalb das Aktivieren am Anfang einer Sitzung weniger kostet als das Aktivieren tief in einer langen Sitzung. Wenn Ihr aktuelles Modell den Schnellmodus nicht unterstützt, führt das Aktivieren des Schnellmodus auch zu einem [Modellwechsel](#switching-models), und dieser Wechsel startet von selbst einen frischen Cache ab der nächsten Anfrage im laufenden Turn.

117 118 

118Die Kosten fallen einmal pro Konversation an. Nach dem ersten Fast-Mode-Turn sendet Claude Code weiterhin den Header und variiert nur die Speed-Einstellung der Anfrage, die nicht Teil des Cache-Schlüssels ist. Das Ausschalten von Fast Mode, das [automatische Fallback auf Standardgeschwindigkeit](/docs/de/fast-mode#handle-rate-limits) nach einem Rate Limit und das spätere Wiedereinschalten behalten den Cache. Wenn Sie [Nutzungsguthaben mid-session aufbrauchen](/docs/de/fast-mode#handle-rate-limits), wiederholt Claude Code jeden abgelehnten Fast-Mode-Request auf die gleiche Weise mit Standardgeschwindigkeit, daher behält auch dieses Fallback den Cache. `/clear` und `/compact` setzen dies zurück, da sie den Cache an diesen Punkten ohnehin neu aufbauen.119Die Kosten fallen einmal pro Konversation an. Nach dem ersten Schnellmodus-Turn sendet Claude Code weiterhin den Header und variiert nur die Geschwindigkeitseinstellung der Anfrage, die nicht Teil des Cache-Schlüssels ist. Das Ausschalten des Schnellmodus, das [automatische Fallback auf Standardgeschwindigkeit](/docs/de/fast-mode#handle-rate-limits) nach einem Rate Limit und das spätere Wiedereinschalten behalten alle den Cache. Wenn Sie [während einer Sitzung die Nutzungsguthaben aufbrauchen](/docs/de/fast-mode#handle-rate-limits), versucht Claude Code jeden abgelehnten Schnellmodus-Request auf die gleiche Weise mit Standardgeschwindigkeit erneut, sodass dieses Fallback auch den Cache behält. `/clear` und `/compact` setzen dies zurück, da sie den Cache an diesen Punkten ohnehin neu aufbauen.

119 120 

120<h3 id="connecting-or-disconnecting-an-mcp-server">121<h3 id="connecting-or-disconnecting-an-mcp-server">

121 Verbinden oder Trennen eines MCP-Servers122 MCP-Server verbinden oder trennen

122</h3>123</h3>

123 124 

124Tool-Definitionen sitzen in der System-Prompt-Ebene, daher wird der Cache ungültig, wenn sich die Menge der Tool-Definitionen in der Anfrage zwischen Turns ändert. Das Umschalten des [Advisor-Tools](/docs/de/advisor) ist eine Ausnahme: Seine Definition sitzt nach dem Cache-Breakpoint, daher behält das Aktivieren oder Deaktivieren von `/advisor` das gecachte Präfix intakt. Ob eine [MCP-Server](/docs/de/mcp)-Änderung dies bewirkt, hängt davon ab, ob ihre Tools durch [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aufgeschoben werden oder in das Präfix geladen werden:125Tool-Definitionen befinden sich in der System-Prompt-Schicht, sodass der Cache ungültig wird, wenn sich die Menge der Tool-Definitionen in der Anfrage zwischen Turns ändert. Das Umschalten des [Advisor-Tools](/docs/de/advisor) ist eine Ausnahme: seine Definition befindet sich nach dem Cache-Breakpoint, sodass das Aktivieren oder Deaktivieren von `/advisor` das zwischengespeicherte Präfix intakt hält. Ob eine [MCP-Server](/docs/de/mcp)-Änderung dies tut, hängt davon ab, ob ihre Tools durch [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aufgeschoben oder in das Präfix geladen werden:

125 126 

126* **Aufgeschobene Tools**, die Standardeinstellung auf unterstützten Modellen: Ein Server, der sich verbindet, trennt oder seine Tool-Liste ändert, hängt nur neue Inhalte an und stört nichts, das bereits gecacht ist.127* **Aufgeschobene Tools**, die Standardeinstellung auf unterstützten Modellen: Ein Server, der sich verbindet, trennt oder seine Tool-Liste ändert, hängt nur neue Inhalte an und stört nichts, das bereits zwischengespeichert ist.

127* **Tools, die in das Präfix geladen werden**: Jede Änderung daran macht den Cache ungültig. Dies geschieht, wenn [Tool-Suche nicht verfügbar oder deaktiviert ist](/docs/de/mcp#configure-tool-search), z. B. auf Google Cloud's Agent Platform-Modellen früher als die Claude 4.5-Generation, mit einem benutzerdefinierten `ANTHROPIC_BASE_URL`-Gateway, oder auf einer Microsoft Foundry-[Bereitstellung auf Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), sobald Claude Code erkennt, dass die Bereitstellung Tool-Suche ablehnt. Es geschieht auch für einen Server oder ein Tool, das als [`alwaysLoad`](/docs/de/mcp#exempt-a-server-from-deferral) markiert ist, und für Definitionen, die von [schwellenwertbasiertem Laden](/docs/de/mcp#configure-tool-search) im Voraus beibehalten werden.128* **Tools, die in das Präfix geladen werden**: Jede Änderung daran macht den Cache ungültig. Dies geschieht, wenn [Tool-Suche nicht verfügbar oder deaktiviert ist](/docs/de/mcp#configure-tool-search), z. B. auf Google Cloud's Agent Platform-Modellen vor der Claude 4.5-Generation, mit einem benutzerdefinierten `ANTHROPIC_BASE_URL` Gateway oder auf einer Microsoft Foundry [auf Azure gehosteten Bereitstellung](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), sobald Claude Code erkennt, dass die Bereitstellung Tool-Suche ablehnt. Es geschieht auch für einen Server oder ein Tool, das als [`alwaysLoad`](/docs/de/mcp#exempt-a-server-from-deferral) gekennzeichnet ist, und für Definitionen, die durch [schwellenwertbasiertes Laden](/docs/de/mcp#configure-tool-search) vorne gehalten werden.

128 129 

129Wenn Tools in das Präfix geladen werden, ist die häufigste Ursache einer Ungültigmachung ein Server, der sich mid-session verbindet oder trennt, was ohne Ihre Aktion geschehen kann: Ein Stdio-Server-Prozess beendet sich, eine HTTP-Session läuft ab, oder ein Server [verbindet sich automatisch nach einem vorübergehenden Fehler wieder](/docs/de/mcp#automatic-reconnection). Ein verbundener Server kann auch ein [dynamisches Tool-Update](/docs/de/mcp#dynamic-tool-updates) pushen, das seine Tool-Liste ändert.130Wenn Tools in das Präfix geladen werden, ist die häufigste Ursache einer Ungültigmachung ein Server, der sich während einer Sitzung verbindet oder trennt, was ohne Ihre Aktion geschehen kann: Der Prozess eines Stdio-Servers wird beendet, eine HTTP-Sitzung läuft ab oder ein Server [verbindet sich automatisch nach einem vorübergehenden Fehler wieder](/docs/de/mcp#automatic-reconnection). Ein verbundener Server kann auch ein [dynamisches Tool-Update](/docs/de/mcp#dynamic-tool-updates) pushen, das seine Tool-Liste ändert.

130 131 

131Das Bearbeiten Ihrer MCP-Konfiguration ändert den Cache nicht von selbst. Die neue Konfiguration wird erst nach einem Neustart wirksam, wenn sich der Server verbindet oder trennt.132Das Bearbeiten Ihrer MCP-Konfiguration ändert den Cache nicht von selbst. Die neue Konfiguration wird erst nach einem Neustart wirksam, wenn sich der Server verbindet oder trennt.

132 133 

133<h3 id="enabling-or-disabling-a-plugin">134<h3 id="enabling-or-disabling-a-plugin">

134 Ein Plugin aktivieren oder deaktivieren135 Plugin aktivieren oder deaktivieren

135</h3>136</h3>

136 137 

137Wenn Sie ein [Plugin](/docs/de/plugins) aktivieren oder deaktivieren, hängen die Kosten der Änderung davon ab, welche Komponententypen das Plugin bereitstellt. Die folgenden Fälle behandeln jeden Komponententyp, wann Claude Code die Änderung anwendet, und was geschieht, wenn Sie ein Plugin später in der gleichen Session wieder deaktivieren.138Wenn Sie ein [Plugin](/docs/de/plugins) aktivieren oder deaktivieren, hängt das, was die Änderung kostet, davon ab, welche Komponententypen das Plugin bereitstellt. Die folgenden Fälle behandeln jeden Komponententyp, wann Claude Code die Änderung anwendet und was passiert, wenn Sie ein Plugin später in derselben Sitzung wieder deaktivieren.

138 139 

139<h4 id="plugin-components-that-keep-the-cache">140<h4 id="plugin-components-that-keep-the-cache">

140 Plugin-Komponenten, die den Cache behalten141 Plugin-Komponenten, die den Cache behalten

141</h4>142</h4>

142 143 

143Claude Code macht den Cache niemals ungültig für die Skills, Commands, Agents, Hooks, Monitore oder Themes eines Plugins. Es hängt deren Inhalt nach der vorhandenen Konversation an, daher zahlt die nächste Anfrage für diesen Inhalt und liest alles davor immer noch aus dem Cache.144Claude Code macht den Cache für die Skills, Befehle, Agenten, Hooks, Monitore oder Themes eines Plugins nie ungültig. Es hängt ihren Inhalt nach der bestehenden Konversation an, sodass die nächste Anfrage für diesen Inhalt bezahlt und alles davor immer noch aus dem Cache liest.

144 145 

145<h4 id="plugins-that-provide-mcp-servers">146<h4 id="plugins-that-provide-mcp-servers">

146 Plugins, die MCP-Server bereitstellen147 Plugins, die MCP-Server bereitstellen


149Wenn Sie ein Plugin aktivieren oder deaktivieren, das [MCP-Server](/docs/de/plugins-reference#mcp-servers) bereitstellt, folgt Claude Code den gleichen Regeln wie beim [Verbinden oder Trennen eines MCP-Servers](#connecting-or-disconnecting-an-mcp-server):150Wenn Sie ein Plugin aktivieren oder deaktivieren, das [MCP-Server](/docs/de/plugins-reference#mcp-servers) bereitstellt, folgt Claude Code den gleichen Regeln wie beim [Verbinden oder Trennen eines MCP-Servers](#connecting-or-disconnecting-an-mcp-server):

150 151 

151* Wenn Claude Code die Tools des Servers aufschiebt, behält es den Cache.152* Wenn Claude Code die Tools des Servers aufschiebt, behält es den Cache.

152* Wenn Claude Code sie in das Präfix lädt, liest die nächste Anfrage die gesamte Konversation neu.153* Wenn Claude Code sie in das Präfix lädt, liest die nächste Anfrage die gesamte Konversation erneut.

153 154 

154<h4 id="code-intelligence-plugins">155<h4 id="code-intelligence-plugins">

155 Code-Intelligence-Plugins156 Code-Intelligence-Plugins


161 Wann Plugin-Änderungen angewendet werden162 Wann Plugin-Änderungen angewendet werden

162</h4>163</h4>

163 164 

164Claude Code wendet eine Plugin-Änderung an, wenn Sie [`/reload-plugins`](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) ausführen oder eine neue Session starten. Sie zahlen die Kosten, ob angehängte Ankündigungen oder ein vollständiges Neueinlesen, beim ersten Turn nach dem Anwenden der Änderung, nicht wenn Sie `/plugin enable` oder `/plugin disable` ausführen. Claude Code kann eine Änderung auch in drei Fällen von selbst anwenden:165Eine Änderung, die Sie im `/plugin`-Menü vornehmen, wird durch [`/reload-plugins`](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) durchgeführt, das Claude Code für Sie ausführt, wenn Sie das Menü schließen. Sie zahlen die Kosten, ob angehängte Ankündigungen oder ein vollständiges erneutes Lesen, beim ersten Turn nach Anwendung der Änderung. Claude Code kann eine Änderung auch selbst anwenden:

165 166 

166* Für ein Plugin mit einer `command`-Quelle kann Claude Code [das Plugin selbst neu laden](/docs/de/plugin-marketplaces#when-claude-code-re-runs-the-command).167* Für ein Plugin mit einer `command`-Quelle kann Claude Code [das Plugin selbst neu laden](/docs/de/plugin-marketplaces#when-claude-code-re-runs-the-command).

167* Wenn Sie [ein Plugin aus der `/plugin`-Schnittstelle installieren](/docs/de/discover-plugins#install-plugins), kann Claude Code es während der Installation aktivieren. Claude Code teilt Ihnen in der Installationszusammenfassung mit, ob es das tat oder ob Sie `/reload-plugins` ausführen sollen.168* Wenn Sie [ein Plugin aus der `/plugin`-Schnittstelle installieren](/docs/de/discover-plugins#install-plugins), kann Claude Code es während der Installation aktivieren. Die Installationszusammenfassung teilt Ihnen mit, ob es das getan hat.

168* Wenn Sie [die Session mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später, wendet Claude Code die Plugins an, die die Einstellungen des neuen Verzeichnisses aktivieren, als Teil der Verschiebung, ohne die vollständige Neueinlese-Warnung, die `/reload-plugins` hält.169* Wenn Sie [die Sitzung mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später, wendet Claude Code die Plugins an, die die Einstellungen des neuen Verzeichnisses aktivieren, als Teil des Verschiebens, ohne die vollständige Neulesens-Warnung, die ein `/reload-plugins` hält.

170* In interaktiven Sitzungen, wenn Sie ein Plugin in einem [Ordner von Plugins](/docs/de/plugins#test-your-plugins-locally) hinzufügen oder entfernen, den Sie mit `--plugin-dir` übergeben haben, wird die Änderung sofort angewendet. Wenn die Anwendung ein vollständiges erneutes Lesen auslösen würde, hält Claude Code die Änderung stattdessen und zeigt einen Hinweis an, um `/reload-plugins` auszuführen. Erfordert Claude Code v2.1.265 oder später.

171 

172Wenn `/reload-plugins` ausgeführt wird und das Neuladen ein vollständiges erneutes Lesen auslösen würde, zeigt Claude Code eine Warnung an und wendet das Neuladen nicht an. Führen Sie `/reload-plugins --force` aus, um es trotzdem anzuwenden.

173 

174`/reload-plugins` wird auch in Sitzungen ohne interaktives Terminal ausgeführt, z. B. die Desktop-App, das Agent SDK und [nicht-interaktiver Modus](/docs/de/headless) mit `-p`, wenn Sie es direkt in die Sitzung eingeben. Erfordert Claude Code v2.1.260 oder später.

169 175 

170Wenn Sie `/reload-plugins` ausführen und das Neustart würde ein vollständiges Neueinlesen auslösen, zeigt Claude Code eine Warnung an und wendet das Neustart nicht an. Führen Sie es mit `--force` erneut aus, um das Neustart trotzdem anzuwenden.176In diesen Sitzungen wendet das Neuladen alles außer Plugin-MCP-Server-Änderungen an, die [in Ihrer nächsten Sitzung wirksam werden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) und daher nie während einer Sitzung ein vollständiges erneutes Lesen kosten.

171 177 

172<h4 id="plugins-you-enable-and-then-disable-in-one-session">178<h4 id="plugins-you-enable-and-then-disable-in-one-session">

173 Plugins, die Sie aktivieren und dann in einer Session deaktivieren179 Plugins, die Sie in einer Sitzung aktivieren und dann deaktivieren

174</h4>180</h4>

175 181 

176Wenn Sie ein Plugin deaktivieren, das Sie früher in der Session aktiviert haben, stellt Claude Code die vorherige Request-Form wieder her. Wenn dieses Präfix noch innerhalb seiner [Cache-Lebensdauer](#cache-lifetime) liegt, liest die nächste Anfrage stattdessen den älteren Cache-Eintrag, anstatt ihn neu zu erstellen.182Wenn Sie ein Plugin deaktivieren, das Sie früher in der Sitzung aktiviert haben, stellt Claude Code die vorherige Request-Form wieder her. Wenn dieses Präfix sich noch innerhalb seiner [Cache-Lebensdauer](#cache-lifetime) befindet, liest die nächste Anfrage stattdessen den älteren Cache-Eintrag, anstatt ihn neu zu erstellen.

177 183 

178<h3 id="denying-an-entire-tool">184<h3 id="denying-an-entire-tool">

179 Ein ganzes Tool ablehnen185 Ein ganzes Tool verweigern

180</h3>186</h3>

181 187 

182Das Hinzufügen eines bloßen Tool-Namens wie `Bash` oder `WebFetch` als [Ablehnungsregel](/docs/de/permissions#manage-permissions) entfernt dieses Tool vollständig aus Claudes Kontext. Claude Code lädt integrierte Tool-Definitionen in die System-Prompt-Ebene, daher macht das Hinzufügen oder Entfernen einer dieser Regeln mid-session den Cache ungültig. Claude Code wendet die Änderung beim nächsten Request an, egal ob Sie die Regel über `/permissions` hinzufügen oder durch [direktes Bearbeiten einer Einstellungsdatei](/docs/de/settings#when-edits-take-effect). Das schließt eine Regel ein, die Sie über `/permissions` in der Mitte eines Turns hinzufügen.188Das Hinzufügen eines bloßen Tool-Namens wie `Bash` oder `WebFetch` als [Deny-Regel](/docs/de/permissions#manage-permissions) entfernt dieses Tool vollständig aus Claudes Kontext. Claude Code lädt integrierte Tool-Definitionen in die System-Prompt-Schicht, sodass das Hinzufügen oder Entfernen einer dieser Regeln während einer Sitzung den Cache ungültig macht. Claude Code wendet die Änderung bei der nächsten Anfrage an, ob Sie die Regel durch `/permissions` hinzufügen oder durch [direktes Bearbeiten einer Einstellungsdatei](/docs/de/settings#when-edits-take-effect). Das schließt eine Regel ein, die Sie durch `/permissions` in der Mitte eines Turns hinzufügen.

183 189 

184Nur eine Ablehnungsregel, die in der Tool-Name-Position passt, hat diese Auswirkung: ein bloßer Tool-Name, die äquivalente `Bash(*)` Form, oder ein [Tool-Name-Glob](/docs/de/permissions#tool-name-wildcards) wie `"*"`. Ein Glob, der nur MCP-Tools passt, z. B. `"mcp__*"`, entfernt diese Tools auf die gleiche Weise, behält aber den Cache intakt, wenn die gefundenen Tools [aufgeschoben](#connecting-or-disconnecting-an-mcp-server) sind, die Standardeinstellung, da aufgeschobene Definitionen nie im gecachten Präfix waren. Scoped Ablehnungsregeln wie `Bash(rm *)` und alle Allow- und Ask-Regeln ändern nicht, welche Tools Claude sieht. Claude Code prüft sie, wenn Claude einen Aufruf versucht, wobei das Präfix intakt bleibt.190Nur eine Deny-Regel, die in der Tool-Name-Position passt, hat diese Auswirkung: ein bloßer Tool-Name, die äquivalente `Bash(*)` Form oder ein [Tool-Name-Glob](/docs/de/permissions#tool-name-wildcards) wie `"*"`. Ein Glob, der nur MCP-Tools passt, z. B. `"mcp__*"`, entfernt diese Tools auf die gleiche Weise, behält aber den Cache intakt, wenn die übereinstimmenden Tools [aufgeschoben](#connecting-or-disconnecting-an-mcp-server) sind, die Standardeinstellung, da aufgeschobene Definitionen nie im zwischengespeicherten Präfix waren. Scoped Deny-Regeln wie `Bash(rm *)` und alle Allow- und Ask-Regeln ändern nicht, welche Tools Claude sieht. Claude Code überprüft sie, wenn Claude einen Aufruf versucht, wobei das Präfix intakt bleibt.

185 

186<h3 id="changing-output-style">

187 Ausgabestil ändern

188</h3>

189 

190[Ausgabestil](/docs/de/output-styles) ist Teil des System-Prompts. Wenn Sie Stile mid-session mit `/config` oder der `outputStyle`-Einstellung wechseln, verwendet Claude den neuen Stil ab Ihrer nächsten Nachricht, und dieser Request liest die gesamte Konversationshistorie ohne Cache-Hits. Um diese Kosten klein zu halten, wechseln Sie Stile vor Ihrer ersten Nachricht in einer Session oder direkt nach `/clear` oder `/compact`, wenn es wenig oder keine Konversationshistorie zum Neueinlesen gibt.

191 

192Vor v2.1.251 behielt ein mid-session Stil-Wechsel den Cache, aber wurde nicht angewendet, bis Sie `/clear` ausführten oder eine neue Session starteten.

193 191 

194<h3 id="compacting-the-conversation">192<h3 id="compacting-the-conversation">

195 Konversation komprimieren193 Konversation komprimieren

196</h3>194</h3>

197 195 

198[Komprimierung](/docs/de/context-window#what-survives-compaction) ersetzt Ihre Nachrichtenhistorie durch eine Zusammenfassung. Dies macht absichtlich die Konversationsebene ungültig, da die nächste Anfrage eine neue, kürzere Historie hat, die kein Präfix mit der alten teilt. Claude Code nutzt die System-Prompt-Ebene wieder und lädt den Projektkontext von der Festplatte neu, was nur Cache-Hits, wenn CLAUDE.md und Memory seit dem Session-Start unverändert sind.196[Komprimierung](/docs/de/context-window#what-survives-compaction) ersetzt Ihren Nachrichtenverlauf durch eine Zusammenfassung. Dies macht die Konversationsschicht absichtlich ungültig, da die nächste Anfrage einen neuen, kürzeren Verlauf hat, der kein Präfix mit dem alten teilt. Claude Code verwendet die System-Prompt-Schicht wieder, es sei denn, die Konversation wurde [fortgesetzt, während ein System-Prompt beibehalten wurde, der sich sonst geändert hätte](#resuming-a-session); in diesem Fall wechselt die erste Komprimierung zum aktuellen Prompt und diese Schicht wird einmal neu erstellt. Es lädt Projektkontext von der Festplatte neu, was nur Cache-Treffer hat, wenn CLAUDE.md und Memory seit Sitzungsbeginn unverändert sind.

199 197 

200Um die Zusammenfassung zu erstellen, sendet Claude Code einen separaten Request mit demselben System-Prompt, Tools und History wie Ihre Konversation, plus eine Zusammenfassungsanweisung, die als letzte Benutzernachricht angehängt wird. Während der Cache warm ist, liest dieser Request Ihr Präfix aus dem Cache, daher kostet ein mid-session `/compact` einen Bruchteil dessen, was die Kontextgröße nahelegt, und verbringt die meiste Zeit mit der Generierung der Zusammenfassung.198Um die Zusammenfassung zu erstellen, sendet Claude Code eine separate Anfrage mit dem gleichen System-Prompt, den gleichen Tools und dem gleichen Verlauf wie Ihre Konversation, plus eine Zusammenfassungsanweisung, die als letzte Benutzernachricht angehängt wird. Während der Cache warm ist, liest diese Anfrage Ihr Präfix aus dem Cache, sodass ein `/compact` während einer Sitzung einen Bruchteil dessen kostet, was die Kontextgröße nahelegt, und verbringt die meiste Zeit mit der Generierung der Zusammenfassung.

201 199 

202Nach einer Pause länger als die [Cache-Lebensdauer](#cache-lifetime) gibt es keinen Cache mehr zum Lesen, daher verarbeitet der Zusammenfassungs-Request die vollständige Historie als unkachedten Input neu. Dies ist der Grund, warum `/compact` am meisten kostet, wenn Sie [eine alte Session fortsetzen](/docs/de/sessions#resume-from-a-summary). In beiden Fällen, warm und kalt, baut der Turn nach der Komprimierung den Konversations-Cache nur für die viel kürzere Zusammenfassung neu auf, daher ist dieser Turn nicht der langsame Teil.200Nach einer Pause länger als die [Cache-Lebensdauer](#cache-lifetime) gibt es keinen Cache mehr zum Lesen, sodass die Zusammenfassungsanfrage den vollständigen Verlauf als nicht zwischengespeicherte Eingabe erneut verarbeitet. Dies ist der Grund, warum `/compact` am meisten kostet, wenn Sie [eine alte Sitzung fortsetzen](/docs/de/sessions#resume-from-a-summary). In beiden Fällen, warm und kalt, erstellt der Turn nach der Komprimierung den Konversations-Cache nur für die viel kürzere Zusammenfassung neu, sodass dieser Turn nicht der langsame Teil ist.

203 201 

204<Tip>202<Tip>

205 Komprimierung funktioniert zu Ihrem Vorteil, wenn der Kontext, den Sie verwerfen, Inhalte sind, die Sie nicht mehr benötigen. Um zu wählen, wann sein Overhead auftritt, führen Sie `/compact` bei einer natürlichen Pause in Ihrer Arbeit aus, z. B. zwischen Aufgaben, anstatt zu warten, bis Auto-Komprimierung mid-task auslöst. Wenn Sie einen Weg gegangen sind, den Sie ganz aufgeben möchten, [`/rewind`](#rewinding-the-conversation) stattdessen zu einem früheren Turn. Das Zurückspulen schneidet auf ein Präfix zurück, das bereits gecacht ist, anstatt ein neues wie Komprimierung zu erstellen.203 Komprimierung funktioniert zu Ihrem Vorteil, wenn der Kontext, den Sie verwerfen, Inhalte sind, die Sie nicht mehr benötigen. Um zu wählen, wann sein Overhead auftritt, führen Sie `/compact` an einer natürlichen Pause in Ihrer Arbeit aus, z. B. zwischen Aufgaben, anstatt zu warten, bis Auto-Komprimierung während einer Aufgabe ausgelöst wird. Wenn Sie einen Weg gehen, den Sie vollständig aufgeben möchten, [`/rewind`](#rewinding-the-conversation) stattdessen zu einem früheren Turn. Das Zurückspulen schneidet auf ein Präfix zurück, das bereits zwischengespeichert ist, anstatt ein neues zu erstellen, wie es die Komprimierung tut.

206</Tip>204</Tip>

207 205 

208<h3 id="accumulating-many-images">206<h3 id="accumulating-many-images">

209 Viele Bilder sammeln207 Viele Bilder sammeln

210</h3>208</h3>

211 209 

212Die API begrenzt, wie viele Bilder und PDFs jeder Request tragen kann. Für die aktuellen Zahlen siehe [Request-Limits](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) in der API-Dokumentation. Claude Code begrenzt auch die Gesamtgröße der Bilder und PDFs in einem Request, daher erreichen große Screenshots das Limit mit weniger Bildern als kleine.210Die API begrenzt, wie viele Bilder und PDFs jede Anfrage tragen kann. Für die aktuellen Zahlen siehe [Request-Limits](https://platform.claude.com/docs/en/build-with-claude/vision#request-limits) in der API-Dokumentation. Claude Code begrenzt auch die Gesamtgröße der Bilder und PDFs in einer Anfrage, sodass große Screenshots die Grenze mit weniger Bildern erreichen als kleine.

213 211 

214Wenn der nächste Request eines der Limits überschreiten würde, entfernt Claude Code einen Batch der ältesten Bilder und PDFs aus dem, was es sendet, was Platz für mehr schafft, bevor es wieder welche entfernen muss. Claude kann die entfernten Bilder nicht mehr sehen. Wenn Claude eines davon wieder braucht, teilen Sie es erneut.212Wenn die nächste Anfrage eines der Limits überschreiten würde, entfernt Claude Code einen Batch der ältesten Bilder und PDFs aus dem, was es sendet, was Platz für mehr schafft, bevor es wieder welche entfernen muss. Claude kann die entfernten Bilder nicht mehr sehen. Wenn Claude eines davon wieder benötigt, teilen Sie es erneut.

215 213 

216Das Entfernen von Bildern ändert die Nachrichten, die sie hielten, daher verarbeitet der nächste Request die Konversation vom frühesten dieser Nachrichten an neu. Weil Claude Code einen Batch auf einmal entfernt, sehen Sie einen langsameren Turn pro Batch statt einen mit jedem neuen Screenshot.214Das Entfernen von Bildern ändert die Nachrichten, die sie hielten, sodass die nächste Anfrage die Konversation ab der frühesten dieser Nachrichten erneut verarbeitet. Weil Claude Code einen Batch auf einmal entfernt, sehen Sie einen langsameren Turn pro Batch, anstatt einen mit jedem neuen Screenshot.

217 215 

218<h3 id="upgrading-claude-code">216<h3 id="upgrading-claude-code">

219 Claude Code aktualisieren217 Claude Code aktualisieren

220</h3>218</h3>

221 219 

222Eine neue Claude Code-Version aktualisiert typischerweise den System-Prompt oder Tool-Definitionen, daher baut die erste Anfrage nach einem Upgrade den Cache von oben auf. [Auto-Update](/docs/de/setup#auto-updates) lädt neue Versionen im Hintergrund herunter, wendet sie aber beim nächsten Start an, nie mid-session, daher sehen Sie dies als einen unkachedten ersten Turn nach dem Neustart statt als Überraschung während einer Session. Setzen Sie `DISABLE_AUTOUPDATER=1`, um zu kontrollieren, wann Upgrades angewendet werden.220Eine neue Claude Code-Version aktualisiert normalerweise den System-Prompt oder die Tool-Definitionen, sodass die erste Konversation, die Sie nach einem Upgrade starten, ihren Cache von oben aufbaut. [Auto-Update](/docs/de/setup#auto-updates) lädt neue Versionen im Hintergrund herunter, wendet sie aber erst beim nächsten Start an, nie während einer Sitzung, sodass Sie dies als einen nicht zwischengespeicherten ersten Turn nach dem Neustart sehen, anstatt als eine Überraschung während einer Sitzung. Setzen Sie `DISABLE_AUTOUPDATER=1`, um zu kontrollieren, wann Upgrades angewendet werden.

223 221 

224<Note>222<Note>

225 [Eine Session nach einem Upgrade fortsetzen](/docs/de/sessions#resume-a-session) verarbeitet die gesamte Konversationshistorie ohne Cache-Hits neu, da die Historie nun hinter einem anderen System-Prompt sitzt. Die Kosten skalieren mit der Länge der fortgesetzten Konversation, daher kann der erste Turn zurück in eine lange Session die teuerste Anfrage sein, die Sie senden.223 Für das, was es kostet, eine Konversation fortzusetzen, die Sie vor dem Upgrade gestartet haben, siehe [Sitzung fortsetzen](#resuming-a-session).

226</Note>224</Note>

227 225 

228<h2 id="actions-that-keep-the-cache">226<h2 id="actions-that-keep-the-cache">

229 Aktionen, die den Cache behalten227 Aktionen, die den Cache beibehalten

230</h2>228</h2>

231 229 

232Diese Aktionen hängen entweder am Ende der Konversation an oder berühren die Anfrage überhaupt nicht. Einige davon, wie das Bearbeiten von CLAUDE.md, behalten den Cache aus demselben Grund, aus dem die Änderung die laufende Sitzung nicht erreicht, bis `/clear`, `/compact` oder ein Neustart erfolgt.230Diese Aktionen hängen entweder am Ende des Gesprächs an oder berühren die Anfrage überhaupt nicht. Einige von ihnen, wie das Bearbeiten von CLAUDE.md, behalten den Cache aus demselben Grund, aus dem die Änderung die laufende Sitzung erst nach `/clear`, `/compact` oder einem Neustart erreicht.

233 231 

234* [Dateien in Ihrem Repository bearbeiten](#editing-files-in-your-repository)232* [Bearbeiten von Dateien in Ihrem Repository](#editing-files-in-your-repository)

235* [CLAUDE.md mid-session bearbeiten](#editing-claude-md-mid-session)233* [Bearbeiten von CLAUDE.md während der Sitzung](#editing-claude-md-mid-session)

236* [Berechtigungsmodus ändern](#changing-permission-mode)234* [Ändern des Berechtigungsmodus](#changing-permission-mode)

237* [Skills und Commands aufrufen](#invoking-skills-and-commands)235* [Ändern des Ausgabestils](#changing-output-style)

236* [Aufrufen von Skills und Befehlen](#invoking-skills-and-commands)

238* [Ausführen von `/recap`](#running-%2Frecap)237* [Ausführen von `/recap`](#running-%2Frecap)

239* [Konversation zurückspulen](#rewinding-the-conversation)238* [Rückgängigmachen des Gesprächs](#rewinding-the-conversation)

240* [Einen Subagent spawnen](#subagents-and-the-cache)239* [Starten eines Subagenten](#subagents-and-the-cache)

241 240 

242<h3 id="editing-files-in-your-repository">241<h3 id="editing-files-in-your-repository">

243 Dateien in Ihrem Repository bearbeiten242 Bearbeiten von Dateien in Ihrem Repository

244</h3>243</h3>

245 244 

246Dateiinhalte treten in den Kontext nur ein, wenn Claude sie liest, und Lesevorgänge hängen an der Konversation an. Das Bearbeiten einer Datei, die Claude zuvor gelesen hat, ändert nicht rückwirkend das frühere Lesen in der Historie. Stattdessen hängt Claude Code eine `<system-reminder>` an, die bemerkt, dass die Datei geändert wurde, und Claude liest sie erneut, wenn nötig.245Dateiinhalte werden nur dann in den Kontext aufgenommen, wenn Claude sie liest, und Lesevorgänge hängen sich an das Gespräch an. Das Bearbeiten einer Datei, die Claude zuvor gelesen hat, ändert nicht rückwirkend den früheren Lesevorgang in der Historie. Stattdessen hängt Claude Code eine `<system-reminder>` an, die notiert, dass sich die Datei geändert hat, und Claude liest sie bei Bedarf erneut.

247 246 

248<h3 id="editing-claude-md-mid-session">247<h3 id="editing-claude-md-mid-session">

249 CLAUDE.md mid-session bearbeiten248 Bearbeiten von CLAUDE.md während der Sitzung

250</h3>249</h3>

251 250 

252Ihre Projekt-Root- und Benutzer-Level-CLAUDE.md-Dateien werden einmal am Session-Start gelesen und im Speicher gehalten. Das Bearbeiten von ihnen mid-session macht den Cache nicht ungültig, aber die Bearbeitung wird auch nicht angewendet. Claude arbeitet weiterhin mit der Version, die am Session-Start geladen wurde. Der neue Inhalt wird beim nächsten `/clear`, `/compact` oder Neustart geladen.251Ihre CLAUDE.md-Dateien auf Projektebene und Benutzerebene werden einmal beim Sitzungsstart gelesen und im Speicher gehalten. Das Bearbeiten während der Sitzung invalidiert den Cache nicht, aber die Bearbeitung wird auch nicht angewendet. Claude arbeitet weiterhin mit der Version, die beim Sitzungsstart geladen wurde. Der neue Inhalt wird beim nächsten `/clear`, `/compact` oder Neustart geladen.

253 252 

254[Verschachtelte CLAUDE.md-Dateien in Unterverzeichnissen](/docs/de/memory) und [Rules mit `paths:` Frontmatter](/docs/de/memory#path-specific-rules) werden später geladen, wenn Claude zum ersten Mal eine passende Datei liest. Das Bearbeiten einer vor dem Laden hat Auswirkungen. Nach dem Laden ist der Inhalt Teil der Konversationshistorie, daher ändert eine mid-session-Bearbeitung ihn nicht rückwirkend.253[Verschachtelte CLAUDE.md-Dateien in Unterverzeichnissen](/docs/de/memory) und [Regeln mit `paths:`-Frontmatter](/docs/de/memory#path-specific-rules) werden später geladen, wenn Claude zum ersten Mal eine entsprechende Datei liest. Das Bearbeiten einer Datei, bevor sie geladen wird, wird wirksam. Nach dem Laden ist der Inhalt Teil der Gesprächshistorie, daher ändert eine Bearbeitung während der Sitzung ihn nicht rückwirkend.

255 254 

256<h3 id="changing-permission-mode">255<h3 id="changing-permission-mode">

257 Berechtigungsmodus ändern256 Ändern des Berechtigungsmodus

258</h3>257</h3>

259 258 

260Das Wechseln zwischen [Berechtigungsmodi](/docs/de/permission-modes), z. B. von Manual zu Accept Edits, ändert den System-Prompt oder Tool-Definitionen nicht, daher sind Modus-Wechsel Cache-sicher. Die Ausnahme ist Plan Mode mit der [`opusplan`](/docs/de/model-config#opusplan-model-setting) Modelleinstellung, die das Modell zwischen Opus und Sonnet wechselt, wenn Sie Plan Mode betreten oder verlassen. Das macht den Modus-Toggle zu einem [Modellwechsel](#switching-models).259Das Wechseln zwischen [Berechtigungsmodi](/docs/de/permission-modes), z. B. von Manuell zu Bearbeitungen akzeptieren, ändert nicht die Systemaufforderung oder Werkzeugdefinitionen, daher sind Modusänderungen Cache-sicher. Die Ausnahme ist der Plan-Modus mit der [`opusplan`](/docs/de/model-config#opusplan-model-setting)-Modelleinstellung, die das Modell zwischen Opus und Sonnet wechselt, wenn Sie den Plan-Modus betreten oder verlassen. Das macht den Moduswechsel zu einem [Modellwechsel](#switching-models).

260 

261<h3 id="changing-output-style">

262 Ändern des Ausgabestils

263</h3>

264 

265Wenn Sie [Ausgabestile](/docs/de/output-styles) während der Sitzung mit `/config` oder der `outputStyle`-Einstellung wechseln, verwendet Claude den neuen Stil ab Ihrer nächsten Nachricht. Claude Code liefert die Anweisungen des neuen Stils als Nachricht im Gespräch, daher liest diese Anfrage die Systemaufforderung und das frühere Gespräch aus dem Cache.

266 

267Vor v2.1.251 behielt ein Stilwechsel während der Sitzung den Cache bei, wurde aber erst angewendet, wenn Sie `/clear` ausführten oder eine neue Sitzung starteten.

261 268 

262<h3 id="invoking-skills-and-commands">269<h3 id="invoking-skills-and-commands">

263 Skills und Commands aufrufen270 Aufrufen von Skills und Befehlen

264</h3>271</h3>

265 272 

266[Skills](/docs/de/skills) und [Commands](/docs/de/commands) injizieren ihre Anweisungen als Benutzernachrichten am Punkt der Aufrufe. Nichts früher in der Konversation ändert sich.273[Skills](/docs/de/skills) und [Befehle](/docs/de/commands) injizieren ihre Anweisungen als Benutzernachrichten zum Zeitpunkt des Aufrufs. Nichts Früheres im Gespräch ändert sich. Ein Skill oder Befehl, dessen Frontmatter ein `model` benennt, kann für diesen Zug ein [Modellwechsel](#switching-models) sein.

267 274 

268<h3 id="running-/recap">275<h3 id="running-/recap">

269 Ausführen von `/recap`276 Ausführen von `/recap`

270</h3>277</h3>

271 278 

272[`/recap`](/docs/de/interactive-mode#session-recap) generiert eine Zusammenfassung zur Anzeige in Ihrem Terminal. Im Gegensatz zu `/compact` hängt es die Zusammenfassung als Befehlsausgabe an, anstatt Ihre Nachrichtenhistorie zu ersetzen, daher bleibt das gecachte Präfix intakt.279[`/recap`](/docs/de/interactive-mode#session-recap) generiert eine Zusammenfassung zur Anzeige in Ihrem Terminal. Im Gegensatz zu `/compact` hängt es die Zusammenfassung als Befehlsausgabe an, anstatt Ihren Nachrichtenverlauf zu ersetzen, daher bleibt das zwischengespeicherte Präfix intakt.

273 280 

274<h3 id="rewinding-the-conversation">281<h3 id="rewinding-the-conversation">

275 Konversation zurückspulen282 Rückgängigmachen des Gesprächs

276</h3>283</h3>

277 284 

278[`/rewind`](/docs/de/checkpointing) schneidet Ihre Konversation auf einen früheren Turn zurück. Die verbleibende Historie ist derselbe Inhalt, aus dem der Cache zu diesem Punkt gebaut wurde, und die System-Prompt- und Projektkontext-Ebenen sind unverändert, daher trifft die nächste Anfrage den früheren Cache-Eintrag. Jeder Turn seitdem hat dieses Präfix gelesen, das den Eintrag warm hielt, auch wenn der ursprüngliche Turn länger her war als die TTL.285[`/rewind`](/docs/de/checkpointing) kürzt Ihr Gespräch auf einen früheren Zug. Die verbleibende Historie ist derselbe Inhalt, aus dem der Cache zu diesem Zeitpunkt erstellt wurde, und die Systemaufforderung und Projektkontext-Ebenen sind unverändert, daher trifft die nächste Anfrage auf den früheren Cache-Eintrag. Jeder Zug seitdem hat dieses Präfix gelesen, das den Eintrag warm hielt, auch wenn der ursprüngliche Zug länger her war als die TTL.

286 

287Das Wiederherstellen von Datei-Checkpoints zusammen mit dem Gespräch hat keine separate Auswirkung auf den Cache. Dateiinhalte werden nur dann in den Kontext aufgenommen, wenn Claude sie liest, genauso wie beim [Bearbeiten von Dateien in Ihrem Repository](#editing-files-in-your-repository).

288 

289<h2 id="resuming-a-session">

290 Fortsetzen einer Sitzung

291</h2>

292 

293Wenn Sie [eine Sitzung fortsetzen](/docs/de/sessions#resume-a-session), sendet Claude Code das gesamte Gespräch erneut, und die Anfrage liest aus dem Cache, welcher Teil ihres Präfix unverändert ist und sich noch innerhalb der [Cache-Lebensdauer](#cache-lifetime) befindet. Die Schichttabelle oben auf dieser Seite zeigt, welche Änderungen jede Schicht vornimmt.

279 294 

280Das Wiederherstellen von Datei-Checkpoints zusammen mit der Konversation hat keine separate Auswirkung auf den Cache. Dateiinhalte treten in den Kontext nur ein, wenn Claude sie liest, dasselbe wie [Dateien in Ihrem Repository bearbeiten](#editing-files-in-your-repository).295Die Systemaufforderung würde sich nach einem [Claude Code-Upgrade](#upgrading-claude-code) oder mit anderem [`--append-system-prompt`](/docs/de/cli-reference#system-prompt-flags)-Text beim Fortsetzen ändern. Standardmäßig behält das fortgesetzte Gespräch die Systemaufforderung bei, mit der es begonnen hat, sodass sein Verlauf immer noch hinter derselben Aufforderung liegt, und die Änderung wird wirksam, sobald das Gespräch komprimiert wird oder in einem neuen Gespräch stattfindet. [Systemaufforderungs-Flags in fortgesetzten Gesprächen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations) behandelt `--system-prompt-snapshot off` und den Bare-Modus, wo dies nicht zutrifft.

281 296 

282<h2 id="cache-lifetime">297<h2 id="cache-lifetime">

283 Cache-Lebensdauer298 Cache-Lebensdauer


337 Cache-Umfang352 Cache-Umfang

338</h2>353</h2>

339 354 

340In Claude Code ist der Cache effektiv auf einen Computer und ein Verzeichnis beschränkt. Der System-Prompt bettet das Arbeitsverzeichnis, die Plattform, die Shell, die OS-Version und Auto-Memory-Pfade ein, daher bauen zwei Sessions in verschiedenen Verzeichnissen unterschiedliche Präfixe auf und verfehlen den Cache des anderen. Das schließt Worktrees desselben Repositorys ein, da jeder Worktree sein eigenes Arbeitsverzeichnis hat.355In Claude Code ist der Cache effektiv auf einen Computer und ein Verzeichnis beschränkt. Jede Konversation trägt das Arbeitsverzeichnis, die Plattform, die Shell und die OS-Version mit sich, und der System-Prompt benennt Ihre Auto-Memory-Pfade, daher bauen zwei Sessions in verschiedenen Verzeichnissen unterschiedliche Präfixe auf und verfehlen den Cache des anderen. Das schließt Worktrees desselben Repositorys ein, da jeder Worktree sein eigenes Arbeitsverzeichnis hat.

341 356 

342Sessions, die Sie parallel im selben Verzeichnis ausführen, bauen passende Präfixe auf und lesen den Cache des anderen. Sequenzielle Sessions teilen das Präfix nur, wenn der Git-Status-Snapshot beim Start übereinstimmt, da der System-Prompt auch Branch und aktuelle Commits erfasst.357Sessions, die Sie parallel im selben Verzeichnis ausführen, bauen passende Präfixe auf und lesen den Cache des anderen. Sequenzielle Sessions teilen das Präfix nur, wenn der Git-Status-Snapshot beim Start übereinstimmt, da jede Konversation auch den Branch und aktuelle Commits aus diesem Snapshot trägt.

343 358 

344Der zugrunde liegende API-Cache ist breiter. Caches sind zwischen Organisationen isoliert, und bei einigen Providern [zwischen Workspaces innerhalb einer Organisation](https://platform.claude.com/docs/de/build-with-claude/prompt-caching#cache-storage-and-sharing). Innerhalb dieser Grenzen lesen zwei Anfragen mit demselben Modell und Präfix denselben Cache. Für Agent SDK-Aufrufer, die Flotten automatisierter Prozesse ausführen, siehe [Prompt Caching über Benutzer und Maschinen verbessern](/docs/de/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines), um die Pro-Maschinen-Abschnitte des System-Prompts zu unterdrücken und den Cache über Maschinen zu teilen.359Der zugrunde liegende API-Cache ist breiter. Caches sind zwischen Organisationen isoliert, und bei einigen Providern [zwischen Workspaces innerhalb einer Organisation](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Innerhalb dieser Grenzen lesen zwei Anfragen mit demselben Modell und Präfix denselben Cache. Für Agent SDK-Aufrufer, die Flotten automatisierter Prozesse ausführen, siehe [Prompt Caching über Benutzer und Maschinen verbessern](/docs/de/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines), um die Pro-Maschinen-Abschnitte des System-Prompts zu unterdrücken und den Cache über Maschinen zu teilen.

345 360 

346<h2 id="check-cache-performance">361<h2 id="check-cache-performance">

347 Cache-Leistung überprüfen362 Cache-Leistung überprüfen


376 391 

377* **Session-Kopien**: Eine Session, die Sie [mit `/fork` kopieren](/docs/de/agent-view#copy-the-session-with-%2Ffork), erhält ihre Isolationsanweisung als Nachricht am Ende der kopierten Konversation, daher bleibt der Cache, den die ursprüngliche Konversation aufgebaut hat, intakt.392* **Session-Kopien**: Eine Session, die Sie [mit `/fork` kopieren](/docs/de/agent-view#copy-the-session-with-%2Ffork), erhält ihre Isolationsanweisung als Nachricht am Ende der kopierten Konversation, daher bleibt der Cache, den die ursprüngliche Konversation aufgebaut hat, intakt.

378* **Komprimierung**: Der Zusammenfassungs-Call, der in [Konversation komprimieren](#compacting-the-conversation) beschrieben wird, verwendet denselben Präfix-Sharing-Ansatz.393* **Komprimierung**: Der Zusammenfassungs-Call, der in [Konversation komprimieren](#compacting-the-conversation) beschrieben wird, verwendet denselben Präfix-Sharing-Ansatz.

394* **Wiederaufgenommene Subagents**: Wenn Claude einen [Subagent wiederaufnimmt](/docs/de/sub-agents#resume-subagents), kann der erste Request des wiederaufgenommenen Laufs den Cache lesen, den der ursprüngliche Lauf gewärmt hat.

379* **Workflow-Fan-Outs**: Bei einem [Workflow-Fan-Out](/docs/de/workflows#prompt-caching-in-a-fan-out) von Agents mit gleichem Präfix hält Claude Code alle außer dem ersten standardmäßig bis zu 5 Sekunden lang, damit ihre ersten Requests das Präfix lesen können, das der erste Agent gecacht hat.395* **Workflow-Fan-Outs**: Bei einem [Workflow-Fan-Out](/docs/de/workflows#prompt-caching-in-a-fan-out) von Agents mit gleichem Präfix hält Claude Code alle außer dem ersten standardmäßig bis zu 5 Sekunden lang, damit ihre ersten Requests das Präfix lesen können, das der erste Agent gecacht hat.

380 396 

381<h2 id="disable-prompt-caching">397<h2 id="disable-prompt-caching">

quickstart.md +10 −10

Details

27 Schritt 1: Claude Code installieren27 Schritt 1: Claude Code installieren

28</h2>28</h2>

29 29 

30To install Claude Code, use one of the following methods:30Um Claude Code zu installieren, verwenden Sie eine der folgenden Methoden:

31 31 

32<Tabs>32<Tabs>

33 <Tab title="Native Install (Recommended)">33 <Tab title="Native Installation (Empfohlen)">

34 **macOS, Linux, WSL:**34 **macOS, Linux, WSL:**

35 35 

36 ```bash theme={null}36 ```bash theme={null}


49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```50 ```

51 51 

52 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.52 Wenn Sie `The token '&&' is not a valid statement separator` sehen, befinden Sie sich in PowerShell, nicht in CMD. Wenn Sie `'irm' is not recognized as an internal or external command` sehen, befinden Sie sich in CMD, nicht in PowerShell. Ihre Eingabeaufforderung zeigt `PS C:\`, wenn Sie sich in PowerShell befinden, und `C:\` ohne `PS`, wenn Sie sich in CMD befinden.

53 53 

54 If the install command fails with `syntax error near unexpected token '<'`, a `403`, or another curl error, see [Troubleshoot installation](/docs/en/troubleshoot-install#find-your-error) to match the error to a fix and for alternative install methods.54 Wenn der Installationsbefehl mit `syntax error near unexpected token '<'`, einem `403` oder einem anderen curl-Fehler fehlschlägt, siehe [Installationsfehler beheben](/docs/de/troubleshoot-install#find-your-error), um den Fehler einer Lösung zuzuordnen und alternative Installationsmethoden zu finden.

55 55 

56 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.56 [Git für Windows](https://git-scm.com/downloads/win) wird auf nativem Windows empfohlen, damit Claude Code das Bash-Tool verwenden kann. Wenn Git für Windows nicht installiert ist, verwendet Claude Code stattdessen PowerShell als Shell-Tool. WSL-Setups benötigen Git für Windows nicht.

57 57 

58 <Info>58 <Info>

59 Native installations automatically update in the background to keep you on the latest version.59 Native Installationen werden automatisch im Hintergrund aktualisiert, um Sie auf der neuesten Version zu halten.

60 </Info>60 </Info>

61 </Tab>61 </Tab>

62 62 


65 brew install --cask claude-code65 brew install --cask claude-code

66 ```66 ```

67 67 

68 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.68 Homebrew bietet zwei Casks. `claude-code` verfolgt den stabilen Release-Kanal, der normalerweise etwa eine Woche hinter dem aktuellen Stand liegt und Releases mit großen Regressionen überspringt. `claude-code@latest` verfolgt den neuesten Kanal und erhält neue Versionen, sobald sie verfügbar sind.

69 69 

70 <Info>70 <Info>

71 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.71 Homebrew-Installationen werden nicht automatisch aktualisiert. Führen Sie `brew upgrade claude-code` oder `brew upgrade claude-code@latest` aus, je nachdem welches Cask Sie installiert haben, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

72 </Info>72 </Info>

73 </Tab>73 </Tab>

74 74 


78 ```78 ```

79 79 

80 <Info>80 <Info>

81 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.81 WinGet-Installationen werden nicht automatisch aktualisiert. Führen Sie regelmäßig `winget upgrade Anthropic.ClaudeCode` aus, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

82 </Info>82 </Info>

83 </Tab>83 </Tab>

84</Tabs>84</Tabs>

85 85 

86You can also install with [apt, dnf, or apk](/docs/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.86Sie können auch mit [apt, dnf oder apk](/docs/de/setup#install-with-linux-package-managers) auf Debian, Fedora, RHEL und Alpine installieren.

87 87 

88Um zu bestätigen, dass die Installation funktioniert hat, führen Sie aus:88Um zu bestätigen, dass die Installation funktioniert hat, führen Sie aus:

89 89 

remote-control.md +38 −26

Details

52 claude remote-control52 claude remote-control

53 ```53 ```

54 54 

55 Bis Sie Remote Controls einmalige Bestätigung akzeptieren, erklärt `claude remote-control`, was es tut, und fragt `Enable Remote Control? (y/n)`, bevor der Server gestartet wird. Antworten Sie mit `y`, um zu akzeptieren und den Server zu starten. Wenn Sie ablehnen, beendet Claude Code den Vorgang ohne Starten des Servers und fragt beim nächsten Ausführen des Befehls erneut.

56 

55 Der Prozess läuft weiterhin in Ihrem Terminal im Server-Modus und wartet auf Remote-Verbindungen. Er zeigt eine Sitzungs-URL an, die Sie zum [Verbinden von einem anderen Gerät](#connect-from-another-device) verwenden können, und Sie können die Leertaste drücken, um einen QR-Code für schnellen Zugriff von Ihrem Telefon anzuzeigen. Während eine Remote-Sitzung aktiv ist, zeigt das Terminal den Verbindungsstatus und die Tool-Aktivität an.57 Der Prozess läuft weiterhin in Ihrem Terminal im Server-Modus und wartet auf Remote-Verbindungen. Er zeigt eine Sitzungs-URL an, die Sie zum [Verbinden von einem anderen Gerät](#connect-from-another-device) verwenden können, und Sie können die Leertaste drücken, um einen QR-Code für schnellen Zugriff von Ihrem Telefon anzuzeigen. Während eine Remote-Sitzung aktiv ist, zeigt das Terminal den Verbindungsstatus und die Tool-Aktivität an.

56 58 

57 Verfügbare Flags:59 Verfügbare Flags:


60 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |62 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

61 | `--name "My Project"` | Legen Sie einen benutzerdefinierten Sitzungstitel fest, der in der Sitzungsliste unter claude.ai/code sichtbar ist. |63 | `--name "My Project"` | Legen Sie einen benutzerdefinierten Sitzungstitel fest, der in der Sitzungsliste unter claude.ai/code sichtbar ist. |

62 | `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte Sitzungsnamen, wenn kein expliziter Name festgelegt ist. Standardmäßig der Hostname Ihres Computers, was Namen wie `myhost-graceful-unicorn` erzeugt. Setzen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für denselben Effekt. |64 | `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte Sitzungsnamen, wenn kein expliziter Name festgelegt ist. Standardmäßig der Hostname Ihres Computers, was Namen wie `myhost-graceful-unicorn` erzeugt. Setzen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für denselben Effekt. |

63 | `-c`, `--continue` | Setzen Sie die zuletzt gestartete Remote Control-Sitzung aus diesem Verzeichnis fort, anstatt eine neue zu erstellen. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](#resume-sessions-after-stopping-the-server). Kann nicht mit `--session-id`, `--spawn`, `--capacity` oder `--create-session-in-dir` kombiniert werden. Erfordert Claude Code v2.1.200 oder später; frühere Versionen lehnen das Flag als unbekanntes Argument ab. |65 | `-c`, `--continue` | Bringen Sie die Sitzung zurück, die der letzte Server in diesem Verzeichnis gestartet hat, anstatt eine neue zu erstellen. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](#resume-sessions-after-stopping-the-server). Kann nicht mit `--session-id`, `--spawn`, `--capacity` oder `--create-session-in-dir` kombiniert werden. Erfordert Claude Code v2.1.200 oder später; frühere Versionen lehnen das Flag als unbekanntes Argument ab. |

64 | `--session-id <id>` | Setzen Sie eine bestimmte Remote Control-Sitzung anhand ihrer ID fort. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](#resume-sessions-after-stopping-the-server). Kann nicht mit `--continue`, `--spawn`, `--capacity` oder `--create-session-in-dir` kombiniert werden. Erfordert Claude Code v2.1.200 oder später; frühere Versionen lehnen das Flag als unbekanntes Argument ab. |66 | `--session-id <id>` | Bringen Sie eine Sitzung anhand ihrer ID zurück. Siehe [Sitzungen nach dem Stoppen des Servers fortsetzen](#resume-sessions-after-stopping-the-server). Kann nicht mit `--continue`, `--spawn`, `--capacity` oder `--create-session-in-dir` kombiniert werden. Erfordert Claude Code v2.1.200 oder später; frühere Versionen lehnen das Flag als unbekanntes Argument ab. |

65 | `--spawn <mode>` | Wie der Server Sitzungen erstellt.<br />• `same-dir` (Standard): Alle Sitzungen teilen sich das aktuelle Arbeitsverzeichnis, sodass sie in Konflikt geraten können, wenn dieselben Dateien bearbeitet werden.<br />• `worktree`: Jede On-Demand-Sitzung erhält ihren eigenen [git worktree](/docs/de/worktrees). Erfordert ein Git-Repository.<br />• `session`: Single-Session-Modus. Bedient genau eine Sitzung und lehnt zusätzliche Verbindungen ab. Wird nur beim Start festgelegt.<br />Drücken Sie `w` zur Laufzeit, um zwischen `same-dir` und `worktree` umzuschalten. |67 | `--spawn <mode>` | Wie der Server Sitzungen erstellt.<br />• `same-dir` (Standard): Alle Sitzungen teilen sich das aktuelle Arbeitsverzeichnis, sodass sie in Konflikt geraten können, wenn dieselben Dateien bearbeitet werden.<br />• `worktree`: Jede On-Demand-Sitzung erhält ihren eigenen [git worktree](/docs/de/worktrees). Erfordert ein Git-Repository.<br />• `session`: Single-Session-Modus. Bedient genau eine Sitzung und lehnt zusätzliche Verbindungen ab. Wird nur beim Start festgelegt.<br />Drücken Sie `w` zur Laufzeit, um zwischen `same-dir` und `worktree` umzuschalten. |

66 | `--capacity <N>` | Maximale Anzahl gleichzeitiger Sitzungen. Standard ist 32. Kann nicht mit `--spawn=session` verwendet werden. |68 | `--capacity <N>` | Maximale Anzahl gleichzeitiger Sitzungen. Standard ist 32. Kann nicht mit `--spawn=session` verwendet werden. |

67 | `--[no-]create-session-in-dir` | Erstellen Sie vorab eine Sitzung im aktuellen Verzeichnis, wenn der Server startet, damit Sie sofort einen Ort zum Eingeben haben. Im `worktree`-Modus bleibt diese Sitzung im aktuellen Verzeichnis, während On-Demand-Sitzungen isolierte Worktrees erhalten. Standardmäßig aktiviert. Wenn Sie `--no-create-session-in-dir` übergeben, um ohne zu starten, archiviert Claude Code die Sitzungen des Servers, wenn Sie ihn stoppen, sodass es nichts zum [Fortsetzen](#resume-sessions-after-stopping-the-server) gibt. |69 | `--[no-]create-session-in-dir` | Erstellen Sie vorab eine Sitzung im aktuellen Verzeichnis, wenn der Server startet, damit Sie sofort einen Ort zum Eingeben haben. Im `worktree`-Modus bleibt diese Sitzung im aktuellen Verzeichnis, während On-Demand-Sitzungen isolierte Worktrees erhalten. Standardmäßig aktiviert. Wenn Sie `--no-create-session-in-dir` übergeben, um ohne zu starten, archiviert Claude Code die Sitzungen des Servers, wenn Sie ihn stoppen, sodass es nichts zum [Fortsetzen](#resume-sessions-after-stopping-the-server) gibt. |


108 110 

109 Dies startet eine Remote Control-Sitzung, die Ihren aktuellen Gesprächsverlauf überträgt.111 Dies startet eine Remote Control-Sitzung, die Ihren aktuellen Gesprächsverlauf überträgt.

110 112 

113 Bis Sie Remote Controls einmalige Bestätigung akzeptieren, wird ein Dialog angezeigt, bevor `/remote-control` verbunden wird. Wählen Sie **Enable Remote Control**, um zu akzeptieren und zu verbinden. Wenn Sie **Never mind** wählen oder Esc drücken, verbindet Claude Code nicht und fragt beim nächsten Ausführen von `/remote-control` erneut.

114 

111 Die Flags `--verbose`, `--sandbox` und `--no-sandbox` sind mit diesem Befehl nicht verfügbar.115 Die Flags `--verbose`, `--sandbox` und `--no-sandbox` sind mit diesem Befehl nicht verfügbar.

112 </Tab>116 </Tab>

113 117 


128 Verbindungsstatus überprüfen132 Verbindungsstatus überprüfen

129</h3>133</h3>

130 134 

131In einer interaktiven Terminal-Sitzung sitzt ein `/rc active`-Indikator in der Fußzeile unter dem Eingabefeld, während die Verbindung besteht, und wird ausgeblendet, wenn das Terminal zu schmal ist, um ihn anzuzeigen. Der Indikatortext ist ein Link zur Sitzung auf claude.ai. Wählen Sie ihn mit der Abwärts-Pfeiltaste aus und drücken Sie die Eingabetaste, oder führen Sie `/remote-control` erneut aus, um ein Statusfenster mit der Sitzungs-URL und einem QR-Code zu öffnen, den Sie zum [Verbinden von einem anderen Gerät](#connect-from-another-device) verwenden können. Das Statusfenster bietet auch eine Trennungsoption. Wählen Sie es aus, um Remote Control auszuschalten; Ihre lokale Sitzung läuft weiterhin im Terminal.135In einer interaktiven Terminal-Sitzung zeigt ein `/rc active`-Indikator, während die Verbindung besteht, und wird ausgeblendet, wenn das Terminal zu schmal ist, um ihn anzuzeigen. Mit [Vollbildrendering](/docs/de/fullscreen) sitzt er am Ende der Arbeitsverzeichniszeile in der Startkopfzeile, und ohne es, in der Fußzeile unter dem Eingabefeld.

132 136 

133Wenn die Verbindung fehlschlägt, zeigt Claude Code eine Benachrichtigung mit dem Fehlergrund an und schaltet den Indikator in einen Fehlerzustand um, der in der Fußzeile bleibt. Um den Grund erneut zu lesen, wählen Sie den Indikator mit der Abwärts-Pfeiltaste aus und drücken Sie die Eingabetaste. Um erneut zu verbinden, führen Sie `/remote-control` aus, es sei denn, der [Grund besagt, dass die Sitzung anderswo übernommen oder beendet wurde, oder dass der Server sie nicht finden kann](#session-ended-elsewhere).137Der Indikatortext ist ein Link zur Sitzung auf claude.ai. Führen Sie `/remote-control` erneut aus, um ein Statusfenster mit der Sitzungs-URL und einem QR-Code zum [Verbinden von einem anderen Gerät](#connect-from-another-device) zu öffnen. Wenn sich der Indikator in der Fußzeile befindet, können Sie das Fenster auch öffnen, indem Sie den Indikator mit der Abwärts-Pfeiltaste auswählen und die Eingabetaste drücken. Das Fenster bietet auch eine Trennungsoption, die Remote Control ausschaltet, während Ihre lokale Sitzung weiterhin im Terminal läuft.

138 

139Wenn die Verbindung fehlschlägt, zeigt Claude Code eine Benachrichtigung mit dem Fehlergrund an, fügt eine Warnzeile mit dem Grund zum Gespräch hinzu und schaltet den Indikator in einen Fehlerzustand um, der in der Fußzeile bleibt. Um erneut zu verbinden, führen Sie `/remote-control` aus, es sei denn, der [Grund besagt, dass die Sitzung anderswo übernommen oder beendet wurde, oder dass der Server sie nicht finden kann](#session-ended-elsewhere).

134 140 

135<span id="session-ended-elsewhere" />Lesen Sie den Grund, bevor Sie erneut verbinden. Wenn die Sitzung von einem anderen Gerät, einer App oder einer Claude Code-Sitzung übernommen oder beendet wurde, oder der Server sie nicht finden kann, besagt der Grund, welches der Fall ist, und Claude Code lässt seinen üblichen Rat aus, `/remote-control` auszuführen:141<span id="session-ended-elsewhere" />Lesen Sie den Grund, bevor Sie erneut verbinden. Wenn die Sitzung von einem anderen Gerät, einer App oder einer Claude Code-Sitzung übernommen oder beendet wurde, oder der Server sie nicht finden kann, besagt der Grund, welches der Fall ist, und Claude Code lässt seinen üblichen Rat aus, `/remote-control` auszuführen:

136 142 


182 188 

183* **Komprimierung und `/clear`**: Während Claude Code [das Gespräch komprimiert](/docs/de/context-window#what-survives-compaction), zeigen verbundene Geräte den Fortschritt und dann an, wo das Gespräch komprimiert wurde. Wenn Sie `/clear` ausführen, wird das Gespräch auch auf verbundenen Geräten zurückgesetzt.189* **Komprimierung und `/clear`**: Während Claude Code [das Gespräch komprimiert](/docs/de/context-window#what-survives-compaction), zeigen verbundene Geräte den Fortschritt und dann an, wo das Gespräch komprimiert wurde. Wenn Sie `/clear` ausführen, wird das Gespräch auch auf verbundenen Geräten zurückgesetzt.

184* **Wechsel von Gesprächen mit `/resume`**: Das verbundene Gerät empfängt nicht den Titel oder die frühere Verlauf des gewechselten Gesprächs, aber neue Nachrichten in beide Richtungen gehen zu und von dem Gespräch, das in Ihrem Terminal offen ist. Um von dem Gerät aus wieder an dem ursprünglichen Gespräch zu arbeiten, führen Sie `/resume` in Ihrem Terminal aus und wechseln Sie zurück.190* **Wechsel von Gesprächen mit `/resume`**: Das verbundene Gerät empfängt nicht den Titel oder die frühere Verlauf des gewechselten Gesprächs, aber neue Nachrichten in beide Richtungen gehen zu und von dem Gespräch, das in Ihrem Terminal offen ist. Um von dem Gerät aus wieder an dem ursprünglichen Gespräch zu arbeiten, führen Sie `/resume` in Ihrem Terminal aus und wechseln Sie zurück.

191* **Ziehen Sie eine Sitzung mit `/teleport`**: Wenn Sie eine [Claude Code im Web-Sitzung](/docs/de/claude-code-on-the-web#from-web-to-terminal) mit `/teleport` in Ihr Terminal ziehen, empfängt das verbundene Gerät nicht den früheren Verlauf des gezogenen Gesprächs. Neue Nachrichten in beide Richtungen gehen zu und von dem gezogenen Gespräch, das jetzt das in Ihrem Terminal offene ist.

185* **Nachrichten von Ihren anderen Sitzungen**: Mit [sitzungsübergreifendem Messaging](/docs/de/cross-session-messaging) trägt dieselbe Verbindung Nachrichten zwischen Ihren eigenen Sitzungen auf verschiedenen Maschinen und von Ihren [Claude Code im Web](/docs/de/claude-code-on-the-web)-Sitzungen, über Anthropic-Server wie der Rest des Remote Control-Verkehrs. [Nachrichtensitzungen auf anderen Maschinen](/docs/de/cross-session-messaging#message-sessions-on-other-machines) behandelt die Lieferregeln und [Kontrollieren Sie eingehende Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) behandelt die eingehenden Kontrollen. Erfordert Claude Code v2.1.224 oder später.192* **Nachrichten von Ihren anderen Sitzungen**: Mit [sitzungsübergreifendem Messaging](/docs/de/cross-session-messaging) trägt dieselbe Verbindung Nachrichten zwischen Ihren eigenen Sitzungen auf verschiedenen Maschinen und von Ihren [Claude Code im Web](/docs/de/claude-code-on-the-web)-Sitzungen, über Anthropic-Server wie der Rest des Remote Control-Verkehrs. [Nachrichtensitzungen auf anderen Maschinen](/docs/de/cross-session-messaging#message-sessions-on-other-machines) behandelt die Lieferregeln und [Kontrollieren Sie eingehende Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) behandelt die eingehenden Kontrollen. Erfordert Claude Code v2.1.224 oder später.

186* **Eingabeaufforderungen, die Sie während einer Runde senden**: Wenn Sie eine Eingabeaufforderung von einem verbundenen Gerät senden, bevor die aktuelle Runde endet, stellt Claude Code sie in die Warteschlange und behält sie im Transkript des Geräts, nachdem diese Runde endet.193* **Eingabeaufforderungen, die Sie während einer Runde senden**: Wenn Sie eine Eingabeaufforderung von einem verbundenen Gerät senden, bevor die aktuelle Runde endet, stellt Claude Code sie in die Warteschlange und behält sie im Transkript des Geräts, nachdem diese Runde endet.

187* **Diff Ihrer Änderungen**: Wenn sich das Verzeichnis der Sitzung in einem Git-Repository befindet, zeigt der Diff-Bereich eines verbundenen Geräts den Diff Ihrer nicht committeten Änderungen. Das Gerät fordert den Diff über die Verbindung an, und Claude Code berechnet ihn auf Ihrem Computer. Wenn Ihr Arbeitsbaum sauber ist, bedient Claude Code stattdessen die Änderungen Ihres Branches, seit er vom Standard-Branch abgewichen ist. Vor v2.1.247 meldete Claude Code den Diff an verbundene Geräte nur in Sitzungen, die von `claude remote-control` bedient wurden.194* **Diff Ihrer Änderungen**: Wenn sich das Verzeichnis der Sitzung in einem Git-Repository befindet, zeigt der Diff-Bereich eines verbundenen Geräts den Diff Ihrer nicht committeten Änderungen. Das Gerät fordert den Diff über die Verbindung an, und Claude Code berechnet ihn auf Ihrem Computer. Wenn Ihr Arbeitsbaum sauber ist, bedient Claude Code stattdessen die Änderungen Ihres Branches, seit er vom Standard-Branch abgewichen ist. Vor v2.1.247 meldete Claude Code den Diff an verbundene Geräte nur in Sitzungen, die von `claude remote-control` bedient wurden.

188* **Modell**: Wenn Sie ein [Modell](/docs/de/model-config) von einem verbundenen Gerät aus auswählen, führt Claude Code die Sitzung auf diesem Modell aus. Die Auswahl `/model` des Terminals, `/status` und `/config` zeigen dieses Modell. Eine Auswahl vom Modellsteuerelement des Geräts gilt nur für die aktuelle Sitzung. `/model <name>`, das vom Gerät gesendet wird, setzt auch Ihren Standard für neue Sitzungen, genauso wie die Eingabe im Terminal.195* **Modell**: Wenn Sie ein [Modell](/docs/de/model-config) von einem verbundenen Gerät aus auswählen, führt Claude Code die Sitzung auf diesem Modell aus. Die Auswahl `/model` des Terminals, `/status` und `/config` zeigen dieses Modell. Erfordert Claude Code v2.1.238 oder später auf Ihrem Computer.

189* **Anstrengungsstufe**: Wenn Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) von einem verbundenen Gerät aus mit `/effort` oder dem Anstrengungssteuerelement des Geräts einstellen, wendet Claude Code sie auf die Sitzung auf Ihrem Computer an, und claude.ai/code zeigt die Stufe an, die die Sitzung verwendet. Wenn Sie eine Stufe mit `CLAUDE_CODE_EFFORT_LEVEL` angeheftet haben, behält die Sitzung diese Stufe, und Claude Code weigert sich, eine andere Auswahl vom Anstrengungssteuerelement zu treffen. Eine Stufe, die Sie vom Anstrengungssteuerelement auswählen, gilt nur für die aktuelle Sitzung und ändert nicht Ihren gespeicherten Standard. Die Auswahl einer Stufe vom Anstrengungssteuerelement erfordert Claude Code v2.1.234 oder später auf Ihrem Computer.196 * Ein Modell, das Sie vom Modellsteuerelement des Geräts auswählen, gilt nur für die aktuelle Sitzung. Wenn Sie `/model <name>` vom Gerät an eine interaktive Sitzung senden, setzt Claude Code auch Ihren Standard für neue Sitzungen.

197 * Wenn Sie einen Namen senden, den Claude Code nicht erkennt, z. B. einen Anzeigenamen, wenn eine Modell-ID erwartet wird, [weigert sich Claude Code, die Auswahl zu akzeptieren](/docs/de/errors#model-is-not-a-recognized-model-id) und die Sitzung behält ihr aktuelles Modell. Vor v2.1.260 speicherte Claude Code eine nicht erkannte Auswahl vom Modellsteuerelement des Geräts, und Ihre nächste Nachricht schlug fehl.

198* **Anstrengungsstufe**: Wenn Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) von einem verbundenen Gerät aus mit `/effort` oder dem Anstrengungssteuerelement des Geräts einstellen, wendet Claude Code sie auf die Sitzung auf Ihrem Computer an, und claude.ai/code zeigt die Stufe an, die die Sitzung verwendet. Wenn Sie eine Stufe mit `CLAUDE_CODE_EFFORT_LEVEL` angeheftet haben, behält die Sitzung diese Stufe, und Claude Code weigert sich, eine andere Auswahl vom Anstrengungssteuerelement zu treffen. Eine Stufe vom Anstrengungssteuerelement auszuwählen erfordert Claude Code v2.1.234 oder später auf Ihrem Computer.

190* **Erneute Verbindung nach einem Verbindungsfehler**: Führen Sie `/remote-control` aus, um erneut zu verbinden. Wenn die Komprimierung das Gespräch umgeschrieben hat oder Sie Gespräche mit `/resume` in der Zwischenzeit gewechselt haben, archiviert Claude Code die Server-Sitzung, die es verwendete, anstatt sie in der Sitzungsliste zu belassen. Sie können sie immer noch finden, indem Sie [nach archivierten Sitzungen filtern](/docs/de/claude-code-on-the-web#archive-sessions). Das Wechseln von Gesprächen, während ein Gerät noch verbunden ist, archiviert die Sitzung nicht.199* **Erneute Verbindung nach einem Verbindungsfehler**: Führen Sie `/remote-control` aus, um erneut zu verbinden. Wenn die Komprimierung das Gespräch umgeschrieben hat oder Sie Gespräche mit `/resume` in der Zwischenzeit gewechselt haben, archiviert Claude Code die Server-Sitzung, die es verwendete, anstatt sie in der Sitzungsliste zu belassen. Sie können sie immer noch finden, indem Sie [nach archivierten Sitzungen filtern](/docs/de/claude-code-on-the-web#archive-sessions). Das Wechseln von Gesprächen, während ein Gerät noch verbunden ist, archiviert die Sitzung nicht.

191 200 

192<h3 id="enable-remote-control-for-all-sessions">201<h3 id="enable-remote-control-for-all-sessions">


234 243 

235Ihre lokale Claude Code-Sitzung stellt nur ausgehende HTTPS-Anfragen und öffnet niemals eingehende Ports auf Ihrem Computer. Wenn Sie Remote Control starten, registriert es sich bei der Anthropic-API und fragt nach Arbeit ab. Wenn Sie sich von einem anderen Gerät aus verbinden, leitet der Server Nachrichten zwischen dem Web- oder Mobile-Client und Ihrer lokalen Sitzung über eine Streaming-Verbindung weiter.244Ihre lokale Claude Code-Sitzung stellt nur ausgehende HTTPS-Anfragen und öffnet niemals eingehende Ports auf Ihrem Computer. Wenn Sie Remote Control starten, registriert es sich bei der Anthropic-API und fragt nach Arbeit ab. Wenn Sie sich von einem anderen Gerät aus verbinden, leitet der Server Nachrichten zwischen dem Web- oder Mobile-Client und Ihrer lokalen Sitzung über eine Streaming-Verbindung weiter.

236 245 

237Der gesamte Datenverkehr verläuft über die Anthropic-API über TLS, die gleiche Transportsicherheit wie jede Claude Code-Sitzung. Die Verbindung verwendet mehrere kurzlebige Anmeldeinformationen, die jeweils auf einen einzelnen Zweck beschränkt sind und unabhängig ablaufen.246Der gesamte Datenverkehr verläuft über die Anthropic-API über TLS, die gleiche Transportsicherheit wie jede Claude Code-Sitzung. Die Verbindung verwendet mehrere kurzlebige Anmeldeinformationen, die jeweils auf einen einzelnen Zweck beschränkt sind und unabhängig ablaufen. Wenn die Registrierungsanmeldeinformation eines `claude remote-control`-Servers abläuft, registriert sich der Server erneut bei der Anthropic-API und bedient weiterhin seine Sitzungen.

238 247 

239Während Remote Control verbunden ist, werden das Sitzungstranskript, einschließlich Ihrer Nachrichten, Claudes Antworten und Werkzeugaktivität, auf Anthropic-Servern gespeichert. Das gespeicherte Transkript hält die Konversation auf Ihren Geräten synchron und ermöglicht es der Sitzung, sich nach einem Netzwerkausfall erneut zu verbinden. Ausführung und Dateisystemzugriff bleiben auf Ihrem Computer, und gespeicherte Transkripte werden gemäß der [Datenutzungsrichtlinie](/docs/de/data-usage) beibehalten.248Während Remote Control verbunden ist, werden das Sitzungstranskript, einschließlich Ihrer Nachrichten, Claudes Antworten und Werkzeugaktivität, auf Anthropic-Servern gespeichert. Das gespeicherte Transkript hält die Konversation auf Ihren Geräten synchron und ermöglicht es der Sitzung, sich nach einem Netzwerkausfall erneut zu verbinden. Ausführung und Dateisystemzugriff bleiben auf Ihrem Computer, und gespeicherte Transkripte werden gemäß der [Datenutzungsrichtlinie](/docs/de/data-usage) beibehalten.

240 249 


353 362 

354* **Eine Remote-Sitzung pro interaktivem Prozess**: Außerhalb des Server-Modus unterstützt jede Claude Code-Instanz jeweils eine Remote-Sitzung. Verwenden Sie den [Server-Modus](#start-a-remote-control-session), um mehrere gleichzeitige Sitzungen aus einem einzelnen Prozess auszuführen.363* **Eine Remote-Sitzung pro interaktivem Prozess**: Außerhalb des Server-Modus unterstützt jede Claude Code-Instanz jeweils eine Remote-Sitzung. Verwenden Sie den [Server-Modus](#start-a-remote-control-session), um mehrere gleichzeitige Sitzungen aus einem einzelnen Prozess auszuführen.

355* **Lokaler Prozess muss weiterhin ausgeführt werden**: Remote Control wird als lokaler Prozess ausgeführt. Wenn Sie das Terminal schließen, VS Code beenden oder den `claude`-Prozess anderweitig beenden, geht die Sitzung offline, bis Sie sie [wieder aktivieren](#resume-sessions-after-stopping-the-server). Sofern Claude nicht gerade eine Aufgabe ausführt, zeigen claude.ai und die Claude-App die Sitzung innerhalb von Sekunden nach dem Beenden des Prozesses als offline an. Um eine Sitzung auf einem Remote-Computer nach dem Trennen von SSH weiterhin auszuführen, starten Sie sie in `tmux` oder `screen`.364* **Lokaler Prozess muss weiterhin ausgeführt werden**: Remote Control wird als lokaler Prozess ausgeführt. Wenn Sie das Terminal schließen, VS Code beenden oder den `claude`-Prozess anderweitig beenden, geht die Sitzung offline, bis Sie sie [wieder aktivieren](#resume-sessions-after-stopping-the-server). Sofern Claude nicht gerade eine Aufgabe ausführt, zeigen claude.ai und die Claude-App die Sitzung innerhalb von Sekunden nach dem Beenden des Prozesses als offline an. Um eine Sitzung auf einem Remote-Computer nach dem Trennen von SSH weiterhin auszuführen, starten Sie sie in `tmux` oder `screen`.

356* **Abgestürzte Sitzungen im Server-Modus**: Wenn eine von `claude remote-control` bereitgestellte Sitzung abstürzt, senden Sie ihr eine Nachricht von einem verbundenen Gerät. Claude Code stellt sie erneut bereit. Sie müssen den Server nicht neu starten.365* **Abgestürzte Sitzungen im Server-Modus**: Wenn eine von `claude remote-control` bereitgestellte Sitzung abstürzt, senden Sie ihr eine Nachricht von einem verbundenen Gerät. Claude Code stellt sie erneut bereit. Sie müssen den Server nicht neu starten. Erfordert Claude Code v2.1.238 oder später.

357* **HTTP 403-Ablehnungen bei einer verbundenen Sitzung**: Sobald eine interaktive Sitzung verbunden ist, versucht Claude Code bis zu drei Minuten lang erneut, wenn etwas zwischen Ihrem Computer und den Servern von Anthropic mit HTTP 403 antwortet, was nach einem VPN- oder Netzwerkwechsel vorkommen kann. Wenn die Ablehnungen länger andauern, trennt Claude Code die Verbindung, und der Grund gibt an, was abgelehnt hat: ein Netzwerk-Edge, oder ein Proxy, VPN oder eine Firewall in Ihrem eigenen Netzwerk.366* **HTTP 403-Ablehnungen bei einer verbundenen Sitzung**: Sobald eine interaktive Sitzung verbunden ist, versucht Claude Code bis zu drei Minuten lang erneut, wenn etwas zwischen Ihrem Computer und den Servern von Anthropic mit HTTP 403 antwortet, was nach einem VPN- oder Netzwerkwechsel vorkommen kann. Wenn die Ablehnungen länger andauern, trennt Claude Code die Verbindung, und der Grund gibt an, was abgelehnt hat: ein Netzwerk-Edge, oder ein Proxy, VPN oder eine Firewall in Ihrem eigenen Netzwerk.

358* **Längerer Netzwerkausfall**: Wenn Ihr Computer aktiv ist, aber das Netzwerk nicht erreichen kann, hängt das, was Sie als Nächstes tun, vom Modus ab:367* **Längerer Netzwerkausfall**: Wenn Ihr Computer aktiv ist, aber das Netzwerk nicht erreichen kann, hängt das, was Sie als Nächstes tun, vom Modus ab:

359 * **Server-Modus**: Claude Code gibt nach etwa 10 Minuten auf und der `claude remote-control`-Prozess wird beendet. Führen Sie `claude remote-control` erneut aus, um eine neue Sitzung zu starten.368 * **Server-Modus**: Claude Code gibt nach etwa 10 Minuten auf und der `claude remote-control`-Prozess wird beendet. Führen Sie `claude remote-control` erneut aus, um eine neue Sitzung zu starten.

360 * **Interaktive Sitzung**: Arbeiten Sie lokal weiter. Claude Code versucht es erneut, solange der Ausfall andauert, und verbindet sich automatisch wieder, wenn das Netzwerk zurückkommt.369 * **Interaktive Sitzung**: Arbeiten Sie lokal weiter. Claude Code versucht es erneut, solange der Ausfall andauert, und verbindet sich automatisch wieder, wenn das Netzwerk zurückkommt.

361* **Presence-Heartbeats schlagen fehl**: Wenn sich eine interaktive Sitzung mit `could not reach the Remote Control server for about 30 minutes` trennt, führen Sie `/remote-control` aus, um die Verbindung wiederherzustellen. Claude Code zeigt diese Nachricht nur an, wenn die Presence-Heartbeats der Sitzung fehlgeschlagen sind, während der Rest der Verbindung bestehen blieb; es registriert die Sitzung für etwa 30 Minuten erneut, bevor die Verbindung getrennt wird.370* **Presence-Heartbeats schlagen fehl**: Wenn sich eine interaktive Sitzung mit `could not reach the Remote Control server for about 30 minutes` trennt, führen Sie `/remote-control` aus, um die Verbindung wiederherzustellen. Claude Code zeigt diese Nachricht nur an, wenn die Presence-Heartbeats der Sitzung fehlgeschlagen sind, während der Rest der Verbindung bestehen blieb; es registriert die Sitzung für etwa 30 Minuten erneut, bevor die Verbindung getrennt wird.

362* **Weitergeleitete Dialoge verfallen**: Claude Code hält Berechtigungsaufforderungen und `AskUserQuestion`-Fragen offen, bis Sie sie beantworten. Wenn Claude Code eine andere Art von Dialog an die Remote-Sitzung weiterleitet, z. B. die Modellauswahlmeldung, die nach einer Sicherheitsablehnung angezeigt wird, wartet es standardmäßig fünf Minuten, schließt dann den Dialog und fährt mit dem Standardwert „Keine Aktion" des Dialogs fort. Die Zustimmungsaufforderung für die [Fable-Nutzungsguthaben](/docs/de/model-config#fable-and-usage-credits) in der Mitte der Sitzung folgt der gleichen Frist, wird aber nicht weitergeleitet: Claude Code zeigt sie nur im Terminal an, in dem die Sitzung ausgeführt wird, und wenn bis zur Frist niemand dort geantwortet hat, beendet es den Zug, ohne die Anfrage zu senden. Ihre Modellauswahl bleibt unverändert, und Claude Code fragt beim nächsten Mal erneut. Legen Sie [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry) fest, um die Frist anzupassen oder zu deaktivieren. Erfordert Claude Code v2.1.224 oder später. Claude Code wendet die gleiche Frist auf den Genehmigungsdialog für eine gehaltene sitzungsübergreifende Nachricht an. [Die Regeln für den Ablauf gehaltener Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) decken die Fälle ab, in denen Claude Code den Dialog über die Frist hinaus offen hält.371* **Weitergeleitete Dialoge verfallen**: Claude Code hält Berechtigungsaufforderungen und `AskUserQuestion`-Fragen offen, bis Sie sie beantworten. Wenn Claude Code eine andere Art von Dialog an die Remote-Sitzung weiterleitet, z. B. die Modellauswahlmeldung, die nach einer Sicherheitsablehnung angezeigt wird, wartet es standardmäßig fünf Minuten, schließt dann den Dialog und fährt mit dem Standardwert „Keine Aktion" des Dialogs fort. Legen Sie [`dialogExpiry`](/docs/de/settings-reference#dialogexpiry) fest, um die Frist anzupassen oder zu deaktivieren. Erfordert Claude Code v2.1.224 oder später.

372* **Die Fable-Zustimmungsaufforderung für Nutzungsguthaben wird nicht weitergeleitet**: Claude Code zeigt die [Fable-Zustimmungsaufforderung für Nutzungsguthaben](/docs/de/model-config#fable-and-usage-credits) in der Mitte der Sitzung nur dort an, wo die Sitzung ausgeführt wird, nicht auf Ihrem Gerät. Wenn die Sitzung in einem Terminal ausgeführt wird und niemand dort antwortet, bevor Claude Code die Aufforderung schließt, endet der Zug, ohne die Anfrage zu senden; siehe [Die Aufforderung zur Bestätigung blieb unbeantwortet](/docs/de/errors#the-prompt-to-confirm-went-unanswered).

363* **Einige Befehle sind nur lokal verfügbar**: Befehle, die nur in der Terminal-Schnittstelle ausgeführt werden, wie `/plugin` oder `/resume`, funktionieren nur über die lokale CLI, unabhängig davon, ob Sie ein Argument übergeben oder nicht. Die folgenden funktionieren von mobil und Web aus:373* **Einige Befehle sind nur lokal verfügbar**: Befehle, die nur in der Terminal-Schnittstelle ausgeführt werden, wie `/plugin` oder `/resume`, funktionieren nur über die lokale CLI, unabhängig davon, ob Sie ein Argument übergeben oder nicht. Die folgenden funktionieren von mobil und Web aus:

364 * Textausgabe-Befehle: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits` (gibt die Abrechnungs-URL aus, anstatt einen Browser zu öffnen), `/recap`, `/reload-plugins`374 * Textausgabe-Befehle: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` und `/reload-plugins`. `/usage-credits` gibt die Abrechnungs-URL aus, anstatt einen Browser zu öffnen. `/reload-plugins` funktioniert nur, wenn die Sitzung in einem interaktiven Terminal ausgeführt wird; eine Sitzung ohne eines lehnt es ab.

365 * `/model`, `/effort`, `/fast`, `/color` und `/rename`: übergeben Sie den Wert als Argument, zum Beispiel `/model sonnet` oder `/effort high`. Von mobil und Web aus akzeptieren `/model` und `/effort` das Argument anstelle der Terminal-Auswahl oder des Schiebereglers.375 * `/model`, `/effort`, `/fast`, `/color` und `/rename`: übergeben Sie den Wert als Argument, zum Beispiel `/model sonnet` oder `/effort high`. Von mobil und Web aus akzeptieren `/model` und `/effort` das Argument anstelle der Terminal-Auswahl oder des Schiebereglers.

366 * `/mcp`: Von der mobilen App aus gibt es eine Textzusammenfassung des Server-Status zurück, anstatt die Auswahl zu öffnen. Im Web öffnet `/mcp` allein ein Verzeichnis von [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai), anstatt die Zusammenfassung zurückzugeben. Die `reconnect`-, `enable`- und `disable`-[Unterbefehle](/docs/de/commands#all-commands) funktionieren von beiden aus. Im Gegensatz zur lokalen CLI verbindet `/mcp reconnect` ohne Servernamen jeden Server wieder, der fehlgeschlagen ist oder eine Authentifizierung benötigt.376 * `/mcp`: Von der mobilen App aus gibt es eine Textzusammenfassung des Server-Status zurück, anstatt die Auswahl zu öffnen. Im Web öffnet `/mcp` allein ein Verzeichnis von [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai), anstatt die Zusammenfassung zurückzugeben. Die `reconnect`-, `enable`- und `disable`-[Unterbefehle](/docs/de/commands#all-commands) funktionieren von beiden aus. Im Gegensatz zur lokalen CLI verbindet `/mcp reconnect` ohne Servernamen jeden Server wieder, der fehlgeschlagen ist oder eine Authentifizierung benötigt.

367 * `/config`, ab v2.1.181: Von der mobilen App aus übergeben Sie `key=value`, um eine Einstellung festzulegen, oder führen Sie es ohne Argument aus, um die Schlüssel aufzulisten, die Sie festlegen können. Im Web öffnet `/config` stattdessen den Claude Code-Bereich Ihrer Einstellungen und ignoriert Text nach dem Befehl.377 * `/config`, ab v2.1.181: Von der mobilen App aus übergeben Sie `key=value`, um eine Einstellung festzulegen, oder führen Sie es ohne Argument aus, um die Schlüssel aufzulisten, die Sie festlegen können. Im Web öffnet `/config` stattdessen den Claude Code-Bereich Ihrer Einstellungen und ignoriert Text nach dem Befehl.

368 * Auf Team und Enterprise sendet `/usage-credits` von mobil oder Web keine [Anfrage für Nutzungsguthaben an Ihren Administrator](/docs/de/costs#add-usage-credits-to-your-subscription). Das Senden erfordert eine Bestätigung, die nur in der interaktiven CLI angezeigt wird, daher teilt Ihnen der Befehl mit, dass Sie ihn stattdessen dort ausführen sollen. Vor v2.1.211 sendete die Textform die Anfrage ohne Bestätigung.378 * Auf Team und Enterprise sendet `/usage-credits` von mobil oder Web keine [Anfrage für Nutzungsguthaben an Ihren Administrator](/docs/de/costs#add-usage-credits-to-your-subscription). Das Senden erfordert eine Bestätigung, die nur in der interaktiven CLI angezeigt wird, daher teilt Ihnen der Befehl mit, dass Sie ihn stattdessen dort ausführen sollen. Vor v2.1.211 sendete die Textform die Anfrage ohne Bestätigung.

369 * `/autocompact`, ab v2.1.221: übergeben Sie die Fenstergröße als Argument, zum Beispiel `/autocompact 500k`. Ohne Argument gibt es die aktuelle Fenstergröße als Text aus, anstatt den Dialog zu öffnen, den der Befehl in einer Terminal-Sitzung anzeigt.379 * `/autocompact`, ab v2.1.221: übergeben Sie die Fenstergröße als Argument, zum Beispiel `/autocompact 500k`. Ohne Argument gibt es die aktuelle Fenstergröße als Text aus, anstatt den Dialog zu öffnen, den der Befehl in einer Terminal-Sitzung anzeigt.

380 * `/advisor`, ab v2.1.260: übergeben Sie das Modell als Argument, zum Beispiel `/advisor opus`, oder übergeben Sie `off`, um den Advisor auszuschalten. Beide Formen gelten nur für die aktuelle Sitzung und lassen Ihren gespeicherten Standard unverändert. Ohne Argument gibt es den aktuellen Advisor als Text aus, anstatt die Auswahl zu öffnen.

370 381 

371<h2 id="troubleshooting">382<h2 id="troubleshooting">

372 Fehlerbehebung383 Fehlerbehebung


376 „Remote Control erfordert ein claude.ai-Abonnement"387 „Remote Control erfordert ein claude.ai-Abonnement"

377</h3>388</h3>

378 389 

379Sie sind nicht mit einem claude.ai-Konto authentifiziert. Führen Sie `claude auth login` aus und wählen Sie die claude.ai-Option. Wenn `ANTHROPIC_API_KEY` in Ihrer Umgebung festgelegt ist, heben Sie die Festlegung zuerst auf.390Sie sind nicht mit einem claude.ai-Konto angemeldet, oder eine andere Anmeldeinformation hat Vorrang vor Ihrer Anmeldung. Die Meldung nimmt eine dieser Formen an:

391 

392* Abgemeldet, von `/remote-control` oder `--remote-control`: `Remote Control requires a claude.ai subscription.`

393* Abgemeldet, von `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

394* Angemeldet, aber ein API-Schlüssel oder Token wird verwendet: `Remote Control requires claude.ai subscription auth.` gefolgt von der verwendeten Anmeldeinformation, wie `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Eine `apiKeyHelper`-Einstellung und `ANTHROPIC_AUTH_TOKEN` werden auf die gleiche Weise benannt.

395 

396Führen Sie `claude auth login` aus und wählen Sie die claude.ai-Option. Wenn die Meldung `ANTHROPIC_API_KEY` oder `ANTHROPIC_AUTH_TOKEN` nennt, heben Sie die Festlegung überall dort auf, wo sie festgelegt ist: in Ihrer Shell-Umgebung oder im `env`-Block einer [Einstellungsdatei](/docs/de/settings-reference#env). Wenn sie `apiKeyHelper` nennt, entfernen Sie diese Einstellung.

380 397 

381Vor v2.1.206 meldete das Ausführen von `/remote-control` während der Abmeldung `Unknown command: /remote-control` statt dieser Meldung.398Vor v2.1.206 meldete das Ausführen von `/remote-control` während der Abmeldung `Unknown command: /remote-control` statt dieser Meldung.

382 399 


431* **Der Fehler erwähnt `disableRemoteControl`**: Ihr IT-Administrator hat Remote Control auf diesem Gerät über [verwaltete Einstellungen](/docs/de/managed-settings) deaktiviert, unabhängig vom organisationsweiten Schalter und davon, wie Sie angemeldet sind.448* **Der Fehler erwähnt `disableRemoteControl`**: Ihr IT-Administrator hat Remote Control auf diesem Gerät über [verwaltete Einstellungen](/docs/de/managed-settings) deaktiviert, unabhängig vom organisationsweiten Schalter und davon, wie Sie angemeldet sind.

432* **Ihr claude.ai-Plan ist Pro oder Max**: Claude Code ist immer noch unter einer Team- oder Enterprise-Organisation von einer früheren Anmeldung angemeldet, daher überprüft es die Remote Control-Richtlinie dieser Organisation. Führen Sie `/status` aus, um zu sehen, welcher Plan und welche Organisation Ihre Anmeldung verwendet. Führen Sie `claude auth logout` und dann `claude auth login` aus, um sich erneut unter Ihrem aktuellen Plan anzumelden.449* **Ihr claude.ai-Plan ist Pro oder Max**: Claude Code ist immer noch unter einer Team- oder Enterprise-Organisation von einer früheren Anmeldung angemeldet, daher überprüft es die Remote Control-Richtlinie dieser Organisation. Führen Sie `/status` aus, um zu sehen, welcher Plan und welche Organisation Ihre Anmeldung verwendet. Führen Sie `claude auth logout` und dann `claude auth login` aus, um sich erneut unter Ihrem aktuellen Plan anzumelden.

433* **Die Organisationsrichtlinie wurde auf diesem Computer nicht geladen**: Führen Sie `claude doctor` aus und lesen Sie die Zeile `Organization policy`. Wenn die Zeile zeigt, dass die Richtlinie nicht geladen ist, ist das das, was Remote Control deaktiviert hält. Vor v2.1.261 druckte `claude doctor` diese Zeile nicht.450* **Die Organisationsrichtlinie wurde auf diesem Computer nicht geladen**: Führen Sie `claude doctor` aus und lesen Sie die Zeile `Organization policy`. Wenn die Zeile zeigt, dass die Richtlinie nicht geladen ist, ist das das, was Remote Control deaktiviert hält. Vor v2.1.261 druckte `claude doctor` diese Zeile nicht.

451* **Die Meldung sagt nicht, dass Sie Ihren Organisationsadministrator kontaktieren sollen**: Ihre Organisation hat eine HIPAA-Konfiguration, die mit Remote Control nicht kompatibel ist, und `/status` listet `HIPAA` in seiner Zeile `Compliance` auf. In diesem Zustand ist der Schalter Remote Control im Admin-Panel ausgegraut, daher kann ein Inhaber ihn dort nicht ändern. Kontaktieren Sie den Anthropic-Support, um Optionen zu besprechen. Vor v2.1.267 zeigte dieser Fall „Remote Control ist für Ihre Organisation aufgrund ihrer Compliance-Richtlinie nicht verfügbar" statt.

434* **Andernfalls hat ein Inhaber es für Ihre Organisation nicht aktiviert**: Remote Control ist standardmäßig in Team- und Enterprise-Plänen deaktiviert. Ein Inhaber kann es unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) aktivieren, indem er den Schalter **Remote Control** einschaltet. Dieser Schalter ist eine serverseitige Organisationseinstellung.452* **Andernfalls hat ein Inhaber es für Ihre Organisation nicht aktiviert**: Remote Control ist standardmäßig in Team- und Enterprise-Plänen deaktiviert. Ein Inhaber kann es unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) aktivieren, indem er den Schalter **Remote Control** einschaltet. Dieser Schalter ist eine serverseitige Organisationseinstellung.

435 453 

436<h3 id="remote-control-isn’t-available-for-your-organization-due-to-its-compliance-policy">

437 „Remote Control ist für Ihre Organisation aufgrund ihrer Compliance-Richtlinie nicht verfügbar"

438</h3>

439 

440Ihre Organisation hat eine Datenspeicherungs- oder Compliance-Konfiguration, die mit Remote Control nicht kompatibel ist; die Klammer am Ende der Meldung nennt sie. In diesem Zustand ist der Schalter Remote Control im Admin-Panel ausgegraut, daher kann ein Inhaber ihn dort nicht ändern. Kontaktieren Sie den Anthropic-Support, um Optionen zu besprechen.

441 

442<h3 id="remote-credentials-fetch-failed">454<h3 id="remote-credentials-fetch-failed">

443 „Remote credentials fetch failed"455 „Remote credentials fetch failed"

444</h3>456</h3>


508 Wählen Sie den richtigen Ansatz520 Wählen Sie den richtigen Ansatz

509</h2>521</h2>

510 522 

511Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.523Claude Code bietet mehrere Möglichkeiten, um zu arbeiten, wenn Sie nicht an Ihrem Terminal sind. Sie unterscheiden sich darin, was die Arbeit auslöst, wo Claude ausgeführt wird und wie viel Setup Sie benötigen.

512 524 

513| | Trigger | Claude runs on | Setup | Best for |525| | Auslöser | Claude wird ausgeführt auf | Setup | Am besten geeignet für |

514| :------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |526| :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |

515| [Dispatch](/docs/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |527| [Dispatch](/docs/de/desktop#sessions-from-dispatch) | Senden Sie eine Aufgabe aus der Claude Mobile-App | Ihr Computer (Desktop) | [Koppeln Sie die Mobile-App mit Desktop](https://support.claude.com/en/articles/13947068) | Delegieren von Arbeit, wenn Sie weg sind, minimales Setup |

516| [Remote Control](/docs/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |528| [Remote Control](/docs/de/remote-control) | Steuern Sie eine laufende Sitzung von [claude.ai/code](https://claude.ai/code) oder der Claude Mobile-App | Ihr Computer (CLI oder VS Code) | Führen Sie `claude remote-control` aus | Steuerung laufender Arbeiten von einem anderen Gerät |

517| [Channels](/docs/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/docs/en/channels#quickstart) or [build your own](/docs/en/channels-reference) | Reacting to external events like CI failures or chat messages |529| [Channels](/docs/de/channels) | Pushen Sie Ereignisse aus einer Chat-App wie Telegram oder Discord oder Ihrem eigenen Server | Ihr Computer (CLI) | [Installieren Sie ein Channel-Plugin](/docs/de/channels#quickstart) oder [erstellen Sie Ihr eigenes](/docs/de/channels-reference) | Reagieren auf externe Ereignisse wie CI-Fehler oder Chat-Nachrichten |

518| [Slack](/docs/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/docs/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/docs/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |530| [Slack](/docs/de/slack) | Erwähnen Sie `@Claude` in einem Team-Kanal | Anthropic Cloud | [Installieren Sie die Slack-App](/docs/de/slack#setting-up-claude-code-in-slack) mit [Claude Code im Web](/docs/de/claude-code-on-the-web) aktiviert | PRs und Reviews aus Team-Chat |

519| [Self-hosted environments](/docs/en/self-hosted-environments) | Start a [cloud session](/docs/en/claude-code-on-the-web) and pick your organization's environment | Your organization's infrastructure | [Deploy runners](/docs/en/self-hosted-environments-quickstart), on Team and Enterprise plans | Cloud sessions that must run inside your network |531| [Self-hosted environments](/docs/de/self-hosted-environments) | Starten Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) und wählen Sie die Umgebung Ihrer Organisation | Infrastruktur Ihrer Organisation | [Stellen Sie Runner bereit](/docs/de/self-hosted-environments-quickstart), in Team- und Enterprise-Plänen | Cloud-Sitzungen, die in Ihrem Netzwerk ausgeführt werden müssen |

520| [Scheduled tasks](/docs/en/scheduled-tasks) | Set a schedule | [CLI](/docs/en/scheduled-tasks), [Desktop](/docs/en/desktop-scheduled-tasks), or [cloud](/docs/en/routines) | Pick a frequency | Recurring automation like daily reviews |532| [Scheduled tasks](/docs/de/scheduled-tasks) | Legen Sie einen Zeitplan fest | [CLI](/docs/de/scheduled-tasks), [Desktop](/docs/de/desktop-scheduled-tasks) oder [Cloud](/docs/de/routines) | Wählen Sie eine Häufigkeit | Wiederkehrende Automatisierung wie tägliche Reviews |

521 533 

522<h2 id="related-resources">534<h2 id="related-resources">

523 Verwandte Ressourcen535 Verwandte Ressourcen

Details

181 181 

182[Claude Code on the web](/docs/de/claude-code-on-the-web) führt jede Sitzung in einer isolierten, von Anthropic verwalteten virtuellen Maschine aus. Ein Netzwerk-Proxy erzwingt eine Standard-Allowlist, und ein separater Proxy hält Ihren GitHub-Token außerhalb der Sandbox, während er scoped Anmeldedaten für Repository-Zugriff darin ausstellt. Sitzungen, die Ihre Organisation an eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) leitet, werden stattdessen auf einer Infrastruktur ausgeführt, die Sie bereitstellen, wobei Isolation, Egress-Kontrolle und Git-Anmeldedaten die Verantwortung Ihrer Bereitstellung sind.182[Claude Code on the web](/docs/de/claude-code-on-the-web) führt jede Sitzung in einer isolierten, von Anthropic verwalteten virtuellen Maschine aus. Ein Netzwerk-Proxy erzwingt eine Standard-Allowlist, und ein separater Proxy hält Ihren GitHub-Token außerhalb der Sandbox, während er scoped Anmeldedaten für Repository-Zugriff darin ausstellt. Sitzungen, die Ihre Organisation an eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) leitet, werden stattdessen auf einer Infrastruktur ausgeführt, die Sie bereitstellen, wobei Isolation, Egress-Kontrolle und Git-Anmeldedaten die Verantwortung Ihrer Bereitstellung sind.

183 183 

184Verwenden Sie diesen Ansatz, wenn Sie vollständige VM-Isolation ohne Bereitstellung von Infrastruktur selbst möchten, oder wenn Sie Aufgaben von einem Gerät delegieren, das keine lokale Entwicklungsumgebung hat. Es erfordert ein Claude-Abonnement. Wenn Sie eine Sitzung über die Weboberfläche starten, benötigen Sie auch ein verbundenes GitHub-Konto, damit die Sandbox Ihr Repository klonen kann. Wenn Sie über die CLI mit `--cloud` starten, kann Claude Code stattdessen [Ihr lokales Repository bündeln und hochladen](/docs/de/claude-code-on-the-web#send-local-repositories-without-github), wenn GitHub nicht verbunden ist. Siehe [Claude Code on the web](/docs/de/claude-code-on-the-web) für Planverfügbarkeit und GitHub-Authentifizierungsoptionen.184Verwenden Sie diesen Ansatz, wenn Sie vollständige VM-Isolation ohne Bereitstellung von Infrastruktur selbst möchten, oder wenn Sie Aufgaben von einem Gerät delegieren, das keine lokale Entwicklungsumgebung hat. Es erfordert ein Claude-Abonnement. Wenn Sie eine Sitzung über die Weboberfläche starten, benötigen Sie auch ein verbundenes GitHub-Konto, damit die Sandbox Ihr Repository klonen kann. Wenn Sie über die CLI mit `--cloud` starten, kann Claude Code stattdessen [Ihr lokales Repository bündeln und hochladen](/docs/de/claude-code-on-the-web#send-local-repositories-without-github). Siehe [Claude Code on the web](/docs/de/claude-code-on-the-web) für Planverfügbarkeit und GitHub-Authentifizierungsoptionen.

185 185 

186<h2 id="enforce-isolation-across-an-organization">186<h2 id="enforce-isolation-across-an-organization">

187 Isolation über eine Organisation erzwingen187 Isolation über eine Organisation erzwingen

sandboxing.md +6 −0

Details

52 52 

53Wenn Sie einen Modus im Panel auswählen, speichert Claude Code ihn in den lokalen Einstellungen Ihres Projekts unter `.claude/settings.local.json`, die für das aktuelle Projekt gelten. Claude Code fügt diese Datei zu Ihrer globalen Gitignore hinzu, wenn es dort eine Einstellung speichert. Um die Sandbox in allen Ihren Projekten zu aktivieren, setzen Sie [`sandbox.enabled`](/docs/de/settings-reference#sandbox-enabled) auf `true` in Ihren Benutzereinstellungen unter `~/.claude/settings.json`. Um Sandboxing für jeden Entwickler in einer Organisation zu erzwingen, verwenden Sie [verwaltete Einstellungen](#enforce-sandboxing-with-managed-settings).53Wenn Sie einen Modus im Panel auswählen, speichert Claude Code ihn in den lokalen Einstellungen Ihres Projekts unter `.claude/settings.local.json`, die für das aktuelle Projekt gelten. Claude Code fügt diese Datei zu Ihrer globalen Gitignore hinzu, wenn es dort eine Einstellung speichert. Um die Sandbox in allen Ihren Projekten zu aktivieren, setzen Sie [`sandbox.enabled`](/docs/de/settings-reference#sandbox-enabled) auf `true` in Ihren Benutzereinstellungen unter `~/.claude/settings.json`. Um Sandboxing für jeden Entwickler in einer Organisation zu erzwingen, verwenden Sie [verwaltete Einstellungen](#enforce-sandboxing-with-managed-settings).

54 54 

55Um die Sandbox für eine Sitzung zu ändern, ohne in eine Einstellungsdatei zu schreiben, starten Sie Claude Code mit [`--settings`](/docs/de/settings#change-a-setting-for-one-session). Beispielsweise startet dieser Befehl eine Sandbox-Sitzung, in der Claude einen blockierten Befehl nicht außerhalb der Sandbox erneut versuchen kann:

56 

57```bash theme={null}

58claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'

59```

60 

55<Warning>61<Warning>

56 Standardmäßig zeigt Claude Code eine Warnung an und führt Befehle ohne Sandboxing aus, wenn die Sandbox nicht gestartet werden kann, da Abhängigkeiten fehlen oder die Plattform nicht unterstützt wird. Um dies stattdessen zu einem Hard Failure zu machen, setzen Sie [`sandbox.failIfUnavailable`](/docs/de/settings-reference#sandbox-failifunavailable) auf `true`. Dies ist für verwaltete Bereitstellungen vorgesehen, die Sandboxing als Sicherheits-Gate erfordern.62 Standardmäßig zeigt Claude Code eine Warnung an und führt Befehle ohne Sandboxing aus, wenn die Sandbox nicht gestartet werden kann, da Abhängigkeiten fehlen oder die Plattform nicht unterstützt wird. Um dies stattdessen zu einem Hard Failure zu machen, setzen Sie [`sandbox.failIfUnavailable`](/docs/de/settings-reference#sandbox-failifunavailable) auf `true`. Dies ist für verwaltete Bereitstellungen vorgesehen, die Sandboxing als Sicherheits-Gate erfordern.

57</Warning>63</Warning>

scheduled-tasks.md +15 −15

Details

8 8 

9Geplante Aufgaben ermöglichen es Claude, einen Prompt automatisch in regelmäßigen Abständen erneut auszuführen. Verwenden Sie sie, um eine Bereitstellung abzurufen, einen PR zu überwachen, einen langwierigen Build zu überprüfen oder sich später in der Sitzung an etwas zu erinnern. Um auf Ereignisse zu reagieren, während sie geschehen, anstatt abzurufen, siehe [Kanäle](/docs/de/channels): Ihr CI kann den Fehler direkt in die Sitzung übertragen. Um die Sitzung Zug um Zug weiterarbeiten zu lassen, bis eine Bedingung erfüllt ist, anstatt in einem Intervall, siehe [`/goal`](/docs/de/goal).9Geplante Aufgaben ermöglichen es Claude, einen Prompt automatisch in regelmäßigen Abständen erneut auszuführen. Verwenden Sie sie, um eine Bereitstellung abzurufen, einen PR zu überwachen, einen langwierigen Build zu überprüfen oder sich später in der Sitzung an etwas zu erinnern. Um auf Ereignisse zu reagieren, während sie geschehen, anstatt abzurufen, siehe [Kanäle](/docs/de/channels): Ihr CI kann den Fehler direkt in die Sitzung übertragen. Um die Sitzung Zug um Zug weiterarbeiten zu lassen, bis eine Bedingung erfüllt ist, anstatt in einem Intervall, siehe [`/goal`](/docs/de/goal).

10 10 

11Aufgaben sind sitzungsbezogen: Sie existieren im aktuellen Gespräch und werden beendet, wenn Sie ein neues starten. Das Fortsetzen mit `--resume` oder `--continue` bringt alle Aufgaben zurück, die nicht [abgelaufen sind](#seven-day-expiry): eine wiederkehrende Aufgabe, die in den letzten 7 Tagen erstellt wurde, oder eine einmalige Aufgabe, deren geplante Zeit noch nicht vergangen ist. Für Planung, die unabhängig von einer Sitzung bestehen bleibt, verwenden Sie [Routinen](/docs/de/routines), um eine Routine auf von Anthropic verwalteter Infrastruktur zu erstellen, richten Sie eine [Desktop-geplante Aufgabe](/docs/de/desktop-scheduled-tasks) ein, oder verwenden Sie [GitHub Actions](/docs/de/github-actions).11Aufgaben sind sitzungsbezogen: Sie existieren im aktuellen Gespräch und werden beendet, wenn Sie ein neues starten. Wenn Sie mit `--resume` oder `--continue` fortfahren, stellt Claude Code Aufgaben wieder her, die nicht [abgelaufen sind](#seven-day-expiry), mit Ausnahme derjenigen, die unter [Einschränkungen](#limitations) aufgeführt sind. Für Planung, die unabhängig von einer Sitzung bestehen bleibt, verwenden Sie [Routinen](/docs/de/routines), um eine Routine in der Cloud zu erstellen, richten Sie eine [Desktop-geplante Aufgabe](/docs/de/desktop-scheduled-tasks) ein, oder verwenden Sie [GitHub Actions](/docs/de/github-actions).

12 12 

13<h2 id="compare-scheduling-options">13<h2 id="compare-scheduling-options">

14 Vergleichen Sie Planungsoptionen14 Vergleichen Sie Planungsoptionen

15</h2>15</h2>

16 16 

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code bietet drei Möglichkeiten, um wiederkehrende oder einmalige Aufgaben zu planen:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/de/routines) | [Desktop](/docs/de/desktop-scheduled-tasks) | [`/loop`](/docs/de/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |20| :------------------------------- | :------------------------------------------- | :----------------------------------------------- | :--------------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Läuft auf | Cloud, standardmäßig von Anthropic verwaltet | Ihr Computer | Ihr Computer |

22| Requires machine on | No | Yes | Yes |22| Erfordert Computer eingeschaltet | Nein | Ja | Ja |

23| Requires open session | No | No | Yes |23| Erfordert offene Sitzung | Nein | Nein | Ja |

24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |24| Persistent über Neustarts | Ja | Ja | Wiederhergestellt bei `--resume`, mit [Ausnahmen](/docs/de/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Zugriff auf lokale Dateien | Nein (frischer Klon) | Ja | Ja |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP-Server | Konnektoren pro Aufgabe konfiguriert | [Konfigurationsdateien](/docs/de/mcp) und Konnektoren | Erbt von Sitzung |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Berechtigungsaufforderungen | Nein (läuft autonom) | Pro Aufgabe konfigurierbar | Erbt von Sitzung |

28| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |28| Anpassbarer Zeitplan | Via `/schedule` in der CLI | Ja | Ja |

29| Minimum interval | 1 hour | 1 minute | 1 minute |29| Minimales Intervall | 1 Stunde | 1 Minute | 1 Minute |

30 30 

31<Tip>31<Tip>

32 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.32 Verwenden Sie **Cloud-Aufgaben** für Arbeiten, die zuverlässig ohne Ihren Computer ausgeführt werden sollen. Verwenden Sie **Desktop-Aufgaben**, wenn Sie Zugriff auf lokale Dateien und Tools benötigen. Verwenden Sie **`/loop`** für schnelle Abfragen während einer Sitzung.

33</Tip>33</Tip>

34 34 

35<h2 id="run-a-prompt-repeatedly-with-/loop">35<h2 id="run-a-prompt-repeatedly-with-/loop">


237 237 

238* Aufgaben laufen nur, während Claude Code läuft und untätig ist. Das Schließen des Terminals oder das Beenden der Sitzung stoppt sie. [Backgrounding der Sitzung](/docs/de/agent-view#from-inside-a-session) trägt `/loop`-Aufgaben zu einer Hintergrund-Sitzung über, die ohne Terminal weiterläuft.238* Aufgaben laufen nur, während Claude Code läuft und untätig ist. Das Schließen des Terminals oder das Beenden der Sitzung stoppt sie. [Backgrounding der Sitzung](/docs/de/agent-view#from-inside-a-session) trägt `/loop`-Aufgaben zu einer Hintergrund-Sitzung über, die ohne Terminal weiterläuft.

239* Kein Aufholen für verpasste Läufe. Wenn die geplante Zeit einer Aufgabe verstreicht, während Claude mit einer langwierigen Anfrage beschäftigt ist, läuft sie einmal, wenn Claude untätig wird, nicht einmal pro verpasstem Intervall.239* Kein Aufholen für verpasste Läufe. Wenn die geplante Zeit einer Aufgabe verstreicht, während Claude mit einer langwierigen Anfrage beschäftigt ist, läuft sie einmal, wenn Claude untätig wird, nicht einmal pro verpasstem Intervall.

240* Neues Gespräch löscht alle sitzungsbezogenen Aufgaben. Das Fortsetzen mit `claude --resume` oder `claude --continue` stellt wiederkehrende Aufgaben wieder her, die nicht [abgelaufen sind](#seven-day-expiry), und einmalige Aufgaben, deren geplante Zeit noch nicht vergangen ist. Hintergrund-Bash- und Monitor-Aufgaben werden bei Fortsetzen nie wiederhergestellt.240* Neues Gespräch löscht alle sitzungsbezogenen Aufgaben. Wenn Sie eine Sitzung mit `claude --resume` oder `claude --continue` fortsetzen, stellt Claude Code die mit `CronCreate` geplanten Aufgaben wieder her, außer wiederkehrenden Aufgaben, die [abgelaufen sind](#seven-day-expiry), und einmaligen Aufgaben, deren geplante Zeit bereits vergangen ist. Ein [selbstgesteuerter `/loop`](#let-claude-choose-the-interval) wird nicht wiederhergestellt, daher führen Sie `/loop` erneut aus, um ihn neu zu starten. Hintergrund-Bash- und Monitor-Aufgaben werden bei Fortsetzen nie wiederhergestellt.

241* Mit [Feature-Flag-Abruf deaktiviert](/docs/de/env-vars#features-that-need-feature-flag-fetching) speichert Claude Code eine Aufgabe, die Sie über Sitzungen hinweg behalten möchten, im `.claude`-Verzeichnis des Projekts. Wenn dieses Verzeichnis oder die Aufgabendatei darin ein Symlink ist, gibt Claude Code einen Fehler zurück, anstatt die Aufgabe zu planen.241* Mit [Feature-Flag-Abruf deaktiviert](/docs/de/env-vars#features-that-need-feature-flag-fetching) speichert Claude Code eine Aufgabe, die Sie über Sitzungen hinweg behalten möchten, im `.claude`-Verzeichnis des Projekts. Wenn dieses Verzeichnis oder die Aufgabendatei darin ein Symlink ist, gibt Claude Code einen Fehler zurück, anstatt die Aufgabe zu planen.

242 242 

243Für Cron-gesteuerte Automatisierung, die unbeaufsichtigt laufen muss:243Für Cron-gesteuerte Automatisierung, die unbeaufsichtigt laufen muss:

security.md +1 −1

Details

60* **Berechtigungssystem**: Im Manual-Modus erfordern sensible Operationen explizite Genehmigung60* **Berechtigungssystem**: Im Manual-Modus erfordern sensible Operationen explizite Genehmigung

61* **Kontextbewusste Analyse**: Erkennt potenziell schädliche Anweisungen durch Analyse der vollständigen Anfrage61* **Kontextbewusste Analyse**: Erkennt potenziell schädliche Anweisungen durch Analyse der vollständigen Anfrage

62* **Eingabebereinigung**: Verhindert Befehlsinjektionen durch Verarbeitung von Benutzereingaben62* **Eingabebereinigung**: Verhindert Befehlsinjektionen durch Verarbeitung von Benutzereingaben

63* **Genehmigung von Netzwerkbefehlen**: Befehle, die Inhalte aus dem Web abrufen, wie `curl` und `wget`, werden standardmäßig nicht automatisch genehmigt. Im Manual-Modus werden sie wie jeder andere nicht-schreibgeschützte Bash-Befehl behandelt, sodass Sie diese trotzdem genehmigen oder eine explizite Zulassungsregel wie `Bash(curl *)` hinzufügen können. Um sie vollständig zu blockieren, fügen Sie sie zu [`permissions.deny`](/docs/de/permissions#tool-specific-permission-rules) hinzu63* **Genehmigung von Netzwerkbefehlen**: Befehle, die Inhalte aus dem Web abrufen, wie `curl` und `wget`, werden standardmäßig nicht automatisch genehmigt. Im Manual-Modus werden sie wie jeder andere nicht-schreibgeschützte Bash-Befehl behandelt, sodass Sie diese trotzdem genehmigen oder eine explizite Zulassungsregel wie `Bash(curl *)` hinzufügen können. Um sie vollständig zu blockieren, fügen Sie sie zu [`permissions.deny`](/docs/de/permissions#tool-specific-permission-rules) hinzu. Eine Deny-Regel entspricht dem Befehl [wie geschrieben](/docs/de/permissions#bash-rule-limits); für Netzwerkdurchsetzung, die nicht vom Befehlstext abhängt, siehe [Sandbox-Netzwerkisolation](/docs/de/sandboxing#network-isolation)

64 64 

65<h3 id="privacy-safeguards">65<h3 id="privacy-safeguards">

66 Datenschutzvorkehrungen66 Datenschutzvorkehrungen

Details

43* `Marketplace "claude-plugins-official" not found`: fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann erneut, das Plugin zu installieren.43* `Marketplace "claude-plugins-official" not found`: fügen Sie den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuchen Sie dann erneut, das Plugin zu installieren.

44* Das Plugin wird [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): überprüfen Sie den Plugin-Namen.44* Das Plugin wird [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): überprüfen Sie den Plugin-Namen.

45 45 

46Überprüfen Sie die Installationszusammenfassung. Wenn sie `Run /reload-plugins to activate.` meldet, wenden Sie die ausstehende Änderung ohne einen Neustart an:46Überprüfen Sie die Installationszusammenfassung. Wenn sie `Run /reload-plugins to activate.` meldet, siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/discover-plugins#apply-plugin-changes-without-restarting), um das Plugin in Ihrer aktuellen Sitzung zu aktivieren.

47 

48```text theme={null}

49/reload-plugins

50```

51 47 

52<h3 id="enable-in-cloud-sessions-and-shared-repositories">48<h3 id="enable-in-cloud-sessions-and-shared-repositories">

53 In Cloud-Sitzungen und gemeinsamen Repositories aktivieren49 In Cloud-Sitzungen und gemeinsamen Repositories aktivieren

self-hosted-environments.md +164 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Selbst gehostete Umgebungen

6 

7> Führen Sie Claude Code Cloud-Sitzungen auf einer Infrastruktur aus, die Sie kontrollieren: Richten Sie eine selbst gehostete Umgebung ein, stellen Sie Runner bereit und leiten Sie Sitzungen zu Ihrem eigenen Compute weiter.

8 

9<Note>

10 Selbst gehostete Umgebungen befinden sich in der öffentlichen Beta für Team- und Enterprise-Pläne und sind standardmäßig deaktiviert. Siehe [Verfügbarkeit und Einschränkungen](#availability-and-limitations) für den Aktivierungspfad und was ausgeschlossen ist.

11</Note>

12 

13Eine selbst gehostete Umgebung führt Claude Code Cloud-Sitzungen auf einer Infrastruktur aus, die Ihre Organisation betreibt. Eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) ist jede Sitzung, die irgendwo anders als auf dem Rechner des Entwicklers ausgeführt wird: Entwickler starten sie von claude.ai, den mobilen und Desktop-Apps, dem Terminal mit [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web) und [geplanten Routinen](/docs/de/routines), und standardmäßig werden sie auf der Infrastruktur von Anthropic ausgeführt. In einer selbst gehosteten Umgebung werden diese Sitzungen in Ihrem Netzwerk ausgeführt, und die Entwicklererfahrung ist ansonsten gleich, abgesehen von den Unterschieden in [Verfügbarkeit und Einschränkungen](#availability-and-limitations) und den [bekannten Problemen](/docs/de/self-hosted-environments-deploy#known-issues-and-limitations) der Bereitstellungsseite.

14 

15Wenn Ihr Team keine Cloud-Sitzungen verwendet, gibt es hier nichts zu konfigurieren: Sitzungen in einem Terminal oder einer IDE werden immer auf dem eigenen Rechner des Entwicklers ausgeführt. Wenn Sie Claude Code auf Ihrem eigenen Always-On-Rechner ausführen und es von anderen Geräten aus steuern möchten, verwenden Sie [Remote Control](/docs/de/remote-control), das auch auf Pro- und Max-Plänen verfügbar ist. Wenn Sie bereit sind zu beginnen, gehen Sie direkt zum [Schnellstart](/docs/de/self-hosted-environments-quickstart); um die Sicherheitslage zunächst zu überprüfen, beginnen Sie mit [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy). Der Rest dieser Seite erklärt, wie Self-Hosting funktioniert und wann Sie es wählen sollten.

16 

17<h2 id="how-self-hosted-environments-work">

18 Wie selbst gehostete Umgebungen funktionieren

19</h2>

20 

21Self-Hosting hat drei Teile:

22 

23* **Umgebung**: ein benanntes Ziel, an das Cloud-Sitzungen gesendet werden können. Ihre Organisation erstellt Umgebungen in den claude.ai Admin-Einstellungen, und jede gruppiert einen Satz von Runnern.

24* **Runner**: ein Programm, das auf Hosts in Ihrem Netzwerk ausgeführt wird. Runner führen die Sitzungen aus; die Idee ist die gleiche wie bei einem selbst gehosteten CI-Runner.

25* **Sitzung**: eine Claude Code-Aufgabe, die ein Entwickler gestartet hat.

26 

27Wenn ein Entwickler eine Cloud-Sitzung startet, zeigt die Sitzungsstart-UI eine Umgebungsauswahl an, die von Anthropic gehostete Umgebungen neben allen von Ihrer Organisation erstellten auflistet. Wenn er Ihre auswählt, platziert die Kontrolleben von Anthropic die Sitzung in der Warteschlange Ihrer Umgebung, wo ein Runner sie beansprucht, das vom Entwickler gewählte Repository klont und einen Claude Code-Prozess auf Ihrem Host startet, um ihn auszuführen. Der Runner authentifiziert sich bei Ihrem Git-Host mit Anmeldedaten, die Sie konfigurieren; [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git) behandelt die Optionen. Sitzungen erreichen Ihre internen Services von innen in Ihrem Netzwerk aus, und Ihren Git-Host auf die gleiche Weise, wenn er intern ist; der Datenverkehr zu Anthropic, das Abfragen der Warteschlange, der Ereignisstrom der Sitzung und die Modellableitung ist ausgehend HTTPS zu `api.anthropic.com`, mit der kurzen Liste weiterer Hosts, die Sitzungen in [Netzwerkanforderungen](/docs/de/self-hosted-environments-deploy#network-requirements) erreichen können. Anthropic verbindet sich niemals mit Ihrem Netzwerk.

28 

29<div style={{maxWidth: "640px", margin: "0 auto"}}>

30 <Frame>

31 <img src="https://mintcdn.com/claude-code/Y0sJ2uDoOVbOVZrQ/images/self-hosted-network-paths.svg?fit=max&auto=format&n=Y0sJ2uDoOVbOVZrQ&q=85&s=8056103fc1c5564c7f0ef219d260b99d" className="dark:hidden" alt="Architekturdiagramm einer selbst gehosteten Umgebung: Ihre Netzwerkgrenze enthält einen Runner, zwei Claude Code-Sitzungsprozesse darin und Ihren Git-Host, mit api.anthropic.com außerhalb, das Warteschlange, Sitzungsstrom und Ableitung hält. Der Runner fragt die Warteschlange ab und erreicht den Git-Host, jeder Sitzungsprozess öffnet seine eigenen Stream-, Ableitungs- und Git-Verbindungen, und jede Verbindung ist ausgehend von Ihrem Netzwerk, ohne eingehende." width="680" height="320" data-path="images/self-hosted-network-paths.svg" />

32 

33 <img src="https://mintcdn.com/claude-code/Y0sJ2uDoOVbOVZrQ/images/self-hosted-network-paths-dark.svg?fit=max&auto=format&n=Y0sJ2uDoOVbOVZrQ&q=85&s=fec6aef3b0740d80eaf6d6a7000a2233" className="hidden dark:block" alt="Architekturdiagramm einer selbst gehosteten Umgebung: Ihre Netzwerkgrenze enthält einen Runner, zwei Claude Code-Sitzungsprozesse darin und Ihren Git-Host, mit api.anthropic.com außerhalb, das Warteschlange, Sitzungsstrom und Ableitung hält. Der Runner fragt die Warteschlange ab und erreicht den Git-Host, jeder Sitzungsprozess öffnet seine eigenen Stream-, Ableitungs- und Git-Verbindungen, und jede Verbindung ist ausgehend von Ihrem Netzwerk, ohne eingehende." width="680" height="320" data-path="images/self-hosted-network-paths-dark.svg" />

34 </Frame>

35</div>

36 

37Die zwei Claude Code-Boxen im Diagramm sind Sitzungsprozesse: ein Runner führt zwei Sitzungen gleichzeitig aus, bis zu seiner konfigurierten Kapazität. Ein Runner bedient einen [Besitzer](#key-concepts) auf einmal und sperrt sich auf diesen Besitzer, wenn er seine erste Sitzung beansprucht, sodass ausgecheckter Code sich niemals zwischen Besitzern vermischt; [Runner-Lebenszyklus](#runner-lifecycle) behandelt die Regel.

38 

39Sie können Runner selbst starten und am Laufen halten, oder Sie führen den [Autoscaling-Orchestrator](/docs/de/self-hosted-environments-configuration#on-demand-runners) aus, einen zweiten Prozess, den Sie hosten, der Runner startet, wenn Sitzungen in der Warteschlange sind; jeder Runner beendet sich selbst, wenn seine Arbeit abgeschlossen ist. In jedem Fall richten Sie die Umgebung einmal ein, und sie wird in der Auswahl auf jeder unterstützten Oberfläche angezeigt.

40 

41<h2 id="availability-and-limitations">

42 Verfügbarkeit und Einschränkungen

43</h2>

44 

45Überprüfen Sie diese vor der Planung eines Rollouts:

46 

47* **Pläne**: öffentliche Beta für Team- und Enterprise-Organisationen. Selbst gehostete Umgebungen sind standardmäßig deaktiviert; ein [Besitzer](/docs/de/cloud-environments#organization-shared-environments) aktiviert **Selbst gehostete Umgebungen zulassen** auf der [**Cloud-Umgebungen** Admin-Seite](https://claude.ai/admin-settings/cloud-environments), was erfordert, dass [Claude Code im Web](/docs/de/claude-code-on-the-web) für die Organisation aktiviert ist.

48* **Zero Data Retention**: nicht verfügbar für Organisationen mit [Zero Data Retention](/docs/de/zero-data-retention) aktiviert.

49* **Modellableitung**: Sitzungen verwenden die Anthropic API, und die Ableitung kann nicht durch [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/de/third-party-integrations) oder ein [LLM-Gateway](/docs/de/llm-gateway) geleitet werden.

50* **Oberflächen**: Sitzungen, die von [Claude Code im Web](/docs/de/claude-code-on-the-web), den mobilen und Desktop-Apps, [geplanten Routinen](/docs/de/routines) und dem Terminal mit [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web) oder einer [`--environment` Dispatch](/docs/de/self-hosted-environments-testing#run-the-test-loop) gestartet werden, können in selbst gehosteten Umgebungen ausgeführt werden. [Claude Tag](https://claude.com/docs/claude-tag/overview) Sitzungen können auch darin ausgeführt werden, aber Claude kann [Access Bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) in diesen Sitzungen noch nicht verwenden. [Claude Security](/docs/de/claude-security) und [Code Review](/docs/de/code-review) Sitzungen werden noch nicht zu ihnen weitergeleitet. Die Unterstützung für diese beiden Oberflächen folgt separat.

51* **Repositories**: Sitzungen checken Repositories von GitHub aus; siehe [GitHub-Authentifizierungsoptionen](/docs/de/claude-code-on-the-web#github-authentication-options).

52* **Abrechnung**: Sitzungen in einer selbst gehosteten Umgebung verbrauchen die Claude Code-Nutzung Ihrer Organisation auf die gleiche Weise wie Sitzungen in von Anthropic gehosteten Umgebungen.

53 

54<h2 id="why-self-host">

55 Warum Self-Hosting

56</h2>

57 

58Die meisten Teams werden besser von von Anthropic gehosteten Umgebungen bedient, die keine Infrastruktur zum Ausführen oder Warten benötigen. Self-Hosting ist für Teams, deren Netzwerk-, Tooling- oder Compliance-Anforderungen erfordern, dass die Sitzungsausführung auf einer Infrastruktur erfolgt, die sie kontrollieren. Wenn das auf Sie zutrifft, planen Sie für die operative Verantwortung, die es mit sich bringt: Sie erstellen und warten das Runner-Image, betreiben die Flotte und kontrollieren sein Netzwerk.

59 

60Im Gegenzug bietet Self-Hosting Ihnen Netzwerkzugriff, benutzerdefinierte Tools und Compliance-Kontrolle:

61 

62* **Netzwerkzugriff**: Sitzungen werden in Ihrem Netzwerk ausgeführt und können interne Services, Datenbanken und Registries erreichen, ohne sie dem öffentlichen Internet auszusetzen

63* **Benutzerdefinierte Tools**: Installieren Sie Compiler, SDKs und interne CLIs in Ihrem Runner-Image vor, damit jede Sitzung bereit zum Erstellen startet

64* **Compliance**: Repository-Checkouts und Build-Artefakte bleiben auf einer Infrastruktur, die Sie kontrollieren. Der Sitzungsinhalt wird immer noch zu `api.anthropic.com` für die Modellableitung gesendet.

65 

66<h2 id="environments-runners-and-sessions">

67 Umgebungen, Runner und Sitzungen

68</h2>

69 

70Umgebungen werden auf der Seite **Cloud-Umgebungen** in den Admin-Einstellungen von claude.ai verwaltet; Runner sind Prozesse, die Sie auf Ihrer eigenen Infrastruktur starten und verwalten.

71 

72<h3 id="key-concepts">

73 Wichtige Konzepte

74</h3>

75 

76Diese Begriffe erscheinen auf den Seiten für selbstgehostete Umgebungen:

77 

78| Begriff | Was es ist |

79| :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

80| Umgebung | Eine benannte Gruppe Ihrer Runner, erstellt in den claude.ai-Einstellungen. Sitzungen werden an eine Umgebung weitergeleitet, nicht an einen einzelnen Runner. |

81| Umgebungsgeheimnis | Die einzelne gemeinsame Anmeldeinformation, die Runner zur Authentifizierung und Registrierung bei der Umgebung verwenden. Wird einmal bei der Umgebungserstellung angezeigt und ist in der Admin-Benutzeroberfläche als **Umgebungsschlüssel** gekennzeichnet. |

82| Runner | Der langlebige Prozess, den Sie bereitstellen. Ein Runner registriert sich bei der Umgebung, erhält ein Runner-Token und fragt nach Sitzungen ab. |

83| Sitzung | Eine Claude Code-Aufgabe, gestartet von claude.ai, der mobilen App oder einer anderen Anthropic-Oberfläche wie einer geplanten Routine oder einem Agent. Jede Sitzung wird als untergeordneter Claude Code-Prozess ausgeführt, den der Runner erzeugt. |

84 

85In API-Feldern, Token-Ansprüchen und Metriknamen wird die Umgebung als `pool` angezeigt, und die Umgebungs-ID ist die `pool_id`. Die [Referenz](/docs/de/self-hosted-environments-reference) ordnet die beiden Schreibweisen zu, einschließlich der veralteten `pool`-Flag-Namen.

86 

87Ein Runner bedient jeweils einen Besitzer. Die erste Sitzung, die ein Runner aufgreift, sperrt den Runner für den Besitzer dieser Sitzung, und der Runner führt dann Sitzungen nur für diesen Besitzer bis zu einer konfigurierten Kapazität aus. Wer der Besitzer ist, hängt davon ab, wie die Sitzung gestartet wurde:

88 

89* **Sitzungen, die ein Benutzer startet**: Der Besitzer ist das Konto dieses Benutzers.

90* **Claude Tag-Kanal-Sitzungen**: Claude führt sie ohne ein Benutzerkonto aus, daher ist der Besitzer der [Claude Tag-Agent](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity), der die Sitzung gestartet hat. Jede Kanal-Sitzung, die dieser Agent startet, hat denselben Besitzer, unabhängig davon, wer die Slack-Nachricht gesendet hat. Ein Runner, der daran gesperrt ist, bedient Sitzungen, die verschiedene Personen gestartet haben, wenn Sie ihn mit einer `--capacity` über eins oder mit einem positiven `--drain-grace-sec` ausführen. Ein Runner, der an einen Benutzer gesperrt ist, greift diese nicht auf, und ein Runner, der an einen Claude Tag-Agent gesperrt ist, greift niemals die Sitzungen eines Benutzers auf.

91 

92Die minimale Flottengröße ist daher die Anzahl der Besitzer, die Sie gleichzeitig aktiv erwarten, einschließlich Benutzer und Claude Tag-Agenten.

93 

94<h3 id="session-lifecycle">

95 Sitzungs-Lebenszyklus

96</h3>

97 

98Wenn ein Entwickler eine Sitzung startet und Ihre Umgebung auswählt, platziert die Kontrolleben von Anthropic die Sitzung in der Warteschlange der Umgebung. Von dort aus:

99 

1001. Ein Runner mit freier Kapazität beansprucht die Sitzung und hält einen Lease darauf.

1012. Der Runner klont das Repository in sein Arbeitsverzeichnis und erzeugt einen untergeordneten Claude Code-Prozess.

1023. Das untergeordnete Element streamt Ereignisse über HTTPS zurück, während der Runner weiterhin abfragt; jede Abfrage aktualisiert den Lease und dient gleichzeitig als Herzschlag.

1034. Wenn der Runner etwa 60 Sekunden lang nicht mehr abfragt, reiht der Server die Sitzung für einen anderen Runner erneut ein.

104 

105Der Runner gibt jeder Abfrageanfrage 10 Sekunden. Wenn eine Anfrage abläuft, verloren geht oder eine Antwort erhält, die der Runner nicht analysieren kann, bedient der Runner weiterhin seine aktiven Sitzungen und versucht es nach einer oder zwei Sekunden erneut, anstatt auf die nächste geplante Abfrage zu warten. Beispielsweise antwortet ein abfangender Proxy auf die Abfrage mit seiner eigenen Seite und erzeugt eine Antwort, die der Runner nicht analysieren kann. Jedes Mal, wenn eine weitere Anfrage auf eine dieser Weisen fehlschlägt, verdoppelt der Runner die Lücke vor dem nächsten Versuch, bis zu 20 Sekunden, und verkürzt die Lücke, wenn der Lease kurz vor dem Ablauf steht.

106 

107<h3 id="runner-lifecycle">

108 Runner-Lebenszyklus

109</h3>

110 

111Die erste Sitzung, die ein Runner aufgreift, sperrt den Runner für den Besitzer dieser Sitzung, und der Runner führt bis zu `--capacity` gleichzeitige Sitzungen für diesen Besitzer aus. Während der Runner aktive Sitzungen hat und kein Shutdown-Signal erhalten hat oder seine Ruhestandszeit erreicht hat, greift der Runner weiterhin die Arbeit in der Warteschlange des gesperrten Besitzers auf. Was nach Abschluss geschieht, hängt von [`--drain-grace-sec`](/docs/de/self-hosted-environments-reference#runner-cli-flags) ab:

112 

113* **Bei der Standardeinstellung von `0`**: Der Runner wird beendet, sobald seine aktiven Sitzungen beendet sind, ohne weitere Abfragen durchzuführen, sodass der Orchestrator, unter dem Sie ihn bereitstellen, wie Kubernetes, ihn mit einer frischen Festplatte neu starten kann, bereit, jeden Besitzer zu bedienen.

114* **Bei einem positiven Wert**: Der Runner fragt die Warteschlange des gesperrten Besitzers für diese Anzahl von Sekunden ab, bevor er beendet wird.

115 

116Dieser Lebenszyklus isoliert den ausgecheckten Code jedes Besitzers, ohne dass der Runner den Festplattenzustand zwischen Besitzern löschen muss.

117 

118Wie Ihre Infrastruktur einen Runner stoppt, entscheidet, ob Sie `--retire-at` benötigen. Ein Kill, der `SIGTERM` liefert, benötigt kein Flag: Der Runner wird wie in [Shutdown-Timing](/docs/de/self-hosted-environments-deploy#shutdown-timing) beschrieben geleert, oder bedient weiterhin die Sitzungen, die er bereits hält, wenn Sie [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) setzen. Wenn Ihre Infrastruktur stattdessen Hosts zu einer bekannten Wanduhrzeit ohne Signal oder mit einer zu kurzen Kulanzfrist zerstört, wie z. B. eine Sandbox-Lebensdauer-Obergrenze oder Spot-Instance-Rückforderung, übergeben Sie `--retire-at <epoch-seconds>` auf einige Minuten vor dieser Zeit eingestellt. Zur Ruhestandszeit:

119 

1201. Der Runner stoppt die Annahme neuer Arbeit.

1212. Der Runner gibt jede aktive Sitzung über denselben Freigabepfad frei, den das Flag [`--release-idle-session-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags) verwendet, sodass die Sitzung auf einem frischen Runner fortgesetzt wird, wenn der Benutzer seine nächste Nachricht sendet. Wann der Runner jede Sitzung freigibt, hängt von ihrem Zustand ab:

122 * Der Runner gibt eine Sitzung frei, die sich mitten in einem Turn befindet, sobald dieser Turn beendet ist.

123 * Wenn ein Turn beendet ist und Hintergrundaufgaben ausgeführt werden, wartet der Runner bis zu 60 Sekunden auf diese, gibt dann die Sitzung frei, auch wenn diese noch ausgeführt werden. Wenn die Aufgaben beendet sind, aber der nachfolgende Turn, der ihre Ergebnisse liest, noch nicht ausgeführt wurde, behält der Runner die Sitzung, bis dieser Turn beendet ist, und wartet nicht länger als [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](/docs/de/self-hosted-environments-reference#environment-variable-only-settings) darauf, dass dieser Turn startet.

1243. Der Runner wird mit 0 beendet, sobald alle seine Sitzungen freigegeben sind.

125 

126Ein Turn, der den Kill überlebt, geht immer noch verloren; [Shutdown-Timing](/docs/de/self-hosted-environments-deploy#shutdown-timing) behandelt die Dimensionierung der Marge. Ohne `--retire-at` ist ein signalloser Host-Kill nicht zu unterscheiden von einem Absturz: Die Kontrolleben zeichnet einen verlorenen Worker auf, anstatt eine saubere Freigabe, und die Sitzung wird an einen anderen Runner erneut eingegeben.

127 

128<h3 id="network-paths">

129 Netzwerkpfade

130</h3>

131 

132Der Runner und seine Sitzungen stellen mehrere Arten von ausgehenden Verbindungen her, und es ist keine eingehende Konnektivität von Anthropic erforderlich:

133 

134* **Kontrolleben**: Der Runner fragt `api.anthropic.com` nach Arbeit ab und sendet Setup-Fortschritts- und Fehlerereignisse, alle ausgehend HTTPS. Das Abfragen dient auch als Herzschlag des Runners.

135* **SCM-Connector**: Der optionale Orchestrator [SCM-Connector](/docs/de/self-hosted-environments-reference#scm-connector-flags) Tunnel ist die einzige WebSocket-Verbindung.

136* **Git**: Der Runner klont von und pusht zu Ihrem Git-Host über HTTPS oder SSH, authentifiziert mit Anmeldeinformationen, die Ihre Bereitstellung bereitstellt; [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git) behandelt die Optionen, einschließlich pro-Sitzung geprägte Anmeldeinformationen und der [Anthropic Git-Proxy](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy), der Git durch `api.anthropic.com` leitet.

137* **Sitzungs-Child**: Der untergeordnete Claude Code-Prozess hält den Ereignisstrom der Sitzung zu `api.anthropic.com` und führt seine eigenen ausgehenden Aufrufe für Modell-Inferenz und für Git-Befehle durch, die während der Sitzung ausgeführt werden. Siehe [Netzwerkanforderungen](/docs/de/self-hosted-environments-deploy#network-requirements) für die vollständige Egress-Liste. Das [Diagramm oben](#how-self-hosted-environments-work) zeigt diese Pfade, abgesehen vom optionalen SCM-Connector.

138 

139Die Modell-Inferenz verwendet die Anthropic API. Die Kontrolleben liefert den API-Endpunkt an jede Sitzung, und die Sitzung authentifiziert sich mit einem von Anthropic ausgegebenen, sitzungsbezogenen OAuth-Token, sodass Inferenz nicht durch [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/de/third-party-integrations) oder ein [LLM-Gateway](/docs/de/llm-gateway) in selbstgehosteten Umgebungen weitergeleitet werden kann.

140 

141Corporate-Egress-Proxys werden unterstützt. Der Runner und der optionale [Autoscaling-Orchestrator](/docs/de/self-hosted-environments-configuration#on-demand-runners) beachten den Proxy und die mTLS-Umgebungsvariablen, die in [Netzwerkkonfiguration](/docs/de/network-config) beschrieben sind, wie `HTTPS_PROXY` und `NO_PROXY`; setzen Sie sie in der Umgebung jedes Prozesses. Die Variablen decken Kontrolleben-Aufrufe, den [SCM-Connector](/docs/de/self-hosted-environments-reference#scm-connector-flags) WebSocket des Orchestrators und den integrierten Klon für HTTPS-Remotes ab, und Sitzungen erben sie vom Runner. Sitzungs-Streaming verwendet Server-Sent Events über HTTPS, daher darf ein Proxy im Pfad Antworten nicht puffern.

142 

143Wenn Ihr Proxy auch einen `Proxy-Authorization`-Header benötigt, kann der Runner ihn zu jeder Verbindung hinzufügen, die er zum Proxy öffnet; siehe [Authentifizierung bei einem Egress-Proxy](/docs/de/self-hosted-environments-deploy#authenticate-to-an-egress-proxy).

144 

145<h2 id="what-stays-on-your-infrastructure">

146 Was auf Ihrer Infrastruktur bleibt

147</h2>

148 

149Repository-Checkouts, Build-Artefakte, Geheimnisse und alle Dateien, die eine Sitzung erstellt oder ändert, bleiben auf den Maschinen, die Sie bereitstellen. Das Gespräch selbst, einschließlich Eingabeaufforderungen, Antworten und Tool-Ergebnisse, geht zu `api.anthropic.com` für die Modellableitung, und Anthropic speichert das Sitzungstranskript, damit Sie die Sitzung von einer anderen [unterstützten Oberfläche](#availability-and-limitations) aus fortsetzen können.

150 

151Eine selbst gehostete Umgebung verschiebt die Sitzungsausführung in Ihr Netzwerk. Die Kontrolleben bleibt von Anthropic gehostet: Sitzungsorchestration, Queueing und die claude.ai Schnittstelle werden weiterhin auf der Infrastruktur von Anthropic ausgeführt.

152 

153<h2 id="get-started">

154 Erste Schritte

155</h2>

156 

157Die Self-Hosting-Umgebungsseiten sind nach dem organisiert, was Sie tun:

158 

159* [Schnellstart](/docs/de/self-hosted-environments-quickstart): Installieren Sie Claude Code, erstellen Sie eine Umgebung, starten Sie einen Runner und leiten Sie Ihre erste Sitzung weiter

160* [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy): Sicherheitshärtung, Netzwerk-Egress, Git-Anmeldedaten, Kubernetes- und Compose-Rezepte, bekannte Probleme und Fehlerbehebung

161* [Sitzungen anpassen](/docs/de/self-hosted-environments-configuration): Wrapper-Skripte für pro-Sitzung Anmeldedaten, Lifecycle-Hooks, On-Demand-Runner, MCP-Server und Berechtigungen

162* [End-to-End testen](/docs/de/self-hosted-environments-testing): Ein CI-Smoke-Test, der ein Runner-Image überprüft, bevor Sie es hochstufen

163* [Referenz](/docs/de/self-hosted-environments-reference): Jedes CLI-Flag, jede Umgebungsvariable, jede Metrik und der Health-Endpunkt

164* [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity): Validieren Sie das Sitzungs-Token von Ihren eigenen Services, bevor Sie Zugriff gewähren

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Sitzungen in selbstgehosteten Umgebungen anpassen

6 

7> Passen Sie selbstgehostete Umgebungssitzungen mit Wrapper-Skripten für Anmeldedaten pro Sitzung, Lifecycle-Hooks und On-Demand-Runner-Spawning an.

8 

9<Note>

10 Selbstgehostete Umgebungen befinden sich in der öffentlichen Beta für Team- und Enterprise-Pläne; ein [Owner](/docs/de/cloud-environments#organization-shared-environments) aktiviert sie, indem er **Selbstgehostete Umgebungen zulassen** auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments) aktiviert. Diese Seite setzt einen funktionierenden Runner voraus; siehe die [Schnellstartanleitung](/docs/de/self-hosted-environments-quickstart) für die Einrichtung und [In die Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) für die Fleet-Rezepte.

11</Note>

12 

13Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) führt Claude Code [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf Ihrer eigenen Infrastruktur aus, ausgeführt durch einen Runner-Prozess, den Sie bereitstellen. Ohne Konfiguration klont dieser Runner das Repository der Sitzung, startet Claude Code und räumt auf. Diese Seite ist für den Plattformingenieur, der die Runner betreibt: Sie behandelt die Erweiterungspunkte für den Fall, dass diese Standardeinstellungen nicht passen, von der Bereitstellung von Anmeldedaten pro Sitzung bis zum vollständigen Ersetzen des Checkouts. Wrapper und Hooks werden als ausführbare Dateien auf dem Runner-Host ausgeführt, bei dem es sich um Linux oder macOS handelt, und die Beispiele auf dieser Seite gehen von einer POSIX-Shell aus.

14 

15Einige Hook-Umgebungsvariablen auf dieser Seite verwenden noch `pool`, wie `CLAUDE_RUNNER_POOL_ID`; die CLI-Flag- und Umgebungsvariablennamen verwenden `environment`, wie `--environment-secret-file`.

16 

17<h2 id="wrapper-scripts">

18 Wrapper-Skripte

19</h2>

20 

21Verwenden Sie ein Wrapper-Skript, wenn jede Sitzung eine Einrichtung benötigt, die der Runner nicht selbst durchführen kann: Bereitstellung kurzlebiger Anmeldedaten mit Bereich auf den Sitzungsersteller, Export umgebungsspezifischer Geheimnisse, Vorbereitung von Sprach-Toolchains oder Anwendung von Ressourcenlimits um den untergeordneten Prozess. Der Runner startet Ihren Wrapper anstelle der Claude Code-Binärdatei, einmal pro Sitzung. Beenden Sie den Wrapper durch `exec` in `$CLAUDE_RUNNER_CLAUDE_BIN`, die eigene Binärdatei des Runners, damit Signale und Exit-Codes korrekt weitergegeben werden.

22 

23Zeigen Sie `--exec-path` oder `SELF_HOSTED_RUNNER_EXEC_PATH` auf den Wrapper, wenn Sie den Runner starten:

24 

25```bash theme={null}

26claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --exec-path /etc/claude/session-wrapper.sh

27```

28 

29Der Runner setzt Folgendes in der Umgebung des Wrappers:

30 

31| Variable | Beschreibung |

32| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-JWT, mit dem Präfix `sk-ant-cc-`. Sein `act`-Anspruch identifiziert den Sitzungsersteller mit der E-Mail des Erstellers und dem Upstream-Identitätsanbieter-Betreff, wenn die erstellende Oberfläche diese aufgezeichnet hat. Der Wert ist das Token zum Zeitpunkt des Spawning; Aktualisierungen kommen über stdin des Kindes an, daher sieht ein Wrapper nur den Anfangswert. Siehe [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity). |

34| `CCR_SESSION_ACCOUNT_EMAIL` | Die E-Mail des Sitzungsererstellers, vom Runner aus dem `act.email`-Anspruch des Tokens ohne Signaturüberprüfung vorab extrahiert. Geeignet für Beschriftung, wie Commit-Trailer. Wenn die E-Mail die Ausstellung von Anmeldedaten steuert, überprüfen Sie das Token und lesen Sie den Anspruch stattdessen daraus; siehe [Anmeldedaten mit Bereich auf den Sitzungsersteller bereitstellen](#provision-credentials-scoped-to-the-session-creator). Nicht gesetzt, wenn das Token keine Ersteller-E-Mail enthält. Behandeln Sie als personenbezogene Informationen. |

35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios`, `claude_code_cli` oder `scheduled_trigger`. Anthropic zeichnet den Wert einmal bei der Sitzungserstellung auf, daher sehen der Wrapper und jeder Lifecycle-Hook denselben Wert. Verwenden Sie ihn nur für Adoptionsanalysen und Beschriftung, nicht als Autorisierungssignal. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat, daher referenzieren Sie sie als `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` unter `set -u`. Erfordert Claude Code v2.1.229 oder später. |

36| `CLAUDE_RUNNER_CLAUDE_BIN` | Absoluter Pfad zur eigenen Claude Code-Binärdatei des Runners. Beenden Sie Ihren Wrapper mit `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"`, um an die angeheftete Binärdatei zu übergeben, ohne einen Installationspfad hartcodieren zu müssen. |

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | Sitzungs-ID in der getaggten Form `cse_...`. Dies ist dieselbe Sitzung, die die [Lifecycle-Hooks](#lifecycle-hooks) als `CLAUDE_RUNNER_SESSION_ID` in der Form `session_...` sehen; die UUID-Variablen stimmen über beide überein, und das Ersetzen des Präfixes `cse_` durch `session_` ergibt die in der Sitzungs-URL angezeigte ID. |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form, für Systeme, die auf UUIDs basieren. |

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Absoluter Pfad zu einer pro-Sitzungs-Datei, die das aktuelle Sitzungs-JWT enthält, das über Token-Aktualisierungen hinweg aktuell gehalten wird. Shell-Unterprozesse lesen es für ihren `Authorization`-Header beim Herunterladen von Anhängen, die der Benutzer zur Sitzung hinzugefügt hat. `exec` bewahrt die Variable automatisch; ein Wrapper, der die Umgebung des Kindes neu erstellt, muss die Variable übertragen, oder Anhang-Downloads funktionieren stillschweigend nicht mehr. |

40| `CLAUDE_CONFIG_DIR` | Pro-Sitzungs-Claude-Konfigurationsverzeichnis, geschrieben beim Sitzungsstart aus dem Snapshot der Konfiguration des Runner-Hosts, den der Runner beim Startup erfasst; siehe [Berechtigungen und Tool-Genehmigung](#permissions-and-tool-approval). Schreibvorgänge hier sind auf diese Sitzung isoliert. |

41| `ANTHROPIC_BASE_URL` | Die API-Basis-URL, die das Kind verwendet, bereitgestellt von der Kontrolleben pro Sitzung und normalerweise `https://api.anthropic.com`. Überschreiben Sie sie nicht: Die Inferenz-Anmeldedaten der Sitzung sind ein von Anthropic ausgegebenes OAuth-Token, das andere Anbieter nicht akzeptieren, daher ist Inferenz in selbstgehosteten Umgebungen nicht an anderer Stelle routbar. |

42| `CLAUDE_CODE_OAUTH_TOKEN` | Das kurzlebige OAuth-Zugangstoken, das das Kind für Modell-Inferenz verwendet, mit Bereich auf Modell-Inferenz und Datei-Upload nur, mit einer Lebensdauer von etwa 30 Minuten. Der Runner prägt es vor Ablauf neu und liefert die Rotation über stdin des Kindes, daher sieht ein Wrapper, der [stdin nicht angehängt hält](#keep-stdin-and-file-descriptor-3-attached), nur den Anfangswert. Verlassen Sie sich nicht auf die IP-Allowlist Ihrer Organisation, um die Verwendung dieses Tokens zu begrenzen: Behandeln Sie es als Bearer-Anmeldedaten, die etwa 30 Minuten lang verwendbar bleiben, wenn sie durchsickern, und protokollieren Sie es nicht, schreiben Sie es nicht auf die Festplatte oder leiten Sie es außerhalb des Sitzungs-Containers weiter. |

43 

44Der Wrapper erbt auch den Rest der verwalteten Umgebung des Kindes, einschließlich aller vom Server bereitgestellten Umgebungsvariablen. `exec` propagiert alles automatisch; wenn Ihr Wrapper das Kind auf andere Weise startet, leiten Sie die vollständige Umgebung weiter.

45 

46<h3 id="keep-stdin-and-file-descriptor-3-attached">

47 Halten Sie stdin und Dateideskriptor 3 angehängt

48</h3>

49 

50Stdin des Kindes ist der Steuerkanal des Runners. Token-Rotationen und Sitzungsend-Signale kommen darauf an. Der Runner öffnet auch eine Pipe auf Dateideskriptor 3 und liest die Aktivitätssignale des Kindes daraus, um Idle- und Startup-Timeouts zu steuern. Ein einfaches `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` bewahrt beide automatisch.

51 

52Wenn Ihr Wrapper das Kind mit einem bloßen `&` in den Hintergrund versetzt, trennt es stdin des Kindes: Die Sitzung sieht gesund aus, bis die Lebensdauer des anfänglichen OAuth-Tokens von etwa 30 Minuten abläuft, dann schlagen alle API-Aufrufe mit `401 authentication_error` fehl. Wenn Ihr Wrapper das Kind in den Hintergrund versetzten muss, zum Beispiel um eine Teardown-Falle am Leben zu erhalten, speichern Sie stdin auf Dateideskriptor 4 oder höher und hängen Sie ihn explizit wieder an:

53 

54```bash theme={null}

55exec 4<&0

56"$CLAUDE_RUNNER_CLAUDE_BIN" "$@" <&4 4<&- &

57CHILD=$!

58trap 'teardown' EXIT

59wait "$CHILD"

60```

61 

62Schließen oder verwenden Sie Dateideskriptor 3 im Wrapper nicht erneut. Das Umleiten von stdout und stderr des Kindes ist in Ordnung.

63 

64<h3 id="provision-credentials-scoped-to-the-session-creator">

65 Anmeldedaten mit Bereich auf den Sitzungsersteller bereitstellen

66</h3>

67 

68Verwenden Sie den Unterbefehl `decode-token`, um Ansprüche aus dem Sitzungs-JWT zu lesen. Er liest das Token aus einem Argument, aus `CLAUDE_CODE_SESSION_ACCESS_TOKEN` oder aus stdin, in dieser Reihenfolge; siehe [Token innerhalb der Sitzung überprüfen](/docs/de/self-hosted-environments-identity#verify-the-token-inside-the-session) für das, was es überprüft. Das folgende Beispiel dekodiert die Ersteller-Identität, tauscht sie gegen kurzlebige AWS-Anmeldedaten aus und führt in Claude Code aus:

69 

70```bash theme={null}

71#!/bin/bash

72# Basieren Sie auf der stabilen Anthropic-Benutzer-ID und erfordern Sie einen menschlichen Ersteller.

73CREATOR_SUB=$("$CLAUDE_RUNNER_CLAUDE_BIN" self-hosted-runner decode-token \

74 | jq -re '.act.sub // "" | select(startswith("user:"))') \

75 || { echo "decode-token: verification failed or no human creator" >&2; exit 1; }

76 

77creds=$(your-sts-helper assume-role --subject "$CREATOR_SUB") \

78 || { echo "credential exchange failed" >&2; exit 1; }

79eval "$creds"

80 

81exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"

82```

83 

84Verwenden Sie `jq -re` anstelle von `jq -r`, wenn der extrahierte Anspruch eine Autorisierungsentscheidung steuert, damit ein fehlender Anspruch ungleich Null endet, anstatt die Literalzeichenfolge `null` nachgelagert zu übergeben. Sitzungen, die von einer Organisationsservice-Identität erstellt wurden, wie Bot- und Agent-Sitzungen, tragen einen `agent:`-Betreff anstelle von `user:`, daher lehnt dieses Beispiel sie ab; wenn Ihre Umgebung diese Sitzungen bedient, entscheiden Sie explizit, ob der Wrapper stattdessen auf eine Standard-Anmeldedaten zurückfällt oder beendet wird. Wenn Ihr Anmeldedatenaustausch den SSO-Betreff oder die E-Mail benötigt, lesen Sie stattdessen `.act.attested_by.sub` oder `.act.email` und behandeln Sie deren Abwesenheit: Das Token trägt sie nur, wenn die erstellende Oberfläche sie aufgezeichnet hat, und eine [CLI-versandte Sitzung](/docs/de/self-hosted-environments-testing#run-the-test-loop) kann beide fehlen. Für die vollständige Anspruchsreferenz und Überprüfung von Diensten außerhalb des Runners siehe [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity).

85 

86<h2 id="lifecycle-hooks">

87 Lifecycle-Hooks

88</h2>

89 

90Lifecycle-Hooks ersetzen Phasen der Pro-Sitzungs-Pipeline des Runners durch Ihre eigenen Skripte. Zeigen Sie den Runner mit `--hooks-dir <path>` oder `SELF_HOSTED_RUNNER_HOOKS_DIR` auf ein Verzeichnis von Hooks. Der Runner sucht nach ausführbaren Dateien mit bekannten Namen; jeder Hook, der nicht vorhanden ist, fällt auf das integrierte Verhalten zurück, daher schreiben Sie nur die, die Sie benötigen. Hooks werden mit den eigenen Berechtigungen des Runners ausgeführt, und Sitzungskinder teilen diese UID, daher mounten Sie das Hooks-Verzeichnis schreibgeschützt oder backen Sie es in das Image, damit Sitzungscode es nicht ändern kann; siehe den [Härtungsabschnitt](/docs/de/self-hosted-environments-deploy#harden-your-deployment).

91 

92Diese Hooks unterscheiden sich von [Claude Code-Hooks](/docs/de/hooks), die innerhalb der Sitzung ausgeführt werden; Lifecycle-Hooks werden auf dem Runner um die Sitzung herum ausgeführt.

93 

94<h3 id="checkout">

95 checkout

96</h3>

97 

98Wird einmal pro Repository anstelle des integrierten Klons und Abrufs des Runners ausgeführt. Verwenden Sie den Hook, um von einem Read-Through-Mirror zu klonen, einen Arbeitsbaum aus einem Archiv zu seeden oder Pro-Sitzungs-Git-Authentifizierung anzuwenden. Der Runner setzt:

99 

100| Variable | Beschreibung |

101| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

102| `CLAUDE_RUNNER_REPO_URL` | Repository-URL zum Klonen, nachdem alle `--git-host-rewrite` und `--git-ssh-rewrite` angewendet wurden |

103| `CLAUDE_RUNNER_REPO_REF` | Revision zum Auschecken: Branch, Tag oder Commit-SHA, wie die Sitzung sie angefordert hat. Leer bedeutet den Standard-Branch des Repositorys. |

104| `CLAUDE_RUNNER_CHECKOUT_PATH` | Absoluter Pfad, wo der Arbeitsbaum hinterlassen werden muss |

105| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...`, für Protokollierung und Korrelation |

106| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |

107| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

108| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app` oder `ios`. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat. |

109| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

110 

111Das Skript muss einen Arbeitsbaum bei `CLAUDE_RUNNER_CHECKOUT_PATH` hinterlassen, der bei der angeforderten Revision ausgecheckt ist. Detached HEAD ist in Ordnung; der Runner erstellt den Arbeitsbranch der Sitzung darauf. Der Runner überprüft danach, ob der Pfad eine `.git` enthält; wenn Ihr Hook eine Nicht-Git-Quelle wie Perforce oder ein entpacktes Tarball materialisiert, setzen Sie `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` in der Umgebung des Runners, um diese Überprüfung zu überspringen. Git-basierte Flows wie Arbeitsbranch-Erstellung und Pushing-Ergebnisse erfordern einen Git-Checkout, daher exportieren Sie Ergebnisse aus Nicht-Git-Bäumen mit einem [`post-session`-Hook](#post-session).

112 

113Der Runner übergibt keine Git-Anmeldedaten an den Hook. Stattdessen prägen Sie eine Pro-Sitzungs-Klone-Anmeldedaten aus der Identität der Sitzung: Überprüfen Sie `CLAUDE_CODE_SESSION_ACCESS_TOKEN` mit einer Standard-JWT-Bibliothek gegen den JWKS-Endpunkt unter `CLAUDE_RUNNER_API_BASE_URL`, wie in [Token von Ihrem Dienst überprüfen](/docs/de/self-hosted-environments-identity#verify-the-token-from-your-service) beschrieben, dann lassen Sie Ihren Anmeldedatendienst eine kurzlebige Klone-Anmeldedaten für die Identität im `act`-Anspruch des Tokens ausstellen. `CLAUDE_RUNNER_CLAUDE_BIN` ist nicht in der Checkout-Hook-Umgebung gesetzt, daher ist der Unterbefehl `decode-token` hier nicht verfügbar. Das Zurückfallen auf die Git-Authentifizierung, die der Host bereits hat, wie einen SSH-Agent, Anmeldedaten-Helper oder `.netrc`, ist auch eine Option.

114 

115Wenn der Hook mit ungleich Null endet oder mit 0 endet, ohne einen verwendbaren Checkout hinterlassen zu haben, hängt das, was der Runner tut, vom Repository ab:

116 

117* **Ein Repository, zu dem die Sitzung Ergebnisse pusht**: Der Runner schlägt die Sitzung fehl, und bei einem Nicht-Null-Exit zeigt er das Ende des Stderr des Skripts dem Benutzer an.

118* **Ein Repository, das die Sitzung nur liest**, wie ein Repository, das zu einer laufenden Sitzung hinzugefügt wird: Der Runner protokolliert eine `[runner:warn]`-Zeile mit dem Fehlerdetail, postet einen `Skipped`-Schritt zur Sitzung, entfernt, was der Hook bei dem Checkout-Pfad hinterlassen hat, und fährt mit den verbleibenden Repositories fort. Wenn der Runner den Pfad nicht sofort entfernen kann, versucht er die Entfernung beim Sitzungsende erneut. Wenn das Überspringen die Sitzung ohne Repository verlässt, schlägt der Runner die Sitzung trotzdem fehl.

119 

120Vor v2.1.228 schlägt der Runner die Sitzung bei einem Hook-Fehler für jedes Repository fehl, daher schlägt ein Read-Only-Repository, das der Hook nicht bedienen konnte, die Sitzung erneut auf jedem frischen Runner fehl, auf dem die Sitzung fortgesetzt wurde.

121 

122Der Runner entfernt den Checkout-Pfad nach dem Sitzungsende.

123 

124<h3 id="post-session">

125 post-session

126</h3>

127 

128Wird einmal pro Sitzung ausgeführt, nachdem das Claude Code-Kind beendet wurde und bevor der Runner den Arbeitsbereich abbaut. Dieser Hook ist Ihre einzige Chance, ungespeicherte Arbeit zu speichern: Bei `--capacity` über eins löscht der Runner Pro-Sitzungs-Worktrees direkt nach der Hook-Rückgabe, und bei `--capacity 1` wird der wiederverwendete [kanonische Klon](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) hart zurückgesetzt, wenn die nächste Sitzung startet, daher überleben ungespeicherte verfolgte Änderungen auf keinem Pfad. Typische Verwendungen sind das Pushen eines Snapshot-Branches von ungespeicherten Änderungen, das Archivieren von Protokollen oder das Ausgeben eines Sitzungs-beendeten Ereignisses an Ihre eigenen Systeme.

129 

130Der Hook wird bei jedem Sitzungsende ausgelöst, bei dem ein untergeordneter Prozess gespawnt wurde, unabhängig von der Ursache; die `CLAUDE_RUNNER_EXIT_REASON`-Werte unten zählen die Fälle auf. Er kann nicht ausgelöst werden, wenn der Runner abrupt beendet wird, wie eine VM-Preemption oder ein Stromausfall; wenn Sie Garantien gegen abrupte Beendigung benötigen, snapshotten Sie regelmäßig von innerhalb der Sitzung mit einem Claude Code `PostToolUse`-Hook stattdessen. Der Runner setzt:

131 

132| Variable | Beschreibung |

133| :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

134| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...` |

135| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |

136| `CLAUDE_RUNNER_EXIT_REASON` | Wie die Sitzung endete; siehe die Werte unter der Tabelle |

137| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Doppelpunkt-getrennte absolute Pfade der Arbeitsbäume der Sitzung. Leer für Null-Repo-Sitzungen. |

138| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Pfad zum Debug-Protokoll der Sitzung, noch auf der Festplatte während der Hook-Ausführung |

139| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

140| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app` oder `ios`. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat. Erfordert Claude Code v2.1.229 oder später. |

141| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

142 

143`CLAUDE_RUNNER_EXIT_REASON` nimmt einen von vier Werten an:

144 

145* `completed`: die Sitzung endete sauber. Der Claude Code-Prozess wurde normal beendet, oder die Sitzung wurde archiviert oder gelöscht, während sie noch lief.

146* `failed`: Der Claude Code-Prozess ist abgestürzt, oder das Setup ist nach dem Start fehlgeschlagen.

147* `interrupted`: Der Runner hat die Sitzung gestoppt. Er gab die Sitzung frei, um den Slot freizugeben, die Sitzung ist beim Startup abgelaufen, der Server hat die Sitzung von diesem Runner verschoben, der Runner wurde geleert, oder die Sitzung hat sein [`--kill-session-after-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags)-Limit überschritten.

148* `abandoned`: reserviert für eine Sitzung, die ein anderer Runner beansprucht hat. Der Hook wird derzeit in diesem Fall nicht ausgelöst.

149 

150Die [Sitzungs-Lifecycle-Zähler](/docs/de/self-hosted-environments-reference#session-lifecycle-counter-semantics) zählen eine Freigabe, ein Startup-Timeout und einen Server-Umzug als `completed` statt `interrupted`, weil der Runner den Slot sauber zurückgegeben hat. Erwarten Sie diesen Unterschied, wenn Sie Hook-Quittungen mit den Zählern vergleichen.

151 

152Der Exit-Status des Hooks beeinflusst niemals das Sitzungsergebnis; ein Fehler wird protokolliert und ignoriert. Der Runner wartet bis zu `--post-session-hook-timeout-sec`, standardmäßig 60 Sekunden, bei jedem Sitzungsende einschließlich Runner-Shutdown. Dieses Beispiel speichert ungespeicherte Arbeit in einem Rettungs-Branch:

153 

154```bash theme={null}

155#!/usr/bin/env bash

156set -u

157IFS=':'

158# Pin-Konfiguration, die die Sitzung in der Checkout-Datei `.git/config` gepflanzt haben könnte:

159# -c-Overrides schlagen Repo-lokale Einstellungen, blockieren Sitzungs-geschriebene fsmonitor,

160# Hook-Pfad und gpg-program-Konfiguration von der Ausführung von Code mit den Hook-Berechtigungen.

161# Repo-lokale credential.helper, core.sshCommand und pushurl

162# gelten immer noch; wenn der Hook Anmeldedaten hält, die die Sitzung nicht hatte, pin die

163# Push-URL und Helper auch (siehe die Notiz unter dem Skript).

164g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

165 -c commit.gpgsign=false "$@"; }

166for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

167 cd "$ws" 2>/dev/null || continue

168 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue

169 g add -A

170 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue

171 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true

172done

173```

174 

175Der Hook pusht mit den Git-Anmeldedaten, die in seiner eigenen Umgebung auf dem Runner-Host verfügbar sind. Unter der [Keine-Anmeldedaten-im-Image-Haltung](/docs/de/self-hosted-environments-deploy#configure-git), einschließlich wenn der integrierte Klon durch den Anthropic-Git-Proxy geht, gibt es keine, daher prägen Sie eine kurzlebige Push-Anmeldedaten innerhalb des Hooks, bevor Sie pushen: Tauschen Sie das Sitzungs-Token, das der Hook in `CLAUDE_CODE_SESSION_ACCESS_TOKEN` erhält, mit Ihrem eigenen Token-Dienst aus, überprüfen Sie es wie [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity) beschreibt. Wenn der Hook eine Anmeldedaten hält, die die Sitzung nicht hatte, pinnen Sie auch, wohin er pusht: Ersetzen Sie `origin` durch eine vom Operator bereitgestellte URL und übergeben Sie `-c credential.helper=` plus Ihren eigenen Helper, damit Repo-lokale Konfiguration, die die Sitzung geschrieben hat, den berechtigten Push nicht umleiten kann.

176 

177<h4 id="hook-timing-when-the-runner-releases-a-session">

178 Hook-Timing, wenn der Runner eine Sitzung freigibt

179</h4>

180 

181Eine freigegebene Sitzung kann auf einem anderen Runner fortgesetzt werden. Auf einem Runner mit v2.1.236 oder später entscheidet, was die Sitzung bei der Freigabe tat, ob sie fortgesetzt werden kann, bevor dieser Hook endet:

182 

183* **Idle nach einer Runde oder Timeout beim Startup**: Der Runner stoppt das Kind und führt diesen Hook bis zum Ende aus. Erst dann gibt er die Sitzung frei. Eine Benutzernachricht, die gesendet wird, während der Hook ausgeführt wird, kann die Sitzung nicht auf einem anderen Runner fortsetzen, bevor der Hook endet.

184* **Warten auf die Antwort des Benutzers auf eine Eingabeaufforderung, wie eine Berechtigungsaufforderung**: Der Runner gibt die Sitzung zuerst frei, dann führt er diesen Hook aus. Eine Benutzernachricht, die gesendet wird, während der Hook ausgeführt wird, kann die Sitzung auf einem anderen Runner fortsetzen, bevor der Hook endet.

185 

186Dies gilt, wenn der Runner eine Sitzung freigibt: beim Idle-Timeout, zur [`--retire-at`](/docs/de/self-hosted-environments-reference#runner-cli-flags)-Zeit, und, auf einem Runner mit v2.1.260 oder später, beim [`--kill-session-after-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags)-Limit einer Sitzung. Eine Sitzung, deren Runde beendet ist und die nur Hintergrundaufgaben hält, zählt hier als Idle. Vor v2.1.236 gab der Runner die Sitzung zuerst frei und führte dann diesen Hook in beiden Fällen aus.

187 

188Während eines `SIGTERM`-Drains hält der Runner das Sitzungs-Lease, bis der Hook endet; siehe [Shutdown-Timing](/docs/de/self-hosted-environments-deploy#shutdown-timing).

189 

190<h3 id="command">

191 command

192</h3>

193 

194Wird einmal pro Sitzung nach dem Checkout anstelle des integrierten Kind-Spawns ausgeführt. Der Hook erhält dieselbe Umgebung wie ein [Wrapper-Skript](#wrapper-scripts) und sollte auf dieselbe Weise in `"$CLAUDE_RUNNER_CLAUDE_BIN"` `exec` ausführen. Verwenden Sie den `command`-Hook, um alle Anpassungen in einem Hooks-Verzeichnis zu halten; verwenden Sie `--exec-path`, wenn der Wrapper anderswo lebt. Wenn `--exec-path` auch gesetzt ist, hat das Flag Vorrang und der `command`-Hook wird ignoriert.

195 

196Führen Sie immer die eigene Binärdatei des Runners aus, anstatt ein PATH-aufgelöstes `claude`; andernfalls besiegen Sie [Versions-Pinning](/docs/de/self-hosted-environments-deploy#pin-the-version).

197 

198<h2 id="on-demand-runners">

199 On-Demand-Runner

200</h2>

201 

202Anstatt eine feste Fleet zu betreiben, können Sie einen Runner pro Sitzung starten. Der Orchestrator ist ein separater, zustandsloser Unterbefehl, der Anthropic nach Spawn-Anfragen abfragt, eine pro Sitzung, die in der Warteschlange mit keinem verfügbaren Runner steht, und führt Ihren `spawn-runner`-Hook für jeden aus. Ihr Hook sendet eine Workload an Ihre Plattform: einen Kubernetes Job, eine EC2-Instanz, einen Nomad-Dispatch.

203 

204On-Demand-Runner verbessern die Anmeldedaten-Hygiene. Bei einer festen Fleet lebt das Umgebungsgeheimnis auf jedem Runner-Host, das ist derselbe Host, der Benutzersitzungen ausführt. Mit dem Orchestrator bleibt das Umgebungsgeheimnis nur auf dem Orchestrator-Host, der niemals Benutzercode ausführt; jeder gespawnte Runner erhält eine einmalige Arbeitsorder, die genau einen Runner registriert und dann abläuft.

205 

206Um den Orchestrator zu starten, übergeben Sie das Umgebungsgeheimnis und ein Hooks-Verzeichnis, das ein ausführbares `spawn-runner`-Skript enthält:

207 

208```bash theme={null}

209claude self-hosted-runner orchestrator \

210 --environment-secret-file /etc/claude/environment-secret \

211 --hooks-dir /etc/claude/hooks

212```

213 

214Der Orchestrator behält keinen Zustand zwischen Abfragen, daher können Sie zwei oder mehr Replikas gegen dieselbe Umgebung für Verfügbarkeit ausführen. Jede Spawn-Anfrage wird serverseitig von genau einer Replik beansprucht. Alle Replikas müssen denselben `--expected-spawn-seconds`-Wert verwenden; siehe den [Hook-Vertrag](#the-spawn-runner-hook).

215 

216<h3 id="the-spawn-runner-hook">

217 Der spawn-runner-Hook

218</h3>

219 

220Der Orchestrator führt `${hooks-dir}/spawn-runner` einmal pro Spawn-Anfrage aus. Der Hook muss Arbeit asynchron einreichen, ohne auf den Runner-Boot zu warten, und innerhalb von `--hook-timeout`, standardmäßig 60 Sekunden, zurückkehren. Der Hook erhält:

221 

222| Variable | Beschreibung |

223| :------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | Pfad zu einer Temp-Datei, die das signierte Arbeitsorder-JWT enthält, das der neue Runner registriert. Gelöscht nach dem Hook-Exit. Protokollieren Sie nicht den Inhalt der Datei. |

225| `CLAUDE_RUNNER_ORDER_ID` | Undurchsichtiger Idempotenz-Schlüssel, eindeutig pro Spawn-Anfrage und sicher für Kubernetes-Ressourcennamen. Verwenden Sie ihn als Dedup-Schlüssel Ihres Provisioners. |

226| `CLAUDE_RUNNER_SESSION_ID` | Die Sitzung, für die diese Anfrage bestimmt ist. Leer für Pre-Warming-Anfragen, die einen Standby-Runner im Voraus starten, bevor eine bestimmte Sitzung, wenn [`--min-idle`](/docs/de/self-hosted-environments-reference#orchestrator-cli-flags) gesetzt ist, daher nehmen Sie nicht an, dass die Variable gesetzt ist. |

227| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form. Leer für Pre-Warming-Anfragen. |

228| `CLAUDE_RUNNER_ATTEMPT` | Wie viele Spawn-Anfragen diese Sitzung hatte. `0` für Pre-Warming-Anfragen. |

229| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Server-Zeit aus dem HTTP-`Date`-Header der Poll-Antwort. Wenn der Hook das Arbeitsorder-JWT `exp` überprüft, vergleichen Sie gegen diesen Wert anstelle der lokalen Uhr, um Skew zu tolerieren. Leer, wenn das Gateway den Header weggelassen hat. |

230| `CLAUDE_RUNNER_POOL_ID` | Die ID der Umgebung, der der neue Runner beitreten sollte, in der Form `ccpool_...` |

231| `CLAUDE_RUNNER_ACCOUNT_ID` | Getaggte ID des Kontos, das die Sitzung in die Warteschlange eingereiht hat, für Pro-Konto-Routing, Kontingent oder Chargeback. Leer, wenn nicht verfügbar, und immer leer für Claude Tag-Kanal-Sitzungen, die kein Konto einreiht. |

232| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | E-Mail des Kontos, das die Sitzung in die Warteschlange eingereiht hat. Leer, wenn nicht verfügbar. Behandeln Sie die E-Mail als personenbezogene Informationen und protokollieren Sie sie nicht. |

233| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | URL der ersten Git-Quelle der Sitzung, für Routing zu einem Runner mit diesem Repository pre-warmed. Leer, wenn die Sitzung keine Git-Quellen hat. |

234| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | Revision der ersten Git-Quelle der Sitzung: Branch, SHA oder Tag. Leer, wenn nicht angegeben. |

235| `CLAUDE_RUNNER_REPO_SOURCES` | JSON-Array von `{url, revision}` für alle Git-Quellen der Sitzung, für Hooks, die auf einem sekundären Repository routen. Leer, wenn es keine Quellen gibt. |

236| `CLAUDE_RUNNER_CORRELATION_ID` | Die Korrelations-ID, die bei der Sitzungserstellung bereitgestellt wurde, echoed zurück, damit der Hook diese Arbeitsorder der Anfrage zuordnen kann, die die Sitzung erstellt hat. Leer, wenn die Sitzung keine hat. |

237| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios` oder `scheduled_trigger`, für Adoptionsanalysen. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat, und für Pre-Warming-Anfragen; überprüfen Sie sie mit `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, was unter `set -u` sicher bleibt. |

238 

239Der gespawnte Runner registriert sich mit der Arbeitsorder anstelle des Umgebungsgeheimnisses:

240 

241* **Starten Sie ihn mit der Arbeitsorder**: Zeigen Sie [`--environment-secret-file`](/docs/de/self-hosted-environments-reference#runner-cli-flags) auf eine Datei, die das Arbeitsorder-JWT enthält, oder setzen Sie `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` auf den JWT-Wert.

242* **Kopieren Sie das JWT, bevor der Hook endet**: Der Orchestrator löscht die Arbeitsorder-Datei nach dem Hook-Exit, daher kopieren Sie das JWT in die Workload, die Sie einreichen, wie ein Kubernetes Secret auf dem gespawten Job, anstatt den Dateipfad durchzuleiten.

243* **Verwenden Sie `--capacity 1` auf gespawten Runnern**: Eine Sitzungs-gebundene Arbeitsorder registriert genau einen Runner, der an diese Sitzung gebunden ist, daher fügt eine höhere Kapazität Slots hinzu, die niemals Arbeit erhalten, und der Runner protokolliert eine Warnung beim Startup.

244* **Pre-Warming-Arbeitsorder registrieren ungebunden**: Der Standby-Runner ist nicht an eine Sitzung gebunden und beansprucht in der Warteschlange befindliche Arbeit wie ein Fixed-Fleet-Runner.

245 

246Der Vertrag hat vier Provisioner-agnostische Regeln:

247 

2481. **Seien Sie idempotent auf `CLAUDE_RUNNER_ORDER_ID`.** Neulieferung derselben Anfrage muss höchstens einen Runner spawnen. Leiten Sie einen deterministischen Ressourcennamen von der ID ab und lassen Sie Ihre Plattform das Duplikat ablehnen.

2492. **Versuchen Sie nicht, die Workload erneut zu versuchen.** Eine Order-ID bedeutet höchstens eine erstellte Workload. Wenn sich der Runner nie registriert, fordert Anthropic nach `--expected-spawn-seconds` mit einer frischen Order-ID erneut an.

2503. **Verwenden Sie den Exit-Code-Vertrag.** Exit 0 bedeutet eingereicht. Exit 1 bedeutet wiederholbarer Fehler; die Sitzung sichert sich ab und wird erneut angeboten. Exit 2 oder höher bedeutet nicht wiederholbar; die Sitzung wird blockiert, bis ein [Owner](/docs/de/cloud-environments#organization-shared-environments) auf der Registerkarte **Aktivität** der Umgebung **Erneut versuchen** auswählt. Bei Nicht-Null-Exit erscheint das Ende des Stderr des Hooks dort als Fehlergrund, daher schreiben Sie den umsetzbaren Fehler auf stderr und niemals Geheimnisse. Für eine Pre-Warming-Anfrage gibt es keine Sitzung zum Fehlschlag: Der Orchestrator protokolliert einen Nicht-Null-Exit lokal nur, und der Server fordert den Spawn nach dem Lease erneut an.

2514. **Setzen Sie `--expected-spawn-seconds` auf mindestens Ihre p99-Boot-Zeit.** Dies ist das serverseitige Lease. Alle Orchestrator-Replikas müssen denselben Wert verwenden.

252 

253Alles, was der Hook auf stdout oder stderr schreibt, erscheint im Protokoll des Orchestrators mit automatisch redigierten Anmeldedaten. Wenn Sitzungen in der Warteschlange bleiben, überprüfen Sie den `/healthz`-Body des Orchestrators auf Warteschlangen-Zählungen, öffnen Sie dann die Registerkarte **Aktivität** Ihrer Umgebung auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments): Erweitern Sie eine fehlgeschlagene Sitzung dort für ihren Spawn-Fehler und wählen Sie **Erneut versuchen**, um sie erneut anzufordern.

254 

255<h2 id="mcp-servers">

256 MCP-Server

257</h2>

258 

259Um [MCP-Server](/docs/de/mcp) in jeder Sitzung verfügbar zu machen, fügen Sie sie zur Image-Build-Zeit mit demselben `claude mcp add`-Befehl hinzu, der bei einer Desktop-Installation verwendet wird. Wenn Ihr Runner ein bloßer Prozess anstelle eines Containers ist, führen Sie denselben Befehl als Runner-Benutzer auf dem Host aus, dann starten Sie den Runner neu: Er liest Host-Konfiguration einmal beim Startup. Das Flag `--scope user` ist erforderlich; der Standard-Local-Bereich schreibt unter einem Pro-Verzeichnis-Schlüssel, den der Runner nicht in Sitzungen seeded. Zum Beispiel in Ihrem Dockerfile:

260 

261```dockerfile theme={null}

262RUN claude mcp add --scope user sidecar -- /usr/local/bin/mcp-sidecar

263RUN claude mcp add --scope user --transport http internal http://mcp-gateway.svc.cluster.local:8080

264```

265 

266Der Runner snapshott die Host-Konfiguration einmal beim Startup. Der Snapshot erfasst den `mcpServers`-Schlüssel aus der `.claude.json` des Hosts, die neben statt innerhalb von `~/.claude/` lebt, und der Runner seeded nur diesen Schlüssel in die isolierte Konfiguration jeder Sitzung; Kontostatus und Projekthistorie werden gelöscht. Um zu bestätigen, dass die Server Sitzungen erreicht haben, starten Sie eine Sitzung in der Umgebung und bitten Sie Claude, seine MCP-Tools aufzulisten; der Runner protokolliert auch eine Startup-Warnung für jeden erfassten Eintrag, dessen `type` er nicht erkennt, und löscht den Eintrag, daher können Sie sehen, warum dieser Server in Sitzungen fehlt. Wenn `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` gesetzt ist, liest der Runner `.claude.json` stattdessen aus diesem Verzeichnis, daher zeigt das Setzen der Variablen auf ein leeres Verzeichnis auch das MCP-Seeding deaktiviert.

267 

268Claude Code lädt auch MCP-Server aus anderen Quellen:

269 

270* Die Enterprise-Scope [verwaltete MCP-Datei](/docs/de/managed-mcp) unter ihrem Standard-Systempfad: `/etc/claude-code/managed-mcp.json` auf Linux-Runner-Hosts, `/Library/Application Support/ClaudeCode/managed-mcp.json` auf macOS-Hosts. Verwenden Sie sie für abgesperrte Fleets, bei denen nur Administrator-aufgelistete Server geladen werden dürfen. Siehe [exklusive Kontrolle mit managed-mcp.json](/docs/de/managed-mcp#exclusive-control-with-managed-mcp-json) für die Vorrangregeln. Wenn diese Datei auf dem Runner-Host ist, überspringt Claude Code die MCP-Server, die Anthropics Kontrolleben an eine Sitzung liefert, einschließlich claude.ai-Konnektoren, und nennt sie in einer Warnung auf stderr des Sitzungs-Kindes, die der Runner auf der `debug`-Protokollebene aufzeichnet. Vor v2.1.229 beendeten diese Sitzungen beim Startup mit `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

271* Der [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers)-Schlüssel in [verwalteten Einstellungen](/docs/de/managed-settings) auf dem Runner-Host: bietet HTTP- und SSE-Server, ohne exklusive Kontrolle zu übernehmen, daher werden Server aus den anderen Quellen weiterhin geladen. Erfordert Claude Code v2.1.259 oder später.

272* `<repo>/.mcp.json`: Projekt-Scope. Committen Sie die Datei zum Repository; ihre Server werden in Cloud-Sitzungen automatisch genehmigt.

273 

274Wenn die Konnektoren-Lieferung für Ihre Organisation aktiviert ist, liefert Anthropics Kontrolleben die Konnektoren, die Sie auf claude.ai konfiguriert haben, an interaktiv erstellte Sitzungen durch serverseitig bereitgestellte MCP-Konfiguration, geroutet durch `api.anthropic.com`. Sitzungen, die programmgesteuert erstellt wurden, wie [CLI-Dispatches](/docs/de/self-hosted-environments-testing#run-the-test-loop), erhalten keine Konnektoren-Lieferung; geben Sie ihnen MCP-Server durch eine der anderen Quellen, die dieser Abschnitt auflistet, stattdessen. Das Token des Kindes trägt keinen Bereich zum direkten Abrufen von Konnektoren, daher versucht das Kind diesen Abruf nicht selbst; die Lieferung ist serverseitig gesteuert.

275 

276`settings.json` trägt keine MCP-Server-Definitionen, und es gibt kein Top-Level-Feld `mcpServers` im Settings-Schema. Geben Sie in verwalteten Einstellungen Server mit dem [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers)-Schlüssel stattdessen an.

277 

278Sitzungen erben die Umgebung des Runners, daher setzen Sie [`ENABLE_TOOL_SEARCH`](/docs/de/mcp#scale-with-mcp-tool-search) dort, um die MCP-Tool-Suche für jede Sitzung zu steuern, die ein Runner spawnt; die MCP-Seite behandelt die Werte.

279 

280<h2 id="prompt-sessions-to-push-their-work">

281 Fordern Sie Sitzungen auf, ihre Arbeit zu pushen

282</h2>

283 

284Anthropic-gehostete Sitzungen führen einen [`Stop`-Hook](/docs/de/hooks#stop) aus, den Claude Code-Hook, der ausgeführt wird, wenn Claude fertig mit der Antwort ist, der Claude auffordert, seine Arbeit zu committen und zu pushen. Der Runner installiert keinen. Ohne ihn hinterlässt eine Sitzung, die mit ungespeicherten Änderungen endet, diese Arbeit nur auf der Festplatte des Runners, und die Schaltfläche **PR erstellen** in claude.ai/code bleibt inaktiv, bis der Branch auf dem Remote existiert.

285 

286Die Referenzimplementierung unten hat zwei Teile. Führen Sie den Settings-Block in `~/.claude/settings.json` auf dem Runner-Host zusammen, den der Runner in jede Sitzung seeded, und speichern Sie das Skript als `~/.claude/hooks/stop-hook-nudge.sh` auf dem Runner-Host und machen Sie es ausführbar:

287 

288```json theme={null}

289{

290 "hooks": {

291 "Stop": [

292 {

293 "hooks": [

294 {

295 "type": "command",

296 "timeout": 10,

297 "command": "\"$CLAUDE_CONFIG_DIR/hooks/stop-hook-nudge.sh\""

298 }

299 ]

300 }

301 ]

302 }

303}

304```

305 

306```sh theme={null}

307#!/bin/sh

308# Stop-Hook-Referenzimplementierung für selbstgehostete Runner.

309#

310# Nudgt Claude einmal pro Runde, wenn das Projektverzeichnis ungespeicherte

311# Änderungen ODER ungepushte Commits hat, damit Arbeit nicht verloren geht, wenn eine Idle-Sitzung

312# freigegeben wird und damit die Schaltfläche "PR erstellen" auf claude.ai/code leuchtet.

313#

314# Runner-Ebene (keine Repo-Änderungen): Legen Sie diese Datei auf dem Runner-Host unter ~/.claude/hooks/ ab und

315# führen Sie den begleitenden Stop-Hook-Settings-Block

316# in ~/.claude/settings.json zusammen — der Runner seeded beide in jede Sitzung.

317# Repo-Ebene-Alternative: Committen Sie zu <repo>/.claude/hooks/ und ändern Sie den

318# settings.json-Befehlspfad zu $CLAUDE_PROJECT_DIR/.claude/hooks/.

319#

320# stdin: Hook-JSON-Payload (siehe https://code.claude.com/docs/en/hooks)

321# stdout: {"decision":"block","reason":"..."} zum Nudgen oder nichts zum Zulassen des Stops.

322 

323# Re-Entry-Guard: Das Harness setzt stop_hook_active=true, wenn der Stop-Hook erneut aufgerufen wird

324# nach einem Block. Bail, damit wir nur einmal pro Runde nudgen. Das

325# Harness gibt kompaktes JSON aus (kein Leerzeichen nach dem Doppelpunkt), das dieses

326# Muster nutzt; verwenden Sie jq, wenn Sie eine Whitespace-tolerante Überprüfung benötigen.

327in=$(cat)

328case "$in" in *'"stop_hook_active":true'*) exit 0 ;; esac

329 

330d="$CLAUDE_PROJECT_DIR"

331 

332# Kein Git-Repo → nichts zum Nudgen.

333git -C "$d" rev-parse --git-dir >/dev/null 2>&1 || exit 0

334 

335# Kein Remote → "zum Remote pushen" ist nicht erfüllbar; bail.

336[ -z "$(git -C "$d" remote 2>/dev/null)" ] && exit 0

337 

338# Ungespeicherte Änderungen (staged, unstaged oder untracked). Schließen Sie .claude/ aus

339# vollständig — Operator-gekeimte Einstellungen und CLI-geschriebener Laufzeitzustand

340# (Scheduler-Sperre, Worktrees, Routine-Zustand) leben dort und keiner ist

341# "ungespeicherte Arbeit", die das Modell pushen muss.

342s=$(git -C "$d" status --porcelain -- . ':(exclude).claude/' 2>/dev/null)

343if [ -n "$s" ]; then

344 printf '{"decision":"block","reason":"There are uncommitted changes in the repository. Please commit and push these changes to the remote branch."}'

345 exit 0

346fi

347 

348# Ungepushte Commits. Zählen Sie Commits auf HEAD, die von keinem

349# Remote-Tracking-Ref oder FETCH_HEAD erreichbar sind. Dies funktioniert einheitlich für:

350# - init+fetch-Checkouts (Runner-Standard: nur FETCH_HEAD existiert)

351# - Clone-basierte Checkouts (origin/* existieren)

352# - der Runner-Standard: Das Kind startet auf dem Outcome-

353# Branch der Sitzung, den der Runner nach dem Checkout erstellt

354# - Detached HEAD, wenn ein benutzerdefiniertes Setup diese Branch-Erstellung überspringt

355# Ohne Referenzpunkt überhaupt (nie abgerufen), bleiben Sie still, anstatt

356# falsch-positiv auf einer Read-Only-Runde.

357base=""

358git -C "$d" rev-parse --verify -q FETCH_HEAD >/dev/null && base="FETCH_HEAD"

359if [ -z "$base" ] && [ -z "$(git -C "$d" for-each-ref --count=1 refs/remotes/origin 2>/dev/null)" ]; then

360 exit 0

361fi

362# shellcheck disable=SC2086 # $base ist entweder "" oder "FETCH_HEAD", beabsichtigter Word-Split

363unpushed=$(git -C "$d" rev-list HEAD --not $base --remotes=origin --count 2>/dev/null) || unpushed=0

364if [ "$unpushed" -gt 0 ]; then

365 branch=$(git -C "$d" symbolic-ref --short -q HEAD)

366 if [ -n "$branch" ]; then

367 # $branch ist Angreifer-beeinflusst — git-check-ref-format(1) erlaubt `"`

368 # in Ref-Namen. `\` ist verboten (Regel 10), aber trotzdem als billiger

369 # Defense-in-Depth escaped.

370 # Escape JSON-Metazeichen vor der Interpolation in die handgebaute

371 # Payload, damit ein Branch wie x","continue":false keine Schlüssel in

372 # das Hook-Output-JSON injizieren kann, das das Harness parst. $unpushed ist sicher — das

373 # -gt-Guard oben lehnt alles ab, das keine einfache Ganzzahl ist.

374 branch_esc=$(printf '%s' "$branch" | sed 's/\\/\\\\/g; s/"/\\"/g')

375 printf '{"decision":"block","reason":"There are %s unpushed commit(s) on branch '\''%s'\''. Please push these changes to the remote repository."}' "$unpushed" "$branch_esc"

376 else

377 printf '{"decision":"block","reason":"There are %s unpushed commit(s) on a detached HEAD. Please create a branch and push it to the remote repository."}' "$unpushed"

378 fi

379 exit 0

380fi

381 

382exit 0

383```

384 

385Der Hook fordert Claude auf, vor dem Sitzungsende zu committen und zu pushen, und bleibt still, wenn das Verzeichnis kein Git-Repository ist oder keinen Remote hat.

386 

387<h2 id="permissions-and-tool-approval">

388 Berechtigungen und Tool-Genehmigung

389</h2>

390 

391Eine selbstgehostete Sitzung hat kein angehängtes Terminal, daher stellt eine unbeantwortete Berechtigungsaufforderung die Runde stall, bis der Benutzer in der UI antwortet. Anthropics Kontrolleben sendet die Tool-Liste und Berechtigungsregeln jeder Sitzung mit der Workload; die Standardkonfiguration genehmigt Routine-Tool-Aufrufe vor, einschließlich `Bash`, und Cloud-Sitzungen [genehmigen Datei-Edits unabhängig vom Modus vor](/docs/de/permission-modes#switch-permission-modes). Ein Aufruf, den nichts genehmigt, fordert durch die Sitzungs-UI auf.

392 

393<Note>

394 Pinnen Sie nur Auto-Modus auf einer Umgebung, deren Sitzungs-Container mit [Standard-Deny-Netzwerk-Egress](/docs/de/self-hosted-environments-deploy#default-deny-egress) und dem Rest des [Härtungsabschnitts](/docs/de/self-hosted-environments-deploy#harden-your-deployment) laufen. Routine-Tool-Aufrufe, einschließlich `Bash`-Netzwerk-Anfragen, werden ohne einen Menschen in der Schleife sowohl auf dem Standard-Pre-Approved-Tool-Set als auch im Auto-Modus ausgeführt, daher ist die Netzwerk-Grenze das, was begrenzt, wo diese Aufrufe erreichen können.

395</Note>

396 

397Um Aufforderungen unabhängig davon, was die Kontrolleben sendet, auf ein Minimum zu halten, pinnen Sie [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) von Ihrem Wrapper-Skript oder [`command`-Hook](#command). Auto-Modus lässt Sitzungen ohne Routine-Berechtigungsaufforderungen ausgeführt werden: Ein separates Klassifizierungsmodell überprüft Aktionen, bevor sie ausgeführt werden, und blockiert die, die es ablehnt, und explizite Ask-Regeln erzwingen immer noch eine Aufforderung; die Berechtigungsmodi-Seite behandelt, was der Klassifizierer überprüft. Der Runner hängt serverseitig berechnete Flags an, bevor er den Wrapper aufruft, und für Single-Value-Flags wie `--permission-mode` ehrt der Parser das letzte Vorkommen, daher überschreibt ein Flag, das Sie nach `"$@"` anhängen, den serverseitig gesendeten Wert:

398 

399```bash theme={null}

400#!/bin/bash

401exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

402```

403 

404Um stattdessen spezifische Tools vorab zu genehmigen, hängen Sie `--allowed-tools` mit Ihren Regeln an, zum Beispiel `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`. Listen-Flags wie `--allowed-tools` und `--disallowed-tools` sammeln sich über Vorkommen an, anstatt zu überschreiben, daher gelten Ihre Regeln zusätzlich zu allen Regeln, die die Kontrolleben sendet. Um zu verengen, hängen Sie `--disallowed-tools` an, das Tools verweigert, auch wenn eine andere Regel sie zulässt.

405 

406<h3 id="how-each-session’s-config-is-assembled">

407 Wie die Konfiguration jeder Sitzung zusammengestellt wird

408</h3>

409 

410Der Runner gibt jeder Sitzung sein eigenes Konfigurationsverzeichnis, gekeimed aus einem In-Memory-Snapshot von `~/.claude/` des Hosts, den der Runner einmal beim Startup erfasst: `settings.json`, `CLAUDE.md`, Hooks, Agenten, Befehle und Skills in Ihrem Runner-Image gelten für jede Sitzung als Benutzer-Ebenen-Baseline. Da der Snapshot beim Startup aufgenommen wird, gelten Konfigurationsänderungen auf einem laufenden Host erst nach einem Runner-Neustart. Setzen Sie `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR`, um von einem anderen Pfad zu keimen, oder zeigen Sie auf ein leeres Verzeichnis, um das Keimen zu deaktivieren.

411 

412Repository-committete `.claude/settings.json` schichtet sich als Projekt-Einstellungen oben auf. Sitzungen lesen auch [`managed-settings.json`](/docs/de/settings#where-settings-live) vom Standard-Systempfad in Ihrem Runner-Image. Ob seine Schlüssel neben [serverseitig verwalteten Einstellungen](/docs/de/server-managed-settings) gelten, folgt [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources): Standardmäßig ignorieren Sitzungen, wenn Ihre Organisation serverseitig verwaltete Schlüssel liefert, die Runner-Image-Datei, abgesehen von den [Schlüsseln, die Claude Code von jeder Admin-Quelle liest](/docs/de/managed-settings#keys-read-from-every-admin-source), wie der `env`-Block, die Sandbox-Sperren, die Sandbox-Binärpfade und `forceRemoteSettingsRefresh`. Siehe [Einstellungs-Vorrang](/docs/de/settings#settings-precedence).

413 

414Wenn Anthropics Kontrolleben eine Sitzung mit [Claude Code-Hooks](/docs/de/hooks) versorgt, installiert der Runner sie neben, nicht über, Ihrer eigenen Konfiguration. Erfordert Claude Code v2.1.229 oder später.

415 

416* **Wo sie landen**: Der Runner schreibt jedes bereitgestellte Hook-Skript in ein reserviertes `hooks/.ccr-launcher/`-Unterverzeichnis des Konfigurationsverzeichnisses der Sitzung und registriert die Skripte in einer separaten Einstellungsdatei, die er mit `--settings` an die Sitzung übergibt, wobei die gekeimte `settings.json` und Ihre eigenen Skripte bei `hooks/<name>` unberührt bleiben. Der Runner erstellt das reservierte Unterverzeichnis für jede Sitzung neu und keimed keinen Host-Inhalt bei `~/.claude/hooks/.ccr-launcher/` in Sitzungen.

417* **Wer sie verfasst**: Die Kontrolleben füllt die Skripte aus festen Konstanten in ihrer eigenen Bereitstellung, niemals aus Pro-Sitzungs- oder Drittanbieter-Input.

418* **Was sie immer noch regiert**: Hooks, die durch `--settings` bereitgestellt werden, treten in die gewöhnliche zusammengeführte Hook-Konfiguration ein, nicht in die verwaltete Ebene, daher gelten Ihre verwalteten Einstellungen immer noch. `disableAllHooks` deaktiviert sie, und sie gehören nicht zu den Kategorien, die [`allowManagedHooksOnly`](/docs/de/settings-reference#allowmanagedhooksonly) geladen hält.

419 

420<h3 id="repository-committed-permission-rules">

421 Repository-committete Berechtigungsregeln

422</h3>

423 

424Legen Sie keinen bloßen `"Edit"`-, `"Write"`- oder `"NotebookEdit"`-Eintrag in eine Repository-committete `permissions.allow`. Eine bloße Datei-Tool-Regel passt das Tool unabhängig vom Pfad, gewährt Schreibvorgänge überall auf dem Host anstelle nur des Arbeitsbereichs, daher flaggt der Schreib-Bereich-Confine-Guard des Runners die Sitzung; mit [`--confine-repo-settings enforce`](/docs/de/self-hosted-environments-reference#runner-cli-flags) weigert er sich, die Sitzung zu spawnen, anstatt zu protokollieren und fortzufahren. Siehe den [Härtungsabschnitt](/docs/de/self-hosted-environments-deploy#harden-your-deployment).

425 

426Ein Repository benötigt überhaupt keine Datei-Tool-Regel: Cloud-Sitzungen [genehmigen Datei-Edits unabhängig vom Modus vor](/docs/de/permission-modes#switch-permission-modes). Wenn Sie eine Regel committen, beschränken Sie sie auf den Arbeitsbereich, wie `"Edit(/**)"`; ein einzelner führender Schrägstrich ist relativ zum Projekt-Root, das der Arbeitsbereich der Sitzung ist. Bloße Datei-Tool-Regeln sind in der Operator-Host-Ebenen-`settings.json` in Ordnung, da diese Datei nicht Repository-committiert ist.

427 

428Ein `defaultMode` von `auto` wird nur aus der Image-weiten oder Benutzer-Ebenen-Einstellungsdatei geehrt, daher kann ein ausgechecktes Repository sich nicht selbst Auto-Modus gewähren. Für welche Modi Cloud-Sitzungen akzeptieren und die vollständige Regel-Syntax, siehe [Berechtigungsmodi](/docs/de/permission-modes).

429 

430<h2 id="what’s-next">

431 Nächste Schritte

432</h2>

433 

434* [Referenz](/docs/de/self-hosted-environments-reference): jedes CLI-Flag, jede Umgebungsvariable und jede Metrik

435* [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity): Validieren Sie das Sitzungs-Token von Diensten außerhalb des Runners

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Selbstgehostete Umgebungen in der Produktion bereitstellen

6 

7> Führen Sie selbstgehostete Runner in der Produktion aus: Sicherheitshärtung, Netzwerk-Egress-Kontrolle, Git-Anmeldedaten, Kubernetes- und Compose-Rezepte und Fehlerbehebung.

8 

9<Note>

10 Selbstgehostete Umgebungen befinden sich in der öffentlichen Beta für Team- und Enterprise-Pläne; [Verfügbarkeit und Einschränkungen](/docs/de/self-hosted-environments#availability-and-limitations) behandelt den Aktivierungspfad. Diese Seite behandelt die Ausführung der Flotte in der Produktion; siehe den [Schnellstart](/docs/de/self-hosted-environments-quickstart) für Ihren ersten Runner und Ihre erste Sitzung.

11</Note>

12 

13Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) führt Claude Code [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf Runnern aus, die Sie in Ihrem Netzwerk bereitstellen, und in der Produktion führen diese Sitzungen modellgesteuerten Code im Namen aller aus, die eine Sitzung in der Umgebung starten können. Diese Seite ist für den Operator, der eine funktionierende Umgebung in die Produktion nimmt. Sie durchläuft die Bereitstellung der Reihe nach: was vor dem Verbinden mit echten Systemen gesperrt werden muss, welcher Egress die Flotte benötigt, wie Sitzungen sich bei Ihrem Git-Host authentifizieren, die Bereitstellungsrezepte selbst und was zu überprüfen ist, wenn Sitzungen nicht ordnungsgemäß funktionieren.

14 

15<h2 id="harden-your-deployment">

16 Härten Sie Ihre Bereitstellung

17</h2>

18 

19Ein selbstgehosteter Runner führt beliebigen, modellgesteuerten Code auf Ihrer Infrastruktur im Namen aller aus, die eine Sitzung in seiner Umgebung starten können. Das ist jedes Mitglied Ihrer Anthropic-Organisation und jeder, der eine [Claude Tag](https://claude.com/docs/claude-tag/overview)-Kanalsitzung in einem Bereich starten kann, den ein Owner zur Umgebung weitergeleitet hat. Arbeiten Sie jedes Element durch, bevor Sie eine Umgebung mit Produktionssystemen verbinden:

20 

21* **Ephemere, sitzungsspezifische Container**: Führen Sie jeden Runner-Prozess in einem frischen Container oder einer VM aus, die zerstört wird, wenn der Prozess beendet wird, mit `--capacity 1` und dem Standard `--drain-grace-sec 0`, sodass jeder Container genau eine Sitzung bedient. Bei einer höheren Kapazität oder mit einer positiven Drain-Grace bedient ein Container mehrere Sitzungen vom selben [gesperrten Owner](/docs/de/self-hosted-environments#key-concepts); siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle). Verwenden Sie kein Dateisystem zwischen Runner-Neustarts wieder, außer in der absichtlichen [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout)-Einrichtung, und niemals über Owners hinweg.

22* **Keine breiten Anmeldedaten im Image**: Fügen Sie keine langlebigen SSH-Schlüssel, Cloud-Provider-Anmeldedaten oder persönliche Zugriffstokens ein, die mehr gewähren als eine Sitzung benötigt. Erstellen Sie Anmeldedaten, die während einer Sitzung verwendet werden, wie Push- oder API-Tokens, pro Sitzung aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts). Für den anfänglichen Clone, der vor dem Ausführen des Wrappers stattfindet, verwenden Sie einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout) oder [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy); siehe [Git konfigurieren](#configure-git).

23* **Halten Sie das Umgebungsgeheimnis von sitzungsausführenden Hosts fern**: Das Umgebungsgeheimnis kann Runner registrieren und jede Sitzung abholen, die in der Umgebung in die Warteschlange eingereiht ist. In einer festen Flotte lebt es auf jedem Runner-Host, wo jeder Sitzungscode das Geheimnisdatei lesen kann. Bevorzugen Sie [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners), bei denen das Geheimnis auf dem Orchestrator-Host bleibt, der niemals Benutzercode ausführt, und jeder Runner einen einmaligen Arbeitsauftrag erhält, der genau einen Runner registriert. Behandeln Sie in einer festen Flotte die Umgebungsgeheimnisdatei als von jeder Sitzung lesbar und rotieren Sie das Geheimnis nach jedem vermuteten Sitzungskompromiss.

24* **Standard-Deny-Netzwerk-Egress**: Beschränken Sie den ausgehenden Datenverkehr von Runner- und Sitzungs-Containern an Ihrer eigenen Netzwerkgrenze in jeder Umgebung; [Standard-Deny-Egress](#default-deny-egress) behandelt, was erlaubt ist und warum.

25* **Least-Privilege-Host-IAM**: Die Compute-Identität, die an den Runner-Host angehängt ist, wie ein Instance-Profil oder ein Node-Service-Konto, sollte nur das gewähren, was der Runner selbst benötigt. Sitzungen sollten ihre eigenen Anmeldedaten über Ihr Wrapper-Skript erhalten, anstatt die des Hosts zu erben.

26* **Blockieren Sie den Cloud-Metadaten-Endpunkt von Sitzungen**: Um Sitzungen von der Host-Identität fernzuhalten, müssen Sie ihren Zugriff auf den Cloud-Metadaten-Endpunkt blockieren, und Subnetz-Level-Egress-Richtlinien unterbrechen keinen Link-Local-Metadaten-Datenverkehr, daher blockieren Sie ihn im Container selbst:

27 

28 * IMDSv2 mit einem Hop-Limit von eins

29 * GKE Workload Identity mit Metadaten-Verbergung

30 * Ein explizites Deny für `169.254.169.254` im Netzwerk-Namespace des Sitzungs-Containers

31 

32 Der Block gilt auch für Ihr Wrapper-Skript und Lebenszyklus-Hooks, da sie den Container teilen. Authentifizieren Sie jeden Token-Austausch mit dem [Sitzungs-JWT](/docs/de/self-hosted-environments-identity) gegen Ihren eigenen Token-Service über zulassungslisten-Egress, oder verwenden Sie eine dateibasierte Web-Identität wie IAM Roles for Service Accounts (IRSA) auf Amazon EKS.

33* **Pro-Runner-Dateisystem-Isolation**: Jeder Runner-Prozess erhält sein eigenes Arbeitsverzeichnis, das kein anderer Prozess auf dem Host lesen oder schreiben kann. Machen Sie `--hooks-dir`, das Wrapper-Skript und das `~/.claude/`-Verzeichnis des Hosts für die Sitzung schreibgeschützt, entweder in das Image eingebaut oder schreibgeschützt eingebunden.

34* **Dispatch hat keine Pro-Umgebungs-Zugriffskontrolle**: Jedes Mitglied Ihrer Anthropic-Organisation kann eine Sitzung in jede ihrer Umgebungen starten. Wenn ein Owner [Claude Tag-Kanäle zur Umgebung leitet](/docs/de/cloud-environments#set-the-environment-a-claude-tag-channel-uses), kann jeder, den die [Claude Tag-Zugriffssetting](https://claude.com/docs/claude-tag/admins/restrict-access#restrict-who-can-use-claude) zulässt, Kanalsitzungen starten, die dort ausgeführt werden. Standardmäßig ist das jeder im verbundenen Slack-Workspace, mit oder ohne Claude-Konto. Behandeln Sie jeden Runner-Host als erreichbar für die Codeausführung durch jeden, der ihn starten kann, und platzieren Sie auf einem Runner-Host nur Daten und Anmeldedaten, die alle diese Personen lesen dürfen. [`--lock-to-account`](/docs/de/self-hosted-environments-reference#runner-cli-flags) begrenzt, welche Konten-Sitzungen ein bestimmter Host ausführt, aber es verengt nicht, wer in die Umgebung starten kann. Um selbstgehostete Umgebungen zur einzigen Picker-Option zu machen, kann ein [Owner](/docs/de/cloud-environments#organization-shared-environments) Anthropic-gehostete Umgebungen für die ganze Organisation auf der [**Cloud-Umgebungen**-Seite](https://claude.ai/admin-settings/cloud-environments) ausblenden.

35* **Erzwingen Sie die Repo-Settings-Guard**: Wählen Sie den Guard-Modus mit [`--confine-repo-settings`](/docs/de/self-hosted-environments-reference#runner-cli-flags). Der Standard `warn` protokolliert eine Verletzung und startet die Sitzung trotzdem, `enforce` lehnt die Sitzung ab, und `off` deaktiviert den Scan. Der Runner scannt die festgeschriebenen Einstellungen jedes Repositorys auf:

36 

37 * Eine Berechtigung, die außerhalb des eigenen Workspace dieser Sitzung aufgelöst wird: ein `additionalDirectories`-Eintrag, eine `Edit`-, `Write`- oder `NotebookEdit`-Regel in `permissions.allow`, oder ein `sandbox.filesystem.allowWrite`- oder `allowRead`-Eintrag

38 * Ein nicht leerer `env`-Block

39 * Eine Operator-Haltungs-Überschreibung wie `sandbox.enabled: false`

40 

41 Die Guard läuft unabhängig von [`--trust-workspace`](/docs/de/self-hosted-environments-reference#runner-cli-flags) und deckt keine Repository-Hooks, `.mcp.json` oder Bash-Regeln ab; siehe [Berechtigungen und Tool-Genehmigung](/docs/de/self-hosted-environments-configuration#permissions-and-tool-approval) für den Ort dieser Berechtigungen.

42 

43<Note>

44 Die IP-Zulassungsliste Ihrer Organisation deckt selbstgehosteten Runner-Datenverkehr standardmäßig nicht ab. Verlassen Sie sich nicht darauf als Netzwerkkontrolle für Runner- oder Sitzungs-Datenverkehr; wenden Sie stattdessen Standard-Deny-Egress an Ihrer eigenen Netzwerkgrenze an, und kontaktieren Sie Ihr Anthropic-Account-Team, wenn Sie IP-Zulassungslisten-Durchsetzung für Ihre Organisation wünschen.

45</Note>

46 

47<h2 id="network-requirements">

48 Netzwerkanforderungen

49</h2>

50 

51Der Runner und die Sitzungs-Kinder, die er spawnt, stellen ausgehende Verbindungen zu den folgenden Hosts her. Beschränken Sie den Sitzungs-Container-Egress auf diese Hosts und die spezifischen internen Services, die Sitzungen erreichen müssen; [Standard-Deny-Egress](#default-deny-egress) behandelt wie und warum.

52 

53Diese Hosts sind immer erforderlich:

54 

55| Host | Port | Verwendet für |

56| :------------------------------------------------------------- | :---------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

57| `api.anthropic.com` | 443, HTTPS; WSS nur für den SCM-Connector | Runner-Kontrollebene und Sitzungs-Streaming, Modell-Inferenz, Feature-Flags, Produkt-Analytik, [JWKS](/docs/de/self-hosted-environments-identity)-Schlüssel-Abrufe, Commit-Signierung, der Git-Proxy wenn `--use-anthropic-git-proxy` gesetzt ist, und der Orchestrator-[SCM-Connector](/docs/de/self-hosted-environments-reference#scm-connector-flags)-Tunnel wenn `--scm-connector-host` gesetzt ist |

58| Ihr Git-Host, wie `github.com` oder Ihr GitHub Enterprise-Host | 443 oder 22 | Klonen und Pushen von Repositorys. Nicht erforderlich, wenn der Runner `--use-anthropic-git-proxy` verwendet, das Git-Datenverkehr durch `api.anthropic.com` leitet. |

59 

60Ob diese Hosts erforderlich sind, hängt von Ihrer Konfiguration ab:

61 

62| Host | Port | Wenn erforderlich |

63| :----------------------------------- | :--- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `downloads.claude.ai` | 443 | Zur Installationszeit, wenn Sie Claude Code auf dem Host mit dem nativen Installer installieren oder aktualisieren; das `install.sh`-Skript selbst wird von `claude.ai` bereitgestellt. Zur Sitzungs-Laufzeit nur, wenn Sitzungen Plugins vom offiziellen Anthropic-Marketplace installieren. |

65| `storage.googleapis.com` | 443 | Zur Sitzungs-Laufzeit für die Plugin-Installationszähler und Metadaten, die in `/plugin` angezeigt werden. |

66| `code.claude.com` und `claude.com` | 443 | Dokumentations-Lookups durch den integrierten Claude-Code-Guide-Agent und vorab genehmigte WebFetch-Anfragen während Sitzungen. Das Blockieren dieser Hosts betrifft nur Dokumentations-Lookups. |

67| `*.frame.claudeusercontent.com` | 443 | Nur wenn das [Artifact-Tool](/docs/de/artifacts#availability) für Sitzungen in Ihrer Organisation verfügbar ist; die Standardwerte variieren je nach Plan, gemäß der Verfügbarkeitstabelle dort. Setzen Sie `CLAUDE_CODE_DISABLE_ARTIFACT=1` auf dem Runner, um das Tool unabhängig von der Organisationseinstellung deaktiviert zu halten. |

68| `registry.npmjs.org` | 443 | Wenn eine Sitzung ein Plugin installiert, sowohl zum Abrufen von npm-Quell-Plugin-Paketen als auch zum Installieren der Node.js-Abhängigkeiten eines Plugins, oder wenn ein `npx`-gestarteter MCP-Server läuft |

69| `http-intake.logs.us5.datadoghq.com` | 443 | Anthropic-Betriebsmetriken. Nur wenn `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1` gesetzt ist; standardmäßig in selbstgehosteten Umgebungen deaktiviert. |

70| `browser-intake-us5-datadoghq.com` | 443 | Anthropic-Fehlerberichts-Uploads, nur gesendet wenn [Fehlerberichterstattung](/docs/de/data-usage#telemetry-services) für das Konto der Sitzung aktiviert ist. Unterdrückt durch `DISABLE_ERROR_REPORTING=1` oder `DISABLE_TELEMETRY=1`. |

71 

72Der Runner erreicht `statsig.anthropic.com`, `*.sentry.io`, `claude.ai` oder `platform.claude.com` nicht. Diese Hosts erscheinen in einigen älteren Enterprise-Netzwerk-Checklisten, aber Sie müssen sie nicht für Runner- oder Sitzungs-Datenverkehr zulassungslisten: Feature-Flag-Abrufe gehen zu `api.anthropic.com`, und der Runner authentifiziert sich mit dem Umgebungsgeheimnis anstelle von interaktivem OAuth. Zwei Host-seitige Flows erreichen `claude.ai`, daher führen Sie sie von einem Host aus, dessen Egress es erlaubt, anstatt den Sitzungs-Container-Egress zu verbreitern: Das Einzeilen-Installer-Skript ruft `install.sh` von `claude.ai` zur Installationszeit ab, und interaktives `claude auth login`, das der [geführte Setup](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner), `doctor`'s signierter Modus und [CI-Dispatch](/docs/de/self-hosted-environments-testing#authenticate-from-ci) verwenden, melden sich durch `claude.ai`, `claude.com` und `platform.claude.com` an. `mcp-proxy.anthropic.com` ist auch nicht erforderlich: Selbstgehostete Sitzungen verwenden es nicht, und die Lieferung Ihrer Organisations-claude.ai-Connectoren an Sitzungen, wenn für Ihre Organisation aktiviert, leitet durch `api.anthropic.com`. Siehe [MCP-Server](/docs/de/self-hosted-environments-configuration#mcp-servers).

73 

74<h3 id="default-deny-egress">

75 Standard-Deny-Egress

76</h3>

77 

78Stellen Sie Runner- und Sitzungs-Container in einem Netzwerk-Segment oder Namespace bereit, dessen ausgehender Datenverkehr auf die Hosts in der [Netzwerkanforderungs-Tabelle](#network-requirements), Ihren Git-Host und die spezifischen internen Services begrenzt ist, die Sitzungen erreichen müssen. Das Produkt kann dies nicht überprüfen oder erzwingen, daher wenden Sie es an Ihrer eigenen Netzwerkgrenze in jeder Umgebung an. Sitzungscode ist modellgesteuert und kann Verbindungen zu beliebigen Hosts versuchen; Standard-Deny-Egress auf der Netzwerkebene begrenzt, wo diese Versuche landen können. Dies gilt unabhängig vom Berechtigungsmodus: Der Standard-Vorab-Genehmigungstool-Satz enthält bereits `Bash`, daher läuft Shell-Egress ohne Eingabeaufforderung auch ohne [Auto-Modus](/docs/de/self-hosted-environments-configuration#permissions-and-tool-approval).

79 

80Für Details darüber, welche Telemetrie jede Sitzung aussendet und wie man sie ausschaltet, siehe [Telemetrie](/docs/de/self-hosted-environments-reference#telemetry).

81 

82<h3 id="authenticate-to-an-egress-proxy">

83 Authentifizieren Sie sich bei einem Egress-Proxy

84</h3>

85 

86Einige Corporate-Egress-Proxys erfordern einen `Proxy-Authorization`-Header bei jeder Verbindung. Das Token in diesem Header rotiert oft zu schnell, um es in die Proxy-URL zu schreiben, die Sie in `HTTPS_PROXY` setzen. Setzen Sie `HTTPS_PROXY` oder `HTTP_PROXY` wie gewohnt auf die URL Ihres Proxys, dann setzen Sie `--proxy-authorization-command` oder `--proxy-authorization-file`, um dem Runner zu sagen, wo er den Header-Wert lesen soll. Beide Flags erfordern Claude Code v2.1.238 oder später.

87 

88<h4 id="choose-where-the-proxy-authorization-value-comes-from">

89 Wählen Sie, woher der `Proxy-Authorization`-Wert kommt

90</h4>

91 

92Wählen Sie das Flag, das der Art entspricht, wie Sie das `Proxy-Authorization`-Token erzeugen:

93 

94* **[`--proxy-authorization-command <command>`](/docs/de/self-hosted-environments-reference#runner-cli-flags)**: Wählen Sie dies für ein Token, das Sie bei Bedarf generieren. Der Runner führt das Shell-Kommando aus und verwendet seine getrimmte Standardausgabe als Header-Wert, zum Beispiel `Bearer <token>`.

95* **[`--proxy-authorization-file <path>`](/docs/de/self-hosted-environments-reference#runner-cli-flags)**: Wählen Sie dies für ein Token, das ein anderer Prozess an Ort und Stelle rotiert. Der Runner liest die Datei und verwendet ihren getrimmten Inhalt als Header-Wert.

96 

97<h4 id="configurations-the-runner-refuses-to-start-with">

98 Konfigurationen, die der Runner ablehnt zu starten

99</h4>

100 

101Jedes Flag hat auch eine Umgebungsvariablen-Form, die neben ihm in der [Runner-CLI-Flags-Referenz](/docs/de/self-hosted-environments-reference#runner-cli-flags) aufgelistet ist. Bevor der Runner Ihren Proxy oder die Kontrollebene kontaktiert, überprüft er die Flags und ihre Variablen und lehnt in drei Fällen ab zu starten:

102 

103* **Beide Flags gesetzt**: Ein Flag plus die Umgebungsvariable des anderen Flags zählt als Setzen beider.

104* **Keine Proxy-URL**: Weder `HTTPS_PROXY` noch `HTTP_PROXY` enthält eine `http://`- oder `https://`-URL. Der Runner liest beide Variablen in Groß- oder Kleinbuchstaben und konsultiert nicht `ALL_PROXY`.

105* **Eines der Flags an den Orchestrator-Subcommand übergeben**: `self-hosted-runner orchestrator` akzeptiert die Flags oder ihre Umgebungsvariablen nicht. Übergeben Sie das Flag stattdessen an jeden Runner, den der Orchestrator startet.

106 

107<h4 id="what-the-runner-changes-while-a-proxy-authorization-flag-is-set">

108 Was der Runner ändert, während ein Proxy-Autorisierungs-Flag gesetzt ist

109</h4>

110 

111Mit einem der Flags gesetzt, startet der Runner seinen eigenen Listener und sendet Proxy-Datenverkehr von sich selbst, seinen Lebenszyklus-Hooks und seinen Sitzungen durch diesen Listener. Der Listener fügt den `Proxy-Authorization`-Header auf dem Weg zu Ihrem Proxy hinzu.

112 

113* **Listener**: Der Listener ist ein Forward-Proxy auf `127.0.0.1`. Der Runner startet den Listener vor der Registrierung bei der Kontrollebene und beendet sich beim Start, wenn der Listener nicht starten kann.

114* **Proxy-Variablen**: Der Runner schreibt whichever von `HTTPS_PROXY` und `HTTP_PROXY` um, die Sie setzen, damit es auf den Listener zeigt. Dieser umgeschriebene Wert erreicht den Runner selbst, seine Lebenszyklus-Hooks und jede Sitzung, die er ausführt.

115* **Token-Rotation**: Ein rotiertes Token wird ohne Neustart wirksam. Für jede Verbindung, die der Listener zu Ihrem Proxy öffnet, führt der Runner Ihren Befehl aus oder liest Ihre Datei erneut und fügt das Ergebnis als Header hinzu.

116* **Sitzungs-Umgebung**: Eine Sitzung erreicht Ihren Proxy nur durch den Listener. In der Umgebung jeder Sitzung entfernt der Runner `ALL_PROXY`, entfernt jede Schreibweise von `HTTPS_PROXY` oder `HTTP_PROXY`, die Sie nicht gesetzt haben, und pinnt `NO_PROXY` auf den Wert des Runners.

117* **Logs**: Der Runner protokolliert niemals den Header-Wert.

118 

119<h2 id="configure-git">

120 Git konfigurieren

121</h2>

122 

123Der Runner verwaltet Repository-Checkouts, konfiguriert aber standardmäßig nicht die Git-Identität oder Anmeldedaten. Sie kontrollieren das Runner-Image und die Prozessumgebung, daher kontrollieren Sie die Git-Konfiguration. Wählen Sie einen von zwei Ansätzen:

124 

125* **Lassen Sie den Runner Git konfigurieren**: Starten Sie den Runner mit `--configure-git`, um die gleiche Identität und Commit-Signierungskonfiguration zu schreiben, die Anthropic-gehostete Sitzungen verwenden

126* **Versenden Sie Git-Konfiguration in Ihrem Image**: Setzen Sie Identität und Push-Anmeldedaten selbst, zum Beispiel um unter Ihrer eigenen Bot-Identität zu committen

127 

128Git-Versionsuntergrenzen auf dem Runner-Host: [`--configure-git`](#let-the-runner-configure-git) SSH-Commit-Signierung erfordert Git 2.34 oder neuer, [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) erfordert 2.32 oder neuer, und das Fortsetzen von Sitzungen von Branches, die von [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gepusht werden, erfordert 2.29 oder neuer. Git 2.24 ist ausreichend, wenn Sie alle drei weglassen und die Git-Identität selbst verwalten.

129 

130<h3 id="let-the-runner-configure-git">

131 Lassen Sie den Runner Git konfigurieren

132</h3>

133 

134Starten Sie den Runner mit `--configure-git`, oder setzen Sie `SELF_HOSTED_RUNNER_CONFIGURE_GIT=1`, um die globale Git-Konfiguration beim Start zu schreiben:

135 

136* `user.name = Claude` und `user.email = noreply@anthropic.com`, passend zu Anthropic-gehosteten Sitzungen

137* SSH-Format-Commit- und Tag-Signierung, geleitet durch einen Runner-verwalteten Shim, der jeden Commit über Anthropic's Signierungsservice mit den Anmeldedaten der Sitzung signiert. Signaturen sind auf GitHub gegen Anthropic's veröffentlichten SSH-Signierungsschlüssel überprüfbar.

138* `push.negotiate = true`, damit Git Ihren Git-Host fragt, welche Commits er bereits hat, bevor er einen Push packt. Erfordert Claude Code v2.1.257 oder später.

139* `core.hooksPath`, das auf ein Runner-verwaltetes Hooks-Verzeichnis zeigt. Seine `commit-msg`- und `prepare-commit-msg`-Hooks fügen jedem Commit einen `Co-authored-by:`-Trailer für den Ersteller der Sitzung hinzu, erstellt aus der E-Mail in [`CCR_SESSION_ACCOUNT_EMAIL`](/docs/de/self-hosted-environments-configuration#wrapper-scripts) und weggelassen, wenn diese Variable nicht gesetzt ist. Wenn Ihr Image bereits `core.hooksPath` setzt, lässt der Runner Ihre Einstellung in Kraft, überspringt die Installation dieser Hooks und gibt eine `[runner:git]`-Warnung aus.

140 

141Commit-Signierung erfordert Git 2.34 oder neuer; der Runner überprüft beim Start und beendet sich mit einem Fehler, wenn Ihr Git älter ist. Dieses Flag konfiguriert keine Push-Anmeldedaten, die Sie immer noch im Image bereitstellen.

142 

143<h3 id="ship-git-config-in-your-image">

144 Versenden Sie Git-Konfiguration in Ihrem Image

145</h3>

146 

147Git-Identität ist für jeden Commit erforderlich. Setzen Sie sie systemweit in Ihrem Dockerfile, damit die Konfiguration unabhängig davon gilt, welcher Benutzer den Runner-Prozess ausführt:

148 

149```dockerfile theme={null}

150RUN git config --system user.name "Claude" && \

151 git config --system user.email "noreply@anthropic.com"

152```

153 

154Ohne eine Identität schlägt `git commit` mit `Please tell me who you are` fehl und Sitzungen können nicht voranschreiten. Sie können stattdessen Ihre eigene Bot-Identität verwenden; der Runner überschreibt diese Werte nicht.

155 

156Backen Sie keine langlebigen oder breit gefassten Push-Anmeldedaten in ein gemeinsames Runner-Image: Eine Anmeldedaten im Image ist für jede Sitzung verfügbar, die das Image ausführt, wer auch immer sie gestartet hat. Erstellen Sie stattdessen ein kurzlebiges, minimal gefasstes Token pro Sitzung aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts), unter Verwendung der Identität des Sitzungs-Erstellers, die aus dem Sitzungs-JWT dekodiert ist. Paaren Sie es mit einem ephemeren Pro-Sitzungs-Container, der `--capacity 1` erfordert, damit keine Anmeldedaten die Sitzung überlebt, die sie erstellt hat; siehe den [Härtungsabschnitt](#harden-your-deployment).

157 

158Wenn Sie Push-Anmeldedaten auf Image-Ebene konfigurieren müssen, zum Beispiel für einen schreibgeschützten Deploy-Schlüssel, begrenzen Sie sie so eng wie Ihr Git-Host erlaubt:

159 

160* Ein SSH-Deploy-Schlüssel, der auf ein Repository mit einer `url.<base>.insteadOf`-Umschreibung begrenzt ist

161* Ein `credential.helper`, der ein minimal gefasstes Token zurückgibt

162* `GIT_SSH_COMMAND`, das auf einen eng gefassten Schlüssel zeigt

163 

164Welcher Mechanismus Sie auch konfigurieren, muss ohne Eingabeaufforderung funktionieren, da der integrierte Clone und Fetch des Runners die Eingabeaufforderungen deaktivieren, die Git, SSH und Git Credential Manager sonst zeigen würden:

165 

166* Der Runner setzt `GIT_TERMINAL_PROMPT=0`, daher fragt Git nicht nach Benutzername oder Passwort.

167* Der Runner führt SSH mit `BatchMode=yes` aus, angehängt an Ihren `GIT_SSH_COMMAND`, wenn Sie einen setzen, daher fragt SSH nicht nach einer Passphrase oder Host-Bestätigung.

168* Der Runner setzt `GCM_INTERACTIVE=never`, daher öffnet Git Credential Manager keinen Anmeldedialog.

169* Der Runner löscht `core.askPass`, daher setzen Sie es, wenn Sie einen Askpass-Helper verwenden, stattdessen durch die `GIT_ASKPASS`-Umgebungsvariable.

170 

171Wenn Ihr Git-Host die Anmeldedaten ablehnt, oder Sie haben keine konfiguriert, versucht der Runner ein paar Mal erneut und schlägt dann fehl bei der Repository-Vorbereitung. Der Runner übergibt diese Einstellungen nicht in die Umgebung der Sitzung.

172 

173Wenn Checkout-Verzeichnisse einem anderen uid als dem Runner-Prozess gehören, weigert sich Git, auf ihnen zu arbeiten; fügen Sie `safe.directory` hinzu:

174 

175```dockerfile theme={null}

176RUN git config --system --add safe.directory '*'

177```

178 

179<h3 id="use-the-anthropic-git-proxy">

180 Verwenden Sie den Anthropic-Git-Proxy

181</h3>

182 

183Starten Sie den Runner mit `--use-anthropic-git-proxy`, oder setzen Sie `CLAUDE_RUNNER_USE_GIT_PROXY=1`, um durch Anthropic's Git-Proxy zu klonen, authentifiziert mit dem kurzlebigen Token der Sitzung. Für gewöhnliche Benutzersitzungen verwendet der Proxy das GitHub- oder GitHub Enterprise-OAuth-Token, das für den Sitzungs-Ersteller gespeichert ist; für Bot- und Agent-Sitzungen verwendet er das GitHub App-Installations-Token Ihrer Organisation. Wie auch immer, das Runner-Image benötigt überhaupt keine Git-Anmeldedaten: keine SSH-Schlüssel, keinen Credential-Helper, keine `.netrc`. Dies ist der gleiche Auth-Pfad, den Anthropic-gehostete Umgebungen verwenden.

184 

185Der Proxy erfordert `--capacity 1`, weil die Proxy-URL pro Sitzung ist, und Git 2.32 oder neuer, weil älteres Git den Konfigurationsmechanismus ignoriert, den der Proxy verwendet, um Sitzungen voneinander zu isolieren. Der Runner weigert sich zu starten, wenn eine der Anforderungen nicht erfüllt ist. Weil der Proxy von Anthropic's Seite abruft, muss Ihr Git-Host von Anthropic-Infrastruktur erreichbar sein, die gleiche Anforderung, die Anthropic-gehostete Sitzungen haben; für einen Git-Host, der nur innerhalb Ihres Netzwerks routbar ist, verwenden Sie stattdessen einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout). Jeder Runner-Prozess verarbeitet jeweils eine Sitzung, daher führen Sie mehr Replicas für Parallelität aus. Wenn der Proxy aktiviert ist, haben `--git-host-rewrite` und `--git-ssh-rewrite` keine Auswirkung: Die Proxy-URL zeigt auf `api.anthropic.com`, nicht auf Ihren Git-Host.

186 

187Der Runner meldet die Opt-in-Entscheidung auch Anthropic, wenn er sich registriert, und gibt beim Start `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` aus. Jede Sitzung auf einem Opt-in-Runner verwendet dann entweder Anthropic-verwaltetes Git oder die Pro-Sitzungs-Proxy-URL. Wenn eine Sitzung die Pro-Sitzungs-Proxy-URL verwendet, protokolliert der Runner eine `[runner:warn]`-Zeile, die dies angibt.

188 

189<h3 id="rewrite-git-urls-for-private-networks">

190 Schreiben Sie Git-URLs für private Netzwerke um

191</h3>

192 

193Repository-URLs kommen von der Kontrollebene als HTTPS mit dem Hostnamen Ihres Git-Hosts; für GitHub Enterprise ist das der Hostname, den Sie für die [GitHub Enterprise-Integration](/docs/de/github-enterprise-server) in Claude Code-Admin-Einstellungen auf claude.ai konfiguriert haben. Zwei wiederholbare Flags schreiben diese URLs vor dem Clone um:

194 

195* `--git-host-rewrite <from>=<to>`: für Split-Horizon-DNS, wo Anthropic Ihren Git-Host über einen externen Hostnamen erreicht, aber Runner einen internen verwenden müssen

196* `--git-ssh-rewrite <host>`: für Git-Hosts, die nur SSH akzeptieren, Umschreiben von `https://<host>/owner/repo` zu `git@<host>:owner/repo`

197 

198Host-Umschreibung läuft zuerst, daher listen Sie den internen Hostnamen in `--git-ssh-rewrite` auf, wenn Sie beide benötigen. Für vollständige Kontrolle über Checkout verwenden Sie einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout).

199 

200<h2 id="build-the-runner-image">

201 Erstellen Sie das Runner-Image

202</h2>

203 

204Anthropic veröffentlicht kein vorgefertigtes Runner-Image. Erstellen Sie Ihr eigenes um die `claude`-Binärdatei, schichten Sie ein, was auch immer Ihre Repositorys benötigen: Sprach-Laufzeiten, Compiler, Paket-Manager und [MCP](/docs/de/mcp)-Sidecars.

205 

206Die Rezepte unten verwenden `--capacity 4`, daher bedient ein Container bis zu vier gleichzeitige Sitzungen vom selben gesperrten Owner. Das bietet nicht die Pro-Sitzungs-Container-Isolation im [Härtungsabschnitt](#harden-your-deployment): Bevor Sie eine Umgebung mit Produktionssystemen verbinden, führen Sie entweder die Rezepte bei `--capacity 1` mit einem Container pro Sitzung aus, oder verwenden Sie [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners), die auch das Umgebungsgeheimnis von sitzungsausführenden Hosts fernhalten.

207 

208Dieses Dockerfile ist ein minimaler Ausgangspunkt:

209 

210```dockerfile theme={null}

211FROM debian:bookworm-slim

212ARG CLAUDE_CODE_VERSION

213RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client \

214 && rm -rf /var/lib/apt/lists/*

215RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \

216 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude

217RUN git config --system user.name "Claude" \

218 && git config --system user.email "noreply@anthropic.com" \

219 && git config --system --add safe.directory '*'

220ENTRYPOINT ["claude"]

221```

222 

223Tauschen Sie `linux-x64` gegen `linux-arm64` aus, wenn Ihre Knoten ARM sind, oder gegen `linux-x64-musl` oder `linux-arm64-musl` auf einem musl-basierten Image wie Alpine; siehe [Alpine Linux-Setup](/docs/de/setup#alpine-linux-and-musl-based-distributions) für die zusätzlichen Pakete, die musl-Images benötigen. Die URL ist der Standard-Claude-Code-Release-Ort, daher können Sie die heruntergeladene Binärdatei gegen das signierte Manifest des Release überprüfen, wie in [Binäre Integrität und Code-Signierung](/docs/de/setup#binary-integrity-and-code-signing) beschrieben. Erstellen Sie das Image mit Claude Code Version 2.1.224 oder später, pushen Sie es dann in Ihre Registry und referenzieren Sie es in den Rezepten unten:

224 

225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .

227```

228 

229<h2 id="size-cpu-and-memory-for-sessions">

230 Dimensionieren Sie CPU und Speicher für Sitzungen

231</h2>

232 

233Dimensionieren Sie einen Runner-Container oder Host für die Sitzungen, die er ausführt, anstatt für den Runner-Prozess. Der Runner selbst fragt nach Arbeit ab, bereitet den Checkout jeder Sitzung vor, führt Ihre [Lebenszyklus-Hooks](/docs/de/self-hosted-environments-configuration#lifecycle-hooks) aus und startet und überwacht die Sitzungs-Prozesse. Die Last kommt von den Sitzungen: Jede ist ein Claude Code-Prozess plus alles, was sie startet, wie Builds, Test-Suites, Paket-Installationen und [MCP-Server](/docs/de/mcp).

234 

235Für eine Sitzung beginnen Sie mit den folgenden Werten, angegeben als Kubernetes-Anfragen und Limits oder das Äquivalent Ihrer Plattform, und behandeln Sie sie als Ausgangspunkt anstatt als Anforderung:

236 

237* **Speicher**: eine Anfrage und ein Limit von jeweils 4 GiB, was das 4-GB-Minimum in Claude Code's [Systemanforderungen](/docs/de/setup#system-requirements) erfüllt. Halten Sie die beiden gleich, damit der Scheduler die volle Speicherkapazität des Containers berücksichtigt. Wenn der Container sein Speicherlimit erreicht, tötet der Kernel Prozesse darin, was eine Sitzung mitten in einer Aufgabe beenden kann.

238* **CPU**: eine Anfrage von 2 CPUs und ein Limit von 4 CPUs, daher kann eine Sitzung während Builds über die Anfrage hinaus platzen. Der Kernel drosselt einen Container bei seinem CPU-Limit, anstatt Prozesse darin zu töten, daher laufen Sitzungen am Limit langsamer, aber laufen weiter.

239 

240In einer Kubernetes-Container-Spezifikation setzen Sie diese Startwerte mit dem folgenden `resources`-Block:

241 

242```yaml theme={null}

243resources:

244 requests:

245 cpu: "2"

246 memory: 4Gi

247 limits:

248 cpu: "4"

249 memory: 4Gi

250```

251 

252Builds und Tests sind normalerweise der größte und variabelste Teil der Last einer Sitzung, daher führen Sie einen repräsentativen Build Ihres Repositorys aus, messen Sie seinen Peak-CPU und Speicher, und erhöhen Sie jeden Startwert, der keinen Platz für den Claude Code-Prozess auf diesem Peak lässt.

253 

254Der Runner verwendet `--capacity`, um zu begrenzen, wie viele Sitzungen er gleichzeitig ausführt. Er teilt CPU oder Speicher nicht zwischen ihnen, daher teilen sich die Sitzungen auf einem Runner die CPU und den Speicher des Containers. Um die Freigabe einer Sitzung zu begrenzen, wenden Sie Limits aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts) an. Was Sie einem Container geben, hängt daher davon ab, wie viele Sitzungen er gleichzeitig bedient:

255 

256* **Eine Sitzung pro Runner**: Geben Sie jedem Container die Werte einer Sitzung. Verwenden Sie diese Dimensionierung bei `--capacity 1`, das der [Härtungsabschnitt](#harden-your-deployment) empfiehlt, und für [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners), wo Sie die Werte auf der Workload setzen, die Ihr [`spawn-runner`-Hook](/docs/de/self-hosted-environments-configuration#the-spawn-runner-hook) einreicht, wie ein Kubernetes Job's Pod-Template.

257* **Mehrere Sitzungen pro Runner**: Bei einem `--capacity` über eins multiplizieren Sie die Werte einer Sitzung mit der Kapazität, weil bis zu so viele Sitzungen gleichzeitig im Container laufen können. Die [Kubernetes](#kubernetes)- und [Docker Compose](#docker-compose)-Rezepte führen `--capacity 4` ohne CPU- oder Speicherlimits aus, daher fügen Sie Limits hinzu, die für die Kapazität dimensioniert sind, die Sie ausführen.

258 

259<h2 id="kubernetes">

260 Kubernetes

261</h2>

262 

263Der Runner bedient `GET /healthz` auf Port 8080 standardmäßig, konfigurierbar mit `--health-port`, daher funktionieren Kubernetes-Probes ohne zusätzliches Setup. Der Endpunkt gibt `200` zurück, wann immer der Prozess lebt, daher erkennen die Probes unten einen toten Prozess, nicht einen steckengebliebenen; um einen Runner zu fangen, der aufgehört hat zu pollen, warnen Sie die `last_poll_age_seconds`-Serie von [`/metrics`](/docs/de/self-hosted-environments-reference#prometheus-metrics). Die Deployment unten bindet das Umgebungsgeheimnis von einem Kubernetes Secret, zeigt die Liveness- und Readiness-Probes auf `/healthz` und setzt eine 90-Sekunden-Terminierungs-Grace-Periode. Siehe [Shutdown-Timing](#shutdown-timing) für warum die Grace-Periode wichtig ist.

264 

265Das Manifest setzt keine CPU- oder Speicher-`resources` auf dem Runner-Container. Fügen Sie einen Block hinzu, der für die Kapazität dimensioniert ist, die Sie ausführen, wie [Dimensionieren Sie CPU und Speicher für Sitzungen](#size-cpu-and-memory-for-sessions) beschreibt.

266 

267```yaml theme={null}

268apiVersion: apps/v1

269kind: Deployment

270metadata:

271 name: claude-runner

272 namespace: claude-runners

273spec:

274 replicas: 3

275 selector:

276 matchLabels:

277 app: claude-runner

278 template:

279 metadata:

280 labels:

281 app: claude-runner

282 app.kubernetes.io/part-of: claude-code-self-hosted-runner

283 spec:

284 terminationGracePeriodSeconds: 90

285 containers:

286 - name: runner

287 image: <your-registry>/claude-runner:latest

288 args:

289 - self-hosted-runner

290 - --environment-secret-file

291 - /etc/claude/environment-secret

292 - --capacity

293 - "4"

294 volumeMounts:

295 - name: environment-secret

296 mountPath: /etc/claude

297 readOnly: true

298 ports:

299 - name: health

300 containerPort: 8080

301 readinessProbe:

302 httpGet:

303 path: /healthz

304 port: 8080

305 initialDelaySeconds: 5

306 periodSeconds: 10

307 livenessProbe:

308 httpGet:

309 path: /healthz

310 port: 8080

311 initialDelaySeconds: 30

312 periodSeconds: 30

313 volumes:

314 - name: environment-secret

315 secret:

316 secretName: claude-runner-environment-secret

317```

318 

319Die Deployment oben lebt in einem `claude-runners`-Namespace. Erstellen Sie den Namespace zuerst:

320 

321```bash theme={null}

322kubectl create namespace claude-runners

323```

324 

325Erstellen Sie das Backing-Secret aus einer lokalen Datei, die den Wert enthält, den Sie im Admin-UI's [**Copy environment key**-Schritt](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner) kopiert haben, daher erscheint das Geheimnis niemals in Ihrer Shell-Historie. Führen Sie `(umask 077 && cat > ./environment-secret)` aus, fügen Sie das Geheimnis ein, drücken Sie Enter, dann Ctrl-D. Dann erstellen Sie das Secret und löschen die Datei:

326 

327```bash theme={null}

328kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret

329```

330 

331<h2 id="docker-compose">

332 Docker Compose

333</h2>

334 

335Der Compose-Service unten startet den Runner neu, wann immer er beendet wird, was sowohl Crashes als auch den normalen Exit nach dem Draining abdeckt. Eine Docker-Restart-Richtlinie startet den gleichen Container mit seiner beschreibbaren Schicht intakt neu, daher kommt der Runner auf einem wiederverwendeten Dateisystem anstatt dem frischen, das die [Härtungs-Haltung](#harden-your-deployment) empfiehlt; verwenden Sie dieses Rezept zur Evaluierung, und für die Produktion entweder den Container pro Lauf neu erstellen oder einen Orchestrator verwenden, der das tut.

336 

337```yaml theme={null}

338services:

339 claude-runner:

340 image: <your-registry>/claude-runner:latest

341 command:

342 - self-hosted-runner

343 - --environment-secret-file

344 - /run/secrets/environment-secret

345 - --capacity

346 - "4"

347 secrets:

348 - environment-secret

349 restart: always

350 stop_grace_period: 90s

351 

352secrets:

353 environment-secret:

354 file: ./environment-secret

355```

356 

357<h2 id="shutdown-timing">

358 Shutdown-Timing

359</h2>

360 

361Bei `SIGTERM` stoppt der Runner, neue Arbeit zu nehmen und, es sei denn, Sie setzen [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal), wartet bis zu `--drain-wait-sec`, null standardmäßig, damit laufende Turns fertig werden, beendet jeden Sitzungs-Prozessbaum und führt den [`post-session`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#post-session) aus. Dieser Prozessbaum enthält Befehle, die Claude noch in der Sitzung ausführte.

362 

363Der vollständige Drain-Pfad benötigt bis zu `--session-stop-grace-sec` + `--drain-wait-sec` + `--post-session-hook-timeout-sec`, plus 15 Sekunden fester Overhead für Prozess-Cleanup, plus 30 weitere Sekunden wenn [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gesetzt ist. Das sind 80 Sekunden bei Defaults, und der Runner protokolliert das Gesamte beim Start. Sitzungen drainieren parallel unter diesem einen Budget, daher wächst das Gesamte nicht mit `--capacity`.

364 

365Bei dem Standard `--drain-wait-sec 0` unterbricht ein Rolling Restart laufende Turns; jede Sitzung setzt sich auf einem anderen Runner fort, verliert unpushed Arbeit wie unter [Bekannte Probleme](#additional-limitations) beschrieben. Setzen Sie `--drain-wait-sec` und erhöhen Sie die Grace-Periode, um zu passen, um Turns zuerst fertig zu lassen.

366 

367Während des ganzen Pfads heartbeatet der Runner zur Kontrollebene bei null Kapazität, daher läuft das Sitzungs-Lease nicht ab und wird zu einem anderen Runner requeued, während der `post-session`-Hook immer noch uncommitted Arbeit schreibt. Der Heartbeat stoppt kurz bevor der Runner sich abmeldet.

368 

369Geben Sie dem Runner mindestens das Gesamte, das er beim Start protokolliert, bevor der Host ihn stoppt. Wo Sie das setzen, hängt davon ab, wie Ihre Hosts stoppen:

370 

371* **Mit einer `SIGTERM`-Grace-Periode**: Setzen Sie `terminationGracePeriodSeconds` auf Kubernetes, `stop_grace_period` auf Docker Compose oder das Äquivalent Ihres Orchestrators auf mindestens dieses Gesamte. Der Kubernetes-Standard von 30 Sekunden ist kürzer als der Drain-Pfad des Runners, daher stoppt Kubernetes den Pod, bevor der Runner fertig drainiert.

372* **Mit [`--retire-at`](/docs/de/self-hosted-environments-reference#runner-cli-flags)**: Dimensionieren Sie die Marge zwischen der Retire-Zeit und der Host-Stop-Zeit, um typische Turns zu decken, plus den Background-Task-Hold, den [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle) beschreibt, plus dieses gleiche Gesamte. Berechnen Sie die Retire-Zeit bei jedem Launch, zum Beispiel `date +%s` plus die beabsichtigte Lebensdauer des Runners.

373* **Mit [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: Fügen Sie zwei weitere Teile zum Drain-Pfad-Gesamte hinzu. Der erste ist die Minuten, die Sie konfigurieren. Der zweite ist die Post-Release-Grace, die [Defer the drain past the first signal](#defer-the-drain-past-the-first-signal) beschreibt, 75 Sekunden bei Defaults. Mit dem Flag gesetzt, druckt der Runner auch die kombinierte Zahl beim Start, nach dem Drain-Pfad-Gesamte.

374 

375<h3 id="defer-the-drain-past-the-first-signal">

376 Verschieben Sie den Drain über das erste Signal hinaus

377</h3>

378 

379Setzen Sie [`--defer-shutdown-max-min <n>`](/docs/de/self-hosted-environments-reference#runner-cli-flags), wenn Sie einen Runner, den Sie neu starten, für bis zu `n` Minuten weiterhin die Sitzungen bedienen möchten, die er hält, anstatt sie beim ersten Signal zu drainieren. Beim ersten `SIGTERM` oder `SIGINT` stoppt der Runner, neue Arbeit zu nehmen und bedient weiterhin die Sitzungen, die er hält. Er pollt weiterhin, daher requeued die Kontrollebene diese Sitzungen nicht. Erfordert Claude Code v2.1.238 oder später.

380 

381<h4 id="what-happens-to-the-sessions-the-runner-holds-after-the-first-signal">

382 Was mit den Sitzungen passiert, die der Runner nach dem ersten Signal hält

383</h4>

384 

385In den ersten zwei Phasen, die dem Signal folgen, gibt der Runner Sitzungen frei, und eine freigegebene Sitzung setzt sich auf einem frischen Runner fort, wenn sein Benutzer seine nächste Nachricht sendet. Zählung vom ersten Signal, bewegt sich der Runner durch drei Phasen:

386 

387* **Für die ersten `n` Minuten**: Der Runner bedient seine Sitzungen normal und erzwingt weiterhin `--startup-timeout-min` und `--kill-session-after-min`. Wenn Sie auch [`--release-idle-session-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags) setzen, gibt der Runner jede Sitzung frei, deren Benutzer so lange untätig war; ohne es gibt der Runner keine Sitzung früh frei, außer einem Startup-Timeout.

388* **Wenn die `n` Minuten ablaufen**: Der Runner gibt jede Sitzung frei, die er noch hält, untätig oder nicht. Der Runner wartet auf die Turn einer Mid-Turn-Sitzung, um zu enden, und bis zu 60 Sekunden mehr für die Background-Tasks einer Turn, bevor er diese Sitzung freigibt.

389* **Wenn die Post-Release-Grace abläuft**: Der Runner drainiert alle Sitzungen, die er noch hält, und die Kontrollebene requeued jede drainierte Sitzung sofort zu einem anderen Runner. Die Post-Release-Grace startet, wenn die `n` Minuten ablaufen und ist 75 Sekunden bei Defaults. Wenn Sie `--drain-wait-sec` über 60 Sekunden setzen, ist die Post-Release-Grace `--drain-wait-sec` plus 15 Sekunden stattdessen.

390 

391In jeder Phase beendet sich der Runner 0, sobald er keine Sitzungen hält. Ein zweites Signal verkürzt die Phasen: Der Runner drainiert sofort, wie er beim ersten Signal ohne `--defer-shutdown-max-min` tut. Sobald ein Drain unterwegs ist, beendet das nächste Signal den Runner mit Gewalt. Das gilt, ob ein zweites Signal oder die Post-Release-Grace ablaufen den Drain startete.

392 

393<h4 id="size-the-stop-timeout">

394 Dimensionieren Sie das Stop-Timeout

395</h4>

396 

397Geben Sie Ihrem Host's Stop-Timeout mindestens die Summe von drei Teilen: die `n` Minuten, die Sie konfigurieren, die Post-Release-Grace und den vollständigen Drain-Pfad, den [Shutdown-Timing](#shutdown-timing) beschreibt. Mit Standard-Einstellungen ist die Post-Release-Grace 75 Sekunden und der Drain-Pfad 80 Sekunden, daher erlauben Sie `n` Minuten plus 155 Sekunden. Der Runner druckt diese Summe beim Start, wann immer `--defer-shutdown-max-min` gesetzt ist.

398 

399Wenn das Stop-Timeout abläuft, bevor der Runner fertig ist, tötet der Host den Runner. Die Sitzungen, die er noch hält, bekommen keinen `post-session`-Hook. Der Runner meldet sich nicht ab, und die Kontrollebene requeued die Sitzungen etwa eine Minute später. Wenn Sie das Stop-Timeout nicht diese Summe geben können, lassen Sie `--defer-shutdown-max-min` ungesetzt, daher drainiert der Runner beim ersten Signal stattdessen.

400 

401<h3 id="what-reaches-a-running-post-session-hook">

402 Was einen laufenden Post-Session-Hook erreicht

403</h3>

404 

405Der `post-session`-Hook und das Claude-Sitzungs-Kind laufen jeweils in ihrer eigenen POSIX-Prozessgruppe, getrennt vom Runner's, daher erreichen Stop-Mechanismen sie unterschiedlich:

406 

407* **Ein `SIGTERM`, während der Runner bereits drainiert**: Beendet den Runner sofort mit Gewalt, überspringt alles, was vom Drain-Pfad bleibt. Ohne [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal) ist das das zweite `SIGTERM`, das der Runner erhält. Nichts signalisiert einen laufenden `post-session`-Hook, daher auf einem bloßen Host, wo ein Init-Prozess Waisen adoptiert, beendet er sich selbst, aber unüberwacht: sein Timeout-Budget gilt nicht mehr, und ein Schreiben in die geschlossene Log-Pipe kann ihn mit `SIGPIPE` töten, daher sollte ein Hook, der einen erzwungenen Exit dort überleben muss, seine eigene Ausgabe zu einer Datei umleiten. In den Container-Rezepten auf dieser Seite ist der Runner der Container's PID 1 und sein Exit beendet den Container, und unter systemd's Standard `KillMode=control-group` erreicht die Cgroup-weite Kill den Hook auch, wie der **Cgroup-weite Kills**-Eintrag beschreibt; in beiden behandeln Sie einen erzwungenen Exit als tödlich für den Hook und verlassen sich stattdessen auf die Grace-Periode.

408* **Prozessgruppen-weite Signale**, wie `kill -- -<pid>` in einem Wrapper-Skript, Shell-Job-Kontrolle oder ein Gruppen-weiter Watchdog: erreichen den Runner und einen Mid-`checkout`-Hook-Subprozess, der absichtlich Gruppen-angehängt bleibt, aber nicht einen laufenden `post-session`-Hook oder das Sitzungs-Kind.

409* **Cgroup-weite Kills**, wie systemd's Standard `KillMode=control-group` oder die `SIGKILL`, die Kubernetes dem ganzen Container liefert, wenn `terminationGracePeriodSeconds` abläuft: erreichen alles, einschließlich des Hooks. Prozessgruppen-Isolation schützt nicht gegen diese, weshalb die Grace-Periode den vollständigen Drain-Pfad decken muss.

410* **Das Timeout des Hooks selbst**: Wenn ein Hook `--post-session-hook-timeout-sec` überschreitet, sendet der Runner `SIGTERM` zur ganzen Prozessgruppe des Hooks, dann `SIGKILL` zwei Sekunden später, daher beendet sich ein Worker, den der Hook forked, wie tar, rsync oder git, mit der Wrapper-Shell anstatt als Waise zu überleben. Die Überwachung des Runners endet, sobald das Hook's stdio schließt: ein Worker, der seine eigene Ausgabe zu einer Datei umgeleitet hat und die `SIGTERM`-Phase überlebt, ist jenseits der Reichweite des Runners.

411 

412Wenn der Drain startet, und wieder bei einem erzwungenen Exit, protokolliert der Runner, wie viele `post-session`-Hooks noch laufen, daher können Sie einen stillen Drain von einem unterscheiden, der Mid-Snapshot ist.

413 

414<h2 id="keep-the-base-directory-and-capacity-identical-across-runners">

415 Halten Sie das Basis-Verzeichnis und die Kapazität über Runner identisch

416</h2>

417 

418Wenn ein Runner Mid-Sitzung stirbt, requeued der Server die Sitzung und ein anderer Runner in der Umgebung hebt sie auf. Dieser Runner leitet den Checkout-Pfad von seinem eigenen `--base-dir` und `--capacity` ab: `--capacity 1` checkt direkt unter `--base-dir` aus, und ein `--capacity` über `1` verwendet stattdessen Pro-Sitzungs-Worktrees. Wenn Runner in der gleichen Umgebung unterschiedliche Werte für eines der Flags verwenden, ändert sich das Arbeitsverzeichnis der fortgesetzten Sitzung, und absolute Pfade, die der Agent früher aufgezeichnet hat, in Edits, Tool-Aufrufen oder seinen eigenen Notizen, zeigen auf einen Ort, der nicht mehr existiert.

419 

420Verwenden Sie den gleichen `--base-dir` und `--capacity` auf jedem Runner in einer Umgebung, und verwenden Sie keinen Pro-Host-Wert wie eine Instance-ID oder einen Hostnamen.

421 

422Das Basis-Verzeichnis standardmäßig auf `/workspace`, mit der Ausnahme, die die [`--base-dir`-Referenz-Zeile](/docs/de/self-hosted-environments-reference#runner-cli-flags) aufzeichnet. Der Runner benötigt Schreibzugriff darauf. Beim Start, vor der Registrierung, erstellt der Runner das Verzeichnis und bestätigt, dass er darin schreiben kann, und beendet sich mit `cannot create or write to base directory`, wenn er nicht kann. Ein Runner, der als Root gestartet wird, erstellt das Standard `/workspace` selbst. Für einen Non-Root-Runner erstellen Sie das Verzeichnis und geben Sie dem Runner's Benutzer Eigentum, bevor Sie den Runner starten, oder zeigen Sie `--base-dir` auf ein Verzeichnis, das dieser Benutzer bereits besitzt.

423 

424<h2 id="reuse-a-pre-warmed-checkout">

425 Wiederverwendung eines vorgewärmten Checkouts

426</h2>

427 

428Bei großen Repositories kann das Klonen den Sitzungsstart dominieren. Bei `--capacity 1` ohne [`checkout` Hook](/docs/de/self-hosted-environments-configuration#checkout) behält der Runner einen kanonischen Klon pro Repository unter `<base-dir>/<repo-owner>/<repo>` und verwendet ihn über Sitzungen hinweg erneut: Er ruft die angeforderte Referenz ab, trennt `HEAD` ab und setzt sie hart zurück, was nahezu augenblicklich ist, wenn sich wenig geändert hat. Um das kalte Klonen zu überspringen, stellen Sie den Klon auf eine von zwei Arten bereit:

429 

430* **Klon im Image**: Erstellen Sie den Klon in Ihrem Runner-Image unter diesem Pfad. Jeder neue Container startet dann mit dem warmen Klon, ohne eine Festplatte wiederzuverwenden.

431* **Klon auf einem persistenten Volume**: Bei Runnern, die Sie mit [`--lock-to-account`](/docs/de/self-hosted-environments-reference#runner-cli-flags) auf das Konto eines Benutzers sperren, verweisen Sie `--base-dir` auf ein persistentes Volume, sodass die Festplatte nur diesem Konto dient. Ein gesperrter Runner akzeptiert niemals Claude Tag Channel-Sitzungen, daher gilt diese Option nicht für Runner, die diese bedienen.

432 

433Was der Wiederverwendungspfad garantiert und nicht garantiert:

434 

435* **Jede Klonform funktioniert**: Ein vollständiger, flacher oder Single-Branch-Klon unter dem Pfad wird unverändert verwendet. Der Runner übergibt niemals `--depth` beim Abrufen in einen vorhandenen Klon, daher behält ein vollständiger Vorwärm seine vollständige Historie und ein flacher bleibt flach. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0` oder eine Zahl; Standard 50) steuert nur den kalten Klon, den der Runner erstellt, wenn noch kein Klon vorhanden ist.

436* **Nachverfollgte Änderungen werden zurückgesetzt, nicht nachverfolgte Dateien bleiben erhalten**: Jede Sitzung beginnt mit einem harten Zurücksetzen, das die verfolgten Änderungen der vorherigen Sitzung löscht, aber der Runner führt niemals `git clean` aus, daher bleiben nicht nachverfolgte Dateien aus früheren Sitzungen des gesperrten Besitzers im Baum.

437* **Mit dem Git-Proxy wird das Zurücksetzen zu einem Checkout**: Mit [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) bereinigt der Runner das `.git/`-Verzeichnis des Klons vor jeder Sitzung, behält den Objektspeicher, Referenzen und den flachen Zustand, löscht aber den Index, sodass jede Sitzung einen vollständigen Working-Tree-Checkout anstelle eines nahezu augenblicklichen Zurücksetzen zahlt; es wird immer noch nie neu geklont. Submodul-Vorwärme wird unter dem Proxy nicht unterstützt.

438* **Lange Klone benötigen keine Umgehung**: Der Runner begrenzt jede Git-Operation mit einem 120-Sekunden-Watchdog ohne Fortschritt und einer 30-Minuten-Obergrenze, nicht mit einem flachen Timeout, daher wird ein langsamer kalter Klon, der weiterhin Fortschritt meldet, abgeschlossen.

439 

440<h2 id="pin-the-version">

441 Pinnen Sie die Version

442</h2>

443 

444Jeder Sitzungs-Kind-Claude-Code-Prozess führt die Binärdatei des Runners selbst aus, und der Runner schaltet Auto-Update in den Sitzungen, die er spawnt, aus, daher führt jede Sitzung die Version aus, die Sie auf dem Host installiert oder in das Image eingebaut haben. Ein Host-Level-Update wird wirksam, das nächste Mal, wenn der Runner startet.

445 

446* **Um eine Flotte auf einer Version zu halten**: Erstellen Sie das Image mit einer gepinnten Version, oder installieren Sie auf einem bloßen Host eine spezifische Version und [deaktivieren Sie Auto-Updates](/docs/de/setup#disable-auto-updates)

447* **Um zu upgraden**: Installieren Sie die neuere Version oder erstellen Sie das Image neu, dann starten Sie die Runner neu

448* **Plugins**: Plugin-Marktplätze auto-updaten auch nicht; setzen Sie `FORCE_AUTOUPDATE_PLUGINS=1` in der Runner's Umgebung, um Plugins auto-updaten zu lassen, während die Binärdatei gepinnt bleibt

449 

450<h2 id="scale-the-fleet">

451 Skalieren Sie die Flotte

452</h2>

453 

454Ihr Orchestrator entscheidet, wann Runner hinzugefügt oder entfernt werden. Wegen der [One-Owner-Per-Runner-Lock](/docs/de/self-hosted-environments#runner-lifecycle) ist die minimale Replica-Anzahl die Anzahl der Benutzer und Claude Tag-Agenten, die Sie gleichzeitig aktiv erwarten; `--capacity` kontrolliert Parallelismus innerhalb einer Owner's Sitzungen, nicht über Owners.

455 

456Zwei Skalierungs-Ansätze sind verfügbar:

457 

458* **Feste Flotte**: Führen Sie einen statischen Satz von Runner-Replicas aus und skalieren Sie auf den [Prometheus-Metriken](/docs/de/self-hosted-environments-reference#prometheus-metrics), die jeder Runner bedient

459* **On-Demand-Runner**: Führen Sie den `claude self-hosted-runner orchestrator`-Subcommand aus, der Anthropic auf Sitzungen abfragt, die mit keinem verfügbaren Runner in die Warteschlange eingereiht sind und Ihren `spawn-runner`-Hook aufruft, um einen pro Sitzung zu starten. Siehe [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners).

460 

461<h2 id="known-issues-and-limitations">

462 Bekannte Probleme und Einschränkungen

463</h2>

464 

465Die folgenden sind die Einschränkungen in dieser Version, mit Umgehungen, wo eine existiert.

466 

467<h3 id="connector-traffic-leaves-your-network">

468 Connector-Datenverkehr verlässt Ihr Netzwerk

469</h3>

470 

471Anthropic ruft Connector-Tools von seiner eigenen Infrastruktur anstatt von Ihrem Runner auf. Connector-Tools sind die claude.ai-Connectoren, wie GitHub, Slack und Linear. Wenn Claude einen Connector in einer selbstgehosteten Sitzung verwendet, geht dieser Datenverkehr durch `api.anthropic.com` anstatt von innerhalb Ihrer Netzwerkgrenze zu stammen.

472 

473Um einen Connector aus selbstgehosteten Sitzungen zu halten, filtern Sie ihn mit den [`allowedMcpServers`- und `deniedMcpServers`-Richtlinien-Einstellungen](/docs/de/managed-mcp#policy-based-control-with-allowlists-and-denylists). Claude Code wendet diese Einstellungen auf die Connectoren an, die Anthropic liefert, sowie auf die Server, die Sie vom Runner-Host seeden, und die Server, die Benutzer hinzufügen. Wenn Sie also eine Zulassungsliste für andere Server bereitstellen, blockiert Claude Code auch gelieferte Connectoren. Um Connectoren neben einer URL-basierten Zulassungsliste verfügbar zu halten, fügen Sie Einträge hinzu, die den Anthropic-Proxy-Pfaden für gelieferte Connectoren entsprechen:

474 

475* `https://api.anthropic.com/v2/ccr-sessions/*`

476* `https://api.anthropic.com/v1/code/sessions/*`

477* `https://api.anthropic.com/v1/code/mcp/*`

478 

479Wenn Tool-Datenverkehr in Ihrem Netzwerk bleiben muss, führen Sie die äquivalenten Tools als lokale MCP-Server auf dem Runner-Image stattdessen aus. Siehe [MCP-Server](/docs/de/self-hosted-environments-configuration#mcp-servers).

480 

481<h3 id="some-sessions-don’t-count-as-idle">

482 Einige Sitzungen zählen nicht als untätig

483</h3>

484 

485Eine Sitzung, die einen Hintergrund-Task hält, der niemals fertig wird, zählt nicht als untätig, daher wird `--release-idle-session-min` diese Sitzung nicht freigeben. Eine Sitzung, die auf eine Genehmigung wartet, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, zählt auch nicht als untätig. Setzen Sie immer `--kill-session-after-min` daneben als harten Backstop, damit keine Sitzung einen Slot unbegrenzt halten kann.

486 

487`--kill-session-after-min` ist ein Backstop für Runaway-Sitzungen. Auf einem Runner mit v2.1.260 oder später wird eine Sitzung, die das Limit erreicht, nicht sofort beendet. Der Runner gibt ihr ein Kulanzfenster, standardmäßig 15 Minuten, das Sie mit [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](/docs/de/self-hosted-environments-reference#environment-variable-only-settings) ändern können:

488 

489* Wenn die Sitzung auf ihren Benutzer wartet, oder ihr Zug beendet ist und sie hält nur Hintergrund-Tasks, gibt der Runner sie sofort frei. Die Sitzung wird fortgesetzt, wenn ihr Benutzer ihre nächste Nachricht sendet.

490* Wenn ein Zug noch läuft, wartet der Runner darauf, dass der Zug fertig wird, oder dass die Sitzung das nächste Mal auf ihren Benutzer wartet, und gibt sie dann frei.

491* Wenn die Sitzung noch auf dem Runner ist, wenn das Kulanzfenster endet, beendet der Runner sie, und jede laufende Zug-Arbeit geht verloren. Ein Zug, der auf eine Genehmigung wartet, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, ist eine Möglichkeit, wie eine Sitzung das Fenster überlebt.

492 

493Eine freigegebene Sitzung wird von einem frischen Klon fortgesetzt, daher ist Arbeit, die sie nicht gepusht hat, sowieso weg; siehe [Fortgesetzte Sitzungen verlieren unpushed Arbeit](#additional-limitations). Vor v2.1.260 beendete der Runner jede Sitzung beim Limit, nachdem er höchstens das Kulanzfenster wartete, damit ein laufender Zug fertig wird.

494 

495Setzen Sie das Flag über Ihre längste erwartete Sitzung, wie `--kill-session-after-min 480` für 8 Stunden. Um Slots aus Gesprächen freizugeben, die untätig werden, verwenden Sie stattdessen `--release-idle-session-min`.

496 

497<h3 id="additional-limitations">

498 Zusätzliche Einschränkungen

499</h3>

500 

501* **Fortgesetzte Sitzungen verlieren unpushed Arbeit**: Wenn eine Sitzung freigegeben wird oder ihr Runner neu gestartet wird, und der Benutzer sendet eine weitere Nachricht, wird die Sitzung auf einem frischen Runner fortgesetzt, der das Repository erneut von seinem Starting-Branch klont, daher ist Arbeit, die die Sitzung nicht gepusht hat, weg. Setzen Sie [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags), um den Runner einen Best-Effort-Push der Sitzungs-Outcome-Branches vor der Freigabe machen zu lassen, damit die fortgesetzte Sitzung von diesen Commits startet; dies bewahrt committed Arbeit, nicht einen Dirty Working Tree. Bevor Sie es aktivieren, beschränken Sie, wer zu `claude/*`-Refs auf dem Source-Remote pushen kann, zum Beispiel mit einem Branch-Ruleset: Bei Resume ruft der Runner den zuvor gepushten Branch ab, ohne zu überprüfen, wer ihn gepusht hat, daher kann jeder mit Push-Zugriff zu diesen Refs Inhalt in den fortgesetzten Workspace platzieren. Der Runner verwirft auch Pro-Sitzungs-Konfiguration bei Resume, was das Claude-Konfigurationsverzeichnis der Sitzung und jeden Shell-Zustand bedeutet, den die Sitzung schrieb; `--push-outcome-on-release` deckt diese nicht ab.

502* **Private Repositorys können nicht Mid-Sitzung hinzugefügt werden**: Ein Repository, das zu einer Sitzung hinzugefügt wird, nachdem es gestartet hat, wird nicht mit Anmeldedaten auf einem selbstgehosteten Runner geklont, daher schlägt das Hinzufügen fehl. Wählen Sie jedes Repository, das die Sitzung benötigt, wenn Sie sie erstellen.

503* **Einige Connectoren erscheinen nicht in selbstgehosteten Sitzungen**: Ein Connector, den Sie noch nicht in claude.ai Settings verbunden haben, wird nicht in einer selbstgehosteten Sitzung aufgelistet, und die Sitzung wird Sie nicht auffordern, ihn zu verbinden. Verbinden Sie ihn zuerst in Settings, dann starten Sie eine frische Sitzung. Das Hinzufügen eines Connectors zu einer bereits laufenden Sitzung macht seine Tools auch nicht für Claude verfügbar; starten Sie eine frische Sitzung, um einen neu hinzugefügten Connector aufzugreifen.

504 

505<h3 id="report-an-issue">

506 Melden Sie ein Problem

507</h3>

508 

509Für Probleme mit selbstgehosteten Umgebungen kontaktieren Sie Ihr Anthropic-Account-Team.

510 

511<h2 id="troubleshooting">

512 Fehlerbehebung

513</h2>

514 

515Für geführte Diagnose führen Sie den Doctor-Subcommand auf dem Runner-Host aus. Der Doctor-Subcommand startet eine interaktive Claude Code-Sitzung mit den Logs und dem Zustand des Runners angehängt. Melden Sie sich zuerst mit `claude auth login` auf diesem Host an, daher kann die Sitzung Ihre Umgebung, ihre Runner und ihre in die Warteschlange eingereihten Sitzungen abfragen. Ohne diese Anmeldung, zum Beispiel wenn der Host mit einem API-Schlüssel authentifiziert, ist es auf den lokalen Health-Endpunkt, Metriken und das Runner-Log begrenzt, und es liest das Log nur, wenn Sie den Runner mit `--log-file` gestartet haben.

516 

517```bash theme={null}

518claude self-hosted-runner doctor

519```

520 

521Häufige Probleme:

522 

523* **Runner erscheint nicht in der Umgebung**: Bestätigen Sie, dass der Host `api.anthropic.com` über HTTPS erreichen kann, das Umgebungsgeheimnis aktuell ist und die Host-Uhr innerhalb von fünf Minuten der echten Zeit liegt; größere Abweichung verursacht, dass die Authentifizierung fehlschlägt. Der Runner protokolliert `[runner:fatal]` mit dem Ablehnungsgrund bei Auth-Fehler.

524* **Runner beendet sich beim Start mit `cannot create or write to base directory`**: Der Runner kann `--base-dir` nicht erstellen oder schreiben, das standardmäßig auf `/workspace` ist. Beheben Sie das Verzeichnis's Eigentum oder zeigen Sie `--base-dir` auf einen beschreibbaren Pfad, wie in [Halten Sie das Basis-Verzeichnis und die Kapazität über Runner identisch](#keep-the-base-directory-and-capacity-identical-across-runners) beschrieben. Wenn der Runner stattdessen `[runner:fatal]` protokolliert, dass die Basis-Verzeichnis-Überprüfung abgelaufen ist, ist das Verzeichnis auf einem hängenden NFS- oder CSI-Mount. Überprüfen Sie die Mount-Gesundheit anstatt der Berechtigungen. Der Runner druckt beide dieser Startup-Fehler zu stderr, bevor er `--log-file` öffnet, daher suchen Sie nach ihnen im Terminal oder Ihren Plattform-Container-Logs anstatt der Log-Datei. Vor v2.1.225 überprüfte der Runner das Basis-Verzeichnis nicht beim Start, und diese Fehlkonfiguration schlug Sitzungen nach der Aufnahme fehl.

525* **Sitzungen bleiben in der Warteschlange**: Jeder Online-Runner kann auf einen anderen Owner gesperrt sein. Überprüfen Sie die `claude_code_self_hosted_runner_locked_account`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics) jedes Runners oder das `locked_account`-Feld seiner `[runner:health]`-Log-Zeile, um zu sehen, wer sie hält. Beide zeigen die Email des Owners nur, nachdem der Runner ein Sitzungs-Token mit einem `act.email`-Claim ausgestellt bekommen hat, das die Sitzungen eines Claude Tag-Agenten niemals tun. Ohne den Claim sendet der Runner keine `locked_account`-Serie aus und protokolliert `locked_account=yes`, was Ihnen sagt, dass der Runner gesperrt ist, aber nicht auf welchen Owner. Fügen Sie Replicas hinzu, oder warten Sie, bis ein bestehender Runner drainiert und neu startet. Wenn die Umgebung On-Demand-Runner verwendet, überprüfen Sie stattdessen den Orchestrator; siehe [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners).

526* **Sitzungen schlagen sofort nach der Aufnahme fehl**: Öffnen Sie die Sitzung in claude.ai/code, um den Fehler zu sehen. Die häufigsten Ursachen sind fehlende [Git-Anmeldedaten](#configure-git) im Runner-Image und Build-Tools, die nicht installiert sind. Ein nicht beschreibbares Basis-Verzeichnis stoppt den Runner beim Start anstatt Sitzungen zu fehlschlagen. Siehe den **Runner beendet sich beim Start mit `cannot create or write to base directory`**-Eintrag in dieser Liste.

527* **Sitzungen können das Netzwerk nicht durch einen authentifizierenden Egress-Proxy erreichen**: Wenn die Quelle, die Sie mit [`--proxy-authorization-command` oder `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) setzen, fehlschlägt, nach 30 Sekunden abläuft oder einen leeren Wert ergibt, antwortet der Runner dieser Verbindung `502 Bad Gateway` und protokolliert warum. Der Runner redigiert das Kommando's stderr in diesem Log und protokolliert niemals den Header-Wert. Mit `--proxy-authorization-command` führen Sie das Kommando selbst auf dem Host aus, um zu bestätigen, dass es den ganzen Header-Wert auf stdout druckt. Wenn der Runner stattdessen beim Start mit `could not start the proxy-authorization listener` beendet wird, konnte er seinen Loopback-Listener nicht öffnen.

528* **Runner protokolliert `Poll failed`-Zeilen, die `rejecting the malformed poll response` enthalten**: Der Runner erhielt eine Work-Poll-Antwort, deren Body nicht das erwartete JSON der Warteschlange ist, am häufigsten weil etwas zwischen dem Runner und `api.anthropic.com`, wie ein abfangender Proxy oder ein Captive Portal, seine eigene Seite antwortet. Der Runner lehnt die Antwort ab, zählt sie unter der `transport`-Art der `claude_code_self_hosted_runner_poll_errors_total`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), und versucht erneut auf dem fehlgeschlagenen Poll-Plan, der in [Sitzungs-Lebenszyklus](/docs/de/self-hosted-environments#session-lifecycle) beschrieben ist. Der Runner bedient weiterhin seine Live-Sitzungen. Konfigurieren Sie den Proxy, um Antworten von `api.anthropic.com` unverändert durchzulassen. Vor v2.1.246 las der Runner eine solche Antwort als eine leere Warteschlange, die seine Live-Sitzungen beenden oder ihn zum Exit bringen könnte.

529* **Ein Sitzungs-Branch existiert nicht mehr auf dem Remote**: Für eine Git-Quelle, die die Sitzung nur liest, überspringt der Runner diese Quelle und setzt auf den verbleibenden fort. Für die Quelle, zu der die Sitzung Ergebnisse pusht, schlägt ein gelöschter Branch, typischerweise weil er gemergt und auto-gelöscht wurde, die Sitzung mit einem Fehler fehl, der das Repository und den Branch benennt und Sie auffordert, den Branch wiederherzustellen und erneut zu versuchen. Der Runner schlägt die Sitzung mit dem gleichen Fehler fehl, wenn das Überspringen sie mit keinem Repository überhaupt verlassen würde. Vor v2.1.228 startete eine solche Sitzung in einem leeren Verzeichnis.

530* **Sitzungen dauern Minuten zum Start**: Der anfängliche Clone dominiert normalerweise. Beobachten Sie die `claude_code_self_hosted_runner_session_init_duration_seconds`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), um zu bestätigen, und schneiden Sie den Clone mit einem [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout) oder einem kleineren `CLAUDE_RUNNER_FETCH_DEPTH`.

531* **Pod wird Mid-Drain getötet**: Erhöhen Sie `terminationGracePeriodSeconds` auf mindestens den Wert, den der Runner beim Start protokolliert. Siehe [Shutdown-Timing](#shutdown-timing).

532 

533Sobald das Logging initialisiert ist, schreibt der Runner sein Lebenszyklus-Log, einschließlich `[runner:fatal]`-Zeilen, zu stdout, und Debug-Ausgabe zu stderr, alles als Plain-Text-Zeilen anstatt JSON. Die Startup-Fehler, die in den Fehlerbehebungs-Einträgen oben beschrieben sind, drucken zu stderr vor diesem Punkt. Erfassen Sie beide Streams mit `--log-file`, was auch `self-hosted-runner doctor` ermöglicht, sie zu tailing, oder mit Ihrer Plattform's Log-Sammlung. Jeder Sitzungs-Kind-Prozess schreibt ein separates Debug-Log. Bei Fehler bewahrt der Runner das Log, druckt den Log's Pfad im Runner-Log und zeigt das Log's Tail neben der Sitzung in claude.ai/code.

534 

535<h2 id="what’s-next">

536 Was kommt als nächstes

537</h2>

538 

539* [Passen Sie Sitzungen an](/docs/de/self-hosted-environments-configuration): Wrapper-Skripte, Lebenszyklus-Hooks, On-Demand-Runner, MCP-Server und Berechtigungen

540* [Testen Sie End-to-End](/docs/de/self-hosted-environments-testing): Überprüfen Sie ein neues Runner-Image von CI, bevor Sie es fördern

541* [Referenz](/docs/de/self-hosted-environments-reference): Jedes CLI-Flag, jede Umgebungsvariable und jede Metrik

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Sitzungsidentität in selbstgehosteten Umgebungen überprüfen

6 

7> Überprüfen Sie das CLAUDE_CODE_SESSION_ACCESS_TOKEN JWT, damit Dienste in Ihrem Netzwerk Anfragen von Sitzungen in Ihrer selbstgehosteten Umgebung vertrauen können.

8 

9<Note>

10 Selbstgehostete Umgebungen befinden sich in der öffentlichen Beta für Team- und Enterprise-Pläne; ein [Owner](/docs/de/cloud-environments#organization-shared-environments) aktiviert sie, indem er **Selbstgehostete Umgebungen zulassen** auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments) einschaltet. Diese Seite behandelt die Überprüfung der Sitzungsidentität; siehe den [Schnellstart](/docs/de/self-hosted-environments-quickstart) für die Einrichtung und [In Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) für die Fleet-Rezepte.

11</Note>

12 

13Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) ermöglicht es [Claude Code im Web](/docs/de/claude-code-on-the-web)-Sitzungen, auf einer Infrastruktur zu laufen, die Sie betreiben, anstatt auf der von Anthropic. Da die Sitzung in Ihrem Netzwerk läuft, kann Claude Ihre internen Dienste direkt aufrufen. Diese Dienste benötigen eine Möglichkeit zu bestätigen, dass eine Anfrage von einer Claude Code-Sitzung in Ihrer Umgebung stammt, und um die Benutzer- oder Dienstidentität zu identifizieren, die diese Sitzung erstellt hat.

14 

15Jede Sitzung in einer selbstgehosteten Umgebung erhält ein signiertes JSON Web Token (JWT) in der Umgebungsvariablen `CLAUDE_CODE_SESSION_ACCESS_TOKEN`. Eine Sitzung präsentiert das Token wie jede Bearer-Anmeldeinformation; beispielsweise kann ein Skript, das Claude ausführt, Ihren Dienst mit `curl -H "Authorization: Bearer $CLAUDE_CODE_SESSION_ACCESS_TOKEN"` aufrufen. Anthropic signiert das Token und veröffentlicht die Überprüfungsschlüssel an einem öffentlichen JWKS-Endpunkt. Ihre Dienste rufen diese Schlüssel ab, überprüfen die Signatur und lesen die Claims, um zu entscheiden, welchen Zugriff sie gewähren.

16 

17<h2 id="the-session-token">

18 Das Sitzungstoken

19</h2>

20 

21Bevor Sie Überprüfungscode schreiben, wissen Sie, was das Token etabliert und welche Form Ihre JWT-Bibliothek sehen wird.

22 

23<h3 id="what-the-token-proves">

24 Was das Token beweist

25</h3>

26 

27Ein gültiges Token etabliert einige Fakten und bewusst nicht andere:

28 

29* **Beweist**: Anthropic hat das Token für eine bestimmte Sitzung in einer bestimmten Umgebung ausgestellt und wie die Sitzung erstellt wurde: von einem Benutzer in Ihrer Organisation oder von der Dienstidentität Ihrer Organisation, was der Weg ist, wie [Claude Tag-Kanalsitzungen](https://claude.com/docs/claude-tag/concepts/agent-identity) starten

30* **Beweist nicht**: welcher Prozess auf dem Runner-Host es präsentiert. Das Token sitzt in einer Umgebungsvariablen innerhalb der Sitzung, daher kann jeder Code, den Claude ausführt, und jedes Tool oder MCP-Server, das die Sitzung startet, es lesen und präsentieren.

31 

32Zwei Konsequenzen für Ihre Dienste:

33 

34* Überprüfen Sie den `aud`-Claim gegen Ihre Umgebungs-ID, den `ccpool_...`-Wert, der mit Ihrer Umgebung auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments) angezeigt wird, um Tokens abzulehnen, die für die Umgebung einer anderen Organisation ausgestellt wurden.

35* Beschränken Sie Anmeldeinformationen, die Sie vom Token ableiten, auf das, was eine einzelne Codierungssitzung tun sollte, nicht auf alles, was der Ersteller der Sitzung tun kann. Siehe [Abgeleitete Anmeldeinformationen beschränken](#scope-derived-credentials).

36 

37<h3 id="token-format">

38 Token-Format

39</h3>

40 

41Der Wert von `CLAUDE_CODE_SESSION_ACCESS_TOKEN` hat ein `sk-ant-cc-`-Präfix gefolgt von einem Standard-JWT mit drei Teilen:

42 

43```text theme={null}

44sk-ant-cc-<base64url header>.<base64url payload>.<base64url signature>

45```

46 

47Entfernen Sie das Präfix, bevor Sie den Wert an eine JWT-Bibliothek übergeben. Tokens, die für von Anthropic gehostete Cloud-Sitzungen ausgestellt werden, tragen stattdessen ein `sk-ant-si-`-Präfix und werden von einem anderen Schlüsselsatz signiert, daher lehnen Sie jeden Wert ab, der nicht mit `sk-ant-cc-` beginnt.

48 

49Der Signaturalgorithmus ist `ES256`, das ist ECDSA auf der P-256-Kurve mit SHA-256. Der Token-Header trägt einen `kid`, der identifiziert, welcher Schlüssel im JWKS ihn signiert hat.

50 

51<h2 id="verify-the-token">

52 Token verifizieren

53</h2>

54 

55Die Verifizierung läuft an einem von zwei Orten ab. Dienste in Ihrem Netzwerk verifizieren den Token kryptografisch gegen die veröffentlichten Schlüssel von Anthropic, und Wrapper-Skripte innerhalb der Sitzung können stattdessen den integrierten Decoder des Runner-Binärs verwenden.

56 

57<h3 id="verify-the-token-from-your-service">

58 Token von Ihrem Dienst verifizieren

59</h3>

60 

61Anthropic veröffentlicht die Verifizierungsschlüssel an einem öffentlichen, nicht authentifizierten Endpunkt:

62 

63```text theme={null}

64https://api.anthropic.com/v1/code/.well-known/jwks.json

65```

66 

67Die Antwort ist ein Standard-[JSON Web Key Set](https://www.rfc-editor.org/rfc/rfc7517). Anthropic rotiert die Signaturschlüssel regelmäßig, und Schlüssel von vor einer Rotation bleiben in der Menge lange genug erhalten, damit die von ihnen signierten Tokens weiterhin verifiziert werden. Heften Sie daher keinen einzelnen Schlüssel fest. Der Endpunkt setzt `Cache-Control: public, max-age=300`, daher ist es sicher, die Schlüsselmenge zu cachen und alle fünf Minuten erneut abzurufen.

68 

69Verifizieren Sie jeden eingehenden Token gegen diese Prüfungen:

70 

71<Steps>

72 <Step title="Präfix prüfen">

73 Lehnen Sie den Wert ab, wenn er nicht mit `sk-ant-cc-` beginnt, und entfernen Sie dann dieses Präfix. Der Rest ist ein Standard-Compact-JWT.

74 </Step>

75 

76 <Step title="Signatur verifizieren">

77 Rufen Sie die JWKS ab, wählen Sie den Schlüssel aus, dessen `kid` dem Token-Header entspricht, und verifizieren Sie die `ES256`-Signatur. Lehnen Sie Tokens ab, deren `alg`-Header nicht `ES256` ist. Wenn ein Token mit einer `kid` ankommt, die sich nicht in Ihrem gecachten Schlüsselsatz befindet, rufen Sie die JWKS einmal ab, bevor Sie ihn ablehnen: Nach einer Rotation werden neue Tokens mit einem Schlüssel signiert, den Ihr gecachter Satz noch nicht hat.

78 </Step>

79 

80 <Step title="Aussteller verifizieren">

81 Lehnen Sie den Token ab, wenn `iss` nicht genau `ccr` ist.

82 </Step>

83 

84 <Step title="Zielgruppe gegen Ihre Umgebung verifizieren">

85 Der `aud`-Anspruch ist ein Array. Lehnen Sie den Token ab, es sei denn, er enthält Ihre Umgebungs-ID, die die Form `ccpool_...` hat. Die Umgebungs-ID wird im Detaildialog Ihrer Umgebung auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments) angezeigt und erscheint als `ccr:pool_id`-Anspruch in jedem der Sitzungs-Tokens der Umgebung. Diese Prüfung ist das, was den Token auf Ihre Umgebung beschränkt und Tokens ablehnt, die für andere Organisationen ausgestellt wurden.

86 </Step>

87 

88 <Step title="Rolle verifizieren">

89 Lehnen Sie den Token ab, wenn `ccr:role` nicht genau `session_worker` ist. Andere Tokens, die für selbstgehostete Umgebungen ausgestellt werden, wie Umgebungsgeheimnisse, Runner-Tokens und Arbeitsaufträge, werden vom gleichen Schlüsselsatz signiert, tragen aber unterschiedliche Rollen.

90 </Step>

91 

92 <Step title="Ablauf verifizieren">

93 Lehnen Sie den Token ab, wenn `exp` in der Vergangenheit liegt. Anthropic stellt Sitzungs-Tokens standardmäßig mit einer Lebensdauer von vier Stunden und maximal acht Stunden aus. Der Runner aktualisiert den Token vor Ablauf und überträgt den neuen Wert an die Sitzung, daher erben Unterprozesse, die Claude nach einer Aktualisierung startet, ihn. Eine Sitzung kann daher über ihre Lebensdauer hinweg mehrere unterschiedliche gültige Tokens für Ihren Dienst präsentieren.

94 </Step>

95 

96 <Step title="Identität lesen">

97 Die Identität des erstellenden Benutzers befindet sich im `act`-Anspruch: `act.sub` ist seine Anthropic-Benutzer-ID in der präfixierten Form `user:<id>`, und `act.email`, wenn die erstellende Oberfläche eine aufgezeichnet hat, ist seine E-Mail-Adresse. Sitzungen, die die Service-Identität Ihrer Organisation erstellt, einschließlich Claude-Tag-Kanalsitzungen, tragen stattdessen einen `agent:`-Betreff, daher behandeln Sie eine Sitzung nur als vom Benutzer erstellt, wenn `act.sub` das `user:`-Präfix trägt, anstatt zu testen, ob Identitätsansprüche fehlen. Siehe die [Anspruchsreferenz](#claims-reference) für die vollständige Struktur und die flachen doppelten Ansprüche.

98 </Step>

99</Steps>

100 

101Die Prüfungen werden direkt auf Standard-JWT-Bibliotheken abgebildet. Die folgenden Beispiele implementieren die vollständige Sequenz in Node.js mit [`jose`](https://www.npmjs.com/package/jose), das JWKS-Abruf, Caching und `kid`-Auswahl handhabt, und in Python mit [`PyJWT`](https://pyjwt.readthedocs.io/) und seinem integrierten JWKS-Client.

102 

103<Tabs>

104 <Tab title="Node.js (jose)">

105 ```typescript theme={null}

106 import { createRemoteJWKSet, jwtVerify } from "jose";

107 

108 const JWKS = createRemoteJWKSet(

109 new URL("https://api.anthropic.com/v1/code/.well-known/jwks.json")

110 );

111 

112 const PREFIX = "sk-ant-cc-";

113 const EXPECTED_POOL_ID = "ccpool_...";

114 

115 export async function verifySessionToken(raw: string) {

116 if (!raw.startsWith(PREFIX)) {

117 throw new Error("not a self-hosted runner session token");

118 }

119 const jwt = raw.slice(PREFIX.length);

120 

121 const { payload } = await jwtVerify(jwt, JWKS, {

122 issuer: "ccr",

123 audience: EXPECTED_POOL_ID,

124 algorithms: ["ES256"],

125 });

126 

127 if (payload["ccr:role"] !== "session_worker") {

128 throw new Error("token is not a session_worker token");

129 }

130 

131 const act = payload.act as { email?: string; sub?: string };

132 return {

133 sessionId: payload["ccr:session_id"] as string,

134 poolId: payload["ccr:pool_id"] as string,

135 orgId: payload["ccr:org_id"] as string,

136 creatorEmail: act?.email,

137 creatorSub: act?.sub,

138 };

139 }

140 ```

141 </Tab>

142 

143 <Tab title="Python (PyJWT)">

144 ```python theme={null}

145 import jwt

146 from jwt import PyJWKClient

147 

148 JWKS_URL = "https://api.anthropic.com/v1/code/.well-known/jwks.json"

149 PREFIX = "sk-ant-cc-"

150 EXPECTED_POOL_ID = "ccpool_..."

151 

152 jwks = PyJWKClient(JWKS_URL)

153 

154 

155 def verify_session_token(raw: str) -> dict:

156 if not raw.startswith(PREFIX):

157 raise ValueError("not a self-hosted runner session token")

158 token = raw.removeprefix(PREFIX)

159 

160 signing_key = jwks.get_signing_key_from_jwt(token)

161 payload = jwt.decode(

162 token,

163 signing_key.key,

164 algorithms=["ES256"],

165 issuer="ccr",

166 audience=EXPECTED_POOL_ID,

167 )

168 

169 if payload.get("ccr:role") != "session_worker":

170 raise ValueError("token is not a session_worker token")

171 

172 act = payload.get("act") or {}

173 return {

174 "session_id": payload["ccr:session_id"],

175 "pool_id": payload["ccr:pool_id"],

176 "org_id": payload["ccr:org_id"],

177 "creator_email": act.get("email"),

178 "creator_sub": act.get("sub"),

179 }

180 ```

181 </Tab>

182</Tabs>

183 

184<h3 id="verify-the-token-inside-the-session">

185 Token innerhalb der Sitzung verifizieren

186</h3>

187 

188[Wrapper-Skripte](/docs/de/self-hosted-environments-configuration#wrapper-scripts) laufen innerhalb der Sitzung, bevor Claude startet. Anstatt eine JWT-Bibliothek aufzurufen, können sie den Unterbefehl `self-hosted-runner decode-token` des Runner-Binärs ausführen. Der Unterbefehl liest den Token aus einem Positionsargument, aus `CLAUDE_CODE_SESSION_ACCESS_TOKEN` oder aus gepiptem stdin, in dieser Reihenfolge, entfernt dann das Präfix, verifiziert die Signatur gegen den JWKS-Endpunkt, prüft den Ablauf und gibt die Ansprüche als JSON aus. Der Unterbefehl führt nur die Signatur- und Ablaufprüfungen durch; er prüft nicht `iss`, `aud` oder `ccr:role`. Wenn die Authentifizierungsentscheidung Ihres Wrappers von diesen Ansprüchen abhängt, lesen Sie sie aus dem gedruckten JSON und vergleichen Sie sie explizit.

189 

190Dieser Befehl extrahiert die Ersteller-Identität und bevorzugt dabei den Betreff des SSO-Anbieters, dann die E-Mail-Adresse, dann den `act.sub`-Betreff des Erstellers, `user:<id>` oder `agent:<id>`:

191 

192```bash theme={null}

193"$CLAUDE_RUNNER_CLAUDE_BIN" self-hosted-runner decode-token | jq -re '.act.attested_by.sub // .act.email // .act.sub'

194```

195 

196Wrapper erhalten den absoluten Pfad zum Binär des Runners selbst in `CLAUDE_RUNNER_CLAUDE_BIN`; verwenden Sie diesen Pfad anstelle eines PATH-aufgelösten `claude`, damit die Dekodierung auf dem gleichen Binär läuft, das der Runner selbst verwendet.

197 

198Verwenden Sie `jq -re` anstelle von `jq -r`, damit ein fehlender Anspruch einen Exit-Code ungleich Null verursacht. Mit nur `-r` gibt ein fehlender Anspruch die Literalzeichenkette `null` aus und beendet mit Null, was einen schlechten Wert stillschweigend nachgelagert übergibt. Übergeben Sie `--no-verify` an `decode-token` nur zur Offline-Inspektion, wenn der JWKS-Endpunkt nicht erreichbar ist.

199 

200<h2 id="claims-reference">

201 Claims-Referenz

202</h2>

203 

204Die folgende Tabelle listet die Sitzungs-Token-Claims auf, die für die Überprüfung relevant sind. Lesen Sie die Identität aus dem `ccr:*`-Namespace und der `act`-Kette; die flachen `account_email`-, `organization_uuid`- und `account_uuid`-Claims sind Rückwärtskompatibilitätsduplikate, die möglicherweise entfernt werden. Sitzungen, die die Dienstidentität Ihrer Organisation erstellt, einschließlich Claude Tag-Kanalsitzungen, tragen einen `agent:`-Betreff in `act.sub` und lassen `act.email`, `ccr:account_id`, `account_email` und `account_uuid` weg. Die beiden E-Mail-Claims sind auch für vom Benutzer erstellte Sitzungen optional: Anthropic zeichnet sie bei der Sitzungserstellung nur auf, wenn die Anmeldeinformationen der erstellenden Anfrage eine E-Mail tragen, und eine Sitzung, die von der CLI versendet wird, kann beide fehlen, daher basieren Sie die Identität auf `act.sub` oder `ccr:account_id` anstelle von E-Mail. Tokens können auch zusätzliche Claims über diese Tabelle hinaus tragen; ignorieren Sie Claims, die Sie nicht erkennen.

205 

206| Claim | Typ | Beschreibung |

207| :------------------ | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

208| `iss` | string | Immer `ccr`. |

209| `sub` | string | `ccr:session:<session_id>`. |

210| `aud` | Array von Strings | Enthält immer `anthropic-api`. Für Sitzungen in selbstgehosteten Umgebungen enthält das Array auch Ihre Umgebungs-ID, wie `ccpool_...`. Überprüfen Sie die Umgebungs-ID, nicht `anthropic-api`. |

211| `exp` | number | Ablauf als Unix-Zeitstempel. Vier-Stunden-Standard-Lebensdauer, acht-Stunden-Maximum. |

212| `iat` | number | Ausgestellt-bei als Unix-Zeitstempel. |

213| `jti` | string | Eindeutige Token-ID. |

214| `ccr:role` | string | Immer `session_worker` für Sitzungs-Tokens. |

215| `ccr:session_id` | string | Die Sitzungs-ID. Gleicher Wert wie das Suffix von `sub`. |

216| `ccr:pool_id` | string | Ihre Umgebungs-ID. Gleicher Wert, der in `aud` erscheint. |

217| `ccr:org_id` | string | Ihre Anthropic-Organisations-ID. |

218| `ccr:account_id` | string | Die Anthropic-Konto-ID des erstellenden Benutzers: der Wert von `act.sub` ohne das `user:`-Präfix, eine getaggte `user_...`-ID. Der gleiche Wert, den die `CLAUDE_RUNNER_ACCOUNT_ID` des [spawn-runner-Hooks](/docs/de/self-hosted-environments-configuration#the-spawn-runner-hook) trägt und [`--lock-to-account`](/docs/de/self-hosted-environments-reference#runner-cli-flags) akzeptiert, daher vergleichen sich die drei als gleiche Strings. |

219| `account_email` | string | Duplikat von `act.email`; fehlt, wenn `act.email` fehlt. |

220| `organization_uuid` | string | Ihre Anthropic-Organisations-UUID. |

221| `account_uuid` | string | Die Anthropic-Konto-UUID des erstellenden Benutzers. |

222| `act` | object | [RFC 8693](https://www.rfc-editor.org/rfc/rfc8693) Delegationskette. Siehe [Die `act`-Kette](#the-act-chain). |

223 

224<h3 id="the-act-chain">

225 Die `act`-Kette

226</h3>

227 

228Der `act`-Claim zeichnet den vollständigen Delegationspfad von der Benutzer- oder Dienstidentität, die die Sitzung erstellt hat, bis zur [Umgebung](/docs/de/self-hosted-environments#key-concepts), deren Geheimnis den Runner zugelassen hat, und die Identität, die dieses Geheimnis erstellt hat, auf. Der Ersteller ist der äußerste Akteur, daher identifiziert `act.sub` ihn direkt.

229 

230| Pfad | Beschreibung |

231| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

232| `act.sub` | Die Anthropic-Benutzer-ID des erstellenden Benutzers in der Form `user:<id>` oder `agent:<id>`, wenn die Dienstidentität Ihrer Organisation die Sitzung erstellt hat, wie sie es für Claude Tag-Kanalsitzungen tut. |

233| `act.email` | Die E-Mail-Adresse des erstellenden Benutzers, wenn eine bei der Sitzungserstellung aufgezeichnet wurde. Verlangen Sie sie nicht; basieren Sie auf `act.sub`. |

234| `act.attested_by` | Die Attestation des Upstream-Identitätsanbieters für den erstellenden Benutzer, wenn verfügbar. `act.attested_by.sub` ist der Betreff, den Ihr SSO-Anbieter, wie Google oder Okta, ausgestellt hat. Bevorzugen Sie dies gegenüber `act.email`, wenn Sie Identitäten in Ihren eigenen Systemen zuordnen. |

235| `act.act` | Der Runner, der die Sitzung gespawnt hat. `act.act.sub` ist `ccr:runner:<runner_id>`. |

236| `act.act.act` | Die Umgebung. `act.act.act.sub` ist `ccr:pool:<pool_id>`. |

237| `act.act.act.act` | Die Identität, die das Umgebungsgeheimnis erstellt hat, mit dem sich der Runner registriert hat. Die Kette endet hier. |

238 

239<h2 id="scope-derived-credentials">

240 Abgeleitete Anmeldeinformationen beschränken

241</h2>

242 

243Das Sitzungs-Token identifiziert die Benutzer- oder Dienstidentität, die die Sitzung erstellt hat, aber behandeln Sie es nicht als gleichwertig mit diesem Ersteller, der sich direkt anmeldet. Das Token sitzt in einer Umgebungsvariablen innerhalb der Sitzung, daher kann jeder Code, den Claude ausführt, und jedes Tool oder MCP-Server, das die Sitzung startet, es lesen und präsentieren.

244 

245Die Überprüfung ist auch offline: Ein Token, das gegen das JWKS überprüft wird, bleibt gültig bis zu seinem `exp`, was auch immer mit der Sitzung seitdem passiert ist, und Anthropic veröffentlicht keinen Widerrufsfeed für Sitzungs-Tokens. Binden Sie alles, das Sie vom Token ableiten, entsprechend.

246 

247Wenn Ihr Dienst das Token gegen interne Anmeldeinformationen austauscht, geben Sie Anmeldeinformationen aus, die auf das beschränkt sind, was eine Codierungssitzung erreichen sollte:

248 

249* **Fähigkeiten begrenzen**: Gewähren Sie Lese- und Schreibzugriff auf die Ressourcen, die die Sitzung für Codierungsaufgaben benötigt, nicht auf administrative Fähigkeiten, die der Ersteller anderswo hält.

250* **Lebensdauer begrenzen**: Binden Sie abgeleitete Anmeldeinformationen an das `exp` des Tokens oder kürzer.

251* **Audit als Sitzung**: Zeichnen Sie die `ccr:session_id` und `jti` neben der Ersteller-Identität auf, damit Sie Aktionen auf eine bestimmte Sitzung zurückverfolgen können.

252 

253<h2 id="related-environment-variables">

254 Zugehörige Umgebungsvariablen

255</h2>

256 

257Die Ersteller-Identität erscheint auch in einfachen Umgebungsvariablen auf zwei Oberflächen, die das Token niemals überprüfen:

258 

259* **Der [`spawn-runner`-Hook](/docs/de/self-hosted-environments-configuration#the-spawn-runner-hook), auf dem Orchestrator**: Der Hook läuft, bevor ein Runner für eine warteschlangige Sitzung existiert, und erhält die Ersteller-Identität in Variablen wie `CLAUDE_RUNNER_ACCOUNT_EMAIL` und `CLAUDE_RUNNER_ACCOUNT_ID`. Der Orchestrator liest sie aus dem Arbeitsauftrag, dem signierten Einmal-Token, das das Spawnen eines Runners autorisiert, ohne die Signatur des Arbeitsauftrags selbst zu überprüfen; die Claims werden vertraut, weil der Arbeitsauftrag über die Verbindung des Orchestrators zu Anthropic ankommt, die das Umgebungsgeheimnis authentifiziert.

260* **[Wrapper-Skripte](/docs/de/self-hosted-environments-configuration#wrapper-scripts), innerhalb der Sitzung**: Wrapper erhalten `CCR_SESSION_ACCOUNT_EMAIL`, die E-Mail-Adresse des Erstellers, die ohne Signaturüberprüfung aus dem Token vorextrahiert wurde. Die Variable ist für Beschriftungen geeignet, wie Commit-Trailer, nicht für Auth-Entscheidungen.

261 

262Verwenden Sie die einfachen Variablen für Orchestrator-seitige Entscheidungen wie die Auswahl eines Maschinenabbilds. Verwenden Sie `CLAUDE_CODE_SESSION_ACCESS_TOKEN`, wenn ein nachgelagerter Dienst unabhängigen kryptographischen Beweis benötigt, anstatt dem Runner-Umfeld zu vertrauen.

263 

264<h2 id="what’s-next">

265 Nächste Schritte

266</h2>

267 

268* [Selbstgehostete Umgebungen](/docs/de/self-hosted-environments): die Umgebung, den Runner und das Sitzungsmodell; der [Schnellstart](/docs/de/self-hosted-environments-quickstart) und [In Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) enthalten Einrichtung und Betrieb

269* [Sitzungen anpassen](/docs/de/self-hosted-environments-configuration): Wrapper-Skripte, die das Token verbrauchen, und der `spawn-runner`-Hook

270* [Referenz](/docs/de/self-hosted-environments-reference): CLI-Flags, Umgebungsvariablen und Metriken

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Schnellstart für selbstgehostete Umgebungen

6 

7> Richten Sie Ihre erste selbstgehostete Umgebung ein: Installieren Sie Claude Code, erstellen Sie die Umgebung, starten Sie einen Runner und leiten Sie eine Sitzung dorthin weiter.

8 

9<Note>

10 Selbstgehostete Umgebungen befinden sich in der öffentlichen Beta für Team- und Enterprise-Pläne; [Verfügbarkeit und Einschränkungen](/docs/de/self-hosted-environments#availability-and-limitations) behandelt den Aktivierungspfad. Diese Seite bringt Ihre erste Sitzung zum Laufen; siehe [Selbstgehostete Umgebungen](/docs/de/self-hosted-environments) für deren Funktionsweise und [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy) für Härtung und Fleet-Rezepte.

11</Note>

12 

13Eine [selbstgehostete Umgebung](/docs/de/self-hosted-environments) führt Claude Code [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf einer Infrastruktur aus, die Ihre Organisation betreibt, ausgeführt durch Runner-Prozesse, die Sie bereitstellen. Dieser Schnellstart richtet Ihre erste ein, die kleinste, die funktioniert: ein Runner auf einem einzelnen Host, der eine Test-Sitzung ausführt. Es gibt zwei Schritte: [erstellen Sie die Umgebung, starten Sie einen Runner und leiten Sie eine Sitzung dorthin weiter](#set-up-an-environment-and-runner), dann [senden Sie eine Nachricht an diese Sitzung von Ihrem Terminal](#send-a-follow-up-message-to-a-running-session). Sie werden zwischen zwei Oberflächen wechseln: claude.ai zum Erstellen der Umgebung, Überprüfen ihres Status und Weiterleiten einer Sitzung, und ein Terminal auf dem Host für alles, was der Runner tut.

14 

15Am Ende haben Sie eine Umgebung auf der [**Cloud-Umgebungen** Admin-Seite](https://claude.ai/admin-settings/cloud-environments), einen Runner, der auf Arbeit wartet, und eine Sitzung, die auf Ihrem Host läuft. Bevor Sie echte Repositories oder interne Systeme verbinden, arbeiten Sie [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy) durch, die die Sicherheitslage, Egress-Kontrolle, Git-Anmeldedaten und Orchestrierung behandelt.

16 

17<h2 id="prerequisites">

18 Voraussetzungen

19</h2>

20 

21<h3 id="organization-and-roles">

22 Organisation und Rollen

23</h3>

24 

25Die claude.ai-Seite benötigt:

26 

27* **Selbstgehostete Umgebungen zulassen** aktiviert durch einen [Owner](/docs/de/cloud-environments#organization-shared-environments) auf der [**Cloud-Umgebungen** Admin-Seite](https://claude.ai/admin-settings/cloud-environments); die Schaltfläche **Neu** wird erst angezeigt, wenn dies der Fall ist. Wenn Sie diese Rolle nicht haben, kann jemand, der sie hat, die Umgebung erstellen und Ihnen ihr Geheimnis übergeben; die Runner- und Terminal-Schritte auf dieser Seite benötigen keine claude.ai-Rolle, und wo ein Schritt den Status in der Admin-Benutzeroberfläche überprüft, geben Ihnen die eigenen Protokollzeilen des Runners das gleiche Signal.

28* Eine [GitHub-Verbindung](/docs/de/claude-code-on-the-web#github-authentication-options) für Ihre Organisation, damit Entwickler Repositories auswählen können, wenn sie Sitzungen starten.

29 

30<h3 id="host-and-network">

31 Host und Netzwerk

32</h3>

33 

34Der Runner-Host benötigt:

35 

36* Einen Linux- oder macOS-Host oder Container mit ausgehendem HTTPS zu `api.anthropic.com`, zu `claude.ai` und den Download-Hosts, auf die es für den Installationsschritt unten umleitet, und zu Ihrem Git-Host für den Klon; die [Netzwerkanforderungstabelle](/docs/de/self-hosted-environments-deploy#network-requirements) hat die vollständige Liste. Windows wird nicht als Runner-Host unterstützt; führen Sie den Runner stattdessen in einem Linux-Container aus. Entwickler-Workstations sind nicht betroffen, da Sitzungen von claude.ai in einem Browser aus gestartet werden.

37* Eine Uhr, die mit der Realzeit synchronisiert ist, beispielsweise mit NTP. Die Authentifizierung schlägt fehl, wenn die Uhr um mehr als fünf Minuten abweicht; siehe [Troubleshooting](/docs/de/self-hosted-environments-deploy#troubleshooting).

38 

39<h3 id="software-on-the-runner-host">

40 Software auf dem Runner-Host

41</h3>

42 

43Installieren Sie auf dem Host, bevor Sie beginnen:

44 

45* **Claude Code v2.1.224 oder später**, mit einer der [Standard-Installationsmethoden](/docs/de/setup). Der Runner ist Teil der Standard-`claude`-Binärdatei, und frühere Versionen erkennen den `self-hosted-runner`-Unterbefehl nicht. Der native Installer's Standard-`latest`-Kanal trägt jede Version, sobald sie veröffentlicht wird; der `stable`-Kanal, das Homebrew `claude-code`-Cask und die stabilen apt-, dnf- und apk-Repositories liegen etwa eine Woche hinterher. Um die genaue Version zu fixieren, die Ihre Fleet ausführt, siehe [Installieren Sie eine bestimmte Version](/docs/de/setup#install-a-specific-version). Für Container-Images siehe die Dockerfile in [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy#build-the-runner-image).

46* **Git 2.24 oder neuer**. Einige Git-Optionen auf der Deploy-Seite benötigen neuere Versionen; [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git) gibt jede Untergrenze an.

47 

48Bestätigen Sie, dass der Host bereit ist:

49 

50```bash theme={null}

51claude self-hosted-runner --help

52```

53 

54Ein bereiter Host gibt den Verwendungstext des Runners aus und listet Flags wie `--environment-secret-file` auf. Bei Versionen älter als 2.1.224 gibt der Befehl stattdessen die allgemeine `claude --help`-Ausgabe aus; aktualisieren Sie mit `claude update` oder installieren Sie neu vom `latest`-Kanal.

55 

56<h2 id="set-up-an-environment-and-runner">

57 Richten Sie eine Umgebung und einen Runner ein

58</h2>

59 

60Claude Code enthält ein geführtes Setup: eine interaktive Claude Code-Sitzung, die Sie durch das Erstellen der Umgebung in der Admin-Benutzeroberfläche führt, einen lokalen Runner mit der Geheimnis-Datei startet, die Sie speichern, bestätigt, dass sich der Runner registriert, und ein Spickzettel zu `./runner-setup/CHEAT-SHEET.md` schreibt. Führen Sie es auf einem Computer aus, auf dem Sie sich mit `claude auth login` mit einem Konto angemeldet haben, das eine Owner-Rolle hat; es ist nicht mit API-Schlüsseln oder Drittanbieter-Modellanbietern verfügbar. Auf Hosts, wo eine interaktive Sitzung nicht möglich ist, verwenden Sie stattdessen die manuellen Schritte unten. Bestätigen Sie zuerst, dass die [Versionsüberprüfung](#software-on-the-runner-host) bestanden wurde: Bei Versionen älter als 2.1.224 startet dieser Befehl eine gewöhnliche Claude-Sitzung mit den Wörtern als Eingabeaufforderung statt des geführten Setups. Um das geführte Setup zu starten, führen Sie den Setup-Unterbefehl aus und folgen Sie den Eingabeaufforderungen:

61 

62```bash theme={null}

63claude self-hosted-runner setup

64```

65 

66Um stattdessen manuell einzurichten:

67 

68<Steps>

69 <Step title="Erstellen Sie eine Umgebung">

70 Gehen Sie zur [**Cloud-Umgebungen** Seite](https://claude.ai/admin-settings/cloud-environments) in den Admin-Einstellungen. Wählen Sie unter **Selbstgehostete Umgebungen** die Option **Neu**, benennen Sie die Umgebung und wählen Sie **Erstellen**. Wählen Sie im zweiten Schritt des Assistenten **Umgebungsschlüssel kopieren**, um das Umgebungsgeheimnis zu kopieren, das die Admin-Benutzeroberfläche als Umgebungsschlüssel bezeichnet. claude.ai zeigt das Geheimnis einmal an, und Sie können es später nicht abrufen; es läuft 365 Tage nach der Erstellung ab. Die `ccpool_...`-ID der Umgebung bleibt in ihrem Detaildialog sichtbar; Sie benötigen sie für die `aud`-Überprüfung in [Token-Verifizierung](/docs/de/self-hosted-environments-identity) und zum Versenden von [Test-Sitzungen aus CI](/docs/de/self-hosted-environments-testing#run-the-test-loop).

71 

72 Wenn Sie das Geheimnis verlieren oder es rotieren müssen, erstellen Sie ein neues Geheimnis auf der Registerkarte **Konfiguration** der Umgebung, rollen Sie das neue Geheimnis auf Ihren Runnern aus und widerrufen Sie dann das alte. Runner, die ein widerrufenes Geheimnis halten, schlagen ihre nächste authentifizierte Abfrage fehl und beenden sich, protokollieren `poll auth failed`, und Ihr Orchestrator startet sie mit dem neuen Geheimnis neu.

73 </Step>

74 

75 <Step title="Starten Sie einen Runner">

76 Erstellen Sie das Geheimnis-Verzeichnis. Dieser Schritt und der nächste benötigen Root für den `/etc/claude`-Pfad; jeder Pfad, den der Runner-Prozess lesen kann, funktioniert, also passen Sie beide Befehle und den `--environment-secret-file`-Wert zusammen an, wenn Sie einen anderen verwenden.

77 

78 ```bash theme={null}

79 mkdir -p /etc/claude

80 ```

81 

82 Schreiben Sie das Umgebungsgeheimnis in eine Datei. Der Befehl unten liest von Ihrem Terminal, damit das Geheimnis aus der Shell-Historie bleibt: Fügen Sie den Wert ein, den Sie kopiert haben, drücken Sie Enter, dann Strg-D, und die `umask` der Subshell macht die Datei nur für ihren Besitzer lesbar.

83 

84 ```bash theme={null}

85 (umask 077 && cat > /etc/claude/environment-secret)

86 ```

87 

88 Wählen Sie ein Basisverzeichnis und ersetzen Sie `<writable-dir>` im Runner-Befehl unten durch einen absoluten Pfad, in den der Runner schreiben oder erstellen kann. Der Runner erstellt das Verzeichnis beim Start, überprüft dann Repositories aus und erstellt Pro-Sitzungs-Verzeichnisse darunter. Ohne `--base-dir` verwendet er `/workspace`, was nur funktioniert, wenn dieses Verzeichnis bereits existiert und beschreibbar ist oder Sie den Runner als Root starten.

89 

90 Wenn der Runner nicht in den Pfad erstellen oder schreiben kann, beendet er sich beim Start mit einem Fehler, der das Verzeichnis benennt, statt sich zu registrieren. Siehe [Troubleshooting](/docs/de/self-hosted-environments-deploy#troubleshooting).

91 

92 Starten Sie dann den Runner mit `--environment-secret-file` und `--base-dir`. Der Runner registriert sich bei Ihrer Umgebung und beginnt, auf Arbeit zu warten. Wenn der Runner beendet wird, starten Sie ihn manuell neu. Produktionsbereitstellungen führen den Runner unter einem Orchestrator aus, der beendete Runner neu startet, normalerweise mit einem frischen Dateisystem pro Neustart; [Wiederverwendung eines vorgewärmten Checkouts](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) behandelt das unterstützte Persistent-Disk-Setup.

93 

94 ```bash theme={null}

95 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

96 ```

97 </Step>

98 

99 <Step title="Überprüfen Sie, ob der Runner angezeigt wird">

100 Kehren Sie zur [**Cloud-Umgebungen** Seite](https://claude.ai/admin-settings/cloud-environments) zurück. Der Status Ihrer Umgebung ändert sich innerhalb weniger Sekunden nach dem Start des Runners von **Keine Runner bereitgestellt** zu **Healthy**; öffnen Sie die Umgebung und wählen Sie **Aktivität**, um den Runner selbst zu sehen.

101 </Step>

102 

103 <Step title="Leiten Sie eine Sitzung zur Umgebung weiter">

104 Starten Sie eine Sitzung unter claude.ai/code und wählen Sie Ihre Umgebung aus dem Umgebungs-Picker, wo selbstgehostete Umgebungen neben von Anthropic gehosteten angezeigt werden. Der Runner klont mit den Git-Anmeldedaten, die der Host bereits hat, also wählen Sie ein Repository, das dieser Host bereits klonen kann, oder ein öffentliches; Anmeldedaten-Optionen für private Repositories in der Produktion befinden sich auf [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git). Der nächste verfügbare Runner nimmt die wartende Sitzung auf und protokolliert `Picked up session <session-id>` zusammen mit seiner aktiven Anzahl und Kapazität, damit Sie aus der eigenen Ausgabe des Runners bestätigen können, welcher Host die Sitzung übernahm. Beobachten Sie die Sitzungsarbeit und lesen Sie Claudes Antworten unter [claude.ai/code](https://claude.ai/code). Wenn die Sitzung stattdessen in der Warteschlange sitzt, siehe [Troubleshooting](/docs/de/self-hosted-environments-deploy#troubleshooting).

105 </Step>

106</Steps>

107 

108Der Runner beendet sich absichtlich, sobald seine aktiven Sitzungen beendet sind; siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle). Für die Produktion stellen Sie ihn unter einem Orchestrator bereit, der ihn beim Beenden neu startet. Siehe [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy).

109 

110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Senden Sie eine Nachricht an eine laufende Sitzung

112</h2>

113 

114Sobald eine Sitzung in Ihrer Umgebung läuft, senden Sie ihr eine Nachricht von der `claude` CLI auf einem beliebigen Computer, auf dem Sie sich mit `claude auth login` angemeldet haben; der Befehl muss nicht auf dem Computer ausgeführt werden, der die Sitzung gestartet hat. Der Befehl sendet eine Nachricht:

115 

116```bash theme={null}

117claude -p "your message" --cloud <session-id>

118```

119 

120Für `<session-id>` übergeben Sie die bloße `session_...` oder `cse_...`-ID oder die claude.ai/code-URL der Sitzung. Ein erfolgreicher Versand gibt `Sent to cloud session.` mit der Sitzungs-ID und einem Ansicht-Link aus. Akzeptierte ID-Formulare, JSON-Ausgabe, die Konto- und Richtlinienanforderungen und die Fehlerreferenz befinden sich auf [Senden Sie Nachfolgen von der CLI](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli), da der Befehl gleich gegen von Anthropic gehostete Sitzungen funktioniert.

121 

122<h2 id="what’s-next">

123 Was kommt als Nächstes

124</h2>

125 

126* [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy): Härtung der Bereitstellung, Kontrolle des Egress, Konfiguration von Git-Anmeldedaten und Ausführung der Fleet unter Kubernetes oder Compose

127* [Passen Sie Sitzungen an](/docs/de/self-hosted-environments-configuration): Wrapper-Skripte, Lifecycle-Hooks, On-Demand-Runner, MCP-Server und Berechtigungen

128* [Testen Sie End-to-End](/docs/de/self-hosted-environments-testing): ein CI-Smoke-Test, der eine Sitzung versendet und Claudes Antworten liest

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Referenz für selbstgehostete Umgebungen

6 

7> Vollständige Referenz für den selbstgehosteten Runner und Orchestrator: CLI-Flags, Umgebungsvariablen und Prometheus-Metriken.

8 

9<Note>

10 Selbstgehostete Umgebungen befinden sich in der öffentlichen Beta auf Team- und Enterprise-Plänen; ein [Inhaber](/docs/de/cloud-environments#organization-shared-environments) aktiviert sie, indem er **Selbstgehostete Umgebungen zulassen** auf der [**Cloud-Umgebungen** Admin-Seite](https://claude.ai/admin-settings/cloud-environments) einschaltet. Diese Seite ist die Flag- und Metrik-Referenz; siehe den [Schnellstart](/docs/de/self-hosted-environments-quickstart) für die Einrichtung und [In Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) für die Fleet-Rezepte.

11</Note>

12 

13Diese Seite ist die Referenz für die zwei Prozesse, die Sie in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) ausführen: der Runner, der Claude Code [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf Ihren Hosts ausführt, und der optionale Autoscaling-Orchestrator, der Runner startet, wenn Sitzungen in die Warteschlange eingereiht werden. Jeder hat seine eigene Flag-Tabelle. Beide laufen auf Linux- oder macOS-Hosts, wobei die Standardwerte wie `/workspace` und `~/.claude` angenommen werden. Führen Sie `claude self-hosted-runner --help` aus, um die autoritative Liste in Ihrer installierten Version zu erhalten.

14 

15Metrische Reihen und einige wenige API-Felder verwenden immer noch `pool` für das, was diese Seiten eine Umgebung nennen; beide Begriffe bezeichnen dasselbe. Die Umgebungs-ID ist das Feld `pool_id` mit der Form `ccpool_...`: Überall dort, wo diese Seiten einen `pool`-Bezeichner anzeigen, benennt er die Umgebung. CLI-Flags und Umgebungsvariablen schreiben es als `environment`, wie z. B. `--environment-secret-file`; die veralteten `pool`-Schreibweisen funktionieren immer noch, wie die Zeile [`--environment-secret-file`](#runner-cli-flags) beschreibt.

16 

17<h2 id="runner-cli-flags">

18 Runner-CLI-Flags

19</h2>

20 

21Die meisten Flags haben eine entsprechende Umgebungsvariable. Wenn beide gesetzt sind, hat das Flag Vorrang. Duration-Flags nehmen Minuten oder Sekunden in der CLI, aber die gepaarte Umgebungsvariable ist immer in Millisekunden, angezeigt durch das Suffix `_MS`, und die Spalte Standard zeigt die Einheit des Flags: `--exit-if-unused-min 10` entspricht `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS=600000`, und ein Helm-Wert wie `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS: "15"` bedeutet 15 Millisekunden, nicht die 15-Minuten-Standard.

22 

23| Flag | Env var | Standard | Beschreibung |

24| :---------------------------------------- | :------------------------------------------------ | :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

25| `--api-url <url>` | keine | `https://api.anthropic.com` | API-Basis-URL. Nur zum Testen überschreiben. |

26| `--base-dir <path>` | `SELF_HOSTED_RUNNER_BASE_DIR` | `/workspace`; keine unter Windows | Verzeichnis für Repository-Checkouts und pro-Sitzungs-Arbeitsverzeichnisse. Der Runner benötigt Schreibzugriff auf diesen Pfad oder sein übergeordnetes Verzeichnis. Der Runner erstellt das Verzeichnis beim Start und beendet sich mit `cannot create or write to base directory`, wenn er es nicht erstellen oder beschreiben kann. Vor v2.1.225 erstellte der Runner das Verzeichnis, wenn die erste Sitzung startete, sodass ein unbrauchbarer Pfad Sitzungen fehlschlagen ließ, anstatt beim Start zu fehlschlagen. Unter Windows, das kein unterstützter Runner-Host ist, gibt es keinen Standard: Der Runner beendet sich beim Start, es sei denn, Sie übergeben das Flag oder setzen die Variable. Verwenden Sie denselben Wert auf jedem Runner in einer Umgebung. Siehe [Halten Sie das Basisverzeichnis und die Kapazität auf allen Runnern identisch](/docs/de/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners). |

27| `--capacity <n>` | keine | `1` | Maximale gleichzeitige Sitzungen, die dieser Runner verarbeitet. Alle Sitzungen gehören demselben gesperrten [Owner](/docs/de/self-hosted-environments#key-concepts). Verwenden Sie denselben Wert auf jedem Runner in einer Umgebung; siehe [Halten Sie das Basisverzeichnis und die Kapazität auf allen Runnern identisch](/docs/de/self-hosted-environments-deploy#keep-the-base-directory-and-capacity-identical-across-runners). |

28| `--client-label <label>` | `SELF_HOSTED_RUNNER_CLIENT_LABEL` | der Hostname des Hosts | Beschriften Sie den Runner, den er beim Registrieren sendet. Der Runner meldet ihn auch als das Label `client_label` von [`claude_code_self_hosted_runner_info`](#prometheus-metrics). Erfordert Claude Code v2.1.248 oder später. |

29| `--configure-git` | `SELF_HOSTED_RUNNER_CONFIGURE_GIT=1` | aus | Beim Start globale Git-Identität schreiben, Anthropic-Commit-Signing aktivieren, Git-Push-Verhandlung einschalten und Commit-Hooks installieren, die einen `Co-authored-by:` Trailer anhängen. Push-Verhandlung erfordert Claude Code v2.1.257 oder später. Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git). |

30| `--confine-repo-settings <mode>` | `SELF_HOSTED_RUNNER_CONFINE_REPO_SETTINGS` | `warn` | Setzt den Modus des Schutzes, der eine Sitzung kennzeichnet, wenn die festgeschriebenen Einstellungen eines Repositorys versuchen, Schreib- oder Lesezugriff außerhalb des eigenen Arbeitsbereichs dieser Sitzung zu gewähren, Umgebungsvariablen zu setzen oder die Sandbox- oder Hooks-Haltung des Operators zu überschreiben, wie `sandbox.enabled: false` oder `disableAllHooks`. Der Standard `warn` protokolliert die Verletzung und startet die Sitzung trotzdem, `enforce` lehnt die Sitzung ab, und `off` deaktiviert den Scan. Siehe [Härten Sie Ihre Bereitstellung](/docs/de/self-hosted-environments-deploy#harden-your-deployment). |

31| `--debug-token-dir <path>` | `SELF_HOSTED_RUNNER_DEBUG_TOKEN_DIR` | nicht gesetzt | Schreiben Sie Live-Tokens zur Überprüfung auf die Festplatte. Nur zum Debuggen; nicht in der Produktion verwenden. |

32| `--defer-shutdown-max-min <n>` | `SELF_HOSTED_RUNNER_DEFER_SHUTDOWN_MAX_MS` | `0` | Beim ersten `SIGTERM` oder `SIGINT` bedienen Sie weiterhin die bereits angehängten Sitzungen, anstatt sie zu entleeren, und geben dann alles frei, das noch angehängt ist, N Minuten später und beenden sich. Erhöhen Sie das Stop-Timeout Ihres Hosts, bevor Sie dies setzen. Siehe [Verschieben Sie die Entleerung über das erste Signal hinaus](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal). `0` deaktiviert. Erfordert Claude Code v2.1.238 oder später. |

33| `--drain-grace-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_GRACE_MS` | `0` | Bis der Runner ein Shutdown-Signal empfängt oder seine Ruhestandszeit erreicht, steuert, wann der Runner beendet wird, nachdem seine aktiven Sitzungen beendet sind: `0` beendet sich sofort ohne Abfrage nach mehr, und ein positiver Wert hält den Runner am Leben und fragt die Warteschlange des gesperrten Owners N Sekunden lang erneut ab, auf Kosten der Pro-Sitzungs-Container-Isolation, die im [Härtungsabschnitt](/docs/de/self-hosted-environments-deploy#harden-your-deployment) beschrieben ist. Nach einem ersten Signal, das Sie mit [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) verschoben haben, beendet sich der Runner, sobald er keine Sitzungen mehr hält, unabhängig davon, was Sie hier setzen. |

34| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | Sobald die Entleerung beginnt, was bei `SIGTERM` der Fall ist, es sei denn, Sie setzen [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), warten Sie bis zu N Sekunden, damit die laufenden Aufgaben und Hintergrundaufgaben jeder Sitzung beendet werden, bevor Sie das Kind beenden. Während dieses Wartens zählt der Runner eine Hintergrundaufgabe, die gerade beendet wurde, als immer noch laufend, bis der Folgezug, der sein Ergebnis liest, beginnt, für höchstens das Fenster [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). |

35| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | erforderlich | Pfad zu einer Datei, die das Umgebungsgeheimnis enthält, oder für Runner, die vom [Orchestrator](/docs/de/self-hosted-environments-configuration#on-demand-runners) erzeugt werden, das einmalige Work-Order-JWT. `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` trägt den Geheimniswert direkt, nicht einen Dateipfad. Das ältere Flag `--pool-secret-file` und die Variable `SELF_HOSTED_RUNNER_POOL_SECRET` funktionieren immer noch und geben eine Veraltungswarnung auf stderr aus; Preview-Programm-Runner-Builds älter als 2.1.216 erkennen nur diese älteren Namen. |

36| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | eigene Binärdatei | Binärdatei oder Wrapper-Skript zum Erzeugen für jede Sitzung. Siehe [Wrapper-Skripte](/docs/de/self-hosted-environments-configuration#wrapper-scripts). |

37| `--exit-if-unused-min <n>` | `SELF_HOSTED_RUNNER_IDLE_SHUTDOWN_MS` | `0` | Beenden Sie sich nach N Minuten Abfrage ohne jemals zugewiesene Arbeit, für Autoscaler-Skalierung nach unten. `0` deaktiviert. |

38| `--git-host-rewrite <from>=<to>` | keine | nicht gesetzt | Schreiben Sie `https://<from>/...` Quell-URLs zu `https://<to>/...` um, bevor Sie klonen, für Split-Horizon-DNS. Wiederholbar; nur Flag. |

39| `--git-ssh-rewrite <host>` | keine | nicht gesetzt | Schreiben Sie `https://<host>/...` Quell-URLs zu `git@<host>:...` um, bevor Sie klonen, für SSH-only Git-Hosts. Wiederholbar; nur Flag. |

40| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Port für den `/healthz`- und `/metrics`-Listener. Setzen Sie `0`, um zu deaktivieren. |

41| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | nicht gesetzt | Verzeichnis von Lifecycle-Hook-Skripten. Siehe [Lifecycle-Hooks](/docs/de/self-hosted-environments-configuration#lifecycle-hooks). |

42| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Begrenzen Sie eine Sitzung auf N Minuten Wanduhr, als Sicherheitslimit für steckengebliebene Sitzungen. In v2.1.260 oder später gibt der Runner eine Sitzung frei, die das Limit erreicht, damit sie in der nächsten Nachricht des Benutzers fortgesetzt werden kann, und beendet sie nur, wenn sie sich noch auf dem Runner befindet, wenn das Gnadenfenster [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) endet. Vor v2.1.260 beendete der Runner die Sitzung beim Limit. Siehe [Einige Sitzungen zählen nicht als untätig](/docs/de/self-hosted-environments-deploy#some-sessions-don%E2%80%99t-count-as-idle) für die Details und wie Sie einen Wert wählen. `0` deaktiviert. |

43| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | nicht gesetzt | Sperren Sie den Runner beim Start vorab auf ein bestimmtes Konto, anstatt beim ersten Session zu sperren. Akzeptiert eine E-Mail-Adresse oder eine `user_...` ID in der Organisation der Umgebung. Ein vorgespannter Runner nimmt niemals Claude Tag-Kanal-Sitzungen auf, die kein Konto haben. |

44| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | nicht gesetzt | Spiegeln Sie Runner-Protokolle zusätzlich zu stdout und stderr in eine Datei, erstellt mit `0600`-Berechtigungen. Erforderlich für `self-hosted-runner doctor`, um Protokolle lokal zu verfolgen. |

45| `--log-level <level>` | keine | `info` | `info` oder `debug` |

46| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | Budget für den [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session) am Ende jeder Sitzung, einschließlich Runner-Shutdown |

47| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | nicht gesetzt | Shell-Befehl, den der Runner für jede Verbindung zu Ihrem Egress-Proxy ausführt, wobei seine gekürzte Standardausgabe als Wert des Headers `Proxy-Authorization` verwendet wird. Erfordert `HTTPS_PROXY` oder `HTTP_PROXY`, und kann nicht mit `--proxy-authorization-file` kombiniert werden. Siehe [Authentifizieren Sie sich bei einem Egress-Proxy](/docs/de/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Erfordert Claude Code v2.1.238 oder später. |

48| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | nicht gesetzt | Datei, die der Runner für jede Verbindung zu Ihrem Egress-Proxy liest, wobei ihr gekürzter Inhalt als Wert des Headers `Proxy-Authorization` verwendet wird. Verwenden Sie dieses Flag für ein Token, das ein anderer Prozess an Ort und Stelle rotiert. Trägt dieselben Anforderungen wie `--proxy-authorization-command` und kann nicht damit kombiniert werden. Siehe [Authentifizieren Sie sich bei einem Egress-Proxy](/docs/de/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Erfordert Claude Code v2.1.238 oder später. |

49| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | aus | Bei einem Runner-initiierten Session-Ende, wie einer Entleerung oder Idle-Freigabe, pushen Sie verfolgte Outcome-Branches zu `origin`, bevor Sie den Arbeitsbereich löschen, sodass laufende Commits einen Neustart überstehen. Best-Effort; fügt 30 Sekunden zum Shutdown-Budget hinzu und erfordert Git 2.29 oder neuer, um vom gepushten Branch fortzufahren. Beschränken Sie den Push-Zugriff auf `claude/*` Refs, bevor Sie dies aktivieren; siehe [Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit](/docs/de/self-hosted-environments-deploy#additional-limitations). Repositories, die über einen `checkout` Lifecycle-Hook ausgecheckt werden, werden nicht gepusht; erstellen Sie stattdessen Snapshots von diesen vom [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session). |

50| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Geben Sie einen Session-Slot nach N Minuten Inaktivität frei, sobald ein Zug beendet ist oder die Sitzung auf die Aktion des Benutzers wartet. Eine Sitzung, die sich noch mitten in einem Zug befindet, einschließlich einer, die eine nie endende Hintergrundaufgabe hält oder eine Genehmigung anfordert, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, zählt nicht als untätig; koppeln Sie mit `--kill-session-after-min` als harter Backstop. Nachdem die Hintergrundaufgabe einer Sitzung beendet ist, betrachtet der Runner die Sitzung als beschäftigt, bis der Folgezug, der das Ergebnis liest, beginnt, für höchstens das Fenster [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Bis der Runner ein Shutdown-Signal empfängt oder seine Ruhestandszeit erreicht, startet eine Freigabe, die den Runner ohne aktive Sitzungen hinterlässt, denselben Ausstiegspfad wie eine normale Entleerung, gesteuert durch `--drain-grace-sec`. Nach einem ersten Signal, das Sie mit [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) verschoben haben, beendet sich der Runner, sobald eine Freigabe ihn ohne Sitzungen hinterlässt. `0` deaktiviert. |

51| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | nicht gesetzt | Ruhestand des Runners bei einem absoluten Unix-Zeitstempel in Sekunden, für Infrastruktur, die den Runner zu einem bekannten Zeitpunkt beendet; [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle) beschreibt die Freigabesequenz und wie Sie die Marge dimensionieren. Werte vor 2001 oder nach dem Jahr 5138 werden vom Flag abgelehnt und von der Umgebungsvariable ignoriert. |

52| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Wie lange Sie warten, bis der Claude-Prozess nach einer Sitzung sauber beendet wird, bevor Sie ihn gewaltsam beenden. Erhöhen Sie den Wert, wenn die eigenen `SessionEnd` Hooks des Kindes mehr Zeit benötigen. |

53| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Geben Sie einen Session-Slot frei, wenn das Kind nicht signalisiert hat, dass es sich innerhalb von N Minuten nach dem Erzeugen initialisiert hat. Gelöscht durch das Init-Signal des Kindes auf dem [Activity-Kanal](/docs/de/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), nicht durch gewöhnliche Ausgabe, danach übernimmt `--release-idle-session-min`. `0` deaktiviert. |

54| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | an | Seed persistierte Vertrauenswürdigkeit für die Repository-Pfade jeder Sitzung, sodass im Repo festgeschriebene `permissions.allow` und `additionalDirectories` berücksichtigt werden. Setzen Sie `false`, um im Repo festgeschriebene Berechtigungszuschüsse zu verwerfen und Zulassungsregeln stattdessen in der Host-Konfiguration `settings.json` zu konfigurieren; Repository-festgeschriebene `sandbox.*` Einstellungen gelten trotzdem, weshalb der [Repo-Settings-Schutz](/docs/de/self-hosted-environments-deploy#harden-your-deployment) sie unabhängig von diesem Flag scannt. |

55| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | aus | Klonen Sie über den [Anthropic Git-Proxy](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) anstatt über kundenverwaltete Git-Authentifizierung. Erfordert `--capacity 1` und Git 2.32 oder neuer; der Runner weigert sich, andernfalls zu starten. Ersetzt die Rewrite-Flags. |

56 

57Die meisten Duration-Flags haben ein Maximum, das gewählt wurde, um jeden Timeout unter der 32-Bit-Timer-Obergrenze der Laufzeit von ungefähr 24,85 Tagen zu halten. Die `--*-min` Flags sind auf 10080 Minuten, 7 Tage begrenzt; `--drain-grace-sec` auf 604800 Sekunden, auch 7 Tage; und `--drain-wait-sec` auf 86400 Sekunden, 24 Stunden. `--session-stop-grace-sec` und `--post-session-hook-timeout-sec` sind unbegrenzt. Das Überschreiten einer Obergrenze verhält sich je nach Oberfläche unterschiedlich:

58 

59* **Flag**: Der Start schlägt mit einem Fehler fehl.

60* **Umgebungsvariable**: Der Runner begrenzt den Wert auf die Timer-Obergrenze, anstatt ihn abzulehnen.

61 

62<h2 id="orchestrator-cli-flags">

63 Orchestrator-CLI-Flags

64</h2>

65 

66Der Unterbefehl `self-hosted-runner orchestrator`, der [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners) erzeugt, akzeptiert `--api-url`, `--environment-secret-file`, `--hooks-dir`, `--health-port` und `--log-level` mit denselben Standardwerten wie der Runner und, wo das Flag des Runners einen hat, dieselbe Umgebungsvariable, außer dass `--hooks-dir` erforderlich ist und einen `spawn-runner` Hook enthalten muss. Es nimmt auch seine eigenen Flags:

67 

68| Flag | Standard | Beschreibung |

69| :------------------------------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

70| `--hook-concurrency <n>` | `4` | Maximale `spawn-runner` Hooks, die parallel laufen. Begrenzt auch, wie viele Spawn-Anfragen pro Abfrage beansprucht werden. |

71| `--hook-timeout <sec>` | `60` | Beenden Sie den Prozessbaum des Hooks nach dieser vielen Sekunden. Das Timeout plus seine 5-Sekunden-Kill-Gnadenfrist müssen unter `--expected-spawn-seconds` bleiben; der Orchestrator erzwingt dies beim Start. |

72| `--expected-spawn-seconds <sec>` | `120` | Erwartete p99-Bootzeit für erzeugte Runner, im servererzwungenen Bereich 10 bis 3600. Wird bei jeder Abfrage als Server-seitige Lease gesendet; wenn sich kein Runner registriert, bevor er verstreicht, wird die Sitzung mit einer frischen Bestellungs-ID erneut angeboten. Alle Replikas müssen diesen Wert teilen. |

73| `--min-idle <n>` | `0` | Halten Sie mindestens N untätige Session-Slots frei, indem Sie proaktiv Standby-Runner erzeugen. `0` deaktiviert Vorwärmung. Koppeln Sie mit dem `--exit-if-unused-min` des Runners, sodass überschüssige Standby-Runner sich selbst zurückfordern. |

74| `--debug-dir <path>` | nicht gesetzt | Schreiben Sie die Work-Order und Hook-Stderr jeder Spawn-Anfrage auf die Festplatte. Nur zum Debuggen; niemals in der Produktion setzen. |

75 

76<h3 id="scm-connector-flags">

77 SCM-Connector-Flags

78</h3>

79 

80Der Orchestrator kann eine stehende WebSocket-Verbindung zur Anthropic-Kontrolleben halten, sodass gehostete Pre-Session-Flows, wie der Repository-Picker und der Branch- oder Ref-Resolver, einen GitHub Enterprise Server-Host erreichen können, der nur von innerhalb Ihres Netzwerks erreichbar ist. Der Connector bleibt aus, es sei denn, Sie setzen `--scm-connector-host`.

81 

82| Flag | Standard | Beschreibung |

83| :------------------------------------------------------ | :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

84| `--scm-connector-host <host[:port]>` | nicht gesetzt | GitHub Enterprise Server-Hostname, an den Anfragen weitergeleitet werden. Der Port ist standardmäßig `443`. Das Setzen dieses Flags aktiviert den Connector. |

85| `--scm-connector-id <n>` | erforderlich mit `--scm-connector-host` | Die numerische ID der GitHub Enterprise Server-Verbindung Ihrer Organisation. Kontaktieren Sie Ihr Anthropic-Kontoteam für den Wert, wenn Sie den Connector aktivieren. |

86| `--scm-connector-provider <slug>` | `ghe` | Pfadsegment, das den Anbieter identifiziert, passend zu `^[a-z0-9-]{1,32}$`. |

87| `--scm-connector-ca-file <path>` | nicht gesetzt | Zusätzliches CA-Bundle im PEM-Format für TLS-Verbindungen zum GitHub Enterprise Server-Host. |

88| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | nicht gesetzt | Nur für End-to-End-Tests: leitet die TCP-Verbindung um, während der Host-Header und TLS SNI als `--scm-connector-host` beibehalten werden. |

89 

90Der Connector authentifiziert sich mit dem bestehenden Umgebungsgeheimnis des Orchestrators und verbindet sich automatisch erneut: mit exponentiellem Backoff bei einer unterbrochenen Verbindung oder einer festen 30-Sekunden-Verzögerung, wenn die Kontrolleben die Verbindung schließt, weil ein anderes Orchestrator-Replikat sie bereits hält.

91 

92<h2 id="environment-variable-only-settings">

93 Nur-Umgebungsvariablen-Einstellungen

94</h2>

95 

96Diese Runner-Einstellungen werden nur aus der Umgebung gelesen und decken Verhalten ab, das die meisten Bereitstellungen bei der Standardeinstellung belassen:

97 

98| Env var | Standard | Beschreibung |

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

100| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Wie lange der Runner eine Sitzung als beschäftigt betrachtet, nachdem eine Hintergrundaufgabe beendet ist, während der Folgezug, der das Ergebnis liest, nicht gestartet hat. Die Zeilen [`--drain-wait-sec` und `--release-idle-session-min`](#runner-cli-flags) beschreiben, wo die Sperre bei Entleerung und Idle-Freigabe angewendet wird, und [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle) beschreibt, wo sie bei `--retire-at` Ruhestand angewendet wird. `0` oder ein unbrauchbarer Wert fällt auf den Standard zurück, sodass die Sperre nicht ausgeschaltet werden kann. Erfordert Claude Code v2.1.228 oder später. |

101| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Verzeichnis, das in den Startup-Snapshot des Runners erfasst und in die `CLAUDE_CONFIG_DIR` jeder Sitzung eingegeben wird; Änderungen auf der Festplatte gelten nach einem Runner-Neustart. Das Setzen der Variable verschiebt auch, wo der Runner `.claude.json` für [MCP-Seeding](/docs/de/self-hosted-environments-configuration#mcp-servers) liest, sodass das Setzen, einschließlich auf seinen eigenen Standard, diese Suche verlagert; zeigen Sie auf ein leeres Verzeichnis, um das Seeding vollständig zu deaktivieren. |

102| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Wie lange der Runner wartet, nachdem eine Sitzung ihr `--kill-session-after-min` Limit erreicht hat, damit ein laufender Zug beendet wird oder die Freigabe abgeschlossen wird, bevor die Sitzung beendet wird |

103| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Wie lange der Runner wartet, bis das Betriebssystem `SIGKILL` an ein Kind sendet, das in nicht unterbrechbarem I/O steckt, bevor es sich selbst beendet. Auf `--post-session-hook-timeout-sec` plus 15 Sekunden begrenzt, und 30 weitere, wenn `--push-outcome-on-release` gesetzt ist, sodass das effektive Minimum 75 Sekunden bei Standardwerten ist. |

104| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Git-Fetch-Tiefe für frische Klone. Setzen Sie eine positive Ganzzahl oder `full` oder `0` für einen vollständigen Fetch. Repositories, die bereits im Arbeitsbereich vorhanden sind, behalten ihre bestehende Tiefe. |

105| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | nicht gesetzt | Wenn `1`, überspringen Sie die `.git` Präsenzprüfung, nachdem ein `checkout` Hook ausgeführt wird. Setzen Sie dies, wenn Ihr Hook eine Nicht-Git-Quelle materialisiert. |

106| `FORCE_AUTOUPDATE_PLUGINS` | nicht gesetzt | Wenn `1`, lassen Sie Plugin-Marktplätze automatisch aktualisieren, obwohl die Binärdatei angeheftet ist |

107| `CLAUDE_CODE_DISABLE_ARTIFACT` | nicht gesetzt | Wenn `1`, deaktivieren Sie das Artifact-Tool in Sitzungen unabhängig von der Admin-Einstellung der Organisation und löschen Sie die `*.frame.claudeusercontent.com` Egress-Anforderung |

108 

109<h2 id="telemetry">

110 Telemetrie

111</h2>

112 

113Session-Kinder senden operative Telemetrie an Anthropic, es sei denn, Sie schalten sie aus. Kein Code oder Repository-Inhalt wird gesendet. Setzen Sie Telemetrie-Variablen auf dem Runner-Prozess; der Runner bekräftigt sie erneut, nachdem er von der Kontrolleben bereitgestellte Umgebungsvariablen angewendet hat, sodass die Einstellung des Operators immer Vorrang hat.

114 

115Ein Steuerelement ist spezifisch für selbstgehostete Umgebungen: `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1` meldet sich für Datadog-Operationsmetriken an, die in selbstgehosteten Umgebungen standardmäßig aus sind. Die allgemeinen Claude Code-Telemetrie-Steuerelemente, `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_ERROR_REPORTING` und `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, gelten für Session-Kinder wie in der [Umgebungsvariablen-Referenz](/docs/de/env-vars) dokumentiert. `DISABLE_GROWTHBOOK` ist verwandt, aber anders: Das Setzen von `DISABLE_GROWTHBOOK=1` deaktiviert das Abrufen von Feature-Flags, und die Telemetrie bleibt an, es sei denn, `DISABLE_TELEMETRY` ist auch gesetzt.

116 

117`CLAUDE_CODE_ENABLE_TELEMETRY` ist nicht verwandt: Es aktiviert OpenTelemetry-Export zu Ihrem eigenen Collector, wie in [Überwachung](/docs/de/monitoring-usage) beschrieben, und steuert nicht Anthropics Analytik.

118 

119<h2 id="health-endpoint">

120 Health-Endpunkt

121</h2>

122 

123Der Runner bedient `GET /healthz` auf dem konfigurierten Health-Port. Die Antwort ist `200 OK`, wann immer der Prozess am Leben ist, unabhängig davon, in welchem Zustand sich die Abfrageschleife befindet, sodass ein HTTP-Probe auf diesem Endpunkt nur einen toten Prozess erkennt. Der JSON-Body beschreibt den aktuellen Zustand:

124 

125```json theme={null}

126{

127 "status": "ok",

128 "runner_id": "ccrunner_...",

129 "active_sessions": 2,

130 "last_poll_at": "2026-03-31T18:04:11.220Z",

131 "last_poll_age_ms": 842

132}

133```

134 

135Verwenden Sie `last_poll_age_ms` als Lebendigkeitssignal in benutzerdefinierten Proben; ein Wert, der unbegrenzt wächst, zeigt an, dass die Abfrageschleife steckt. Sowohl `last_poll_at` als auch `last_poll_age_ms` sind `null`, bis die erste Abfrage abgeschlossen ist.

136 

137Der Orchestrator bedient sein eigenes `/healthz` auf seinem Health-Port. Sein Endpunkt gibt immer `200` zurück, und der Body trägt ein Feld `connected`, das meldet, ob die letzte Abfrage erfolgreich war, plus Pro-Status-Spawn-Queue-Zählungen in `queue_counts`. Gate-Bereitschaft und Warnungen auf `connected` statt auf dem Statuscode.

138 

139Wenn der [SCM-Connector](#scm-connector-flags) konfiguriert ist, trägt der Body des `/healthz` des Orchestrators auch `scm_connector_connected` und ein Objekt `scm_connector` mit `connected`, `last_connected_at`, `last_error`, `reconnects` und `requests_forwarded`. Beide Felder sind `null`, wenn `--scm-connector-host` nicht gesetzt ist.

140 

141<h2 id="prometheus-metrics">

142 Prometheus-Metriken

143</h2>

144 

145Jeder Runner bedient Prometheus-Metriken bei `GET /metrics` auf demselben Port wie `/healthz`. Wichtige Reihen:

146 

147| Reihe | Notizen |

148| :-------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

149| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | Immer `1`; nützlich für Fleet-Inventar und Versions-Drift-Erkennung |

150| `claude_code_self_hosted_runner_capacity` | Konfiguriert `--capacity` |

151| `claude_code_self_hosted_runner_active_sessions` | Sitzungen, die derzeit laufen |

152| `claude_code_self_hosted_runner_locked_account{email}` | Vorhanden, sobald sich der Runner auf einen Benutzer gesperrt hat und ein Session-Token mit einem `act.email` Anspruch ausgestellt wurde. Die Reihe fehlt auf einem Runner, der auf einen Claude Tag-Agent gesperrt ist, dessen Session-Tokens keinen `act.email` Anspruch tragen. Der Labelwert ist die Konto-E-Mail; wenn Ihr Metrik-Store weit lesbar ist, löschen oder hashen Sie das Label zum Scrape-Zeitpunkt, zum Beispiel mit Prometheus `metric_relabel_configs`. |

153| `claude_code_self_hosted_runner_last_poll_age_seconds` | Sekunden seit der letzten erfolgreichen Abfrage. Warnung, wenn über 60. |

154| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | Kumulative PollWork-Fehler nach Art: `transport`, `timeout`, `5xx`, `429` oder `4xx`. Alle fünf Reihen sind vom Prozessstart vorhanden; Warnung bei `rate(...[5m]) > 0`. |

155| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | Session-Kindprozesse, die über die Lebensdauer des Runners erzeugt wurden, eine Reihe pro Session-Ursprung wie `web_claude_ai`, `ios`, `android`, `desktop_app` oder `claude_code_cli`, oder `unknown`, wenn der Server einen nicht gesendet hat. Slack-Sitzungen tragen entweder `claude_in_slack` oder `claude-in-slack`, je nachdem, welche Slack-Integration sie erstellt hat, also passen Sie beide mit einem Regex-Selektor wie `{client_platform=~"claude[-_]in[-_]slack"}` an. Verwenden Sie `sum()` für die Fleet-Summe. |

156| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | Sitzungen, die sauber endeten, mit denselben Labels. Breiter als ein einfacher sauberer Ausstieg: siehe [Session-Lebenszyklus-Zähler-Semantik](#session-lifecycle-counter-semantics) für das, was zählt. |

157| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | Sitzungen, die in Fehler endeten, mit denselben Labels. Gleicher Vorbehalt: siehe [Session-Lebenszyklus-Zähler-Semantik](#session-lifecycle-counter-semantics). |

158| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | Sitzungen, die der Runner aus operativen Gründen beendete, anstatt aus einem Session-Ergebnis oder Runner-Fehler, mit denselben Labels. Siehe [Session-Lebenszyklus-Zähler-Semantik](#session-lifecycle-counter-semantics). |

159| `claude_code_self_hosted_runner_initializing_sessions` | Sitzungen, die sich derzeit in der Init-Phase befinden, von der Zuweisung bis zum Init-Ereignis des Kindes |

160| `claude_code_self_hosted_runner_session_init_duration_seconds` | Histogramm der Session-Init-Dauern |

161| `claude_code_self_hosted_runner_session_init_errors_total` | Sitzungen, die vor Erreichen von Init fehlschlugen: ein Checkout-Hook-Fehler, Git-Vorbereitung, Token-Problem oder ein Pre-Init-Kind-Crash |

162| `claude_code_self_hosted_runner_session_start_hook_errors_total` | `SessionStart` Hooks, die ein Fehler-Ergebnis meldeten, einer pro fehlgeschlagener Hook-Ausführung |

163| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | Pro-Session-Gauge von Sekunden, seit die Sitzung untätig wurde. Nützlich zum Beenden von Sitzungen, die auf einer unbeantworteten Berechtigungsaufforderung stecken. |

164 

165Der Orchestrator bedient seine eigenen Reihen bei `GET /metrics` auf demselben Port wie sein `/healthz`:

166 

167| Reihe | Notizen |

168| :-------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

169| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | Immer `1` |

170| `claude_code_self_hosted_orchestrator_connected` | `1`, wenn die letzte Abfrage erfolgreich war; fällt auf `0` nach jeder fehlgeschlagenen Abfrage, unabhängig von der Fehlerart |

171| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | Sekunden seit dem letzten Abfrageversuch, Erfolg oder Fehler, anders als die identisch benannte Metrik des Runners, die seit dem letzten Erfolg misst; koppeln Sie mit `connected`, um fehlgeschlagene Abfragen zu erfassen. Die Abfrageschleife des Orchestrators wartet auf Hook-Ausführung, also Warnung über `--hook-timeout` plus eine Marge, etwa 90 Sekunden bei Standardwerten, anstatt einer flachen 60. |

172| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Kumulative PollSpawnHints-Fehler nach Art: `transport`, `timeout`, `5xx`, `429` oder `4xx`. Alle fünf Reihen sind vom Prozessstart vorhanden; Warnung bei `rate(...[5m]) > 0`. |

173| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Spawn-Anfragen, die jetzt beanspruchbar sind |

174| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Spawn-Anfragen in Retry-Backoff nach einem wiederholbaren Hook-Fehler |

175| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Spawn-Anfragen, die blockiert sind, bis ein Owner sie von der Registerkarte **Aktivität** der Umgebung erneut versucht; Warnung, wenn über Null |

176| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Gesamtsitzungen, die auf einen Runner für diese Umgebung warten. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |

177| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sitzungen, die derzeit einem lebenden Runner in dieser Umgebung zugewiesen sind. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |

178| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Kumulative `spawn-runner` Hook-Ergebnisse: `ok`, `retryable`, `non_retryable`. Zählt Orchestrator-Hook-Aufrufe, nicht Session-Kinder, die die Runner erzeugen: nicht vergleichbar mit `sessions_started_total`, da Kapazität über eins, warme Pools und Runner, die erneut für dieselbe Sitzung erzeugt werden, die beiden divergieren. |

179| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | Histogramm der Hook-Dauern |

180| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | Standby-Spawn-Anfragen, die seit Prozessstart versendet wurden |

181| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | Histogramm von Sekunden, die jede Sitzung in der Warteschlange wartete, bevor der Orchestrator sie zum Erzeugen beanspruchte, aufgezeichnet vom Queue-Wait-Zeitstempel, den die Kontrolleben mit jeder Spawn-Anfrage der Sitzung sendet. Verwenden Sie für p50/p99 Queue-Zeit-Warnungen. Vorwärm-Spawns werden nicht gesampelt. |

182| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | Lokale-minus-Server-Uhr-Skew; diagnostisch, vorhanden, sobald gemessen |

183| `claude_code_self_hosted_orchestrator_scm_connector_connected` | `1`, wenn der [SCM-Connector](#scm-connector-flags) WebSocket offen ist; `0` während Wählen oder Backoff. Fehlt, wenn `--scm-connector-host` nicht gesetzt ist. |

184| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | Kumulative HTTP-Anfragen, die seit Prozessstart zum konfigurierten SCM-Host weitergeleitet wurden. Fehlt, wenn `--scm-connector-host` nicht gesetzt ist. |

185 

186Für Autoscaling wählen Sie die Reihe, die zu Ihrem Skalierungsstil passt, und gaten Sie sie, bevor sie den Scaler speist:

187 

188* **Queue-Tiefe-Skalierung**: Speisen Sie `claude_code_self_hosted_orchestrator_pool_pending_sessions` in Ihren HPA- oder KEDA-Scaler, nicht `queue_pending_sessions`.

189* **Kapazitäts-Skalierung**: Skalieren Sie auf das Verhältnis der `active_sessions` des Runners zu `capacity`.

190* **Gate auf `connected`**: Filtern Sie die Abfrage mit `claude_code_self_hosted_orchestrator_connected == 1` pro Instanz, sodass der veraltete Wert eines getrennten Replikas nicht den Scaler speist.

191 

192Während eines vollständigen Abfrageausfalls, jedes Replikat getrennt, gibt die gated-Abfrage keine Daten zurück. HPA hält die aktuelle Replikaanzahl bei einer fehlenden Metrik, aber KADAs Prometheus-Scaler bei seinem Standard `ignoreNullValues: "true"` liest das leere Ergebnis als Null und skaliert ein; setzen Sie `ignoreNullValues: "false"` auf dem ScaledObject, optional mit einem `fallback` Replikafloor.

193 

194Der folgende Prometheus Operator `PodMonitor` deckt beide Prozesse ab. Er wählt Pods nach dem Label `app.kubernetes.io/part-of: claude-code-self-hosted-runner` und dem benannten Port `health`, den das [Kubernetes-Rezept](/docs/de/self-hosted-environments-deploy#kubernetes) setzt; passen Sie die Namespaces an Ihre Bereitstellung an:

195 

196```yaml theme={null}

197# Beispiel Prometheus Operator PodMonitor für den Claude Code Self-Hosted

198# Runner + Orchestrator. Passen Sie die Namespace- und Label-Selektoren an Ihre

199# Bereitstellung an. Sowohl der Runner als auch der Orchestrator bedienen /metrics auf

200# ihrem --health-port (Standard 8080).

201apiVersion: monitoring.coreos.com/v1

202kind: PodMonitor

203metadata:

204 name: claude-code-self-hosted-runner

205 namespace: monitoring

206spec:

207 namespaceSelector:

208 matchNames:

209 - claude-runners

210 selector:

211 matchExpressions:

212 # Passt die Runner-Bereitstellung aus dem Kubernetes-Rezept sowie alle

213 # On-Demand-Runner-Jobs und Orchestrator-Pods an, die Sie gleich beschriften

214 # und einen benannten 'health' containerPort geben.

215 - key: app.kubernetes.io/part-of

216 operator: In

217 values: [claude-code-self-hosted-runner]

218 podMetricsEndpoints:

219 - port: health

220 path: /metrics

221 interval: 30s

222```

223 

224Diese Beispiel-Warnregeln sind ein Ausgangspunkt; stimmen Sie die Schwellwerte für Ihre Fleet-Größe ab:

225 

226```yaml theme={null}

227# Beispiel Prometheus-Warnregeln für den Claude Code Self-Hosted Runner

228# + Orchestrator. Stimmen Sie die Schwellwerte für Ihre Fleet-Größe und SLOs ab.

229groups:

230 - name: claude-code-self-hosted-runner

231 rules:

232 - alert: ClaudeRunnerPollStale

233 expr: claude_code_self_hosted_runner_last_poll_age_seconds > 60

234 for: 2m

235 labels: {severity: warning}

236 annotations:

237 summary: "Runner {{ $labels.pod }} hat nicht in >60s abgefragt"

238 - alert: ClaudeRunnerVersionDrift

239 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1

240 for: 30m

241 labels: {severity: info}

242 annotations:

243 summary: "Runner führen gemischte Versionen aus"

244 - alert: ClaudeRunnerInitErrorsHigh

245 expr: increase(claude_code_self_hosted_runner_session_init_errors_total[10m]) > 3

246 for: 5m

247 labels: {severity: warning}

248 annotations:

249 summary: "Runner {{ $labels.pod }}: >3 Session-Init-Fehler in 10m (Checkout-Hook / Git / Token / Pre-Init-Kind-Crash)"

250 - alert: ClaudeRunnerPollErrors

251 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0

252 for: 2m

253 labels: {severity: warning}

254 annotations:

255 summary: "Runner {{ $labels.pod }}: PollWork fehlgeschlagen ({{ $value | humanize }}/s über 5m)"

256 - alert: ClaudeRunnerSessionStartHookErrors

257 expr: increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m]) > 3

258 for: 5m

259 labels: {severity: warning}

260 annotations:

261 summary: "Runner {{ $labels.pod }}: >3 SessionStart-Hook-Fehler in 10m"

262 

263 - name: claude-code-self-hosted-orchestrator

264 rules:

265 - alert: ClaudeOrchestratorDisconnected

266 expr: claude_code_self_hosted_orchestrator_connected == 0

267 for: 2m

268 labels: {severity: critical}

269 annotations:

270 summary: "Orchestrator {{ $labels.pod }} kann die Anthropic-Kontrolleben nicht erreichen"

271 - alert: ClaudeOrchestratorPollStale

272 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90

273 for: 2m

274 labels: {severity: warning}

275 annotations:

276 summary: "Orchestrator {{ $labels.pod }} hat nicht in >90s abgefragt (Abfrageschleife wartet auf Hook-Ausführung)"

277 - alert: ClaudeOrchestratorCircuitBroken

278 expr: claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions > 0

279 for: 1m

280 labels: {severity: critical}

281 annotations:

282 summary: "{{ $value }} Sitzungen unterbrochen — spawn-runner Hook ist wiederholt nicht wiederholbar; beheben Sie die Infrastruktur und versuchen Sie es erneut von der Registerkarte Aktivität"

283 - alert: ClaudeOrchestratorPollErrors

284 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

285 for: 2m

286 labels: {severity: warning}

287 annotations:

288 summary: "Orchestrator {{ $labels.pod }}: PollSpawnHints fehlgeschlagen ({{ $value | humanize }}/s über 5m)"

289 - alert: ClaudeOrchestratorSpawnHookFailing

290 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3

291 for: 5m

292 labels: {severity: warning}

293 annotations:

294 summary: "Orchestrator {{ $labels.pod }}: >3 spawn-runner Hook-Fehler in 5m"

295```

296 

297<h3 id="pass-through-session-child-metrics">

298 Durchlauf-Session-Kind-Metriken

299</h3>

300 

301Jede Sitzung läuft in ihrem eigenen Kind-Prozess mit ihren eigenen OpenTelemetry-Metriken; bei `--capacity` über eins schreibt der Runner um, wie diese Kind-Metriken verfügbar gemacht werden. Das Setzen von `OTEL_METRICS_EXPORTER=prometheus` auf dem Runner-Host und `CLAUDE_CODE_ENABLE_TELEMETRY=1` in der Umgebung der Sitzung, zum Beispiel aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts) oder der Umgebung des Runners selbst, die Sitzungen erben, macht die Zähler- und Gauge-Instrumente jedes Kindes auf dem `/metrics` Endpunkt des Runners erneut verfügbar, neben den Reihen des Runners. Der Runner schreibt den Exporter des Kindes um, um über OTLP zu einem Loopback-only-Receiver auf dem Health-Port zu pushen, markiert jede Reihe mit `session_id`- und `client_platform`-Labels und entfernt die Reihen einer Sitzung, wenn diese Sitzung endet. Histogramme gehen nicht durch, und eine Kind-Metrik, deren Name mit dem eigenen Präfix des Runners kollidieren würde, wird gelöscht.

302 

303Bei der Standard `--capacity 1` gilt die Umschreibung nicht: Das Kind des Kindes bindet seinen eigenen Prometheus-Endpunkt auf Port 9464 wie üblich.

304 

305<h3 id="session-lifecycle-counter-semantics">

306 Session-Lebenszyklus-Zähler-Semantik

307</h3>

308 

309Die Zähler `sessions_started_total`, `sessions_completed_total`, `sessions_failed_total` und `sessions_interrupted_total` klassifizieren jede Sitzung danach, wie sie endete. Jedes erzeugte Session-Kind erhöht `sessions_started_total` zum Spawn-Zeitpunkt, und genau einer der anderen drei erhöht sich beim Beenden, sodass `sessions_started_total` minus die Summe der anderen drei der Anzahl der derzeit laufenden Session-Kinder entspricht.

310 

311* `completed`: Die Sitzung endete sauber. Dies deckt das Kind ab, das auf eigene Faust mit Code `0` beendet wird, die Sitzung wird archiviert oder gelöscht, während das Kind noch verbunden war, und der Runner gibt den Slot sauber zurück: Freigabe der Sitzung beim Idle-Timeout, zur Retire-Zeit oder am `--kill-session-after-min` Limit; ein Startup-Timeout; oder ein serverseitiges Deassign, das die Abfrageschleife bemerkte, bevor das Kind beendet wurde. Erhöht `sessions_completed_total`.

312* `failed`: Das Kind beendete sich auf eigene Faust mit einem Nicht-Null-Code, entweder ein Crash oder ein Setup-Fehler nach dem Erzeugen. Erhöht `sessions_failed_total`.

313* `interrupted`: Der Runner beendete das Kind aus operativen Gründen, die weder ein Session-Erfolg noch ein Runner-Fehler sind, wie eine Entleerung oder die Beendigung einer Sitzung, die sich noch auf dem Runner befand, wenn das [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) Kulanzfenster nach seinem `--kill-session-after-min` Limit endete. Ein Kubernetes-Rolling-Restart, der `SIGTERM` sendet, ist ein Beispiel für eine Entleerung. Erhöht `sessions_interrupted_total`.

314 

315Vor v2.1.260 beendete der Runner jede Sitzung, die ihr `--kill-session-after-min` Limit erreichte, und zählte sie in `sessions_interrupted_total`.

316 

317Der [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session) `CLAUDE_RUNNER_EXIT_REASON` klassifiziert saubere Übergaben unterschiedlich. Der Hook meldet eine Freigabe, ein Startup-Timeout und eine Server-Deassign als `interrupted`, da der Runner das Kind stoppte. Diese Zähler zeichnen die gleichen Ereignisse als `completed` auf, da der Slot sauber zurückgegeben wurde.

318 

319Wenn Sie Hook-Quittungen direkt gegen `sessions_completed_total` abstimmen, unterzählen Sie Abschlüsse. Verwenden Sie den Hook für Pro-Session-Garantien und die Zähler für Aggregatraten.

320 

321In einer One-Shot-Umgebung, `--capacity 1` mit dem Standard `--drain-grace-sec 0`, beendet sich jeder Runner-Prozess Momente nach seiner einen Sitzung endet. `sessions_completed_total`, `sessions_failed_total` und `sessions_interrupted_total` erhöhen sich nur beim Session-Ende, direkt bevor dieser Ausstieg, sodass ein Prometheus-Scrape alle 15 bis 60 Sekunden die Erhöhung selten erfasst, bevor die Reihen des Runners verschwinden; diese drei End-of-Session-Zähler sind die Terminal-Zähler, auf die sich der Rest dieses Abschnitts bezieht. `sessions_started_total` erhöht sich beim Erzeugen und bleibt für die Lebensdauer der Sitzung sichtbar, sodass es zuverlässig angezeigt wird, aber in einer One-Shot-Umgebung liest es näher an "Sitzungen, die derzeit laufen" als an einer kumulativen Anzahl.

322 

323Verwenden Sie die Reihe in dieser Tabelle für das entsprechende Ziel statt der Terminal-Zähler:

324 

325| Ziel | Verwenden |

326| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

327| Durchsatz | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`, ein Zähler auf dem langlebigen Orchestrator, der sich einmal pro erfolgreichem `spawn-runner` Hook erhöht und unter `rate()` aussagekräftig bleibt. Er zählt Hook-Aufrufe statt Sitzungen, sodass Vorwärmung und wiederholte Spawns für dieselbe Sitzung ihn von Session-Zählungen divergieren. |

328| Auslastung | `sum(claude_code_self_hosted_runner_active_sessions)` gegen `sum(claude_code_self_hosted_runner_capacity)`, beide Gauges gültig bei jedem Scrape unabhängig von der Runner-Lebensdauer |

329| Rückstand | `claude_code_self_hosted_orchestrator_pool_pending_sessions` für Queue-Tiefe und `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`, Warnung, wenn über Null |

330| Fehler | `claude_code_self_hosted_runner_sessions_failed_total`, Best-Effort: echte Crashes nach dem Erzeugen erhöhen ihn, und `rate()` ist aussagekräftig auf Runnern, die ihre Sitzungen mit `--drain-grace-sec` über `0` überleben. Eine One-Shot-Umgebung hat das gleiche Scrape-Fenster-Problem wie die anderen Terminal-Zähler, also behandeln Sie jeden Nicht-Null-Wert, den Sie sehen, als wert, untersucht zu werden. Fehler vor dem Erzeugen, wie ein Checkout-Hook-Fehler, Git-Vorbereitung oder ein Token-Problem, erscheinen nur in `session_init_errors_total`. |

331 

332Die `orchestrator_*` Zeilen existieren nur auf Umgebungen, die den [On-Demand-Orchestrator](/docs/de/self-hosted-environments-configuration#on-demand-runners) ausführen. In einer festen Fleet, deren Runner ihre Sitzungen mit `--drain-grace-sec` über `0` überleben, verwenden Sie `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` für Durchsatz; in einer One-Shot-Fleet hat diese Reihe das gleiche Scrape-Fenster-Problem wie die Terminal-Zähler, also verlassen Sie sich stattdessen auf die Zählung der Sitzungen in der Warteschlange. Überprüfen Sie den Rückstand auf der Registerkarte **Aktivität** der Umgebung, auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments): Die Runner exportieren keine Queue-Tiefe-Reihe.

333 

334Für Pro-Session-Ergebnis-Berichterstattung verwenden Sie stattdessen den [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session): Er wird bei jedem Session-Ende ausgelöst, wo ein Kind-Prozess erzeugt wurde, abgesehen von abruptem Runner-Beendigung wie eine VM-Preemption, pro dem [eigenen Vertrag des Hooks](/docs/de/self-hosted-environments-configuration#post-session).

335 

336<h2 id="what’s-next">

337 Nächste Schritte

338</h2>

339 

340* [Selbstgehostete Umgebungen](/docs/de/self-hosted-environments): die Umgebung, den Runner und das Session-Modell; der [Schnellstart](/docs/de/self-hosted-environments-quickstart) und [In die Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) enthalten Einrichtung und Betrieb

341* [Passen Sie Sitzungen an](/docs/de/self-hosted-environments-configuration): Wrapper-Skripte, Lifecycle-Hooks und On-Demand-Runner

342* [Überprüfen Sie die Session-Identität](/docs/de/self-hosted-environments-identity): das Session-Token, seine Ansprüche und wie man es überprüft

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Self-Hosted-Umgebungen end-to-end testen

6 

7> Überprüfen Sie ein selbstgehostetes Runner-Image aus CI: Starten Sie eine Sitzung mit der CLI, lesen Sie Claudes Antworten über einen Stop-Hook und schreiben Sie die vollständige Schleife.

8 

9<Note>

10 Self-Hosted-Umgebungen befinden sich in der öffentlichen Beta auf Team- und Enterprise-Plänen; [Verfügbarkeit und Einschränkungen](/docs/de/self-hosted-environments#availability-and-limitations) behandelt den Aktivierungspfad. Diese Seite ist das CI-Test-Rezept; siehe [Schnellstart](/docs/de/self-hosted-environments-quickstart) für Setup und [In Produktion bereitstellen](/docs/de/self-hosted-environments-deploy) für die Fleet-Rezepte.

11</Note>

12 

13In einer [Self-Hosted-Umgebung](/docs/de/self-hosted-environments) werden Claude Code [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) auf einem Runner-Image ausgeführt, das Sie erstellen und verwalten. Bevor Sie ein neues Image in Ihrer Produktionsumgebung bereitstellen, führen Sie eine vollständige Sitzung gegen eine Test-Umgebung aus einem Skript aus: erstellen Sie eine Sitzung, lesen Sie Claudes Antwort, senden Sie eine Nachfrage und lesen Sie auch diese Antwort. Dies ist die Form eines CI-Smoke-Tests, der Ihr Runner-Image, Git-Zugriff und alle benutzerdefinierten Tools überprüft, bevor Sie eine Änderung durchführen.

14 

15Dieses Rezept setzt voraus, dass Sie bereits [eine Umgebung und einen Runner eingerichtet haben](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner), und dass Ihr CI-Job den Runner-Prozess auf demselben Host wie das Test-Skript startet, das natürliche Setup zum Testen eines neuen Runner-Images. Ein Stop-Hook, den Sie auf dem Runner installieren, schreibt die endgültige Antwort jeder Runde in eine lokale Datei, und das Skript liest sie von dort, sodass die einzigen Aufrufe der Anthropic API die beiden Dispatches selbst sind. Wenn sich Ihre Test-Runner auf separater Infrastruktur befinden, siehe [Remote-Test-Runner](#remote-test-runners).

16 

17<h2 id="install-the-capture-hook-on-your-test-runner">

18 Installieren Sie den Capture-Hook auf Ihrem Test-Runner

19</h2>

20 

21Das Zurücklesen funktioniert über einen Claude Code [Stop-Hook](/docs/de/hooks#stop): Wenn Claude eine Runde beendet, erhält der Hook die endgültige Assistenten-Nachricht als `last_assistant_message` in seinem stdin-JSON und hängt sie an `$E2E_REPLY_DIR/<session_id>.txt` an. Installieren Sie ihn auf die gleiche Weise wie den [commit-nudge Stop-Hook](/docs/de/self-hosted-environments-configuration#prompt-sessions-to-push-their-work), auf dem `~/.claude/` des Runner-Hosts, das der Runner in jede Sitzung einspeist.

22 

23<h3 id="save-the-hook-files">

24 Speichern Sie die Hook-Dateien

25</h3>

26 

27Speichern Sie die beiden folgenden Dateien auf dem Runner-Host:

28 

29* Der Einstellungsblock: Zusammenführen in `~/.claude/settings.json` auf dem Runner-Host

30* Das Skript: Speichern als `~/.claude/hooks/e2e-stop-hook-capture.sh` auf dem Runner-Host und machen Sie es ausführbar

31 

32```json theme={null}

33{

34 "hooks": {

35 "Stop": [

36 {

37 "hooks": [

38 {

39 "type": "command",

40 "timeout": 10,

41 "command": "\"$CLAUDE_CONFIG_DIR/hooks/e2e-stop-hook-capture.sh\""

42 }

43 ]

44 }

45 ]

46 }

47}

48```

49 

50```sh theme={null}

51#!/bin/sh

52# Stop hook for testing a self-hosted environment end to end: writes each

53# turn's final assistant reply to $E2E_REPLY_DIR/<session_id>.txt so a

54# co-located test driver can read it without calling the Anthropic API.

55# Install on the TEST runner only. Requires jq.

56 

57# No-op unless the driver is listening. Never fail the turn.

58[ -n "${E2E_REPLY_DIR:-}" ] && [ -d "$E2E_REPLY_DIR" ] || exit 0

59 

60# CLAUDE_CODE_REMOTE_SESSION_ID is exported in cse_... form; the session

61# id the dispatch CLI prints is in session_... form. Same id, different

62# prefix.

63sid=$(printf '%s' "${CLAUDE_CODE_REMOTE_SESSION_ID:-}" | sed 's/^cse_/session_/')

64[ -n "$sid" ] || exit 0

65 

66# last_assistant_message is absent when the final assistant turn had no

67# text, such as a tool-use-only turn. The `// empty` filter makes that a

68# zero-byte write rather than the literal string "null".

69jq -r '.last_assistant_message // empty' >> "$E2E_REPLY_DIR/$sid.txt" 2>/dev/null

70exit 0

71```

72 

73<h3 id="before-you-start-the-runner">

74 Bevor Sie den Runner starten

75</h3>

76 

77Zwei Dinge, auf die der Hook angewiesen ist:

78 

79* Installieren Sie ihn, bevor Sie den Runner starten. Der Runner erstellt eine Momentaufnahme von `~/.claude/` einmal beim Start, sodass ein Hook, der zu einem laufenden Runner hinzugefügt wird, erst nach einem Neustart wirksam wird.

80* Exportieren Sie `E2E_REPLY_DIR` zum Runner-Prozess. Der Hook ist ein No-Op, wenn die Variable nicht gesetzt ist oder das Verzeichnis nicht existiert. Setzen Sie sie daher überall dort, wo Sie den Runner starten, z. B. in der systemd-Unit, Pod-Spezifikation oder CI-Schritt. Das Test-Skript unten benötigt es auch.

81 

82Installieren Sie diesen Hook nur auf Runnern, die Ihre Test-Umgebung bedienen. Er schreibt die endgültige Antwort jeder Sitzung auf die Festplatte, wenn `E2E_REPLY_DIR` existiert, was auf einem Wegwerf-CI-Runner harmlos ist, aber nicht in ein Produktionsumgebungs-Runner-Image gehört, in dem die Variable versehentlich gesetzt werden könnte.

83 

84<h2 id="run-the-test-loop">

85 Führen Sie die Test-Schleife aus

86</h2>

87 

88Die Dispatch-Flags `--environment` und `--ref` erfordern Claude Code v2.1.224 oder später auf dem Computer, auf dem das Skript ausgeführt wird, die gleiche Untergrenze wie der Runner selbst. Mit dem Hook an Ort und Stelle und einem auf diesem Host gestarteten Runner führt das Test-Skript folgende Schritte aus:

89 

901. Erstellt eine Sitzung in der Test-Umgebung mit `claude -p "<prompt>" --environment <environment-id> --output-format json`, ausgeführt aus einem Git-Checkout, damit die CLI das Repository aus dem `origin`-Remote automatisch erkennen kann. Das optionale `--ref <branch>` basiert auf dem Checkout der Sitzung auf einer benannten Referenz statt auf lokalem HEAD. Der Befehl erstellt die Sitzung, gibt eine Zeile JSON mit `session_id` aus und beendet sich, ohne auf Claudes Antwort zu warten.

912. Wartet darauf, dass die Antwort in `$E2E_REPLY_DIR/<session_id>.txt` erscheint, geschrieben vom Stop-Hook auf dem Runner, sobald die Runde abgeschlossen ist.

923. Sendet eine Nachverfolgung mit `claude -p "<message>" --cloud <session_id> --output-format json` (siehe [Senden Sie eine Nachverfolgungsnachricht an eine laufende Sitzung](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli)), die ein Benutzerereignis in der vorhandenen Sitzung bereitstellt und beendet sich.

934. Wartet auf die Antwort der Nachverfolgung auf die gleiche Weise wie Schritt 2.

94 

95<h3 id="environment-dispatch-behavior">

96 `--environment` Dispatch-Verhalten

97</h3>

98 

99Claude Code erstellt die Sitzung, gibt die Sitzungs-ID und einen Link dazu aus und beendet sich.

100 

101Das Flag hat Vorrang vor der [`remote.defaultEnvironmentId`](/docs/de/settings-reference#remote-defaultenvironmentid)-Einstellung. Es unterstützt nicht `--output-format stream-json` und kann nicht mit Flags kombiniert werden, die eine Sitzung fortsetzen, anhängen oder vorkonfigurieren, wie z. B. `--resume`, `--continue`, `--teleport`, `--session-id` oder `--init-only`. `--cloud` wird mit einer Sitzungs-ID oder URL abgelehnt und in nicht-interaktiven Läufen, wenn es eine Beschreibung trägt. Ein bloßes `--cloud` wird als abwesend behandelt. Von einem Terminal aus können Sie die Aufgabe statt eines positionalen Prompts als `--cloud`-Beschreibung übergeben.

102 

103<h2 id="example-script">

104 Beispielskript

105</h2>

106 

107Das folgende Skript führt die vollständige Schleife gegen `$CLAUDE_TEST_ENVIRONMENT_ID`, die `ccpool_...`-ID Ihrer Test-Umgebung, angezeigt im Detaildialog der Umgebung auf der Admin-Seite oder zurückgegeben durch den [create-environment-Aufruf](#create-a-dedicated-test-environment), aus und behauptet eine Sentinel-Phrase in jeder Antwort. Führen Sie es aus einem Git-Checkout des Repositorys aus, in dem die Sitzung arbeiten soll, nachdem Sie einen Runner auf diesem Host mit dem installierten Capture-Hook und exportiertem `E2E_REPLY_DIR` gestartet haben.

108 

109```bash theme={null}

110#!/usr/bin/env bash

111# End-to-end test against a self-hosted environment, using Stop-hook read-back.

112# Prereqs: `claude auth login` has been run on this machine (see "Authenticate

113# from CI" below); jq is installed; CLAUDE_TEST_ENVIRONMENT_ID names an

114# environment whose runner is the one on this host, with the capture hook

115# installed and E2E_REPLY_DIR in its environment.

116 

117set -euo pipefail

118 

119: "${CLAUDE_TEST_ENVIRONMENT_ID:=${CLAUDE_TEST_POOL_ID:-}}" # CLAUDE_TEST_POOL_ID is the legacy spelling

120: "${CLAUDE_TEST_ENVIRONMENT_ID:?set CLAUDE_TEST_ENVIRONMENT_ID to a ccpool_... id served by a runner on this host}"

121: "${E2E_REPLY_DIR:?set E2E_REPLY_DIR to the directory the Stop hook on your test runner writes to, and export it to the runner process}"

122: "${TEST_REPO_REF:=main}"

123 

124[ -d "$E2E_REPLY_DIR" ] || {

125 echo "FAIL: E2E_REPLY_DIR ($E2E_REPLY_DIR) does not exist. The Stop hook on the runner needs it." >&2

126 exit 1

127}

128 

129# Waits until $E2E_REPLY_DIR/<session_id>.txt contains $2, or fails after

130# 90 seconds. Tune the timeout to your environment's cold-start time. The

131# file is written by the Stop hook on the runner.

132await_reply() {

133 local expect="$2" f="$E2E_REPLY_DIR/$1.txt"

134 local deadline=$(($(date +%s) + 90))

135 while :; do

136 if [ -f "$f" ] && grep -qF -- "$expect" "$f"; then

137 return

138 fi

139 [ "$(date +%s)" -lt "$deadline" ] || {

140 echo "FAIL: '$expect' not in $f within 90s. The Stop hook on the runner did not write it." >&2

141 echo "-- $E2E_REPLY_DIR contents --" >&2; ls -la "$E2E_REPLY_DIR" >&2

142 [ -f "$f" ] && { echo "-- $f --" >&2; cat "$f" >&2; }

143 exit 1

144 }

145 sleep 1

146 done

147}

148 

149# 1. Create the session on the test environment. Run from a git checkout

150# so the CLI can auto-detect the repo. --ref pins the checkout to a named

151# ref regardless of local HEAD.

152TURN1="e2e-probe-$(date +%s)-$$: say exactly 'ok: custom tools are reachable' and nothing else"

153EXPECT1="ok: custom tools are reachable"

154create_json=$(claude -p "$TURN1" --environment "$CLAUDE_TEST_ENVIRONMENT_ID" \

155 --ref "$TEST_REPO_REF" --output-format json)

156echo "create: $create_json"

157SESSION_ID=$(jq -er '.session_id' <<<"$create_json")

158 

159# 2. Wait for the turn-1 reply.

160await_reply "$SESSION_ID" "$EXPECT1"

161echo "turn-1 reply ok"

162 

163# 3. Post a follow-up via the CLI.

164TURN2="e2e-probe-followup-$(date +%s): say exactly 'ok: follow-up delivered' and nothing else"

165EXPECT2="ok: follow-up delivered"

166followup_json=$(claude -p "$TURN2" --cloud "$SESSION_ID" --output-format json)

167echo "followup: $followup_json"

168jq -e '.ok == true' <<<"$followup_json" >/dev/null

169 

170# 4. Wait for the turn-2 reply.

171await_reply "$SESSION_ID" "$EXPECT2"

172echo "turn-2 reply ok"

173 

174echo "PASS: test-environment round-trip (session $SESSION_ID)"

175```

176 

177Ersetzen Sie die `TURN1`/`TURN2`-Prompts und `EXPECT1`/`EXPECT2`-Sentinels durch alles, was Ihr Setup ausübt, z. B. Claude auffordern, eines Ihrer benutzerdefinierten MCP-Tools auszuführen und seine Ausgabe zu behaupten.

178 

179<h2 id="remote-test-runners">

180 Remote-Test-Runner

181</h2>

182 

183Wenn sich Ihre Test-Runner auf separater Infrastruktur befinden, z. B. eine persistente Kubernetes-Fleet, mit der Ihr CI-Job kein Dateisystem teilen kann, tauschen Sie den Dateischreibvorgang im Stop-Hook gegen einen POST an einen Endpunkt aus, auf den Ihr Driver lauscht:

184 

185```sh theme={null}

186#!/bin/sh

187# Variant of the capture hook for runners on separate infrastructure.

188# Set E2E_REPLY_URL on the runner to an endpoint the driver controls.

189[ -n "${E2E_REPLY_URL:-}" ] || exit 0

190sid=$(printf '%s' "${CLAUDE_CODE_REMOTE_SESSION_ID:-}" | sed 's/^cse_/session_/')

191[ -n "$sid" ] || exit 0

192jq -r '.last_assistant_message // empty' | \

193 curl -fsS -X POST --data-binary @- "$E2E_REPLY_URL/$sid" >/dev/null 2>&1

194exit 0

195```

196 

197Führen Sie auf der Driver-Seite alles aus, das den POST akzeptiert und die Antwort hält, bis der Test sie anfordert, z. B. einen kleinen HTTP-Listener innerhalb des CI-Jobs oder einen Webhook-Receiver, den Sie bereits ausführen. Der Hook wird auf Ihrer Infrastruktur ausgeführt, sodass der Endpunkt nur von Ihren Runnern erreichbar sein muss.

198 

199<h2 id="authenticate-from-ci">

200 Authentifizieren Sie sich von CI

201</h2>

202 

203Sowohl `claude -p ... --environment` als auch `claude -p ... --cloud` authentifizieren sich mit einem claude.ai OAuth-Token; API-Schlüssel wie `sk-ant-xxxxx` werden für keinen der beiden Aufrufe akzeptiert. Zwei Ansätze machen ein Token in CI verfügbar.

204 

205<h3 id="long-lived-ci-host">

206 Langlebiger CI-Host

207</h3>

208 

209Führen Sie `claude auth login` einmal interaktiv auf dem Computer aus, auf dem das Skript ausgeführt wird, mit einem dedizierten Benutzerkonto für Automatisierung. Claude Code speichert das Token im OS-Keychain auf macOS oder in `~/.claude/.credentials.json` auf Linux und Windows. Auf einem macOS-Host, dessen Keychain nicht geschrieben werden kann, wie es typisch in einer SSH-Sitzung der Fall ist, in der der Login-Keychain gesperrt bleibt, speichert Claude Code das Token auch dort in `~/.claude/.credentials.json`. Siehe [Credential-Verwaltung](/docs/de/authentication#credential-management).

210 

211Die CLI aktualisiert das kurzlebige Zugriffstoken automatisch bei jeder Invokation, aber die zugrunde liegende Refresh-Token-Gewährung ist auf 30 Tage ab der ersten Anmeldung begrenzt. Führen Sie daher `claude auth login` interaktiv auf diesem Host alle 30 Tage erneut aus.

212 

213<h3 id="ephemeral-ci-runners">

214 Ephemere CI-Runner

215</h3>

216 

217Es gibt heute kein langlebiges CI-Token dafür. Der Umfang, der Remote-Sitzungskontrolle gewährt, `user:sessions:claude_code`, ist serverseitig auf 30 Tage begrenzt, sodass `claude setup-token`, das ein einjähriges Inference-only-Token prägt, es nicht abdeckt. Das [Umgebungsgeheimnis](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner) wird auch nicht akzeptiert, da es nur einen Runner autorisiert, sich bei der Umgebung zu registrieren, nicht um Sitzungen zu erstellen.

218 

219Um eine gespeicherte Anmeldung auf einem ephemeren Runner bereitzustellen, setzen Sie [`CLAUDE_CODE_OAUTH_REFRESH_TOKEN` und `CLAUDE_CODE_OAUTH_SCOPES`](/docs/de/env-vars#variables), damit `claude auth login` das Token ohne Browser austauscht; die gleiche 30-Tage-Obergrenze gilt für die Refresh-Gewährung. Kontaktieren Sie Ihr Anthropic-Kontoteam, wenn Sie einen Machine-Identity-Pfad benötigen, der nicht an ein menschliches Konto gebunden ist.

220 

221<h2 id="create-a-dedicated-test-environment">

222 Erstellen Sie eine dedizierte Test-Umgebung

223</h2>

224 

225Erstellen und löschen Sie Umgebungen programmgesteuert, damit jeder CI-Lauf eine saubere erhält; der Runner, den Ihr CI-Job startet, registriert sich in der neuen Umgebung. Die unten aufgeführten Aufrufe zum Erstellen und Löschen sind die gleichen Endpunkte, die die **Cloud-Umgebungen**-Admin-Seite auf claude.ai verwendet, und sie erfordern den Header `anthropic-beta: ccr-byoc-2025-07-29`.

226 

227<h3 id="mint-the-admin-token">

228 Prägen Sie das Admin-Token

229</h3>

230 

231`$ADMIN_TOKEN` ist ein claude.ai OAuth-Zugriffstoken für ein Konto, das eine Owner-Rolle hält, geprägt auf die gleiche Weise wie [Authentifizieren Sie sich von CI](#authenticate-from-ci):

232 

233* **Prägen Sie es**: Führen Sie `claude auth login` mit einem Konto aus, das eine Owner-Rolle hält, und lesen Sie dann das aktuelle Zugriffstoken von überall dort, wo [Langlebiger CI-Host](#long-lived-ci-host) sagt, dass Claude Code es gespeichert hat.

234* **Lesen Sie es bei jedem Lauf neu**: Die CLI rotiert das Zugriffstoken, und die gleiche 30-Tage-Refresh-Grant-Obergrenze gilt, speichern Sie also keine Kopie.

235* **Übergeben Sie es über stdin**: wie das Beispiel, damit das Token nie in Curls Argumentliste oder Ihrem Build-Log landet.

236 

237<h3 id="create-the-environment">

238 Erstellen Sie die Umgebung

239</h3>

240 

241Erfassen Sie die Antwort, ohne sie auszugeben: `pool_secret` ist eine langlebige Anmeldeinformation, die Runner in der Umgebung registrieren kann. Speichern Sie sie als maskiertes CI-Geheimnis und geben Sie nur die Umgebungs-ID aus. Das `-H @-`-Formular, das das Token aus der Prozessliste hält, erfordert curl 7.55 oder später; älteres curl behandelt `@-` als wörtlichen Header und sendet die Anfrage ohne Autorisierung.

242 

243```bash theme={null}

244create=$(curl -fsS -X POST -H @- \

245 -H "anthropic-beta: ccr-byoc-2025-07-29" -H "anthropic-version: 2023-06-01" \

246 -H "content-type: application/json" \

247 -d '{"name":"ci-test-environment"}' \

248 https://api.anthropic.com/v1/code/runners/self-hosted/pools \

249 <<<"Authorization: Bearer $ADMIN_TOKEN")

250ENVIRONMENT_ID=$(jq -er .pool.pool_id <<<"$create")

251ENVIRONMENT_SECRET=$(jq -er .pool_secret <<<"$create")

252```

253 

254Bis ein [Owner **Allow self-hosted environments**](/docs/de/self-hosted-environments#availability-and-limitations) für die Organisation aktiviert hat, schlägt der Aufruf mit einem `403` `permission_error` fehl, der `self-hosted runners are disabled by your organization's policy` liest.

255 

256Starten Sie einen Runner auf diesem Host mit `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET=$ENVIRONMENT_SECRET`, plus den Capture-Hook und `E2E_REPLY_DIR` pro [Installieren Sie den Capture-Hook](#install-the-capture-hook-on-your-test-runner), dann führen Sie das Test-Skript aus.

257 

258<h3 id="delete-the-environment">

259 Löschen Sie die Umgebung

260</h3>

261 

262Löschen Sie die Umgebung, wenn der Lauf beendet ist, damit jeder CI-Lauf sauber startet:

263 

264```bash theme={null}

265curl -fsS -X DELETE -H @- \

266 -H "anthropic-beta: ccr-byoc-2025-07-29" -H "anthropic-version: 2023-06-01" \

267 "https://api.anthropic.com/v1/code/runners/self-hosted/pools/$ENVIRONMENT_ID" \

268 <<<"Authorization: Bearer $ADMIN_TOKEN"

269```

Details

203 203 

204Claude Code liest die Workload Identity Federation-Variablen und die `ANTHROPIC_PROFILE` und `ANTHROPIC_CONFIG_DIR` Selektoren nur beim Start, daher wechselt ein vom Server bereitgestellter Wert dafür die Anmeldedatenquelle der Sitzung nicht, auch nachdem der Abruf erfolgreich ist. Um diese Selektoren auf Claude Code v2.1.223 oder später bereitzustellen, verwenden Sie [endpunktverwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) wie MDM oder `managed-settings.json`. Für `CLAUDE_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen ist das Zurückhalten selbst der Schutz: Der zwischengespeicherte Wert bleibt aus der Umgebung, bis der Server die Payload bestätigt.204Claude Code liest die Workload Identity Federation-Variablen und die `ANTHROPIC_PROFILE` und `ANTHROPIC_CONFIG_DIR` Selektoren nur beim Start, daher wechselt ein vom Server bereitgestellter Wert dafür die Anmeldedatenquelle der Sitzung nicht, auch nachdem der Abruf erfolgreich ist. Um diese Selektoren auf Claude Code v2.1.223 oder später bereitzustellen, verwenden Sie [endpunktverwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) wie MDM oder `managed-settings.json`. Für `CLAUDE_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen ist das Zurückhalten selbst der Schutz: Der zwischengespeicherte Wert bleibt aus der Umgebung, bis der Server die Payload bestätigt.

205 205 

206Jeder andere Schlüssel im zwischengespeicherten `env`-Block wird beim Start angewendet. Sobald der Server die Payload bestätigt und Sie sie genehmigen, wenn sie [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, werden die zurückgehaltenen Variablen für den Rest der Sitzung angewendet; die oben behandelten Startup-Only-Selektoren erreichen die Umgebung, wechseln aber nicht die Anmeldedatenquelle der laufenden Sitzung.206Jeder andere Schlüssel im zwischengespeicherten `env`-Block wird beim Start angewendet. Sobald der Server die Payload bestätigt und Sie sie genehmigen, wenn sie [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, werden die zurückgehaltenen Variablen für den Rest der Sitzung angewendet.

207 207 

208Wenn Ihre Organisation einen Proxy benötigt, um `api.anthropic.com` zu erreichen, betrifft das Zurückhalten nur den vom Server bereitgestellten `env`-Block selbst: Ein Proxy, der in einem [endpunktverwalteten](/docs/de/managed-settings#delivery-mechanisms) `env`-Block über MDM oder `managed-settings.json`, in der Shell-Umgebung oder in [Benutzereinstellungen](/docs/de/settings#where-settings-live) gesetzt ist, erreicht den Einstellungsabruf. Die endpunktverwaltete Quelle erfordert Claude Code v2.1.223 oder später: Der zwischengespeicherte serververwaltete Proxy-Wert wird zurückgehalten, bis der Abruf ihn bestätigt, daher füllt der endpunktverwaltete Wert pro Schlüssel aus und erreicht den Abruf selbst. Vor v2.1.223 verwenden Sie die Shell-Umgebung oder Benutzereinstellungen, damit der Proxy neben einer zwischengespeicherten Server-Payload gilt. Der erste Start hat keinen Cache, daher ist eine endpunktverwaltete Quelle, die Shell-Umgebung oder Benutzereinstellungen immer noch für den anfänglichen Abruf erforderlich.208Wenn Ihre Organisation einen Proxy benötigt, um `api.anthropic.com` zu erreichen, betrifft das Zurückhalten nur den vom Server bereitgestellten `env`-Block selbst: Ein Proxy, der in einem [endpunktverwalteten](/docs/de/managed-settings#delivery-mechanisms) `env`-Block über MDM oder `managed-settings.json`, in der Shell-Umgebung oder in [Benutzereinstellungen](/docs/de/settings#where-settings-live) gesetzt ist, erreicht den Einstellungsabruf. Die endpunktverwaltete Quelle erfordert Claude Code v2.1.223 oder später: Der zwischengespeicherte serververwaltete Proxy-Wert wird zurückgehalten, bis der Abruf ihn bestätigt, daher füllt der endpunktverwaltete Wert pro Schlüssel aus und erreicht den Abruf selbst. Vor v2.1.223 verwenden Sie die Shell-Umgebung oder Benutzereinstellungen, damit der Proxy neben einer zwischengespeicherten Server-Payload gilt. Der erste Start hat keinen Cache, daher ist eine endpunktverwaltete Quelle, die Shell-Umgebung oder Benutzereinstellungen immer noch für den anfänglichen Abruf erforderlich.

209 209 


231 231 

232Um Clients daran zu hindern, mit zwischengespeicherten oder fehlenden serververwalteten Einstellungen zu starten, setzen Sie `forceRemoteSettingsRefresh: true` in Ihren verwalteten Einstellungen.232Um Clients daran zu hindern, mit zwischengespeicherten oder fehlenden serververwalteten Einstellungen zu starten, setzen Sie `forceRemoteSettingsRefresh: true` in Ihren verwalteten Einstellungen.

233 233 

234Clients, die sich über ein [Claude-Apps-Gateway](#platform-availability) angemeldet haben, warten auf den Startup-Abruf, unabhängig davon, ob Sie diese Einstellung setzen oder nicht. Wenn das Gateway einen beaufsichtigten interaktiven Start mit einem `401` beantwortet und diese Einstellung deaktiviert ist, hat das Gateway diese Anmeldung beendet, daher druckt Claude Code [`Cloud gateway session expired — run /login to reconnect.`](/docs/de/errors#cloud-gateway-session-expired) und öffnet die Sitzung vom Gateway abgemeldet, bis der Benutzer `/login` ausführt. Wenn der Abruf auf andere Weise fehlschlägt, oder bei jeder anderen Art von Start außer einem `claude auth`-Unterbefehl, wird der Client mit einem Fehler beendet.234Clients, die sich über ein [Claude-Apps-Gateway](#platform-availability) angemeldet haben, warten auf den Startup-Abruf, unabhängig davon, ob Sie diese Einstellung setzen oder nicht, und handhaben einen fehlgeschlagenen Abruf wie folgt:

235 

236* Wenn das Gateway einen beaufsichtigten interaktiven Start mit einem `401` beantwortet und diese Einstellung deaktiviert ist, hat das Gateway diese Anmeldung beendet. Claude Code druckt [`Cloud gateway session expired — run /login to reconnect.`](/docs/de/errors#cloud-gateway-session-expired) und öffnet die Sitzung vom Gateway abgemeldet, bis der Benutzer `/login` ausführt.

237* Wenn der Abruf auf andere Weise fehlschlägt, oder bei jeder anderen Art von Start außer einem `claude auth` Unterbefehl, wird der Client mit einem Fehler beendet.

235 238 

236Wenn diese Einstellung in einer Sitzung aktiv ist, die serververwaltete Einstellungen abruft, blockiert die CLI beim Start, bis Remote-Einstellungen neu abgerufen werden. Wenn der Abruf fehlschlägt, wird die CLI beendet, anstatt ohne die Richtlinie fortzufahren. Diese Einstellung perpetuiert sich selbst: Sobald sie vom Server bereitgestellt wird, wird sie auch lokal zwischengespeichert, sodass nachfolgende Starts das gleiche Verhalten erzwingen, auch bevor der erste erfolgreiche Abruf einer neuen Sitzung erfolgt. Eine Sitzung, die [serververwaltete Einstellungen nicht abruft](#platform-availability), startet ohne zu warten.239Wenn diese Einstellung in einer Sitzung aktiv ist, die serververwaltete Einstellungen abruft, blockiert die CLI beim Start, bis Remote-Einstellungen neu abgerufen werden. Wenn der Abruf fehlschlägt, wird die CLI beendet, anstatt ohne die Richtlinie fortzufahren. Diese Einstellung perpetuiert sich selbst: Sobald sie vom Server bereitgestellt wird, wird sie auch lokal zwischengespeichert, sodass nachfolgende Starts das gleiche Verhalten erzwingen, auch bevor der erste erfolgreiche Abruf einer neuen Sitzung erfolgt. Eine Sitzung, die [serververwaltete Einstellungen nicht abruft](#platform-availability), startet ohne zu warten.

237 240 


283 Claude Code speichert keine Genehmigung für ein Loopback-Entwicklungs-Gateway, das über einfaches HTTP erreicht wird, daher wird der Dialog nach jeder Anmeldung erneut angezeigt.286 Claude Code speichert keine Genehmigung für ein Loopback-Entwicklungs-Gateway, das über einfaches HTTP erreicht wird, daher wird der Dialog nach jeder Anmeldung erneut angezeigt.

284* **Jede andere Anmeldedaten**, wie ein API-Schlüssel oder `CLAUDE_CODE_OAUTH_TOKEN`: eine Genehmigung für die bereitgestellten Einstellungen, die mit der zwischengespeicherten Kopie der Einstellungen in diesem Konfigurationsverzeichnis aufbewahrt werden. Claude Code zeigt den Dialog erneut an, wenn sich die Einstellungen ändern, die Genehmigung erfordern, und nachdem Sie `/logout` oder `claude auth logout` ausführen, von denen jeder die zwischengespeicherte Kopie löscht.287* **Jede andere Anmeldedaten**, wie ein API-Schlüssel oder `CLAUDE_CODE_OAUTH_TOKEN`: eine Genehmigung für die bereitgestellten Einstellungen, die mit der zwischengespeicherten Kopie der Einstellungen in diesem Konfigurationsverzeichnis aufbewahrt werden. Claude Code zeigt den Dialog erneut an, wenn sich die Einstellungen ändern, die Genehmigung erfordern, und nachdem Sie `/logout` oder `claude auth logout` ausführen, von denen jeder die zwischengespeicherte Kopie löscht.

285 288 

289Eine Genehmigung für `sandbox.credentials` oder `sandbox.network.tlsTerminate` deckt auch die [`sandbox.network.allowedDomains`](/docs/de/settings-reference#sandbox-network-alloweddomains) Einträge in denselben bereitgestellten Einstellungen ab, da beide Einstellungen auf diese Zulassungsliste wirken. Der Dialog wird erneut angezeigt, wenn Ihr Administrator einen dieser Einträge hinzufügt oder entfernt, obwohl `sandbox.network.allowedDomains` selbst keine Genehmigung erfordert.

290 

286Mit einer gespeicherten claude.ai-Anmeldung:291Mit einer gespeicherten claude.ai-Anmeldung:

287 292 

288* Wenn Sie sich ab- und wieder anmelden oder zu einer anderen Organisation wechseln und später zurückkehren, zeigt Claude Code den Dialog nicht erneut an, während diese Einstellungen unverändert sind, es sei denn, ein anderes Konto hat sie für diese Organisation im gleichen Konfigurationsverzeichnis dazwischen genehmigt.293* Wenn Sie sich ab- und wieder anmelden, oder zu einer anderen Organisation wechseln und später zurückkehren, zeigt Claude Code den Dialog nicht erneut an, während diese Einstellungen unverändert sind, es sei denn, ein anderes Konto hat sie für diese Organisation im gleichen Konfigurationsverzeichnis dazwischen genehmigt.

289* Wenn Sie sich bei der gleichen Organisation mit einem anderen Konto anmelden, zeigt Claude Code den Dialog erneut an, auch wenn die Einstellungen unverändert sind. Die Genehmigung dieses Kontos ersetzt die vorherige, daher zeigt Claude Code den Dialog erneut an, wenn Sie zurückwechseln.294* Wenn Sie sich bei der gleichen Organisation mit einem anderen Konto anmelden, zeigt Claude Code den Dialog erneut an, auch wenn die Einstellungen unverändert sind. Die Genehmigung dieses Kontos ersetzt die vorherige, daher zeigt Claude Code den Dialog erneut an, wenn Sie zurückwechseln.

290 295 

291Claude Code kann den Dialog nicht immer anzeigen. Jeder Fall unten sagt, welche Einstellungen gelten, wenn es nicht kann, und wann Sie den Dialog nächstes Mal sehen:296Claude Code kann den Dialog nicht immer anzeigen. Jeder Fall unten sagt, welche Einstellungen gelten, wenn es nicht kann, und wann Sie den Dialog nächstes Mal sehen:


326* Ein Team- oder Enterprise-OAuth-Login331* Ein Team- oder Enterprise-OAuth-Login

327* Ein OAuth-Token, das über `CLAUDE_CODE_OAUTH_TOKEN` bereitgestellt wird332* Ein OAuth-Token, das über `CLAUDE_CODE_OAUTH_TOKEN` bereitgestellt wird

328* Ein direkt konfigurierter API-Schlüssel333* Ein direkt konfigurierter API-Schlüssel

329* Ein `user_oauth` [Anthropic-Profil](/docs/de/authentication#anthropic-profiles-and-federation-credentials), das die [Anmeldung ohne API-Schlüssel in der Konsole](/docs/de/authentication#sign-in-without-an-api-key) oder die Claude Platform CLI `ant auth login` schreibt, es sei denn, das Profil setzt eine `base_url` andere als die Anthropic API. Erfordert Claude Code v2.1.257 oder später.334* Ein `user_oauth` [Anthropic-Profil](/docs/de/authentication#anthropic-profiles-and-federation-credentials), es sei denn, das Profil setzt eine `base_url` andere als die Anthropic API. Erfordert Claude Code v2.1.257 oder später.

330 335 

331Weder Schlüssel, die von einem [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Skript zurückgegeben werden, noch [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)-Anmeldedaten lösen den Abruf der Einstellungen aus.336Weder Schlüssel, die von einem [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper)-Skript zurückgegeben werden, noch [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)-Anmeldedaten lösen den Abruf der Einstellungen aus.

332 337 

sessions.md +9 −6

Details

17Sitzungen werden kontinuierlich in [lokale Transkriptdateien](#export-and-locate-session-data) gespeichert, während Sie arbeiten, sodass Sie nach dem Beenden oder Ausführen von `/clear` zu einer zurückkehren können. Verwenden Sie diese Einstiegspunkte:17Sitzungen werden kontinuierlich in [lokale Transkriptdateien](#export-and-locate-session-data) gespeichert, während Sie arbeiten, sodass Sie nach dem Beenden oder Ausführen von `/clear` zu einer zurückkehren können. Verwenden Sie diese Einstiegspunkte:

18 18 

19| Befehl | Was er tut |19| Befehl | Was er tut |

20| :-------------------------- | :---------------------------------------------------------------------------------------------- |20| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |

21| `claude --continue` | Setzt die neueste interaktive Sitzung im aktuellen Verzeichnis fort |21| `claude --continue` | Setzt die neueste Konversation im aktuellen Verzeichnis fort |

22| `claude --resume` | Öffnet die [Sitzungsauswahl](#use-the-session-picker) |22| `claude --resume` | Öffnet die [Sitzungsauswahl](#use-the-session-picker) |

23| `claude --resume <name>` | Setzt die benannte Sitzung direkt fort |23| `claude --resume <name>` | Setzt die benannte Sitzung direkt fort |

24| `claude --resume <transcript-path>` | Setzt die Konversation fort, die in der `.jsonl` [Transkriptdatei](#where-transcripts-are-stored) unter diesem absoluten Pfad gespeichert ist |

24| `claude --from-pr <number>` | Öffnet die Sitzungsauswahl gefiltert nach Sitzungen, die mit diesem Pull Request verknüpft sind |25| `claude --from-pr <number>` | Öffnet die Sitzungsauswahl gefiltert nach Sitzungen, die mit diesem Pull Request verknüpft sind |

25| `/resume` | Wechselt zu einem anderen Gespräch innerhalb einer aktiven Sitzung |26| `/resume` | Wechselt zu einem anderen Gespräch innerhalb einer aktiven Sitzung |

26 27 

27Claude Code lässt Sitzungen, die mit [`claude -p`](/docs/de/headless) oder dem [Agent SDK](/docs/de/agent-sdk/overview) erstellt wurden, aus der Sitzungsauswahl und aus `claude --continue` aus. Sie können eine trotzdem fortsetzen, indem Sie ihre Sitzungs-ID an `claude --resume <session-id>` übergeben. Mit `claude --continue` überspringt Claude Code auch [Hintergrund-Sitzungen](/docs/de/agent-view) und [Sitzungen, deren erste Eingabeaufforderung `/loop` war](#where-the-session-picker-looks). Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`-, SDK- und `/loop`-Sitzungen ein und überspringt weiterhin Hintergrund-Sitzungen.28Claude Code lässt Sitzungen, die mit [`claude -p`](/docs/de/headless) oder dem [Agent SDK](/docs/de/agent-sdk/overview) erstellt wurden, aus der Sitzungsauswahl und aus `claude --continue` aus. Sie können eine trotzdem fortsetzen, indem Sie ihre Sitzungs-ID an `claude --resume <session-id>` übergeben. Mit `claude --continue` überspringt Claude Code auch [Sitzungen, deren erste Eingabeaufforderung `/loop` war](#where-the-session-picker-looks). Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`-, SDK- und `/loop`-Sitzungen ein.

29 

30`claude --continue` öffnet eine [Hintergrund-Sitzung](/docs/de/agent-view), die beendet wurde, aber nicht eine, die noch läuft; das Öffnen beendeter Hintergrund-Sitzungen erfordert Claude Code v2.1.257 oder später. Wenn Ihre neueste Konversation eine ist, die Sie [in den Hintergrund verschoben haben](/docs/de/agent-view#send-the-session-to-the-background), und sie läuft dort noch, beendet Claude Code mit `Your most recent conversation is running in the background` und der ID dieser Sitzung. Hängen Sie sich an die Sitzung von [`claude agents`](/docs/de/agent-view#attach-to-a-session) an, oder führen Sie `claude --resume` aus, um eine andere auszuwählen.

28 31 

29Sie können `claude --resume <session-id>` aus jedem Verzeichnis ausführen: Claude Code sucht nach der ID zuerst im aktuellen Projektverzeichnis und seinen Git Worktrees, dann in jedem anderen Projekt auf dieser Maschine, sodass es eine Sitzung findet, die anderswo gestartet wurde oder sich mit [`/cd`](/docs/de/commands) verschoben hat. Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie Claude Code veranlasst, nicht gefunden zu melden, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`. Vor v2.1.223 stoppte die Suche im aktuellen Projektverzeichnis und seinen Git Worktrees, sodass Sie die Sitzung aus dem Verzeichnis fortsetzen mussten, in dem sie zuletzt funktioniert hat.32Sie können `claude --resume <session-id>` aus jedem Verzeichnis ausführen: Claude Code sucht nach der ID zuerst im aktuellen Projektverzeichnis und seinen Git Worktrees, dann in jedem anderen Projekt auf dieser Maschine, sodass es eine Sitzung findet, die anderswo gestartet wurde oder sich mit [`/cd`](/docs/de/commands) verschoben hat. Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie Claude Code veranlasst, nicht gefunden zu melden, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`. Vor v2.1.223 stoppte die Suche im aktuellen Projektverzeichnis und seinen Git Worktrees, sodass Sie die Sitzung aus dem Verzeichnis fortsetzen mussten, in dem sie zuletzt funktioniert hat.

30 33 


34 37 

35Eine fortgesetzte Sitzung stellt das Gespräch zusammen mit dem darin gespeicherten Zustand wieder her:38Eine fortgesetzte Sitzung stellt das Gespräch zusammen mit dem darin gespeicherten Zustand wieder her:

36 39 

37* Gesprächsverlauf: der vollständige Verlauf, einschließlich Werkzeugaufrufe und Ergebnisse.40* Gesprächsverlauf: der vollständige Verlauf, einschließlich Werkzeugaufrufe und Ergebnisse. Ein Werkzeug, das noch lief, als der vorherige Prozess endete, beispielsweise bei einem Absturz, wird nicht beendet oder erneut ausgeführt, wenn Sie fortsetzen; Claude setzt ohne seine Ausgabe fort.

38* Modell: Die Sitzung wird auf dem Modell fortgesetzt, das sie verwendet hat. Das Modell wird nicht wiederhergestellt, wenn es eingestellt wurde oder nicht von `availableModels` zulässig ist, wenn ein `--model`-Flag oder eine `ANTHROPIC_MODEL`-Familie-Umgebungsvariable beim Start eine auswählt, oder bei Anbietern, die anbieterspezifische Bereitstellungs-IDs verwenden, wie [Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry](/docs/de/third-party-integrations); siehe [Modellkonfiguration](/docs/de/model-config#setting-your-model) für die Auflösungsreihenfolge.41* Modell: Die Sitzung wird auf dem Modell fortgesetzt, das sie verwendet hat. Das Modell wird nicht wiederhergestellt, wenn es eingestellt wurde oder nicht von `availableModels` zulässig ist, wenn ein `--model`-Flag oder eine `ANTHROPIC_MODEL`-Familie-Umgebungsvariable beim Start eine auswählt, oder bei Anbietern, die anbieterspezifische Bereitstellungs-IDs verwenden, wie [Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry](/docs/de/third-party-integrations); siehe [Modellkonfiguration](/docs/de/model-config#setting-your-model) für die Auflösungsreihenfolge.

39* Agent: Eine Sitzung, die mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der `agent`-Einstellung gestartet wurde, wird als dieser Agent fortgesetzt und behält seine Systemaufforderung, Werkzeugbeschränkungen und sein Modell. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen. Claude Code sucht nach dem Agent an zwei Stellen: im ursprünglichen Verzeichnis der Sitzung, sofern Sie [diesem Arbeitsbereich vertraut haben](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann im Verzeichnis, aus dem Sie fortsetzen, sodass ein projektbezogener Agent weiterhin geladen wird, wenn Sie aus einem anderen Verzeichnis fortsetzen. Wenn Claude Code den Agent an keiner Stelle findet, wird die Sitzung mit den Standard-Werkzeugen und der Systemaufforderung fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).42* Agent: Eine Sitzung, die mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der `agent`-Einstellung gestartet wurde, wird als dieser Agent fortgesetzt und behält seine Werkzeugbeschränkungen und sein Modell. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen; für die Systemaufforderung in beiden Fällen siehe [Systemaufforderungs-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code sucht nach dem Agent an zwei Stellen: im ursprünglichen Verzeichnis der Sitzung, sofern Sie [diesem Arbeitsbereich vertraut haben](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann im Verzeichnis, aus dem Sie fortsetzen, sodass ein projektbezogener Agent weiterhin geladen wird, wenn Sie aus einem anderen Verzeichnis fortsetzen. Wenn Claude Code den Agent an keiner Stelle findet, wird die Sitzung mit den Standard-Werkzeugen fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).

40* Berechtigungsmodus: Wenn Sie aus einem Terminal mit `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>` fortsetzen, wenn der Name einer Sitzung entspricht, ohne `-p`, stellt Claude Code den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen in [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), die auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` abdecken. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.43* Berechtigungsmodus: Wenn Sie aus einem Terminal mit `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>` fortsetzen, wenn der Name einer Sitzung entspricht, ohne `-p`, stellt Claude Code den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen in [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), die auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` abdecken. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.

41* Aktives Ziel: Ein [Ziel](/docs/de/goal#resume-with-an-active-goal), das noch aktiv war, als die Sitzung endete, wird übertragen; seine Rundenzahl, sein Timer und seine Token-Ausgaben-Baseline werden zurückgesetzt.44* Aktives Ziel: Ein [Ziel](/docs/de/goal#resume-with-an-active-goal), das noch aktiv war, als die Sitzung endete, wird übertragen; seine Rundenzahl, sein Timer und seine Token-Ausgaben-Baseline werden zurückgesetzt.

42* Geplante Aufgaben: [Aufgaben, die nicht abgelaufen sind](/docs/de/scheduled-tasks#limitations), werden wiederhergestellt. Hintergrund-Bash- und Monitor-Aufgaben nicht.45* Geplante Aufgaben: [Aufgaben, die nicht abgelaufen sind](/docs/de/scheduled-tasks#limitations), werden wiederhergestellt. Hintergrund-Bash- und Monitor-Aufgaben nicht.

43 46 

44Nicht jedes Konfigurationsflag aus dem ursprünglichen Start wird wiederhergestellt. Wenn die Sitzung von `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` oder mit `--add-dir` hinzugefügten Verzeichnissen abhängig war, übergeben Sie diese erneut, wenn Sie fortsetzen; mit `/add-dir` während der Sitzung hinzugefügte Verzeichnisse werden ebenfalls nicht wiederhergestellt, obwohl die Sitzungsauswahl sie weiterhin verwendet, um die Sitzung zu lokalisieren. Die Standard-Einstellungsdateien wie `settings.json` und `settings.local.json` werden beim Start erneut gelesen, sodass Konfigurationen, die sich darin befinden, nicht erneut übergeben werden müssen.47Nicht jedes Konfigurationsflag aus dem ursprünglichen Start wird wiederhergestellt. Wenn die Sitzung von `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` oder mit `--add-dir` hinzugefügten Verzeichnissen abhängig war, übergeben Sie diese erneut, wenn Sie fortsetzen; mit `/add-dir` während der Sitzung hinzugefügte Verzeichnisse werden ebenfalls nicht wiederhergestellt, obwohl die Sitzungsauswahl sie weiterhin verwendet, um die Sitzung zu lokalisieren. Die Standard-Einstellungsdateien wie `settings.json` und `settings.local.json` werden beim Start erneut gelesen, sodass Konfigurationen, die sich darin befinden, nicht erneut übergeben werden müssen. Für `--system-prompt` und `--append-system-prompt` siehe [Systemaufforderungs-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations).

45 48 

46<h4 id="permission-mode-on-resume">49<h4 id="permission-mode-on-resume">

47 Berechtigungsmodus beim Fortsetzen50 Berechtigungsmodus beim Fortsetzen

settings.md +8 −5

Details

591 591 

592Jeder Eintrag des Schlüssels auf der [Einstellungsreferenz](/docs/de/settings-reference) listet seine Überschreibungen pro Sitzung und welche Vorrang hat auf, also überprüfen Sie den Eintrag für den Schlüssel, den Sie ändern möchten.592Jeder Eintrag des Schlüssels auf der [Einstellungsreferenz](/docs/de/settings-reference) listet seine Überschreibungen pro Sitzung und welche Vorrang hat auf, also überprüfen Sie den Eintrag für den Schlüssel, den Sie ändern möchten.

593 593 

594Befehle, die Sie in einer Sitzung ausführen, speichern meist Ihre Wahl: `/config` schreibt in Ihre Einstellungsdateien, `/model` speichert den Wert als Ihren Standard für neue Sitzungen, und `/effort` auf Ihrer Maschine speichert die Stufe als Ihren Standard für das Modell, das Sie verwenden.594Befehle, die Sie in einer Sitzung ausführen, speichern meist Ihre Wahl: wenn Sie eine Einstellung in `/config` ändern, schreibt Claude Code in Ihre Einstellungsdateien, und `/model` speichert den Wert als Ihren Standard für neue Sitzungen.

595 595 

596Wenn Sie `s` im `/model` Picker drücken, wechselt Claude Code das Modell, ohne es als Ihren Benutzer-Standard zu speichern. Claude Code wendet einige `/effort` Stufen, wie `max` und `ultracode`, nur auf die aktuelle Sitzung an; siehe [Passen Sie die Anstrengungsstufe an](/docs/de/model-config#adjust-effort-level).596Wenn Sie `s` im `/model` Picker drücken, wechselt Claude Code das Modell, ohne es als Ihren Benutzer-Standard zu speichern. [Passen Sie die Anstrengungsstufe an](/docs/de/model-config#adjust-effort-level) sagt, welche `/effort` Picks Claude Code als Ihren Standard für das Modell speichert, das Sie verwenden, und welche nur auf die aktuelle Sitzung angewendet werden.

597 597 

598Um beispielsweise eine Sitzung auf Opus zu starten, ohne Ihren Standard zu ändern:598Um beispielsweise eine Sitzung auf Opus zu starten, ohne Ihren Standard zu ändern:

599 599 


605 Wenn Änderungen wirksam werden605 Wenn Änderungen wirksam werden

606</h3>606</h3>

607 607 

608Claude Code überwacht Ihre Einstellungsdateien und lädt sie neu, wenn sie sich ändern, sodass es die meisten Änderungen auf die laufende Sitzung ohne Neustart anwendet, einschließlich Änderungen an `permissions`, `hooks` und Anmeldedaten-Helfern wie `apiKeyHelper`. Das Neuladen behandelt Benutzer-, Projekt-, lokale und verwaltete Einstellungen, und Claude Code führt den [`ConfigChange` Hook](/docs/de/hooks#configchange) für jede erkannte Einstellungsdatei-Änderung aus, nicht für verwaltete Einstellungen, die von MDM oder der claude.ai-Konsole ankommen. Verwaltete Einstellungen, die von MDM oder der claude.ai-Konsole ankommen, erreichen eine laufende Sitzung nach einem Zeitplan statt sofort; die [Bereitstellungstabelle](/docs/de/managed-settings#choose-a-delivery-mechanism) gibt ihn pro Quelle an.608Claude Code überwacht Ihre Einstellungsdateien und lädt sie neu, wenn sie sich ändern, sodass es die meisten Änderungen auf die laufende Sitzung ohne Neustart anwendet, einschließlich Änderungen an `permissions`, `hooks` und Anmeldedaten-Helfern wie `apiKeyHelper`. Claude Code lädt auch eine Einstellungsdatei, die Sie mid-Sitzung erstellen, wenn ihr Ordner existierte, als die Sitzung begann. Für den `.claude/` Ordner des Projekts lädt es die Datei auch, wenn Sie den Ordner in der gleichen Sitzung erstellen.

609 

610Das Neuladen behandelt Benutzer-, Projekt-, lokale und verwaltete Einstellungen, und Claude Code führt den [`ConfigChange` Hook](/docs/de/hooks#configchange) für jede erkannte Einstellungsdatei-Änderung aus, nicht für verwaltete Einstellungen, die von MDM oder der claude.ai-Konsole ankommen. Verwaltete Einstellungen, die von MDM oder der claude.ai-Konsole ankommen, erreichen eine laufende Sitzung nach einem Zeitplan statt sofort; die [Bereitstellungstabelle](/docs/de/managed-settings#choose-a-delivery-mechanism) gibt ihn pro Quelle an.

609 611 

610Claude Code liest einige Schlüssel nur einmal, beim Sitzungsstart, sodass eine Änderung an einem von ihnen die laufende Sitzung nicht erreicht. Admin-seitige Schlüssel, die auch auf einen Neustart warten, wie `requiredMinimumVersion`, sind unter [wo und wann eine Richtlinie angewendet wird](/docs/de/managed-settings#where-and-when-a-policy-applies) aufgelistet. Die, die Sie am ehesten mid-Sitzung bearbeiten:612Claude Code liest einige Schlüssel nur einmal, beim Sitzungsstart, sodass eine Änderung an einem von ihnen die laufende Sitzung nicht erreicht. Admin-seitige Schlüssel, die auch auf einen Neustart warten, wie `requiredMinimumVersion`, sind unter [wo und wann eine Richtlinie angewendet wird](/docs/de/managed-settings#where-and-when-a-policy-applies) aufgelistet. Die, die Sie am ehesten mid-Sitzung bearbeiten:

611 613 


782Für ein paar sicherheitsempfindliche Schlüssel ehrt Claude Code einen restriktiven Wert aus einem Bereich, der ansonsten verwaltete Einstellungen nicht überschreiben könnte. Finden Sie den Schlüssel in dieser Tabelle, um zu sehen, welchen Wert er ehrt und von wo.784Für ein paar sicherheitsempfindliche Schlüssel ehrt Claude Code einen restriktiven Wert aus einem Bereich, der ansonsten verwaltete Einstellungen nicht überschreiben könnte. Finden Sie den Schlüssel in dieser Tabelle, um zu sehen, welchen Wert er ehrt und von wo.

783 785 

784| Schlüssel | Wert, den Claude Code ehrt | Notizen |786| Schlüssel | Wert, den Claude Code ehrt | Notizen |

785| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |787| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

786| [`disableClaudeAiConnectors`](/docs/de/settings-reference#disableclaudeaiconnectors) | `true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `false` setzt |788| [`disableClaudeAiConnectors`](/docs/de/settings-reference#disableclaudeaiconnectors) | `true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `false` setzt |

787| [`enableArtifact`](/docs/de/settings-reference#enableartifact) | `false` aus jedem Bereich und `disableArtifact: true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `true` setzt; nichts schaltet das [Artifact-Tool](/docs/de/artifacts#disable-artifacts) wieder ein. Erfordert Claude Code v2.1.242 oder später |789| [`enableArtifact`](/docs/de/settings-reference#enableartifact) | `false` aus jedem Bereich und `disableArtifact: true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `true` setzt; nichts schaltet das [Artifact-Tool](/docs/de/artifacts#disable-artifacts) wieder ein. Erfordert Claude Code v2.1.242 oder später |

788| [`isolatePeerMachines`](/docs/de/settings-reference#isolatepeermachines) | `true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `false` setzt |790| [`isolatePeerMachines`](/docs/de/settings-reference#isolatepeermachines) | `true` aus jedem Bereich | Geehrt, auch wenn eine verwaltete Quelle `false` setzt |


790| [`crossSessionInbound`](/docs/de/settings-reference#crosssessioninbound) | Ein strengerer Wert aus `.claude/settings.json` oder `.claude/settings.local.json`, auf der `accept` \< `hold` \< `refuse` Leiter | Geehrt über verwaltete, `--settings` und Benutzer-Werte; ein Projekt- oder lokaler Wert, der nicht strenger ist, wird ignoriert |792| [`crossSessionInbound`](/docs/de/settings-reference#crosssessioninbound) | Ein strengerer Wert aus `.claude/settings.json` oder `.claude/settings.local.json`, auf der `accept` \< `hold` \< `refuse` Leiter | Geehrt über verwaltete, `--settings` und Benutzer-Werte; ein Projekt- oder lokaler Wert, der nicht strenger ist, wird ignoriert |

791| [`useAutoModeDuringPlan`](/docs/de/settings-reference#useautomodeduringplan) | `false` aus jeder verwalteten Quelle, `--settings`, `~/.claude/settings.json` oder `.claude/settings.local.json` | Geehrt, auch wenn die gewinnende verwaltete Quelle `true` setzt; ein `false` in `.claude/settings.json` wird ignoriert |793| [`useAutoModeDuringPlan`](/docs/de/settings-reference#useautomodeduringplan) | `false` aus jeder verwalteten Quelle, `--settings`, `~/.claude/settings.json` oder `.claude/settings.local.json` | Geehrt, auch wenn die gewinnende verwaltete Quelle `true` setzt; ein `false` in `.claude/settings.json` wird ignoriert |

792| [`syncClaudeAiSkills`](/docs/de/settings-reference#syncclaudeaiskills) | `false` aus jeder verwalteten Quelle, `--settings`, `~/.claude/settings.json` oder `.claude/settings.local.json` | Geehrt, auch wenn die gewinnende verwaltete Quelle `true` setzt; ein `false` in `.claude/settings.json` wird ignoriert |794| [`syncClaudeAiSkills`](/docs/de/settings-reference#syncclaudeaiskills) | `false` aus jeder verwalteten Quelle, `--settings`, `~/.claude/settings.json` oder `.claude/settings.local.json` | Geehrt, auch wenn die gewinnende verwaltete Quelle `true` setzt; ein `false` in `.claude/settings.json` wird ignoriert |

795| [`maxEffortLevel`](/docs/de/settings-reference#maxeffortlevel) | Eine niedrigere Obergrenze aus jedem Bereich, einschließlich `--settings` | Geehrt, auch wenn die verwalteten Einstellungen, die Claude Code anwendet, eine höhere Obergrenze setzen; die niedrigste Obergrenze gilt. Erfordert Claude Code v2.1.267 oder später |

793 796 

794Eine App, die Claude Code in sich selbst ausführt und [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars) setzt, ist auch eine Ausnahme. Claude Code nimmt die Modell-Konfiguration dieser App über die `model`, `fallbackModel` und `modelOverrides` Schlüssel aus jeder verwalteten Quelle, und über die Modell-Auswahl-Variablen in einem verwalteten `env` Block, wie `ANTHROPIC_MODEL` und die `ANTHROPIC_DEFAULT_*_MODEL` Familie. Claude Code behält eine verwaltete [`availableModels`](/docs/de/settings-reference#availablemodels) Allowlist in Kraft, es sei denn, die App liefert ihre eigene.797Eine App, die Claude Code in sich selbst ausführt und [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars) setzt, ist auch eine Ausnahme. Claude Code nimmt die Modell-Konfiguration dieser App über die `model`, `fallbackModel`, `modelPicker` und `modelOverrides` Schlüssel aus jeder verwalteten Quelle, und über die Modell-Auswahl-Variablen in einem verwalteten `env` Block, wie `ANTHROPIC_MODEL` und die `ANTHROPIC_DEFAULT_*_MODEL` Familie. Claude Code behält eine verwaltete [`availableModels`](/docs/de/settings-reference#availablemodels) Allowlist in Kraft, es sei denn, die App liefert ihre eigene.

795 798 

796<h2 id="settings-in-cloud-sessions">799<h2 id="settings-in-cloud-sessions">

797 Einstellungen in Cloud-Sitzungen800 Einstellungen in Cloud-Sitzungen

settings-example.md +396 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Beispiel-Einstellungsdateien

6 

7> Realistische settings.json-Dateien für einen Entwickler, ein Team und eine Organisation: Kopieren Sie eine, behalten Sie die gewünschten Schlüssel und ändern Sie die Werte.

8 

9Diese Seite enthält drei Beispiel-`settings.json`-Dateien, eine für jeden Ort, an dem Sie eine Einstellung speichern:

10 

11* Die `~/.claude/settings.json` eines Entwicklers

12* Die `.claude/settings.json` eines Teams, die im Repository committed ist

13* Die `managed-settings.json` einer Organisation

14 

15Jede Datei ist eine plausible Datei für diesen Leser, sodass Sie die Form sehen und die gewünschten Teile kopieren können. Keine davon ist eine empfohlene Grundlage. Jeder Wert stammt aus dem Eintrag des Schlüssels in der [Einstellungsreferenz](/docs/de/settings-reference), die seinen Typ, den Standard und den Ort enthält, an dem er gesetzt werden kann.

16 

17Jedes Beispiel hat zwei Registerkarten. **Kopierbare Einstellungsdatei** ist die Datei, wie Sie sie speichern würden. **Was jeder Schlüssel tut** ist dieselbe Datei mit einem Kommentar über jedem Schlüssel; Claude Code akzeptiert keine Kommentare in einer Einstellungsdatei, daher kopieren Sie aus der ersten Registerkarte.

18 

19<h2 id="your-own-settings">

20 Ihre eigenen Einstellungen

21</h2>

22 

23Die persönlichen Einstellungen eines Entwicklers. Sie wählt ein Modell und eine Anstrengung aus, passt das Terminal an und genehmigt vorab einen schreibgeschützten Befehl und einen Dateilesevorgang. Alles, was nicht aufgelistet ist, behält seinen Standard. Eine Datei wie diese geht in `~/.claude/settings.json`, wo sie für jedes Projekt gilt, das Sie öffnen.

24 

25<Tabs>

26 <Tab title="Kopierbare Einstellungsdatei">

27 Speichern Sie dies als `~/.claude/settings.json`. Es ist gültiges JSON ohne Kommentare, daher können Sie es einfach einfügen und die Schlüssel löschen, die Sie nicht möchten.

28 

29 ```json ~/.claude/settings.json theme={null}

30 {

31 "model": "claude-sonnet-5",

32 "effortLevel": "xhigh",

33 "editorMode": "vim",

34 "theme": "light-daltonized",

35 "statusLine": {

36 "type": "command",

37 "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",

38 "padding": 2

39 },

40 "spinnerTipsEnabled": false,

41 "preferredNotifChannel": "terminal_bell",

42 "permissions": {

43 "allow": [

44 "Bash(git diff *)",

45 "Read(~/.zshrc)"

46 ]

47 },

48 "autoUpdatesChannel": "stable",

49 "cleanupPeriodDays": 20

50 }

51 ```

52 </Tab>

53 

54 <Tab title="Was jeder Schlüssel tut">

55 Dieselbe Datei mit einem Kommentar über jedem Schlüssel. Lesen Sie sie hier; kopieren Sie aus der anderen Registerkarte, da Claude Code keine Kommentare in einer Einstellungsdatei akzeptiert.

56 

57 ```jsonc ~/.claude/settings.json theme={null}

58 {

59 // Starten Sie jede Sitzung mit Sonnet 5

60 "model": "claude-sonnet-5",

61 // Denken Sie tiefer nach als die Standard-Hochstufe bei Modellen ohne gespeicherte Stufe; /effort speichert eine Stufe pro Modell, und --effort setzt eine für eine einzelne Sitzung

62 "effortLevel": "xhigh",

63 // Vim-Tastenbindungen in der Eingabeaufforderung

64 "editorMode": "vim",

65 // Das farbenblindfreundliche helle Design

66 "theme": "light-daltonized",

67 // Eine Statuszeile unter der Eingabeaufforderung: Modellname und verwendeter Kontext

68 "statusLine": {

69 "type": "command",

70 "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",

71 "padding": 2

72 },

73 // Verstecken Sie die Tipps, die sich unter dem Spinner drehen

74 "spinnerTipsEnabled": false,

75 // Läuten Sie die Terminal-Glocke für Benachrichtigungen, z. B. eine abgeschlossene Aufgabe oder eine wartende Berechtigungsaufforderung

76 "preferredNotifChannel": "terminal_bell",

77 // Lassen Sie Claude Code git diff ausführen und Ihre .zshrc lesen, ohne zu fragen

78 "permissions": {

79 "allow": [

80 "Bash(git diff *)",

81 "Read(~/.zshrc)"

82 ]

83 },

84 // Nehmen Sie Updates aus dem stabilen Kanal

85 "autoUpdatesChannel": "stable",

86 // Löschen Sie Sitzungstranskripte und andere lokale Sitzungsdaten, die älter als 20 Tage sind

87 "cleanupPeriodDays": 20

88 }

89 ```

90 </Tab>

91</Tabs>

92 

93<h2 id="a-teams-shared-settings">

94 Gemeinsame Einstellungen eines Teams

95</h2>

96 

97Die gemeinsamen Einstellungen eines Teams, die im Repository festgehalten werden, damit jeder, der es klont, die gleichen Berechtigungen, Hooks, Telemetrie und das Plugin-Marketplace erhält. Speichern Sie eine Datei wie diese unter `.claude/settings.json` am oberen Ende des Repositories. Das sollten Sie vor dem Commit wissen:

98 

99* **Cloud-Sitzungen lesen sie auch.** Eine [Cloud-Sitzung](/docs/de/settings#settings-in-cloud-sessions) auf Claude Code im Web startet von einem Klon des Repositories, daher gilt die festgesetzte Datei auch dort.

100* **Allow-Regeln warten auf Vertrauen.** Allow-Regeln und `extraKnownMarketplaces`-Einträge werden wirksam, nachdem jede Person [diesem Ordner selbst vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust), nicht nur einem übergeordneten Ordner; Deny- und Ask-Regeln gelten in jeder Sitzung, vertraut oder nicht.

101* **Der Hook ist ein Skript im Repo.** Der Hook dieser Datei führt `.claude/hooks/block-rm.sh` aus; [Wie ein Hook aufgelöst wird](/docs/de/hooks#how-a-hook-resolves) zeigt, wie man ihn schreibt.

102* **Regeln entsprechen dem Befehl und Pfad wie geschrieben.** `Bash(git push *)` entspricht nicht [`git -C . push`](/docs/de/permissions#bash-rule-limits). `Read(./.env)` allein stoppt die Datei-Tools und Befehle, die die Datei benennen, wie `cat .env`, aber nicht [`grep -r` über das Verzeichnis ausgeführt](/docs/de/permissions#read-and-edit); der `sandbox`-Block in dieser Datei schließt diese Lücke, da die Sandbox [Ihre `Read`-Deny-Pfade](/docs/de/settings-reference#sandbox-filesystem-denyread) zu dem hinzufügt, was jeder Sandbox-Befehl nicht lesen kann.

103 

104<Tabs>

105 <Tab title="Kopierbare Einstellungsdatei">

106 Speichern Sie diese als `.claude/settings.json` am oberen Ende des Repositories und committen Sie sie. Es ist gültiges JSON ohne Kommentare, daher können Sie es so einfügen und die Schlüssel löschen, die Sie nicht möchten.

107 

108 ```json .claude/settings.json theme={null}

109 {

110 "permissions": {

111 "allow": [

112 "Bash(npm run *)"

113 ],

114 "ask": [

115 "Bash(git push *)"

116 ],

117 "deny": [

118 "Read(./.env)",

119 "Read(./.env.*)",

120 "Read(./secrets/**)"

121 ]

122 },

123 "env": {

124 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

125 "OTEL_METRICS_EXPORTER": "otlp",

126 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

127 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

128 },

129 "hooks": {

130 "PreToolUse": [

131 {

132 "matcher": "Bash",

133 "hooks": [

134 {

135 "type": "command",

136 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"

137 }

138 ]

139 }

140 ]

141 },

142 "extraKnownMarketplaces": {

143 "acme-tools": {

144 "source": {

145 "source": "github",

146 "repo": "acme-corp/claude-plugins"

147 }

148 }

149 },

150 "enabledPlugins": {

151 "code-formatter@acme-tools": true

152 },

153 "sandbox": {

154 "enabled": true,

155 "filesystem": {

156 "allowWrite": [

157 "/tmp/build"

158 ]

159 },

160 "network": {

161 "allowedDomains": [

162 "registry.npmjs.org",

163 "*.example.com"

164 ]

165 }

166 },

167 "plansDirectory": "./plans"

168 }

169 ```

170 </Tab>

171 

172 <Tab title="Was jeder Schlüssel bewirkt">

173 Die gleiche Datei mit einem Kommentar über jedem Schlüssel. Lesen Sie sie hier; kopieren Sie aus dem anderen Tab, da Claude Code keine Kommentare in einer Einstellungsdatei akzeptiert.

174 

175 ```jsonc .claude/settings.json theme={null}

176 {

177 "permissions": {

178 // npm-Skripte ohne Nachfrage ausführen

179 "allow": [

180 "Bash(npm run *)"

181 ],

182 // Bestätigung vor git push-Befehlen

183 "ask": [

184 "Bash(git push *)"

185 ],

186 // Lesevorgänge von Env-Dateien und dem Secrets-Ordner durch die Datei-Tools und dateilesenden Befehle verweigern

187 "deny": [

188 "Read(./.env)",

189 "Read(./.env.*)",

190 "Read(./secrets/**)"

191 ]

192 },

193 // OpenTelemetry-Metriken über gRPC an den Collector des Teams senden; ersetzen Sie den Endpunkt durch die URL Ihres Collectors

194 "env": {

195 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

196 "OTEL_METRICS_EXPORTER": "otlp",

197 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

198 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

199 },

200 // Vor jedem Bash-Befehl ein Skript im Repo ausführen, das ihn blockieren kann

201 "hooks": {

202 "PreToolUse": [

203 {

204 "matcher": "Bash",

205 "hooks": [

206 {

207 "type": "command",

208 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"

209 }

210 ]

211 }

212 ]

213 },

214 // Das Plugin-Marketplace des Teams bei jedem Klon registrieren

215 "extraKnownMarketplaces": {

216 "acme-tools": {

217 "source": {

218 "source": "github",

219 "repo": "acme-corp/claude-plugins"

220 }

221 }

222 },

223 // Ein Plugin aus diesem Marketplace aktivieren; ein Plugin aus einer externen Quelle wie einem GitHub-Repository muss von jeder Person einmal installiert werden

224 "enabledPlugins": {

225 "code-formatter@acme-tools": true

226 },

227 // Sandbox-Befehle: beschreibbares Build-Verzeichnis; npm und example.com vorab erlaubt, andere Hosts fordern weiterhin auf

228 "sandbox": {

229 "enabled": true,

230 "filesystem": {

231 "allowWrite": [

232 "/tmp/build"

233 ]

234 },

235 "network": {

236 "allowedDomains": [

237 "registry.npmjs.org",

238 "*.example.com"

239 ]

240 }

241 },

242 // Plan-Dateien im Repository behalten

243 "plansDirectory": "./plans"

244 }

245 ```

246 </Tab>

247</Tabs>

248 

249<h2 id="an-organizations-managed-settings">

250 Verwaltete Einstellungen einer Organisation

251</h2>

252 

253Eine `managed-settings.json`-Datei, die die Form der verwalteten Schlüssel zeigt, mit einem plausiblen Wert für jeden. Es ist keine empfohlene Richtlinie: Wählen Sie die Schlüssel aus, die Ihren eigenen Anforderungen entsprechen, und legen Sie Ihre eigenen Werte fest. Das Beispiel setzt diese Schlüssel:

254 

255* `forceLoginMethod` und `forceLoginOrgUUID` fixieren die Anmeldemethode und Organisation

256* `availableModels` und `enforceAvailableModels` beschränken, welche Modelle Sitzungen verwenden können

257* `permissions.deny` blockiert zwei Dateilesevorgang und `curl`-Befehle [wie Claude sie schreibt](/docs/de/permissions#bash-rule-limits), und `disableBypassPermissionsMode` entfernt den Bypass-Berechtigungsmodus

258* [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) und [`allowManagedMcpServersOnly`](/docs/de/settings-reference#allowmanagedmcpserversonly) machen die verwaltete Berechtigung und MCP-Zulassungslisten zu den einzigen, die gelten

259* `allowedMcpServers` fixiert den MCP-Server nach URL

260* `strictKnownMarketplaces` erlaubt einen Plugin-Marketplace

261* `sandbox` sandboxed Befehle mit einer festen Netzwerk-Zulassungsliste und keinem unsandboxed Retry

262* `requiredMinimumVersion` setzt eine Mindestversion für Claude Code

263* `cleanupPeriodDays` verkürzt die Aufbewahrung von Sitzungstranskripten und anderen lokalen Daten auf sieben Tage

264* `companyAnnouncements` zeigt eine Nachricht beim Start

265 

266Administratoren stellen eine Datei wie diese als `managed-settings.json` bereit, oder das gleiche JSON über MDM oder [servergesteuerte Einstellungen](/docs/de/server-managed-settings). Eine bereitgestellte Datei gilt für jeden Computer oder jedes Konto, das sie erreicht. Um einer Gruppe unterschiedliche Werte zu geben, stellen Sie eine andere Datei oder ein anderes Profil für diese Gruppe bereit, da [servergesteuerte Einstellungen noch keine Pro-Gruppen-Richtlinie unterstützen](/docs/de/server-managed-settings#current-limitations).

267 

268<Tabs>

269 <Tab title="Kopierbare Einstellungsdatei">

270 Stellen Sie dies als `managed-settings.json` bereit, oder das gleiche JSON über MDM oder die claude.ai-Konsole. Es ist gültiges JSON ohne Kommentare; ersetzen Sie die Beispiel-Organisations-UUID, Server-URL und den Marketplace durch Ihre eigenen und löschen Sie die Schlüssel, die Sie nicht möchten.

271 

272 ```json managed-settings.json theme={null}

273 {

274 "forceLoginMethod": "claudeai",

275 "forceLoginOrgUUID": [

276 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

277 ],

278 "availableModels": [

279 "opus",

280 "sonnet"

281 ],

282 "enforceAvailableModels": true,

283 "permissions": {

284 "deny": [

285 "Bash(curl *)",

286 "Read(./.env)",

287 "Read(./secrets/**)"

288 ],

289 "disableBypassPermissionsMode": "disable"

290 },

291 "allowManagedPermissionRulesOnly": true,

292 "allowedMcpServers": [

293 {

294 "serverUrl": "https://api.githubcopilot.com/*"

295 }

296 ],

297 "allowManagedMcpServersOnly": true,

298 "strictKnownMarketplaces": [

299 {

300 "source": "github",

301 "repo": "acme-corp/approved-plugins"

302 }

303 ],

304 "sandbox": {

305 "enabled": true,

306 "failIfUnavailable": true,

307 "allowUnsandboxedCommands": false,

308 "network": {

309 "allowedDomains": [

310 "registry.npmjs.org",

311 "github.com"

312 ],

313 "allowManagedDomainsOnly": true

314 }

315 },

316 "requiredMinimumVersion": "2.1.150",

317 "cleanupPeriodDays": 7,

318 "companyAnnouncements": [

319 "Welcome to Acme Corp! Review our code guidelines at docs.example.com"

320 ]

321 }

322 ```

323 </Tab>

324 

325 <Tab title="Was jeder Schlüssel tut">

326 Dieselbe Datei mit einem Kommentar über jedem Schlüssel. Lesen Sie sie hier; kopieren Sie aus der anderen Registerkarte, da Claude Code keine Kommentare in einer Einstellungsdatei akzeptiert.

327 

328 ```jsonc managed-settings.json theme={null}

329 {

330 // Nur claude.ai-Anmeldungen, und nur in dieser Organisation

331 "forceLoginMethod": "claudeai",

332 "forceLoginOrgUUID": [

333 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

334 ],

335 // Nur Opus- und Sonnet-Modelle; mit enforceAvailableModels befolgt die Standard-Option auch die Liste

336 "availableModels": [

337 "opus",

338 "sonnet"

339 ],

340 "enforceAvailableModels": true,

341 "permissions": {

342 // Blockieren Sie curl-Befehle und Lesevorgänge der .env-Datei des Projekts und des Secrets-Ordners auf jedem Computer

343 "deny": [

344 "Bash(curl *)",

345 "Read(./.env)",

346 "Read(./secrets/**)"

347 ],

348 // Entfernen Sie den Bypass-Berechtigungsmodus aus jeder Sitzung

349 "disableBypassPermissionsMode": "disable"

350 },

351 // Ignorieren Sie Berechtigungsregeln aus Benutzer-, Projekt- und lokalen Einstellungen

352 "allowManagedPermissionRulesOnly": true,

353 // Nur der GitHub MCP-Server, abgeglichen nach URL statt nach Name, da ein Benutzer jeden Server

354 // "github" nennen kann. Server, die nicht übereinstimmen, werden nicht geladen, einschließlich

355 // jeden stdio-Servers, wenn die Liste nur URL-Einträge hat. Der allowManagedMcpServersOnly-Schlüssel

356 // unten macht diese verwaltete Liste zur einzigen Zulassungsliste, die zählt

357 "allowedMcpServers": [

358 {

359 "serverUrl": "https://api.githubcopilot.com/*"

360 }

361 ],

362 "allowManagedMcpServersOnly": true,

363 // Plugins können nur aus diesem Marketplace stammen

364 "strictKnownMarketplaces": [

365 {

366 "source": "github",

367 "repo": "acme-corp/approved-plugins"

368 }

369 ],

370 // Sandboxen Sie jeden Befehl, den Claude ausführt, weigern Sie sich zu starten, wenn die Sandbox nicht

371 // eingerichtet werden kann, und lassen Sie einen blockierten Befehl niemals außerhalb der Sandbox erneut versuchen; Netzwerk

372 // begrenzt auf npm und GitHub, und Benutzer können keine Domains hinzufügen

373 "sandbox": {

374 "enabled": true,

375 "failIfUnavailable": true,

376 "allowUnsandboxedCommands": false,

377 "network": {

378 "allowedDomains": [

379 "registry.npmjs.org",

380 "github.com"

381 ],

382 "allowManagedDomainsOnly": true

383 }

384 },

385 // Weigern Sie sich zu starten auf Versionen älter als 2.1.150

386 "requiredMinimumVersion": "2.1.150",

387 // Löschen Sie Sitzungstranskripte und andere lokale Sitzungsdaten nach 7 Tagen

388 "cleanupPeriodDays": 7,

389 // Eine Nachricht, die jeder Benutzer beim Start sieht

390 "companyAnnouncements": [

391 "Welcome to Acme Corp! Review our code guidelines at docs.example.com"

392 ]

393 }

394 ```

395 </Tab>

396</Tabs>

setup.md +12 −10

Details

41 Neu im Terminal? Siehe die [Terminalanleitung](/docs/de/terminal-guide) für Schritt-für-Schritt-Anweisungen.41 Neu im Terminal? Siehe die [Terminalanleitung](/docs/de/terminal-guide) für Schritt-für-Schritt-Anweisungen.

42</Tip>42</Tip>

43 43 

44To install Claude Code, use one of the following methods:44Um Claude Code zu installieren, verwenden Sie eine der folgenden Methoden:

45 45 

46<Tabs>46<Tabs>

47 <Tab title="Native Install (Recommended)">47 <Tab title="Native Installation (Empfohlen)">

48 **macOS, Linux, WSL:**48 **macOS, Linux, WSL:**

49 49 

50 ```bash theme={null}50 ```bash theme={null}


63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```64 ```

65 65 

66 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.66 Wenn Sie `The token '&&' is not a valid statement separator` sehen, befinden Sie sich in PowerShell, nicht in CMD. Wenn Sie `'irm' is not recognized as an internal or external command` sehen, befinden Sie sich in CMD, nicht in PowerShell. Ihre Eingabeaufforderung zeigt `PS C:\`, wenn Sie sich in PowerShell befinden, und `C:\` ohne `PS`, wenn Sie sich in CMD befinden.

67 67 

68 If the install command fails with `syntax error near unexpected token '<'`, a `403`, or another curl error, see [Troubleshoot installation](/docs/en/troubleshoot-install#find-your-error) to match the error to a fix and for alternative install methods.68 Wenn der Installationsbefehl mit `syntax error near unexpected token '<'`, einem `403` oder einem anderen curl-Fehler fehlschlägt, siehe [Installationsfehler beheben](/docs/de/troubleshoot-install#find-your-error), um den Fehler einer Lösung zuzuordnen und alternative Installationsmethoden zu finden.

69 69 

70 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.70 [Git für Windows](https://git-scm.com/downloads/win) wird auf nativem Windows empfohlen, damit Claude Code das Bash-Tool verwenden kann. Wenn Git für Windows nicht installiert ist, verwendet Claude Code stattdessen PowerShell als Shell-Tool. WSL-Setups benötigen Git für Windows nicht.

71 71 

72 <Info>72 <Info>

73 Native installations automatically update in the background to keep you on the latest version.73 Native Installationen werden automatisch im Hintergrund aktualisiert, um Sie auf der neuesten Version zu halten.

74 </Info>74 </Info>

75 </Tab>75 </Tab>

76 76 


79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 

82 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.82 Homebrew bietet zwei Casks. `claude-code` verfolgt den stabilen Release-Kanal, der normalerweise etwa eine Woche hinter dem aktuellen Stand liegt und Releases mit großen Regressionen überspringt. `claude-code@latest` verfolgt den neuesten Kanal und erhält neue Versionen, sobald sie verfügbar sind.

83 83 

84 <Info>84 <Info>

85 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.85 Homebrew-Installationen werden nicht automatisch aktualisiert. Führen Sie `brew upgrade claude-code` oder `brew upgrade claude-code@latest` aus, je nachdem welches Cask Sie installiert haben, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

86 </Info>86 </Info>

87 </Tab>87 </Tab>

88 88 


92 ```92 ```

93 93 

94 <Info>94 <Info>

95 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.95 WinGet-Installationen werden nicht automatisch aktualisiert. Führen Sie regelmäßig `winget upgrade Anthropic.ClaudeCode` aus, um die neuesten Funktionen und Sicherheitspatches zu erhalten.

96 </Info>96 </Info>

97 </Tab>97 </Tab>

98</Tabs>98</Tabs>

99 99 

100You can also install with [apt, dnf, or apk](/docs/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.100Sie können auch mit [apt, dnf oder apk](/docs/de/setup#install-with-linux-package-managers) auf Debian, Fedora, RHEL und Alpine installieren.

101 101 

102Nach Abschluss der Installation öffnen Sie ein Terminal in dem Projekt, an dem Sie arbeiten möchten, und starten Sie Claude Code:102Nach Abschluss der Installation öffnen Sie ein Terminal in dem Projekt, an dem Sie arbeiten möchten, und starten Sie Claude Code:

103 103 


296}296}

297```297```

298 298 

299Auf einer nativen oder npm-Installation bestätigen Sie, dass die Änderung wirksam wurde, indem Sie `claude doctor` ausführen und überprüfen, dass die Zeile `Auto-updates` `disabled (set by env: DISABLE_AUTOUPDATER)` statt `enabled` anzeigt.

300 

299`DISABLE_AUTOUPDATER` stoppt nur die Hintergrundprüfung; `claude update` und `claude install` funktionieren weiterhin. Um alle Update-Pfade, einschließlich manueller Updates, zu blockieren, setzen Sie stattdessen [`DISABLE_UPDATES`](/docs/de/env-vars). Verwenden Sie dies, wenn Sie Claude Code über Ihre eigenen Kanäle verteilen und Benutzer auf der Version bleiben müssen, die Sie bereitstellen.301`DISABLE_AUTOUPDATER` stoppt nur die Hintergrundprüfung; `claude update` und `claude install` funktionieren weiterhin. Um alle Update-Pfade, einschließlich manueller Updates, zu blockieren, setzen Sie stattdessen [`DISABLE_UPDATES`](/docs/de/env-vars). Verwenden Sie dies, wenn Sie Claude Code über Ihre eigenen Kanäle verteilen und Benutzer auf der Version bleiben müssen, die Sie bereitstellen.

300 302 

301<h3 id="update-manually">303<h3 id="update-manually">

skills.md +33 −16

Details

28 28 

29Die meisten gebündelten Skills sind in jeder Sitzung verfügbar. Einige hängen von einer bestimmten Funktion ab: `/workflow-authoring` ist beispielsweise nur verfügbar, wenn [dynamische Workflows](/docs/de/workflows) aktiviert sind.29Die meisten gebündelten Skills sind in jeder Sitzung verfügbar. Einige hängen von einer bestimmten Funktion ab: `/workflow-authoring` ist beispielsweise nur verfügbar, wenn [dynamische Workflows](/docs/de/workflows) aktiviert sind.

30 30 

31Um gebündelte Skills auszuschalten, verwenden Sie die Einstellung [`disableBundledSkills`](/docs/de/settings-reference#disablebundledskills), die jeden gebündelten Skill außer `/doctor` deaktiviert.31Um gebündelte Skills auszuschalten, verwenden Sie die Einstellung [`disableBundledSkills`](/docs/de/settings-reference#disablebundledskills).

32 32 

33<Note>33<Note>

34 Die Einrichtungsüberprüfung [`/doctor`](/docs/de/commands#all-commands) bleibt eingabbar, wenn `disableBundledSkills` aktiviert ist, in Claude Code v2.1.205 und später. Um sie auszublenden, setzen Sie die Umgebungsvariable `DISABLE_DOCTOR_COMMAND` oder einen [`skillOverrides`](#override-skill-visibility-from-settings)-Eintrag von `"doctor": "off"`. Vor v2.1.205 war `/doctor` ein integrierter Befehl und kein gebündelter Skill.34 Die Einrichtungsüberprüfung [`/doctor`](/docs/de/commands#all-commands) bleibt eingabbar, wenn `disableBundledSkills` aktiviert ist, in Claude Code v2.1.205 und später. Um sie auszublenden, setzen Sie die Umgebungsvariable `DISABLE_DOCTOR_COMMAND` oder einen [`skillOverrides`](#override-skill-visibility-from-settings)-Eintrag von `"doctor": "off"`. Vor v2.1.205 war `/doctor` ein integrierter Befehl und kein gebündelter Skill.


136 136 

137* **Symverlinkte Ordner**: Ein `<skill-name>`-Eintrag am Enterprise-, Personal- oder Projekt-Speicherort kann ein Symlink zu einem Verzeichnis an anderer Stelle auf der Festplatte sein. Claude Code liest `SKILL.md` aus dem Ziel und lädt den Skill einmal, auch wenn mehrere Speicherorte auf dasselbe Ziel verweisen. Plugin-Skills [handhaben Symlinks anders](/docs/de/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Symverlinkte Ordner**: Ein `<skill-name>`-Eintrag am Enterprise-, Personal- oder Projekt-Speicherort kann ein Symlink zu einem Verzeichnis an anderer Stelle auf der Festplatte sein. Claude Code liest `SKILL.md` aus dem Ziel und lädt den Skill einmal, auch wenn mehrere Speicherorte auf dasselbe Ziel verweisen. Plugin-Skills [handhaben Symlinks anders](/docs/de/plugins-reference#share-files-within-a-marketplace-with-symlinks).

138* **Reservierter Name**: Benennen Sie einen Skill-Ordner nicht `synced`, in keiner Schreibweise. Claude Code verwendet `~/.claude/skills/synced/` für [Skills, die von claude.ai heruntergeladen werden](#where-synced-skills-load) und überspringt einen Skill, den Sie unter diesem Namen am Enterprise-, Personal- und Projekt-Speicherort erstellen.138* **Reservierter Name**: Benennen Sie einen Skill-Ordner nicht `synced`, in keiner Schreibweise. Claude Code verwendet `~/.claude/skills/synced/` für [Skills, die von claude.ai heruntergeladen werden](#where-synced-skills-load) und überspringt einen Skill, den Sie unter diesem Namen am Enterprise-, Personal- und Projekt-Speicherort erstellen.

139* **Befehlsdateien**: Eine Markdown-Datei in `.claude/commands/` ist das ältere Format und funktioniert immer noch. Sie unterstützt dieselbe [Frontmatter](#frontmatter-reference) außer `name` und `paths`, und Sie rufen sie nach ihrem Dateinamen auf. Bevorzugen Sie einen Skill für neue Arbeiten, da Skills auch [unterstützende Dateien](#add-supporting-files) unterstützen.139* **Befehlsdateien**: Eine Markdown-Datei in `.claude/commands/` ist das ältere Format und funktioniert immer noch. Sie unterstützt dieselbe [Frontmatter](#frontmatter-reference) außer `name` und `paths`. Um den Namen zu finden, den Sie eingeben, um ihn aufzurufen, siehe [Wie ein Skill seinen Befehlsnamen erhält](#how-a-skill-gets-its-command-name). Bevorzugen Sie einen Skill für neue Arbeiten, da Skills auch [unterstützende Dateien](#add-supporting-files) unterstützen.

140* **Skill-Ordner als Plugin**: Fügen Sie eine `.claude-plugin/plugin.json` zu einem Skill-Ordner hinzu und er wird als [Plugin](/docs/de/plugins-reference#skills-directory-plugins) mit dem Namen `<name>@skills-dir` geladen, sodass er Agents, Hooks und MCP-Server bündeln kann. In einem Projekt's `.claude/skills/` ist dies erforderlich, um zuerst den Workspace-Trust-Dialog zu akzeptieren.140* **Skill-Ordner als Plugin**: Fügen Sie eine `.claude-plugin/plugin.json` zu einem Skill-Ordner hinzu und er wird als [Plugin](/docs/de/plugins-reference#skills-directory-plugins) mit dem Namen `<name>@skills-dir` geladen, sodass er Agents, Hooks und MCP-Server bündeln kann. In einem Projekt's `.claude/skills/` ist dies erforderlich, um zuerst den Workspace-Trust-Dialog zu akzeptieren.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">


234 234 

235Claude Code kennzeichnet synchronisierte Skills, damit Sie sehen können, woher sie kommen. Das `/skills`-Menü und `/context` gruppieren synchronisierte Skills unter `claude.ai sync`, und das `/`-Befehlsmenü kennzeichnet sie als von claude.ai kommend.235Claude Code kennzeichnet synchronisierte Skills, damit Sie sehen können, woher sie kommen. Das `/skills`-Menü und `/context` gruppieren synchronisierte Skills unter `claude.ai sync`, und das `/`-Befehlsmenü kennzeichnet sie als von claude.ai kommend.

236 236 

237Beim Vergleich von Namen ignoriert Claude Code Groß-/Kleinschreibung, Abstände und unsichtbare Zeichen und behandelt Kompatibilitätsformen wie Vollbreitenbuchstaben und Bindestrich-Varianten als ihre einfachen Äquivalente, daher kann ein synchronisiertes `Commit` nicht neben einem lokalen `commit` geladen werden. Ein Name, der sich nur durch einen ähnlich aussehenden Buchstaben aus einem anderen Alphabet unterscheidet, zählt als ein anderer Name, und das `claude.ai sync`-Label ist, wie Sie die beiden unterscheiden.237Beim Vergleich von Namen ignoriert Claude Code Groß-/Kleinschreibung, Abstände und unsichtbare Zeichen und behandelt Kompatibilitätsformen wie Vollbreitenbuchstaben und Bindestrich-Varianten als ihre einfachen Äquivalente, daher kann ein synchronisiertes `Commit` nicht neben einem lokalen `commit` geladen werden. Ein Name, der sich nur durch einen ähnlich aussehenden Buchstaben aus einem anderen Alphabet unterscheidet, zählt als ein anderer Name, und das `claude.ai sync`-Label ist, wie Sie die beiden unterscheiden. Diese Überprüfungen und Labels erfordern Claude Code v2.1.228 oder später.

238 238 

239<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">239<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

240 Wie Claude Code die Frontmatter eines synchronisierten Skills handhabt240 Wie Claude Code die Frontmatter eines synchronisierten Skills handhabt


243Claude Code wendet zwei Regeln auf die Frontmatter eines synchronisierten Skills an:243Claude Code wendet zwei Regeln auf die Frontmatter eines synchronisierten Skills an:

244 244 

245* Claude Code respektiert die Frontmatter in jeder Art von Session, daher geht eine `allowed-tools`-Gewährung durch den normalen [Berechtigungsfluss](/docs/de/permissions).245* Claude Code respektiert die Frontmatter in jeder Art von Session, daher geht eine `allowed-tools`-Gewährung durch den normalen [Berechtigungsfluss](/docs/de/permissions).

246* Claude Code bereinigt den Anzeigetext, den der Skill liefert, wie seine Beschreibung. Es entfernt Steuerzeichen, und in Text, der Claude erreicht, wie die Beschreibung, escaped es auch spitzklammern, damit der Text nicht Claude Codes interne Formatierung imitieren kann.246* Claude Code bereinigt den Anzeigetext, den der Skill liefert, wie seine Beschreibung. Es entfernt Steuerzeichen, und in Text, der Claude erreicht, wie die Beschreibung, escaped es auch spitzklammern, damit der Text nicht Claude Codes interne Formatierung imitieren kann. Diese Bereinigung erfordert Claude Code v2.1.228 oder später.

247 247 

248<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">248<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">

249 Wie Claude Code den Body eines synchronisierten Skills handhabt249 Wie Claude Code den Body eines synchronisierten Skills handhabt


253 253 

254* In einer Cloud-Session behält der Body das Verhalten, das ein lokaler Skill hat, da die Session in einem isolierten Container läuft.254* In einer Cloud-Session behält der Body das Verhalten, das ein lokaler Skill hat, da die Session in einem isolierten Container läuft.

255* In einer Cowork-Session auf Ihrem Desktop behält der Body das Verhalten eines lokalen Skills, außer dass Claude Code jede `!`-Befehlszeile durch den [`disableSkillShellExecution`-Platzhalter](#inject-dynamic-context) ersetzt, wie es für jeden Skill tut, den Sie dort liefern.255* In einer Cowork-Session auf Ihrem Desktop behält der Body das Verhalten eines lokalen Skills, außer dass Claude Code jede `!`-Befehlszeile durch den [`disableSkillShellExecution`-Platzhalter](#inject-dynamic-context) ersetzt, wie es für jeden Skill tut, den Sie dort liefern.

256* In jeder anderen Session auf Ihrer Maschine führt Claude Code keine [`!`-Befehle](#inject-dynamic-context) aus, hängt die Dateien nicht an, die `@`-Referenzen benennen, wie es für einen lokalen Skill tut, und ersetzt nicht die `${CLAUDE_PROJECT_DIR}`- und `${CLAUDE_SESSION_ID}`-Platzhalter, daher erreichen `@`-Referenzen und beide Platzhalter Claude als Literaltext. Eine `!`-Befehlszeile erreicht Claude auch als Literaltext oder als dieser Platzhalter, wenn `disableSkillShellExecution` aktiviert ist.256* In jeder anderen Session auf Ihrer Maschine führt Claude Code keine [`!`-Befehle](#inject-dynamic-context) aus, hängt die Dateien nicht an, die `@`-Referenzen benennen, wie es für einen lokalen Skill tut, und ersetzt nicht die `${CLAUDE_PROJECT_DIR}`- und `${CLAUDE_SESSION_ID}`-Platzhalter, daher erreichen `@`-Referenzen und beide Platzhalter Claude als Literaltext. Eine `!`-Befehlszeile erreicht Claude auch als Literaltext oder als dieser Platzhalter, wenn `disableSkillShellExecution` aktiviert ist. Diese Handhabung erfordert Claude Code v2.1.228 oder später.

257 257 

258<h3 id="live-change-detection">258<h3 id="live-change-detection">

259 Bearbeiten Sie einen Skill während einer Session259 Bearbeiten Sie einen Skill während einer Session


271 271 

272* **Persönlicher oder Projekt-Skill**: Löschen Sie das Verzeichnis des Skills, `~/.claude/skills/<skill-name>/` oder `.claude/skills/<skill-name>/`. Claude Code [entfernt ihn aus `/skills` in der aktuellen Session](#live-change-detection); Inhalte, die Claude Code bereits daraus geladen hat, folgen dem [Skill-Content-Lebenszyklus](#skill-content-lifecycle).272* **Persönlicher oder Projekt-Skill**: Löschen Sie das Verzeichnis des Skills, `~/.claude/skills/<skill-name>/` oder `.claude/skills/<skill-name>/`. Claude Code [entfernt ihn aus `/skills` in der aktuellen Session](#live-change-detection); Inhalte, die Claude Code bereits daraus geladen hat, folgen dem [Skill-Content-Lebenszyklus](#skill-content-lifecycle).

273* **Enterprise-Skill**: Ein Administrator löscht das Verzeichnis des Skills aus `.claude/skills/` im [Verzeichnis für verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms), zum Beispiel `/etc/claude-code/.claude/skills/<skill-name>/` auf Linux.273* **Enterprise-Skill**: Ein Administrator löscht das Verzeichnis des Skills aus `.claude/skills/` im [Verzeichnis für verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms), zum Beispiel `/etc/claude-code/.claude/skills/<skill-name>/` auf Linux.

274* **Plugin-Skill**: Deaktivieren oder deinstallieren Sie das Plugin, das ihn bereitstellt, aus dem `/plugin`-Menü oder mit `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code entlädt die Skills des Plugins, nachdem Sie `/reload-plugins` ausführen oder neu starten; siehe [Wenden Sie Plugin-Änderungen an, ohne neu zu starten](/docs/de/discover-plugins#apply-plugin-changes-without-restarting).274* **Plugin-Skill**: Deaktivieren oder deinstallieren Sie das Plugin, das ihn bereitstellt, aus dem `/plugin`-Menü oder mit `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code entlädt die Skills des Plugins, wenn [die Änderung angewendet wird](/docs/de/discover-plugins#apply-plugin-changes-without-restarting) oder wenn Sie neu starten.

275* **Von claude.ai synchronisierter Skill**: Schalten Sie den Skill für Ihr claude.ai-Konto aus, an derselben Stelle, an der Sie ihn [aktiviert haben](#skills-in-cowork-and-cloud-sessions). Claude Code entfernt ihn aus `~/.claude/skills/synced/` beim nächsten Mal, wenn es [Ihre Skills synchronisiert](#where-synced-skills-load). Wenn Sie das Verzeichnis stattdessen von Hand löschen, lädt die nächste Synchronisierung es erneut herunter, während der Skill auf claude.ai aktiviert bleibt.275* **Von claude.ai synchronisierter Skill**: Schalten Sie den Skill für Ihr claude.ai-Konto aus, an derselben Stelle, an der Sie ihn [aktiviert haben](#skills-in-cowork-and-cloud-sessions). Claude Code entfernt ihn aus `~/.claude/skills/synced/` beim nächsten Mal, wenn es [Ihre Skills synchronisiert](#where-synced-skills-load). Wenn Sie das Verzeichnis stattdessen von Hand löschen, lädt die nächste Synchronisierung es erneut herunter, während der Skill auf claude.ai aktiviert bleibt.

276* **Gebündelter Skill**: Setzen Sie [`disableBundledSkills`](#bundled-skills) auf `true`, um jeden gebündelten Skill außer `/doctor` auszuschalten, oder setzen Sie einen Skill auf `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings), um ihn auszublenden.276* **Gebündelter Skill**: Setzen Sie [`disableBundledSkills`](#bundled-skills) auf `true`, um gebündelte Skills auszuschalten, oder setzen Sie einen Skill auf `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings), um ihn auszublenden.

277 277 

278Um einen persönlichen oder Projekt-Skill zu behalten, aber Claude daran zu hindern, ihn von selbst aufzurufen, setzen Sie [`disable-model-invocation: true`](#control-who-invokes-a-skill) in seiner Frontmatter oder `"user-invocable-only"` in [`skillOverrides`](#override-skill-visibility-from-settings), wenn Sie die Datei nicht bearbeiten möchten.278Um einen persönlichen oder Projekt-Skill zu behalten, aber Claude daran zu hindern, ihn von selbst aufzurufen, setzen Sie [`disable-model-invocation: true`](#control-who-invokes-a-skill) in seiner Frontmatter oder `"user-invocable-only"` in [`skillOverrides`](#override-skill-visibility-from-settings), wenn Sie die Datei nicht bearbeiten möchten.

279 279 


345Boolesche Felder akzeptieren `yes`, `no`, `on`, `off`, `1` und `0` in beliebiger Schreibweise, zusätzlich zu `true` und `false`. Vor v2.1.218 erkannte Claude Code nur `true` und `false`.345Boolesche Felder akzeptieren `yes`, `no`, `on`, `off`, `1` und `0` in beliebiger Schreibweise, zusätzlich zu `true` und `false`. Vor v2.1.218 erkannte Claude Code nur `true` und `false`.

346 346 

347| Feld | Erforderlich | Beschreibung |347| Feld | Erforderlich | Beschreibung |

348| :------------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |348| :------------------------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

349| `name` | Nein | Anzeigename, der in Fähigkeitsauflistungen angezeigt wird. Standardmäßig der Verzeichnisname. Siehe [Wie eine Fähigkeit ihren Befehlsnamen erhält](#how-a-skill-gets-its-command-name), um zu sehen, wie das Feld mit dem Namen interagiert, den Sie eingeben, um die Fähigkeit aufzurufen. |349| `name` | Nein | Anzeigename, der in Fähigkeitsauflistungen angezeigt wird. Standardmäßig der Verzeichnisname. Siehe [Wie eine Fähigkeit ihren Befehlsnamen erhält](#how-a-skill-gets-its-command-name), um zu sehen, wie das Feld mit dem Namen interagiert, den Sie eingeben, um die Fähigkeit aufzurufen. |

350| `description` | Empfohlen | Was die Fähigkeit tut und wann sie verwendet werden soll. Claude verwendet dies, um zu entscheiden, wann die Fähigkeit angewendet werden soll. Wenn weggelassen, wird der erste Absatz des Markdown-Inhalts verwendet. Setzen Sie den wichtigsten Anwendungsfall zuerst: Der kombinierte `description`- und `when_to_use`-Text wird in der Fähigkeitsauflistung auf 1.536 Zeichen gekürzt, um die Kontextnutzung zu reduzieren. |350| `description` | Empfohlen | Was die Fähigkeit tut und wann sie verwendet werden soll. Claude verwendet dies, um zu entscheiden, wann die Fähigkeit angewendet werden soll. Wenn weggelassen, wird die erste nicht leere Zeile des Markdown-Inhalts verwendet. Setzen Sie den wichtigsten Anwendungsfall zuerst: Der kombinierte `description`- und `when_to_use`-Text wird in der Fähigkeitsauflistung auf 1.536 Zeichen gekürzt, um die Kontextnutzung zu reduzieren. |

351| `when_to_use` | Nein | Zusätzlicher Kontext für den Zeitpunkt, zu dem Claude die Fähigkeit aufrufen sollte, z. B. Trigger-Phrasen oder Beispielanfragen. An `description` in der Fähigkeitsauflistung angehängt und zählt zur 1.536-Zeichen-Obergrenze. |351| `when_to_use` | Nein | Zusätzlicher Kontext für den Zeitpunkt, zu dem Claude die Fähigkeit aufrufen sollte, z. B. Trigger-Phrasen oder Beispielanfragen. An `description` in der Fähigkeitsauflistung angehängt und zählt zur 1.536-Zeichen-Obergrenze. |

352| `argument-hint` | Nein | Hinweis, der während der Autovervollständigung angezeigt wird, um erwartete Argumente anzuzeigen. Beispiel: `[issue-number]` oder `[filename] [format]`. |352| `argument-hint` | Nein | Hinweis, der während der Autovervollständigung angezeigt wird, um erwartete Argumente anzuzeigen. Beispiel: `[issue-number]` oder `[filename] [format]`. |

353| `arguments` | Nein | Benannte Positionsargumente für [`$name`-Substitution](#available-string-substitutions) im Fähigkeitsinhalt. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. Namen werden in Reihenfolge Argumentpositionen zugeordnet. |353| `arguments` | Nein | Benannte Positionsargumente für [`$name`-Substitution](#available-string-substitutions) im Fähigkeitsinhalt. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. Namen werden in Reihenfolge Argumentpositionen zugeordnet. |


355| `user-invocable` | Nein | Setzen Sie auf `false`, wenn nur Claude die Fähigkeit aufrufen sollte: Claude Code blendet sie aus dem `/`-Menü aus und führt sie nicht aus, wenn Sie `/name` eingeben. Verwenden Sie für Hintergrundwissen, das Benutzer nicht direkt aufrufen sollten. Standard: `true`. |355| `user-invocable` | Nein | Setzen Sie auf `false`, wenn nur Claude die Fähigkeit aufrufen sollte: Claude Code blendet sie aus dem `/`-Menü aus und führt sie nicht aus, wenn Sie `/name` eingeben. Verwenden Sie für Hintergrundwissen, das Benutzer nicht direkt aufrufen sollten. Standard: `true`. |

356| `allowed-tools` | Nein | Tools, die Claude ohne Genehmigung während des Turns verwenden kann, der diese Fähigkeit aufruft. Die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Siehe [Tools für eine Fähigkeit vorab genehmigen](#pre-approve-tools-for-a-skill). |356| `allowed-tools` | Nein | Tools, die Claude ohne Genehmigung während des Turns verwenden kann, der diese Fähigkeit aufruft. Die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Siehe [Tools für eine Fähigkeit vorab genehmigen](#pre-approve-tools-for-a-skill). |

357| `disallowed-tools` | Nein | Tools, die aus Claudes verfügbarem Pool entfernt werden, während diese Fähigkeit aktiv ist. Verwenden Sie für autonome Fähigkeiten, die niemals bestimmte Tools aufrufen sollten, z. B. `AskUserQuestion` für eine Hintergrundschleife. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Die Einschränkung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Wie Ablehnungsregeln kann das Feld [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) nicht entfernen, während ein anderes Tool verfügbar bleibt. |357| `disallowed-tools` | Nein | Tools, die aus Claudes verfügbarem Pool entfernt werden, während diese Fähigkeit aktiv ist. Verwenden Sie für autonome Fähigkeiten, die niemals bestimmte Tools aufrufen sollten, z. B. `AskUserQuestion` für eine Hintergrundschleife. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Die Einschränkung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Wie Ablehnungsregeln kann das Feld [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) nicht entfernen, während ein anderes Tool verfügbar bleibt. |

358| `model` | Nein | Modell, das verwendet werden soll, wenn diese Fähigkeit aktiv ist. Die Außerkraftsetzung gilt für den Rest des aktuellen Turns und wird nicht in den Einstellungen gespeichert; das Sitzungsmodell wird bei Ihrer nächsten Eingabeaufforderung fortgesetzt. Akzeptiert die gleichen Werte wie [`/model`](/docs/de/model-config), oder `inherit`, um das aktive Modell beizubehalten. Ein Wert, der durch die [`availableModels`](/docs/de/model-config#restrict-model-selection)-Zulassungsliste Ihrer Organisation ausgeschlossen ist, wird nicht verwendet und die Sitzung behält ihr aktuelles Modell. Mit `context: fork` setzt der Wert stattdessen das [Modell des verzweigten Subagents](#run-skills-in-a-subagent) und ein ausgeschlossener Wert folgt den [gleichen Regeln wie eine Subagent-Modellüberschreibung](/docs/de/model-config#restrict-model-selection). |358| `model` | Nein | Modell, das verwendet werden soll, wenn diese Fähigkeit aktiv ist. Die Außerkraftsetzung gilt für den Rest des aktuellen Turns und wird nicht in den Einstellungen gespeichert; das Sitzungsmodell wird bei Ihrer nächsten Eingabeaufforderung fortgesetzt. Akzeptiert die gleichen Werte wie [`/model`](/docs/de/model-config), oder `inherit`, um das aktive Modell beizubehalten. Ein Wert, der durch die [`availableModels`](/docs/de/model-config#restrict-model-selection)-Zulassungsliste Ihrer Organisation ausgeschlossen ist, wird nicht verwendet und die Sitzung behält ihr aktuelles Modell. Im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) und im [Plan-Modus, während der Klassifizierer Befehle überprüft](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode), wird ein Modell, das der Auto-Modus nicht unterstützt, auch nicht verwendet, und die Sitzung behält ihr aktuelles Modell. Mit `context: fork` setzt der Wert stattdessen das [Modell des verzweigten Subagents](#run-skills-in-a-subagent) und ein ausgeschlossener Wert folgt den [gleichen Regeln wie eine Subagent-Modellüberschreibung](/docs/de/model-config#restrict-model-selection). |

359| `effort` | Nein | [Aufwandsstufe](/docs/de/model-config#adjust-effort-level), wenn diese Fähigkeit aktiv ist. Überschreibt die Sitzungsaufwandsstufe. Standard: erbt von Sitzung. Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. |359| `effort` | Nein | [Aufwandsstufe](/docs/de/model-config#adjust-effort-level), wenn diese Fähigkeit aktiv ist. Überschreibt die Sitzungsaufwandsstufe. Standard: erbt von Sitzung. Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. |

360| `context` | Nein | Setzen Sie auf `fork`, um in einem verzweigten Subagent-Kontext ausgeführt zu werden. Siehe [Fähigkeiten in einem Subagent ausführen](#run-skills-in-a-subagent). |360| `context` | Nein | Setzen Sie auf `fork`, um in einem verzweigten Subagent-Kontext ausgeführt zu werden. Siehe [Fähigkeiten in einem Subagent ausführen](#run-skills-in-a-subagent). |

361| `agent` | Nein | Welcher Subagent-Typ verwendet werden soll, wenn `context: fork` gesetzt ist. |361| `agent` | Nein | Welcher Subagent-Typ verwendet werden soll, wenn `context: fork` gesetzt ist. |


397Die folgende Tabelle zeigt, woher der Befehlsname für jedes Layout kommt:397Die folgende Tabelle zeigt, woher der Befehlsname für jedes Layout kommt:

398 398 

399| Fähigkeitsort | Befehlsnamenquelle | Beispiel |399| Fähigkeitsort | Befehlsnamenquelle | Beispiel |

400| :------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ |400| :------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ |

401| Fähigkeitsverzeichnis unter `~/.claude/skills/` oder `.claude/skills/` | Verzeichnisname | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |401| Fähigkeitsverzeichnis unter `~/.claude/skills/` oder `.claude/skills/` | Verzeichnisname | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

402| [Verschachteltes](#where-skills-live) `.claude/skills/`-Verzeichnis, wenn der Name mit einer anderen Fähigkeit kollidiert | Unterverzzeichnisspfad relativ zum Arbeitsverzeichnis, dann der Fähigkeitsverzeichnisname | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |402| [Verschachteltes](#where-skills-live) `.claude/skills/`-Verzeichnis, wenn der Name mit einer anderen Fähigkeit kollidiert | Unterverzzeichnisspfad relativ zum Arbeitsverzeichnis, dann der Fähigkeitsverzeichnisname | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

403| Datei unter `.claude/commands/` | Dateiname ohne Erweiterung | `.claude/commands/deploy.md` → `/deploy` |403| Datei unter `.claude/commands/` | Dateiname ohne Erweiterung | `.claude/commands/deploy.md` → `/deploy` |

404| Plugin-`skills/`-Unterverzeichnis | Frontmatter `name` oder der Verzeichnisname, mit Namespace durch Plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, oder `/my-plugin:fancy` mit `name: fancy` |404| Datei in einem Unterverzeichnis von `.claude/commands/` | Unterverzzeichnisspfad relativ zu `commands/` mit jedem `/` ersetzt durch `:`, dann der Dateiname ohne Erweiterung | `.claude/commands/frontend/component.md` → `/frontend:component` |

405| Plugin `skills/` Unterverzeichnis | Frontmatter `name` oder der Verzeichnisname, mit Namespace durch Plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, oder `/my-plugin:fancy` mit `name: fancy` |

405| Plugin-Root `SKILL.md` | Frontmatter `name`, mit dem Plugin-Verzeichnisnamen als Fallback | `my-plugin/SKILL.md` mit `name: review` → `/my-plugin:review`. Siehe [Pfadverhaltenregeln](/docs/de/plugins-reference#path-behavior-rules) |406| Plugin-Root `SKILL.md` | Frontmatter `name`, mit dem Plugin-Verzeichnisnamen als Fallback | `my-plugin/SKILL.md` mit `name: review` → `/my-plugin:review`. Siehe [Pfadverhaltenregeln](/docs/de/plugins-reference#path-behavior-rules) |

406 407 

407In einer Plugin-Fähigkeit ersetzt das Frontmatter-Feld `name` den Verzeichnisnamen im letzten Segment des Befehls, sodass `my-plugin/skills/review/SKILL.md` mit `name: fancy` zu `/my-plugin:fancy` wird. Der bloße `/fancy` ruft die Fähigkeit auch auf, es sei denn, ein anderer Befehl verwendet bereits diesen Namen. Wenn der `name`, den Sie schreiben, bereits mit dem eigenen Präfix des Plugins beginnt, fügt Claude Code das Präfix nicht erneut auf v2.1.246 oder später hinzu. Zum Beispiel wird `name: my-plugin:fancy` immer noch zu `/my-plugin:fancy`. Von v2.1.216 bis v2.1.245 verdoppelte Claude Code das Präfix, wenn der `name` es bereits trug.408In einer Plugin-Fähigkeit ersetzt das Frontmatter-Feld `name` den Verzeichnisnamen im letzten Segment des Befehls, sodass `my-plugin/skills/review/SKILL.md` mit `name: fancy` zu `/my-plugin:fancy` wird. Der bloße `/fancy` ruft die Fähigkeit auch auf, es sei denn, ein anderer Befehl verwendet bereits diesen Namen. Wenn der `name`, den Sie schreiben, bereits mit dem eigenen Präfix des Plugins beginnt, fügt Claude Code das Präfix nicht erneut auf v2.1.246 oder später hinzu. Zum Beispiel wird `name: my-plugin:fancy` immer noch zu `/my-plugin:fancy`. Von v2.1.216 bis v2.1.245 verdoppelte Claude Code das Präfix, wenn der `name` es bereits trug.


630 Dynamischen Kontext injizieren631 Dynamischen Kontext injizieren

631</h3>632</h3>

632 633 

633Die Syntax `` !`<command>` `` führt Shell-Befehle aus, bevor der Skill-Inhalt an Claude gesendet wird. Die Befehlsausgabe ersetzt den Platzhalter, sodass Claude tatsächliche Daten erhält, nicht den Befehl selbst. Claude Code führt diese Befehle auf Ihrem Computer nicht aus, wenn der Skill [von Ihrem claude.ai-Konto synchronisiert wird](#how-claude-code-handles-the-body-of-a-synced-skill).634Die Syntax `` !`<command>` `` führt Shell-Befehle aus, bevor der Skill-Inhalt an Claude gesendet wird. Die Befehlsausgabe ersetzt den Platzhalter, sodass Claude tatsächliche Daten erhält, nicht den Befehl selbst. Claude Code führt diese Befehle auf Ihrem Computer nicht aus, wenn der Skill [von Ihrem claude.ai-Konto synchronisiert wird](#how-claude-code-handles-the-body-of-a-synced-skill). Diese Einschränkung erfordert Claude Code v2.1.228 oder später.

634 635 

635Dieser Skill fasst einen Pull Request zusammen, indem er Live-PR-Daten mit der GitHub CLI abruft. Die Befehle `` !`gh pr diff` `` und andere werden zuerst ausgeführt, und ihre Ausgabe wird in den Prompt eingefügt:636Dieser Skill fasst einen Pull Request zusammen, indem er Live-PR-Daten mit der GitHub CLI abruft. Die Befehle `` !`gh pr diff` `` und andere werden zuerst ausgeführt, und ihre Ausgabe wird in den Prompt eingefügt:

636 637 


668 669 

669Um dieses Verhalten für Skills und benutzerdefinierte Befehle aus Benutzer-, Projekt-, Plugin- oder [zusätzlichen Verzeichnisquellen](#skills-from-additional-directories) zu deaktivieren, setzen Sie `"disableSkillShellExecution": true` in [settings](/docs/de/settings). Jeder Befehl wird durch `[shell command execution disabled by policy]` ersetzt, anstatt ausgeführt zu werden. Gebündelte und verwaltete Skills sind nicht betroffen. Diese Einstellung ist am nützlichsten in [verwalteten Einstellungen](/docs/de/managed-settings), wo Benutzer sie nicht überschreiben können.670Um dieses Verhalten für Skills und benutzerdefinierte Befehle aus Benutzer-, Projekt-, Plugin- oder [zusätzlichen Verzeichnisquellen](#skills-from-additional-directories) zu deaktivieren, setzen Sie `"disableSkillShellExecution": true` in [settings](/docs/de/settings). Jeder Befehl wird durch `[shell command execution disabled by policy]` ersetzt, anstatt ausgeführt zu werden. Gebündelte und verwaltete Skills sind nicht betroffen. Diese Einstellung ist am nützlichsten in [verwalteten Einstellungen](/docs/de/managed-settings), wo Benutzer sie nicht überschreiben können.

670 671 

671Claude Code führt diese Befehle auf Ihrem Computer niemals aus, wenn sie in Skills [von Ihrem claude.ai-Konto synchronisiert werden](#how-synced-skills-behave), unabhängig von dieser Einstellung. [Wie Claude Code den Text eines synchronisierten Skills verarbeitet](#how-claude-code-handles-the-body-of-a-synced-skill) sagt, was Claude anstelle des Befehls in jeder Art von Sitzung erhält.672Claude Code führt diese Befehle auf Ihrem Computer niemals aus, wenn sie in Skills [von Ihrem claude.ai-Konto synchronisiert werden](#how-synced-skills-behave), unabhängig von dieser Einstellung. Diese Einschränkung erfordert Claude Code v2.1.228 oder später. [Wie Claude Code den Text eines synchronisierten Skills verarbeitet](#how-claude-code-handles-the-body-of-a-synced-skill) sagt, was Claude anstelle des Befehls in jeder Art von Sitzung erhält.

672 673 

673<Tip>674<Tip>

674 Um tiefere Überlegungen anzufordern, wenn ein Skill ausgeführt wird, fügen Sie `ultrathink` irgendwo im Skill-Inhalt ein. Siehe [Verwenden Sie ultrathink für einmalige tiefe Überlegungen](/docs/de/model-config#use-ultrathink-for-one-off-deep-reasoning).675 Um tiefere Überlegungen anzufordern, wenn ein Skill ausgeführt wird, fügen Sie `ultrathink` irgendwo im Skill-Inhalt ein. Siehe [Verwenden Sie ultrathink für einmalige tiefe Überlegungen](/docs/de/model-config#use-ultrathink-for-one-off-deep-reasoning).


716 Skills in einem Subagenten ausführen717 Skills in einem Subagenten ausführen

717</h3>718</h3>

718 719 

719Fügen Sie `context: fork` zu Ihrer Frontmatter hinzu, wenn Sie möchten, dass ein Skill isoliert ausgeführt wird. Der Skill-Inhalt wird zum Prompt, der den Subagenten antreibt. Er hat keinen Zugriff auf Ihren Gesprächsverlauf.720Fügen Sie `context: fork` zu Ihrer Frontmatter hinzu, wenn Sie möchten, dass ein Skill isoliert ausgeführt wird. Claude Code startet einen neuen Subagenten des im `agent`-Feld festgelegten Typs und gibt ihm den Skill-Inhalt als seinen Prompt. Der Subagent sieht Ihren Gesprächsverlauf nicht, daher müssen die Anweisungen des Skills eigenständig sein.

721 

722<Note>

723 Trotz des Namens wird ein Skill mit `context: fork` nicht in einer [Verzweigung des aktuellen Gesprächs](/docs/de/sub-agents#fork-the-current-conversation) ausgeführt, was dem Subagenten alles geben würde, das Sie bisher besprochen haben. Wenn die Task von diesem Verlauf abhängt, verzweigen Sie das Gespräch, anstatt `context: fork` zu verwenden.

724</Note>

720 725 

721Der verzweigte Subagent wird im [Hintergrund](/docs/de/sub-agents#run-subagents-in-foreground-or-background) ausgeführt: Sie arbeiten weiter, während er läuft, und sein Ergebnis kommt in Ihr Gespräch, wenn es abgeschlossen ist. Setzen Sie `background: false` in der Frontmatter, um stattdessen auf das Ergebnis in dem Zug zu warten, der den Skill aufgerufen hat. Vor v2.1.218 blockierten verzweigte Skills den Zug immer, bis sie fertig waren.726Der verzweigte Subagent wird im [Hintergrund](/docs/de/sub-agents#run-subagents-in-foreground-or-background) ausgeführt: Sie arbeiten weiter, während er läuft, und sein Ergebnis kommt in Ihr Gespräch, wenn es abgeschlossen ist. Setzen Sie `background: false` in der Frontmatter, um stattdessen auf das Ergebnis in dem Zug zu warten, der den Skill aufgerufen hat. Vor v2.1.218 blockierten verzweigte Skills den Zug immer, bis sie fertig waren.

722 727 


802 807 

803Berechtigungssyntax: `Skill(name)` für exakte Übereinstimmung, `Skill(name *)` für Präfix-Übereinstimmung mit beliebigen Argumenten.808Berechtigungssyntax: `Skill(name)` für exakte Übereinstimmung, `Skill(name *)` für Präfix-Übereinstimmung mit beliebigen Argumenten.

804 809 

810Wenn Ihre `deny`-Regel einen Alias oder einen unqualifizierten Namen anstelle des eigenen Namens des Skills benennt, blockiert Claude Code den Skill trotzdem: Mit `Skill(review)` blockiert es den gebündelten `/code-review` durch seinen `/review`-Alias, und mit `Skill(deploy)` blockiert es einen [verschachtelten Skill](#where-skills-live), der als `apps/web:deploy` aufgelistet ist, durch seinen unqualifizierten Namen. Vor v2.1.260 blockierte Claude Code einen verschachtelten Skill, der unter seinem qualifizierten Namen aufgelistet ist, nicht, wenn die deny-Regel nur den unqualifizierten Namen benannte.

811 

812Claude Code stimmt einer `allow`-Regel nur gegen den eigenen Namen des Skills und den Namen in Claudes Aufruf ab.

813 

805**Einzelne Skills ausblenden**, indem Sie `disable-model-invocation: true` zu ihrer Frontmatter hinzufügen. Dies entfernt den Skill vollständig aus Claudes Kontext.814**Einzelne Skills ausblenden**, indem Sie `disable-model-invocation: true` zu ihrer Frontmatter hinzufügen. Dies entfernt den Skill vollständig aus Claudes Kontext.

806 815 

807<Note>816<Note>


838}847}

839```848```

840 849 

850Einige gebündelte Skills haben Aliase, wie z. B. `checkup` für `/doctor`. Wenn Sie einen `skillOverrides`-Eintrag unter einem Alias in [verwalteten Einstellungen](/docs/de/managed-settings) oder in einer Datei, die Sie mit dem `--settings`-Flag übergeben, festlegen, wendet Claude Code ihn auf den Skill hinter dem Alias an. Sie können einen Skill nur durch einen Alias weiter einschränken, ihn niemals sichtbarer machen, und wenn Sie auch einen Eintrag unter dem eigenen Namen des Skills in verwalteten Einstellungen festlegen, hat dieser Eintrag Vorrang. Vor v2.1.260 wendete Claude Code einen Eintrag unter einem Alias nicht auf den Skill in einer Einstellungsquelle an.

851 

852In Benutzer-, Projekt- und lokalen Einstellungen stimmt Claude Code Einträge nur gegen Skill-Namen ab. Wenn Sie dort einen Eintrag für `review` festlegen, gilt er für einen Skill namens `review`, nicht für den gebündelten `/code-review` durch seinen `/review`-Alias.

853 

841Plugin-Skills sind nicht von `skillOverrides` betroffen. Verwalten Sie diese stattdessen über `/plugin`.854Plugin-Skills sind nicht von `skillOverrides` betroffen. Verwalten Sie diese stattdessen über `/plugin`.

842 855 

843<h3 id="find-unused-skills">856<h3 id="find-unused-skills">


858 871 

859Die Überprüfung beider ist ein Baseline-Vergleich. Sammle ein paar realistische Prompts, führe jeden in einer neuen Sitzung mit dem verfügbaren Skill aus und wiederhole dies mit ihm [deaktiviert](#override-skill-visibility-from-settings), und vergleiche die Ergebnisse. Eine neue Sitzung ist wichtig, da der verbleibende Kontext aus der Erstellung des Skills Lücken in den geschriebenen Anweisungen verdeckt.872Die Überprüfung beider ist ein Baseline-Vergleich. Sammle ein paar realistische Prompts, führe jeden in einer neuen Sitzung mit dem verfügbaren Skill aus und wiederhole dies mit ihm [deaktiviert](#override-skill-visibility-from-settings), und vergleiche die Ergebnisse. Eine neue Sitzung ist wichtig, da der verbleibende Kontext aus der Erstellung des Skills Lücken in den geschriebenen Anweisungen verdeckt.

860 873 

874Zwei Tools automatisieren diesen Vergleich. Für einen Skill, der in einem [Plugin](/docs/de/plugins) ausgeliefert wird, führt [`claude plugin eval`](/docs/de/plugin-evals) jeden Prompt in einer isolierten Sitzung mit und ohne das Plugin aus, bewertet ihn mit Gradern, die du definierst oder die er für dich schreibt, und beendet sich mit einem Nicht-Null-Wert unterhalb eines Schwellwerts, sodass du CI darauf abstimmen kannst. Um an einem einzelnen Skill in einer Claude Code-Konversation zu iterieren, führt das unten stehende skill-creator-Plugin eine ähnliche Schleife mit seinem eigenen `evals/evals.json`-Format aus. Die beiden Formate sind nicht austauschbar.

875 

861<h3 id="run-evals-with-skill-creator">876<h3 id="run-evals-with-skill-creator">

862 Evals mit skill-creator ausführen877 Evals mit skill-creator ausführen

863</h3>878</h3>


873* `Marketplace "claude-plugins-official" not found`: Füge den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuche dann die Installation erneut.888* `Marketplace "claude-plugins-official" not found`: Füge den Marketplace mit `/plugin marketplace add anthropics/claude-plugins-official` hinzu und versuche dann die Installation erneut.

874* Das Plugin wird [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): Überprüfe den Plugin-Namen.889* Das Plugin wird [nicht im Marketplace gefunden](/docs/de/discover-plugins#install-plugins): Überprüfe den Plugin-Namen.

875 890 

876Wenn die Installationszusammenfassung `Run /reload-plugins to activate.` meldet, führe diesen Befehl aus, um die Skills des Plugins in der aktuellen Sitzung verfügbar zu machen. Bitte dann Claude, einen vorhandenen Skill zu evaluieren, zum Beispiel `evaluate my summarize-changes skill with skill-creator`. Das Plugin führt dich durch das Schreiben von Testfällen und führt die Schleife aus:891Wenn die Installationszusammenfassung `Run /reload-plugins to activate.` meldet, führt Claude Code dann diesen Reload für dich aus. Wenn der Reload warnt, dass deine nächste Nachricht die Konversation erneut lesen würde, führe `/reload-plugins --force` aus, um die Skills des Plugins in der aktuellen Sitzung verfügbar zu machen. Bitte dann Claude, einen vorhandenen Skill zu evaluieren, zum Beispiel `evaluate my summarize-changes skill with skill-creator`. Das Plugin führt dich durch das Schreiben von Testfällen und führt die Schleife aus:

877 892 

878* **Testfälle**: speichert Prompts, Eingabedateien und erwartetes Verhalten in `evals/evals.json` im Skill-Verzeichnis893* **Testfälle**: speichert Prompts, Eingabedateien und erwartetes Verhalten in `evals/evals.json` im Skill-Verzeichnis

879* **Isolierte Ausführungen**: spawnt einen [Subagent](/docs/de/sub-agents) pro Testfall, sodass jede Ausführung mit einem sauberen Kontext beginnt, und zeichnet Token-Anzahl und Dauer auf894* **Isolierte Ausführungen**: spawnt einen [Subagent](/docs/de/sub-agents) pro Testfall, sodass jede Ausführung mit einem sauberen Kontext beginnt, und zeichnet Token-Anzahl und Dauer auf


1105 1120 

1106Wenn die Frontmatter-YAML fehlerhaft ist, lädt Claude Code den Skill-Body mit leeren Metadaten, sodass `/skill-name` weiterhin funktioniert, aber Claude keine `description` zum Abgleichen hat. Führen Sie mit `--debug` aus, um den Parse-Fehler zu sehen.1121Wenn die Frontmatter-YAML fehlerhaft ist, lädt Claude Code den Skill-Body mit leeren Metadaten, sodass `/skill-name` weiterhin funktioniert, aber Claude keine `description` zum Abgleichen hat. Führen Sie mit `--debug` aus, um den Parse-Fehler zu sehen.

1107 1122 

1123Wenn der Skill in einem Plugin enthalten ist, können Sie messen, wie oft er bei realistischen Prompts ausgelöst wird, anstatt ihn einzeln zu überprüfen: Schreiben Sie einen Eval-Fall mit einem [`tool_used: Skill` Grader](/docs/de/plugin-evals#create-your-first-eval-suite) und führen Sie ihn mit `claude plugin eval` nach jeder Beschreibungsänderung aus.

1124 

1108Um `SKILL.md`-Dateien zu finden, deren Frontmatter nicht geparst wird, führen Sie [`claude plugin validate`](/docs/de/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) im Skills-Verzeichnis aus, beispielsweise `claude plugin validate .claude/skills` für Projekt-Skills oder `claude plugin validate ~/.claude/skills` für persönliche Skills. Erfordert Claude Code v2.1.233 oder später.1125Um `SKILL.md`-Dateien zu finden, deren Frontmatter nicht geparst wird, führen Sie [`claude plugin validate`](/docs/de/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) im Skills-Verzeichnis aus, beispielsweise `claude plugin validate .claude/skills` für Projekt-Skills oder `claude plugin validate ~/.claude/skills` für persönliche Skills. Erfordert Claude Code v2.1.233 oder später.

1109 1126 

1110<h3 id="skill-triggers-too-often">1127<h3 id="skill-triggers-too-often">

statusline.md +1 −1

Details

190| `workspace.project_dir` | Verzeichnis, in dem Claude Code gestartet wurde, das sich von `cwd` unterscheiden kann, wenn sich das Arbeitsverzeichnis während einer Sitzung ändert |190| `workspace.project_dir` | Verzeichnis, in dem Claude Code gestartet wurde, das sich von `cwd` unterscheiden kann, wenn sich das Arbeitsverzeichnis während einer Sitzung ändert |

191| `workspace.added_dirs` | Zusätzliche Verzeichnisse, die über `/add-dir` oder `--add-dir` hinzugefügt wurden. Leeres Array, wenn keine hinzugefügt wurden |191| `workspace.added_dirs` | Zusätzliche Verzeichnisse, die über `/add-dir` oder `--add-dir` hinzugefügt wurden. Leeres Array, wenn keine hinzugefügt wurden |

192| `workspace.git_worktree` | Git-Worktree-Name, wenn sich das aktuelle Verzeichnis in einem verknüpften Worktree befindet, der mit `git worktree add` erstellt wurde. Fehlt im Haupt-Worktree. Wird für jeden Git-Worktree gefüllt, im Gegensatz zu `worktree.*`, das nur während einer [Worktree-Sitzung](/docs/de/worktrees) vorhanden ist. |192| `workspace.git_worktree` | Git-Worktree-Name, wenn sich das aktuelle Verzeichnis in einem verknüpften Worktree befindet, der mit `git worktree add` erstellt wurde. Fehlt im Haupt-Worktree. Wird für jeden Git-Worktree gefüllt, im Gegensatz zu `worktree.*`, das nur während einer [Worktree-Sitzung](/docs/de/worktrees) vorhanden ist. |

193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Repository-Identität, die aus dem `origin` Remote geparst wird, zum Beispiel `"github.com"`, `"anthropics"`, `"claude-code"`. Fehlt außerhalb eines Git-Repositorys oder wenn kein `origin` Remote konfiguriert ist |193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Repository-Identität, die aus dem `origin` Remote geparst wird, zum Beispiel `"github.com"`, `"anthropics"`, `"claude-code"`. Fehlt außerhalb eines Git-Repositorys oder wenn kein `origin` Remote konfiguriert ist. Für ein gitlab.com-Projekt, das in Untergruppen verschachtelt ist, ist `owner` der vollständige Namespace-Pfad mit Schrägstrichen, wie `"group/subgroup"`. Vor v2.1.260 fehlte `workspace.repo` für diese Projekte |

194| `cost.total_cost_usd` | Geschätzte Sitzungskosten in USD, berechnet auf der Client-Seite zum Listenpreis, es sei denn, eine [`modelPricing`](/docs/de/settings-reference#modelpricing) Tabelle ist in Kraft. Kann sich von Ihrer tatsächlichen Rechnung unterscheiden. Wird auf \$0 zurückgesetzt, wenn `/clear` eine neue Sitzung startet. Vor v2.1.211 wurde die Summe nach `/clear` beibehalten |194| `cost.total_cost_usd` | Geschätzte Sitzungskosten in USD, berechnet auf der Client-Seite zum Listenpreis, es sei denn, eine [`modelPricing`](/docs/de/settings-reference#modelpricing) Tabelle ist in Kraft. Kann sich von Ihrer tatsächlichen Rechnung unterscheiden. Wird auf \$0 zurückgesetzt, wenn `/clear` eine neue Sitzung startet. Vor v2.1.211 wurde die Summe nach `/clear` beibehalten |

195| `cost.total_duration_ms` | Gesamtverstrichene Zeit seit Sitzungsbeginn in Millisekunden |195| `cost.total_duration_ms` | Gesamtverstrichene Zeit seit Sitzungsbeginn in Millisekunden |

196| `cost.total_api_duration_ms` | Gesamtzeit, die auf API-Antworten wartet, in Millisekunden |196| `cost.total_api_duration_ms` | Gesamtzeit, die auf API-Antworten wartet, in Millisekunden |

sub-agents.md +25 −20

Details

304| `name` | Ja | Eindeutige Kennung mit Kleinbuchstaben und Bindestrichen. [Hooks](/docs/de/hooks#subagentstart) erhalten diesen Wert als `agent_type`. Der Dateiname muss nicht übereinstimmen. Namen können kein `:` enthalten, das für [Plugin-Umfang-Identifier](/docs/de/plugins) wie `my-plugin:reviewer` reserviert ist. Claude Code lädt eine Datei, deren Name eins enthält, nicht und protokolliert einen Fehler im Debug-Protokoll. Vor v2.1.218 wurden solche Namen akzeptiert |304| `name` | Ja | Eindeutige Kennung mit Kleinbuchstaben und Bindestrichen. [Hooks](/docs/de/hooks#subagentstart) erhalten diesen Wert als `agent_type`. Der Dateiname muss nicht übereinstimmen. Namen können kein `:` enthalten, das für [Plugin-Umfang-Identifier](/docs/de/plugins) wie `my-plugin:reviewer` reserviert ist. Claude Code lädt eine Datei, deren Name eins enthält, nicht und protokolliert einen Fehler im Debug-Protokoll. Vor v2.1.218 wurden solche Namen akzeptiert |

305| `description` | Ja | Wann Claude an diesen Subagenten delegieren sollte |305| `description` | Ja | Wann Claude an diesen Subagenten delegieren sollte |

306| `tools` | Nein | [Werkzeuge](#available-tools), die der Subagent verwenden kann. Erbt jedes Werkzeug, das für Subagenten verfügbar ist, wenn weggelassen. Wenn kein Eintrag in der Liste sich zu einem Werkzeug auflöst, schlägt der Subagent normalerweise [fehl zu starten](/docs/de/errors#agent-would-be-spawned-with-zero-tools) mit einem Fehler, der die Einträge benennt. Um Skills in den Kontext zu laden, verwenden Sie das `skills`-Feld statt `Skill` hier aufzulisten |306| `tools` | Nein | [Werkzeuge](#available-tools), die der Subagent verwenden kann. Erbt jedes Werkzeug, das für Subagenten verfügbar ist, wenn weggelassen. Wenn kein Eintrag in der Liste sich zu einem Werkzeug auflöst, schlägt der Subagent normalerweise [fehl zu starten](/docs/de/errors#agent-would-be-spawned-with-zero-tools) mit einem Fehler, der die Einträge benennt. Um Skills in den Kontext zu laden, verwenden Sie das `skills`-Feld statt `Skill` hier aufzulisten |

307| `disallowedTools` | Nein | Werkzeuge zum Verweigern, entfernt aus geerbter oder angegebener Liste |307| `disallowedTools` | Nein | Werkzeuge zum Verweigern, entfernt aus geerbter oder angegebener Liste. Ein Eintrag mit einem Spezifizierer, wie `Bash(git push *)`, entfernt immer noch das [ganze Werkzeug](#available-tools) |

308| `model` | Nein | [Modell](#choose-a-model) zu verwenden: `sonnet`, `opus`, `haiku`, `fable`, eine vollständige Modell-ID wie `claude-opus-5` oder `inherit`. Wenn Sie es weglassen, wählt Claude Code das Modell in der [Subagenten-Modell-Reihenfolge](#choose-a-model) |308| `model` | Nein | [Modell](#choose-a-model) zu verwenden: `sonnet`, `opus`, `haiku`, `fable`, eine vollständige Modell-ID wie `claude-opus-5` oder `inherit`. Wenn Sie es weglassen, wählt Claude Code das Modell in der [Subagenten-Modell-Reihenfolge](#choose-a-model) |

309| `permissionMode` | Nein | [Berechtigungsmodus](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan` oder `manual` als Alias für `default`. Der `manual`-Alias erfordert Claude Code v2.1.200 oder später. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |309| `permissionMode` | Nein | [Berechtigungsmodus](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan` oder `manual` als Alias für `default`. Der `manual`-Alias erfordert Claude Code v2.1.200 oder später. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |

310| `maxTurns` | Nein | Maximale Anzahl von Agenten-Turns, bevor der Subagent stoppt. Wenn der Subagent die Grenze erreicht, gibt Claude Code seine Ausgabe als teilweise markiert zurück, und Claude kann [ihn fortsetzen](#resume-subagents), um fortzufahren. Die teilweise Markierung erfordert Claude Code v2.1.246 oder später |310| `maxTurns` | Nein | Maximale Anzahl von Agenten-Turns, bevor der Subagent stoppt. Wenn der Subagent die Grenze erreicht, gibt Claude Code seine Ausgabe als teilweise markiert zurück, und Claude kann [ihn fortsetzen](#resume-subagents), um fortzufahren. Die teilweise Markierung erfordert Claude Code v2.1.246 oder später |


427 Verfügbare Werkzeuge427 Verfügbare Werkzeuge

428</h4>428</h4>

429 429 

430Subagenten erben die [integrierten Werkzeuge](/docs/de/tools-reference) und MCP-Werkzeuge, die in der Hauptkonversation verfügbar sind, eingeengt durch zwei Filter: Der erste entfernt eine kurze Liste von Werkzeugen aus jedem Subagenten, und der zweite reduziert den integrierten Werkzeugsatz für Subagenten, die im [Hintergrund](#run-subagents-in-foreground-or-background) laufen, was der Standard ist. [Forks](#fork-the-current-conversation) überspringen beide Filter und erhalten den genauen Werkzeugpool der Hauptkonversation. Der erste Filter entfernt diese Werkzeuge, auch wenn sie im `tools`-Feld aufgelistet sind:430Subagenten erben die [integrierten Werkzeuge](/docs/de/tools-reference) und MCP-Werkzeuge, die in der Hauptkonversation verfügbar sind, eingeengt durch zwei Filter: Der erste entfernt eine kurze Liste von Werkzeugen aus jedem Subagenten, und der zweite reduziert den integrierten Werkzeugsatz für Subagenten, die im [Hintergrund](#run-subagents-in-foreground-or-background) laufen, was der Standard ist. Auf macOS, Linux und WSL kann ein Subagent auch die Glob- und Grep-Werkzeuge erhalten, wenn die Hauptkonversation sie nicht hat, wie unter [Glob-Werkzeugverhalten](/docs/de/tools-reference#glob-tool-behavior) beschrieben. [Forks](#fork-the-current-conversation) überspringen beide Filter und erhalten den genauen Werkzeugpool der Hauptkonversation. Der erste Filter entfernt diese Werkzeuge, auch wenn sie im `tools`-Feld aufgelistet sind:

431 431 

432* `Agent`, wenn der Subagent die [Tiefengrenze](#let-subagents-spawn-their-own-subagents) erreicht hat; in einem [Fork](#fork-the-current-conversation) bleibt das Werkzeug aufgelistet, gibt aber stattdessen einen Fehler zurück432* `Agent`, wenn der Subagent die [Tiefengrenze](#let-subagents-spawn-their-own-subagents) erreicht hat; in einem [Fork](#fork-the-current-conversation) bleibt das Werkzeug aufgelistet, gibt aber stattdessen einen Fehler zurück

433* `AskUserQuestion`433* `AskUserQuestion`


439* `WaitForMcpServers`439* `WaitForMcpServers`

440* `Workflow`440* `Workflow`

441 441 

442Der zweite Filter gilt für Subagenten, die im Hintergrund laufen. Abgesehen von `Agent` und `ExitPlanMode`, die den Bedingungen des ersten Filters folgen, wo immer der Subagent läuft, behält ein Hintergrund-Subagent jedes MCP-Werkzeug, aber nur diese integrierten Werkzeuge: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage` und `Artifact`. Claude Code entfernt jedes andere integrierte Werkzeug aus einem Hintergrund-Subagenten, ob geerbt oder im `tools`-Feld aufgelistet, sodass die gleiche Definition zu verschiedenen Werkzeugen im Vordergrund und im Hintergrund führen kann. Die Entfernung meldet keinen Fehler, es sei denn, sie hinterlässt die `tools`-Liste [aufgelöst zu nichts](/docs/de/errors#agent-would-be-spawned-with-zero-tools). [`ListAgents`](/docs/de/cross-session-messaging) folgt diesen Filtern wie jedes integrierte Werkzeug: Ein Vordergrund-Subagent erbt es in Sitzungen, wo sitzungsübergreifendes Messaging aktiviert ist, und ein Hintergrund-Subagent behält es nicht.442Der zweite Filter gilt für Subagenten, die im Hintergrund laufen. Abgesehen von `Agent` und `ExitPlanMode`, die den Bedingungen des ersten Filters folgen, wo immer der Subagent läuft, behält ein Hintergrund-Subagent jedes MCP-Werkzeug, aber nur diese integrierten Werkzeuge: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage` und `Artifact`. Claude Code entfernt jedes andere integrierte Werkzeug aus einem Hintergrund-Subagenten, ob geerbt oder im `tools`-Feld aufgelistet, sodass die gleiche Definition zu verschiedenen Werkzeugen im Vordergrund und im Hintergrund führen kann. Die Entfernung meldet keinen Fehler, es sei denn, sie hinterlässt die `tools`-Liste [aufgelöst zu nichts](/docs/de/errors#agent-would-be-spawned-with-zero-tools).

443 

444[`ListAgents`](/docs/de/cross-session-messaging) folgt diesen Filtern wie jedes integrierte Werkzeug: Ein Vordergrund-Subagent erbt es in Sitzungen, wo sitzungsübergreifendes Messaging aktiviert ist, und ein Hintergrund-Subagent behält es nicht.

443 445 

444Teammates in [Agent-Teams](/docs/de/agent-teams) behalten zusätzlich die Task-Werkzeuge und Cron-Werkzeuge: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete` und `CronList`.446Teammates in [Agent-Teams](/docs/de/agent-teams) behalten zusätzlich die Task-Werkzeuge und Cron-Werkzeuge: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete` und `CronList`.

445 447 


479---481---

480```482```

481 483 

484Ein `disallowedTools`-Eintrag mit einem Spezifizierer, wie `Bash(git push *)`, entfernt immer noch das ganze Werkzeug aus dem Subagenten, nicht nur die übereinstimmenden Befehle. Um Bash zu behalten und bestimmte Befehle zu blockieren, fügen Sie eine [Bash-Ablehnungsregel](/docs/de/permissions#bash) wie `Bash(git push *)` zu `permissions.deny` in Ihren Einstellungen hinzu. Die Regel gilt für die Hauptkonversation und für Subagenten.

485 

482<h4 id="restrict-which-subagents-can-be-spawned">486<h4 id="restrict-which-subagents-can-be-spawned">

483 Beschränken Sie, welche Subagenten gespawnt werden können487 Beschränken Sie, welche Subagenten gespawnt werden können

484</h4>488</h4>


570 Berechtigungsmodi574 Berechtigungsmodi

571</h4>575</h4>

572 576 

573Setzen Sie `permissionMode`, um den Berechtigungsmodus zu wählen, in dem ein Subagent läuft. Verwenden Sie die Konfigurationswerte der Modi, daher ist der Manuelle Modus `default`. Wenn Sie ihn nicht setzen, erbt der Subagent den Modus der Hauptkonversation, der als [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) auf Pro-, Max- und Team-Plänen beginnt, es sei denn, Ihre Einstellungen oder Ihre Organisation ändern ihn. Das Setzen überschreibt diesen Modus, außer in den unten beschriebenen Fällen.577Setzen Sie `permissionMode`, um den Berechtigungsmodus zu wählen, in dem ein Subagent läuft. Verwenden Sie die Konfigurationswerte der Modi, daher ist der Manuelle Modus `default`. Wenn Sie ihn nicht setzen, erbt der Subagent den Modus der Hauptkonversation, der als [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) auf Pro-, Max- und Team-Plänen beginnt, es sei denn, Ihre Einstellungen oder Ihre Organisation ändern ihn.

578 

579Die Hauptkonversation's Berechtigungsmodus entscheidet, ob Claude Code den Wert verwendet, den Sie setzen:

580 

581* Wenn die Hauptkonversation in `bypassPermissions`, `acceptEdits` oder [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) ist, läuft der Subagent in diesem gleichen Modus und Claude Code ignoriert den `permissionMode`, den Sie setzen. Unter Auto-Modus bewertet der Klassifizierer die Werkzeugaufrufe des Subagenten mit den Block- und Zulassungsregeln der Hauptkonversation.

582* Wenn die Hauptkonversation in `default`, `dontAsk` oder `plan` Modus ist, läuft der Subagent in dem Berechtigungsmodus, den Sie setzen, außer `bypassPermissions`. Ein Subagent, der `bypassPermissions` deklariert, behält stattdessen den Modus der Hauptkonversation. Die `bypassPermissions`-Ausnahme erfordert Claude Code v2.1.267 oder später.

583 

584`permissionMode` akzeptiert diese Werte und `manual` als Alias für `default`:

574 585 

575| Modus | Verhalten |586| Modus | Verhalten |

576| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |587| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


578| `acceptEdits` | Auto-Akzeptanz von Dateibearbeitungen und häufigen Dateisystem-Befehlen für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |589| `acceptEdits` | Auto-Akzeptanz von Dateibearbeitungen und häufigen Dateisystem-Befehlen für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |

579| `auto` | [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode): ein Hintergrund-Klassifizierer überprüft Befehle und Schreibvorgänge in geschützten Verzeichnissen |590| `auto` | [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode): ein Hintergrund-Klassifizierer überprüft Befehle und Schreibvorgänge in geschützten Verzeichnissen |

580| `dontAsk` | Auto-Ablehnung von Berechtigungsaufforderungen. Explizit zulässige Werkzeuge funktionieren weiterhin; `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, wo diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie sie zugelassen haben |591| `dontAsk` | Auto-Ablehnung von Berechtigungsaufforderungen. Explizit zulässige Werkzeuge funktionieren weiterhin; `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, wo diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie sie zugelassen haben |

581| `bypassPermissions` | Alle Berechtigungsprüfungen überspringen |592| `bypassPermissions` | [Alle Berechtigungsprüfungen überspringen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode). Ein Subagent läuft in diesem Modus nur, wenn die Hauptkonversation es tut |

582| `plan` | Plan-Modus (schreibgeschützte Exploration) |593| `plan` | Plan-Modus (schreibgeschützte Exploration) |

583 594 

584<Warning>

585 Verwenden Sie `bypassPermissions` mit Vorsicht. Es überspringt Berechtigungsaufforderungen und ermöglicht dem Subagenten, Operationen ohne Genehmigung auszuführen, einschließlich Schreibvorgänge in `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` und `.mvn`.

586 

587 Auch in diesem Modus gelten die [Aktionen, die kein Modus auto-genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves). Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) für Details.

588</Warning>

589 

590Wenn das übergeordnete Element `bypassPermissions` oder `acceptEdits` verwendet, hat dies Vorrang und kann nicht überschrieben werden. Wenn das übergeordnete Element den [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) verwendet, erbt der Subagent den Auto-Modus und jedes `permissionMode` in seinem Frontmatter wird ignoriert: der Klassifizierer bewertet die Werkzeugaufrufe des Subagenten mit den gleichen Block- und Zulassungsregeln wie die übergeordnete Sitzung.

591 

592Wenn der Bypass-Modus durch [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) deaktiviert ist, ignoriert Claude Code `permissionMode: bypassPermissions` im Frontmatter und der Subagent läuft mit dem Modus der übergeordneten Sitzung. Vor v2.1.223 wendete Claude Code den Frontmatter-Modus auch mit deaktiviertem Bypass an.

593 

594<h4 id="preload-skills-into-subagents">595<h4 id="preload-skills-into-subagents">

595 Laden Sie Skills in Subagenten vor596 Laden Sie Skills in Subagenten vor

596</h4>597</h4>


616Wenn ein aufgelisteter Skill fehlt oder deaktiviert ist, beispielsweise durch die Richtlinie Ihrer Organisation, überspringt Claude Code ihn und protokolliert eine Warnung im Debug-Protokoll.617Wenn ein aufgelisteter Skill fehlt oder deaktiviert ist, beispielsweise durch die Richtlinie Ihrer Organisation, überspringt Claude Code ihn und protokolliert eine Warnung im Debug-Protokoll.

617 618 

618<Note>619<Note>

619 Dies ist das Gegenteil von [Ausführen eines Skills in einem Subagenten](/docs/de/skills#run-skills-in-a-subagent). Mit `skills` in einem Subagenten kontrolliert der Subagent den Systemprompt und lädt Skill-Inhalte. Mit `context: fork` in einem Skill wird der Skill-Inhalt in den von Ihnen angegebenen Agent eingespritzt. Beide verwenden das gleiche zugrunde liegende System.620 Dies ist das Gegenteil von [Ausführen eines Skills in einem Subagenten](/docs/de/skills#run-skills-in-a-subagent). Mit `skills` in einem Subagenten kontrolliert der Subagent den Systemprompt und lädt Skill-Inhalte. Mit `context: fork` in einem Skill wird der Skill-Inhalt in den von Ihnen angegebenen Agent eingespritzt. In beiden Fällen startet der Subagent ohne Ihre Konversationshistorie.

620</Note>621</Note>

621 622 

622<h4 id="enable-persistent-memory">623<h4 id="enable-persistent-memory">


885 886 

886Der Systemprompt des Subagenten ersetzt den Standard-Claude Code-Systemprompt vollständig, genauso wie [`--system-prompt`](/docs/de/cli-reference) es tut. `CLAUDE.md`-Dateien und Projekt-Memory werden weiterhin durch den normalen Nachrichtenfluss geladen. Der Agent-Name erscheint als `@<name>` in der Startup-Kopfzeile, damit Sie bestätigen können, dass er aktiv ist.887Der Systemprompt des Subagenten ersetzt den Standard-Claude Code-Systemprompt vollständig, genauso wie [`--system-prompt`](/docs/de/cli-reference) es tut. `CLAUDE.md`-Dateien und Projekt-Memory werden weiterhin durch den normalen Nachrichtenfluss geladen. Der Agent-Name erscheint als `@<name>` in der Startup-Kopfzeile, damit Sie bestätigen können, dass er aktiv ist.

887 888 

888Dies funktioniert mit integrierten und benutzerdefinierten Subagenten, und die Wahl bleibt bestehen, wenn Sie die Sitzung fortsetzen: Claude Code stellt den Systemprompt, die Werkzeugbeschränkungen und das Modell des Agenten zusammen mit der Konversation wieder her. Wenn der Agent nicht mehr vorhanden ist, wenn Sie fortsetzen, wird die Sitzung mit den Standard-Tools und dem Standard-Systemprompt fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).889Dies funktioniert mit integrierten und benutzerdefinierten Subagenten, und die Wahl bleibt bestehen, wenn Sie die Sitzung fortsetzen: Claude Code stellt den Systemprompt, die Werkzeugbeschränkungen und das Modell des Agenten zusammen mit der Konversation wieder her. Wenn der Agent nicht mehr vorhanden ist, wenn Sie fortsetzen, wird die Sitzung mit den Standard-Tools fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available). Für den Systemprompt in beiden Fällen siehe [Systemprompt-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations).

889 890 

890Für einen von einem Plugin bereitgestellten Subagenten können Sie einfach den Agent-Namen übergeben und Claude Code findet ihn:891Für einen von einem Plugin bereitgestellten Subagenten können Sie einfach den Agent-Namen übergeben und Claude Code findet ihn:

891 892 


929 930 

930Für eine Skill mit `context: fork` folgt Claude Code stattdessen den Regeln in [Führen Sie Skills in einem Subagenten aus](/docs/de/skills#run-skills-in-a-subagent), unabhängig davon, ob Fork-Modus an ist.931Für eine Skill mit `context: fork` folgt Claude Code stattdessen den Regeln in [Führen Sie Skills in einem Subagenten aus](/docs/de/skills#run-skills-in-a-subagent), unabhängig davon, ob Fork-Modus an ist.

931 932 

932Hintergrund-Subagenten laufen mit einem [kleineren integrierten Werkzeugsatz](#available-tools) als Vordergrund-Subagenten, außer für Konversations-Forks, und sie zeigen jede Berechtigungsaufforderung in Ihrer Hauptsitzung an. Wenn Sie eine dieser Aufforderungen mit einer Wahl beantworten, die über diesen einen Werkzeugaufruf hinausgeht, z. B. eine Genehmigung, die für den Rest der Sitzung gilt, wendet Claude Code Ihre Antwort auf die gesamte Sitzung an, einschließlich Ihrer Hauptkonversation.933Hintergrund-Subagenten laufen mit einem [kleineren integrierten Werkzeugsatz](#available-tools) als Vordergrund-Subagenten, außer für Konversations-Forks und [fortgesetzte](#resume-subagents) Vordergrund-Subagenten.

934 

935Hintergrund-Subagenten zeigen jede Berechtigungsaufforderung in Ihrer Hauptsitzung an. Wenn Sie eine dieser Aufforderungen mit einer Wahl beantworten, die über diesen einen Werkzeugaufruf hinausgeht, z. B. eine Genehmigung, die für den Rest der Sitzung gilt, wendet Claude Code Ihre Antwort auf die gesamte Sitzung an, einschließlich Ihrer Hauptkonversation.

933 936 

934Ein Hintergrund-Subagent kann einen Hintergrund-[Bash- oder PowerShell-Befehl](/docs/de/tools-reference#background-commands) [über das Ende seiner Runde hinaus laufen lassen](/docs/de/interactive-mode#how-backgrounding-works). Wenn dieser Befehl endet, sendet Claude Code dem Subagenten eine Benachrichtigung.937Ein Hintergrund-Subagent kann einen Hintergrund-[Bash- oder PowerShell-Befehl](/docs/de/tools-reference#background-commands) [über das Ende seiner Runde hinaus laufen lassen](/docs/de/interactive-mode#how-backgrounding-works). Wenn dieser Befehl endet, sendet Claude Code dem Subagenten eine Benachrichtigung.

935 938 


1129 1132 

1130Jede Subagenten-Invokation erstellt eine neue Instanz, anstatt eine frühere fortzusetzen. Um die Arbeit eines vorhandenen Subagenten fortzusetzen, anstatt von vorne zu beginnen, bitten Sie Claude, ihn fortzusetzen.1133Jede Subagenten-Invokation erstellt eine neue Instanz, anstatt eine frühere fortzusetzen. Um die Arbeit eines vorhandenen Subagenten fortzusetzen, anstatt von vorne zu beginnen, bitten Sie Claude, ihn fortzusetzen.

1131 1134 

1132Fortgesetzte Subagenten behalten ihre vollständige Konversationshistorie, einschließlich aller vorherigen Werkzeugaufrufe, Ergebnisse und Überlegungen. Der Subagent setzt genau dort an, wo er gestoppt hat, anstatt von vorne zu beginnen.1135Fortgesetzte Subagenten behalten ihre vollständige Konversationshistorie, einschließlich aller vorherigen Werkzeugaufrufe, Ergebnisse und Überlegungen. Wenn der Subagent [Hintergrund-Subagenten seiner eigenen](#let-subagents-spawn-their-own-subagents) spawnt, enthält diese Historie die Ergebnisse, die sie während seiner Ausführung lieferten. Der Subagent setzt genau dort an, wo er gestoppt hat, anstatt von vorne zu beginnen.

1133 1136 

1134* Wenn ein Subagent abgeschlossen ist, erhält Claude seine Agent-ID.1137* Wenn ein Subagent abgeschlossen ist, erhält Claude seine Agent-ID.

1135* Die integrierten Explore- und Plan-Agenten sind einmalig und geben keine Agent-ID zurück, sodass Claude sie nicht fortsetzen kann. Verwenden Sie `general-purpose` oder einen benutzerdefinierten Subagenten, wenn Sie die Arbeit fortsetzen müssen.1138* Die integrierten Explore- und Plan-Agenten sind einmalig und geben keine Agent-ID zurück, sodass Claude sie nicht fortsetzen kann. Verwenden Sie `general-purpose` oder einen benutzerdefinierten Subagenten, wenn Sie die Arbeit fortsetzen müssen.


1147[Claude resumes the subagent with full context from previous conversation]1150[Claude resumes the subagent with full context from previous conversation]

1148```1151```

1149 1152 

1150Ein abgeschlossener Subagent, der eine `SendMessage` erhält, wird automatisch im Hintergrund fortgesetzt, ohne dass eine neue `Agent`-Invokation erforderlich ist. Das Gleiche gilt für einen Subagenten, den Claude mit dem `TaskStop`-Werkzeug gestoppt hat.1153Wenn Claude einen abgeschlossenen Subagenten mit dem `SendMessage`-Werkzeug eine Nachricht sendet, wird der Subagent automatisch im Hintergrund fortgesetzt, ohne dass eine neue `Agent`-Invokation erforderlich ist. Das Gleiche gilt für einen Subagenten, den Claude mit dem `TaskStop`-Werkzeug gestoppt hat, sobald sein gestoppter Lauf beendet ist. Der fortgesetzte Lauf behält den [Werkzeugsatz von dort, wo der Subagent zuerst lief](#run-subagents-in-foreground-or-background), und kann weiterhin den [Prompt-Cache lesen, den der ursprüngliche Lauf aufgewärmt hat](/docs/de/prompt-caching#subagents-and-the-cache).

1154 

1155Ein Subagent, der das `SendMessage`-Werkzeug hat, kann diese Nachricht auch senden. In einer interaktiven Sitzung meldet der fortgesetzte Agent dann dem Subagenten, der ihn fortgesetzt hat, zurück, nicht zu Ihrer Hauptkonversation. Dieser Subagent wartet auf das Ergebnis, bevor er seine eigene Arbeit beendet. Wenn ein Subagent einen Agenten anspricht, dem er meldet, z. B. seinen eigenen Launcher, setzt Claude Code diesen Agenten fort, ohne seine Ergebnisse umzuleiten.

1151 1156 

1152Ein Subagent, den Sie selbst gestoppt haben, mit `x` in `/tasks` oder einer SDK-`stop_task`-Anfrage, wird nicht automatisch fortgesetzt. Wenn Claude ihm eine Nachricht sendet, wird die Nachricht abgelehnt und Claude wird mitgeteilt, dass der Agent abgebrochen wurde.1157Ein Subagent, den Sie selbst gestoppt haben, mit `x` in `/tasks` oder einer SDK-`stop_task`-Anfrage, wird nicht automatisch fortgesetzt. Wenn Claude ihm eine Nachricht sendet, wird die Nachricht abgelehnt und Claude wird mitgeteilt, dass der Agent abgebrochen wurde.

1153 1158 

Details

240 240 

241 | Token | Steuert |241 | Token | Steuert |

242 | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |242 | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

243 | `promptBorder` | Eingabefeld-Rahmen im Manual-Modus |243 | `promptBorder` | Eingabefeld-Rahmen |

244 | `planMode` | Plan Mode-Akzent und -Rahmen |244 | `planMode` | Plan Mode-Akzent, Plan-Nachrichten und Plan-Mode-Dialoge |

245 | `autoAccept` | Accept-edits-Modus-Akzent und -Rahmen |245 | `autoAccept` | Accept-edits-Modus-Akzent |

246 | `bashBorder` | Eingabefeld-Rahmen beim Eingeben eines `!` Shell-Befehls |246 | `bashBorder` | Eingabefeld-Rahmen beim Eingeben eines `!` Shell-Befehls |

247 | `ide` | IDE-Verbindungsindikator |247 | `ide` | IDE-Verbindungsindikator |

248 | `fastMode` | Fast Mode-Indikator |248 | `fastMode` | Fast Mode-Indikator |

Details

227 Investieren Sie in Dokumentation und Memory227 Investieren Sie in Dokumentation und Memory

228</h3>228</h3>

229 229 

230Wir empfehlen dringend, in Dokumentation zu investieren, damit Claude Code Ihre Codebasis versteht. Organisationen können CLAUDE.md-Dateien auf mehreren Ebenen bereitstellen:230Wir empfehlen dringend, in Dokumentation zu investieren, damit Claude Code Ihre Codebasis versteht. Organisationen können CLAUDE.md-Dateien auf mehreren Ebenen bereitstellen. Siehe [wo CLAUDE.md-Dateien leben können](/docs/de/memory#choose-where-to-put-claude-md-files) und [wie Sie eine organisationsweite CLAUDE.md bereitstellen](/docs/de/memory#deploy-organization-wide-claude-md).

231 

232* **Organisationsweit**: Bereitstellen in Systemverzeichnissen wie `/Library/Application Support/ClaudeCode/CLAUDE.md` (macOS), `/etc/claude-code/CLAUDE.md` (Linux und WSL) oder `C:\Program Files\ClaudeCode\CLAUDE.md` (Windows) für unternehmensweite Standards

233* **Repository-Ebene**: Erstellen Sie `CLAUDE.md`-Dateien in Repository-Wurzeln mit Projektarchitektur, Build-Befehlen und Beitragsleitlinien. Checken Sie diese in die Versionskontrolle ein, damit alle Benutzer davon profitieren

234 

235Erfahren Sie mehr in [Memory und CLAUDE.md-Dateien](/docs/de/memory).

236 231 

237<h3 id="simplify-deployment">232<h3 id="simplify-deployment">

238 Vereinfachen Sie die Bereitstellung233 Vereinfachen Sie die Bereitstellung

tools-reference.md +22 −16

Details

50| `SendUserFile` | Sendet Dateien aus der Sitzung an Sie mit einer optionalen Beschriftung, damit ein generierter Bericht, Diagramm, Screenshot oder erstelltes Artefakt Ihr Gerät erreicht, anstatt nur im Transkript erwähnt zu werden. Ab v2.1.196 steuert die optionale `display`-Eingabe die Präsentation: `render` öffnet die Datei inline im Client, `attach` zeigt nur eine Download-Karte an, und wenn nicht gesetzt, entscheidet der Client nach Dateityp. Verfügbar, wenn ein [Remote Control](/docs/de/remote-control)-Client verbunden ist oder die Sitzung in einer verwalteten Cloud-Umgebung wie [Claude Code im Web](/docs/de/claude-code-on-the-web) ausgeführt wird. Die Zustellung läuft durch von Anthropic gehostete Infrastruktur, daher ist das Tool nicht auf Amazon Bedrock, Google Clouds Agent Platform oder Microsoft Foundry verfügbar | Nein |50| `SendUserFile` | Sendet Dateien aus der Sitzung an Sie mit einer optionalen Beschriftung, damit ein generierter Bericht, Diagramm, Screenshot oder erstelltes Artefakt Ihr Gerät erreicht, anstatt nur im Transkript erwähnt zu werden. Ab v2.1.196 steuert die optionale `display`-Eingabe die Präsentation: `render` öffnet die Datei inline im Client, `attach` zeigt nur eine Download-Karte an, und wenn nicht gesetzt, entscheidet der Client nach Dateityp. Verfügbar, wenn ein [Remote Control](/docs/de/remote-control)-Client verbunden ist oder die Sitzung in einer verwalteten Cloud-Umgebung wie [Claude Code im Web](/docs/de/claude-code-on-the-web) ausgeführt wird. Die Zustellung läuft durch von Anthropic gehostete Infrastruktur, daher ist das Tool nicht auf Amazon Bedrock, Google Clouds Agent Platform oder Microsoft Foundry verfügbar | Nein |

51| `ShareOnboardingGuide` | Lädt `ONBOARDING.md` hoch und gibt einen Share-Link zurück, den Teamkollegen in Claude Code öffnen können. Wird von `/team-onboarding` aufgerufen, nachdem der Leitfaden geschrieben wurde. Verfügbar für claude.ai-Abonnenten auf Pro-, Max-, Team- und Enterprise-Plänen | Ja |51| `ShareOnboardingGuide` | Lädt `ONBOARDING.md` hoch und gibt einen Share-Link zurück, den Teamkollegen in Claude Code öffnen können. Wird von `/team-onboarding` aufgerufen, nachdem der Leitfaden geschrieben wurde. Verfügbar für claude.ai-Abonnenten auf Pro-, Max-, Team- und Enterprise-Plänen | Ja |

52| `Skill` | Führt einen [Skill](/docs/de/skills#control-who-invokes-a-skill) innerhalb des Hauptgesprächs aus | Ja |52| `Skill` | Führt einen [Skill](/docs/de/skills#control-who-invokes-a-skill) innerhalb des Hauptgesprächs aus | Ja |

53| `TaskCreate` | Erstellt eine neue Aufgabe in der Aufgabenliste. Claude Code lässt sie auf den Modellen aus, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, es sei denn, Sie entscheiden sich dafür | Nein |53| `TaskCreate` | Erstellt eine neue Aufgabe in der Aufgabenliste. Wird standardmäßig nur auf den Modellen bereitgestellt, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, und auf anderen Modellen, wenn Sie sich dafür entscheiden | Nein |

54| `TaskGet` | Ruft vollständige Details für eine bestimmte Aufgabe ab. Claude Code lässt sie auf den Modellen aus, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, es sei denn, Sie entscheiden sich dafür | Nein |54| `TaskGet` | Ruft vollständige Details für eine bestimmte Aufgabe ab. Wird standardmäßig nur auf den Modellen bereitgestellt, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, und auf anderen Modellen, wenn Sie sich dafür entscheiden | Nein |

55| `TaskList` | Listet alle Aufgaben mit ihrem aktuellen Status auf. Claude Code lässt sie auf den Modellen aus, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, es sei denn, Sie entscheiden sich dafür | Nein |55| `TaskList` | Listet alle Aufgaben mit ihrem aktuellen Status auf. Wird standardmäßig nur auf den Modellen bereitgestellt, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, und auf anderen Modellen, wenn Sie sich dafür entscheiden | Nein |

56| `TaskOutput` | Ruft Ausgabe von einer Hintergrundaufgabe ab. Veraltet zugunsten von `Read` auf dem Ausgabedateipfad der Aufgabe. Wenn keine Aufgabe der ID entspricht, listet der Fehler die laufenden Hintergrund-Agenten nach ID und Beschreibung auf. Vor v2.1.203 benannte der Fehler nur die fehlende ID | Nein |56| `TaskOutput` | Ruft Ausgabe von einer Hintergrundaufgabe ab. Veraltet zugunsten von `Read` auf dem Ausgabedateipfad der Aufgabe. Wenn keine Aufgabe der ID entspricht, listet der Fehler die laufenden Hintergrund-Agenten nach ID und Beschreibung auf. Vor v2.1.203 benannte der Fehler nur die fehlende ID | Nein |

57| `TaskStop` | Stoppt eine laufende Hintergrundaufgabe nach ID. Es akzeptiert auch einen [Agent-Team-Teamkollegen](/docs/de/agent-teams) oder einen benannten Hintergrund-Agenten nach Agent-ID oder Name. Vor v2.1.198 akzeptierte es nur eine Hintergrundaufgaben-ID. Wenn keine Aufgabe der ID entspricht, listet der Fehler die laufenden Hintergrund-Agenten nach ID und Beschreibung auf, einschließlich Agenten, die ein anderer Agent erzeugt hat. Vor v2.1.203 listete der Fehler laufende Teamkollegen und benannte Agenten auf, aber nicht Hintergrund-Agenten, die ein anderer Agent erzeugt hat, daher konnten diese nicht identifiziert oder vom Hauptgespräch aus gestoppt werden | Nein |57| `TaskStop` | Stoppt eine laufende Hintergrundaufgabe nach ID. Es akzeptiert auch einen [Agent-Team-Teamkollegen](/docs/de/agent-teams) oder einen benannten Hintergrund-Agenten nach Agent-ID oder Name. Vor v2.1.198 akzeptierte es nur eine Hintergrundaufgaben-ID. Wenn keine Aufgabe der ID entspricht, listet der Fehler die laufenden Hintergrund-Agenten nach ID und Beschreibung auf, einschließlich Agenten, die ein anderer Agent erzeugt hat. Vor v2.1.203 listete der Fehler laufende Teamkollegen und benannte Agenten auf, aber nicht Hintergrund-Agenten, die ein anderer Agent erzeugt hat, daher konnten diese nicht identifiziert oder vom Hauptgespräch aus gestoppt werden | Nein |

58| `TaskUpdate` | Aktualisiert Aufgabenstatus, Abhängigkeiten, Details oder löscht Aufgaben. Claude Code lässt sie auf den Modellen aus, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, es sei denn, Sie entscheiden sich dafür | Nein |58| `TaskUpdate` | Aktualisiert Aufgabenstatus, Abhängigkeiten, Details oder löscht Aufgaben. Wird standardmäßig nur auf den Modellen bereitgestellt, die unter [Task-Tool-Verfügbarkeit](#task-tool-availability) aufgelistet sind, und auf anderen Modellen, wenn Sie sich dafür entscheiden | Nein |

59| `TodoWrite` | Verwaltet die Sitzungs-Aufgabencheckliste. Standardmäßig deaktiviert zugunsten von `TaskCreate`, `TaskGet`, `TaskList` und `TaskUpdate`. Setzen Sie `CLAUDE_CODE_ENABLE_TASKS=0`, um es in [Sitzungen, die die Task-Tracking-Tools haben](#task-tool-availability) erneut zu aktivieren | Nein |59| `TodoWrite` | Verwaltet die Sitzungs-Aufgabencheckliste. Standardmäßig deaktiviert zugunsten von `TaskCreate`, `TaskGet`, `TaskList` und `TaskUpdate`. Setzen Sie `CLAUDE_CODE_ENABLE_TASKS=0`, um es in [Sitzungen, die die Task-Tracking-Tools haben](#task-tool-availability) erneut zu aktivieren | Nein |

60| `ToolSearch` | Sucht nach und lädt aufgeschobene Tools, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aktiviert ist | Nein |60| `ToolSearch` | Sucht nach und lädt aufgeschobene Tools, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aktiviert ist | Nein |

61| `WaitForMcpServers` | Wartet auf einen oder mehrere [MCP-Server](/docs/de/mcp), die noch im Hintergrund verbunden werden, damit eine Anfrage ihre Tools verwenden kann, ohne die Sitzung neu zu starten. Claude ruft es auf, wenn ein benötigter Server noch nicht verbunden ist. Wird nur angezeigt, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) deaktiviert ist, da `ToolSearch` das Warten handhabt, wenn es aktiviert ist | Nein |61| `WaitForMcpServers` | Wartet auf einen oder mehrere [MCP-Server](/docs/de/mcp), die noch im Hintergrund verbunden werden, damit eine Anfrage ihre Tools verwenden kann, ohne die Sitzung neu zu starten. Claude ruft es auf, wenn ein benötigter Server noch nicht verbunden ist. Wird nur angezeigt, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) deaktiviert ist, da `ToolSearch` das Warten handhabt, wenn es aktiviert ist | Nein |


73* in [`permissions.allow`](/docs/de/settings-reference#permissions-allow) und [`permissions.deny`](/docs/de/settings-reference#permissions-deny) in den Einstellungen und in der `/permissions`-Schnittstelle73* in [`permissions.allow`](/docs/de/settings-reference#permissions-allow) und [`permissions.deny`](/docs/de/settings-reference#permissions-deny) in den Einstellungen und in der `/permissions`-Schnittstelle

74* in den [CLI-Flags](/docs/de/cli-reference) `--allowedTools` und `--disallowedTools`74* in den [CLI-Flags](/docs/de/cli-reference) `--allowedTools` und `--disallowedTools`

75* in den Optionen [`allowedTools` und `disallowedTools`](/docs/de/agent-sdk/permissions#allow-and-deny-rules) des Agent SDK75* in den Optionen [`allowedTools` und `disallowedTools`](/docs/de/agent-sdk/permissions#allow-and-deny-rules) des Agent SDK

76* in der [Frontmatter `tools` oder `disallowedTools`](/docs/de/sub-agents#supported-frontmatter-fields) eines Subagenten

77* in der [Frontmatter `allowed-tools`](/docs/de/skills#frontmatter-reference) eines Skills76* in der [Frontmatter `allowed-tools`](/docs/de/skills#frontmatter-reference) eines Skills

78* in der [`if`-Bedingung](/docs/de/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field) eines Hooks77* in der [`if`-Bedingung](/docs/de/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field) eines Hooks

79 78 


197 196 

198Ein Befehl, den ein [Vordergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, stoppt, wenn dieser Subagent seine endgültige Antwort gibt. Ein Befehl, den die Hauptkonversation oder ein Hintergrund-Subagent gestartet hat, läuft nach einer endgültigen Antwort weiter. Im nicht-interaktiven Modus mit dem `-p`-Flag [enden Hintergrund-Befehle kurz nach dem endgültigen Ergebnis des Laufs](/docs/de/headless#background-tasks-at-exit).197Ein Befehl, den ein [Vordergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, stoppt, wenn dieser Subagent seine endgültige Antwort gibt. Ein Befehl, den die Hauptkonversation oder ein Hintergrund-Subagent gestartet hat, läuft nach einer endgültigen Antwort weiter. Im nicht-interaktiven Modus mit dem `-p`-Flag [enden Hintergrund-Befehle kurz nach dem endgültigen Ergebnis des Laufs](/docs/de/headless#background-tasks-at-exit).

199 198 

200Wenn ein Befehl sein Timeout erreicht, ohne zu beenden, verschiebt Claude Code ihn in den Hintergrund, anstatt ihn zu stoppen. Claude arbeitet weiter, während der Befehl fortgesetzt wird. Claude Code wendet die gleichen Lebenszeitregeln auf einen verschobenen Befehl an wie auf jeden anderen Hintergrund-Befehl, daher endet er immer noch einen Vordergrund-Subagent-Befehl bei der endgültigen Antwort dieses Subagenten. Das Setzen von [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/de/env-vars#variables) deaktiviert Auto-Backgrounding zusammen mit dem Rest der Hintergrund-Task-Funktionalität.199Wenn ein Befehl sein Timeout erreicht, ohne zu beenden, verschiebt Claude Code ihn in den Hintergrund, anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Claude arbeitet weiter, während der Befehl fortgesetzt wird. Claude Code wendet die gleichen Lebenszeitregeln auf einen verschobenen Befehl an wie auf jeden anderen Hintergrund-Befehl, daher endet er immer noch einen Vordergrund-Subagent-Befehl bei der endgültigen Antwort dieses Subagenten. Das Setzen von [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/de/env-vars#variables) deaktiviert Auto-Backgrounding zusammen mit dem Rest der Hintergrund-Task-Funktionalität.

201 

202Claude Code backgrounded niemals drei Arten von Befehlen automatisch. Es stoppt sie stattdessen beim Timeout:

203 

204* Ein Befehl, der mit `sleep` beginnt.

205* Ein Befehl, der `git` irgendwo darin ausführt.

206* Ein zusammengesetzter Befehl, den Claude Code nicht vollständig in einfache Befehle analysieren kann. Claude Code behandelt eine Parameterexpansion wie `${VAR}` als nicht analysierbar, daher stoppt es einen Befehl, der mit `; exit "${PIPESTATUS[0]}"` endet, beim Timeout, auch wenn der Rest dieses Befehls analysiert wird.

207 200 

208Das Ergebnis eines Befehls, der in den Hintergrund verschoben wird, gibt an, was passiert ist:201Das Ergebnis eines Befehls, der in den Hintergrund verschoben wird, gibt an, was passiert ist:

209 202 


292 Glob-Werkzeugverhalten285 Glob-Werkzeugverhalten

293</h2>286</h2>

294 287 

295Das Glob-Werkzeug findet Dateien nach Namensmuster. Es unterstützt Standard-Glob-Syntax einschließlich `**` für rekursives Verzeichnis-Matching:288Das Glob-Werkzeug findet Dateien nach Namensmuster. Unter Windows ist es Teil des Standard-Werkzeugsatzes. Auf macOS, Linux und WSL lässt Claude Code Glob und [Grep](#grep-tool-behavior) aus dem Standard-Werkzeugsatz aus, und Claude sucht mit `find` und `grep` über das Bash-Werkzeug. In Claudes Shell führen diese beiden Befehle eingebettete Versionen von `bfs` und `ugrep` aus, und die Suchen erreichen Ihre Hooks und Berechtigungsregeln als `Bash`-Aufrufe.

289 

290Auf macOS, Linux und WSL erhalten Sie die Glob- und Grep-Werkzeuge in diesen Fällen zurück:

291 

292* Sie benennen `Glob` oder `Grep` in [`--tools` oder `--allowedTools`](/docs/de/cli-reference#cli-flags), wenn Sie die Sitzung starten, oder in den entsprechenden [Agent SDK](/docs/de/agent-sdk/overview)-Optionen. Mit `--tools` erhalten Sie die, die Sie auflisten, und das Benennen eines der beiden Werkzeuge in `--allowedTools` stellt beide wieder her. Eine Allow-Regel in einer Einstellungsdatei hat diese Auswirkung nicht.

293* Eine Berechtigungen-[Deny-Regel](/docs/de/permissions#match-all-uses-of-a-tool), das Flag `--disallowedTools` oder [`--restricted`](/docs/de/cli-reference#cli-flags) entfernt `Bash` aus der Sitzung.

294* Ein [Subagent](/docs/de/sub-agents#available-tools) listet `Glob` oder `Grep` in seinem `tools`-Feld auf und lässt `Bash` aus. Die aufgelisteten Werkzeuge kommen für diesen Subagenten nur zurück, oder für die gesamte Sitzung, wenn er als Hauptsitzungs-Agent über [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder die `agent`-Einstellung ausgeführt wird.

295 

296Glob unterstützt Standard-Glob-Syntax einschließlich `**` für rekursives Verzeichnis-Matching:

296 297 

297* `**/*.js` passt alle `.js`-Dateien in beliebiger Tiefe298* `**/*.js` passt alle `.js`-Dateien in beliebiger Tiefe

298* `src/**/*.ts` passt alle `.ts`-Dateien unter `src/`299* `src/**/*.ts` passt alle `.ts`-Dateien unter `src/`


310 Grep-Werkzeugverhalten311 Grep-Werkzeugverhalten

311</h2>312</h2>

312 313 

313Das Grep-Werkzeug durchsucht Dateiinhalte nach Mustern. Während [Glob](#glob-tool-behavior) Dateien nach Namen findet, findet Grep Zeilen in ihnen.314Das Grep-Werkzeug durchsucht Dateiinhalte nach Mustern. Während [Glob](#glob-tool-behavior) Dateien nach Namen findet, findet Grep Zeilen in ihnen. Auf macOS, Linux und WSL ist Grep standardmäßig unter denselben Bedingungen nicht vorhanden wie Glob. Siehe [Glob-Werkzeugverhalten](#glob-tool-behavior) für den Fall, dass beide Werkzeuge verfügbar sind.

314 315 

315Grep basiert auf [ripgrep](https://github.com/BurntSushi/ripgrep) und verwendet ripgreps Regex-Syntax, nicht POSIX-Grep. Muster, die Regex-Metazeichen enthalten, müssen maskiert werden. Zum Beispiel erfordert das Finden von `interface{}` in Go-Code das Muster `interface\{\}`.316Grep basiert auf [ripgrep](https://github.com/BurntSushi/ripgrep) und verwendet ripgreps Regex-Syntax, nicht POSIX-Grep. Muster, die Regex-Metazeichen enthalten, müssen maskiert werden. Zum Beispiel erfordert das Finden von `interface{}` in Go-Code das Muster `interface\{\}`.

316 317 


581 Verfügbarkeit des Task-Tools582 Verfügbarkeit des Task-Tools

582</h2>583</h2>

583 584 

584In Claude Code v2.1.233 und später sind die folgenden Tools auf Opus 4.8, Sonnet 5, Fable 5, Mythos 5 oder späteren Versionen dieser Familien nicht verfügbar, es sei denn, Sie aktivieren sie: `TodoWrite`, `TaskCreate`, `TaskGet`, `TaskUpdate` und `TaskList`. Diese Modelle verfolgen mehrstufige Arbeiten ohne eine schriftliche Checkliste, und die Definitionen und Erinnerungen der Tools beanspruchen Kontext, daher lässt Claude Code sie weg. Ohne sie fügt Claude nichts zur [Aufgabenliste](/docs/de/interactive-mode#task-list) hinzu, während es arbeitet. Bei jedem anderen Modell, wie Opus 4.7, stellt Claude Code die vier Task-Tools standardmäßig bereit und `TodoWrite` nur, wenn Sie [`CLAUDE_CODE_ENABLE_TASKS=0`](/docs/de/env-vars) setzen.585Die Task-Tracking-Tools, `TaskCreate`, `TaskGet`, `TaskUpdate`, `TaskList` und `TodoWrite`, sind standardmäßig nur auf Claude 3.x-Modellen, Opus 4 bis 4.7, Sonnet 4 bis 4.6 und Haiku 4.5 verfügbar. Überall dort, wo die Tools verfügbar sind, erhalten Sie die vier Task-Tools oder `TodoWrite`, wenn Sie [`CLAUDE_CODE_ENABLE_TASKS=0`](/docs/de/env-vars) setzen.

586 

587Bei jedem anderen Modell lässt Claude Code die Tools weg, es sei denn, Sie aktivieren sie. Das Gleiche gilt für eine Modell-ID, die Claude Code nicht erkennt, z. B. einen benutzerdefinierten Modellnamen, der über ein [LLM-Gateway](/docs/de/llm-gateway) bereitgestellt wird. Bei neueren Modellen verfolgt Claude mehrstufige Arbeiten ohne eine schriftliche Checkliste, und die Definitionen und Erinnerungen der Tools beanspruchen Kontext. Ohne die Tools fügt Claude nichts zur [Aufgabenliste](/docs/de/interactive-mode#task-list) hinzu, während es arbeitet.

585 588 

586Wenn Sie diese Tools trotzdem auf einem der aufgelisteten Modelle verwenden möchten, führen Sie eines der folgenden Verfahren durch:589Wenn Sie diese Tools auf einem Modell verwenden möchten, das sie standardmäßig nicht hat, führen Sie eines der folgenden Verfahren durch:

587 590 

588* Exportieren Sie [`CLAUDE_CODE_ENABLE_TODO_TOOLS=1`](/docs/de/env-vars), bevor Sie Claude Code starten, zum Beispiel `CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude`. Claude Code stellt dann die gleichen Tools auf jedem Modell und jedem Anbieter bereit591* Exportieren Sie [`CLAUDE_CODE_ENABLE_TODO_TOOLS=1`](/docs/de/env-vars), bevor Sie Claude Code starten, zum Beispiel `CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude`. Claude Code stellt dann die gleichen Tools auf jedem Modell und jedem Anbieter bereit

589* Nennen Sie eines der Tools in [`--allowedTools`](/docs/de/cli-reference#cli-flags), zum Beispiel `claude --allowedTools TaskCreate`592* Nennen Sie eines der Tools in [`--allowedTools`](/docs/de/cli-reference#cli-flags), zum Beispiel `claude --allowedTools TaskCreate`


594 597 

595Claude Code gibt einem Subagenten die Tools nur, wenn Ihre Sitzung sie hat, auch wenn der Subagent ein anderes Modell ausführt. Ein In-Process-[Agent-Team](/docs/de/agent-teams)-Teamkollege folgt Ihrer Sitzung auf die gleiche Weise, während ein Teamkollege in seinem eigenen [geteilten Bereich](/docs/de/agent-teams#choose-a-display-mode) als separater Claude Code-Prozess ausgeführt wird, daher entscheidet sein eigenes Modell. Ohne die Task-Tools koordiniert sich ein Agent mit seinem Team durch Nachrichten statt über die [gemeinsame Aufgabenliste](/docs/de/agent-teams#assign-and-claim-tasks).598Claude Code gibt einem Subagenten die Tools nur, wenn Ihre Sitzung sie hat, auch wenn der Subagent ein anderes Modell ausführt. Ein In-Process-[Agent-Team](/docs/de/agent-teams)-Teamkollege folgt Ihrer Sitzung auf die gleiche Weise, während ein Teamkollege in seinem eigenen [geteilten Bereich](/docs/de/agent-teams#choose-a-display-mode) als separater Claude Code-Prozess ausgeführt wird, daher entscheidet sein eigenes Modell. Ohne die Task-Tools koordiniert sich ein Agent mit seinem Team durch Nachrichten statt über die [gemeinsame Aufgabenliste](/docs/de/agent-teams#assign-and-claim-tasks).

596 599 

600Die hier beschriebene Standardeinstellung gilt in Claude Code v2.1.268 und später.

601 

597<h2 id="webfetch-tool-behavior">602<h2 id="webfetch-tool-behavior">

598 WebFetch-Tool-Verhalten603 WebFetch-Tool-Verhalten

599</h2>604</h2>


607* HTTP-URLs werden automatisch auf HTTPS aktualisiert.612* HTTP-URLs werden automatisch auf HTTPS aktualisiert.

608* Große Seiten werden vor der Verarbeitung auf ein festes Zeichenlimit gekürzt.613* Große Seiten werden vor der Verarbeitung auf ein festes Zeichenlimit gekürzt.

609* WebFetch speichert jede Antwort standardmäßig 15 Minuten lang zwischen, sodass wiederholte Abrufe derselben URL schnell zurückgegeben werden. Auf Claude Code v2.1.233 oder später können Sie [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/de/env-vars#variables) setzen, um zu ändern, wie lange WebFetch jede Antwort speichert.614* WebFetch speichert jede Antwort standardmäßig 15 Minuten lang zwischen, sodass wiederholte Abrufe derselben URL schnell zurückgegeben werden. Auf Claude Code v2.1.233 oder später können Sie [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/de/env-vars#variables) setzen, um zu ändern, wie lange WebFetch jede Antwort speichert.

615* Eine Seite, die nicht innerhalb von fünf Minuten heruntergeladen wird, einschließlich aller Umleitungen, denen WebFetch folgt, schlägt mit einem Deadline-Fehler fehl. Auf Claude Code v2.1.268 oder später können Sie [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/de/env-vars#variables) setzen, um das Limit zu ändern, oder auf `0`, um es zu entfernen.

610* Wenn eine URL zu einem anderen Host umleitet, gibt WebFetch ein Textergebnis zurück, das die ursprüngliche URL und das Umleitungsziel benennt, anstatt ihr zu folgen. Claude ruft dann die neue URL mit einem zweiten WebFetch-Aufruf ab.616* Wenn eine URL zu einem anderen Host umleitet, gibt WebFetch ein Textergebnis zurück, das die ursprüngliche URL und das Umleitungsziel benennt, anstatt ihr zu folgen. Claude ruft dann die neue URL mit einem zweiten WebFetch-Aufruf ab.

611* Wenn der Extraktionsschritt eine überladene API trifft, versucht Claude Code es mit Backoff erneut; ein Abruf, der immer noch fehlschlägt, gibt ein Fehlerergebnis zurück. Vor v2.1.212 konnte der API-Fehlertext Claude erreichen, als wäre er der extrahierte Seiteninhalt.617* Wenn der Extraktionsschritt eine überladene API trifft, versucht Claude Code es mit Backoff erneut; ein Abruf, der immer noch fehlschlägt, gibt ein Fehlerergebnis zurück. Vor v2.1.212 konnte der API-Fehlertext Claude erreichen, als wäre er der extrahierte Seiteninhalt.

612 618 

Details

110 110 

111Um einem gepipten Befehl stattdessen direkten Zugriff auf die Zwischenablage zu ermöglichen, fügen Sie `pbcopy *`, `wl-copy *` oder `xclip *` zu [`excludedCommands`](/docs/de/settings-reference#sandbox-excludedcommands) hinzu, damit der Befehl außerhalb der Sandbox ausgeführt wird.111Um einem gepipten Befehl stattdessen direkten Zugriff auf die Zwischenablage zu ermöglichen, fügen Sie `pbcopy *`, `wl-copy *` oder `xclip *` zu [`excludedCommands`](/docs/de/settings-reference#sandbox-excludedcommands) hinzu, damit der Befehl außerhalb der Sandbox ausgeführt wird.

112 112 

113<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">

114 Kopierter Text erreicht Ihre lokale Zwischenablage nicht über SSH

115</h3>

116 

117Wenn Claude Code auf einem Remote-Computer über SSH ausgeführt wird, kann es kein Clipboard-Tool auf Ihrem lokalen Computer ausführen. Außerhalb von tmux sendet Claude Code den Text beim Auswählen von Text im [Vollbildrendering](/docs/de/fullscreen) oder beim Ausführen von `/copy` stattdessen als OSC 52-Escape-Sequenz an Ihr Terminal. Ihr Terminal entscheidet, ob es den Text in Ihre Zwischenablage legt. `/copy` meldet `Copied to clipboard`, unabhängig davon, ob der Text angekommen ist, und außerhalb von tmux lautet die Auswahlmitteilung `sent N chars via OSC 52`.

118 

119Einige Terminals reagieren nicht auf OSC 52. iTerm2 ignoriert es, bis Sie **Settings > General > Selection > Applications in terminal may access clipboard** aktivieren, und macOS Terminal.app unterstützt es nicht.

120 

121Um den Text ohne OSC 52 zu erhalten:

122 

123* Halten Sie die native Auswahlaste Ihres Terminals gedrückt, während Sie ziehen, und kopieren Sie dann mit Ihrer üblichen Terminal-Verknüpfung, z. B. `Cmd+C`. Die Taste ist `Fn` in Terminal.app und `Option` in iTerm2. [Native Textauswahl beibehalten](/docs/de/fullscreen#keep-native-text-selection) listet sie für andere Terminals auf.

124* Setzen Sie [`CLAUDE_CODE_DISABLE_MOUSE=1`](/docs/de/env-vars) auf dem Remote-Computer, damit Ihr Terminal die Auswahl für die gesamte Sitzung verarbeitet.

125 

113<h3 id="search-and-discovery-issues">126<h3 id="search-and-discovery-issues">

114 Such- und Erkennungsprobleme127 Such- und Erkennungsprobleme

115</h3>128</h3>

ultrareview.md +1 −1

Details

171| Flag | Beschreibung |171| Flag | Beschreibung |

172| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |172| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

173| `--json` | Geben Sie die rohe `bugs.json`-Nutzlast statt der formatierten Ergebnisse aus |173| `--json` | Geben Sie die rohe `bugs.json`-Nutzlast statt der formatierten Ergebnisse aus |

174| `--timeout <minutes>` | Maximale Minuten zum Warten auf den Abschluss der Review. Standard ist 30 |174| `--timeout <minutes>` | Maximale Minuten zum Warten auf den Abschluss der Review. Standard ist 45 |

175| `--post` | [Posten Sie die fertigen Ergebnisse](#post-findings-to-the-pull-request) als einen einfachen Kommentar aus Ihrem GitHub-Konto zum Pull Request. Funktioniert bei `github.com` Pull-Request-Zielen; bei anderen Zielen ignoriert Claude Code das Flag und teilt dies mit. Erfordert Claude Code v2.1.227 oder später |175| `--post` | [Posten Sie die fertigen Ergebnisse](#post-findings-to-the-pull-request) als einen einfachen Kommentar aus Ihrem GitHub-Konto zum Pull Request. Funktioniert bei `github.com` Pull-Request-Zielen; bei anderen Zielen ignoriert Claude Code das Flag und teilt dies mit. Erfordert Claude Code v2.1.227 oder später |

176| `--no-post` | Posten Sie die Ergebnisse nicht. Dies ist die Standardeinstellung, und wenn Sie beide Flags übergeben, postet Claude Code nicht. Erfordert Claude Code v2.1.227 oder später |176| `--no-post` | Posten Sie die Ergebnisse nicht. Dies ist die Standardeinstellung, und wenn Sie beide Flags übergeben, postet Claude Code nicht. Erfordert Claude Code v2.1.227 oder später |

177 177 

Details

70 </Step>70 </Step>

71 71 

72 <Step title="Mit GitHub anmelden">72 <Step title="Mit GitHub anmelden">

73 Nach der Anmeldung fordert Sie claude.ai/code auf, GitHub zu verbinden. Folgen Sie der Aufforderung, und claude.ai/code sendet Sie zur Autorisierungsseite von GitHub. Genehmigen Sie die Autorisierungsanfrage, und GitHub bringt Sie zurück zu claude.ai/code. Cloud-Sitzungen funktionieren mit vorhandenen GitHub-Repositories und können auf jedes Repository zugreifen, das Ihr GitHub-Konto sehen kann. Um ein neues Projekt zu starten, [erstellen Sie zunächst ein leeres Repository auf GitHub](https://github.com/new).73 Nach der Anmeldung fordert Sie claude.ai/code auf, GitHub zu verbinden. Folgen Sie der Aufforderung, und claude.ai/code sendet Sie zur Autorisierungsseite von GitHub. Genehmigen Sie die Autorisierungsanfrage, und GitHub bringt Sie zurück zu claude.ai/code. Cloud-Sitzungen funktionieren mit vorhandenen GitHub-Repositories. Um ein neues Projekt zu starten, [erstellen Sie zunächst ein leeres Repository auf GitHub](https://github.com/new).

74 74 

75 Wenn das Schnelle Web-Setup deaktiviert ist, was standardmäßig bei Team- und Enterprise-Plänen der Fall ist, fordert Sie claude.ai/code dann auf, die Claude GitHub App auf Ihren Repositories zu installieren, falls sie nicht bereits installiert ist. Installieren Sie sie, wenn Sie [Auto-fix](/docs/de/claude-code-on-the-web#auto-fix-pull-requests) möchten, das Claude ermöglicht, auf CI-Fehler und Review-Kommentare zu Pull Requests in diesen Repositories zu reagieren; andernfalls klicken Sie auf **Überspringen**. In jedem Fall können Sitzungen auf die gleichen Repositories zugreifen.75 Mit dieser Verbindung kann eine Sitzung jedes öffentliche Repository klonen, kann aber nur dann in einem privaten Repository arbeiten, wenn die Claude GitHub App darauf installiert ist. [Installieren Sie die App](https://github.com/apps/claude/installations/new) auf jedem GitHub-Konto oder jeder Organisation, deren private Repositories Sie verwenden möchten. Bei einer GitHub-Organisation muss möglicherweise ein Organisationsinhaber die Installation genehmigen. Die Installation der App ermöglicht auch [Auto-fix](/docs/de/claude-code-on-the-web#auto-fix-pull-requests), das Claude ermöglicht, auf CI-Fehler und Review-Kommentare zu Pull Requests in diesen Repositories zu reagieren.

76 

77 Wenn das Onboarding Sie an dieser Stelle auffordert, die App zu installieren, und Sie dies lieber später tun möchten, klicken Sie auf **Überspringen**.

76 </Step>78 </Step>

77 79 

78 <Step title="Richten Sie Ihre Standardumgebung ein">80 <Step title="Richten Sie Ihre Standardumgebung ein">


91 Von Ihrem Terminal aus verbinden93 Von Ihrem Terminal aus verbinden

92</h3>94</h3>

93 95 

94Wenn Sie bereits die GitHub CLI (`gh`) verwenden, können Sie Claude Code im Web ohne das Öffnen eines Browsers einrichten. Dies erfordert die [Claude Code CLI](/docs/de/quickstart). Wenn Sie `/web-setup` ausführen, liest Claude Code Ihr lokales `gh`-Token, verknüpft es mit Ihrem claude.ai-Konto und erstellt die Cloud-Umgebung **Standard**, wenn Sie noch keine haben. Bei Team- und Enterprise-Plänen ist `/web-setup` nur verfügbar, nachdem ein Inhaber das [Schnelle Web-Setup](/docs/de/claude-code-on-the-web#github-authentication-options) aktiviert hat.96Wenn Sie bereits die GitHub CLI (`gh`) verwenden, können Sie Claude Code im Web ohne das Öffnen eines Browsers einrichten. Dies erfordert die [Claude Code CLI](/docs/de/quickstart). Bei Team- und Enterprise-Plänen ist `/web-setup` nur verfügbar, nachdem ein Inhaber das [Schnelle Web-Setup](/docs/de/claude-code-on-the-web#github-authentication-options) aktiviert hat.

97 

98Wenn Sie `/web-setup` ausführen, liest Claude Code das Token, das `gh auth token` ausgibt, fordert Sie auf zu bestätigen, und sendet das Token an Anthropic. Anthropic speichert es verschlüsselt mit Ihrem claude.ai-Konto, und Ihre Cloud-Sitzungen verwenden es für GitHub-Zugriff, bis Sie es [entfernen](#remove-the-web-setup-token). Eine Cloud-Sitzung kann dann auf jedes Repository zugreifen, auf das dieses Token zugreifen kann, ohne dass eine Claude GitHub App installiert werden muss.

99 

100Wenn Sie GitHub bereits im Browser verbunden haben, warnt Sie `/web-setup`, dass das Fortfahren diese Verbindung für Ihre Cloud-Sitzungen ersetzt.

95 101 

96<Note>102<Note>

97 Organisationen mit aktivierter [Zero Data Retention](/docs/de/zero-data-retention) können `/web-setup` oder andere Cloud-Sitzungsfunktionen nicht verwenden. Wenn die GitHub CLI nicht installiert oder nicht authentifiziert ist, öffnet Claude Code stattdessen den Browser-Onboarding-Flow.103 Organisationen mit aktivierter [Zero Data Retention](/docs/de/zero-data-retention) können `/web-setup` oder andere Cloud-Sitzungsfunktionen nicht verwenden. Wenn die GitHub CLI nicht installiert oder nicht authentifiziert ist, öffnet Claude Code stattdessen den Browser-Onboarding-Flow.


117 /web-setup123 /web-setup

118 ```124 ```

119 125 

120 Dies synchronisiert Ihr `gh`-Token mit Ihrem Claude-Konto. Bei Erfolg gibt Claude Code `Connected as <your-github-username>` aus und öffnet [claude.ai/code](https://claude.ai/code) in Ihrem Browser. Wenn Sie noch keine Cloud-Umgebung haben, erstellt `/web-setup` eine mit Trusted-Netzwerkzugriff und ohne Setup-Skript. Sie können [die Umgebung bearbeiten oder Variablen hinzufügen](/docs/de/cloud-environments#configure-your-environment) danach. Sobald `/web-setup` abgeschlossen ist, können Sie Cloud-Sitzungen von Ihrem Terminal aus mit [`--cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web) starten oder wiederkehrende Aufgaben mit [`/schedule`](/docs/de/routines) einrichten.126 Bestätigen Sie die Aufforderung, um Ihr `gh`-Token an Ihr Claude-Konto zu senden. Bei Erfolg gibt Claude Code `Connected as <your-github-username>` aus und öffnet [claude.ai/code](https://claude.ai/code) in Ihrem Browser. Wenn Sie noch keine Cloud-Umgebung haben, erstellt `/web-setup` eine mit Trusted-Netzwerkzugriff und ohne Setup-Skript. Sie können [die Umgebung bearbeiten oder Variablen hinzufügen](/docs/de/cloud-environments#configure-your-environment) danach. Sobald `/web-setup` abgeschlossen ist, können Sie Cloud-Sitzungen von Ihrem Terminal aus mit [`--cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-web) starten oder wiederkehrende Aufgaben mit [`/schedule`](/docs/de/routines) einrichten.

121 </Step>127 </Step>

122</Steps>128</Steps>

123 129 

130<h4 id="remove-the-web-setup-token">

131 Entfernen Sie das `/web-setup`-Token

132</h4>

133 

134Um das Token aus Ihrem Claude-Konto zu entfernen, trennen Sie GitHub unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Das Trennen löscht die GitHub-Anmeldedaten, die Ihre Cloud-Sitzungen verwenden, unabhängig davon, ob sie aus dem Browser oder von `/web-setup` stammen, sodass Cloud-Sitzungen den GitHub-Zugriff verlieren, bis Sie sich erneut verbinden. Ihr lokales `gh` bleibt angemeldet, und das Token bleibt auf GitHub gültig.

135 

136Um das Token selbst ungültig zu machen, widerrufen Sie es auf GitHub. Wenn Sie sich bei `gh` über den Browser angemeldet haben, gehört das Token zum Eintrag **GitHub CLI** unter [**Einstellungen > Anwendungen > Autorisierte OAuth-Apps**](https://github.com/settings/applications) auf GitHub, und das Widerrufen dieses Eintrags meldet auch die GitHub CLI auf Ihren Maschinen ab. Cloud-Sitzungen verlieren dann den GitHub-Zugriff, bis Sie `gh auth login` und `/web-setup` erneut ausführen.

137 

124<h2 id="start-a-task">138<h2 id="start-a-task">

125 Starten Sie eine Aufgabe139 Starten Sie eine Aufgabe

126</h2>140</h2>


204 Nach dem Verbinden von GitHub werden keine Repositories angezeigt218 Nach dem Verbinden von GitHub werden keine Repositories angezeigt

205</h3>219</h3>

206 220 

207Eine Cloud-Sitzung kann jedes Repository verwenden, das das verbundene GitHub-Konto sehen kann, unabhängig davon, auf welchen Repositories die Claude GitHub App installiert ist. Wenn ein Repository fehlt, überprüfen Sie, ob das verbundene GitHub-Konto auf GitHub Zugriff darauf hat. Wenn Sie auch [Auto-fix](/docs/de/claude-code-on-the-web#auto-fix-pull-requests) für ein Repository möchten, installieren Sie die App darauf: Öffnen Sie auf github.com **Einstellungen → Anwendungen → Claude → Konfigurieren** und überprüfen Sie, ob das Repository unter **Repository-Zugriff** aufgeführt ist. Private Repositories benötigen die gleiche Autorisierung wie öffentliche.221Wenn Sie GitHub im Browser verbunden haben, können Sitzungen jedes öffentliche Repository klonen, aber ein privates Repository wird nur angezeigt, wenn die Claude GitHub App auf dem Konto oder der Organisation installiert ist, das/die es besitzt, und der Zugriff der Installation auf Repositories es einschließt. [Installieren Sie die Claude GitHub App](https://github.com/apps/claude/installations/new) dort, oder bitten Sie einen Organisationsinhaber, sie zu installieren oder zu genehmigen.

222 

223Wenn Sie sich mit `/web-setup` verbunden haben, erreichen Sitzungen jedes Repository, auf das Ihr `gh`-Token zugreifen kann. Führen Sie `gh repo view OWNER/REPO` in Ihrer Shell aus, um zu überprüfen, dass Ihr GitHub CLI-Login das Repository sehen kann, und führen Sie `/web-setup` erneut aus, wenn Sie seit der Verbindung die `gh`-Konten gewechselt haben.

208 224 

209<h3 id="the-page-only-shows-a-github-login-button">225<h3 id="the-page-only-shows-a-github-login-button">

210 Die Seite zeigt nur eine GitHub-Anmeldeschaltfläche226 Die Seite zeigt nur eine GitHub-Anmeldeschaltfläche

whats-new/2026-w29.md +70 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Woche 29 · 13.–17. Juli 2026

6 

7> Rufen Sie Live-Daten in veröffentlichte Artefakte über MCP-Konnektoren auf, und verwenden Sie Claude Code mit einem Bildschirmleser im neuen Bildschirmleser-Modus.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-207">v2.1.207 → v2.1.212</a></span>

11 <span>2 Features · 13.–17. Juli</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Artefakte rufen Ihre MCP-Konnektoren auf</span>

17 <span className="digest-feature-pill">web</span>

18 </div>

19 

20 <p className="digest-feature-lede">Ein veröffentlichtes Artefakt kann jetzt MCP-Konnektoren aufrufen, jedes Mal wenn jemand es anzeigt, sodass ein Dashboard Live-Daten anzeigt und Aktionen bei Bedarf ausführen kann, anstatt einen Schnappschuss aus der Sitzung zu zeigen, die es erstellt hat. Jeder Aufruf wird über die eigenen Verbindungen des anzeigenden Kontos ausgeführt, und Betrachter genehmigen den Zugriff, bevor der erste Konnektor-Aufruf der Seite erfolgt. Diese Woche fügt auch öffentliche Freigabelinks, Editor-Rollen für gemeinsames Bearbeiten in Team- und Enterprise-Plänen sowie Artefakte hinzu, die aus Claude Tag-Sitzungen erstellt wurden.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/ItzF3QVI6L0QypjJ/images/whats-new/artifacts-mcp.mp4?fit=max&auto=format&n=ItzF3QVI6L0QypjJ&q=85&s=ff8b81ed52b26c773899dc28cec959e6" data-path="images/whats-new/artifacts-mcp.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Nennen Sie den Konnektor und die Daten, die Sie in Ihrer Eingabeaufforderung möchten:</p>

27 

28 ```text title="Claude Code" wrap theme={null}

29 Build a dashboard artifact of open pull requests that pulls the live list through my GitHub connector when the page loads.

30 ```

31 

32 <a className="digest-feature-link" href="/docs/de/artifacts#pull-live-data-with-mcp-connectors">Live-Daten mit MCP-Konnektoren abrufen</a>

33</div>

34 

35<div className="digest-feature">

36 <div className="digest-feature-header">

37 <span className="digest-feature-title">Bildschirmleser-Modus</span>

38 <span className="digest-feature-pill">CLI</span>

39 </div>

40 

41 <p className="digest-feature-lede">Der Bildschirmleser-Modus ersetzt die visuelle Terminal-Schnittstelle durch einfachen, linearen Text: Anstelle von Feldern, Spinnern und Neuzeichnungen an Ort und Stelle druckt Claude Code beschriftete Zeilen, die ein Bildschirmleser wie VoiceOver oder NVDA der Reihe nach liest, sodass Sie Berechtigungen genehmigen und die Ausgabe von Anfang bis Ende überprüfen können. Aktivieren Sie es pro Sitzung mit einem Flag, pro Shell mit der Umgebungsvariablen <code>CLAUDE\_AX\_SCREEN\_READER</code> oder überall mit der Einstellung <code>axScreenReader</code>.</p>

42 

43 <p className="digest-feature-try">Starten Sie eine Sitzung im Bildschirmleser-Modus:</p>

44 

45 ```bash terminal theme={null}

46 claude --ax-screen-reader

47 ```

48 

49 <a className="digest-feature-link" href="/docs/de/accessibility#turn-on-screen-reader-mode">Bildschirmleser-Modus aktivieren</a>

50</div>

51 

52<div className="digest-wins">

53 <p className="digest-wins-title">Weitere Verbesserungen</p>

54 

55 <div className="digest-wins-grid">

56 <div><code>/fork</code> kopiert jetzt Ihre Konversation in eine neue Hintergrund-Sitzung mit ihrer eigenen Zeile in <code>claude agents</code>, während Sie weiterarbeiten; der in-session-Subagent, den es früher gestartet hat, ist jetzt <code>/subtask</code></div>

57 <div><a href="/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry">Auto-Modus</a> benötigt nicht mehr die <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE</code> Opt-in auf Amazon Bedrock, Google Clouds Agent Platform und Microsoft Foundry; Administratoren können ihn mit <code>disableAutoMode</code> deaktivieren</div>

58 <div>MCP-Tool-Aufrufe, die länger als zwei Minuten laufen, werden jetzt automatisch in den Hintergrund verschoben, sodass die Sitzung nutzbar bleibt; passen Sie den Schwellenwert mit <code>CLAUDE\_CODE\_MCP\_AUTO\_BACKGROUND\_MS</code> an oder deaktivieren Sie ihn</div>

59 <div>Neuer <code>claude auto-mode reset</code> stellt die Standard-Auto-Modus-Konfiguration wieder her, und `--yes` überspringt die Bestätigungsaufforderung</div>

60 <div>Neue <a href="/docs/de/corporate-launcher">Corporate Launcher</a> Unterstützung: <code>CLAUDE\_CODE\_PROCESS\_WRAPPER</code> oder die Einstellung <code>processWrapper</code> führt die Prozesse, die Claude Code von seiner eigenen Binärdatei aus startet, wie den Hintergrund-Service und Agent-View-Sitzungen, durch eine erforderliche Wrapper-Ausführungsdatei aus</div>

61 <div><code>vimInsertModeRemaps</code> Einstellung ordnet zwei-Tasten-Insert-Modus-Sequenzen wie <code>jj</code> zu Escape im Vim-Modus zu</div>

62 <div>`--forward-subagent-text` und <code>CLAUDE\_CODE\_FORWARD\_SUBAGENT\_TEXT</code> enthalten Subagent-Text und Thinking-Blöcke in <a href="/docs/de/headless#stream-json-output">stream-json-Ausgabe</a></div>

63 <div>Sitzungsweite Obergrenzen stoppen Endlosschleifen: WebSearch-Aufrufe und Subagent-Spawns haben jeweils einen Standard von 200, anpassbar mit <code>CLAUDE\_CODE\_MAX\_WEB\_SEARCHES\_PER\_SESSION</code> und <code>CLAUDE\_CODE\_MAX\_SUBAGENTS\_PER\_SESSION</code></div>

64 <div>„Immer zulassen" Berechtigungsregeln werden im Repository-Root gespeichert, sodass Genehmigungen, die in einem Git-Worktree gewährt werden, über Sitzungen und Worktrees hinweg bestehen bleiben</div>

65 <div>Amazon Bedrock, Google Clouds Agent Platform und Claude Platform auf AWS verwenden jetzt standardmäßig Claude Opus 4.8</div>

66 <div>Die eingeklappte Tool-Zusammenfassungszeile zeigt einen Live-Verstrichene-Zeit-Zähler, sodass lange laufende Tool-Aufrufe sichtbar ticken, anstatt stecken zu bleiben</div>

67 </div>

68</div>

69 

70[Vollständiges Changelog für v2.1.207–v2.1.212 →](/docs/en/changelog#2-1-207)

whats-new/2026-w30.md +91 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Woche 30 · 20.–24. Juli 2026

6 

7> Opus 5 wird zum Standard-Opus-Modell, Claude Code Desktop erhält einen iOS-Simulator-Bereich, und das Claude-Sicherheits-Plugin scannt Ihren Code auf Sicherheitslücken.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-214">v2.1.214 → v2.1.219</a></span>

11 <span>3 Funktionen · 20.–24. Juli</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Claude Opus 5</span>

17 <span className="digest-feature-pill">neues Modell</span>

18 </div>

19 

20 <p className="digest-feature-lede">Claude Opus 5 ist das neue Standard-Opus-Modell in Claude Code. Es ist das Standard-Modell auf Max, Team Premium, Enterprise Pay-as-you-go und der Anthropic API sowie auf Claude Platform auf AWS, Amazon Bedrock und Google Clouds Agent Platform. Auf der Anthropic API und auf Max-, Team- und Enterprise-Plänen läuft Opus 5 mit einem <a href="/docs/de/model-config#extended-context">1-Million-Token-Kontextfenster</a>; auf Amazon Bedrock und Google Clouds Agent Platform wählen Sie die 1-Million-Modellvariante. Der Schnellmodus wechselt zu Opus 5 für \$10/\$50 pro MTok. Erfordert v2.1.219 oder später.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/opus-5.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8536b1cb3180e539008f39930403e47b" data-path="images/whats-new/opus-5.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Wechseln Sie zu Opus 5 nach Name, oder wählen Sie es aus der Modellauswahl:</p>

27 

28 ```text Claude Code theme={null}

29 > /model claude-opus-5

30 ```

31 

32 <a className="digest-feature-link" href="/docs/de/model-config#available-models">Modellkonfiguration</a>

33</div>

34 

35<div className="digest-feature">

36 <div className="digest-feature-header">

37 <span className="digest-feature-title">iOS-Simulator in Claude Code Desktop</span>

38 <span className="digest-feature-pill">Desktop</span>

39 </div>

40 

41 <p className="digest-feature-lede">Claude Code Desktop auf macOS erhält einen iOS-Simulator-Bereich, in öffentlicher Beta auf Pro-, Max- und Team-Plänen. Wenn Claude Ihre App in einem Simulator erstellt, startet oder überprüft, öffnet sich der Bereich neben der Konversation und streamt den Gerätebildschirm live, sodass Sie Claude durch die App tippen sehen können, um ihre Änderungen zu überprüfen, oder das Gerät selbst steuern können. Erfordert Xcode mit installierter iOS-Plattform und Claude Desktop v1.24012.0 oder später.</p>

42 

43 <Frame>

44 <img className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/ios-simulator.jpg?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=6c88418ed14ed0fb12cc1af75b17f2ee" alt="Claude Code Desktop mit dem iOS-Simulator-Bereich, der eine iPhone-App neben der Konversation anzeigt" width="2048" height="1152" data-path="images/whats-new/ios-simulator.jpg" />

45 </Frame>

46 

47 <p className="digest-feature-try">Bitten Sie Claude, Ihre App auszuführen oder zu testen, und der Bereich öffnet sich, wenn die App startet:</p>

48 

49 ```text Claude Code theme={null}

50 > Build the app and run it in the simulator to check the onboarding flow.

51 ```

52 

53 <a className="digest-feature-link" href="/docs/de/desktop-ios-simulator#run-your-app-in-the-simulator">iOS-Apps im Simulator testen</a>

54</div>

55 

56<div className="digest-feature">

57 <div className="digest-feature-header">

58 <span className="digest-feature-title">Claude-Sicherheits-Plugin</span>

59 <span className="digest-feature-pill">Plugin</span>

60 </div>

61 

62 <p className="digest-feature-lede">Das Claude-Sicherheits-Plugin führt einen Multi-Agent-Sicherheitslücken-Scan Ihrer Codebasis innerhalb einer Claude-Code-Sitzung durch: Agenten kartografieren Ihre Architektur, erstellen ein Bedrohungsmodell, suchen nach Sicherheitslücken und überprüfen unabhängig jeden Fund, bevor sie den Bericht in ein <code>CLAUDE-SECURITY-\<timestamp>/</code>-Verzeichnis schreiben. Scannen Sie ein ganzes Repository oder nur das Diff eines Branches, einen Pull Request oder einen einzelnen Commit, und wandeln Sie dann die Findings, die Sie auswählen, in überprüfte Patches um, die Sie selbst anwenden.</p>

63 

64 <p className="digest-feature-try">Installieren Sie das Plugin aus dem offiziellen Anthropic-Marketplace, führen Sie <code>/reload-plugins</code> aus, und starten Sie dann einen Scan mit <code>/claude-security</code>:</p>

65 

66 ```text Claude Code theme={null}

67 > /plugin install claude-security@claude-plugins-official

68 ```

69 

70 <a className="digest-feature-link" href="/docs/de/claude-security#scan-and-fix-your-codebase">Scannen und beheben Sie Ihre Codebasis</a>

71</div>

72 

73<div className="digest-wins">

74 <p className="digest-wins-title">Weitere Verbesserungen</p>

75 

76 <div className="digest-wins-grid">

77 <div><a href="/docs/de/code-review#review-a-diff-locally"><code>/code-review</code></a> läuft jetzt als Hintergrund-Subagent mit eigenem Kontextfenster, sodass die Überprüfungsarbeit aus Ihrer Konversation bleibt und die Findings ankommen, wenn sie abgeschlossen ist</div>

78 <div><code>/verify</code>, <code>/code-review</code> und <code>/deep-research</code> laufen nur, wenn Sie sie aufrufen; Claude startet sie nicht mehr von selbst</div>

79 <div><a href="/docs/de/interactive-mode#emoji-shortcodes">Emoji-Shortcodes</a> werden in der Eingabeaufforderung automatisch vervollständigt: Geben Sie <code>:heart:</code> ein, um ein Emoji einzufügen, oder zwei oder mehr Zeichen nach <code>:</code> für Vorschläge; deaktivieren Sie dies mit <code>emojiCompletionEnabled</code></div>

80 <div>Skills mit <code>context: fork</code> <a href="/docs/de/skills#run-skills-in-a-subagent">laufen standardmäßig im Hintergrund</a>, und <code>background: false</code> in der Frontmatter des Skills wartet auf das Ergebnis in derselben Runde</div>

81 <div>Eine Sitzung führt standardmäßig bis zu 20 Subagenten gleichzeitig aus; ändern Sie das <a href="/docs/de/sub-agents#concurrent-subagent-limit">Limit</a> mit <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` erzwingt jetzt die Obergrenze für Subagenten: Sobald die Ausgaben sie erreichen, kann Claude keine neuen starten und laufende Hintergrund-Subagenten stoppen</div>

83 <div>Neue <a href="/docs/de/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a>-Einstellung überspringt die Dateisystem-Isolation, während die Kontrolle des Netzwerk-Egress erhalten bleibt</div>

84 <div>Im Auto-Modus öffnen die Überprüfungen für gefährliche <code>rm</code>-Befehle, Hintergrund-Jobs und verdächtige Windows-Pfade keine Berechtigungsdialoge mehr; der Auto-Modus-Klassifizierer entscheidet stattdessen</div>

85 <div>Bash-Berechtigungsprüfungen schlagen bei mehr Shell-Formen fehl, einschließlich Dateideskriptor-Umleitungen, Zsh-Variablen-Subscripts in <code>\[\[]]</code>-Vergleichen, <code>help</code>- und <code>man</code>-Aufrufe, die unsichere Optionen ausführen könnten, und Befehle über 10.000 Zeichen</div>

86 <div><a href="/docs/de/fast-mode">Schnellmodus</a> unterstützt Opus 4.7 nicht mehr: <code>/fast</code> gilt jetzt für Opus 5 und Opus 4.8</div>

87 <div>Langfristig laufende Tool-Aufrufe geben einen periodischen Fortschritts-Heartbeat aus, anstatt stumm zu bleiben</div>

88 </div>

89</div>

90 

91[Vollständiges Changelog für v2.1.214–v2.1.219 →](/docs/en/changelog#2-1-214)

whats-new/2026-w32.md +103 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Woche 32 · 3.–7. August 2026

6 

7> Claude Code-Sitzungen können sich gegenseitig Nachrichten senden, selbstgehostete Umgebungen führen Cloud-Sitzungen auf Ihrer Infrastruktur aus, und der Auto-Modus wird zum Standard-Berechtigungsmodus.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-220">v2.1.220 → v2.1.224</a></span>

11 <span>3 Features · 3.–7. August</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Sitzungsübergreifendes Messaging</span>

17 <span className="digest-feature-pill">v2.1.224</span>

18 </div>

19 

20 <p className="digest-feature-lede">Ihre Claude Code-Sitzungen können sich jetzt gegenseitig Nachrichten senden. Claude entdeckt Ihre anderen Sitzungen mit dem Tool <code>ListAgents</code> und sendet mit <code>SendMessage</code>, entweder wenn Sie es darum bitten oder von selbst, z. B. nachdem eine Änderung in einer Sitzung Auswirkungen auf das hat, woran eine andere arbeitet. Eine Nachricht ist Text, den Claude für die andere Sitzung schreibt, niemals Ihr Gesprächsverlauf oder Dateien. Verfügbar auf macOS und Linux. Erfordert v2.1.224 oder später.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/cross-session-messaging.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8f33c3390f78660a4a26dc980f46159f" data-path="images/whats-new/cross-session-messaging.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Bitten Sie mit zwei offenen Sitzungen auf demselben Computer eine davon, etwas weiterzuleiten:</p>

27 

28 ```text title="Claude Code" wrap theme={null}

29 Tell the session working on the payments API that users.name is now users.display_name

30 ```

31 

32 <p className="digest-feature-try">Die andere Sitzung zeigt eine Zeile <code>Message from</code> an, sobald Claude die Nachricht gelesen hat; drücken Sie <code>Ctrl+O</code>, um sie zu erweitern. Um zu sehen, welche Sitzungen Claude erreichen kann, führen Sie <code>/list-agents</code> aus.</p>

33 

34 <a className="digest-feature-link" href="/docs/de/cross-session-messaging#message-another-session">Eine andere Sitzung benachrichtigen</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Selbstgehostete Umgebungen</span>

40 <span className="digest-feature-pill">v2.1.224</span>

41 </div>

42 

43 <p className="digest-feature-lede">Selbstgehostete Umgebungen führen Claude Code-Cloud-Sitzungen auf der eigenen Infrastruktur Ihrer Organisation aus, in öffentlicher Beta auf Team- und Enterprise-Plänen. Führen Sie <code>claude self-hosted-runner</code> auf Ihren Maschinen oder Containern aus, um sie in Runner umzuwandeln. Wenn jemand Ihre Umgebung beim Starten einer Sitzung von claude.ai, den mobilen oder Desktop-Apps oder `claude --cloud` auswählt, wird diese Sitzung in Ihrem Netzwerk ausgeführt und hat Zugriff auf Ihre internen Services. Ein Owner aktiviert zunächst <strong>Allow self-hosted environments</strong> in den <a href="https://claude.ai/admin-settings/cloud-environments">Admin-Einstellungen</a>.</p>

44 

45 <Frame>

46 <img className="w-full" src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/self-hosted-environments.jpg?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=ae9152cb1670c8af517d1aee57689b14" alt="Die Admin-Seite für selbstgehostete Umgebungen mit einer Liste von Umgebungen wie linux-dev und macos-prod mit ihrem Status und aktiven Sitzungszahlen" width="2048" height="1152" data-path="images/whats-new/self-hosted-environments.jpg" />

47 </Frame>

48 

49 <p className="digest-feature-try">Führen Sie als Owner angemeldet das geführte Setup aus, das Sie durch die Erstellung der Umgebung führt und einen Runner startet:</p>

50 

51 ```bash terminal theme={null}

52 claude self-hosted-runner setup

53 ```

54 

55 <p className="digest-feature-try">Die Umgebung zeigt <strong>Healthy</strong> in den Admin-Einstellungen an, sobald sich der Runner registriert.</p>

56 

57 <a className="digest-feature-link" href="/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner">Schnellstart für selbstgehostete Umgebungen</a>

58</div>

59 

60<div className="digest-feature">

61 <div className="digest-feature-header">

62 <span className="digest-feature-title">Auto-Modus wird zum Standard</span>

63 <span className="digest-feature-pill">CLI</span>

64 </div>

65 

66 <p className="digest-feature-lede">Ab dem 14. August ist der Auto-Modus der Standard-Berechtigungsmodus für neue Sitzungen auf Pro-, Max- und Team-Plänen. Wenn Sie selbst einen Standard-Modus festgelegt haben, bleibt dieser bestehen, es sei denn, Sie akzeptieren die einmalige Umschalt-Aufforderung, und ein Standard, den Ihre Organisation verwaltet, ändert sich nicht. Sie können jederzeit zwischen Modi wechseln. Bereits in Kraft auf diesen Plänen: Die Klassifizierer-Aufrufe, die der Auto-Modus durchführt, zählen nicht mehr zu Ihren Nutzungslimits.</p>

67 

68 <p className="digest-feature-try">Um jede Sitzung vor dem Wechsel im Auto-Modus zu starten, legen Sie ihn als Standard in Ihren Benutzereinstellungen fest:</p>

69 

70 ```json ~/.claude/settings.json {3} theme={null}

71 {

72 "permissions": {

73 "defaultMode": "auto"

74 }

75 }

76 ```

77 

78 <p className="digest-feature-try">Neue Sitzungen zeigen dann <code>auto mode on</code> in der Statusleiste an.</p>

79 

80 <a className="digest-feature-link" href="/docs/de/permission-modes#eliminate-prompts-with-auto-mode">Anforderungen und Steuerelemente für Auto-Modus</a>

81</div>

82 

83<div className="digest-wins">

84 <p className="digest-wins-title">Weitere Verbesserungen</p>

85 

86 <div className="digest-wins-grid">

87 <div>Die VS Code-Erweiterung erhält <a href="/docs/de/vs-code#extension-settings">Focus-Ansicht</a>, die Tool-Aktivität hinter einer erweiterbaren Zeile pro Zug verbirgt; schalten Sie sie über das Befehlsmenü oder mit <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> auf Mac) um</div>

88 <div>Sandbox-Anmeldedatendateien akzeptieren <a href="/docs/de/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> auf Linux und WSL2, sodass Sandbox-Befehle eine Sentinel-Kopie lesen, während der Sandbox-Proxy den echten Wert beim Ausgang ersetzt; die Maskierung von Anmeldedaten erhält auch <code>extract</code>, JWT-bewusste <code>decode</code> und AWS SigV4-Neusignierungsoptionen</div>

89 <div>Marketplaces können ein Plugin als <a href="/docs/de/plugin-marketplaces#zip-archives">ZIP-Archiv</a> mit der neuen <code>archive</code>-Quelle verteilen, heruntergeladen über HTTPS mit optionalem SHA-256-Pin, sodass Installationen ohne git oder npm funktionieren</div>

90 <div><code>/review</code> ist jetzt ein Alias von <a href="/docs/de/code-review#review-a-diff-locally"><code>/code-review</code></a>, und <code>/code-review</code> ohne Aufwandsstufe verwendet die Stufe, die Sie zuletzt eingegeben haben</div>

91 <div>Eine Sitzung, die Sie mit <a href="/docs/de/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> kopieren, nimmt ihre Code-Änderungen jetzt in einem eigenen Worktree vor, anstatt im Checkout der ursprünglichen Sitzung</div>

92 <div>Plugins, die Sie von <a href="/docs/de/discover-plugins#install-plugins"><code>/plugin</code></a> installieren, werden in der aktuellen Sitzung aktiviert, wenn es sicher ist; die Installationszusammenfassung meldet <code>Plugin is now active.</code> oder teilt Ihnen mit, dass Sie <code>/reload-plugins</code> ausführen sollen</div>

93 <div><a href="/docs/de/agent-view#how-file-edits-are-isolated">Hintergrund-Sitzungen</a>, die Code in einem Worktree geändert haben, committen und pushen jetzt vor dem Beenden, öffnen einen Draft-Pull-Request nur, wenn die Aufgabe dies erfordert, und folgen den Git-Anweisungen in Ihrer <code>CLAUDE.md</code></div>

94 <div>Die Obergrenze von 200 Subagenten pro Sitzung wird entfernt, sodass lange laufende Sitzungen keine neuen Subagenten mehr ablehnen; die <a href="/docs/de/sub-agents#concurrent-subagent-limit">Parallelitäts-</a> und Tiefenlimits gelten weiterhin</div>

95 <div>Die eingecheckten Einstellungen eines Repositorys können <a href="/docs/de/remote-control#enable-remote-control-for-all-sessions">Remote Control Auto-Connect</a> nicht mehr aktivieren; legen Sie <code>remoteControlAtStartup</code> stattdessen in Ihren Benutzer- oder verwalteten Einstellungen fest, und Projekt- und lokale Einstellungen können es nur deaktivieren</div>

96 <div><a href="/docs/de/worktrees#how-claude-code-enforces-isolation">Worktree-Isolation</a> blockiert jetzt nicht nur Dateibearbeitungen, sondern auch Bash-Befehle und Git-Umleitungen, die den Haupt-Checkout erreichen, in jedem Sitzungstyp und in den Subagenten der Sitzung</div>

97 <div>Ein Bash-Befehl kann sich nicht mehr vor Berechtigungsprüfungen verbergen, und Tab- oder unsichtbare Unicode-Auffüllung verbirgt nicht mehr einen Teil eines Befehls vor dem Genehmigungsdialog</div>

98 <div>PreToolUse-Auto-Allow-Hooks umgehen nicht mehr Tool-Einschränkungen in Claude Codes internen Nebenaufgaben wie Zusammenfassungen und Komprimierung</div>

99 <div>Die <a href="/docs/de/ultraplan">Ultraplan</a>-Forschungsvorschau wird entfernt, einschließlich des Befehls <code>/ultraplan</code> und des Schlüsselworts <code>ultraplan</code>; verwenden Sie stattdessen Plan Mode oder Claude Code im Web</div>

100 </div>

101</div>

102 

103[Vollständiges Changelog für v2.1.220–v2.1.224 →](/docs/en/changelog#2-1-220)

whats-new/2026-w33.md +87 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Woche 33 · 10.–14. August 2026

6 

7> Claude Code Desktop setzt sich nach dem Zurücksetzen eines Nutzungslimits automatisch fort, der Fork-Modus ist standardmäßig aktiviert, und GitLab-Merge-Requests und Marktplätze treten GitHub bei.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>

11 <span>3 Funktionen · 10.–14. August</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Automatische Fortsetzung nach einem Nutzungslimit auf Desktop</span>

17 <span className="digest-feature-pill">Desktop</span>

18 </div>

19 

20 <p className="digest-feature-lede">Wenn Sie Ihr Sitzungslimit in der Registerkarte „Code" von Claude Code Desktop erreichen, bietet die Limit-Karte nun ein Kontrollkästchen <strong>Automatisch fortsetzen, wenn Limits zurückgesetzt werden</strong>. Aktivieren Sie es, und die Desktop-App wiederholt den unterbrochenen Zug nach dem Zurücksetzen. Die Karte zeigt die Wiederholungszeit an. Die Karte für das wöchentliche Limit bietet diese Option nicht.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Wenn die nächste Sitzungslimit-Karte angezeigt wird, aktivieren Sie <strong>Automatisch fortsetzen, wenn Limits zurückgesetzt werden</strong> und lassen Sie die Sitzung offen. Die Karte zeigt <code>Automatische Wiederaufnahme um</code> gefolgt von der Zurücksetzen-Zeit an, und der Zug wird automatisch fortgesetzt, sobald das Limit zurückgesetzt wird.</p>

27 

28 <a className="digest-feature-link" href="/docs/de/errors#youve-hit-your-session-limit">Was zu tun ist, wenn Sie ein Nutzungslimit erreichen</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Fork-Modus standardmäßig aktiviert</span>

34 <span className="digest-feature-pill">v2.1.232</span>

35 </div>

36 

37 <p className="digest-feature-lede">Der Fork-Modus ist jetzt standardmäßig in interaktiven Sitzungen aktiviert. Claude kann den Subagent-Typ <code>fork</code> anfordern, der die vollständige Konversation und den Prompt-Cache erbt, anstatt von vorne zu beginnen, sodass Sie den Kontext für eine Nebenaufgabe nicht erneut erklären müssen. Subagenten, die Claude in interaktiven Sitzungen spawnt, mit Ausnahme derjenigen, die ein Agent-Team-Teamkollege spawnt, laufen auch standardmäßig im Hintergrund.</p>

38 

39 <p className="digest-feature-try">Starten Sie selbst einen Fork mit einer Aufgabe, die alles erfordert, das Sie bisher besprochen haben:</p>

40 

41 ```text Claude Code theme={null}

42 > /subtask draft unit tests for the parser changes so far

43 ```

44 

45 <p className="digest-feature-try">Der Fork wird in der Leiste unter Ihrer Eingabeaufforderung angezeigt und sein Ergebnis kommt in Ihre Konversation, wenn er fertig ist. Um den Fork-Modus auszuschalten, setzen Sie <code>CLAUDE\_CODE\_FORK\_SUBAGENT=0</code>.</p>

46 

47 <a className="digest-feature-link" href="/docs/de/sub-agents#turn-fork-mode-on-or-off">Fork-Modus aktivieren oder deaktivieren</a>

48</div>

49 

50<div className="digest-feature">

51 <div className="digest-feature-header">

52 <span className="digest-feature-title">GitLab-Merge-Requests und Marktplätze</span>

53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>

55 

56 <p className="digest-feature-lede">Plugin-Marktplätze klonen nackte <code>gitlab.com</code>-URLs, einschließlich verschachtelter Untergruppen. Auf v2.1.233 oder später können Sie eine GitLab-Merge-Request-URL an <code>--worktree</code> übergeben, um von ihr zu branchen, und die Ansicht <code>claude agents</code> kennzeichnet Sitzungen, die mit einem Merge-Request verknüpft sind, als <code>!N</code>. Claude Code reduziert auch GitLab-Token-Familien wie <code>glpat-</code> und <code>glrt-</code> und schützt den Konfigurationsspeicher der <code>glab</code>-CLI auf die gleiche Weise wie <code>gh</code>.</p>

57 

58 <p className="digest-feature-try">Starten Sie eine Sitzung in einem Worktree, das von einem Merge-Request verzweigt ist:</p>

59 

60 ```bash terminal theme={null}

61 claude --worktree https://gitlab.com/group/project/-/merge_requests/42

62 ```

63 

64 <p className="digest-feature-try">Wenn <code>origin</code> auf gitlab.com ist, ruft Claude Code <code>merge-requests/42/head</code> ab und öffnet die Sitzung auf diesem Branch in seinem eigenen Worktree.</p>

65 

66 <a className="digest-feature-link" href="/docs/de/worktrees#branch-from-a-pull-request">Einen Worktree von einem Pull- oder Merge-Request verzweigen</a>

67</div>

68 

69<div className="digest-wins">

70 <p className="digest-wins-title">Weitere Erfolge</p>

71 

72 <div className="digest-wins-grid">

73 <div>Geben Sie <code>@</code> in der Eingabeaufforderung ein, um <a href="/docs/de/cross-session-messaging#message-another-session">eine andere Claude-Sitzung</a> nach Name zu erwähnen, und Claude sendet ihr eine Nachricht direkt mit <code>SendMessage</code>; ein einfacher Name, der genau einer Live-Sitzung entspricht, wird jetzt ohne Bestätigungsschritt zugestellt</div>

74 <div>Interaktive Sitzungen auf einem Computer behalten <a href="/docs/de/cross-session-messaging#see-which-sessions-claude-can-reach">eindeutige Namen</a>: Wenn Sie eine Sitzung mit einem Namen starten oder umbenennen, den eine andere Live-Sitzung bereits verwendet, gibt Claude Code Ihnen eine <code>name-word-word</code>-Variante und teilt es Ihnen mit</div>

75 <div>Plugin-Marktplätze akzeptieren <a href="/docs/de/plugin-marketplaces#command-sources"><code>command</code>-Quellen</a>: Ein lokaler Befehl gibt das Plugin-Verzeichnis aus, das Claude Code jede Sitzung neu auflöst und ohne Neustart anwendet</div>

76 <div>Unter Linux und WSL können Sie <a href="/docs/de/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> auf eine Größe wie <code>4G</code> setzen, um den Speicher zu begrenzen, den Bash- und PowerShell-Tool-Befehle verwenden können</div>

77 <div>Die Task-Tracking-Tools wie <code>TaskCreate</code>, <code>TaskUpdate</code> und <code>TodoWrite</code> sind <a href="/docs/de/tools-reference#task-tool-availability">auf Opus 4.8, Sonnet 5, Fable 5, Mythos 5 und späteren Modellen in diesen Familien nicht mehr verfügbar</a>; setzen Sie <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code>, um sie erneut zu aktivieren</div>

78 <div><a href="/docs/de/code-review#review-a-diff-locally"><code>/code-review</code></a> bei hohem, sehr hohem und maximalem Aufwand wird jetzt wie die anderen Ebenen in einem Hintergrund-Agent ausgeführt</div>

79 <div><a href="/docs/de/discover-plugins#install-plugins"><code>/plugin install plugin\@marketplace</code></a> aktualisiert zuerst den Marktplatz, sodass neu veröffentlichte Plugins ohne manuelle Marktplatz-Aktualisierung installiert werden</div>

80 <div>Einstellungen akzeptieren <a href="/docs/de/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> und <code>allowedMarketplaces</code></a> als Aliase für <code>extraKnownMarketplaces</code> und <code>strictKnownMarketplaces</code></div>

81 <div>Bei neueren Modellen kann Claude <a href="/docs/de/tools-reference#write-tool-behavior">eine vorhandene Datei mit dem Write-Tool überschreiben</a>, ohne sie zuerst in dieser Sitzung zu lesen, was den Regeln des Edit-Tools entspricht; ältere Modelle erfordern das Lesen</div>

82 <div>Die VS Code-Erweiterung kann <a href="/docs/de/vs-code#organize-sessions-into-groups">die Sitzungsliste in Gruppen organisieren</a>: Klicken Sie mit der rechten Maustaste, um eine Gruppe zu erstellen, umzubenennen oder zu löschen, und verwenden Sie Cmd/Strg- oder Umschalt-Klick, um mehrere Sitzungen auf einmal zu verschieben</div>

83 <div>Wenn Ihre Organisation Claude Code durch ein <a href="/docs/de/claude-apps-gateway-spend-limits">Claude-Apps-Gateway mit Ausgabenlimits</a> leitet, zeigt Claude Code die Limit-Periode, die Zurücksetzen-Zeit und die Nachricht des Betreibers an, wenn Sie das Limit erreichen</div>

84 </div>

85</div>

86 

87[Vollständiges Changelog für v2.1.225–v2.1.233 →](/docs/en/changelog#2-1-225)

whats-new/2026-w34.md +105 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Woche 34 · 17.–21. August 2026

6 

7> Entwerfen Sie bearbeitbare UI-Artboards mit dem /design-Skill, stellen Sie den Concise-Ausgabestil ein, und starten Sie eine Claude Code-Sitzung auf Ihrem Computer von Ihrem Telefon aus.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-234">v2.1.234 → v2.1.239</a></span>

11 <span>3 Features · 17.–21. August</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">/design</span>

17 <span className="digest-feature-pill">research preview</span>

18 </div>

19 

20 <p className="digest-feature-lede">Der <code>/design</code>-Skill bringt den Artboard-Workflow von Claude Design in die CLI und Claude Code Desktop, basierend auf Artefakten. Führen Sie ihn mit einer kurzen Beschreibung aus und Claude veröffentlicht eine Canvas mit bearbeitbaren Artboards für Ihre UI. Wählen Sie einen aus, passen Sie ihn an und lassen Sie Claude ihn dann implementieren. Verfügbar für Pro, Max, Team und Enterprise. Erfordert v2.1.234 oder später.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/design-skill.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=0b376a94227c14a4204af89c4c9fd7ac" data-path="images/whats-new/design-skill.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Beschreiben Sie, was Sie entworfen haben möchten, und lassen Sie Claude die Optionen entwerfen:</p>

27 

28 ```text Claude Code theme={null}

29 > /design redesign the composer based on what people actually use it for

30 ```

31 

32 <p className="digest-feature-try">Claude gibt einen Link zur veröffentlichten Canvas aus. Öffnen Sie ihn, wählen Sie ein Artboard aus und teilen Sie Claude mit, welche Option implementiert werden soll.</p>

33 

34 <a className="digest-feature-link" href="/docs/de/artifacts#availability">Wo Artefakte verfügbar sind</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Concise-Ausgabestil</span>

40 <span className="digest-feature-pill">v2.1.237</span>

41 </div>

42 

43 <p className="digest-feature-lede">Concise ist ein neuer integrierter Ausgabestil. Claude führt mit dem Ergebnis an und überspringt Präambel und Erzählung, während die Arbeit genauso gründlich wie im Standard-Stil erledigt wird. Wenn Sie um eine Erklärung oder mehr Details bitten, antwortet Claude vollständig. Fehlerberichte, Sicherheitswarnungen und Bestätigungen für destruktive Aktionen behalten ihren vollständigen Inhalt.</p>

44 

45 <Frame>

46 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/concise-output-style.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=dfb40ec8921ed1bc82eb629042a8ec17" data-path="images/whats-new/concise-output-style.mp4" />

47 </Frame>

48 

49 <p className="digest-feature-try">Aktivieren Sie es unter <strong>Output style</strong> in <code>/config</code>, oder stellen Sie es in Ihrer Einstellungsdatei ein:</p>

50 

51 ```json ~/.claude/settings.json {2} theme={null}

52 {

53 "outputStyle": "Concise"

54 }

55 ```

56 

57 <p className="digest-feature-try">Führen Sie <code>/clear</code> aus oder starten Sie eine neue Sitzung, und Claudes Antworten führen mit dem Ergebnis an.</p>

58 

59 <a className="digest-feature-link" href="/docs/de/output-styles#built-in-output-styles">Integrierte Ausgabestile</a>

60</div>

61 

62<div className="digest-feature">

63 <div className="digest-feature-header">

64 <span className="digest-feature-title">Starten Sie eine Sitzung auf Ihrem Computer von Ihrem Telefon aus</span>

65 <span className="digest-feature-pill">mobile</span>

66 </div>

67 

68 <p className="digest-feature-lede">Jeder Computer, auf dem <code>claude remote-control</code> ausgeführt wird, wird jetzt als Gerätekarte oben auf der Registerkarte Code in der Claude-App angezeigt. Remote Control ist auch aus der Forschungsvorschau heraus.</p>

69 

70 <Frame>

71 <img className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/remote-control-phone-start.jpg?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=9f0ebedab23aa0e1732cc37782573907" alt="Die Registerkarte Code in der Claude-Mobile-App mit einem Abschnitt „Geräte&#x22;, der einen verbundenen MacBook als Gerätekarte über der Sitzungsliste anzeigt" width="1206" height="895" data-path="images/whats-new/remote-control-phone-start.jpg" />

72 </Frame>

73 

74 <p className="digest-feature-try">Starten Sie Remote Control auf dem Computer, den Sie erreichen möchten, und öffnen Sie dann die Registerkarte Code auf Ihrem Telefon:</p>

75 

76 ```bash terminal theme={null}

77 claude remote-control

78 ```

79 

80 <p className="digest-feature-try">Ihr Computer wird als Gerätekarte oben auf der Registerkarte Code angezeigt. Tippen Sie darauf, um ein Verzeichnis auszuwählen und dort eine Sitzung zu starten.</p>

81 

82 <a className="digest-feature-link" href="/docs/de/remote-control#start-a-remote-control-session">Starten Sie eine Remote Control-Sitzung</a>

83</div>

84 

85<div className="digest-wins">

86 <p className="digest-wins-title">Weitere Verbesserungen</p>

87 

88 <div className="digest-wins-grid">

89 <div>Claude Code setzt Ihre Sitzung jetzt automatisch fort, wenn ein claude.ai-Nutzungslimit zurückgesetzt wird. Deaktivieren Sie dies in der Zeile <strong>Continue automatically at usage limit</strong> in <code>/config</code></div>

90 <div>Die optionale <a href="/docs/de/interactive-mode#check-spelling-as-you-type"><code>spellcheck</code>-Einstellung</a> unterstreicht falsch geschriebene Wörter in der Eingabeaufforderung während der Eingabe mit Ihrem installierten <code>aspell</code>, <code>hunspell</code> oder <code>ispell</code></div>

91 <div>In einem Branch mit einer offenen GitLab-Merge-Request, wobei die <code>glab</code>-CLI über <code>glab auth login</code> authentifiziert ist, zeigt die Fußzeile ein <a href="/docs/de/interactive-mode#gitlab-merge-requests"><code>MR !N</code>-Badge</a> an, das je nachdem farbig gekennzeichnet ist, ob die Merge-Request ein Entwurf, offen oder zusammenführbar ist</div>

92 <div>Ändern Sie die Aufwandsstufe von Ihrem Telefon oder claude.ai/code aus und sie <a href="/docs/de/remote-control#what-connected-devices-see">wird auf die Sitzung auf Ihrem Computer angewendet</a>. Remote Control-Sitzungen, die von Desktop oder VS Code gehostet werden, zeigen verbundenen Geräten auch den aktuellen Berechtigungsmodus der Sitzung an</div>

93 <div>Sie können <a href="/docs/de/permissions#manage-permissions"><code>/permissions</code></a> öffnen oder <code>/add-dir \<path></code> ausführen, während Claude arbeitet. Änderungen an Berechtigungsregeln gelten für den Rest des aktuellen Zuges</div>

94 <div>Wenn Hintergrundaufgaben ein <a href="/docs/de/goal#background-work-defers-evaluation"><code>/goal</code></a> warten lassen, überprüft Claude sie nach 30 Minuten, anstatt unbegrenzt zu warten, und überprüft sie weiterhin in längeren Intervallen, während die Sitzung untätig ist. Setzen Sie <code>CLAUDE\_CODE\_GOAL\_CHECKIN\_MINUTES=0</code>, um dies zu deaktivieren</div>

95 <div>Ihre eigenen Eingabeaufforderungen werden jetzt im Transkript als Markdown gerendert, mit hervorgehobenen Codeblöcken, Inline-Code und Listen, genauso wie Antworten</div>

96 <div>Die neue <a href="/docs/de/model-config#set-a-default-model-for-new-sessions"><code>ANTHROPIC\_DEFAULT\_MODEL</code></a>-Umgebungsvariable legt das Modell fest, mit dem neue Sitzungen starten. Eine <code>/model</code>-Auswahl überschreibt sie immer noch und bleibt über Neustarts hinweg erhalten</div>

97 <div>Mit der <code>notify\_when\_idle</code>-Eingabe auf <code>SendMessage</code> kann Claude eine andere Claude Code-Sitzung auf demselben Computer bitten, <a href="/docs/de/cross-session-messaging#get-a-notice-when-another-session-goes-idle">eine Benachrichtigung zu senden, wenn sie das nächste Mal untätig wird</a></div>

98 <div>Stellen Sie <a href="/docs/de/interactive-mode#make-ctrl-w-delete-back-to-whitespace"><code>keybindingFlavor</code></a> auf <code>"readline"</code> ein, um <code>Ctrl+W</code> in der Eingabeaufforderung zum Löschen bis zum vorherigen Leerzeichen zu machen, wie Bash es tut, anstatt bei Satzzeichen wie <code>/</code> zu stoppen</div>

99 <div>Unter nativem Windows können Ihre Claude Code-Sitzungen jetzt <a href="/docs/de/cross-session-messaging#availability">miteinander kommunizieren</a> mit <code>SendMessage</code> und sich gegenseitig mit <code>ListAgents</code> finden, wie auf macOS und Linux</div>

100 <div>Self-Hosted-Runner akzeptieren `--defer-shutdown-max-min`, das <a href="/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal">angehängte Sitzungen</a> für eine festgelegte Anzahl von Minuten nach SIGTERM weiter bedient</div>

101 <div>Self-Hosted-Runner akzeptieren `--proxy-authorization-command` oder `--proxy-authorization-file`, um einen frischen `Proxy-Authorization`-Header für <a href="/docs/de/self-hosted-environments-deploy#authenticate-to-an-egress-proxy">Egress-Proxys bereitzustellen, die einen benötigen</a></div>

102 </div>

103</div>

104 

105[Vollständiges Changelog für v2.1.234–v2.1.239 →](/docs/en/changelog#2-1-234)

workflows.md +42 −26

Details

34Das Verschieben des Plans in Code ermöglicht es einem Workflow auch, ein wiederholbares Qualitätsmuster anzuwenden, nicht nur mehr Agenten auszuführen: Er kann unabhängige Agenten die Ergebnisse des anderen gegnerisch überprüfen lassen, bevor sie gemeldet werden, oder einen Plan aus mehreren Blickwinkeln entwerfen und sie gegeneinander abwägen, sodass Sie ein vertrauenswürdigeres Ergebnis als einen einzelnen Durchgang erhalten.34Das Verschieben des Plans in Code ermöglicht es einem Workflow auch, ein wiederholbares Qualitätsmuster anzuwenden, nicht nur mehr Agenten auszuführen: Er kann unabhängige Agenten die Ergebnisse des anderen gegnerisch überprüfen lassen, bevor sie gemeldet werden, oder einen Plan aus mehreren Blickwinkeln entwerfen und sie gegeneinander abwägen, sodass Sie ein vertrauenswürdigeres Ergebnis als einen einzelnen Durchgang erhalten.

35 35 

36<h2 id="run-a-bundled-workflow">36<h2 id="run-a-bundled-workflow">

37 Führen Sie einen gebündelten Workflow aus37 Einen gebündelten Workflow ausführen

38</h2>38</h2>

39 39 

40Die schnellste Möglichkeit, einen Workflow in Aktion zu sehen, ist die Ausführung von `/deep-research`, dem [integrierten Workflow](#bundled-workflows), den Claude Code zum Untersuchen einer Frage über viele Quellen hinweg enthält. Sie sehen Agenten, die im Hintergrund eine Reihe von Phasen durcharbeiten, während Ihre Sitzung frei bleibt, und erhalten am Ende einen Bericht statt eines Zug-für-Zug-Transkripts.40Die schnellste Möglichkeit, einen Workflow in Aktion zu sehen, ist die Ausführung von `/deep-research`, dem [integrierten Workflow](#bundled-workflows), den Claude Code zum Untersuchen einer Frage über viele Quellen hinweg enthält. Sie sehen, wie Agenten im Hintergrund eine Reihe von Phasen durcharbeiten, während Ihre Sitzung frei bleibt, und erhalten am Ende einen Bericht statt eines Turn-by-Turn-Transkripts.

41 41 

42<Steps>42<Steps>

43 <Step title="Führen Sie den Workflow aus">43 <Step title="Workflow ausführen">

44 Führen Sie `/deep-research` mit einer Frage aus, die Sie untersuchen möchten. Es verteilt Websuchen über mehrere Blickwinkel, ruft die gefundenen Quellen ab und überprüft sie gegenseitig, und synthetisiert einen zitierten Bericht.44 Führen Sie `/deep-research` mit einer Frage aus, die Sie untersuchen möchten. Es verteilt Web-Suchen über mehrere Blickwinkel, ruft die gefundenen Quellen ab und überprüft sie gegenseitig, und erstellt einen zitierten Bericht.

45 45 

46 ```text wrap theme={null}46 ```text wrap theme={null}

47 /deep-research What changed in the Node.js permission model between v20 and v22?47 /deep-research What changed in the Node.js permission model between v20 and v22?

48 ```48 ```

49 </Step>49 </Step>

50 50 

51 <Step title="Erlauben Sie Workflows">51 <Step title="Workflows zulassen">

52 Claude Code fragt, ob der Workflow erlaubt werden soll. Wählen Sie **Ja**, um fortzufahren. Die genaue Eingabeaufforderung hängt von Ihrem Berechtigungsmodus ab. Siehe [Genehmigen Sie den Plan, bevor er ausgeführt wird](#approve-the-plan-before-it-runs) für die Optionen pro Modus.52 Claude Code fragt, ob der Workflow zulässig sein soll. Wählen Sie **Ja**, um fortzufahren. Die genaue Eingabeaufforderung hängt von Ihrem Berechtigungsmodus ab. Siehe [Genehmigen Sie den Plan, bevor er ausgeführt wird](#approve-the-plan-before-it-runs) für die Optionen pro Modus.

53 </Step>53 </Step>

54 54 

55 <Step title="Überwachen Sie den Fortschritt">55 <Step title="Fortschritt beobachten">

56 Die Ausführung startet im Hintergrund. Führen Sie `/workflows` aus, verwenden Sie die Pfeiltasten, um die Ausführung auszuwählen, und drücken Sie Enter, um die Fortschrittsansicht zu öffnen:56 Die Ausführung startet im Hintergrund. Führen Sie `/workflows` aus, verwenden Sie die Pfeiltasten, um die Ausführung auszuwählen, und drücken Sie die Eingabetaste, um die Fortschrittsansicht zu öffnen:

57 57 

58 ```text wrap theme={null}58 ```text wrap theme={null}

59 /workflows59 /workflows

60 ```60 ```

61 61 

62 Die Ansicht zeigt jede Phase mit ihrer Agentenzahl, Gesamttoken und verstrichener Zeit. Führen Sie einen Drilldown in jede Phase durch, um ihre Agenten und die Ergebnisse der einzelnen Agenten anzuzeigen. Siehe [Überwachen Sie die Ausführung](#watch-the-run) für den vollständigen Satz von Steuerelementen.62 Die Ansicht zeigt jede Phase mit ihrer Agentenzahl, Gesamttoken und verstrichener Zeit. Führen Sie einen Drilldown in jede Phase durch, um ihre Agenten und deren Ergebnisse anzuzeigen. Siehe [Beobachten Sie die Ausführung](#watch-the-run) für den vollständigen Satz von Steuerelementen.

63 63 

64 Sie können auch über das Aufgabenpanel unter dem Eingabefeld beobachten: Eine einzeilige Fortschrittsübersicht wird dort angezeigt, während die Ausführung läuft. Drücken Sie die Abwärts-Taste, um es zu fokussieren, dann Enter, um es zu erweitern.64 Sie können auch vom Aufgabenpanel unter dem Eingabefeld aus beobachten: Während die Ausführung läuft, wird dort eine einzeilige Fortschrittsübersicht angezeigt. Drücken Sie die Abwärts-Taste, um den Fokus darauf zu legen, und dann die Eingabetaste, um es zu erweitern.

65 </Step>65 </Step>

66 66 

67 <Step title="Lesen Sie den Bericht">67 <Step title="Bericht lesen">

68 Wenn die Ausführung abgeschlossen ist, landet der Bericht in Ihrer Sitzung. Er zitiert die Quellen, aus denen jeder Anspruch stammt, wobei Ansprüche, die die Überprüfung nicht überlebt haben, bereits gefiltert sind.68 Wenn die Ausführung abgeschlossen ist, landet der Bericht in Ihrer Sitzung. Er zitiert die Quellen, aus denen jeder Anspruch stammt, wobei Ansprüche, die die Überprüfung nicht überstanden haben, bereits herausgefiltert sind.

69 69 

70 Wenn die Verifier-Agenten einen Anspruch nicht überprüfen können, z. B. nach einem Rate Limit oder API-Fehler, listet der Bericht diesen Anspruch als unverified auf, anstatt ihn als widerlegt zu zählen.70 Wenn die Verifier-Agenten einen Anspruch nicht überprüfen können, z. B. nach einer Ratenbegrenzung oder einem API-Fehler, listet der Bericht diesen Anspruch als unverified statt als widerlegt auf.

71 </Step>71 </Step>

72</Steps>72</Steps>

73 73 

74Um einen Workflow für Ihre eigene Aufgabe auszuführen, [lassen Sie Claude einen schreiben](#have-claude-write-a-workflow), und sobald eine Ausführung das tut, was Sie wollten, können Sie [ihn speichern](#save-the-workflow-for-reuse) als Befehl Ihres eigenen.74Um einen Workflow für Ihre eigene Aufgabe auszuführen, [lassen Sie Claude einen schreiben](#have-claude-write-a-workflow), und sobald eine Ausführung das tut, was Sie wollten, können Sie ihn [speichern](#save-the-workflow-for-reuse) als Befehl Ihres eigenen.

75 75 

76<h3 id="bundled-workflows">76<h3 id="bundled-workflows">

77 Gebündelte Workflows77 Gebündelte Workflows


80Claude Code enthält `/deep-research` als integrierten Workflow:80Claude Code enthält `/deep-research` als integrierten Workflow:

81 81 

82| Befehl | Was er tut |82| Befehl | Was er tut |

83| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |83| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

84| `/deep-research <question>` | Verteilt Websuchen zu einer Frage über mehrere Blickwinkel, ruft die gefundenen Quellen ab und überprüft sie gegenseitig, stimmt über jeden Anspruch ab und gibt einen zitierten Bericht mit Ansprüchen zurück, die die Überprüfung nicht überlebt haben, gefiltert. Erfordert, dass das [WebSearch-Tool](/docs/de/tools-reference#websearch-tool-behavior) verfügbar ist |84| `/deep-research <question>` | Verteilt Web-Suchen zu einer Frage über mehrere Blickwinkel, ruft die gefundenen Quellen ab und überprüft sie gegenseitig, stimmt über jeden Anspruch ab und gibt einen zitierten Bericht mit herausgefilterten Ansprüchen zurück, die die Überprüfung nicht überstanden haben. Erfordert, dass das [WebSearch-Tool](/docs/de/tools-reference#websearch-tool-behavior) verfügbar ist |

85 85 

86`/deep-research` wird nur ausgeführt, wenn Sie es aufrufen.86`/deep-research` wird nur ausgeführt, wenn Sie es aufrufen.

87 87 

88[Workflows, die Sie selbst speichern](#save-the-workflow-for-reuse), werden auf die gleiche Weise zu Befehlen und erscheinen in der `/`-Autovervollständigung neben den gebündelten.88[Workflows, die Sie selbst speichern](#save-the-workflow-for-reuse), werden auf die gleiche Weise zu Befehlen und erscheinen in der `/`-Autovervollständigung neben den gebündelten.

89 89 

90<h3 id="watch-the-run">90<h3 id="watch-the-run">

91 Überwachen Sie die Ausführung91 Beobachten Sie die Ausführung

92</h3>92</h3>

93 93 

94Workflows werden im Hintergrund ausgeführt, sodass die Sitzung reaktionsschnell bleibt, während Agenten arbeiten. Führen Sie `/workflows` jederzeit aus, um laufende und abgeschlossene Workflows aufzulisten, und wählen Sie dann einen aus, um die Fortschrittsansicht zu öffnen.94Workflows werden im Hintergrund ausgeführt, sodass die Sitzung reaktionsschnell bleibt, während Agenten arbeiten. Führen Sie `/workflows` jederzeit aus, um laufende und abgeschlossene Workflows aufzulisten, und wählen Sie dann einen aus, um die Fortschrittsansicht zu öffnen.

95 95 

96Die Fortschrittsansicht zeigt jede Phase mit ihren Agentenzahlen, Gesamttoken und verstrichener Zeit. Die Fußzeile listet den Schlüssel für jede Aktion auf:96Die Fortschrittsansicht zeigt jede Phase mit ihren Agentenzahlen, Gesamttoken und verstrichener Zeit. Die Fußzeile listet den Schlüssel für jede Aktion auf:

97 97 

98| Schlüssel | Aktion |98| Taste | Aktion |

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

100| `↑` / `↓` | Wählen Sie eine Phase oder einen Agenten aus |100| `↑` / `↓` | Wählen Sie eine Phase oder einen Agenten aus |

101| `Enter` oder `→` | Führen Sie einen Drilldown in die ausgewählte Phase durch, dann in einen Agenten, um seine Eingabeaufforderung, aktuelle Toolaufrufe und Ergebnis zu lesen |101| `Enter` oder `→` | Führen Sie einen Drilldown in die ausgewählte Phase durch, dann in die Details eines Agenten. In den Details erweitert oder reduziert `Enter` diese |

102| `Esc` oder `←` | Gehen Sie eine Ebene zurück. In v2.1.203 bis v2.1.205 hat `←` nicht aus einer Phase oder einem Agenten zurückgetreten; verwenden Sie `Esc` auf diesen Versionen |102| `Esc` oder `←` | Gehen Sie eine Ebene zurück. In v2.1.203 bis v2.1.205 ist `←` nicht aus einer Phase oder einem Agenten zurückgetreten; verwenden Sie `Esc` auf diesen Versionen |

103| `j` / `k` | Scrollen Sie innerhalb der Agent-Details, wenn sie überläuft |103| `j` / `k` | Scrollen Sie innerhalb der Agenten-Details, wenn diese überläuft |

104| `f` | Filtern Sie die Agentenliste in der ausgewählten Phase nach Status. Drücken Sie erneut, um zu wechseln |104| `f` | Filtern Sie die Agentenliste in der ausgewählten Phase nach Status. Drücken Sie erneut, um zu wechseln |

105| `p` | Unterbrechen oder fortsetzen Sie die Ausführung |105| `p` | Unterbrechen oder fortsetzen Sie die Ausführung |

106| `x` | Beenden Sie den ausgewählten Agenten, oder beenden Sie den gesamten Workflow, wenn der Fokus auf der Ausführung liegt |106| `x` | Beenden Sie den ausgewählten Agenten, oder beenden Sie den gesamten Workflow, wenn der Fokus auf der Ausführung liegt |

107| `r` | Starten Sie den ausgewählten laufenden Agenten neu |107| `r` | Starten Sie den ausgewählten laufenden Agenten neu |

108| `s` | [Speichern](#save-the-workflow-for-reuse) Sie das Skript der Ausführung als Befehl |108| `s` | [Speichern](#save-the-workflow-for-reuse) Sie das Skript der Ausführung als Befehl |

109 109 

110Die Agenten-Details listen die Eingabeaufforderung des Agenten, seine letzten Toolaufrufe und sein Ergebnis auf. Jeder Aufruf zeigt seinen Status an, z. B. noch laufend oder fehlgeschlagen. Wenn der Agent eine eigene Aufgabenliste führt, zeigen die Details diese auch an, mit dem Status jeder Aufgabe.

111 

112Drücken Sie `Enter`, um die Details zu erweitern. Die Eingabeaufforderung und das Ergebnis werden dann vollständig angezeigt, und jeder aufgelistete Aufruf zeigt seine Eingabe und den Anfang seines Ergebnisses.

113 

110<h2 id="have-claude-write-a-workflow">114<h2 id="have-claude-write-a-workflow">

111 Lassen Sie Claude einen Workflow schreiben115 Lassen Sie Claude einen Workflow schreiben

112</h2>116</h2>


169 173 

170Mit Ultracode aktiviert entscheidet Claude, wann eine Aufgabe einen Workflow rechtfertigt. Eine einzelne Anfrage kann sich in mehrere Workflows hintereinander verwandeln: einen zum Verstehen des Codes, einen zum Vornehmen der Änderung und einen zum Überprüfen. Dies gilt für jede Aufgabe in der Sitzung, sodass jede Anfrage mehr Token verwendet und länger dauert als bei niedrigeren Anstrengungsebenen.174Mit Ultracode aktiviert entscheidet Claude, wann eine Aufgabe einen Workflow rechtfertigt. Eine einzelne Anfrage kann sich in mehrere Workflows hintereinander verwandeln: einen zum Verstehen des Codes, einen zum Vornehmen der Änderung und einen zum Überprüfen. Dies gilt für jede Aufgabe in der Sitzung, sodass jede Anfrage mehr Token verwendet und länger dauert als bei niedrigeren Anstrengungsebenen.

171 175 

172`/effort ultracode` dauert für die aktuelle Sitzung; um jede Sitzung damit zu starten, setzen Sie die [`ultracode`](/docs/de/settings-reference#ultracode)-Einstellung. Gehen Sie mit `/effort high` zurück, wenn Sie zur Routinearbeit zurückkehren. Es ist auf Modellen verfügbar, die `xhigh` [Anstrengung](/docs/de/model-config#adjust-effort-level) unterstützen; auf anderen Modellen bietet das `/effort`-Menü es nicht an.176`/effort ultracode` dauert für die aktuelle Sitzung; um jede Sitzung damit zu starten, setzen Sie die [`ultracode`](/docs/de/settings-reference#ultracode)-Einstellung. Gehen Sie mit `/effort high` zurück, wenn Sie zur Routinearbeit zurückkehren. Das `/effort`-Menü bietet es nur [wenn Ultracode verfügbar ist](/docs/de/model-config#when-ultracode-is-available).

173 177 

174<h3 id="approve-the-plan-before-it-runs">178<h3 id="approve-the-plan-before-it-runs">

175 Genehmigen Sie den Plan, bevor er ausgeführt wird179 Genehmigen Sie den Plan, bevor er ausgeführt wird


263 Viele Dateien für das gleiche Problem überprüfen267 Viele Dateien für das gleiche Problem überprüfen

264</h3>268</h3>

265 269 

266Verteilen Sie einen Agenten pro Datei, dann sammeln und überprüfen Sie die Ergebnisse.270Fan out one agent per file, then collect and verify the findings.

267 271 

268```text wrap theme={null}272```text wrap theme={null}

269use a workflow to audit every route handler under src/routes/ for missing authentication checks, and adversarially verify each finding before reporting it273use a workflow to audit every route handler under src/routes/ for missing authentication checks, and adversarially verify each finding before reporting it


344 348 

345Der Body ist einfaches JavaScript mit Top-Level-`await`. `agent()` spawnt einen Subagenten, `pipeline()` führt einen pro Element in einer Liste aus, und `parallel()` führt eine Reihe von Agenten-Aufgaben gleichzeitig aus und wartet auf alle.349Der Body ist einfaches JavaScript mit Top-Level-`await`. `agent()` spawnt einen Subagenten, `pipeline()` führt einen pro Element in einer Liste aus, und `parallel()` führt eine Reihe von Agenten-Aufgaben gleichzeitig aus und wartet auf alle.

346 350 

347Ein `agent()`-Aufruf wird zu `null` aufgelöst, wenn Sie ihn während der Ausführung stoppen oder er auf einen nicht wiederherstellbaren API-Fehler trifft. `pipeline()` behält diesen `null` im Ergebnis-Array, weshalb das Beispiel mit `.filter(Boolean)` endet, um diese Einträge zu entfernen.351Ein `agent()`-Aufruf wird zu `null` aufgelöst, wenn Sie ihn während der Ausführung stoppen oder er auf einen nicht wiederherstellbaren API-Fehler trifft. In [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) kann der Klassifizierer einen `agent()`-Aufruf blockieren, bevor der Subagent startet. Ein blockierter Aufruf wird zu `null` aufgelöst und wird in der Fortschrittsansicht des Laufs mit dem Grund angezeigt. `pipeline()` behält jeden `null` im Ergebnis-Array, weshalb das Beispiel mit `.filter(Boolean)` endet, um diese Einträge zu entfernen.

352 

353Wenn Sie einen `schema` bei einem `agent()`-Aufruf übergeben, gibt der Subagent stattdessen JSON zurück, das der Form entspricht. Claude Code überprüft das Schema, bevor der Subagent startet: Wenn es beweisen kann, dass das Schema sich selbst widerspricht, schlägt der Aufruf mit einem Fehler fehl, der den Widerspruch benennt, und der Subagent startet nie. Ein Widerspruch, den es beweisen kann, ist ein `required`-Schlüssel, den `additionalProperties: false` ausschließt.

354 

355Wenn die Ausgabe des Subagenten nach fünf Versuchen immer noch die Validierung nicht besteht, schlägt der Aufruf mit einem Fehler fehl, der den letzten Validierungsfehler enthält. Um die Versuchsanzahl zu ändern, setzen Sie [`MAX_STRUCTURED_OUTPUT_RETRIES`](/docs/de/env-vars).

348 356 

349<h3 id="edit-a-saved-script">357<h3 id="edit-a-saved-script">

350 Ein gespeichertes Skript bearbeiten358 Ein gespeichertes Skript bearbeiten


407 415 

408Sobald eine Ausführung startet, verwalten Sie sie über die `/workflows`-Ansicht oder durch Erweitern der Fortschrittszeile im Aufgabenpanel unter dem Eingabefeld.416Sobald eine Ausführung startet, verwalten Sie sie über die `/workflows`-Ansicht oder durch Erweitern der Fortschrittszeile im Aufgabenpanel unter dem Eingabefeld.

409 417 

418Wenn Sie eine Ausführung stoppen, bleibt sie im Aufgabenpanel, während alle Prozesse ihrer Agenten noch laufen. Wenn Sie sie erneut stoppen, signalisiert Claude Code diese Prozesse erneut.

419 

410<h3 id="resume-after-a-pause">420<h3 id="resume-after-a-pause">

411 Fortsetzen nach einer Pause421 Fortsetzen nach einer Pause

412</h3>422</h3>

413 423 

414Setzen Sie eine unterbrochene Ausführung von `/workflows` fort, indem Sie sie auswählen und `p` drücken. Für eine Ausführung, die Sie gestoppt haben, bitten Sie Claude, den Workflow mit dem gleichen Skript erneut zu starten. Claude Code spielt die Ausführung in der Reihenfolge ab, in der die Agenten gestartet wurden, und jeder Agent gibt entweder sein gespeichertes Ergebnis zurück oder wird erneut ausgeführt:424Setzen Sie eine unterbrochene Ausführung von `/workflows` fort, indem Sie sie auswählen und `p` drücken. Für eine Ausführung, die Sie gestoppt haben, bitten Sie Claude, den Workflow mit dem gleichen Skript erneut zu starten. Wenn Agenten aus der gestoppten Ausführung noch nicht beendet wurden, weigert sich Claude Code, den Neustart durchzuführen, bis sie beendet sind, sodass keine zweite Kopie dieser Agenten neben ihnen laufen kann.

425 

426Claude Code spielt die Ausführung in der Reihenfolge ab, in der die Agenten gestartet wurden, und jeder Agent gibt entweder sein gespeichertes Ergebnis zurück oder wird erneut ausgeführt:

415 427 

416* **Abgeschlossen**: gibt sein gespeichertes Ergebnis zurück. Der erste Agent, dessen Eingabeaufforderung sich vom vorherigen Durchlauf unterscheidet, weil Sie das Skript bearbeitet haben oder ein früherer Agent etwas anderes zurückgegeben hat, wird erneut ausgeführt, und ebenso jeder Agent danach, auch solche, die abgeschlossen wurden.428* **Abgeschlossen**: gibt sein gespeichertes Ergebnis zurück. Der erste Agent, dessen Eingabeaufforderung sich vom vorherigen Durchlauf unterscheidet, weil Sie das Skript bearbeitet haben oder ein früherer Agent etwas anderes zurückgegeben hat, wird erneut ausgeführt, und ebenso jeder Agent danach, auch solche, die abgeschlossen wurden.

417* **Noch ausgeführt, als Sie gestoppt haben**: startet neu. Das Stoppen der gesamten Ausführung zählt keinen Agent als fehlgeschlagen.429* **Noch ausgeführt, als Sie gestoppt haben**: startet neu. Das Stoppen der gesamten Ausführung zählt keinen Agent als fehlgeschlagen.


422Sie können eine Ausführung innerhalb derselben Claude Code-Sitzung fortsetzen. Was mit einem laufenden Workflow geschieht, wenn Sie die Sitzung verlassen, hängt davon ab, wie Sie sie verlassen:434Sie können eine Ausführung innerhalb derselben Claude Code-Sitzung fortsetzen. Was mit einem laufenden Workflow geschieht, wenn Sie die Sitzung verlassen, hängt davon ab, wie Sie sie verlassen:

423 435 

424* Wenn Sie [die Sitzung in den Hintergrund verschieben](/docs/de/agent-view#what-carries-over-when-you-background), spielt Claude Code die Ausführung auf die gleiche Weise in der Hintergrund-Sitzung ab und setzt sie fort.436* Wenn Sie [die Sitzung in den Hintergrund verschieben](/docs/de/agent-view#what-carries-over-when-you-background), spielt Claude Code die Ausführung auf die gleiche Weise in der Hintergrund-Sitzung ab und setzt sie fort.

425* Wenn Sie Claude Code beenden, während ein Workflow ausgeführt wird, und [die Agent-Ansicht ist aktiviert](/docs/de/agent-view#from-inside-a-session), bietet der Beendigungsdialog `In den Hintergrund verschieben und beenden` an, was die Ausführung auf die gleiche Weise überträgt. Wenn Sie stattdessen `Beenden und Aufgaben stoppen` wählen oder die Option nicht angeboten wird, stoppt die Ausführung mit der Sitzung. Claude Code behält die gespeicherten Ergebnisse der Ausführung im Verzeichnis dieser Sitzung in `~/.claude/projects/` bei, sodass eine Sitzung, die Sie mit `claude --resume` fortsetzen, diese abspielen kann, wenn Sie Claude bitten, den Workflow erneut zu starten, während eine neu gestartete Sitzung nichts zum Abspielen hat und den Workflow von vorne startet.437* Wenn Sie Claude Code beenden, während ein Workflow ausgeführt wird, und [die Agent-Ansicht ist aktiviert](/docs/de/agent-view#from-inside-a-session), bietet der Beendigungsdialog `In den Hintergrund verschieben und beenden` an, was die Ausführung auf die gleiche Weise überträgt. Wenn Sie stattdessen `Beenden und Aufgaben stoppen` wählen oder die Option nicht angeboten wird, stoppt die Ausführung mit der Sitzung. Claude Code behält die gespeicherten Ergebnisse der Ausführung im Verzeichnis dieser Sitzung in `~/.claude/projects/` bei, sodass eine Sitzung, die Sie mit `claude --resume` fortsetzen, diese abspielen kann, wenn Sie Claude bitten, den Workflow erneut zu starten. In einer neu gestarteten Sitzung hat Claude keine frühere Ausführung zum Abspielen und startet den Workflow als neue Ausführung.

438 

439In einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) speichert Claude Code auch die Ergebnisse der Ausführung zusammen mit der Gesprächshistorie der Sitzung, die erhalten bleibt, wenn die VM der Sitzung zurückgefordert wird. Wenn Sie [eine solche Sitzung erneut öffnen](/docs/de/claude-code-on-the-web#environment-expired) und Claude bitten, den Workflow erneut zu starten, geben abgeschlossene Agenten immer noch ihre gespeicherten Ergebnisse zurück.

440 

441In lokalen und Cloud-Sitzungen gleichermaßen schlägt der Neustart fehl, wenn Claude eine frühere Ausführung erneut startet und Claude Code die gespeicherten Ergebnisse dieser Ausführung überhaupt nicht finden kann, mit einem `nothing to resume`-Fehler, anstatt die Ausführung von selbst neu zu starten. Bitten Sie Claude, den Workflow als neue Ausführung neu zu starten.

426 442 

427<h3 id="cost">443<h3 id="cost">

428 Kosten444 Kosten

worktrees.md +11 −3

Details

367 367 

368In den meisten Fällen sagt der Rest der Meldung, dass die Git-Metadaten des Verzeichnisses in den Haupt-Checkout aufgelöst werden: Zum Beispiel zeigt seine `.git`-Datei auf das `.git`-Verzeichnis des Haupt-Repositories selbst, oder Git löst sein Arbeitsverzeichnis durch eine `core.worktree`-Umleitung zum Haupt-Checkout auf. Von einem solchen Verzeichnis würde ein gewöhnlicher Git-Befehl wie `git reset --hard` auf den Haupt-Checkout statt auf den Worktree wirken. Claude Code lehnt auch ab, wenn das Verzeichnis einen `.git`-Eintrag hat, den es nicht lesen kann, anstatt anzunehmen, dass der Worktree sicher ist.368In den meisten Fällen sagt der Rest der Meldung, dass die Git-Metadaten des Verzeichnisses in den Haupt-Checkout aufgelöst werden: Zum Beispiel zeigt seine `.git`-Datei auf das `.git`-Verzeichnis des Haupt-Repositories selbst, oder Git löst sein Arbeitsverzeichnis durch eine `core.worktree`-Umleitung zum Haupt-Checkout auf. Von einem solchen Verzeichnis würde ein gewöhnlicher Git-Befehl wie `git reset --hard` auf den Haupt-Checkout statt auf den Worktree wirken. Claude Code lehnt auch ab, wenn das Verzeichnis einen `.git`-Eintrag hat, den es nicht lesen kann, anstatt anzunehmen, dass der Worktree sicher ist.

369 369 

370Ein Verzeichnis ohne Git-Metadaten überhaupt, wie eines, das Ihr [`WorktreeCreate`-Hook](#non-git-version-control) erstellt, besteht die Prüfung nur, wenn kein Git-Repository es enthält. Wenn der Hook das Verzeichnis in einem Repository erstellt, löst Git es zu dem Checkout dieses Repositories auf und Claude Code lehnt es mit der Meldung `git resolves its working tree to` ab, daher sollte der Hook seine Verzeichnisse außerhalb eines Repositories erstellen.

371 

370Claude Code hinterlässt das abgelehnte Verzeichnis an Ort und Stelle, da es Arbeit enthalten kann. Ordnen Sie die Meldung ihrer Wiederherstellung zu, ob sie `Refusing to use <path>` folgt oder in einer [Fortsetzungsmeldung](#the-session-resumes-outside-its-worktree) angezeigt wird; einige Enden treten nur in Fortsetzungsmeldungen auf:372Claude Code hinterlässt das abgelehnte Verzeichnis an Ort und Stelle, da es Arbeit enthalten kann. Ordnen Sie die Meldung ihrer Wiederherstellung zu, ob sie `Refusing to use <path>` folgt oder in einer [Fortsetzungsmeldung](#the-session-resumes-outside-its-worktree) angezeigt wird; einige Enden treten nur in Fortsetzungsmeldungen auf:

371 373 

372* **Sagt `launch from the parent checkout` oder `Run the resume from the project checkout`**: Sie haben Claude Code von innen im Worktree gestartet. Starten Sie stattdessen vom Haupt-Checkout; der Worktree benötigt keine Neuerstellung.374* **Sagt `launch from the parent checkout` oder `Run the resume from the project checkout`**: Sie haben Claude Code von innen im Worktree gestartet. Starten Sie stattdessen vom Haupt-Checkout; der Worktree benötigt keine Neuerstellung.


380 Die Sitzung wird außerhalb ihres Worktrees fortgesetzt382 Die Sitzung wird außerhalb ihres Worktrees fortgesetzt

381</h3>383</h3>

382 384 

383Wenn eine interaktive Fortsetzung die Sitzung nicht zu ihrem Worktree zurückbringen kann, teilt Claude Code dies mit einer der folgenden Meldungen mit.385Wenn Sie eine Sitzung interaktiv fortsetzen und Claude Code sie nicht zu ihrem Worktree zurückbringen kann, teilt Claude Code dies mit einer der folgenden Meldungen mit. Wenn Claude Code die Worktree-Bindung löscht, zeichnet es das Löschen im Sitzungstranskript auf. Wenn Sie [Transkriptschreibvorgänge unterdrücken](/docs/de/sessions#where-transcripts-are-stored), sagt die Meldung stattdessen, dass die Bindung nicht gelöscht werden konnte und dass Claude Code den Worktree bei einer späteren Fortsetzung erneut überprüft.

384 386 

385| Meldung beginnt mit | Was passiert ist und was zu tun ist |387| Meldung beginnt mit | Was passiert ist und was zu tun ist |

386| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |388| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


389| `Did not re-enter your worktree <path>` | Claude Code lehnte die Worktree-Bindung als unsicher ab; es löscht die Bindung und die Sitzung wird ohne Isolation fortgesetzt. Die Meldung enthält die spezifische Ablehnung: Ordnen Sie sie unter [Claude Code weigert sich, einen Worktree zu verwenden](#claude-code-refuses-to-use-a-worktree) zu, da die Behebung für einige Ablehnungen Neuerstellung und für andere Pfadänderung ist. |391| `Did not re-enter your worktree <path>` | Claude Code lehnte die Worktree-Bindung als unsicher ab; es löscht die Bindung und die Sitzung wird ohne Isolation fortgesetzt. Die Meldung enthält die spezifische Ablehnung: Ordnen Sie sie unter [Claude Code weigert sich, einen Worktree zu verwenden](#claude-code-refuses-to-use-a-worktree) zu, da die Behebung für einige Ablehnungen Neuerstellung und für andere Pfadänderung ist. |

390| `Could not re-enter your worktree <path>` | Claude Code konnte den Worktree von dort, wo Sie gestartet haben, nicht garantieren, am häufigsten, weil Sie von innen gestartet haben; die Bindung wird beibehalten. Der Rest der Meldung benennt die Behebung; ordnen Sie sie unter [Claude Code weigert sich, einen Worktree zu verwenden](#claude-code-refuses-to-use-a-worktree) zu. |392| `Could not re-enter your worktree <path>` | Claude Code konnte den Worktree von dort, wo Sie gestartet haben, nicht garantieren, am häufigsten, weil Sie von innen gestartet haben; die Bindung wird beibehalten. Der Rest der Meldung benennt die Behebung; ordnen Sie sie unter [Claude Code weigert sich, einen Worktree zu verwenden](#claude-code-refuses-to-use-a-worktree) zu. |

391 393 

392Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` und bei Fortsetzungen, die das [Agent SDK](/docs/de/agent-sdk/sessions) ausführt, stoppt Claude Code die Fortsetzung mit einem stderr-Fehler für jede Ablehnung außer einem gegangenen Worktree, anstatt ohne Isolation fortzufahren, und die Meldungen haben andere Formen als die in der Tabelle oben:394Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` und bei Fortsetzungen, die das [Agent SDK](/docs/de/agent-sdk/sessions) ausführt, stoppt Claude Code die Fortsetzung mit einem stderr-Fehler für jede Ablehnung außer einem gegangenen Worktree, anstatt ohne Isolation fortzufahren.

395 

396Mit `--output-format stream-json` kommt die Ablehnung auch auf stdout als eine `result`-Meldung mit Subtyp `error_during_execution` an, deren `errors`-Array denselben Text trägt, sodass eine Agent SDK-Anwendung den Grund erhält, anstatt nur einen Nicht-Null-Exit. Vor v2.1.260 erzeugte eine Worktree-Fortsetzungsablehnung keine `result`-Meldung.

397 

398Die Meldungen haben andere Formen als die interaktiven Meldungen in der Tabelle:

399 

400* `Error: cannot resume into worktree <path>: ...This session was not started.` für eine Ablehnung, die die Tabelle als `Did not re-enter` zeigt. Claude Code löscht die Worktree-Bindung vor dem Beenden, und der Fehler sagt dies; das nächste Mal, wenn Sie die Unterhaltung fortsetzen, wird die Sitzung im aktuellen Verzeichnis ohne Worktree-Isolation fortgesetzt. Vor v2.1.260 schrieb Claude Code das gelöschte Binding nicht, daher schlug jeder Wiederholungsversuch derselben Fortsetzung mit demselben Fehler fehl.

393 401 

394* `Error: cannot resume into worktree <path>: ...This session was not started.` für eine Ablehnung, die die Tabelle als `Did not re-enter` zeigt402 Wenn Sie [Transkriptschreibvorgänge unterdrücken](/docs/de/sessions#where-transcripts-are-stored), kann das Löschen nicht gespeichert werden. Der Fehler sagt dann, dass derselbe Befehl erneut abgelehnt wird, und benennt `--fork-session` und das Starten einer neuen Unterhaltung als Wege, um ohne den Worktree fortzufahren.

395* `Error: could not verify worktree <path> for this resume, so the resume was aborted...` für `Could not verify`403* `Error: could not verify worktree <path> for this resume, so the resume was aborted...` für `Could not verify`

396* `Error: ...The worktree binding is kept.` für `Could not re-enter`404* `Error: ...The worktree binding is kept.` für `Could not re-enter`

397* `Notice: the worktree <path> for this session no longer exists...` für einen gegangenen Worktree; Claude Code gibt ihn aus und setzt die Sitzung fort, wie eine interaktive Fortsetzung405* `Notice: the worktree <path> for this session no longer exists...` für einen gegangenen Worktree; Claude Code gibt ihn aus und setzt die Sitzung fort, wie eine interaktive Fortsetzung