SpyBara
Go Premium

Documentation 2026-10-13 23:57 UTC to 2026-10-14 22:58 UTC

73 files changed +1,386 −738. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

18 18 

19* Für eine Sitzung: Führen Sie `claude --ax-screen-reader` aus.19* Für eine Sitzung: Führen Sie `claude --ax-screen-reader` aus.

20* Für Sitzungen, die von einer Shell aus gestartet werden: Setzen Sie die Umgebungsvariable `CLAUDE_AX_SCREEN_READER` auf `1`. In Bash oder Zsh führen Sie `export CLAUDE_AX_SCREEN_READER=1` aus. In PowerShell führen Sie `$env:CLAUDE_AX_SCREEN_READER = "1"` aus. Fügen Sie diese Zeile zu Ihrem Shell-Profil hinzu, um sie für zukünftige Shells beizubehalten.20* Für Sitzungen, die von einer Shell aus gestartet werden: Setzen Sie die Umgebungsvariable `CLAUDE_AX_SCREEN_READER` auf `1`. In Bash oder Zsh führen Sie `export CLAUDE_AX_SCREEN_READER=1` aus. In PowerShell führen Sie `$env:CLAUDE_AX_SCREEN_READER = "1"` aus. Fügen Sie diese Zeile zu Ihrem Shell-Profil hinzu, um sie für zukünftige Shells beizubehalten.

21* Für jede Sitzung auf dem Computer: Fügen Sie `"axScreenReader": true` zu Ihrer Benutzerdatei [Einstellungsdatei](/docs/de/settings) hinzu. Die Einstellung gilt in jedem Terminal, einschließlich des integrierten VS Code-Terminals.21* Für jede Sitzung auf dem Computer: Fügen Sie `"axScreenReader": true` zu Ihrer Benutzer-[Einstellungsdatei](/docs/de/settings) hinzu. Die Einstellung gilt in jedem Terminal, einschließlich des integrierten VS Code-Terminals.

22 22 

23Wenn Sie Methoden kombinieren, wendet Claude Code das Flag [`--ax-screen-reader`](/docs/de/cli-reference#cli-flags) über die Umgebungsvariable [`CLAUDE_AX_SCREEN_READER`](/docs/de/env-vars#variables) an, und die Variable über die Einstellung [`axScreenReader`](/docs/de/settings-reference#axscreenreader).23Wenn Sie Methoden kombinieren, wendet Claude Code das Flag [`--ax-screen-reader`](/docs/de/cli-reference#cli-flags) über die Umgebungsvariable [`CLAUDE_AX_SCREEN_READER`](/docs/de/env-vars#variables) an, und die Variable über die Einstellung [`axScreenReader`](/docs/de/settings-reference#axscreenreader).

24 24 

Details

855 855 

856Der Status eines Remote-Servers kann sich auch ändern, nachdem er `"connected"` meldet. Wenn die Verbindung zu ihm während einer Sitzung unterbrochen wird, verschiebt Claude Code den Server zurück zu `"pending"`, während [Wiederverbindung](/docs/de/mcp#automatic-reconnection) stattfindet. Ein späterer `mcpServerStatus()`-Aufruf in TypeScript oder [`ClaudeSDKClient.get_mcp_status()`](/docs/de/agent-sdk/python#methods) in Python kann dann `"pending"` für einen Server melden, den Sie zuvor verbunden gesehen haben, ohne dass sich die Konfiguration auf Ihrer Seite ändert.856Der Status eines Remote-Servers kann sich auch ändern, nachdem er `"connected"` meldet. Wenn die Verbindung zu ihm während einer Sitzung unterbrochen wird, verschiebt Claude Code den Server zurück zu `"pending"`, während [Wiederverbindung](/docs/de/mcp#automatic-reconnection) stattfindet. Ein späterer `mcpServerStatus()`-Aufruf in TypeScript oder [`ClaudeSDKClient.get_mcp_status()`](/docs/de/agent-sdk/python#methods) in Python kann dann `"pending"` für einen Server melden, den Sie zuvor verbunden gesehen haben, ohne dass sich die Konfiguration auf Ihrer Seite ändert.

857 857 

858Nach fünf fehlgeschlagenen Wiederverbindungsversuchen meldet der Server `"failed"` oder `"needs-auth"`, wenn er erneut autorisiert werden muss. Um manuell erneut zu versuchen, rufen Sie [`reconnectMcpServer()`](/docs/de/agent-sdk/typescript#methods) in TypeScript oder [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/de/agent-sdk/python#methods) in Python auf.858Nach fünf fehlgeschlagenen Wiederverbindungsversuchen meldet der Server `"failed"` oder `"needs-auth"`, wenn er erneut autorisiert werden muss. Ein HTTP- oder SSE-Server mit dem Status `"failed"` kann auch ohne einen Aufruf Ihrerseits wieder zu `"connected"` zurückkehren, da Claude Code nach einem vorübergehenden Fehler [im Hintergrund weiterhin Wiederholungsversuche unternimmt](/docs/de/mcp#mid-session-drops-of-a-remote-server). Um manuell erneut zu versuchen, rufen Sie [`reconnectMcpServer()`](/docs/de/agent-sdk/typescript#methods) in TypeScript oder [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/de/agent-sdk/python#methods) in Python auf.

859 859 

860<h2 id="troubleshooting">860<h2 id="troubleshooting">

861 Fehlerbehebung861 Fehlerbehebung

Details

424 Kontext, den Claude Code außerhalb des System-Prompts hinzufügt424 Kontext, den Claude Code außerhalb des System-Prompts hinzufügt

425</h2>425</h2>

426 426 

427System-Erinnerungen sind Nachrichten, die Claude Code während einer Sitzung zur Konversation hinzufügt, um Claude Kontext zu geben, wie z. B. den Inhalt Ihrer CLAUDE.md-Dateien oder einen Hinweis, dass sich eine Datei auf der Festplatte geändert hat. Claude Code sendet sie in der Konversation, nicht im System-Prompt, sodass sie Claude erreichen, unabhängig davon, ob Sie die `claude_code`-Voreinstellung verwenden oder Ihren eigenen String als `systemPrompt` übergeben.427System-Erinnerungen sind Nachrichten, die Claude Code während einer Sitzung zur Konversation hinzufügt, um Claude Kontext zu geben, wie z. B. den Inhalt Ihrer CLAUDE.md-Dateien oder einen Hinweis, dass sich eine Datei auf der Festplatte geändert hat. Claude Code sendet sie in der Konversation, nicht im System-Prompt, sodass die meisten davon Claude erreichen, unabhängig davon, ob Sie die `claude_code`-Voreinstellung verwenden oder Ihren eigenen String als `systemPrompt` übergeben.

428 428 

429Dieser Abschnitt behandelt die [Erinnerungen, die am ehesten das Verhalten Ihres Agenten ändern](#reminders-claude-code-adds-to-the-conversation), wie Sie [die Erinnerungen deaktivieren, die Ihr Agent ersetzt](#turn-off-the-context-your-agent-replaces), und wie Sie [sehen, was Claude erhalten hat](#see-what-claude-received) in einer bestimmten Anfrage.429Dieser Abschnitt behandelt die [Erinnerungen, die am ehesten das Verhalten Ihres Agenten ändern](#reminders-claude-code-adds-to-the-conversation), wie Sie [die Erinnerungen deaktivieren, die Ihr Agent ersetzt](#turn-off-the-context-your-agent-replaces), und wie Sie [sehen, was Claude erhalten hat](#see-what-claude-received) in einer bestimmten Anfrage.

430 430 


467| Jede CLAUDE.md-Datei | Setzen Sie `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |467| Jede CLAUDE.md-Datei | Setzen Sie `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| Task-List-Hinweise, Datei-geändert-Hinweise und die Skill-Liste | Setzen Sie `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |468| Task-List-Hinweise, Datei-geändert-Hinweise und die Skill-Liste | Setzen Sie `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 469 

470Claude Codes eingebaute Commit- und Pull-Request-Anweisungen sind keine Erinnerung. Sie sind Teil der Beschreibung des Bash-Tools, daher erreichen sie Claude auch, wenn Sie einen benutzerdefinierten `systemPrompt` übergeben.470Setzen Sie `includeGitInstructions` auf `false`, um die eingebauten Commit- und Pull-Request-Anweisungen auszuschließen, die Teil der Beschreibung des Bash-Tools sind und Claude auch mit einem benutzerdefinierten `systemPrompt` erreichen. Mit dem minimalen Standard, einem benutzerdefinierten `systemPrompt` oder einem benutzerdefinierten Hauptthread-Agenten mit eigenem Prompt startet die Sitzung jedoch ohne den Git-Status-Snapshot.

471 471 

472Wenn Sie `CLAUDE_CODE_DISABLE_ATTACHMENTS` setzen, sendet Claude Code auch `@`-Dateierweiterungen als Klartext statt sie in Dateiinhalte zu erweitern. Die Liste der verfügbaren Subagenten und Hintergrund-Task-Benachrichtigungen treffen immer noch ein.472Wenn Sie `CLAUDE_CODE_DISABLE_ATTACHMENTS` setzen, sendet Claude Code auch `@`-Dateierwähnungen als Klartext, statt sie in Dateiinhalte zu erweitern. Die Liste der verfügbaren Subagenten und Benachrichtigungen zu Hintergrundaufgaben treffen immer noch ein. Um nur zu verhindern, dass `@`-Dateierwähnungen erweitert werden, setzen Sie stattdessen [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/de/env-vars#variables), ab Claude Code v2.1.299. Claude erhält dann die erwähnten Pfade sowie einen Hinweis, sie mit seinen Datei-Tools zu lesen.

473 473 

474Das folgende Beispiel ist für einen Agenten, der seine eigenen Commit-Regeln in `append` trägt. Es setzt beide `attribution`-Schlüssel auf leere Strings, um den Trailer und die Fußzeile zu entfernen, und deaktiviert `includeGitInstructions`, damit Claude Codes eigene Commit-Workflow-Anweisungen nicht mit Ihren konkurrieren:474Das folgende Beispiel ist für einen Agenten, der seine eigenen Commit-Regeln in `append` trägt. Es setzt beide `attribution`-Schlüssel auf leere Strings, um den Trailer und die Fußzeile zu entfernen, und deaktiviert `includeGitInstructions`, damit Claude Codes eigene Commit-Workflow-Anweisungen nicht mit Ihren konkurrieren:

475 475 

Details

164| `mcpServers` | `(string \| object)[]` | Nein | MCP-Server, die diesem Agent zur Verfügung stehen, nach Name oder Inline-Konfiguration |164| `mcpServers` | `(string \| object)[]` | Nein | MCP-Server, die diesem Agent zur Verfügung stehen, nach Name oder Inline-Konfiguration |

165| `initialPrompt` | `string` | Nein | Wird automatisch als erste Benutzer-Runde eingereicht, wenn dieser Agent als Haupt-Thread-Agent läuft. Wird ignoriert, wenn der Agent als Subagent aufgerufen wird |165| `initialPrompt` | `string` | Nein | Wird automatisch als erste Benutzer-Runde eingereicht, wenn dieser Agent als Haupt-Thread-Agent läuft. Wird ignoriert, wenn der Agent als Subagent aufgerufen wird |

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| `autoCompactWindow` | `number` | Nein | Senkt das [Fenster für die automatische Komprimierung](/docs/de/sub-agents#subagent-auto-compact-window) für diesen Agenten, wenn er als Subagent läuft, auf eine Token-Anzahl von `100000` bis `1000000`. Erfordert TypeScript Agent SDK v0.3.296 oder später. Die [`AgentDefinition`](/docs/de/agent-sdk/python#agentdefinition) des Python SDK hat dieses Feld nicht |

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

168| `omitClaudeMd` | `boolean` | Nein | Führen Sie diesen Agent ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien aus, wenn er als Subagent läuft; verwaltete Richtliniendateien werden weiterhin geladen. Wird ignoriert, wenn der Agent als Haupt-Thread-Agent läuft. Erfordert TypeScript Agent SDK v0.3.271 oder später. Das Python SDK [`AgentDefinition`](/docs/de/agent-sdk/python#agentdefinition) hat dieses Feld nicht |169| `omitClaudeMd` | `boolean` | Nein | Lässt die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien aus dem anfänglichen Kontext dieses Agenten weg; verwaltete Richtliniendateien werden weiterhin geladen. Wird ignoriert, wenn der Agent als Haupt-Thread-Agent läuft. Erfordert TypeScript Agent SDK v0.3.271 oder später. Die [`AgentDefinition`](/docs/de/agent-sdk/python#agentdefinition) des Python SDK hat dieses Feld nicht |

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

170| `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 |171| `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 |

171 172 


200| Der Subagent erhält | Der Subagent erhält nicht |201| Der Subagent erhält | Der Subagent erhält nicht |

201| :- | :- |202| :- | :- |

202| Seinen eigenen System-Prompt (`AgentDefinition.prompt`) und den Prompt des Agent-Tools | Die Konversationshistorie oder Tool-Ergebnisse des übergeordneten Agenten |203| Seinen eigenen System-Prompt (`AgentDefinition.prompt`) und den Prompt des Agent-Tools | Die Konversationshistorie oder Tool-Ergebnisse des übergeordneten Agenten |

203| Projekt CLAUDE.md (geladen über [`settingSources`](/docs/de/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)), sofern der Agent nicht [`omitClaudeMd`](#agentdefinition-configuration) setzt | Vorgeladene Skill-Inhalte, sofern nicht in `AgentDefinition.skills` aufgelistet |204| Projekt-CLAUDE.md (geladen über [`settingSources`](/docs/de/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)). Ein Agent, der [`omitClaudeMd`](#agentdefinition-configuration) setzt, startet ohne sie | Vorgeladene Skill-Inhalte, sofern nicht in `AgentDefinition.skills` aufgelistet |

204| Tool-Definitionen (geerbt vom übergeordneten Agent oder die Teilmenge in `tools`, [gefiltert für Hintergrund-Läufe](/docs/de/sub-agents#available-tools)) | Der System-Prompt des übergeordneten Agenten |205| Tool-Definitionen (geerbt vom übergeordneten Agent oder die Teilmenge in `tools`, [gefiltert für Hintergrund-Läufe](/docs/de/sub-agents#available-tools)) | Der System-Prompt des übergeordneten Agenten |

205 206 

206<Note>207<Note>

Details

908 | "malformed"908 | "malformed"

909 | "not_honoured"909 | "not_honoured"

910 >;910 >;

911 claude_code_version?: string;

911};912};

912```913```

913 914 


922 923 

923Das Feld `sdkMcpServerManifests` der Anfrage und das Feld `sdk_mcp_manifests_parked` der Antwort dienen den prozessinternen [SDK-MCP-Servern](/docs/de/agent-sdk/custom-tools), die Sie mit [`createSdkMcpServer()`](#createsdkmcpserver) erstellt haben. Ihre Anwendung setzt oder liest keines dieser Felder.924Das Feld `sdkMcpServerManifests` der Anfrage und das Feld `sdk_mcp_manifests_parked` der Antwort dienen den prozessinternen [SDK-MCP-Servern](/docs/de/agent-sdk/custom-tools), die Sie mit [`createSdkMcpServer()`](#createsdkmcpserver) erstellt haben. Ihre Anwendung setzt oder liest keines dieser Felder.

924 925 

926`claude_code_version` ist die Claude-Code-Version des Prozesses, der die Turns der Sitzung ausführt. Es ist derselbe Wert, den die Init-Nachricht [`SDKSystemMessage`](#sdksystemmessage) enthält, sodass Sie die CLI-Version bereits vor dem ersten Turn lesen können.

927 

928* Das Feld erfordert Agent SDK v0.3.296 oder höher, das Claude Code v2.1.296 bündelt.

929* Wenn das Feld `undefined` ist und Sie `pathToClaudeCodeExecutable` setzen, verweisen Sie damit auf Claude Code v2.1.296 oder höher.

930 

925Die Antwort meldet immer `fast_mode_state`, und wenn etwas den [Fast-Modus](/docs/de/fast-mode) blockiert, enthält `fast_mode_disabled_reason` zusätzlich den Ursachencode, sodass Sie den blockierten Zustand erklären können, anstatt die Verfügbarkeit selbst erneut abzuleiten. Beide Verhaltensweisen erfordern Claude Code v2.1.219 oder höher. Vor v2.1.219 ließ die Antwort `fast_mode_state` weg, wenn der Fast-Modus nicht verfügbar war, und enthielt nie eine Ursache. Zu den Ursachencodes und ihrer Bedeutung siehe [`fast_mode_disabled_reason`](#sdkresultmessage) in der Ergebnisnachricht.931Die Antwort meldet immer `fast_mode_state`, und wenn etwas den [Fast-Modus](/docs/de/fast-mode) blockiert, enthält `fast_mode_disabled_reason` zusätzlich den Ursachencode, sodass Sie den blockierten Zustand erklären können, anstatt die Verfügbarkeit selbst erneut abzuleiten. Beide Verhaltensweisen erfordern Claude Code v2.1.219 oder höher. Vor v2.1.219 ließ die Antwort `fast_mode_state` weg, wenn der Fast-Modus nicht verfügbar war, und enthielt nie eine Ursache. Zu den Ursachencodes und ihrer Bedeutung siehe [`fast_mode_disabled_reason`](#sdkresultmessage) in der Ergebnisnachricht.

926 932 

927Der Wrapper der Steuerungsantwort für ein erfolgreiches `initialize` enthält außerdem ein Array `pending_permission_requests`. Das Feld befindet sich im Wrapper der Antwort selbst, nicht in der obigen `SDKControlInitializeResponse`-Payload. Jeder Eintrag ist eine vollständige `control_request`-Nachricht mit derselben Form `{ type: "control_request", request_id, request }`, in der die Sitzung während der Ausführung Berechtigungsanfragen streamt.933Der Wrapper der Steuerungsantwort für ein erfolgreiches `initialize` enthält außerdem ein Array `pending_permission_requests`. Das Feld befindet sich im Wrapper der Antwort selbst, nicht in der obigen `SDKControlInitializeResponse`-Payload. Jeder Eintrag ist eine vollständige `control_request`-Nachricht mit derselben Form `{ type: "control_request", request_id, request }`, in der die Sitzung während der Ausführung Berechtigungsanfragen streamt.


1218 skills?: string[];1224 skills?: string[];

1219 initialPrompt?: string;1225 initialPrompt?: string;

1220 maxTurns?: number;1226 maxTurns?: number;

1227 autoCompactWindow?: number;

1221 background?: boolean;1228 background?: boolean;

1222 omitClaudeMd?: boolean;1229 omitClaudeMd?: boolean;

1223 memory?: "user" | "project" | "local";1230 memory?: "user" | "project" | "local";


1238| `skills` | Nein | Array von Skill-Namen, die in den Agentenkontext vorgeladen werden |1245| `skills` | Nein | Array von Skill-Namen, die in den Agentenkontext vorgeladen werden |

1239| `initialPrompt` | Nein | Wird automatisch als erster Benutzer-Turn übermittelt, wenn dieser Agent als Agent des Hauptthreads läuft |1246| `initialPrompt` | Nein | Wird automatisch als erster Benutzer-Turn übermittelt, wenn dieser Agent als Agent des Hauptthreads läuft |

1240| `maxTurns` | Nein | Maximale Anzahl agentischer Turns (API-Roundtrips) vor dem Stoppen |1247| `maxTurns` | Nein | Maximale Anzahl agentischer Turns (API-Roundtrips) vor dem Stoppen |

1248| `autoCompactWindow` | Nein | Senkt das [Fenster für die automatische Komprimierung](/docs/de/sub-agents#subagent-auto-compact-window) für diesen Agenten, wenn er als Subagent läuft, auf eine Token-Anzahl zwischen `100000` und `1000000`. Erfordert TypeScript Agent SDK v0.3.296 oder höher |

1241| `background` | Nein | Diesen Agenten bei Aufruf als nicht blockierende Hintergrundaufgabe ausführen |1249| `background` | Nein | Diesen Agenten bei Aufruf als nicht blockierende Hintergrundaufgabe ausführen |

1242| `omitClaudeMd` | Nein | Diesen Agenten ohne die CLAUDE.md-Dateien des Benutzers, des Projekts und die lokalen ausführen, wenn er als Subagent läuft; Dateien verwalteter Richtlinien werden weiterhin geladen. Verwenden Sie dies für Agenten, die alles Benötigte aus dem Prompt des Agent-Tools beziehen. Wird ignoriert, wenn dieser Agent als Agent des Hauptthreads läuft. Erfordert TypeScript Agent SDK v0.3.271 oder höher |1250| `omitClaudeMd` | Nein | Die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien aus dem anfänglichen Kontext dieses Agenten weglassen; verwaltete Richtliniendateien werden weiterhin geladen. Verwenden Sie dies für Agenten, die alles Benötigte aus dem Prompt des Agent-Tools beziehen. Wird ignoriert, wenn dieser Agent als Agent des Haupt-Threads läuft. Erfordert TypeScript Agent SDK v0.3.271 oder höher |

1243| `memory` | Nein | Memory-Quelle für diesen Agenten: `'user'`, `'project'` oder `'local'` |1251| `memory` | Nein | Memory-Quelle für diesen Agenten: `'user'`, `'project'` oder `'local'` |

1244| `effort` | Nein | Reasoning-Effort-Stufe für diesen Agenten. Akzeptiert eine benannte Stufe oder eine Ganzzahl |1252| `effort` | Nein | Reasoning-Effort-Stufe für diesen Agenten. Akzeptiert eine benannte Stufe oder eine Ganzzahl |

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


2434* `fromMode`: Die Berechtigungsklasse der sendenden Sitzung, `bypass` oder `prompting`, deklariert von einem Host, der eine Peer-Nachricht zwischen Ihren Sitzungen weiterleitet, wie die [Desktop-App](/docs/de/desktop#work-across-sessions). Claude Code liest es in der empfangenden Sitzung, wenn es die [Inbound-Steuerungen](/docs/de/cross-session-messaging#control-inbound-messages) anwendet. Erfordert Agent SDK v0.3.234 oder später.2442* `fromMode`: Die Berechtigungsklasse der sendenden Sitzung, `bypass` oder `prompting`, deklariert von einem Host, der eine Peer-Nachricht zwischen Ihren Sitzungen weiterleitet, wie die [Desktop-App](/docs/de/desktop#work-across-sessions). Claude Code liest es in der empfangenden Sitzung, wenn es die [Inbound-Steuerungen](/docs/de/cross-session-messaging#control-inbound-messages) anwendet. Erfordert Agent SDK v0.3.234 oder später.

2435* `senderTaskId`: Die Task-ID des Teamkollegen. Fehlt für einen Cross-Session-Peer.2443* `senderTaskId`: Die Task-ID des Teamkollegen. Fehlt für einen Cross-Session-Peer.

2436* `name`: Der Anzeigename des Absenders, normalisiert von Claude Code: Es entfernt Unicode-Steuer-, Format-, Surrogate- und Zeilen- oder Absatz-Trennzeichen-Codepunkte, kürzt dann das Ergebnis und begrenzt es auf 64 Codepunkte mit einer Ellipse. Erfordert Claude Code v2.1.205 oder später.2444* `name`: Der Anzeigename des Absenders, normalisiert von Claude Code: Es entfernt Unicode-Steuer-, Format-, Surrogate- und Zeilen- oder Absatz-Trennzeichen-Codepunkte, kürzt dann das Ergebnis und begrenzt es auf 64 Codepunkte mit einer Ellipse. Erfordert Claude Code v2.1.205 oder später.

2437* `body`: Der dekodierte Nachrichtentext mit entfernter Peer-Hülle, byte-genau mit dem, was das Modell sieht. Immer vorhanden für eine Teamkollegen-Nachricht; für einen Cross-Session-Peer nur vorhanden, wenn der Turn genau eine von Claude Code gebildete Peer-Hülle ist. Rendern Sie `name` und `body`, anstatt den Nachrichtentext erneut zu analysieren. Erfordert Claude Code v2.1.205 oder später.2445* `body`: der dekodierte Nachrichtentext ohne den Peer-Umschlag, bytegenau identisch mit dem, was das Modell sieht. Vorhanden bei einer einzelnen Nachricht eines Teammitglieds, fehlt, wenn mehrere zusammengeführt werden; bei einem sitzungsübergreifenden Peer nur vorhanden, wenn der Turn aus genau einem von Claude Code gebildeten Peer-Umschlag besteht. Stellen Sie `name` und `body` dar, anstatt den Nachrichtentext erneut zu parsen. Vor v2.1.299 behielten zusammengeführte Nachrichten den `body` der ersten Nachricht. Erfordert Claude Code v2.1.205 oder höher.

2438* `fromSession`: Die vom Host öffenbare Sitzungs-ID des Absenders, gesetzt vom Host des Absenders, damit Ihre Benutzeroberfläche zurück zur sendenden Sitzung verlinken kann. Wie `from` ist es vom Sender behauptet: Verwenden Sie es nur als Navigationsziel, und behandeln Sie es nicht als Beweis der Identität des Absenders. Erfordert Claude Code v2.1.216 oder später.2446* `fromSession`: Die vom Host öffenbare Sitzungs-ID des Absenders, gesetzt vom Host des Absenders, damit Ihre Benutzeroberfläche zurück zur sendenden Sitzung verlinken kann. Wie `from` ist es vom Sender behauptet: Verwenden Sie es nur als Navigationsziel, und behandeln Sie es nicht als Beweis der Identität des Absenders. Erfordert Claude Code v2.1.216 oder später.

2439* `verifiedPeerPid`: Die Prozess-ID des Prozesses, der sich mit dem Cross-Session-Messaging-Socket dieser Sitzung verbunden hat, verifiziert vom Kernel und aus der Verbindung selbst gelesen, niemals aus der Payload. Verwenden Sie es, nicht `from`, um den Absender zu identifizieren: `from` ist von jedem Prozess desselben Benutzers fälschbar. Das Feld fehlt, wenn Claude Code es nicht verifizieren kann, etwa unter Windows oder bei Nicht-Socket-Eingang, daher bedeutet ein fehlender Wert, dass der Absender nicht verifiziert ist. Für weitergeleiteten Traffic identifiziert es das Relay anstelle des Autors der Nachricht, und Prozess-IDs sind wiederverwendbar, daher behandeln Sie es als Herkunftsangabe und nicht als Authentifizierungs-Token. Erfordert Claude Code v2.1.216 oder später.2447* `verifiedPeerPid`: Die Prozess-ID des Prozesses, der sich mit dem Cross-Session-Messaging-Socket dieser Sitzung verbunden hat, verifiziert vom Kernel und aus der Verbindung selbst gelesen, niemals aus der Payload. Verwenden Sie es, nicht `from`, um den Absender zu identifizieren: `from` ist von jedem Prozess desselben Benutzers fälschbar. Das Feld fehlt, wenn Claude Code es nicht verifizieren kann, etwa unter Windows oder bei Nicht-Socket-Eingang, daher bedeutet ein fehlender Wert, dass der Absender nicht verifiziert ist. Für weitergeleiteten Traffic identifiziert es das Relay anstelle des Autors der Nachricht, und Prozess-IDs sind wiederverwendbar, daher behandeln Sie es als Herkunftsangabe und nicht als Authentifizierungs-Token. Erfordert Claude Code v2.1.216 oder später.

2440 2448 


3444 offset?: number;3452 offset?: number;

3445 limit?: number;3453 limit?: number;

3446 pages?: string;3454 pages?: string;

3455 allow_large?: boolean;

3447};3456};

3448```3457```

3449 3458 

3450Liest Dateien aus dem lokalen Dateisystem, einschließlich Text, Bilder, PDFs und Jupyter-Notebooks. Verwenden Sie `pages` für PDF-Seitenbereiche (z. B. `"1-5"`).3459Liest Dateien aus dem lokalen Dateisystem, einschließlich Text, Bilder, PDFs und Jupyter-Notebooks.

3460 

3461* Verwenden Sie `pages` für PDF-Seitenbereiche (z. B. `"1-5"`).

3462* `allow_large` ermöglicht es Claude, eine Textdatei über die [üblichen Größenbeschränkungen](/docs/de/tools-reference#large-files) hinaus zu lesen, wenn das Kontextfenster der Sitzung Platz bietet. Es erfordert Agent SDK v0.3.296 oder später, das Claude Code v2.1.296 enthält.

3451 3463 

3452Für ein PDF erhält Claude den Inhalt der Datei im `tool_result`-Inhalt des Read-Aufrufs. Ein Read, das die `pdf`-[Ausgabe](#tool-output-types) zurückgibt, enthält einen Zusammenfassungs-`text`-Block gefolgt von einem `document`-Block. Ein Read, das die `parts`-Ausgabe zurückgibt, enthält den Zusammenfassungs-`text`-Block gefolgt von einem Block pro extrahierter Seite: einen `image`-Block oder einen `text`-Block, der die Seite benennt, wenn Claude Code sie nicht als Bild rendern konnte. Vor Agent SDK v0.3.242 lieferte Claude Code den Inhalt der Datei als separate `user`-Nachricht nach dem Tool-Ergebnis.3464Für ein PDF erhält Claude den Inhalt der Datei im `tool_result`-Inhalt des Read-Aufrufs. Ein Read, das die `pdf`-[Ausgabe](#tool-output-types) zurückgibt, enthält einen Zusammenfassungs-`text`-Block gefolgt von einem `document`-Block. Ein Read, das die `parts`-Ausgabe zurückgibt, enthält den Zusammenfassungs-`text`-Block gefolgt von einem Block pro extrahierter Seite: einen `image`-Block oder einen `text`-Block, der die Seite benennt, wenn Claude Code sie nicht als Bild rendern konnte. Vor Agent SDK v0.3.242 lieferte Claude Code den Inhalt der Datei als separate `user`-Nachricht nach dem Tool-Ergebnis.

3453 3465 

agent-teams.md +2 −1

Details

270| **Aufgabenliste** | Gemeinsame Liste von Arbeitselementen, die Teammates beanspruchen und abschließen |270| **Aufgabenliste** | Gemeinsame Liste von Arbeitselementen, die Teammates beanspruchen und abschließen |

271| **Mailbox** | Nachrichtensystem für Kommunikation zwischen Agenten |271| **Mailbox** | Nachrichtensystem für Kommunikation zwischen Agenten |

272 272 

273Die Mailbox jedes Agenten ist eine JSON-Datei unter `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code validiert jeden Eintrag, wenn es eine Mailbox-Datei liest. Einträge, die nicht dem Nachrichtenformat entsprechen, werden als Fehler gemeldet und aus der Datei entfernt; die gültigen Nachrichten werden trotzdem zugestellt. Vor v2.1.207 verursachte ein einzelner fehlerhafter Mailbox-Eintrag einen wiederholten Fehler jede Sekunde und blockierte die Zustellung für diese Mailbox, bis Sie die Datei manuell löschten.273Die Mailbox jedes Agenten ist eine JSON-Datei unter `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code validiert jeden Eintrag, wenn es eine Mailbox-Datei liest. Einträge, die nicht dem Nachrichtenformat entsprechen, werden als Fehler gemeldet und aus der Datei entfernt; die gültigen Nachrichten werden trotzdem zugestellt.

274 274 

275Claude Code meldet eine Nachricht als gesendet nur, wenn der Schreibvorgang in die Mailbox-Datei des Empfängers erfolgreich ist, ob die Nachricht Klartext oder eine strukturierte Protokollnachricht wie eine Plan-Genehmigung oder Shutdown-Anfrage ist. Wenn der Schreibvorgang fehlschlägt, beispielsweise weil der Speicher voll ist oder das Mailbox-Verzeichnis nicht beschreibbar ist, erhält der sendende Agent einen Fehler und nichts wird gesendet. Siehe [Fehler beim Schreiben in die Mailbox eines Teammates](/docs/de/errors#failed-to-write-to-a-teammate-inbox) für die Fehlermeldungen und Wiederherstellungsschritte.275Claude Code meldet eine Nachricht als gesendet nur, wenn der Schreibvorgang in die Mailbox-Datei des Empfängers erfolgreich ist, ob die Nachricht Klartext oder eine strukturierte Protokollnachricht wie eine Plan-Genehmigung oder Shutdown-Anfrage ist. Wenn der Schreibvorgang fehlschlägt, beispielsweise weil der Speicher voll ist oder das Mailbox-Verzeichnis nicht beschreibbar ist, erhält der sendende Agent einen Fehler und nichts wird gesendet. Siehe [Fehler beim Schreiben in die Mailbox eines Teammates](/docs/de/errors#failed-to-write-to-a-teammate-inbox) für die Fehlermeldungen und Wiederherstellungsschritte.

276 276 


309* **`model`**: Claude Code verwendet das `model` der Definition in beiden Anzeigemodi, wenn Ihr Spawn-Prompt keinen benennt. Siehe [wie Claude Code das Modell eines Teammates auswählt](#specify-teammates-and-models).309* **`model`**: Claude Code verwendet das `model` der Definition in beiden Anzeigemodi, wenn Ihr Spawn-Prompt keinen benennt. Siehe [wie Claude Code das Modell eines Teammates auswählt](#specify-teammates-and-models).

310* **`disallowedTools`**: Für einen In-Process-Teammate entfernt Claude Code die Tools aus `disallowedTools` der Definition aus den Tools des Teammates. `SendMessage` und die Task-Tools, die es hinzufügt, bleiben verfügbar, auch wenn die Liste sie nennt.310* **`disallowedTools`**: Für einen In-Process-Teammate entfernt Claude Code die Tools aus `disallowedTools` der Definition aus den Tools des Teammates. `SendMessage` und die Task-Tools, die es hinzufügt, bleiben verfügbar, auch wenn die Liste sie nennt.

311* **`effort`**: Für einen In-Process-Teammate wendet Claude Code den [`effort`](/docs/de/sub-agents#supported-frontmatter-fields)-Wert der Definition gemäß den [Frontmatter-Regeln für den Effort](/docs/de/model-config#set-the-effort-level) an.311* **`effort`**: Für einen In-Process-Teammate wendet Claude Code den [`effort`](/docs/de/sub-agents#supported-frontmatter-fields)-Wert der Definition gemäß den [Frontmatter-Regeln für den Effort](/docs/de/model-config#set-the-effort-level) an.

312* **`autoCompactWindow`**: Für einen In-Process-Teammate wendet Claude Code den [`autoCompactWindow`](/docs/de/sub-agents#supported-frontmatter-fields)-Wert der Definition gemäß [den Regeln dieses Felds](/docs/de/sub-agents#subagent-auto-compact-window) an. Ein Split-Pane-Teammate ignoriert das Feld. Erfordert Claude Code v2.1.296 oder höher.

312* **Body**: Für einen In-Process-Teammate hängt Claude Code den Body der Definition an seinen Standard-System-Prompt als zusätzliche Anweisungen an. Für einen Split-Pane-Teammate verwendet Claude Code den Body anstelle seines Standard-System-Prompts.313* **Body**: Für einen In-Process-Teammate hängt Claude Code den Body der Definition an seinen Standard-System-Prompt als zusätzliche Anweisungen an. Für einen Split-Pane-Teammate verwendet Claude Code den Body anstelle seines Standard-System-Prompts.

313* **`skills`**: Claude Code wendet die `skills` der Definition nicht auf einen Teammate in beiden Anzeigemodi an. Der Teammate lädt Skills aus Ihren Projekt- und Benutzereinstellungen.314* **`skills`**: Claude Code wendet die `skills` der Definition nicht auf einen Teammate in beiden Anzeigemodi an. Der Teammate lädt Skills aus Ihren Projekt- und Benutzereinstellungen.

314* **`mcpServers`**: Für einen Split-Pane-Teammate wendet Claude Code das `mcpServers` der Definition unter den [Regeln für dieses Feld](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) an, die auch eine Sitzung abdecken, die mit `--agent` gestartet wurde. Ein In-Process-Teammate ignoriert das Feld und lädt MCP-Server aus Ihren Projekt- und Benutzereinstellungen.315* **`mcpServers`**: Für einen Split-Pane-Teammate wendet Claude Code das `mcpServers` der Definition unter den [Regeln für dieses Feld](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) an, die auch eine Sitzung abdecken, die mit `--agent` gestartet wurde. Ein In-Process-Teammate ignoriert das Feld und lädt MCP-Server aus Ihren Projekt- und Benutzereinstellungen.

agent-view.md +13 −13

Details

26 Schnellstart26 Schnellstart

27</h2>27</h2>

28 28 

29Diese Anleitung behandelt die Kern-Agenten-Ansicht-Schleife: versenden Sie eine Aufgabe, beobachten Sie, wie ihre Zeile aktualisiert wird, während Claude arbeitet, schauen Sie nach, um sie zu überprüfen und zu antworten, und hängen Sie sich für das vollständige Gespräch an. Die Sitzung, die Sie versenden, läuft weiter, nachdem Sie die Agenten-Ansicht schließen, sodass Sie sie verlassen und später zurückkehren können.29Diese Anleitung behandelt die Kern-Agenten-Ansicht-Schleife: versenden Sie eine Aufgabe, beobachten Sie, wie ihre Zeile aktualisiert wird, während Claude arbeitet, schauen Sie nach, um sie zu überprüfen und zu antworten, und hängen Sie sich für die vollständige Konversation an. Die Sitzung, die Sie versenden, läuft weiter, nachdem Sie die Agenten-Ansicht schließen, sodass Sie sie verlassen und später zurückkehren können.

30 30 

31<Steps>31<Steps>

32 <Step title="Agenten-Ansicht öffnen">32 <Step title="Agenten-Ansicht öffnen">


38 38 

39 Falls Sie den [Dialog zum Vertrauen im Arbeitsbereich](/docs/de/permissions#project-allow-rules-and-workspace-trust) für das Verzeichnis noch nicht akzeptiert haben, zeigt Claude Code ihn vor dem Öffnen der Agenten-Ansicht an, denselben Dialog, den `claude` anzeigt. Akzeptieren Sie, um das Vertrauen für den Arbeitsbereich zu speichern und fortzufahren. Falls Sie ablehnen, beendet Claude Code sich, ohne die Agenten-Ansicht zu öffnen.39 Falls Sie den [Dialog zum Vertrauen im Arbeitsbereich](/docs/de/permissions#project-allow-rules-and-workspace-trust) für das Verzeichnis noch nicht akzeptiert haben, zeigt Claude Code ihn vor dem Öffnen der Agenten-Ansicht an, denselben Dialog, den `claude` anzeigt. Akzeptieren Sie, um das Vertrauen für den Arbeitsbereich zu speichern und fortzufahren. Falls Sie ablehnen, beendet Claude Code sich, ohne die Agenten-Ansicht zu öffnen.

40 40 

41 Die Agenten-Ansicht öffnet sich mit einer Eingabe am unteren Rand und einer Tabelle, die sich füllt, wenn Sitzungen starten. Drücken Sie `Esc`, um zu Ihrer Shell zurückzukehren; falls Sie die Agenten-Ansicht durch Hintergrundverarbeitung einer Sitzung mit `←` geöffnet haben, kehrt `Esc` stattdessen zu diesem Gespräch zurück. Ihre Sitzungen laufen weiter, während Sie weg sind, und erscheinen erneut, wenn Sie die Agenten-Ansicht das nächste Mal öffnen.41 Die Agenten-Ansicht öffnet sich mit einem Eingabefeld am unteren Rand und einer Tabelle, die sich füllt, wenn Sitzungen starten. Drücken Sie `Esc`, um zu Ihrer Shell zurückzukehren; falls Sie die Agenten-Ansicht geöffnet haben, indem Sie eine Sitzung mit `←` in den Hintergrund verschoben haben, kehrt `Esc` stattdessen zu dieser Konversation zurück. Ihre Sitzungen laufen weiter, während Sie weg sind, und erscheinen erneut, wenn Sie die Agenten-Ansicht das nächste Mal öffnen.

42 </Step>42 </Step>

43 43 

44 <Step title="Eine Sitzung versenden">44 <Step title="Eine Sitzung versenden">

45 Geben Sie eine Eingabeaufforderung ein, die eine Aufgabe beschreibt, und drücken Sie `Enter`. Eine neue Hintergrund-Sitzung startet bei dieser Aufgabe und wird als Zeile angezeigt, die zeigt, ob sie funktioniert, auf Sie wartet oder erledigt ist. Die neue Sitzung verwendet das Modell, das in der Agenten-Ansicht-Kopfzeile angezeigt wird. [Welcher Berechtigungsmodus sie startet](#permission-mode-model-and-effort), hängt davon ab, wie Sie die Agenten-Ansicht geöffnet haben.45 Geben Sie einen Prompt ein, der eine Aufgabe beschreibt, und drücken Sie `Enter`. Eine neue Hintergrund-Sitzung startet mit dieser Aufgabe und wird als Zeile angezeigt, die zeigt, ob sie arbeitet, auf Sie wartet oder erledigt ist. Die neue Sitzung verwendet das Modell, das in der Kopfzeile der Agenten-Ansicht angezeigt wird. [In welchem Berechtigungsmodus sie startet](#permission-mode-model-and-effort), hängt davon ab, wie Sie die Agenten-Ansicht geöffnet haben.

46 46 

47 Jede Eingabeaufforderung, die Sie hier eingeben, startet ihre eigene neue Sitzung. Wenn Sie eine weitere Eingabeaufforderung eingeben und `Enter` drücken, wird eine zweite Sitzung neben der ersten gestartet, anstatt eine Folgefrage daran zu senden. Sie können auf diese Weise mehrere parallel ausführen.47 Jeder Prompt, den Sie hier eingeben, startet seine eigene neue Sitzung. Wenn Sie einen weiteren Prompt eingeben und `Enter` drücken, wird eine zweite Sitzung neben der ersten gestartet, anstatt eine Folgenachricht an diese zu senden. Sie können auf diese Weise mehrere parallel ausführen.

48 48 

49 Jede Sitzung nutzt Ihr Abonnementkontingent unabhängig, daher lesen Sie [Einschränkungen](#limitations), bevor Sie viele auf einmal versenden.49 Jede Sitzung nutzt Ihr Abonnementkontingent unabhängig, lesen Sie daher [Einschränkungen](#limitations), bevor Sie viele auf einmal versenden.

50 </Step>50 </Step>

51 51 

52 <Step title="Vorschau und Antwort">52 <Step title="Vorschau und Antwort">


54 </Step>54 </Step>

55 55 

56 <Step title="Anhängen und Abhängen">56 <Step title="Anhängen und Abhängen">

57 Drücken Sie `Enter` oder `→` auf einer Zeile, um sich anzuhängen, wenn Sie das vollständige Gespräch möchten. Die Sitzung übernimmt das Terminal als vollständige interaktive Claude Code-Sitzung. Drücken Sie `←` auf einer leeren Eingabeaufforderung, um sich abzuhängen und zur Tabelle zurückzukehren.57 Drücken Sie `Enter` oder `→` auf einer Zeile, um sich anzuhängen, wenn Sie die vollständige Konversation sehen möchten. Die Sitzung übernimmt das Terminal als vollständige interaktive Claude Code-Sitzung. Drücken Sie `←` in einem leeren Eingabefeld, um sich abzuhängen und zur Tabelle zurückzukehren.

58 </Step>58 </Step>

59 59 

60 <Step title="Eine vorhandene Sitzung einbringen">60 <Step title="Eine vorhandene Sitzung einbringen">

61 Dieser Schritt benötigt eine laufende Sitzung. Falls Sie die früheren Schritte befolgt haben, haben Sie keine offene Sitzung in diesem Terminal, daher öffnen Sie eine reguläre `claude`-Sitzung in einem anderen Terminal und senden Sie ihr zuerst eine Nachricht.61 Dieser Schritt benötigt eine laufende Sitzung. Falls Sie die früheren Schritte befolgt haben, haben Sie keine offene Sitzung in diesem Terminal. Öffnen Sie daher eine reguläre `claude`-Sitzung in einem anderen Terminal und senden Sie ihr zuerst eine Nachricht.

62 62 

63 Um eine Sitzung, die Sie bereits offen haben, in die Agenten-Ansicht zu verschieben, führen Sie `/bg` darin aus, oder drücken Sie `←` auf einer leeren Eingabeaufforderung, um sie in den Hintergrund zu verschieben und die Agenten-Ansicht in einem Schritt zu öffnen. In einer neuen Sitzung ohne Nachrichten fragt `/bg` Sie, zuerst eine Nachricht zu senden, während `←` sofort funktioniert. Die Sitzung läuft weiter und wird als Zeile neben den Sitzungen angezeigt, die Sie versendet haben.63 Um eine Sitzung, die Sie bereits offen haben, in die Agenten-Ansicht zu verschieben, führen Sie `/bg` darin aus, oder drücken Sie `←` in einem leeren Eingabefeld, um sie in den Hintergrund zu verschieben und die Agenten-Ansicht in einem Schritt zu öffnen. In einer neuen Sitzung ohne Nachrichten fordert `/bg` Sie auf, zuerst eine Nachricht zu senden, während `←` sofort funktioniert. Die Sitzung läuft weiter und wird als Zeile neben den Sitzungen angezeigt, die Sie versendet haben.

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

67Innerhalb einer regulären `claude`-Sitzung zählt der Hinweis `←` in der Eingabeaufforderungs-Fußzeile die Hintergrund-Agenten, die auf Sie warten, wie z. B. `← 2 agents`, und kehrt zu `← for agents` zurück, wenn keiner Eingaben benötigt. Zählungen über 99 werden als `99+` angezeigt. Die Zählung wird etwa alle zehn Sekunden aktualisiert, während das Terminal fokussiert ist, und sofort, wenn der Fokus zurückkehrt. Sie ändert kurzzeitig die Farbe, wenn sie sich bewegt und wenn ein Agent abgeschlossen wird, und wenn eine Hintergrund-Sitzung endet, während keiner Eingaben benötigt, zeigt sie kurzzeitig die Anzahl der abgeschlossenen Sitzungen an, wie z. B. `← 2 done`. Beide Blitze sind aus, wenn die Einstellung [`prefersReducedMotion`](/docs/de/settings-reference#prefersreducedmotion) aktiviert ist, und der Hinweis ist im [Bildschirmlesemodus](/docs/de/accessibility) verborgen.67Innerhalb einer regulären `claude`-Sitzung zählt der Hinweis `←` in der Fußzeile des Eingabefelds die Hintergrund-Agenten, die auf Sie warten, wie z. B. `← 2 agents`, und kehrt zu `← for agents` zurück, wenn keiner Eingaben benötigt. Zählungen über 99 werden als `99+` angezeigt. Die Zählung wird etwa alle zehn Sekunden aktualisiert, während das Terminal fokussiert ist, und sofort, wenn der Fokus zurückkehrt. Sie ändert kurzzeitig die Farbe, wenn sie sich ändert und wenn ein Agent abgeschlossen wird, und wenn eine Hintergrund-Sitzung endet, während keiner Eingaben benötigt, zeigt sie kurzzeitig die Anzahl der abgeschlossenen Sitzungen an, wie z. B. `← 2 done`. Beide Hervorhebungen sind aus, wenn die Einstellung [`prefersReducedMotion`](/docs/de/settings-reference#prefersreducedmotion) aktiviert ist, und der Hinweis ist im [Bildschirmlesemodus](/docs/de/accessibility) verborgen.

68 68 

69<h3 id="open-agent-view-by-default">69<h3 id="open-agent-view-by-default">

70 Agenten-Ansicht standardmäßig öffnen70 Agenten-Ansicht standardmäßig öffnen

71</h3>71</h3>

72 72 

73Um `claude` ohne Argumente die Agenten-Ansicht statt eines neuen Gesprächs zu öffnen, aktivieren Sie eine `/config`-Einstellung.73Damit `claude` ohne Argumente die Agenten-Ansicht statt einer neuen Konversation öffnet, aktivieren Sie eine `/config`-Einstellung.

74 74 

75<Steps>75<Steps>

76 <Step title="Aktivieren Sie die Einstellung">76 <Step title="Aktivieren Sie die Einstellung">


88 claude88 claude

89 ```89 ```

90 90 

91 Die Agenten-Ansicht öffnet sich statt eines neuen Gesprächs.91 Die Agenten-Ansicht öffnet sich statt einer neuen Konversation.

92 </Step>92 </Step>

93</Steps>93</Steps>

94 94 

95Um eine reguläre Sitzung zu starten, während die Einstellung aktiviert ist, übergeben Sie eine Eingabeaufforderung: `claude "fix the login test"`. Um die Einstellung auszuschalten, führen Sie `/config defaultToAgentsView=false` in einer regulären Sitzung oder in einer aus, an die Sie sich aus der Agenten-Ansicht anhängen.95Um eine reguläre Sitzung zu starten, während die Einstellung aktiviert ist, übergeben Sie einen Prompt: `claude "fix the login test"`. Um die Einstellung auszuschalten, führen Sie `/config defaultToAgentsView=false` in einer regulären Sitzung oder in einer Sitzung aus, an die Sie sich aus der Agenten-Ansicht anhängen.

96 96 

97<h2 id="monitor-sessions-with-agent-view">97<h2 id="monitor-sessions-with-agent-view">

98 Sitzungen mit Agent-Ansicht überwachen98 Sitzungen mit Agent-Ansicht überwachen


290 290 

291Die Zeile, von der aus Sie `←` gedrückt haben, behält auch einen fetten, nicht gedimmten Namen, nachdem Sie die Auswahl mit den Pfeiltasten oder der Maus verschieben, sodass Sie sehen können, von welcher Sitzung Sie gekommen sind.291Die Zeile, von der aus Sie `←` gedrückt haben, behält auch einen fetten, nicht gedimmten Namen, nachdem Sie die Auswahl mit den Pfeiltasten oder der Maus verschieben, sodass Sie sehen können, von welcher Sitzung Sie gekommen sind.

292 292 

293Wenn ein Tool läuft, während Sie `←` drücken, wartet Claude Code, bis es fertig ist, bevor es in den Hintergrund verschiebt, und Claude setzt die Antwort in der Hintergrund-Sitzung fort. Drücken Sie `←` erneut, um sofort in den Hintergrund zu verschieben, anstatt zu warten. Wenn laufende Arbeit nicht in die Hintergrund-Sitzung übertragen werden kann, zeigt Claude Code zuerst den `Background this session?`-Dialog, genau wie bei [`/background`](#from-inside-a-session).293Wenn ein Tool läuft, während Sie `←` drücken, wartet Claude Code, bis es fertig ist, bevor es in den Hintergrund verschiebt, und Claude setzt die Antwort in der Hintergrund-Sitzung fort. Drücken Sie `←` erneut, um sofort in den Hintergrund zu verschieben, anstatt zu warten. Wenn laufende Hintergrundarbeit nicht in die Hintergrund-Sitzung übertragen werden kann, zeigt Claude Code zuerst den `Background this session?`-Dialog, genau wie bei [`/background`](#from-inside-a-session).

294 294 

295Nach etwa zehn Sekunden verschiebt Claude Code die Sitzung in den Hintergrund, ohne länger zu warten, außer in Fällen wie diesen:295Nach etwa zehn Sekunden verschiebt Claude Code die Sitzung in den Hintergrund, ohne länger zu warten, außer in Fällen wie diesen:

296 296 

Details

219 Anmeldedaten-Caching und Auflösungs-Timeout219 Anmeldedaten-Caching und Auflösungs-Timeout

220</h4>220</h4>

221 221 

222Claude Code löst die AWS-Standard-Anmeldedatenkette einmal auf und behält die aufgelösten Anmeldedaten im Speicher. Es verwendet sie erneut, bis fünf Minuten vor ihrem Ablauf, oder für eine Stunde, wenn sie kein Ablaufdatum haben, sodass ein SSO-gestütztes Profil etwa einmal pro Anmeldedaten-Lebensdauer Anmeldedaten von IAM Identity Center anfordert. Ein Anmeldedatenfehler von der API löscht den Cache, und der Wiederholungsversuch löst neue Anmeldedaten auf. Erfordert Claude Code v2.1.207 oder später.222Claude Code löst die AWS-Standard-Anmeldedatenkette einmal auf und behält die aufgelösten Anmeldedaten im Speicher. Es verwendet sie erneut, bis fünf Minuten vor ihrem Ablauf, oder für eine Stunde, wenn sie kein Ablaufdatum haben, sodass ein SSO-gestütztes Profil etwa einmal pro Anmeldedaten-Lebensdauer Anmeldedaten von IAM Identity Center anfordert. Ein Anmeldedatenfehler von der API löscht den Cache, und der Wiederholungsversuch löst neue Anmeldedaten auf.

223 223 

224Der Cache deckt alle am Anfang dieses Schritts aufgeführten Anmeldedatenmethoden ab, außer einem Amazon Bedrock API-Schlüssel, der die Anbieterkette nicht verwendet. Um die Kette bei jeder Anfrage aufzulösen, setzen Sie stattdessen [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/de/env-vars).224Der Cache deckt alle am Anfang dieses Schritts aufgeführten Anmeldedatenmethoden ab, außer einem Amazon Bedrock API-Schlüssel, der die Anbieterkette nicht verwendet. Um die Kette bei jeder Anfrage aufzulösen, setzen Sie stattdessen [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/de/env-vars).

225 225 


276 276 

277`Expiration` ist optional. Wenn der Befehl ein gültiges ISO 8601-`Expiration` zurückgibt, speichert Claude Code die Anmeldedaten im Cache, bis fünf Minuten vor dieser Zeit. Ohne es werden Anmeldedaten für eine Stunde zwischengespeichert.277`Expiration` ist optional. Wenn der Befehl ein gültiges ISO 8601-`Expiration` zurückgibt, speichert Claude Code die Anmeldedaten im Cache, bis fünf Minuten vor dieser Zeit. Ohne es werden Anmeldedaten für eine Stunde zwischengespeichert.

278 278 

279Wenn Sie `awsCredentialExport` ohne `awsAuthRefresh` konfigurieren, verwendet Claude Code die exportierten Anmeldedaten direkt und löst die AWS-Standard-Anmeldedatenkette beim Startup nicht erneut auf. Erfordert Claude Code v2.1.206 oder später.279Wenn Sie `awsCredentialExport` ohne `awsAuthRefresh` konfigurieren, verwendet Claude Code die exportierten Anmeldedaten direkt und löst die AWS-Standard-Anmeldedatenkette beim Startup nicht erneut auf.

280 280 

281<h3 id="3-configure-claude-code">281<h3 id="3-configure-claude-code">

282 3. Claude Code konfigurieren282 3. Claude Code konfigurieren


358* Um Haiku für Hintergrundaufgaben zu verwenden, setzen Sie `ANTHROPIC_DEFAULT_HAIKU_MODEL` auf eine Modell-ID, die in Ihrem Konto verfügbar ist.358* Um Haiku für Hintergrundaufgaben zu verwenden, setzen Sie `ANTHROPIC_DEFAULT_HAIKU_MODEL` auf eine Modell-ID, die in Ihrem Konto verfügbar ist.

359 359 

360<Warning>360<Warning>

361 Opus-Modelle haben einen höheren Pro-Token-Preis als Sonnet-Modelle, daher wird eine Bereitstellung, die kein primäres Modell anheftet, ab v2.1.207 oder später zum Opus-Satz abgerechnet. Um Sonnet 4.5 als primäres Modell beizubehalten, setzen Sie `ANTHROPIC_MODEL` auf seine vollständige Modell-ID. Eine Bereitstellung, die den Standard mit `ANTHROPIC_DEFAULT_SONNET_MODEL` steuert und `ANTHROPIC_DEFAULT_OPUS_MODEL` nicht setzt, behält ihr gesteuertes Sonnet-Modell als Standard.361 Opus-Modelle haben einen höheren Pro-Token-Preis als Sonnet-Modelle. Wenn Sie kein primäres Modell anheften, wird Ihnen daher der Opus-Satz berechnet. Um Sonnet 4.5 als primäres Modell zu verwenden, setzen Sie `ANTHROPIC_MODEL` auf seine vollständige Modell-ID. Eine Bereitstellung, die den Standard mit `ANTHROPIC_DEFAULT_SONNET_MODEL` steuert und `ANTHROPIC_DEFAULT_OPUS_MODEL` nicht setzt, behält ihr gesteuertes Sonnet-Modell als Standard.

362</Warning>362</Warning>

363 363 

364Vor v2.1.280 war das primäre Modell auf Amazon Bedrock standardmäßig Opus 5 und der `opus`-Alias wurde zu Opus 5 ab v2.1.219 aufgelöst. In v2.1.207 bis v2.1.218 war das primäre Modell auf Amazon Bedrock standardmäßig Opus 4.8 und der `opus`-Alias wurde zu Opus 4.8 aufgelöst. Vor v2.1.207 war das primäre Modell standardmäßig Sonnet 4.5, der `opus`-Alias wurde zu Opus 4.6 aufgelöst, und Hintergrundaufgaben verwendeten immer das primäre Modell.364Vor v2.1.280 war das primäre Modell auf Amazon Bedrock standardmäßig Opus 5 und der `opus`-Alias wurde zu Opus 5 ab v2.1.219 aufgelöst. In v2.1.207 bis v2.1.218 war das primäre Modell auf Amazon Bedrock standardmäßig Opus 4.8 und der `opus`-Alias wurde zu Opus 4.8 aufgelöst.

365 365 

366Um Modelle weiter anzupassen, verwenden Sie eine dieser Methoden:366Um Modelle weiter anzupassen, verwenden Sie eine dieser Methoden:

367 367 

artifacts.md +1 −1

Details

188 188 

189Ihr [Berechtigungsmodus](/docs/de/permission-modes) entscheidet, was Claude tut, wenn ein gesendeter Kommentar ankommt:189Ihr [Berechtigungsmodus](/docs/de/permission-modes) entscheidet, was Claude tut, wenn ein gesendeter Kommentar ankommt:

190 190 

191* **Claude antwortet von selbst**: Wenn Ihr Berechtigungsmodus Claude ermöglicht, die Antwort zu posten, ohne Sie zu fragen, liest Claude den Thread und antwortet, und bearbeitet das Artefakt, wenn der Kommentar eine Änderung verlangt. Sie sehen `Auto-replied to comment thread on Artifact: <name>` oder `Auto-edited Artifact: <name> in response to a comment thread`.191* **Claude antwortet von selbst**: Wenn Sie sich in einem Berechtigungsmodus befinden, der Claude ermöglicht, die Antwort zu posten, ohne Sie zu fragen, liest Claude den Thread und antwortet. Sie sehen `Auto-replied to comment thread on Artifact: <name>`.

192* **Claude wartet auf Sie**: Außerhalb des Plan-Modus, wenn das Posten der Antwort Ihre Genehmigung benötigen würde, sehen Sie `Comments are waiting on Artifact: <name>`. Claude fragt Sie dann um Genehmigung, um den Thread zu lesen, und erneut, um die Antwort zu posten.192* **Claude wartet auf Sie**: Außerhalb des Plan-Modus, wenn das Posten der Antwort Ihre Genehmigung benötigen würde, sehen Sie `Comments are waiting on Artifact: <name>`. Claude fragt Sie dann um Genehmigung, um den Thread zu lesen, und erneut, um die Antwort zu posten.

193* **Claude pausiert im Plan-Modus**: Sie sehen `Comments are waiting on Artifact: <name>`, und Claude antwortet nicht, bis Sie den Plan-Modus verlassen und es bitten, zu lesen und zu antworten.193* **Claude pausiert im Plan-Modus**: Sie sehen `Comments are waiting on Artifact: <name>`, und Claude antwortet nicht, bis Sie den Plan-Modus verlassen und es bitten, zu lesen und zu antworten.

194 194 

chrome.md +1 −1

Details

123 Verwalten Sie Website-Berechtigungen123 Verwalten Sie Website-Berechtigungen

124</h3>124</h3>

125 125 

126Website-Berechtigungen werden von der Chrome-Erweiterung geerbt. Verwalten Sie Berechtigungen in den Einstellungen der Chrome-Erweiterung, um zu steuern, welche Websites Claude durchsuchen, anklicken und eingeben kann. Im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) überspringt die Erweiterung ihre eigene Pro-Website-Überprüfung für diesen Aufruf, wenn der Auto-Modus-Klassifizierer selbst einen Browser-Aufruf an eine Website genehmigt, es sei denn, Ihre Berechtigungsregeln verweigern jede Website für Claude in Chrome.126Website-Berechtigungen werden von der Chrome-Erweiterung geerbt. Verwalten Sie Berechtigungen in den Einstellungen der Chrome-Erweiterung, um zu steuern, welche Websites Claude durchsuchen, anklicken und eingeben kann. Im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) überspringt die Erweiterung ihre eigene Pro-Website-Überprüfung für diesen Aufruf, wenn der Auto-Modus-Klassifikator selbst einen Browser-Aufruf an eine Website genehmigt, es sei denn, Ihre Berechtigungsregeln verweigern jede Website für Claude in Chrome.

127 127 

128<h3 id="permission-prompts-in-vs-code-sessions">128<h3 id="permission-prompts-in-vs-code-sessions">

129 Berechtigungsabfragen in VS Code-Sitzungen129 Berechtigungsabfragen in VS Code-Sitzungen

Details

1074 1074 

1075Die [Telemetrie](#telemetry)-Konfiguration des Gateways pusht `OTEL_EXPORTER_OTLP_ENDPOINT`, sodass das Setzen von `telemetry.forward_to` den Dialog auf jedem interaktiven Client auslöst. Der Dialog schützt die Maschine des Entwicklers vor einem kompromittierten oder feindseligen Gateway, nicht die Organisation vor dem Entwickler.1075Die [Telemetrie](#telemetry)-Konfiguration des Gateways pusht `OTEL_EXPORTER_OTLP_ENDPOINT`, sodass das Setzen von `telemetry.forward_to` den Dialog auf jedem interaktiven Client auslöst. Der Dialog schützt die Maschine des Entwicklers vor einem kompromittierten oder feindseligen Gateway, nicht die Organisation vor dem Entwickler.

1076 1076 

1077Eine [nicht interaktive Ausführung](/docs/de/server-managed-settings#security-approval-dialogs) wie `claude -p`, eine Agent-SDK-Sitzung oder eine Sitzung im Code-Tab von Claude Desktop kann den Dialog nicht anzeigen. Sie wendet die übertragenen Einstellungen nur für diese Ausführung an und speichert sie nicht als genehmigt, sodass die nächste interaktive Sitzung des Entwicklers den Dialog weiterhin anzeigt. Vor v2.1.207 speicherte eine nicht interaktive Ausführung die Einstellungen als genehmigt, und keine spätere interaktive Sitzung zeigte den Dialog dafür an.1077Ein [nicht interaktiver Lauf](/docs/de/server-managed-settings#security-approval-dialogs), etwa `claude -p`, eine Agent-SDK-Sitzung oder eine Sitzung im Code-Tab von Claude Desktop, kann den Dialog nicht anzeigen. Er wendet die übertragenen Einstellungen nur für diesen Lauf an und speichert sie nicht als genehmigt, sodass die nächste interaktive Sitzung des Entwicklers den Dialog weiterhin anzeigt.

1078 1078 

1079Wenn ein Entwickler ablehnt, beendet Claude Code diese Sitzung, anstatt die Richtlinie anzuwenden. Wenn Sie einen neuen Hook oder eine beliebige Env-Variable, die den Dialog auslöst, an eine breite Richtlinie pushen, sieht daher jeder abgleichende Entwickler den Dialog in seinen interaktiven Sitzungen. Eine laufende interaktive Sitzung zeigt ihn bei der nächsten stündlichen Abfrage an, andernfalls erscheint er beim nächsten interaktiven Start des Entwicklers.1079Wenn ein Entwickler ablehnt, beendet Claude Code diese Sitzung, anstatt die Richtlinie anzuwenden. Wenn Sie einen neuen Hook oder eine beliebige Env-Variable, die den Dialog auslöst, an eine breite Richtlinie pushen, sieht daher jeder abgleichende Entwickler den Dialog in seinen interaktiven Sitzungen. Eine laufende interaktive Sitzung zeigt ihn bei der nächsten stündlichen Abfrage an, andernfalls erscheint er beim nächsten interaktiven Start des Entwicklers.

1080 1080 

Details

298 298 

299Cloud-Sitzungen unterstützen [integrierte Befehle](/docs/de/commands), die Textausgabe erzeugen. Befehle, die nur in der Terminal-Schnittstelle ausgeführt werden, wie `/plugin` oder `/resume`, sind nicht verfügbar. Befehle, die eine Auswahl oder ein Panel in der Terminal-Schnittstelle öffnen, verhalten sich in Cloud-Sitzungen unterschiedlich:299Cloud-Sitzungen unterstützen [integrierte Befehle](/docs/de/commands), die Textausgabe erzeugen. Befehle, die nur in der Terminal-Schnittstelle ausgeführt werden, wie `/plugin` oder `/resume`, sind nicht verfügbar. Befehle, die eine Auswahl oder ein Panel in der Terminal-Schnittstelle öffnen, verhalten sich in Cloud-Sitzungen unterschiedlich:

300 300 

301* **`/model`, `/effort`, `/color` und `/rename`**: Übergeben Sie den Wert als Argument, zum Beispiel `/model sonnet`, anstatt die Terminal-Auswahl oder den Schieberegler zu öffnen. Die Argumentformen erfordern Claude Code v2.1.205 oder später in der Umgebung der Sitzung und folgen den [Verfügbarkeitshinweisen](/docs/de/commands#all-commands) jedes Befehls.301* **`/model`, `/effort`, `/color` und `/rename`**: Übergeben Sie den Wert als Argument, zum Beispiel `/model sonnet`, anstatt die Terminal-Auswahl oder den Schieberegler zu öffnen. Die Argumentformen folgen den [Verfügbarkeitshinweisen](/docs/de/commands#all-commands) jedes Befehls.

302* **`/fast`**: schaltet den [Fast-Modus](/docs/de/fast-mode#use-fast-mode-in-cloud-sessions) für die Sitzung um, wenn Fast-Modus [auf Ihrem Konto verfügbar ist](/docs/de/fast-mode#requirements). Erfordert Claude Code v2.1.271 oder später in der Umgebung der Sitzung.302* **`/fast`**: schaltet den [Fast-Modus](/docs/de/fast-mode#use-fast-mode-in-cloud-sessions) für die Sitzung um, wenn Fast-Modus [auf Ihrem Konto verfügbar ist](/docs/de/fast-mode#requirements). Erfordert Claude Code v2.1.271 oder später in der Umgebung der Sitzung.

303* **`/config`**: In Ihrem Browser unter claude.ai/code öffnet dies den Claude Code-Bereich Ihrer Einstellungen, anstatt einen Wert zu setzen, und Text nach dem Befehl, einschließlich `key=value`, wird ignoriert. Um eine Einstellung für eine Cloud-Sitzung zu ändern, legen Sie eine [Umgebungsvariable](/docs/de/cloud-environments#set-environment-variables) in der Umgebung fest, oder committen Sie in einer Sitzung mit einem Repository den Schlüssel in die `.claude/settings.json` dieses Repositorys. [Einstellungen in Cloud-Sitzungen](/docs/de/settings#settings-in-cloud-sessions) listet auf, was jede Sitzung liest.303* **`/config`**: In Ihrem Browser unter claude.ai/code öffnet dies den Claude Code-Bereich Ihrer Einstellungen, anstatt einen Wert zu setzen, und Text nach dem Befehl, einschließlich `key=value`, wird ignoriert. Um eine Einstellung für eine Cloud-Sitzung zu ändern, legen Sie eine [Umgebungsvariable](/docs/de/cloud-environments#set-environment-variables) in der Umgebung fest, oder committen Sie in einer Sitzung mit einem Repository den Schlüssel in die `.claude/settings.json` dieses Repositorys. [Einstellungen in Cloud-Sitzungen](/docs/de/settings#settings-in-cloud-sessions) listet auf, was jede Sitzung liest.

304 304 


420* **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 ist420* **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

421* <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.421* <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.

422* **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)422* **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)

423* **Netzwerk-Secrets**: 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-network-secrets), auf die gleiche Weise außerhalb der Sandbox und werden an übereinstimmende Anfragen angehängt, nachdem diese die Sitzung verlassen haben. Eine selbstgehostete Umgebung hat keine Netzwerk-Secrets, und Team- und Enterprise-Pläne haben sie noch nicht423* **Netzwerk-Secrets**: In von Anthropic gehosteten Umgebungen bleiben Schlüssel, die Sie [zu einer Cloud-Umgebung hinzufügen](/docs/de/cloud-environments#add-network-secrets), auf die gleiche Weise außerhalb der Sandbox und werden an übereinstimmende Anfragen angehängt, nachdem diese die Sitzung verlassen haben. Eine selbstgehostete Umgebung hat keine Netzwerk-Secrets

424* **Sichere Analyse**: Code wird in der isolierten Umgebung der Sitzung analysiert und geändert, bevor PRs erstellt werden424* **Sichere Analyse**: Code wird in der isolierten Umgebung der Sitzung analysiert und geändert, bevor PRs erstellt werden

425 425 

426<h2 id="troubleshooting">426<h2 id="troubleshooting">


472| Meldung | Bedeutung |472| Meldung | Bedeutung |

473| - | - |473| - | - |

474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code ist für einen Drittanbieter konfiguriert. Die Meldung benennt den Anbieter mit der Bezeichnung, die Ihre Konfiguration verwendet, etwa `Amazon Bedrock` oder `Google Vertex AI`. Entfernen Sie die Konfiguration dieses Anbieters, zum Beispiel indem Sie `CLAUDE_CODE_USE_BEDROCK` zurücksetzen, und melden Sie sich mit einem Anthropic-Konto an (`claude auth login`). |474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code ist für einen Drittanbieter konfiguriert. Die Meldung benennt den Anbieter mit der Bezeichnung, die Ihre Konfiguration verwendet, etwa `Amazon Bedrock` oder `Google Vertex AI`. Entfernen Sie die Konfiguration dieses Anbieters, zum Beispiel indem Sie `CLAUDE_CODE_USE_BEDROCK` zurücksetzen, und melden Sie sich mit einem Anthropic-Konto an (`claude auth login`). |

475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | Die Organisationsrichtlinie `allow_remote_sessions` ist deaktiviert. |475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | Die Organisationsrichtlinie `allow_remote_sessions` ist deaktiviert; siehe [Cloud sessions are disabled by your organization's policy](/docs/de/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Wenn die Meldung stattdessen Anmeldedaten benennt, die diese Sitzung verwendet, siehe [Cloud-Sitzungen verwenden Ihre claude.ai-Anmeldung](/docs/de/errors#cloud-sessions-use-your-claude-ai-login). |

476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code konnte die Richtlinie Ihrer Organisation nicht abrufen und verweigert daher das Senden, anstatt anzunehmen, dass Cloud-Sitzungen erlaubt sind. Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es erneut. |476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code hat das Laden der Richtlinie Ihrer Organisation noch nicht abgeschlossen und verweigert daher das Senden, anstatt anzunehmen, dass Cloud-Sitzungen erlaubt sind. Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es erneut. |

477| `Cloud sessions aren't available:` gefolgt von einer Ursache | Das Laden der Richtlinie Ihrer Organisation ist fehlgeschlagen, und der Rest der Meldung gibt an, wie. Handeln Sie entsprechend der genannten Ursache; siehe [Couldn't verify your organization's policy for cloud sessions](/docs/de/errors#couldnt-verify-your-organizations-policy-for-cloud-sessions). |

477| `Attaching to an existing cloud session is not enabled for your account.` | Sie haben `--cloud <session-id>` ohne `-p` ausgeführt. Senden Sie die Nachricht mit `claude -p "your message" --cloud <session-id>`. |478| `Attaching to an existing cloud session is not enabled for your account.` | Sie haben `--cloud <session-id>` ohne `-p` ausgeführt. Senden Sie die Nachricht mit `claude -p "your message" --cloud <session-id>`. |

478| `Session not found: <id>` | Die ID oder URL stimmt mit keiner Sitzung überein, auf die Sie zugreifen können. Gleichen Sie sie mit der claude.ai/code-URL der Sitzung ab. |479| `Session not found: <id>` | Die ID oder URL stimmt mit keiner Sitzung überein, auf die Sie zugreifen können. Gleichen Sie sie mit der claude.ai/code-URL der Sitzung ab. |

479| `cloud session <id> is archived and cannot accept new messages` | Die Sitzung wurde archiviert. Starten Sie stattdessen eine neue Sitzung. |480| `cloud session <id> is archived and cannot accept new messages` | Die Sitzung wurde archiviert. Starten Sie stattdessen eine neue Sitzung. |

Details

1525| - | - | - |1525| - | - | - |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill-Frontmatter](/docs/de/skills#frontmatter-reference) |1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill-Frontmatter](/docs/de/skills#frontmatter-reference) |

1527| `commands/*.md` | Die Skill-Felder außer `name` und `paths` | [Skill-Frontmatter](/docs/de/skills#frontmatter-reference) |1527| `commands/*.md` | Die Skill-Felder außer `name` und `paths` | [Skill-Frontmatter](/docs/de/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagenten-Frontmatter](/docs/de/sub-agents#supported-frontmatter-fields) |1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `autoCompactWindow`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagenten-Frontmatter](/docs/de/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Ausgabestil-Frontmatter](/docs/de/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Ausgabestil-Frontmatter](/docs/de/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Regel-Frontmatter](/docs/de/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Regel-Frontmatter](/docs/de/memory#rules-frontmatter-reference) |

1531 1531 

Details

291 291 

292Claude Platform on AWS verwendet die gleichen Modell-IDs wie die direkte Claude API.292Claude Platform on AWS verwendet die gleichen Modell-IDs wie die direkte Claude API.

293 293 

294Die Standard-Aliase `fable`, `opus`, `sonnet` und `haiku` werden zu Claude Codes integrierten Standardwerten für Claude Platform on AWS aufgelöst, die hinter der neuesten Version zurückbleiben können. Ohne `ANTHROPIC_DEFAULT_OPUS_MODEL` wird der `opus`-Alias zu Opus 5.5 aufgelöst. Vor v2.1.280 wurde er zu Opus 5 ab v2.1.219 aufgelöst, zu Opus 4.8 ab v2.1.207, und zu Opus 4.7 davor.294Die Standard-Aliase `fable`, `opus`, `sonnet` und `haiku` werden zu Claude Codes integrierten Standardwerten für Claude Platform on AWS aufgelöst, die hinter der neuesten Version zurückbleiben können. Ohne `ANTHROPIC_DEFAULT_OPUS_MODEL` wird der `opus`-Alias zu Opus 5.5 aufgelöst. Vor v2.1.280 wurde er zu Opus 5 ab v2.1.219 und zu Opus 4.8 ab v2.1.207 aufgelöst.

295 295 

296Wenn Sie Claude Code für ein Team bereitstellen, heften Sie die Modell-IDs explizit an, damit eine neue Version nicht alle auf einmal verschiebt:296Wenn Sie Claude Code für ein Team bereitstellen, heften Sie die Modell-IDs explizit an, damit eine neue Version nicht alle auf einmal verschiebt:

297 297 

Details

414 414 

415* Skills, Subagenten und Befehle: Committen Sie sie in ein Repository, das Sie zum Projekt hinzugefügt haben, zum Beispiel einen Skill unter `.claude/skills/<skill-name>/SKILL.md`. Jeder Cloud-Thread klont jedes Repository im Projekt und lädt `.claude/skills/`, `.claude/agents/` und `.claude/commands/` aus jedem davon, also ist ein Skill, der in ein Repository committet wird, in jedem Cloud-Thread verfügbar. Cloud-Threads laden auch die [Skills, die Sie für Ihr claude.ai-Konto aktivieren](/docs/de/skills#skills-in-cowork-and-cloud-sessions).415* Skills, Subagenten und Befehle: Committen Sie sie in ein Repository, das Sie zum Projekt hinzugefügt haben, zum Beispiel einen Skill unter `.claude/skills/<skill-name>/SKILL.md`. Jeder Cloud-Thread klont jedes Repository im Projekt und lädt `.claude/skills/`, `.claude/agents/` und `.claude/commands/` aus jedem davon, also ist ein Skill, der in ein Repository committet wird, in jedem Cloud-Thread verfügbar. Cloud-Threads laden auch die [Skills, die Sie für Ihr claude.ai-Konto aktivieren](/docs/de/skills#skills-in-cowork-and-cloud-sessions).

416* Plugins: Fügen Sie sie in **Projekteinstellungen > Plugins** hinzu; sie werden in jeden neuen Cloud-Thread geladen. Plugins, die ein Repository in seiner `.claude/settings.json` deklariert, [werden nicht in Cloud-Threads geladen](/docs/de/cloud-environments#what-carries-over-from-your-setup).416* Plugins: Fügen Sie sie in **Projekteinstellungen > Plugins** hinzu; sie werden in jeden neuen Cloud-Thread geladen. Plugins, die ein Repository in seiner `.claude/settings.json` deklariert, [werden nicht in Cloud-Threads geladen](/docs/de/cloud-environments#what-carries-over-from-your-setup).

417* MCP-Server: Cloud-Threads erhalten ihre MCP-Tools von den Konnektoren in Ihrem claude.ai-Konto, also MCP-Servern, die Sie einmal unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors) oder über den Link **Konnektoren verwalten** in **Projekteinstellungen > Umgebung** verbinden. Jeder Cloud-Thread kann alle ohne projektspezifische Einrichtung verwenden. Die Projektkonversation selbst hat keine Konnektoren, also senden Sie Arbeit, die einen benötigt, als Aufgabe für einen Cloud-Thread. In einem Projekt mit einem Repository laden Cloud-Threads auch MCP-Server aus der [`.mcp.json`](/docs/de/cloud-environments#what-carries-over-from-your-setup) dieses Repositorys. [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) listet die Regeln für Cloud-Sitzungen und die Einstellungen auf, die Konnektoren ausschalten.417* MCP-Server: Cloud-Threads erhalten ihre MCP-Tools von den Konnektoren in Ihrem claude.ai-Konto, also MCP-Servern, die Sie einmal unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors) verbinden. Jeder Cloud-Thread kann alle ohne projektspezifische Einrichtung verwenden. Die Projektkonversation selbst hat keine Konnektoren, also senden Sie Arbeit, die einen benötigt, als Aufgabe für einen Cloud-Thread. In einem Projekt mit einem Repository laden Cloud-Threads auch MCP-Server aus der [`.mcp.json`](/docs/de/cloud-environments#what-carries-over-from-your-setup) dieses Repositorys. [Wie Konnektoren Claude Code erreichen](/docs/de/mcp#how-connectors-reach-claude-code) listet die Regeln für Cloud-Sitzungen und die Einstellungen auf, die Konnektoren ausschalten.

418* Befehlszeilen-Tools und Pakete: Installieren Sie sie im [Setup-Skript](/docs/de/cloud-environments#setup-scripts) der Umgebung.418* Befehlszeilen-Tools und Pakete: Installieren Sie sie im [Setup-Skript](/docs/de/cloud-environments#setup-scripts) der Umgebung.

419 419 

420Um zu sehen, welche Konnektoren ein laufender Cloud-Thread unter claude.ai/code hat, öffnen Sie den Thread und wählen Sie **Connectors** aus dem Menü **+** neben seinem Nachrichtenfeld. Das Ausschalten eines Konnektors dort entfernt ihn aus diesem Thread und speichert das als Ihren Kontostandard, sodass neue Threads und claude.ai-Chats ohne ihn starten, bis Sie ihn wieder einschalten. Ein Cloud-Thread übernimmt einen Konnektor, den Sie hinzufügen oder erneut verbinden, nach der nächsten Nachricht, die Sie ihm senden.420Um zu sehen, welche Konnektoren ein laufender Cloud-Thread unter claude.ai/code hat, öffnen Sie den Thread und wählen Sie **Connectors** aus dem Menü **+** neben seinem Nachrichtenfeld. Das Ausschalten eines Konnektors dort entfernt ihn aus diesem Thread und speichert das als Ihren Kontostandard, sodass neue Threads und claude.ai-Chats ohne ihn starten, bis Sie ihn wieder einschalten. Ein Cloud-Thread übernimmt einen Konnektor, den Sie hinzufügen oder erneut verbinden, nach der nächsten Nachricht, die Sie ihm senden.


435| Projektanweisungen | Memory | [Stehende Regeln](#give-a-project-standing-context), die jeder neue Thread erhält |435| Projektanweisungen | Memory | [Stehende Regeln](#give-a-project-standing-context), die jeder neue Thread erhält |

436| Projekt-Repositories | Umgebung | Die Repositories, die neue Cloud-Threads klonen |436| Projekt-Repositories | Umgebung | Die Repositories, die neue Cloud-Threads klonen |

437| Cloud-Umgebung | Umgebung | Die [Cloud-Umgebung](#choose-an-environment-for-threads), in der neue Cloud-Threads ausgeführt werden |437| Cloud-Umgebung | Umgebung | Die [Cloud-Umgebung](#choose-an-environment-for-threads), in der neue Cloud-Threads ausgeführt werden |

438| Connectors | Umgebung | Ein Link zum Verwalten der claude.ai-Connectors, die Cloud-Threads erhalten |

439| Plugins | Plugins | Die Plugins, die in jeden neuen Cloud-Thread geladen werden |438| Plugins | Plugins | Die Plugins, die in jeden neuen Cloud-Thread geladen werden |

440| Nutzung | Nutzung | [Token-Nutzung](#usage-and-cost) nach Thread und nach Modell |439| Nutzung | Nutzung | [Token-Nutzung](#usage-and-cost) nach Thread und nach Modell |

441| Memory | Memory | Die [Memory-Dateien](#give-a-project-standing-context) des Projekts |440| Memory | Memory | Die [Memory-Dateien](#give-a-project-standing-context) des Projekts |

Details

10 Cloud-Umgebungen gelten für [Cloud-Sitzungen](/docs/de/claude-code-on-the-web), die auf Pro-, Max- und Team-Plänen verfügbar sind, 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).10 Cloud-Umgebungen gelten für [Cloud-Sitzungen](/docs/de/claude-code-on-the-web), die auf Pro-, Max- und Team-Plänen verfügbar sind, 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).

11</Note>11</Note>

12 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 [Netzwerk-Secrets](#add-network-secrets) speichert, die Sitzungen verwenden, ohne sie zu sehen, und ein [Setup-Skript](#setup-scripts) ausführt, bevor Claude mit der Arbeit beginnt.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, [Netzwerk-Secrets](#add-network-secrets) speichert, die Sitzungen verwenden, ohne sie zu sehen, und ein [Setup-Skript](#setup-scripts) ausführt, bevor Claude mit der Arbeit beginnt.

14 14 

15Die gleichen Umgebungen gelten überall dort, wo Sie eine Cloud-Sitzung starten: die [Desktop-App](/docs/de/desktop), die [Claude Mobile-App](/docs/de/mobile), Ihr Browser unter [claude.ai/code](https://claude.ai/code), das Terminal mit [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-cloud), [Routinen](/docs/de/routines) und [Claude Tag](https://claude.com/docs/claude-tag/overview). 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.15Die gleichen Umgebungen gelten überall dort, wo Sie eine Cloud-Sitzung starten: die [Desktop-App](/docs/de/desktop), die [Claude Mobile-App](/docs/de/mobile), Ihr Browser unter [claude.ai/code](https://claude.ai/code), das Terminal mit [`claude --cloud`](/docs/de/claude-code-on-the-web#from-terminal-to-cloud), [Routinen](/docs/de/routines) und [Claude Tag](https://claude.com/docs/claude-tag/overview). 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 16 


44 Konfigurieren Sie Ihre Umgebung44 Konfigurieren Sie Ihre Umgebung

45</h2>45</h2>

46 46 

47Erstellen, bearbeiten und archivieren Sie Umgebungen über den Umgebungswähler, den Sie unter [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 Owner erstellt wurden, erscheinen im selben Wähler. Siehe [Installierte Tools](#installed-tools) für das, was ohne Konfiguration verfügbar ist.47Fügen Sie Umgebungen über den Umgebungswähler unter dem Nachrichtenfeld auf dem Bildschirm hinzu, auf dem Sie unter [claude.ai/code](https://claude.ai/code) eine neue Sitzung starten, und bearbeiten und archivieren Sie sie dort. Um diesen Bildschirm zu erreichen, schließen Sie das [Web-Onboarding](/docs/de/web-quickstart) ab. Informationen zur Desktop-App finden Sie unter [Cloud-Sitzungen](/docs/de/desktop#cloud-sessions). Umgebungen, die Sie erstellen, sind persönlich für Ihr Konto; [gemeinsame Umgebungen](#organization-shared-environments), die von einem Owner erstellt wurden, erscheinen im selben Wähler. Siehe [Installierte Tools](#installed-tools) für das, was ohne Konfiguration verfügbar ist.

48 

49Der Wähler wird nur angezeigt, bis Sie die erste Nachricht einer neuen Sitzung senden. Um die Umgebung einer laufenden eigenen Cloud-Sitzung zu bearbeiten, wählen Sie oben das Caret-Symbol nach dem Sitzungstitel aus und wählen Sie dann **Umgebung bearbeiten**.

48 50 

49<Steps>51<Steps>

50 <Step title="Öffnen Sie den Umgebungswähler">52 <Step title="Öffnen Sie den Umgebungswähler">

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 den Wähler.53 Wählen Sie auf dem Bildschirm für neue Sitzungen das erste Steuerelement in der Zeile unter dem Nachrichtenfeld aus.

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="Der Umgebungswähler ist über dem Nachrichtenfeld auf claude.ai/code geöffnet. Die Cloud-Schaltfläche mit dem Umgebungsnamen Default befindet sich in der Zeile über dem Nachrichtenfeld. Das offene Menü zeigt eine Local-Zeile mit den Bezeichnungen Download und Desktop only, einen Cloud-Bereich, in dem die Default-Umgebung mit einem Häkchen ausgewählt ist und beim Hovern ein Einstellungszahnrad anzeigt, eine Option zum Hinzufügen einer Cloud-Umgebung und einen Remote Control-Bereich mit Setupanweisungen." width="1672" height="682" data-path="images/cloud-environment-selector.png" />

55 </Frame>

56 </Step>54 </Step>

57 55 

58 <Step title="Fügen Sie eine Umgebung hinzu oder bearbeiten Sie sie">56 <Step title="Fügen Sie eine Umgebung hinzu oder bearbeiten Sie sie">

59 Wählen Sie **Cloud** aus, um Ihre Umgebungen aufzulisten. Wählen Sie dann **Cloud-Umgebung hinzufügen**, oder bewegen Sie den Mauszeiger über eine vorhandene Umgebung und wählen Sie das Einstellungssymbol aus, das auf der rechten Seite angezeigt wird.57 * **Eine Umgebung hinzufügen**: Wählen Sie **Neue Umgebung** unten im Menü aus, um den Dialog **Neue Umgebung** zu öffnen. Füllen Sie das Formular aus und wählen Sie **Umgebung hinzufügen**. Ihre neue Sitzung verwendet dann die hinzugefügte Umgebung.

58 * **Eine Umgebung bearbeiten**: Suchen Sie ihre Zeile unter **Cloud**. Wenn **Cloud** eine einzelne Zeile ist, wählen Sie sie aus, um die Liste zu öffnen. Wenn Ihre Umgebung nicht unter **Cloud** aufgeführt ist, wählen Sie die Zeile **Mehr** unter dieser Überschrift aus. Bewegen Sie den Mauszeiger über die Zeile der Umgebung und wählen Sie das Einstellungssymbol aus, das auf der rechten Seite angezeigt wird, um ihren Dialog zu öffnen.

60 59 

61 Der Dialog enthält den Namen, die Netzwerkzugriffsstufe, Umgebungsvariablen und ein Setup-Skript. Wenn Sie eine vorhandene Cloud-Umgebung in einem Pro- oder Max-Plan bearbeiten, enthält der Dialog auch [Netzwerk-Secrets](#add-network-secrets).60 Der Dialog enthält den Namen, die Netzwerkzugriffsstufe, Umgebungsvariablen und das Setup-Skript. Informationen zum Speichern eines Schlüssels, den Sitzungen verwenden, ohne ihn zu sehen, finden Sie unter [Fügen Sie Netzwerk-Secrets hinzu](#add-network-secrets).

62 

63 <Frame>

64 <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 Neue Cloud-Umgebung. Ein Namensfeld mit dem Platzhalter Default, ein Netzwerkzugriff-Wähler auf Trusted eingestellt mit Links zur Netzwerkrichtlinie und Zugriffsstufen, ein Umgebungsvariablen-Feld mit .env-Format-Platzhaltertext und einem Hinweis, dass Werte für jeden sichtbar sind, der die Umgebung nutzt, ein Setup-Skript-Feld, das als Bash-Skript beschrieben wird, das ausgeführt wird, wenn eine neue Sitzung startet, bevor Claude Code startet, und Schaltflächen zum Abbrechen und Erstellen der Umgebung." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />

65 </Frame>

66 </Step>61 </Step>

67</Steps>62</Steps>

68 63 


91 86 

92Eine Cloud-Sitzung setzt auch einige Variablen selbst, wenn sie startet. Für [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/de/claude-code-on-the-web#manage-context) überschreibt der Wert, den die Sitzung setzt, einen, den Sie hier hinzufügen, daher hat das Hinzufügen dieses Schlüssels hier keine Auswirkung.87Eine Cloud-Sitzung setzt auch einige Variablen selbst, wenn sie startet. Für [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/de/claude-code-on-the-web#manage-context) überschreibt der Wert, den die Sitzung setzt, einen, den Sie hier hinzufügen, daher hat das Hinzufügen dieses Schlüssels hier keine Auswirkung.

93 88 

94Jeder, der die Umgebung nutzt, kann die Werte lesen. Verwenden Sie in Pro- und Max-Plänen stattdessen ein [Netzwerk-Secret](#add-network-secrets) für einen Schlüssel, den der Agent-Proxy an eine Anfrage anhängen kann. Die [Anfragen, die niemals ein Secret erhalten](#requests-that-never-get-the-credential), sind dort aufgelistet.89Jeder, der die Umgebung nutzt, kann die Werte lesen. Verwenden Sie in einer von Anthropic gehosteten Umgebung stattdessen ein [Netzwerk-Secret](#add-network-secrets) für einen Schlüssel, den der Agent-Proxy an eine Anfrage anhängen kann. Die [Anfragen, die niemals ein Secret erhalten](#requests-that-never-get-the-credential), sind dort aufgelistet.

95 90 

96<span id="add-api-credentials" />91<span id="add-api-credentials" />

97 92 


101 96 

102Ein Netzwerk-Secret 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 VM der Sitzung verlässt, sodass der Schlüssel selbst außerhalb der VM bleibt.97Ein Netzwerk-Secret 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 VM der Sitzung verlässt, sodass der Schlüssel selbst außerhalb der VM bleibt.

103 98 

104Netzwerk-Secrets sind in Pro- und Max-Plänen verfügbar. Sie sind in Team- oder Enterprise-Plänen noch nicht verfügbar, daher erscheint der Bereich **Netzwerk-Secrets** im Umgebungsdialog in diesen Plänen nicht.99Netzwerk-Secrets sind in Pro-, Max-, Team- und Enterprise-Plänen verfügbar. Ob Sie selbst eines hinzufügen können, erfahren Sie unter [Anforderungen](#requirements).

105 100 

106<h4 id="requirements">101<h4 id="requirements">

107 Anforderungen102 Anforderungen


109 104 

110Diese Anforderungen entscheiden, ob Sie ein Secret hinzufügen können und ob der Agent-Proxy es nach dem Hinzufügen verwenden kann:105Diese Anforderungen entscheiden, ob Sie ein Secret hinzufügen können und ob der Agent-Proxy es nach dem Hinzufügen verwenden kann:

111 106 

112* **Rolle**: eine Organisationsadministrator-Rolle in Ihrer claude.ai-Organisation107* **Rolle**: In Pro-, Max- und Team-Plänen können Sie unabhängig von Ihrer Rolle Secrets in Ihren eigenen Umgebungen hinzufügen und löschen. In Team und Enterprise haben Owner eine Organisationsadministrator-Rolle in Ihrer claude.ai-Organisation, Admins nicht, was in diesen Fällen ändert, was Sie sehen:

113 * In Team und Enterprise haben Owner diese Rolle, Admins nicht108 * **Ihre eigene Umgebung in Enterprise**: Mit einer Organisationsadministrator-Rolle fügen Sie Secrets hinzu und löschen sie. Ohne diese Rolle listet der Bereich **Netzwerk-Secrets** die Secrets unter dem Hinweis „Nur ein Organisationsadministrator kann Netzwerk-Secrets hinzufügen oder löschen“ auf, ohne Schaltfläche **Secret hinzufügen** oder Löschen. Bitten Sie einen Owner, das Secret zu einer [gemeinsamen Umgebung](#organization-shared-environments) hinzuzufügen, und führen Sie Ihre Sitzungen dann dort aus

114 * In Pro und Max halten Sie sie in Ihrer eigenen Organisation109 * **Eine gemeinsame Umgebung**: Owner [fügen ihre Secrets hinzu und löschen sie](#add-a-credential) über die Admin-Einstellungen. Ohne Organisationsadministrator-Rolle bitten Sie einen Owner, das Secret hinzuzufügen, da der Dialog der Umgebung keinen Bereich **Netzwerk-Secrets** hat

110 * **Ihre eigene Umgebung in Team**: Ohne Organisationsadministrator-Rolle öffnet **Secret hinzufügen** ein [kürzeres Formular](#add-a-secret-without-the-role), das einen einzelnen Host aufnimmt

115* **Umgebungstyp**: eine von Anthropic gehostete Cloud-Umgebung, die bereits existiert. Eine [selbst gehostete Umgebung](/docs/de/self-hosted-environments) hat keine Netzwerk-Secrets111* **Umgebungstyp**: eine von Anthropic gehostete Cloud-Umgebung, die bereits existiert. Eine [selbst gehostete Umgebung](/docs/de/self-hosted-environments) hat keine Netzwerk-Secrets

116* **API-Erreichbarkeit**: die API akzeptiert Verbindungen aus dem Internet, da Anfragen aus dem Netzwerk von Anthropic ausgehen112* **API-Erreichbarkeit**: die API akzeptiert Verbindungen aus dem Internet, da Anfragen aus dem Netzwerk von Anthropic ausgehen

117* **Verschlüsselungsschlüssel**: wenn Ihre Organisation kundenverwaltete Verschlüsselungsschlüssel verwendet, können Sie keine Netzwerk-Secrets speichern113* **Verschlüsselungsschlüssel**: wenn Ihre Organisation kundenverwaltete Verschlüsselungsschlüssel verwendet, können Sie keine Netzwerk-Secrets speichern


122 118 

123Sie fügen Secrets einzeln hinzu, und Sie können ein Secret nach dem Hinzufügen nicht bearbeiten. Um die Hosts oder den Wert eines Secrets zu ändern, löschen Sie es und fügen Sie es erneut hinzu.119Sie fügen Secrets einzeln hinzu, und Sie können ein Secret nach dem Hinzufügen nicht bearbeiten. Um die Hosts oder den Wert eines Secrets zu ändern, löschen Sie es und fügen Sie es erneut hinzu.

124 120 

121Um ein Secret zu einer [gemeinsamen Umgebung](#organization-shared-environments) hinzuzufügen, öffnen Sie diese zur Bearbeitung über die Seite **Cloud-Umgebungen** in den [Admin-Einstellungen](https://claude.ai/admin-settings) und fahren Sie dann mit Schritt 1 ab dem Bereich **Netzwerk-Secrets** fort. Wenn Sie einen Team-Plan nutzen und keine [Organisationsadministrator-Rolle](#requirements) haben, folgen Sie Schritt 1 in Ihrer eigenen Umgebung und [füllen Sie dann das kürzere Formular aus](#add-a-secret-without-the-role).

122 

125<Steps>123<Steps>

126 <Step title="Öffnen Sie die Netzwerk-Secrets der Umgebung">124 <Step title="Öffnen Sie die Netzwerk-Secrets der Umgebung">

127 [Öffnen Sie die Umgebung zur Bearbeitung](#configure-your-environment) unter [claude.ai/code](https://claude.ai/code). Suchen Sie im Dialog **Umgebung bearbeiten** den Bereich **Netzwerk-Secrets**. Sie sehen die Secrets, die bereits in der Umgebung vorhanden sind, jeweils mit den Hosts, auf die sie sich beziehen.125 [Öffnen Sie die Umgebung zur Bearbeitung](#configure-your-environment) unter [claude.ai/code](https://claude.ai/code). Suchen Sie im Dialog **Umgebung bearbeiten** den Bereich **Netzwerk-Secrets**. Sie sehen die Secrets, die bereits in der Umgebung vorhanden sind, jeweils mit den Hosts, auf die sie sich beziehen.

128 </Step>126 </Step>

129 127 

130 <Step title="Fügen Sie das Secret hinzu">128 <Step title="Fügen Sie das Secret hinzu">

131 Wählen Sie **Secret hinzufügen** und füllen Sie das Formular aus. Behalten Sie den Standard-**Anmeldedatentyp**, **Bearer**, für einen API-Schlüssel, der in einem Request-Header übertragen wird, und füllen Sie diese Felder aus:129 Wählen Sie **Secret hinzufügen** und füllen Sie das Formular aus. Behalten Sie den Standard-**Secret-Typ**, **Bearer**, für einen API-Schlüssel, der in einem Request-Header übertragen wird, und füllen Sie diese Felder aus:

132 130 

133 * **Name**: eine Bezeichnung für das Secret, wie `Internal billing API`131 * **Name**: eine Bezeichnung für das Secret, wie `Internal billing API`

134 * **Zulässige Websites**: die Hosts der API, wie `api.example.com`. Ein führendes `*.` passt zu jeder Subdomain132 * **Zulässige Websites**: die Hosts der API, wie `api.example.com`. Ein führendes `*.` passt zu jeder Subdomain

135 * **Benutzerdefinierte Header**: eine Zeile für den Header, der den Schlüssel trägt. Die Zeile beginnt mit `Authorization` als **Name** des Headers und `Bearer` als **Präfix**; fügen Sie den Schlüssel selbst als **Wert** ein. Für einen Header wie `X-Api-Key`, der den bloßen Wert nimmt, ändern Sie den Namen und löschen Sie das Präfix133 * **Benutzerdefinierte Header**: eine Zeile für den Header, der den Schlüssel trägt. Die Zeile beginnt mit `Authorization` als **Name** des Headers und `Bearer` als **Präfix**; fügen Sie den Schlüssel selbst als **Wert** ein. Für einen Header wie `X-Api-Key`, der den bloßen Wert nimmt, ändern Sie den Namen und löschen Sie das Präfix

136 134 

137 Für eine API, die sich anders authentifiziert, wählen Sie einen anderen **Anmeldedatentyp**. Die Liste ist dieselbe, 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.135 Für eine API, die sich anders authentifiziert, wählen Sie einen anderen **Secret-Typ**. Die Liste ist dieselbe, 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.

138 </Step>136 </Step>

139 137 

140 <Step title="Speichern Sie das Secret">138 <Step title="Speichern Sie das Secret">

141 Wählen Sie **Verbinden**. Das Secret erscheint in der Liste mit seinen Hosts, gespeichert ohne die Schaltfläche **Änderungen speichern** des Dialogs. Sie können den Wert nach dem Speichern nicht erneut anzeigen.139 Wählen Sie **Hinzufügen**. Das Secret erscheint in der Liste mit seinen Hosts, gespeichert ohne die Schaltfläche **Änderungen speichern** des Dialogs. Sie können den Wert nach dem Speichern nicht erneut anzeigen.

142 </Step>140 </Step>

143</Steps>141</Steps>

144 142 

145Um zu bestätigen, dass das Secret funktioniert, starten Sie eine Sitzung in der Umgebung und bitten Sie Claude, die API aufzurufen, zum Beispiel mit `curl`. Die API antwortet, als wäre der Schlüssel in der Anfrage, und der Schlüssel erscheint nicht in den Umgebungsvariablen der Sitzung oder in einer Datei. Wenn die Liste ein Secret stattdessen als **Nicht gesendet** markiert, sagt der Hinweis darunter, warum und was zu tun ist. Zwei Secrets, deren Hosts sich überlappen, ohne genau übereinzustimmen, erhalten keine Markierung, und der Agent-Proxy sendet nur eines davon.143Um zu bestätigen, dass das Secret funktioniert, starten Sie eine Sitzung in der Umgebung und bitten Sie Claude, die API aufzurufen, zum Beispiel mit `curl`. Die API antwortet, als wäre der Schlüssel in der Anfrage, und der Schlüssel erscheint nicht in den Umgebungsvariablen der Sitzung oder in einer Datei. Wenn die Liste ein Secret stattdessen als **Nicht gesendet** markiert, sagt der Hinweis darunter, warum und was zu tun ist. Zwei Secrets, deren Hosts sich überlappen, ohne genau übereinzustimmen, erhalten keine Markierung, und der Agent-Proxy sendet nur eines davon.

146 144 

145<h4 id="add-a-secret-without-the-role">

146 Fügen Sie ein Secret in einem Team-Plan ohne Organisationsadministrator-Rolle hinzu

147</h4>

148 

149Wenn Sie einen Team-Plan nutzen und keine [Organisationsadministrator-Rolle](#requirements) haben, nimmt das Formular **Secret hinzufügen** ein Secret für einen einzelnen Host auf. Wählen Sie **Secret hinzufügen** im [Bereich **Netzwerk-Secrets**](#add-a-credential) Ihrer Umgebung, füllen Sie diese Felder aus und wählen Sie dann die Schaltfläche **Secret hinzufügen** des Formulars:

150 

151* **Host**: der eine Host, der das Secret erhält, wie `api.example.com`. Das Formular akzeptiert keinen `*.`-Platzhalter

152* **Name**: eine optionale Bezeichnung für das Secret

153* **Secret-Typ**: **Token** für einen Schlüssel, der in einem Request-Header übertragen wird, oder **Benutzername und Passwort**. Fügen Sie bei einem Token den Schlüssel als **Wert** ein

154 

147<h4 id="which-requests-get-the-credential">155<h4 id="which-requests-get-the-credential">

148 Welche Anfragen erhalten das Secret156 Welche Anfragen erhalten das Secret

149</h4>157</h4>


175 Archivieren Sie eine Umgebung183 Archivieren Sie eine Umgebung

176</h3>184</h3>

177 185 

178Um eine Ihrer eigenen Umgebungen zu archivieren, öffnen Sie sie zur Bearbeitung und wählen Sie **Archivieren**. Ein Owner archiviert eine [gemeinsame Umgebung](#organization-shared-environments) von der Seite **Cloud-Umgebungen** in den Admin-Einstellungen. Sie können eine Umgebung nicht löschen, nur archivieren.186Um eine Ihrer eigenen Umgebungen zu archivieren, öffnen Sie sie zur Bearbeitung, wählen Sie **Umgebung archivieren** und bestätigen Sie. Wenn die Umgebung [mit Ihrer Organisation geteilt](#organization-shared-environments) ist, archiviert stattdessen ein Owner sie über die Seite **Cloud-Umgebungen** in den [Admin-Einstellungen](https://claude.ai/admin-settings). Wenden Sie sich daher an einen Owner, sofern Sie nicht selbst einer sind. Sie können eine Umgebung nicht löschen, nur archivieren.

179 187 

180Das Archivieren wirkt sich auf neue Sitzungen aus, nicht auf laufende:188Das Archivieren wirkt sich auf neue Sitzungen aus, nicht auf laufende:

181 189 


199 207 

200Owner wählen die [Standardumgebung](#the-default-environment) der Organisation separat unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).208Owner wählen die [Standardumgebung](#the-default-environment) der Organisation separat unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

201 209 

202Die Sitzungen jedes Mitglieds in einer gemeinsamen Umgebung lesen ihre Variablen, daher fügen Sie keine Geheimnisse darin ein. [Netzwerk-Secrets](#add-network-secrets), die Sitzungen einen Schlüssel geben, den sie nicht lesen können, sind in Team- oder Enterprise-Plänen noch nicht verfügbar.210Um den Sitzungen einer gemeinsamen Umgebung einen Schlüssel zu geben, den sie nicht lesen können, fügen Sie ein [Netzwerk-Secret](#add-network-secrets) hinzu, wenn Sie die Umgebung auf der Seite **Cloud-Umgebungen** bearbeiten. Fügen Sie keine Secrets in ihre Variablen ein, da die Sitzungen jedes Mitglieds sie lesen.

203 211 

204<h3 id="set-the-environment-a-claude-tag-channel-uses">212<h3 id="set-the-environment-a-claude-tag-channel-uses">

205 Legen Sie die Umgebung fest, die ein Claude Tag-Kanal verwendet213 Legen Sie die Umgebung fest, die ein Claude Tag-Kanal verwendet


216 224 

217Jede Umgebung legt eine Netzwerkzugriffsstufe fest, die steuert, welche ausgehenden Verbindungen ihre Sitzungen herstellen können. Die Standardstufe, **Vertraut**, ermöglicht Paketregistrierungen und andere [zulässige Domänen](#default-allowed-domains); **Benutzerdefiniert** verwendet Ihre eigene Domänenliste.225Jede Umgebung legt eine Netzwerkzugriffsstufe fest, die steuert, welche ausgehenden Verbindungen ihre Sitzungen herstellen können. Die Standardstufe, **Vertraut**, ermöglicht Paketregistrierungen und andere [zulässige Domänen](#default-allowed-domains); **Benutzerdefiniert** verwendet Ihre eigene Domänenliste.

218 226 

219Um den Netzwerkzugriff einer Umgebung zu ändern, [öffnen Sie sie zum Bearbeiten](#configure-your-environment) und verwenden Sie den Selektor **Netzwerkzugriff** im Dialog. Eine [gemeinsam genutzte Umgebung](#organization-shared-environments) wird dort schreibgeschützt geöffnet, daher ändert ein Besitzer ihren Netzwerkzugriff stattdessen auf der Seite **Cloud-Umgebungen** in den [Admin-Einstellungen](https://claude.ai/admin-settings). Das Cloud-Symbol, das den Selektor öffnet, wird auf den App-Oberflächen angezeigt, die unter [Die Standardumgebung](#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.227Um den Netzwerkzugriff einer Umgebung zu ändern, [öffnen Sie sie zum Bearbeiten](#configure-your-environment) und verwenden Sie den Selektor **Netzwerkzugriff** im Dialog. Eine [gemeinsam genutzte Umgebung](#organization-shared-environments) wird dort schreibgeschützt geöffnet, daher ändert ein Owner ihren Netzwerkzugriff stattdessen auf der Seite **Cloud-Umgebungen** in den [Admin-Einstellungen](https://claude.ai/admin-settings). Das Steuerelement, das den Selektor öffnet, wird auf den App-Oberflächen angezeigt, die unter [Die Standardumgebung](#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.

220 228 

221Wenn Sie den Netzwerkzugriff einer von Anthropic gehosteten Umgebung ändern, folgen ihre vorhandenen Sitzungen der neuen Einstellung innerhalb von etwa einer Minute für Anfragen, die durch die [Netzwerkzulassungsliste](#access-levels) der Sitzung gehen. Sie müssen keine neue Sitzung starten.229Wenn Sie den Netzwerkzugriff einer von Anthropic gehosteten Umgebung ändern, folgen ihre vorhandenen Sitzungen der neuen Einstellung innerhalb von etwa einer Minute für Anfragen, die durch die [Netzwerkzulassungsliste](#access-levels) der Sitzung gehen. Sie müssen keine neue Sitzung starten.

222 230 


274* **Git-Anmeldedaten**: Der Git-Client in der VM verwendet eine begrenzte Anmeldedaten, die der Proxy überprüft und gegen Ihr echtes GitHub-Token austauscht.282* **Git-Anmeldedaten**: Der Git-Client in der VM verwendet eine begrenzte Anmeldedaten, die der Proxy überprüft und gegen Ihr echtes GitHub-Token austauscht.

275* **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.283* **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.

276* **Push-Einschränkungen**: Der Proxy lehnt das Löschen von Branches sowie Pushes von allem ab, was kein Branch ist, etwa einem Tag. Er schränkt nicht ein, welche Branches ein Push aktualisieren kann. Verwenden Sie dafür Branch-Schutzregeln oder Rulesets auf GitHub.284* **Push-Einschränkungen**: Der Proxy lehnt das Löschen von Branches sowie Pushes von allem ab, was kein Branch ist, etwa einem Tag. Er schränkt nicht ein, welche Branches ein Push aktualisieren kann. Verwenden Sie dafür Branch-Schutzregeln oder Rulesets auf GitHub.

277* **Repository-Bereich**: Der Proxy bedient GitHub-API-Anfragen für die Repositorys, die an die Sitzung angehängt sind. Eine API-Anfrage für ein anderes Repository erhält einen 403, dessen Meldung mit `GitHub access to` beginnt und `is not enabled for this session` enthält.285* **Repository-Bereich**: Der Proxy bedient GitHub-API-Anfragen für die Repositorys, die an die Sitzung angehängt sind. Eine API-Anfrage für ein anderes Repository erhält einen 403, dessen Meldung mit `GitHub access to` beginnt und `is not enabled for this session` enthält. Ein Quellarchiv, das Sie über eine URL `github.com/{owner}/{repo}/archive/` oder `codeload.github.com` abrufen, erhält denselben 403, wenn das Repository nicht angehängt ist, selbst wenn es öffentlich ist.

278* **GraphQL-Einschränkungen**: Der Proxy lehnt Anfragen an den GraphQL-Endpunkt von GitHub mit einem 403 ab, dessen Meldung mit `GitHub GraphQL is not available from Claude Code sessions` beginnt und den REST-Fallback `gh api repos/{owner}/{repo}/...` nennt. `gh`-Unterbefehle, die GraphQL verwenden, wie `gh pr` und `gh issue`, erhalten denselben 403. 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`, das Sie setzen, den gleichen 403. Claude kann nicht auf GitHub-APIs zugreifen, die nur in GraphQL vorhanden sind, wie Projects v2, über den Proxy.286* **GraphQL-Einschränkungen**: Der Proxy lehnt Anfragen an den GraphQL-Endpunkt von GitHub mit einem 403 ab, dessen Meldung mit `GitHub GraphQL is not available from Claude Code sessions` beginnt und den REST-Fallback `gh api repos/{owner}/{repo}/...` nennt. `gh`-Unterbefehle, die GraphQL verwenden, wie `gh pr` und `gh issue`, erhalten denselben 403. 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`, das Sie setzen, den gleichen 403. Claude kann nicht auf GitHub-APIs zugreifen, die nur in GraphQL vorhanden sind, wie Projects v2, über den Proxy.

279 287 

280Committete Dateien aus öffentlichen Repositories kommen über `raw.githubusercontent.com` an, das der [Sicherheitsproxy](#security-proxy) stattdessen verarbeitet. Diese Domäne befindet sich in der Standard-[Vertraut-Liste](#default-allowed-domains), daher bleiben diese Dateien erreichbar, es sei denn, die [Zugriffsstufe](#access-levels) der Umgebung schließt sie aus.288Committete Dateien aus öffentlichen Repositories kommen über `raw.githubusercontent.com` an, das der [Sicherheitsproxy](#security-proxy) stattdessen verarbeitet. Diese Domäne befindet sich in der Standard-[Vertraut-Liste](#default-allowed-domains), daher bleiben diese Dateien erreichbar, es sei denn, die [Zugriffsstufe](#access-levels) der Umgebung schließt sie aus.


318| Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind | Nein | `enabledPlugins` im Benutzer-Geltungsbereich lebt in `~/.claude/settings.json` auf Ihrem Computer |326| Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind | Nein | `enabledPlugins` im Benutzer-Geltungsbereich lebt in `~/.claude/settings.json` auf Ihrem Computer |

319| MCP-Server, die Sie mit `claude mcp add` im standardmäßigen lokalen Geltungsbereich oder im Benutzer-Geltungsbereich 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. Eine Sitzung mit einem Repository lädt sie |327| MCP-Server, die Sie mit `claude mcp add` im standardmäßigen lokalen Geltungsbereich oder im Benutzer-Geltungsbereich 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. Eine Sitzung mit einem Repository lädt sie |

320| Transport-Variablen im `env`-Block der `.claude/settings.json` 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 |328| Transport-Variablen im `env`-Block der `.claude/settings.json` 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 |

321| API-Schlüssel und Token für Services, die Claude aufruft | Auf Pro- und Max-Plänen, als [Netzwerk-Secrets](#add-network-secrets) | 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 |329| API-Schlüssel und Token für Services, die Claude aufruft | In einer von Anthropic gehosteten Umgebung, als [Netzwerk-Secrets](#add-network-secrets) | 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), bleibt in einer Umgebungsvariable |

322| Interaktive Authentifizierung wie AWS SSO | Nein | Nicht unterstützt. SSO erfordert browserbasierte Anmeldung, die nicht in einer Cloud-Sitzung ausgeführt werden kann |330| Interaktive Authentifizierung wie AWS SSO | Nein | Nicht unterstützt. SSO erfordert browserbasierte Anmeldung, die nicht in einer Cloud-Sitzung ausgeführt werden kann |

323 331 

324Um Ihre eigene Konfiguration in Cloud-Sitzungen verfügbar zu machen, committen Sie sie in das Repo.332Um Ihre eigene Konfiguration in Cloud-Sitzungen verfügbar zu machen, committen Sie sie in das Repo.

325 333 

326Jeder, der die Umgebung nutzt, kann ihre Umgebungsvariablen und ihr Setup-Skript 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, stattdessen als [Netzwerk-Secret](#add-network-secrets).334Jeder, der die Umgebung nutzt, kann ihre Umgebungsvariablen und ihr Setup-Skript lesen. Der Hinweis des Dialogs unter **Umgebungsvariablen** sagt dies und warnt vor dem Hinzufügen von Geheimnissen. Speichern Sie in einer von Anthropic gehosteten Umgebung einen Schlüssel, den der Agent-Proxy anhängen kann, stattdessen als [Netzwerk-Secret](#add-network-secrets).

327 335 

328<h4 id="add-personal-preferences-without-committing-to-the-repo">336<h4 id="add-personal-preferences-without-committing-to-the-repo">

329 Persönliche Präferenzen hinzufügen, ohne sie in das Repo zu committen337 Persönliche Präferenzen hinzufügen, ohne sie in das Repo zu committen

code-review.md +0 −2

Details

155* Sie müssen Schreib-, Verwaltungs- oder Admin-Berechtigung auf dem Repository haben155* Sie müssen Schreib-, Verwaltungs- oder Admin-Berechtigung auf dem Repository haben

156* Der PR muss offen sein156* Der PR muss offen sein

157 157 

158Wenn das Repository einer Organisation gehört und Ihre Mitgliedschaft in dieser Organisation privat ist, was GitHub standardmäßig ist, identifiziert GitHub Sie Claude gegenüber nicht als Mitglied. Claude kann immer noch auf Ihren Kommentar mit 👀 reagieren, startet aber keine Überprüfung, es sei denn, Sie wurden dem Repository direkt als Mitarbeiter hinzugefügt, auch wenn ein Team oder die Basisberechtigungen der Organisation Ihnen Schreibzugriff geben. Um dies zu beheben, [machen Sie Ihre Organisationsmitgliedschaft öffentlich](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) oder bitten Sie einen Repository-Admin, Sie dem Repository als Mitarbeiter hinzuzufügen.

159 

160Im Gegensatz zu automatischen Triggern werden manuelle Trigger auf Entwurfs-PRs ausgeführt, da eine explizite Anfrage signalisiert, dass Sie die Überprüfung jetzt möchten, unabhängig vom Entwurfsstatus.158Im Gegensatz zu automatischen Triggern werden manuelle Trigger auf Entwurfs-PRs ausgeführt, da eine explizite Anfrage signalisiert, dass Sie die Überprüfung jetzt möchten, unabhängig vom Entwurfsstatus.

161 159 

162Wenn bereits eine Überprüfung auf diesem PR läuft, wird die Anfrage in die Warteschlange eingereiht, bis die laufende Überprüfung abgeschlossen ist. Sie können den Fortschritt über die Check-Run auf dem PR überwachen.160Wenn bereits eine Überprüfung auf diesem PR läuft, wird die Anfrage in die Warteschlange eingereiht, bis die laufende Überprüfung abgeschlossen ist. Sie können den Fortschritt über die Check-Run auf dem PR überwachen.

commands.md +6 −6

Details

67| `/branch [name]` | Erstellt an dieser Stelle einen Konversationszweig der aktuellen Konversation, sodass Sie eine andere Richtung ausprobieren können, ohne die Konversation in ihrem aktuellen Stand zu verlieren. Wechselt Sie in den Zweig und bewahrt das Original, zu dem Sie mit `/resume` zurückkehren können. Um eine Kopie als separate [Hintergrundsitzung](/docs/de/agent-view) auszuführen, statt in sie zu wechseln, verwenden Sie `/fork`; um eine Nebenaufgabe an einen [Subagenten](/docs/de/sub-agents) zu übergeben, der in diese Konversation zurückberichtet, verwenden Sie `/subtask` |67| `/branch [name]` | Erstellt an dieser Stelle einen Konversationszweig der aktuellen Konversation, sodass Sie eine andere Richtung ausprobieren können, ohne die Konversation in ihrem aktuellen Stand zu verlieren. Wechselt Sie in den Zweig und bewahrt das Original, zu dem Sie mit `/resume` zurückkehren können. Um eine Kopie als separate [Hintergrundsitzung](/docs/de/agent-view) auszuführen, statt in sie zu wechseln, verwenden Sie `/fork`; um eine Nebenaufgabe an einen [Subagenten](/docs/de/sub-agents) zu übergeben, der in diese Konversation zurückberichtet, verwenden Sie `/subtask` |

68| `/btw [question]` | Stellt eine [Nebenfrage](/docs/de/interactive-mode#side-questions-with-%2Fbtw) zur aktuellen Sitzung, ohne sie der Konversation hinzuzufügen. Wenn Sie `/btw` ohne Frage ausführen, zeigt Claude Code Ihre letzte Nebenfrage an, damit Sie frühere Antworten durchsehen können; wenn Sie noch keine gestellt haben, gibt Claude Code eine Verwendungszeile aus. Vor v2.1.212 erforderte `/btw` eine Frage |68| `/btw [question]` | Stellt eine [Nebenfrage](/docs/de/interactive-mode#side-questions-with-%2Fbtw) zur aktuellen Sitzung, ohne sie der Konversation hinzuzufügen. Wenn Sie `/btw` ohne Frage ausführen, zeigt Claude Code Ihre letzte Nebenfrage an, damit Sie frühere Antworten durchsehen können; wenn Sie noch keine gestellt haben, gibt Claude Code eine Verwendungszeile aus. Vor v2.1.212 erforderte `/btw` eine Frage |

69| `/bug [report]` | Meldet einen Fehler oder teilt Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einbezogen wird, und bestätigen auf einem Einwilligungsbildschirm, bevor etwas gesendet wird. Wenn Sie über eine Erstanbieterverbindung bei Anthropic 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 höher. Wenn Sie den Befehl 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 der Turn beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |69| `/bug [report]` | Meldet einen Fehler oder teilt Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einbezogen wird, und bestätigen auf einem Einwilligungsbildschirm, bevor etwas gesendet wird. Wenn Sie über eine Erstanbieterverbindung bei Anthropic 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 höher. Wenn Sie den Befehl 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 der Turn beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |

70| `/cd <path>` | Verschiebt diese Sitzung in ein neues Arbeitsverzeichnis und behält die Konversation bei. Geben Sie einen Teilpfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu übernehmen. Die Vorschläge erfordern Claude Code v2.1.206 oder höher. Was Claude Code aus dem neuen Verzeichnis sofort nach dem Wechsel anwendet und wie sich `/cd` von `/add-dir` unterscheidet, erfahren Sie unter [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Verschiebt diese Sitzung in ein neues Arbeitsverzeichnis und behält die Konversation bei. Geben Sie einen Teilpfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu übernehmen. Was Claude Code aus dem neuen Verzeichnis sofort nach dem Wechsel anwendet und wie sich `/cd` von `/add-dir` unterscheidet, erfahren Sie unter [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |

71| `/chrome` | Konfiguriert die Einstellungen für [Claude in Chrome](/docs/de/chrome) |71| `/chrome` | Konfiguriert die Einstellungen für [Claude in Chrome](/docs/de/chrome) |

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/de/skills#bundled-skills).** Lädt Referenzmaterial zur [Claude API](https://platform.claude.com/docs/en/api/overview) und zu [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) für die Sprache Ihres Projekts. Wird außerdem automatisch aktiviert, wenn Ihr Code `anthropic` oder `@anthropic-ai/sdk` importiert. Was jeder Unterbefehl tut und welche Version er erfordert, erfahren Sie unter [An Claude-API-Projekten arbeiten](/docs/de/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/de/skills#bundled-skills).** Lädt Referenzmaterial zur [Claude API](https://platform.claude.com/docs/en/api/overview) und zu [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) für die Sprache Ihres Projekts. Wird außerdem automatisch aktiviert, wenn Ihr Code `anthropic` oder `@anthropic-ai/sdk` importiert. Was jeder Unterbefehl tut und welche Version er erfordert, erfahren Sie unter [An Claude-API-Projekten arbeiten](/docs/de/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/de/skills#bundled-skills).** Lässt Claude über [Claude in Chrome](/docs/de/chrome) eine Aufgabe in Ihrem Browser ausführen, etwa eine Seite testen, ein Formular ausfüllen oder Konsolen-Logs lesen. Verfügbar, wenn die Chrome-Integration für die Sitzung aktiviert ist, zum Beispiel mit `claude --chrome`, oder wenn Claude Code anbieten kann, [die Erweiterung zu installieren](/docs/de/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/de/skills#bundled-skills).** Lässt Claude über [Claude in Chrome](/docs/de/chrome) eine Aufgabe in Ihrem Browser ausführen, etwa eine Seite testen, ein Formular ausfüllen oder Konsolen-Logs lesen. Verfügbar, wenn die Chrome-Integration für die Sitzung aktiviert ist, zum Beispiel mit `claude --chrome`, oder wenn Claude Code anbieten kann, [die Erweiterung zu installieren](/docs/de/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Startet eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume`-Auswahl zu benennen. Um Kontext freizugeben und dabei dieselbe Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort oder stellen Sie sie im selben Claude Code-Prozess über [den Eintrag für die vorherige Sitzung im Rewind-Menü](/docs/de/checkpointing#rewind-past-a-cleared-conversation) wieder her. Aliase: `/reset`, `/new` |74| `/clear [name]` | Startet eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume`-Auswahl zu benennen. Um Kontext freizugeben und dabei dieselbe Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort oder stellen Sie sie im selben Claude Code-Prozess über [den Eintrag für die vorherige Sitzung im Rewind-Menü](/docs/de/checkpointing#rewind-past-a-cleared-conversation) wieder her. Aliase: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Prüft den aktuellen Diff oder eine übergebene PR-Nummer, einen Branch oder einen Pfad auf Korrektheitsfehler. Abhängig von Ihrem Modell und Ihrer Effort-Stufe deckt das Review auch Möglichkeiten zur Bereinigung ab. Übergeben Sie `--fix`, um Befunde anzuwenden, `--comment`, um sie im GitHub-PR oder GitLab Merge Request zu posten, oder `ultra`, um ein tiefgehendes [Cloud-Review](/docs/de/ultrareview) auszuführen. Das Posten in einem GitLab Merge Request erfordert Claude Code v2.1.257 oder höher. Mit `ultra` bei einem `github.com`-PR als Ziel übergeben Sie `--post`, um im Startdialog [das Posten der fertigen Befunde im PR](/docs/de/ultrareview#post-findings-to-the-pull-request) vorauszuwählen; `--post` erfordert Claude Code v2.1.227 oder höher. Unter [Einen Diff lokal reviewen](/docs/de/code-review#review-a-diff-locally) finden Sie die Effort-Stufen, die Zielauswahl und die Beziehung zu `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Prüft den aktuellen Diff oder eine übergebene PR-Nummer, einen Branch oder einen Pfad auf Korrektheitsfehler. Abhängig von Ihrem Modell und Ihrer Effort-Stufe deckt das Review auch Möglichkeiten zur Bereinigung ab. Übergeben Sie `--fix`, um Befunde anzuwenden, `--comment`, um sie im GitHub-PR oder GitLab Merge Request zu posten, oder `ultra`, um ein tiefgehendes [Cloud-Review](/docs/de/ultrareview) auszuführen. Das Posten in einem GitLab Merge Request erfordert Claude Code v2.1.257 oder höher. Mit `ultra` bei einem `github.com`-PR als Ziel übergeben Sie `--post`, um im Startdialog [das Posten der fertigen Befunde im PR](/docs/de/ultrareview#post-findings-to-the-pull-request) vorauszuwählen; `--post` erfordert Claude Code v2.1.227 oder höher. Unter [Einen Diff lokal reviewen](/docs/de/code-review#review-a-diff-locally) finden Sie die Effort-Stufen, die Zielauswahl und die Beziehung zu `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Legt die Farbe der Prompt-Leiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default` zum Zurücksetzen oder führen Sie den Befehl 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 höher |76| `/color [color\|default]` | Legt die Farbe der Prompt-Leiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default` zum Zurücksetzen oder führen Sie den Befehl 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 |

77| `/compact [instructions]` | Gibt Kontext frei, indem die bisherige Konversation zusammengefasst wird. Optional können Sie Fokusanweisungen für die Zusammenfassung übergeben. Siehe [wie die Komprimierung mit Regeln, Skills und Memory-Dateien umgeht](/docs/de/context-window#what-survives-compaction) |77| `/compact [instructions]` | Gibt Kontext frei, indem die bisherige Konversation zusammengefasst wird. Optional können Sie Fokusanweisungen für die Zusammenfassung übergeben. Siehe [wie die Komprimierung mit Regeln, Skills und Memory-Dateien umgeht](/docs/de/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Öffnet die Oberfläche für [Einstellungen](/docs/de/settings), um Theme, Modell, [Ausgabestil](/docs/de/output-styles) und andere Präferenzen anzupassen. Übergeben Sie ein oder mehrere `key=value`-Paare, um eine Einstellung direkt festzulegen, ohne die Oberfläche zu öffnen, zum Beispiel `/config thinking=false`, `/config theme=dark` oder `/config model=sonnet`. Die `key=value`-Form funktioniert auch im nicht interaktiven Modus (`-p`) und aus der Claude-Mobile-App über [Remote Control](/docs/de/remote-control). Die `key=value`-Form kann keine Einstellung aktivieren, die Ihre Bestätigung im Panel erfordert, wie [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann eine solche aber deaktivieren. Führen Sie `/config --help` aus, um die akzeptierten Schlüssel aufzulisten. Alias: `/settings` |78| `/config [key=value ...]` | Öffnet die Oberfläche für [Einstellungen](/docs/de/settings), um Theme, Modell, [Ausgabestil](/docs/de/output-styles) und andere Präferenzen anzupassen. Übergeben Sie ein oder mehrere `key=value`-Paare, um eine Einstellung direkt festzulegen, ohne die Oberfläche zu öffnen, zum Beispiel `/config thinking=false`, `/config theme=dark` oder `/config model=sonnet`. Die `key=value`-Form funktioniert auch im nicht interaktiven Modus (`-p`) und aus der Claude-Mobile-App über [Remote Control](/docs/de/remote-control). Die `key=value`-Form kann keine Einstellung aktivieren, die Ihre Bestätigung im Panel erfordert, wie [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann eine solche aber deaktivieren. Führen Sie `/config --help` aus, um die akzeptierten Schlüssel aufzulisten. Alias: `/settings` |

79| `/context [all]` | Visualisiert die aktuelle Kontextnutzung als farbiges Raster. Zeigt Optimierungsvorschläge für kontextintensive Tools, aufgeblähtes Memory und Kapazitätswarnungen. Wenn die Konversation das Kontextfenster überschreitet, enthält die Ausgabe eine [Warnung](/docs/de/errors#context-exceeds-the-token-limit), die zeigt, wie weit Sie über dem Limit liegen und welcher Befehl Platz freigibt. Im [Vollbildmodus](/docs/de/fullscreen) klappt `/context` die Aufschlüsselung pro Element zusammen, damit das Raster sichtbar bleibt. Übergeben Sie `all`, um sie aufzuklappen |79| `/context [all]` | Visualisiert die aktuelle Kontextnutzung als farbiges Raster. Zeigt Optimierungsvorschläge für kontextintensive Tools, aufgeblähtes Memory und Kapazitätswarnungen. Wenn die Konversation das Kontextfenster überschreitet, enthält die Ausgabe eine [Warnung](/docs/de/errors#context-exceeds-the-token-limit), die zeigt, wie weit Sie über dem Limit liegen und welcher Befehl Platz freigibt. Im [Vollbildmodus](/docs/de/fullscreen) klappt `/context` die Aufschlüsselung pro Element zusammen, damit das Raster sichtbar bleibt. Übergeben Sie `all`, um sie aufzuklappen |


91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Legt die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) fest: `low` bis `xhigh`, `max` oder `auto`; `status` gibt sie aus. `ultracode` oder `ultracode on` aktiviert [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) für die Sitzung auf der aktuellen Stufe, und `ultracode off` deaktiviert es; der Schlüssel [`ultracode`](/docs/de/settings-reference#ultracode) bleibt dauerhaft gespeichert. `max` gilt nur für die Sitzung. Die Argumente `on` und `off` sowie das Beibehalten der aktuellen Stufe erfordern Claude Code v2.1.284 oder höher. Vor v2.1.284 setzte `/effort ultracode` die Sitzung auf `xhigh`, und `/effort ultracode off` schlug mit `Invalid argument` fehl. Wenn Sie den Befehl ausführen, während Claude antwortet, wendet Claude Code die neue Stufe auf die nächste Anfrage in diesem Turn an, sobald Sie die [Cache-Warnung](/docs/de/prompt-caching#changing-effort-level) bestätigt haben, sofern Claude Code eine anzeigt. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange, etwa bei einem [Drittanbieter](/docs/de/third-party-integrations). Funktioniert mit `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Legt die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) fest: `low` bis `xhigh`, `max` oder `auto`; `status` gibt sie aus. `ultracode` oder `ultracode on` aktiviert [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) für die Sitzung auf der aktuellen Stufe, und `ultracode off` deaktiviert es; der Schlüssel [`ultracode`](/docs/de/settings-reference#ultracode) bleibt dauerhaft gespeichert. `max` gilt nur für die Sitzung. Die Argumente `on` und `off` sowie das Beibehalten der aktuellen Stufe erfordern Claude Code v2.1.284 oder höher. Vor v2.1.284 setzte `/effort ultracode` die Sitzung auf `xhigh`, und `/effort ultracode off` schlug mit `Invalid argument` fehl. Wenn Sie den Befehl ausführen, während Claude antwortet, wendet Claude Code die neue Stufe auf die nächste Anfrage in diesem Turn an, sobald Sie die [Cache-Warnung](/docs/de/prompt-caching#changing-effort-level) bestätigt haben, sofern Claude Code eine anzeigt. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange, etwa bei einem [Drittanbieter](/docs/de/third-party-integrations). Funktioniert mit `-p` |

92| `/exit` | Beendet die CLI. In einer angehängten [Hintergrundsitzung](/docs/de/agent-view#attach-to-a-session) wird die Verbindung getrennt, und die Sitzung läuft weiter. Alias: `/quit` |92| `/exit` | Beendet die CLI. In einer angehängten [Hintergrundsitzung](/docs/de/agent-view#attach-to-a-session) wird die Verbindung getrennt, und die Sitzung läuft weiter. Alias: `/quit` |

93| `/export [filename]` | Exportiert die aktuelle Konversation als reinen Text. Mit einem Dateinamen wird direkt in diese Datei geschrieben. Ohne Dateinamen wird ein Dialog geöffnet, um in die Zwischenablage zu kopieren oder in einer Datei zu speichern |93| `/export [filename]` | Exportiert die aktuelle Konversation als reinen Text. Mit einem Dateinamen wird direkt in diese Datei geschrieben. Ohne Dateinamen wird ein Dialog geöffnet, um in die Zwischenablage zu kopieren oder in einer Datei zu speichern |

94| `/fast [on\|off]` | Schaltet den [Fast-Modus](/docs/de/fast-mode) ein oder aus. Wenn Sie den Befehl ausführen, während Claude antwortet, schaltet Claude Code den Fast-Modus um, ohne auf das Ende des Turns zu warten, wobei der laufende Turn in seiner ursprünglichen Geschwindigkeit beendet wird. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange. Die Verfügbarkeit im nicht interaktiven Modus mit `-p` ist eingeschränkt; siehe [Fast-Modus umschalten](/docs/de/fast-mode#toggle-fast-mode). Erfordert Claude Code v2.1.205 oder höher |94| `/fast [on\|off]` | Schaltet den [Fast-Modus](/docs/de/fast-mode) ein oder aus. Wenn Sie den Befehl ausführen, während Claude antwortet, schaltet Claude Code den Fast-Modus um, ohne auf das Ende des Turns zu warten, wobei der laufende Turn in seiner ursprünglichen Geschwindigkeit beendet wird. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange. Die Verfügbarkeit im nicht interaktiven Modus mit `-p` ist eingeschränkt; siehe [Fast-Modus umschalten](/docs/de/fast-mode#toggle-fast-mode) |

95| `/feedback [report]` | Sendet Produktfeedback zu Claude Code. Öffnet denselben Dialog wie [`/bug`](#all-commands), mit demselben Einwilligungsschritt, denselben Senderegeln und demselben Verhalten mitten im Turn. In Sitzungen mit [von Claude entworfenem Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) öffnet `/feedback` ohne Argument stattdessen die Entwurfswarteschlange, in der Sie die von Claude eingereihten Entwürfe prüfen, bearbeiten, senden oder verwerfen; die Warteschlange enthält eine Option, einen neuen Bericht im Dialog zu schreiben. Mit einem Argument und bei `/bug` immer wird der Dialog direkt geöffnet |95| `/feedback [report]` | Sendet Produktfeedback zu Claude Code. Öffnet denselben Dialog wie [`/bug`](#all-commands), mit demselben Einwilligungsschritt, denselben Senderegeln und demselben Verhalten mitten im Turn. In Sitzungen mit [von Claude entworfenem Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) öffnet `/feedback` ohne Argument stattdessen die Entwurfswarteschlange, in der Sie die von Claude eingereihten Entwürfe prüfen, bearbeiten, senden oder verwerfen; die Warteschlange enthält eine Option, einen neuen Bericht im Dialog zu schreiben. Mit einem Argument und bei `/bug` immer wird der Dialog direkt geöffnet |

96| `/fewer-permission-prompts` | **[Skill](/docs/de/skills#bundled-skills).** Durchsucht Ihre Transkripte nach häufigen nur lesenden Bash- und MCP-Tool-Aufrufen und fügt dann der Projektdatei `.claude/settings.json` eine priorisierte Allowlist hinzu, um Berechtigungsabfragen zu reduzieren |96| `/fewer-permission-prompts` | **[Skill](/docs/de/skills#bundled-skills).** Durchsucht Ihre Transkripte nach häufigen nur lesenden Bash- und MCP-Tool-Aufrufen und fügt dann der Projektdatei `.claude/settings.json` eine priorisierte Allowlist hinzu, um Berechtigungsabfragen zu reduzieren |

97| `/focus` | Schaltet die Fokusansicht um, die nur Ihren letzten Prompt, eine einzeilige Zusammenfassung der Tool-Aufrufe mit Diffstats der Bearbeitungen und die endgültige Antwort zeigt. Die Zusammenfassung der Tool-Aufrufe zählt außerdem die im Turn gestarteten Subagenten und fasst Benachrichtigungen über abgeschlossene Hintergrundaufgaben zu einer einzigen Zahl zusammen. Die Auswahl bleibt sitzungsübergreifend erhalten; setzen Sie [`viewMode`](/docs/de/settings-reference#viewmode) in den Einstellungen, um sie zu überschreiben. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar. Führen Sie von einem [Remote Control](/docs/de/remote-control)-Client `/focus [on\|off]` aus, um die Fokusansicht nur für die aktuelle Sitzung ein- oder auszuschalten, ohne Ihre gespeicherte Auswahl zu ändern; dies erfordert Claude Code v2.1.281 oder höher. Die [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) bietet eine eigene Focus-Ansicht als Umschalter im Befehlsmenü, die als Erweiterungseinstellung gespeichert wird, unabhängig von `viewMode` |97| `/focus` | Schaltet die Fokusansicht um, die nur Ihren letzten Prompt, eine einzeilige Zusammenfassung der Tool-Aufrufe mit Diffstats der Bearbeitungen und die endgültige Antwort zeigt. Die Zusammenfassung der Tool-Aufrufe zählt außerdem die im Turn gestarteten Subagenten und fasst Benachrichtigungen über abgeschlossene Hintergrundaufgaben zu einer einzigen Zahl zusammen. Die Auswahl bleibt sitzungsübergreifend erhalten; setzen Sie [`viewMode`](/docs/de/settings-reference#viewmode) in den Einstellungen, um sie zu überschreiben. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar. Führen Sie von einem [Remote Control](/docs/de/remote-control)-Client `/focus [on\|off]` aus, um die Fokusansicht nur für die aktuelle Sitzung ein- oder auszuschalten, ohne Ihre gespeicherte Auswahl zu ändern; dies erfordert Claude Code v2.1.281 oder höher. Die [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) bietet eine eigene Focus-Ansicht als Umschalter im Befehlsmenü, die als Erweiterungseinstellung gespeichert wird, unabhängig von `viewMode` |


111| `/login` | Meldet Sie bei Ihrem Anthropic-Konto an |111| `/login` | Meldet Sie bei Ihrem Anthropic-Konto an |

112| `/logout` | Meldet Sie von Ihrem Anthropic-Konto ab |112| `/logout` | Meldet Sie von Ihrem Anthropic-Konto ab |

113| `/loop [interval] [prompt]` | **[Skill](/docs/de/skills#bundled-skills).** Führt einen Prompt wiederholt aus, solange die Sitzung geöffnet bleibt. Lassen Sie das Intervall weg, und Claude [bestimmt das Tempo zwischen den Iterationen selbst](/docs/de/scheduled-tasks#let-claude-choose-the-interval). Lassen Sie den Prompt weg, und Claude führt den [integrierten Wartungs-Prompt](/docs/de/scheduled-tasks#run-the-built-in-maintenance-prompt) oder Ihre [`loop.md`](/docs/de/scheduled-tasks#customize-the-default-prompt-with-loop-md) aus. Beispiel: `/loop 5m check if the deploy finished`. Siehe [Prompts nach Zeitplan ausführen](/docs/de/scheduled-tasks). Alias: `/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/de/skills#bundled-skills).** Führt einen Prompt wiederholt aus, solange die Sitzung geöffnet bleibt. Lassen Sie das Intervall weg, und Claude [bestimmt das Tempo zwischen den Iterationen selbst](/docs/de/scheduled-tasks#let-claude-choose-the-interval). Lassen Sie den Prompt weg, und Claude führt den [integrierten Wartungs-Prompt](/docs/de/scheduled-tasks#run-the-built-in-maintenance-prompt) oder Ihre [`loop.md`](/docs/de/scheduled-tasks#customize-the-default-prompt-with-loop-md) aus. Beispiel: `/loop 5m check if the deploy finished`. Siehe [Prompts nach Zeitplan ausführen](/docs/de/scheduled-tasks). Alias: `/proactive` |

114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Verwaltet MCP-Serververbindungen und die OAuth-Authentifizierung. Führen Sie den Befehl ohne Argument aus, um die interaktive Liste zu öffnen, oder übergeben Sie `reconnect`, `enable` oder `disable` mit einem Servernamen oder `all`, um den Verbindungsstatus zu ändern, ohne die Liste zu öffnen. `reconnect all` [versucht jeden Server erneut, der fehlgeschlagen ist oder eine Authentifizierung benötigt](/docs/de/mcp#retry-failed-servers-yourself). Auch im nicht interaktiven Modus (`-p`) verfügbar, wo die Ausführung ohne Argument eine Textzusammenfassung des Serverstatus ausgibt, statt die Liste zu öffnen; erfordert Claude Code v2.1.205 oder höher |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Verwaltet MCP-Serververbindungen und die OAuth-Authentifizierung. Führen Sie den Befehl ohne Argument aus, um die interaktive Liste zu öffnen, oder übergeben Sie `reconnect`, `enable` oder `disable` mit einem Servernamen oder `all`, um den Verbindungsstatus zu ändern, ohne die Liste zu öffnen. `reconnect all` [versucht jeden Server erneut, der fehlgeschlagen ist oder eine Authentifizierung benötigt](/docs/de/mcp#retry-failed-servers-yourself). Im nicht interaktiven Modus (`-p`) gibt die Ausführung ohne Argument eine Textzusammenfassung des Serverstatus aus, statt die Liste zu öffnen |

115| `/memory` | Bearbeitet `CLAUDE.md`-Dateien, aktiviert oder deaktiviert [Auto-Memory](/docs/de/memory#auto-memory) und zeigt Auto-Memory-Einträge an |115| `/memory` | Bearbeitet `CLAUDE.md`-Dateien, aktiviert oder deaktiviert [Auto-Memory](/docs/de/memory#auto-memory) und zeigt Auto-Memory-Einträge an |

116| `/mobile` | Zeigt einen QR-Code zum Herunterladen der Claude-Mobile-App an. Aliase: `/ios`, `/android` |116| `/mobile` | Zeigt einen QR-Code zum Herunterladen der Claude-Mobile-App an. Aliase: `/ios`, `/android` |

117| `/model [model]` | Wechselt das KI-Modell und speichert es als Standard für neue Sitzungen. Bei Modellen, die dies unterstützen, verwenden Sie die Pfeiltasten links/rechts, um [die Effort-Stufe anzupassen](/docs/de/model-config#adjust-effort-level). Ohne Argument wird eine Auswahl geöffnet; drücken Sie `s` auf einer Zeile, um nur für die aktuelle Sitzung zu wechseln. Siehe [wann Claude Code Sie bittet, den Wechsel zu bestätigen](/docs/de/prompt-caching#switching-models). Sobald Sie den Wechsel bestätigt haben, sofern Claude Code danach fragt, wendet Claude Code die Änderung an, ohne auf das Ende der aktuellen Antwort zu warten. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange, etwa bei einem [Drittanbieter](/docs/de/third-party-integrations). Auch im nicht interaktiven Modus (`-p`) mit einem Modellargument statt der Auswahl verfügbar, wo es nur für die aktuelle Sitzung gilt und nicht als Standard gespeichert wird; erfordert Claude Code v2.1.205 oder höher |117| `/model [model]` | Wechselt das KI-Modell und speichert es als Standard für neue Sitzungen. Bei Modellen, die dies unterstützen, verwenden Sie die Pfeiltasten links/rechts, um [die Effort-Stufe anzupassen](/docs/de/model-config#adjust-effort-level). Ohne Argument wird eine Auswahl geöffnet; drücken Sie `s` auf einer Zeile, um nur für die aktuelle Sitzung zu wechseln. Siehe [wann Claude Code Sie bittet, den Wechsel zu bestätigen](/docs/de/prompt-caching#switching-models). Sobald Sie den Wechsel bestätigt haben, sofern Claude Code danach fragt, wendet Claude Code die Änderung an, ohne auf das Ende der aktuellen Antwort zu warten. Vor v2.1.242 entschied Claude Code anhand eines von Anthropic abgerufenen Feature-Flags, ob der Befehl mitten im Turn ausgeführt oder bis zum Ende des Turns in die Warteschlange gestellt wurde, und stellte ihn in einer Sitzung, die [keine Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), immer in die Warteschlange, etwa bei einem [Drittanbieter](/docs/de/third-party-integrations). Auch im nicht interaktiven Modus (`-p`) mit einem Modellargument statt der Auswahl verfügbar, wo es nur für die aktuelle Sitzung gilt und nicht als Standard gespeichert wird; erfordert Claude Code v2.1.205 oder höher |


130| `/release-notes` | Zeigt das Changelog in einer interaktiven Versionsauswahl an. Wählen Sie eine bestimmte Version, um ihre Release Notes zu sehen, oder lassen Sie alle Versionen anzeigen. Die Notes erscheinen in Ihrem Transkript, ohne in die Konversation einzugehen, die Claude sieht |130| `/release-notes` | Zeigt das Changelog in einer interaktiven Versionsauswahl an. Wählen Sie eine bestimmte Version, um ihre Release Notes zu sehen, oder lassen Sie alle Versionen anzeigen. Die Notes erscheinen in Ihrem Transkript, ohne in die Konversation einzugehen, die Claude sieht |

131| `/reload-plugins [--force]` | Lädt alle aktiven [Plugins](/docs/de/plugins/overview) neu, um ausstehende Änderungen ohne Neustart anzuwenden. Meldet die Anzahl für jede neu geladene Komponente und kennzeichnet etwaige Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen sind, und dadurch den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt das Neuladen, sofern Sie nicht `--force` übergeben. Auch im nicht interaktiven Modus (`-p`), im Agent SDK und in der Desktop-App verfügbar, wo er nur bei direkt in die Sitzung eingegebenen Eingaben ausgeführt wird und keine Änderungen an Plugin-MCP-Servern anwendet; erfordert Claude Code v2.1.260 oder höher. Siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) |131| `/reload-plugins [--force]` | Lädt alle aktiven [Plugins](/docs/de/plugins/overview) neu, um ausstehende Änderungen ohne Neustart anzuwenden. Meldet die Anzahl für jede neu geladene Komponente und kennzeichnet etwaige Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen sind, und dadurch den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt das Neuladen, sofern Sie nicht `--force` übergeben. Auch im nicht interaktiven Modus (`-p`), im Agent SDK und in der Desktop-App verfügbar, wo er nur bei direkt in die Sitzung eingegebenen Eingaben ausgeführt wird und keine Änderungen an Plugin-MCP-Servern anwendet; erfordert Claude Code v2.1.260 oder höher. Siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) |

132| `/reload-skills` | Durchsucht [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, damit während der Sitzung auf der Festplatte hinzugefügte oder geänderte Skills ohne Neustart verfügbar werden. Meldet, wie viele Skills verfügbar sind und wie viele hinzugefügt oder entfernt wurden |132| `/reload-skills` | Durchsucht [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, damit während der Sitzung auf der Festplatte hinzugefügte oder geänderte Skills ohne Neustart verfügbar werden. Meldet, wie viele Skills verfügbar sind und wie viele hinzugefügt oder entfernt wurden |

133| `/remote-control` | Macht diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai aus verfügbar. Wenn Sie den Befehl im abgemeldeten Zustand ausführen, wird ausgegeben, dass Remote Control ein claude.ai-Abonnement erfordert, und erklärt, wie Sie sich anmelden; vor v2.1.206 wurde `Unknown command: /remote-control` gemeldet. Alias: `/rc` |133| `/remote-control` | Macht diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai aus verfügbar. Wenn Sie den Befehl im abgemeldeten Zustand ausführen, wird ausgegeben, dass Remote Control ein claude.ai-Abonnement erfordert, und erklärt, wie Sie sich anmelden. Alias: `/rc` |

134| `/remote-env` | Wählt die Standard-[Cloud-Umgebung](/docs/de/cloud-environments#select-an-environment-from-the-cli) für Cloud-Sitzungen, die Sie über die CLI starten |134| `/remote-env` | Wählt die Standard-[Cloud-Umgebung](/docs/de/cloud-environments#select-an-environment-from-the-cli) für Cloud-Sitzungen, die Sie über die CLI starten |

135| `/rename [name]` | Benennt die aktuelle Sitzung um und zeigt den Namen in der Prompt-Leiste an. Ohne Namen wird automatisch einer aus dem Konversationsverlauf erzeugt. Auch im nicht interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder höher. Auf jeder Oberfläche zum Umbenennen, einschließlich claude.ai und der Desktop-App, ersetzt Claude Code Steuer- und unsichtbare Zeichen im neuen Namen durch Leerzeichen und begrenzt den Namen auf 200 Zeichen. Wenn der Name nach dem Entfernen unsichtbarer Zeichen leer ist, lehnt Claude Code ihn ab und zeigt `That name is empty once invisible characters are removed. Usage: /rename <name>` an. Die Zeichenersetzung und die Längenbegrenzung erfordern Claude Code v2.1.221 oder höher |135| `/rename [name]` | Benennt die aktuelle Sitzung um und zeigt den Namen in der Prompt-Leiste an. Ohne Namen wird automatisch einer aus dem Konversationsverlauf erzeugt. Auch im nicht interaktiven Modus (`-p`) verfügbar. Auf jeder Oberfläche zum Umbenennen, einschließlich claude.ai und der Desktop-App, ersetzt Claude Code Steuer- und unsichtbare Zeichen im neuen Namen durch Leerzeichen und begrenzt den Namen auf 200 Zeichen. Wenn der Name nach dem Entfernen unsichtbarer Zeichen leer ist, lehnt Claude Code ihn ab und zeigt `That name is empty once invisible characters are removed. Usage: /rename <name>` an. Die Zeichenersetzung und die Längenbegrenzung erfordern Claude Code v2.1.221 oder höher |

136| `/resume [session]` | Setzt eine Konversation anhand von ID oder Name fort oder öffnet die Sitzungsauswahl. [Hintergrundsitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` markiert. Wenn Sie eine noch laufende Sitzung fortsetzen, aus der Auswahl oder per ID oder Name, wird [diese Sitzung geöffnet](/docs/de/sessions#resume-a-running-background-session): Ihre aktuelle Konversation wechselt in den Hintergrund, und dieses Terminal wird an die laufende Sitzung angehängt. Drücken Sie `←` bei leerem Prompt, um zur Agent-Ansicht zurückzukehren, die auch die Konversation auflistet, die Sie verlassen haben. Vor v2.1.285 lehnte Claude Code dies ab und forderte Sie auf, die Sitzung mit `claude attach` zu öffnen oder sie zuerst zu stoppen. Alias: `/continue` |136| `/resume [session]` | Setzt eine Konversation anhand von ID oder Name fort oder öffnet die Sitzungsauswahl. [Hintergrundsitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` markiert. Wenn Sie eine noch laufende Sitzung fortsetzen, aus der Auswahl oder per ID oder Name, wird [diese Sitzung geöffnet](/docs/de/sessions#resume-a-running-background-session): Ihre aktuelle Konversation wechselt in den Hintergrund, und dieses Terminal wird an die laufende Sitzung angehängt. Drücken Sie `←` bei leerem Prompt, um zur Agent-Ansicht zurückzukehren, die auch die Konversation auflistet, die Sie verlassen haben. Vor v2.1.285 lehnte Claude Code dies ab und forderte Sie auf, die Sitzung mit `claude attach` zu öffnen oder sie zuerst zu stoppen. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias von [`/code-review`](/docs/de/code-review#review-a-diff-locally): prüft den aktuellen Diff oder eine übergebene PR-Nummer, einen Branch oder einen Pfad, etwa `/review 1234`, und akzeptiert dieselben Effort-Stufen und Flags. Ohne angegebene Stufe verwendet das Review die zuletzt von Ihnen eingegebene Stufe von `low` bis `max` erneut; die genauen Regeln finden Sie unter [Einen Diff lokal reviewen](/docs/de/code-review#review-a-diff-locally). Für ein tiefgehendes Cloud-Review verwenden Sie [`/code-review ultra`](/docs/de/ultrareview). Vor v2.1.223 war `/review` ein separater Befehl, der ein einstufiges, nur lesendes Review eines GitHub Pull Requests anhand der Nummer ausführte und bei Ausführung ohne Argument offene PRs zur Auswahl auflistete; von v2.1.186 bis v2.1.201 nutzte er dieselbe Multi-Agenten-Engine wie `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias von [`/code-review`](/docs/de/code-review#review-a-diff-locally): prüft den aktuellen Diff oder eine übergebene PR-Nummer, einen Branch oder einen Pfad, etwa `/review 1234`, und akzeptiert dieselben Effort-Stufen und Flags. Ohne angegebene Stufe verwendet das Review die zuletzt von Ihnen eingegebene Stufe von `low` bis `max` erneut; die genauen Regeln finden Sie unter [Einen Diff lokal reviewen](/docs/de/code-review#review-a-diff-locally). Für ein tiefgehendes Cloud-Review verwenden Sie [`/code-review ultra`](/docs/de/ultrareview). Vor v2.1.223 war `/review` ein separater Befehl, der ein einstufiges, nur lesendes Review eines GitHub Pull Requests anhand der Nummer ausführte und bei Ausführung ohne Argument offene PRs zur Auswahl auflistete; von v2.1.186 bis v2.1.201 nutzte er dieselbe Multi-Agenten-Engine wie `/code-review medium` |

138| `/rewind` | Setzt die Konversation und/oder den Code auf einen früheren Punkt zurück oder fasst ab einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/docs/de/checkpointing). Aliase: `/checkpoint`, `/undo` |138| `/rewind` | Setzt die Konversation und/oder den Code auf einen früheren Punkt zurück oder fasst ab einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/docs/de/checkpointing). Aliase: `/checkpoint`, `/undo` |

Details

419 * Sie können mehrere Dateien in einer einzelnen Nachricht referenzieren (z. B. „@file1.js and @file2.js“)419 * Sie können mehrere Dateien in einer einzelnen Nachricht referenzieren (z. B. „@file1.js and @file2.js“)

420</Tip>420</Tip>

421 421 

422Um zu verhindern, dass `@`-Referenzen Dateiinhalte und Verzeichnisauflistungen in Ihre Nachricht einfügen, setzen Sie [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/de/env-vars#variables) in Ihrer Shell oder in Ihren Benutzereinstellungen. Claude erhält dann die von Ihnen referenzierten Pfade zusammen mit einem Hinweis, sie mit seinen Datei-Tools zu lesen. Die Variable erfordert Claude Code v2.1.299 oder höher, und Claude Code ignoriert sie in Projekt- und lokalen Einstellungen.

423 

422***424***

423 425 

424<h3 id="run-claude-on-a-schedule">426<h3 id="run-claude-on-a-schedule">

Details

1602| System-Prompt und Ausgabestil | Beide gelten weiterhin |1602| System-Prompt und Ausgabestil | Beide gelten weiterhin |

1603| Projekt-Root CLAUDE.md und ungebundene Regeln | Neu eingefügt von der Festplatte |1603| Projekt-Root CLAUDE.md und ungebundene Regeln | Neu eingefügt von der Festplatte |

1604| Auto-Memory | Neu eingefügt von der Festplatte |1604| Auto-Memory | Neu eingefügt von der Festplatte |

1605| [Git-Status-Snapshot](/docs/de/settings-reference#includegitinstructions) | Claude Code liest einen neuen aus Ihrem Repository |1605| [Git-Status-Snapshot](/docs/de/settings-reference#includegitinstructions) | Wenn die Sitzung mit einem Snapshot gestartet wurde, liest Claude Code einen neuen aus Ihrem Repository |

1606| 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 |1606| 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| Regeln mit `paths:` Frontmatter | Claude Code lädt sie [bei Bedarf](/docs/de/memory#path-specific-rules) neu |1607| Regeln mit `paths:` Frontmatter | Claude Code lädt sie [bei Bedarf](/docs/de/memory#path-specific-rules) neu |

1608| Verschachtelte CLAUDE.md in Unterverzeichnissen | Claude Code lädt sie [bei Bedarf](/docs/de/memory#how-claude-md-files-load) neu |1608| Verschachtelte CLAUDE.md in Unterverzeichnissen | Claude Code lädt sie [bei Bedarf](/docs/de/memory#how-claude-md-files-load) neu |


1622 Wenn sich Ihr Kontext füllt1622 Wenn sich Ihr Kontext füllt

1623</h2>1623</h2>

1624 1624 

1625Claude Code komprimiert automatisch, wenn Sie sich dem Limit nähern, sodass ein volles Kontextfenster Ihre Sitzung nicht beendet. Der automatische Durchgang funktioniert genauso wie der `/compact`-Schritt in der Zeitleiste. Siehe [Wenn sich der Kontext füllt](/docs/de/how-claude-code-works#when-context-fills-up) für das, was er bewahrt.1625Claude Code komprimiert automatisch, wenn Sie sich dem Limit nähern, sodass ein volles Kontextfenster Ihre Sitzung nicht beendet. Der automatische Durchgang funktioniert genauso wie der `/compact`-Schritt in der Zeitleiste. Siehe [Wenn sich der Kontext füllt](/docs/de/how-claude-code-works#when-context-fills-up) für das, was er bewahrt. Informationen dazu, wann Claude Code auch eine Konversation komprimiert, die Sie ruhen lassen, finden Sie unter [Komprimierung bei Inaktivität](/docs/de/settings-reference#idlecompaction).

1626 1626 

1627Sie können auch handeln, bevor der automatische Durchgang ausgeführt wird:1627Sie können auch handeln, bevor der automatische Durchgang ausgeführt wird:

1628 1628 

Details

128* **Tolerieren Sie, dass Sie von innen aufgerufen werden**. Claude Code wendet den Launcher auf jeden verschachtelten Self-Spawn an, daher muss ein Launcher, der eine exklusive Ressource erwirbt, erkennen, dass er sie bereits hält.128* **Tolerieren Sie, dass Sie von innen aufgerufen werden**. Claude Code wendet den Launcher auf jeden verschachtelten Self-Spawn an, daher muss ein Launcher, der eine exklusive Ressource erwirbt, erkennen, dass er sie bereits hält.

129* **Schreiben Sie nicht auf das Terminal, bevor Claude Code startet**. Alles, das vor dem `exec` gedruckt wird, wird als Absturzursache gemeldet, wenn die Sitzung vor der Initialisierung stirbt.129* **Schreiben Sie nicht auf das Terminal, bevor Claude Code startet**. Alles, das vor dem `exec` gedruckt wird, wird als Absturzursache gemeldet, wenn die Sitzung vor der Initialisierung stirbt.

130* **Verlassen Sie sich nicht darauf, wie Argumente geschrieben werden**. Der Wert eines Flags kann als eigenes Argument ankommen, `--flag value`, oder mit dem Flag verbunden, `--flag=value`. Welche Form ein Flag verwendet, kann sich zwischen Versionen ändern.130* **Verlassen Sie sich nicht darauf, wie Argumente geschrieben werden**. Der Wert eines Flags kann als eigenes Argument ankommen, `--flag value`, oder mit dem Flag verbunden, `--flag=value`. Welche Form ein Flag verwendet, kann sich zwischen Versionen ändern.

131* **Führen Sie `exec` aus dem Verzeichnis aus, in dem der Launcher gestartet wurde**. Claude Code arbeitet in dem Verzeichnis, in dem es startet, daher kann ein Launcher, der das Verzeichnis wechselt, eine Sitzung im falschen Projekt starten. Wenn der Launcher einen Namespace oder eine Sandbox betreten muss, die das Arbeitsverzeichnis zurücksetzt, wechseln Sie darin vor dem `exec` zurück in das Startverzeichnis.

131 132 

132<h3 id="format-of-the-launcher-value">133<h3 id="format-of-the-launcher-value">

133 Format des Launcher-Wertes134 Format des Launcher-Wertes

Details

170| Skill erscheint nicht in `/skills` | Skill-Datei befindet sich unter `.claude/skills/name.md` statt in einem Ordner | Verwenden Sie einen Ordner mit `SKILL.md` darin: `.claude/skills/name/SKILL.md`. |170| Skill erscheint nicht in `/skills` | Skill-Datei befindet sich unter `.claude/skills/name.md` statt in einem Ordner | Verwenden Sie einen Ordner mit `SKILL.md` darin: `.claude/skills/name/SKILL.md`. |

171| Skill erscheint in `/skills`, aber Claude ruft ihn nie auf | Skill hat `disable-model-invocation: true` in seinem Frontmatter, oder seine Beschreibung stimmt nicht damit überein, wie Sie die Anfrage formulieren | Überprüfen Sie das Badge in `/skills`: Ein Label „user-only“ bedeutet, dass Claude es nicht von selbst auslöst. Siehe [Skill-Aufruf](/docs/de/skills). |171| Skill erscheint in `/skills`, aber Claude ruft ihn nie auf | Skill hat `disable-model-invocation: true` in seinem Frontmatter, oder seine Beschreibung stimmt nicht damit überein, wie Sie die Anfrage formulieren | Überprüfen Sie das Badge in `/skills`: Ein Label „user-only“ bedeutet, dass Claude es nicht von selbst auslöst. Siehe [Skill-Aufruf](/docs/de/skills). |

172| Anweisungen im Unterverzeichnis `CLAUDE.md` scheinen ignoriert zu werden | Unterverzeichnisdateien werden bei Bedarf geladen, nicht beim Sitzungsstart | Um die `CLAUDE.md` eines Unterverzeichnisses zu laden, bitten Sie Claude, eine andere Datei in diesem Unterverzeichnis zu lesen. Siehe [wann Unterverzeichnisdateien geladen werden](/docs/de/memory#how-claude-md-files-load). |172| Anweisungen im Unterverzeichnis `CLAUDE.md` scheinen ignoriert zu werden | Unterverzeichnisdateien werden bei Bedarf geladen, nicht beim Sitzungsstart | Um die `CLAUDE.md` eines Unterverzeichnisses zu laden, bitten Sie Claude, eine andere Datei in diesem Unterverzeichnis zu lesen. Siehe [wann Unterverzeichnisdateien geladen werden](/docs/de/memory#how-claude-md-files-load). |

173| Subagent ignoriert `CLAUDE.md`-Anweisungen | Die integrierten Explore- und Plan-Agenten überspringen `CLAUDE.md`. Ein benutzerdefinierter Subagent lädt es auf die gleiche Weise wie die Hauptkonversation, es sei denn, seine Definition setzt [`omitClaudeMd`](/docs/de/sub-agents#supported-frontmatter-fields) | Für Explore oder Plan wiederholen Sie die Anweisung in Ihrer delegierenden Aufforderung. Für einen Subagenten, der `omitClaudeMd` setzt, entfernen Sie das Feld. Für jeden anderen benutzerdefinierten Subagenten setzen Sie kritische Anweisungen in den Agent-Dateitext, der zur Systemaufforderung des Agenten wird. Siehe [was beim Start geladen wird](/docs/de/sub-agents#what-loads-at-startup). |173| Subagent ignoriert `CLAUDE.md`-Anweisungen | Die integrierten Explore- und Plan-Agenten überspringen `CLAUDE.md` beim Start. Ein benutzerdefinierter Subagent lädt es auf die gleiche Weise wie die Hauptkonversation, es sei denn, seine Definition setzt [`omitClaudeMd`](/docs/de/sub-agents#supported-frontmatter-fields) | Für Explore oder Plan wiederholen Sie die Anweisung in Ihrem delegierenden Prompt. Für einen Subagenten, der `omitClaudeMd` setzt, entfernen Sie das Feld. Für jeden anderen benutzerdefinierten Subagenten setzen Sie kritische Anweisungen in den Text der Agent-Datei, der zum System-Prompt des Agenten wird. Siehe [was beim Start geladen wird](/docs/de/sub-agents#what-loads-at-startup). |

174| Cleanup-Logik wird am Sitzungsende nie ausgeführt | Kein `SessionEnd`-Hook konfiguriert | Fügen Sie einen `SessionEnd`-Hook in `settings.json` hinzu. Siehe die [Hook-Ereignisliste](/docs/de/hooks#hook-events). |174| Cleanup-Logik wird am Sitzungsende nie ausgeführt | Kein `SessionEnd`-Hook konfiguriert | Fügen Sie einen `SessionEnd`-Hook in `settings.json` hinzu. Siehe die [Hook-Ereignisliste](/docs/de/hooks#hook-events). |

175| MCP-Server in `.mcp.json` werden nie geladen | Datei befindet sich unter `.claude/`, oder ihre Server befinden sich unter einem Top-Level-Schlüssel `servers`, wie in VS Code's `mcp.json`, statt unter `mcpServers` | Projekt-MCP-Konfiguration geht an die Repository-Root als `.mcp.json`, nicht in `.claude/`, mit Servern unter dem Schlüssel `mcpServers`. Siehe [MCP-Konfiguration](/docs/de/mcp). |175| MCP-Server in `.mcp.json` werden nie geladen | Datei befindet sich unter `.claude/`, oder ihre Server befinden sich unter einem Top-Level-Schlüssel `servers`, wie in VS Code's `mcp.json`, statt unter `mcpServers` | Projekt-MCP-Konfiguration geht an die Repository-Root als `.mcp.json`, nicht in `.claude/`, mit Servern unter dem Schlüssel `mcpServers`. Siehe [MCP-Konfiguration](/docs/de/mcp). |

176| MCP-Server unter `mcpServers` in `settings.json` hinzugefügt, aber erscheinen nie | `settings.json` liest keinen `mcpServers`-Schlüssel | Definieren Sie Projekt-Server in `.mcp.json` an der Repository-Root, oder führen Sie `claude mcp add --scope user` für benutzergesteuerte Server aus. Siehe [MCP-Konfiguration](/docs/de/mcp). |176| MCP-Server unter `mcpServers` in `settings.json` hinzugefügt, aber erscheinen nie | `settings.json` liest keinen `mcpServers`-Schlüssel | Definieren Sie Projekt-Server in `.mcp.json` an der Repository-Root, oder führen Sie `claude mcp add --scope user` für benutzergesteuerte Server aus. Siehe [MCP-Konfiguration](/docs/de/mcp). |

desktop.md +133 −9

Details

101| **Accept edits** | `acceptEdits` | Claude akzeptiert Dateibearbeitungen automatisch und häufige Dateisystem-Befehle wie `mkdir`, `touch` und `mv`, fragt aber immer noch vor dem Ausführen anderer Terminal-Befehle. Verwenden Sie dies, wenn Sie Dateiänderungen vertrauen und schnellere Iterationen wünschen. |101| **Accept edits** | `acceptEdits` | Claude akzeptiert Dateibearbeitungen automatisch und häufige Dateisystem-Befehle wie `mkdir`, `touch` und `mv`, fragt aber immer noch vor dem Ausführen anderer Terminal-Befehle. Verwenden Sie dies, wenn Sie Dateiänderungen vertrauen und schnellere Iterationen wünschen. |

102| **Plan** | `plan` | Claude liest Dateien und führt Befehle aus, um zu erkunden, schlägt dann einen Plan vor, ohne Ihren Quellcode zu bearbeiten. Gut für komplexe Aufgaben, bei denen Sie den Ansatz zuerst überprüfen möchten. |102| **Plan** | `plan` | Claude liest Dateien und führt Befehle aus, um zu erkunden, schlägt dann einen Plan vor, ohne Ihren Quellcode zu bearbeiten. Gut für komplexe Aufgaben, bei denen Sie den Ansatz zuerst überprüfen möchten. |

103| **Auto** | `auto` | Claude läuft ohne wiederkehrende Berechtigungsabfragen; vor Aktionen wie Shell-Befehlen und Netzwerkanfragen führt ein Hintergrund-Klassifikator eine Überprüfung durch, dass sie mit Ihrer Anfrage übereinstimmen. Wird angezeigt, wenn [Auto mode verfügbar ist](#auto-mode-availability); es gibt keinen separaten Settings-Umschalter dafür. |103| **Auto** | `auto` | Claude läuft ohne wiederkehrende Berechtigungsabfragen; vor Aktionen wie Shell-Befehlen und Netzwerkanfragen führt ein Hintergrund-Klassifikator eine Überprüfung durch, dass sie mit Ihrer Anfrage übereinstimmen. Wird angezeigt, wenn [Auto mode verfügbar ist](#auto-mode-availability); es gibt keinen separaten Settings-Umschalter dafür. |

104| **Bypass permissions** | `bypassPermissions` | Claude läuft ohne Berechtigungsabfragen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), Sicherheitsklassifikatoren, wenn Claude [auf externen Websites agiert](#browse-external-sites), oder Desktop-Aktionen, bei denen Claude immer zuerst fragt, wie z. B. [Archivieren einer Sitzung](#work-across-sessions). Äquivalent zu `--dangerously-skip-permissions` in der CLI. Aktivieren Sie dies auf Pro- und Max-Plänen in Ihren Einstellungen → Claude Code unter „Allow bypass permissions mode“; auf Team- und Enterprise-Plänen gibt es keinen Settings-Umschalter, und die Organisationsrichtlinie kontrolliert es stattdessen. Verwenden Sie dies nur in sandboxierten Containern oder VMs. |104| **Bypass permissions** | `bypassPermissions` | Claude läuft ohne Berechtigungsabfragen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), Sicherheitsklassifikatoren, wenn Claude [auf externen Websites agiert](#browse-external-sites), oder Desktop-Aktionen wie das Löschen einer Sitzung, jedoch nicht das [Archivieren einer Sitzung](#work-across-sessions). Äquivalent zu `--dangerously-skip-permissions` in der CLI. Aktivieren Sie dies auf Pro- und Max-Plänen in Ihren Einstellungen → Claude Code unter „Allow bypass permissions mode“; auf Team- und Enterprise-Plänen gibt es keinen Settings-Umschalter, und die Organisationsrichtlinie kontrolliert es stattdessen. Verwenden Sie dies nur in sandboxierten Containern oder VMs. |

105 105 

106Frühere Versionen der Code-Registerkarte bezeichneten diese Modi als Ask permissions, Auto accept edits und Plan mode.106Frühere Versionen der Code-Registerkarte bezeichneten diese Modi als Ask permissions, Auto accept edits und Plan mode.

107 107 


131 131 

132Das Browser-Pane kann auch statische HTML-Dateien, PDFs, Bilder und Videos aus Ihrem Projekt öffnen. Klicken Sie auf einen HTML-, PDF-, Bild- oder Videopfad im Chat, um ihn dort zu öffnen.132Das Browser-Pane kann auch statische HTML-Dateien, PDFs, Bilder und Videos aus Ihrem Projekt öffnen. Klicken Sie auf einen HTML-, PDF-, Bild- oder Videopfad im Chat, um ihn dort zu öffnen.

133 133 

134<Note>

135 In einer [SSH-Sitzung](#ssh-sessions) kann Claude Ihre App nicht im Browser-Pane öffnen, da es dort nicht über die Tools des Panes verfügt. Um sich die App selbst anzusehen, [leiten Sie ihren Port an Ihren Computer weiter](#reach-a-port-on-the-remote-machine).

136</Note>

137 

134Aus dem Browser-Pane können Sie:138Aus dem Browser-Pane können Sie:

135 139 

136* Direkt im Browser-Pane mit Ihrer laufenden App interagieren140* Direkt im Browser-Pane mit Ihrer laufenden App interagieren


218 222 

219<Note>223<Note>

220 Die PR-Überwachung erfordert, dass die [GitHub CLI (`gh`)](https://cli.github.com/) auf Ihrem Computer installiert und authentifiziert ist. Wenn `gh` nicht installiert ist, fordert Desktop Sie auf, es beim ersten Versuch, einen PR zu erstellen, zu installieren.224 Die PR-Überwachung erfordert, dass die [GitHub CLI (`gh`)](https://cli.github.com/) auf Ihrem Computer installiert und authentifiziert ist. Wenn `gh` nicht installiert ist, fordert Desktop Sie auf, es beim ersten Versuch, einen PR zu erstellen, zu installieren.

225 

226 Richten Sie in einer [SSH-Sitzung](#ssh-sessions) `git` und `gh` auf dem Remote-Computer ein, bevor Sie auf **Create PR** klicken, da Claude den Branch dort pusht und `gh pr create` ausführt. Installieren Sie `gh` dort selbst, da Desktop Sie in einer SSH-Sitzung nicht dazu auffordert. Prüfen Sie dann dort, dass `git push` funktioniert und dass `gh auth status` meldet, dass Sie angemeldet sind.

221</Note>227</Note>

222 228 

223<h2 id="arrange-your-workspace">229<h2 id="arrange-your-workspace">


453 459 

454Claude Code wendet vier Sicherheitsverhalten sitzungsübergreifend an:460Claude Code wendet vier Sicherheitsverhalten sitzungsübergreifend an:

455 461 

456* Bevor Claude eine Sitzung archiviert, fragt es Sie zuerst. Sie sehen die Genehmigungskarte in jedem Berechtigungsmodus, einschließlich Auto- und Bypass-Berechtigungen.462* Sie erhalten eine Genehmigungskarte, bevor Claude eine Sitzung archiviert, außer im Auto-Modus und im Bypass-Permissions-Modus, in denen Claude eine Sitzung ohne Genehmigungskarte archivieren kann. Wenn Sie gefragt werden möchten, wechseln Sie zu Manual.

457* Über diese Oberfläche kann Claude keine sitzungsübergreifenden Nachrichten von einer Sitzung senden, die niemand beobachtet, z. B. eine geplante Aufgabenausführung, und kann nicht in eine liefern.463* Über diese Oberfläche kann Claude keine sitzungsübergreifenden Nachrichten von einer Sitzung senden, die niemand beobachtet, z. B. eine geplante Aufgabenausführung, und kann nicht in eine liefern.

458* Claude Code überprüft jede Nachricht von dieser Oberfläche gegen die [eingehenden Steuerelemente](/docs/de/cross-session-messaging#control-inbound-messages) der empfangenden Sitzung, auch wenn die empfangende Sitzung nicht über [sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging#availability) selbst verfügt. Wenn Sie [`crossSessionInbound`](/docs/de/settings-reference#crosssessioninbound) in der empfangenden Sitzung auf `refuse` setzen, verwirft Claude Code Nachrichten von dieser Oberfläche. Claude Code meldet die Ablehnung der Claude Desktop-App. Vor v2.1.234 verwarf Claude Code jede Nachricht von dieser Oberfläche an eine empfangende Sitzung ohne sitzungsübergreifendes Messaging.464* Claude Code überprüft jede Nachricht von dieser Oberfläche gegen die [eingehenden Steuerelemente](/docs/de/cross-session-messaging#control-inbound-messages) der empfangenden Sitzung, auch wenn die empfangende Sitzung nicht über [sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging#availability) selbst verfügt. Wenn Sie [`crossSessionInbound`](/docs/de/settings-reference#crosssessioninbound) in der empfangenden Sitzung auf `refuse` setzen, verwirft Claude Code Nachrichten von dieser Oberfläche. Claude Code meldet die Ablehnung der Claude Desktop-App. Vor v2.1.234 verwarf Claude Code jede Nachricht von dieser Oberfläche an eine empfangende Sitzung ohne sitzungsübergreifendes Messaging.

459* Claude Code zitiert jede eingehende Nachricht und schreibt sie der Sitzung zu, die sie gesendet hat, und Claude befolgt immer noch die eigenen Berechtigungseinstellungen der empfangenden Sitzung, wenn er auf eine eingeht.465* Claude Code zitiert jede eingehende Nachricht und schreibt sie der Sitzung zu, die sie gesendet hat, und Claude befolgt immer noch die eigenen Berechtigungseinstellungen der empfangenden Sitzung, wenn er auf eine eingeht.


546 552 

547[Skills](/docs/de/skills) erweitern, was Claude tun kann. Claude lädt sie automatisch, wenn sie relevant sind, oder Sie können eine direkt aufrufen: Geben Sie `/` im Eingabefeld ein oder klicken Sie auf die Schaltfläche **+** und wählen Sie **Slash-Befehle** aus, um zu sehen, was verfügbar ist. Dies umfasst [integrierte Befehle](/docs/de/commands), Ihre [benutzerdefinierten Skills](/docs/de/skills#create-your-first-skill), Projekt-Skills aus Ihrer Codebasis und Skills aus allen [installierten Plugins](/docs/de/plugins/install). Wählen Sie einen aus und er wird im Eingabefeld hervorgehoben angezeigt. Geben Sie Ihre Aufgabe danach ein und senden Sie wie gewohnt.553[Skills](/docs/de/skills) erweitern, was Claude tun kann. Claude lädt sie automatisch, wenn sie relevant sind, oder Sie können eine direkt aufrufen: Geben Sie `/` im Eingabefeld ein oder klicken Sie auf die Schaltfläche **+** und wählen Sie **Slash-Befehle** aus, um zu sehen, was verfügbar ist. Dies umfasst [integrierte Befehle](/docs/de/commands), Ihre [benutzerdefinierten Skills](/docs/de/skills#create-your-first-skill), Projekt-Skills aus Ihrer Codebasis und Skills aus allen [installierten Plugins](/docs/de/plugins/install). Wählen Sie einen aus und er wird im Eingabefeld hervorgehoben angezeigt. Geben Sie Ihre Aufgabe danach ein und senden Sie wie gewohnt.

548 554 

549Sie können einen Befehl senden, während Claude arbeitet, genauso wie jede andere Nachricht, und die Sitzung kehrt in den Leerlauf zurück, sobald der Zug beendet ist. Vor v2.1.206 konnte ein während des Zugs gesendeter Befehl die Sitzung als laufend anzeigen lassen und Nachrichten, die Sie danach sendeten, wurden nicht zugestellt.555Sie können einen Befehl senden, während Claude arbeitet, genauso wie jede andere Nachricht, und die Sitzung kehrt in den Leerlauf zurück, sobald der Turn beendet ist.

550 556 

551Lokale Sitzungen laden Ihre persönlichen Skills aus `~/.claude/skills/`. Eine [SSH](#ssh-sessions)-Sitzung liest `~/.claude/skills/` aus dem Home-Verzeichnis des Remote-Hosts, nicht von Ihrem Computer.557Lokale Sitzungen laden Ihre persönlichen Skills aus `~/.claude/skills/`. Eine [SSH](#ssh-sessions)-Sitzung liest `~/.claude/skills/` aus dem Home-Verzeichnis des Remote-Hosts, nicht von Ihrem Computer.

552 558 


693 699 

694* **`true`**: Claude findet und verwendet automatisch einen freien Port. Geeignet für die meisten Dev-Server.700* **`true`**: Claude findet und verwendet automatisch einen freien Port. Geeignet für die meisten Dev-Server.

695* **`false`**: Claude schlägt mit einem Fehler fehl. Verwenden Sie dies, wenn Ihr Server einen bestimmten Port verwenden muss, z. B. für OAuth-Callbacks oder CORS-Allowlists.701* **`false`**: Claude schlägt mit einem Fehler fehl. Verwenden Sie dies, wenn Ihr Server einen bestimmten Port verwenden muss, z. B. für OAuth-Callbacks oder CORS-Allowlists.

696* **Nicht gesetzt (Standard)**: Claude fragt, ob der Server diesen genauen Port benötigt, und speichert dann Ihre Antwort.702* **Nicht gesetzt (Standard)**: Ihr Server erhält den nächsten freien Port, wie bei `true`, außer in dem unten beschriebenen Fall. Vor Claude Desktop v2.37337.0 fragt Claude stattdessen, ob der Server genau diesen Port benötigt, und speichert Ihre Antwort dann in `launch.json`.

697 703 

698Wenn Claude einen anderen Port wählt, übergibt es den zugewiesenen Port an Ihren Server über die Umgebungsvariable `PORT`.704Wenn Ihr bevorzugter Port belegt ist und `autoPort` nicht gesetzt ist, bleibt Ihr Server gestoppt, wenn alle folgenden Bedingungen zutreffen:

705 

706* Sie starten den Server über ein `npm`-, `yarn`-, `pnpm`- oder `bun`-Skript.

707* Ihr bevorzugter Port ist in diesem Skript fest codiert, oder Claude kann das Skript nicht untersuchen.

708* Sie übergeben den Port nicht in `runtimeArgs`.

709 

710Geben Sie in diesem Fall den Port frei, entfernen Sie den fest codierten Wert oder ändern Sie `port` so, dass er dem Skript entspricht. Das Setzen von `"autoPort": true` funktioniert stattdessen nur bei einem Skript, das `PORT` liest.

711 

712Lassen Sie Ihren Server seinen Port aus der Umgebungsvariable `PORT` lesen, die den zugewiesenen Port enthält. Wenn Claude Ihren Server auf einen anderen Port verlegt, schreibt es außerdem einen `--port`- oder `-p`-Wert in `runtimeArgs` entsprechend um.

699 713 

700<h4 id="examples">714<h4 id="examples">

701 Beispiele715 Beispiele


840 854 

841Ein Linux- oder macOS-Remote-Computer benötigt einen unterstützten Prozessor, einen SSH-Server mit SFTP, einen Installationsordner, der nicht mit `noexec` eingehängt ist, eine funktionierende Shell und Netzwerkzugriff. Prüfen Sie jede Anforderung, bevor Sie sich verbinden oder wenn eine Verbindung nach der Anmeldung fehlschlägt:855Ein Linux- oder macOS-Remote-Computer benötigt einen unterstützten Prozessor, einen SSH-Server mit SFTP, einen Installationsordner, der nicht mit `noexec` eingehängt ist, eine funktionierende Shell und Netzwerkzugriff. Prüfen Sie jede Anforderung, bevor Sie sich verbinden oder wenn eine Verbindung nach der Anmeldung fehlschlägt:

842 856 

843* **System**: ein x86\_64- oder arm64-Prozessor. Der Computer muss außerdem die [Systemanforderungen](/docs/de/setup#system-requirements) von Claude Code erfüllen.857* **System**: ein x86\_64- oder arm64-Prozessor. Der Computer muss außerdem die [Systemanforderungen](/docs/de/setup#system-requirements) von Claude Code erfüllen. Unter Linux benötigt Claude Code glibc 2.17 oder höher oder musl. Um festzustellen, welches davon der Computer hat, führen Sie dort `ldd --version` aus. Installieren Sie auf einer musl-basierten Distribution wie Alpine Linux außerdem die [Pakete, die Claude Code benötigt](/docs/de/setup#alpine-linux-and-musl-based-distributions).

844* **SFTP**: Der SSH-Server muss das SFTP-Subsystem anbieten, das durch eine Zeile `Subsystem sftp` in seiner `sshd_config` aktiviert wird. Verbinden Sie sich zur Überprüfung in einem Terminal auf Ihrem Computer mit `sftp` mit demselben Host und Port. Ein funktionierender Server zeigt die Eingabeaufforderung `sftp>` an.858* **SFTP**: Der SSH-Server muss das SFTP-Subsystem anbieten, das durch eine Zeile `Subsystem sftp` in seiner `sshd_config` aktiviert wird. Verbinden Sie sich zur Überprüfung in einem Terminal auf Ihrem Computer mit `sftp` mit demselben Host und Port. Ein funktionierender Server zeigt die Eingabeaufforderung `sftp>` an.

845* **Sitzungen pro Verbindung**: Desktop unter macOS und Linux öffnet mehrere Sitzungen über eine SSH-Verbindung. Wenn die `sshd_config` des Servers `MaxSessions 1` festlegt, erhöhen Sie den Wert, zum Beispiel auf den OpenSSH-Standard von 10.859* **Sitzungen pro Verbindung**: Desktop unter macOS und Linux öffnet mehrere Sitzungen über eine SSH-Verbindung. Wenn die `sshd_config` des Servers `MaxSessions 1` festlegt, erhöhen Sie den Wert, zum Beispiel auf den OpenSSH-Standard von 10.

846* **Installationsordner**: Desktop installiert ein Hilfsprogramm und Claude Code unter `~/.claude/remote/` in Ihrem Home-Verzeichnis. Es führt sie von dort aus, daher darf dieser Ordner nicht auf einem mit `noexec` eingehängten Dateisystem liegen. Planen Sie etwa 1 GB Speicherplatz im Home-Verzeichnis jedes Benutzers ein, der sich verbindet.860* **Installationsordner**: Desktop installiert ein Hilfsprogramm und Claude Code unter `~/.claude/remote/` in Ihrem Home-Verzeichnis. Es führt sie von dort aus, daher darf dieser Ordner nicht auf einem mit `noexec` eingehängten Dateisystem liegen. Planen Sie etwa 1 GB Speicherplatz im Home-Verzeichnis jedes Benutzers ein, der sich verbindet. Was dieser Ordner enthält, erfahren Sie unter [Dateien und Prozesse auf dem Remote-Computer](#files-and-processes-on-the-remote-machine).

847* **Shell**: Die für Ihr Konto auf dem Remote-Computer festgelegte Shell muss über SSH gesendete Befehle ausführen, wie es Bash, Zsh und `sh` tun861* **Shell**: Die für Ihr Konto auf dem Remote-Computer festgelegte Shell muss über SSH gesendete Befehle ausführen, wie es Bash, Zsh und `sh` tun

848* **Netzwerk**: Claude Code läuft auf dem Remote-Computer und stellt seine Netzwerkanfragen von dort aus, daher benötigt der Computer den [Netzwerkzugriff, den Claude Code erfordert](/docs/de/network-config#network-access-requirements). Wenn der Computer Claude Code nicht herunterladen kann, lädt Desktop es auf Ihren Computer herunter und überträgt es hoch. Die übrigen Anfragen von Claude Code gehen weiterhin vom Remote-Computer aus.862* **Netzwerk**: Claude Code läuft auf dem Remote-Computer und stellt seine Netzwerkanfragen von dort aus, daher benötigt der Computer den [Netzwerkzugriff, den Claude Code erfordert](/docs/de/network-config#network-access-requirements). Wenn der Computer Claude Code nicht herunterladen kann, lädt Desktop es auf Ihren Computer herunter und überträgt es hoch. Die übrigen Anfragen von Claude Code gehen weiterhin vom Remote-Computer aus.

849 863 


878 892 

879Geben Sie `devbox` im Feld **SSH host** ein.893Geben Sie `devbox` im Feld **SSH host** ein.

880 894 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Variablen aus Ihrer Shell in einem `ProxyCommand` verwenden

897</h5>

898 

899Um eine eigene Umgebungsvariable in einem `ProxyCommand`- oder `Match exec`-Befehl zu verwenden, exportieren Sie sie in einer Shell-Startdatei wie `~/.zshrc`, beenden Sie dann Desktop und öffnen Sie es erneut. Beim Start liest Desktop, was Ihre Login-Shell exportiert, und behält diese Werte, bis Sie es beenden.

900 

901Dies erfordert Claude Desktop v2.37337.0 oder höher sowie einen `env`-Befehl, der `-0` akzeptiert. Das können Sie prüfen, indem Sie `env -0` in einem Terminal auf Ihrem Computer ausführen.

902 

881<h5 id="raise-the-ssh-connection-timeout">903<h5 id="raise-the-ssh-connection-timeout">

882 Den SSH-Verbindungs-Timeout erhöhen904 Den SSH-Verbindungs-Timeout erhöhen

883</h5>905</h5>


894 916 

895`ssh` verwendet den ersten Wert, den es für einen Host findet, daher platzieren Sie den Eintrag oberhalb jedes `Host *`-Eintrags, der `ConnectTimeout` festlegt. Führen Sie zur Bestätigung `ssh -G devbox` in einem Terminal auf Ihrem Computer aus. Die Ausgabe enthält `connecttimeout 120`. Nachdem Sie den Wert geändert haben, beenden Sie Desktop und öffnen Sie es erneut.917`ssh` verwendet den ersten Wert, den es für einen Host findet, daher platzieren Sie den Eintrag oberhalb jedes `Host *`-Eintrags, der `ConnectTimeout` festlegt. Führen Sie zur Bestätigung `ssh -G devbox` in einem Terminal auf Ihrem Computer aus. Die Ausgabe enthält `connecttimeout 120`. Nachdem Sie den Wert geändert haben, beenden Sie Desktop und öffnen Sie es erneut.

896 918 

919<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Weiterleitungseinstellungen, die Desktop ausgeschaltet lässt

921</h5>

922 

923Bei seiner Verbindung zum Remote-Computer lässt Desktop `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` und `Tunnel` ausgeschaltet, auch wenn Ihre SSH-Konfiguration sie einschaltet. Im [Terminal](#run-commands-in-the-terminal) oder bei einem `!`-Befehl sollten Sie damit rechnen, dass Ihre Weiterleitungseinstellungen [nur manchmal](#limits-while-desktop-is-disconnected) gelten, da Desktop dort ein separates `ssh` starten kann, das sie befolgt.

924 

925* **Um einen Port auf dem Remote-Computer zu erreichen**: [Leiten Sie ihn selbst weiter](#reach-a-port-on-the-remote-machine)

926* **Um Ihre eigenen Schlüssel vom Remote-Computer aus zu verwenden**: Richten Sie Anmeldedaten auf dem Remote-Computer selbst ein, z. B. für `git push`

927 

928Um zu verhindern, dass Desktop Ihren SSH-Agenten oder einen Port weiterleitet, führen Sie `ssh -G devbox` in einem Terminal auf Ihrem Computer aus. Führen Sie es dann erneut so aus, wie Desktop es ausführen kann, mit den ausgegebenen Werten für `hostname` und `user`, etwa `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. Die zweite Ausgabe kann Einstellungen aus einem `Match`-Block zeigen, die die erste überspringt.

929 

930Suchen Sie in beiden Ausgaben nach einer `forwardagent`-Zeile mit einem anderen Wert als `no` und nach Zeilen, die mit `localforward`, `remoteforward` oder `dynamicforward` beginnen. Wenn Sie eine finden, entfernen Sie diese Einstellung aus Ihrer SSH-Konfiguration. Gehen Sie bei einem Host, den Ihr `ProxyCommand` mit `ssh` erreicht, genauso vor.

931 

932<h4 id="reach-a-port-on-the-remote-machine">

933 Einen Port auf dem Remote-Computer erreichen

934</h4>

935 

936Um einen Server zu öffnen, der auf dem Remote-Computer läuft, z. B. einen Dev-Server auf Port 3000, leiten Sie den Port selbst weiter. Führen Sie in einem Terminal auf Ihrem Computer `ssh` mit `-L` und dem Host aus, mit dem Sie sich verbinden, z. B. `devbox`:

937 

938```bash theme={null}

939ssh -N -L 3000:localhost:3000 devbox

940```

941 

942Wenn Sie bei der Verbindung **SSH port** oder **SSH key (optional)** ausgefüllt haben, fügen Sie `-p` bzw. `-i` mit demselben Wert hinzu. Lassen Sie diesen Befehl laufen und öffnen Sie `http://localhost:3000` in einem Browser auf Ihrem Computer, um Port 3000 des Remote-Computers zu erreichen. Wenn `ssh` die Meldung `open failed: administratively prohibited` ausgibt, bitten Sie den Administrator des Computers, TCP-Weiterleitung zu erlauben, die über `AllowTcpForwarding` in der `sshd_config` des SSH-Servers gesteuert wird.

943 

897<h4 id="windows-remote-machines">944<h4 id="windows-remote-machines">

898 Windows-Remote-Computer945 Windows-Remote-Computer

899</h4>946</h4>


925Claude Code läuft als Prozess auf dem Remote-Computer unter einem Hintergrund-Hilfsprogramm, das Desktop dort installiert, und benötigt daher Ihre SSH-Verbindung nicht, um weiterzulaufen. Das Verhalten in diesem Abschnitt erfordert Claude Desktop v2.31226.0 oder höher.972Claude Code läuft als Prozess auf dem Remote-Computer unter einem Hintergrund-Hilfsprogramm, das Desktop dort installiert, und benötigt daher Ihre SSH-Verbindung nicht, um weiterzulaufen. Das Verhalten in diesem Abschnitt erfordert Claude Desktop v2.31226.0 oder höher.

926 973 

927<Warning>974<Warning>

928 Wenn Sie sich mit einem Claude-Konto bei Desktop anmelden, verlassen Sie sich nicht darauf, dass eine Aufgabe über Nacht läuft. Desktop erneuert diese Anmeldung für die Aufgabe nur, solange Desktop läuft und verbunden ist. Daher kann die Anmeldung der Aufgabe ablaufen, nachdem Sie die Verbindung getrennt haben, und die Aufgabe stoppt dann. Wie viel Zeit beim Trennen noch verbleibt, variiert.975 Wenn Sie sich mit einem Claude-Konto bei Desktop anmelden, verlassen Sie sich nicht darauf, dass eine Aufgabe über Nacht läuft. Desktop erneuert diese Anmeldung für die Aufgabe nur, solange Desktop läuft und verbunden ist. Daher kann die Anmeldung der Aufgabe ablaufen, nachdem Sie die Verbindung getrennt haben, und die Aufgabe stoppt dann. Wie viel Zeit beim Trennen noch verbleibt, variiert, und es können nur wenige Minuten sein.

929 976 

930 Die bisher erledigte Arbeit bleibt auf dem Remote-Computer, und Sie können nach Ihrer Rückkehr mit einer Nachricht fortfahren.977 Die bisher erledigte Arbeit bleibt auf dem Remote-Computer, und Sie können nach Ihrer Rückkehr mit einer Nachricht fortfahren.

931 978 


1076 1123 

1077Das Feld erfordert Claude Desktop v1.44121.0 oder höher. Wenn Ihre Organisation einschränkt, welche Ordner Sitzungen verwenden dürfen, blendet Desktop das Feld aus und belässt Worktrees innerhalb des Projekts.1124Das Feld erfordert Claude Desktop v1.44121.0 oder höher. Wenn Ihre Organisation einschränkt, welche Ordner Sitzungen verwenden dürfen, blendet Desktop das Feld aus und belässt Worktrees innerhalb des Projekts.

1078 1125 

1126<h4 id="files-and-processes-on-the-remote-machine">

1127 Dateien und Prozesse auf dem Remote-Computer

1128</h4>

1129 

1130Desktop installiert ein Hilfsprogramm und Claude Code unter `~/.claude/remote/` im Home-Verzeichnis jedes Benutzers, der sich mit einem Linux- oder macOS-Remote-Computer verbindet. Das Hilfsprogramm lauscht an keinem Netzwerkport, Claude Code und die Programme, die es startet, wie MCP-Server und Entwicklungsserver, können das jedoch.

1131 

1132| Ordner | Inhalt |

1133| - | - |

1134| `~/.claude/remote/srv/` | Das Hilfsprogramm, in einem Ordner pro Version |

1135| `~/.claude/remote/ccd-cli/` | Claude Code, in einer Datei pro Version |

1136| `~/.claude/remote/run/` | Die Laufzeitdateien des Hilfsprogramms, z. B. sein Socket und sein Log, in einem Ordner pro Computer, der sich verbindet |

1137| `~/.claude/remote/plugins/` | Plugins, die Desktop vom Computer des Benutzers kopiert |

1138| [`~/.claude/uploads/`](/docs/de/claude-directory#clear-local-data) | Dateien, die der Benutzer an Nachrichten anhängt, in einem Ordner pro Sitzung |

1139 

1140Um die Prozesse eines Benutzers aufzulisten, führen Sie `pgrep -fl "$HOME/.claude/remote/"` auf dem Remote-Computer als dieser Benutzer aus oder mit dem Home-Verzeichnis des Benutzers anstelle von `$HOME`:

1141 

1142* **Hilfsprogramm**: ein oder mehrere `server`-Prozesse für jeden Computer, der sich verbindet

1143* **Claude Code**: die Prozesse, die das Hilfsprogramm für die Sitzungen des Benutzers startet, jeweils aus einer nach ihrer Version benannten Datei, z. B. `2.1.295-…`

1144 

1145Desktop erreicht das Hilfsprogramm über die SSH-Verbindung des Benutzers, über den Unix-Socket `rpc.sock` im Ordner des Hilfsprogramms unter `~/.claude/remote/run/`. Außer root können sich andere Benutzer auf dem Computer nicht mit diesem Socket verbinden, da er den Modus 600 und sein Ordner den Modus 700 hat.

1146 

1147Wann das Hilfsprogramm von selbst stoppt, erfahren Sie unter [Grenzen, während Desktop nicht verbunden ist](#limits-while-desktop-is-disconnected).

1148 

1149Um das Hilfsprogramm und Claude Code für einen Benutzer zu entfernen:

1150 

1151<Steps>

1152 <Step title="Desktop beenden">

1153 Beenden Sie Desktop auf jedem Computer, von dem aus sich der Benutzer verbindet. Desktop installiert beide Programme bei der nächsten Verbindung erneut und kann sich selbstständig wieder verbinden.

1154 </Step>

1155 

1156 <Step title="Prozesse beenden">

1157 Führen Sie, als dieser Benutzer auf dem Remote-Computer angemeldet, `kill` mit jeder Prozess-ID aus, die [`pgrep`](#files-and-processes-on-the-remote-machine) auflistet.

1158 </Step>

1159 

1160 <Step title="Ordner löschen">

1161 Löschen Sie `~/.claude/remote/`. Um die eigenen Dateien von Claude Code in `~/.claude/` und `~/.claude.json` zu entfernen, siehe [Konfigurationsdateien entfernen](/docs/de/setup#remove-configuration-files).

1162 </Step>

1163</Steps>

1164 

1165<h5 id="end-one-session’s-process">

1166 Den Prozess einer Sitzung beenden

1167</h5>

1168 

1169Um den Claude Code-Prozess einer Sitzung zu beenden, [archivieren Sie die Sitzung](#work-in-parallel-with-sessions) in Desktop, während Desktop mit dem Remote-Computer verbunden ist. Der Prozess läuft weiter, nachdem seine Aufgabe erledigt ist und nachdem Sie Desktop beendet haben.

1170 

1171Bevor Sie eine Sitzung archivieren, die einen Worktree hat, lesen Sie [Mit Sitzungen parallel arbeiten](#work-in-parallel-with-sessions).

1172 

1173<h5 id="see-who-connected-to-the-remote-machine">

1174 Sehen, wer sich mit dem Remote-Computer verbunden hat

1175</h5>

1176 

1177Um herauszufinden, wer sich mit einem Remote-Computer verbunden hat, lesen Sie das Log des SSH-Servers auf diesem Computer, in dem eine Anmeldung von Desktop wie eine Anmeldung aus einem Terminal aussieht. Mit Desktop unter macOS oder Linux ist mit einem Eintrag pro Verbindungsaufbau von Desktop zu rechnen, nicht mit einem pro Sitzung.

1178 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Auf dem Remote-Computer eingerichtete MCP-Server verwenden

1181</h4>

1182 

1183Um einen [MCP-Server](/docs/de/mcp) aus `~/.claude.json` oder der `.mcp.json` eines Projekts in einer SSH-Sitzung zu verwenden, richten Sie ihn in diesen Dateien auf dem Remote-Computer ein. Claude Code startet deren stdio-Server dort, installieren Sie daher die Befehle, die diese Server ausführen, auf dem Remote-Computer. Zu Servern aus `claude_desktop_config.json` siehe [Grenzen, während Desktop nicht verbunden ist](#limits-while-desktop-is-disconnected).

1184 

1079<h4 id="open-an-ssh-session-from-a-link">1185<h4 id="open-an-ssh-session-from-a-link">

1080 SSH-Sitzung über einen Link öffnen1186 SSH-Sitzung über einen Link öffnen

1081</h4>1187</h4>


1207* **Cowork**: Keiner der Schlüssel gilt für [Cowork](https://claude.com/docs/cowork/overview)-Sitzungen oder geplante Aufgaben in Cowork1313* **Cowork**: Keiner der Schlüssel gilt für [Cowork](https://claude.com/docs/cowork/overview)-Sitzungen oder geplante Aufgaben in Cowork

1208* **Cloud-Sitzungen**: Keiner der Schlüssel ändert, ob [Cloud-Sitzungen](#cloud-sessions) verfügbar sind. Um sie auszuschalten, verwenden Sie die Einstellung **Cloud sessions** unter [Admin console controls](#admin-console-controls).1314* **Cloud-Sitzungen**: Keiner der Schlüssel ändert, ob [Cloud-Sitzungen](#cloud-sessions) verfügbar sind. Um sie auszuschalten, verwenden Sie die Einstellung **Cloud sessions** unter [Admin console controls](#admin-console-controls).

1209 1315 

1210Wenn Sie das Beispiel anpassen, prüfen Sie die Hostnamen und die Desktop-Version:1316Wenn Sie das Beispiel anpassen, prüfen Sie die Hostnamen, die Desktop-Version und die Dateiberechtigungen:

1211 1317 

1212* **Hostnamen**: Stellen Sie sicher, dass ein Muster in `sshHostAllowlist` auf den Hostnamen jedes `sshConfigs`-Eintrags ohne `user@` passt, da sich Entwickler sonst nicht damit verbinden können. Wie Desktop einen Hostnamen abgleicht, erfahren Sie unter [SSH-Hosts einschränken, mit denen Benutzer sich verbinden können](#restrict-which-ssh-hosts-users-can-connect-to).1318* **Hostnamen**: Stellen Sie sicher, dass ein Muster in `sshHostAllowlist` auf den Hostnamen jedes `sshConfigs`-Eintrags ohne `user@` passt, da sich Entwickler sonst nicht damit verbinden können. Wie Desktop einen Hostnamen abgleicht, erfahren Sie unter [SSH-Hosts einschränken, mit denen Benutzer sich verbinden können](#restrict-which-ssh-hosts-users-can-connect-to).

1213* **Version**: `disableDesktopLocalSessions` erfordert Claude Desktop v1.37937.0 oder höher1319* **Version**: `disableDesktopLocalSessions` erfordert Claude Desktop v1.37937.0 oder höher

1320* **Dateiberechtigungen**: Stellen Sie sicher, dass das Konto jedes Entwicklers auf dem Computer die verwaltete Einstellungsdatei lesen kann. Desktop wendet die Schlüssel in einer Datei, die das Konto nicht lesen kann, nicht an, und Claude Code [startet ebenfalls ohne sie](/docs/de/managed-settings#find-entries-claude-code-dropped).

1214 1321 

1215Legen Sie die drei Schlüssel in einer einzigen [verwalteten Quelle](/docs/de/managed-settings#how-claude-code-combines-managed-sources) ab, und zwar in der ranghöchsten, die Sie bereitstellen. Wenn Sie [serververwaltete Einstellungen](/docs/de/server-managed-settings) bereitstellen, hinterlegen Sie außerdem eine Kopie der drei Schlüssel in der ranghöchsten MDM-Richtlinie oder verwalteten Einstellungsdatei auf jedem Computer. Desktop ruft serververwaltete Einstellungen beim Start ab, und bis zu einem erfolgreichen Abruf gilt die Kopie auf dem Computer.1322Legen Sie die drei Schlüssel in einer einzigen [verwalteten Quelle](/docs/de/managed-settings#how-claude-code-combines-managed-sources) ab, und zwar in der ranghöchsten, die Sie bereitstellen. Wenn Sie [serververwaltete Einstellungen](/docs/de/server-managed-settings) bereitstellen, hinterlegen Sie außerdem eine Kopie der drei Schlüssel in der ranghöchsten MDM-Richtlinie oder verwalteten Einstellungsdatei auf jedem Computer. Desktop ruft serververwaltete Einstellungen beim Start ab, und bis zu einem erfolgreichen Abruf gilt die Kopie auf dem Computer.

1216 1323 


1558 1665 

1559Wenn MCP-Server-Umschalter nicht reagieren oder Server unter Windows keine Verbindung herstellen, überprüfen Sie, dass der Server in Ihren Einstellungen richtig konfiguriert ist, starten Sie die App neu, überprüfen Sie, dass der Server-Prozess im Task Manager läuft, und überprüfen Sie Server-Protokolle auf Verbindungsfehler.1666Wenn MCP-Server-Umschalter nicht reagieren oder Server unter Windows keine Verbindung herstellen, überprüfen Sie, dass der Server in Ihren Einstellungen richtig konfiguriert ist, starten Sie die App neu, überprüfen Sie, dass der Server-Prozess im Task Manager läuft, und überprüfen Sie Server-Protokolle auf Verbindungsfehler.

1560 1667 

1668<h3 id="ssh-connection-fails-after-you-log-in">

1669 SSH-Verbindung schlägt nach der Anmeldung fehl

1670</h3>

1671 

1672Suchen Sie in dieser Tabelle den Titel der Karte oder den Code am Ende der Fehlermeldung und gehen Sie dann so vor, wie in der letzten Spalte angegeben. Um die Meldung zu sehen, wählen Sie auf der Fehlerkarte **View details** aus.

1673 

1674| Titel auf der Karte | Code | Vorgehensweise |

1675| - | - | - |

1676| `<host>'s SSH server has SFTP turned off` | `[SFTP_UNAVAILABLE]` | Aktivieren Sie SFTP in der `sshd_config` des Servers, wie unter [Anforderungen an den Remote-Computer](#remote-machine-requirements-for-ssh-sessions) beschrieben |

1677| `SFTP doesn't start on <host>` | `[SFTP_NOT_STARTED]` | Stellen Sie in einem Terminal auf Ihrem Computer mit `sftp` eine Verbindung zum selben Host her, um zu sehen, was den Start verhindert, und überprüfen Sie dann die Einstellungen und Dateien, die in der Meldung von Desktop genannt werden |

1678| `<host> allows too few SSH sessions per connection` | `[SESSION_LIMIT]` | Erhöhen Sie `MaxSessions` in der `sshd_config` des Servers, zum Beispiel auf den OpenSSH-Standardwert 10 |

1679| `<host> is out of disk space` | `[ENOSPC]` oder `[EDQUOT]` | Geben Sie auf dem Remote-Computer Speicherplatz oder Kontingent frei, in Ihrem Home-Verzeichnis oder in `/tmp` |

1680| `This computer is out of disk space` | `[ENOSPC]` oder `[EDQUOT]`, in einer Meldung, die mit `Couldn't prepare the deploy locally` beginnt | Geben Sie Speicherplatz auf Ihrem Computer frei |

1681| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Warten Sie eine Minute und versuchen Sie es dann erneut. Wenn es weiterhin fehlschlägt, führen Sie den in der Meldung genannten Befehl auf dem Remote-Computer aus, um zu sehen, ob Claude Code dort antwortet. |

1682 

1683Bei allen anderen Meldungen überprüfen Sie die [Anforderungen an den Remote-Computer](#remote-machine-requirements-for-ssh-sessions).

1684 

1561<h3 id="app-won’t-quit">1685<h3 id="app-won’t-quit">

1562 App wird nicht beendet1686 App wird nicht beendet

1563</h3>1687</h3>

env-vars.md +10 −4

Details

268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Setzen Sie `1`, um den [Fast-Modus](/docs/de/fast-mode) zu deaktivieren |268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Setzen Sie `1`, um den [Fast-Modus](/docs/de/fast-mode) zu deaktivieren |

269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Setzen Sie `1`, um die Umfragen zur Sitzungsqualität „How is Claude doing?“ zu deaktivieren. Umfragen sind auch deaktiviert, wenn `DISABLE_TELEMETRY`, `DO_NOT_TRACK` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist, sofern `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` sie nicht wieder aktiviert. Um eine Stichprobenrate festzulegen, anstatt die Umfragen vollständig zu deaktivieren, verwenden Sie die Einstellung [`feedbackSurveyRate`](/docs/de/settings-reference#feedbacksurveyrate). Siehe [Umfragen zur Sitzungsqualität](/docs/de/data-usage#session-quality-surveys) |269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Setzen Sie `1`, um die Umfragen zur Sitzungsqualität „How is Claude doing?“ zu deaktivieren. Umfragen sind auch deaktiviert, wenn `DISABLE_TELEMETRY`, `DO_NOT_TRACK` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist, sofern `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` sie nicht wieder aktiviert. Um eine Stichprobenrate festzulegen, anstatt die Umfragen vollständig zu deaktivieren, verwenden Sie die Einstellung [`feedbackSurveyRate`](/docs/de/settings-reference#feedbacksurveyrate). Siehe [Umfragen zur Sitzungsqualität](/docs/de/data-usage#session-quality-surveys) |

270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie `1`, um das [Checkpointing](/docs/de/checkpointing) von Dateien zu deaktivieren. Der Befehl `/rewind` kann dann keine Codeänderungen wiederherstellen. Überschreibt die Einstellung [`fileCheckpointingEnabled`](/docs/de/settings-reference#filecheckpointingenabled) |270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie `1`, um das [Checkpointing](/docs/de/checkpointing) von Dateien zu deaktivieren. Der Befehl `/rewind` kann dann keine Codeänderungen wiederherstellen. Überschreibt die Einstellung [`fileCheckpointingEnabled`](/docs/de/settings-reference#filecheckpointingenabled) |

271| `CLAUDE_CODE_DISABLE_FILE_MENTIONS` | Setzen Sie `1`, damit Claude Code [`@`-Erwähnungen](/docs/de/common-workflows#reference-files-and-directories) von Dateien und Verzeichnissen nicht mehr erweitert. Claude erhält stattdessen die erwähnten Pfade mit einem Hinweis, sie mit seinen Datei-Tools zu lesen. Wird in [Projekt- und lokalen Einstellungen](/docs/de/settings-reference#variables-claude-code-ignores-in-env) ignoriert. Erfordert Claude Code v2.1.299 oder höher |

271| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie `1`, um die integrierten Anweisungen für Commit- und PR-Workflows sowie den Git-Status-Snapshot aus dem Kontext von Claude zu entfernen. Nützlich, wenn Sie eigene Git-Workflow-Skills verwenden. Hat, wenn gesetzt, Vorrang vor der Einstellung [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions) |272| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie `1`, um die integrierten Anweisungen für Commit- und PR-Workflows sowie den Git-Status-Snapshot aus dem Kontext von Claude zu entfernen. Nützlich, wenn Sie eigene Git-Workflow-Skills verwenden. Hat, wenn gesetzt, Vorrang vor der Einstellung [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions) |

272| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Setzen Sie `1`, damit Claude Code Skripte, die mit `-c` an eine Shell übergeben werden, etwa `bash -c 'rm -rf ~'`, nicht mehr auf das Entfernen [kritischer Pfade](/docs/de/permission-modes#removals-inside-nested-commands-and-inline-scripts) hin liest. Claude Code prüft weiterhin Ziele in diesen Skripten, die Shell-Variablen und Positionsparameter sind, und die anderen Prüfungen kritischer Pfade laufen weiter. Setzen Sie die Variable in der Umgebung, die Claude Code startet, da Claude Code eine über einen `env`-Block der Einstellungen bereitgestellte Kopie ignoriert. Erfordert Claude Code v2.1.288 oder höher |273| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Setzen Sie `1`, damit Claude Code Skripte, die mit `-c` an eine Shell übergeben werden, etwa `bash -c 'rm -rf ~'`, nicht mehr auf das Entfernen [kritischer Pfade](/docs/de/permission-modes#removals-inside-nested-commands-and-inline-scripts) hin liest. Claude Code prüft weiterhin Ziele in diesen Skripten, die Shell-Variablen und Positionsparameter sind, und die anderen Prüfungen kritischer Pfade laufen weiter. Setzen Sie die Variable in der Umgebung, die Claude Code startet, da Claude Code eine über einen `env`-Block der Einstellungen bereitgestellte Kopie ignoriert. Erfordert Claude Code v2.1.288 oder höher |

273| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie `1`, um die automatische Umleitung von Opus 4 und Opus 4.1 auf die aktuelle Opus-Version in der Anthropic API zu verhindern. Verwenden Sie dies, wenn Sie bewusst ein älteres Modell festlegen möchten. Die Umleitung findet auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry nicht statt |274| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie `1`, um die automatische Umleitung von Opus 4 und Opus 4.1 auf die aktuelle Opus-Version in der Anthropic API zu verhindern. Verwenden Sie dies, wenn Sie bewusst ein älteres Modell festlegen möchten. Die Umleitung findet auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry nicht statt |


328| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Überschreibt die Host-Adresse, die für die Verbindung zur IDE-Erweiterung verwendet wird. Standardmäßig erkennt Claude Code die richtige Adresse automatisch, einschließlich des Routings von WSL zu Windows |329| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Überschreibt die Host-Adresse, die für die Verbindung zur IDE-Erweiterung verwendet wird. Standardmäßig erkennt Claude Code die richtige Adresse automatisch, einschließlich des Routings von WSL zu Windows |

329| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Auf `1` setzen, um die automatische Installation von IDE-Erweiterungen zu überspringen. Entspricht dem Setzen von [`autoInstallIdeExtension`](/docs/de/settings-reference#autoinstallideextension) auf `false` |330| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Auf `1` setzen, um die automatische Installation von IDE-Erweiterungen zu überspringen. Entspricht dem Setzen von [`autoInstallIdeExtension`](/docs/de/settings-reference#autoinstallideextension) auf `false` |

330| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Auf `1` setzen, um die Validierung von IDE-Lockfile-Einträgen während der Verbindung zu überspringen. Verwenden Sie dies, wenn die automatische Verbindung Ihre IDE nicht findet, obwohl sie läuft |331| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Auf `1` setzen, um die Validierung von IDE-Lockfile-Einträgen während der Verbindung zu überspringen. Verwenden Sie dies, wenn die automatische Verbindung Ihre IDE nicht findet, obwohl sie läuft |

332| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Kontextgröße in Token, ab der die [Komprimierung im Leerlauf](/docs/de/settings-reference#idlecompaction) auf eine Konversation angewendet wird (Standard: `200000`). Akzeptiert eine positive ganze Zahl; alles andere wird ignoriert. Werte unter `100000` werden auf `100000` angehoben, den niedrigsten Schwellenwert. Die Komprimierung im Leerlauf ist für Konversationen, die ihre Bedingungen erfüllen, standardmäßig aktiviert. Um sie zu deaktivieren, setzen Sie `idleCompaction` auf `false`. Erfordert Claude Code v2.1.290 oder höher |

331| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Wie viele [Subagenten](/docs/de/sub-agents#concurrent-subagent-limit) in einer Sitzung gleichzeitig laufen können, bevor das Agent-Tool das Starten eines weiteren verweigert (Standard: 20). Akzeptiert eine positive ganze Zahl in reinen Ziffern; alles andere wird ignoriert, sodass die Variable die Obergrenze anpassen, aber nicht deaktivieren kann. Erfordert Claude Code v2.1.217 oder höher |333| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Wie viele [Subagenten](/docs/de/sub-agents#concurrent-subagent-limit) in einer Sitzung gleichzeitig laufen können, bevor das Agent-Tool das Starten eines weiteren verweigert (Standard: 20). Akzeptiert eine positive ganze Zahl in reinen Ziffern; alles andere wird ignoriert, sodass die Variable die Obergrenze anpassen, aber nicht deaktivieren kann. Erfordert Claude Code v2.1.217 oder höher |

332| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Überschreibt die Größe des Kontextfensters, die Claude Code für das aktive Modell annimmt. Ab v2.1.193 hängt die Anwendung davon ab, wie Claude Code die Modell-ID auflöst; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Verwenden Sie dies beim Routing über `ANTHROPIC_BASE_URL` zu einem Modell, dessen Kontextfenster nicht der integrierten Größe für seinen Namen entspricht |334| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Überschreibt die Größe des Kontextfensters, die Claude Code für das aktive Modell annimmt. Ab v2.1.193 hängt die Anwendung davon ab, wie Claude Code die Modell-ID auflöst; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Verwenden Sie dies beim Routing über `ANTHROPIC_BASE_URL` zu einem Modell, dessen Kontextfenster nicht der integrierten Größe für seinen Namen entspricht |

333| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Maximale Länge in Zeichen jeder MCP-Tool-Beschreibung und der Anweisungen jedes MCP-Servers, die Claude Code an das Modell sendet (Standard: 2048). Claude Code [kürzt längeren Text](/docs/de/mcp#for-mcp-server-authors). Akzeptiert eine positive ganze Zahl in reinen Ziffern. Alles andere wird ignoriert, und der Standard gilt. Erfordert Claude Code v2.1.280 oder höher |335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Maximale Länge in Zeichen jeder MCP-Tool-Beschreibung und der Anweisungen jedes MCP-Servers, die Claude Code an das Modell sendet. Der von Ihnen gesetzte Wert ersetzt beide [Standardlimits](/docs/de/mcp#for-mcp-server-authors): 4096 sowie 16384 für die Beschreibung eines Tools, das Claude über die Tool-Suche lädt. Claude Code kürzt längeren Text. Akzeptiert eine positive ganze Zahl als reine Ziffern. Alles andere wird ignoriert, und es gelten die Standardwerte. Erfordert Claude Code v2.1.280 oder höher |

334| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Legt die maximale Anzahl an Ausgabe-Token für die meisten Anfragen fest. Standardwerte und Obergrenzen variieren je nach Modell; siehe [maximale Ausgabe-Token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code senkt einen Wert oberhalb der Obergrenze eines Modells auf diese Obergrenze. Für eine Modell-ID, die Claude Code keinem bekannten Modell zuordnen kann, beträgt der Standard 32000 und die Obergrenze 128000. Eine Erhöhung dieses Werts verkleinert das effektive Kontextfenster, das verfügbar ist, bevor die [automatische Komprimierung](/docs/de/costs#reduce-token-usage) ausgelöst wird |336| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Legt die maximale Anzahl an Ausgabe-Token für die meisten Anfragen fest. Standardwerte und Obergrenzen variieren je nach Modell; siehe [maximale Ausgabe-Token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code senkt einen Wert oberhalb der Obergrenze eines Modells auf diese Obergrenze. Für eine Modell-ID, die Claude Code keinem bekannten Modell zuordnen kann, beträgt der Standard 32000 und die Obergrenze 128000. Eine Erhöhung dieses Werts verkleinert das effektive Kontextfenster, das verfügbar ist, bevor die [automatische Komprimierung](/docs/de/costs#reduce-token-usage) ausgelöst wird |

335| `CLAUDE_CODE_MAX_RETRIES` | Überschreibt die Anzahl der Wiederholungsversuche für fehlgeschlagene API-Anfragen (Standard: 10). Ab v2.1.186 auf 15 begrenzt; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standard und hebt die Obergrenze auf. Für unbeaufsichtigte Sitzungen, die längere Ausfälle abwarten müssen, setzen Sie stattdessen `CLAUDE_CODE_RETRY_WATCHDOG` |337| `CLAUDE_CODE_MAX_RETRIES` | Überschreibt die Anzahl der Wiederholungsversuche für fehlgeschlagene API-Anfragen (Standard: 10). Ab v2.1.186 auf 15 begrenzt; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standard und hebt die Obergrenze auf. Für unbeaufsichtigte Sitzungen, die längere Ausfälle abwarten müssen, setzen Sie stattdessen `CLAUDE_CODE_RETRY_WATCHDOG` |

336| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | In v2.1.224 entfernt und jetzt wirkungslos. Begrenzte zuvor die Gesamtzahl der [Subagenten](/docs/de/sub-agents), die Claude mit dem Agent-Tool in einer Sitzung starten konnte (Standard: 200); das Starten über die Obergrenze hinaus schlug mit `Subagent spawn limit reached` fehl. Das [Limit für gleichzeitige Subagenten](/docs/de/sub-agents#concurrent-subagent-limit) und das [Tiefenlimit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) gelten weiterhin |338| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | In v2.1.224 entfernt und jetzt wirkungslos. Begrenzte zuvor die Gesamtzahl der [Subagenten](/docs/de/sub-agents), die Claude mit dem Agent-Tool in einer Sitzung starten konnte (Standard: 200); das Starten über die Obergrenze hinaus schlug mit `Subagent spawn limit reached` fehl. Das [Limit für gleichzeitige Subagenten](/docs/de/sub-agents#concurrent-subagent-limit) und das [Tiefenlimit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) gelten weiterhin |


359| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervall in Millisekunden für die Aktualisierung dynamischer OpenTelemetry-Header (Standard: 1740000 / 29 Minuten). Siehe [Dynamische Header](/docs/de/monitoring-usage#dynamic-headers) |361| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervall in Millisekunden für die Aktualisierung dynamischer OpenTelemetry-Header (Standard: 1740000 / 29 Minuten). Siehe [Dynamische Header](/docs/de/monitoring-usage#dynamic-headers) |

360| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in Millisekunden, innerhalb dessen der OpenTelemetry-Exporter beim Herunterfahren abschließen muss (Standard: 2000). Erhöhen Sie den Wert, wenn Metriken beim Beenden verloren gehen. Siehe [Überwachung](/docs/de/monitoring-usage) |362| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in Millisekunden, innerhalb dessen der OpenTelemetry-Exporter beim Herunterfahren abschließen muss (Standard: 2000). Erhöhen Sie den Wert, wenn Metriken beim Beenden verloren gehen. Siehe [Überwachung](/docs/de/monitoring-usage) |

361| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Anfängliche Verzögerung in Millisekunden, anstelle der standardmäßigen 500, für den exponentiellen Backoff zwischen [automatischen Wiederholungsversuchen](/docs/de/errors#tune-retry-behavior) einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert, um die Wiederholungsversuche über ein längeres Zeitfenster zu verteilen, wenn die API ausgelastet ist. Geben Sie ganze Millisekunden von 500 bis 32000 in reinen Ziffern an; Claude Code behandelt jeden anderen Wert als nicht gesetzt. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.292 oder höher |363| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Anfängliche Verzögerung in Millisekunden, anstelle der standardmäßigen 500, für den exponentiellen Backoff zwischen [automatischen Wiederholungsversuchen](/docs/de/errors#tune-retry-behavior) einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert, um die Wiederholungsversuche über ein längeres Zeitfenster zu verteilen, wenn die API ausgelastet ist. Geben Sie ganze Millisekunden von 500 bis 32000 in reinen Ziffern an; Claude Code behandelt jeden anderen Wert als nicht gesetzt. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.292 oder höher |

364| `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` | Obergrenze in Millisekunden, anstelle der standardmäßigen 32000, für den exponentiellen Backoff zwischen [automatischen Wiederholungsversuchen](/docs/de/errors#tune-retry-behavior) einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert, damit spätere Wiederholungsversuche weiter auseinanderrücken, wenn die API ausgelastet ist. Geben Sie ganze Millisekunden von 32000 bis 64000 in reinen Ziffern an; Claude Code behandelt jeden anderen Wert als nicht gesetzt. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.296 oder höher |

362| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Auf `1` setzen, damit Claude Code den Upgrade-Befehl Ihres Paketmanagers im Hintergrund ausführt, wenn eine neue Version verfügbar ist. Gilt für Homebrew- und WinGet-Installationen. Andere Paketmanager zeigen weiterhin den Upgrade-Befehl an, ohne ihn auszuführen. Siehe [Automatische Updates](/docs/de/setup#auto-updates) |365| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Auf `1` setzen, damit Claude Code den Upgrade-Befehl Ihres Paketmanagers im Hintergrund ausführt, wenn eine neue Version verfügbar ist. Gilt für Homebrew- und WinGet-Installationen. Andere Paketmanager zeigen weiterhin den Upgrade-Befehl an, ohne ihn auszuführen. Siehe [Automatische Updates](/docs/de/setup#auto-updates) |

363| `CLAUDE_CODE_PERFORCE_MODE` | Auf `1` setzen, um einen Perforce-bewussten Schreibschutz zu aktivieren. Wenn gesetzt, schlagen Edit, Write und NotebookEdit mit einem Hinweis auf `p4 edit <file>` fehl, wenn der Zieldatei das Schreibrecht für den Besitzer fehlt, das Perforce bei synchronisierten Dateien entfernt, bis `p4 edit` sie öffnet. Dies verhindert, dass Claude Code die Änderungsverfolgung von Perforce umgeht |366| `CLAUDE_CODE_PERFORCE_MODE` | Auf `1` setzen, um einen Perforce-bewussten Schreibschutz zu aktivieren. Wenn gesetzt, schlagen Edit, Write und NotebookEdit mit einem Hinweis auf `p4 edit <file>` fehl, wenn der Zieldatei das Schreibrecht für den Besitzer fehlt, das Perforce bei synchronisierten Dateien entfernt, bis `p4 edit` sie öffnet. Dies verhindert, dass Claude Code die Änderungsverfolgung von Perforce umgeht |

364| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Überschreibt das Stammverzeichnis für Plugins. Trotz des Namens legt dies das übergeordnete Verzeichnis fest, nicht den Cache selbst: Marketplaces und der Plugin-Cache befinden sich in Unterverzeichnissen unter diesem Pfad. Standardmäßig `~/.claude/plugins` |367| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Überschreibt das Stammverzeichnis für Plugins. Trotz des Namens legt dies das übergeordnete Verzeichnis fest, nicht den Cache selbst: Marketplaces und der Plugin-Cache befinden sich in Unterverzeichnissen unter diesem Pfad. Standardmäßig `~/.claude/plugins` |


380| `CLAUDE_CODE_REMOTE_SESSION_ID` | Wird in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) automatisch auf die ID der aktuellen Sitzung gesetzt. Lesen Sie die Variable aus, um einen Link zurück zum Sitzungstranskript zu erstellen. Siehe [Ausgabe mit der Sitzung verknüpfen](/docs/de/cloud-environments#link-output-back-to-the-session) |383| `CLAUDE_CODE_REMOTE_SESSION_ID` | Wird in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) automatisch auf die ID der aktuellen Sitzung gesetzt. Lesen Sie die Variable aus, um einen Link zurück zum Sitzungstranskript zu erstellen. Siehe [Ausgabe mit der Sitzung verknüpfen](/docs/de/cloud-environments#link-output-back-to-the-session) |

381| `CLAUDE_CODE_RESTRICTED` | Auf `1` setzen, um die Sitzung im eingeschränkten Modus zu starten, genau wie bei Übergabe von [`--restricted`](/docs/de/cli-reference#cli-flags). Claude Code ignoriert diese Variable im `env`-Block einer Einstellungsdatei. Erfordert Claude Code v2.1.248 oder höher |384| `CLAUDE_CODE_RESTRICTED` | Auf `1` setzen, um die Sitzung im eingeschränkten Modus zu starten, genau wie bei Übergabe von [`--restricted`](/docs/de/cli-reference#cli-flags). Claude Code ignoriert diese Variable im `env`-Block einer Einstellungsdatei. Erfordert Claude Code v2.1.248 oder höher |

382| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Auf `1` setzen, um automatisch fortzufahren, wenn die vorherige Sitzung mitten in einem Turn beendet wurde. Wird im SDK-Modus verwendet, damit das Modell fortfährt, ohne dass das SDK den Prompt erneut senden muss. Um dies auszuschalten, entfernen Sie die Variable oder setzen Sie sie auf `0`. Für das Chat-Panel in VS Code siehe [Konversationen nach einem Neuladen fortsetzen](/docs/de/vs-code#continue-conversations-after-a-reload) |385| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Auf `1` setzen, um automatisch fortzufahren, wenn die vorherige Sitzung mitten in einem Turn beendet wurde. Wird im SDK-Modus verwendet, damit das Modell fortfährt, ohne dass das SDK den Prompt erneut senden muss. Um dies auszuschalten, entfernen Sie die Variable oder setzen Sie sie auf `0`. Für das Chat-Panel in VS Code siehe [Konversationen nach einem Neuladen fortsetzen](/docs/de/vs-code#continue-conversations-after-a-reload) |

383| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Maximales Alter in Millisekunden der letzten Transkriptnachricht, bis zu dem eine mitten im Turn beendete Sitzung beim Fortsetzen automatisch weiterläuft. Wenn die letzte Nachricht älter als diese Grenze ist, überspringt Claude Code die automatische Fortsetzung durch `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` und deren Fortsetzungsnachricht `CLAUDE_CODE_RESUME_PROMPT`, und die Sitzung startet im Leerlauf, sodass Sie explizit fortfahren. Nicht gesetzt oder `0` bedeutet keine Grenze, außer dass ein Turn, dessen letzte Anfrage mit einem API-Fehler fehlgeschlagen ist, nur fortgesetzt wird, solange dieser Fehler weniger als sechs Stunden alt ist. Ein positiver Wert begrenzt jeden Turn, auch diese; ein negativer oder nicht numerischer Wert wendet eine Grenze von einer Stunde an. Startskripte für lang laufende Agenten können dies setzen, damit ein Neustart mit einem alten Transkript keinen veralteten Prompt erneut ausführt. Claude Code setzt selbst eine Grenze von einer Stunde, wenn es eine abgestürzte [Agent View](/docs/de/agent-view)-Sitzung neu startet, die ihre Konversation von einer interaktiven Sitzung geerbt hat. Erfordert Claude Code v2.1.211 oder höher |386| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Maximales Alter der letzten Transkriptnachricht in Millisekunden, bis zu dem eine Sitzung, die mitten in einem Turn endete, beim Fortsetzen automatisch weiterläuft. Ist die letzte Nachricht älter als diese Grenze, überspringt Claude Code die automatische Fortsetzung über `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` und deren Fortsetzungsnachricht `CLAUDE_CODE_RESUME_PROMPT`, und die Sitzung startet im Leerlauf, sodass Sie explizit fortfahren. Nicht gesetzt oder `0` legt keine Grenze fest, mit der Ausnahme, dass einige Turns nur innerhalb von sechs Stunden nach ihrer letzten Nachricht fortgesetzt werden, etwa einer, der mit einem API-Fehler endete. Ein positiver Wert begrenzt jeden Turn, einschließlich dieser; ein negativer oder nicht numerischer Wert wendet eine Grenze von einer Stunde an. Startskripte für lang laufende Agenten können dies setzen, damit ein Neustart mit einem alten Transkript keinen veralteten Prompt erneut ausführt. Claude Code setzt selbst eine Grenze von einer Stunde, wenn es eine abgestürzte Sitzung der [Agent-Ansicht](/docs/de/agent-view) neu startet, die ihre Konversation von einer interaktiven Sitzung geerbt hat. Erfordert Claude Code v2.1.211 oder höher |

384| `CLAUDE_CODE_RESUME_PROMPT` | Überschreibt die Fortsetzungsnachricht, die Claude Code an Claude sendet, wenn `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` einen unterbrochenen Turn fortsetzt, statt dessen Prompt erneut zu senden, oder wenn Sie einen [zurückgestellten Tool-Aufruf](/docs/de/hooks#defer-a-tool-call-for-later) mit `-p` fortsetzen. Standardmäßig `Continue from where you left off.`. Eine leere Zeichenfolge verwendet den Standard |387| `CLAUDE_CODE_RESUME_PROMPT` | Überschreibt die Fortsetzungsnachricht, die Claude Code an Claude sendet, wenn `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` einen unterbrochenen Turn fortsetzt, statt dessen Prompt erneut zu senden, oder wenn Sie einen [zurückgestellten Tool-Aufruf](/docs/de/hooks#defer-a-tool-call-for-later) mit `-p` fortsetzen. Standardmäßig `Continue from where you left off.`. Eine leere Zeichenfolge verwendet den Standard |

385| `CLAUDE_CODE_RETRY_WATCHDOG` | Für unbeaufsichtigte Sitzungen wie Eval-Harnesses, CI-Jobs oder Remote-Worker auf `1` setzen. Wiederholt Kapazitätsfehler `429` und `529` unbegrenzt, statt nach `CLAUDE_CODE_MAX_RETRIES` Versuchen fehlzuschlagen. Claude Code schlägt sofort fehl, wenn eine Anfrage mit Standardgeschwindigkeit einen `429` erhält, der ein Ausgabenlimit oder aufgebrauchtes Nutzungsguthaben meldet, selbst einen von einer [Gateway-Ausgabenobergrenze](/docs/de/errors#spend-limit-reached), die nach einem Zeitplan zurückgesetzt wird. Vor v2.1.239 wiederholte der Watchdog diese unbegrenzt. Für Anfragen im Fast-Modus siehe [Rate-Limits handhaben](/docs/de/fast-mode#handle-rate-limits). Der Watchdog wartet zwischen den Versuchen bis zu 5 Minuten oder bis das Limit zurückgesetzt wird, wenn die Antwort einen Rücksetzzeitpunkt für das Rate-Limit enthält, sodass eine Sitzung, die ein Nutzungslimit erreicht, das verbleibende Zeitfenster abwartet. Ab v2.1.199 erhöht er außerdem die standardmäßige Anzahl von Wiederholungsversuchen für andere vorübergehende Fehler wie Serverfehler, Timeouts und abgebrochene Verbindungen auf 300, was etwa drei Stunden Backoff entspricht, und hebt die Obergrenze von 15 für `CLAUDE_CODE_MAX_RETRIES` auf, falls Sie diese Variable explizit setzen. Erfordert Claude Code v2.1.186 oder höher |388| `CLAUDE_CODE_RETRY_WATCHDOG` | Für unbeaufsichtigte Sitzungen wie Eval-Harnesses, CI-Jobs oder Remote-Worker auf `1` setzen. Wiederholt Kapazitätsfehler `429` und `529` unbegrenzt, statt nach `CLAUDE_CODE_MAX_RETRIES` Versuchen fehlzuschlagen. Claude Code schlägt sofort fehl, wenn eine Anfrage mit Standardgeschwindigkeit einen `429` erhält, der ein Ausgabenlimit oder aufgebrauchtes Nutzungsguthaben meldet, selbst einen von einer [Gateway-Ausgabenobergrenze](/docs/de/errors#spend-limit-reached), die nach einem Zeitplan zurückgesetzt wird. Vor v2.1.239 wiederholte der Watchdog diese unbegrenzt. Für Anfragen im Fast-Modus siehe [Rate-Limits handhaben](/docs/de/fast-mode#handle-rate-limits). Der Watchdog wartet zwischen den Versuchen bis zu 5 Minuten oder bis das Limit zurückgesetzt wird, wenn die Antwort einen Rücksetzzeitpunkt für das Rate-Limit enthält, sodass eine Sitzung, die ein Nutzungslimit erreicht, das verbleibende Zeitfenster abwartet. Ab v2.1.199 erhöht er außerdem die standardmäßige Anzahl von Wiederholungsversuchen für andere vorübergehende Fehler wie Serverfehler, Timeouts und abgebrochene Verbindungen auf 300, was etwa drei Stunden Backoff entspricht, und hebt die Obergrenze von 15 für `CLAUDE_CODE_MAX_RETRIES` auf, falls Sie diese Variable explizit setzen. Erfordert Claude Code v2.1.186 oder höher |

386| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Maximale Zeit in Millisekunden, die jede API-Anfrage mit dem Abwarten von `429`- und `529`-Fehlern verbringt, wenn `CLAUDE_CODE_RETRY_WATCHDOG` gesetzt ist. Ist diese Zeit verbraucht, beendet der nächste solche Fehler die Anfrage. Geben Sie eine positive ganze Zahl in reinen Ziffern an, etwa `1800000` für 30 Minuten. Wenn nicht gesetzt, ist die Wartezeit unbegrenzt. Erfordert Claude Code v2.1.295 oder höher |389| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Maximale Zeit in Millisekunden, die jede API-Anfrage mit dem Abwarten von `429`- und `529`-Fehlern verbringt, wenn `CLAUDE_CODE_RETRY_WATCHDOG` gesetzt ist. Ist diese Zeit verbraucht, beendet der nächste solche Fehler die Anfrage. Geben Sie eine positive ganze Zahl in reinen Ziffern an, etwa `1800000` für 30 Minuten. Wenn nicht gesetzt, ist die Wartezeit unbegrenzt. Erfordert Claude Code v2.1.295 oder höher |


437| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Wenn `CLAUDE_AUTO_BACKGROUND_TASKS` auf `1` gesetzt ist, legt diese Variable fest, wie lange Claude Code vor jeder Erinnerung an Claude wartet, nach noch laufenden [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) zu sehen. Akzeptiert eine oder mehrere durch Kommas getrennte Wartezeiten in ganzen Sekunden von `1` bis `86400`, etwa `600` oder `600,1800,3600`. Jeder Wert ist die Wartezeit vor der nächsten Erinnerung, und der letzte Wert wiederholt sich. Akzeptiert nur reine Ziffern; jeder andere Wert und jede andere Schreibweise gilt als nicht gesetzt. Ohne gesetzten Wert gibt es keine Erinnerungen. Erfordert Claude Code v2.1.283 oder höher |440| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Wenn `CLAUDE_AUTO_BACKGROUND_TASKS` auf `1` gesetzt ist, legt diese Variable fest, wie lange Claude Code vor jeder Erinnerung an Claude wartet, nach noch laufenden [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) zu sehen. Akzeptiert eine oder mehrere durch Kommas getrennte Wartezeiten in ganzen Sekunden von `1` bis `86400`, etwa `600` oder `600,1800,3600`. Jeder Wert ist die Wartezeit vor der nächsten Erinnerung, und der letzte Wert wiederholt sich. Akzeptiert nur reine Ziffern; jeder andere Wert und jede andere Schreibweise gilt als nicht gesetzt. Ohne gesetzten Wert gibt es keine Erinnerungen. Erfordert Claude Code v2.1.283 oder höher |

438| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Wie viele Agenten ein einzelner [Workflow](/docs/de/workflows)-Lauf gleichzeitig ausführt, von `1` bis `256`. Standardmäßig führt ein Lauf bis zu 16 Agenten gleichzeitig aus, weniger, wenn Claude Code weniger CPUs zur Verfügung stehen; eingereihte `agent()`-Aufrufe warten auf einen freien Platz. Das Transkript jedes laufenden Agenten bleibt im Arbeitsspeicher von Claude Code, daher erhöhen höhere Werte den Speicherverbrauch. Akzeptiert nur reine Ziffern; Werte außerhalb des Bereichs und andere Schreibweisen behalten den Standardwert bei. Erfordert Claude Code v2.1.269 oder höher |441| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Wie viele Agenten ein einzelner [Workflow](/docs/de/workflows)-Lauf gleichzeitig ausführt, von `1` bis `256`. Standardmäßig führt ein Lauf bis zu 16 Agenten gleichzeitig aus, weniger, wenn Claude Code weniger CPUs zur Verfügung stehen; eingereihte `agent()`-Aufrufe warten auf einen freien Platz. Das Transkript jedes laufenden Agenten bleibt im Arbeitsspeicher von Claude Code, daher erhöhen höhere Werte den Speicherverbrauch. Akzeptiert nur reine Ziffern; Werte außerhalb des Bereichs und andere Schreibweisen behalten den Standardwert bei. Erfordert Claude Code v2.1.269 oder höher |

439| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Obergrenze in Millisekunden dafür, wie lange ein [Workflow](/docs/de/workflows)-Agent darauf wartet, dass die erste Antwort eines Geschwisteragenten mit demselben Präfix beginnt, bevor er seine eigene erste Anfrage sendet. Wenn ein Fan-out mehrere Agenten startet, die sich ein [Prompt-Cache-Präfix](/docs/de/workflows#prompt-caching-in-a-fan-out) teilen, hält Claude Code alle Agenten außer dem ersten bis zu dieser Dauer zurück, damit die übrigen das zwischengespeicherte Präfix lesen, statt es jeweils ohne Cache zu verarbeiten. Standardwert `5000`. Setzen Sie `0`, um das Warten zu deaktivieren. Wenn `DISABLE_PROMPT_CACHING` gesetzt ist, warten Agenten nie. Erfordert Claude Code v2.1.229 oder höher |442| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Obergrenze in Millisekunden dafür, wie lange ein [Workflow](/docs/de/workflows)-Agent darauf wartet, dass die erste Antwort eines Geschwisteragenten mit demselben Präfix beginnt, bevor er seine eigene erste Anfrage sendet. Wenn ein Fan-out mehrere Agenten startet, die sich ein [Prompt-Cache-Präfix](/docs/de/workflows#prompt-caching-in-a-fan-out) teilen, hält Claude Code alle Agenten außer dem ersten bis zu dieser Dauer zurück, damit die übrigen das zwischengespeicherte Präfix lesen, statt es jeweils ohne Cache zu verarbeiten. Standardwert `5000`. Setzen Sie `0`, um das Warten zu deaktivieren. Wenn `DISABLE_PROMPT_CACHING` gesetzt ist, warten Agenten nie. Erfordert Claude Code v2.1.229 oder höher |

443| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Auf `1` setzen, um oberhalb des Prompts für jede der letzten drei Prüfungen, die der [Mod „You should know“](/docs/de/interactive-mode#you-should-know-suggestions) in dieser Sitzung durchgeführt hat, eine Zeile anzuzeigen. Verwenden Sie dies, um zu bestätigen, dass der Mod prüft, wenn keine Hinweise erscheinen. Erfordert Claude Code v2.1.287 oder höher |

440| `CLAUDE_CONFIG_DIR` | Überschreibt das Konfigurationsverzeichnis (Standard: `~/.claude`). Alle Einstellungen, der Sitzungsverlauf und Plugins werden unter diesem Pfad gespeichert. Informationen zu Anmeldedaten finden Sie unter [wo Claude Code Anmeldedaten speichert](/docs/de/authentication#credential-management). Nützlich, um mehrere Konten parallel zu betreiben: zum Beispiel `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Setzen Sie die Variable in Ihrer Shell, in den Benutzereinstellungen oder in den verwalteten Einstellungen. Schreiben Sie in einer Einstellungsdatei den [absoluten Pfad](#in-settings-files). Wird in [Projekt- und lokalen Einstellungen](/docs/de/settings-reference#variables-claude-code-ignores-in-env) ignoriert |444| `CLAUDE_CONFIG_DIR` | Überschreibt das Konfigurationsverzeichnis (Standard: `~/.claude`). Alle Einstellungen, der Sitzungsverlauf und Plugins werden unter diesem Pfad gespeichert. Informationen zu Anmeldedaten finden Sie unter [wo Claude Code Anmeldedaten speichert](/docs/de/authentication#credential-management). Nützlich, um mehrere Konten parallel zu betreiben: zum Beispiel `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Setzen Sie die Variable in Ihrer Shell, in den Benutzereinstellungen oder in den verwalteten Einstellungen. Schreiben Sie in einer Einstellungsdatei den [absoluten Pfad](#in-settings-files). Wird in [Projekt- und lokalen Einstellungen](/docs/de/settings-reference#variables-claude-code-ignores-in-env) ignoriert |

441| `CLAUDE_DISABLE_ADOPT` | Auf `1` setzen, um laufende Hintergrundarbeit zu stoppen, statt sie zu übernehmen, wenn Sie eine Sitzung durch Drücken von `←` oder mit [`/background`](/docs/de/agent-view#from-inside-a-session) in den Hintergrund verschieben. Claude Code bittet Sie vor dem Verschieben in den Hintergrund um Bestätigung und stoppt dann die Aufgaben, die sonst übernommen würden. Erfordert Claude Code v2.1.195 oder höher |445| `CLAUDE_DISABLE_ADOPT` | Auf `1` setzen, um laufende Hintergrundarbeit zu stoppen, statt sie zu übernehmen, wenn Sie eine Sitzung durch Drücken von `←` oder mit [`/background`](/docs/de/agent-view#from-inside-a-session) in den Hintergrund verschieben. Claude Code bittet Sie vor dem Verschieben in den Hintergrund um Bestätigung und stoppt dann die Aufgaben, die sonst übernommen würden. Erfordert Claude Code v2.1.195 oder höher |

442| `CLAUDE_EFFORT` | Wird in Subprozessen des Bash-Tools und in Hook-Befehlen automatisch auf die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) gesetzt, die beim Start des Subprozesses gilt: `low`, `medium`, `high`, `xhigh` oder `max`. Entspricht dem Feld `effort.level`, das an [Hooks](/docs/de/hooks) übergeben wird. Wird nur gesetzt, wenn das aktuelle Modell den Effort-Parameter unterstützt |446| `CLAUDE_EFFORT` | Wird in Subprozessen des Bash-Tools und in Hook-Befehlen automatisch auf die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) gesetzt, die beim Start des Subprozesses gilt: `low`, `medium`, `high`, `xhigh` oder `max`. Entspricht dem Feld `effort.level`, das an [Hooks](/docs/de/hooks) übergeben wird. Wird nur gesetzt, wenn das aktuelle Modell den Effort-Parameter unterstützt |


452| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | In v2.1.260 entfernt und jetzt wirkungslos. Begrenzte zuvor in Millisekunden, wie lange ein von einem [Subagenten](/docs/de/sub-agents) gestarteter [Shell-Befehl im Hintergrund](/docs/de/interactive-mode#background-bash-commands) laufen durfte, mit einem Standardwert von 60 Minuten. Siehe [die Regeln zur Lebensdauer von Hintergrundbefehlen](/docs/de/tools-reference#background-commands) |456| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | In v2.1.260 entfernt und jetzt wirkungslos. Begrenzte zuvor in Millisekunden, wie lange ein von einem [Subagenten](/docs/de/sub-agents) gestarteter [Shell-Befehl im Hintergrund](/docs/de/interactive-mode#background-bash-commands) laufen durfte, mit einem Standardwert von 60 Minuten. Siehe [die Regeln zur Lebensdauer von Hintergrundbefehlen](/docs/de/tools-reference#background-commands) |

453| `DEBUG` | Auf `1` setzen, um den Debug-Modus zu aktivieren, entsprechend dem Start mit [`--debug`](/docs/de/cli-reference#cli-flags). Debug-Logs werden nach `~/.claude/debug/<session-id>.txt` geschrieben oder in den durch `CLAUDE_CODE_DEBUG_LOGS_DIR` festgelegten Pfad. Nur die Wahrheitswerte `1`, `true`, `yes` und `on` aktivieren den Debug-Modus, sodass Namespace-Muster wie `DEBUG=express:*`, die für andere Tools gesetzt sind, ihn nicht auslösen |457| `DEBUG` | Auf `1` setzen, um den Debug-Modus zu aktivieren, entsprechend dem Start mit [`--debug`](/docs/de/cli-reference#cli-flags). Debug-Logs werden nach `~/.claude/debug/<session-id>.txt` geschrieben oder in den durch `CLAUDE_CODE_DEBUG_LOGS_DIR` festgelegten Pfad. Nur die Wahrheitswerte `1`, `true`, `yes` und `on` aktivieren den Debug-Modus, sodass Namespace-Muster wie `DEBUG=express:*`, die für andere Tools gesetzt sind, ihn nicht auslösen |

454| `DISABLE_AUTOUPDATER` | Auf `1` setzen, um automatische Hintergrundaktualisierungen zu deaktivieren. Ein manuelles `claude update` funktioniert weiterhin. Verwenden Sie `DISABLE_UPDATES`, um beides zu blockieren |458| `DISABLE_AUTOUPDATER` | Auf `1` setzen, um automatische Hintergrundaktualisierungen zu deaktivieren. Ein manuelles `claude update` funktioniert weiterhin. Verwenden Sie `DISABLE_UPDATES`, um beides zu blockieren |

455| `DISABLE_AUTO_COMPACT` | Auf `1` setzen, um die automatische Komprimierung bei Annäherung an das Kontextlimit zu deaktivieren. Der manuelle Befehl `/compact` bleibt verfügbar. Verwenden Sie dies, wenn Sie explizit steuern möchten, wann die Komprimierung erfolgt. Überschreibt die Einstellung [`autoCompactEnabled`](/docs/de/settings-reference#autocompactenabled) |459| `DISABLE_AUTO_COMPACT` | Auf `1` setzen, um die automatische Komprimierung bei Annäherung an das Kontextlimit zu deaktivieren, zusammen mit der [Leerlauf-Komprimierung](/docs/de/settings-reference#idlecompaction). Der manuelle Befehl `/compact` bleibt verfügbar. Verwenden Sie dies, wenn Sie explizit steuern möchten, wann die Komprimierung erfolgt. Überschreibt die Einstellung [`autoCompactEnabled`](/docs/de/settings-reference#autocompactenabled) |

456| `DISABLE_COMPACT` | Auf `1` setzen, um jede Komprimierung zu deaktivieren: sowohl die automatische Komprimierung als auch den manuellen Befehl `/compact` |460| `DISABLE_COMPACT` | Auf `1` setzen, um jede Komprimierung zu deaktivieren: sowohl die automatische Komprimierung als auch den manuellen Befehl `/compact` |

457| `DISABLE_COST_WARNINGS` | Auf `1` setzen, um Kostenwarnungen zu deaktivieren |461| `DISABLE_COST_WARNINGS` | Auf `1` setzen, um Kostenwarnungen zu deaktivieren |

458| `DISABLE_DOCTOR_COMMAND` | Auf `1` setzen, um den Einrichtungs-Check-Skill [`/doctor`](/docs/de/commands#all-commands) und seinen Alias `/checkup` auszublenden. Nützlich für verwaltete Bereitstellungen, in denen Benutzer keine Einrichtungsdiagnosen aus einer Sitzung heraus ausführen sollen. Wirkt sich nicht auf den Terminalbefehl `claude doctor` aus. Vor v2.1.205 blendete diese Variable den Befehl `/doctor` für den Diagnosebildschirm aus |462| `DISABLE_DOCTOR_COMMAND` | Auf `1` setzen, um den Einrichtungs-Check-Skill [`/doctor`](/docs/de/commands#all-commands) und seinen Alias `/checkup` auszublenden. Nützlich für verwaltete Bereitstellungen, in denen Benutzer keine Einrichtungsdiagnosen aus einer Sitzung heraus ausführen sollen. Wirkt sich nicht auf den Terminalbefehl `claude doctor` aus. Vor v2.1.205 blendete diese Variable den Befehl `/doctor` für den Diagnosebildschirm aus |


478| `ENABLE_CLAUDEAI_MCP_SERVERS` | Auf `false` setzen, damit Claude Code keine [claude.ai-MCP-Server](/docs/de/mcp#use-mcp-servers-from-claude-ai) mehr abruft. Für angemeldete Benutzer standardmäßig aktiviert. Um dies pro Projekt oder pro Organisation zu deaktivieren, setzen Sie stattdessen [`disableClaudeAiConnectors`](/docs/de/settings-reference#disableclaudeaiconnectors) in den Einstellungen |482| `ENABLE_CLAUDEAI_MCP_SERVERS` | Auf `false` setzen, damit Claude Code keine [claude.ai-MCP-Server](/docs/de/mcp#use-mcp-servers-from-claude-ai) mehr abruft. Für angemeldete Benutzer standardmäßig aktiviert. Um dies pro Projekt oder pro Organisation zu deaktivieren, setzen Sie stattdessen [`disableClaudeAiConnectors`](/docs/de/settings-reference#disableclaudeaiconnectors) in den Einstellungen |

479| `ENABLE_PROMPT_CACHING_1H` | Auf `1` setzen, um eine [Prompt-Cache-TTL](/docs/de/prompt-caching#cache-lifetime) von 1 Stunde statt der standardmäßigen 5 Minuten anzufordern. Gedacht für Benutzer mit API-Schlüssel, [Amazon Bedrock](/docs/de/amazon-bedrock), [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), [Microsoft Foundry](/docs/de/microsoft-foundry) und [Claude Platform on AWS](/docs/de/claude-platform-on-aws). Abonnementbenutzer innerhalb der enthaltenen Nutzung erhalten die 1-Stunden-TTL automatisch für die [Hauptkonversation](/docs/de/prompt-caching#which-ttl-each-request-gets). Abonnementbenutzer, die [Nutzungsguthaben](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) verwenden, können die Variable setzen, um die 1-Stunden-TTL beizubehalten. 1-Stunden-Cache-Schreibvorgänge werden zu einem höheren Tarif abgerechnet. Um die TTL stattdessen pro Anfragekategorie zu wählen, verwenden Sie `CLAUDE_CODE_PROMPT_CACHE_TTL` und `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, die Vorrang vor dieser Variable haben |483| `ENABLE_PROMPT_CACHING_1H` | Auf `1` setzen, um eine [Prompt-Cache-TTL](/docs/de/prompt-caching#cache-lifetime) von 1 Stunde statt der standardmäßigen 5 Minuten anzufordern. Gedacht für Benutzer mit API-Schlüssel, [Amazon Bedrock](/docs/de/amazon-bedrock), [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), [Microsoft Foundry](/docs/de/microsoft-foundry) und [Claude Platform on AWS](/docs/de/claude-platform-on-aws). Abonnementbenutzer innerhalb der enthaltenen Nutzung erhalten die 1-Stunden-TTL automatisch für die [Hauptkonversation](/docs/de/prompt-caching#which-ttl-each-request-gets). Abonnementbenutzer, die [Nutzungsguthaben](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) verwenden, können die Variable setzen, um die 1-Stunden-TTL beizubehalten. 1-Stunden-Cache-Schreibvorgänge werden zu einem höheren Tarif abgerechnet. Um die TTL stattdessen pro Anfragekategorie zu wählen, verwenden Sie `CLAUDE_CODE_PROMPT_CACHE_TTL` und `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, die Vorrang vor dieser Variable haben |

480| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Veraltet. Verwenden Sie stattdessen `ENABLE_PROMPT_CACHING_1H` |484| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Veraltet. Verwenden Sie stattdessen `ENABLE_PROMPT_CACHING_1H` |

481| `ENABLE_TOOL_SEARCH` | Steuert [MCP Tool Search](/docs/de/mcp#scale-with-mcp-tool-search). Ohne gesetzten Wert lädt Claude Code alle MCP-Tools standardmäßig verzögert. Vorab lädt es sie dennoch bei Modellen auf Google Cloud's Agent Platform, die älter als die Claude-4.5-Generation sind, bei einer auf Azure gehosteten Microsoft-Foundry-Bereitstellung und wenn `ANTHROPIC_BASE_URL` auf einen Host verweist, der kein Erstanbieter-Host ist. `true` lädt immer verzögert und sendet den Beta-Header, außer bei denselben Agent-Platform-Modellen und Microsoft-Foundry-Bereitstellungen; Anfragen schlagen bei Proxys fehl, die `tool_reference` nicht unterstützen. `auto` lädt vorab, wenn die Tool-Definitionen in 10 % des Kontexts passen. `auto:N` legt einen benutzerdefinierten Schwellenwert fest, etwa `auto:5` für 5 %. `false` lädt alle Tools vorab. Ein selbst gesetzter Wert wird ignoriert, wenn `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` gesetzt ist. Vor v2.1.221 deaktivierte Claude Code die Tool-Suche für alle Modelle auf Google Cloud's Agent Platform, sofern Sie diese Variable nicht auf `true` setzten |485| `ENABLE_TOOL_SEARCH` | Steuert [MCP Tool Search](/docs/de/mcp#scale-with-mcp-tool-search). Ohne gesetzte Variable stellt Claude Code standardmäßig alle MCP-Tools zurück und lädt sie stattdessen vorab, wenn `ANTHROPIC_BASE_URL` auf einen Host verweist, der kein First-Party-Host ist. `true` hält sie auch auf einem solchen Host zurückgestellt. `auto` lädt vorab, wenn die Tool-Definitionen in 10 % des Kontexts passen. `auto:N` legt einen benutzerdefinierten Schwellenwert fest, z. B. `auto:5` für 5 %. `false` lädt alle Tools vorab. Zu den Modellen und Bereitstellungen, die unabhängig von diesem Wert jedes Tool vorab laden, siehe [Tool Search konfigurieren](/docs/de/mcp#configure-tool-search) |

482| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Auf einen beliebigen nicht leeren Wert wie `1` setzen, damit Claude Code bei wiederholten Überlastungsfehlern für jedes Modell die Wiederholungsversuche beendet, wenn kein Fallback-Modell konfiguriert ist. **Auch das Setzen auf `0` oder `false` aktiviert dies**, anders als bei den meisten Ein/Aus-Variablen; entfernen Sie die Variable, um das standardmäßige Wiederholungsverhalten wiederherzustellen. Ohne die Variable beendet Claude Code die Wiederholungsversuche auf diese Weise bei Modellen, die es als Opus-, Fable- oder Mythos-Modelle erkennt, wenn Sie sich mit einem API-Schlüssel oder über einen [Drittanbieter](/docs/de/third-party-integrations) statt mit einem Claude-Abonnement authentifizieren. Ab Claude Code v2.1.160 wechselt Claude Code bei wiederholten Überlastungsfehlern für jedes primäre Modell zu Ihrer konfigurierten [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains), sodass diese Variable den Wechsel zu einem Fallback-Modell nicht beeinflusst |486| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Auf einen beliebigen nicht leeren Wert wie `1` setzen, damit Claude Code bei wiederholten Überlastungsfehlern für jedes Modell die Wiederholungsversuche beendet, wenn kein Fallback-Modell konfiguriert ist. **Auch das Setzen auf `0` oder `false` aktiviert dies**, anders als bei den meisten Ein/Aus-Variablen; entfernen Sie die Variable, um das standardmäßige Wiederholungsverhalten wiederherzustellen. Ohne die Variable beendet Claude Code die Wiederholungsversuche auf diese Weise bei Modellen, die es als Opus-, Fable- oder Mythos-Modelle erkennt, wenn Sie sich mit einem API-Schlüssel oder über einen [Drittanbieter](/docs/de/third-party-integrations) statt mit einem Claude-Abonnement authentifizieren. Ab Claude Code v2.1.160 wechselt Claude Code bei wiederholten Überlastungsfehlern für jedes primäre Modell zu Ihrer konfigurierten [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains), sodass diese Variable den Wechsel zu einem Fallback-Modell nicht beeinflusst |

483| `FORCE_AUTOUPDATE_PLUGINS` | Auf `1` setzen, um automatische Plugin-Updates zu erzwingen, auch wenn der Haupt-Auto-Updater über `DISABLE_AUTOUPDATER` deaktiviert ist |487| `FORCE_AUTOUPDATE_PLUGINS` | Auf `1` setzen, um automatische Plugin-Updates zu erzwingen, auch wenn der Haupt-Auto-Updater über `DISABLE_AUTOUPDATER` deaktiviert ist |

484| `FORCE_HYPERLINK` | Auf `1` setzen, um anklickbare OSC-8-Hyperlinks zu aktivieren, wenn Ihr Terminal sie unterstützt, dies aber nicht automatisch erkannt wird, oder auf `0`, um sie zu deaktivieren. Wenn die Variable nicht gesetzt ist, aktiviert Claude Code Hyperlinks nur, wenn es Terminalunterstützung erkennt. Claude Code wertet diesen Wert als Zahl aus, nicht als Boolean, daher aktiviert ein Wert wie `false`, `no` oder `off` Hyperlinks, statt sie zu deaktivieren. Das [Badge für PR oder Merge Request](/docs/de/interactive-mode#pr-review-status) in der Fußzeile wird als Hyperlink dargestellt, auch wenn Claude Code keine Terminalunterstützung erkennen kann, etwa über SSH. Setzen Sie `0`, um das Badge als reinen Text darzustellen |488| `FORCE_HYPERLINK` | Auf `1` setzen, um anklickbare OSC-8-Hyperlinks zu aktivieren, wenn Ihr Terminal sie unterstützt, dies aber nicht automatisch erkannt wird, oder auf `0`, um sie zu deaktivieren. Wenn die Variable nicht gesetzt ist, aktiviert Claude Code Hyperlinks nur, wenn es Terminalunterstützung erkennt. Claude Code wertet diesen Wert als Zahl aus, nicht als Boolean, daher aktiviert ein Wert wie `false`, `no` oder `off` Hyperlinks, statt sie zu deaktivieren. Das [Badge für PR oder Merge Request](/docs/de/interactive-mode#pr-review-status) in der Fußzeile wird als Hyperlink dargestellt, auch wenn Claude Code keine Terminalunterstützung erkennen kann, etwa über SSH. Setzen Sie `0`, um das Badge als reinen Text darzustellen |


593* [`claude import` oder den Befehl `/import`](/docs/de/cli-reference#cli-commands) ausführen597* [`claude import` oder den Befehl `/import`](/docs/de/cli-reference#cli-commands) ausführen

594* [`/skill-doctor`](/docs/de/skills#find-unused-skills) ausführen oder dessen Bericht im Tab **Stats** von `/plugin` öffnen598* [`/skill-doctor`](/docs/de/skills#find-unused-skills) ausführen oder dessen Bericht im Tab **Stats** von `/plugin` öffnen

595* Die für Ihr claude.ai-Konto aktivierten [Skills](/docs/de/skills#where-synced-skills-load) und [Plugins](/docs/de/plugins/loading#synced-plugins) in Ihre Terminal-Sitzungen synchronisieren599* Die für Ihr claude.ai-Konto aktivierten [Skills](/docs/de/skills#where-synced-skills-load) und [Plugins](/docs/de/plugins/loading#synced-plugins) in Ihre Terminal-Sitzungen synchronisieren

600* Den [You-should-know-Mod](/docs/de/interactive-mode#you-should-know-suggestions) aktivieren

596* [Das Advisor-Tool](/docs/de/advisor#requirements) verwenden601* [Das Advisor-Tool](/docs/de/advisor#requirements) verwenden

597* [Kommentare zu einem Artefakt](/docs/de/artifacts#collect-comments-on-an-artifact) lesen oder beantworten602* [Kommentare zu einem Artefakt](/docs/de/artifacts#collect-comments-on-an-artifact) lesen oder beantworten

598* Claude [das öffentliche Artefakt einer anderen Organisation](/docs/de/artifacts#read-an-artifact-shared-with-you) lesen lassen603* Claude [das öffentliche Artefakt einer anderen Organisation](/docs/de/artifacts#read-an-artifact-shared-with-you) lesen lassen


600* [Von Claude entworfenes Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) erhalten, das Claude Code über ein abgerufenes Flag aktiviert605* [Von Claude entworfenes Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) erhalten, das Claude Code über ein abgerufenes Flag aktiviert

601* Claude [große Einfügungen als eingefügten statt als getippten Text behandeln](/docs/de/terminal-config#how-claude-treats-pasted-text) lassen; der Inhalt hinter einem Platzhalter `[Pasted text #N]` erreicht Claude ohne Kennzeichnung606* Claude [große Einfügungen als eingefügten statt als getippten Text behandeln](/docs/de/terminal-config#how-claude-treats-pasted-text) lassen; der Inhalt hinter einem Platzhalter `[Pasted text #N]` erreicht Claude ohne Kennzeichnung

602* Claude Code [MCP-Tools ausschließen lassen, deren Eingabeschema die API ablehnen würde](/docs/de/mcp#tools-with-invalid-input-schemas); es sendet das Schema trotzdem, und eine Anfrage, die es enthält, schlägt mit [einem 400-Fehler fehl, der das Tool anhand seiner Position benennt](/docs/de/errors#tool-input-schema-is-invalid)607* Claude Code [MCP-Tools ausschließen lassen, deren Eingabeschema die API ablehnen würde](/docs/de/mcp#tools-with-invalid-input-schemas); es sendet das Schema trotzdem, und eine Anfrage, die es enthält, schlägt mit [einem 400-Fehler fehl, der das Tool anhand seiner Position benennt](/docs/de/errors#tool-input-schema-is-invalid)

608* Claude Code [eine lange Konversation komprimieren lassen, während Ihre Terminal-Sitzung inaktiv ist](/docs/de/settings-reference#idlecompaction), kurz bevor ein einstündiger Prompt-Cache abläuft

603 609 

604<h3 id="first-session-after-an-install-or-upgrade">610<h3 id="first-session-after-an-install-or-upgrade">

605 Erste Sitzung nach einer Installation oder einem Upgrade611 Erste Sitzung nach einer Installation oder einem Upgrade

errors.md +161 −10

Details

134| `proxy refused the connection` | [Netzwerk](#the-proxy-refused-the-connection) |134| `proxy refused the connection` | [Netzwerk](#the-proxy-refused-the-connection) |

135| `403` mit `GitHub GraphQL is not available from Claude Code sessions` in einer Cloud-Sitzung | [GitHub-Proxy](/docs/de/cloud-environments#github-proxy) |135| `403` mit `GitHub GraphQL is not available from Claude Code sessions` in einer Cloud-Sitzung | [GitHub-Proxy](/docs/de/cloud-environments#github-proxy) |

136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Netzwerk](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Netzwerk](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

137| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Netzwerk](#failed-to-fetch-session-from-sessions-api) |

137| `Couldn't reconnect to your Remote Control session` | [Netzwerk](#couldnt-reconnect-to-your-remote-control-session) |138| `Couldn't reconnect to your Remote Control session` | [Netzwerk](#couldnt-reconnect-to-your-remote-control-session) |

138| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Netzwerk](#sessions-ended-while-this-machine-was-offline) |139| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Netzwerk](#sessions-ended-while-this-machine-was-offline) |

139| `Couldn't share the transcript.` | [Netzwerk](#couldnt-share-the-transcript) |140| `Couldn't share the transcript.` | [Netzwerk](#couldnt-share-the-transcript) |


153| `Request too large for the API's 32MB request limit` | [Anfragefehler](#request-too-large) |154| `Request too large for the API's 32MB request limit` | [Anfragefehler](#request-too-large) |

154| `Image was too large` | [Anfragefehler](#image-was-too-large) |155| `Image was too large` | [Anfragefehler](#image-was-too-large) |

155| `Unable to resize image` | [Anfragefehler](#unable-to-resize-image) |156| `Unable to resize image` | [Anfragefehler](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Anfragefehler](#request-rejected-as-unprocessable-by-the-model) |

156| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Anfragefehler](#pdf-errors) |158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Anfragefehler](#pdf-errors) |

157| `Extra inputs are not permitted` | [Anfragefehler](#extra-inputs-are-not-permitted) |159| `Extra inputs are not permitted` | [Anfragefehler](#extra-inputs-are-not-permitted) |

158| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Anfragefehler](#tool-input-schema-is-invalid) |160| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Anfragefehler](#tool-input-schema-is-invalid) |

161| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Anfragefehler](#mcp-tool-name-over-128-characters) |

162| `tools.N.custom.name: String should have at most 128 characters` | [Anfragefehler](#mcp-tool-name-over-128-characters) |

159| `tool_use.name: String should have at most 200 characters` | [Anfragefehler](#tool-use-name-over-200-characters) |163| `tool_use.name: String should have at most 200 characters` | [Anfragefehler](#tool-use-name-over-200-characters) |

160| `There's an issue with the selected model` | [Anfragefehler](#theres-an-issue-with-the-selected-model) |164| `There's an issue with the selected model` | [Anfragefehler](#theres-an-issue-with-the-selected-model) |

161| `Model ... is not a recognized model id` | [Anfragefehler](#model-is-not-a-recognized-model-id) |165| `Model ... is not a recognized model id` | [Anfragefehler](#model-is-not-a-recognized-model-id) |


198| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Befehlszeilenfehler](#conflict-between-a-system-prompt-flag-and-its-file-form) |202| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Befehlszeilenfehler](#conflict-between-a-system-prompt-flag-and-its-file-form) |

199| `Cloud sessions cannot be created from a --restricted session` | [Befehlszeilenfehler](#cloud-sessions-cannot-be-created-from-a-restricted-session) |203| `Cloud sessions cannot be created from a --restricted session` | [Befehlszeilenfehler](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

200| `Cloud sessions are disabled by your organization's policy` | [Befehlszeilenfehler](#cloud-sessions-are-disabled-by-your-organizations-policy) |204| `Cloud sessions are disabled by your organization's policy` | [Befehlszeilenfehler](#cloud-sessions-are-disabled-by-your-organizations-policy) |

201| `Couldn't verify your organization's policy for cloud sessions` | [Befehlszeilenfehler](#cloud-sessions-are-disabled-by-your-organizations-policy) |205| `Cloud sessions use your claude.ai login`, am Ende einer Richtlinienablehnung, die Anmeldedaten nennt | [Befehlszeilenfehler](#cloud-sessions-use-your-claude-ai-login) |

206| `Couldn't verify your organization's policy for cloud sessions` | [Befehlszeilenfehler](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

207| `Cloud sessions aren't available:` gefolgt vom Grund, warum die Richtlinie Ihrer Organisation nicht geladen werden konnte | [Befehlszeilenfehler](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

202| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/de/claude-code-on-the-web#unable-to-get-organization-uuid) |208| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/de/claude-code-on-the-web#unable-to-get-organization-uuid) |

209| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [Befehlszeilenfehler](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |

203| `Error: --json-schema is not a valid JSON Schema` | [Befehlszeilenfehler](#the-json-schema-value-is-not-a-valid-json-schema) |210| `Error: --json-schema is not a valid JSON Schema` | [Befehlszeilenfehler](#the-json-schema-value-is-not-a-valid-json-schema) |

204| `Error: Invalid --agents configuration:` | [Befehlszeilenfehler](#invalid-agents-configuration) |211| `Error: Invalid --agents configuration:` | [Befehlszeilenfehler](#invalid-agents-configuration) |

205| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Befehlszeilenfehler](#invalid-agents-configuration) |212| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Befehlszeilenfehler](#invalid-agents-configuration) |


259| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Befehlszeilenfehler](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |266| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Befehlszeilenfehler](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

260| `/recap only runs when you ask for it yourself in this session` | [Befehlszeilenfehler](#recap-only-runs-when-you-ask-for-it-yourself) |267| `/recap only runs when you ask for it yourself in this session` | [Befehlszeilenfehler](#recap-only-runs-when-you-ask-for-it-yourself) |

261| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin-Fehler](#plugin-eval-is-currently-in-early-access) |268| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin-Fehler](#plugin-eval-is-currently-in-early-access) |

269| `cannot be evaluated where sessions load it` | [Plugins mit Evals testen](/docs/de/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

262| `Marketplace "<name>" is registered from an untrusted source` | [Plugin-Fehler](#marketplace-is-registered-from-an-untrusted-source) |270| `Marketplace "<name>" is registered from an untrusted source` | [Plugin-Fehler](#marketplace-is-registered-from-an-untrusted-source) |

263| `Claude Code refuses the marketplace name "<name>"` | [Plugin-Fehler](#claude-code-refuses-the-marketplace-name) |271| `Claude Code refuses the marketplace name "<name>"` | [Plugin-Fehler](#claude-code-refuses-the-marketplace-name) |

264| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin-Fehler](#claude-code-refuses-the-marketplace-name) |272| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin-Fehler](#claude-code-refuses-the-marketplace-name) |


358| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Vollbildrendering](/docs/de/fullscreen#fullscreen-renderer-didnt-finish-starting) |366| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Vollbildrendering](/docs/de/fullscreen#fullscreen-renderer-didnt-finish-starting) |

359| `Claude Code exited after an unrecoverable interface error (...)` | [Konfigurationswarnungen](#exited-after-an-unrecoverable-interface-error) |367| `Claude Code exited after an unrecoverable interface error (...)` | [Konfigurationswarnungen](#exited-after-an-unrecoverable-interface-error) |

360| `Agent descriptions are over the 15.0k-token limit` | [Konfigurationswarnungen](#agent-descriptions-are-over-the-15000-token-limit) |368| `Agent descriptions are over the 15.0k-token limit` | [Konfigurationswarnungen](#agent-descriptions-are-over-the-15000-token-limit) |

369| `hook needs quotes around a path with a space` | [Konfigurationswarnungen](#hook-needs-quotes-around-a-path-with-a-space) |

361| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Konfigurationswarnungen](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |370| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Konfigurationswarnungen](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Konfigurationswarnungen](#skill-or-command-name-refused) |

362| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Konfigurationswarnungen](#workspace-has-not-been-trusted) |372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Konfigurationswarnungen](#workspace-has-not-been-trusted) |

363| `is a network path, which cannot be added as a working directory` | [Konfigurationswarnungen](#working-directory-is-a-network-path) |373| `is a network path, which cannot be added as a working directory` | [Konfigurationswarnungen](#working-directory-is-a-network-path) |

364| `Remote managed settings failed to load (<cause>)` | [Konfigurationswarnungen](#remote-managed-settings-failed-to-load) |374| `Remote managed settings failed to load (<cause>)` | [Konfigurationswarnungen](#remote-managed-settings-failed-to-load) |


447| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/de/env-vars) | nicht gesetzt | Setzen Sie den Wert in unbeaufsichtigten Sitzungen wie CI-Jobs auf `1`, um `429`- und `529`-Kapazitätsfehler unbegrenzt erneut zu versuchen, statt nach `CLAUDE_CODE_MAX_RETRIES` Versuchen abzubrechen. Claude Code bricht sofort ab, wenn eine Anfrage mit Standardgeschwindigkeit eine `429` erhält, die ein Ausgabenlimit oder aufgebrauchtes Nutzungsguthaben meldet, auch wenn sie von einer [Ausgabenobergrenze eines Gateways](#spend-limit-reached) stammt, die nach einem Zeitplan zurückgesetzt wird. Vor v2.1.239 versuchte der Watchdog diese unbegrenzt erneut. Für Anfragen im Fast-Modus siehe [Rate-Limits handhaben](/docs/de/fast-mode#handle-rate-limits). Ab v2.1.199 erhöht sie außerdem die Standardanzahl der Wiederholungsversuche für andere vorübergehende Fehler wie Serverfehler, Timeouts und unterbrochene Verbindungen auf 300, was etwa drei Stunden Backoff entspricht, und hebt die Begrenzung von `CLAUDE_CODE_MAX_RETRIES` auf 15 auf, wenn Sie diese Variable explizit setzen. |457| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/de/env-vars) | nicht gesetzt | Setzen Sie den Wert in unbeaufsichtigten Sitzungen wie CI-Jobs auf `1`, um `429`- und `529`-Kapazitätsfehler unbegrenzt erneut zu versuchen, statt nach `CLAUDE_CODE_MAX_RETRIES` Versuchen abzubrechen. Claude Code bricht sofort ab, wenn eine Anfrage mit Standardgeschwindigkeit eine `429` erhält, die ein Ausgabenlimit oder aufgebrauchtes Nutzungsguthaben meldet, auch wenn sie von einer [Ausgabenobergrenze eines Gateways](#spend-limit-reached) stammt, die nach einem Zeitplan zurückgesetzt wird. Vor v2.1.239 versuchte der Watchdog diese unbegrenzt erneut. Für Anfragen im Fast-Modus siehe [Rate-Limits handhaben](/docs/de/fast-mode#handle-rate-limits). Ab v2.1.199 erhöht sie außerdem die Standardanzahl der Wiederholungsversuche für andere vorübergehende Fehler wie Serverfehler, Timeouts und unterbrochene Verbindungen auf 300, was etwa drei Stunden Backoff entspricht, und hebt die Begrenzung von `CLAUDE_CODE_MAX_RETRIES` auf 15 auf, wenn Sie diese Variable explizit setzen. |

448| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/de/env-vars) | nicht gesetzt | Maximale Zeit in Millisekunden, die jede API-Anfrage mit dem Abwarten von `429`- und `529`-Fehlern verbringt, wenn `CLAUDE_CODE_RETRY_WATCHDOG` gesetzt ist. Ist die Variable nicht gesetzt, ist die Wartezeit unbegrenzt. Erfordert Claude Code v2.1.295 oder höher. |458| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/de/env-vars) | nicht gesetzt | Maximale Zeit in Millisekunden, die jede API-Anfrage mit dem Abwarten von `429`- und `529`-Fehlern verbringt, wenn `CLAUDE_CODE_RETRY_WATCHDOG` gesetzt ist. Ist die Variable nicht gesetzt, ist die Wartezeit unbegrenzt. Erfordert Claude Code v2.1.295 oder höher. |

449| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/de/env-vars) | 500 | Anfängliche Verzögerung des Backoffs in Millisekunden zwischen Wiederholungsversuchen einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert auf bis zu 32000, um die Wiederholungsversuche über einen längeren Zeitraum zu verteilen, wenn die API ausgelastet ist. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.292 oder höher. |459| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/de/env-vars) | 500 | Anfängliche Verzögerung des Backoffs in Millisekunden zwischen Wiederholungsversuchen einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert auf bis zu 32000, um die Wiederholungsversuche über einen längeren Zeitraum zu verteilen, wenn die API ausgelastet ist. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.292 oder höher. |

460| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/de/env-vars) | 32000 | Obergrenze des Backoffs in Millisekunden zwischen Wiederholungsversuchen einer Anfrage, die die API mit einem `529`-Überlastungsfehler ablehnt. Erhöhen Sie den Wert auf bis zu 64000, damit spätere Wiederholungsversuche zeitlich weiter auseinanderliegen, wenn die API ausgelastet ist. Hat keine Wirkung, wenn `CLAUDE_CODE_RETRY_WATCHDOG` auf `1` gesetzt ist oder wenn die abgelehnte Anfrage im [Fast-Modus](/docs/de/fast-mode#handle-rate-limits) gesendet wurde. Erfordert Claude Code v2.1.296 oder höher. |

450| [`API_TIMEOUT_MS`](/docs/de/env-vars) | 600000 | Timeout pro Anfrage in Millisekunden. Erhöhen Sie den Wert bei langsamen Netzwerken oder Proxys. Er begrenzt außerdem, wie lange Claude Code auf Response-Header wartet, wie unter [No response from API](#no-response-from-api) beschrieben. |461| [`API_TIMEOUT_MS`](/docs/de/env-vars) | 600000 | Timeout pro Anfrage in Millisekunden. Erhöhen Sie den Wert bei langsamen Netzwerken oder Proxys. Er begrenzt außerdem, wie lange Claude Code auf Response-Header wartet, wie unter [No response from API](#no-response-from-api) beschrieben. |

451| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/de/env-vars) | nicht gesetzt | Begrenzung für das erneute Senden einer [Anfrage ohne Streaming](#streaming-response-ended-before-any-complete-data-was-received), bei der eine Zeitüberschreitung auftritt. Ist die Grenze erreicht, schlägt die Anfrage fehl. Eine Antwort von Claude, deren Generierung länger als der Timeout dauert, läuft bei jedem erneuten Senden wieder in eine Zeitüberschreitung; setzen Sie daher einen niedrigen Wert wie `0`, damit die Anfrage schneller fehlschlägt. Jeder Versuch ohne Streaming läuft in einer lokalen Sitzung nach 300 Sekunden in eine Zeitüberschreitung oder nach `API_TIMEOUT_MS`, wenn Sie einen positiven Wert setzen. Erfordert Claude Code v2.1.285 oder höher. |462| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/de/env-vars) | nicht gesetzt | Begrenzung für das erneute Senden einer [Anfrage ohne Streaming](#streaming-response-ended-before-any-complete-data-was-received), bei der eine Zeitüberschreitung auftritt. Ist die Grenze erreicht, schlägt die Anfrage fehl. Eine Antwort von Claude, deren Generierung länger als der Timeout dauert, läuft bei jedem erneuten Senden wieder in eine Zeitüberschreitung; setzen Sie daher einen niedrigen Wert wie `0`, damit die Anfrage schneller fehlschlägt. Jeder Versuch ohne Streaming läuft in einer lokalen Sitzung nach 300 Sekunden in eine Zeitüberschreitung oder nach `API_TIMEOUT_MS`, wenn Sie einen positiven Wert setzen. Erfordert Claude Code v2.1.285 oder höher. |

452| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/de/env-vars) | nicht gesetzt | Deadline in Millisekunden für das erste Antwort-Byte einer Streaming-Anfrage. Erfordert Claude Code v2.1.242 oder höher. Wie Claude Code die Deadline wählt, wenn diese Variable nicht gesetzt ist, erfahren Sie unter [No response from API](#no-response-from-api). |463| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/de/env-vars) | nicht gesetzt | Deadline in Millisekunden für das erste Antwort-Byte einer Streaming-Anfrage. Erfordert Claude Code v2.1.242 oder höher. Wie Claude Code die Deadline wählt, wenn diese Variable nicht gesetzt ist, erfahren Sie unter [No response from API](#no-response-from-api). |


2097 2108 

2098Vor v2.1.236 zeigte Claude Code stattdessen einen rohen JavaScript-TypeError.2109Vor v2.1.236 zeigte Claude Code stattdessen einen rohen JavaScript-TypeError.

2099 2110 

2111<h3 id="failed-to-fetch-session-from-sessions-api">

2112 Failed to fetch session from Sessions API

2113</h3>

2114 

2115Diese Meldung bedeutet, dass Claude Code die [Cloud-Sitzung, die Sie in Ihr Terminal holen wollten](/docs/de/claude-code-on-the-web#from-cloud-to-terminal), gefunden hat, ihren Konversationsverlauf aber nicht von den Servern von Anthropic lesen konnte und sie daher nicht geöffnet hat:

2116 

2117```text theme={null}

2118Failed to fetch session from Sessions API: Failed to fetch session logs

2119```

2120 

2121Sie sehen sie nach `claude --teleport`, `/teleport` oder der Auswahl der Sitzung in der [`/tasks`](/docs/de/commands)-Liste. `claude --teleport <session-id>` gibt sie aus und beendet sich mit Code 1.

2122 

2123**Was zu tun ist:**

2124 

2125* Führen Sie denselben Teleport erneut aus. Wenn er auf die gleiche Weise fehlschlägt, [melden Sie das Problem](#report-an-error)

2126 

2127Vor v2.1.296 versuchte Claude Code einen fehlgeschlagenen Lesevorgang nicht erneut, und danach konnte es die Sitzung mit einer leeren Konversation öffnen und einen Erfolg melden, anstatt diese Meldung auszugeben.

2128 

2100<h3 id="couldnt-reconnect-to-your-remote-control-session">2129<h3 id="couldnt-reconnect-to-your-remote-control-session">

2101 Couldn't reconnect to your Remote Control session2130 Couldn't reconnect to your Remote Control session

2102</h3>2131</h3>


2344* Wenn die Nachricht ein Dimensions- oder Größenlimit meldet, ändern Sie die Größe oder komprimieren Sie das Bild unter dieses Limit, bevor Sie es anhängen.2373* Wenn die Nachricht ein Dimensions- oder Größenlimit meldet, ändern Sie die Größe oder komprimieren Sie das Bild unter dieses Limit, bevor Sie es anhängen.

2345* Wenn die Nachricht eine Ursache benennt, 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 Nachricht vorschlägt, erneut und hängen Sie es erneut an.2374* Wenn die Nachricht eine Ursache benennt, 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 Nachricht vorschlägt, erneut und hängen Sie es erneut an.

2346 2375 

2376<h3 id="request-rejected-as-unprocessable-by-the-model">

2377 Request rejected as unprocessable by the model

2378</h3>

2379 

2380Die API hat die Anfrage als eine abgelehnt, die das Modell nicht verarbeiten kann. Die Meldung stammt von der API selbst.

2381 

2382```text theme={null}

2383API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)

2384```

2385 

2386Claude Code kann die ältesten Bilder und Dokumente aus einer abgelehnten Anfrage entfernen und sie erneut senden. Vor v2.1.290 entfernte Claude Code bei dieser Ablehnung keine Bilder, sodass eine lange Sitzung, in der sich Hunderte davon angesammelt hatten, bei jedem Turn mit diesem Fehler fehlschlagen konnte.

2387 

2388**Was Sie tun können:**

2389 

2390* Wenn die Meldung in einer Konversation mit Bildern oder Dokumenten immer wieder erscheint, entfernen Sie diese selbst. Drücken Sie zweimal Esc, um hinter die Turns zurückzugehen, die sie hinzugefügt haben, oder führen Sie `/clear` aus, um neu zu beginnen.

2391 

2347<h3 id="pdf-errors">2392<h3 id="pdf-errors">

2348 PDF-Fehler2393 PDF-Fehler

2349</h3>2394</h3>


2413* Entfernen oder [deaktivieren](/docs/de/mcp#disable-a-server-without-removing-it) Sie den MCP-Server, der das ungültige Schema deklariert. Der Fehler benennt das Tool nur über seine Position. Prüfen Sie ab v2.1.216 das Log jedes Servers auf eine Zeile, die ein Tool benennt, dessen Eingabeschema abgelehnt würde. Wenn kein Log eines benennt, deaktivieren Sie die Server nacheinander.2458* Entfernen oder [deaktivieren](/docs/de/mcp#disable-a-server-without-removing-it) Sie den MCP-Server, der das ungültige Schema deklariert. Der Fehler benennt das Tool nur über seine Position. Prüfen Sie ab v2.1.216 das Log jedes Servers auf eine Zeile, die ein Tool benennt, dessen Eingabeschema abgelehnt würde. Wenn kein Log eines benennt, deaktivieren Sie die Server nacheinander.

2414* Wenn Sie den Server pflegen, korrigieren Sie das `input_schema` des Tools. Das Schema muss gültiges JSON Schema sein, und Top-Level-Eigenschaftsnamen müssen 1 bis 64 Zeichen lang sein und dürfen nur ASCII-Buchstaben und Ziffern, `_`, `.` und `-` verwenden. Siehe [Tools mit ungültigen Eingabeschemas](/docs/de/mcp#tools-with-invalid-input-schemas).2459* Wenn Sie den Server pflegen, korrigieren Sie das `input_schema` des Tools. Das Schema muss gültiges JSON Schema sein, und Top-Level-Eigenschaftsnamen müssen 1 bis 64 Zeichen lang sein und dürfen nur ASCII-Buchstaben und Ziffern, `_`, `.` und `-` verwenden. Siehe [Tools mit ungültigen Eingabeschemas](/docs/de/mcp#tools-with-invalid-input-schemas).

2415 2460 

2461<h3 id="mcp-tool-name-over-128-characters">

2462 MCP-Tool-Name über 128 Zeichen

2463</h3>

2464 

2465Ein MCP-Server listet ein Tool auf, dessen vollständiger Name, wie z. B. `mcp__<server>__<tool>`, länger ist als die 128 Zeichen, die die API akzeptiert. Claude Code [lässt dieses Tool bei den Tools weg, die es an Claude sendet](/docs/de/mcp#tools-with-names-longer-than-128-characters), und die anderen Tools des Servers funktionieren weiterhin. In einer Sitzung, die Sie mit `claude --debug` aus Ihrer Shell starten, schreibt Claude Code diese Nachricht in das Debug-Log unter `~/.claude/debug/<session-id>.txt`:

2466 

2467```text theme={null}

2468Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128

2469```

2470 

2471**Was zu tun ist:**

2472 

2473* Wenn Sie den Server pflegen, kürzen Sie den Namen des Tools.

2474* Wenn der Server in Ihrer [MCP-Konfiguration](/docs/de/mcp#mcp-installation-scopes) steht, geben Sie ihm dort einen kürzeren Namen, wie z. B. `db` anstelle von `analytics-database`. Aktualisieren Sie dann alles, was sich über den alten Namen auf den Server oder seine Tools bezieht, wie z. B. [Berechtigungsregeln](/docs/de/permissions#mcp) und [Hook-Matcher](/docs/de/hooks#match-mcp-tools).

2475* Wenn ein [Plugin den Server mitliefert](/docs/de/mcp#plugin-provided-mcp-servers), enthält der vollständige Name des Tools auch den Plugin-Namen. Bitten Sie den Maintainer des Plugins, den Server- oder Tool-Namen zu kürzen.

2476 

2477Vor v2.1.292 sendete Claude Code das Tool trotzdem, und die API lehnte jede Anfrage, die es enthielt, mit `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters` ab.

2478 

2416<h3 id="tool-use-name-over-200-characters">2479<h3 id="tool-use-name-over-200-characters">

2417 tool\_use.name über 200 Zeichen2480 tool\_use.name über 200 Zeichen

2418</h3>2481</h3>


3022 3085 

3023Die Meldung erscheint, wenn Sie [eine Cloud-Sitzung aus dem Terminal erstellen](/docs/de/claude-code-on-the-web#from-terminal-to-cloud), und wenn Sie einen Befehl absenden, der Cloud-Sitzungen benötigt, etwa `/teleport`, `/remote-env` oder `/web-setup`. Vor v2.1.268 lieferte das Absenden eines dieser Befehle stattdessen [`Unknown command`](#unknown-command).3086Die Meldung erscheint, wenn Sie [eine Cloud-Sitzung aus dem Terminal erstellen](/docs/de/claude-code-on-the-web#from-terminal-to-cloud), und wenn Sie einen Befehl absenden, der Cloud-Sitzungen benötigt, etwa `/teleport`, `/remote-env` oder `/web-setup`. Vor v2.1.268 lieferte das Absenden eines dieser Befehle stattdessen [`Unknown command`](#unknown-command).

3024 3087 

3025Dies ist eine serverseitige Organisationsrichtlinie, daher kann sie nicht über lokale Einstellungen, Umgebungsvariablen oder CLI-Flags überschrieben werden.3088Wenn die Meldung stattdessen Anmeldedaten nennt, die diese Sitzung verwendet, und mit `Cloud sessions use your claude.ai login.` endet, siehe [Cloud sessions use your claude.ai login](#cloud-sessions-use-your-claude-ai-login). Wenn Claude Code die Richtlinie Ihrer Organisation überhaupt nicht laden konnte, sehen Sie stattdessen [eine andere Meldung](#couldnt-verify-your-organizations-policy-for-cloud-sessions).

3026 

3027Wenn Claude Code die Richtlinie Ihrer Organisation noch nicht geladen hat oder sie nicht abrufen kann, antworten diese Befehle stattdessen mit `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`

3028 3089 

3029**Vorgehensweise:**3090**Vorgehensweise:**

3030 3091 

3031* Bitten Sie einen [Owner](/docs/de/server-managed-settings#access-control) in Ihrer Organisation, Cloud-Sitzungen in den Claude-Code-Admin-Einstellungen unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) zu aktivieren3092* Bitten Sie einen [Owner](/docs/de/server-managed-settings#access-control) in Ihrer Organisation, Cloud-Sitzungen in den Claude-Code-Admin-Einstellungen unter [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) zu aktivieren

3032* Wenn die Meldung besagt, dass die Richtlinie nicht überprüft werden konnte, prüfen Sie Ihre Netzwerkverbindung, starten Sie Claude Code dann neu und versuchen Sie es erneut3093 

3094<h3 id="cloud-sessions-use-your-claude-ai-login">

3095 Cloud sessions use your claude.ai login

3096</h3>

3097 

3098Wenn die [Richtlinienablehnung](#cloud-sessions-are-disabled-by-your-organizations-policy) Anmeldedaten nennt, die diese Sitzung verwendet, und mit diesem Satz endet, hat Claude Code die Cloud-Sitzungs-Richtlinie der Organisation geprüft, die diese Anmeldedaten ausgestellt hat. Diese Organisation kann sich von derjenigen unterscheiden, zu der Ihr claude.ai-Login gehört:

3099 

3100```text theme={null}

3101Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.

3102```

3103 

3104Der letzte Satz bedeutet, dass Cloud-Sitzungen mit Ihrem claude.ai-Login laufen und nicht mit diesen Anmeldedaten. Diese Form erscheint, wenn Sie eine Cloud-Sitzung aus Ihrer Shell starten, fortsetzen oder ihr eine Nachricht senden, etwa mit `--cloud` oder `--teleport`. Vor v2.1.296 gab Claude Code auch in diesem Fall die Form aus, die Sie auffordert, sich an den Admin Ihrer Organisation zu wenden.

3105 

3106<h3 id="couldnt-verify-your-organizations-policy-for-cloud-sessions">

3107 Couldn't verify your organization's policy for cloud sessions

3108</h3>

3109 

3110Diese Meldungen bedeuten, dass Claude Code die Richtlinie Ihrer Organisation nicht laden konnte, die es prüft, bevor es eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) erstellt, fortsetzt oder ihr eine Nachricht sendet. Solange die Richtlinienanfrage noch nicht abgeschlossen ist, lautet die Meldung:

3111 

3112```text theme={null}

3113Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.

3114```

3115 

3116Innerhalb einer Sitzung gibt auch ein Befehl, der Cloud-Sitzungen benötigt, etwa `/teleport` oder `/web-setup`, diese Meldung aus. Das geschieht selbst dort, wo Ihre Shell eine `Cloud sessions aren't available:`-Form ausgeben würde, und ihr zweiter Satz lautet `Check your network connection, then restart Claude Code and try again.`

3117 

3118Sobald die Richtlinienanfrage fehlgeschlagen ist, nennt die Meldung, was fehlgeschlagen ist. Das gilt, wenn Sie eine Cloud-Sitzung aus Ihrer Shell mit einem Flag wie `--cloud` oder `--teleport` starten, fortsetzen oder ihr eine Nachricht senden. Ohne Route zur API lautet sie:

3119 

3120```text theme={null}

3121Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.

3122```

3123 

3124Andere Fehler folgen demselben Anfang mit ihrer eigenen Ursache, etwa ein Proxy, der die Anfrage mit HTTP 403 abgelehnt hat, ein Serverfehler oder Anmeldedaten, die die API nicht akzeptiert hat. Wenn die API Anmeldedaten nicht akzeptiert hat, die diese Sitzung anstelle Ihres claude.ai-Logins verwendet, etwa eine Umgebungsvariable `ANTHROPIC_API_KEY`, kann die Meldung diese auch nennen und sagen, dass Sie sie entfernen sollen:

3125 

3126```text theme={null}

3127Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.

3128```

3129 

3130Vor v2.1.296 gaben diese Fehler ebenfalls die `Couldn't verify`-Meldung aus.

3131 

3132**Was Sie tun können:**

3133 

3134* Prüfen Sie bei der `Couldn't verify`-Meldung Ihre Netzwerkverbindung und versuchen Sie es erneut. Starten Sie innerhalb einer Sitzung zuerst Claude Code neu

3135* Tun Sie bei einer `Cloud sessions aren't available:`-Meldung, was deren Ursache erfordert, etwa Ihren Proxy prüfen oder die genannten Anmeldedaten entfernen, und führen Sie den Befehl dann erneut aus

3136 

3137<h3 id="nothing-was-stashed-because-a-folder-replaced-a-tracked-file">

3138 Nichts wurde gestasht, weil ein Ordner eine getrackte Datei ersetzt hat

3139</h3>

3140 

3141Diese Meldung bedeutet, dass sich in Ihrem Checkout jetzt ein Ordner dort befindet, wo früher eine von Git getrackte Datei oder ein Link war. Sie erscheint, nachdem Sie beim Übernehmen einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web#from-cloud-to-terminal) in Ihr Terminal die Stash-Option gewählt haben, zum Beispiel mit `claude --teleport` oder `/teleport`. Das Stashen dieses Zustands könnte die Dateien im Ordner löschen, daher verweigert Claude Code den Stash und lässt Ihren Checkout und Index unverändert:

3142 

3143```text wrap theme={null}

3144Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.

3145```

3146 

3147**Was zu tun ist:**

3148 

3149* Committen Sie die Änderung oder verschieben Sie den Ordner an einen anderen Ort, wie es die Meldung sagt, und führen Sie den Teleport dann erneut aus

3033 3150 

3034<h3 id="the-json-schema-value-is-not-a-valid-json-schema">3151<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

3035 Der `--json-schema`-Wert ist kein gültiges JSON-Schema3152 Der `--json-schema`-Wert ist kein gültiges JSON-Schema


3427 3544 

3428Claude Code zeigt denselben Fehler für jeden Skill an, der [dynamischen Kontext einfügt](/docs/de/skills#when-an-injected-command-fails), und ein fehlgeschlagener eingefügter Befehl bricht den Aufruf dieses Skills ab. Zwei verwandte Meldungen werden ausgelöst, bevor der Befehl überhaupt ausgeführt wird:3545Claude Code zeigt denselben Fehler für jeden Skill an, der [dynamischen Kontext einfügt](/docs/de/skills#when-an-injected-command-fails), und ein fehlgeschlagener eingefügter Befehl bricht den Aufruf dieses Skills ab. Zwei verwandte Meldungen werden ausgelöst, bevor der Befehl überhaupt ausgeführt wird:

3429 3546 

3430* `Shell command permission check failed for pattern "..."`: Die Berechtigungsprüfung des Befehls hat ihn nicht zugelassen. [Berechtigungsprüfungen für eingefügte Befehle](/docs/de/skills#permission-checks-on-injected-commands) beschreibt, welche Ergebnisse in jedem Berechtigungsmodus zum Abbruch führen und wie Sie einen Befehl mit `allowed-tools` vorab genehmigen3547* `Shell command permission check failed for pattern "..."`: Die Berechtigungsprüfung des Befehls hat ihn nicht zugelassen. [Berechtigungsprüfungen für eingefügte Befehle](/docs/de/skills#permission-checks-on-injected-commands) behandelt, welche Ergebnisse in jedem Berechtigungsmodus abbrechen und wie Sie einen Befehl mit `allowed-tools` vorab genehmigen

3431* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: Das Frontmatter des Skills verlangt bash auf einem Rechner, auf dem es fehlt. Installieren Sie Git for Windows oder ändern Sie das Frontmatter in `shell: powershell`. Siehe [Wie eingefügte Befehle ausgeführt werden](/docs/de/skills#how-injected-commands-run)3548* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: Das Frontmatter des Skills verlangt bash auf einem Rechner ohne bash. Installieren Sie Git for Windows oder ändern Sie das Frontmatter auf `shell: powershell`. Siehe [Wie eingefügte Befehle ausgeführt werden](/docs/de/skills#how-injected-commands-run)

3432 3549 

3433**Vorgehensweise:**3550**Vorgehensweise:**

3434 3551 


3577 3694 

3578* **Sie haben keinen Basis-Branch übergeben**: Claude Code hat mit dem Standard-Branch des Repositorys verglichen und schlägt vor, Ihre Basis explizit zu übergeben, wie im obigen Beispiel3695* **Sie haben keinen Basis-Branch übergeben**: Claude Code hat mit dem Standard-Branch des Repositorys verglichen und schlägt vor, Ihre Basis explizit zu übergeben, wie im obigen Beispiel

3579* **Sie haben einen Basis-Branch übergeben, der bereits in Ihrem Klon vorhanden war**: Der Hinweis lautet ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3696* **Sie haben einen Basis-Branch übergeben, der bereits in Ihrem Klon vorhanden war**: Der Hinweis lautet ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3580* **Sie haben einen Basis-Branch übergeben, der nicht in Ihrem Klon vorhanden war**: Claude Code hat ihn vor dem Vergleich von origin abgerufen. Der Hinweis lautet ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; wenn Claude Code nicht feststellen kann, ob Ihr Klon flach ist, schlägt es stattdessen `git fetch --unshallow origin` vor. Vor v2.1.221 schlug der Hinweis für jeden abgerufenen Basis-Branch `git fetch --unshallow origin` vor, und bei einem vollständigen Klon schlägt dieser Befehl mit `fatal: --unshallow on a complete repository does not make sense` fehl.3697* **Sie haben einen Basis-Branch übergeben, der nicht in Ihrem Klon vorhanden war**: Claude Code hat ihn vor dem Vergleich von origin abgerufen. Der Hinweis lautet ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; wenn Claude Code nicht erkennen kann, ob Ihr Klon shallow ist, schlägt es stattdessen `git fetch --unshallow origin` vor. Vor v2.1.221 schlug der Hinweis für jeden abgerufenen Basis-Branch `git fetch --unshallow origin` vor, und bei einem vollständigen Klon schlägt dieser Befehl mit `fatal: --unshallow on a complete repository does not make sense` fehl.

3581 3698 

3582**Vorgehensweise:**3699**Vorgehensweise:**

3583 3700 


3835 Claude Code couldn't restart3952 Claude Code couldn't restart

3836</h3>3953</h3>

3837 3954 

3838Claude Code wurde gerade neu gestartet, zum Beispiel um nach Ausführen von [`/tui`](/docs/de/fullscreen#enable-fullscreen-rendering) zum Vollbild-Rendering oder von diesem zurück zu wechseln. Es hat die Sitzung geschlossen, konnte den neuen Prozess aber nicht starten, gab daher diese Meldung aus und wurde mit Status 1 beendet:3955Wenn diese Meldung besagt, dass Ihre Konversation gespeichert ist, liegt die Konversation auf der Festplatte, und Sie können dort weitermachen, wo sie aufgehört hat. Claude Code war dabei, sich selbst neu zu starten, zum Beispiel um nach dem Ausführen von [`/tui`](/docs/de/fullscreen#enable-fullscreen-rendering) zur Vollbilddarstellung oder von ihr weg zu wechseln, konnte den neuen Prozess aber nicht starten und hat sich daher mit Status 1 beendet:

3839 3956 

3840```text theme={null}3957```text theme={null}

3841Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.3958Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.


3845 3962 

3846**Was Sie tun können:**3963**Was Sie tun können:**

3847 3964 

3848* Führen Sie `claude` in Ihrer Shell erneut im selben Verzeichnis aus. Wenn die Meldung besagte, dass Ihre Konversation gespeichert ist, führen Sie in der neuen Sitzung [`/resume`](/docs/de/sessions#resume-a-session) aus und wählen Sie sie aus3965* Führen Sie `claude` erneut in Ihrer Shell aus. Wenn die Meldung besagte, dass Ihre Konversation gespeichert ist, führen Sie in der neuen Sitzung [`/resume`](/docs/de/sessions#resume-a-session) aus und wählen Sie die Konversation aus. Wenn sie nicht in der Liste steht, [erweitern Sie die Sitzungsauswahl](/docs/de/sessions#where-the-session-picker-looks)

3849* Wenn Neustarts weiterhin fehlschlagen, starten Sie Claude Code aus Ihrer Shell mit [`claude --debug-file claude-debug.log`](/docs/de/cli-reference#cli-flags). Wenn ein Neustart aus dieser Sitzung fehlschlägt, enthält `claude-debug.log` im Startverzeichnis eine Zeile `Failed to relaunch:` mit dem Fehler des Betriebssystems. Fügen Sie diese Zeile hinzu, wenn Sie [das Problem melden](#report-an-error)3966* Wenn Neustarts weiterhin fehlschlagen, starten Sie Claude Code aus Ihrer Shell mit [`claude --debug-file claude-debug.log`](/docs/de/cli-reference#cli-flags). Wenn ein Neustart aus dieser Sitzung fehlschlägt, enthält `claude-debug.log` im Startverzeichnis eine Zeile `Failed to relaunch:` mit dem Fehler des Betriebssystems. Fügen Sie diese Zeile hinzu, wenn Sie [das Problem melden](#report-an-error)

3850 3967 

3851<h3 id="couldnt-open-claude-desktop">3968<h3 id="couldnt-open-claude-desktop">


5366* Kürzen Sie das `description`-Frontmatter Ihrer Agent-Dateien, oder bitten Sie Claude, diese für Sie zu kürzen.5483* Kürzen Sie das `description`-Frontmatter Ihrer Agent-Dateien, oder bitten Sie Claude, diese für Sie zu kürzen.

5367* Entfernen Sie Agent-Dateien, die Sie nicht mehr verwenden.5484* Entfernen Sie Agent-Dateien, die Sie nicht mehr verwenden.

5368 5485 

5486<h3 id="hook-needs-quotes-around-a-path-with-a-space">

5487 Hook needs quotes around a path with a space

5488</h3>

5489 

5490Diese Benachrichtigung in der Konversationsansicht bedeutet, dass das Skript eines Hooks nicht ausgeführt wurde, weil sein Pfad ein Leerzeichen enthält und nicht in Anführungszeichen steht. Dieser Hook ist ein [`asyncRewake`](/docs/de/hooks#run-hooks-in-the-background)-Hook in Shell-Form. In seinem `command` folgt auf einen Interpreter wie `python3` ein Pfadplatzhalter ohne Anführungszeichen, und der aufgelöste Pfad enthält ein Leerzeichen.

5491 

5492Die Benachrichtigung beginnt mit dem Ereignisnamen des Hooks und benennt das Skript:

5493 

5494```text theme={null}

5495Stop hook needs quotes around a path with a space (check.py)

5496```

5497 

5498**Was zu tun ist:**

5499 

5500* Setzen Sie im `command` des Hooks, der das in der Benachrichtigung genannte Skript ausführt, den Pfad in doppelte Anführungszeichen. In einer JSON-Datei schreiben Sie ihn als `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 

5369<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5370 Eine Fähigkeit, ein Befehl oder ein Workflow wurde nicht geladen, weil sein Name reserviert ist5503 Eine Fähigkeit, ein Befehl oder ein Workflow wurde nicht geladen, weil sein Name reserviert ist

5371</h3>5504</h3>


5386 5519 

5387Vor v2.1.282 lud Claude Code Fähigkeiten und Befehle mit diesen Namen.5520Vor v2.1.282 lud Claude Code Fähigkeiten und Befehle mit diesen Namen.

5388 5521 

5522<h3 id="skill-or-command-name-refused">

5523 Skill- oder Befehlsname abgelehnt

5524</h3>

5525 

5526Diese Startnachricht bedeutet, dass Claude Code den Namen mindestens eines [Skills oder benutzerdefinierten Befehls](/docs/de/skills) abgelehnt hat, sodass dieser nicht oder ohne sein `name`-Feld geladen wurde:

5527 

5528```text theme={null}

55291 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters

5530```

5531 

5532* **Nicht geladen**: Claude Code hat den Namen abgelehnt, unter dem ein Skill oder Befehl geführt wird, z. B. seinen Verzeichnisnamen oder den Namen oder Unterordner einer Befehlsdatei. Er fehlt im `/`-Menü, und Claude kann ihn nicht aufrufen. Seine Zeile im Debug-Log lautet `<name> is not offered`.

5533* **`name`-Feld ignoriert**: Claude Code hat den Frontmatter-`name` eines Skills abgelehnt. Der Skill wird trotzdem geladen, aber das `/`-Menü zeigt den `name`-Wert nicht an, und die Eingabe dieses Werts ruft den Skill nicht auf. Seine Zeile im Debug-Log lautet `<name value> is not shown for <skill>`.

5534 

5535**Was zu tun ist:**

5536 

5537* Starten Sie Claude Code mit `claude --debug` aus Ihrer Shell und durchsuchen Sie das [Debug-Log](/docs/de/debug-your-config) nach `[names]`. Jeder Name, den die Meldung zählt, hat dort eine Zeile. Die Zeile schreibt einige versteckte Zeichen als Codes aus, z. B. `\u{200B}` für ein Leerzeichen mit Nullbreite, damit Sie sehen, wo sie sich befinden.

5538* Entfernen Sie die [Zeichen, die ein Skill-Name nicht enthalten darf](/docs/de/skills#characters-a-skill-name-cant-hold), indem Sie den Ordner oder die Datei umbenennen oder die `name:`-Zeile bearbeiten, oder kürzen Sie einen Namen, der länger als 256 Zeichen ist. Starten Sie dann die Sitzung neu, es sei denn, die Datei befindet sich in einem Verzeichnis, das Claude Code [auf Änderungen überwacht](/docs/de/skills#live-change-detection). Bei einem Skill aus einem Plugin, das Sie nicht selbst geschrieben haben, bitten Sie den Autor des Plugins, ihn umzubenennen.

5539 

5389<h3 id="workspace-has-not-been-trusted">5540<h3 id="workspace-has-not-been-trusted">

5390 Arbeitsbereich wurde nicht vertraut5541 Arbeitsbereich wurde nicht vertraut

5391</h3>5542</h3>

Details

220</table>220</table>

221 221 

222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Auf Google Cloud's Agent Platform ist Web search für Opus 4, Sonnet 4, Haiku 4.5 und spätere Modelle verfügbar.<br />222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Auf Google Cloud's Agent Platform ist Web search für Opus 4, Sonnet 4, Haiku 4.5 und spätere Modelle verfügbar.<br />

223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Auf diesen Anbietern unterstützt der Auto-Modus nur Claude Sonnet 5 oder später, Opus 4.7 oder später, Haiku 5.5 und die Fable-Modelle. Siehe [Konfiguration des Auto-Modus](/docs/de/auto-mode-config). Für den Berechtigungsmodus, in dem eine Sitzung auf diesen Anbietern startet, siehe [In welchem Modus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in). In v2.1.158 bis v2.1.206 erforderte der Auto-Modus auf diesen Anbietern auch das Setzen von `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 entfernte die Anforderung.<br />223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Auf diesen Anbietern unterstützt der Auto-Modus nur Claude Sonnet 5 oder später, Opus 4.7 oder später, Haiku 5.5 und die Fable-Modelle. Siehe [Konfiguration des Auto-Modus](/docs/de/auto-mode-config). Für den Berechtigungsmodus, in dem eine Sitzung auf diesen Anbietern startet, siehe [In welchem Modus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in).<br />

224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Unterliegt Ihrer Vereinbarung mit dem Cloud-Anbieter.<br />224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Unterliegt Ihrer Vereinbarung mit dem Cloud-Anbieter.<br />

225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard und API nur. [Contribution metrics](/docs/de/analytics#enable-contribution-metrics) erfordert eine claude.ai Team- oder Enterprise-Organisation.<br />225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard und API nur. [Contribution metrics](/docs/de/analytics#enable-contribution-metrics) erfordert eine claude.ai Team- oder Enterprise-Organisation.<br />

226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Erfordert Claude Code v2.1.224 oder später auf macOS und Linux, einschließlich Linux in WSL 2. Auf nativem Windows erfordert Claude Code v2.1.234 oder später. Mit API-Schlüssel-Authentifizierung ist Messaging nur auf dem gleichen Computer möglich. Auf Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry ist Messaging nur auf dem gleichen Computer möglich und erfordert Claude Code v2.1.248 oder später. Claude kann Ihre [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) und Ihre Sitzungen auf anderen Computern nur von einer Sitzung aus finden, die mit [Remote Control](/docs/de/remote-control) verbunden ist. Um eine Verbindung herzustellen, benötigen Sie eine claude.ai-Anmeldung und die anderen [Remote Control-Anforderungen](/docs/de/remote-control#requirements). Siehe [Sitzungen auf anderen Computern anschreiben](/docs/de/cross-session-messaging#message-sessions-on-other-machines).226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Erfordert Claude Code v2.1.224 oder später auf macOS und Linux, einschließlich Linux in WSL 2. Auf nativem Windows erfordert Claude Code v2.1.234 oder später. Mit API-Schlüssel-Authentifizierung ist Messaging nur auf dem gleichen Computer möglich. Auf Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry ist Messaging nur auf dem gleichen Computer möglich und erfordert Claude Code v2.1.248 oder später. Claude kann Ihre [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) und Ihre Sitzungen auf anderen Computern nur von einer Sitzung aus finden, die mit [Remote Control](/docs/de/remote-control) verbunden ist. Um eine Verbindung herzustellen, benötigen Sie eine claude.ai-Anmeldung und die anderen [Remote Control-Anforderungen](/docs/de/remote-control#requirements). Siehe [Sitzungen auf anderen Computern anschreiben](/docs/de/cross-session-messaging#message-sessions-on-other-machines).

Details

41 41 

42| Funktion | Was sie tut | Wann man sie nutzt | Beispiel |42| Funktion | Was sie tut | Wann man sie nutzt | Beispiel |

43| - | - | - | - |43| - | - | - | - |

44| **CLAUDE.md** | Persistenter Kontext, der in jedem Gespräch geladen wird | Projektkonventionen, „immer X tun"-Regeln | „Verwenden Sie pnpm, nicht npm. Führen Sie Tests vor dem Commit aus." |44| **CLAUDE.md** | Persistenter Kontext, der in jedem Gespräch geladen wird | Projektkonventionen, „immer X tun“-Regeln | „Verwenden Sie pnpm, nicht npm. Führen Sie Tests vor dem Commit aus.“ |

45| **[Ausgabestil](/docs/de/output-styles)** | Anweisungen, die Claudes Rolle, Ton und Antwortformat für eine ganze Sitzung festlegen | Eine Stimme, Länge oder Format, das Sie in jeder Antwort möchten, oder Claude arbeitet als etwas anderes als ein Softwareingenieur | Der integrierte Concise-Stil für kürzere Antworten; ein benutzerdefinierter Stil, der jede Frage zuerst mit einem Diagramm beantwortet |45| **[Ausgabestil](/docs/de/output-styles)** | Anweisungen, die Claudes Rolle, Ton und Antwortformat für eine ganze Sitzung festlegen | Eine Stimme, Länge oder Format, das Sie in jeder Antwort möchten, oder Claude arbeitet als etwas anderes als ein Softwareingenieur | Der integrierte Concise-Stil für kürzere Antworten; ein benutzerdefinierter Stil, der jede Frage zuerst mit einem Diagramm beantwortet |

46| **Skill** | Anweisungen, Wissen und Workflows, die Claude nutzen kann | Wiederverwendbarer Inhalt, Referenzdokumente, wiederholbare Aufgaben | `/deploy` führt Ihre Bereitstellungs-Checkliste aus; API-Docs-Skill mit Endpunkt-Mustern |46| **Skill** | Anweisungen, Wissen und Workflows, die Claude nutzen kann | Wiederverwendbarer Inhalt, Referenzdokumente, wiederholbare Aufgaben | `/deploy` führt Ihre Bereitstellungs-Checkliste aus; API-Docs-Skill mit Endpunkt-Mustern |

47| **Subagent** | Isolierter Ausführungskontext, der zusammengefasste Ergebnisse zurückgibt | Kontextisolation, parallele Aufgaben, spezialisierte Worker | Recherche-Aufgabe, die viele Dateien liest, aber nur wichtige Erkenntnisse zurückgibt |47| **Subagent** | Isolierter Ausführungskontext, der zusammengefasste Ergebnisse zurückgibt | Kontextisolation, parallele Aufgaben, spezialisierte Worker | Recherche-Aufgabe, die viele Dateien liest, aber nur wichtige Erkenntnisse zurückgibt |


109 | **Lädt** | Jede Sitzung, automatisch | On Demand |109 | **Lädt** | Jede Sitzung, automatisch | On Demand |

110 | **Kann Dateien einschließen** | Ja, mit `@path`-Importen | Ja, mit `@path`-Importen |110 | **Kann Dateien einschließen** | Ja, mit `@path`-Importen | Ja, mit `@path`-Importen |

111 | **Kann Workflows auslösen** | Nein | Ja, mit `/<name>` |111 | **Kann Workflows auslösen** | Nein | Ja, mit `/<name>` |

112 | **Am besten für** | „Immer X tun"-Regeln | Referenzmaterial, aufrufbare Workflows |112 | **Am besten für** | „Immer X tun“-Regeln | Referenzmaterial, aufrufbare Workflows |

113 113 

114 **Legen Sie es in CLAUDE.md** ab, wenn Claude es immer wissen sollte: Codierungskonventionen, Build-Befehle, Projektstruktur, „niemals X tun"-Regeln.114 **Legen Sie es in CLAUDE.md** ab, wenn Claude es immer wissen sollte: Codierungskonventionen, Build-Befehle, Projektstruktur, „niemals X tun“-Regeln.

115 115 

116 **Legen Sie es in einen Skill**, wenn es Referenzmaterial ist, das Claude manchmal benötigt (API-Docs, Stilhandbücher) oder ein Workflow, den Sie mit `/<name>` auslösen (bereitstellen, überprüfen, freigeben).116 **Legen Sie es in einen Skill**, wenn es Referenzmaterial ist, das Claude manchmal benötigt (API-Docs, Stilhandbücher) oder ein Workflow, den Sie mit `/<name>` auslösen (bereitstellen, überprüfen, freigeben).

117 117 


125 | - | - | - |125 | - | - | - |

126 | **Hält** | Fakten und Regeln über Ihr Projekt | Eine Rolle, einen Ton und ein Antwortformat |126 | **Hält** | Fakten und Regeln über Ihr Projekt | Eine Rolle, einen Ton und ein Antwortformat |

127 | **Wechsel** | Immer geladen | Einer aktiv auf einmal; [Wechseln Sie Stile](/docs/de/output-styles#change-your-output-style) wann immer Sie möchten |127 | **Wechsel** | Immer geladen | Einer aktiv auf einmal; [Wechseln Sie Stile](/docs/de/output-styles#change-your-output-style) wann immer Sie möchten |

128 | **Am besten für** | Build-Befehle, Konventionen, „niemals X tun"-Regeln | Kürzere Antworten, Erklärungen neben Code, eine nicht-technische Rolle |128 | **Am besten für** | Build-Befehle, Konventionen, „niemals X tun“-Regeln | Kürzere Antworten, Erklärungen neben Code, eine nicht-technische Rolle |

129 129 

130 **Legen Sie es in CLAUDE.md** ab, wenn es unabhängig vom Stil wahr ist: Codierungskonventionen, Build-Befehle, Projektstruktur.130 **Legen Sie es in CLAUDE.md** ab, wenn es unabhängig vom Stil wahr ist: Codierungskonventionen, Build-Befehle, Projektstruktur.

131 131 


194 194 

195 **Verwenden Sie einen Skill**, wenn Claude entscheiden sollte, wie die Schritte angewendet werden, oder wenn der Inhalt Wissen statt ein Skript ist. Zum Beispiel: eine `/release`-Checkliste, Ihr API-Stilhandbuch, ein Debugging-Playbook.195 **Verwenden Sie einen Skill**, wenn Claude entscheiden sollte, wie die Schritte angewendet werden, oder wenn der Inhalt Wissen statt ein Skript ist. Zum Beispiel: eine `/release`-Checkliste, Ihr API-Stilhandbuch, ein Debugging-Playbook.

196 196 

197 **Legen Sie Schutzmaßnahmen in Hooks.** Eine Anweisung wie „niemals `.env` bearbeiten" in CLAUDE.md oder einem Skill ist eine Anfrage, keine Garantie. Ein `PreToolUse`-Hook, der die Bearbeitung blockiert, ist Durchsetzung. Wenn eine Regel jedes Mal gelten muss, machen Sie sie zu einem Hook statt zu einer Prompt-Anweisung.197 **Legen Sie Schutzmaßnahmen in Hooks.** Eine Anweisung wie „niemals `.env` bearbeiten“ in CLAUDE.md oder einem Skill ist eine Anfrage, keine Garantie. Ein `PreToolUse`-Hook, der die Bearbeitung blockiert, ist Durchsetzung. Wenn eine Regel jedes Mal gelten muss, machen Sie sie zu einem Hook statt zu einer Prompt-Anweisung.

198 198 

199 **Hook-Ausgabe landet im Kontext.** Ein `PostToolUse`-Hook, der Ihren Linter ausführt, gibt Ergebnisse als Text zurück, den Claude liest; ein `/fix-lint`-Skill sagt Claude, wie man sie löst.199 **Hook-Ausgabe landet im Kontext.** Ein `PostToolUse`-Hook, der Ihren Linter ausführt, gibt Ergebnisse als Text zurück, den Claude liest; ein `/fix-lint`-Skill sagt Claude, wie man sie löst.

200 </Tab>200 </Tab>


223| - | - | - |223| - | - | - |

224| **Skill + MCP** | MCP bietet die Verbindung; ein Skill lehrt Claude, sie gut zu nutzen | MCP verbindet sich mit Ihrer Datenbank, ein Skill dokumentiert Ihr Schema und Abfragemuster |224| **Skill + MCP** | MCP bietet die Verbindung; ein Skill lehrt Claude, sie gut zu nutzen | MCP verbindet sich mit Ihrer Datenbank, ein Skill dokumentiert Ihr Schema und Abfragemuster |

225| **Skill + Subagent** | Ein Skill spawnt Subagents für parallele Arbeit | `/audit`-Skill startet Sicherheits-, Leistungs- und Style-Subagents, die in isoliertem Kontext arbeiten |225| **Skill + Subagent** | Ein Skill spawnt Subagents für parallele Arbeit | `/audit`-Skill startet Sicherheits-, Leistungs- und Style-Subagents, die in isoliertem Kontext arbeiten |

226| **CLAUDE.md + Skills** | CLAUDE.md hält immer-aktive Regeln; Skills halten Referenzmaterial, das On Demand geladen wird | CLAUDE.md sagt „folgen Sie unseren API-Konventionen", ein Skill enthält das vollständige API-Stilhandbuch |226| **CLAUDE.md + Skills** | CLAUDE.md hält immer-aktive Regeln; Skills halten Referenzmaterial, das On Demand geladen wird | CLAUDE.md sagt „folgen Sie unseren API-Konventionen“, ein Skill enthält das vollständige API-Stilhandbuch |

227| **Hook + MCP** | Ein Hook löst externe Aktionen durch MCP aus | Post-Edit-Hook sendet eine Slack-Benachrichtigung, wenn Claude kritische Dateien ändert |227| **Hook + MCP** | Ein Hook löst externe Aktionen durch MCP aus | Post-Edit-Hook sendet eine Slack-Benachrichtigung, wenn Claude kritische Dateien ändert |

228 228 

229<h2 id="understand-context-costs">229<h2 id="understand-context-costs">


282 282 

283 **Kontextkosten:** Niedrig bis verwendet. Nur-Benutzer-Skills haben Null-Kosten bis aufgerufen.283 **Kontextkosten:** Niedrig bis verwendet. Nur-Benutzer-Skills haben Null-Kosten bis aufgerufen.

284 284 

285 **In Subagents:** Skills funktionieren in Subagents anders. Anstelle von On-Demand-Laden werden Skills, die im `skills:`-Feld des Subagenten aufgelistet sind, vollständig in seinen Kontext beim Start vorgeladen. Subagents können immer noch unlisted Project-, Benutzer- und Plugin-Skills durch das Skill-Tool entdecken und aufrufen.285 **In Subagenten:** Skills funktionieren in Subagenten anders. Anstelle von On-Demand-Laden werden Skills, die im `skills`-Feld des Subagenten aufgelistet sind, beim Start vollständig in seinen Kontext vorgeladen. Subagenten können weiterhin nicht aufgelistete Projekt-, Benutzer- und Plugin-Skills über das Skill-Tool entdecken und aufrufen.

286 286 

287 <Tip>Verwenden Sie `disable-model-invocation: true` für Skills mit Nebenwirkungen. Dies spart Kontext und stellt sicher, dass sie nur ausgeführt werden, wenn Sie sie namentlich aufrufen.</Tip>287 <Tip>Verwenden Sie `disable-model-invocation: true` für Skills mit Nebenwirkungen. Dies spart Kontext und stellt sicher, dass sie nur ausgeführt werden, wenn Sie sie namentlich aufrufen.</Tip>

288 </Tab>288 </Tab>


312 312 

313 **Was lädt:** Frischer, isolierter Kontext, der Folgendes enthält:313 **Was lädt:** Frischer, isolierter Kontext, der Folgendes enthält:

314 314 

315 * Der Agent's eigener System-Prompt, nicht der Claude Code System-Prompt315 * Der eigene System-Prompt des Agenten, nicht der System-Prompt von Claude Code

316 * Vollständiger Inhalt von Skills, die im `skills:`-Feld des Agenten aufgelistet sind316 * Vollständiger Inhalt von Skills, die im `skills:`-Feld des Agenten aufgelistet sind

317 * CLAUDE.md und Git-Status, außer die integrierten Explore- und Plan-Agenten [lassen beide weg](/docs/de/sub-agents#what-loads-at-startup), und ein Agent, dessen Definition [`omitClaudeMd`](/docs/de/sub-agents#supported-frontmatter-fields) setzt, überspringt die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien317 * CLAUDE.md und Git-Status. Die integrierten Explore- und Plan-Agenten [starten ohne beides](/docs/de/sub-agents#what-loads-at-startup), und ein Agent, dessen Definition [`omitClaudeMd`](/docs/de/sub-agents#supported-frontmatter-fields) setzt, startet ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien.

318 * Welcher Kontext auch immer der Lead-Agent im Prompt übergibt318 * Welcher Kontext auch immer der Lead-Agent im Prompt übergibt

319 319 

320 Für einen [Fork](/docs/de/sub-agents#fork-the-current-conversation) lädt Claude Code die bisherige Konversation des übergeordneten Elements, den System-Prompt und die Tools statt dessen.320 Für einen [Fork](/docs/de/sub-agents#fork-the-current-conversation) lädt Claude Code die bisherige Konversation des übergeordneten Elements, den System-Prompt und die Tools statt dessen.

Details

22 22 

23| Funktion | GHES-Unterstützung | Hinweise |23| Funktion | GHES-Unterstützung | Hinweise |

24| :- | :- | :- |24| :- | :- | :- |

25| Cloud-Sitzungen | ✅ Unterstützt | Ein Owner verbindet die GHES-Instanz einmalig; Entwickler verwenden `claude --cloud` oder [claude.ai/code](https://claude.ai/code) wie gewohnt |25| Cloud-Sitzungen | ✅ Unterstützt | Ein Owner verbindet die GHES-Instanz einmalig; Entwickler verwenden `claude --cloud` oder [claude.ai/code](https://claude.ai/code) |

26| Code Review | ✅ Unterstützt | Gleiche automatisierte PR-Reviews wie github.com |26| Code Review | ✅ Unterstützt | Gleiche automatisierte PR-Reviews wie github.com |

27| Claude Security | ✅ Unterstützt | Verfügbar in öffentlicher Beta für Enterprise-Pläne unter [claude.ai/security](https://claude.ai/security) |27| Claude Security | ✅ Unterstützt | Verfügbar in öffentlicher Beta für Enterprise-Pläne unter [claude.ai/security](https://claude.ai/security) |

28| Teleport-Sitzungen | ✅ Unterstützt | Verschieben Sie Sitzungen zwischen Cloud und Terminal mit `--teleport` |28| Teleport-Sitzungen | ✅ Unterstützt | Verschieben Sie Sitzungen zwischen Cloud und Terminal mit `--teleport` |


35 Admin-Einrichtung35 Admin-Einrichtung

36</h2>36</h2>

37 37 

38Ein Owner verbindet Ihre GHES-Instanz einmalig mit Claude Code. Danach können Entwickler in Ihrer Organisation GHES-Repositorys ohne zusätzliche Konfiguration verwenden. Sie benötigen die Rolle Owner oder Primary Owner in Ihrer Claude-Organisation und die Berechtigung, GitHub Apps auf Ihrer GHES-Instanz zu erstellen.38Ein Owner verbindet Ihre GHES-Instanz einmalig mit Claude Code. Sie benötigen die Rolle Owner oder Primary Owner in Ihrer Claude-Organisation und die Berechtigung, GitHub Apps auf Ihrer GHES-Instanz zu erstellen.

39 39 

40Die geführte Einrichtung generiert ein GitHub App-Manifest und leitet Sie zu Ihrer GHES-Instanz weiter, um die App in einem Klick zu erstellen. Wenn Ihre Umgebung den Umleitungsfluss blockiert, ist eine [alternative manuelle Einrichtung](#manual-setup) verfügbar.40Die geführte Einrichtung generiert ein GitHub App-Manifest und leitet Sie zu Ihrer GHES-Instanz weiter, um die App in einem Klick zu erstellen. Wenn Ihre Umgebung den Umleitungsfluss blockiert, ist eine [alternative manuelle Einrichtung](#manual-setup) verfügbar.

41 41 


103 Entwickler-Workflow103 Entwickler-Workflow

104</h2>104</h2>

105 105 

106Sobald ein Inhaber die GHES-Instanz verbunden hat, ist keine Konfiguration auf der Entwicklerseite erforderlich. Claude Code erkennt Ihren GHES-Hostnamen automatisch aus dem Git-Remote in Ihrem Arbeitsverzeichnis.106Claude Code erkennt Ihren GHES-Hostnamen automatisch aus dem Git-Remote in Ihrem Arbeitsverzeichnis.

107 107 

108Klonen Sie ein Repository von Ihrer GHES-Instanz wie gewohnt, und ersetzen Sie `github.example.com` und den Repository-Pfad durch Ihren GHES-Hostnamen und das Repository:108Klonen Sie ein Repository von Ihrer GHES-Instanz wie gewohnt, und ersetzen Sie `github.example.com` und den Repository-Pfad durch Ihren GHES-Hostnamen und das Repository:

109 109 


228 228 

229Wenn `claude --cloud` mit einem Klonfehler fehlschlägt, überprüfen Sie, ob ein Owner die Einrichtung für Ihre GHES-Instanz abgeschlossen hat und ob die GitHub App auf dem Repository installiert ist, an dem Sie arbeiten. Bitten Sie den Owner, der die Instanz verbunden hat, zu bestätigen, dass der in den Claude-Einstellungen registrierte Hostname mit dem Hostnamen in Ihrem Git-Remote übereinstimmt.229Wenn `claude --cloud` mit einem Klonfehler fehlschlägt, überprüfen Sie, ob ein Owner die Einrichtung für Ihre GHES-Instanz abgeschlossen hat und ob die GitHub App auf dem Repository installiert ist, an dem Sie arbeiten. Bitten Sie den Owner, der die Instanz verbunden hat, zu bestätigen, dass der in den Claude-Einstellungen registrierte Hostname mit dem Hostnamen in Ihrem Git-Remote übereinstimmt.

230 230 

231Wenn die Sitzung mit „Authentication failed while accessing the repository“ abbricht, haben Sie möglicherweise Ihr eigenes GitHub Enterprise-Konto nicht verbunden. Verbinden Sie es über die Repository-Auswahl auf [claude.ai/code](https://claude.ai/code) und starten Sie dann eine neue Sitzung.

232 

231<h3 id="marketplace-add-fails-with-a-policy-error">233<h3 id="marketplace-add-fails-with-a-policy-error">

232 Marktplatz-Hinzufügen schlägt mit Richtlinienfehler fehl234 Marktplatz-Hinzufügen schlägt mit Richtlinienfehler fehl

233</h3>235</h3>

Details

261* Um Haiku für Hintergrundaufgaben zu verwenden, legen Sie `ANTHROPIC_DEFAULT_HAIKU_MODEL` auf eine Modell-ID fest, die in Ihrem Projekt verfügbar ist.261* Um Haiku für Hintergrundaufgaben zu verwenden, legen Sie `ANTHROPIC_DEFAULT_HAIKU_MODEL` auf eine Modell-ID fest, die in Ihrem Projekt verfügbar ist.

262 262 

263<Warning>263<Warning>

264 Opus-Modelle haben einen höheren Pro-Token-Preis als Sonnet-Modelle, daher wird eine Bereitstellung, die kein primäres Modell fixiert, mit dem Opus-Satz abgerechnet, sobald sie auf v2.1.207 oder später aktualisiert wird. Um Sonnet 4.5 als primäres Modell beizubehalten, legen Sie `ANTHROPIC_MODEL` auf seine vollständige Modell-ID fest. Eine Bereitstellung, die den Standard mit `ANTHROPIC_DEFAULT_SONNET_MODEL` steuert und `ANTHROPIC_DEFAULT_OPUS_MODEL` nicht setzt, behält ihr gesteuertes Sonnet-Modell als Standard.264 Opus-Modelle haben einen höheren Pro-Token-Preis als Sonnet-Modelle. Wenn Sie also kein primäres Modell fixieren, wird Ihnen der Opus-Satz berechnet. Um Sonnet 4.5 als primäres Modell zu verwenden, legen Sie `ANTHROPIC_MODEL` auf seine vollständige Modell-ID fest. Eine Bereitstellung, die den Standard mit `ANTHROPIC_DEFAULT_SONNET_MODEL` steuert und `ANTHROPIC_DEFAULT_OPUS_MODEL` nicht setzt, behält ihr gesteuertes Sonnet-Modell als Standard.

265</Warning>265</Warning>

266 266 

267Vor v2.1.280 war das primäre Modell auf Google Cloud's Agent Platform standardmäßig Opus 5 und der `opus`-Alias wurde zu Opus 5 von v2.1.219 aufgelöst. Auf v2.1.207 bis v2.1.218 war das primäre Modell auf Google Cloud's Agent Platform standardmäßig Opus 4.8 und der `opus`-Alias wurde zu Opus 4.8 aufgelöst. Vor v2.1.207 war das primäre Modell standardmäßig Sonnet 4.5, der `opus`-Alias wurde zu Opus 4.6 aufgelöst, und Hintergrundaufgaben verwendeten immer das primäre Modell.267Vor v2.1.280 war das primäre Modell auf Google Cloud's Agent Platform standardmäßig Opus 5 und der `opus`-Alias wurde zu Opus 5 von v2.1.219 aufgelöst. Auf v2.1.207 bis v2.1.218 war das primäre Modell auf Google Cloud's Agent Platform standardmäßig Opus 4.8 und der `opus`-Alias wurde zu Opus 4.8 aufgelöst.

268 268 

269Um Modelle weiter anzupassen:269Um Modelle weiter anzupassen:

270 270 

headless.md +6 −6

Details

38 Schneller starten mit Bare-Modus38 Schneller starten mit Bare-Modus

39</h3>39</h3>

40 40 

41Fügen Sie `--bare` hinzu, um die Startzeit zu verkürzen, indem Sie die automatische Erkennung von Hooks, Skills, benutzerdefinierten Befehlen, [Subagenten](/docs/de/sub-agents), installierten Plugins, MCP-Servern, Auto-Memory und CLAUDE.md überspringen. Ohne diese Option lädt `claude -p` denselben [Kontext](/docs/de/how-claude-code-works#the-context-window) wie eine interaktive Sitzung, einschließlich aller im Arbeitsverzeichnis oder in `~/.claude` konfigurierten Inhalte.41Fügen Sie `--bare` hinzu, um die Startzeit zu verkürzen, indem Sie die automatische Erkennung von Hooks, Skills, benutzerdefinierten Befehlen, [Subagenten](/docs/de/sub-agents), installierten Plugins, MCP-Servern, Auto-Memory und CLAUDE.md überspringen. Ohne diese Option erkennt und lädt `claude -p` diese wie eine interaktive Sitzung, einschließlich aller im Arbeitsverzeichnis oder in `~/.claude` konfigurierten Inhalte.

42 42 

43Der Bare-Modus ist nützlich für CI und Skripte, bei denen Sie auf jedem Computer das gleiche Ergebnis benötigen. Ein Hook in der `~/.claude` eines Teamkollegen oder ein MCP-Server in der `.mcp.json` des Projekts wird nicht ausgeführt, da der Bare-Modus diese nie liest. Ein Verzeichnis, das Sie mit `--add-dir` benennen, ist eine teilweise Ausnahme: Der Bare-Modus lädt Skills aus seinem `.claude/skills/`-Ordner, überspringt aber immer noch seine `.claude/commands/`- und `.claude/agents/`-Ordner. [Skills aus zusätzlichen Verzeichnissen](/docs/de/skills#skills-from-additional-directories) behandelt, was geladen wird und was nicht.43Der Bare-Modus ist nützlich für CI und Skripte, bei denen Sie auf jedem Computer das gleiche Ergebnis benötigen. Ein Hook in der `~/.claude` eines Teamkollegen oder ein MCP-Server in der `.mcp.json` des Projekts wird nicht ausgeführt, da der Bare-Modus diese nie liest. Ein Verzeichnis, das Sie mit `--add-dir` benennen, ist eine teilweise Ausnahme: Der Bare-Modus lädt Skills aus seinem `.claude/skills/`-Ordner, überspringt aber immer noch seine `.claude/commands/`- und `.claude/agents/`-Ordner. [Skills aus zusätzlichen Verzeichnissen](/docs/de/skills#skills-from-additional-directories) behandelt, was geladen wird und was nicht.

44 44 


184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'

185```185```

186 186 

187Wenn der Wert kein gültiges JSON Schema ist, beendet sich `claude` mit `Error: --json-schema is not a valid JSON Schema` gefolgt von der Diagnose des Validators. Claude Code akzeptiert Schemas, die das Schlüsselwort `format` verwenden, wie `"format": "email"`, behandelt `format` aber als Anmerkung und erzwingt es nicht. Vor v2.1.205 ignorierte Claude Code ein ungültiges Schema stillschweigend und gab unstrukturierten Text zurück, und behandelte jedes Schema, das `format` enthielt, als ungültig.187Wenn der Wert kein gültiges JSON Schema ist, beendet sich `claude` mit `Error: --json-schema is not a valid JSON Schema` gefolgt von der Diagnose des Validators. Claude Code akzeptiert Schemas, die das Schlüsselwort `format` verwenden, wie `"format": "email"`, behandelt `format` aber als Anmerkung und erzwingt es nicht.

188 188 

189<Tip>189<Tip>

190 Verwenden Sie ein Tool wie [jq](https://jqlang.org/) zum Analysieren der Antwort und zum Extrahieren bestimmter Felder:190 Verwenden Sie ein Tool wie [jq](https://jqlang.org/) zum Analysieren der Antwort und zum Extrahieren bestimmter Felder:


281Das `system/init`-Ereignis meldet Sitzungsmetadaten einschließlich des Modells, der Tools, der MCP-Server und der geladenen Plugins. Es ist das erste Ereignis im Stream, es sei denn, Startereignisse gehen ihm voraus:281Das `system/init`-Ereignis meldet Sitzungsmetadaten einschließlich des Modells, der Tools, der MCP-Server und der geladenen Plugins. Es ist das erste Ereignis im Stream, es sei denn, Startereignisse gehen ihm voraus:

282 282 

283* `plugin_install`-Ereignisse, wenn [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/de/env-vars) gesetzt ist.283* `plugin_install`-Ereignisse, wenn [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/de/env-vars) gesetzt ist.

284* [`hook_started`-, `hook_progress`- und `hook_response`-Ereignisse](/docs/de/agent-sdk/typescript#sdkhookstartedmessage), während ein konfigurierter [`SessionStart`](/docs/de/hooks#sessionstart)- oder [`Setup`](/docs/de/hooks#setup)-Hook ausgeführt wird. Diese werden gestreamt, während der Hook sie erzeugt. Claude Code v2.1.169 bis v2.1.203 lieferte sie in einem Batch nach Abschluss des Hooks, immer noch vor `system/init`; v2.1.204 stellte die Live-Lieferung wieder her.284* [`hook_started`-, `hook_progress`- und `hook_response`-Ereignisse](/docs/de/agent-sdk/typescript#sdkhookstartedmessage), während ein konfigurierter [`SessionStart`](/docs/de/hooks#sessionstart)- oder [`Setup`](/docs/de/hooks#setup)-Hook ausgeführt wird. Diese werden gestreamt, während der Hook sie erzeugt.

285 285 

286Das Ereignis enthält außerdem ein optionales Array `capabilities` von Zeichenketten, das die Protokollverhalten benennt, die diese Claude Code-Version implementiert, wie `interrupt_receipt_v1` oder `interrupt_cancel_queued_v1`. Prüfen Sie es, um Funktionen zu erkennen, anstatt Versionszeichenketten zu vergleichen, und ignorieren Sie Werte, die Sie nicht kennen. Das Feld erfordert Claude Code v2.1.205 oder später und fehlt in früheren Versionen. Siehe [`SDKSystemMessage`](/docs/de/agent-sdk/typescript#sdksystemmessage) für die Liste der Fähigkeiten.286Das Ereignis enthält außerdem ein optionales Array `capabilities` von Zeichenketten, das die Protokollverhalten benennt, die diese Claude Code-Version implementiert, wie `interrupt_receipt_v1` oder `interrupt_cancel_queued_v1`. Prüfen Sie es, um Funktionen zu erkennen, anstatt Versionszeichenketten zu vergleichen, und ignorieren Sie Werte, die Sie nicht kennen. Siehe [`SDKSystemMessage`](/docs/de/agent-sdk/typescript#sdksystemmessage) für die Liste der Fähigkeiten.

287 287 

288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">

289 CI fehlschlagen lassen, wenn ein Plugin oder MCP-Server nicht geladen wird289 CI fehlschlagen lassen, wenn ein Plugin oder MCP-Server nicht geladen wird


388 388 

389 * Vom Benutzer aufgerufene [Skills](/docs/de/skills) und benutzerdefinierte Befehle funktionieren. Fügen Sie `/skill-name` in die Prompt-Zeichenkette ein, und Claude Code erweitert ihn vor der Ausführung.389 * Vom Benutzer aufgerufene [Skills](/docs/de/skills) und benutzerdefinierte Befehle funktionieren. Fügen Sie `/skill-name` in die Prompt-Zeichenkette ein, und Claude Code erweitert ihn vor der Ausführung.

390 * Integrierte Befehle, die nur in der Terminal-Oberfläche ausgeführt werden, wie `/login`, sind nicht verfügbar.390 * Integrierte Befehle, die nur in der Terminal-Oberfläche ausgeführt werden, wie `/login`, sind nicht verfügbar.

391 * `/model`, `/effort`, `/fast`, `/color` und `/rename` akzeptieren den Wert als Argument, zum Beispiel `/model sonnet`, und `/mcp` ohne Argument gibt eine Textzusammenfassung des Serverstatus aus. Diese Formen erfordern Claude Code v2.1.205 oder später und folgen den [Verfügbarkeitshinweisen](/docs/de/commands#all-commands) des jeweiligen Befehls.391 * `/model`, `/effort`, `/fast`, `/color` und `/rename` akzeptieren den Wert als Argument, zum Beispiel `/model sonnet`, und `/mcp` ohne Argument gibt eine Textzusammenfassung des Serverstatus aus. Diese Formen folgen den [Verfügbarkeitshinweisen](/docs/de/commands#all-commands) des jeweiligen Befehls.

392 * Um eine Einstellung zu ändern, übergeben Sie `key=value` an `/config`, zum Beispiel `/config thinking=false`.392 * Um eine Einstellung zu ändern, übergeben Sie `key=value` an `/config`, zum Beispiel `/config thinking=false`.

393 * `/output-style <style>` wechselt [Ausgabestile](/docs/de/output-styles), und `/output-style` allein listet sie auf. Erfordert Claude Code v2.1.269 oder später.393 * `/output-style <style>` wechselt [Ausgabestile](/docs/de/output-styles), und `/output-style` allein listet sie auf. Erfordert Claude Code v2.1.269 oder später.

394</Note>394</Note>


407 407 

408Im Skript steht `"$1"` für das erste Argument, das Sie in der Befehlszeile übergeben. Führen Sie `bash review.sh 123` aus, und die Shell ersetzt `"$1"` durch `123`, sodass das Skript den Diff für PR 123 abruft. Claude Code gibt die Überprüfung als JSON aus, wobei sich der Text im Feld `result` befindet.408Im Skript steht `"$1"` für das erste Argument, das Sie in der Befehlszeile übergeben. Führen Sie `bash review.sh 123` aus, und die Shell ersetzt `"$1"` durch `123`, sodass das Skript den Diff für PR 123 abruft. Claude Code gibt die Überprüfung als JSON aus, wobei sich der Text im Feld `result` befindet.

409 409 

410Siehe [System-Prompt-Flags](/docs/de/cli-reference#system-prompt-flags) für weitere Optionen, einschließlich `--system-prompt`, um den Standard-Prompt vollständig zu ersetzen.410Siehe [System-Prompt-Flags](/docs/de/cli-reference#system-prompt-flags) für weitere Optionen, einschließlich `--system-prompt`, um den Standard-Prompt vollständig zu ersetzen. Wenn Sie ihn ersetzen, startet der Lauf außerdem ohne den [Git-Status-Snapshot](/docs/de/settings-reference#includegitinstructions).

411 411 

412<h3 id="continue-conversations">412<h3 id="continue-conversations">

413 Konversationen fortsetzen413 Konversationen fortsetzen

hipaa-setup.md +1 −0

Details

228| `--cloud`, `/teleport` und [Remote Control](/docs/de/remote-control) werden abgelehnt | [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) und Remote Control sind ausgeschaltet |228| `--cloud`, `/teleport` und [Remote Control](/docs/de/remote-control) werden abgelehnt | [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) und Remote Control sind ausgeschaltet |

229| `/feedback` und `/bug` sind nicht verfügbar | Das Senden von Feedback ist ausgeschaltet |229| `/feedback` und `/bug` sind nicht verfügbar | Das Senden von Feedback ist ausgeschaltet |

230| Claude kann kein [Artefakt](/docs/de/artifacts) veröffentlichen | Das Veröffentlichen von Artefakten ist ausgeschaltet |230| Claude kann kein [Artefakt](/docs/de/artifacts) veröffentlichen | Das Veröffentlichen von Artefakten ist ausgeschaltet |

231| MCP-Tools werden vorab in den Kontext geladen | [MCP Tool Search](/docs/de/mcp#configure-tool-search) ist ausgeschaltet. Weder `ENABLE_TOOL_SEARCH` noch verwaltete Einstellungen schalten es wieder ein |

231| Ein MCP-Server oder Hook, der `ANTHROPIC_API_KEY` liest, kann sich nicht mehr authentifizieren | Claude Code [entfernt Anthropic-Anmeldedaten](#anthropic-credentials-in-commands-hooks-and-mcp-servers) aus den Prozessen, die es startet |232| Ein MCP-Server oder Hook, der `ANTHROPIC_API_KEY` liest, kann sich nicht mehr authentifizieren | Claude Code [entfernt Anthropic-Anmeldedaten](#anthropic-credentials-in-commands-hooks-and-mcp-servers) aus den Prozessen, die es startet |

232| Einschränkungen bleiben nach `/login` bei einer anderen Organisation bestehen | Der HIPAA-Status bleibt bis zum Neustart von Claude Code bestehen |233| Einschränkungen bleiben nach `/login` bei einer anderen Organisation bestehen | Der HIPAA-Status bleibt bis zum Neustart von Claude Code bestehen |

233 234 

hooks.md +421 −395

Details

827 827 

828Der Exit-Code Ihres Hooks teilt Claude Code mit, ob die Aktion, die den Hook ausgelöst hat, etwa ein Tool-Aufruf oder ein Prompt, fortgesetzt werden soll. Ein abgeschlossener Lauf hat eines von drei Ergebnissen:828Der Exit-Code Ihres Hooks teilt Claude Code mit, ob die Aktion, die den Hook ausgelöst hat, etwa ein Tool-Aufruf oder ein Prompt, fortgesetzt werden soll. Ein abgeschlossener Lauf hat eines von drei Ergebnissen:

829 829 

830* **Erfolg**: Ihr Hook wird mit 0 beendet. Claude Code wendet alle [JSON-Ausgabe](#json-output)-Felder an, die Ihr Hook ausgegeben hat, und die Aktion wird fortgesetzt, sofern diese Felder sie nicht blockieren oder verweigern.830* **Erfolg**: Ihr Hook wird mit 0 beendet. Claude Code wendet alle [JSON-Ausgabe](#json-output)-Felder an, die Ihr Hook ausgegeben hat, und die Aktion wird fortgesetzt, sofern diese Felder sie nicht blockieren oder verweigern. [Hooks, die einen Hintergrundprozess starten](#hooks-that-start-a-background-process) behandelt die Ausnahme.

831* **Blockierender Fehler**: Ihr Hook wird mit 2 beendet. Bei [Events, die blockieren können](#exit-code-2-behavior-per-event), stoppt Claude Code die Aktion.831* **Blockierender Fehler**: Ihr Hook wird mit 2 beendet. Bei [Events, die blockieren können](#exit-code-2-behavior-per-event), stoppt Claude Code die Aktion.

832* **Nicht blockierender Fehler**: Ihr Hook wird mit einem anderen Code beendet oder schlägt auf andere Weise fehl, etwa weil er nicht startet oder ungültiges JSON ausgibt. Die Aktion wird fortgesetzt, und bei Events wie `PreToolUse` sehen Sie einen `<hook name> hook error`-Hinweis im Transkript. Wenn ein fehlgeschlagener Hook die Aktion blockieren soll, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails).832* **Nicht blockierender Fehler**: Ihr Hook wird mit einem anderen Code beendet oder schlägt auf andere Weise fehl, etwa weil er nicht startet oder ungültiges JSON ausgibt. Die Aktion wird fortgesetzt, und bei Events wie `PreToolUse` sehen Sie einen `<hook name> hook error`-Hinweis im Transkript. Wenn ein fehlgeschlagener Hook die Aktion blockieren soll, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

833 833 


932* Ein abgelaufener `command`-, `http`- oder `mcp_tool`-Hook blockiert den Tool-Aufruf nicht. Der Aufruf wird durch den normalen [Berechtigungsfluss](/docs/de/permissions) fortgesetzt, verlassen Sie sich also nicht auf einen steckengebliebenen Hook, um als Gate zu fungieren. Um den Aufruf zu blockieren, wenn ein `command`- oder `http`-Hook in ein Timeout läuft, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails).932* Ein abgelaufener `command`-, `http`- oder `mcp_tool`-Hook blockiert den Tool-Aufruf nicht. Der Aufruf wird durch den normalen [Berechtigungsfluss](/docs/de/permissions) fortgesetzt, verlassen Sie sich also nicht auf einen steckengebliebenen Hook, um als Gate zu fungieren. Um den Aufruf zu blockieren, wenn ein `command`- oder `http`-Hook in ein Timeout läuft, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

933* Ein [Agent SDK Callback Hook](/docs/de/agent-sdk/hooks), der sein Timeout überschreitet, [blockiert den Tool-Aufruf](#pretooluse).933* Ein [Agent SDK Callback Hook](/docs/de/agent-sdk/hooks), der sein Timeout überschreitet, [blockiert den Tool-Aufruf](#pretooluse).

934 934 

935<h4 id="hooks-that-start-a-background-process">

936 Hooks, die einen Hintergrundprozess starten

937</h4>

938 

939Wenn Ihr Command Hook seine Entscheidung in einem Hintergrundprozess trifft und sich dann beendet, blockiert eine Verweigerung, die dieser Prozess ausgibt, nachdem Claude Code das Lesen beendet hat, den Tool-Aufruf nicht. Bei einem Hook, der nicht [async](#run-hooks-in-the-background) ist, beendet Claude Code das Lesen der Hook-Ausgabe kurz nachdem der eigene Prozess des Hooks beendet wurde.

940 

941Geben Sie die Entscheidung aus, bevor Sie einen Hintergrundprozess starten, und leiten Sie stdout und stderr dieses Prozesses um. Wenn Ihr Skript eine Erlaubnis ausgibt und dann einen Hintergrundprozess startet, ohne dessen stdout und stderr umzuleiten, blockiert Claude Code den Tool-Aufruf. Der Hook-Fehler enthält `refusing to honor the suspect capture`.

942 

943Dieses `PreToolUse`-Hook-Skript gibt die Entscheidung mit `policy-check.sh` aus und lädt dann Metriken im Hintergrund hoch:

944 

945```bash theme={null}

946#!/bin/bash

947"$CLAUDE_PROJECT_DIR"/.claude/hooks/policy-check.sh || exit $?

948"$CLAUDE_PROJECT_DIR"/.claude/hooks/upload-metrics.sh >/dev/null 2>&1 &

949```

950 

951Der Rest des Skripts bewirkt Folgendes:

952 

953* **`|| exit $?`**: macht den Exit-Code der Prüfung zum eigenen Exit-Code des Hooks, sodass eine Prüfung, die zum Verweigern mit 2 beendet wird, trotzdem blockiert. Andernfalls wird der Hook mit dem Code der letzten Zeile beendet, also 0.

954* **`>/dev/null 2>&1 &`**: führt `upload-metrics.sh` im Hintergrund mit umgeleiteter Ausgabe aus, sodass es die Ausgabe des Hooks nicht offen hält.

955 

956Um das Skript zu testen, lassen Sie `policy-check.sh` mit 2 beenden und lösen Sie dann einen Tool-Aufruf aus, auf den der Hook zutrifft. Der Tool-Aufruf wird blockiert.

957 

935<h4 id="block-the-action-when-a-hook-fails">958<h4 id="block-the-action-when-a-hook-fails">

936 Die Aktion blockieren, wenn ein Hook fehlschlägt959 Die Aktion blockieren, wenn ein Hook fehlschlägt

937</h4>960</h4>


1242Für erweiterte Beispiele einschließlich Bash-Befehlsvalidierung, Prompt-Filterung und Auto-Approval-Skripte, siehe [Was Sie automatisieren können](/docs/de/hooks-guide#what-you-can-automate) im Leitfaden und die [Bash-Befehlsvalidierungs-Referenzimplementierung](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).1265Für erweiterte Beispiele einschließlich Bash-Befehlsvalidierung, Prompt-Filterung und Auto-Approval-Skripte, siehe [Was Sie automatisieren können](/docs/de/hooks-guide#what-you-can-automate) im Leitfaden und die [Bash-Befehlsvalidierungs-Referenzimplementierung](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

1243 1266 

1244<h2 id="hook-events">1267<h2 id="hook-events">

1245 Hook-Ereignisse1268 Hook-Events

1246</h2>1269</h2>

1247 1270 

1248Jedes Ereignis entspricht einem Punkt im Lebenszyklus von Claude Code, an dem Hooks ausgeführt werden können. Die folgenden Abschnitte sind entsprechend dem Lebenszyklus geordnet: von der Einrichtung der Sitzung über die Agentenschleife bis zum Ende der Sitzung. Jeder Abschnitt beschreibt, wann das Ereignis ausgelöst wird, welche Matcher es unterstützt, welche JSON-Eingabe es erhält und wie Sie das Verhalten über die Ausgabe steuern.1271Jedes Event entspricht einem Punkt im Lebenszyklus von Claude Code, an dem Hooks ausgeführt werden können. Die folgenden Abschnitte sind nach diesem Lebenszyklus geordnet: von der Einrichtung der Sitzung über die Agentenschleife bis zum Ende der Sitzung. Jeder Abschnitt beschreibt, wann das Event ausgelöst wird, welche Matcher es unterstützt, welche JSON-Eingabe es erhält und wie Sie das Verhalten über die Ausgabe steuern.

1249 1272 

1250<h3 id="sessionstart">1273<h3 id="sessionstart">

1251 SessionStart1274 SessionStart

1252</h3>1275</h3>

1253 1276 

1254Wird ausgeführt, wenn Claude Code eine neue Sitzung startet oder eine bestehende Sitzung fortsetzt. Nützlich, um Entwicklungskontext wie bestehende Issues oder kürzliche Änderungen an Ihrer Codebasis zu laden oder Umgebungsvariablen einzurichten. Für statischen Kontext, der kein Skript erfordert, verwenden Sie stattdessen [CLAUDE.md](/docs/de/memory).1277Wird ausgeführt, wenn Claude Code eine neue Sitzung startet oder eine bestehende Sitzung fortsetzt. Nützlich, um Entwicklungskontext wie bestehende Issues oder aktuelle Änderungen an Ihrer Codebasis zu laden oder Umgebungsvariablen einzurichten. Für statischen Kontext, der kein Skript erfordert, verwenden Sie stattdessen [CLAUDE.md](/docs/de/memory).

1255 1278 

1256SessionStart wird bei jeder Sitzung ausgeführt, halten Sie diese Hooks daher schnell. Nur Hooks vom Typ `type: "command"` und `type: "mcp_tool"` werden unterstützt. Unter [Felder für MCP-Tool-Hooks](#mcp-tool-hook-fields) erfahren Sie, wann `mcp_tool`-Hooks ausgeführt werden.1279SessionStart wird bei jeder Sitzung ausgeführt, halten Sie diese Hooks daher schnell. Nur Hooks vom Typ `type: "command"` und `type: "mcp_tool"` werden unterstützt. Unter [Felder für MCP-Tool-Hooks](#mcp-tool-hook-fields) erfahren Sie, wann `mcp_tool`-Hooks ausgeführt werden.

1257 1280 

1258Der Matcher-Wert entspricht der Art, wie die Sitzung eingeleitet wurde:1281Der Matcher-Wert entspricht der Art, wie die Sitzung gestartet wurde:

1259 1282 

1260| Matcher | Wann er ausgelöst wird |1283| Matcher | Wann er ausgelöst wird |

1261| :- | :- |1284| :- | :- |


1267 1290 

1268Vor v2.1.214 meldeten abgezweigte Sitzungen die Quelle `"resume"`.1291Vor v2.1.214 meldeten abgezweigte Sitzungen die Quelle `"resume"`.

1269 1292 

1270Wenn Sie eine interaktive Sitzung starten, eine Konversation beim Start mit `--continue` oder `--resume` fortsetzen oder `/clear` ausführen, laufen SessionStart-Hooks im Hintergrund. Sie können sofort tippen, und eine fortgesetzte Konversation erscheint, ohne auf die Hooks zu warten. Die erste Antwort von Claude wartet dennoch, bis die Hooks abgeschlossen sind, damit deren Kontext Claude erreicht.1293Wenn Sie eine interaktive Sitzung starten, beim Start eine Konversation mit `--continue` oder `--resume` fortsetzen oder `/clear` ausführen, laufen SessionStart-Hooks im Hintergrund. Sie können sofort tippen, und eine fortgesetzte Konversation erscheint, ohne auf die Hooks zu warten. Die erste Antwort von Claude wartet dennoch, bis die Hooks fertig sind, damit ihr Kontext Claude erreicht.

1271 1294 

1272Wenn Sie innerhalb einer Sitzung mit `/resume` die Konversation wechseln, wartet der Wechsel stattdessen auf den Abschluss der Hooks. Wenn Sie `/clear` ausführen oder zu einer anderen Konversation wechseln, während Hintergrund-Hooks noch laufen, wird nichts von dem, was sie zurückgeben, auf die Sitzung angewendet.1295Wenn Sie innerhalb einer Sitzung mit `/resume` die Konversation wechseln, wartet der Wechsel stattdessen, bis die Hooks fertig sind. Wenn Sie `/clear` ausführen oder zu einer anderen Konversation wechseln, während Hintergrund-Hooks noch laufen, wird nichts von dem, was sie zurückgeben, auf die Sitzung angewendet.

1273 1296 

1274Dasselbe Warten gilt beim Start, auch für eine fortgesetzte Sitzung: Ein Prompt, den Sie senden, während SessionStart-Hooks noch laufen, erreicht Claude erst, wenn sie abgeschlossen sind.1297Dasselbe Warten gilt beim Start, auch bei einer fortgesetzten Sitzung: Ein Prompt, den Sie senden, während SessionStart-Hooks noch laufen, erreicht Claude erst, wenn diese fertig sind.

1275 1298 

1276Drücken Sie während eines dieser Wartevorgänge `Esc`, um den Prompt zurück in das Eingabefeld zu holen, ohne ihn zu senden. Die Hooks laufen weiter.1299Während beider Wartezeiten können Sie `Esc` drücken, um den Prompt zurück in die Eingabe zu holen, ohne ihn zu senden. Die Hooks laufen weiter.

1277 1300 

1278<h4 id="sessionstart-input">1301<h4 id="sessionstart-input">

1279 SessionStart-Eingabe1302 SessionStart-Eingabe


1286| `source` | Wie die Sitzung gestartet wurde: `"startup"` für neue Sitzungen, `"resume"` für fortgesetzte Sitzungen, `"clear"` nach `/clear`, `"compact"` nach einer Komprimierung oder `"fork"` für eine neue Sitzung, die von einer bestehenden abgezweigt wurde |1309| `source` | Wie die Sitzung gestartet wurde: `"startup"` für neue Sitzungen, `"resume"` für fortgesetzte Sitzungen, `"clear"` nach `/clear`, `"compact"` nach einer Komprimierung oder `"fork"` für eine neue Sitzung, die von einer bestehenden abgezweigt wurde |

1287| `model` | Die aktive Modellkennung. Sie kann fehlen, zum Beispiel nach `/clear` oder wenn eine Sitzung über die Konversationswiederherstellung wiederhergestellt wird. Prüfen Sie daher, ob das Feld vorhanden ist, bevor Sie es lesen |1310| `model` | Die aktive Modellkennung. Sie kann fehlen, zum Beispiel nach `/clear` oder wenn eine Sitzung über die Konversationswiederherstellung wiederhergestellt wird. Prüfen Sie daher, ob das Feld vorhanden ist, bevor Sie es lesen |

1288| `agent_type` | Der Agentenname, vorhanden, wenn Sie Claude Code mit `claude --agent <name>` starten |1311| `agent_type` | Der Agentenname, vorhanden, wenn Sie Claude Code mit `claude --agent <name>` starten |

1289| `session_title` | Der benutzerdefinierte Titel der Sitzung, vorhanden, wenn einer gesetzt ist, zum Beispiel mit `--name`, `/rename`, der `sessionTitle`-Ausgabe eines Hooks oder `renameSession()` des Agent SDK. Ein Hook, der `sessionTitle` ausgibt, kann zuerst dieses Feld prüfen, um einen vorhandenen benutzerdefinierten Titel nicht zu überschreiben |1312| `session_title` | Der benutzerdefinierte Titel der Sitzung, vorhanden, wenn einer gesetzt ist, zum Beispiel mit `--name`, `/rename`, der `sessionTitle`-Ausgabe eines Hooks oder `renameSession()` aus dem Agent SDK. Ein Hook, der `sessionTitle` ausgibt, kann zuerst dieses Feld prüfen, um einen bestehenden benutzerdefinierten Titel nicht zu überschreiben |

1290 1313 

1291Eine Sitzung, die Sie nicht benannt haben, kann trotzdem einen [generierten Titel](/docs/de/sessions#name-your-sessions) haben. Dieser Titel ist kein benutzerdefinierter Titel und erscheint nicht in `session_title`.1314Eine Sitzung, die Sie nicht benannt haben, kann dennoch einen [generierten Titel](/docs/de/sessions#name-your-sessions) haben. Dieser Titel ist kein benutzerdefinierter Titel und erscheint nicht in `session_title`.

1292 1315 

1293Wenn `source` den Wert `"resume"` oder `"fork"` hat und das Transkript mindestens eine Antwort von Claude enthält, erhalten SessionStart-Hooks zusätzlich die vier folgenden Felder. Ihr Hook kann damit vor der ersten Anfrage melden, was das Fortsetzen einer länger inaktiven Konversation kostet, zum Beispiel in einer [`systemMessage`](#json-output). Diese Felder erfordern Claude Code v2.1.251 oder höher.1316Wenn `source` den Wert `"resume"` oder `"fork"` hat und das Transkript mindestens eine Antwort von Claude enthält, erhalten SessionStart-Hooks zusätzlich die vier folgenden Felder. Ihr Hook kann damit vor der ersten Anfrage melden, was das Fortsetzen einer veralteten Konversation kostet, zum Beispiel in einer [`systemMessage`](#json-output). Diese Felder erfordern Claude Code v2.1.251 oder höher.

1294 1317 

1295| Feld | Beschreibung |1318| Feld | Beschreibung |

1296| :- | :- |1319| :- | :- |

1297| `seconds_since_last_response` | Verstrichene Echtzeit in Sekunden seit der letzten Antwort im fortgesetzten Transkript |1320| `seconds_since_last_response` | Echtzeit in Sekunden seit der letzten Antwort im fortgesetzten Transkript |

1298| `context_tokens` | Token, die die erste Anfrage der fortgesetzten Sitzung erneut als Prompt sendet |1321| `context_tokens` | Token, die die erste Anfrage der fortgesetzten Sitzung erneut als Prompt sendet |

1299| `prompt_cache_likely_expired` | `true`, wenn die letzte Antwort älter als die [Lebensdauer des Prompt-Cache](/docs/de/prompt-caching#cache-lifetime) der Sitzung ist oder eine spätere Komprimierung die zwischengespeicherte Konversation ersetzt hat |1322| `prompt_cache_likely_expired` | `true`, wenn die letzte Antwort älter ist als die [Lebensdauer des Prompt-Cache](/docs/de/prompt-caching#cache-lifetime) der Sitzung oder eine spätere Komprimierung die zwischengespeicherte Konversation ersetzt hat |

1300| `estimated_cache_write_usd` | Geschätzte Kosten in US-Dollar für das Schreiben von `context_tokens` in den Prompt-Cache mit dem Modell der Sitzung, ohne die Antwort |1323| `estimated_cache_write_usd` | Geschätzte Kosten in US-Dollar für das Schreiben von `context_tokens` in den Prompt-Cache mit dem Modell der Sitzung, ohne die Antwort |

1301 1324 

1302Dieses Beispiel zeigt die Eingabe für eine Sitzung, die 90 Minuten nach ihrer letzten Antwort fortgesetzt wurde:1325Dieses Beispiel zeigt die Eingabe für eine Sitzung, die 90 Minuten nach ihrer letzten Antwort fortgesetzt wurde:


1320 SessionStart-Entscheidungssteuerung1343 SessionStart-Entscheidungssteuerung

1321</h4>1344</h4>

1322 1345 

1323Ein SessionStart-Hook kann Kontext für Claude hinzufügen, die erste Benutzernachricht liefern, den Sitzungstitel setzen, Dateien überwachen und Skills neu laden. Geben Sie dafür jeweils das entsprechende Feld zurück, zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen:1346Ein SessionStart-Hook kann Kontext für Claude hinzufügen, die erste Benutzernachricht liefern, den Sitzungstitel setzen, Dateien überwachen und Skills neu laden. Geben Sie dazu jeweils das entsprechende Feld zurück, zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen:

1324 1347 

1325| Feld | Beschreibung |1348| Feld | Beschreibung |

1326| :- | :- |1349| :- | :- |

1327| `additionalContext` | String, der zu Beginn der Konversation vor dem ersten Prompt dem Kontext von Claude hinzugefügt wird. Unter [Kontext für Claude hinzufügen](#add-context-for-claude) erfahren Sie, wie der Text übermittelt wird und was er enthalten sollte |1350| `additionalContext` | String, der zu Beginn der Konversation vor dem ersten Prompt zum Kontext von Claude hinzugefügt wird. Unter [Kontext für Claude hinzufügen](#add-context-for-claude) erfahren Sie, wie der Text übermittelt wird und was Sie hineinschreiben sollten |

1328| `initialUserMessage` | Zeichenkette, die im [nicht interaktiven Modus](/docs/de/headless) mit dem Flag `-p` als erste Benutzernachricht der Sitzung verwendet wird. Sie wird zum ersten Turn, auch wenn Sie keinen Prompt übergeben. Ein Prompt, den Sie übergeben, folgt als nächster Turn |1351| `initialUserMessage` | String, der im [nicht interaktiven Modus](/docs/de/headless) mit dem Flag `-p` als erste Benutzernachricht der Sitzung verwendet wird. Er wird zum ersten Turn, auch wenn Sie keinen Prompt übergeben. Ein Prompt, den Sie übergeben, folgt als nächster Turn |

1329| `sessionTitle` | Setzt den Sitzungstitel, mit derselben Wirkung wie `/rename`. Gilt, wenn `source` den Wert `"startup"`, `"resume"` oder `"fork"` hat |1352| `sessionTitle` | Setzt den Sitzungstitel, mit derselben Wirkung wie `/rename`. Gilt, wenn `source` den Wert `"startup"`, `"resume"` oder `"fork"` hat |

1330| `watchPaths` | Array absoluter Pfade, die während dieser Sitzung auf [FileChanged](#filechanged)-Ereignisse überwacht werden sollen |1353| `watchPaths` | Array absoluter Pfade, die während dieser Sitzung auf [FileChanged](#filechanged)-Events überwacht werden |

1331| `reloadSkills` | Boolescher Wert. Bei `true` durchsucht Claude Code die [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, nachdem die SessionStart-Hooks abgeschlossen sind. Siehe [Skills neu laden, die ein Hook installiert](#reload-skills-that-a-hook-installs) |1354| `reloadSkills` | Boolean. Bei `true` durchsucht Claude Code die [Skill](/docs/de/skills)- und Befehlsverzeichnisse erneut, nachdem die SessionStart-Hooks abgeschlossen sind. Siehe [Skills neu laden, die ein Hook installiert](#reload-skills-that-a-hook-installs) |

1332 1355 

1333Diese Ausgabe fügt Kontext hinzu und benennt die Sitzung:1356Diese Ausgabe fügt Kontext hinzu und benennt die Sitzung:

1334 1357 


1344 1367 

1345Ein Hook, der nur Kontext hinzufügt, kann diesen ausgeben, ohne JSON zu erstellen, da Claude Code die [Klartext-Ausgabe auf stdout](#exit-code-0) eines SessionStart-Hooks zum Kontext von Claude hinzufügt.1368Ein Hook, der nur Kontext hinzufügt, kann diesen ausgeben, ohne JSON zu erstellen, da Claude Code die [Klartext-Ausgabe auf stdout](#exit-code-0) eines SessionStart-Hooks zum Kontext von Claude hinzufügt.

1346 1369 

1347Wenn der SessionStart-Hook Ihres Plugins `initialUserMessage` oder `sessionTitle` liefert, installieren Sie das Plugin, bevor die Sitzung startet. Claude Code ignoriert beide Felder von einem Plugin, dessen Installation erst abgeschlossen wird, nachdem die SessionStart-Hooks ausgeführt wurden.1370Wenn der SessionStart-Hook Ihres Plugins `initialUserMessage` oder `sessionTitle` liefert, installieren Sie das Plugin, bevor die Sitzung startet. Claude Code ignoriert beide Felder von einem Plugin, dessen Installation erst abgeschlossen wird, nachdem die SessionStart-Hooks gelaufen sind.

1348 1371 

1349<h4 id="reload-skills-that-a-hook-installs">1372<h4 id="reload-skills-that-a-hook-installs">

1350 Skills neu laden, die ein Hook installiert1373 Skills neu laden, die ein Hook installiert

1351</h4>1374</h4>

1352 1375 

1353Damit Skills, die ein SessionStart-Hook installiert, in derselben Sitzung verfügbar sind, geben Sie `reloadSkills` zurück. Die Skill-Erkennung läuft normalerweise, bevor SessionStart-Hooks abgeschlossen sind; ohne dieses Feld können Dateien, die ein Hook in `~/.claude/skills/` oder `.claude/skills/` schreibt, beim ersten Prompt fehlen.1376Damit Skills, die ein SessionStart-Hook installiert, in derselben Sitzung verfügbar sind, geben Sie `reloadSkills` zurück. Die Skill-Erkennung läuft normalerweise, bevor die SessionStart-Hooks fertig sind. Ohne dieses Feld können daher Dateien, die ein Hook in `~/.claude/skills/` oder `.claude/skills/` schreibt, fehlen, wenn der erste Prompt ausgeführt wird.

1354 1377 

1355Dieses Beispiel synchronisiert ein gemeinsames Skills-Repository und fordert das erneute Durchsuchen an:1378Dieses Beispiel synchronisiert ein gemeinsames Skills-Repository und fordert die erneute Durchsuchung an:

1356 1379 

1357```bash theme={null}1380```bash theme={null}

1358#!/bin/bash1381#!/bin/bash


1366Die Repository-URL ist ein Platzhalter. Ersetzen Sie sie durch Ihr eigenes Skills-Repository.1389Die Repository-URL ist ein Platzhalter. Ersetzen Sie sie durch Ihr eigenes Skills-Repository.

1367 1390 

1368<h4 id="persist-environment-variables">1391<h4 id="persist-environment-variables">

1369 Umgebungsvariablen beibehalten1392 Umgebungsvariablen dauerhaft setzen

1370</h4>1393</h4>

1371 1394 

1372SessionStart-Hooks haben Zugriff auf die Umgebungsvariable `CLAUDE_ENV_FILE`, die einen Dateipfad bereitstellt, in dem Sie Umgebungsvariablen für die Shell-Befehle speichern können, die Claude später in der Sitzung ausführt.1395SessionStart-Hooks haben Zugriff auf die Umgebungsvariable `CLAUDE_ENV_FILE`, die einen Dateipfad bereitstellt, in dem Sie Umgebungsvariablen für die Shell-Befehle dauerhaft speichern können, die Claude später in der Sitzung ausführt.

1373 1396 

1374Um einzelne Umgebungsvariablen zu setzen, schreiben Sie `export`-Anweisungen in `CLAUDE_ENV_FILE`. Verwenden Sie Anhängen (`>>`), um von anderen Hooks gesetzte Variablen zu erhalten:1397Um einzelne Umgebungsvariablen zu setzen, schreiben Sie `export`-Anweisungen in `CLAUDE_ENV_FILE`. Verwenden Sie Anhängen (`>>`), um Variablen zu erhalten, die von anderen Hooks gesetzt wurden:

1375 1398 

1376```bash theme={null}1399```bash theme={null}

1377#!/bin/bash1400#!/bin/bash


1404exit 01427exit 0

1405```1428```

1406 1429 

1407Jeder Bash-Befehl führt den Inhalt der Datei als Shell-Code vor dem eigentlichen Befehl aus. Eine Zeile darin kann daher alles verwenden, was Bash auswertet, etwa die Referenz `$PATH` in `export PATH="$PATH:./node_modules/.bin"`.1430Jeder Bash-Befehl führt den Inhalt der Datei vor dem eigentlichen Befehl als Shell-Code aus. Eine Zeile darin kann daher alles verwenden, was Bash auswertet, etwa den `$PATH`-Verweis in `export PATH="$PATH:./node_modules/.bin"`.

1408 1431 

1409<a id="persisted-variables-in-powershell-commands" />1432<a id="persisted-variables-in-powershell-commands" />

1410 1433 

1411<h5 id="persisted-variables-in-powershell-commands">1434<h5 id="persisted-variables-in-powershell-commands">

1412 Gespeicherte Variablen in PowerShell-Befehlen1435 Dauerhaft gesetzte Variablen in PowerShell-Befehlen

1413</h5>1436</h5>

1414 1437 

1415[PowerShell](/docs/de/tools-reference#powershell-tool)-Befehle erhalten die Variablen aus `CLAUDE_ENV_FILE` in Claude Code v2.1.296 oder höher ebenfalls, PowerShell führt die Datei jedoch nie aus. Stattdessen liest Claude Code die Zuweisungen aus der Datei und kopiert sie in die Umgebung des PowerShell-Befehls. Dies geschieht nur, wenn jede Zeile einer der folgenden Arten entspricht, und zwar über alles hinweg, was jeder Hook in dieser Sitzung geschrieben hat, sowie in jedem Skript, auf das Sie [`CLAUDE_ENV_FILE` gesetzt haben](/docs/de/env-vars), bevor Sie Claude Code gestartet haben:1438[PowerShell](/docs/de/tools-reference#powershell-tool)-Befehle erhalten die Variablen aus `CLAUDE_ENV_FILE` ebenfalls, in Claude Code v2.1.296 oder höher, aber PowerShell führt die Datei nie aus. Stattdessen liest Claude Code die Zuweisungen aus der Datei aus und kopiert sie in die Umgebung des PowerShell-Befehls. Das geschieht nur, wenn jede Zeile einer der folgenden Arten entspricht, und zwar über alles hinweg, was jeder Hook in dieser Sitzung geschrieben hat, sowie über jedes Skript, auf das Sie [`CLAUDE_ENV_FILE` vor dem Start gesetzt haben](/docs/de/env-vars):

1416 1439 

1417* Eine Leerzeile oder ein `#`-Kommentar1440* Eine Leerzeile oder ein `#`-Kommentar

1418* Eine Zuweisung am Zeilenanfang, geschrieben als `export NAME=value`, `declare -x NAME=value` oder `NAME=value`, mit einem Wert, den Bash genau so verwenden würde, wie er geschrieben ist, und der aus einer beliebigen Kombination dieser Teile besteht: Text ohne Anführungszeichen, der nur Buchstaben, Ziffern und die Zeichen `_ @ % + = : , . / -` enthält, Text in einfachen Anführungszeichen und Text in doppelten Anführungszeichen, in dem jedes `$`, jeder Backtick und jedes `"` mit einem Backslash maskiert ist1441* Eine einzelne Zuweisung am Zeilenanfang, geschrieben als `export NAME=value`, `declare -x NAME=value` oder `NAME=value`, mit einem Wert, den Bash exakt so verwenden würde, wie er geschrieben ist, bestehend aus einer beliebigen Kombination dieser Bestandteile: Text ohne Anführungszeichen, der nur Buchstaben, Ziffern und die Zeichen `_ @ % + = : , . / -` verwendet, Text in einfachen Anführungszeichen und Text in doppelten Anführungszeichen, in dem jedes `$`, jeder Backtick und jedes `"` mit einem Backslash maskiert ist

1419 1442 

1420Wenn eine Zeile einer anderen Art entspricht, etwa `export PATH="$PATH:./node_modules/.bin"` mit seinem nicht maskierten `$PATH`, ein `source`-Befehl oder die `$'...'`-Zeichenketten, die `direnv export bash` ausgibt, erhalten PowerShell-Befehle keine der Variablen, und `claude --debug` protokolliert `Session environment is not all plain assignments`. Bash-Befehle erhalten trotzdem alle Variablen. Unter Windows erhalten PowerShell-Befehle außerdem keine Variable, deren Wert `/` oder `\` enthält, da Git Bash und Windows Pfade unterschiedlich schreiben. Ein PowerShell-Befehl, der [in einer Sandbox](/docs/de/sandboxing) ausgeführt wird, erhält keine der Variablen.1443Wenn irgendeine Zeile von anderer Art ist, etwa `export PATH="$PATH:./node_modules/.bin"` mit seinem nicht maskierten `$PATH`, ein `source`-Befehl oder die `$'...'`-Strings, die `direnv export bash` ausgibt, erhalten PowerShell-Befehle keine der Variablen, und `claude --debug` protokolliert `Session environment is not all plain assignments`. Bash-Befehle erhalten weiterhin alle Variablen. Unter Windows erhalten PowerShell-Befehle außerdem keine Variable, deren Wert `/` oder `\` enthält, weil Git Bash und Windows Pfade unterschiedlich schreiben. Ein PowerShell-Befehl, der [in einer Sandbox](/docs/de/sandboxing) ausgeführt wird, erhält keine der Variablen.

1421 1444 

1422<Note>1445<Note>

1423 `CLAUDE_ENV_FILE` ist für SessionStart-, [Setup](#setup)-, [CwdChanged](#cwdchanged)- und [FileChanged](#filechanged)-Hooks verfügbar. Andere Hook-Events haben keinen Zugriff auf diese Variable, ebenso wenig ein Hook, der in PowerShell läuft, ob über [`"shell": "powershell"`](#command-hook-fields) oder standardmäßig unter Windows ohne Git Bash.1446 `CLAUDE_ENV_FILE` ist für SessionStart-, [Setup](#setup)-, [CwdChanged](#cwdchanged)- und [FileChanged](#filechanged)-Hooks verfügbar. Andere Hook-Events haben keinen Zugriff auf diese Variable, ebenso wenig ein Hook, der in PowerShell läuft, sei es über [`"shell": "powershell"`](#command-hook-fields) oder standardmäßig unter Windows ohne Git Bash.

1424</Note>1447</Note>

1425 1448 

1426<h3 id="setup">1449<h3 id="setup">

1427 Setup1450 Setup

1428</h3>1451</h3>

1429 1452 

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

1431 1454 

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

1433 1456 


1438 1461 

1439Wenn Sie `claude --init-only` ausführen, führt Claude Code Setup-Hooks und `SessionStart`-Hooks mit dem Matcher `startup` aus und beendet sich dann, ohne eine Konversation zu starten.1462Wenn Sie `claude --init-only` ausführen, führt Claude Code Setup-Hooks und `SessionStart`-Hooks mit dem Matcher `startup` aus und beendet sich dann, ohne eine Konversation zu starten.

1440 1463 

1441Wenn Sie eine Konversation mit `-p` starten oder fortsetzen, müssen Sie außerdem einen Prompt angeben, als Argument oder über stdin. Sie können den Prompt weglassen, wenn ein `SessionStart`-Hook [`initialUserMessage`](#sessionstart-decision-control) liefert oder wenn Sie eine Sitzung mit einem [zurückgestellten Tool-Aufruf](#defer-a-tool-call-for-later) fortsetzen.1464Wenn Sie mit `-p` eine Konversation starten oder fortsetzen, müssen Sie auch einen Prompt angeben, als Argument oder über stdin weitergeleitet. Sie können den Prompt weglassen, wenn ein `SessionStart`-Hook [`initialUserMessage`](#sessionstart-decision-control) liefert oder wenn Sie eine Sitzung mit einem [zurückgestellten Tool-Aufruf](#defer-a-tool-call-for-later) fortsetzen.

1442 1465 

1443Bei Erfolg gibt `--init-only` nichts im Terminal aus. Um zu bestätigen, dass die Hooks ausgeführt wurden, starten Sie mit `claude --debug-file <path> --init-only`, ersetzen `<path>` durch den Speicherort einer Logdatei und prüfen das Log auf die Einträge der Setup- und SessionStart-Hooks.1466Bei Erfolg gibt `--init-only` nichts im Terminal aus. Um zu bestätigen, dass die Hooks gelaufen sind, starten Sie mit `claude --debug-file <path> --init-only`, ersetzen `<path>` durch den Speicherort einer Logdatei und prüfen das Log auf die Einträge der Setup- und SessionStart-Hooks.

1444 1467 

1445Da Setup nicht bei jedem Start ausgelöst wird, kann sich ein Plugin, das eine installierte Abhängigkeit benötigt, nicht allein auf Setup verlassen. Das praktische Muster besteht darin, bei der ersten Verwendung auf die Abhängigkeit zu prüfen und sie bei Fehlen zu installieren, zum Beispiel mit einem Hook oder Skill, der auf `${CLAUDE_PLUGIN_DATA}/node_modules` prüft und `npm install` ausführt, wenn es fehlt. Unter [persistentes Datenverzeichnis](/docs/de/plugins/components#path-variables-and-persistent-data) erfahren Sie, wo installierte Abhängigkeiten gespeichert werden sollten. Wenn Sie Ihr Plugin über einen Marketplace verteilen, benötigen Sie dieses Muster möglicherweise nicht: Claude Code [installiert geeignete Node.js-Paketabhängigkeiten automatisch](/docs/de/plugins/loading#node-js-package-dependencies), wenn es das Plugin im Cache speichert.1468Da Setup nicht bei jedem Start ausgelöst wird, kann sich ein Plugin, das eine installierte Abhängigkeit benötigt, nicht allein auf Setup verlassen. Das praktikable Muster besteht darin, bei der ersten Verwendung auf die Abhängigkeit zu prüfen und sie bei Fehlen zu installieren, zum Beispiel mit einem Hook oder Skill, der auf `${CLAUDE_PLUGIN_DATA}/node_modules` prüft und bei Fehlen `npm install` ausführt. Unter [persistentes Datenverzeichnis](/docs/de/plugins/components#path-variables-and-persistent-data) erfahren Sie, wo Sie installierte Abhängigkeiten speichern. Wenn Sie Ihr Plugin über einen Marketplace verteilen, benötigen Sie dieses Muster möglicherweise nicht: Claude Code [installiert berechtigte Node.js-Paketabhängigkeiten automatisch](/docs/de/plugins/loading#node-js-package-dependencies), wenn es das Plugin zwischenspeichert.

1446 1469 

1447<h4 id="setup-input">1470<h4 id="setup-input">

1448 Setup-Eingabe1471 Setup-Eingabe


1464 Setup-Entscheidungssteuerung1487 Setup-Entscheidungssteuerung

1465</h4>1488</h4>

1466 1489 

1467Setup-Hooks können nicht blockieren; die Ausführung wird bei jedem Exit-Code fortgesetzt. Bei jedem Exit-Code verwirft Claude Code die [JSON-Ausgabefelder](#json-output) eines Setup-Hooks, etwa `systemMessage`, `continue` und `hookSpecificOutput.additionalContext`. Mit `-p` erscheinen stdout, stderr und Exit-Code eines Setup-Hooks in der Ausgabe des Laufs nur als [`hook_response`-Ereignisse](/docs/de/headless#read-session-metadata), wenn Sie mit `--output-format stream-json --verbose` starten.1490Setup-Hooks können nicht blockieren; die Ausführung wird bei jedem Exit-Code fortgesetzt. Bei jedem Exit-Code verwirft Claude Code die [JSON-Ausgabefelder](#json-output) eines Setup-Hooks, etwa `systemMessage`, `continue` und `hookSpecificOutput.additionalContext`. Mit `-p` erscheinen stdout, stderr und Exit-Code eines Setup-Hooks in der Ausgabe des Laufs nur als [`hook_response`-Events](/docs/de/headless#read-session-metadata), wenn Sie mit `--output-format stream-json --verbose` starten.

1468 1491 

1469Setup-Hooks haben Zugriff auf `CLAUDE_ENV_FILE`. In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle der Sitzung erhalten, wie bei [SessionStart-Hooks](#persist-environment-variables). Bei `Setup` werden nur Hooks vom Typ `type: "command"` ausgeführt. Ein Hook vom Typ `type: "mcp_tool"` bei `Setup` wird immer übersprungen, wie unter [Felder für MCP-Tool-Hooks](#mcp-tool-hook-fields) beschrieben.1492Setup-Hooks haben Zugriff auf `CLAUDE_ENV_FILE`. In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle der Sitzung erhalten, wie bei [SessionStart-Hooks](#persist-environment-variables). Nur Hooks vom Typ `type: "command"` werden bei `Setup` ausgeführt. Ein Hook vom Typ `type: "mcp_tool"` bei `Setup` wird immer übersprungen, wie unter [Felder für MCP-Tool-Hooks](#mcp-tool-hook-fields) beschrieben.

1470 1493 

1471<h3 id="instructionsloaded">1494<h3 id="instructionsloaded">

1472 InstructionsLoaded1495 InstructionsLoaded

1473</h3>1496</h3>

1474 1497 

1475Wird ausgelöst, wenn eine `CLAUDE.md`- oder `.claude/rules/*.md`-Datei in den Kontext geladen wird. Dieses Ereignis wird beim Sitzungsstart für sofort geladene Dateien ausgelöst und später erneut, wenn Dateien verzögert geladen werden, zum Beispiel wenn Claude auf ein Unterverzeichnis zugreift, das eine verschachtelte `CLAUDE.md` enthält, oder wenn bedingte Regeln mit `paths:`-Frontmatter zutreffen. Der Hook unterstützt weder Blockieren noch Entscheidungssteuerung. Er läuft asynchron zu Beobachtbarkeitszwecken.1498Wird ausgelöst, wenn eine `CLAUDE.md`- oder `.claude/rules/*.md`-Datei in den Kontext geladen wird. Dieses Event wird beim Sitzungsstart für sofort geladene Dateien ausgelöst und später erneut, wenn Dateien verzögert geladen werden, zum Beispiel wenn Claude auf ein Unterverzeichnis zugreift, das eine verschachtelte `CLAUDE.md` enthält, oder wenn bedingte Regeln mit `paths:`-Frontmatter zutreffen. Der Hook unterstützt weder Blockieren noch Entscheidungssteuerung. Er läuft asynchron zu Beobachtungszwecken.

1476 1499 

1477Dieses Ereignis wird nicht ausgelöst, wenn Claude über die Einstellung **Project instructions** [`AGENTS.md` direkt liest](/docs/de/memory#agents-md). Es wird ausgelöst, wenn eine `CLAUDE.md` Ihre `AGENTS.md` importiert, wobei `load_reason` wie bei jeder anderen importierten Datei auf `include` gesetzt ist, und wenn `CLAUDE.md` ein Symlink darauf ist, als normales Laden von `CLAUDE.md`.1500Dieses Event wird nicht ausgelöst, wenn Claude [`AGENTS.md` direkt liest](/docs/de/memory#agents-md), über die Einstellung **Project instructions**. Es wird ausgelöst, wenn eine `CLAUDE.md` Ihre `AGENTS.md` importiert, mit `load_reason` auf `include` gesetzt wie bei jeder anderen importierten Datei, und wenn `CLAUDE.md` ein Symlink darauf ist, als normaler Ladevorgang von `CLAUDE.md`.

1478 1501 

1479Der Matcher wird gegen `load_reason` geprüft. Verwenden Sie zum Beispiel `"matcher": "session_start"`, um nur für beim Sitzungsstart geladene Dateien auszulösen, oder `"matcher": "path_glob_match|nested_traversal"`, um nur bei verzögertem Laden auszulösen.1502Der Matcher wird gegen `load_reason` ausgewertet. Verwenden Sie zum Beispiel `"matcher": "session_start"`, um nur für Dateien auszulösen, die beim Sitzungsstart geladen werden, oder `"matcher": "path_glob_match|nested_traversal"`, um nur bei verzögertem Laden auszulösen.

1480 1503 

1481<h4 id="instructionsloaded-input">1504<h4 id="instructionsloaded-input">

1482 InstructionsLoaded-Eingabe1505 InstructionsLoaded-Eingabe


1488| :- | :- |1511| :- | :- |

1489| `file_path` | Absoluter Pfad zur geladenen Anweisungsdatei |1512| `file_path` | Absoluter Pfad zur geladenen Anweisungsdatei |

1490| `memory_type` | Geltungsbereich der Datei: `"User"`, `"Project"`, `"Local"` oder `"Managed"` |1513| `memory_type` | Geltungsbereich der Datei: `"User"`, `"Project"`, `"Local"` oder `"Managed"` |

1491| `load_reason` | Warum die Datei geladen wurde: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` oder `"compact"`. Der Wert `"compact"` tritt auf, wenn Anweisungsdateien nach einer Komprimierung erneut geladen werden |1514| `load_reason` | Warum die Datei geladen wurde: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` oder `"compact"`. Der Wert `"compact"` wird ausgelöst, wenn Anweisungsdateien nach einer Komprimierung erneut geladen werden |

1492| `globs` | Pfad-Glob-Muster aus dem `paths:`-Frontmatter der Datei, falls vorhanden. Nur bei `path_glob_match`-Ladevorgängen vorhanden |1515| `globs` | Pfad-Glob-Muster aus dem `paths:`-Frontmatter der Datei, falls vorhanden. Nur bei `path_glob_match`-Ladevorgängen vorhanden |

1493| `trigger_file_path` | Pfad zu der Datei, deren Zugriff diesen Ladevorgang ausgelöst hat, bei verzögertem Laden |1516| `trigger_file_path` | Pfad zu der Datei, deren Zugriff diesen Ladevorgang ausgelöst hat, bei verzögertem Laden |

1494| `parent_file_path` | Pfad zur übergeordneten Anweisungsdatei, die diese eingebunden hat, bei `include`-Ladevorgängen |1517| `parent_file_path` | Pfad zur übergeordneten Anweisungsdatei, die diese eingebunden hat, bei `include`-Ladevorgängen |


1509 InstructionsLoaded-Entscheidungssteuerung1532 InstructionsLoaded-Entscheidungssteuerung

1510</h4>1533</h4>

1511 1534 

1512InstructionsLoaded-Hooks haben keine Entscheidungssteuerung. Sie können das Laden von Anweisungen weder blockieren noch verändern. Claude Code verwirft ihre [JSON-Ausgabefelder](#json-output), etwa `systemMessage` und `continue`. Verwenden Sie dieses Ereignis für Audit-Logging, Compliance-Nachverfolgung oder Beobachtbarkeit.1535InstructionsLoaded-Hooks haben keine Entscheidungssteuerung. Sie können das Laden von Anweisungen weder blockieren noch ändern. Claude Code verwirft ihre [JSON-Ausgabefelder](#json-output), etwa `systemMessage` und `continue`. Verwenden Sie dieses Event für Audit-Logs, Compliance-Nachverfolgung oder Beobachtbarkeit.

1513 1536 

1514<h3 id="userpromptsubmit">1537<h3 id="userpromptsubmit">

1515 UserPromptSubmit1538 UserPromptSubmit

1516</h3>1539</h3>

1517 1540 

1518Wird ausgeführt, wenn ein Prompt übermittelt wird, bevor Claude ihn verarbeitet. So können Sie1541Wird ausgeführt, wenn ein Prompt abgesendet wird, bevor Claude ihn verarbeitet. Damit können Sie

1519zusätzlichen Kontext basierend auf dem Prompt bzw. der Konversation hinzufügen, Prompts validieren oder1542basierend auf dem Prompt bzw. der Konversation zusätzlichen Kontext hinzufügen, Prompts validieren oder

1520bestimmte Arten von Prompts blockieren.1543bestimmte Arten von Prompts blockieren.

1521 1544 

1522`UserPromptSubmit`-Hooks werden nicht nur bei Prompts ausgelöst, die Sie eingeben. Claude Code führt sie auch in folgenden Fällen aus:1545`UserPromptSubmit`-Hooks werden nicht nur bei Prompts ausgelöst, die Sie eingeben. Claude Code führt sie auch aus, wenn:

1523 1546 

1524* Eine [geplante Aufgabe](/docs/de/scheduled-tasks) wird ausgelöst, einschließlich einer `/loop`-Iteration1547* eine [geplante Aufgabe](/docs/de/scheduled-tasks) ausgelöst wird, einschließlich einer `/loop`-Iteration

1525* Ein [Hintergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) meldet sich bei der Sitzung zurück, die ihn gestartet hat1548* ein [Subagent im Hintergrund](/docs/de/sub-agents#run-subagents-in-foreground-or-background) an die Sitzung zurückmeldet, die ihn gestartet hat

1526* Eine [Nachricht, die eine andere Sitzung](/docs/de/cross-session-messaging) an Ihre Hauptkonversation sendet1549* eine [andere Sitzung eine Nachricht](/docs/de/cross-session-messaging) an Ihre Hauptkonversation sendet

1527 1550 

1528`UserPromptSubmit`-Hooks haben für die Typen `command`, `http` und `mcp_tool` einen Standard-Timeout von 30 Sekunden, kürzer als der Standard von 600 Sekunden für diese Typen bei den meisten anderen Ereignissen. Da dieser Hook vor jedem Prompt läuft und die Modellverarbeitung bis zu seinem Abschluss blockiert, bringt ein hängender Hook die Sitzung zum Stillstand. Wenn Ihr Hook mehr Zeit benötigt, setzen Sie das Feld `timeout` im Hook-Eintrag.1551`UserPromptSubmit`-Hooks haben für die Typen `command`, `http` und `mcp_tool` einen Standard-Timeout von 30 Sekunden, kürzer als der Standard von 600 Sekunden für diese Typen bei den meisten anderen Events. Da dieser Hook vor jedem Prompt läuft und die Modellverarbeitung blockiert, bis er abgeschlossen ist, bringt ein hängender Hook die Sitzung zum Stillstand. Wenn Ihr Hook mehr Zeit benötigt, setzen Sie das Feld `timeout` im Hook-Eintrag.

1529 1552 

1530Abgesehen von einem Befehls-Hook, den Sie mit [`async: true`](#run-hooks-in-the-background) ausführen, wird ein `UserPromptSubmit`-Befehls-, HTTP- oder MCP-Tool-Hook, der seinen Timeout erreicht, abgebrochen, und seine Ausgabe, einschließlich `additionalContext`, wird verworfen. Der Prompt erreicht Claude trotzdem, nur ohne diesen Kontext. Um den Prompt stattdessen zu blockieren, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails) für einen Befehls- oder HTTP-Hook. Das Transkript zeigt einen Hinweis, der den Hook, den ausgelösten Timeout und das Verwerfen der Ausgabe nennt.1553Abgesehen von einem Befehls-Hook, den Sie mit [`async: true`](#run-hooks-in-the-background) ausführen, wird ein `UserPromptSubmit`-Befehls-, HTTP- oder MCP-Tool-Hook, der seinen Timeout erreicht, abgebrochen, und seine Ausgabe, einschließlich eines etwaigen `additionalContext`, wird verworfen. Der Prompt erreicht Claude trotzdem, ohne diesen Kontext. Um den Prompt stattdessen zu blockieren, setzen Sie [`onFailure: "block"`](#block-the-action-when-a-hook-fails) bei einem Befehls- oder HTTP-Hook. Das Transkript zeigt einen Hinweis, der den Hook und den ausgelösten Timeout nennt und angibt, dass die Ausgabe verworfen wurde.

1531 1554 

1532Ein [Agent-SDK-Callback-Hook](/docs/de/agent-sdk/hooks) bei `UserPromptSubmit`, der seinen Timeout erreicht, blockiert den Prompt mit einer Meldung, die den Hook und den Timeout nennt, weil ein Callback an dieser Stelle als Richtlinien-Gate fungieren kann, das nicht offen fehlschlagen darf. Die Sitzung wird fortgesetzt. Vor v2.1.208 beendete ein Callback-Timeout bei diesem Ereignis den Turn mit einem Ausführungsfehler.1555Ein [Agent SDK-Callback-Hook](/docs/de/agent-sdk/hooks) bei `UserPromptSubmit`, der seinen Timeout erreicht, blockiert den Prompt mit einer Meldung, die den Hook und den Timeout nennt, da ein Callback an dieser Stelle als Richtlinienprüfung dienen kann, die bei einem Fehler nicht einfach durchlassen darf. Die Sitzung wird fortgesetzt. Vor v2.1.208 beendete ein Callback-Timeout bei diesem Event den Turn mit einem Ausführungsfehler.

1533 1556 

1534<h4 id="userpromptsubmit-input">1557<h4 id="userpromptsubmit-input">

1535 UserPromptSubmit-Eingabe1558 UserPromptSubmit-Eingabe

1536</h4>1559</h4>

1537 1560 

1538Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten UserPromptSubmit-Hooks das Feld `prompt` mit dem übermittelten Text. Eingefügter Inhalt, der zu einem Platzhalter `[Pasted text #N]` zusammengeklappt wurde, kommt an Ort und Stelle erweitert an. In Sitzungen, in denen Claude Code [eingefügten Text für Claude kennzeichnet](/docs/de/terminal-config#how-claude-treats-pasted-text), steht dieser erweiterte Inhalt zwischen einer Zeile `<pasted_content id="…">` und einer Zeile `</pasted_content id="…">`. Berücksichtigen Sie diese Zeilen, wenn Ihr Hook den Prompt parst.1561Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten UserPromptSubmit-Hooks das Feld `prompt` mit dem abgesendeten Text. Eingefügter Inhalt, der zu einem Platzhalter `[Pasted text #N]` zusammengeklappt wurde, kommt an Ort und Stelle erweitert an. In Sitzungen, in denen Claude Code [eingefügten Text für Claude kennzeichnet](/docs/de/terminal-config#how-claude-treats-pasted-text), steht dieser erweiterte Inhalt zwischen einer Zeile `<pasted_content id="…">` und einer Zeile `</pasted_content id="…">`. Berücksichtigen Sie diese Zeilen, wenn Ihr Hook den Prompt parst.

1539 1562 

1540UserPromptSubmit-Hooks erhalten außerdem `session_title`, wenn die Sitzung einen benutzerdefinierten Titel hat, mit derselben Bedeutung wie das [SessionStart-Feld `session_title`](#sessionstart-input).1563UserPromptSubmit-Hooks erhalten außerdem `session_title`, wenn die Sitzung einen benutzerdefinierten Titel hat, mit derselben Bedeutung wie das [SessionStart-Feld `session_title`](#sessionstart-input).

1541 1564 


1554 UserPromptSubmit-Entscheidungssteuerung1577 UserPromptSubmit-Entscheidungssteuerung

1555</h4>1578</h4>

1556 1579 

1557`UserPromptSubmit`-Hooks können steuern, ob ein übermittelter Prompt verarbeitet wird, und Kontext hinzufügen. Alle [JSON-Ausgabefelder](#json-output) sind verfügbar.1580`UserPromptSubmit`-Hooks können steuern, ob ein abgesendeter Prompt verarbeitet wird, und Kontext hinzufügen. Alle [JSON-Ausgabefelder](#json-output) sind verfügbar.

1558 1581 

1559Es gibt zwei Möglichkeiten, bei Exit-Code 0 Kontext zur Konversation hinzuzufügen:1582Es gibt zwei Möglichkeiten, bei Exit-Code 0 Kontext zur Konversation hinzuzufügen:

1560 1583 

1561* **Reiner Text auf stdout**: Claude Code fügt stdout, das es [als reinen Text behandelt](#exit-code-0), dem Kontext von Claude hinzu1584* **Klartext auf stdout**: Claude Code fügt stdout, das es [als Klartext behandelt](#exit-code-0), zum Kontext von Claude hinzu

1562* **JSON mit `additionalContext`**: Verwenden Sie das folgende JSON-Format für mehr Kontrolle. Das Feld `additionalContext` wird als Kontext hinzugefügt1585* **JSON mit `additionalContext`**: Verwenden Sie das unten stehende JSON-Format für mehr Kontrolle. Das Feld `additionalContext` wird als Kontext hinzugefügt

1563 1586 

1564Keiner der beiden Kanäle erzeugt einen sichtbaren Transkripteintrag. Reines stdout und der Wert von `additionalContext` werden jeweils als System-Erinnerung eingefügt, die mit dem Namen des Hooks beginnt; Claude liest beide. Um die Übermittlung zu bestätigen, prüfen Sie das [Debug-Log](#debug-hooks).1587Keiner der beiden Kanäle erzeugt einen sichtbaren Eintrag im Transkript. Reines stdout und der Wert von `additionalContext` werden jeweils als System-Erinnerung eingefügt, die mit dem Namen des Hooks beginnt; Claude liest beide. Um die Übermittlung zu bestätigen, prüfen Sie das [Debug-Log](#debug-hooks).

1565 1588 

1566Um einen Prompt zu blockieren, geben Sie ein JSON-Objekt zurück, in dem `decision` auf `"block"` gesetzt ist:1589Um einen Prompt zu blockieren, geben Sie ein JSON-Objekt zurück, bei dem `decision` auf `"block"` gesetzt ist:

1567 1590 

1568| Feld | Beschreibung |1591| Feld | Beschreibung |

1569| :- | :- |1592| :- | :- |

1570| `decision` | `"block"` stoppt den Prompt, bevor er Claude erreicht. Weglassen, um den Prompt fortfahren zu lassen |1593| `decision` | `"block"` stoppt den Prompt, bevor er Claude erreicht. Lassen Sie es weg, damit der Prompt fortgesetzt wird |

1571| `reason` | Wird dem Benutzer angezeigt, wenn `decision` den Wert `"block"` hat. Wird nicht dem Kontext hinzugefügt |1594| `reason` | Wird dem Benutzer angezeigt, wenn `decision` den Wert `"block"` hat. Wird nicht zum Kontext hinzugefügt |

1572| `additionalContext` | String, der zusammen mit dem übermittelten Prompt dem Kontext von Claude hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |1595| `additionalContext` | String, der zusammen mit dem abgesendeten Prompt zum Kontext von Claude hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |

1573| `sessionTitle` | Legt den Sitzungstitel fest. Verwenden Sie dies, um Sitzungen automatisch anhand des Prompt-Inhalts zu benennen |1596| `sessionTitle` | Setzt den Sitzungstitel. Verwenden Sie es, um Sitzungen automatisch anhand des Prompt-Inhalts zu benennen |

1574| `suppressOriginalPrompt` | Bei `true` wird der Prompt-Text, wenn der Hook den Prompt blockiert, in der Blockierungsmeldung weggelassen. Siehe [Was ein blockierter Prompt hinterlässt](#what-a-blocked-prompt-leaves-behind) |1597| `suppressOriginalPrompt` | Bei `true` lässt es den Prompt-Text aus der Blockierungsmeldung weg, wenn der Hook den Prompt blockiert. Siehe [Was ein blockierter Prompt hinterlässt](#what-a-blocked-prompt-leaves-behind) |

1575 1598 

1576Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `reason`: Die Blockierungsmeldung zeigt dem Benutzer den stderr-Text, und er wird nicht dem Kontext hinzugefügt.1599Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `reason`: Die Blockierungsmeldung zeigt dem Benutzer den stderr-Text, und dieser wird nicht zum Kontext hinzugefügt.

1577 1600 

1578```json theme={null}1601```json theme={null}

1579{1602{


1592 Was ein blockierter Prompt hinterlässt1615 Was ein blockierter Prompt hinterlässt

1593</h4>1616</h4>

1594 1617 

1595Ein blockierter Prompt erreicht Claude nie, aber sein Text wird nicht überall entfernt. Standardmäßig endet die dem Benutzer angezeigte Blockierungsmeldung mit `Original prompt:`, gefolgt vom übermittelten Text, und Claude Code schreibt diese Meldung in die Transkriptdatei der Sitzung auf dem Datenträger. Um den Text aus der Meldung wegzulassen, geben Sie JSON mit `"suppressOriginalPrompt": true` innerhalb von `hookSpecificOutput` aus. Das funktioniert unabhängig davon, ob der Hook mit `decision: "block"` oder durch Beenden mit Exit-Code 2 blockiert.1618Ein blockierter Prompt erreicht Claude nie, aber sein Text wird nicht überall entfernt. Standardmäßig endet die dem Benutzer angezeigte Blockierungsmeldung mit `Original prompt:`, gefolgt vom abgesendeten Text, und Claude Code schreibt diese Meldung in die Transkriptdatei der Sitzung auf der Festplatte. Um den Text aus der Meldung wegzulassen, geben Sie JSON mit `"suppressOriginalPrompt": true` innerhalb von `hookSpecificOutput` aus. Das funktioniert unabhängig davon, ob der Hook mit `decision: "block"` oder durch Beenden mit Exit-Code 2 blockiert.

1596 1619 

1597`suppressOriginalPrompt` ändert nur die Blockierungsmeldung. Der übermittelte Text kann weiterhin in lokalen Dateien wie dem Sitzungstranskript und Ihrem Prompt-Verlauf erscheinen. Ein blockierender Hook ist also kein Weg, ein Geheimnis vom Datenträger fernzuhalten. Informationen zum Begrenzen oder Entfernen dieser Dateien finden Sie unter [Klartextspeicherung](/docs/de/claude-directory#plaintext-storage) und [Lokale Daten löschen](/docs/de/claude-directory#clear-local-data).1620`suppressOriginalPrompt` ändert nur die Blockierungsmeldung. Der abgesendete Text kann weiterhin in lokalen Dateien wie dem Sitzungstranskript und Ihrem Prompt-Verlauf erscheinen. Ein blockierender Hook ist daher kein Weg, ein Geheimnis von der Festplatte fernzuhalten. Um diese Dateien zu begrenzen oder zu entfernen, siehe [Klartextspeicherung](/docs/de/claude-directory#plaintext-storage) und [Lokale Daten löschen](/docs/de/claude-directory#clear-local-data).

1598 1621 

1599<h3 id="userpromptexpansion">1622<h3 id="userpromptexpansion">

1600 UserPromptExpansion1623 UserPromptExpansion

1601</h3>1624</h3>

1602 1625 

1603Wird ausgeführt, wenn ein vom Benutzer eingegebener Befehl zu einem Prompt erweitert wird, bevor er Claude erreicht. Verwenden Sie dies, um bestimmte Befehle für den direkten Aufruf zu sperren, Kontext für einen bestimmten Skill einzufügen oder zu protokollieren, welche Befehle Benutzer aufrufen. Zum Beispiel kann ein Hook, der auf `deploy` passt, `/deploy` blockieren, sofern keine Genehmigungsdatei vorhanden ist, oder ein Hook, der auf einen Review-Skill passt, die Review-Checkliste des Teams als `additionalContext` anhängen.1626Wird ausgeführt, wenn ein vom Benutzer eingegebener Befehl zu einem Prompt erweitert wird, bevor er Claude erreicht. Verwenden Sie dies, um bestimmte Befehle vom direkten Aufruf auszuschließen, Kontext für einen bestimmten Skill einzufügen oder zu protokollieren, welche Befehle Benutzer aufrufen. Zum Beispiel kann ein Hook, der auf `deploy` zutrifft, `/deploy` blockieren, sofern keine Genehmigungsdatei vorhanden ist, oder ein Hook, der auf einen Review-Skill zutrifft, die Review-Checkliste des Teams als `additionalContext` anhängen.

1604 1627 

1605Dieses Ereignis deckt den Weg ab, den `PreToolUse` nicht abdeckt: Ein `PreToolUse`-Hook, der auf das Tool `Skill` passt, wird nur ausgelöst, wenn Claude das Tool aufruft, aber die direkte Eingabe von `/skillname` umgeht `PreToolUse`. `UserPromptExpansion` wird auf diesem direkten Weg ausgelöst.1628Dieses Event deckt den Weg ab, den `PreToolUse` nicht abdeckt: Ein `PreToolUse`-Hook, der auf das Tool `Skill` zutrifft, wird nur ausgelöst, wenn Claude das Tool aufruft, aber das direkte Eingeben von `/skillname` umgeht `PreToolUse`. `UserPromptExpansion` wird auf diesem direkten Weg ausgelöst.

1606 1629 

1607Gleicht auf `command_name` ab. Lassen Sie den Matcher leer, um bei jedem Befehl vom Typ Prompt auszulösen.1630Matcht auf `command_name`. Lassen Sie den Matcher leer, um bei jedem Befehl vom Typ Prompt auszulösen.

1608 1631 

1609<h4 id="userpromptexpansion-input">1632<h4 id="userpromptexpansion-input">

1610 UserPromptExpansion-Eingabe1633 UserPromptExpansion-Eingabe

1611</h4>1634</h4>

1612 1635 

1613Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten UserPromptExpansion-Hooks `expansion_type`, `command_name`, `command_args`, `command_source` und den ursprünglichen `prompt`-String. Das Feld `expansion_type` ist `slash_command` für Skills und benutzerdefinierte Befehle oder `mcp_prompt` für Prompts von MCP-Servern.1636Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten UserPromptExpansion-Hooks `expansion_type`, `command_name`, `command_args`, `command_source` und den ursprünglichen `prompt`-String. Das Feld `expansion_type` hat den Wert `slash_command` für Skills und benutzerdefinierte Befehle oder `mcp_prompt` für Prompts von MCP-Servern.

1614 1637 

1615```json theme={null}1638```json theme={null}

1616{1639{


1635 1658 

1636| Feld | Beschreibung |1659| Feld | Beschreibung |

1637| :- | :- |1660| :- | :- |

1638| `decision` | `"block"` verhindert die Erweiterung des Befehls. Weglassen, um fortzufahren |1661| `decision` | `"block"` verhindert, dass der Befehl erweitert wird. Lassen Sie es weg, damit er fortgesetzt wird |

1639| `reason` | Wird dem Benutzer angezeigt, wenn `decision` den Wert `"block"` hat |1662| `reason` | Wird dem Benutzer angezeigt, wenn `decision` den Wert `"block"` hat |

1640| `additionalContext` | String, der zusammen mit dem erweiterten Prompt dem Kontext von Claude hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |1663| `additionalContext` | String, der zusammen mit dem erweiterten Prompt zum Kontext von Claude hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |

1641 1664 

1642Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `reason`: Die Blockierungsmeldung zeigt dem Benutzer den stderr-Text.1665Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `reason`: Die Blockierungsmeldung zeigt dem Benutzer den stderr-Text.

1643 1666 


1656 MessageDisplay1679 MessageDisplay

1657</h3>1680</h3>

1658 1681 

1659Wird ausgeführt, während eine Assistentennachricht auf den Bildschirm gestreamt wird. Claude Code zeigt die Nachricht schrittweise an: Jedes Mal, wenn ein Stapel neu vervollständigter Zeilen zur Darstellung bereit ist, wird der Hook einmal mit diesen Zeilen ausgeführt, und Claude Code stellt an ihrer Stelle den Ersatztext des Hooks dar. Eine lange Nachricht erzeugt mehrere Aufrufe; eine kurze Nachricht möglicherweise nur einen.1682Wird ausgeführt, während eine Assistentennachricht auf den Bildschirm gestreamt wird. Claude Code zeigt die Nachricht schrittweise an: Jedes Mal, wenn ein Stapel neu abgeschlossener Zeilen zur Darstellung bereit ist, läuft der Hook einmal mit diesen Zeilen, und Claude Code stellt an ihrer Stelle den Ersatztext des Hooks dar. Eine lange Nachricht erzeugt mehrere Aufrufe; eine kurze Nachricht erzeugt möglicherweise nur einen.

1660 1683 

1661Verwenden Sie MessageDisplay, um:1684Verwenden Sie MessageDisplay, um:

1662 1685 

1663* Markdown für eine minimalistische Anzeige zu entfernen1686* Markdown für eine minimalistische Anzeige zu entfernen

1664* den Text umzuwandeln, den eine Agent-SDK-Anwendung ihren Benutzern anzeigt1687* den Text umzuwandeln, den eine Agent SDK-Anwendung ihren Benutzern anzeigt

1665* API-Schlüssel oder interne Hostnamen aus den Antworten von Claude zu schwärzen1688* API-Schlüssel oder interne Hostnamen aus den Antworten von Claude zu schwärzen

1666 1689 

1667Claude Code hält jeden Stapel zurück, bis Ihr Hook zurückkehrt. Halten Sie den Hook daher schnell. Wenn der Hook fehlschlägt oder eine Zeitüberschreitung auftritt, zeigt Claude Code den ursprünglichen Text an. Der Standard-Timeout für dieses Ereignis beträgt 10 Sekunden; wenn Ihr Hook mehr Zeit benötigt, setzen Sie das Feld `timeout` im Hook-Eintrag.1690Claude Code hält jeden Stapel zurück, bis Ihr Hook zurückkehrt, halten Sie den Hook daher schnell. Wenn der Hook fehlschlägt oder eine Zeitüberschreitung auftritt, zeigt Claude Code den ursprünglichen Text an. Der Standard-Timeout für dieses Event beträgt 10 Sekunden; wenn Ihr Hook mehr Zeit benötigt, setzen Sie das Feld `timeout` im Hook-Eintrag.

1668 1691 

1669MessageDisplay dient nur der Anzeige: Der Ersatztext ändert nur, was auf dem Bildschirm dargestellt wird. Das Transkript und das, was Claude sieht, behalten den ursprünglichen Text. Claude sieht den Ersatz also nie, und der ausführliche Modus zeigt das Original. Der Hook erhält nur den Text von Assistentennachrichten, sodass Tool-Ergebnisse und der von Ihnen eingegebene Text unverändert dargestellt werden.1692MessageDisplay dient nur der Anzeige: Der Ersatztext ändert nur, was auf dem Bildschirm dargestellt wird. Das Transkript und das, was Claude sieht, behalten den ursprünglichen Text. Claude sieht den Ersatz also nie, und der ausführliche Modus zeigt das Original. Der Hook erhält nur den Text von Assistentennachrichten, daher werden Tool-Ergebnisse und der von Ihnen eingegebene Text unverändert dargestellt.

1670 1693 

1671MessageDisplay unterstützt keine Matcher und wird für jede Assistentennachricht ausgelöst, die Text streamt; Nachrichten ohne Text, etwa Antworten, die nur aus Tool-Aufrufen bestehen, lösen es nicht aus.1694MessageDisplay unterstützt keine Matcher und wird für jede Assistentennachricht ausgelöst, die Text streamt; Nachrichten ohne Text, etwa Antworten, die nur aus Tool-Aufrufen bestehen, lösen es nicht aus.

1672 1695 

1673In nicht interaktiven Läufen, einschließlich Agent-SDK-Abfragen und `claude -p`, wird MessageDisplay einmal pro Assistentennachricht statt einmal pro Zeilenstapel ausgeführt. Der einzelne Aufruf erfolgt nach Abschluss der Nachricht und enthält den vollständigen Nachrichtentext: `index` ist `0`, `final` ist `true`, und `delta` enthält die gesamte Nachricht. Ein Hook, der den `delta`-Text jeder Nachricht sammelt, erhält in beiden Modi denselben Gesamttext.1696In nicht interaktiven Läufen, einschließlich Agent SDK-Abfragen und `claude -p`, läuft MessageDisplay einmal pro Assistentennachricht statt einmal pro Zeilenstapel. Der einzelne Aufruf erfolgt, nachdem die Nachricht abgeschlossen ist, und enthält den vollständigen Nachrichtentext: `index` ist `0`, `final` ist `true`, und `delta` enthält die gesamte Nachricht. Ein Hook, der den `delta`-Text jeder Nachricht sammelt, erhält in beiden Modi denselben Gesamttext.

1674 1697 

1675<h4 id="messagedisplay-input">1698<h4 id="messagedisplay-input">

1676 MessageDisplay-Eingabe1699 MessageDisplay-Eingabe

1677</h4>1700</h4>

1678 1701 

1679Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten MessageDisplay-Hooks Kennungen für den Turn und die Nachricht, die Position dieses Aufrufs innerhalb der Nachricht und den neuen Text in `delta`. Stapelgrenzen hängen davon ab, wie der Text gestreamt wird. Verwenden Sie daher `index` und `final`, um den Fortschritt innerhalb einer Nachricht zu verfolgen, anstatt zu erwarten, dass Zeilen auf eine bestimmte Weise gruppiert sind.1702Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten MessageDisplay-Hooks Kennungen für den Turn und die Nachricht, die Position dieses Aufrufs innerhalb der Nachricht und den neuen Text in `delta`. Die Stapelgrenzen hängen davon ab, wie der Text gestreamt wird. Verwenden Sie daher `index` und `final`, um den Fortschritt innerhalb einer Nachricht zu verfolgen, statt eine bestimmte Gruppierung der Zeilen zu erwarten.

1680 1703 

1681| Feld | Beschreibung |1704| Feld | Beschreibung |

1682| :- | :- |1705| :- | :- |

1683| `turn_id` | UUID des aktuellen Turns |1706| `turn_id` | UUID des aktuellen Turns |

1684| `message_id` | UUID der angezeigten Assistentennachricht. Stabil über alle Stapel derselben Nachricht. Dies ist nicht die API-ID `msg_…` und kann daher nicht mit Nachrichten-IDs im Transkript abgeglichen werden |1707| `message_id` | UUID der angezeigten Assistentennachricht. Über alle Stapel derselben Nachricht hinweg stabil. Dies ist nicht die `msg_…`-ID der API und kann daher nicht mit Nachrichten-IDs im Transkript abgeglichen werden |

1685| `index` | Nullbasierter Index dieses Stapels innerhalb der Nachricht |1708| `index` | Nullbasierter Index dieses Stapels innerhalb der Nachricht |

1686| `final` | `true` beim letzten Stapel der Nachricht. Jede Nachricht hat genau einen letzten Stapel |1709| `final` | `true` beim letzten Stapel der Nachricht. Jede Nachricht hat genau einen letzten Stapel |

1687| `delta` | Die seit dem vorherigen Stapel neu vervollständigten Zeilen, einschließlich abschließender Zeilenumbrüche. Immer ganze Zeilen, außer beim letzten Stapel, der mitten in einer Zeile enden kann. In interaktiven Läufen ist das Delta des letzten Stapels leer, wenn die Nachricht mit einem Zeilenumbruch endet. Behandeln Sie daher `final` und nicht ein nicht leeres Delta als Signal für das Nachrichtenende. In Agent-SDK- und `claude -p`-Läufen enthält der einzelne Aufruf die gesamte Nachricht |1710| `delta` | Die seit dem vorherigen Stapel neu abgeschlossenen Zeilen, einschließlich abschließender Zeilenumbrüche. Immer vollständige Zeilen, außer beim letzten Stapel, der mitten in einer Zeile enden kann. In interaktiven Läufen ist das Delta des letzten Stapels leer, wenn die Nachricht mit einem Zeilenumbruch endet. Behandeln Sie daher `final` und nicht ein nicht leeres Delta als Signal für das Nachrichtenende. In Agent SDK- und `claude -p`-Läufen enthält der einzelne Aufruf die gesamte Nachricht |

1688 1711 

1689```json theme={null}1712```json theme={null}

1690{1713{


1708 1731 

1709| Feld | Beschreibung |1732| Feld | Beschreibung |

1710| :- | :- |1733| :- | :- |

1711| `displayContent` | Text, der anstelle des Deltas angezeigt wird. Weglassen, um das Original anzuzeigen |1734| `displayContent` | Text, der anstelle des Deltas angezeigt wird. Lassen Sie es weg, um das Original anzuzeigen |

1712 1735 

1713MessageDisplay-Hooks haben keine Entscheidungssteuerung. Sie können die Nachricht nicht blockieren und nicht ändern, was im Transkript gespeichert oder an Claude gesendet wird. Claude Code berücksichtigt `displayContent` aus ihrer JSON-Ausgabe und verwirft `systemMessage` und `continue`.1736MessageDisplay-Hooks haben keine Entscheidungssteuerung. Sie können die Nachricht nicht blockieren und nicht ändern, was im Transkript gespeichert oder an Claude gesendet wird. Claude Code verarbeitet `displayContent` aus ihrer JSON-Ausgabe und verwirft `systemMessage` und `continue`.

1714 1737 

1715Dieses Beispiel entfernt Markdown-Formatierung aus den Antworten von Claude für eine Klartextanzeige. Das Skript liest jeden Stapel von stdin, entfernt Fettdruck-Markierungen und Backticks für Inline-Code aus `delta` und gibt das Ergebnis als `displayContent` zurück.1738Dieses Beispiel entfernt Markdown-Formatierung aus den Antworten von Claude für eine Klartextanzeige. Das Skript liest jeden Stapel von stdin, entfernt Fettdruck-Markierungen und Backticks für Inline-Code aus `delta` und gibt das Ergebnis als `displayContent` zurück.

1716 1739 

1717<Tabs>1740<Tabs>

1718 <Tab title="macOS/Linux">1741 <Tab title="macOS/Linux">

1719 Registrieren Sie in Ihrer Einstellungsdatei einen Befehls-Hook für das Ereignis:1742 Registrieren Sie in Ihrer Einstellungsdatei einen Befehls-Hook für das Event:

1720 1743 

1721 ```json theme={null}1744 ```json theme={null}

1722 {1745 {


1736 }1759 }

1737 ```1760 ```

1738 1761 

1739 Speichern Sie dieses Skript unter `.claude/hooks/plain-display.sh` in Ihrem Projekt und machen Sie es mit `chmod +x` ausführbar:1762 Speichern Sie dieses Skript als `.claude/hooks/plain-display.sh` in Ihrem Projekt und machen Sie es mit `chmod +x` ausführbar:

1740 1763 

1741 ```bash theme={null}1764 ```bash theme={null}

1742 #!/bin/bash1765 #!/bin/bash


1773 1796 

1774 Das Flag `-NoProfile` überspringt das Laden Ihres PowerShell-Profils, damit der Hook schnell startet, und `-ExecutionPolicy Bypass` erlaubt PowerShell, die lokale Skriptdatei auszuführen.1797 Das Flag `-NoProfile` überspringt das Laden Ihres PowerShell-Profils, damit der Hook schnell startet, und `-ExecutionPolicy Bypass` erlaubt PowerShell, die lokale Skriptdatei auszuführen.

1775 1798 

1776 Speichern Sie dieses Skript unter `.claude/hooks/plain-display.ps1` in Ihrem Projekt:1799 Speichern Sie dieses Skript als `.claude/hooks/plain-display.ps1` in Ihrem Projekt:

1777 1800 

1778 ```powershell theme={null}1801 ```powershell theme={null}

1779 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1802 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1794 PreToolUse1817 PreToolUse

1795</h3>1818</h3>

1796 1819 

1797Wird ausgeführt, nachdem Claude Tool-Parameter erstellt hat und bevor der Tool-Aufruf verarbeitet wird. Passt auf jeden Tool-Namen außer `EndConversation`: integrierte Tools wie `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` und `ExitPlanMode` sowie beliebige [MCP-Tool-Namen](#match-mcp-tools).1820Wird ausgeführt, nachdem Claude Tool-Parameter erstellt hat und bevor der Tool-Aufruf verarbeitet wird. Matcht auf jeden Tool-Namen außer `EndConversation`: integrierte Tools wie `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` und `ExitPlanMode` sowie beliebige [MCP-Tool-Namen](#match-mcp-tools).

1798 1821 

1799Um einen Hook auszuführen, wenn sich eine bestimmte Datei auf dem Datenträger ändert, unabhängig davon, was sie geschrieben hat, verwenden Sie [FileChanged](#filechanged), anstatt dateibearbeitende Tools nach Namen abzugleichen. Anders als PreToolUse führt Claude Code FileChanged-Hooks nach der Änderung aus, und sie haben keine Entscheidungssteuerung, können den Schreibvorgang also nicht blockieren.1822Um einen Hook auszuführen, wenn sich eine bestimmte Datei auf der Festplatte ändert, unabhängig davon, wer sie geschrieben hat, verwenden Sie [FileChanged](#filechanged), statt dateibearbeitende Tools nach Namen zu matchen. Anders als PreToolUse führt Claude Code FileChanged-Hooks nach der Änderung aus, und sie haben keine Entscheidungssteuerung, können den Schreibvorgang also nicht blockieren.

1800 1823 

1801<Warning>1824<Warning>

1802 PreToolUse wird nur ausgeführt, wenn Claude ein Tool aufruft. Dateien, die Sie [mit `@` in Ihrem Prompt referenzieren](/docs/de/common-workflows#reference-files-and-directories), werden ohne Tool-Aufruf hinzugefügt: Claude Code fügt ihren Inhalt beim Erstellen des Prompts ein, sodass für sie kein PreToolUse-Hook ausgelöst wird, auch keine Hooks, die auf `Read` passen. Um bestimmte Pfade für `@`-Referenzen zu sperren, verwenden Sie stattdessen eine [`Read`-deny-Regel](/docs/de/permissions#read-and-edit).1825 PreToolUse wird nur ausgeführt, wenn Claude ein Tool aufruft. Dateien, die Sie [mit `@` in Ihrem Prompt referenzieren](/docs/de/common-workflows#reference-files-and-directories), werden standardmäßig ohne Tool-Aufruf hinzugefügt. Claude Code fügt ihren Inhalt beim Erstellen des Prompts ein, sodass für sie kein PreToolUse-Hook ausgelöst wird, auch keine Hooks, die auf `Read` matchen. PreToolUse wird außerdem nicht für [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) ausgelöst.

1826 

1827 Sie können bestimmte Pfade für `@`-Referenzen sperren oder das Einfügen abschalten:

1803 1828 

1804 PreToolUse wird auch nicht für [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) ausgelöst.1829 * **Bestimmte Pfade sperren**: Fügen Sie eine [`Read`-deny-Regel](/docs/de/permissions#read-and-edit) für sie hinzu

1830 * **Das Einfügen abschalten**: Setzen Sie [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/de/env-vars#variables) in Ihrer Shell, Ihren Benutzereinstellungen oder verwalteten Einstellungen. Claude erhält dann die erwähnten Pfade mit dem Hinweis, sie mit seinen Datei-Tools zu lesen. Tut es das, werden Ihre passenden PreToolUse-Hooks ausgeführt. Die Variable erfordert Claude Code v2.1.299 oder höher, und Claude Code ignoriert sie in Projekt- und lokalen Einstellungen.

1805</Warning>1831</Warning>

1806 1832 

1807Verwenden Sie die [PreToolUse-Entscheidungssteuerung](#pretooluse-decision-control), um den Tool-Aufruf zu erlauben, abzulehnen, nachzufragen oder zurückzustellen.1833Verwenden Sie die [PreToolUse-Entscheidungssteuerung](#pretooluse-decision-control), um den Tool-Aufruf zu erlauben, abzulehnen, nachzufragen oder zurückzustellen.

1808 1834 

1809Ein [Agent-SDK-Callback-Hook](/docs/de/agent-sdk/hooks) bei `PreToolUse`, der seinen Timeout überschreitet, blockiert den Tool-Aufruf, und Claude erhält ein Fehlerergebnis, das den Timeout nennt. Eine explizite Ablehnung, die ein anderer Hook zurückgibt, hat weiterhin Vorrang.1835Ein [Agent SDK-Callback-Hook](/docs/de/agent-sdk/hooks) bei `PreToolUse`, der seinen Timeout überschreitet, blockiert den Tool-Aufruf, und Claude erhält ein Fehlerergebnis, das den Timeout nennt. Eine explizite Ablehnung, die ein anderer Hook zurückgibt, hat weiterhin Vorrang.

1810 1836 

1811<h4 id="pretooluse-input">1837<h4 id="pretooluse-input">

1812 PreToolUse-Eingabe1838 PreToolUse-Eingabe


1814 1840 

1815Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreToolUse-Hooks `tool_name`, `tool_input` und `tool_use_id`.1841Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreToolUse-Hooks `tool_name`, `tool_input` und `tool_use_id`.

1816 1842 

1817Bei einem [MCP-Tool](#match-mcp-tools) enthält die Eingabe außerdem `mcp_server`, ein Objekt mit dem `name` des Servers und einer `source`, die angibt, woher die Definition des Servers stammt. Zu den `source`-Werten gehören `plugin`, `sdk` sowie Konfigurations-Geltungsbereiche wie `user` und `project`. [`McpServerProvenance`](/docs/de/agent-sdk/typescript#mcpserverprovenance) in der Agent-SDK-Referenz listet alle auf und erklärt, wie Sie mit einem Wert umgehen, den Sie nicht kennen. Stützen Sie Vertrauensentscheidungen auf `source` statt auf `name` oder das Tool-Namenspräfix `mcp__<server>__`. Das Feld `mcp_server` erfordert Claude Code v2.1.274 oder höher.1843Bei einem [MCP-Tool](#match-mcp-tools) enthält die Eingabe außerdem `mcp_server`, ein Objekt mit dem `name` des Servers und einer `source`, die angibt, woher die Definition des Servers stammt. Zu den `source`-Werten gehören `plugin`, `sdk` und Konfigurations-Geltungsbereiche wie `user` und `project`. [`McpServerProvenance`](/docs/de/agent-sdk/typescript#mcpserverprovenance) in der Agent SDK-Referenz listet alle Werte auf und beschreibt, wie Sie mit einem Wert umgehen, den Sie nicht kennen. Stützen Sie Vertrauensentscheidungen auf `source` und nicht auf `name` oder das Tool-Namenspräfix `mcp__<server>__`. Das Feld `mcp_server` erfordert Claude Code v2.1.274 oder höher.

1818 1844 

1819Bei den Datei-Tools `Write`, `Edit` und `Read` ist `tool_input.file_path` immer absolut:1845Bei den Datei-Tools `Write`, `Edit` und `Read` ist `tool_input.file_path` immer absolut:

1820 1846 

1821* Claude Code erweitert `~` und relative Pfade, bevor Hooks ausgeführt werden, sodass ein Hook, der auf Pfade abgleicht, nicht über `~` oder eine relative Schreibweise desselben Pfads umgangen werden kann1847* Claude Code erweitert `~` und relative Pfade, bevor Hooks laufen, sodass ein Hook, der auf Pfade matcht, nicht über `~` oder eine relative Schreibweise desselben Pfads umgangen werden kann

1822* Unter Windows kommt der Pfad mit Backslash-Trennzeichen an, auch wenn Ihr Hook unter Git Bash läuft, wo `$PWD` wie `/c/project` aussieht1848* Unter Windows kommt der Pfad mit Backslashes als Trennzeichen an, selbst wenn Ihr Hook unter Git Bash läuft, wo `$PWD` wie `/c/project` aussieht

1823* Ein mit Schrägstrichen geschriebener Vergleich, etwa eine Prüfung auf `/src/`, passt nie auf einen Backslash-Pfad, und der Tool-Aufruf wird fortgesetzt, als hätte der Hook nichts zu blockieren1849* Ein Vergleich mit Schrägstrichen, etwa eine Prüfung auf `/src/`, trifft nie auf einen Pfad mit Backslashes zu, und der Tool-Aufruf wird fortgesetzt, als hätte der Hook nichts zu blockieren gehabt

1824* Normalisieren Sie die Trennzeichen vor dem Vergleich: `FILE_PATH="${FILE_PATH//\\//}"` in Bash oder `file_path.replace("\\", "/")` in Python. Gleichen Sie dann auf ein Pfadsegment wie `/src/` ab, anstatt mit `^` zu verankern, da der Pfad absolut ist1850* Normalisieren Sie die Trennzeichen vor dem Vergleich: `FILE_PATH="${FILE_PATH//\\//}"` in Bash oder `file_path.replace("\\", "/")` in Python, und matchen Sie dann auf ein Pfadsegment wie `/src/`, statt mit `^` zu verankern, da der Pfad absolut ist

1825 1851 

1826Ein `Write`-Aufruf unter Windows liefert:1852Ein `Write`-Aufruf unter Windows liefert:

1827 1853 


1851| :- | :- | :- | :- |1877| :- | :- | :- | :- |

1852| `command` | string | `"npm test"` | Der auszuführende Shell-Befehl |1878| `command` | string | `"npm test"` | Der auszuführende Shell-Befehl |

1853| `description` | string | `"Run test suite"` | Optionale Beschreibung dessen, was der Befehl tut |1879| `description` | string | `"Run test suite"` | Optionale Beschreibung dessen, was der Befehl tut |

1854| `timeout` | number | `120000` | Optionaler Timeout in Millisekunden. Werte über dem [Maximum](/docs/de/tools-reference#bash-tool-behavior) werden auf das Maximum reduziert, statt abgelehnt zu werden |1880| `timeout` | number | `120000` | Optionaler Timeout in Millisekunden. Werte über dem [Maximum](/docs/de/tools-reference#bash-tool-behavior) werden auf das Maximum reduziert statt abgelehnt |

1855| `run_in_background` | boolean | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |1881| `run_in_background` | boolean | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |

1856 1882 

1857Wenn ein Bash-Befehl Dateien in einem Git-Repository ändert, kann Claude Code aufzeichnen, was sich geändert hat. Es zeichnet die Änderungen in jedem Berechtigungsmodus auf, wenn die Einstellung [`bashEditDiffEnabled`](/docs/de/settings-reference#basheditdiffenabled) die Aufzeichnung aktiviert; der Eintrag dieser Einstellung gibt an, in welchen Dateien sie gesetzt werden kann. Andernfalls zeichnet es sie nur im Auto-Modus und im Modus `bypassPermissions` auf, und nur, wenn Claude Code Claude anweist, Dateien über Bash zu bearbeiten. Setzen Sie `bashEditDiffEnabled` auf `false`, um die Aufzeichnung auszuschalten. Hintergrundbefehle und nur lesende Befehle enthalten keinen Diff.1883Wenn ein Bash-Befehl Dateien in einem Git-Repository ändert, kann Claude Code aufzeichnen, was sich geändert hat. Es zeichnet die Änderungen in jedem Berechtigungsmodus auf, wenn die Einstellung [`bashEditDiffEnabled`](/docs/de/settings-reference#basheditdiffenabled) die Aufzeichnung einschaltet; der Eintrag dieser Einstellung gibt an, welche Dateien sie setzen können. Andernfalls zeichnet es sie nur im Auto-Modus und im Modus `bypassPermissions` auf, und nur, wenn Claude Code Claude anweist, Dateien über Bash zu bearbeiten. Setzen Sie `bashEditDiffEnabled` auf `false`, um die Aufzeichnung auszuschalten. Hintergrundbefehle und nur lesende Befehle enthalten keinen Diff.

1858 1884 

1859Ihr [PostToolUse-Hook](#posttooluse) erhält die geänderten Dateien dann in `tool_response.bashEditDiff`. Die Liste umfasst, was sich im Repository geändert hat, während der Befehl lief. Dateien, die Git ignoriert, und Dateien in Submodulen werden nicht aufgeführt. Erfordert Claude Code v2.1.269 oder höher.1885Ihr [PostToolUse-Hook](#posttooluse) erhält die geänderten Dateien dann in `tool_response.bashEditDiff`. Die Liste umfasst, was sich während der Ausführung des Befehls im Repository geändert hat. Dateien, die Git ignoriert, und Dateien in Submodulen werden nicht aufgeführt. Erfordert Claude Code v2.1.269 oder höher.

1860 1886 

1861<Note>1887<Note>

1862 Die Liste wird nach bestem Bemühen erstellt und ist als öffentliche Beta verfügbar. Claude Code kann eine Änderung übersehen, eine Datei aufnehmen, die ein anderer Prozess gleichzeitig geändert hat, oder an seinen Größengrenzen abbrechen. Die Struktur des Feldes kann sich ändern. Verwenden Sie die Liste, um herauszufinden, was überprüft werden sollte, nicht um eine Richtlinie durchzusetzen.1888 Die Liste wird nach bestem Bemühen erstellt und ist als öffentliche Beta verfügbar. Claude Code kann eine Änderung übersehen, eine Datei aufnehmen, die gleichzeitig ein anderer Prozess geändert hat, oder an seinen Größenlimits abbrechen. Die Struktur des Felds kann sich ändern. Verwenden Sie die Liste, um herauszufinden, was Sie prüfen sollten, nicht um eine Richtlinie durchzusetzen.

1863</Note>1889</Note>

1864 1890 

1865`changedFiles` und `files` listen auf, was der Befehl geändert hat; die übrigen Felder geben an, wie vollständig und wie zuverlässig diese Liste ist.1891`changedFiles` und `files` listen auf, was der Befehl geändert hat; die übrigen Felder geben an, wie vollständig und wie zuverlässig diese Liste ist.

1866 1892 

1867| Feld | Typ | Beispiel | Beschreibung |1893| Feld | Typ | Beispiel | Beschreibung |

1868| :- | :- | :- | :- |1894| :- | :- | :- | :- |

1869| `changedFiles` | array | `["/path/to/src/app.ts"]` | Absolute Pfade der Dateien, die der Befehl geändert hat, höchstens 200. Vorhanden, sobald `files` einen Diff enthält oder `moreFiles` größer als null ist |1895| `changedFiles` | array | `["/path/to/src/app.ts"]` | Absolute Pfade der Dateien, die der Befehl geändert hat, höchstens 200. Vorhanden, wann immer `files` einen Diff enthält oder `moreFiles` größer als null ist |

1870| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs von bis zu 5 geänderten Dateien, zur Anzeige. `created` oder `deleted` ist `true` für eine Datei, die der Befehl hinzugefügt oder entfernt hat |1896| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs von bis zu 5 geänderten Dateien, zur Anzeige. `created` oder `deleted` ist `true` für eine Datei, die der Befehl hinzugefügt oder entfernt hat |

1871| `moreFiles` | number | `2` | Anzahl geänderter Dateien ohne Diff in `files` |1897| `moreFiles` | number | `2` | Anzahl der geänderten Dateien ohne Diff in `files` |

1872| `unavailable` | boolean | `true` | Gesetzt, wenn der Diff unvollständig ist oder nicht erstellt werden konnte |1898| `unavailable` | boolean | `true` | Gesetzt, wenn der Diff unvollständig ist oder nicht erstellt werden konnte |

1873| `skipped` | boolean | `true` | Gesetzt bei einem Git-Befehl, der den Working Tree verändert, etwa `git checkout` oder `git stash`, sodass Claude Code keinen Diff erstellt |1899| `skipped` | boolean | `true` | Gesetzt bei einem Git-Befehl, der den Arbeitsbaum verschiebt, etwa `git checkout` oder `git stash`, sodass Claude Code keinen Diff erstellt |

1874| `shared` | boolean | `true` | Gesetzt, wenn ein anderer Bash-Tool-Aufruf, etwa der eines Subagenten, gleichzeitig im selben Repository lief, sodass einige aufgeführte Änderungen von diesem Befehl stammen können |1900| `shared` | boolean | `true` | Gesetzt, wenn ein anderer Bash-Tool-Aufruf, etwa der eines Subagenten, gleichzeitig im selben Repository lief, sodass einige aufgeführte Änderungen von diesem Befehl stammen können |

1875 1901 

1876<a id="powershell" />1902<a id="powershell" />


1879 PowerShell1905 PowerShell

1880</h5>1906</h5>

1881 1907 

1882Führt PowerShell-Befehle aus. Informationen zur Verfügbarkeit je Plattform finden Sie beim [PowerShell-Tool](/docs/de/tools-reference#powershell-tool).1908Führt PowerShell-Befehle aus. Zur Verfügbarkeit nach Plattform siehe das [PowerShell-Tool](/docs/de/tools-reference#powershell-tool).

1883 1909 

1884Die Felder entsprechen denen des Bash-Tools, mit dem Befehlsstring in `command`:1910Die Felder entsprechen denen des Bash-Tools, mit dem Befehlsstring in `command`:

1885 1911 


1890| `timeout` | number | `120000` | Optionaler Timeout in Millisekunden |1916| `timeout` | number | `120000` | Optionaler Timeout in Millisekunden |

1891| `run_in_background` | boolean | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |1917| `run_in_background` | boolean | `false` | Ob der Befehl im Hintergrund ausgeführt werden soll |

1892 1918 

1893Gleichen Sie in Hooks, die Shell-Befehle prüfen, auf `Bash|PowerShell` ab, damit sie beide Tools abdecken:1919Matchen Sie in Hooks, die Shell-Befehle prüfen, auf `Bash|PowerShell`, damit sie beide Tools abdecken:

1894 1920 

1895* Unter Windows behandelt Claude PowerShell überall dort, wo das PowerShell-Tool aktiviert ist, als primäre Shell und leitet Shell-Befehle darüber.1921* Unter Windows behandelt Claude PowerShell überall dort, wo das PowerShell-Tool aktiviert ist, als primäre Shell und leitet Shell-Befehle darüber.

1896* Unter Windows ohne Git Bash wird das Tool automatisch aktiviert, und Claude Code registriert das Bash-Tool überhaupt nicht.1922* Unter Windows ohne Git Bash wird das Tool automatisch aktiviert, und Claude Code registriert das Bash-Tool überhaupt nicht.

1897* Ein Hook, der nur auf `Bash` abgleicht, wird dort nie ausgelöst.1923* Ein Hook, der nur auf `Bash` matcht, wird dort nie ausgelöst.

1898 1924 

1899<h5 id="write">1925<h5 id="write">

1900 Write1926 Write


1917| :- | :- | :- | :- |1943| :- | :- | :- | :- |

1918| `file_path` | string | `"/path/to/file.txt"` | Absoluter Pfad zur zu bearbeitenden Datei |1944| `file_path` | string | `"/path/to/file.txt"` | Absoluter Pfad zur zu bearbeitenden Datei |

1919| `old_string` | string | `"original text"` | Zu suchender und zu ersetzender Text |1945| `old_string` | string | `"original text"` | Zu suchender und zu ersetzender Text |

1920| `new_string` | string | `"replacement text"` | Ersetzungstext |1946| `new_string` | string | `"replacement text"` | Ersatztext |

1921| `replace_all` | boolean | `false` | Ob alle Vorkommen ersetzt werden sollen |1947| `replace_all` | boolean | `false` | Ob alle Vorkommen ersetzt werden sollen |

1922 1948 

1923<h5 id="read">1949<h5 id="read">


1929| Feld | Typ | Beispiel | Beschreibung |1955| Feld | Typ | Beispiel | Beschreibung |

1930| :- | :- | :- | :- |1956| :- | :- | :- | :- |

1931| `file_path` | string | `"/path/to/file.txt"` | Absoluter Pfad zur zu lesenden Datei |1957| `file_path` | string | `"/path/to/file.txt"` | Absoluter Pfad zur zu lesenden Datei |

1932| `offset` | number | `10` | Optionale Zeilennummer, ab der gelesen werden soll |1958| `offset` | number | `10` | Optionale Zeilennummer, ab der gelesen wird |

1933| `limit` | number | `50` | Optionale Anzahl zu lesender Zeilen |1959| `limit` | number | `50` | Optionale Anzahl zu lesender Zeilen |

1934 1960 

1935<h5 id="glob">1961<h5 id="glob">


1940 1966 

1941| Feld | Typ | Beispiel | Beschreibung |1967| Feld | Typ | Beispiel | Beschreibung |

1942| :- | :- | :- | :- |1968| :- | :- | :- | :- |

1943| `pattern` | string | `"**/*.ts"` | Glob-Muster, mit dem Dateien abgeglichen werden |1969| `pattern` | string | `"**/*.ts"` | Glob-Muster, gegen das Dateien abgeglichen werden |

1944| `path` | string | `"/path/to/dir"` | Optionales Verzeichnis für die Suche. Standardmäßig das aktuelle Arbeitsverzeichnis |1970| `path` | string | `"/path/to/dir"` | Optionales Verzeichnis, in dem gesucht wird. Standardmäßig das aktuelle Arbeitsverzeichnis |

1945 1971 

1946<h5 id="grep">1972<h5 id="grep">

1947 Grep1973 Grep


1951 1977 

1952| Feld | Typ | Beispiel | Beschreibung |1978| Feld | Typ | Beispiel | Beschreibung |

1953| :- | :- | :- | :- |1979| :- | :- | :- | :- |

1954| `pattern` | string | `"TODO.*fix"` | Zu suchendes Muster eines regulären Ausdrucks |1980| `pattern` | string | `"TODO.*fix"` | Muster eines regulären Ausdrucks, nach dem gesucht wird |

1955| `path` | string | `"/path/to/dir"` | Optionale Datei oder optionales Verzeichnis für die Suche |1981| `path` | string | `"/path/to/dir"` | Optionale Datei oder optionales Verzeichnis, in dem gesucht wird |

1956| `glob` | string | `"*.ts"` | Optionales Glob-Muster zum Filtern von Dateien |1982| `glob` | string | `"*.ts"` | Optionales Glob-Muster zum Filtern von Dateien |

1957| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` oder `"count"`. Standardmäßig `"files_with_matches"` |1983| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` oder `"count"`. Standardmäßig `"files_with_matches"` |

1958| `-i` | boolean | `true` | Suche ohne Beachtung der Groß-/Kleinschreibung |1984| `-i` | boolean | `true` | Suche ohne Beachtung der Groß-/Kleinschreibung |

1959| `multiline` | boolean | `false` | Mehrzeiligen Abgleich aktivieren |1985| `multiline` | boolean | `false` | Mehrzeiliges Matching aktivieren |

1960 1986 

1961<h5 id="webfetch">1987<h5 id="webfetch">

1962 WebFetch1988 WebFetch


1968| :- | :- | :- | :- |1994| :- | :- | :- | :- |

1969| `url` | string | `"https://example.com/api"` | URL, von der Inhalte abgerufen werden |1995| `url` | string | `"https://example.com/api"` | URL, von der Inhalte abgerufen werden |

1970| `prompt` | string | `"Extract the API endpoints"` | Prompt, der auf den abgerufenen Inhalt angewendet wird |1996| `prompt` | string | `"Extract the API endpoints"` | Prompt, der auf den abgerufenen Inhalt angewendet wird |

1971| `offset` | number | `100000` | Optionale Anzahl von Zeichen, die ab dem Seitenanfang übersprungen werden. Claude setzt diesen Wert, um eine lange Seite weiterzulesen. Erfordert Claude Code v2.1.290 oder höher |1997| `offset` | number | `100000` | Optionale Anzahl von Zeichen, die vom Anfang der Seite übersprungen werden. Claude setzt dies, um eine lange Seite weiterzulesen. Erfordert Claude Code v2.1.290 oder höher |

1972 1998 

1973<h5 id="websearch">1999<h5 id="websearch">

1974 WebSearch2000 WebSearch


1979| Feld | Typ | Beispiel | Beschreibung |2005| Feld | Typ | Beispiel | Beschreibung |

1980| :- | :- | :- | :- |2006| :- | :- | :- | :- |

1981| `query` | string | `"react hooks best practices"` | Suchanfrage |2007| `query` | string | `"react hooks best practices"` | Suchanfrage |

1982| `allowed_domains` | array | `["docs.example.com"]` | Optional: nur Ergebnisse von diesen Domains einschließen |2008| `allowed_domains` | array | `["docs.example.com"]` | Optional: nur Ergebnisse von diesen Domains einbeziehen |

1983| `blocked_domains` | array | `["spam.example.com"]` | Optional: Ergebnisse von diesen Domains ausschließen |2009| `blocked_domains` | array | `["spam.example.com"]` | Optional: Ergebnisse von diesen Domains ausschließen |

1984 2010 

1985<h5 id="agent">2011<h5 id="agent">


1995| `subagent_type` | string | `"Explore"` | Typ des zu verwendenden spezialisierten Agenten |2021| `subagent_type` | string | `"Explore"` | Typ des zu verwendenden spezialisierten Agenten |

1996| `model` | string | `"sonnet"` | Optionaler Modell-Alias, der den Standard überschreibt |2022| `model` | string | `"sonnet"` | Optionaler Modell-Alias, der den Standard überschreibt |

1997 2023 

1998Wenn ein Agent-Aufruf im Vordergrund abgeschlossen ist, erhält Ihr [PostToolUse-Hook](#posttooluse) das Ergebnis und die Lauf-Telemetrie des Subagenten in `tool_response`. Lesen Sie diese Felder, um den Lauf zu untersuchen; für Token- und Kostenübersichten über Subagenten hinweg verwenden Sie die [Token- und Kostenzähler](/docs/de/monitoring-usage#token-counter), gefiltert auf `query_source` `"subagent"`, da `totalTokens` und `usage` nur die letzte Anfrage abdecken:2024Wenn ein Agent-Aufruf im Vordergrund abgeschlossen ist, erhält Ihr [PostToolUse-Hook](#posttooluse) das Ergebnis des Subagenten und die Telemetrie des Laufs in `tool_response`. Lesen Sie diese Felder, um den Lauf zu prüfen; für Token- und Kostenzusammenfassungen über Subagenten hinweg verwenden Sie die [Token- und Kostenzähler](/docs/de/monitoring-usage#token-counter), gefiltert auf `query_source` `"subagent"`, da `totalTokens` und `usage` nur die letzte Anfrage abdecken:

1999 2025 

2000| Feld | Typ | Beispiel | Beschreibung |2026| Feld | Typ | Beispiel | Beschreibung |

2001| :- | :- | :- | :- |2027| :- | :- | :- | :- |

2002| `status` | string | `"completed"` | `"completed"` für Subagenten im Vordergrund, `"async_launched"` für Subagenten im Hintergrund. Subagenten laufen standardmäßig im Hintergrund, daher erzeugt auch ein Agent-Aufruf ohne `run_in_background` `"async_launched"` |2028| `status` | string | `"completed"` | `"completed"` für Subagenten im Vordergrund, `"async_launched"` für Subagenten im Hintergrund. Subagenten laufen standardmäßig im Hintergrund, daher erzeugt auch ein Agent-Aufruf, der `run_in_background` weglässt, `"async_launched"` |

2003| `agentId` | string | `"a4d2c8f1e0b3a297"` | Kennung des Subagenten-Laufs |2029| `agentId` | string | `"a4d2c8f1e0b3a297"` | Kennung des Subagenten-Laufs |

2004| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Die abschließenden Textblöcke des Subagenten oder, bei einem Subagenten, dessen Bericht über `SubagentHandback` läuft, stattdessen ein kurzer Hinweis auf diese Übergabe |2030| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Die abschließenden Textblöcke des Subagenten oder, bei einem Subagenten, dessen Bericht über `SubagentHandback` läuft, an ihrer Stelle ein kurzer Hinweis auf diese Übergabe |

2005| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modell, mit dem der Subagent gestartet wurde; kann vom angeforderten Modell abweichen |2031| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modell, mit dem der Subagent gestartet ist und das vom angeforderten Modell abweichen kann |

2006| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Verwendete Modelle in Reihenfolge, wobei aufeinanderfolgende Wiederholungen zusammengefasst werden; nur gesetzt, wenn das Modell während des Laufs gewechselt wurde. Erfordert Claude Code v2.1.212 oder höher |2032| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Verwendete Modelle in Reihenfolge, wobei aufeinanderfolgende Wiederholungen zusammengefasst sind; nur gesetzt, wenn das Modell während des Laufs gewechselt wurde. Erfordert Claude Code v2.1.212 oder höher |

2007| `totalTokens` | number | `12450` | Token-Anzahl der letzten API-Anfrage des Subagenten: Eingabe-, Ausgabe- und Cache-Token zusammen. Dies ist keine Summe über den gesamten Lauf |2033| `totalTokens` | number | `12450` | Token-Anzahl aus der letzten API-Anfrage des Subagenten: Eingabe-, Ausgabe- und Cache-Token zusammen. Dies ist keine Gesamtzahl über den ganzen Lauf |

2008| `totalDurationMs` | number | `48211` | Echtzeitdauer des Subagenten-Laufs |2034| `totalDurationMs` | number | `48211` | Echtzeitdauer des Subagenten-Laufs |

2009| `totalToolUseCount` | number | `7` | Anzahl der Tool-Aufrufe, die der Subagent durchgeführt hat |2035| `totalToolUseCount` | number | `7` | Anzahl der Tool-Aufrufe, die der Subagent ausgeführt hat |

2010| `usage` | object | `{"input_tokens": 8320, ...}` | Aufschlüsselung der Token nach Typ für die letzte API-Anfrage: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |2036| `usage` | object | `{"input_tokens": 8320, ...}` | Aufschlüsselung der Token nach Typ für die letzte API-Anfrage: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

2011 2037 

2012Ab Claude Code v2.1.271 liefert ein Subagent, der mit dem Tool [`SubagentHandback`](/docs/de/tools-reference) läuft, das Claude Code im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) bereitstellt, seinen Bericht über dieses Tool, statt ihn als Text zurückzugeben. Das Feld `content` seines `completed`-Ergebnisses enthält dann einen kurzen Hinweis auf diese Übergabe statt des Berichts selbst. Um den Bericht zu lesen, lassen Sie einen `PreToolUse`- oder `PostToolUse`-Hook auf `SubagentHandback` abgleichen und lesen `tool_input.message`.2038Ab Claude Code v2.1.271 übermittelt ein Subagent, der mit dem Tool [`SubagentHandback`](/docs/de/tools-reference) läuft, das Claude Code im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) bereitstellt, seinen Bericht über dieses Tool, statt ihn als Text zurückzugeben. Das Feld `content` seines `completed`-Ergebnisses enthält dann einen kurzen Hinweis auf diese Übergabe statt des Berichts selbst. Um den Bericht zu lesen, matchen Sie einen `PreToolUse`- oder `PostToolUse`-Hook auf `SubagentHandback` und lesen `tool_input.message`.

2013 2039 

2014Bei Hintergrund-Subagenten kehrt das Tool zurück, wenn die Aufgabe in den Hintergrund wechselt, daher enthält `tool_response` keine Nutzungsfelder: Ein Start im Hintergrund kehrt sofort zurück, und eine Vordergrundaufgabe, die Claude Code während des Laufs in den Hintergrund verschiebt, kehrt bei diesem Übergang zurück. Die Antwort enthält `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` und `resolvedModel`.2040Bei Subagenten im Hintergrund kehrt das Tool zurück, wenn die Aufgabe in den Hintergrund wechselt, daher enthält `tool_response` keine Nutzungsfelder: Ein Start im Hintergrund kehrt sofort zurück, und eine Vordergrundaufgabe, die Claude Code während des Laufs in den Hintergrund verschiebt, kehrt bei diesem Übergang zurück. Die Antwort enthält `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` und `resolvedModel`.

2015 2041 

2016Bei einer `completed`-Antwort nennt `resolvedModel` das Modell, mit dem der Subagent gestartet wurde. Es kann vom Wert `model` in `tool_input` abweichen, etwa wenn `availableModels` oder eine andere Überschreibung greift. Bei einer `async_launched`-Antwort nennt `resolvedModel` das Modell, das beim Wechsel des Agenten in den Hintergrund verwendet wurde, sodass ein Modellwechsel vor dem Verschieben in den Hintergrund dort berücksichtigt wird. `modelsUsed` und das Verhalten von `resolvedModel` zum Zeitpunkt des Verschiebens in den Hintergrund erfordern Claude Code v2.1.212 oder höher.2042Bei einer `completed`-Antwort nennt `resolvedModel` das Modell, mit dem der Subagent gestartet ist, das vom Wert `model` in `tool_input` abweichen kann, etwa wenn `availableModels` oder eine andere Überschreibung greift. Bei einer `async_launched`-Antwort nennt `resolvedModel` das Modell, das verwendet wurde, als der Agent in den Hintergrund wechselte, sodass sich ein Wechsel vor diesem Zeitpunkt dort widerspiegelt. `modelsUsed` und das Verhalten von `resolvedModel` zum Zeitpunkt des Wechsels in den Hintergrund erfordern Claude Code v2.1.212 oder höher.

2017 2043 

2018<a id="askuserquestion" />2044<a id="askuserquestion" />

2019 2045 


2021 AskUserQuestion2047 AskUserQuestion

2022</h5>2048</h5>

2023 2049 

2024Stellt dem Benutzer ein bis vier Multiple-Choice-Fragen.2050Stellt dem Benutzer eine bis vier Multiple-Choice-Fragen.

2025 2051 

2026| Feld | Typ | Beispiel | Beschreibung |2052| Feld | Typ | Beispiel | Beschreibung |

2027| :- | :- | :- | :- |2053| :- | :- | :- | :- |

2028| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Zu stellende Fragen, jeweils mit einem `question`-String, einem kurzen `header`, einem `options`-Array und einem optionalen `multiSelect`-Flag |2054| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Zu stellende Fragen, jeweils mit einem `question`-String, einem kurzen `header`, einem `options`-Array und einem optionalen `multiSelect`-Flag |

2029| `answers` | object | `{"Which framework?": "React"}` | Optional. Ordnet den Fragetext der Bezeichnung der gewählten Option zu. Bei Mehrfachauswahl werden die Bezeichnungen durch Kommas verbunden. Claude setzt dieses Feld nicht; liefern Sie es über `updatedInput`, um programmatisch zu antworten |2055| `answers` | object | `{"Which framework?": "React"}` | Optional. Ordnet Fragetexte der Bezeichnung der gewählten Option zu. Antworten bei Mehrfachauswahl verbinden die Bezeichnungen mit Kommas. Claude setzt dieses Feld nicht; liefern Sie es über `updatedInput`, um programmatisch zu antworten |

2030 2056 

2031<h5 id="exitplanmode">2057<h5 id="exitplanmode">

2032 ExitPlanMode2058 ExitPlanMode

2033</h5>2059</h5>

2034 2060 

2035Präsentiert einen Plan und bittet den Benutzer um Genehmigung, bevor Claude den [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) verlässt. Claude schreibt den Plan vor dem Tool-Aufruf in eine Datei auf dem Datenträger, daher ist das wörtliche `tool_input` des Modells typischerweise leer. Claude Code fügt den Planinhalt und den Dateipfad ein, bevor die Eingabe an Hooks übergeben wird.2061Präsentiert einen Plan und bittet den Benutzer um Genehmigung, bevor Claude den [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) verlässt. Claude schreibt den Plan vor dem Aufruf des Tools in eine Datei auf der Festplatte, daher ist das wörtliche `tool_input` vom Modell typischerweise leer. Claude Code fügt den Planinhalt und den Dateipfad ein, bevor die Eingabe an Hooks übergeben wird.

2036 2062 

2037| Feld | Typ | Beispiel | Beschreibung |2063| Feld | Typ | Beispiel | Beschreibung |

2038| :- | :- | :- | :- |2064| :- | :- | :- | :- |

2039| `plan` | string | `"## Refactor auth\n1. Extract..."` | Planinhalt in Markdown. Aus der Plandatei auf dem Datenträger eingefügt |2065| `plan` | string | `"## Refactor auth\n1. Extract..."` | Planinhalt in Markdown. Aus der Plandatei auf der Festplatte eingefügt |

2040| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Pfad zur Plandatei. Eingefügt |2066| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Pfad zur Plandatei. Eingefügt |

2041| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Veraltet. Claude Code akzeptiert das Feld, ignoriert es aber. Vor v2.1.205 enthielt es Prompt-basierte Berechtigungen, die Claude zur Umsetzung des Plans angefordert hat |2067| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Veraltet. Claude Code akzeptiert das Feld, ignoriert es aber. Vor v2.1.205 enthielt es Prompt-basierte Berechtigungen, die Claude zur Umsetzung des Plans angefordert hat |

2042 2068 

2043In `PostToolUse` ist `tool_response` ein Objekt mit den Feldern `plan` und `filePath`, die den genehmigten Plan enthalten, sowie internen Status-Flags. Lesen Sie `tool_response.plan` für den Planinhalt, statt die Datei erneut vom Datenträger zu lesen.2069In `PostToolUse` ist `tool_response` ein Objekt mit den Feldern `plan` und `filePath`, die den genehmigten Plan enthalten, sowie internen Status-Flags. Lesen Sie `tool_response.plan` für den Planinhalt, statt die Datei erneut von der Festplatte zu lesen.

2044 2070 

2045<h4 id="pretooluse-decision-control">2071<h4 id="pretooluse-decision-control">

2046 PreToolUse-Entscheidungssteuerung2072 PreToolUse-Entscheidungssteuerung

2047</h4>2073</h4>

2048 2074 

2049`PreToolUse`-Hooks können steuern, ob ein Tool-Aufruf fortgesetzt wird. Anders als andere Hooks, die ein `decision`-Feld auf oberster Ebene verwenden, gibt PreToolUse seine Entscheidung innerhalb eines `hookSpecificOutput`-Objekts zurück. Das ermöglicht eine umfassendere Steuerung: vier Ergebnisse (erlauben, ablehnen, nachfragen oder zurückstellen) sowie die Möglichkeit, die Tool-Eingabe vor der Ausführung zu ändern.2075`PreToolUse`-Hooks können steuern, ob ein Tool-Aufruf fortgesetzt wird. Anders als andere Hooks, die ein `decision`-Feld auf oberster Ebene verwenden, gibt PreToolUse seine Entscheidung innerhalb eines `hookSpecificOutput`-Objekts zurück. Das ermöglicht eine umfassendere Steuerung: vier Ergebnisse (allow, deny, ask oder defer) sowie die Möglichkeit, die Tool-Eingabe vor der Ausführung zu ändern.

2050 2076 

2051| Feld | Beschreibung |2077| Feld | Beschreibung |

2052| :- | :- |2078| :- | :- |

2053| `permissionDecision` | `"allow"` überspringt die Berechtigungsabfrage, außer bei den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), bei [Lesezugriffen auf Netzwerkpfade](/docs/de/permissions#network-paths) sowie bei `AskUserQuestion` und `ExitPlanMode`, die [`updatedInput` in Kombination damit](#allow-with-updatedinput) benötigen. `"deny"` verhindert den Tool-Aufruf. `"ask"` bittet den Benutzer um Bestätigung. `"defer"` beendet sich geordnet, damit das Tool später fortgesetzt werden kann. [deny- und ask-Regeln](/docs/de/permissions#manage-permissions) werden unabhängig von der Rückgabe des Hooks weiterhin ausgewertet |2079| `permissionDecision` | `"allow"` überspringt die Berechtigungsabfrage, außer bei den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), bei [Lesezugriffen auf Netzwerkpfade](/docs/de/permissions#network-paths) sowie bei `AskUserQuestion` und `ExitPlanMode`, die [zusätzlich `updatedInput` benötigen](#allow-with-updatedinput). `"deny"` verhindert den Tool-Aufruf. `"ask"` bittet den Benutzer um Bestätigung. `"defer"` beendet den Lauf geordnet, damit das Tool später fortgesetzt werden kann. [deny- und ask-Regeln](/docs/de/permissions#manage-permissions) werden unabhängig davon ausgewertet, was der Hook zurückgibt |

2054| `permissionDecisionReason` | Bei `"ask"` wird der Grund dem Benutzer in der Berechtigungsabfrage angezeigt. Wenn Claude Code in einem `-p`-Lauf, in dem niemand diese Abfrage beantworten kann, [den Aufruf ablehnt](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs), liest Claude den Grund stattdessen im Tool-Ergebnis. Bei `"deny"` wird er Claude angezeigt. Bei `"allow"` und `"defer"` wird er nur in das [Debug-Log](#debug-hooks) geschrieben |2080| `permissionDecisionReason` | Bei `"ask"` wird es dem Benutzer in der Berechtigungsabfrage angezeigt. Wenn Claude Code in einem `-p`-Lauf, in dem niemand die Abfrage beantworten kann, [den Aufruf ablehnt](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs), liest Claude den Grund stattdessen im Tool-Ergebnis. Bei `"deny"` wird es Claude angezeigt. Bei `"allow"` und `"defer"` wird es nur in das [Debug-Log](#debug-hooks) geschrieben |

2055| `updatedInput` | Ändert die Eingabeparameter des Tools vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, geben Sie daher unveränderte Felder zusammen mit geänderten an. Claude Code wertet Berechtigungsregeln und die [Eignung eines Bash-Befehls für die automatische Ausführung im Hintergrund](/docs/de/tools-reference#foreground-commands-that-move-to-the-background) anhand der Eingabe aus, die Ihr Hook zurückgibt, nicht anhand der Eingabe, die Claude gesendet hat. Kombinieren Sie es mit `"allow"` zur automatischen Genehmigung oder mit `"ask"`, um dem Benutzer die geänderte Eingabe anzuzeigen. Bei `"defer"` wird es ignoriert |2081| `updatedInput` | Ändert die Eingabeparameter des Tools vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, fügen Sie daher unveränderte Felder zusammen mit den geänderten ein. Claude Code wertet Berechtigungsregeln und die [Eignung eines Bash-Befehls für den automatischen Wechsel in den Hintergrund](/docs/de/tools-reference#foreground-commands-that-move-to-the-background) anhand der Eingabe aus, die Ihr Hook zurückgibt, nicht anhand der Eingabe, die Claude gesendet hat. Kombinieren Sie es mit `"allow"` für eine automatische Genehmigung oder mit `"ask"`, um dem Benutzer die geänderte Eingabe anzuzeigen. Bei `"defer"` wird es ignoriert |

2056| `additionalContext` | String, der zusammen mit dem Tool-Ergebnis dem Kontext von Claude hinzugefügt wird. Wird ignoriert, wenn `permissionDecision` den Wert `"defer"` hat. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |2082| `additionalContext` | String, der zusammen mit dem Tool-Ergebnis zum Kontext von Claude hinzugefügt wird. Wird ignoriert, wenn `permissionDecision` den Wert `"defer"` hat. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |

2057 2083 

2058Wenn mehrere PreToolUse-Hooks unterschiedliche Entscheidungen zurückgeben, gilt die Rangfolge `deny` > `defer` > `ask` > `allow`.2084Wenn mehrere PreToolUse-Hooks unterschiedliche Entscheidungen zurückgeben, gilt die Rangfolge `deny` > `defer` > `ask` > `allow`.

2059 2085 

2060Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `"deny"`: Claude sieht die stderr-Meldung als Ablehnungsgrund.2086Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso behandelt wie `"deny"`: Claude sieht die stderr-Meldung als Ablehnungsgrund.

2061 2087 

2062Wenn ein Hook `"ask"` zurückgibt, enthält die dem Benutzer angezeigte Berechtigungsabfrage eine Kennzeichnung, woher der Hook stammt: `[settings]` für einen Hook aus einer beliebigen Einstellungsdatei oder aus Agent-Frontmatter, `[plugin:<name>]` für den Hook eines Plugins oder `[skill]` für einen Hook aus Skill-Frontmatter. So können Benutzer nachvollziehen, welche Konfigurationsquelle die Bestätigung anfordert.2088Wenn ein Hook `"ask"` zurückgibt, enthält die dem Benutzer angezeigte Berechtigungsabfrage eine Bezeichnung, die angibt, woher der Hook stammt: `[settings]` für einen Hook aus einer beliebigen Einstellungsdatei oder aus Agenten-Frontmatter, `[plugin:<name>]` für den Hook eines Plugins oder `[skill]` für einen Hook aus Skill-Frontmatter. So können Benutzer nachvollziehen, welche Konfigurationsquelle die Bestätigung anfordert.

2063 2089 

2064Das `"ask"` eines Hooks erzwingt auch im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) eine Berechtigungsabfrage: Der Klassifikator kann den Tool-Aufruf weiterhin ablehnen, ihn aber nicht stillschweigend genehmigen. Vor v2.1.211 konnte der Klassifikator einen Bash-Befehl, der außerhalb der [Sandbox](/docs/de/sandboxing) lief, genehmigen, ohne die vom Hook angeforderte Abfrage anzuzeigen; der Klassifikator wandte auf diesen Befehl dennoch seine eigenen Sicherheitsregeln an, und ein `"deny"` eines Hooks wurde immer berücksichtigt.2090Ein `"ask"` eines Hooks erzwingt auch im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) eine Berechtigungsabfrage: Der Klassifikator kann den Tool-Aufruf weiterhin ablehnen, ihn aber nicht stillschweigend genehmigen. Vor v2.1.211 konnte der Klassifikator einen Bash-Befehl, der außerhalb der [Sandbox](/docs/de/sandboxing) lief, genehmigen, ohne die vom Hook angeforderte Abfrage anzuzeigen; der Klassifikator wandte auf diesen Befehl dennoch seine eigenen Sicherheitsregeln an, und ein `"deny"` eines Hooks wurde immer beachtet.

2065 2091 

2066```json theme={null}2092```json theme={null}

2067{2093{


2078```2104```

2079 2105 

2080<Note>2106<Note>

2081 PreToolUse verwendete früher die Felder `decision` und `reason` auf oberster Ebene, diese sind für dieses Ereignis jedoch veraltet. Verwenden Sie stattdessen `hookSpecificOutput.permissionDecision` und `hookSpecificOutput.permissionDecisionReason`. Die veralteten Werte `"approve"` und `"block"` entsprechen `"allow"` bzw. `"deny"`. Andere Ereignisse wie PostToolUse und Stop verwenden weiterhin `decision` und `reason` auf oberster Ebene als aktuelles Format.2107 PreToolUse verwendete früher die Felder `decision` und `reason` auf oberster Ebene, diese sind für dieses Event jedoch veraltet. Verwenden Sie stattdessen `hookSpecificOutput.permissionDecision` und `hookSpecificOutput.permissionDecisionReason`. Die veralteten Werte `"approve"` und `"block"` entsprechen `"allow"` bzw. `"deny"`. Andere Events wie PostToolUse und Stop verwenden weiterhin `decision` und `reason` auf oberster Ebene als aktuelles Format.

2082</Note>2108</Note>

2083 2109 

2084<h4 id="allow-with-updatedinput">2110<h4 id="allow-with-updatedinput">


2090Ein `PreToolUse`-Hook erfüllt diese Anforderung, wenn er Folgendes tut:2116Ein `PreToolUse`-Hook erfüllt diese Anforderung, wenn er Folgendes tut:

2091 2117 

20921. Er liest die Eingabe des Tools von stdin21181. Er liest die Eingabe des Tools von stdin

20932. Er sammelt die Antwort über Ihre eigene Oberfläche21192. Er sammelt die Antwort über Ihre eigene Benutzeroberfläche

20943. Er gibt `permissionDecision: "allow"` zusammen mit `updatedInput` zurück, das die Antwort enthält, sodass das Tool ohne Abfrage ausgeführt wird21203. Er gibt `permissionDecision: "allow"` zusammen mit einem `updatedInput` zurück, das die Antwort enthält, sodass das Tool ohne Abfrage ausgeführt wird

2095 2121 

2096Die Rückgabe von `"allow"` allein reicht für diese Tools nicht aus.2122Die alleinige Rückgabe von `"allow"` reicht für diese Tools nicht aus.

2097 2123 

2098Geben Sie bei `AskUserQuestion` das ursprüngliche `questions`-Array zurück und fügen Sie ein [`answers`](#askuserquestion)-Objekt hinzu, das den Text jeder Frage der gewählten Antwort zuordnet. Diese Ausgabe beantwortet eine Frage mit `React`:2124Geben Sie bei `AskUserQuestion` das ursprüngliche `questions`-Array zurück und fügen Sie ein [`answers`](#askuserquestion)-Objekt hinzu, das den Text jeder Frage der gewählten Antwort zuordnet. Diese Ausgabe beantwortet eine Frage mit `React`:

2099 2125 


2117}2143}

2118```2144```

2119 2145 

2120Ein MCP-Tool, das sein Server mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) kennzeichnet, ist strenger: Ein Hook kann dessen Genehmigungsabfrage nicht mit `"allow"` überspringen, weder mit noch ohne `updatedInput`, weil Claude Code nicht bestätigen kann, dass der Hook die vom Tool benötigte Interaktion eingeholt hat.2146Ein MCP-Tool, das sein Server mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) kennzeichnet, ist strenger: Ein Hook kann dessen Genehmigungsabfrage nicht mit `"allow"` überspringen, weder mit noch ohne `updatedInput`, da Claude Code nicht bestätigen kann, dass der Hook die vom Tool benötigte Interaktion eingeholt hat.

2121 2147 

2122<h4 id="defer-a-tool-call-for-later">2148<h4 id="defer-a-tool-call-for-later">

2123 Einen Tool-Aufruf auf später zurückstellen2149 Einen Tool-Aufruf zurückstellen

2124</h4>2150</h4>

2125 2151 

2126`"defer"` ist für Integrationen gedacht, die `claude -p` als Unterprozess ausführen und dessen JSON-Ausgabe lesen, etwa eine Agent-SDK-App oder eine auf Claude Code aufbauende benutzerdefinierte Oberfläche. Damit kann der aufrufende Prozess Claude bei einem Tool-Aufruf anhalten, Eingaben über seine eigene Oberfläche sammeln und dort fortfahren, wo er aufgehört hat. Claude Code berücksichtigt diesen Wert nur im [nicht interaktiven Modus](/docs/de/headless) mit dem Flag `-p`. In interaktiven Sitzungen protokolliert es eine Warnung und ignoriert das Hook-Ergebnis.2152`"defer"` ist für Integrationen gedacht, die `claude -p` als Unterprozess ausführen und dessen JSON-Ausgabe lesen, etwa eine Agent SDK-App oder eine benutzerdefinierte Benutzeroberfläche, die auf Claude Code aufbaut. Es ermöglicht dem aufrufenden Prozess, Claude bei einem Tool-Aufruf anzuhalten, Eingaben über die eigene Oberfläche zu sammeln und an derselben Stelle fortzufahren. Claude Code berücksichtigt diesen Wert nur im [nicht interaktiven Modus](/docs/de/headless) mit dem Flag `-p`. In interaktiven Sitzungen protokolliert es eine Warnung und ignoriert das Hook-Ergebnis.

2127 2153 

2128Das Tool `AskUserQuestion` ist der typische Fall: Claude möchte dem Benutzer eine Frage stellen, aber es gibt kein Terminal, in dem geantwortet werden kann. Ein `-p`-Lauf bietet `AskUserQuestion` nur an, wenn er einen [Berechtigungs-Host](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs) hat, etwa ein MCP-Tool, das Sie mit `--permission-prompt-tool` übergeben. Starten Sie den Lauf daher mit einem solchen. Der Ablauf funktioniert so:2154Das Tool `AskUserQuestion` ist der typische Fall: Claude möchte dem Benutzer eine Frage stellen, aber es gibt kein Terminal, in dem geantwortet werden könnte. Ein `-p`-Lauf bietet `AskUserQuestion` nur an, wenn er einen [Berechtigungs-Host](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs) hat, etwa ein MCP-Tool, das Sie mit `--permission-prompt-tool` übergeben. Starten Sie den Lauf daher mit einem solchen. Der Ablauf funktioniert so:

2129 2155 

21301. Claude ruft `AskUserQuestion` auf. Der `PreToolUse`-Hook wird ausgelöst.21561. Claude ruft `AskUserQuestion` auf. Der `PreToolUse`-Hook wird ausgelöst.

21312. Der Hook gibt `permissionDecision: "defer"` zurück. Das Tool wird nicht ausgeführt. Der Prozess wird mit `stop_reason: "tool_deferred"` beendet, und der ausstehende Tool-Aufruf bleibt im Transkript erhalten.21572. Der Hook gibt `permissionDecision: "defer"` zurück. Das Tool wird nicht ausgeführt. Der Prozess beendet sich mit `stop_reason: "tool_deferred"`, und der ausstehende Tool-Aufruf bleibt im Transkript erhalten.

21323. Der aufrufende Prozess liest `deferred_tool_use` aus dem SDK-Ergebnis, zeigt die Frage in seiner eigenen Oberfläche an und wartet auf eine Antwort.21583. Der aufrufende Prozess liest `deferred_tool_use` aus dem SDK-Ergebnis, zeigt die Frage in seiner eigenen Benutzeroberfläche an und wartet auf eine Antwort.

21334. Der aufrufende Prozess führt `claude -p --resume <session-id>` mit demselben Berechtigungs-Host aus. Derselbe Tool-Aufruf löst `PreToolUse` erneut aus.21594. Der aufrufende Prozess führt `claude -p --resume <session-id>` mit demselben Berechtigungs-Host aus. Derselbe Tool-Aufruf löst `PreToolUse` erneut aus.

21345. Der Hook gibt `permissionDecision: "allow"` mit der Antwort in `updatedInput` zurück. Das Tool wird ausgeführt, und Claude fährt fort.21605. Der Hook gibt `permissionDecision: "allow"` mit der Antwort in `updatedInput` zurück. Das Tool wird ausgeführt, und Claude fährt fort.

2135 2161 

2136Das Feld `deferred_tool_use` enthält `id`, `name` und `input` des Tools. `input` enthält die Parameter, die Claude für den Tool-Aufruf generiert hat, erfasst vor der Ausführung:2162Das Feld `deferred_tool_use` enthält `id`, `name` und `input` des Tools. `input` sind die Parameter, die Claude für den Tool-Aufruf generiert hat, erfasst vor der Ausführung:

2137 2163 

2138```json theme={null}2164```json theme={null}

2139{2165{


2149}2175}

2150```2176```

2151 2177 

2152Es gibt keinen Timeout und kein Limit für Wiederholungsversuche. Die Sitzung bleibt auf dem Datenträger, bis Sie sie fortsetzen, vorbehaltlich der Aufbewahrungsbereinigung durch [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays), die Sitzungsdateien standardmäßig nach 30 Tagen löscht, gemäß den [Regeln der Aufbewahrungsbereinigung](/docs/de/claude-directory#cleaned-up-automatically). Wenn die Antwort beim Fortsetzen noch nicht bereit ist, kann der Hook erneut `"defer"` zurückgeben, und der Prozess wird auf dieselbe Weise beendet. Der aufrufende Prozess bestimmt, wann die Schleife endet, indem der Hook schließlich `"allow"` oder `"deny"` zurückgibt.2178Es gibt weder einen Timeout noch ein Limit für Wiederholungsversuche. Die Sitzung bleibt auf der Festplatte, bis Sie sie fortsetzen, vorbehaltlich der Aufbewahrungsbereinigung durch [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays), die Sitzungsdateien standardmäßig nach 30 Tagen löscht, gemäß den [Regeln der Aufbewahrungsbereinigung](/docs/de/claude-directory#cleaned-up-automatically). Wenn die Antwort beim Fortsetzen noch nicht bereit ist, kann der Hook erneut `"defer"` zurückgeben, und der Prozess beendet sich auf dieselbe Weise. Der aufrufende Prozess bestimmt, wann die Schleife endet, indem er schließlich `"allow"` oder `"deny"` aus dem Hook zurückgibt.

2153 2179 

2154`"defer"` funktioniert nur, wenn Claude im Turn einen einzelnen Tool-Aufruf macht. Wenn Claude mehrere Tool-Aufrufe gleichzeitig macht, wird `"defer"` mit einer Warnung ignoriert, und das Tool durchläuft den normalen Berechtigungsablauf. Die Einschränkung besteht, weil beim Fortsetzen nur ein Tool erneut ausgeführt werden kann: Es gibt keine Möglichkeit, einen Aufruf aus einem Stapel zurückzustellen, ohne die anderen ungelöst zu lassen.2180`"defer"` funktioniert nur, wenn Claude im Turn einen einzigen Tool-Aufruf ausführt. Wenn Claude mehrere Tool-Aufrufe gleichzeitig ausführt, wird `"defer"` mit einer Warnung ignoriert, und das Tool durchläuft den normalen Berechtigungsablauf. Diese Einschränkung besteht, weil beim Fortsetzen nur ein Tool erneut ausgeführt werden kann: Es gibt keine Möglichkeit, einen Aufruf aus einem Stapel zurückzustellen, ohne die anderen ungelöst zu lassen.

2155 2181 

2156Wenn das zurückgestellte Tool beim Fortsetzen nicht mehr verfügbar ist, wird der Prozess mit `stop_reason: "tool_deferred_unavailable"` und `is_error: true` beendet, bevor der Hook ausgelöst wird. Das passiert, wenn ein MCP-Server, der das Tool bereitgestellt hat, für die fortgesetzte Sitzung nicht verbunden ist. Die `deferred_tool_use`-Payload ist weiterhin enthalten, sodass Sie erkennen können, welches Tool fehlt.2182Wenn das zurückgestellte Tool beim Fortsetzen nicht mehr verfügbar ist, beendet sich der Prozess mit `stop_reason: "tool_deferred_unavailable"` und `is_error: true`, bevor der Hook ausgelöst wird. Das passiert, wenn ein MCP-Server, der das Tool bereitgestellt hat, für die fortgesetzte Sitzung nicht verbunden ist. Die `deferred_tool_use`-Payload ist dennoch enthalten, sodass Sie erkennen können, welches Tool fehlt.

2157 2183 

2158<Note>2184<Note>

2159 Um eine zurückgestellte Sitzung im Plan-Modus fortzusetzen, übergeben Sie [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags) zusammen mit `--resume`, damit Claude Code den Plan zur Genehmigung vorlegen kann. Die übrigen Bedingungen finden Sie unter [Im Plan-Modus mit `-p` fortsetzen](/docs/de/sessions#resume-in-plan-mode-with-p). Erfordert Claude Code v2.1.246 oder höher.2185 Um eine zurückgestellte Sitzung im Plan-Modus fortzusetzen, übergeben Sie [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags) zusammen mit `--resume`, damit Claude Code den Plan zur Genehmigung vorlegen kann. Die weiteren Bedingungen finden Sie unter [Im Plan-Modus mit `-p` fortsetzen](/docs/de/sessions#resume-in-plan-mode-with-p). Erfordert Claude Code v2.1.246 oder höher.

2160 2186 

2161 Wenn Sie mit `-p` fortsetzen, stellt Claude Code keinen anderen gespeicherten Berechtigungsmodus wieder her. Es startet den Lauf in dem Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf starten würde. Übergeben Sie daher `--permission-mode` oder `--dangerously-skip-permissions` erneut, falls die zurückgestellte Sitzung eines davon verwendet hat. Wenn Sie mit `claude --resume <session-id>` ohne `-p` fortsetzen, stellt Claude Code den gespeicherten Berechtigungsmodus wieder her, mit den unter [Berechtigungsmodus beim Fortsetzen](/docs/de/sessions#permission-mode-on-resume) aufgeführten Ausnahmen.2187 Wenn Sie mit `-p` fortsetzen, stellt Claude Code keinen anderen gespeicherten Berechtigungsmodus wieder her. Es startet den Lauf in dem Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf starten würde. Übergeben Sie daher `--permission-mode` oder `--dangerously-skip-permissions` erneut, falls die zurückgestellte Sitzung eines davon verwendet hat. Wenn Sie mit `claude --resume <session-id>` ohne `-p` fortsetzen, stellt Claude Code den gespeicherten Berechtigungsmodus wieder her, mit den unter [Berechtigungsmodus beim Fortsetzen](/docs/de/sessions#permission-mode-on-resume) aufgeführten Ausnahmen.

2162</Note>2188</Note>


2165 PermissionRequest2191 PermissionRequest

2166</h3>2192</h3>

2167 2193 

2168Wird ausgeführt, wenn Claude Code Sie gleich um Erlaubnis zur Verwendung eines Tools bitten wird. In Sitzungen, die keine Abfrage anzeigen können, etwa bei Hintergrund-Subagenten im [nicht interaktiven Modus](/docs/de/headless), führt Claude Code diese Hooks trotzdem aus, und wenn kein Hook eine Entscheidung zurückgibt, lehnt es den Tool-Aufruf ab. Bei einem Aufruf, der ein `--permission-prompt-tool` oder den [`canUseTool`-Callback](/docs/de/agent-sdk/permissions) des Agent SDK erreicht, laufen die Hooks parallel zu Ihrem Host, und es gilt die Entscheidung, die zuerst getroffen wird.2194Wird ausgeführt, wenn Claude Code Sie gleich um Erlaubnis zur Verwendung eines Tools bitten wird. In Sitzungen, die keine Abfrage anzeigen können, etwa Subagenten im Hintergrund im [nicht interaktiven Modus](/docs/de/headless), führt Claude Code diese Hooks dennoch aus, und wenn kein Hook eine Entscheidung zurückgibt, lehnt es den Tool-Aufruf ab. Bei einem Aufruf, der ein `--permission-prompt-tool` oder den [`canUseTool`-Callback](/docs/de/agent-sdk/permissions) des Agent SDK erreicht, laufen die Hooks parallel zu Ihrem Host, und die Entscheidung, die zuerst getroffen wird, gilt.

2169Verwenden Sie die [PermissionRequest-Entscheidungssteuerung](#permissionrequest-decision-control), um im Namen des Benutzers zu erlauben oder abzulehnen.2195Verwenden Sie die [PermissionRequest-Entscheidungssteuerung](#permissionrequest-decision-control), um im Namen des Benutzers zu erlauben oder abzulehnen.

2170 2196 

2171Verwenden Sie dieses Ereignis, wenn Sie in dem Moment ein Signal benötigen, in dem Claude um Erlaubnis zur Verwendung eines Tools bittet. Claude Code führt einen [Notification](#notification)-Hook mit dem Typ `permission_prompt` erst aus, nachdem die Abfrage etwa sechs Sekunden gewartet hat.2197Verwenden Sie dieses Event, wenn Sie in dem Moment ein Signal benötigen, in dem Claude um Erlaubnis zur Verwendung eines Tools bittet. Claude Code führt einen [Notification](#notification)-Hook mit dem Typ `permission_prompt` erst aus, nachdem die Abfrage etwa sechs Sekunden gewartet hat.

2172 2198 

2173Claude Code führt PermissionRequest-Hooks nicht für die [Netzwerkanfrage](/docs/de/sandboxing#network-isolation) eines in einer Sandbox ausgeführten Befehls aus. Um für diese Abfrage ein Signal zu erhalten, verwenden Sie den Benachrichtigungstyp `permission_prompt`.2199Claude Code führt keine PermissionRequest-Hooks für die [Netzwerkanfrage](/docs/de/sandboxing#network-isolation) eines in einer Sandbox ausgeführten Befehls aus. Um für diese Abfrage ein Signal zu erhalten, verwenden Sie den Benachrichtigungstyp `permission_prompt`.

2174 2200 

2175Gleicht auf den Tool-Namen ab, mit denselben Werten wie PreToolUse.2201Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.

2176 2202 

2177<h4 id="permissionrequest-input">2203<h4 id="permissionrequest-input">

2178 PermissionRequest-Eingabe2204 PermissionRequest-Eingabe


2180 2206 

2181PermissionRequest-Hooks erhalten wie PreToolUse-Hooks die Felder `tool_name` und `tool_input`, jedoch ohne `tool_use_id`. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input). Ein optionales Array `permission_suggestions` enthält die [Berechtigungsaktualisierungen](#permission-update-entries), die Claude Code für diese Anfrage vorschlägt, etwa das Hinzufügen einer allow-Regel oder das Ändern des Berechtigungsmodus.2207PermissionRequest-Hooks erhalten wie PreToolUse-Hooks die Felder `tool_name` und `tool_input`, jedoch ohne `tool_use_id`. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input). Ein optionales Array `permission_suggestions` enthält die [Berechtigungsaktualisierungen](#permission-update-entries), die Claude Code für diese Anfrage vorschlägt, etwa das Hinzufügen einer allow-Regel oder das Ändern des Berechtigungsmodus.

2182 2208 

2183Das Array `permission_suggestions` ist keine exakte Liste der Optionen, die Sie sehen, da jeder Berechtigungsdialog seine eigenen Optionen erstellt. Einige Dialoge, etwa der für Dateibearbeitungen, lesen das Array überhaupt nicht und leiten ihre Optionen aus der Anfrage selbst ab. Ein Dialog, der es liest, kann trotzdem eine Option zurückhalten, deren Vorschlag im Array verbleibt, zum Beispiel wenn [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) Optionen zum Speichern von Regeln ausblendet. Er kann auch Optionen anbieten, für die es keinen Vorschlagseintrag gibt, etwa [**Yes, and switch to auto mode**](/docs/de/permission-modes#switch-permission-modes), das den Berechtigungsmodus direkt ändert statt über eine Berechtigungsaktualisierung.2209Das Array `permission_suggestions` ist keine exakte Liste der Optionen, die Sie sehen, da jeder Berechtigungsdialog seine eigenen Optionen erstellt. Manche Dialoge, etwa der für Dateibearbeitungen, lesen das Array gar nicht und leiten ihre Optionen aus der Anfrage selbst ab. Ein Dialog, der es liest, kann dennoch eine Option zurückhalten, deren Vorschlag im Array verbleibt, beispielsweise wenn [`allowManagedPermissionRulesOnly`](/docs/de/settings-reference#allowmanagedpermissionrulesonly) Optionen zum Speichern von Regeln ausblendet. Er kann auch Optionen anbieten, für die es keinen Vorschlagseintrag gibt, etwa [**Yes, and switch to auto mode**](/docs/de/permission-modes#switch-permission-modes), das den Berechtigungsmodus direkt ändert statt über eine Berechtigungsaktualisierung.

2184 2210 

2185PreToolUse-Hooks laufen vor jedem Tool-Aufruf, unabhängig davon, ob er eine Berechtigung benötigt. PermissionRequest-Hooks laufen nur, wenn Claude Code Sie gleich um Erlaubnis bitten wird oder wenn es einen Aufruf, der keine Abfrage anzeigen kann, andernfalls automatisch ablehnen würde. Keines der beiden Ereignisse wird für [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) ausgelöst.2211PreToolUse-Hooks laufen vor jedem Tool-Aufruf, unabhängig davon, ob er eine Berechtigung benötigt. PermissionRequest-Hooks laufen nur, wenn Claude Code Sie gleich um eine Berechtigung bitten würde oder andernfalls einen Aufruf, der keine Abfrage anzeigen kann, automatisch ablehnen würde. Keines der beiden Ereignisse wird für [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) ausgelöst.

2186 2212 

2187```json theme={null}2213```json theme={null}

2188{2214{


2215 2241 

2216| Feld | Beschreibung |2242| Feld | Beschreibung |

2217| :- | :- |2243| :- | :- |

2218| `behavior` | `"allow"` erteilt die Berechtigung, `"deny"` verweigert sie. [deny- und ask-Regeln](/docs/de/permissions#manage-permissions) werden weiterhin ausgewertet, sodass ein Hook, der `"allow"` zurückgibt, eine passende deny-Regel nicht überschreibt |2244| `behavior` | `"allow"` erteilt die Berechtigung, `"deny"` lehnt sie ab. [deny- und ask-Regeln](/docs/de/permissions#manage-permissions) werden weiterhin ausgewertet, sodass ein Hook, der `"allow"` zurückgibt, eine passende deny-Regel nicht überschreibt |

2219| `updatedInput` | Nur für `"allow"`: ändert die Eingabeparameter des Tools vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, geben Sie daher unveränderte Felder zusammen mit geänderten an. Die geänderte Eingabe wird erneut gegen deny- und ask-Regeln ausgewertet |2245| `updatedInput` | Nur für `"allow"`: Ändert die Eingabeparameter des Tools vor der Ausführung. Ersetzt das gesamte Eingabeobjekt, daher müssen unveränderte Felder zusammen mit den geänderten enthalten sein. Die geänderte Eingabe wird erneut gegen deny- und ask-Regeln ausgewertet |

2220| `updatedPermissions` | Nur für `"allow"`: Array von [Einträgen für Berechtigungsaktualisierungen](#permission-update-entries), die angewendet werden sollen, etwa das Hinzufügen einer allow-Regel oder das Ändern des Berechtigungsmodus der Sitzung |2246| `updatedPermissions` | Nur für `"allow"`: Array von anzuwendenden [Einträgen zur Berechtigungsaktualisierung](#permission-update-entries), etwa zum Hinzufügen einer allow-Regel oder zum Ändern des Berechtigungsmodus der Sitzung |

2221| `message` | Nur für `"deny"`: teilt Claude mit, warum die Berechtigung verweigert wurde |2247| `message` | Nur für `"deny"`: Teilt Claude mit, warum die Berechtigung abgelehnt wurde |

2222| `interrupt` | Nur für `"deny"`: bei `true` wird Claude gestoppt |2248| `interrupt` | Nur für `"deny"`: Bei `true` wird Claude gestoppt |

2223 2249 

2224Ein Hook, der ohne `decision`-Objekt mit Exit-Code 2 endet, lässt den Berechtigungsablauf unverändert, und sein stderr wird verworfen. Um die Anfrage zu erlauben oder abzulehnen, geben Sie das `decision`-Objekt zurück.2250Ein Hook, der ohne `decision`-Objekt mit Exit-Code 2 beendet wird, lässt den Berechtigungsablauf unverändert, und seine stderr-Ausgabe wird verworfen. Um die Anfrage zu erlauben oder abzulehnen, geben Sie das `decision`-Objekt zurück.

2225 2251 

2226```json theme={null}2252```json theme={null}

2227{2253{


2238```2264```

2239 2265 

2240<h4 id="permission-update-entries">2266<h4 id="permission-update-entries">

2241 Einträge für Berechtigungsaktualisierungen2267 Einträge zur Berechtigungsaktualisierung

2242</h4>2268</h4>

2243 2269 

2244Das Ausgabefeld `updatedPermissions` und das [Eingabefeld `permission_suggestions`](#permissionrequest-input) verwenden beide dasselbe Array von Eintragsobjekten. Jeder Eintrag hat einen `type`, der seine übrigen Felder bestimmt, und eine `destination`, die steuert, wohin die Änderung geschrieben wird.2270Das Ausgabefeld `updatedPermissions` und das [Eingabefeld `permission_suggestions`](#permissionrequest-input) verwenden beide dasselbe Array von Eintragsobjekten. Jeder Eintrag hat einen `type`, der seine übrigen Felder bestimmt, und eine `destination`, die festlegt, wohin die Änderung geschrieben wird.

2245 2271 

2246| `type` | Felder | Wirkung |2272| `type` | Felder | Wirkung |

2247| :- | :- | :- |2273| :- | :- | :- |

2248| `addRules` | `rules`, `behavior`, `destination` | Fügt Berechtigungsregeln hinzu. `rules` ist ein Array von `{toolName, ruleContent?}`-Objekten. Lassen Sie `ruleContent` weg, um das gesamte Tool abzudecken. `behavior` ist `"allow"`, `"deny"` oder `"ask"` |2274| `addRules` | `rules`, `behavior`, `destination` | Fügt Berechtigungsregeln hinzu. `rules` ist ein Array von `{toolName, ruleContent?}`-Objekten. Lassen Sie `ruleContent` weg, um das gesamte Tool abzudecken. `behavior` ist `"allow"`, `"deny"` oder `"ask"` |

2249| `replaceRules` | `rules`, `behavior`, `destination` | Ersetzt alle Regeln des angegebenen `behavior` an der `destination` durch die angegebenen `rules` |2275| `replaceRules` | `rules`, `behavior`, `destination` | Ersetzt alle Regeln des angegebenen `behavior` an der `destination` durch die angegebenen `rules` |

2250| `removeRules` | `rules`, `behavior`, `destination` | Entfernt übereinstimmende Regeln des angegebenen `behavior` |2276| `removeRules` | `rules`, `behavior`, `destination` | Entfernt passende Regeln des angegebenen `behavior` |

2251| `setMode` | `mode`, `destination` | Ändert den Berechtigungsmodus. Gültige Modi sind `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` und `manual` als Alias für `default` |2277| `setMode` | `mode`, `destination` | Ändert den Berechtigungsmodus. Gültige Modi sind `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` sowie `manual` als Alias für `default` |

2252| `addDirectories` | `directories`, `destination` | Fügt Arbeitsverzeichnisse hinzu. `directories` ist ein Array von Pfad-Strings |2278| `addDirectories` | `directories`, `destination` | Fügt Arbeitsverzeichnisse hinzu. `directories` ist ein Array von Pfad-Strings |

2253| `removeDirectories` | `directories`, `destination` | Entfernt Arbeitsverzeichnisse |2279| `removeDirectories` | `directories`, `destination` | Entfernt Arbeitsverzeichnisse |

2254 2280 

2255<Note>2281<Note>

2256 `setMode` mit `bypassPermissions` wird nur wirksam, wenn Sie die Sitzung mit bereits verfügbarem Bypass-Modus gestartet haben: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in [Benutzereinstellungen, `--settings` oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode). Andernfalls hat die Aktualisierung keine Wirkung. Die Aktualisierung hat ebenfalls keine Wirkung, wenn [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) den Modus deaktiviert oder wenn die Sitzung im [eingeschränkten Modus](/docs/de/cli-reference#cli-flags) startet.2282 `setMode` mit `bypassPermissions` wirkt nur, wenn Sie die Sitzung mit bereits verfügbarem Bypass-Modus gestartet haben: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oder `permissions.defaultMode: "bypassPermissions"` in [Benutzereinstellungen, `--settings` oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode). Andernfalls hat die Aktualisierung keine Wirkung. Die Aktualisierung hat ebenfalls keine Wirkung, wenn [`permissions.disableBypassPermissionsMode`](/docs/de/permissions#managed-settings) den Modus deaktiviert oder die Sitzung im [eingeschränkten Modus](/docs/de/cli-reference#cli-flags) startet.

2257 2283 

2258 `bypassPermissions` wird unabhängig von `destination` nie als `defaultMode` gespeichert.2284 `bypassPermissions` wird unabhängig von `destination` nie als `defaultMode` gespeichert.

2259</Note>2285</Note>

2260 2286 

2261Das Feld `destination` jedes Eintrags bestimmt, ob die Änderung nur im Arbeitsspeicher bleibt oder dauerhaft in eine Einstellungsdatei geschrieben wird.2287Das Feld `destination` jedes Eintrags bestimmt, ob die Änderung im Arbeitsspeicher bleibt oder in einer Einstellungsdatei gespeichert wird.

2262 2288 

2263| `destination` | Schreibt in |2289| `destination` | Schreibt nach |

2264| :- | :- |2290| :- | :- |

2265| `session` | nur im Arbeitsspeicher, wird beim Ende der Sitzung verworfen |2291| `session` | nur im Arbeitsspeicher, wird beim Ende der Sitzung verworfen |

2266| `localSettings` | `.claude/settings.local.json` |2292| `localSettings` | `.claude/settings.local.json` |


2273 PostToolUse2299 PostToolUse

2274</h3>2300</h3>

2275 2301 

2276Wird unmittelbar ausgeführt, nachdem ein Tool erfolgreich abgeschlossen wurde.2302Läuft unmittelbar, nachdem ein Tool erfolgreich abgeschlossen wurde.

2277 2303 

2278Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.2304Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.

2279 2305 

2280Matchen Sie breiter, wenn der Tool-Name nicht der richtige Filter ist:2306Matchen Sie breiter, wenn der Tool-Name nicht der richtige Filter ist:

2281 2307 

2282* Um einen Hook nach jedem erfolgreich abgeschlossenen Tool auszuführen, lassen Sie den `matcher` weg oder setzen Sie ihn auf `"*"`. Ihr Hook kann dann selbst ermitteln, was sich geändert hat, zum Beispiel durch Ausführen von `git status --porcelain`, das auch nicht verfolgte Dateien auflistet, die `git diff` übersieht. Für fehlgeschlagene Tool-Aufrufe fügen Sie denselben Hook unter [PostToolUseFailure](#posttoolusefailure) hinzu.2308* Um einen Hook nach jedem erfolgreich abgeschlossenen Tool auszuführen, lassen Sie den `matcher` weg oder setzen Sie ihn auf `"*"`. Ihr Hook kann dann selbst ermitteln, was sich geändert hat, etwa durch Ausführen von `git status --porcelain`, das auch nicht verfolgte Dateien auflistet, die `git diff` übersieht. Für fehlgeschlagene Tool-Aufrufe fügen Sie denselben Hook unter [PostToolUseFailure](#posttoolusefailure) hinzu.

2283* Um einen Hook auszuführen, wenn sich eine bestimmte Datei auf der Festplatte ändert, unabhängig davon, was sie geschrieben hat, verwenden Sie [FileChanged](#filechanged). Claude Code führt keinen `PostToolUse`-Hook mit dem Matcher `Edit|Write` aus, wenn ein `Bash`-Befehl oder ein Prozess außerhalb von Claude Code dieselbe Datei neu schreibt.2309* Um einen Hook auszuführen, wenn sich eine bestimmte Datei auf der Festplatte ändert, unabhängig davon, wer sie geschrieben hat, verwenden Sie [FileChanged](#filechanged). Claude Code führt keinen `PostToolUse`-Hook mit dem Matcher `Edit|Write` aus, wenn ein `Bash`-Befehl oder ein Prozess außerhalb von Claude Code dieselbe Datei neu schreibt.

2284 2310 

2285<h4 id="posttooluse-input">2311<h4 id="posttooluse-input">

2286 PostToolUse-Eingabe2312 PostToolUse-Eingabe

2287</h4>2313</h4>

2288 2314 

2289`PostToolUse`-Hooks werden ausgelöst, nachdem ein Tool bereits erfolgreich ausgeführt wurde. Die Eingabe enthält sowohl `tool_input`, die an das Tool gesendeten Argumente, als auch `tool_response`, das zurückgegebene Ergebnis. Das genaue Schema beider Felder hängt vom Tool ab. Pfade in `tool_input` von Datei-Tools kommen im selben Format an wie bei [PreToolUse](#pretooluse-input): immer absolut, mit den nativen Trennzeichen der Plattform, unter Windows also mit Backslashes. Bei einem MCP-Tool enthält die Eingabe außerdem das Objekt [`mcp_server`](#pretooluse-input).2315`PostToolUse`-Hooks werden ausgelöst, nachdem ein Tool bereits erfolgreich ausgeführt wurde. Die Eingabe enthält sowohl `tool_input`, die an das Tool gesendeten Argumente, als auch `tool_response`, das zurückgegebene Ergebnis. Das genaue Schema beider hängt vom Tool ab. Pfade in `tool_input` von Datei-Tools kommen im selben Format an wie bei [PreToolUse](#pretooluse-input): immer absolut, mit den nativen Trennzeichen der Plattform, unter Windows also mit Backslashes. Bei einem MCP-Tool enthält die Eingabe außerdem das Objekt [`mcp_server`](#pretooluse-input).

2290 2316 

2291```json theme={null}2317```json theme={null}

2292{2318{


2322| Feld | Beschreibung |2348| Feld | Beschreibung |

2323| :- | :- |2349| :- | :- |

2324| `decision` | `"block"` fügt den `reason` neben dem Tool-Ergebnis hinzu. Claude sieht weiterhin die ursprüngliche Ausgabe; um sie zu ersetzen, verwenden Sie `updatedToolOutput` |2350| `decision` | `"block"` fügt den `reason` neben dem Tool-Ergebnis hinzu. Claude sieht weiterhin die ursprüngliche Ausgabe; um sie zu ersetzen, verwenden Sie `updatedToolOutput` |

2325| `reason` | Erklärung, die Claude angezeigt wird, wenn `decision` `"block"` ist |2351| `reason` | Erklärung, die Claude angezeigt wird, wenn `decision` den Wert `"block"` hat |

2326| `additionalContext` | String, der Claudes Kontext zusammen mit dem Tool-Ergebnis hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |2352| `additionalContext` | String, der Claudes Kontext zusammen mit dem Tool-Ergebnis hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |

2327| `classifierContext` | Kurze Notiz zum Ergebnis dieses Aufrufs für den Klassifikator des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) statt für Claude. Siehe [Ein Ergebnis für den Klassifikator des Auto-Modus annotieren](#annotate-a-result-for-the-auto-mode-classifier). Erfordert Claude Code v2.1.236 oder höher |2353| `classifierContext` | Kurzer Hinweis zum Ergebnis dieses Aufrufs für den Klassifikator des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) statt für Claude. Siehe [Ein Ergebnis für den Klassifikator des Auto-Modus annotieren](#annotate-a-result-for-the-auto-mode-classifier). Erfordert Claude Code v2.1.236 oder höher |

2328| `updatedToolOutput` | Ersetzt die Ausgabe des Tools durch den angegebenen Wert, bevor sie an Claude gesendet wird. Der Wert muss der Ausgabestruktur des Tools entsprechen |2354| `updatedToolOutput` | Ersetzt die Ausgabe des Tools durch den angegebenen Wert, bevor sie an Claude gesendet wird. Der Wert muss der Ausgabestruktur des Tools entsprechen |

2329| `updatedMCPToolOutput` | Ersetzt die Ausgabe nur für [MCP-Tools](#match-mcp-tools). Bevorzugen Sie `updatedToolOutput`, das für alle Tools funktioniert |2355| `updatedMCPToolOutput` | Ersetzt die Ausgabe nur für [MCP-Tools](#match-mcp-tools). Verwenden Sie bevorzugt `updatedToolOutput`, das für alle Tools funktioniert |

2330 2356 

2331Das folgende Beispiel ersetzt die Ausgabe eines `Bash`-Aufrufs. Der Ersatzwert entspricht der Ausgabestruktur des `Bash`-Tools:2357Das folgende Beispiel ersetzt die Ausgabe eines `Bash`-Aufrufs. Der Ersatzwert entspricht der Ausgabestruktur des `Bash`-Tools:

2332 2358 


2348<Warning>2374<Warning>

2349 `updatedToolOutput` ändert nur, was Claude sieht. Das Tool wurde bereits ausgeführt, wenn der Hook ausgelöst wird, sodass geschriebene Dateien, ausgeführte Befehle oder gesendete Netzwerkanfragen bereits wirksam sind. Telemetrie wie OpenTelemetry-Tool-Spans und Analyseereignisse erfasst ebenfalls die ursprüngliche Ausgabe, bevor der Hook läuft. Um einen Tool-Aufruf vor seiner Ausführung zu verhindern oder zu ändern, verwenden Sie stattdessen einen [PreToolUse](#pretooluse)-Hook.2375 `updatedToolOutput` ändert nur, was Claude sieht. Das Tool wurde bereits ausgeführt, wenn der Hook ausgelöst wird, sodass geschriebene Dateien, ausgeführte Befehle oder gesendete Netzwerkanfragen bereits wirksam sind. Telemetrie wie OpenTelemetry-Tool-Spans und Analyseereignisse erfasst ebenfalls die ursprüngliche Ausgabe, bevor der Hook läuft. Um einen Tool-Aufruf vor seiner Ausführung zu verhindern oder zu ändern, verwenden Sie stattdessen einen [PreToolUse](#pretooluse)-Hook.

2350 2376 

2351 Der Ersatzwert muss der Ausgabestruktur des Tools entsprechen. Integrierte Tools geben strukturierte Objekte statt einfacher Strings zurück. Beispielsweise gibt `Bash` ein Objekt mit den Feldern `stdout`, `stderr`, `interrupted` und `isImage` zurück. Bei integrierten Tools wird ein Wert, der nicht dem Ausgabeschema des Tools entspricht, ignoriert und die ursprüngliche Ausgabe verwendet. Die Ausgabe von MCP-Tools wird ohne Schemavalidierung durchgereicht. Das Entfernen von Fehlerdetails, die Claude benötigt, kann dazu führen, dass Claude auf Grundlage einer falschen Annahme weiterarbeitet.2377 Der Ersatzwert muss der Ausgabestruktur des Tools entsprechen. Integrierte Tools geben strukturierte Objekte statt einfacher Strings zurück. Beispielsweise gibt `Bash` ein Objekt mit den Feldern `stdout`, `stderr`, `interrupted` und `isImage` zurück. Bei integrierten Tools wird ein Wert, der nicht dem Ausgabeschema des Tools entspricht, ignoriert und die ursprüngliche Ausgabe verwendet. Die Ausgabe von MCP-Tools wird ohne Schemavalidierung durchgereicht. Das Entfernen von Fehlerdetails, die Claude benötigt, kann dazu führen, dass Claude auf einer falschen Annahme weiterarbeitet.

2352</Warning>2378</Warning>

2353 2379 

2354<h4 id="annotate-a-result-for-the-auto-mode-classifier">2380<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2355 Ein Ergebnis für den Klassifikator des Auto-Modus annotieren2381 Ein Ergebnis für den Klassifikator des Auto-Modus annotieren

2356</h4>2382</h4>

2357 2383 

2358Geben Sie `classifierContext` zurück, um eine kurze Notiz zum Ergebnis des Tool-Aufrufs an den Klassifikator des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) statt an Claude zu senden. Der Klassifikator [erhält die Tool-Ergebnisse selbst nie](/docs/de/permission-modes#how-the-classifier-evaluates-actions), daher ist dieses Feld der unterstützte Weg, ihm etwas darüber mitzuteilen, was ein Aufruf zurückgegeben hat, bevor er spätere Aktionen prüft. Das Feld erfordert Claude Code v2.1.236 oder höher.2384Geben Sie `classifierContext` zurück, um einen kurzen Hinweis zum Ergebnis des Tool-Aufrufs an den Klassifikator des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) statt an Claude zu senden. Der Klassifikator [erhält die Tool-Ergebnisse selbst nie](/docs/de/permission-modes#how-the-classifier-evaluates-actions), daher ist dieses Feld der unterstützte Weg, ihm etwas darüber mitzuteilen, was ein Aufruf zurückgegeben hat, bevor er spätere Aktionen prüft. Das Feld erfordert Claude Code v2.1.236 oder höher.

2359 2385 

2360Das folgende Beispiel teilt dem Klassifikator mit, woher die Ausgabe einer Abfrage stammt:2386Das folgende Beispiel teilt dem Klassifikator mit, woher die Ausgabe einer Abfrage stammt:

2361 2387 


2368}2394}

2369```2395```

2370 2396 

2371Wie viel Gewicht der Klassifikator der Notiz beimisst, hängt davon ab, wo Sie den Hook konfiguriert haben:2397Wie viel Gewicht der Klassifikator dem Hinweis beimisst, hängt davon ab, wo Sie den Hook konfiguriert haben:

2372 2398 

2373* **In Claude Code konfigurierte Hooks**: Bei Hooks aus Einstellungsdateien, Plugins, Skills und Agenten-Frontmatter behandelt der Klassifikator die Notiz als unverifizierten, von der Anwendung bereitgestellten Kontext. Die Notiz begründet nie eine Absicht des Benutzers, und wenn sie behauptet, Sie hätten etwas genehmigt oder angefordert, prüft der Klassifikator diese Behauptung anhand Ihrer eigenen Nachrichten in der Konversation2399* **In Claude Code konfigurierte Hooks**: Bei Hooks aus Einstellungsdateien, Plugins, Skills und Agenten-Frontmatter behandelt der Klassifikator den Hinweis als nicht verifizierten, von der Anwendung bereitgestellten Kontext. Der Hinweis begründet nie eine Benutzerabsicht, und wenn er behauptet, Sie hätten etwas genehmigt oder angefordert, prüft der Klassifikator diese Behauptung anhand Ihrer eigenen Nachrichten in der Konversation

2374* **In-Process-Callbacks des Agent SDK**: Wenn eine Anwendung, die Claude Code einbettet, den Hook als [TypeScript-SDK-Callback](/docs/de/agent-sdk/hooks) registriert und die Notiz während der laufenden Sitzung zurückgibt, kann der Klassifikator eine in der Notiz weitergegebene Benutzeraussage als Absicht des Benutzers werten. Eine solche Aussage kann eine Zustimmungsanforderung erfüllen, die der Klassifikator auch von einer von Ihnen gesendeten Nachricht akzeptieren würde, hebt aber nie eine Blockierung auf, die auch Ihre eigene Nachricht nicht aufheben könnte. Nach dem Fortsetzen einer Sitzung behandelt Claude Code wiederhergestellte Notizen als unverifizierten Kontext. Wenn Hooks aus beiden Gruppen denselben Aufruf annotieren, behandelt der Klassifikator die kombinierte Notiz als unverifiziert2400* **In-Process-Callbacks des Agent SDK**: Wenn eine Anwendung, die Claude Code einbettet, den Hook als [TypeScript-SDK-Callback](/docs/de/agent-sdk/hooks) registriert und den Hinweis während der laufenden Sitzung zurückgibt, kann der Klassifikator eine im Hinweis übermittelte Benutzeraussage als Benutzerabsicht werten. Eine solche Aussage kann eine Zustimmungsanforderung erfüllen, die der Klassifikator auch von einer Nachricht von Ihnen akzeptieren würde, hebt aber nie eine Blockierung auf, die auch Ihre eigene Nachricht nicht aufheben könnte. Nach dem Fortsetzen einer Sitzung behandelt Claude Code wiederhergestellte Hinweise als nicht verifizierten Kontext. Wenn Hooks aus beiden Gruppen denselben Aufruf annotieren, behandelt der Klassifikator den kombinierten Hinweis als nicht verifiziert

2375 2401 

2376Claude Code wendet beim Zustellen der Notiz diese Grenzen an:2402Claude Code wendet bei der Zustellung des Hinweises diese Grenzen an:

2377 2403 

2378* **Länge**: Claude Code begrenzt die Notizen für einen Tool-Aufruf auf 2.000 Zeichen und kürzt den Rest. Die Grenze gilt gemeinsam für alle Hooks, die auf diesen Aufruf antworten2404* **Länge**: Claude Code begrenzt die Hinweise für einen Tool-Aufruf auf 2.000 Zeichen und kürzt den Rest. Die Grenze gilt gemeinsam für alle Hooks, die auf diesen Aufruf antworten

2379* **Nur synchrone Antworten**: Claude Code ignoriert das Feld in der Antwort eines Hooks, der [im Hintergrund läuft](#run-hooks-in-the-background), da diese Antwort eintrifft, nachdem Claude Code das Tool-Ergebnis erfasst hat2405* **Nur synchrone Antworten**: Claude Code ignoriert das Feld in der Antwort eines Hooks, der [im Hintergrund läuft](#run-hooks-in-the-background), da diese Antwort eintrifft, nachdem Claude Code das Tool-Ergebnis aufgezeichnet hat

2380* **Aufrufe, die der Klassifikator nicht erfasst**: Das Transkript des Klassifikators lässt nur lesende Abfragen wie Dateilesevorgänge und Suchen aus. Claude Code verwirft eine Notiz, die an einen dieser Aufrufe angehängt ist2406* **Aufrufe, die der Klassifikator nicht aufzeichnet**: Das Transkript des Klassifikators lässt nur lesende Abfragen wie Dateilesevorgänge und Suchen aus. Claude Code verwirft einen Hinweis, der an einen dieser Aufrufe angehängt ist

2381* **Zusammenspiel mit Umschreibungen**: Wenn die Notiz eine Ausgabe beschreibt, die Sie mit `updatedToolOutput` ersetzen, geben Sie beide Felder in derselben Hook-Antwort zurück. Claude Code verwirft die Notiz, wenn diese Umschreibung abgelehnt wird oder die Umschreibung eines anderen Hooks sie ersetzt. Claude Code stellt eine Notiz, die Sie ohne Umschreibung zurückgeben, auch dann zu, wenn ein anderer Hook die Ausgabe umschreibt2407* **Zusammenspiel mit Umschreibungen**: Wenn der Hinweis eine Ausgabe beschreibt, die Sie mit `updatedToolOutput` ersetzen, geben Sie beide Felder in derselben Hook-Antwort zurück. Claude Code verwirft den Hinweis, wenn diese Umschreibung abgelehnt wird oder die Umschreibung eines anderen Hooks sie ersetzt. Claude Code stellt einen Hinweis, den Sie ohne Umschreibung zurückgeben, auch dann zu, wenn ein anderer Hook die Ausgabe umschreibt

2382 2408 

2383<Warning>2409<Warning>

2384 Der Klassifikator liest Inhalte, die Sie in `classifierContext` einfügen, als Informationen der Anwendung, die die Sitzung hostet. Kopieren Sie daher keine nicht vertrauenswürdige Tool-Ausgabe oder Texte Dritter hinein. Beschränken Sie die Notiz auf eine kurze Aussage über genau diesen einen Aufruf, etwa eine Tatsache über seine Herkunft oder eine Benutzeraussage dazu; verwenden Sie das Feld nicht, um unzusammenhängende Nachrichten oder einen Strom von Ereignissen zu übermitteln.2410 Der Klassifikator liest Inhalte, die Sie in `classifierContext` einfügen, als Informationen der Anwendung, die die Sitzung hostet. Kopieren Sie daher keine nicht vertrauenswürdige Tool-Ausgabe oder Texte Dritter hinein. Beschränken Sie den Hinweis auf eine kurze Aussage über diesen einen Aufruf, etwa eine Tatsache über seine Herkunft oder eine Benutzeraussage dazu; verwenden Sie das Feld nicht, um sachfremde Nachrichten oder einen Ereignisstrom zu übermitteln.

2385</Warning>2411</Warning>

2386 2412 

2387<h3 id="posttoolusefailure">2413<h3 id="posttoolusefailure">

2388 PostToolUseFailure2414 PostToolUseFailure

2389</h3>2415</h3>

2390 2416 

2391Wird ausgeführt, wenn ein Tool, dessen Ausführung begonnen hat, fehlschlägt: Das Tool hat einen Fehler ausgelöst, oder ein MCP-Tool hat ein Fehlerergebnis zurückgegeben. Verwenden Sie dies, um Fehler zu protokollieren, Warnungen zu senden oder Claude korrigierendes Feedback zu geben.2417Läuft, wenn ein Tool, dessen Ausführung begonnen hat, fehlschlägt: Das Tool hat einen Fehler ausgelöst, oder ein MCP-Tool hat ein Fehlerergebnis zurückgegeben. Verwenden Sie dies, um Fehler zu protokollieren, Warnungen zu senden oder Claude korrigierendes Feedback zu geben.

2392 2418 

2393Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.2419Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.

2394 2420 

2395<Note>2421<Note>

2396 Dieses Ereignis wird nicht für Tool-Aufrufe ausgelöst, die vor der Ausführung abgelehnt werden: ein unbekannter Tool-Name, eine Eingabe, die die Schema- oder toolspezifische Validierung nicht besteht, oder eine Verweigerung der Berechtigung. Validierungsablehnungen werden als `tool_use_error`-Ergebnisse zurückgegeben und erfolgen, bevor Hooks laufen, sodass sie weder `PreToolUse` noch `PostToolUseFailure` auslösen. Verweigerte Berechtigungen lösen `PreToolUse` aus, aber nicht dieses Ereignis; siehe [PermissionDenied](#permissiondenied).2422 Dieses Ereignis wird nicht für Tool-Aufrufe ausgelöst, die vor der Ausführung abgelehnt werden: ein unbekannter Tool-Name, eine Eingabe, die die Schemavalidierung oder toolspezifische Validierung nicht besteht, oder eine Berechtigungsablehnung. Validierungsablehnungen werden als `tool_use_error`-Ergebnisse zurückgegeben und erfolgen, bevor Hooks laufen, sodass sie weder `PreToolUse` noch `PostToolUseFailure` auslösen. Berechtigungsablehnungen lösen `PreToolUse` aus, aber nicht dieses Ereignis; siehe [PermissionDenied](#permissiondenied).

2397</Note>2423</Note>

2398 2424 

2399<h4 id="posttoolusefailure-input">2425<h4 id="posttoolusefailure-input">

2400 PostToolUseFailure-Eingabe2426 PostToolUseFailure-Eingabe

2401</h4>2427</h4>

2402 2428 

2403PostToolUseFailure-Hooks erhalten dieselben Felder `tool_name` und `tool_input` wie PostToolUse sowie Fehlerinformationen als Felder der obersten Ebene. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input). Ein fehlgeschlagener `npm test`-Befehl könnte beispielsweise Folgendes liefern:2429PostToolUseFailure-Hooks erhalten dieselben Felder `tool_name` und `tool_input` wie PostToolUse sowie Fehlerinformationen als Felder auf oberster Ebene. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input). Ein fehlgeschlagener `npm test`-Befehl könnte beispielsweise Folgendes liefern:

2404 2430 

2405```json theme={null}2431```json theme={null}

2406{2432{


2424| Feld | Beschreibung |2450| Feld | Beschreibung |

2425| :- | :- |2451| :- | :- |

2426| `error` | String, der beschreibt, was schiefgelaufen ist. Das Format hängt vom fehlgeschlagenen Tool ab |2452| `error` | String, der beschreibt, was schiefgelaufen ist. Das Format hängt vom fehlgeschlagenen Tool ab |

2427| `is_interrupt` | Optionaler boolescher Wert. True, wenn der Fehler Claude Code als Abbruch erreicht hat statt als vom Tool gemeldeter Fehler. Das Abbrechen eines laufenden Tools löst diesen Hook nicht aus; stattdessen enthält das Tool-Ergebnis die Unterbrechungsnachricht |2453| `is_interrupt` | Optionaler Boolean. True, wenn der Fehler Claude Code als Abbruch erreicht hat statt als vom Tool gemeldeter Fehler. Das Abbrechen eines laufenden Tools löst diesen Hook nicht aus; stattdessen enthält das Tool-Ergebnis die Unterbrechungsmeldung |

2428| `duration_ms` | Optional. Ausführungszeit des Tools in Millisekunden. Ohne die Zeit in Berechtigungsabfragen und PreToolUse-Hooks |2454| `duration_ms` | Optional. Ausführungszeit des Tools in Millisekunden. Ohne die Zeit in Berechtigungsabfragen und PreToolUse-Hooks |

2429 2455 

2430Der `error`-String ist in der Regel derselbe Text, den Claude als Ergebnis des fehlgeschlagenen Tools erhält. Sein Format variiert je nach Tool und Fehler. Richten Sie Ihren Hook an `tool_name`, `is_interrupt` und der ersten Zeile `Exit code N` aus; behandeln Sie den Rest des Strings als Anzeigetext, nicht als stabiles Format.2456Der `error`-String ist in der Regel derselbe Text, den Claude als Ergebnis des fehlgeschlagenen Tools erhält. Sein Format variiert je nach Tool und Fehler. Richten Sie Ihren Hook an `tool_name`, `is_interrupt` und der ersten Zeile `Exit code N` aus; behandeln Sie den Rest des Strings als Anzeigetext, nicht als stabiles Format.

2431 2457 

2432* Bei Bash und PowerShell erzeugt ein Befehl, der gelaufen und beendet ist, eine erste Zeile `Exit code N`, gefolgt von der gesamten Ausgabe des Befehls als ein Block, in dem stdout und stderr verschränkt sind2458* Bei Bash und PowerShell erzeugt ein Befehl, der gelaufen und beendet ist, eine erste Zeile `Exit code N`, gefolgt von der Ausgabe des Befehls als ein Block, in dem stdout und stderr verschränkt sind

2433* Eine Payload kann auch eine reine Fehlermeldung ohne Exit-Code-Zeile enthalten, wenn Claude Code den Shell-Prozess selbst nicht starten konnte2459* Eine Payload kann auch eine reine Fehlermeldung ohne Exit-Code-Zeile enthalten, wenn Claude Code den Shell-Prozess selbst nicht starten konnte

2434* Claude Code kürzt lange Strings in der Mitte um eine Markierung `... [N characters truncated] ...` und kann eigene Zeilen einfügen, etwa `Command timed out after 2m 0s`2460* Claude Code kürzt lange Strings in der Mitte um eine Markierung `... [N characters truncated] ...` und kann eigene Zeilen einfügen, etwa `Command timed out after 2m 0s`

2435 2461 


2456 PostToolBatch2482 PostToolBatch

2457</h3>2483</h3>

2458 2484 

2459Wird einmal ausgeführt, nachdem alle Tool-Aufrufe in einem Batch abgeschlossen sind, bevor Claude Code die nächste Anfrage an das Modell sendet. `PostToolUse` wird einmal pro Tool ausgelöst, also gleichzeitig, wenn Claude parallele Tool-Aufrufe ausführt. `PostToolBatch` wird genau einmal mit dem vollständigen Batch ausgelöst und ist daher der richtige Ort, um Kontext einzufügen, der von der Menge der ausgeführten Tools statt von einem einzelnen Tool abhängt. Für dieses Ereignis gibt es keinen Matcher.2485Läuft einmal, nachdem jeder Tool-Aufruf in einem Batch abgeschlossen ist, bevor Claude Code die nächste Anfrage an das Modell sendet. `PostToolUse` wird einmal pro Tool ausgelöst, also parallel, wenn Claude parallele Tool-Aufrufe ausführt. `PostToolBatch` wird genau einmal mit dem vollständigen Batch ausgelöst und ist daher der richtige Ort, um Kontext einzufügen, der von der Menge der ausgeführten Tools statt von einem einzelnen Tool abhängt. Für dieses Ereignis gibt es keinen Matcher.

2460 2486 

2461<h4 id="posttoolbatch-input">2487<h4 id="posttoolbatch-input">

2462 PostToolBatch-Eingabe2488 PostToolBatch-Eingabe

2463</h4>2489</h4>

2464 2490 

2465Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PostToolBatch-Hooks `tool_calls`, ein Array, das jeden Tool-Aufruf im Batch beschreibt:2491Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten PostToolBatch-Hooks `tool_calls`, ein Array, das jeden Tool-Aufruf im Batch beschreibt:

2466 2492 

2467```json theme={null}2493```json theme={null}

2468{2494{


2488}2514}

2489```2515```

2490 2516 

2491`tool_response` enthält denselben Inhalt, den das Modell im entsprechenden `tool_result`-Block erhält. Der Wert ist ein serialisierter String oder ein Content-Block-Array, genau so, wie das Tool ihn ausgegeben hat. Für `Read` bedeutet das Text mit vorangestellten Zeilennummern statt des rohen Dateiinhalts. Antworten können groß sein, parsen Sie daher nur die Felder, die Sie benötigen.2517`tool_response` enthält denselben Inhalt, den das Modell im entsprechenden `tool_result`-Block erhält. Der Wert ist ein serialisierter String oder ein Content-Block-Array, genau so, wie das Tool ihn ausgegeben hat. Bei `Read` bedeutet das Text mit vorangestellten Zeilennummern statt des rohen Dateiinhalts. Antworten können groß sein, parsen Sie daher nur die Felder, die Sie benötigen.

2492 2518 

2493<Note>2519<Note>

2494 Die Struktur von `tool_response` unterscheidet sich von der bei `PostToolUse`. `PostToolUse` übergibt das strukturierte `Output`-Objekt des Tools, etwa `{filePath: "...", type: "create"}` für `Write`; `PostToolBatch` übergibt den serialisierten `tool_result`-Inhalt, den das Modell sieht.2520 Die Struktur von `tool_response` unterscheidet sich von der bei `PostToolUse`. `PostToolUse` übergibt das strukturierte `Output`-Objekt des Tools, etwa `{filePath: "...", type: "create"}` für `Write`; `PostToolBatch` übergibt den serialisierten `tool_result`-Inhalt, den das Modell sieht.


2502 2528 

2503| Feld | Beschreibung |2529| Feld | Beschreibung |

2504| :- | :- |2530| :- | :- |

2505| `additionalContext` | Kontext-String, der einmal vor dem nächsten Modellaufruf eingefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) für Details zur Zustellung, zum sinnvollen Inhalt und dazu, wie fortgesetzte Sitzungen frühere Werte behandeln |2531| `additionalContext` | Kontext-String, der einmal vor dem nächsten Modellaufruf eingefügt wird. Unter [Kontext für Claude hinzufügen](#add-context-for-claude) finden Sie Details zur Zustellung, zum geeigneten Inhalt und dazu, wie fortgesetzte Sitzungen mit früheren Werten umgehen |

2506 2532 

2507```json theme={null}2533```json theme={null}

2508{2534{


2513}2539}

2514```2540```

2515 2541 

2516Die Rückgabe von `decision: "block"` oder `continue: false` stoppt die Agentenschleife vor dem nächsten Modellaufruf. Die Blockierungsnachricht stammt aus dem JSON-Feld `reason` oder `stopReason` oder bei Exit-Code 2 aus stderr. Sie sehen sie als Warnung im Transkript, und sie bleibt in der Konversation, sodass Claude sie sieht, wenn die Konversation fortgesetzt wird.2542Die Rückgabe von `decision: "block"` oder `continue: false` stoppt die Agentenschleife vor dem nächsten Modellaufruf. Die Blockierungsmeldung stammt aus dem JSON-Feld `reason` oder `stopReason` oder bei Exit-Code 2 aus stderr. Sie sehen sie als Warnung im Transkript, und sie bleibt in der Konversation, sodass Claude sie sieht, wenn die Konversation fortgesetzt wird.

2517 2543 

2518<h3 id="permissiondenied">2544<h3 id="permissiondenied">

2519 PermissionDenied2545 PermissionDenied

2520</h3>2546</h3>

2521 2547 

2522Wird ausgeführt, wenn der [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) einen Tool-Aufruf verweigert, auch wenn er ohne Urteil des Klassifikators verweigert, weil [eine vom Auto-Modus getrennte Sicherheitsprüfung die eigene Anfrage des Klassifikators abgelehnt hat](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) oder seine Antwort nicht geparst werden konnte. Dieser Hook wird nur im Auto-Modus ausgelöst: Er läuft nicht, wenn Sie einen Berechtigungsdialog manuell ablehnen, wenn ein `PreToolUse`-Hook einen Aufruf blockiert oder wenn eine `deny`-Regel zutrifft. Verwenden Sie ihn, um Verweigerungen zu protokollieren, die Konfiguration anzupassen oder dem Modell mitzuteilen, dass es den Tool-Aufruf erneut versuchen darf.2548Läuft, wenn der [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) einen Tool-Aufruf ablehnt, auch wenn er ohne Urteil des Klassifikators ablehnt, weil [eine vom Auto-Modus unabhängige Sicherheitsprüfung die eigene Anfrage des Klassifikators abgelehnt hat](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) oder dessen Antwort nicht geparst werden konnte. Dieser Hook wird nur im Auto-Modus ausgelöst: Er läuft nicht, wenn Sie einen Berechtigungsdialog manuell ablehnen, wenn ein `PreToolUse`-Hook einen Aufruf blockiert oder wenn eine `deny`-Regel zutrifft. Verwenden Sie ihn, um Ablehnungen zu protokollieren, die Konfiguration anzupassen oder dem Modell mitzuteilen, dass es den Tool-Aufruf erneut versuchen darf.

2523 2549 

2524Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.2550Matcht auf den Tool-Namen, mit denselben Werten wie PreToolUse.

2525 2551 


2527 PermissionDenied-Eingabe2553 PermissionDenied-Eingabe

2528</h4>2554</h4>

2529 2555 

2530Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PermissionDenied-Hooks `tool_name`, `tool_input`, `tool_use_id` und `reason`. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input).2556Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten PermissionDenied-Hooks `tool_name`, `tool_input`, `tool_use_id` und `reason`. Bei einem MCP-Tool erhalten sie außerdem das Objekt [`mcp_server`](#pretooluse-input).

2531 2557 

2532```json theme={null}2558```json theme={null}

2533{2559{


2548 2574 

2549| Feld | Beschreibung |2575| Feld | Beschreibung |

2550| :- | :- |2576| :- | :- |

2551| `reason` | Der Grund der Verweigerung. Bei einem Urteil des Klassifikators nennt er in den meisten Sitzungen die zutreffende Regel in eckigen Klammern, etwa `[Data Exfiltration]`; siehe [Verweigerungen prüfen](/docs/de/auto-mode-config#review-denials) für die anderen Formen. Bei einer [Verweigerung ohne Urteil](#permissiondenied-decision-control) beginnt er mit `Auto mode could not evaluate this action and is blocking it for safety`. Bei einer Verweigerung, weil das Klassifikatormodell nicht verfügbar war, ist er der feste Text `Classifier unavailable` |2577| `reason` | Der Ablehnungsgrund. Bei einem Urteil des Klassifikators nennt er in den meisten Sitzungen die zutreffende Regel in eckigen Klammern, etwa `[Data Exfiltration]`; die anderen Formen finden Sie unter [Ablehnungen prüfen](/docs/de/auto-mode-config#review-denials). Bei einer [Ablehnung ohne Urteil](#permissiondenied-decision-control) beginnt er mit `Auto mode could not evaluate this action and is blocking it for safety`. Bei einer Ablehnung, weil das Klassifikatormodell nicht verfügbar war, ist er der feste Text `Classifier unavailable` |

2552 2578 

2553<h4 id="permissiondenied-decision-control">2579<h4 id="permissiondenied-decision-control">

2554 PermissionDenied-Entscheidungssteuerung2580 PermissionDenied-Entscheidungssteuerung

2555</h4>2581</h4>

2556 2582 

2557PermissionDenied-Hooks können dem Modell mitteilen, dass es den verweigerten Tool-Aufruf erneut versuchen darf. Geben Sie ein JSON-Objekt zurück, in dem `hookSpecificOutput.retry` auf `true` gesetzt ist:2583PermissionDenied-Hooks können dem Modell mitteilen, dass es den abgelehnten Tool-Aufruf erneut versuchen darf. Geben Sie ein JSON-Objekt zurück, in dem `hookSpecificOutput.retry` auf `true` gesetzt ist:

2558 2584 

2559```json theme={null}2585```json theme={null}

2560{2586{


2565}2591}

2566```2592```

2567 2593 

2568Wenn `retry` `true` ist, fügt Claude Code der Konversation eine Nachricht hinzu, die dem Modell mitteilt, dass es den Tool-Aufruf erneut versuchen darf. Claude Code hebt die Verweigerung selbst nicht auf. Wenn Ihr Hook kein JSON zurückgibt oder `retry: false` zurückgibt, bleibt die Verweigerung bestehen und das Modell erhält die ursprüngliche Ablehnungsnachricht.2594Wenn `retry` den Wert `true` hat, fügt Claude Code der Konversation eine Nachricht hinzu, die dem Modell mitteilt, dass es den Tool-Aufruf erneut versuchen darf. Claude Code macht die Ablehnung selbst nicht rückgängig. Wenn Ihr Hook kein JSON zurückgibt oder `retry: false` zurückgibt, bleibt die Ablehnung bestehen, und das Modell erhält die ursprüngliche Ablehnungsmeldung.

2569 2595 

2570Claude Code ignoriert `retry: true`, wenn der Klassifikator [kein Urteil über die Aktion](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) gefällt hat: Seine Antwort konnte nicht geparst werden, oder eine vom Auto-Modus getrennte Sicherheitsprüfung hat die eigene Anfrage des Klassifikators abgelehnt. Bei diesen Verweigerungen teilt Claude Code dem Modell bereits in der Ablehnungsnachricht mit, ob es später erneut versuchen oder weitermachen soll.2596Claude Code ignoriert `retry: true`, wenn der Klassifikator [kein Urteil über die Aktion](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) gefällt hat: Seine Antwort konnte nicht geparst werden, oder eine vom Auto-Modus unabhängige Sicherheitsprüfung hat die eigene Anfrage des Klassifikators abgelehnt. Bei diesen Ablehnungen teilt Claude Code dem Modell bereits in der Ablehnungsmeldung mit, ob es später erneut versuchen oder weitermachen soll.

2571 2597 

2572<h3 id="notification">2598<h3 id="notification">

2573 Notification2599 Notification

2574</h3>2600</h3>

2575 2601 

2576Wird ausgeführt, wenn Claude Code Benachrichtigungen sendet. Matcht auf den Benachrichtigungstyp. Lassen Sie den Matcher weg, um Hooks für alle Benachrichtigungstypen auszuführen.2602Läuft, wenn Claude Code Benachrichtigungen sendet. Matcht auf den Benachrichtigungstyp. Lassen Sie den Matcher weg, um Hooks für alle Benachrichtigungstypen auszuführen.

2577 2603 

2578Sie erhalten diese Hook-Ereignisse auch bei ausgeschalteten Desktop-Benachrichtigungen: Die Einstellung `preferredNotifChannel`, einschließlich `notifications_disabled`, ändert nur, wie Sie benachrichtigt werden, nicht, ob Ihr Hook läuft.2604Sie erhalten diese Hook-Ereignisse auch bei deaktivierten Desktop-Benachrichtigungen: Die Einstellung `preferredNotifChannel`, einschließlich `notifications_disabled`, ändert nur, wie Sie benachrichtigt werden, nicht, ob Ihr Hook läuft.

2579 2605 

2580| Matcher | Wann er ausgelöst wird |2606| Matcher | Wann er ausgelöst wird |

2581| :- | :- |2607| :- | :- |

2582| `permission_prompt` | Claude benötigt Ihre Genehmigung für eine Tool-Nutzung oder die [Netzwerkanfrage](/docs/de/sandboxing#network-isolation) eines in einer Sandbox ausgeführten Befehls, und die Abfrage wartet seit etwa sechs Sekunden |2608| `permission_prompt` | Claude benötigt Ihre Genehmigung für eine Tool-Nutzung oder die [Netzwerkanfrage](/docs/de/sandboxing#network-isolation) eines in einer Sandbox ausgeführten Befehls, und die Abfrage wartet seit etwa sechs Sekunden |

2583| `idle_prompt` | Claude hat vor etwa 60 Sekunden die Antwort beendet, und Sie haben seitdem nichts eingegeben |2609| `idle_prompt` | Claude hat vor etwa 60 Sekunden seine Antwort beendet, und Sie haben seitdem nichts eingegeben |

2584| `auth_success` | Die Authentifizierung ist abgeschlossen |2610| `auth_success` | Die Authentifizierung ist abgeschlossen |

2585| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular, und Sie haben seit etwa sechs Sekunden nichts eingegeben |2611| `elicitation_dialog` | Ein MCP-Server öffnet ein Elicitation-Formular, und Sie haben seit etwa sechs Sekunden nichts eingegeben |

2586| `elicitation_url_dialog` | Ein MCP-Server bittet Sie, eine Browser-URL zu öffnen, und Sie haben seit etwa sechs Sekunden nichts eingegeben |2612| `elicitation_url_dialog` | Ein MCP-Server bittet Sie, eine Browser-URL zu öffnen, und Sie haben seit etwa sechs Sekunden nichts eingegeben |

2587| `elicitation_complete` | Ein MCP-Server meldet, dass eine [Elicitation im URL-Modus](#elicitation-input) abgeschlossen ist |2613| `elicitation_complete` | Ein MCP-Server meldet, dass eine [Elicitation im URL-Modus](#elicitation-input) abgeschlossen ist |

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

2589| `agent_needs_input` | Eine Hintergrundsitzung beginnt, auf Ihre Eingabe zu warten, während die [Agentenansicht](/docs/de/agent-view) in einem Terminal geöffnet ist. Wird auch ausgelöst, wenn eine Terminal-Sitzung Ihnen die [Frage eines Agent-Team-Teammitglieds zur Terminal-Einrichtung](/docs/de/agent-teams#choose-a-display-mode) oder den Hinweis des Auto-Modus zu [Gebühren für Klassifikator-Anfragen](/docs/de/auto-mode-classifier-billing) anzeigt und Sie seit etwa sechs Sekunden nichts eingegeben haben |2615| `agent_needs_input` | Eine Hintergrundsitzung beginnt, auf Ihre Eingabe zu warten, während die [Agentenansicht](/docs/de/agent-view) in einem Terminal geöffnet ist. Wird auch ausgelöst, wenn eine Terminalsitzung Ihnen die [Frage zur Terminal-Einrichtung eines Teammitglieds in einem Agent-Team](/docs/de/agent-teams#choose-a-display-mode) oder den Hinweis des Auto-Modus zu [Kosten für Klassifikatoranfragen](/docs/de/auto-mode-classifier-billing) anzeigt und Sie seit etwa sechs Sekunden nichts eingegeben haben |

2590| `agent_completed` | Eine Hintergrundsitzung wird beendet oder schlägt fehl. Wird nur ausgelöst, während die [Agentenansicht](/docs/de/agent-view) in einem Terminal geöffnet ist |2616| `agent_completed` | Eine Hintergrundsitzung wird beendet oder schlägt fehl. Wird nur ausgelöst, während die [Agentenansicht](/docs/de/agent-view) in einem Terminal geöffnet ist |

2591| `quota_auto_resume_fired` | Claude Code setzt Ihre Aufgabe fort, nachdem ein claude.ai-Nutzungslimit sie pausiert hat: beim Zurücksetzen oder früher, wenn etwas, das Sie während der Wartezeit in Claude Code tun, etwa Nutzungsguthaben hinzufügen, Ihren Plan upgraden oder das Modell wechseln, wieder Nutzung verfügbar macht, mit der [Ausnahme für die Modelleinstellung](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset) |2617| `quota_auto_resume_fired` | Claude Code setzt Ihre Aufgabe fort, nachdem ein claude.ai-Nutzungslimit sie pausiert hatte: beim Zurücksetzen oder früher, wenn etwas, das Sie während der Wartezeit in Claude Code tun, etwa das Hinzufügen von Nutzungsguthaben, ein Upgrade Ihres Plans oder ein Modellwechsel, die Nutzung wieder verfügbar macht, mit der [Ausnahme für die Modelleinstellung](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset) |

2592| `quota_auto_resume_stale` | Ein claude.ai-Nutzungslimit wurde zurückgesetzt, während Ihr Computer länger als etwa 30 Minuten im Ruhezustand war. Claude Code wartet darauf, dass Sie `Enter` drücken, statt fortzufahren. Nach einem kürzeren Ruhezustand fährt es fort und löst stattdessen `quota_auto_resume_fired` aus |2618| `quota_auto_resume_stale` | Ein claude.ai-Nutzungslimit wurde zurückgesetzt, während Ihr Computer länger als etwa 30 Minuten im Ruhezustand war. Claude Code wartet darauf, dass Sie `Enter` drücken, statt fortzufahren. Nach einem kürzeren Ruhezustand fährt es fort und löst stattdessen `quota_auto_resume_fired` aus |

2593| `quota_auto_resume_disabled` | Claude Code beendet das Warten auf ein claude.ai-Nutzungslimit, ohne Ihre Aufgabe fortzusetzen: [`autoContinueAtUsageLimit`](/docs/de/settings-reference#autocontinueatusagelimit) wurde ausgeschaltet oder das Zurücksetzen hat sich während einer von Claude Code selbst begonnenen Wartezeit um mehr als 24 Stunden verschoben, die fortgesetzte Aufgabe ist wiederholt an das Limit gestoßen, oder die Fortsetzung wurde blockiert, bevor sie das Modell erreicht hat. Wird nicht ausgelöst, wenn Sie `Esc` oder `Ctrl+C` drücken oder **Don't continue automatically** wählen |2619| `quota_auto_resume_disabled` | Claude Code beendet das Warten auf ein claude.ai-Nutzungslimit, ohne Ihre Aufgabe fortzusetzen: [`autoContinueAtUsageLimit`](/docs/de/settings-reference#autocontinueatusagelimit) wurde ausgeschaltet oder das Zurücksetzen hat sich während einer Wartezeit, die Claude Code selbst begonnen hat, um mehr als 24 Stunden verschoben, die fortgesetzte Aufgabe ist wiederholt an das Limit gestoßen, oder die Fortsetzung wurde blockiert, bevor sie das Modell erreichte. Wird nicht ausgelöst, wenn Sie `Esc` oder `Ctrl+C` drücken oder **Don't continue automatically** wählen |

2594 2620 

2595Die Typen `quota_auto_resume_fired`, `quota_auto_resume_stale` und `quota_auto_resume_disabled` erfordern Claude Code v2.1.234 oder höher.2621Die Typen `quota_auto_resume_fired`, `quota_auto_resume_stale` und `quota_auto_resume_disabled` erfordern Claude Code v2.1.234 oder höher.

2596 2622 

2597In Terminal-Sitzungen erfordert `permission_prompt` für die Netzwerkanfrage eines in einer Sandbox ausgeführten Befehls Claude Code v2.1.246 oder höher.2623In Terminalsitzungen erfordert `permission_prompt` für die Netzwerkanfrage eines in einer Sandbox ausgeführten Befehls Claude Code v2.1.246 oder höher.

2598 2624 

2599`agent_needs_input` für die Frage eines Teammitglieds zur Terminal-Einrichtung erfordert Claude Code v2.1.248 oder höher.2625`agent_needs_input` für die Frage zur Terminal-Einrichtung eines Teammitglieds erfordert Claude Code v2.1.248 oder höher.

2600 2626 

2601<Note>2627<Note>

2602 Die Typen `permission_prompt`, `idle_prompt`, `elicitation_dialog` und `elicitation_url_dialog` teilen ihr Timing mit Desktop-Benachrichtigungen, sodass Sie sie in Terminal-Sitzungen nur sehen, wenn Sie scheinbar nicht am Terminal sind:2628 Die Typen `permission_prompt`, `idle_prompt`, `elicitation_dialog` und `elicitation_url_dialog` teilen ihr Timing mit Desktop-Benachrichtigungen, sodass Sie sie in Terminalsitzungen nur sehen, wenn Sie scheinbar nicht am Terminal sind:

2603 2629 

2604 * Rechnen Sie mit `permission_prompt`, sobald Sie seit etwa sechs Sekunden nichts eingegeben haben. Der Timer startet, wenn die Berechtigungsabfrage erscheint, und jeder Tastendruck schiebt ihn auf. Um einen Hook sofort auszuführen, wenn Claude um Erlaubnis zur Nutzung eines Tools bittet, verwenden Sie stattdessen [PermissionRequest](#permissionrequest).2630 * Rechnen Sie mit `permission_prompt`, sobald Sie seit etwa sechs Sekunden nichts eingegeben haben. Der Timer beginnt, wenn die Berechtigungsabfrage erscheint, und jeder Tastendruck verschiebt ihn. Um einen Hook sofort auszuführen, wenn Claude um Berechtigung für die Nutzung eines Tools bittet, verwenden Sie stattdessen [PermissionRequest](#permissionrequest).

2605 * Rechnen Sie mit `idle_prompt` etwa 60 Sekunden, nachdem Claude die Antwort beendet hat, und nur, wenn Sie seitdem nichts eingegeben haben und kein Hintergrundagent, etwa ein [Subagent](/docs/de/sub-agents) im Hintergrund, noch läuft. Claude Code sendet `idle_prompt` nicht, während es auf das Zurücksetzen eines claude.ai-Nutzungslimits wartet. Wenn die Wartezeit von selbst endet, wird stattdessen einer der `quota_auto_resume_*`-Typen ausgelöst.2631 * Rechnen Sie mit `idle_prompt` etwa 60 Sekunden, nachdem Claude seine Antwort beendet hat, und nur, wenn Sie seitdem nichts eingegeben haben und kein Hintergrundagent, etwa ein [Subagent](/docs/de/sub-agents) im Hintergrund, noch läuft. Claude Code sendet `idle_prompt` nicht, während es darauf wartet, dass ein claude.ai-Nutzungslimit zurückgesetzt wird. Wenn die Wartezeit von selbst endet, wird stattdessen einer der Typen `quota_auto_resume_*` ausgelöst.

2606 * Rechnen Sie mit `elicitation_dialog` für ein Elicitation-Formular oder mit `elicitation_url_dialog` für eine Browser-URL-Anfrage, sobald Sie seit etwa sechs Sekunden nichts eingegeben haben. Beide teilen dieselbe Sechs-Sekunden-Schwelle wie `permission_prompt`: Der Timer startet, wenn der Dialog erscheint, und jeder Tastendruck schiebt ihn auf.2632 * Rechnen Sie mit `elicitation_dialog` für ein Elicitation-Formular oder `elicitation_url_dialog` für eine Browser-URL-Anfrage, sobald Sie seit etwa sechs Sekunden nichts eingegeben haben. Beide teilen dieselbe Sechs-Sekunden-Schwelle wie `permission_prompt`: Der Timer beginnt, wenn der Dialog erscheint, und jeder Tastendruck verschiebt ihn.

2607 2633 

2608 Eine Berechtigungsanfrage oder Elicitation, die eintrifft, während ein anderer Dialog angezeigt wird, behält dieselbe Sechs-Sekunden-Schwelle, gemessen ab dem Eintreffen der Anfrage. Ihre Benachrichtigung kann Sie erreichen, während die Anfrage noch hinter dem geöffneten Dialog wartet.2634 Eine Berechtigungsanfrage oder Elicitation, die eintrifft, während ein anderer Dialog angezeigt wird, behält dieselbe Sechs-Sekunden-Schwelle, gemessen ab dem Eintreffen der Anfrage. Ihre Benachrichtigung kann Sie erreichen, während die Anfrage noch hinter dem geöffneten Dialog wartet.

2609</Note>2635</Note>

2610 2636 

2611Claude Code taktet `permission_prompt` anders in Sitzungen, in denen es Berechtigungsanfragen an den [`canUseTool`-Callback](/docs/de/agent-sdk/user-input) des Agent SDK sendet, auf diese Weise hosten Claude Desktop und die VS Code-Erweiterung Claude Code:2637Claude Code taktet `permission_prompt` anders in Sitzungen, in denen es Berechtigungsanfragen an den [`canUseTool`-Callback](/docs/de/agent-sdk/user-input) des Agent SDK sendet, so wie Claude Desktop und die VS Code-Erweiterung Claude Code hosten:

2612 2638 

2613* Rechnen Sie mit `permission_prompt` etwa sechs Sekunden, nachdem Claude um Erlaubnis bittet. Claude Code schiebt es nicht auf, während Sie tippen.2639* Rechnen Sie mit `permission_prompt` etwa sechs Sekunden, nachdem Claude um Berechtigung gebeten hat. Claude Code verschiebt es nicht, während Sie tippen.

2614* Wenn Sie oder ein [PermissionRequest](#permissionrequest)-Hook früher antworten, führt Claude Code `permission_prompt` nicht aus.2640* Wenn Sie oder ein [PermissionRequest](#permissionrequest)-Hook früher antworten, führt Claude Code `permission_prompt` nicht aus.

2615* Setzen Sie [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/de/env-vars) auf `1`, um `permission_prompt` in diesen Sitzungen auszuschalten.2641* Setzen Sie [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/de/env-vars) auf `1`, um `permission_prompt` in diesen Sitzungen auszuschalten.

2616 2642 

2617Vor v2.1.233 wurde `permission_prompt` in diesen Sitzungen nicht ausgelöst.2643Vor v2.1.233 wurde `permission_prompt` in diesen Sitzungen nicht ausgelöst.

2618 2644 

2619Verwenden Sie separate Matcher, um je nach Benachrichtigungstyp unterschiedliche Handler auszuführen. Diese Konfiguration löst ein berechtigungsspezifisches Warnskript aus, wenn Claude eine Genehmigung für eine Berechtigung benötigt, und eine andere Benachrichtigung, wenn Claude inaktiv ist:2645Verwenden Sie separate Matcher, um je nach Benachrichtigungstyp unterschiedliche Handler auszuführen. Diese Konfiguration löst ein berechtigungsspezifisches Warnskript aus, wenn Claude eine Berechtigungsgenehmigung benötigt, und eine andere Benachrichtigung, wenn Claude untätig war:

2620 2646 

2621```json theme={null}2647```json theme={null}

2622{2648{


2649 Notification-Eingabe2675 Notification-Eingabe

2650</h4>2676</h4>

2651 2677 

2652Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten Notification-Hooks `message` mit dem Benachrichtigungstext, einen optionalen `title` und `notification_type`, das angibt, welcher Typ ausgelöst wurde.2678Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten Notification-Hooks `message` mit dem Benachrichtigungstext, einen optionalen `title` und `notification_type`, das angibt, welcher Typ ausgelöst wurde.

2653 2679 

2654```json theme={null}2680```json theme={null}

2655{2681{


2669 SubagentStart2695 SubagentStart

2670</h3>2696</h3>

2671 2697 

2672Wird ausgeführt, wenn Claude mit dem Agent-Tool einen Subagenten startet, wenn Claude [einen Subagenten fortsetzt](/docs/de/sub-agents#resume-subagents), und jedes Mal, wenn ein In-Process-Teammitglied eines [Agent-Teams](/docs/de/agent-teams) eine neue Nachricht bearbeitet. Unterstützt Matcher zum Filtern nach dem Namen des Agententyps. Bei integrierten Agenten ist dies der Agentenname wie `general-purpose`, `Explore` oder `Plan`. Bei [benutzerdefinierten Subagenten](/docs/de/sub-agents) ist dies das Feld `name` aus dem Frontmatter des Agenten, nicht der Dateiname.2698Läuft, wenn Claude mit dem Agent-Tool einen Subagenten startet, wenn Claude [einen Subagenten fortsetzt](/docs/de/sub-agents#resume-subagents) und jedes Mal, wenn ein In-Process-Teammitglied eines [Agent-Teams](/docs/de/agent-teams) eine neue Nachricht bearbeitet. Unterstützt Matcher, um nach dem Namen des Agententyps zu filtern. Bei integrierten Agenten ist dies der Agentenname wie `general-purpose`, `Explore` oder `Plan`. Bei [benutzerdefinierten Subagenten](/docs/de/sub-agents) ist dies das Feld `name` aus dem Frontmatter des Agenten, nicht der Dateiname.

2673 2699 

2674Bei Subagenten, die von einem [Plugin](/docs/de/plugins/overview) bereitgestellt werden, ist der Agententyp der Plugin-bezogene Bezeichner wie `my-plugin:reviewer`, nicht der reine Frontmatter-Name. Der Doppelpunkt führt einen Plugin-bezogenen Namen auf den Pfad für reguläre Ausdrücke, verankern Sie den Matcher daher für eine exakte Übereinstimmung mit `^` und `$`: `^my-plugin:reviewer$`.2700Bei Subagenten, die von einem [Plugin](/docs/de/plugins/overview) bereitgestellt werden, ist der Agententyp der Plugin-bezogene Bezeichner wie `my-plugin:reviewer`, nicht der reine Frontmatter-Name. Der Doppelpunkt führt einen Plugin-bezogenen Namen auf den Pfad für reguläre Ausdrücke, verankern Sie den Matcher daher für eine exakte Übereinstimmung mit `^` und `$`: `^my-plugin:reviewer$`.

2675 2701 


2677 SubagentStart-Eingabe2703 SubagentStart-Eingabe

2678</h4>2704</h4>

2679 2705 

2680Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten SubagentStart-Hooks `agent_id` mit dem eindeutigen Bezeichner des Subagenten und `agent_type` mit dem Agentennamen, nach dem der Matcher filtert.2706Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten SubagentStart-Hooks `agent_id` mit dem eindeutigen Bezeichner des Subagenten und `agent_type` mit dem Agentennamen, nach dem der Matcher filtert.

2681 2707 

2682```json theme={null}2708```json theme={null}

2683{2709{


2690}2716}

2691```2717```

2692 2718 

2693SubagentStart-Hooks können die Erstellung des Subagenten nicht blockieren, aber Kontext in den Subagenten einfügen. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen, können Sie Folgendes zurückgeben:2719SubagentStart-Hooks können die Erstellung von Subagenten nicht blockieren, aber Kontext in den Subagenten einfügen. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen, können Sie Folgendes zurückgeben:

2694 2720 

2695| Feld | Beschreibung |2721| Feld | Beschreibung |

2696| :- | :- |2722| :- | :- |


2705}2731}

2706```2732```

2707 2733 

2708Wenn der Hook für denselben Subagenten erneut läuft, fügt Claude Code den zurückgegebenen Kontext nur ein, wenn der Kontext des Subagenten die Kopie aus einem früheren Lauf nicht bereits enthält. Die beim Start eingefügte Kopie bleibt bestehen, wodurch der [Prompt-Cache](/docs/de/prompt-caching#subagents-and-the-cache) des Subagenten intakt bleibt. Nachdem die [automatische Komprimierung](/docs/de/sub-agents#auto-compaction) diese Kopie verworfen hat, fügt Claude Code den Kontext des nächsten Laufs erneut ein.2734Wenn der Hook für denselben Subagenten erneut läuft, fügt Claude Code den zurückgegebenen Kontext nur ein, wenn der Kontext des Subagenten die Kopie aus einem früheren Lauf nicht bereits enthält. Die beim Start eingefügte Kopie bleibt bestehen, sodass der [Prompt-Cache](/docs/de/prompt-caching#subagents-and-the-cache) des Subagenten intakt bleibt. Nachdem die [automatische Komprimierung](/docs/de/sub-agents#auto-compaction) diese Kopie verworfen hat, fügt Claude Code den Kontext des nächsten Laufs erneut ein.

2709 2735 

2710<h3 id="subagentstop">2736<h3 id="subagentstop">

2711 SubagentStop2737 SubagentStop

2712</h3>2738</h3>

2713 2739 

2714Wird ausgeführt, wenn ein Claude Code-Subagent seine Antwort beendet hat. Matcht auf den Agententyp, mit denselben Werten wie SubagentStart.2740Läuft, wenn ein Subagent von Claude Code seine Antwort beendet hat. Matcht auf den Agententyp, mit denselben Werten wie SubagentStart.

2715 2741 

2716<h4 id="subagentstop-input">2742<h4 id="subagentstop-input">

2717 SubagentStop-Eingabe2743 SubagentStop-Eingabe

2718</h4>2744</h4>

2719 2745 

2720Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten SubagentStop-Hooks `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` und `last_assistant_message`. Das Feld `agent_type` ist der Wert, der zum Filtern durch den Matcher verwendet wird. `transcript_path` ist das Transkript der Hauptsitzung, während `agent_transcript_path` das eigene Transkript des Subagenten ist, das in einem verschachtelten Ordner `subagents/` gespeichert ist. Das Feld `last_assistant_message` enthält den Textinhalt der letzten Antwort des Subagenten, sodass Hooks darauf zugreifen können, ohne die Transkriptdatei zu parsen.2746Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten SubagentStop-Hooks `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` und `last_assistant_message`. Das Feld `agent_type` ist der Wert, nach dem der Matcher filtert. `transcript_path` ist das Transkript der Hauptsitzung, während `agent_transcript_path` das eigene Transkript des Subagenten ist, das in einem verschachtelten Ordner `subagents/` gespeichert wird. Das Feld `last_assistant_message` enthält den Textinhalt der letzten Antwort des Subagenten, sodass Hooks darauf zugreifen können, ohne die Transkriptdatei zu parsen.

2721 2747 

2722Nicht jedes SubagentStop-Ereignis stammt von einem Subagenten, den Claude gestartet hat. Claude Code führt für einige eigene Funktionen auch interne Agenten aus, etwa für [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) und [`/btw`-Nebenfragen](/docs/de/interactive-mode#side-questions-with-%2Fbtw), und SubagentStop wird auch ausgelöst, wenn einer davon beendet wird. Bei diesen Ereignissen ist `agent_type` der Agentenname, als der die Sitzung selbst läuft, etwa einer, der mit [`--agent`](/docs/de/cli-reference#cli-flags) oder der [Einstellung `agent`](/docs/de/settings-reference#agent) festgelegt wurde, und ein leerer String, wenn die Sitzung ohne einen läuft.2748Nicht jedes SubagentStop-Ereignis stammt von einem Subagenten, den Claude gestartet hat. Claude Code führt für einige seiner eigenen Funktionen auch interne Agenten aus, etwa für [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) und [`/btw`-Nebenfragen](/docs/de/interactive-mode#side-questions-with-%2Fbtw), und SubagentStop wird auch ausgelöst, wenn einer dieser Agenten fertig ist. Bei diesen Ereignissen ist `agent_type` der Agentenname, unter dem die Sitzung selbst läuft, etwa einer, der mit [`--agent`](/docs/de/cli-reference#cli-flags) oder der [Einstellung `agent`](/docs/de/settings-reference#agent) festgelegt wurde, und ein leerer String, wenn die Sitzung ohne einen solchen läuft.

2723 2749 

2724Ein `matcher`, der Agententypen benennt, passt nicht auf einen leeren `agent_type`. Ein Hook, dessen Matcher weggelassen, `""` oder `"*"` ist oder ein regulärer Ausdruck ist, der auf einen leeren String passt, läuft auch für Ereignisse mit leerem `agent_type`.2750Ein `matcher`, der Agententypen nennt, passt nicht auf einen leeren `agent_type`. Ein Hook, dessen Matcher weggelassen wurde, `""` oder `"*"` ist oder ein regulärer Ausdruck ist, der auf einen leeren String passt, läuft auch für Ereignisse mit leerem `agent_type`.

2725 2751 

2726Ab Claude Code v2.1.271 liefert ein Subagent, der mit dem Tool [`SubagentHandback`](/docs/de/tools-reference) läuft, seinen Bericht über dieses Tool, bevor er stoppt. Das Feld `last_assistant_message` enthält dann den abschließenden Text des Subagenten, falls vorhanden, der nicht der gelieferte Bericht ist. Der Bericht ist die `message`-Eingabe dieses Aufrufs, die ein `PreToolUse`- oder `PostToolUse`-Hook mit dem Matcher `SubagentHandback` als `tool_input.message` erhält.2752Ab Claude Code v2.1.271 liefert ein Subagent, der mit dem Tool [`SubagentHandback`](/docs/de/tools-reference) läuft, seinen Bericht über dieses Tool, bevor er stoppt. Das Feld `last_assistant_message` enthält dann den abschließenden Text des Subagenten, falls vorhanden, und nicht den gelieferten Bericht. Der Bericht ist die `message`-Eingabe dieses Aufrufs, die ein `PreToolUse`- oder `PostToolUse`-Hook mit dem Matcher `SubagentHandback` als `tool_input.message` erhält.

2727 2753 

2728SubagentStop-Hooks erhalten außerdem die Arrays `background_tasks` und `session_crons`, die unter [Stop-Eingabe](#stop-input) beschrieben sind. Beide Arrays beziehen sich auf die übergeordnete Sitzung, nicht auf den Subagenten.2754SubagentStop-Hooks erhalten außerdem die Arrays `background_tasks` und `session_crons`, die unter [Stop-Eingabe](#stop-input) beschrieben sind. Beide Arrays beziehen sich auf die übergeordnete Sitzung, nicht auf den Subagenten.

2729 2755 


2744}2770}

2745```2771```

2746 2772 

2747SubagentStop-Hooks verwenden dasselbe Format zur Entscheidungssteuerung wie [Stop-Hooks](#stop-decision-control), einschließlich `hookSpecificOutput.additionalContext` mit `hookEventName` auf `"SubagentStop"` gesetzt, für Feedback ohne Fehlercharakter, das den Subagenten weiterlaufen lässt. Die Rückgabe von `decision: "block"` mit einem `reason` hält den Subagenten am Laufen und liefert `reason` als nächste Anweisung an den Subagenten. Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, liefert seine stderr-Nachricht auf dieselbe Weise. Um nach der Rückkehr eines Subagenten Kontext in die übergeordnete Sitzung einzufügen, verwenden Sie stattdessen einen [`PostToolUse`](#posttooluse)-Hook für das Tool `Agent`.2773SubagentStop-Hooks verwenden dasselbe Format zur Entscheidungssteuerung wie [Stop-Hooks](#stop-decision-control), einschließlich `hookSpecificOutput.additionalContext` mit `hookEventName` auf `"SubagentStop"` gesetzt, für Feedback ohne Fehlercharakter, das den Subagenten weiterlaufen lässt. Die Rückgabe von `decision: "block"` mit einem `reason` lässt den Subagenten weiterlaufen und übergibt `reason` als nächste Anweisung an den Subagenten. Ein Hook, der durch Exit-Code 2 blockiert, übergibt seine stderr-Meldung auf dieselbe Weise. Um nach der Rückkehr eines Subagenten Kontext in die übergeordnete Sitzung einzufügen, verwenden Sie stattdessen einen [`PostToolUse`](#posttooluse)-Hook für das Tool `Agent`.

2748 2774 

2749<h3 id="taskcreated">2775<h3 id="taskcreated">

2750 TaskCreated2776 TaskCreated

2751</h3>2777</h3>

2752 2778 

2753Wird ausgeführt, wenn eine Aufgabe über das Tool `TaskCreate` erstellt wird. Verwenden Sie dies, um Namenskonventionen durchzusetzen, Aufgabenbeschreibungen zu verlangen oder die Erstellung bestimmter Aufgaben zu verhindern. In einer [Sitzung ohne die Task-Tools](/docs/de/tools-reference#task-tool-availability) wird dieses Ereignis nicht ausgelöst.2779Läuft, wenn eine Aufgabe über das Tool `TaskCreate` erstellt wird. Verwenden Sie dies, um Namenskonventionen durchzusetzen, Aufgabenbeschreibungen zu verlangen oder das Erstellen bestimmter Aufgaben zu verhindern. In einer [Sitzung ohne die Task-Tools](/docs/de/tools-reference#task-tool-availability) wird dieses Ereignis nicht ausgelöst.

2754 2780 

2755TaskCreated-Hooks unterstützen keine Matcher und werden bei jedem Vorkommen ausgelöst.2781TaskCreated-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.

2756 2782 

2757<h4 id="taskcreated-input">2783<h4 id="taskcreated-input">

2758 TaskCreated-Eingabe2784 TaskCreated-Eingabe

2759</h4>2785</h4>

2760 2786 

2761Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten TaskCreated-Hooks `task_id`, `task_subject` und optional `task_description`, `teammate_name` und `team_name`.2787Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten TaskCreated-Hooks `task_id`, `task_subject` und optional `task_description`, `teammate_name` und `team_name`.

2762 2788 

2763```json theme={null}2789```json theme={null}

2764{2790{


2776 2802 

2777| Feld | Beschreibung |2803| Feld | Beschreibung |

2778| :- | :- |2804| :- | :- |

2779| `task_id` | Bezeichner der zu erstellenden Aufgabe |2805| `task_id` | Bezeichner der Aufgabe, die erstellt wird |

2780| `task_subject` | Titel der Aufgabe |2806| `task_subject` | Titel der Aufgabe |

2781| `task_description` | Ausführliche Beschreibung der Aufgabe. Kann fehlen |2807| `task_description` | Ausführliche Beschreibung der Aufgabe. Kann fehlen |

2782| `teammate_name` | Name des Teammitglieds, das die Aufgabe erstellt. Kann fehlen |2808| `teammate_name` | Name des Teammitglieds, das die Aufgabe erstellt. Kann fehlen |

2783| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |2809| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |

2784| `agent_id` | Bei diesem Ereignis identifiziert das [gemeinsame Eingabefeld](#common-input-fields) den Subagenten oder das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das die Aufgabe erstellt. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |2810| `agent_id` | Bei diesem Ereignis identifiziert das [allgemeine Eingabefeld](#common-input-fields) den Subagenten oder das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das die Aufgabe erstellt. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |

2785 2811 

2786<h4 id="taskcreated-decision-control">2812<h4 id="taskcreated-decision-control">

2787 TaskCreated-Entscheidungssteuerung2813 TaskCreated-Entscheidungssteuerung

2788</h4>2814</h4>

2789 2815 

2790Ein TaskCreated-Hook kann die Erstellung mit Exit-Code 2 oder mit einer JSON-Entscheidung blockieren. In beiden Fällen löscht Claude Code die Aufgabe und gibt Ihre Nachricht als Fehler des Tools an Claude zurück. Claude Code ignoriert `continue: false` bei diesem Ereignis, und Claude arbeitet weiter.2816Ein TaskCreated-Hook kann die Erstellung mit Exit-Code 2 oder mit einer JSON-Entscheidung blockieren. In beiden Fällen löscht Claude Code die Aufgabe und gibt Ihre Meldung als Fehler des Tools an Claude zurück. Claude Code ignoriert `continue: false` bei diesem Ereignis, und Claude arbeitet weiter.

2791 2817 

2792* **Exit-Code 2**: Claude Code gibt den stderr-Text als Nachricht zurück.2818* **Exit-Code 2**: Claude Code gibt den stderr-Text als Meldung zurück.

2793* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code gibt `reason` als Nachricht zurück.2819* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code gibt `reason` als Meldung zurück.

2794 2820 

2795Dieses Beispiel blockiert Aufgaben, deren Betreff nicht dem erforderlichen Format entspricht:2821Dieses Beispiel blockiert Aufgaben, deren Betreff nicht dem erforderlichen Format entspricht:

2796 2822 


2811 TaskCompleted2837 TaskCompleted

2812</h3>2838</h3>

2813 2839 

2814Wird ausgeführt, wenn eine Aufgabe als abgeschlossen markiert wird. Dies geschieht in zwei Situationen: wenn ein beliebiger Agent eine Aufgabe über das TaskUpdate-Tool explizit als abgeschlossen markiert, oder wenn ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) seinen Turn mit laufenden Aufgaben beendet. Verwenden Sie dies, um Abschlusskriterien wie bestandene Tests oder Lint-Prüfungen durchzusetzen, bevor eine Aufgabe geschlossen werden kann.2840Läuft, wenn eine Aufgabe als abgeschlossen markiert wird. Dies wird in zwei Situationen ausgelöst: wenn ein beliebiger Agent eine Aufgabe über das TaskUpdate-Tool explizit als abgeschlossen markiert, oder wenn ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) seinen Turn mit laufenden Aufgaben beendet. Verwenden Sie dies, um Abschlusskriterien wie bestandene Tests oder Lint-Prüfungen durchzusetzen, bevor eine Aufgabe geschlossen werden kann.

2815 2841 

2816TaskCompleted-Hooks unterstützen keine Matcher und werden bei jedem Vorkommen ausgelöst.2842TaskCompleted-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.

2817 2843 

2818<h4 id="taskcompleted-input">2844<h4 id="taskcompleted-input">

2819 TaskCompleted-Eingabe2845 TaskCompleted-Eingabe

2820</h4>2846</h4>

2821 2847 

2822Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten TaskCompleted-Hooks `task_id`, `task_subject` und optional `task_description`, `teammate_name` und `team_name`.2848Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten TaskCompleted-Hooks `task_id`, `task_subject` und optional `task_description`, `teammate_name` und `team_name`.

2823 2849 

2824```json theme={null}2850```json theme={null}

2825{2851{


2838 2864 

2839| Feld | Beschreibung |2865| Feld | Beschreibung |

2840| :- | :- |2866| :- | :- |

2841| `task_id` | Bezeichner der abzuschließenden Aufgabe |2867| `task_id` | Bezeichner der Aufgabe, die abgeschlossen wird |

2842| `task_subject` | Titel der Aufgabe |2868| `task_subject` | Titel der Aufgabe |

2843| `task_description` | Ausführliche Beschreibung der Aufgabe. Kann fehlen |2869| `task_description` | Ausführliche Beschreibung der Aufgabe. Kann fehlen |

2844| `teammate_name` | Name des Teammitglieds, das die Aufgabe abschließt. Kann fehlen |2870| `teammate_name` | Name des Teammitglieds, das die Aufgabe abschließt. Kann fehlen |

2845| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |2871| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |

2846| `agent_id` | Bei diesem Ereignis identifiziert das [gemeinsame Eingabefeld](#common-input-fields) den Subagenten oder das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das die Aufgabe abschließt. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |2872| `agent_id` | Bei diesem Ereignis identifiziert das [allgemeine Eingabefeld](#common-input-fields) den Subagenten oder das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das die Aufgabe abschließt. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |

2847 2873 

2848<h4 id="taskcompleted-decision-control">2874<h4 id="taskcompleted-decision-control">

2849 TaskCompleted-Entscheidungssteuerung2875 TaskCompleted-Entscheidungssteuerung

2850</h4>2876</h4>

2851 2877 

2852TaskCompleted-Hooks unterstützen zwei Arten, den Abschluss einer Aufgabe zu steuern:2878TaskCompleted-Hooks unterstützen zwei Möglichkeiten, den Aufgabenabschluss zu steuern:

2853 2879 

2854* **Exit-Code 2**: Die Aufgabe wird nicht als abgeschlossen markiert, und die stderr-Nachricht wird dem Modell als Feedback zurückgegeben.2880* **Exit-Code 2**: Die Aufgabe wird nicht als abgeschlossen markiert, und die stderr-Meldung wird dem Modell als Feedback zurückgegeben.

2855* **JSON `{"continue": false, "stopReason": "..."}`**: Wenn ein Teammitglied, das seinen Turn beendet, das Ereignis ausgelöst hat, wird das Teammitglied vollständig gestoppt, entsprechend dem Verhalten des `Stop`-Hooks. Der `stopReason` wird dem Benutzer angezeigt. Wenn das Tool `TaskUpdate` das Ereignis ausgelöst hat, ignoriert Claude Code `continue: false`; Exit-Code 2 blockiert den Abschluss weiterhin.2881* **JSON `{"continue": false, "stopReason": "..."}`**: Wenn ein Teammitglied, das seinen Turn beendet, das Ereignis ausgelöst hat, wird das Teammitglied vollständig gestoppt, entsprechend dem Verhalten des `Stop`-Hooks. Der `stopReason` wird dem Benutzer angezeigt. Wenn das Tool `TaskUpdate` das Ereignis ausgelöst hat, ignoriert Claude Code `continue: false`; Exit-Code 2 blockiert den Abschluss weiterhin.

2856 2882 

2857Dieses Beispiel führt Tests aus und blockiert den Abschluss der Aufgabe, wenn sie fehlschlagen:2883Dieses Beispiel führt Tests aus und blockiert den Aufgabenabschluss, wenn sie fehlschlagen:

2858 2884 

2859```bash theme={null}2885```bash theme={null}

2860#!/bin/bash2886#!/bin/bash


2874 Stop2900 Stop

2875</h3>2901</h3>

2876 2902 

2877Wird ausgeführt, wenn der Haupt-Agent von Claude Code seine Antwort beendet hat. Wird nicht ausgeführt, wenn2903Läuft, wenn der Hauptagent von Claude Code seine Antwort beendet hat. Läuft nicht, wenn

2878das Anhalten durch eine Unterbrechung des Benutzers erfolgte. API-Fehler lösen stattdessen2904der Stopp durch eine Unterbrechung des Benutzers erfolgte. API-Fehler lösen

2879[StopFailure](#stopfailure) aus.2905stattdessen [StopFailure](#stopfailure) aus.

2880 2906 

2881<Tip>2907<Tip>

2882 Der Befehl [`/goal`](/docs/de/goal) ist eine integrierte Abkürzung für einen sitzungsbezogenen, Prompt-basierten Stop-Hook. Verwenden Sie ihn, wenn Claude auf eine Bedingung hinarbeiten soll, ohne dass Sie eine Hook-Konfiguration schreiben.2908 Der Befehl [`/goal`](/docs/de/goal) ist eine integrierte Abkürzung für einen sitzungsbezogenen, Prompt-basierten Stop-Hook. Verwenden Sie ihn, wenn Claude auf eine Bedingung hinarbeiten soll, ohne dass Sie eine Hook-Konfiguration schreiben.


2886 Stop-Eingabe2912 Stop-Eingabe

2887</h4>2913</h4>

2888 2914 

2889Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten Stop-Hooks `stop_hook_active`, `last_assistant_message`, `background_tasks` und `session_crons`. Das Feld `stop_hook_active` ist `true`, wenn Claude Code bereits aufgrund eines Stop-Hooks fortfährt. Prüfen Sie diesen Wert oder verarbeiten Sie das Transkript, um nicht auf eine Bedingung zu blockieren, die sich nie auflöst.2915Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten Stop-Hooks `stop_hook_active`, `last_assistant_message`, `background_tasks` und `session_crons`. Das Feld `stop_hook_active` ist `true`, wenn Claude Code bereits aufgrund eines Stop-Hooks fortfährt. Prüfen Sie diesen Wert oder verarbeiten Sie das Transkript, um nicht auf eine Bedingung hin zu blockieren, die sich nie auflöst.

2890 2916 

2891Claude Code wendet eine Obergrenze von 8 aufeinanderfolgenden Fortsetzungen an: Nachdem Stop-Hooks den Turn achtmal hintereinander fortgesetzt haben, überschreibt Claude Code die nächste Blockierung und beendet den Turn. Die Anzahl aufeinanderfolgender Fortsetzungen wird jedes Mal zurückgesetzt, wenn Claude ein Tool aufruft. Um die Obergrenze zu erhöhen, setzen Sie [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/de/env-vars).2917Claude Code wendet eine Obergrenze von 8 aufeinanderfolgenden Fortsetzungen an: Nachdem Stop-Hooks den Turn achtmal in Folge fortgesetzt haben, überschreibt Claude Code die nächste Blockierung und beendet den Turn. Der Zähler aufeinanderfolgender Fortsetzungen wird jedes Mal zurückgesetzt, wenn Claude ein Tool aufruft. Um die Obergrenze anzuheben, setzen Sie [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/de/env-vars).

2892 2918 

2893Das Feld `last_assistant_message` enthält den Textinhalt von Claudes letzter Antwort, sodass Hooks darauf zugreifen können, ohne die Transkriptdatei zu parsen. Für Hooks, die auf den gerade abgeschlossenen Turn reagieren, etwa Vorlese- oder Benachrichtigungs-Hooks, verwenden Sie dieses Feld statt `transcript_path` zu lesen: Es ist nicht in allen Versionen garantiert, dass die Transkriptdatei zum Zeitpunkt von Stop die letzte Nachricht enthält.2919Das Feld `last_assistant_message` enthält den Textinhalt von Claudes letzter Antwort, sodass Hooks darauf zugreifen können, ohne die Transkriptdatei zu parsen. Für Hooks, die auf den gerade abgeschlossenen Turn reagieren, etwa Vorlese- oder Benachrichtigungs-Hooks, verwenden Sie dieses Feld, statt `transcript_path` zu lesen: Es ist nicht in allen Versionen garantiert, dass die Transkriptdatei zum Zeitpunkt von Stop die letzte Nachricht enthält.

2894 2920 

2895Mit den Arrays `background_tasks` und `session_crons` können Hooks unterscheiden zwischen „Sitzung ist fertig“ und „Sitzung ist pausiert und wartet darauf, dass Hintergrundarbeit sie wieder aufweckt“. Beide Arrays sind vorhanden, wenn die Aufgabenregistrierung erreichbar ist, und leer, wenn nichts läuft oder geplant ist.2921Mit den Arrays `background_tasks` und `session_crons` können Hooks zwischen „Sitzung ist fertig“ und „Sitzung ist pausiert und wartet darauf, dass Hintergrundarbeit sie wieder aufweckt“ unterscheiden. Beide Arrays sind vorhanden, wenn die Aufgabenregistrierung erreichbar ist, und leer, wenn nichts läuft oder geplant ist.

2896 2922 

2897Jeder Eintrag in `background_tasks` beschreibt eine laufende Aufgabe und verwendet diese Felder:2923Jeder Eintrag in `background_tasks` beschreibt eine laufende Aufgabe und verwendet diese Felder:

2898 2924 

2899| Feld | Beschreibung |2925| Feld | Beschreibung |

2900| :- | :- |2926| :- | :- |

2901| `id` | Aufgabenbezeichner |2927| `id` | Aufgabenbezeichner |

2902| `type` | Lesbare Bezeichnung des Aufgabentyps wie `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` oder `MCP task`. Jede Bezeichnung gibt an, welche Claude Code-Funktion die Aufgabe erstellt hat. Bei nicht erkannten Typen wird auf den rohen Diskriminator zurückgegriffen |2928| `type` | Lesbare Bezeichnung des Aufgabentyps wie `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` oder `MCP task`. Jede Bezeichnung gibt an, welche Funktion von Claude Code die Aufgabe erstellt hat. Bei nicht erkannten Typen wird auf den rohen Diskriminator zurückgegriffen |

2903| `status` | Aktueller Aufgabenstatus |2929| `status` | Aktueller Aufgabenstatus |

2904| `description` | Freitextbeschreibung, begrenzt auf 1000 Zeichen, mit einer Markierung `… [+N chars]` im String, wenn gekürzt |2930| `description` | Freitextbeschreibung, auf 1000 Zeichen begrenzt, mit einer Markierung `… [+N chars]` im String, wenn gekürzt |

2905| `command` | Shell-Befehlszeile, begrenzt auf 1000 Zeichen. Nur bei `shell`-Aufgaben vorhanden |2931| `command` | Shell-Befehlszeile, auf 1000 Zeichen begrenzt. Nur bei `shell`-Aufgaben vorhanden |

2906| `agent_type` | Name des Subagententyps. Nur bei `subagent`-Aufgaben vorhanden |2932| `agent_type` | Name des Subagententyps. Nur bei `subagent`-Aufgaben vorhanden |

2907| `server` | Name des MCP-Servers. Nur bei `monitor`- und `MCP task`-Aufgaben vorhanden |2933| `server` | Name des MCP-Servers. Nur bei `monitor`- und `MCP task`-Aufgaben vorhanden |

2908| `tool` | Name des MCP-Tools. Nur bei `monitor`- und `MCP task`-Aufgaben vorhanden |2934| `tool` | Name des MCP-Tools. Nur bei `monitor`- und `MCP task`-Aufgaben vorhanden |

2909| `name` | Name des Workflows. Nur bei `workflow`-Aufgaben vorhanden |2935| `name` | Workflow-Name. Nur bei `workflow`-Aufgaben vorhanden |

2910 2936 

2911Jeder Eintrag in `session_crons` beschreibt ein sitzungsbezogenes, geplantes Aufwecken, das aus `CronCreate`, `ScheduleWakeup` und `/loop` stammt:2937Jeder Eintrag in `session_crons` beschreibt ein sitzungsbezogenes geplantes Aufwecken, das aus `CronCreate`, `ScheduleWakeup` und `/loop` stammt:

2912 2938 

2913| Feld | Beschreibung |2939| Feld | Beschreibung |

2914| :- | :- |2940| :- | :- |

2915| `id` | Bezeichner der Cron-Aufgabe |2941| `id` | Bezeichner der Cron-Aufgabe |

2916| `schedule` | Cron-Ausdruck, zum Beispiel `0 9 * * 1-5` |2942| `schedule` | Cron-Ausdruck, zum Beispiel `0 9 * * 1-5` |

2917| `recurring` | `false` für einmalige Aufweckvorgänge, deren Zeitplan einen einzelnen Auslösezeitpunkt kodiert, `true` für Aufgaben, die bei jeder Übereinstimmung erneut ausgelöst werden |2943| `recurring` | `false` für einmalige Aufweckvorgänge, deren Zeitplan einen einzigen Auslösezeitpunkt kodiert, `true` für Aufgaben, die bei jeder Übereinstimmung erneut ausgelöst werden |

2918| `prompt` | Prompt, der beim Auslösen des Cron übermittelt wird, begrenzt auf 1000 Zeichen mit derselben Markierung `… [+N chars]` |2944| `prompt` | Prompt, der beim Auslösen des Cron-Jobs gesendet wird, auf 1000 Zeichen begrenzt, mit derselben Markierung `… [+N chars]` |

2919 2945 

2920Dieses Beispiel zeigt eine Stop-Eingabe mit einer laufenden Shell-Aufgabe und einem wiederkehrenden Cron:2946Dieses Beispiel zeigt eine Stop-Eingabe mit einer laufenden Shell-Aufgabe und einem wiederkehrenden Cron-Job:

2921 2947 

2922```json theme={null}2948```json theme={null}

2923{2949{


2957| Feld | Beschreibung |2983| Feld | Beschreibung |

2958| :- | :- |2984| :- | :- |

2959| `decision` | `"block"` verhindert, dass Claude stoppt. Weglassen, um Claude stoppen zu lassen |2985| `decision` | `"block"` verhindert, dass Claude stoppt. Weglassen, um Claude stoppen zu lassen |

2960| `reason` | Erforderlich, wenn `decision` `"block"` ist. Teilt Claude mit, warum es fortfahren soll |2986| `reason` | Erforderlich, wenn `decision` den Wert `"block"` hat. Teilt Claude mit, warum es fortfahren soll |

2961| `hookSpecificOutput.additionalContext` | Feedback ohne Fehlercharakter für Claude. Die Konversation wird fortgesetzt, damit Claude darauf reagieren kann, aber anders als bei `decision: "block"` wird es im Transkript als Hook-Feedback statt als Hook-Fehler angezeigt |2987| `hookSpecificOutput.additionalContext` | Feedback ohne Fehlercharakter für Claude. Die Konversation wird fortgesetzt, damit Claude darauf reagieren kann, aber anders als bei `decision: "block"` wird es im Transkript als Hook-Feedback statt als Hook-Fehler angezeigt |

2962 2988 

2963Ein Hook, der durch Beenden mit Exit-Code 2 blockiert, wird genauso weitergeleitet wie `reason`: Claude erhält die stderr-Nachricht als Erklärung, warum es fortfahren soll.2989Ein Hook, der durch Exit-Code 2 blockiert, wird genauso behandelt wie `reason`: Claude erhält die stderr-Meldung als Erklärung, warum es fortfahren soll.

2964 2990 

2965```json theme={null}2991```json theme={null}

2966{2992{


2969}2995}

2970```2996```

2971 2997 

2972Verwenden Sie `additionalContext`, wenn der Hook wie vorgesehen arbeitet und Claude Hinweise gibt, etwa „die Test-Suite vor dem Abschluss ausführen“. Es hält die Konversation über dieselben Schleifenschutzmechanismen wie `decision: "block"` am Laufen, nämlich die Eingabe `stop_hook_active` und die Obergrenze von 8 aufeinanderfolgenden Fortsetzungen, aber das Transkript kennzeichnet es als `Stop hook feedback`, und es wird keine Hook-Fehlerbenachrichtigung angezeigt:2998Verwenden Sie `additionalContext`, wenn der Hook wie vorgesehen arbeitet und Claude Hinweise gibt, etwa „Führe die Testsuite aus, bevor du fertig bist“. Es hält die Konversation mit denselben Schleifenschutzmechanismen wie `decision: "block"` am Laufen, nämlich der Eingabe `stop_hook_active` und der Obergrenze von 8 aufeinanderfolgenden Fortsetzungen, aber das Transkript kennzeichnet es als `Stop hook feedback`, und es wird keine Hook-Fehlerbenachrichtigung angezeigt:

2973 2999 

2974```json theme={null}3000```json theme={null}

2975{3001{


2984 StopFailure3010 StopFailure

2985</h3>3011</h3>

2986 3012 

2987Wird anstelle von [Stop](#stop) ausgeführt, wenn der Turn aufgrund eines API-Fehlers endet. Claude Code ignoriert die Ausgabe und den Exit-Code des Hooks, abgesehen von [`terminalSequence`](#emit-terminal-notifications). Verwenden Sie dies, um Fehler zu protokollieren, Warnungen zu senden oder Wiederherstellungsmaßnahmen zu ergreifen, wenn Claude eine Antwort aufgrund von Rate-Limits, Authentifizierungsproblemen oder anderen API-Fehlern nicht abschließen kann.3013Läuft anstelle von [Stop](#stop), wenn der Turn aufgrund eines API-Fehlers endet. Claude Code ignoriert die Ausgabe und den Exit-Code des Hooks, abgesehen von [`terminalSequence`](#emit-terminal-notifications). Verwenden Sie dies, um Fehler zu protokollieren, Warnungen zu senden oder Wiederherstellungsmaßnahmen zu ergreifen, wenn Claude eine Antwort aufgrund von Rate-Limits, Authentifizierungsproblemen oder anderen API-Fehlern nicht abschließen kann.

2988 3014 

2989<h4 id="stopfailure-input">3015<h4 id="stopfailure-input">

2990 StopFailure-Eingabe3016 StopFailure-Eingabe

2991</h4>3017</h4>

2992 3018 

2993Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten StopFailure-Hooks `error`, optional `error_details` und optional `last_assistant_message`. Das Feld `error` identifiziert den Fehlertyp und wird zum Filtern durch den Matcher verwendet.3019Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten StopFailure-Hooks `error`, optional `error_details` und optional `last_assistant_message`. Das Feld `error` identifiziert den Fehlertyp und wird für die Filterung durch den Matcher verwendet.

2994 3020 

2995| Feld | Beschreibung |3021| Feld | Beschreibung |

2996| :- | :- |3022| :- | :- |

2997| `error` | 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` oder `unknown` |3023| `error` | 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` oder `unknown` |

2998| `error_details` | Zusätzliche Details zum Fehler, sofern verfügbar |3024| `error_details` | Zusätzliche Details zum Fehler, sofern verfügbar |

2999| `last_assistant_message` | Der gerenderte Fehlertext, der in der Konversation angezeigt wird. Anders als bei `Stop` und `SubagentStop`, wo dieses Feld Claudes Konversationsausgabe enthält, enthält es bei `StopFailure` den API-Fehler-String selbst, etwa `"API Error: Rate limit reached"` |3025| `last_assistant_message` | Der gerenderte Fehlertext, der in der Konversation angezeigt wird. Anders als bei `Stop` und `SubagentStop`, wo dieses Feld Claudes Konversationsausgabe enthält, enthält es bei `StopFailure` den API-Fehlerstring selbst, etwa `"API Error: Rate limit reached"` |

3000 3026 

3001```json theme={null}3027```json theme={null}

3002{3028{


3010}3036}

3011```3037```

3012 3038 

3013StopFailure-Hooks haben keine Entscheidungssteuerung. Sie dienen ausschließlich Benachrichtigungs- und Protokollierungszwecken.3039StopFailure-Hooks haben keine Entscheidungssteuerung. Sie laufen nur zu Benachrichtigungs- und Protokollierungszwecken.

3014 3040 

3015<h3 id="teammateidle">3041<h3 id="teammateidle">

3016 TeammateIdle3042 TeammateIdle

3017</h3>3043</h3>

3018 3044 

3019Wird ausgeführt, wenn ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) nach dem Beenden seines Turns kurz davor ist, inaktiv zu werden. Verwenden Sie dies, um Qualitätsschranken durchzusetzen, bevor ein Teammitglied die Arbeit einstellt, etwa bestandene Lint-Prüfungen zu verlangen oder zu prüfen, ob Ausgabedateien existieren.3045Läuft, wenn ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) nach Beenden seines Turns gleich in den Leerlauf wechselt. Verwenden Sie dies, um Qualitätsschranken durchzusetzen, bevor ein Teammitglied aufhört zu arbeiten, etwa bestandene Lint-Prüfungen zu verlangen oder zu prüfen, ob Ausgabedateien existieren.

3020 3046 

3021TeammateIdle-Hooks unterstützen keine Matcher und werden bei jedem Vorkommen ausgelöst.3047TeammateIdle-Hooks unterstützen keine Matcher und werden bei jedem Auftreten ausgelöst.

3022 3048 

3023<h4 id="teammateidle-input">3049<h4 id="teammateidle-input">

3024 TeammateIdle-Eingabe3050 TeammateIdle-Eingabe

3025</h4>3051</h4>

3026 3052 

3027Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten TeammateIdle-Hooks `teammate_name` und `team_name`.3053Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten TeammateIdle-Hooks `teammate_name` und `team_name`.

3028 3054 

3029```json theme={null}3055```json theme={null}

3030{3056{


3040 3066 

3041| Feld | Beschreibung |3067| Feld | Beschreibung |

3042| :- | :- |3068| :- | :- |

3043| `teammate_name` | Name des Teammitglieds, das kurz davor ist, inaktiv zu werden |3069| `teammate_name` | Name des Teammitglieds, das gleich in den Leerlauf wechselt |

3044| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |3070| `team_name` | Veraltet. Aus der Sitzung abgeleiteter Teamname; wird in einem zukünftigen Release entfernt |

3045| `agent_id` | Bei diesem Ereignis identifiziert das [gemeinsame Eingabefeld](#common-input-fields) das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das kurz davor ist, inaktiv zu werden. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |3071| `agent_id` | Bei diesem Ereignis identifiziert das [allgemeine Eingabefeld](#common-input-fields) das [In-Process-Teammitglied](/docs/de/agent-teams#choose-a-display-mode), das gleich in den Leerlauf wechselt. Kann fehlen. Erfordert Claude Code v2.1.290 oder höher |

3046 3072 

3047<h4 id="teammateidle-decision-control">3073<h4 id="teammateidle-decision-control">

3048 TeammateIdle-Entscheidungssteuerung3074 TeammateIdle-Entscheidungssteuerung

3049</h4>3075</h4>

3050 3076 

3051TeammateIdle-Hooks unterstützen zwei Arten, das Verhalten von Teammitgliedern zu steuern:3077TeammateIdle-Hooks unterstützen zwei Möglichkeiten, das Verhalten von Teammitgliedern zu steuern:

3052 3078 

3053* **Exit-Code 2**: Das Teammitglied erhält die stderr-Nachricht als Feedback und arbeitet weiter, statt inaktiv zu werden.3079* **Exit-Code 2**: Das Teammitglied erhält die stderr-Meldung als Feedback und arbeitet weiter, statt in den Leerlauf zu wechseln.

3054* **JSON `{"continue": false, "stopReason": "..."}`**: Stoppt das Teammitglied vollständig, entsprechend dem Verhalten des `Stop`-Hooks. Der `stopReason` wird dem Benutzer angezeigt.3080* **JSON `{"continue": false, "stopReason": "..."}`**: Stoppt das Teammitglied vollständig, entsprechend dem Verhalten des `Stop`-Hooks. Der `stopReason` wird dem Benutzer angezeigt.

3055 3081 

3056Dieses Beispiel prüft, ob ein Build-Artefakt existiert, bevor ein Teammitglied inaktiv werden darf:3082Dieses Beispiel prüft, ob ein Build-Artefakt existiert, bevor ein Teammitglied in den Leerlauf wechseln darf:

3057 3083 

3058```bash theme={null}3084```bash theme={null}

3059#!/bin/bash3085#!/bin/bash


3070 ConfigChange3096 ConfigChange

3071</h3>3097</h3>

3072 3098 

3073Wird ausgeführt, wenn sich während einer Sitzung eine Konfigurationsdatei ändert. Verwenden Sie dies, um Änderungen an Einstellungen zu auditieren, Sicherheitsrichtlinien durchzusetzen oder nicht autorisierte Änderungen an Konfigurationsdateien zu blockieren.3099Läuft, wenn sich während einer Sitzung eine Konfigurationsdatei ändert. Verwenden Sie dies, um Änderungen an Einstellungen zu prüfen, Sicherheitsrichtlinien durchzusetzen oder nicht autorisierte Änderungen an Konfigurationsdateien zu blockieren.

3074 3100 

3075Claude Code führt ConfigChange-Hooks aus, wenn sich eine Einstellungsdatei, eine verwaltete Richtliniendatei oder eine Skill-Datei ändert. Bei verwalteten Richtlinien führt es sie nur aus, wenn sich `managed-settings.json` oder eine Datei in `managed-settings.d/` ändert. [Serververwaltete Einstellungen](/docs/de/server-managed-settings) sowie Änderungen an verwalteten macOS-Einstellungen oder an Windows-Registrierungsrichtlinien wendet es an, ohne die Hooks auszuführen. Unter WSL mit [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) wendet es außerdem eine geänderte Windows-seitige Datei mit verwalteten Einstellungen bei seiner Richtlinienabfrage an, ohne die Hooks auszuführen.3101Claude Code führt ConfigChange-Hooks aus, wenn sich eine Einstellungsdatei, eine verwaltete Richtliniendatei oder eine Skill-Datei ändert. Bei verwalteten Richtlinien führt es sie nur aus, wenn sich `managed-settings.json` oder eine Datei in `managed-settings.d/` ändert. [Servergesteuerte Einstellungen](/docs/de/server-managed-settings) sowie Änderungen an verwalteten macOS-Einstellungen oder Windows-Registry-Richtlinien übernimmt es, ohne die Hooks auszuführen. Unter WSL mit [`wslInheritsWindowsSettings`](/docs/de/settings-reference#wslinheritswindowssettings) übernimmt es außerdem eine geänderte Windows-seitige verwaltete Einstellungsdatei bei seiner Richtlinienabfrage, ohne die Hooks auszuführen.

3076 3102 

3077Der Matcher filtert nach der Konfigurationsquelle:3103Der Matcher filtert nach der Konfigurationsquelle:

3078 3104 


3108 ConfigChange-Eingabe3134 ConfigChange-Eingabe

3109</h4>3135</h4>

3110 3136 

3111Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten ConfigChange-Hooks `source` und optional `file_path`. Das Feld `source` gibt an, welcher Konfigurationstyp sich geändert hat, und `file_path` liefert den Pfad zur konkret geänderten Datei.3137Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten ConfigChange-Hooks `source` und optional `file_path`. Das Feld `source` gibt an, welcher Konfigurationstyp sich geändert hat, und `file_path` liefert den Pfad zur konkret geänderten Datei.

3112 3138 

3113```json theme={null}3139```json theme={null}

3114{3140{


3139}3165}

3140```3166```

3141 3167 

3142`policy_settings`-Änderungen können nicht blockiert werden. Hooks werden für `policy_settings`-Quellen weiterhin ausgelöst, wenn sich eine Datei mit verwalteten Einstellungen auf dem Rechner ändert, sodass Sie sie zum Protokollieren dieser Änderungen verwenden können, aber jede Blockierungsentscheidung wird ignoriert. Dadurch wird sichergestellt, dass vom Unternehmen verwaltete Einstellungen immer wirksam werden. Claude Code führt keine `ConfigChange`-Hooks aus, wenn [serververwaltete Einstellungen](/docs/de/server-managed-settings) eintreffen oder aktualisiert werden.3168Änderungen an `policy_settings` können nicht blockiert werden. Hooks werden für `policy_settings`-Quellen weiterhin ausgelöst, wenn sich eine verwaltete Einstellungsdatei auf dem Rechner ändert, sodass Sie sie zum Protokollieren dieser Änderungen verwenden können, aber jede Blockierungsentscheidung wird ignoriert. Dadurch wird sichergestellt, dass unternehmensweit verwaltete Einstellungen immer wirksam werden. Claude Code führt keine `ConfigChange`-Hooks aus, wenn [servergesteuerte Einstellungen](/docs/de/server-managed-settings) eintreffen oder aktualisiert werden.

3143 3169 

3144Claude Code berücksichtigt die Blockierungsentscheidung aus der JSON-Ausgabe eines ConfigChange-Hooks und verwirft `systemMessage` und `continue`. Eine blockierte Änderung zeigt weder Ihnen noch Claude eine Nachricht an, unabhängig davon, ob Sie mit `reason` oder mit stderr bei Exit-Code 2 blockieren. Claude Code schreibt lediglich eine Zeile in das Debug-Log.3170Claude Code reagiert auf die Blockierungsentscheidung aus der JSON-Ausgabe eines ConfigChange-Hooks und verwirft `systemMessage` und `continue`. Eine blockierte Änderung zeigt weder Ihnen noch Claude eine Meldung an, unabhängig davon, ob Sie mit `reason` oder mit stderr bei Exit-Code 2 blockieren. Claude Code schreibt lediglich eine Zeile in das Debug-Log.

3145 3171 

3146<h3 id="cwdchanged">3172<h3 id="cwdchanged">

3147 CwdChanged3173 CwdChanged

3148</h3>3174</h3>

3149 3175 

3150Wird ausgeführt, wenn ein Shell-Befehl in der Hauptkonversation das Arbeitsverzeichnis ändert, zum Beispiel wenn Claude einen `cd`-Befehl ausführt. Verwenden Sie dies, um auf Verzeichniswechsel zu reagieren: Umgebungsvariablen neu laden, projektspezifische Toolchains aktivieren oder Setup-Skripte automatisch ausführen. Lässt sich mit [FileChanged](#filechanged) kombinieren, für Tools wie [direnv](https://direnv.net/), die verzeichnisspezifische Umgebungen verwalten.3176Läuft, wenn ein Shell-Befehl in der Hauptkonversation das Arbeitsverzeichnis ändert, etwa wenn Claude einen `cd`-Befehl ausführt. Verwenden Sie dies, um auf Verzeichniswechsel zu reagieren: Umgebungsvariablen neu laden, projektspezifische Toolchains aktivieren oder Einrichtungsskripte automatisch ausführen. Lässt sich mit [FileChanged](#filechanged) kombinieren, etwa für Tools wie [direnv](https://direnv.net/), die Umgebungen pro Verzeichnis verwalten.

3151 3177 

3152CwdChanged-Hooks haben Zugriff auf [`CLAUDE_ENV_FILE`](#persist-environment-variables). In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle erhalten, bis zum nächsten CwdChanged-Ereignis, bei dem Claude Code sie löscht.3178CwdChanged-Hooks haben Zugriff auf [`CLAUDE_ENV_FILE`](#persist-environment-variables). In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle bis zum nächsten CwdChanged-Ereignis erhalten, bei dem Claude Code sie löscht.

3153 3179 

3154CwdChanged unterstützt keine Matcher und wird bei jedem Vorkommen ausgelöst.3180CwdChanged unterstützt keine Matcher und wird bei jedem Auftreten ausgelöst.

3155 3181 

3156<h4 id="cwdchanged-input">3182<h4 id="cwdchanged-input">

3157 CwdChanged-Eingabe3183 CwdChanged-Eingabe

3158</h4>3184</h4>

3159 3185 

3160Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten CwdChanged-Hooks `old_cwd` und `new_cwd`.3186Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten CwdChanged-Hooks `old_cwd` und `new_cwd`.

3161 3187 

3162```json theme={null}3188```json theme={null}

3163{3189{


3182 3208 

3183CwdChanged-Hooks haben keine Entscheidungssteuerung. Sie können den Verzeichniswechsel nicht blockieren.3209CwdChanged-Hooks haben keine Entscheidungssteuerung. Sie können den Verzeichniswechsel nicht blockieren.

3184 3210 

3185Claude Code liest `watchPaths` und `systemMessage` aus ihrer JSON-Ausgabe und verwirft `continue`. In interaktiven Sitzungen zeigt es die `systemMessage` als kurze Terminal-Benachrichtigung an. Die Nachricht erreicht den SDK-Nachrichtenstrom nicht.3211Claude Code liest `watchPaths` und `systemMessage` aus ihrer JSON-Ausgabe und verwirft `continue`. In interaktiven Sitzungen zeigt es die `systemMessage` als kurze Terminal-Benachrichtigung an. Die Meldung erreicht den SDK-Nachrichtenstrom nicht.

3186 3212 

3187<h3 id="directoryadded">3213<h3 id="directoryadded">

3188 DirectoryAdded3214 DirectoryAdded

3189</h3>3215</h3>

3190 3216 

3191Wird ausgeführt, nachdem Sie während einer Sitzung mit dem Befehl `/add-dir` ein Arbeitsverzeichnis hinzugefügt haben oder nachdem ein SDK-Client eines mit der Steueranfrage `register_repo_root` hinzugefügt hat. Verwenden Sie dies, um ein neu hinzugefügtes Repository vorzubereiten, zum Beispiel durch Installieren seiner Abhängigkeiten.3217Läuft, nachdem Sie während einer Sitzung mit dem Befehl `/add-dir` ein Arbeitsverzeichnis hinzugefügt haben oder nachdem ein SDK-Client eines mit der Steuerungsanfrage `register_repo_root` hinzugefügt hat. Verwenden Sie dies, um ein neu hinzugefügtes Repository vorzubereiten, etwa durch Installieren seiner Abhängigkeiten.

3192 3218 

3193Claude Code löst dieses Ereignis nicht aus, wenn:3219Claude Code löst dieses Ereignis nicht aus, wenn:

3194 3220 

3195* Sie ein Verzeichnis mit dem Start-Flag `--add-dir` übergeben; [SessionStart](#sessionstart) deckt diese Verzeichnisse ab3221* Sie ein Verzeichnis mit dem Start-Flag `--add-dir` übergeben; [SessionStart](#sessionstart) deckt diese Verzeichnisse ab

3196* Sie ein Verzeichnis auf dem Tab „Workspace“ von `/permissions` hinzufügen3222* Sie ein Verzeichnis auf dem Tab „Workspace“ von `/permissions` hinzufügen

3197* Sie ein Verzeichnis hinzufügen, das bereits ein Arbeitsverzeichnis ist oder in einem liegt3223* Sie ein Verzeichnis hinzufügen, das bereits ein Arbeitsverzeichnis ist oder sich innerhalb eines solchen befindet

3198 3224 

3199Claude Code löst DirectoryAdded aus, nachdem der Sandbox- und Berechtigungsstatus aktualisiert wurde, sodass Tools in der Sandbox das neue Verzeichnis bereits sehen, wenn Ihr Hook läuft. Hook-Befehle selbst laufen ohne Sandbox.3225Claude Code löst DirectoryAdded aus, nachdem der Sandbox- und Berechtigungsstatus aktualisiert wurde, sodass in einer Sandbox ausgeführte Tools das neue Verzeichnis bereits sehen, wenn Ihr Hook läuft. Hook-Befehle selbst laufen ohne Sandbox.

3200 3226 

3201Claude Code wartet nicht auf den Hook: Das Hinzufügen wird sofort abgeschlossen, und der Hook läuft im Hintergrund mit dem Standard-Timeout von 600 Sekunden.3227Claude Code wartet nicht auf den Hook: Das Hinzufügen wird sofort abgeschlossen, und der Hook läuft im Hintergrund mit dem Standard-Timeout von 600 Sekunden.

3202 3228 


3205| Matcher | Wann er ausgelöst wird |3231| Matcher | Wann er ausgelöst wird |

3206| :- | :- |3232| :- | :- |

3207| `slash_command` | Sie fügen ein Verzeichnis mit `/add-dir` hinzu |3233| `slash_command` | Sie fügen ein Verzeichnis mit `/add-dir` hinzu |

3208| `register_repo_root` | Ein SDK-Client fügt ein Verzeichnis mit der Steueranfrage `register_repo_root` hinzu |3234| `register_repo_root` | Ein SDK-Client fügt ein Verzeichnis mit der Steuerungsanfrage `register_repo_root` hinzu |

3209 3235 

3210<h4 id="directoryadded-input">3236<h4 id="directoryadded-input">

3211 DirectoryAdded-Eingabe3237 DirectoryAdded-Eingabe

3212</h4>3238</h4>

3213 3239 

3214Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten DirectoryAdded-Hooks `directory` und `source`.3240Zusätzlich zu den [allgemeinen Eingabefeldern](#common-input-fields) erhalten DirectoryAdded-Hooks `directory` und `source`.

3215 3241 

3216| Feld | Beschreibung |3242| Feld | Beschreibung |

3217| :- | :- |3243| :- | :- |

3218| `directory` | Absoluter Pfad des hinzugefügten Verzeichnisses |3244| `directory` | Absoluter Pfad des hinzugefügten Verzeichnisses |

3219| `source` | Wie das Verzeichnis hinzugefügt wurde: `"slash_command"` für `/add-dir` oder `"register_repo_root"` für die SDK-Steueranfrage |3245| `source` | Wie das Verzeichnis hinzugefügt wurde: `"slash_command"` für `/add-dir` oder `"register_repo_root"` für die SDK-Steuerungsanfrage |

3220 3246 

3221```json theme={null}3247```json theme={null}

3222{3248{


3231 3257 

3232DirectoryAdded-Hooks haben keine Entscheidungssteuerung. Sie können das Hinzufügen nicht blockieren, da es bereits abgeschlossen ist, wenn der Hook läuft. Claude Code verwirft das Feld `continue` aus ihrer JSON-Ausgabe und gibt den Rest je nach Quelle unterschiedlich aus:3258DirectoryAdded-Hooks haben keine Entscheidungssteuerung. Sie können das Hinzufügen nicht blockieren, da es bereits abgeschlossen ist, wenn der Hook läuft. Claude Code verwirft das Feld `continue` aus ihrer JSON-Ausgabe und gibt den Rest je nach Quelle unterschiedlich aus:

3233 3259 

3234* `slash_command`: Claude Code übermittelt die `systemMessage` des Hooks beim nächsten Konversations-Turn als Kontext an Claude, statt sie Ihnen anzuzeigen. Eine Anzahl fehlgeschlagener Hooks erscheint im Transkript. Die vollständige Fehlerausgabe geht in das Debug-Log3260* `slash_command`: Claude Code übergibt die `systemMessage` des Hooks im nächsten Konversations-Turn als Kontext an Claude, statt sie Ihnen anzuzeigen. Die Anzahl fehlgeschlagener Hooks erscheint im Transkript. Die vollständige Fehlerausgabe wird in das Debug-Log geschrieben

3235* `register_repo_root`: Claude Code schreibt die `systemMessage`-Ausgabe und die Fehlerausgabe nur in das Debug-Log3261* `register_repo_root`: Claude Code schreibt die `systemMessage`-Ausgabe und die Fehlerausgabe nur in das Debug-Log

3236 3262 

3237<h3 id="filechanged">3263<h3 id="filechanged">

3238 FileChanged3264 FileChanged

3239</h3>3265</h3>

3240 3266 

3241Wird ausgeführt, wenn sich eine überwachte Datei auf der Festplatte ändert. Claude Code erkennt Änderungen mit einem Dateisystem-Watcher, nicht durch Prüfen von Tool-Aufrufen, und führt den Hook daher unabhängig davon aus, was die Datei geändert hat: ein `Edit`- oder `Write`-Tool-Aufruf, ein Skript, das Claude mit `Bash` ausführt, oder ein Prozess vollständig außerhalb von Claude Code. Ein häufiger Anwendungsfall ist das Neuladen von Umgebungsvariablen, wenn sich Konfigurationsdateien des Projekts ändern.3267Wird ausgeführt, wenn sich eine überwachte Datei auf dem Datenträger ändert. Claude Code erkennt Änderungen mit einem Dateisystem-Watcher und nicht durch Prüfen von Tool-Aufrufen. Daher führt es den Hook unabhängig davon aus, was die Datei geändert hat: ein `Edit`- oder `Write`-Tool-Aufruf, ein Skript, das Claude mit `Bash` ausführt, oder ein Prozess vollständig außerhalb von Claude Code. Ein häufiger Anwendungsfall ist das Neuladen von Umgebungsvariablen, wenn sich Konfigurationsdateien des Projekts ändern.

3242 3268 

3243Der `matcher` für dieses Ereignis erfüllt zwei Aufgaben:3269Der `matcher` für dieses Ereignis erfüllt zwei Aufgaben:

3244 3270 

3245* **Die Überwachungsliste aufbauen**: Der Wert wird an `|` aufgeteilt, und jedes Segment wird als literaler Dateiname im Arbeitsverzeichnis registriert, sodass `".envrc|.env"` genau diese beiden Dateien überwacht. Regex-Muster sind hier nicht sinnvoll: Ein Wert wie `^\.env` würde eine Datei überwachen, die wörtlich `^\.env` heißt.3271* **Die Überwachungsliste aufbauen**: Der Wert wird an `|` aufgeteilt, und jedes Segment wird als literaler Dateiname im Arbeitsverzeichnis registriert, sodass `".envrc|.env"` genau diese beiden Dateien überwacht. Regex-Muster sind hier nicht sinnvoll: Ein Wert wie `^\.env` würde eine Datei überwachen, die buchstäblich `^\.env` heißt.

3246* **Filtern, welche Hooks laufen**: Wenn sich eine überwachte Datei ändert, filtert derselbe Wert anhand der Standard-[Matcher-Regeln](#matcher-patterns) gegen den Basisnamen der geänderten Datei, welche Hook-Gruppen laufen.3272* **Filtern, welche Hooks ausgeführt werden**: Wenn sich eine überwachte Datei ändert, filtert derselbe Wert anhand der Standard-[Matcher-Regeln](#matcher-patterns) und des Basisnamens der geänderten Datei, welche Hook-Gruppen ausgeführt werden.

3247 3273 

3248Dieses Beispiel normalisiert die Zeilenenden in `data.csv` nach jeder Änderung, auch wenn ein `Bash`-Befehl oder ein externes Skript die Datei neu schreibt:3274Dieses Beispiel normalisiert die Zeilenenden in `data.csv` nach jeder Änderung, auch wenn ein `Bash`-Befehl oder ein externes Skript die Datei neu schreibt:

3249 3275 


3265}3291}

3266```3292```

3267 3293 

3268Der Hook liest den absoluten Pfad der geänderten Datei aus dem Feld `file_path` der [JSON-Eingabe](#filechanged-input) auf stdin. Seine `grep`-Prüfung testet auf genau das, was `perl` entfernt, ein CR am Zeilenende, sodass der Lauf nach einer Normalisierung beendet wird, ohne die Datei anzufassen. Eine lockerere Prüfung führt zu einer Endlosschleife, weil `perl -i` die Datei auch dann neu schreibt, wenn es nichts ersetzt, und Claude Code den Hook nach jedem Neuschreiben erneut ausführt. Speichern Sie dieses Skript unter `/path/to/normalize-line-endings.sh` und machen Sie es ausführbar:3294Der Hook liest den absoluten Pfad der geänderten Datei aus dem Feld `file_path` der [JSON-Eingabe](#filechanged-input) auf stdin. Seine `grep`-Prüfung testet auf genau das, was `perl` entfernt, nämlich ein CR am Zeilenende, sodass der Durchlauf nach einer Normalisierung beendet wird, ohne die Datei anzufassen. Eine lockerere Prüfung führt zu einer Endlosschleife, weil `perl -i` die Datei auch dann neu schreibt, wenn nichts ersetzt wird, und Claude Code den Hook nach jedem Neuschreiben erneut ausführt. Speichern Sie dieses Skript unter `/path/to/normalize-line-endings.sh` und machen Sie es ausführbar:

3269 3295 

3270```bash theme={null}3296```bash theme={null}

3271#!/bin/bash3297#!/bin/bash


3275fi3301fi

3276```3302```

3277 3303 

3278Um zu bestätigen, dass der Hook funktioniert, bitten Sie Claude, mit einem `Bash`-Befehl eine CRLF-Zeile an `data.csv` anzuhängen. Claude Code führt den Hook aus, und die Datei hat am Ende LF-Zeilenenden.3304Um zu prüfen, ob der Hook funktioniert, bitten Sie Claude, mit einem `Bash`-Befehl eine CRLF-Zeile an `data.csv` anzuhängen. Claude Code führt den Hook aus, und die Datei hat anschließend LF-Zeilenenden.

3279 3305 

3280Um Dateien zu überwachen, die Sie nicht im Voraus benennen können, geben Sie aus einem Hook [`watchPaths`](#filechanged-output) zurück, um die Überwachungsliste dynamisch zu aktualisieren. Claude Code startet den Watcher nur, wenn etwas eine zu überwachende Datei benennt. Befüllen Sie die Liste daher mit einer FileChanged-Gruppe, deren Matcher mindestens eine Datei benennt, oder mit einem [SessionStart](#sessionstart-decision-control)- oder [CwdChanged](#cwdchanged)-Hook, der `watchPaths` zurückgibt. Der Matcher filtert weiterhin, welche Hook-Gruppen laufen, wenn sich eine überwachte Datei ändert. Lassen Sie daher bei der Gruppe, die dynamische Pfade behandelt, den Matcher weg; dieser passt dann auf jede überwachte Datei und fügt der Überwachungsliste nichts hinzu. Ein `"*"`-Matcher passt ebenfalls auf jede Datei, aber Claude Code registriert ihn wie jeden anderen Wert in der Überwachungsliste, als literale Datei namens `*`.3306Um Dateien zu überwachen, die Sie nicht vorab benennen können, geben Sie aus einem Hook [`watchPaths`](#filechanged-output) zurück, um die Überwachungsliste dynamisch zu aktualisieren. Claude Code startet den Watcher erst, wenn etwas eine zu überwachende Datei benennt. Befüllen Sie die Liste daher mit einer FileChanged-Gruppe, deren Matcher mindestens eine Datei benennt, oder mit einem [SessionStart](#sessionstart-decision-control)- oder [CwdChanged](#cwdchanged)-Hook, der `watchPaths` zurückgibt. Der Matcher filtert weiterhin, welche Hook-Gruppen ausgeführt werden, wenn sich eine überwachte Datei ändert. Lassen Sie den Matcher daher bei der Gruppe weg, die dynamische Pfade verarbeitet: Ein fehlender Matcher passt auf jede überwachte Datei und fügt der Überwachungsliste nichts hinzu. Ein `"*"`-Matcher passt ebenfalls auf jede Datei, aber Claude Code registriert ihn wie jeden anderen Wert in der Überwachungsliste, als literale Datei namens `*`.

3281 3307 

3282FileChanged-Hooks haben Zugriff auf [`CLAUDE_ENV_FILE`](#persist-environment-variables). In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle erhalten, bis zum nächsten [CwdChanged](#cwdchanged)-Ereignis, bei dem Claude Code sie löscht.3308FileChanged-Hooks haben Zugriff auf [`CLAUDE_ENV_FILE`](#persist-environment-variables). In diese Datei geschriebene Variablen bleiben für nachfolgende Bash-Befehle erhalten, bis Claude Code sie beim nächsten [CwdChanged](#cwdchanged)-Ereignis löscht.

3283 3309 

3284<h4 id="filechanged-input">3310<h4 id="filechanged-input">

3285 FileChanged-Eingabe3311 FileChanged-Eingabe


3313| :- | :- |3339| :- | :- |

3314| `watchPaths` | Array absoluter Pfade. Ersetzt die aktuelle dynamische Überwachungsliste. Pfade aus Ihrer `matcher`-Konfiguration werden immer überwacht. Verwenden Sie dies, wenn Ihr Hook-Skript anhand der geänderten Datei weitere zu überwachende Dateien ermittelt |3340| `watchPaths` | Array absoluter Pfade. Ersetzt die aktuelle dynamische Überwachungsliste. Pfade aus Ihrer `matcher`-Konfiguration werden immer überwacht. Verwenden Sie dies, wenn Ihr Hook-Skript anhand der geänderten Datei weitere zu überwachende Dateien ermittelt |

3315 3341 

3316FileChanged-Hooks haben keine Entscheidungssteuerung. Sie können die Dateiänderung nicht verhindern.3342FileChanged-Hooks haben keine Entscheidungskontrolle. Sie können die Dateiänderung nicht verhindern.

3317 3343 

3318Claude Code liest `watchPaths` und `systemMessage` aus ihrer JSON-Ausgabe und verwirft `continue`. In interaktiven Sitzungen zeigt es die `systemMessage` als kurze Terminal-Benachrichtigung an. Die Nachricht erreicht den SDK-Nachrichtenstrom nicht.3344Claude Code liest `watchPaths` und `systemMessage` aus ihrer JSON-Ausgabe und verwirft `continue`. In interaktiven Sitzungen zeigt es die `systemMessage` als kurze Terminal-Benachrichtigung an. Die Nachricht erreicht den SDK-Nachrichtenstream nicht.

3319 3345 

3320<h3 id="worktreecreate">3346<h3 id="worktreecreate">

3321 WorktreeCreate3347 WorktreeCreate


3328* Ein [Subagent verwendet `isolation: "worktree"`](/docs/de/sub-agents#choose-the-subagent-scope)3354* Ein [Subagent verwendet `isolation: "worktree"`](/docs/de/sub-agents#choose-the-subagent-scope)

3329* Ein [Workflow](/docs/de/workflows#migrate-many-files-in-parallel) führt einen Agenten in einem eigenen Worktree aus3355* Ein [Workflow](/docs/de/workflows#migrate-many-files-in-parallel) führt einen Agenten in einem eigenen Worktree aus

3330* Claude Code isoliert eine [Hintergrundsitzung](/docs/de/agent-view#how-file-edits-are-isolated) in einem eigenen Worktree3356* Claude Code isoliert eine [Hintergrundsitzung](/docs/de/agent-view#how-file-edits-are-isolated) in einem eigenen Worktree

3331* [`claude remote-control`](/docs/de/remote-control#start-a-remote-control-session) startet im `worktree`-Modus eine Sitzung in einem eigenen Worktree3357* [`claude remote-control`](/docs/de/remote-control#start-a-remote-control-session) im Modus `worktree` startet eine Sitzung in einem eigenen Worktree

3332 3358 

3333Wenn Claude `git worktree add` über das Bash-Tool ausführt, statt `EnterWorktree` aufzurufen, wird Ihr WorktreeCreate-Hook nicht ausgeführt. Um diesen Befehl zu prüfen oder zu blockieren, fügen Sie einen [`PreToolUse`](#pretooluse)-Hook mit dem Matcher `Bash` hinzu.3359Wenn Claude `git worktree add` über das Bash-Tool ausführt, statt `EnterWorktree` aufzurufen, wird Ihr WorktreeCreate-Hook nicht ausgeführt. Um diesen Befehl zu prüfen oder zu blockieren, fügen Sie einen [`PreToolUse`](#pretooluse)-Hook mit dem Matcher `Bash` hinzu.

3334 3360 


3336 3362 

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

3338 3364 

3339Der Hook muss den Pfad zum erstellten Worktree-Verzeichnis zurückgeben. Claude Code verwendet diesen Pfad als Arbeitsverzeichnis für die isolierte Sitzung. Unter [WorktreeCreate-Ausgabe](#worktreecreate-output) erfahren Sie, wie die einzelnen Hook-Typen den Pfad zurückgeben.3365Der Hook muss den Pfad zum erstellten Worktree-Verzeichnis zurückgeben. Claude Code verwendet diesen Pfad als Arbeitsverzeichnis für die isolierte Sitzung. Unter [WorktreeCreate-Ausgabe](#worktreecreate-output) erfahren Sie, wie jeder Hook-Typ den Pfad zurückgibt.

3340 3366 

3341Claude Code berücksichtigt den Erfolg des Hooks und den zurückgegebenen Pfad und verwirft `systemMessage` und `continue`.3367Claude Code reagiert auf den Erfolg des Hooks und den zurückgegebenen Pfad und verwirft `systemMessage` und `continue`.

3342 3368 

3343Dieses Beispiel erstellt eine SVN-Arbeitskopie und gibt den Pfad aus, den Claude Code verwenden soll. Ersetzen Sie die Repository-URL durch Ihre eigene:3369Dieses Beispiel erstellt eine SVN-Arbeitskopie und gibt den Pfad aus, den Claude Code verwenden soll. Ersetzen Sie die Repository-URL durch Ihre eigene:

3344 3370 


3359}3385}

3360```3386```

3361 3387 

3362Der Hook liest den Worktree-`name` aus der JSON-Eingabe auf stdin, checkt eine neue Kopie in ein neues Verzeichnis aus und gibt den Verzeichnispfad aus. Das `echo` in der letzten Zeile ist das, was Claude Code als Worktree-Pfad liest. Leiten Sie jede andere Ausgabe nach stderr um, damit sie den Pfad nicht beeinträchtigt.3388Der Hook liest den Worktree-`name` aus der JSON-Eingabe auf stdin, checkt eine neue Kopie in ein neues Verzeichnis aus und gibt den Verzeichnispfad aus. Das `echo` in der letzten Zeile ist das, was Claude Code als Worktree-Pfad liest. Leiten Sie jede andere Ausgabe nach stderr um, damit sie den Pfad nicht stört.

3363 3389 

3364<h4 id="worktreecreate-input">3390<h4 id="worktreecreate-input">

3365 WorktreeCreate-Eingabe3391 WorktreeCreate-Eingabe

3366</h4>3392</h4>

3367 3393 

3368Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten WorktreeCreate-Hooks das Feld `name`. Dabei handelt es sich um einen Slug-Bezeichner für den neuen Worktree, der entweder vom Benutzer angegeben oder automatisch generiert wird, zum Beispiel `bold-oak-a3f2`.3394Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten WorktreeCreate-Hooks das Feld `name`. Dies ist ein Slug-Bezeichner für den neuen Worktree, entweder vom Benutzer angegeben oder automatisch generiert, zum Beispiel `bold-oak-a3f2`.

3369 3395 

3370```json theme={null}3396```json theme={null}

3371{3397{


3381 WorktreeCreate-Ausgabe3407 WorktreeCreate-Ausgabe

3382</h4>3408</h4>

3383 3409 

3384WorktreeCreate-Hooks verwenden nicht das standardmäßige Entscheidungsmodell aus Zulassen/Blockieren. Stattdessen bestimmt Erfolg oder Fehlschlag des Hooks das Ergebnis. Der Hook muss den Pfad zum erstellten Worktree-Verzeichnis zurückgeben:3410WorktreeCreate-Hooks verwenden nicht das standardmäßige Allow/Block-Entscheidungsmodell. Stattdessen bestimmt Erfolg oder Fehlschlag des Hooks das Ergebnis. Der Hook muss den Pfad zum erstellten Worktree-Verzeichnis zurückgeben:

3385 3411 

3386* **Command-Hooks** (`type: "command"`): Geben Sie den Pfad als letzte nicht leere Zeile auf stdout aus. Claude Code entfernt ANSI-Escape-Codes, bevor diese Zeile gelesen wird, sodass Shell-Startbanner, die vor Ihrem `echo` ausgegeben werden, ignoriert werden. Leiten Sie jede andere Hook-Ausgabe nach stderr um.3412* **Command-Hooks** (`type: "command"`): Geben Sie den Pfad als letzte nicht leere Zeile auf stdout aus. Claude Code entfernt ANSI-Escape-Codes, bevor es diese Zeile liest, sodass Shell-Startbanner, die vor Ihrem `echo` ausgegeben werden, ignoriert werden. Leiten Sie jede andere Hook-Ausgabe nach stderr um.

3387* **HTTP-Hooks** (`type: "http"`): Geben Sie `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` im Response-Body zurück.3413* **HTTP-Hooks** (`type: "http"`): Geben Sie `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` im Response-Body zurück.

3388 3414 

3389Wenn der Hook fehlschlägt oder keinen Pfad liefert, schlägt die Worktree-Erstellung mit einem Fehler fehl.3415Wenn der Hook fehlschlägt oder keinen Pfad liefert, schlägt die Worktree-Erstellung mit einem Fehler fehl.

3390 3416 

3391Claude Code löst einen relativen Pfad relativ zu dem Verzeichnis auf, in dem der Hook ausgeführt wurde, und fasst dabei alle darin enthaltenen `.`- oder `..`-Segmente zusammen. Wenn der resultierende Pfad kein Verzeichnis ist, das Claude Code betreten kann, gibt die Sitzung einen Fehler mit dem Pfad aus und wird mit Code 1 beendet.3417Claude Code löst einen relativen Pfad relativ zu dem Verzeichnis auf, in dem der Hook ausgeführt wurde, und fasst dabei alle `.`- oder `..`-Segmente zusammen. Wenn der resultierende Pfad kein Verzeichnis ist, das Claude Code betreten kann, gibt die Sitzung einen Fehler mit dem Pfad aus und wird mit Code 1 beendet.

3392 3418 

3393Claude Code lehnt einen absoluten Pfad ab, der `.`- oder `..`-Segmente enthält, sowie jeden Pfad, der unterhalb des Repository-Stammverzeichnisses durch einen Symlink führt, da ein in das Repository committeter Symlink den Worktree nach außerhalb umleiten könnte. Der Fehler nennt die abgelehnte Komponente. Geben Sie einen normalisierten Pfad zurück, der nicht durch einen Symlink innerhalb des Repositorys führt. Vor v2.1.216 folgte die Worktree-Erstellung dem Pfad des Hooks ohne diese Prüfung.3419Claude Code lehnt einen absoluten Pfad ab, der `.`- oder `..`-Segmente enthält, sowie jeden Pfad, der unterhalb des Repository-Stammverzeichnisses durch einen Symlink führt, da ein in das Repository committeter Symlink den Worktree nach außerhalb umleiten könnte. Der Fehler nennt die abgelehnte Komponente. Geben Sie einen normalisierten Pfad zurück, der nicht durch einen Symlink innerhalb des Repositorys führt. Vor v2.1.216 folgte die Worktree-Erstellung dem Pfad des Hooks ohne diese Prüfung.

3394 3420 


3398 3424 

3399Wird ausgeführt, wenn Claude Code einen Worktree bereinigt, den Ihr [`WorktreeCreate`](#worktreecreate)-Hook erstellt hat. Das Ereignis wird ausgelöst, wenn:3425Wird ausgeführt, wenn Claude Code einen Worktree bereinigt, den Ihr [`WorktreeCreate`](#worktreecreate)-Hook erstellt hat. Das Ereignis wird ausgelöst, wenn:

3400 3426 

3401* Sie eine interaktive [Worktree-Sitzung](/docs/de/worktrees#start-claude-in-a-worktree) beenden und sich dafür entscheiden, den Worktree zu entfernen, wenn Claude Code Sie danach fragt3427* Sie eine interaktive [Worktree-Sitzung](/docs/de/worktrees#start-claude-in-a-worktree) beenden und auf Nachfrage von Claude Code entscheiden, den Worktree zu entfernen

3402* Sie eine interaktive Worktree-Sitzung beenden, die Sie nicht [benannt](/docs/de/sessions#name-your-sessions) haben, Claude Code keine geänderten oder nicht verfolgten Dateien findet und den Worktree ohne Nachfrage entfernt3428* Sie eine interaktive Worktree-Sitzung beenden, die Sie nicht [benannt](/docs/de/sessions#name-your-sessions) haben, Claude Code keine geänderten oder nicht verfolgten Dateien findet und den Worktree ohne Nachfrage entfernt

3403* Sie eine [Hintergrundsitzung](/docs/de/agent-view#what-deleting-a-session-removes) löschen, die im Worktree läuft3429* Sie eine [Hintergrundsitzung](/docs/de/agent-view#what-deleting-a-session-removes) löschen, die im Worktree läuft

3404* Sie Claude während einer Sitzung bitten, den Worktree zu verlassen und zu entfernen, und Claude ihn mit dem Tool [`ExitWorktree`](/docs/de/tools-reference) entfernt3430* Sie Claude während einer Sitzung bitten, den Worktree zu verlassen und zu entfernen, und Claude ihn mit dem Tool [`ExitWorktree`](/docs/de/tools-reference) entfernt

3405* Eine Sitzung, die [`claude remote-control`](/docs/de/remote-control#start-a-remote-control-session) im `worktree`-Modus gestartet hat, ohne Absturz endet und Claude Code in ihrem Worktree keine geänderten oder nicht verfolgten Dateien und keine neuen Commits findet3431* Eine Sitzung, die [`claude remote-control`](/docs/de/remote-control#start-a-remote-control-session) im Modus `worktree` gestartet hat, ohne Absturz endet und Claude Code in ihrem Worktree keine geänderten oder nicht verfolgten Dateien und keine neuen Commits findet

3406* Sie `claude remote-control` stoppen, während von ihm im `worktree`-Modus gestartete Sitzungen noch laufen, und Claude Code in deren Worktrees keine geänderten oder nicht verfolgten Dateien und keine neuen Commits findet3432* Sie `claude remote-control` stoppen, während Sitzungen, die es im Modus `worktree` gestartet hat, noch laufen, und Claude Code in deren Worktrees keine geänderten oder nicht verfolgten Dateien und keine neuen Commits findet

3407 3433 

3408Wenn ein Subagent oder ein Workflow-Agent fertig ist, behält Claude Code den Worktree, den Ihr WorktreeCreate-Hook dafür erstellt hat, und führt Ihren WorktreeRemove-Hook nicht aus. Entfernen Sie diese Worktrees selbst, wenn die Arbeit erledigt ist.3434Wenn ein Subagent oder ein Workflow-Agent fertig ist, behält Claude Code den Worktree, den Ihr WorktreeCreate-Hook für ihn erstellt hat, und führt Ihren WorktreeRemove-Hook nicht aus. Entfernen Sie diese Worktrees selbst, wenn die Arbeit erledigt ist.

3409 3435 

3410Claude Code fragt Sie nicht, bevor Ihr Hook für einen `ExitWorktree`-Aufruf oder eine Bereinigung durch `claude remote-control` ausgeführt wird. `ExitWorktree` weigert sich, einen vom Hook erstellten Worktree zu entfernen, sofern der Aufruf nicht [`discard_changes: true`](/docs/de/agent-sdk/typescript#exitworktree) übergibt, wodurch Ihr Hook auf diesem Weg die letzte Prüfung ist.3436Claude Code fragt nicht bei Ihnen nach, bevor Ihr Hook für einen `ExitWorktree`-Aufruf oder eine Bereinigung durch `claude remote-control` ausgeführt wird. `ExitWorktree` weigert sich, einen per Hook erstellten Worktree zu entfernen, sofern der Aufruf nicht [`discard_changes: true`](/docs/de/agent-sdk/typescript#exitworktree) übergibt. Damit ist Ihr Hook auf diesem Weg die letzte Prüfung.

3411 3437 

3412Claude Code verwendet Git, um nach geänderten oder nicht verfolgten Dateien zu suchen, und findet daher keine in einem Worktree, der kein Git-Checkout ist oder sich nicht in einem befindet, selbst wenn das Verzeichnis nicht committete Arbeit enthält. Prüfen Sie in Ihrem WorktreeRemove-Hook auf solche Arbeit, bevor er etwas löscht.3438Claude Code sucht mit Git nach geänderten oder nicht verfolgten Dateien. Daher findet es in einem Worktree, der kein Git-Checkout ist und auch nicht in einem liegt, keine solchen Dateien, selbst wenn das Verzeichnis nicht committete Arbeit enthält. Prüfen Sie in Ihrem WorktreeRemove-Hook auf solche Arbeit, bevor er etwas löscht.

3413 3439 

3414Bei Git-basierten Worktrees übernimmt Claude Code die Bereinigung automatisch mit `git worktree remove`. Wenn Sie einen WorktreeCreate-Hook konfiguriert haben, kombinieren Sie ihn mit einem WorktreeRemove-Hook, um die Bereinigung zu steuern:3440Bei Git-basierten Worktrees übernimmt Claude Code die Bereinigung automatisch mit `git worktree remove`. Wenn Sie einen WorktreeCreate-Hook konfiguriert haben, kombinieren Sie ihn mit einem WorktreeRemove-Hook, um die Bereinigung zu steuern:

3415 3441 

3416* **Kein WorktreeRemove-Hook**: Claude Code greift für ein Entfernen beim Beenden oder über `ExitWorktree` ersatzweise auf Git zurück und behält den Worktree, wenn `claude remote-control` bereinigt:3442* **Kein WorktreeRemove-Hook**: Claude Code greift beim Entfernen beim Beenden oder über `ExitWorktree` auf Git zurück und behält den Worktree, wenn `claude remote-control` bereinigt:

3417 * **Sie beenden eine Worktree-Sitzung, oder Claude ruft `ExitWorktree` auf**: Claude Code entfernt den von Ihrem WorktreeCreate-Hook zurückgegebenen Pfad so, wie `git worktree remove --force` es tun würde, sodass ein Worktree, den Git erkennt, entfernt wird. Ein Worktree, den Git nicht erkennt, zum Beispiel einer, den Ihr Hook mit einem anderen Versionskontrollsystem als Git erstellt hat, bleibt auf dem Datenträger.3443 * **Sie beenden eine Worktree-Sitzung, oder Claude ruft `ExitWorktree` auf**: Claude Code entfernt den von Ihrem WorktreeCreate-Hook zurückgegebenen Pfad so, wie es `git worktree remove --force` tun würde, sodass ein Worktree, den Git erkennt, entfernt wird. Ein Worktree, den Git nicht erkennt, etwa einer, den Ihr Hook mit einem Nicht-Git-Versionskontrollsystem erstellt hat, bleibt auf dem Datenträger.

3418 * **`claude remote-control` bereinigt den Worktree einer Sitzung**: Der Worktree bleibt auf dem Datenträger, und das Terminal, in dem `claude remote-control` läuft, zeigt `worktree removal failed, kept: <path>` an.3444 * **`claude remote-control` bereinigt den Worktree einer Sitzung**: Der Worktree bleibt auf dem Datenträger, und das Terminal, in dem `claude remote-control` läuft, zeigt `worktree removal failed, kept: <path>` an.

3419 * **Sie löschen eine Hintergrundsitzung**: siehe [Was das Löschen einer Sitzung entfernt](/docs/de/agent-view#what-deleting-a-session-removes).3445 * **Sie löschen eine Hintergrundsitzung**: siehe [Was das Löschen einer Sitzung entfernt](/docs/de/agent-view#what-deleting-a-session-removes).

3420* **Hook wird mit 0 beendet**: Der Worktree gilt als entfernt. Claude Code liest nichts weiter vom Hook, stellen Sie also sicher, dass Ihr Hook das Verzeichnis gelöscht hat.3446* **Hook wird mit 0 beendet**: Der Worktree gilt als entfernt. Claude Code liest nichts weiter vom Hook, stellen Sie also sicher, dass Ihr Hook das Verzeichnis gelöscht hat.

3421* **Hook wird mit einem anderen Code als 0 beendet**: Das Entfernen schlägt fehl, wenn das Verzeichnis unter `worktree_path` danach noch existiert, und der Worktree bleibt ohne Git-Fallback auf der Festplatte. Ein Hook, der das Verzeichnis vor dem Beenden mit einem anderen Code als 0 gelöscht hat, gilt als entfernt. Wie der Fehler gemeldet wird, erfahren Sie unter [WorktreeRemove-Eingabe](#worktreeremove-input).3447* **Hook wird mit einem Wert ungleich 0 beendet**: Das Entfernen schlägt fehl, wenn das Verzeichnis unter `worktree_path` danach noch existiert, und der Worktree bleibt ohne Git-Fallback auf dem Datenträger. Ein Hook, der das Verzeichnis gelöscht hat, bevor er mit einem Wert ungleich 0 beendet wurde, gilt als entfernt. Wie der Fehler gemeldet wird, lesen Sie unter [WorktreeRemove-Eingabe](#worktreeremove-input).

3422 3448 

3423Claude Code löscht niemals einen Branch, der zu einem vom Hook erstellten Worktree gehört, da es nur den Pfad kennt, den Ihr WorktreeCreate-Hook zurückgegeben hat. Wenn Ihr WorktreeCreate-Hook einen Branch erstellt, löschen Sie ihn in Ihrem WorktreeRemove-Hook.3449Claude Code löscht nie einen Branch, der zu einem per Hook erstellten Worktree gehört, weil es nur den Pfad kennt, den Ihr WorktreeCreate-Hook zurückgegeben hat. Wenn Ihr WorktreeCreate-Hook einen Branch erstellt, löschen Sie ihn in Ihrem WorktreeRemove-Hook.

3424 3450 

3425Claude Code verwirft die [JSON-Ausgabefelder](#json-output) eines WorktreeRemove-Hooks, etwa `systemMessage` und `continue`.3451Claude Code verwirft die [JSON-Ausgabefelder](#json-output) eines WorktreeRemove-Hooks, etwa `systemMessage` und `continue`.

3426 3452 

3427Beim Löschen einer Hintergrundsitzung überprüft Claude Code den gespeicherten Worktree-Pfad, bevor der Hook ausgeführt wird, und lehnt einen Pfad ab, der ein Symlink ist oder unterhalb des Repository-Stammverzeichnisses durch einen führt. Auf diesem Weg wird der Hook für einen Worktree, der noch Dateien enthält, nur ausgeführt, wenn Sie das Löschen in der [Agentenansicht](/docs/de/agent-view#what-deleting-a-session-removes) bestätigen; bei einem solchen Worktree behält [`claude rm`](/docs/de/agent-view#manage-sessions-from-the-shell) stattdessen die Sitzung und den Worktree. Vor v2.1.216 wurde der Hook ohne diese Prüfungen auf dem gespeicherten Pfad ausgeführt.3453Beim Löschen einer Hintergrundsitzung überprüft Claude Code den gespeicherten Worktree-Pfad, bevor es den Hook ausführt, und lehnt einen Pfad ab, der ein Symlink ist oder unterhalb des Repository-Stammverzeichnisses durch einen führt. Auf diesem Weg wird der Hook für einen Worktree, der noch Dateien enthält, nur ausgeführt, wenn Sie das Löschen in der [Agent-Ansicht](/docs/de/agent-view#what-deleting-a-session-removes) bestätigen; für einen solchen Worktree behält [`claude rm`](/docs/de/agent-view#manage-sessions-from-the-shell) stattdessen Sitzung und Worktree. Vor v2.1.216 wurde der Hook ohne diese Prüfungen auf dem gespeicherten Pfad ausgeführt.

3428 3454 

3429Claude Code übergibt den von WorktreeCreate zurückgegebenen Pfad als `worktree_path` in der Hook-Eingabe. Dieses Beispiel liest diesen Pfad und entfernt das Verzeichnis:3455Claude Code übergibt den von WorktreeCreate zurückgegebenen Pfad als `worktree_path` in der Hook-Eingabe. Dieses Beispiel liest diesen Pfad und entfernt das Verzeichnis:

3430 3456 


3449 WorktreeRemove-Eingabe3475 WorktreeRemove-Eingabe

3450</h4>3476</h4>

3451 3477 

3452Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten WorktreeRemove-Hooks das Feld `worktree_path`, das den absoluten Pfad zum zu entfernenden Worktree enthält.3478Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten WorktreeRemove-Hooks das Feld `worktree_path`, den absoluten Pfad zum Worktree, der entfernt wird.

3453 3479 

3454```json theme={null}3480```json theme={null}

3455{3481{


3461}3487}

3462```3488```

3463 3489 

3464Der Exit-Code eines WorktreeRemove-Hooks entscheidet über das Ergebnis. Wenn ein Hook mit einem anderen Code als 0 beendet wird und das Verzeichnis unter `worktree_path` danach noch existiert, schlägt das Entfernen fehl:3490Der Exit-Code eines WorktreeRemove-Hooks entscheidet über das Ergebnis. Wenn ein Hook mit einem Wert ungleich 0 beendet wird und das Verzeichnis unter `worktree_path` danach noch existiert, schlägt das Entfernen fehl:

3465 3491 

3466* Der Worktree bleibt auf der Festplatte, und der Befehl sowie die stderr-Ausgabe des Hooks werden in das [Debug-Log](#debug-hooks) geschrieben.3492* Der Worktree bleibt auf dem Datenträger, und der Befehl sowie stderr des Hooks werden in das [Debug-Log](#debug-hooks) geschrieben.

3467* Wenn Sie eine Hintergrundsitzung gelöscht haben, bleibt auch die Sitzung erhalten. Die Ablehnungsmeldung in der [Agent-Ansicht](/docs/de/agent-view#what-deleting-a-session-removes) gibt an, wie der Hook beendet wurde, etwa `exited 1`, zitiert den Anfang seiner stderr-Ausgabe und gibt an, ob ein erneutes Löschen der Sitzung das Verzeichnis trotzdem entfernt.3493* Wenn Sie eine Hintergrundsitzung gelöscht haben, bleibt auch die Sitzung bestehen. Die Ablehnungsmeldung in der [Agent-Ansicht](/docs/de/agent-view#what-deleting-a-session-removes) meldet, wie der Hook beendet wurde, etwa `exited 1`, zitiert den Anfang seiner stderr-Ausgabe und gibt an, ob ein erneutes Löschen der Sitzung das Verzeichnis trotzdem entfernt.

3468* Wenn `claude remote-control` den Worktree einer Sitzung bereinigt hat, zeigt das Terminal, in dem es läuft, `worktree removal failed, kept: <path>` an.3494* Wenn `claude remote-control` den Worktree einer Sitzung bereinigt hat, zeigt das Terminal, in dem es läuft, `worktree removal failed, kept: <path>` an.

3469 3495 

3470<h3 id="precompact">3496<h3 id="precompact">


3478| Matcher | Wann er ausgelöst wird |3504| Matcher | Wann er ausgelöst wird |

3479| :- | :- |3505| :- | :- |

3480| `manual` | `/compact` |3506| `manual` | `/compact` |

3481| `auto` | Automatische Komprimierung, wenn die Konversation das [Fenster für die automatische Komprimierung](/docs/de/model-config#set-the-auto-compact-window) erreicht |3507| `auto` | Automatische Komprimierung, wenn die Konversation das [Fenster für die automatische Komprimierung](/docs/de/model-config#set-the-auto-compact-window) erreicht, sowie [Leerlauf-Komprimierung](/docs/de/settings-reference#idlecompaction) |

3482 3508 

3483Beenden Sie mit Code 2, um die Komprimierung zu blockieren. Bei einem manuellen `/compact` wird die stderr-Meldung dem Benutzer angezeigt. Sie können auch blockieren, indem Sie JSON mit `"decision": "block"` zurückgeben.3509Beenden Sie mit Code 2, um die Komprimierung zu blockieren. Bei einem manuellen `/compact` wird die stderr-Meldung dem Benutzer angezeigt. Sie können auch blockieren, indem Sie JSON mit `"decision": "block"` zurückgeben.

3484 3510 

3485Das Blockieren der automatischen Komprimierung hat unterschiedliche Auswirkungen, je nachdem, wann sie ausgelöst wird. Wenn die Komprimierung proaktiv vor dem Kontextlimit ausgelöst wurde, überspringt Claude Code sie, und die Konversation wird unkomprimiert fortgesetzt. Wenn die Komprimierung ausgelöst wurde, um sich von einem bereits von der API zurückgegebenen Kontextlimit-Fehler zu erholen, wird der zugrunde liegende Fehler angezeigt und die aktuelle Anfrage schlägt fehl.3511Das Blockieren der automatischen Komprimierung hat je nach Zeitpunkt unterschiedliche Auswirkungen. Wenn die Komprimierung proaktiv vor Erreichen des Kontextlimits ausgelöst wurde, überspringt Claude Code sie, und die Konversation wird unkomprimiert fortgesetzt. Wenn die Komprimierung ausgelöst wurde, um sich von einem bereits von der API zurückgegebenen Kontextlimit-Fehler zu erholen, wird der zugrunde liegende Fehler angezeigt, und die aktuelle Anfrage schlägt fehl.

3486 3512 

3487Claude Code verwirft die Felder `systemMessage` und `continue` eines PreCompact-Hooks.3513Claude Code verwirft die Felder `systemMessage` und `continue` eines PreCompact-Hooks.

3488 3514 


3490 PreCompact-Eingabe3516 PreCompact-Eingabe

3491</h4>3517</h4>

3492 3518 

3493Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreCompact-Hooks `trigger` und `custom_instructions`. Bei `manual` enthält `custom_instructions` das, was der Benutzer an `/compact` übergibt, und ist `null`, wenn nichts übergeben wird. Bei `auto` ist `custom_instructions` `null`.3519Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreCompact-Hooks `trigger` und `custom_instructions`. Bei `manual` enthält `custom_instructions`, was der Benutzer an `/compact` übergibt, und ist `null`, wenn nichts übergeben wird. Bei `auto` ist `custom_instructions` `null`.

3494 3520 

3495```json theme={null}3521```json theme={null}

3496{3522{


3507 PostCompact3533 PostCompact

3508</h3>3534</h3>

3509 3535 

3510Wird ausgeführt, nachdem Claude Code eine Komprimierung abgeschlossen hat. Verwenden Sie dieses Ereignis, um auf den neuen komprimierten Zustand zu reagieren, zum Beispiel um die generierte Zusammenfassung zu protokollieren oder einen externen Zustand zu aktualisieren. Claude Code verwirft die Felder `systemMessage` und `continue` eines PostCompact-Hooks.3536Wird ausgeführt, nachdem Claude Code eine Komprimierung abgeschlossen hat. Verwenden Sie dieses Ereignis, um auf den neuen komprimierten Zustand zu reagieren, etwa um die generierte Zusammenfassung zu protokollieren oder externen Zustand zu aktualisieren. Claude Code verwirft die Felder `systemMessage` und `continue` eines PostCompact-Hooks.

3511 3537 

3512Es gelten dieselben Matcher-Werte wie für `PreCompact`:3538Es gelten dieselben Matcher-Werte wie für `PreCompact`:

3513 3539 

3514| Matcher | Wann er ausgelöst wird |3540| Matcher | Wann er ausgelöst wird |

3515| :- | :- |3541| :- | :- |

3516| `manual` | Nach `/compact` |3542| `manual` | Nach `/compact` |

3517| `auto` | Nach der automatischen Komprimierung, wenn die Konversation das [Fenster für die automatische Komprimierung](/docs/de/model-config#set-the-auto-compact-window) erreicht |3543| `auto` | Nach der automatischen Komprimierung, wenn die Konversation das [Fenster für die automatische Komprimierung](/docs/de/model-config#set-the-auto-compact-window) erreicht, sowie nach der [Leerlauf-Komprimierung](/docs/de/settings-reference#idlecompaction) |

3518 3544 

3519<h4 id="postcompact-input">3545<h4 id="postcompact-input">

3520 PostCompact-Eingabe3546 PostCompact-Eingabe

3521</h4>3547</h4>

3522 3548 

3523Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PostCompact-Hooks `trigger` und `compact_summary`. Das Feld `compact_summary` enthält die durch die Komprimierung generierte Zusammenfassung der Konversation.3549Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PostCompact-Hooks `trigger` und `compact_summary`. Das Feld `compact_summary` enthält die von der Komprimierung generierte Zusammenfassung der Konversation.

3524 3550 

3525```json theme={null}3551```json theme={null}

3526{3552{


3533}3559}

3534```3560```

3535 3561 

3536PostCompact-Hooks haben keine Entscheidungssteuerung. Sie können das Ergebnis der Komprimierung nicht beeinflussen, aber Folgeaufgaben ausführen.3562PostCompact-Hooks haben keine Entscheidungskontrolle. Sie können das Ergebnis der Komprimierung nicht beeinflussen, aber Folgeaufgaben ausführen.

3537 3563 

3538<h3 id="premodelswitch">3564<h3 id="premodelswitch">

3539 PreModelSwitch3565 PreModelSwitch

3540</h3>3566</h3>

3541 3567 

3542Wird ausgeführt, bevor Claude Code einen Modellwechsel anwendet, den Sie oder ein Client angefordert haben. Verwenden Sie ihn, um einen Wechsel zu blockieren, eine Bestätigung zu verlangen oder anzuzeigen, was der Wechsel kosten wird, bevor er stattfindet.3568Wird ausgeführt, bevor Claude Code einen Modellwechsel anwendet, den Sie oder ein Client angefordert haben. Verwenden Sie ihn, um einen Wechsel zu blockieren, eine Bestätigung zu verlangen oder vorab anzuzeigen, was der Wechsel kosten wird.

3543 3569 

3544PreModelSwitch erfordert Claude Code v2.1.251 oder höher. Claude Code führt ihn für diese Anfragen aus:3570PreModelSwitch erfordert Claude Code v2.1.251 oder höher. Claude Code führt ihn bei diesen Anfragen aus:

3545 3571 

3546* `/model <name>` und die `/model`-Auswahl3572* `/model <name>` und die `/model`-Auswahl

3547* Die Modellauswahl über `Option+P` oder `Alt+P`3573* Die Modellauswahl über `Option+P` oder `Alt+P`

3548* Die Einstellung Model in `/config`3574* Die Einstellung „Model“ in `/config`

3549* Das Einschalten des [Fast-Modus](/docs/de/fast-mode), wenn dies das Modell der Sitzung ändert3575* Das Einschalten des [Fast-Modus](/docs/de/fast-mode), wenn dies das Modell der Sitzung ändert

3550* Eine `set_model`-Anfrage oder eine Modelländerung in einer `apply_flag_settings`-Anfrage von einem [Agent SDK](/docs/de/agent-sdk/typescript#query-object)-Host oder von [Remote Control](/docs/de/remote-control)3576* Eine `set_model`-Anfrage oder eine Modelländerung in einer `apply_flag_settings`-Anfrage von einem [Agent SDK](/docs/de/agent-sdk/typescript#query-object)-Host oder von [Remote Control](/docs/de/remote-control)

3551 3577 

3552Claude Code führt PreModelSwitch-Hooks nicht für Wechsel aus, die es selbstständig vornimmt, etwa bei einem [automatischen Modell-Fallback](/docs/de/model-config#automatic-model-fallback) oder beim Wiederherstellen des Modells, wenn Sie eine Sitzung fortsetzen. Diese Änderungen erreichen nur [PostModelSwitch](#postmodelswitch).3578Claude Code führt PreModelSwitch-Hooks nicht für Wechsel aus, die es selbst vornimmt, etwa einen [automatischen Modell-Fallback](/docs/de/model-config#automatic-model-fallback) oder die Wiederherstellung des Modells beim Fortsetzen einer Sitzung. Diese Änderungen erreichen nur [PostModelSwitch](#postmodelswitch).

3553 3579 

3554Claude Code vergleicht den Matcher mit dem kanonischen Namen des Modells, zu dem die Sitzung wechselt, und ignoriert dabei ein eventuelles `[1m]`-Suffix. Ein Alias wie `opus`, eine datierte Modell-ID und eine anbieterspezifische ID wie eine Amazon-Bedrock-Modell-ID entsprechen alle dem einen kanonischen Namen, zu dem sie aufgelöst werden, sodass `claude-opus-5` jede Schreibweise von Opus 5 abdeckt.3580Claude Code vergleicht den Matcher mit dem kanonischen Namen des Modells, zu dem die Sitzung wechselt, und ignoriert dabei ein eventuelles `[1m]`-Suffix. Ein Alias wie `opus`, eine datierte Modell-ID und eine anbieterspezifische ID wie eine Amazon-Bedrock-Modell-ID passen alle auf den einen kanonischen Namen, zu dem sie aufgelöst werden, sodass `claude-opus-5` jede Schreibweise von Opus 5 abdeckt.

3555 3581 

3556Wenn Claude Code keinen kanonischen Namen für das Ziel ermitteln kann, zum Beispiel bei einer benutzerdefinierten Modell-ID, die nur Ihr [LLM-Gateway](/docs/de/llm-gateway) kennt, führt es jeden PreModelSwitch-Hook unabhängig vom Matcher aus. Ein blockierender Hook sollte daher `to_model` aus seiner Eingabe prüfen, statt sich allein auf den Matcher zu verlassen.3582Wenn Claude Code keinen kanonischen Namen für das Ziel ermitteln kann, etwa bei einer benutzerdefinierten Modell-ID, die nur Ihr [LLM-Gateway](/docs/de/llm-gateway) kennt, führt es jeden PreModelSwitch-Hook unabhängig vom Matcher aus. Ein blockierender Hook sollte daher `to_model` aus seiner Eingabe prüfen, statt sich allein auf den Matcher zu verlassen.

3557 3583 

3558Schreiben Sie den Matcher als exakten Namen, als durch `|` getrennte Liste wie `claude-opus-4-6|claude-opus-5` oder als regulären Ausdruck wie `.*opus.*`. Dieses Beispiel verwendet einen Matcher mit exaktem Namen und prüft zusätzlich `to_model` aus der Hook-Eingabe, sodass es einen Wechsel zu Opus 4.6 durch Beenden mit Code 2 ablehnt und jedes andere Ziel durchlässt:3584Schreiben Sie den Matcher als exakten Namen, als durch `|` getrennte Liste wie `claude-opus-4-6|claude-opus-5` oder als regulären Ausdruck wie `.*opus.*`. Dieses Beispiel verwendet einen Matcher mit exaktem Namen und prüft zusätzlich `to_model` aus der Hook-Eingabe. So lehnt es einen Wechsel zu Opus 4.6 ab, indem es mit Code 2 beendet wird, und lässt jedes andere Ziel durch:

3559 3585 

3560<Tabs>3586<Tabs>

3561 <Tab title="macOS/Linux">3587 <Tab title="macOS/Linux">


3621 </Tab>3647 </Tab>

3622</Tabs>3648</Tabs>

3623 3649 

3624Um zu überprüfen, ob der Hook funktioniert, führen Sie `/model claude-opus-4-6` in einer Sitzung aus, die ein anderes Modell verwendet. Claude Code behält das aktuelle Modell bei und meldet, dass ein PreModelSwitch-Hook den Wechsel blockiert hat, mit Ihrer Meldung als Begründung.3650Um zu prüfen, ob der Hook funktioniert, führen Sie `/model claude-opus-4-6` in einer Sitzung aus, die ein anderes Modell verwendet. Claude Code behält das aktuelle Modell bei und meldet, dass ein PreModelSwitch-Hook den Wechsel blockiert hat, mit Ihrer Nachricht als Grund.

3625 3651 

3626<h4 id="premodelswitch-input">3652<h4 id="premodelswitch-input">

3627 PreModelSwitch-Eingabe3653 PreModelSwitch-Eingabe

3628</h4>3654</h4>

3629 3655 

3630Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreModelSwitch-Hooks die Felder in dieser Tabelle. Die letzten fünf beschreiben, was das erneute Senden der Konversation an das neue Modell kostet, sodass ein Hook diesen Betrag anzeigen kann, bevor der Wechsel stattfindet.3656Zusätzlich zu den [gemeinsamen Eingabefeldern](#common-input-fields) erhalten PreModelSwitch-Hooks die Felder in dieser Tabelle. Die letzten fünf beschreiben, was das erneute Senden der Konversation an das neue Modell kostet, sodass ein Hook diesen Betrag vor dem Wechsel anzeigen kann.

3631 3657 

3632| Feld | Typ | Beschreibung |3658| Feld | Typ | Beschreibung |

3633| :- | :- | :- |3659| :- | :- | :- |

3634| `from_model` | string | Modell-ID, von der aus gewechselt wird |3660| `from_model` | string | Modell-ID, von der gewechselt wird |

3635| `to_model` | string | Modell-ID, zu der gewechselt wird. Der Matcher wird mit dem kanonischen Namen dieses Modells verglichen |3661| `to_model` | string | Modell-ID, zu der gewechselt wird. Der Matcher wird mit dem kanonischen Namen dieses Modells verglichen |

3636| `requested_model` | string oder `null` | Das in der Anfrage genannte Modell: ein Alias wie `opus`, eine vollständige Modell-ID oder `null`, wenn die Anfrage das Standardmodell betraf |3662| `requested_model` | string oder `null` | Das in der Anfrage genannte Modell: ein Alias wie `opus`, eine vollständige Modell-ID oder `null`, wenn das Standardmodell angefordert wurde |

3637| `source` | string | Woher die Anfrage kam: `"command"` für `/model <name>`, die Einstellung Model in `/config` oder das Einschalten des Fast-Modus; `"picker"` für eine Modellauswahl; `"sdk"` für eine `set_model`-Anfrage oder eine Modelländerung in einer `apply_flag_settings`-Anfrage von einem Agent SDK-Host oder von Remote Control |3663| `source` | string | Woher die Anfrage stammt: `"command"` für `/model <name>`, die Einstellung „Model“ in `/config` oder das Einschalten des Fast-Modus; `"picker"` für eine Modellauswahl; `"sdk"` für eine `set_model`-Anfrage oder eine Modelländerung in einer `apply_flag_settings`-Anfrage von einem Agent-SDK-Host oder von Remote Control |

3638| `context_tokens` | number | Token, die die nächste Anfrage als Prompt erneut sendet: die Eingabe-, Cache-Lese-, Cache-Erstellungs- und Ausgabe-Token der letzten Antwort in der Hauptkonversation zusammengenommen. `0` vor der ersten Antwort |3664| `context_tokens` | number | Token, die die nächste Anfrage erneut als Prompt sendet: Eingabe-, Cache-Lese-, Cache-Erstellungs- und Ausgabe-Token der letzten Antwort in der Hauptkonversation zusammengenommen. `0` vor der ersten Antwort |

3639| `prompt_cache_warm` | boolean | Ob der Prompt-Cache des aktuellen Modells wahrscheinlich noch warm ist, was bedeutet, dass der Wechsel ihn verwirft |3665| `prompt_cache_warm` | boolean | Ob der Prompt-Cache des aktuellen Modells wahrscheinlich noch warm ist, sodass er durch den Wechsel verloren geht |

3640| `cache_ttl` | string | [Lebensdauer des Prompt-Caches](/docs/de/prompt-caching#cache-lifetime), die Claude Code für diese Sitzung anfordert: `"5m"` oder `"1h"` |3666| `cache_ttl` | string | [Prompt-Cache-Lebensdauer](/docs/de/prompt-caching#cache-lifetime), die Claude Code für diese Sitzung anfordert: `"5m"` oder `"1h"` |

3641| `estimated_cache_write_usd` | number | Geschätzte Kosten in US-Dollar für das Schreiben von `context_tokens` in den Prompt-Cache von `to_model` zum `cache_ttl`-Tarif, ohne die nächste Antwort. Der Server muss möglicherweise nicht den gesamten Kontext erneut zwischenspeichern, betrachten Sie den Wert daher als Schätzung |3667| `estimated_cache_write_usd` | number | Geschätzte Kosten in US-Dollar für das Schreiben von `context_tokens` in den Prompt-Cache von `to_model` zum `cache_ttl`-Tarif, ohne die nächste Antwort. Der Server muss möglicherweise nicht den gesamten Kontext erneut zwischenspeichern, betrachten Sie den Wert daher als Schätzung |

3642| `pricing` | string | Wie Claude Code `estimated_cache_write_usd` berechnet hat: `"configured"` zu den eigenen Tarifen Ihrer Organisation, wenn diese konfiguriert wurden, `"catalog"` zum Listenpreis oder `"default"`, wenn für `to_model` kein Preis bekannt ist und Claude Code einen Standardtarif angenommen hat |3668| `pricing` | string | Wie Claude Code `estimated_cache_write_usd` berechnet hat: `"configured"` zu den eigenen Tarifen Ihrer Organisation, sofern diese konfiguriert sind, `"catalog"` zum Listenpreis oder `"default"`, wenn für `to_model` kein Preis bekannt ist und Claude Code einen Standardtarif angenommen hat |

3643 3669 

3644Dieses Beispiel zeigt die Eingabe für `/model opus` in einer Sitzung, die Sonnet 5 verwendet:3670Dieses Beispiel zeigt die Eingabe für `/model opus` in einer Sitzung mit Sonnet 5:

3645 3671 

3646```json theme={null}3672```json theme={null}

3647{3673{


3662```3688```

3663 3689 

3664<h4 id="premodelswitch-decision-control">3690<h4 id="premodelswitch-decision-control">

3665 PreModelSwitch-Entscheidungssteuerung3691 PreModelSwitch-Entscheidungskontrolle

3666</h4>3692</h4>

3667 3693 

3668`PreModelSwitch`-Hooks können den Wechsel abbrechen, den Benutzer um Bestätigung bitten oder ihn fortsetzen lassen. Exit-Code 2 oder ein `decision: "block"` auf oberster Ebene bricht den Wechsel ab.3694`PreModelSwitch`-Hooks können den Wechsel abbrechen, den Benutzer um Bestätigung bitten oder ihn durchführen lassen. Exit-Code 2 oder ein `decision: "block"` auf oberster Ebene bricht den Wechsel ab.

3669 3695 

3670Für eine feinere Steuerung geben Sie `permissionDecision` und `permissionDecisionReason` in einem `hookSpecificOutput`-Objekt zurück, wie bei [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` akzeptiert `"allow"`, `"deny"` und `"ask"`. Es akzeptiert weder `"defer"` noch `updatedInput` oder `additionalContext`. Die folgende Tabelle beschreibt beide Felder:3696Für eine feinere Steuerung geben Sie `permissionDecision` und `permissionDecisionReason` in einem `hookSpecificOutput`-Objekt zurück, wie bei [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` akzeptiert `"allow"`, `"deny"` und `"ask"`. Es akzeptiert weder `"defer"` noch `updatedInput` oder `additionalContext`. Die folgende Tabelle beschreibt beide Felder:

3671 3697 

3672| Feld | Beschreibung |3698| Feld | Beschreibung |

3673| :- | :- |3699| :- | :- |

3674| `permissionDecision` | `"allow"` setzt fort und überspringt die [Bestätigung, die Claude Code anzeigt, solange der Prompt-Cache warm ist](/docs/de/prompt-caching#switching-models). `"deny"` bricht den Wechsel ab. `"ask"` bittet den Benutzer, ihn zu bestätigen |3700| `permissionDecision` | `"allow"` führt den Wechsel durch und überspringt die [Bestätigung, die Claude Code anzeigt, solange der Prompt-Cache warm ist](/docs/de/prompt-caching#switching-models). `"deny"` bricht den Wechsel ab. `"ask"` bittet den Benutzer um Bestätigung |

3675| `permissionDecisionReason` | Bei `"deny"` wird dies dem Benutzer als Grund für die Blockierung des Wechsels angezeigt oder als Fehler für eine `set_model`-Anfrage zurückgegeben. Bei `"ask"` wird es in der Bestätigungsabfrage angezeigt. Wird bei `"allow"` ignoriert |3701| `permissionDecisionReason` | Bei `"deny"` wird er dem Benutzer als Grund für die Blockierung angezeigt oder bei einer `set_model`-Anfrage als Fehler zurückgegeben. Bei `"ask"` wird er in der Bestätigungsabfrage angezeigt. Bei `"allow"` wird er ignoriert |

3676 3702 

3677Nur `/model` in einer interaktiven Sitzung kann die `"ask"`-Abfrage anzeigen. Auf jeder anderen Oberfläche, einschließlich des nicht interaktiven Modus mit dem Flag `-p`, `/config` und `set_model`-Anfragen, behandelt Claude Code `"ask"` als Ablehnung.3703Nur `/model` in einer interaktiven Sitzung kann die `"ask"`-Abfrage anzeigen. Auf allen anderen Oberflächen, einschließlich des nicht interaktiven Modus mit dem Flag `-p`, `/config` und `set_model`-Anfragen, behandelt Claude Code `"ask"` als Ablehnung.

3678 3704 

3679Dieses Beispiel bittet den Benutzer um Bestätigung und nennt die Anzahl der Token aus `context_tokens`:3705Dieses Beispiel bittet den Benutzer um Bestätigung und nennt die Token-Anzahl aus `context_tokens`:

3680 3706 

3681```json theme={null}3707```json theme={null}

3682{3708{


3688}3714}

3689```3715```

3690 3716 

3691Wenn mehrere PreModelSwitch-Hooks unterschiedliche Entscheidungen zurückgeben, gilt der Vorrang `deny` > `ask` > `allow`.3717Wenn mehrere PreModelSwitch-Hooks unterschiedliche Entscheidungen zurückgeben, gilt die Rangfolge `deny` > `ask` > `allow`.

3692 3718 

3693Claude Code zeigt dem Benutzer jede `systemMessage` an, die Ihr Hook zurückgibt, unabhängig von der Entscheidung, sodass ein Hook zur Kostenmeldung `{"systemMessage": "..."}` zurückgeben und mit 0 beendet werden kann.3719Claude Code zeigt dem Benutzer jede `systemMessage`, die Ihr Hook zurückgibt, unabhängig von der Entscheidung an. Ein Hook, der Kosten meldet, kann also `{"systemMessage": "..."}` zurückgeben und mit 0 beendet werden.

3694 3720 

3695Ein PreModelSwitch-Hook, der nicht vor seinem Timeout antwortet, blockiert den Wechsel. Was ein Timeout bei anderen Ereignissen bewirkt, erfahren Sie unter [Timeouts](#timeouts). Der Standard-Timeout für dieses Ereignis beträgt 30 Sekunden. `PreModelSwitch` führt nur `command`-, `http`- und `mcp_tool`-Hooks aus, daher gelten die Standardwerte für `prompt` und `agent` nicht.3721Ein PreModelSwitch-Hook, der nicht vor Ablauf seines Timeouts antwortet, blockiert den Wechsel. Was ein Timeout bei anderen Ereignissen bewirkt, lesen Sie unter [Timeouts](#timeouts). Der Standard-Timeout für dieses Ereignis beträgt 30 Sekunden. `PreModelSwitch` führt nur `command`-, `http`- und `mcp_tool`-Hooks aus, daher gelten die Standardwerte für `prompt` und `agent` nicht.

3696 3722 

3697Ein Hook, der mit einem anderen Code als 0 oder 2 beendet wird und keine JSON-Entscheidung ausgibt, ist ein nicht blockierender Fehler, wie unter [Andere Exit-Codes](#other-exit-codes) beschrieben.3723Ein Hook, der mit einem anderen Code als 0 oder 2 beendet wird und keine JSON-Entscheidung ausgibt, ist ein nicht blockierender Fehler, wie unter [Andere Exit-Codes](#other-exit-codes) beschrieben.

3698 3724 


3700 PostModelSwitch3726 PostModelSwitch

3701</h3>3727</h3>

3702 3728 

3703Wird ausgeführt, nachdem sich das Modell der Sitzung geändert hat. Verwenden Sie ihn, um Claude modellspezifische Hinweise zu geben, ohne jede CLAUDE.md zu bearbeiten, zum Beispiel eine organisationsweite Anweisung, die für bestimmte Modelle gilt.3729Wird ausgeführt, nachdem sich das Modell der Sitzung geändert hat. Verwenden Sie ihn, um Claude modellspezifische Hinweise zu geben, ohne jede CLAUDE.md zu bearbeiten, etwa eine organisationsweite Anweisung, die für bestimmte Modelle gilt.

3704 3730 

3705PostModelSwitch erfordert Claude Code v2.1.251 oder höher. Er kann nicht blockieren, da sich das Modell bereits geändert hat. Claude Code führt PostModelSwitch-Hooks nach jeder dieser Änderungen aus:3731PostModelSwitch erfordert Claude Code v2.1.251 oder höher. Er kann nicht blockieren, da sich das Modell bereits geändert hat. Claude Code führt PostModelSwitch-Hooks nach jeder dieser Änderungen aus:

3706 3732 

3707* Einem Wechsel, den Sie oder ein Client angefordert haben3733* Ein von Ihnen oder einem Client angeforderter Wechsel

3708* Einem [automatischen Modell-Fallback](/docs/de/model-config#automatic-model-fallback), der das Modell der Sitzung ändert3734* Ein [automatischer Modell-Fallback](/docs/de/model-config#automatic-model-fallback), der das Modell der Sitzung ändert

3709* Einer Einstellung wie [`opusplan`](/docs/de/model-config#opusplan-model-setting), die in den Plan-Modus wechselt oder ihn verlässt3735* Eine Einstellung wie [`opusplan`](/docs/de/model-config#opusplan-model-setting), die den Plan-Modus betritt oder verlässt

3710* Der Wiederherstellung des Modells durch Claude Code, wenn Sie eine Sitzung fortsetzen3736* Claude Code stellt das Modell wieder her, wenn Sie eine Sitzung fortsetzen

3711 3737 

3712Claude Code führt keine PostModelSwitch-Hooks aus, wenn ein Modell aus einer [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains) einen Turn bedient, da diese Ersetzung nur einen Turn dauert und das Modell der Sitzung unverändert lässt.3738Claude Code führt PostModelSwitch-Hooks nicht aus, wenn ein Modell aus einer [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains) einen Turn bedient, da diese Ersetzung nur einen Turn dauert und das Modell der Sitzung unverändert lässt.

3713 3739 

3714Der Matcher folgt denselben Regeln wie bei [PreModelSwitch](#premodelswitch): Claude Code vergleicht ihn mit dem kanonischen Namen des Modells, zu dem die Sitzung gewechselt hat.3740Der Matcher folgt denselben Regeln wie bei [PreModelSwitch](#premodelswitch): Claude Code vergleicht ihn mit dem kanonischen Namen des Modells, zu dem die Sitzung gewechselt hat.

3715 3741 


3733}3759}

3734```3760```

3735 3761 

3736Um zu überprüfen, ob der Hook funktioniert, wechseln Sie in einer Sitzung mit einem anderen Modell zu einem Opus-Modell, führen Sie zum Beispiel `/model opus` in einer Sonnet-Sitzung aus, und fragen Sie Claude dann, welche Hinweise es zum aktuellen Modell hat.3762Um zu prüfen, ob der Hook funktioniert, wechseln Sie aus einer Sitzung mit einem anderen Modell zu einem Opus-Modell, führen Sie also zum Beispiel `/model opus` in einer Sonnet-Sitzung aus, und fragen Sie Claude dann, welche Hinweise es zum aktuellen Modell hat.

3737 3763 

3738<h4 id="postmodelswitch-input">3764<h4 id="postmodelswitch-input">

3739 PostModelSwitch-Eingabe3765 PostModelSwitch-Eingabe

3740</h4>3766</h4>

3741 3767 

3742PostModelSwitch-Hooks erhalten dieselben Felder wie [PreModelSwitch](#premodelswitch-input), wobei `hook_event_name` auf `"PostModelSwitch"` gesetzt ist und zwei weitere `source`-Werte hinzukommen: `"auto"` für einen automatischen Fallback oder eine andere Änderung, die Claude Code selbstständig vorgenommen hat, und `"resume"` für das Modell, das beim Fortsetzen einer Sitzung wiederhergestellt wurde.3768PostModelSwitch-Hooks erhalten dieselben Felder wie [PreModelSwitch](#premodelswitch-input), wobei `hook_event_name` auf `"PostModelSwitch"` gesetzt ist, und zwei weitere `source`-Werte: `"auto"` für einen automatischen Fallback oder eine andere Änderung, die Claude Code selbst vorgenommen hat, und `"resume"` für das beim Fortsetzen einer Sitzung wiederhergestellte Modell.

3743 3769 

3744`requested_model` ist `null`, wenn `source` den Wert `"auto"` hat. Wenn `source` den Wert `"resume"` hat, enthält es die gespeicherte Modelleinstellung, die Claude Code wiederhergestellt hat.3770`requested_model` ist `null`, wenn `source` den Wert `"auto"` hat. Wenn `source` den Wert `"resume"` hat, ist es die gespeicherte Modelleinstellung, die Claude Code wiederhergestellt hat.

3745 3771 

3746<h4 id="postmodelswitch-decision-control">3772<h4 id="postmodelswitch-decision-control">

3747 PostModelSwitch-Entscheidungssteuerung3773 PostModelSwitch-Entscheidungskontrolle

3748</h4>3774</h4>

3749 3775 

3750Claude Code übernimmt die [Klartext-Ausgabe auf stdout](#exit-code-0) Ihres Hooks bei Exit 0 oder `additionalContext` aus der JSON-Ausgabe und übermittelt sie Claude mit der nächsten Anfrage nach dem Wechsel. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen, können Sie Folgendes zurückgeben:3776Claude Code übernimmt bei Exit 0 die [reine Textausgabe auf stdout](#exit-code-0) Ihres Hooks oder `additionalContext` aus der JSON-Ausgabe und übergibt sie Claude mit der nächsten Anfrage nach dem Wechsel. Zusätzlich zu den [JSON-Ausgabefeldern](#json-output), die allen Hooks zur Verfügung stehen, können Sie Folgendes zurückgeben:

3751 3777 

3752| Feld | Beschreibung |3778| Feld | Beschreibung |

3753| :- | :- |3779| :- | :- |

3754| `additionalContext` | Zeichenfolge, die Claudes Kontext mit der nächsten Anfrage hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |3780| `additionalContext` | String, der Claudes Kontext mit der nächsten Anfrage hinzugefügt wird. Siehe [Kontext für Claude hinzufügen](#add-context-for-claude) |

3755 3781 

3756Wenn der Hook nicht innerhalb von fünf Sekunden nach dem Senden Ihres nächsten Prompts fertig ist, sendet Claude Code diese Anfrage ohne die Ausgabe und hängt sie stattdessen an die darauffolgende Anfrage an. Wenn sich das Modell vor der nächsten Anfrage mehrmals ändert, übermittelt Claude Code nur die Ausgabe für das Zielmodell des letzten Wechsels.3782Wenn der Hook nicht innerhalb von fünf Sekunden nach dem Senden Ihres nächsten Prompts fertig ist, sendet Claude Code diese Anfrage ohne die Ausgabe und hängt sie stattdessen an die darauffolgende Anfrage an. Wenn sich das Modell vor der nächsten Anfrage mehrmals ändert, übergibt Claude Code nur die Ausgabe für das Zielmodell des letzten Wechsels.

3757 3783 

3758<h3 id="sessionend">3784<h3 id="sessionend">

3759 SessionEnd3785 SessionEnd

3760</h3>3786</h3>

3761 3787 

3762Wird ausgeführt, wenn eine Claude Code-Sitzung endet. Nützlich für Bereinigungsaufgaben, das Protokollieren von Sitzungsstatistiken3788Wird ausgeführt, wenn eine Claude-Code-Sitzung endet. Nützlich für Aufräumarbeiten, das Protokollieren von Sitzungsstatistiken

3763oder das Speichern des Sitzungszustands. Unterstützt Matcher, um nach dem Beendigungsgrund zu filtern.3789oder das Speichern des Sitzungszustands. Unterstützt Matcher zum Filtern nach dem Beendigungsgrund.

3764 3790 

3765Das Feld `reason` in der Hook-Eingabe gibt an, warum die Sitzung beendet wurde:3791Das Feld `reason` in der Hook-Eingabe gibt an, warum die Sitzung beendet wurde:

3766 3792 


3789}3815}

3790```3816```

3791 3817 

3792SessionEnd-Hooks haben keine Entscheidungssteuerung. Sie können das Beenden der Sitzung nicht blockieren, aber Bereinigungsaufgaben ausführen. Claude Code verwirft ihre [JSON-Ausgabefelder](#json-output), etwa `systemMessage`.3818SessionEnd-Hooks haben keine Entscheidungskontrolle. Sie können das Beenden der Sitzung nicht blockieren, aber Aufräumarbeiten ausführen. Claude Code verwirft ihre [JSON-Ausgabefelder](#json-output), etwa `systemMessage`.

3793 3819 

3794SessionEnd-Hooks haben einen Standard-Timeout von 1,5 Sekunden. Er gilt, wenn Sie beenden, `/clear` ausführen oder Sitzungen mit interaktivem `/resume` wechseln. Sie können einem Hook auf zwei Arten mehr Zeit geben:3820SessionEnd-Hooks haben einen Standard-Timeout von 1,5 Sekunden. Er gilt, wenn Sie beenden, `/clear` ausführen oder mit interaktivem `/resume` die Sitzung wechseln. Sie können einem Hook auf zwei Arten mehr Zeit geben:

3795 3821 

3796* **`timeout` pro Hook**: Setzen Sie `timeout` in der Konfiguration dieses Hooks. Das Gesamtbudget steigt automatisch auf den höchsten `timeout`-Wert pro Hook in Ihren Einstellungsdateien, bis zu 60 Sekunden. Wenn Sie das Budget auf diese Weise erhöhen, behält ein Hook ohne eigenen `timeout` weiterhin den Standardwert. Timeouts, die für von Plugins bereitgestellte Hooks festgelegt sind, erhöhen das Budget nicht.3822* **`timeout` pro Hook**: Setzen Sie `timeout` in der Konfiguration dieses Hooks. Das Gesamtbudget steigt automatisch auf den höchsten `timeout`-Wert pro Hook in Ihren Einstellungsdateien, bis zu 60 Sekunden. Wenn Sie das Budget auf diese Weise erhöhen, behält ein Hook ohne eigenen `timeout` weiterhin den Standardwert. Timeouts, die für von Plugins bereitgestellte Hooks gesetzt sind, erhöhen das Budget nicht.

3797* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: Setzen Sie diese Umgebungsvariable in Millisekunden, um das Budget explizit zu überschreiben. Der von Ihnen gesetzte Wert wird außerdem zum Timeout für jeden Hook ohne eigenen `timeout`.3823* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: Setzen Sie diese Umgebungsvariable in Millisekunden, um das Budget explizit zu überschreiben. Der gesetzte Wert wird außerdem zum Timeout für jeden Hook ohne eigenen `timeout`.

3798 3824 

3799Dieses Beispiel setzt das Budget auf 5 Sekunden:3825Dieses Beispiel setzt das Budget auf 5 Sekunden:

3800 3826 


3808 Elicitation3834 Elicitation

3809</h3>3835</h3>

3810 3836 

3811Wird ausgeführt, wenn ein MCP-Server während einer Aufgabe eine Benutzereingabe anfordert. Standardmäßig zeigt Claude Code einen interaktiven Dialog an, in dem der Benutzer antworten kann. Hooks können diese Anfrage abfangen und programmgesteuert beantworten, wodurch der Dialog vollständig übersprungen wird.3837Wird ausgeführt, wenn ein MCP-Server mitten in einer Aufgabe eine Benutzereingabe anfordert. Standardmäßig zeigt Claude Code einen interaktiven Dialog an, in dem der Benutzer antworten kann. Hooks können diese Anfrage abfangen und programmgesteuert beantworten, wodurch der Dialog vollständig übersprungen wird.

3812 3838 

3813Einen vollständigen Hook mit seinem Einstellungseintrag und Skript finden Sie unter [Eine Formularanfrage über ein Skript beantworten](#answer-a-form-request-from-a-script).3839Einen vollständigen Hook mit Einstellungseintrag und Skript finden Sie unter [Eine Formularanfrage per Skript beantworten](#answer-a-form-request-from-a-script).

3814 3840 

3815Das Matcher-Feld wird mit dem Namen des MCP-Servers abgeglichen.3841Das Matcher-Feld wird mit dem Namen des MCP-Servers abgeglichen.

3816 3842 


3859 Elicitation-Ausgabe3885 Elicitation-Ausgabe

3860</h4>3886</h4>

3861 3887 

3862Ein Elicitation-Hook kann die Anfrage für den Benutzer beantworten, sie ablehnen oder abbrechen oder sie dem Dialog überlassen. Um zu antworten, abzulehnen oder abzubrechen, beenden Sie mit 0 und geben ein `hookSpecificOutput`-Objekt mit einer `action` aus. Der Server erhält Ihre Antwort, und es erscheint kein Dialog. Jede Zeile dieser Tabelle zeigt, was Sie für ein Ergebnis zurückgeben müssen und was der MCP-Server erhält:3888Ein Elicitation-Hook kann die Anfrage für den Benutzer beantworten, sie ablehnen oder abbrechen oder sie dem Dialog überlassen. Um zu antworten, abzulehnen oder abzubrechen, beenden Sie mit 0 und geben ein `hookSpecificOutput`-Objekt mit einer `action` aus. Der Server erhält Ihre Antwort, und es erscheint kein Dialog. Jede Zeile dieser Tabelle zeigt, was Sie für ein Ergebnis zurückgeben und was der MCP-Server erhält:

3863 3889 

3864| Ziel | Rückgabe | Der Server erhält |3890| Ziel | Rückgabe | Der Server erhält |

3865| :- | :- | :- |3891| :- | :- | :- |

3866| Für den Benutzer antworten | `"action": "accept"`, mit den Werten der Formularfelder in `content` | `accept` mit Ihrem `content` |3892| Für den Benutzer antworten | `"action": "accept"`, mit den Formularfeldwerten in `content` | `accept` mit Ihrem `content` |

3867| Die Anfrage ablehnen | `"action": "decline"` | `decline` |3893| Die Anfrage ablehnen | `"action": "decline"` | `decline` |

3868| Die Anfrage abbrechen | `"action": "cancel"` | `cancel` |3894| Die Anfrage abbrechen | `"action": "cancel"` | `cancel` |

3869| Die Anfrage dem Benutzer überlassen | Keine Ausgabe, mit Exit-Code 0 | Die Antwort des Benutzers aus dem [Dialog](/docs/de/mcp#respond-to-mcp-elicitation-requests) |3895| Die Anfrage dem Benutzer überlassen | Keine Ausgabe, mit Exit-Code 0 | Die Antwort des Benutzers aus dem [Dialog](/docs/de/mcp#respond-to-mcp-elicitation-requests) |

3870 3896 

3871Diese Ausgabe beantwortet die Anfrage im Formularmodus, die unter [Elicitation-Eingabe](#elicitation-input) gezeigt wird. Die Schlüssel in `content` sind die Eigenschaftsnamen aus dem `requested_schema` dieser Anfrage:3897Diese Ausgabe beantwortet die unter [Elicitation-Eingabe](#elicitation-input) gezeigte Anfrage im Formularmodus. Die Schlüssel in `content` sind die Eigenschaftsnamen aus dem `requested_schema` dieser Anfrage:

3872 3898 

3873```json theme={null}3899```json theme={null}

3874{3900{


3893}3919}

3894```3920```

3895 3921 

3896Im Dialog sendet die Auswahl von **Decline** `decline` und das Drücken von `Esc` sendet `cancel`, geben Sie also dasjenige zurück, das der Server sehen soll.3922Im Dialog sendet die Auswahl von **Decline** `decline` und das Drücken von `Esc` sendet `cancel`. Geben Sie also den Wert zurück, den der Server sehen soll.

3897 3923 

3898Bei einer Anfrage im URL-Modus überspringt ein Hook, der `accept` zurückgibt, den Dialog, sodass die URL nie geöffnet wird.3924Bei einer Anfrage im URL-Modus überspringt ein Hook, der `accept` zurückgibt, den Dialog, sodass die URL nie geöffnet wird.

3899 3925 

3900Claude Code verwirft `reason`, `systemMessage` und `continue` aus der JSON-Ausgabe eines Elicitation-Hooks, unabhängig davon, welche `action` Sie zurückgeben.3926Claude Code verwirft `reason`, `systemMessage` und `continue` aus der JSON-Ausgabe eines Elicitation-Hooks, unabhängig davon, welche `action` Sie zurückgeben.

3901 3927 

3902<h4 id="other-ways-to-decline-an-elicitation">3928<h4 id="other-ways-to-decline-an-elicitation">

3903 Andere Möglichkeiten, eine Elicitation abzulehnen3929 Weitere Möglichkeiten, eine Elicitation abzulehnen

3904</h4>3930</h4>

3905 3931 

3906Ihr Hook kann auch auf diese Weise ablehnen. Der Server erhält dasselbe `decline` wie bei `"action": "decline"`:3932Ihr Hook kann auch auf diese Weise ablehnen. Der Server erhält dasselbe `decline` wie bei `"action": "decline"`:

3907 3933 

3908* **Beendet mit Code 2**: Claude Code ignoriert ein vom selben Hook ausgegebenes `hookSpecificOutput`3934* **Beenden mit Code 2**: Claude Code ignoriert ein vom selben Hook ausgegebenes `hookSpecificOutput`

3909* **Gibt ein `"decision": "block"` auf oberster Ebene aus**: Die Blockierung überschreibt eine `action` in derselben Ausgabe3935* **Ausgabe eines `"decision": "block"` auf oberster Ebene**: Die Blockierung überschreibt eine `action` in derselben Ausgabe

3910 3936 

3911Wenn mehrere Hooks auf dieselbe Anfrage zutreffen, überschreibt eine Ablehnung durch einen von ihnen ein `accept` oder `cancel` eines anderen.3937Wenn mehrere Hooks auf dieselbe Anfrage passen, überschreibt eine Ablehnung durch einen von ihnen ein `accept` oder `cancel` eines anderen.

3912 3938 

3913Dieses Skript lehnt Anfragen im URL-Modus ab und überlässt Formularanfragen dem Dialog:3939Dieses Skript lehnt Anfragen im URL-Modus ab und überlässt Formularanfragen dem Dialog:

3914 3940 


3921 3947 

3922Weder der Benutzer noch der Server sieht, warum Ihr Hook abgelehnt hat, da Claude Code weder Ihre stderr-Ausgabe noch Ihren `reason` anzeigt.3948Weder der Benutzer noch der Server sieht, warum Ihr Hook abgelehnt hat, da Claude Code weder Ihre stderr-Ausgabe noch Ihren `reason` anzeigt.

3923 3949 

3924Claude Code ignorierte ein `decision` auf oberster Ebene von `Elicitation`- und `ElicitationResult`-Hooks ab v2.1.105 bis zur Korrektur in v2.1.284.3950Claude Code ignorierte eine `decision` auf oberster Ebene von `Elicitation`- und `ElicitationResult`-Hooks ab v2.1.105 bis zur Korrektur in v2.1.284.

3925 3951 

3926<h4 id="answer-a-form-request-from-a-script">3952<h4 id="answer-a-form-request-from-a-script">

3927 Eine Formularanfrage über ein Skript beantworten3953 Eine Formularanfrage per Skript beantworten

3928</h4>3954</h4>

3929 3955 

3930Dieses Beispiel beantwortet eine wiederkehrende Frage für den Benutzer. Ein MCP-Server namens `issue-tracker` fragt in einem Formular nach einem Projektschlüssel, und der Hook trägt `DOCS` ein. Das Skript akzeptiert, wenn `project_key` das einzige Feld des Formulars ist. Bei jeder anderen Anfrage gibt es nichts aus, sodass der Dialog erscheint.3956Dieses Beispiel beantwortet eine wiederkehrende Frage für den Benutzer. Ein MCP-Server namens `issue-tracker` fragt in einem Formular nach einem Projektschlüssel, und der Hook trägt `DOCS` ein. Das Skript akzeptiert, wenn `project_key` das einzige Feld des Formulars ist. Bei jeder anderen Anfrage gibt es nichts aus, sodass der Dialog erscheint.


4012 </Tab>4038 </Tab>

4013</Tabs>4039</Tabs>

4014 4040 

4015Um zu überprüfen, ob der Hook funktioniert, starten Sie Claude Code mit `claude --debug` und geben Sie Claude eine Aufgabe, bei der der Server nach dem Projektschlüssel fragt. Es erscheint kein Dialog, und das [Debug-Log](#debug-hooks) enthält eine Zeile, die mit `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}` endet.4041Um zu prüfen, ob der Hook funktioniert, starten Sie Claude Code mit `claude --debug` und geben Claude eine Aufgabe, bei der der Server nach dem Projektschlüssel fragt. Es erscheint kein Dialog, und das [Debug-Log](#debug-hooks) enthält eine Zeile, die mit `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}` endet.

4016 4042 

4017<h3 id="elicitationresult">4043<h3 id="elicitationresult">

4018 ElicitationResult4044 ElicitationResult


4047 ElicitationResult-Ausgabe4073 ElicitationResult-Ausgabe

4048</h4>4074</h4>

4049 4075 

4050Ein ElicitationResult-Hook kann die Antwort des Benutzers durchlassen, ihre Werte ändern oder sie blockieren. Um die Antwort zu ändern oder zu blockieren, beenden Sie mit 0 und geben ein `hookSpecificOutput`-Objekt mit einer `action` aus. Jede Zeile dieser Tabelle zeigt, was Sie für ein Ergebnis zurückgeben müssen und was der MCP-Server erhält:4076Ein ElicitationResult-Hook kann die Antwort des Benutzers durchlassen, ihre Werte ändern oder sie blockieren. Um die Antwort zu ändern oder zu blockieren, beenden Sie mit 0 und geben ein `hookSpecificOutput`-Objekt mit einer `action` aus. Jede Zeile dieser Tabelle zeigt, was Sie für ein Ergebnis zurückgeben und was der MCP-Server erhält:

4051 4077 

4052| Ziel | Rückgabe | Der Server erhält |4078| Ziel | Rückgabe | Der Server erhält |

4053| :- | :- | :- |4079| :- | :- | :- |

4054| Die Antwort durchlassen | Keine Ausgabe, mit Exit-Code 0 | Die Antwort des Benutzers, unverändert |4080| Die Antwort durchlassen | Keine Ausgabe, mit Exit-Code 0 | Die Antwort des Benutzers, unverändert |

4055| Die übermittelten Werte ändern | `"action": "accept"`, mit den neuen Werten in `content` | `accept` mit Ihrem `content` anstelle der Werte des Benutzers |4081| Die übermittelten Werte ändern | `"action": "accept"`, mit den neuen Werten in `content` | `accept` mit Ihrem `content` anstelle der Werte des Benutzers |

4056| Die Antwort blockieren | `"action": "decline"` | `decline`, ohne die Werte des Benutzers |4082| Die Antwort blockieren | `"action": "decline"` | `decline`, ohne die Werte des Benutzers |

4057| Die Anfrage abbrechen | `"action": "cancel"` | `cancel`, zusammen mit den vom Benutzer übermittelten Werten. Um diese zurückzuhalten, geben Sie `"decline"` zurück |4083| Die Anfrage abbrechen | `"action": "cancel"` | `cancel`, zusammen mit den Werten, die der Benutzer übermittelt hat. Um sie zurückzuhalten, geben Sie `"decline"` zurück |

4058 4084 

4059Diese Ausgabe ändert die unter [ElicitationResult-Eingabe](#elicitationresult-input) gezeigte Antwort, sodass der Server `alice@example.com` erhält, wo der Benutzer `alice` übermittelt hat:4085Diese Ausgabe ändert die unter [ElicitationResult-Eingabe](#elicitationresult-input) gezeigte Antwort, sodass der Server `alice@example.com` erhält, wo der Benutzer `alice` übermittelt hat:

4060 4086 


4070}4096}

4071```4097```

4072 4098 

4073Ihr `content` ersetzt das gesamte `content`-Objekt des Benutzers, schließen Sie also die Felder ein, die Sie nicht ändern. Geben Sie `action` zusammen damit zurück, da Claude Code ein `hookSpecificOutput` ohne `action` ignoriert.4099Ihr `content` ersetzt das gesamte `content`-Objekt des Benutzers, also fügen Sie auch die Felder ein, die Sie nicht ändern. Geben Sie `action` mit zurück, da Claude Code ein `hookSpecificOutput` ohne `action` ignoriert.

4074 4100 

4075ElicitationResult-Hooks werden auch ausgeführt, wenn der Benutzer ablehnt oder abbricht, und Ihre `action` ersetzt die des Benutzers. Prüfen Sie, ob die `action` der Eingabe `accept` ist, bevor Sie `accept` zurückgeben, sonst verwandelt Ihr Hook eine abgelehnte Anfrage in eine akzeptierte. Dieses Skript nimmt dieselbe Änderung vor, wenn der Benutzer akzeptiert hat, behält die anderen Felder bei und gibt andernfalls nichts aus:4101ElicitationResult-Hooks werden auch ausgeführt, wenn der Benutzer ablehnt oder abbricht, und Ihre `action` ersetzt die des Benutzers. Prüfen Sie, ob die `action` der Eingabe `accept` ist, bevor Sie `accept` zurückgeben, sonst macht Ihr Hook aus einer abgelehnten Anfrage eine akzeptierte. Dieses Skript nimmt dieselbe Änderung vor, wenn der Benutzer akzeptiert hat, behält die anderen Felder bei und gibt andernfalls nichts aus:

4076 4102 

4077```bash theme={null}4103```bash theme={null}

4078#!/bin/bash4104#!/bin/bash


4094}4120}

4095```4121```

4096 4122 

4097Exit-Code 2 und ein `"decision": "block"` auf oberster Ebene blockieren die Antwort ebenfalls. Unter [Andere Möglichkeiten, eine Elicitation abzulehnen](#other-ways-to-decline-an-elicitation) erfahren Sie, welche Variante wirksam wird, wenn ein Hook sie kombiniert, was der Benutzer sieht und welche Versionen `decision` ignoriert haben.4123Exit-Code 2 und ein `"decision": "block"` auf oberster Ebene blockieren die Antwort ebenfalls. Unter [Weitere Möglichkeiten, eine Elicitation abzulehnen](#other-ways-to-decline-an-elicitation) erfahren Sie, welche Variante wirksam wird, wenn ein Hook sie kombiniert, was der Benutzer sieht und welche Versionen `decision` ignoriert haben.

4098 4124 

4099Claude Code verwirft `reason`, `systemMessage` und `continue` aus der JSON-Ausgabe eines ElicitationResult-Hooks, unabhängig davon, welche `action` Sie zurückgeben.4125Claude Code verwirft `reason`, `systemMessage` und `continue` aus der JSON-Ausgabe eines ElicitationResult-Hooks, unabhängig davon, welche `action` Sie zurückgeben.

4100 4126 


4351* **Allein auf stdout**: Wenn die Antwort der einzige Text auf stdout ist, kann sie sich über mehrere Zeilen erstrecken, etwa bei formatierter `jq`-Ausgabe. Mehrzeilige Antworten erfordern Claude Code v2.1.295 oder höher.4377* **Allein auf stdout**: Wenn die Antwort der einzige Text auf stdout ist, kann sie sich über mehrere Zeilen erstrecken, etwa bei formatierter `jq`-Ausgabe. Mehrzeilige Antworten erfordern Claude Code v2.1.295 oder höher.

4352* **In einer eigenen Zeile**: Ein asynchroner Hook kann anderen Text auf stdout ausgeben, wenn die Antwort allein in eine Zeile passt, zum Beispiel mit `jq -c`.4378* **In einer eigenen Zeile**: Ein asynchroner Hook kann anderen Text auf stdout ausgeben, wenn die Antwort allein in eine Zeile passt, zum Beispiel mit `jq -c`.

4353 4379 

4354Claude Code validiert diese JSON-Response gegen das gleiche [Ausgabeschema](#json-output) wie synchrone Hooks und verwirft jedes Feld, dessen Wert den falschen Typ hat, wie z. B. eine `systemMessage`, die keine Zeichenkette ist, anstatt es zu liefern. Führen Sie mit `--debug` aus, um eine Warnung zu sehen, die jedes verworfene Feld benennt. Vor v2.1.202 konnte fehlerhafte JSON-Ausgabe von einem asynchronen Hook die Sitzung zum Absturz bringen, und der Absturz trat jedes Mal auf, wenn die Sitzung fortgesetzt wurde.4380Claude Code validiert diese JSON-Antwort gegen das gleiche [Ausgabeschema](#json-output) wie synchrone Hooks und verwirft jedes Feld, dessen Wert den falschen Typ hat, wie z. B. eine `systemMessage`, die keine Zeichenkette ist, anstatt es zu liefern. Führen Sie mit `--debug` aus, um eine Warnung zu sehen, die jedes verworfene Feld benennt.

4355 4381 

4356Benachrichtigungen über den Abschluss asynchroner Hooks werden standardmäßig unterdrückt. Um sie zu sehen, aktivieren Sie den ausführlichen Modus mit `Ctrl+O` oder starten Sie Claude Code mit `--verbose`.4382Benachrichtigungen über den Abschluss asynchroner Hooks werden standardmäßig unterdrückt. Um sie zu sehen, aktivieren Sie den ausführlichen Modus mit `Ctrl+O` oder starten Sie Claude Code mit `--verbose`.

4357 4383 

Details

4 4 

5# Interaktiver Modus5# Interaktiver Modus

6 6 

7> Vollständige Referenz für Tastaturkürzel, Eingabemodi und interaktive Funktionen in Claude Code-Sitzungen.7> Vollständige Referenz für Tastenkombinationen, Eingabemodi und interaktive Funktionen in Claude Code-Sitzungen.

8 8 

9<h2 id="keyboard-shortcuts">9<h2 id="keyboard-shortcuts">

10 Tastaturkürzel10 Tastaturkürzel


491 491 

492Um Eingabeaufforderungsvorschläge organisationsweit auszuschalten, setzen Sie `promptSuggestionEnabled` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `false`. Setzen Sie auch `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` auf `false` unter dem verwalteten Schlüssel [`env`](/docs/de/settings-reference#env), damit Benutzer diese nicht mit ihrer eigenen Umgebungsvariablen erneut aktivieren können.492Um Eingabeaufforderungsvorschläge organisationsweit auszuschalten, setzen Sie `promptSuggestionEnabled` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `false`. Setzen Sie auch `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` auf `false` unter dem verwalteten Schlüssel [`env`](/docs/de/settings-reference#env), damit Benutzer diese nicht mit ihrer eigenen Umgebungsvariablen erneut aktivieren können.

493 493 

494<h2 id="you-should-know-suggestions">

495 „You should know“-Vorschläge

496</h2>

497 

498„You should know“ sucht nach einer Sache, die Sie wissen sollten, aber möglicherweise übersehen haben, etwa einen Kompromiss, den Claude gewählt hat, ohne darauf hinzuweisen, oder ein Ergebnis, das möglicherweise nicht stimmt. Wenn es etwas findet, zeigt es einen kurzen Hinweis über dem Eingabefeld an:

499 

500```text theme={null}

501✦ Heads up · There was a change to how folder sharing starts in June, which may have bumped usage metrics artificially.

502 1: Learn more 2: Knew this already 0: Dismiss

503```

504 

505Es ist einer der [integrierten Mods](/docs/de/plugins/mods/overview#mods-built-into-claude-code) von Claude Code, ein in Claude Code integriertes Plugin, das standardmäßig ausgeschaltet ist. Erfordert Claude Code v2.1.287 oder höher.

506 

507Solange es eingeschaltet ist, liest ein Nebenagent die Konversation von Zeit zu Zeit erneut, während Claude eine längere Aufgabe bearbeitet. Der Nebenagent ist eine separate Anfrage an dasselbe Modell und hat keine Tools, sodass er keine Dateien lesen, keine Befehle ausführen und nicht ändern kann, was Claude tut.

508 

509Wenn der Mod für Ihre Organisation verfügbar ist, listet `/plugin` ihn auf, wenn Sie sich mit einem claude.ai-Konto oder einem Console-API-Schlüssel direkt mit der Claude API verbinden. Er wird nicht aufgelistet, wenn Sie sich über ein [LLM-Gateway](/docs/de/llm-gateway) oder ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) verbinden oder Ihren Schlüssel von einem [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper) beziehen. Auch bei einer direkten Verbindung listen folgende Sitzungen ihn nicht auf:

510 

511* Eine Sitzung, die [die Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), von denen der Mod abhängt, etwa eine mit gesetztem `DISABLE_TELEMETRY`

512* Eine [erste Sitzung nach einer Installation oder einem Upgrade](/docs/de/env-vars#first-session-after-an-install-or-upgrade), deren Flags noch nicht eingetroffen sind

513 

514Um ihn einzuschalten, führen Sie Folgendes im Prompt von Claude Code aus:

515 

516```text theme={null}

517/plugin enable cc-plugin-you-should-know@builtin

518```

519 

520Wo `/plugin` den Mod nicht auflistet, antwortet der Aktivierungsbefehl mit `Plugin "cc-plugin-you-should-know@builtin" is not installed in this project`.

521 

522<h3 id="cost-of-checks">

523 Kosten der Prüfungen

524</h3>

525 

526Solange der Mod eingeschaltet ist, sind Prüfungen Hintergrundanfragen an dasselbe Modell, das Ihre Sitzung verwendet, und sie werden auf die Nutzungslimits Ihres Plans oder Ihre API-Kosten angerechnet. Jede Prüfung sendet, was sich bereits in Claudes Kontext befindet, also die bisherige Konversation mit ihren Tool-Ergebnissen, gefolgt von den eigenen Anweisungen des Mods und dem Text Ihrer letzten Hinweise. Der Konversationsteil wird zu denselben Bedingungen wie Claudes eigene nächste Anfrage aus dem [Prompt-Cache](/docs/de/prompt-caching) der Sitzung gelesen. Die Anweisungen, mehrere tausend Token, und die Antwort des Nebenagenten werden bei jeder Prüfung vollständig abgerechnet.

527 

528Um die Prüfungen zu beobachten, setzen Sie [`CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG=1`](/docs/de/env-vars) in Ihrer Shell, bevor Sie Claude Code starten.

529 

530<h3 id="answer-a-note">

531 Auf einen Hinweis antworten

532</h3>

533 

534Geben Sie die Ziffer der Auswahl allein in ein leeres Eingabefeld ein. Ein Hinweis bietet folgende Auswahlmöglichkeiten:

535 

536* **Learn more**: öffnet eine kurze Erklärung unter dem Hinweis mit eigenen Auswahlmöglichkeiten:

537 * **Understood**: schließt sie und markiert das Thema als bekannt

538 * **Chat in main session**: zitiert den Hinweis in Ihr Eingabefeld, sodass Sie eine Frage hinzufügen und an Claude senden können

539 * **Dismiss**: schließt sie, ohne das Thema als bekannt zu markieren

540* **Knew this already**: schließt den Hinweis und markiert das Thema als bekannt.

541* **Dismiss**: schließt den Hinweis.

542 

543Der Hauptagent sieht einen Hinweis nur, wenn Sie ihn mit **Chat in main session** senden.

544 

545Claude Code speichert Ihre letzten Hinweise und die Themen, die Sie als bekannt markiert haben, in einer Datei, deren Name mit `cc-plugin-you-should-know` beginnt, unter `~/.claude/plugins/store/`. Jede Prüfung, in dieser Sitzung und in späteren, übergibt sie dem Nebenagenten als solche, die nicht wiederholt werden sollen. Claude Code löscht die Datei, sobald sie [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays) lang von keiner Sitzung gelesen oder geschrieben wurde. Um sie früher zu löschen, löschen Sie diese Datei, während keine Sitzung läuft.

546 

547<h3 id="turn-off-you-should-know">

548 You should know ausschalten

549</h3>

550 

551Um You should know auszuschalten, verwenden Sie eine der folgenden Möglichkeiten:

552 

553* Führen Sie im Prompt von Claude Code `/plugin disable cc-plugin-you-should-know@builtin` aus, oder schalten Sie es im Tab **Installed** von `/plugin` aus

554* Nachdem Sie bei einem Hinweis **Dismiss** gewählt haben, ohne zuvor **Learn more** zu öffnen, wählen Sie **Turn off suggestions** in der Zeile `Dismissed.`, die nach 20 Sekunden verschwindet

555 

494<h2 id="emoji-shortcodes">556<h2 id="emoji-shortcodes">

495 Emoji-Kurzcodes557 Emoji-Kurzcodes

496</h2>558</h2>

Details

257 257 

258Listen Sie Verzeichnisse in `sparsePaths` auf, nicht einzelne Dateien. Root-Level-Dateien wie `package.json`, `tsconfig.base.json` und Lock-Dateien werden immer neben den Verzeichnissen ausgecheckt, die Sie auflisten. Root-Level-Verzeichnisse sind nicht, daher schließen Sie `.claude` in die Liste ein, wenn Sie das Repository-Root's `.claude/settings.json` oder `.claude/rules/` im Worktree verfügbar haben möchten. Für Projekt-Skills, Agenten und Befehle siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).258Listen Sie Verzeichnisse in `sparsePaths` auf, nicht einzelne Dateien. Root-Level-Dateien wie `package.json`, `tsconfig.base.json` und Lock-Dateien werden immer neben den Verzeichnissen ausgecheckt, die Sie auflisten. Root-Level-Verzeichnisse sind nicht, daher schließen Sie `.claude` in die Liste ein, wenn Sie das Repository-Root's `.claude/settings.json` oder `.claude/rules/` im Worktree verfügbar haben möchten. Für Projekt-Skills, Agenten und Befehle siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).

259 259 

260Sparse Checkout erfordert, dass Git `extensions.worktreeConfig` in der gemeinsamen `.git/config` des Repositorys aktiviert, während ein Sparse-Worktree existiert. Claude Code entfernt diesen Eintrag nach dem Entfernen des letzten Worktrees, aber nur wenn Claude Code ihn hinzugefügt hat. Es entfernt niemals einen Wert, den Sie selbst gesetzt haben. Vor v2.1.207 blieb der Eintrag nach dem Entfernen des letzten Worktrees bestehen, und Go-Git-basierte Tools wie `tea` konnten das Repository nicht öffnen, bis Sie `git config --unset extensions.worktreeConfig` ausführten.260Sparse Checkout erfordert, dass Git `extensions.worktreeConfig` in der gemeinsamen `.git/config` des Repositorys aktiviert, während ein Sparse-Worktree existiert. Claude Code entfernt diesen Eintrag nach dem Entfernen des letzten Worktrees, aber nur wenn Claude Code ihn hinzugefügt hat. Es entfernt niemals einen Wert, den Sie selbst gesetzt haben.

261 261 

262Um zu vermeiden, dass große Verzeichnisse wie `node_modules` über Worktrees dupliziert werden, kombinieren Sie `sparsePaths` mit `symlinkDirectories` in der gleichen `.claude/settings.json`:262Um zu vermeiden, dass große Verzeichnisse wie `node_modules` über Worktrees dupliziert werden, kombinieren Sie `sparsePaths` mit `symlinkDirectories` in der gleichen `.claude/settings.json`:

263 263 

Details

518 518 

519Legen Sie die Anmeldedaten des Gateways in `ANTHROPIC_FOUNDRY_API_KEY` fest; sie werden an das Gateway als `x-api-key`-Header gesendet. Ein Gateway, das einen Bearer-Token erwartet, kann stattdessen [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/de/env-vars) verwenden. Claude Code sendet diesen Wert als `Authorization: Bearer`-Header, und er hat Vorrang vor `ANTHROPIC_FOUNDRY_API_KEY`, wenn beide gesetzt sind. Erfordert Claude Code v2.1.203 oder später.519Legen Sie die Anmeldedaten des Gateways in `ANTHROPIC_FOUNDRY_API_KEY` fest; sie werden an das Gateway als `x-api-key`-Header gesendet. Ein Gateway, das einen Bearer-Token erwartet, kann stattdessen [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/de/env-vars) verwenden. Claude Code sendet diesen Wert als `Authorization: Bearer`-Header, und er hat Vorrang vor `ANTHROPIC_FOUNDRY_API_KEY`, wenn beide gesetzt sind. Erfordert Claude Code v2.1.203 oder später.

520 520 

521Für ein Gateway, das seinen eigenen `Authorization`-Header injiziert, legen Sie `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` fest und lassen Sie beide Anmeldedaten-Variablen ungesetzt. Claude Code sendet dann Anfragen ohne eine Azure-Anmeldedaten und bewahrt den `Authorization`-Header, den Sie bereitstellen, z. B. durch `ANTHROPIC_CUSTOM_HEADERS`. Vor v2.1.203 ließ `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` ohne einen API-Schlüssel den Microsoft Foundry-Client unfähig, Anfragen zu senden.521Für ein Gateway, das seinen eigenen `Authorization`-Header injiziert, legen Sie `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` fest und lassen Sie beide Anmeldedaten-Variablen ungesetzt. Claude Code sendet dann Anfragen ohne Azure-Anmeldedaten und bewahrt den `Authorization`-Header, den Sie bereitstellen, z. B. durch `ANTHROPIC_CUSTOM_HEADERS`.

522 522 

523<Tabs>523<Tabs>

524 <Tab title="Bash oder Zsh">524 <Tab title="Bash oder Zsh">

Details

168| :- | :- |168| :- | :- |

169| `x-claude-code-request-class` | Welche Art von Anfrage dies ist: `main` für einen Zug des Hauptgesprächs, `subagent` für einen Zug eines [Subagenten](/docs/de/sub-agents), `workflow` für einen Agenten, der in einem Workflow läuft, `compaction` für die Zusammenfassungsanfrage, die ein Gespräch komprimiert, oder `auxiliary` für Seitenanfragen wie Sitzungstitel, Klassifizierer und Zusammenfassungen. Wird bei jeder Anfrage gesendet |169| `x-claude-code-request-class` | Welche Art von Anfrage dies ist: `main` für einen Zug des Hauptgesprächs, `subagent` für einen Zug eines [Subagenten](/docs/de/sub-agents), `workflow` für einen Agenten, der in einem Workflow läuft, `compaction` für die Zusammenfassungsanfrage, die ein Gespräch komprimiert, oder `auxiliary` für Seitenanfragen wie Sitzungstitel, Klassifizierer und Zusammenfassungen. Wird bei jeder Anfrage gesendet |

170| `x-claude-code-agent-type` | Die Art des Subagenten, der die Anfrage gestellt hat: ein Name eines integrierten Agententyps wie `Explore`, `Plan` oder `general-purpose`, oder `custom` für einen benutzerdefinierten Agenten, `teammate` für ein [Agenten-Team](/docs/de/agent-teams) Mitglied, das im Prozess des Leiters läuft, oder `fork` für einen [Fork](/docs/de/sub-agents#fork-the-current-conversation). Vorhanden nur bei den eigenen Zügen eines Subagenten; die Komprimierung oder Seitenanfragen eines Subagenten behalten die Agenten-ID, tragen aber keinen Typ. Ein vom Benutzer gewählter Agentenname wird niemals gesendet |170| `x-claude-code-agent-type` | Die Art des Subagenten, der die Anfrage gestellt hat: ein Name eines integrierten Agententyps wie `Explore`, `Plan` oder `general-purpose`, oder `custom` für einen benutzerdefinierten Agenten, `teammate` für ein [Agenten-Team](/docs/de/agent-teams) Mitglied, das im Prozess des Leiters läuft, oder `fork` für einen [Fork](/docs/de/sub-agents#fork-the-current-conversation). Vorhanden nur bei den eigenen Zügen eines Subagenten; die Komprimierung oder Seitenanfragen eines Subagenten behalten die Agenten-ID, tragen aber keinen Typ. Ein vom Benutzer gewählter Agentenname wird niemals gesendet |

171| `x-claude-code-compaction` | Vorhanden bei der Anfrage, die das Gespräch während einer [Komprimierung](/docs/de/prompt-caching#compacting-the-conversation) zusammenfasst. Der Wert sagt, was sie ausgelöst hat: `auto`, wenn sich das Kontextfenster der Kapazität näherte, `manual` für `/compact`, oder `reactive`, wenn die API eine Anfrage als zu lang ablehnte. Abwesend bei jeder anderen Anfrage |171| `x-claude-code-compaction` | Vorhanden bei der Anfrage, die die Konversation während einer [Komprimierung](/docs/de/prompt-caching#compacting-the-conversation) zusammenfasst. Der Wert sagt, was sie ausgelöst hat: `auto`, wenn sich das Kontextfenster der Kapazität näherte, `manual` für `/compact`, oder `reactive`, wenn die API eine Anfrage als zu lang ablehnte. Der Wert ist auch `auto` bei der [Leerlauf-Komprimierung](/docs/de/settings-reference#idlecompaction). Abwesend bei jeder anderen Anfrage |

172| `x-claude-code-context-compacted` | Vorhanden einmal, bei der ersten Hauptgesprächs-Anfrage nach einer Komprimierung, mit den gleichen Werten wie `x-claude-code-compaction`. Das Gesprächspräfix vor dieser Anfrage wird nicht mehr verwendet, daher kann ein Cache, der darauf basiert, gelöscht werden |172| `x-claude-code-context-compacted` | Vorhanden einmal, bei der ersten Hauptgesprächs-Anfrage nach einer Komprimierung, mit den gleichen Werten wie `x-claude-code-compaction`. Das Gesprächspräfix vor dieser Anfrage wird nicht mehr verwendet, daher kann ein Cache, der darauf basiert, gelöscht werden |

173| `x-claude-code-prev-tool-durations` | Gemessene Laufzeit der Tool-Aufrufe, deren Ergebnisse diese Anfrage trägt, als `<name>=<ms>;<name>=<ms>`, zum Beispiel `Bash=742;Read=9`. Wird bei der nächsten Anfrage desselben Gesprächs nach einem Batch von Tool-Aufrufen gesendet, von der Hauptsitzung oder einem Subagenten |173| `x-claude-code-prev-tool-durations` | Gemessene Laufzeit der Tool-Aufrufe, deren Ergebnisse diese Anfrage trägt, als `<name>=<ms>;<name>=<ms>`, zum Beispiel `Bash=742;Read=9`. Wird bei der nächsten Anfrage desselben Gesprächs nach einem Batch von Tool-Aufrufen gesendet, von der Hauptsitzung oder einem Subagenten |

174| `x-claude-code-prompt-id` | Zufällige UUID, die den Benutzer-Prompt identifiziert, dem eine Anfrage dient. Anfragen, die einen Prompt bedienen, teilen den Wert, einschließlich der Züge von Subagenten, die der Prompt gestartet hat. Anfragen, die nicht einem Prompt zugeordnet sind, lassen ihn weg. Verwenden Sie ihn, um die Anfragen einer Sitzung nach Prompt zu gruppieren. Erfordert Claude Code v2.1.283 oder später |174| `x-claude-code-prompt-id` | Zufällige UUID, die den Benutzer-Prompt identifiziert, dem eine Anfrage dient. Anfragen, die einen Prompt bedienen, teilen den Wert, einschließlich der Züge von Subagenten, die der Prompt gestartet hat. Anfragen, die nicht einem Prompt zugeordnet sind, lassen ihn weg. Verwenden Sie ihn, um die Anfragen einer Sitzung nach Prompt zu gruppieren. Erfordert Claude Code v2.1.283 oder später |


291 291 

292Auf Claude Code v2.1.227 oder später kann Ihre Organisation [MCP Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) unter dieser Variable durch [verwaltete Einstellungen](/docs/de/managed-settings) aktiviert halten. Was Claude Code mit dieser Außerkraftsetzung sendet, hängt davon ab, wie Sie sich verbinden:292Auf Claude Code v2.1.227 oder später kann Ihre Organisation [MCP Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) unter dieser Variable durch [verwaltete Einstellungen](/docs/de/managed-settings) aktiviert halten. Was Claude Code mit dieser Außerkraftsetzung sendet, hängt davon ab, wie Sie sich verbinden:

293 293 

294* Bei einer direkten Verbindung oder durch ein Gateway mit `ANTHROPIC_BASE_URL` sendet Claude Code weiterhin den Tool-Search-Beta-Header, `defer_loading` Tool-Felder und `tool_reference` Blöcke und entfernt den Rest294* Bei einer direkten Verbindung ohne die HIPAA-Konfiguration oder durch ein Gateway mit `ANTHROPIC_BASE_URL` sendet Claude Code weiterhin den Tool-Search-Beta-Header, `defer_loading` Tool-Felder und `tool_reference` Blöcke

295* Bei einem Cloud-Provider oder angemeldet durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway), hat die Außerkraftsetzung keine Auswirkung295* Bei einem Cloud-Provider oder angemeldet durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway), hat die Außerkraftsetzung keine Auswirkung

296* In einer Sitzung, die [die HIPAA-Konfiguration erhält](/docs/de/hipaa-setup#check-how-developers-sign-in-and-connect), hat die Überschreibung keine Auswirkung und MCP Tool Search bleibt deaktiviert

296 297 

297Die Menge der Funktionen, die Claude Code sendet, wächst über Versionen. Für aktuelle Beta-Header-Zeichenketten siehe die [Beta-Headers-Referenz](https://platform.claude.com/docs/de/api/beta-headers); testen Sie Ihr Gateway gegen neue Claude Code-Versionen, anstatt an eine beobachtete Liste zu pinnen.298Die Menge der Funktionen, die Claude Code sendet, wächst über Versionen. Für aktuelle Beta-Header-Zeichenketten siehe die [Beta-Headers-Referenz](https://platform.claude.com/docs/de/api/beta-headers); testen Sie Ihr Gateway gegen neue Claude Code-Versionen, anstatt an eine beobachtete Liste zu pinnen.

298 299 

mcp.md +89 −60

Details

90 90 

91Bei der Konfiguration von MCP-Servern über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` akzeptiert das Feld `type` `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet den Namen `streamable-http` für dieses Transportprotokoll, sodass Konfigurationen, die aus der Serverdokumentation kopiert werden, ohne Änderungen funktionieren.91Bei der Konfiguration von MCP-Servern über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` akzeptiert das Feld `type` `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet den Namen `streamable-http` für dieses Transportprotokoll, sodass Konfigurationen, die aus der Serverdokumentation kopiert werden, ohne Änderungen funktionieren.

92 92 

93Ein JSON-Eintrag mit einer `url` aber ohne `type` ist ein Konfigurationsfehler, da Claude Code einen Eintrag ohne `type` als Stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Vor v2.1.202 meldete Claude Code diese Fehlkonfiguration als `command: expected string, received undefined`.93Ein JSON-Eintrag mit einer `url` aber ohne `type` ist ein Konfigurationsfehler, da Claude Code einen Eintrag ohne `type` als Stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

94 94 

95Nur eine SDK-Host-Anwendung, wie eine [Agent SDK](/docs/de/agent-sdk/mcp)-Anwendung oder die [Desktop-App](/docs/de/desktop), kann einen In-Process-Server vom Typ `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Nur eine SDK-Host-Anwendung, wie eine [Agent SDK](/docs/de/agent-sdk/mcp)-Anwendung oder die [Desktop-App](/docs/de/desktop), kann einen In-Process-Server vom Typ `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 96 


128 128 

129Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des erzeugten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abhängig zu sein. Dies ist dasselbe Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR`-Variable erhalten. Lesen Sie es aus Ihrem Serverprozess, zum Beispiel `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.129Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des erzeugten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abhängig zu sein. Dies ist dasselbe Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR`-Variable erhalten. Lesen Sie es aus Ihrem Serverprozess, zum Beispiel `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.

130 130 

131`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während einer Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf einen Satz zulässiger Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code antwortet auf `roots/list` mit dem Startverzeichnis der Sitzung plus jedem [zusätzlichen Arbeitsverzeichnis](/docs/de/permissions#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` gewährt haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich dieser Satz ändert. Vor v2.1.203 gab `roots/list` nur das Startverzeichnis zurück und Claude Code sendete `notifications/roots/list_changed` nicht.131`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während einer Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf einen Satz zulässiger Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code antwortet auf `roots/list` mit dem Startverzeichnis der Sitzung plus jedem [zusätzlichen Arbeitsverzeichnis](/docs/de/permissions#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` gewährt haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich dieser Satz ändert.

132 132 

133Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst. Daher erfordert das Referenzieren über `${VAR}`-Expansion in `command` oder `args` eines projektgebundenen `.mcp.json`-Eintrags oder eines lokal- oder benutzergebundenen Servereintrags in `~/.claude.json` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.133Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst. Daher erfordert das Referenzieren über `${VAR}`-Expansion in `command` oder `args` eines projektgebundenen `.mcp.json`-Eintrags oder eines lokal- oder benutzergebundenen Servereintrags in `~/.claude.json` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.

134 134 


154 `--env` akzeptiert mehrere `KEY=value`-Paare. Wenn der Servername direkt nach `--env` kommt, liest die CLI den Namen als ein weiteres Paar und lehnt ihn ab. Platzieren Sie daher mindestens eine andere Option wie `--transport stdio` zwischen `--env` und dem Servernamen.154 `--env` akzeptiert mehrere `KEY=value`-Paare. Wenn der Servername direkt nach `--env` kommt, liest die CLI den Namen als ein weiteres Paar und lehnt ihn ab. Platzieren Sie daher mindestens eine andere Option wie `--transport stdio` zwischen `--env` und dem Servernamen.

155</Note>155</Note>

156 156 

157<h4 id="how-claude-code-stops-a-stdio-server">

158 Wie Claude Code einen Stdio-Server stoppt

159</h4>

160 

161Wenn Claude Code die Verbindung zu einem Stdio-Server trennt, zum Beispiel wenn Ihre Sitzung endet, sendet es dem Serverprozess ein Signal und wartet kurz, bis er sich beendet, bevor es ihn zwangsweise stoppt. Wenn Ihr Server beim Herunterfahren seinen Zustand speichert oder Sperrdateien entfernt, behandeln Sie das Signal für Ihre Plattform und schließen Sie diese Arbeit innerhalb dieser Zeit ab:

162 

163* **Unter macOS und Linux**: Claude Code sendet `SIGINT`, dann `SIGTERM`, wenn der Prozess 100 Millisekunden später noch läuft, und nach weiteren 400 Millisekunden `SIGKILL`.

164* **Unter Windows**: Claude Code schließt stdin des Servers und beendet dann den Prozessbaum des Servers, wenn der Prozess 300 Millisekunden später noch läuft.

165 

166Vor v2.1.296 beendete Claude Code unter Windows den Prozessbaum des Servers sofort, ohne zuerst stdin zu schließen oder zu warten.

167 

157<h3 id="option-4-add-a-remote-websocket-server">168<h3 id="option-4-add-a-remote-websocket-server">

158 Option 4: Einen Remote-WebSocket-Server hinzufügen169 Option 4: Einen Remote-WebSocket-Server hinzufügen

159</h3>170</h3>


336 347 

337* **Mit [Werkzeugsuche](#scale-with-mcp-tool-search), der Standard**: Das Warten geschieht innerhalb des `ToolSearch`-Aufrufs.348* **Mit [Werkzeugsuche](#scale-with-mcp-tool-search), der Standard**: Das Warten geschieht innerhalb des `ToolSearch`-Aufrufs.

338* **Ohne Werkzeugsuche**: Claude verwendet stattdessen das `WaitForMcpServers`-Werkzeug. Konfigurationen ohne Werkzeugsuche enthalten eine benutzerdefinierte `ANTHROPIC_BASE_URL`, `ENABLE_TOOL_SEARCH=false` und ein Modell, das älter als Claude Opus 4.5, Claude Sonnet 4.5 und Claude Haiku 4.5 ist, auf Google Clouds Agent Platform.349* **Ohne Werkzeugsuche**: Claude verwendet stattdessen das `WaitForMcpServers`-Werkzeug. Konfigurationen ohne Werkzeugsuche enthalten eine benutzerdefinierte `ANTHROPIC_BASE_URL`, `ENABLE_TOOL_SEARCH=false` und ein Modell, das älter als Claude Opus 4.5, Claude Sonnet 4.5 und Claude Haiku 4.5 ist, auf Google Clouds Agent Platform.

339* **Bei einer Microsoft Foundry-[Bereitstellung auf Azure gehostet](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Werkzeugsuche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung der Bereitstellung nur von der API entdeckt. Nachdem Claude Code diese Bereitstellung auf [vorausgehendes Laden](#scale-with-mcp-tool-search) umschaltet, werden Werkzeuge von einem Server, der die Verbindung beendet, bei Claudes nächster Anfrage verfügbar.350* **Bei einer Microsoft Foundry-[Bereitstellung auf Azure gehostet](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Werkzeugsuche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung der Bereitstellung nur von der API entdeckt. Nachdem Claude Code diese Bereitstellung auf [vorausgehendes Laden](#scale-with-mcp-tool-search) umschaltet, werden Werkzeuge von einem Server, der seinen Verbindungsaufbau abschließt, bei Claudes nächster Anfrage verfügbar.

340 351 

341Mit aktivierter Werkzeugsuche, wenn ein Server die Verbindung beendet, während Claude arbeitet, listet Claude Code die Werkzeugnamen des Servers bei Claudes nächster Anfrage im selben Turn auf. Claude kann dann diese Werkzeuge suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.352Mit aktivierter Werkzeugsuche, wenn ein Server seinen Verbindungsaufbau abschließt, während Claude arbeitet, listet Claude Code die Werkzeugnamen des Servers bei Claudes nächster Anfrage im selben Turn auf. Claude kann dann diese Werkzeuge suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.

342 353 

343Nachdem Sie eine Sitzung fortgesetzt haben, kann Claude ein Tool aus der gespeicherten Konversation aufrufen, während der MCP-Server des Tools noch eine Verbindung herstellt. Während der Server seinen ersten Verbindungsversuch unternimmt, hält Claude Code den Aufruf bis zu 10 Sekunden zurück und führt ihn aus, sobald das Tool verfügbar ist. Wenn der Server nicht rechtzeitig eine Verbindung herstellt oder es bereits [nach einem fehlgeschlagenen Versuch erneut versucht](#automatic-reconnection), schlägt der Aufruf mit dem [Tool-Fehler](/docs/de/errors#no-such-tool-available) `No such tool available` fehl.354Nachdem Sie eine Sitzung fortgesetzt haben, kann Claude ein Tool aus der gespeicherten Konversation aufrufen, während der MCP-Server des Tools noch eine Verbindung herstellt. Während der Server seinen ersten Verbindungsversuch unternimmt, hält Claude Code den Aufruf bis zu 10 Sekunden zurück und führt ihn aus, sobald das Tool verfügbar ist. Wenn der Server nicht rechtzeitig eine Verbindung herstellt oder es bereits [nach einem fehlgeschlagenen Versuch erneut versucht](#automatic-reconnection), schlägt der Aufruf mit dem [Tool-Fehler](/docs/de/errors#no-such-tool-available) `No such tool available` fehl.

344 355 


415 Mitten in der Sitzung abbrechende Remote-Server426 Mitten in der Sitzung abbrechende Remote-Server

416</h4>427</h4>

417 428 

418Claude Code verbindet einen abgebrochenen Remote-Server mit exponentiellem Backoff erneut: bis zu fünf Versuche, beginnend mit einer Verzögerung von einer Sekunde, die sich jedes Mal verdoppelt. Was Sie sehen, hängt davon ab, wie Sie Claude Code ausführen:429Claude Code versucht zunächst, einen abgebrochenen Remote-Server bis zu fünfmal mit exponentiellem Backoff erneut zu verbinden, beginnend mit einer Verzögerung von einer Sekunde, die sich jedes Mal verdoppelt:

419 430 

420* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code erneut verbindet. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als Authentifizierung erforderlich, wenn der Server erneut autorisiert werden muss. Wenn es den Server als fehlgeschlagen markiert, sehen Sie eine `MCP server "<name>" disconnected · open /mcp to reconnect`-Benachrichtigung. Sie können es manuell von `/mcp` aus erneut versuchen.431* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code erneut verbindet. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als Authentifizierung erforderlich, wenn der Server erneut autorisiert werden muss. Wenn es den Server als fehlgeschlagen markiert, sehen Sie eine `MCP server "<name>" disconnected · open /mcp to reconnect`-Benachrichtigung. Sie können es manuell von `/mcp` aus erneut versuchen.

421* **In [`claude -p`](/docs/de/headless)-Läufen und [Agent SDK](/docs/de/agent-sdk/overview)-Sitzungen**: Claude Code verbindet sich nach demselben Zeitplan erneut, ohne `/mcp`-Panel, um die Versuche anzuzeigen.432* **In [`claude -p`](/docs/de/headless)-Läufen und [Agent SDK](/docs/de/agent-sdk/overview)-Sitzungen**: Claude Code unternimmt dieselben fünf Versuche, ohne `/mcp`-Panel, um sie anzuzeigen. Wenn die Versuche eines HTTP- oder SSE-Servers mit einem vorübergehenden Fehler fehlschlagen, versucht es im Hintergrund bis zu etwa einer halben Stunde lang weiter, und der Server und seine Tools werden wieder verfügbar, wenn ein Wiederholungsversuch eine Verbindung herstellt.

422 433 

423<h4 id="failed-first-connections">434<h4 id="failed-first-connections">

424 Fehlgeschlagene erste Verbindungen435 Fehlgeschlagene erste Verbindungen


435 Fehlgeschlagene Erkennungsanfragen446 Fehlgeschlagene Erkennungsanfragen

436</h4>447</h4>

437 448 

438Nachdem sich ein Server verbindet, sendet Claude Code ihm Erkennungsanfragen wie `tools/list`, `prompts/list` und `resources/list`. Claude Code versucht diese Anfragen bis zu dreimal mit kurzem Backoff nach einem vorübergehenden Netzwerk- oder Serverfehler erneut. Es versucht Authentifizierungsfehler, 4xx-Antworten oder Anfrage-Timeouts nicht erneut.449Nachdem sich ein Server verbindet, sendet Claude Code ihm Anfragen zur Fähigkeitserkennung wie `tools/list`, `prompts/list` und `resources/list`. Claude Code versucht diese Anfragen bis zu dreimal mit kurzem Backoff nach einem vorübergehenden Netzwerk- oder Serverfehler erneut. Es versucht Authentifizierungsfehler, 4xx-Antworten oder Anfrage-Timeouts nicht erneut.

439 450 

440<h4 id="retry-failed-servers-yourself">451<h4 id="retry-failed-servers-yourself">

441 Fehlgeschlagene Server selbst erneut versuchen452 Fehlgeschlagene Server selbst erneut versuchen


479 490 

480Der Pro-Server-`timeout` ist eine harte Wanduhr-Grenze pro Werkzeugaufruf, und Fortschrittsbenachrichtigungen vom Server verlängern ihn nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` zurück oder auf dessen Standard von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Connector](/docs/de/mcp#use-mcp-servers-from-claude-ai)-Server gibt es auch einen zweiten Pro-Anfrage-Timer, der jede Anfrage bis zum ersten Antwortbyte des Servers abdeckt. Claude Code setzt diesen Timer auf den größten von drei Werten: 60 Sekunden, den Werkzeug-Timeout, der für den Server gilt, und `MCP_TIMEOUT`. Der 28-Stunden-Standard eines nicht gesetzten `MCP_TOOL_TIMEOUT` geht nicht in diesen Vergleich ein, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Pro-Anfrage-Timer.491Der Pro-Server-`timeout` ist eine harte Wanduhr-Grenze pro Werkzeugaufruf, und Fortschrittsbenachrichtigungen vom Server verlängern ihn nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` zurück oder auf dessen Standard von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Connector](/docs/de/mcp#use-mcp-servers-from-claude-ai)-Server gibt es auch einen zweiten Pro-Anfrage-Timer, der jede Anfrage bis zum ersten Antwortbyte des Servers abdeckt. Claude Code setzt diesen Timer auf den größten von drei Werten: 60 Sekunden, den Werkzeug-Timeout, der für den Server gilt, und `MCP_TIMEOUT`. Der 28-Stunden-Standard eines nicht gesetzten `MCP_TOOL_TIMEOUT` geht nicht in diesen Vergleich ein, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Pro-Anfrage-Timer.

481 492 

482Ein Pro-Server-`timeout` von mindestens 1000 fungiert auch als Untergrenze für den unten beschriebenen Idle-Timeout: Claude Code bricht die Werkzeugaufrufe dieses Servers wegen Inaktivität nie früher als nach dem Pro-Server-`timeout` ab. Erfordert Claude Code v2.1.203 oder später.493Ein Pro-Server-`timeout` von mindestens 1000 fungiert auch als Untergrenze für den unten beschriebenen Idle-Timeout: Claude Code bricht die Werkzeugaufrufe dieses Servers wegen Inaktivität nie früher als nach dem Pro-Server-`timeout` ab.

483 494 

484Ein Werkzeugaufruf an einen MCP-Server, der für das Idle-Fenster keine Antwort und keine Fortschrittsbenachrichtigung sendet, bricht mit einem Fehler ab, anstatt auf die Wanduhr-Grenze zu warten. Der Idle-Timeout gilt für jeden Servertyp außer IDE-Servern und SDK-In-Process-Servern. Das Idle-Fenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Connector](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für Stdio-Server. Vor v2.1.203 waren Stdio-Server vom Idle-Timeout ausgenommen.495Ein Werkzeugaufruf an einen MCP-Server, der für das Idle-Fenster keine Antwort und keine Fortschrittsbenachrichtigung sendet, bricht mit einem Fehler ab, anstatt auf die Wanduhr-Grenze zu warten. Der Idle-Timeout gilt für jeden Servertyp außer IDE-Servern und SDK-In-Process-Servern. Das Idle-Fenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Connector](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für Stdio-Server.

485 496 

486Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) in Millisekunden, um das Idle-Fenster zu ändern, oder setzen Sie sie auf `0`, um die Überprüfung zu deaktivieren.497Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) in Millisekunden, um das Idle-Fenster zu ändern, oder setzen Sie sie auf `0`, um die Überprüfung zu deaktivieren.

487 498 


493 504 

494Ein MCP-Werkzeugaufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird zu einer Hintergrundaufgabe, statt die Sitzung zu blockieren. Claude erhält die Aufgaben-ID sofort und arbeitet weiter, und das Ergebnis kommt als Aufgabenbenachrichtigung, wenn der Aufruf abgeschlossen ist. Automatisches Backgrounding erfordert Claude Code v2.1.212 oder später.505Ein MCP-Werkzeugaufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird zu einer Hintergrundaufgabe, statt die Sitzung zu blockieren. Claude erhält die Aufgaben-ID sofort und arbeitet weiter, und das Ergebnis kommt als Aufgabenbenachrichtigung, wenn der Aufruf abgeschlossen ist. Automatisches Backgrounding erfordert Claude Code v2.1.212 oder später.

495 506 

496Die Aufgabe erscheint in [`/tasks`](/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überlebt das Beenden der Sitzung nicht. Der Eintrag der Aufgabe zeigt den neuesten Fortschritt, den der Server gemeldet hat.507Die Aufgabe erscheint in [`/tasks`](/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überlebt das Beenden der Sitzung nicht. Der Eintrag der Aufgabe zeigt den neuesten Fortschritt, den der Server gemeldet hat. Wenn Sie die Aufgabe stoppen, bricht Claude Code den Aufruf ab und teilt Claude mit, dass kein Ergebnis kommt. Das Stoppen garantiert nicht, dass der Server stoppt: Er hat möglicherweise bereits einen Teil der Arbeit erledigt oder schließt sie trotzdem ab.

497 508 

498Die Pro-Aufruf-Grenzen gelten weiterhin, während der Aufruf im Hintergrund läuft: die Wanduhr-Grenze, die durch den Pro-Server-`timeout` oder [`MCP_TOOL_TIMEOUT`](/docs/de/env-vars) gesetzt wird, und der Idle-Timeout, der durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) gesetzt wird.509Die Pro-Aufruf-Grenzen gelten weiterhin, während der Aufruf im Hintergrund läuft: die Wanduhr-Grenze, die durch den Pro-Server-`timeout` oder [`MCP_TOOL_TIMEOUT`](/docs/de/env-vars) gesetzt wird, und der Idle-Timeout, der durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) gesetzt wird.

499 510 


793 --header "Authorization: Bearer YOUR_GITHUB_PAT"804 --header "Authorization: Bearer YOUR_GITHUB_PAT"

794```805```

795 806 

796Ersetzen Sie `YOUR_GITHUB_PAT` durch Ihren persönlichen Zugriffs-Token. Der Befehl `claude mcp add` speichert die Konfiguration, ohne Anmeldedaten zu validieren, daher wird hier ein Platzhalterwert akzeptiert, aber der Server kann sich später nicht verbinden. Um die Verbindung zu überprüfen, führen Sie `/mcp` aus und überprüfen Sie, dass der Server `connected` anzeigt. Ein Server mit ungültigen Anmeldedaten zeigt `failed`, und die Fehlerdetails enthalten den HTTP-Status, den der Server zurückgegeben hat, z. B. einen 401.807Ersetzen Sie `YOUR_GITHUB_PAT` durch Ihr persönliches Zugriffs-Token. Der Befehl `claude mcp add` speichert die Konfiguration, ohne Anmeldedaten zu validieren, daher wird hier ein Platzhalterwert akzeptiert, aber der Server kann sich später nicht verbinden. Um die Verbindung zu überprüfen, führen Sie `/mcp` aus und prüfen Sie, ob die Zeile des Servers ein Häkchen anzeigt. Ein Server mit ungültigen Anmeldedaten zeigt stattdessen ein ✘ an, und seine [Fehlerdetails](#server-status-detail) enthalten den HTTP-Status, den der Server zurückgegeben hat, z. B. einen 401.

797 808 

798Arbeiten Sie dann mit GitHub:809Arbeiten Sie dann mit GitHub:

799 810 


820 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"831 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

821```832```

822 833 

823Um zu bestätigen, dass der Server startet, führen Sie `/mcp` aus und überprüfen Sie, dass `db` `connected` anzeigt.834Um zu bestätigen, dass der Server startet, führen Sie `/mcp` aus und prüfen Sie, ob die Zeile `db` ein Häkchen anzeigt.

824 835 

825Fragen Sie dann Ihre Datenbank natürlich ab:836Fragen Sie dann Ihre Datenbank natürlich ab:

826 837 


845Claude Code markiert einen Remote-Server als authentifizierungsbedürftig, wenn der Server mit `401 Unauthorized` oder `403 Forbidden` antwortet. Was Claude Code anzeigt, hängt vom Server ab:856Claude Code markiert einen Remote-Server als authentifizierungsbedürftig, wenn der Server mit `401 Unauthorized` oder `403 Forbidden` antwortet. Was Claude Code anzeigt, hängt vom Server ab:

846 857 

847* 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.858* 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.

848* 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.859* Für einen [claude.ai-Konnektor](#use-mcp-servers-from-claude-ai) kennzeichnet ein `401`, das durch die Ablehnung Ihres Sitzungs-Tokens durch claude.ai verursacht wird, den Konnektor nicht, da eine erneute Autorisierung des Konnektors Ihre Anmeldung nicht beheben kann. Claude Code zeigt stattdessen den [Zustand „Sitzungs-Token abgelehnt“](/docs/de/errors#claude-ai-rejected-the-session-token) an.

849* 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. Wenn Sie diesen Header aus einer `${VAR}`-Referenz gesetzt haben, überprüfen Sie, ob diese Variable eine ist, die Claude Code [als leer liest](#credential-variables-that-read-as-empty).860* 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. Wenn Sie diesen Header aus einer `${VAR}`-Referenz gesetzt haben, überprüfen Sie, ob diese Variable eine ist, die Claude Code [als leer liest](#credential-variables-that-read-as-empty).

850* 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.861* Für einen Konnektor, der [an eine Cloud-Sitzung übermittelt wird](#how-connectors-reach-claude-code), führt Claude Code keinen Anmeldungsfluss aus, da der Proxy der Sitzung sich beim Konnektor mit der Autorisierung authentifiziert, die Sie in claude.ai gewährt haben. Wenn ein Konnektor dort erneut autorisiert werden muss, verbinden Sie ihn erneut unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors), anstatt aus der Sitzung.

851 862 

852Wenn 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.863Wenn 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.

853 864 

854Wenn der Server das gespeicherte Refresh-Token ablehnt, zeigt Claude Code sofort einen Hinweis an, der auf `/mcp` verweist. Öffnen Sie `/mcp` und wählen Sie **Re-authenticate** auf dem Server, um sich erneut anzumelden, bevor der nächste Tool-Aufruf fehlschlägt.865Wenn der Server das gespeicherte Refresh-Token ablehnt, zeigt Claude Code sofort einen Hinweis an, der auf `/mcp` verweist. Öffnen Sie `/mcp` und wählen Sie **Re-authenticate** auf dem Server, um sich erneut anzumelden, bevor der nächste Tool-Aufruf fehlschlägt.

855 866 

856Ein benutzerdefinierter Server, der einen `WWW-Authenticate`-Header zurückgibt, der auf seinen Autorisierungsserver verweist, erhält die gleiche automatische Erkennung wie jeder andere Remote-Server.867Ein benutzerdefinierter Server, der einen `WWW-Authenticate`-Header zurückgibt, der auf seinen Autorisierungsserver verweist, erhält die gleiche automatische Erkennung wie jeder andere Remote-Server.

857 868 

858Claude Code zeigt auch einen Starthinweis an, wenn ein oder mehrere konfigurierte Server Authentifizierung benötigen, sodass Sie `/mcp` nicht öffnen müssen, um zu erkennen, welche Server Anmeldung benötigen. Der Hinweis zählt nur Server, bei denen Sie sich von Claude Code aus anmelden können. Vor v2.1.218 zählte er auch [claude.ai-Connectors](#use-mcp-servers-from-claude-ai), die nicht in claude.ai verbunden waren, die Sie nur aus den claude.ai-Einstellungen verbinden können.869Claude Code zeigt auch einen Starthinweis an, wenn ein oder mehrere konfigurierte Server Authentifizierung benötigen, sodass Sie `/mcp` nicht öffnen müssen, um zu erkennen, welche Server Anmeldung benötigen. Der Hinweis zählt nur Server, bei denen Sie sich von Claude Code aus anmelden können. Vor v2.1.218 zählte er auch [claude.ai-Konnektoren](#use-mcp-servers-from-claude-ai), die nicht in claude.ai verbunden waren und die Sie nur aus den claude.ai-Einstellungen verbinden können.

859 870 

860Der Hinweis kündigt jeden Server einmal an und lässt ihn aus der Zählung bei späteren Starts aus, bis dieser Server verbunden ist und erneut Anmeldung benötigt. `/mcp` listet immer noch jeden Server auf, der Anmeldung benötigt.871Der Hinweis kündigt jeden Server einmal an und lässt ihn aus der Zählung bei späteren Starts aus, bis dieser Server verbunden ist und erneut Anmeldung benötigt. `/mcp` listet immer noch jeden Server auf, der Anmeldung benötigt.

861 872 

862Im nicht interaktiven Modus gibt es kein `/mcp`-Panel, daher kann Claude Code den OAuth-Fluss nicht für Sie ausführen. Wenn ein konfigurierter Server während eines `claude -p`- oder Agent SDK-Laufs mit aktivierter [Tool-Suche](#scale-with-mcp-tool-search) (Standard) Authentifizierung benötigt, teilt Claude Code Claude mit, dass die Tools des Servers nicht verfügbar sind, bis Sie ihn autorisieren. Claude kann dann den Server benennen, der Anmeldung benötigt. Schließen Sie die Anmeldung aus einer interaktiven Sitzung mit `/mcp` oder `claude mcp login <name>` ab.873Ein `claude -p`- oder Agent SDK-Lauf hat kein `/mcp`-Panel, daher kann Claude Code den OAuth-Fluss dort nicht ausführen. Um einen Server zu verwenden, der Authentifizierung benötigt, schließen Sie die Anmeldung zuerst in einer interaktiven Sitzung ab: Führen Sie `/mcp` in der Sitzung oder `claude mcp login <name>` in Ihrer Shell aus. Wenn ein konfigurierter Server während eines `claude -p`- oder Agent SDK-Laufs mit aktivierter [Tool-Suche](#scale-with-mcp-tool-search) Authentifizierung benötigt, teilt Claude Code Claude mit, dass die Tools des Servers nicht verfügbar sind, bis Sie ihn autorisieren.

863 874 

864Wenn Sie `headers.Authorization` für den Server konfiguriert haben und der Server diesen Header ablehnt, meldet Claude Code die Verbindung als fehlgeschlagen, anstatt auf OAuth zurückzugreifen. Überprüfen Sie, dass das Token für den MCP-Endpunkt gültig ist, oder entfernen Sie den Header, um den OAuth-Fluss zu verwenden.875Wenn Sie `headers.Authorization` für den Server konfiguriert haben und der Server diesen Header ablehnt, meldet Claude Code die Verbindung als fehlgeschlagen, anstatt auf OAuth zurückzugreifen. Überprüfen Sie, dass das Token für den MCP-Endpunkt gültig ist, oder entfernen Sie den Header, um den OAuth-Fluss zu verwenden.

865 876 

866<Steps>877<Steps>

867 <Step title="Fügen Sie den Server hinzu, der Authentifizierung erfordert">878 <Step title="Fügen Sie den Server hinzu, der Authentifizierung erfordert">

868 Wenn Sie den `sentry`-Server bereits in der [MCP-Schnellstartanleitung](/docs/de/mcp-quickstart#connect-a-server-that-requires-sign-in) hinzugefügt haben, überspringen Sie diesen Schritt: Das Ausführen von `claude mcp add` erneut mit dem gleichen Servernamen im gleichen Bereich schlägt mit `MCP server sentry already exists in local config` fehl. Führen Sie andernfalls aus:879 Wenn Sie den `sentry`-Server bereits in der [MCP-Schnellstartanleitung](/docs/de/mcp-quickstart#connect-a-server-that-requires-sign-in) hinzugefügt haben, überspringen Sie diesen Schritt: Das erneute Ausführen von `claude mcp add` mit dem gleichen Servernamen im gleichen Geltungsbereich schlägt mit `MCP server sentry already exists in local config` fehl. Führen Sie andernfalls aus:

869 880 

870 ```bash theme={null}881 ```bash theme={null}

871 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp882 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


897 Authentifizieren Sie sich über die Befehlszeile908 Authentifizieren Sie sich über die Befehlszeile

898</h3>909</h3>

899 910 

900Der Befehl `claude mcp login <name>` führt den OAuth-Fluss eines konfigurierten Servers direkt aus Ihrer Shell aus, sodass Sie das `/mcp`-Panel nicht innerhalb einer Sitzung öffnen müssen. Für einen claude.ai-Connector folgen Sie [Einen Connector erneut aus Ihrer Shell autorisieren](/docs/de/remote-control#authorize-a-connector-again-from-your-shell).911Der Befehl `claude mcp login <name>` führt den OAuth-Fluss eines konfigurierten Servers direkt aus Ihrer Shell aus, sodass Sie das `/mcp`-Panel nicht innerhalb einer Sitzung öffnen müssen. Für einen claude.ai-Konnektor folgen Sie [Einen Konnektor erneut aus Ihrer Shell autorisieren](/docs/de/remote-control#authorize-a-connector-again-from-your-shell).

901 912 

902```bash theme={null}913```bash theme={null}

903claude mcp login sentry914claude mcp login sentry


915 Verwenden Sie einen festen OAuth-Callback-Port926 Verwenden Sie einen festen OAuth-Callback-Port

916</h3>927</h3>

917 928 

918Einige MCP-Server erfordern einen spezifischen Redirect-URI, der im Voraus registriert ist. Standardmäßig wählt Claude Code einen zufällig verfügbaren Port für den OAuth-Callback. Verwenden Sie `--callback-port`, um den Port zu fixieren, damit er einem vorregistrierten Redirect-URI der Form `http://localhost:PORT/callback` entspricht. Wenn die Anmeldung auf Claude Code v2.1.229 mit einem Redirect-URI-Mismatch fehlschlägt, siehe die Versionsnote unter [Verwenden Sie vorkonfigurierte OAuth-Anmeldedaten](#use-pre-configured-oauth-credentials).929Einige MCP-Server erfordern einen spezifischen Redirect-URI, der im Voraus registriert ist. Standardmäßig wählt Claude Code einen zufällig verfügbaren Port für den OAuth-Callback. Verwenden Sie `--callback-port`, um den Port zu fixieren, damit er einem vorregistrierten Redirect-URI der Form `http://localhost:PORT/callback` entspricht. Wenn die Anmeldung auf Claude Code v2.1.229 mit einem Redirect-URI-Mismatch fehlschlägt, siehe den Versionshinweis unter [Verwenden Sie vorkonfigurierte OAuth-Anmeldedaten](#use-pre-configured-oauth-credentials).

919 930 

920Sie können `--callback-port` allein (mit dynamischer Client-Registrierung) oder zusammen mit `--client-id` (mit vorkonfigurierten Anmeldedaten) verwenden.931Sie können `--callback-port` allein (mit dynamischer Client-Registrierung) oder zusammen mit `--client-id` (mit vorkonfigurierten Anmeldedaten) verwenden.

921 932 


934 945 

935<Steps>946<Steps>

936 <Step title="Registrieren Sie eine OAuth-App beim Server">947 <Step title="Registrieren Sie eine OAuth-App beim Server">

937 Erstellen Sie eine App über das Entwicklerportal des Servers und notieren Sie sich Ihre Client-ID und Ihren Client-Secret.948 Erstellen Sie eine App über das Entwicklerportal des Servers und notieren Sie sich Ihre Client-ID und Ihr Client-Secret.

938 949 

939 Wenn das Registrierungsformular nach einem Redirect-URI fragt, wählen Sie einen verfügbaren Port und geben Sie `http://localhost:PORT/callback` mit diesem Port ein. Sie werden denselben Port im nächsten Schritt verwenden.950 Wenn das Registrierungsformular nach einem Redirect-URI fragt, wählen Sie einen verfügbaren Port und geben Sie `http://localhost:PORT/callback` mit diesem Port ein. Sie werden denselben Port im nächsten Schritt verwenden.

940 951 

941 In v2.1.229 sendete Claude Code `http://127.0.0.1:PORT/callback` stattdessen, und Server, die den registrierten Redirect-URI exakt abgleichen, lehnten die Anmeldung mit einem Redirect-URI-Mismatch ab. Claude Code v2.1.231 stellte die `localhost`-Form wieder her. Um auf v2.1.229 zu beheben, aktualisieren Sie Claude Code, oder fügen Sie vorübergehend die `http://127.0.0.1:PORT/callback`-Form zu den registrierten Redirect-URIs des Servers hinzu.952 In v2.1.229 sendete Claude Code stattdessen `http://127.0.0.1:PORT/callback`, und Server, die den registrierten Redirect-URI exakt abgleichen, lehnten die Anmeldung mit einem Redirect-URI-Mismatch ab. Claude Code v2.1.231 stellte die `localhost`-Form wieder her. Um das Problem auf v2.1.229 zu beheben, aktualisieren Sie Claude Code, oder fügen Sie vorübergehend die `http://127.0.0.1:PORT/callback`-Form zu den registrierten Redirect-URIs des Servers hinzu.

942 </Step>953 </Step>

943 954 

944 <Step title="Fügen Sie den Server mit Ihren Anmeldedaten hinzu">955 <Step title="Fügen Sie den Server mit Ihren Anmeldedaten hinzu">


946 957 

947 <Tabs>958 <Tabs>

948 <Tab title="claude mcp add">959 <Tab title="claude mcp add">

949 Verwenden Sie `--client-id`, um die Client-ID Ihrer App zu übergeben. Das Flag `--client-secret` fordert das Secret mit maskierter Eingabe an:960 Verwenden Sie `--client-id`, um die Client-ID Ihrer App zu übergeben. Das Flag `--client-secret` fragt das Secret mit maskierter Eingabe ab:

950 961 

951 ```bash theme={null}962 ```bash theme={null}

952 claude mcp add --transport http \963 claude mcp add --transport http \


966 </Tab>977 </Tab>

967 978 

968 <Tab title="claude mcp add-json (nur Callback-Port)">979 <Tab title="claude mcp add-json (nur Callback-Port)">

969 Um nur den Callback-Port zu fixieren und Claude Code die Client automatisch registrieren zu lassen, setzen Sie `callbackPort` allein:980 Um nur den Callback-Port zu fixieren und Claude Code den Client automatisch registrieren zu lassen, setzen Sie `callbackPort` allein:

970 981 

971 ```bash theme={null}982 ```bash theme={null}

972 claude mcp add-json my-server \983 claude mcp add-json my-server \


994<Tip>1005<Tip>

995 Tipps:1006 Tipps:

996 1007 

997 * Das Client-Secret wird sicher in Ihrem System-Keychain (macOS) oder einer Anmeldedatei gespeichert, nicht in Ihrer Konfiguration1008 * Das Client-Secret wird sicher in Ihrem System-Schlüsselbund (macOS) oder einer Datei mit Anmeldedaten gespeichert, nicht in Ihrer Konfiguration

998 * 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`1009 * Sie können das Client-Secret nur beim Hinzufügen des Servers festlegen. Wenn Sie sich mit `claude mcp login` oder über `/mcp` authentifizieren, verwendet Claude Code das gespeicherte Secret, fragt nicht danach und liest `MCP_CLIENT_SECRET` nicht

999 * 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` hinzu1010 * 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

1000 * Wenn der Server einen öffentlichen OAuth-Client ohne Secret verwendet, verwenden Sie nur `--client-id` ohne `--client-secret`1011 * Wenn der Server einen öffentlichen OAuth-Client ohne Secret verwendet, verwenden Sie nur `--client-id` ohne `--client-secret`

1001 * Diese Flags gelten nur für HTTP- und SSE-Transporte. Sie haben keine Auswirkung auf Stdio-Server1012 * Diese Flags gelten nur für HTTP- und SSE-Transporte. Sie haben keine Auswirkung auf Stdio-Server


1024}1035}

1025```1036```

1026 1037 

1027Die URL muss `https://` verwenden. Die `scopes_supported` der Metadaten-URL überschreiben die Bereiche, die der Upstream-Server bewirbt.1038Die URL muss `https://` verwenden. Die `scopes_supported` der Metadaten-URL überschreiben die Scopes, die der Upstream-Server bewirbt.

1028 1039 

1029<h3 id="restrict-oauth-scopes">1040<h3 id="restrict-oauth-scopes">

1030 Beschränken Sie OAuth-Bereiche1041 Beschränken Sie OAuth-Scopes

1031</h3>1042</h3>

1032 1043 

1033Legen Sie `oauth.scopes` fest, um die Bereiche zu fixieren, die Claude Code während des Autorisierungsflusses anfordert. Dies ist die unterstützte Methode, um einen MCP-Server auf eine von Ihrem Sicherheitsteam genehmigte Teilmenge zu beschränken, wenn der Upstream-Autorisierungsserver mehr Bereiche bewirbt, als Sie gewähren möchten. Der Wert ist eine einzelne durch Leerzeichen getrennte Zeichenkette, die dem `scope`-Parameter-Format in RFC 6749 §3.3 entspricht.1044Legen Sie `oauth.scopes` fest, um die Scopes zu fixieren, die Claude Code während des Autorisierungsflusses anfordert. Dies ist die unterstützte Methode, um einen MCP-Server auf eine von Ihrem Sicherheitsteam genehmigte Teilmenge zu beschränken, wenn der Upstream-Autorisierungsserver mehr Scopes bewirbt, als Sie gewähren möchten. Der Wert ist eine einzelne durch Leerzeichen getrennte Zeichenkette, die dem `scope`-Parameter-Format in RFC 6749 §3.3 entspricht.

1034 1045 

1035```json theme={null}1046```json theme={null}

1036{1047{


1046}1057}

1047```1058```

1048 1059 

1049`oauth.scopes` hat Vorrang vor sowohl `authServerMetadataUrl` als auch den Bereichen, die der Server unter `/.well-known` entdeckt. Lassen Sie es ungesetzt, damit der MCP-Server den angeforderten Bereichssatz bestimmt.1060`oauth.scopes` hat Vorrang sowohl vor `authServerMetadataUrl` als auch vor den Scopes, die der Server unter `/.well-known` entdeckt. Lassen Sie es ungesetzt, damit der MCP-Server die angeforderte Scope-Menge bestimmt.

1050 1061 

1051Wenn `oauth.scopes` nicht gesetzt ist, fordert Claude Code nicht den vollständigen `scopes_supported`-Katalog aus automatisch erkannten Authorization Server Metadata an. Metadaten, die von einer konfigurierten `authServerMetadataUrl` abgerufen werden, liefern weiterhin ihre `scopes_supported` als die angeforderten Scopes.1062Wenn `oauth.scopes` nicht gesetzt ist, fordert Claude Code nicht den vollständigen `scopes_supported`-Katalog aus automatisch erkannten Authorization Server Metadata an. Metadaten, die von einer konfigurierten `authServerMetadataUrl` abgerufen werden, liefern weiterhin ihre `scopes_supported` als die angeforderten Scopes.

1052 1063 

1053Wenn der Autorisierungsserver `offline_access` in `scopes_supported` bewirbt, fügt Claude Code es zu den fixierten Bereichen hinzu, damit das Zugriffs-Token ohne neue Browser-Anmeldung aktualisiert werden kann.1064Wenn der Autorisierungsserver `offline_access` in `scopes_supported` bewirbt, fügt Claude Code es zu den fixierten Scopes hinzu, damit das Zugriffs-Token ohne neue Browser-Anmeldung aktualisiert werden kann.

1054 1065 

1055Wenn der Server später einen 403 `insufficient_scope` für einen Tool-Aufruf zurückgibt, schlägt der Aufruf mit einer [`needs additional permissions`](/docs/de/errors#mcp-server-needs-you-to-sign-in-again)-Nachricht fehl, die den Bereich benennt, den der Server anfordert. Der Server wird als authentifizierungsbedürftig in `/mcp` angezeigt.1066Wenn der Server später einen 403 `insufficient_scope` für einen Tool-Aufruf zurückgibt, schlägt der Aufruf mit einer [`needs additional permissions`](/docs/de/errors#mcp-server-needs-you-to-sign-in-again)-Nachricht fehl, die den Scope benennt, den der Server anfordert. Der Server wird als authentifizierungsbedürftig in `/mcp` angezeigt.

1056 1067 

1057Wenn dieser Bereich nicht in Ihrem fixierten `oauth.scopes` enthalten ist, fügen Sie ihn hinzu, führen Sie dann `/mcp` aus und authentifizieren Sie den Server erneut. Claude Code fordert die fixierten Bereiche an, nicht den Bereich, den der Server benannt hat, daher wenn Sie sich erneut authentifizieren, ohne ihn hinzuzufügen, hat das Token, das Sie erhalten, immer noch nicht.1068Wenn dieser Scope nicht in Ihrem fixierten `oauth.scopes` enthalten ist, fügen Sie ihn hinzu, führen Sie dann `/mcp` aus und authentifizieren Sie den Server erneut. Claude Code fordert die fixierten Scopes an, nicht den Scope, den der Server benannt hat. Wenn Sie sich also erneut authentifizieren, ohne ihn hinzuzufügen, fehlt er dem Token, das Sie erhalten, weiterhin.

1058 1069 

1059<h3 id="use-dynamic-headers-for-custom-authentication">1070<h3 id="use-dynamic-headers-for-custom-authentication">

1060 Verwenden Sie dynamische Header für benutzerdefinierte Authentifizierung1071 Verwenden Sie dynamische Header für benutzerdefinierte Authentifizierung

1061</h3>1072</h3>

1062 1073 

1063Wenn Ihr MCP-Server ein anderes Authentifizierungsschema verwendet als OAuth, wie Kerberos, kurzlebige Token oder ein internes SSO, verwenden Sie `headersHelper`, um Request-Header zur Verbindungszeit zu generieren. Claude Code führt den Befehl aus und fügt seine Ausgabe in die Verbindungs-Header ein.1074Wenn Ihr MCP-Server ein anderes Authentifizierungsschema als OAuth verwendet, wie Kerberos, kurzlebige Token oder ein internes SSO, verwenden Sie `headersHelper`, um Anfrage-Header zur Verbindungszeit zu generieren. Claude Code führt den Befehl aus und führt seine Ausgabe mit den Verbindungs-Headern zusammen.

1064 1075 

1065```json theme={null}1076```json theme={null}

1066{1077{


1091**Anforderungen:**1102**Anforderungen:**

1092 1103 

1093* Der Befehl muss ein JSON-Objekt mit String-Schlüssel-Wert-Paaren auf stdout schreiben1104* Der Befehl muss ein JSON-Objekt mit String-Schlüssel-Wert-Paaren auf stdout schreiben

1094* Claude Code führt den Befehl in einer Shell aus und gibt ihn nach 10 Sekunden auf1105* Claude Code führt den Befehl in einer Shell aus und bricht ihn nach 10 Sekunden ab

1095* Claude Code wählt das Arbeitsverzeichnis des Befehls nach [wo Sie den Server konfiguriert haben](#where-the-helper-runs), daher geben Sie das Skript als absoluten Pfad an oder setzen Sie es auf `PATH`1106* Claude Code wählt das Arbeitsverzeichnis des Befehls danach, [wo Sie den Server konfiguriert haben](#where-the-helper-runs), geben Sie das Skript daher als absoluten Pfad an oder legen Sie es in den `PATH`

1096* Dynamische Header überschreiben alle statischen `headers` mit dem gleichen Namen1107* Dynamische Header überschreiben alle statischen `headers` mit dem gleichen Namen

1097 1108 

1098Claude Code führt den Helper bei jeder Verbindung neu aus, beim Sitzungsstart und bei Wiederverbindung, sobald die [Vertrauensregel für Projekt- und Local-Scope-Server](#trust-a-folder-before-its-headershelper-runs) es ausführen lässt. Es speichert das Ergebnis nicht zwischen, daher ist Ihr Skript für jede Token-Wiederverwendung verantwortlich.1109Claude Code führt den Helper bei jeder Verbindung neu aus, beim Sitzungsstart und bei Wiederverbindung, sobald die [Vertrauensregel für Server im Projekt- und lokalen Geltungsbereich](#trust-a-folder-before-its-headershelper-runs) ihn ausführen lässt. Das Ergebnis wird nicht zwischengespeichert, daher ist Ihr Skript für jede Token-Wiederverwendung verantwortlich.

1099 1110 

1100Wenn ein Tool-Aufruf `401 Unauthorized` oder `403 Forbidden` zurückgibt, führt Claude Code den Helper automatisch erneut unter der gleichen Regel aus, verbindet sich mit den neuen Headern erneut und wiederholt den Aufruf einmal. Claude Code markiert den Server als authentifizierungsbedürftig in `/mcp` nur, wenn dieser Wiederholungsversuch auch fehlschlägt.1111Wenn ein Tool-Aufruf `401 Unauthorized` oder `403 Forbidden` zurückgibt, führt Claude Code den Helper automatisch unter der gleichen Regel erneut aus, verbindet sich mit den neuen Headern erneut und wiederholt den Aufruf einmal. Claude Code markiert den Server als authentifizierungsbedürftig in `/mcp` nur, wenn dieser Wiederholungsversuch auch fehlschlägt.

1101 1112 

1102Wenn die Ausgabe des Helpers einen `Authorization`-Header enthält, verwendet Claude Code diese Anmeldedaten als Authentifizierung des Servers und fällt nicht auf OAuth für den Server zurück.1113Wenn die Ausgabe des Helpers einen `Authorization`-Header enthält, verwendet Claude Code diese Anmeldedaten als Authentifizierung des Servers und fällt für den Server nicht auf OAuth zurück.

1103 1114 

1104Wenn der Server die Anmeldedaten des Helpers beim Verbinden ablehnt, meldet Claude Code die Verbindung als fehlgeschlagen, anstatt den Server als authentifizierungsbedürftig zu markieren. Beheben Sie die Anmeldedaten, die Ihr Helper zurückgibt, und verbinden Sie sich dann von `/mcp` erneut, um den Helper erneut auszuführen.1115Wenn der Server die Anmeldedaten des Helpers beim Verbinden ablehnt, meldet Claude Code die Verbindung als fehlgeschlagen, anstatt den Server als authentifizierungsbedürftig zu markieren. Beheben Sie die Anmeldedaten, die Ihr Helper zurückgibt, und verbinden Sie sich dann über `/mcp` erneut, um den Helper erneut auszuführen.

1105 1116 

1106Claude Code setzt diese Umgebungsvariablen beim Ausführen des Helpers:1117Claude Code setzt diese Umgebungsvariablen beim Ausführen des Helpers:

1107 1118 


1113 1124 

1114Verwenden Sie diese, um ein einzelnes Helper-Skript zu schreiben, das mehrere MCP-Server bedient.1125Verwenden Sie diese, um ein einzelnes Helper-Skript zu schreiben, das mehrere MCP-Server bedient.

1115 1126 

1116Ein von einem Plugin bereitgestellter `headersHelper` kann nicht auf die [`${user_config.*}`](/docs/de/plugins/manifest-reference#user-configuration)-Werte des Plugins verweisen, da der Befehl durch eine Shell ausgeführt wird. Claude Code meldet den Server als fehlkonfiguriert mit einem [Fehler](/docs/de/errors#plugin-command-references-user-config) und ersetzt den Wert nicht. Setzen Sie `${user_config.KEY}` stattdessen in das Feld `headers` des Servers, das nicht shell-geparst wird, oder lassen Sie das Helper-Skript den Wert aus einer Konfigurationsdatei lesen. Vor v2.1.207 ersetzte `headersHelper` `${user_config.*}`-Werte.1127Ein von einem Plugin bereitgestellter `headersHelper` kann nicht auf die [`${user_config.*}`](/docs/de/plugins/manifest-reference#user-configuration)-Werte des Plugins verweisen, da der Befehl durch eine Shell ausgeführt wird. Claude Code meldet den Server mit einem [Fehler](/docs/de/errors#plugin-command-references-user-config) als fehlkonfiguriert und ersetzt den Wert nicht. Setzen Sie `${user_config.KEY}` stattdessen in das Feld `headers` des Servers, das nicht von der Shell geparst wird, oder lassen Sie das Helper-Skript den Wert aus einer Konfigurationsdatei lesen. Vor v2.1.207 ersetzte `headersHelper` `${user_config.*}`-Werte.

1117 1128 

1118<h4 id="where-the-helper-runs">1129<h4 id="where-the-helper-runs">

1119 Wo der Helper ausgeführt wird1130 Wo der Helper ausgeführt wird

1120</h4>1131</h4>

1121 1132 

1122Claude Code wählt das Arbeitsverzeichnis des `headersHelper`-Befehls aus der Konfiguration, die den Server deklariert. Ein `cd`, das Claude in Bash ausführt, verschiebt es nicht, und [`/cd`](/docs/de/permissions#move-the-session-to-another-directory) verschiebt es nur für Server, die aus dem primären Arbeitsverzeichnis der Sitzung ausgeführt werden. Jede Zeile unten gibt das Verzeichnis an, gegen das ein relativer Pfad in Ihrem `headersHelper`-Befehl aufgelöst wird.1133Claude Code wählt das Arbeitsverzeichnis des `headersHelper`-Befehls anhand der Konfiguration, die den Server deklariert. Ein `cd`, das Claude in Bash ausführt, ändert es nicht, und [`/cd`](/docs/de/permissions#move-the-session-to-another-directory) ändert es nur für Server, die aus dem primären Arbeitsverzeichnis der Sitzung ausgeführt werden. Jede Zeile unten gibt das Verzeichnis an, gegen das ein relativer Pfad in Ihrem `headersHelper`-Befehl aufgelöst wird.

1123 1134 

1124| Wo Sie den Server konfiguriert haben | Arbeitsverzeichnis |1135| Wo Sie den Server konfiguriert haben | Arbeitsverzeichnis |

1125| :- | :- |1136| :- | :- |

1126| Ein [Plugin](/docs/de/plugins/components#mcp-servers) | Das Root-Verzeichnis des Plugins |1137| Ein [Plugin](/docs/de/plugins/components#mcp-servers) | Das Root-Verzeichnis des Plugins |

1127| Eine Projekt `.mcp.json` oder ein [Local-Scope](#local-scope)-Server | Das Projektverzeichnis, in dem der Server deklariert ist |1138| Eine Projekt-`.mcp.json` oder ein Server im [lokalen Geltungsbereich](#local-scope) | Das Projektverzeichnis, in dem der Server deklariert ist |

1128| Eine Agent-Datei in Ihrem Projekt, ein Server aus der SDK-Option `mcpServers` oder der Methode `setMcpServers()`, oder [`--mcp-config`](/docs/de/cli-reference) | Das [primäre Arbeitsverzeichnis](/docs/de/permissions#working-directories) der Sitzung |1139| Eine Agent-Datei in Ihrem Projekt, ein Server aus der SDK-Option `mcpServers` oder der Methode `setMcpServers()`, oder [`--mcp-config`](/docs/de/cli-reference) | Das [primäre Arbeitsverzeichnis](/docs/de/permissions#working-directories) der Sitzung |

1129| [User Scope](#user-scope), [verwaltetes MCP](/docs/de/managed-mcp), ein [claude.ai-Connector](#use-mcp-servers-from-claude-ai), oder eine Agent-Datei von außerhalb Ihres Projekts, einschließlich einer aus einem `--add-dir`-Verzeichnis | Ihr Konfigurationsverzeichnis, `~/.claude` sofern Sie nicht [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) gesetzt haben |1140| [Benutzer-Geltungsbereich](#user-scope), [verwaltetes MCP](/docs/de/managed-mcp), ein [claude.ai-Konnektor](#use-mcp-servers-from-claude-ai) oder eine Agent-Datei von außerhalb Ihres Projekts, einschließlich einer aus einem `--add-dir`-Verzeichnis | Ihr Konfigurationsverzeichnis, `~/.claude`, sofern Sie nicht [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) gesetzt haben |

1130 1141 

1131Vor v2.1.238 führte Claude Code auch die Helper von User-Scope-, verwalteten und claude.ai-Connector-Servern sowie von Agent-Dateien von außerhalb Ihres Projekts aus dem Verzeichnis aus, in dem Sie es gestartet haben.1142Vor v2.1.238 führte Claude Code auch die Helper von Servern im Benutzer-Geltungsbereich, von verwalteten Servern und claude.ai-Konnektor-Servern sowie von Agent-Dateien von außerhalb Ihres Projekts aus dem Verzeichnis aus, in dem Sie es gestartet haben.

1132 1143 

1133<h4 id="which-variables-a-helper-can-read">1144<h4 id="which-variables-a-helper-can-read">

1134 Welche Variablen ein Helper lesen kann1145 Welche Variablen ein Helper lesen kann


1136 1147 

1137Ein `headersHelper`, den ein Repository oder Plugin bereitstellt, ist ein Befehl, den Sie nicht geschrieben haben, daher führt Claude Code ihn ohne die Anmeldedaten-Variablen aus Ihrer Umgebung aus, wie z. B. `ANTHROPIC_API_KEY`. Wo Sie den Server konfiguriert haben, entscheidet, ob dies zutrifft:1148Ein `headersHelper`, den ein Repository oder Plugin bereitstellt, ist ein Befehl, den Sie nicht geschrieben haben, daher führt Claude Code ihn ohne die Anmeldedaten-Variablen aus Ihrer Umgebung aus, wie z. B. `ANTHROPIC_API_KEY`. Wo Sie den Server konfiguriert haben, entscheidet, ob dies zutrifft:

1138 1149 

1139* **Entfernt**: ein Server in einer Projekt `.mcp.json` oder in einem Plugin, und ein Inline-Server in einer Agent-Datei aus Ihrem Projekt oder aus einem `--add-dir`-Verzeichnis1150* **Entfernt**: ein Server in einer Projekt-`.mcp.json` oder in einem Plugin sowie ein Inline-Server in einer Agent-Datei aus Ihrem Projekt oder aus einem `--add-dir`-Verzeichnis

1140* **Nicht entfernt**: ein Server bei [User Scope](#user-scope) oder [Local Scope](#local-scope), in [verwaltetes MCP](/docs/de/managed-mcp), von einem [claude.ai-Connector](#use-mcp-servers-from-claude-ai), oder bereitgestellt von der SDK oder [`--mcp-config`](/docs/de/cli-reference), und ein Inline-Server in einer Agent-Datei aus `~/.claude/agents/`, aus verwalteten Einstellungen, oder übergeben mit `--agents`1151* **Nicht entfernt**: ein Server im [Benutzer-](#user-scope) oder [lokalen Geltungsbereich](#local-scope), in [verwaltetem MCP](/docs/de/managed-mcp), von einem [claude.ai-Konnektor](#use-mcp-servers-from-claude-ai) oder bereitgestellt vom SDK oder über [`--mcp-config`](/docs/de/cli-reference) sowie ein Inline-Server in einer Agent-Datei aus `~/.claude/agents/`, aus verwalteten Einstellungen oder übergeben mit `--agents`

1141 1152 

1142Abgesehen von Gits `GIT_CONFIG_KEY_<n>`-Variablen entfernt Claude Code jede Variable aus Ihrer Umgebung, deren Name wie eine Anmeldedaten aussieht, wie z. B. ein Name mit `TOKEN`, `SECRET`, `PASSWORD`, `KEY` oder `AUTH` darin in beiden Buchstabenfällen, daher werden sowohl `ANTHROPIC_API_KEY` als auch `MY_REGISTRY_TOKEN` entfernt. Claude Code entfernt auch eine feste Liste von Anmeldedaten-Variablen, deren Namen diesem Muster nicht folgen, wie z. B. `ANTHROPIC_CUSTOM_HEADERS`.1153Abgesehen von Gits `GIT_CONFIG_KEY_<n>`-Variablen entfernt Claude Code jede Variable aus Ihrer Umgebung, deren Name nach Anmeldedaten aussieht, wie z. B. ein Name, der `TOKEN`, `SECRET`, `PASSWORD`, `KEY` oder `AUTH` in beliebiger Groß- oder Kleinschreibung enthält, daher werden sowohl `ANTHROPIC_API_KEY` als auch `MY_REGISTRY_TOKEN` entfernt. Claude Code entfernt auch eine feste Liste von Anmeldedaten-Variablen, deren Namen diesem Muster nicht folgen, wie z. B. `ANTHROPIC_CUSTOM_HEADERS`.

1143 1154 

1144Wenn dies auf Ihren Helper zutrifft, lassen Sie das Skript seine Anmeldedaten aus einer Datei oder einem Anmeldedaten-Speicher lesen. Wenn die `url` des Servers [den aktuellen Wert einer dieser Variablen enthält](#environment-variable-expansion-in-mcp-json), wie z. B. `MY_REGISTRY_TOKEN`, ist dieser Teil im `CLAUDE_CODE_MCP_SERVER_URL`-Wert, den der Helper erhält, ebenfalls durch `REDACTED` ersetzt.1155Wenn dies auf Ihren Helper zutrifft, lassen Sie das Skript seine Anmeldedaten aus einer Datei oder einem Anmeldedaten-Speicher lesen. Wenn die `url` des Servers [den aktuellen Wert einer dieser Variablen enthält](#environment-variable-expansion-in-mcp-json), wie z. B. `MY_REGISTRY_TOKEN`, ist dieser Teil im `CLAUDE_CODE_MCP_SERVER_URL`-Wert, den der Helper erhält, ebenfalls durch `REDACTED` ersetzt.

1145 1156 


1147 Vertrauen Sie einem Ordner, bevor sein headersHelper ausgeführt wird1158 Vertrauen Sie einem Ordner, bevor sein headersHelper ausgeführt wird

1148</h4>1159</h4>

1149 1160 

1150Claude Code führt einen `headersHelper` als beliebigen Shell-Befehl aus. Für einen Server in einer Projekt `.mcp.json` oder bei [Local Scope](#local-scope) führt es den Helper nur aus, nachdem Sie den [Vertrauensdialog](/docs/de/permissions#project-allow-rules-and-workspace-trust) für das Projektverzeichnis akzeptiert haben, in dem der Server deklariert ist. Vor v2.1.238 führte eine `claude -p`- oder SDK-Sitzung diese Helper ohne Vertrauensprüfung aus, und eine interaktive Sitzung führte sie aus, sobald Sie einen übergeordneten Ordner vertraut hatten.1161Claude Code führt einen `headersHelper` als beliebigen Shell-Befehl aus. Für einen Server in einer Projekt-`.mcp.json` oder im [lokalen Geltungsbereich](#local-scope) führt es den Helper nur aus, nachdem Sie den [Vertrauensdialog](/docs/de/permissions#project-allow-rules-and-workspace-trust) für das Projektverzeichnis akzeptiert haben, in dem der Server deklariert ist. Vor v2.1.238 führte eine `claude -p`- oder SDK-Sitzung diese Helper ohne Vertrauensprüfung aus, und eine interaktive Sitzung führte sie aus, sobald Sie einem übergeordneten Ordner vertraut hatten.

1151 1162 

1152* **Vertrauen, das nicht zählt**: das Vertrauen eines übergeordneten Ordners und das automatische Vertrauen, das eine `claude -p`- oder SDK-Sitzung für [Hooks in Einstellungsdateien](/docs/de/permissions#what-runs-before-you-trust-a-folder) erhält1163* **Vertrauen, das nicht zählt**: das Vertrauen eines übergeordneten Ordners und das automatische Vertrauen, das eine `claude -p`- oder SDK-Sitzung für [Hooks in Einstellungsdateien](/docs/de/permissions#what-runs-before-you-trust-a-folder) erhält

1153* **Bis Sie den Ordner vertrauen**: Claude Code verbindet den Server nur mit seinen statischen `headers`. In einer `claude -p`- oder SDK-Sitzung druckt es auch eine [`headersHelper not run`](/docs/de/errors#headershelper-not-run)-Zeile pro Server auf stderr, die Ihnen sagt, wie Sie das Vertrauen gewähren.1164* **Bis Sie dem Ordner vertrauen**: Claude Code verbindet den Server nur mit seinen statischen `headers`. In einer `claude -p`- oder SDK-Sitzung gibt es außerdem pro Server eine [`headersHelper not run`](/docs/de/errors#headershelper-not-run)-Zeile auf stderr aus, die Ihnen mitteilt, wie Sie das Vertrauen gewähren.

1154* **Vertrauen ohne Dialog**: setzen Sie `projects["<path>"].hasTrustDialogAccepted` auf `true` in `~/.claude.json`. `<path>` ist der Ordner, auf den [Project allow rules and workspace trust](/docs/de/permissions#project-allow-rules-and-workspace-trust) sagt, dass Claude Code das Vertrauen basiert.1165* **Vertrauen ohne Dialog**: Setzen Sie `projects["<path>"].hasTrustDialogAccepted` in `~/.claude.json` auf `true`. `<path>` ist der Ordner, an den Claude Code das Vertrauen laut [Project allow rules and workspace trust](/docs/de/permissions#project-allow-rules-and-workspace-trust) bindet.

1155 1166 

1156Claude Code wendet die gleiche Regel auf einen Server an, der inline in einer [Agent-Datei](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) deklariert ist, und überprüft, woher diese Agent-Datei kam: Ihr Projekt, für eine Datei in seinem `.claude/agents/`-Verzeichnis, oder ein `--add-dir`-Verzeichnis. Bis Sie [dieses Projekt oder Verzeichnis selbst vertrauen](/docs/de/permissions#what-runs-before-you-trust-a-folder), lädt Claude Code den Server überhaupt nicht, daher wird sein Helper auch nie ausgeführt.1167Claude Code wendet die gleiche Regel auf einen Server an, der inline in einer [Agent-Datei](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) deklariert ist, und überprüft, woher diese Agent-Datei stammt: aus Ihrem Projekt, für eine Datei in dessen `.claude/agents/`-Verzeichnis, oder aus einem `--add-dir`-Verzeichnis. Bis Sie [diesem Projekt oder Verzeichnis selbst vertrauen](/docs/de/permissions#what-runs-before-you-trust-a-folder), lädt Claude Code den Server überhaupt nicht, daher wird sein Helper auch nie ausgeführt.

1157 1168 

1158<h2 id="add-mcp-servers-from-json-configuration">1169<h2 id="add-mcp-servers-from-json-configuration">

1159 MCP-Server aus JSON-Konfiguration hinzufügen1170 MCP-Server aus JSON-Konfiguration hinzufügen


1218 </Step>1229 </Step>

1219</Steps>1230</Steps>

1220 1231 

1221Servernamen, die über `claude mcp`-Befehle hinzugefügt werden, dürfen nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten. Claude Desktop wendet diese Einschränkung nicht an, daher kann ein Claude Desktop-Server, dessen Name ein anderes Zeichen wie ein Leerzeichen enthält, nicht importiert werden. Der Import meldet jeden Namen, den er ablehnt, und importiert weiterhin die anderen Server, die Sie ausgewählt haben. Vor v2.1.205 stoppte der erste ungültige Name den Import und keiner der ausgewählten Server wurde hinzugefügt.1232Servernamen, die über `claude mcp`-Befehle hinzugefügt werden, dürfen nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten. Claude Desktop wendet diese Einschränkung nicht an, daher kann ein Claude Desktop-Server, dessen Name ein anderes Zeichen wie ein Leerzeichen enthält, nicht importiert werden. Der Import meldet jeden Namen, den er ablehnt, und importiert weiterhin die anderen Server, die Sie ausgewählt haben.

1222 1233 

1223<Tip>1234<Tip>

1224 Tipps:1235 Tipps:


1396 * Dieser MCP-Server stellt nur die Tools von Claude Code Ihrem MCP-Client zur Verfügung, daher ist Ihr eigener Client dafür verantwortlich, Benutzerbestätigungen für einzelne Tool-Aufrufe zu implementieren.1407 * Dieser MCP-Server stellt nur die Tools von Claude Code Ihrem MCP-Client zur Verfügung, daher ist Ihr eigener Client dafür verantwortlich, Benutzerbestätigungen für einzelne Tool-Aufrufe zu implementieren.

1397</Tip>1408</Tip>

1398 1409 

1410Wenn der JSON-Text im Ergebnis eines Bash- oder PowerShell-Tool-Aufrufs ein Feld `backgroundOutputPath` enthält, hat der Aufruf seinen Befehl [im Hintergrund](/docs/de/tools-reference#background-commands) weiterlaufen lassen, etwa wenn der Aufruf `run_in_background: true` gesetzt hat oder der Befehl seinen Timeout erreicht hat. Das Feld gibt den Pfad der Ausgabedatei des Befehls an. Ihr Client wird nicht benachrichtigt, wenn der Befehl abgeschlossen ist, und die Datei erhält in diesem Fall keine abschließende Zeile, sodass beim Lesen der Datei die bis dahin geschriebene Ausgabe angezeigt wird. Um das Ende zu erkennen, hängen Sie eine Markierung an den Befehl an, etwa `npm test; echo DONE`, und suchen Sie in der Datei danach. Das Feld `backgroundOutputPath` erfordert Claude Code v2.1.295 oder höher.

1411 

1399<h2 id="mcp-output-limits-and-warnings">1412<h2 id="mcp-output-limits-and-warnings">

1400 MCP-Ausgabebegrenzungen und Warnungen1413 MCP-Ausgabebegrenzungen und Warnungen

1401</h2>1414</h2>


1407* **Standardbegrenzung**: Das Standardmaximum beträgt 25.000 Token1420* **Standardbegrenzung**: Das Standardmaximum beträgt 25.000 Token

1408* **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`1421* **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`

1409* **Über der Begrenzung**: Wenn ein erfolgreiches Ergebnis ohne Bildinhalt die Token-Begrenzung überschreitet, speichert Claude Code es in einer Datei und ersetzt es in der Konversation 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).1422* **Über der Begrenzung**: Wenn ein erfolgreiches Ergebnis ohne Bildinhalt die Token-Begrenzung überschreitet, speichert Claude Code es in einer Datei und ersetzt es in der Konversation 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).

1410* **Antwortgröße von HTTP- und SSE-Servern**: Claude Code beendet das Lesen einer Antwort von einem [HTTP](#option-1-add-a-remote-http-server)- oder [SSE](#option-2-add-a-remote-sse-server)-Server, sobald ein einzelner JSON-Response-Body oder ein einzelnes Ereignis eines Event-Streams nach der Dekomprimierung 16 MB überschreitet. Die Anfrage, auf die diese Antwort erfolgt, schlägt fehl. Wenn Sie den Server betreuen, geben Sie pro Antwort weniger Daten zurück, um unter der Begrenzung zu bleiben, zum Beispiel durch Paginierung der Ergebnisse1423* **Antwortgröße von HTTP- und SSE-Servern**: Wenn eine Antwort von einem [HTTP](#option-1-add-a-remote-http-server)- oder [SSE](#option-2-add-a-remote-sse-server)-Server 16 MiB überschreitet, beendet Claude Code das Lesen und die Anfrage schlägt fehl. Die Begrenzung gilt nach der Dekomprimierung für einen einzelnen JSON-Response-Body oder ein einzelnes Ereignis eines Event-Streams. Wenn Sie den Server betreuen, geben Sie pro Antwort weniger Daten zurück, um unter der Begrenzung zu bleiben, zum Beispiel durch Paginierung der Ergebnisse

1424* **Nachrichtengröße von WebSocket-Servern**: Wenn ein [WebSocket](#option-4-add-a-remote-websocket-server)-Server eine einzelne Nachricht über 16 MiB sendet, [schließt Claude Code die Verbindung](#mid-session-drops-of-a-remote-server), und laufende Aufrufe an diesen Server schlagen fehl. Wenn Sie den Server betreuen, geben Sie pro Nachricht weniger Daten zurück, um unter der Begrenzung zu bleiben

1411 1425 

1412Ein Aufruf, den Claude Code [in eine Hintergrundaufgabe verschoben](#automatic-backgrounding-of-long-tool-calls) hat, meldet sein Ergebnis über die Aufgabenbenachrichtigung. Für einen Aufruf, der im Vordergrund abgeschlossen wird, gelten zwei weitere Begrenzungen:1426Ein Aufruf, den Claude Code [in eine Hintergrundaufgabe verschoben](#automatic-backgrounding-of-long-tool-calls) hat, meldet sein Ergebnis über die Aufgabenbenachrichtigung. Für einen Aufruf, der im Vordergrund abgeschlossen wird, gelten zwei weitere Begrenzungen:

1413 1427 


1481 1495 

1482Die [Root-Level-Kombinator-Behandlung](#tool-input-schemas-with-a-root-level-combinator) ist separat und behält ihr eigenes Verhalten bei, wenn das Flag-Abrufen deaktiviert ist oder die Flags nie angekommen sind.1496Die [Root-Level-Kombinator-Behandlung](#tool-input-schemas-with-a-root-level-combinator) ist separat und behält ihr eigenes Verhalten bei, wenn das Flag-Abrufen deaktiviert ist oder die Flags nie angekommen sind.

1483 1497 

1498<h2 id="tools-with-names-longer-than-128-characters">

1499 Tools mit Namen, die länger als 128 Zeichen sind

1500</h2>

1501 

1502Wenn `/mcp` ein Tool auflistet, das Claude nicht aufrufen kann, prüfen Sie, ob der vollständige Name des Tools länger als 128 Zeichen ist. Führen Sie `/mcp` in Ihrer Sitzung aus und wählen Sie das Tool aus, um seinen vollständigen Namen anzuzeigen, zum Beispiel `mcp__<server>__<tool>`. Claude Code lässt ein MCP-Tool bei den Tools, die es an Claude sendet, weg, wenn sein vollständiger Name länger als 128 Zeichen ist. Die Claude API lehnt eine Anfrage ab, die ein solches Tool enthält. Indem das Tool weggelassen wird, funktionieren die anderen Tools des Servers weiterhin.

1503 

1504Die Meldung, die das Tool benennt, sowie Möglichkeiten, seinen vollständigen Namen zu kürzen, finden Sie unter [MCP-Tool-Name länger als 128 Zeichen](/docs/de/errors#mcp-tool-name-over-128-characters).

1505 

1484<h2 id="require-approval-for-a-specific-tool">1506<h2 id="require-approval-for-a-specific-tool">

1485 Genehmigung für ein bestimmtes Tool erforderlich1507 Genehmigung für ein bestimmtes Tool erforderlich

1486</h2>1508</h2>


1599* Wann Claude nach Ihren Tools suchen sollte1621* Wann Claude nach Ihren Tools suchen sollte

1600* Wichtige Funktionen, die Ihr Server bietet1622* Wichtige Funktionen, die Ihr Server bietet

1601 1623 

1602Claude Code kürzt jede Tool-Beschreibung und jede Server-Anweisung standardmäßig auf 2.048 Zeichen. Halten Sie sie prägnant, und platzieren Sie kritische Details am Anfang.1624Claude Code kürzt eine Tool-Beschreibung oder Server-Anweisungen, die diese Standardgrenzen überschreiten, und Claude sieht nur den Text vor der Kürzung:

1625 

1626* **Server-Anweisungen und die Beschreibung eines Tools, das vorab geladen wird**: 4.096 Zeichen

1627* **Die Beschreibung eines Tools, das Claude über die Tool-Suche lädt**: 16.384 Zeichen

1628 

1629Halten Sie Beschreibungen und Anweisungen prägnant, und platzieren Sie kritische Details am Anfang. Wenn die Tool-Suche Claudes Suchanfrage mit der Beschreibung eines Tools abgleicht, liest sie nur den Teil innerhalb der kürzeren Grenze; platzieren Sie daher auch die Begriffe, nach denen Claude suchen würde, am Anfang. Ein Tool wird vorab geladen und behält die kürzere Grenze, wann immer es nicht aufgeschoben wird, zum Beispiel wenn [die Tool-Suche ausgeschaltet ist](#configure-tool-search), wenn das Tool [als vorab zu laden markiert ist](#per-tool-alwaysload) oder wenn sein Server [vom Aufschub ausgenommen ist](#exempt-a-server-from-deferral).

1630 

1631Vor v2.1.296 lag die kürzere Grenze bei 2.048 Zeichen, und vor v2.1.295 galt sie für jede Tool-Beschreibung, einschließlich einer, die über die Tool-Suche geladen wurde.

1603 1632 

1604Um die Grenze für jeden MCP-Server in Ihrer Sitzung zu ändern, setzen Sie [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/de/env-vars#variables) auf eine Anzahl von Zeichen. Diese Variable erfordert Claude Code v2.1.280 oder später.1633Um die Grenzen für jeden MCP-Server in Ihrer Sitzung zu ändern, setzen Sie [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/de/env-vars#variables) auf eine Anzahl von Zeichen. Die von Ihnen gesetzte Zahl ersetzt beide Grenzen: `8192` beispielsweise erhöht die kürzere Grenze und senkt die längere. Diese Variable erfordert Claude Code v2.1.280 oder später.

1605 1634 

1606<h4 id="per-tool-alwaysload">1635<h4 id="per-tool-alwaysload">

1607 Ein Tool vorab laden oder aufgeschoben lassen1636 Ein Tool vorab laden oder aufgeschoben lassen


1632 1661 

1633Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf erkannt. Claude Code deaktiviert sie, wenn `ANTHROPIC_BASE_URL` auf einen Host eines Drittanbieters verweist, da die meisten Proxys `tool_reference`-Blöcke nicht weiterleiten. Setzen Sie `ENABLE_TOOL_SEARCH` explizit, um diesen Fallback zu überschreiben.1662Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf erkannt. Claude Code deaktiviert sie, wenn `ANTHROPIC_BASE_URL` auf einen Host eines Drittanbieters verweist, da die meisten Proxys `tool_reference`-Blöcke nicht weiterleiten. Setzen Sie `ENABLE_TOOL_SEARCH` explizit, um diesen Fallback zu überschreiben.

1634 1663 

1635Das Setzen von [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/env-vars) hält die Tool-Suche aus. Sie können sie nicht durch das Setzen von `ENABLE_TOOL_SEARCH` selbst überschreiben. Ihre Organisation kann die Tool-Suche durch [verwaltete Einstellungen](/docs/de/managed-settings) auf Claude Code v2.1.227 oder später aktiviert halten. [Deaktivieren Sie Pre-Release-Funktionen](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) behandelt, wo die Überschreibung gilt und was die Variable entfernt.1664Das Setzen von [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/env-vars) hält die Tool-Suche aus. Sie können sie nicht durch das Setzen von `ENABLE_TOOL_SEARCH` selbst überschreiben. Ab Claude Code v2.1.227 kann Ihre Organisation die Tool-Suche unter dieser Variablen über [verwaltete Einstellungen](/docs/de/managed-settings) aktiviert halten. In einer Sitzung, die [die HIPAA-Konfiguration erhält](/docs/de/hipaa-setup#check-how-developers-sign-in-and-connect), ist die Tool-Suche ausgeschaltet, und weder `ENABLE_TOOL_SEARCH` noch verwaltete Einstellungen schalten sie wieder ein. [Deaktivieren Sie Pre-Release-Funktionen](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) behandelt, wo die Überschreibung gilt und was die Variable entfernt.

1636 1665 

1637Die Tool-Suche erfordert ein Modell, das `tool_reference`-Blöcke unterstützt: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 und neuere Modelle. Siehe [Modellkompatibilität in der API-Dokumentation](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) für die aktuelle Liste.1666Claude Code verwendet die Tool-Suche bei Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5 und neueren Modellen bzw. bei Opus 4.5, Sonnet 4.5, Haiku 4.5 und neueren Modellen auf Googles Cloud Agent Platform. Bei früheren Modellen lädt Claude Code alle MCP-Tools vorab, und `ENABLE_TOOL_SEARCH=true` überschreibt dies nicht.

1638 1667 

1639Auf Googles Cloud Agent Platform entscheidet Claude Code nach Modellgeneration:1668Auf Googles Cloud Agent Platform entscheidet Claude Code nach Modellgeneration:

1640 1669 


1647 1676 

1648| Wert | Verhalten |1677| Wert | Verhalten |

1649| :- | :- |1678| :- | :- |

1650| (nicht gesetzt) | Alle MCP-Tools werden aufgeschoben und bei Bedarf geladen. Fallback zum Vorab-Laden auf Googles Cloud Agent Platform-Modellen älter als die Claude 4.5-Generation, wenn `ANTHROPIC_BASE_URL` ein Host eines Drittanbieters ist, oder bei einer Microsoft Foundry-Bereitstellung auf Azure |1679| (nicht gesetzt) | Alle MCP-Tools werden aufgeschoben und bei Bedarf geladen. Fallback zum Vorab-Laden bei Modellen älter als Opus 4 und Sonnet 4, auf Googles Cloud Agent Platform-Modellen älter als Opus 4.5, Sonnet 4.5 und Haiku 4.5, wenn `ANTHROPIC_BASE_URL` ein Host eines Drittanbieters ist, oder bei einer Microsoft Foundry-Bereitstellung auf Azure |

1651| `true` | Alle MCP-Tools werden aufgeschoben, außer bei einer Microsoft Foundry-Bereitstellung auf Azure, wo die serverseitige Ablehnung immer noch das Vorab-Laden erzwingt, und auf Googles Cloud Agent Platform-Modellen älter als die Claude 4.5-Generation, wo Claude Code Tools weiterhin vorab lädt. Claude Code sendet den Beta-Header durch Proxys, und Anfragen schlagen auf Proxys fehl, die `tool_reference`-Blöcke nicht unterstützen |1680| `true` | MCP-Tools bleiben aufgeschoben, wenn `ANTHROPIC_BASE_URL` ein Host eines Drittanbieters ist. Die anderen Fallbacks von (nicht gesetzt) gelten weiterhin. Claude Code sendet den Beta-Header durch Proxys, und Anfragen schlagen auf Proxys fehl, die `tool_reference`-Blöcke nicht unterstützen |

1652| `auto` | Schwellenmodus: Claude Code lädt die Tools, die es sonst aufgeschoben hätte, vorab, während ihre Definitionen weniger als 10 % des Kontextfensters ausmachen, und schiebt alle auf, sobald die Definitionen 10 % erreichen |1681| `auto` | Schwellenmodus: Claude Code lädt die Tools, die es sonst aufgeschoben hätte, vorab, während ihre Definitionen weniger als 10 % des Kontextfensters ausmachen, und schiebt alle auf, sobald die Definitionen 10 % erreichen |

1653| `auto:N` | Schwellenmodus mit einem benutzerdefinierten Prozentsatz, wobei `N` 0-100 ist. Zum Beispiel `auto:5` für 5 % |1682| `auto:N` | Schwellenmodus mit einem benutzerdefinierten Prozentsatz, wobei `N` 0-100 ist. Zum Beispiel `auto:5` für 5 % |

1654| `false` | Alle MCP-Tools werden vorab geladen, kein Aufschub |1683| `false` | Alle MCP-Tools werden vorab geladen, kein Aufschub |

memory.md +3 −3

Details

258 258 

259Claude Code verwendet jedes Muster, das das Budget unerweitert überschreiten würde, und seine literalen Klammern passen zu keinen Dateien. Vor v2.1.217 brachte ein `paths`-Wert mit vielen Klammer-Gruppen die CLI beim Start zum Stillstand oder zum Absturz.259Claude Code verwendet jedes Muster, das das Budget unerweitert überschreiten würde, und seine literalen Klammern passen zu keinen Dateien. Vor v2.1.217 brachte ein `paths`-Wert mit vielen Klammer-Gruppen die CLI beim Start zum Stillstand oder zum Absturz.

260 260 

261Die Glob-Syntax behandelt `[` als den Anfang eines Klammer-Ausdrucks wie `[abc]`. Ein Muster mit einem `[`, das nicht als Klammer-Ausdruck gelesen werden kann, wie `photos [2024/**`, ist ungültig: es passt zu nichts, und die anderen Muster der Regel funktionieren weiterhin. Um ein literales `[` in einem Dateinamen zu vergleichen, maskieren Sie es als `photos \[2024/**`. Vor v2.1.207 machte ein ungültiges Muster das Read-Tool für jede Datei fehlschlagen, gegen die die Regel bewertet wurde, statt zu nichts zu passen.261Die Glob-Syntax behandelt `[` als den Anfang eines Klammer-Ausdrucks wie `[abc]`. Ein Muster mit einem `[`, das nicht als Klammer-Ausdruck gelesen werden kann, wie `photos [2024/**`, ist ungültig: es passt zu nichts, und die anderen Muster der Regel funktionieren weiterhin. Um ein literales `[` in einem Dateinamen zu vergleichen, maskieren Sie es als `photos \[2024/**`.

262 262 

263<h4 id="rules-frontmatter-reference">263<h4 id="rules-frontmatter-reference">

264 Regel-Frontmatter-Referenz264 Regel-Frontmatter-Referenz


413 413 

414* **Beim Sitzungsstart**: jede `AGENTS.md` und `.claude/AGENTS.md` in Ihrem Arbeitsverzeichnis und den Verzeichnissen darüber. In einer interaktiven Sitzung sehen Sie eine Zeile wie `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` in der Konversation414* **Beim Sitzungsstart**: jede `AGENTS.md` und `.claude/AGENTS.md` in Ihrem Arbeitsverzeichnis und den Verzeichnissen darüber. In einer interaktiven Sitzung sehen Sie eine Zeile wie `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` in der Konversation

415* **Wenn Claude in Unterverzeichnissen arbeitet**: eine `AGENTS.md` eines Unterverzeichnisses, wenn Claude dort eine Datei mit dem Read-Tool öffnet und dieses Unterverzeichnis keine der drei `CLAUDE.md`-Dateien selbst hat415* **Wenn Claude in Unterverzeichnissen arbeitet**: eine `AGENTS.md` eines Unterverzeichnisses, wenn Claude dort eine Datei mit dem Read-Tool öffnet und dieses Unterverzeichnis keine der drei `CLAUDE.md`-Dateien selbst hat

416* **Innerhalb jeder `AGENTS.md`**: [`@path`-Importe](#import-additional-files) werden erweitert, [`claudeMdExcludes`](#exclude-specific-claude-md-files)-Muster gelten, und Subagenten, die [Projektanweisungen überspringen](/docs/de/sub-agents#what-loads-at-startup), überspringen diese Dateien auch416* **Innerhalb jeder `AGENTS.md`**: [`@path`-Importe](#import-additional-files) werden erweitert, [`claudeMdExcludes`](#exclude-specific-claude-md-files)-Muster gelten, und Subagenten, die [ohne Projektanweisungen starten](/docs/de/sub-agents#what-loads-at-startup), starten auch ohne diese Dateien

417* **Nicht gelesen**: `AGENTS.local.md`, `AGENTS.override.md` oder alles unter einem `.agents/`-Verzeichnis417* **Nicht gelesen**: `AGENTS.local.md`, `AGENTS.override.md` oder alles unter einem `.agents/`-Verzeichnis

418 418 

419<Note>419<Note>


692 692 

693Wenn eine Ihrer Anweisungsdateien länger als die empfohlene Länge ist, sehen Sie beim Start und wenn Sie `/status` ausführen eine Warnung. Sie sehen auch eine Warnung, wenn Dateien, die jeweils innerhalb dieser Länge liegen, zusammen eine kombinierte Grenze beim Sitzungsstart überschreiten. Jede CLAUDE.md, Regeldatei und `@path`-Import zählt als separate Datei.693Wenn eine Ihrer Anweisungsdateien länger als die empfohlene Länge ist, sehen Sie beim Start und wenn Sie `/status` ausführen eine Warnung. Sie sehen auch eine Warnung, wenn Dateien, die jeweils innerhalb dieser Länge liegen, zusammen eine kombinierte Grenze beim Sitzungsstart überschreiten. Jede CLAUDE.md, Regeldatei und `@path`-Import zählt als separate Datei.

694 694 

695Die [`/doctor`](/docs/de/commands#all-commands)-Überprüfung schlägt Kürzungen für eine eingecheckte CLAUDE.md vor: Sie entfernt Inhalte, die Claude aus der Codebasis ableiten kann, wie Verzeichnislayouts, Abhängigkeitslisten und Architekturübersichten, und behält Fallstricke, Begründungen und Konventionen, die sich von Tool-Standardwerten unterscheiden. Die Trim-Überprüfung erfordert Claude Code v2.1.206 oder später.695Die [`/doctor`](/docs/de/commands#all-commands)-Überprüfung schlägt Kürzungen für eine eingecheckte CLAUDE.md vor: Sie entfernt Inhalte, die Claude aus der Codebasis ableiten kann, wie Verzeichnislayouts, Abhängigkeitslisten und Architekturübersichten, und behält Fallstricke, Begründungen und Konventionen, die sich von Tool-Standardwerten unterscheiden.

696 696 

697<h3 id="instructions-seem-lost-after-/compact">697<h3 id="instructions-seem-lost-after-/compact">

698 Anweisungen scheinen nach `/compact` verloren zu gehen698 Anweisungen scheinen nach `/compact` verloren zu gehen

Details

160 Bearer-Token verwenden160 Bearer-Token verwenden

161</h4>161</h4>

162 162 

163Claude Code sendet den Wert von `ANTHROPIC_FOUNDRY_AUTH_TOKEN` bei jeder Anfrage als `Authorization: Bearer`-Header. Verwenden Sie diese Option, wenn ein anderer Prozess, z. B. eine Host-Anwendung oder ein Anmeldeskript, bereits ein Zugriffstoken für Sie erhalten hat. Erfordert Claude Code v2.1.203 oder später.163Claude Code sendet den Wert von `ANTHROPIC_FOUNDRY_AUTH_TOKEN` bei jeder Anfrage als `Authorization: Bearer`-Header. Verwenden Sie diese Option, wenn ein anderer Prozess, z. B. eine Host-Anwendung oder ein Anmeldeskript, bereits ein Zugriffstoken für Sie erhalten hat.

164 164 

165Legen Sie die Variable auf ein Bearer-Token fest, das Microsoft Entra ID für Ihre Ressource ausgestellt hat:165Legen Sie die Variable auf ein Bearer-Token fest, das Microsoft Entra ID für Ihre Ressource ausgestellt hat:

166 166 

model-config.md +3 −0

Details

867* **Für jedes Modell**: Setzen Sie [`autoCompactWindow`](/docs/de/settings-reference#autocompactwindow) in einer Einstellungsdatei, z. B. `"autoCompactWindow": 200000` in `~/.claude/settings.json`. Ein Fenster, das Sie mit `/autocompact` für ein Modell gespeichert haben, hat für dieses Modell Vorrang vor diesem Schlüssel in derselben Datei.867* **Für jedes Modell**: Setzen Sie [`autoCompactWindow`](/docs/de/settings-reference#autocompactwindow) in einer Einstellungsdatei, z. B. `"autoCompactWindow": 200000` in `~/.claude/settings.json`. Ein Fenster, das Sie mit `/autocompact` für ein Modell gespeichert haben, hat für dieses Modell Vorrang vor diesem Schlüssel in derselben Datei.

868* **Für einen Start**: Übergeben Sie [`--autocompact`](/docs/de/cli-reference#cli-flags) beim Starten von Claude Code. Das Flag überschreibt Ihre gespeicherte Einstellung für diesen Start, ohne sie zu ändern, und `claude --autocompact auto` führt die Sitzung mit dem optimierten Fenster aus, auch wenn Ihre gespeicherte Einstellung einen Wert hat. Im Gegensatz zu `/autocompact` wird das Flag nicht durch einen höher priorisierten Geltungsbereich für Einstellungen wie verwaltete Einstellungen verdrängt.868* **Für einen Start**: Übergeben Sie [`--autocompact`](/docs/de/cli-reference#cli-flags) beim Starten von Claude Code. Das Flag überschreibt Ihre gespeicherte Einstellung für diesen Start, ohne sie zu ändern, und `claude --autocompact auto` führt die Sitzung mit dem optimierten Fenster aus, auch wenn Ihre gespeicherte Einstellung einen Wert hat. Im Gegensatz zu `/autocompact` wird das Flag nicht durch einen höher priorisierten Geltungsbereich für Einstellungen wie verwaltete Einstellungen verdrängt.

869* **In Skripten und Cloud-Umgebungen**: Setzen Sie [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/de/env-vars). Während es gesetzt ist, hat es Vorrang vor dem Befehl, dem Flag und der Einstellung, und `/autocompact` meldet die Überschreibung, anstatt das Fenster zu ändern.869* **In Skripten und Cloud-Umgebungen**: Setzen Sie [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/de/env-vars). Während es gesetzt ist, hat es Vorrang vor dem Befehl, dem Flag und der Einstellung, und `/autocompact` meldet die Überschreibung, anstatt das Fenster zu ändern.

870* **Für einen Subagenten**: Siehe [Fenster für automatische Komprimierung für einen Subagenten einstellen](/docs/de/sub-agents#subagent-auto-compact-window).

870 871 

871Der Befehl und das Flag akzeptieren eine Fenstergröße von 100K bis 1M Token in einer dieser Formen:872Der Befehl und das Flag akzeptieren eine Fenstergröße von 100K bis 1M Token in einer dieser Formen:

872 873 


888* Modelle, die mit einem nativen 1M-Fenster laufen, komprimieren, bevor das Fenster voll wird, standardmäßig bei etwa 967K Token. Dazu gehören die Fable-Modelle, Sonnet 5 und später, Haiku 5.5 sowie Opus 4.7 und später. Hinter einer benutzerdefinierten `ANTHROPIC_BASE_URL` siehe [das Kontextfenster hinter einem Gateway](#context-window-behind-a-gateway)889* Modelle, die mit einem nativen 1M-Fenster laufen, komprimieren, bevor das Fenster voll wird, standardmäßig bei etwa 967K Token. Dazu gehören die Fable-Modelle, Sonnet 5 und später, Haiku 5.5 sowie Opus 4.7 und später. Hinter einer benutzerdefinierten `ANTHROPIC_BASE_URL` siehe [das Kontextfenster hinter einem Gateway](#context-window-behind-a-gateway)

889* 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)890* 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)

890 891 

892Unter der Einstellung [`idleCompaction`](/docs/de/settings-reference#idlecompaction) erfahren Sie, wann Claude Code außerdem eine Konversation komprimiert, die Sie im Leerlauf lassen.

893 

891<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">894<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

892 Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren895 Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren

893</h3>896</h3>

Details

641 641 

642* `prompt.id`: UUID, die eine Benutzereingabeaufforderung mit allen nachfolgenden Ereignissen bis zur nächsten Eingabeaufforderung korreliert. Siehe [Ereigniskorrelationsattribute](#event-correlation-attributes).642* `prompt.id`: UUID, die eine Benutzereingabeaufforderung mit allen nachfolgenden Ereignissen bis zur nächsten Eingabeaufforderung korreliert. Siehe [Ereigniskorrelationsattribute](#event-correlation-attributes).

643* `workspace.host_paths`: Host-Arbeitsverzeichnisse, die in der Desktop-App ausgewählt wurden, als String-Array643* `workspace.host_paths`: Host-Arbeitsverzeichnisse, die in der Desktop-App ausgewählt wurden, als String-Array

644* `workflow.run_id`: Laufkennung mit dem Präfix `wf_` auf der API und Tool-Ereignisse, die von Agenten ausgegeben werden, die zu einem [Workflow](/docs/de/workflows)-Tool-Lauf gehören. Das Filtern von Ereignissen nach einer `workflow.run_id` rekonstruiert die API-Anfragen und Tool-Ergebnisse dieses Laufs. Die Kennung umfasst die Agenten, die das Workflow-Skript erzeugt, und alle Agenten, die diese wiederum erzeugen, z. B. Skill-Aufrufe. Sie entspricht der Laufkennung, die im Workflow-Tool-Ergebnis gemeldet wird. Fehlt bei allen anderen Ereignissen. Erfordert Claude Code v2.1.202 oder später644* `workflow.run_id`: Ausführungskennung mit dem Präfix `wf_`, bei den API- und Tool-Ereignissen, die von Agenten ausgegeben werden, die zu einer Ausführung des [Workflow](/docs/de/workflows)-Tools gehören. Wenn Sie Ereignisse nach einer `workflow.run_id` filtern, lassen sich die API-Anfragen und Tool-Ergebnisse dieser Ausführung rekonstruieren. Die Kennung umfasst die Agenten, die das Workflow-Skript startet, sowie alle Agenten, die diese wiederum starten, etwa Skill-Aufrufe. Sie entspricht der Ausführungskennung, die im Ergebnis des Workflow-Tools gemeldet wird. Fehlt bei allen anderen Ereignissen.

645* `workflow.name`: Name des Workflows, das `meta.name` des Skripts, ausgegeben zusammen mit `workflow.run_id`. Integrierte Workflow-Namen werden wörtlich angezeigt, wenn der Lauf das unveränderte integrierte Skript ausführt. Benutzerdefinierte Namen, einschließlich bearbeiteter Kopien integrierter Skripte, werden durch `custom` ersetzt, es sei denn, `OTEL_LOG_TOOL_DETAILS=1` ist gesetzt. Erfordert Claude Code v2.1.202 oder später645* `workflow.name`: Name des Workflows, also `meta.name` seines Skripts, ausgegeben zusammen mit `workflow.run_id`. Namen integrierter Workflows erscheinen unverändert, wenn die Ausführung das unveränderte integrierte Skript verwendet. Von Benutzern verfasste Namen, einschließlich bearbeiteter Kopien integrierter Skripte, werden durch `custom` ersetzt, sofern nicht `OTEL_LOG_TOOL_DETAILS=1` gesetzt ist.

646 646 

647<h4 id="repository-attributes">647<h4 id="repository-attributes">

648 Repository-Attribute648 Repository-Attribute


1075 Berechtigungsmodus-Änderungs-Ereignis1075 Berechtigungsmodus-Änderungs-Ereignis

1076</h4>1076</h4>

1077 1077 

1078Protokolliert, wenn sich der Berechtigungsmodus ändert, z. B. durch Shift+Tab-Zyklus, Beendigung des Plan-Modus oder eine Auto-Modus-Gate-Prüfung.1078Wird protokolliert, wenn sich der Berechtigungsmodus ändert, zum Beispiel durch Durchschalten mit `Shift+Tab`, durch Verlassen des Plan-Modus oder durch eine Gate-Prüfung des Auto-Modus.

1079 1079 

1080**Ereignisname**: `claude_code.permission_mode_changed`1080**Ereignisname**: `claude_code.permission_mode_changed`

1081 1081 


1374* `pre_tokens`: Ungefähre Token-Anzahl vor Kompaktierung1374* `pre_tokens`: Ungefähre Token-Anzahl vor Kompaktierung

1375* `post_tokens`: Ungefähre Token-Anzahl nach Kompaktierung1375* `post_tokens`: Ungefähre Token-Anzahl nach Kompaktierung

1376* `error`: Fehlermeldung, wenn Kompaktierung fehlgeschlagen ist1376* `error`: Fehlermeldung, wenn Kompaktierung fehlgeschlagen ist

1377* `precompute_reuse`: Nur gesetzt, wenn `trigger` `"manual"` ist. Die automatische Komprimierung kann im Hintergrund eine Zusammenfassung vorbereiten, bevor sich das Kontextfenster füllt, und dieses Attribut erfasst, ob `/compact` diese vorbereitete Zusammenfassung wiederverwendet hat. `"hit"` bedeutet, dass sie wiederverwendet wurde; `"miss_custom_instructions"`, `"miss_hook"` und `"miss_not_ready"` geben den Grund an, warum stattdessen eine neue Zusammenfassung berechnet wurde1377* `precompute_reuse`: Nur gesetzt, wenn `trigger` `"manual"` ist, oder bei einer [Leerlauf-Komprimierung](/docs/de/settings-reference#idlecompaction), die `trigger` als `"auto"` meldet. Die automatische Komprimierung kann im Hintergrund eine Zusammenfassung vorbereiten, bevor sich das Kontextfenster füllt, und dieses Attribut erfasst, ob die Komprimierung diese vorbereitete Zusammenfassung wiederverwendet hat. `"hit"` bedeutet, dass sie wiederverwendet wurde; `"miss_custom_instructions"`, `"miss_hook"` und `"miss_not_ready"` geben den Grund an, warum stattdessen eine neue Zusammenfassung berechnet wurde

1378 1378 

1379<h4 id="subagent-completed-event">1379<h4 id="subagent-completed-event">

1380 Subagent-Abschluss-Ereignis1380 Subagent-Abschluss-Ereignis

Details

209| :- | :- | :- | :- |209| :- | :- | :- | :- |

210| First-Byte-Frist | Keine Antwortheader kommen an, nachdem Claude Code die Anfrage sendet | Direkte Anthropic-API und [Claude Platform on AWS](/docs/de/claude-platform-on-aws), einschließlich durch einen HTTPS-Proxy, aber nicht, wenn `ANTHROPIC_BASE_URL` oder `ANTHROPIC_AWS_BASE_URL` sie durch ein [Gateway](/docs/de/gateways) leiten. Opt-in auf Amazon Bedrock mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; läuft nicht auf Google Cloud's Agent Platform oder Microsoft Foundry | 180 Sekunden auf der direkten Anthropic-API, 300 Sekunden anderswo, plus eine Sekunde pro 32 KB Anfragekörper |210| First-Byte-Frist | Keine Antwortheader kommen an, nachdem Claude Code die Anfrage sendet | Direkte Anthropic-API und [Claude Platform on AWS](/docs/de/claude-platform-on-aws), einschließlich durch einen HTTPS-Proxy, aber nicht, wenn `ANTHROPIC_BASE_URL` oder `ANTHROPIC_AWS_BASE_URL` sie durch ein [Gateway](/docs/de/gateways) leiten. Opt-in auf Amazon Bedrock mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; läuft nicht auf Google Cloud's Agent Platform oder Microsoft Foundry | 180 Sekunden auf der direkten Anthropic-API, 300 Sekunden anderswo, plus eine Sekunde pro 32 KB Anfragekörper |

211| Event-Level-Watchdog | Keine Antwortereignisse werden analysiert. Bei Verbindungen, bei denen der Byte-Level-Watchdog läuft, setzen ankommende Bytes, einschließlich Keep-Alive-Pings, auch diesen Watchdog zurück, für bis zu etwa fünf Minuten ohne ein analysiertes Ereignis | Jeder Anbieter | 300 Sekunden |211| Event-Level-Watchdog | Keine Antwortereignisse werden analysiert. Bei Verbindungen, bei denen der Byte-Level-Watchdog läuft, setzen ankommende Bytes, einschließlich Keep-Alive-Pings, auch diesen Watchdog zurück, für bis zu etwa fünf Minuten ohne ein analysiertes Ereignis | Jeder Anbieter | 300 Sekunden |

212| Byte-Level-Watchdog | Keine Bytes kommen auf der Leitung an, einschließlich SSE-Keep-Alive-Pings | Direkte Anthropic-API, [Claude Platform on AWS](/docs/de/claude-platform-on-aws), und [Gateway](/docs/de/gateways)-Verbindungen, einschließlich einer benutzerdefinierten `ANTHROPIC_BASE_URL`. Opt-in auf Amazon Bedrock `vnd.amazon.eventstream`-Antworten mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; läuft nicht auf Google Cloud's Agent Platform oder Microsoft Foundry | 180 Sekunden auf der direkten Anthropic-API. Über eine benutzerdefinierte `ANTHROPIC_BASE_URL` 180 Sekunden, wenn Claude Code [Feature-Flags abgerufen hat](/docs/de/env-vars#features-that-need-feature-flag-fetching), und 300 Sekunden, wenn nicht. 300 Sekunden anderswo |212| Byte-Level-Watchdog | Keine Bytes kommen auf der Leitung an, einschließlich SSE-Keep-Alive-Pings | Direkte Anthropic-API, [Claude Platform on AWS](/docs/de/claude-platform-on-aws) und [Gateway](/docs/de/gateways)-Verbindungen, einschließlich einer benutzerdefinierten `ANTHROPIC_BASE_URL`. Opt-in auf Amazon Bedrock `vnd.amazon.eventstream`-Antworten mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; läuft nicht auf Google Cloud's Agent Platform oder Microsoft Foundry | 180 Sekunden auf der direkten Anthropic-API. 300 Sekunden auf Claude Platform on AWS, auf Amazon Bedrock, in einer [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzung und über eine benutzerdefinierte `ANTHROPIC_BASE_URL` |

213| Body-Idle-Timeout | Keine Bytes kommen für 5 Minuten an | Anbieter außer der direkten Anthropic-API, Claude Platform on AWS und Amazon Bedrock mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` gesetzt, es sei denn, [`API_FORCE_IDLE_TIMEOUT`](/docs/de/env-vars) ändert das | 5 Minuten |213| Body-Idle-Timeout | Keine Bytes kommen für 5 Minuten an | Anbieter außer der direkten Anthropic-API, Claude Platform on AWS und Amazon Bedrock mit `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` gesetzt, es sei denn, [`API_FORCE_IDLE_TIMEOUT`](/docs/de/env-vars) ändert das | 5 Minuten |

214 214 

215Wenn Sie `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` setzen, ersetzt der Byte-Level-Watchdog das Body-Idle-Timeout auf Bedrock, anstatt neben ihm zu laufen. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` regelt dann auch, wie lange ein Bedrock-Stream stille bleiben darf, bevor Claude Code die Verbindung als unterbrochen behandelt, innerhalb der unten aufgelisteten Grenzen. Ankommende Bytes setzen den Event-Level-Watchdog auf Bedrock immer noch nicht zurück. Mit Debug-Logging aktiviert, protokolliert dann jeder Bedrock-Stream eine Debug-Nachricht, die mit `wire-heartbeat: _chunkTimes absent` beginnt.215Wenn Sie `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` setzen, ersetzt der Byte-Level-Watchdog das Body-Idle-Timeout auf Bedrock, anstatt neben ihm zu laufen. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` regelt dann auch, wie lange ein Bedrock-Stream stille bleiben darf, bevor Claude Code die Verbindung als unterbrochen behandelt, innerhalb der unten aufgelisteten Grenzen. Ankommende Bytes setzen den Event-Level-Watchdog auf Bedrock immer noch nicht zurück. Mit Debug-Logging aktiviert, protokolliert dann jeder Bedrock-Stream eine Debug-Nachricht, die mit `wire-heartbeat: _chunkTimes absent` beginnt.

Details

239 * **[Remote Control](/docs/de/remote-control)-Sitzungen** auf Ihrem lokalen Computer: Manual, Bearbeitungen akzeptieren, Plan und Auto für eine Sitzung, die Sie selbst gestartet haben, und Sie können Bypass permissions nicht aus der App auswählen. Um Auto zu verwenden, muss die Sitzung die [Verfügbarkeitsanforderungen](#eliminate-prompts-with-auto-mode) des Auto-Modus erfüllen. Für einen Projekt-Thread, der auf Ihrem Computer läuft, siehe [Führen Sie einen Thread auf Ihrem eigenen Computer aus](/docs/de/claude-projects#run-a-thread-on-your-own-computer).239 * **[Remote Control](/docs/de/remote-control)-Sitzungen** auf Ihrem lokalen Computer: Manual, Bearbeitungen akzeptieren, Plan und Auto für eine Sitzung, die Sie selbst gestartet haben, und Sie können Bypass permissions nicht aus der App auswählen. Um Auto zu verwenden, muss die Sitzung die [Verfügbarkeitsanforderungen](#eliminate-prompts-with-auto-mode) des Auto-Modus erfüllen. Für einen Projekt-Thread, der auf Ihrem Computer läuft, siehe [Führen Sie einen Thread auf Ihrem eigenen Computer aus](/docs/de/claude-projects#run-a-thread-on-your-own-computer).

240 * Außer für Bypass permissions zeigt das Menü den Berechtigungsmodus an, in dem sich die lokale Sitzung befindet, einschließlich eines vom Terminal aus festgelegten Modus. Es wird aktualisiert, wenn sich der Berechtigungsmodus in der App oder im Terminal ändert.240 * Außer für Bypass permissions zeigt das Menü den Berechtigungsmodus an, in dem sich die lokale Sitzung befindet, einschließlich eines vom Terminal aus festgelegten Modus. Es wird aktualisiert, wenn sich der Berechtigungsmodus in der App oder im Terminal ändert.

241 * Sitzungen, die von der [Desktop-App](/docs/de/desktop) oder der [VS Code-Erweiterung](/docs/de/vs-code) gehostet werden, melden Berechtigungsmodus-Änderungen an claude.ai, während sie passieren, genauso wie Sitzungen, die in einem Terminal gehostet werden.241 * Sitzungen, die von der [Desktop-App](/docs/de/desktop) oder der [VS Code-Erweiterung](/docs/de/vs-code) gehostet werden, melden Berechtigungsmodus-Änderungen an claude.ai, während sie passieren, genauso wie Sitzungen, die in einem Terminal gehostet werden.

242 * Vor v2.1.202 meldeten Sitzungen, die mit `/remote-control` oder `claude --remote-control` verbunden waren, ihren Berechtigungsmodus überhaupt nicht, daher konnten claude.ai und die mobile App einen Berechtigungsmodus anzeigen, in dem sich die Sitzung nicht befand. Die Nichtübereinstimmung betraf nur die Beschriftung. Claude Code generierte Berechtigungsabfragen aus dem tatsächlichen Berechtigungsmodus der Sitzung, und sie wurden weiterhin in der App zur Genehmigung angezeigt.

243 242 

244 Für Remote Control muss der lokale Computer, auf dem die Sitzung läuft, mit Ihrem claude.ai-Konto angemeldet sein; API-Schlüssel werden nicht unterstützt. Sie können auch den Standard-Berechtigungsmodus beim Start dieser lokalen Sitzung festlegen:243 Für Remote Control muss der lokale Computer, auf dem die Sitzung läuft, mit Ihrem claude.ai-Konto angemeldet sein; API-Schlüssel werden nicht unterstützt. Sie können auch den Standard-Berechtigungsmodus beim Start dieser lokalen Sitzung festlegen:

245 244 


352 351 

353Um Entwickler daran zu hindern, den Auto-Modus zu verwenden, setzen Sie `disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"`. Dies entfernt `auto` aus dem `Shift+Tab`-Zyklus, und eine Sitzung, die mit `--permission-mode auto` gestartet wird, startet stattdessen im Manual-Modus. Eine bereits im Auto-Modus laufende Sitzung verlässt ihn, wenn die Einstellung diese Sitzung aus einer [von Administratoren bereitgestellten Quelle](/docs/de/managed-settings#which-managed-source-claude-code-uses) erreicht, und zeigt `auto mode disabled by settings`. Vor v2.1.251 behielt eine laufende Sitzung den Auto-Modus bis zu ihrem Ende.352Um Entwickler daran zu hindern, den Auto-Modus zu verwenden, setzen Sie `disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"`. Dies entfernt `auto` aus dem `Shift+Tab`-Zyklus, und eine Sitzung, die mit `--permission-mode auto` gestartet wird, startet stattdessen im Manual-Modus. Eine bereits im Auto-Modus laufende Sitzung verlässt ihn, wenn die Einstellung diese Sitzung aus einer [von Administratoren bereitgestellten Quelle](/docs/de/managed-settings#which-managed-source-claude-code-uses) erreicht, und zeigt `auto mode disabled by settings`. Vor v2.1.251 behielt eine laufende Sitzung den Auto-Modus bis zu ihrem Ende.

354 353 

355In v2.1.158 bis v2.1.206 war der Auto-Modus auf diesen Anbietern aus, bis Sie `CLAUDE_CODE_ENABLE_AUTO_MODE=1` setzten, und Claude Code ignorierte `defaultMode: "auto"` auf diesen Anbietern, es sei denn, die Variable war ebenfalls gesetzt. Die Variable wird aus Kompatibilitätsgründen weiterhin akzeptiert und hat ab v2.1.207 keine Auswirkung.

356 

357<h3 id="server-side-classifier-review">354<h3 id="server-side-classifier-review">

358 Serverseitige Klassifikatorüberprüfung355 Serverseitige Klassifikatorüberprüfung

359</h3>356</h3>


408* Starten einer autonomen Agentenschleife, die ohne menschliche Genehmigung oder Sandbox läuft, etwa einer mit `--dangerously-skip-permissions` oder `--no-sandbox` gestarteten. Dies umfasst das Ausführen eines Drittanbieter-Agenten oder Eval-Harness mit deaktivierter Isolation und deaktivierter Genehmigung pro Aktion, etwa eines mit `--yes-always` gestarteten Runners405* Starten einer autonomen Agentenschleife, die ohne menschliche Genehmigung oder Sandbox läuft, etwa einer mit `--dangerously-skip-permissions` oder `--no-sandbox` gestarteten. Dies umfasst das Ausführen eines Drittanbieter-Agenten oder Eval-Harness mit deaktivierter Isolation und deaktivierter Genehmigung pro Aktion, etwa eines mit `--yes-always` gestarteten Runners

409* Browser-Aktionen von [Claude in Chrome](/docs/de/chrome), die Seiteninhalte, Cookies oder Anmeldedaten an einen anderen Origin senden könnten406* Browser-Aktionen von [Claude in Chrome](/docs/de/chrome), die Seiteninhalte, Cookies oder Anmeldedaten an einen anderen Origin senden könnten

410* Löschen von Dateien in `/tmp`, `$TMPDIR` oder einem anderen gemeinsam genutzten Scratch- oder Cache-Verzeichnis per Wildcard, Glob oder Altersfilter statt über einen konkret benannten Pfad407* Löschen von Dateien in `/tmp`, `$TMPDIR` oder einem anderen gemeinsam genutzten Scratch- oder Cache-Verzeichnis per Wildcard, Glob oder Altersfilter statt über einen konkret benannten Pfad

411* Einbeziehen sensibler Details in Inhalte, die an andere Personen oder gemeinsam genutzte Systeme gesendet, hochgeladen, veröffentlicht oder geschrieben werden, wenn Ihre eigene Nachricht diese Details für diesen Empfänger nicht autorisiert hat. PR- und Issue-Texte, Commit-Nachrichten und Kommentare zählen als diese Art von ausgehendem Inhalt, wenn das Repository außerhalb der Vertrauensgrenze liegt oder öffentlich ist, einschließlich der eigenen öffentlichen Repositorys Ihrer Organisation; interne Dateipfade, Codenamen, Live-Daten aus API-Antworten wie E-Mails oder Kontokennungen sowie Infrastrukturkennungen zählen als sensible Details. Live-Personendaten aus einer API-Antwort in einem PR- oder Issue-Text, wie eine E-Mail-Adresse, eine Konto- oder Organisationskennung oder eine Nutzungsmetrik, erfordern, dass Sie diese Details und den Empfänger benennen, unabhängig von der Sichtbarkeit oder Vertrauensgrenze des Repositorys. Diese Prüfung erfordert Claude Code v2.1.203 oder später408* Einbeziehen sensibler Details in Inhalte, die an andere Personen oder gemeinsam genutzte Systeme gesendet, hochgeladen, veröffentlicht oder geschrieben werden, wenn Ihre eigene Nachricht diese Details für diesen Empfänger nicht autorisiert hat. PR- und Issue-Texte, Commit-Nachrichten und Kommentare zählen als diese Art von ausgehendem Inhalt, wenn das Repository außerhalb der Vertrauensgrenze liegt oder öffentlich ist, einschließlich der eigenen öffentlichen Repositorys Ihrer Organisation; interne Dateipfade, Codenamen, Live-Daten aus API-Antworten wie E-Mails oder Kontokennungen sowie Infrastrukturkennungen zählen als sensible Details. Live-Personendaten aus einer API-Antwort in einem PR- oder Issue-Text, wie eine E-Mail-Adresse, eine Konto- oder Organisationskennung oder eine Nutzungsmetrik, erfordern, dass Sie diese Details und den Empfänger benennen, unabhängig von der Sichtbarkeit oder Vertrauensgrenze des Repositorys

412* Senden von Tastenanschlägen an den eigenen tmux-Bereich von Claude Code, um dessen eigene Oberfläche zu steuern, was der Klassifikator so behandelt, als würde Claude seine eigenen Berechtigungen oder seine eigene Aufsicht ändern409* Senden von Tastenanschlägen an den eigenen tmux-Bereich von Claude Code, um dessen eigene Oberfläche zu steuern, was der Klassifikator so behandelt, als würde Claude seine eigenen Berechtigungen oder seine eigene Aufsicht ändern

413* Auskommentieren, Löschen oder erzwungenes Bestehen eines Tests oder einer Assertion, die Sicherheitsverhalten absichert, wie Authentifizierung, Zugriffskontrolle, Eingabevalidierung oder Sandboxing410* Auskommentieren, Löschen oder erzwungenes Bestehen eines Tests oder einer Assertion, die Sicherheitsverhalten absichert, wie Authentifizierung, Zugriffskontrolle, Eingabevalidierung oder Sandboxing

414* Löschen oder Abbauen einer zustandsbehafteten Ressource, die Claude nicht in der Sitzung erstellt hat, wenn keine spezifischere Löschregel greift und Sie diese Ressource nicht benannt haben411* Löschen oder Abbauen einer zustandsbehafteten Ressource, die Claude nicht in der Sitzung erstellt hat, wenn keine spezifischere Löschregel greift und Sie diese Ressource nicht benannt haben

415* Umleiten einer API-Basis-URL, eines Proxy-Endpunkts, eines Webhook-Empfängers oder eines Registry-Mirrors auf einen Drittanbieter-Host, der nicht zur Aufgabe passt, auch in Beispieldateien wie `.env.example`412* Umleiten einer API-Basis-URL, eines Proxy-Endpunkts, eines Webhook-Empfängers oder eines Registry-Mirrors auf einen Drittanbieter-Host, der nicht zur Aufgabe passt, auch in Beispieldateien wie `.env.example`

416* Ändern, wohin Pushes gehen, mit `git remote set-url` oder `git remote add`, es sei denn, Sie haben das neue Remote benannt413* Ändern, wohin Pushes gehen, mit `git remote set-url` oder `git remote add`, es sei denn, Sie haben das neue Remote benannt

417* Pushen von Geheimnissen oder persönlichen oder anvertrauten Daten in ein Repository, das bekanntermaßen öffentlich ist, oder Pushen von vertraulichem Material dorthin, das nicht zur eigenen Arbeit dieses Repositorys gehört. Der eigene Gegenstand eines Dotfiles-Repositorys ist die einzige Ausnahme für persönliche oder anvertraute Daten, und Inhalte aus einem privaten Repository, die eine beliebige öffentliche Oberfläche erreichen, werden auf die gleiche Weise blockiert; beide Verfeinerungen erfordern Claude Code v2.1.203 oder später. Vor v2.1.203 wurden persönliche Daten zusammen mit vertraulichem Material behandelt und nur blockiert, wenn sie nicht zur eigenen Arbeit dieses Repositorys gehörten. Wenn die Sichtbarkeit eines Repositorys nicht feststeht, blockiert der Klassifikator nicht allein deswegen; er beurteilt den Inhalt stattdessen anhand der anderen Regeln414* Pushen von Geheimnissen oder persönlichen oder anvertrauten Daten in ein Repository, das bekanntermaßen öffentlich ist, oder Pushen von vertraulichem Material dorthin, das nicht zur eigenen Arbeit dieses Repositorys gehört. Der eigene Gegenstand eines Dotfiles-Repositorys ist die einzige Ausnahme für persönliche oder anvertraute Daten, und Inhalte aus einem privaten Repository, die eine beliebige öffentliche Oberfläche erreichen, werden auf die gleiche Weise blockiert. Wenn die Sichtbarkeit eines Repositorys nicht feststeht, blockiert der Klassifikator nicht allein deswegen; er beurteilt den Inhalt stattdessen anhand der anderen Regeln

418* Öffnen eines Pull Requests gegen ein anderes Repository oder eine andere Organisation, Forken mit `gh repo fork` oder Pushen in ein Drittanbieter-Repository, es sei denn, Sie haben dieses externe Ziel benannt415* Öffnen eines Pull Requests gegen ein anderes Repository oder eine andere Organisation, Forken mit `gh repo fork` oder Pushen in ein Drittanbieter-Repository, es sei denn, Sie haben dieses externe Ziel benannt

419 

420Mehrere dieser Kategorien hängen von [Umgebungs](/docs/de/auto-mode-config#define-trusted-infrastructure)-Einträgen ab, etwa sensiblen Remote-Zielen und geschützten IaC-Bereichen, die Sie auf konkrete Namen eingrenzen können.

421 

422Claude Code v2.1.203 und später blockieren standardmäßig zusätzlich:

423 

424* Inhalte aus einem sensiblen lokalen Speicher oder aus einer Datei, deren Name, Pfad oder Typ sie als sensibel kennzeichnet, die in einen Commit, einen Push, einen PR- oder Issue-Text, einen Gist oder Paste oder eine Paketveröffentlichung gelangen, es sei denn, Sie haben sowohl die Quelle als auch das Ziel benannt. Sitzungstranskripte und Konversations-Logs, Punkt-Ordner mit Anmeldedaten und Konfiguration wie SSH-Schlüssel, Cloud-Anmeldedaten, Browser-Profile und Shell-Verlauf sowie Exporte von Benutzerdaten zählen alle dazu, und dass das Repository privat ist, hebt die Blockierung nicht auf416* Inhalte aus einem sensiblen lokalen Speicher oder aus einer Datei, deren Name, Pfad oder Typ sie als sensibel kennzeichnet, die in einen Commit, einen Push, einen PR- oder Issue-Text, einen Gist oder Paste oder eine Paketveröffentlichung gelangen, es sei denn, Sie haben sowohl die Quelle als auch das Ziel benannt. Sitzungstranskripte und Konversations-Logs, Punkt-Ordner mit Anmeldedaten und Konfiguration wie SSH-Schlüssel, Cloud-Anmeldedaten, Browser-Profile und Shell-Verlauf sowie Exporte von Benutzerdaten zählen alle dazu, und dass das Repository privat ist, hebt die Blockierung nicht auf

425 

426Claude Code v2.1.205 und später blockieren standardmäßig zusätzlich:

427 

428* Schreiben in Sitzungstranskripte von Claude Code, also die `.jsonl`-Verlaufsdateien unter `~/.claude/projects/` oder Ihrem konfigurierten Konfigurationsverzeichnis, ob direkt oder über einen Shell-Befehl. Die Regel umfasst auch die Metadatenzeilen, die Claude Code für seine eigenen Prüfungen an jeden Transkripteintrag anhängt. Das Lesen eines Transkripts wird nicht blockiert417* Schreiben in Sitzungstranskripte von Claude Code, also die `.jsonl`-Verlaufsdateien unter `~/.claude/projects/` oder Ihrem konfigurierten Konfigurationsverzeichnis, ob direkt oder über einen Shell-Befehl. Die Regel umfasst auch die Metadatenzeilen, die Claude Code für seine eigenen Prüfungen an jeden Transkripteintrag anhängt. Das Lesen eines Transkripts wird nicht blockiert

429* Ein rekursives erzwungenes Löschen wie `rm -rf "$VAR"` oder `Remove-Item -Recurse -Force $dir`, dessen Ziel eine Shell-Variable ist, die nirgendwo in der für den Klassifikator sichtbaren Konversation zugewiesen wird, oder ein Glob, der auf einer solchen Variable aufsetzt. Der Wert stammt nur aus früherer Befehlsausgabe, die der Klassifikator nie erhält, daher kann der Klassifikator das Löschziel nicht anhand der anderen Löschregeln überprüfen. Die Blockierung wird aufgehoben, wenn Sie den genauen zu löschenden Pfad benennen oder wenn Claude das Löschen erneut ausführt und dabei den aufgelösten literalen Pfad in den Befehl schreibt. Löschvorgänge, deren Ziel der Klassifikator auflösen kann, sind nicht betroffen.418* Ein rekursives erzwungenes Löschen wie `rm -rf "$VAR"` oder `Remove-Item -Recurse -Force $dir`, dessen Ziel eine Shell-Variable ist, die nirgendwo in der für den Klassifikator sichtbaren Konversation zugewiesen wird, oder ein Glob, der auf einer solchen Variable aufsetzt. Der Wert stammt nur aus früherer Befehlsausgabe, die der Klassifikator nie erhält, daher kann der Klassifikator das Löschziel nicht anhand der anderen Löschregeln überprüfen. Die Blockierung wird aufgehoben, wenn Sie den genauen zu löschenden Pfad benennen oder wenn Claude das Löschen erneut ausführt und dabei den aufgelösten literalen Pfad in den Befehl schreibt. Löschvorgänge, deren Ziel der Klassifikator auflösen kann, sind nicht betroffen.

430 419 

431 Ein Glob direkt unter der Variable, wie in `rm -rf "$VAR"/*`, ist stattdessen ein [kritischer Pfad](#critical-paths). `Remove-Item`-Ziele, die ein bloßes `*` sind oder auf `/*` oder `\*` enden, erreichen den Klassifikator nie: Claude Code [verweigert sie direkt](#remove-item-in-powershell).420 Ein Glob direkt unter der Variable, wie in `rm -rf "$VAR"/*`, ist stattdessen ein [kritischer Pfad](#critical-paths). `Remove-Item`-Ziele, die ein bloßes `*` sind oder auf `/*` oder `\*` enden, erreichen den Klassifikator nie: Claude Code [verweigert sie direkt](#remove-item-in-powershell).

432 421 

422Mehrere dieser Kategorien hängen von [Umgebungs](/docs/de/auto-mode-config#define-trusted-infrastructure)-Einträgen ab, etwa sensiblen Remote-Zielen und geschützten IaC-Bereichen, die Sie auf konkrete Namen eingrenzen können.

423 

433Claude Code v2.1.257 und später blockieren standardmäßig zusätzlich:424Claude Code v2.1.257 und später blockieren standardmäßig zusätzlich:

434 425 

435* Anfordern von Anmeldedaten vom Instanz-Metadaten-Endpunkt der Cloud, wie `169.254.169.254`, oder explizites Authentifizieren eines Cloud-, Cluster- oder Registry-Aufrufs mit dem eigenen Service-Account oder der Knotenidentität der Maschine426* Anfordern von Anmeldedaten vom Instanz-Metadaten-Endpunkt der Cloud, wie `169.254.169.254`, oder explizites Authentifizieren eines Cloud-, Cluster- oder Registry-Aufrufs mit dem eigenen Service-Account oder der Knotenidentität der Maschine


449* Installieren von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind440* Installieren von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind

450* Lesen von `.env` und Senden von Anmeldedaten an die zugehörige API441* Lesen von `.env` und Senden von Anmeldedaten an die zugehörige API

451* Nur lesende HTTP-Anfragen442* Nur lesende HTTP-Anfragen

452* Pushen zu jedem Branch des Repositorys, in dem Sie arbeiten, einschließlich des Standard-Branchs. Ein anderer als der Standard-Branch, dessen Name ihn als Bereitstellungs- oder Veröffentlichungsziel kennzeichnet, wie `production` oder `gh-pages`, ist nicht abgedeckt: Der Klassifikator beurteilt einen Push dorthin für sich. Der Inhalt des Pushs wird weiterhin anhand der anderen Regeln geprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Push-Befehle [wie geschrieben](/docs/de/permissions#bash-rule-limits) in jedem Modus weiterhin blockieren, und der eigene Branch-Schutz des Remotes gilt weiterhin. Vor v2.1.211 waren standardmäßig nur Pushes zu dem Branch, auf dem Sie begonnen haben, zu 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 blockiert443* Pushen zu jedem Branch des Repositorys, in dem Sie arbeiten, einschließlich des Standard-Branchs. Ein anderer als der Standard-Branch, dessen Name ihn als Bereitstellungs- oder Veröffentlichungsziel kennzeichnet, wie `production` oder `gh-pages`, ist nicht abgedeckt: Der Klassifikator beurteilt einen Push dorthin für sich. Der Inhalt des Pushs wird weiterhin anhand der anderen Regeln geprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Push-Befehle [wie geschrieben](/docs/de/permissions#bash-rule-limits) in jedem Modus weiterhin blockieren, und der eigene Branch-Schutz des Remotes gilt weiterhin. Vor v2.1.211 waren standardmäßig nur Pushes zu dem Branch, auf dem Sie begonnen haben, zu Branches, die Claude erstellt hat, und routinemäßige Pushes zum Standard-Branch erlaubt

453* Löschen genau der Jobs, die Claude früher in derselben Sitzung erstellt hat444* Löschen genau der Jobs, die Claude früher in derselben Sitzung erstellt hat

454* Lesen, Überprüfen oder Schreiben von sicherheitsbezogenem Code, Konfigurationen und Bedrohungsmodellen als Teil Ihrer Aufgabe445* Lesen, Überprüfen oder Schreiben von sicherheitsbezogenem Code, Konfigurationen und Bedrohungsmodellen als Teil Ihrer Aufgabe

455* Nachrichten zwischen Agenten, die in derselben Multi-Agent-Sitzung zusammenarbeiten446* Nachrichten zwischen Agenten, die in derselben Multi-Agent-Sitzung zusammenarbeiten

permissions.md +8 −3

Details

384 384 

385`Edit`-Regeln gelten für alle integrierten Tools, die Dateien bearbeiten. Claude versucht nach bestem Bemühen, `Read`-Regeln auf alle integrierten Tools anzuwenden, die Dateien lesen, wie Grep und Glob, auf `@file`-Erwähnungen in Ihren Prompts sowie auf den Auswahl- und Kontext geöffneter Dateien, den eine verbundene [IDE](/docs/de/vs-code#the-built-in-ide-mcp-server) mit Claude teilt.385`Edit`-Regeln gelten für alle integrierten Tools, die Dateien bearbeiten. Claude versucht nach bestem Bemühen, `Read`-Regeln auf alle integrierten Tools anzuwenden, die Dateien lesen, wie Grep und Glob, auf `@file`-Erwähnungen in Ihren Prompts sowie auf den Auswahl- und Kontext geöffneter Dateien, den eine verbundene [IDE](/docs/de/vs-code#the-built-in-ide-mcp-server) mit Claude teilt.

386 386 

387Eine `Read(path)`-deny-Regel gilt auch für Bildpfade, die Sie in einen Prompt einfügen, und für Verzeichnisse, die Sie per @ erwähnen:

388 

389* **Bildpfad**: Wenn Sie im Terminal den Pfad eines Bildes in Ihren Prompt einfügen oder eine Bilddatei hineinziehen und die Regel diesen Pfad abgleicht, hängt Claude Code das Bild nicht an. Enthält die Einfügung kein anderes Bild, bleibt der Pfad als Text in Ihrem Prompt.

390* **Verzeichnis**: Die [Auflistung, die Claude erhält](/docs/de/common-workflows#reference-files-and-directories), lässt die Datei- und Verzeichnisnamen aus, die die Regel abgleicht.

391 

392Claude Code prüft eingefügte Bildpfade und Verzeichnisauflistungen ab v2.1.290.

393 

387Eine `Read`-deny-Regel blockiert auch die [Edit- und Write-Tools](/docs/de/errors#file-is-covered-by-a-read-deny-rule) für denselben Pfad, einschließlich des Erstellens einer neuen Datei dort. NotebookEdit ist nicht abgedeckt, daher fügen Sie eine `Edit`-deny-Regel für Pfade hinzu, die kein Tool ändern darf. Die Prüfung erfordert Claude Code v2.1.208 oder höher für Bearbeitungen und v2.1.228 oder höher für Schreibvorgänge.394Eine `Read`-deny-Regel blockiert auch die [Edit- und Write-Tools](/docs/de/errors#file-is-covered-by-a-read-deny-rule) für denselben Pfad, einschließlich des Erstellens einer neuen Datei dort. NotebookEdit ist nicht abgedeckt, daher fügen Sie eine `Edit`-deny-Regel für Pfade hinzu, die kein Tool ändern darf. Die Prüfung erfordert Claude Code v2.1.208 oder höher für Bearbeitungen und v2.1.228 oder höher für Schreibvorgänge.

388 395 

389Claude Code prüft Dateiberechtigungen nur anhand von `Edit(path)`- und `Read(path)`-Regeln. Wenn Sie stattdessen eine Pfadregel für `Write`, `NotebookEdit`, `Glob` oder das veraltete `MultiEdit`-Tool schreiben, akzeptiert Claude Code die Regel, berücksichtigt sie aber nie und [warnt beim Start](/docs/de/errors#is-not-matched-by-file-permission-checks), außer bei einer `Glob`-Regel, die in `--allowedTools` übergeben wird. Verwenden Sie `Edit(docs/**)` anstelle von `Write(docs/**)`, `NotebookEdit(docs/**)` oder `MultiEdit(docs/**)` und `Read(docs/**)` anstelle von `Glob(docs/**)`. Claude Code warnt nicht vor einer Regel mit Tool-Namen ohne Pfad, wie einer deny-Regel für `Write`; es gleicht diese Regel überall auf Tool-Ebene ab. Erfordert Claude Code v2.1.210 oder höher.396Claude Code prüft Dateiberechtigungen nur anhand von `Edit(path)`- und `Read(path)`-Regeln. Wenn Sie stattdessen eine Pfadregel für `Write`, `NotebookEdit`, `Glob` oder das veraltete `MultiEdit`-Tool schreiben, akzeptiert Claude Code die Regel, berücksichtigt sie aber nie und [warnt beim Start](/docs/de/errors#is-not-matched-by-file-permission-checks), außer bei einer `Glob`-Regel, die in `--allowedTools` übergeben wird. Verwenden Sie `Edit(docs/**)` anstelle von `Write(docs/**)`, `NotebookEdit(docs/**)` oder `MultiEdit(docs/**)` und `Read(docs/**)` anstelle von `Glob(docs/**)`. Claude Code warnt nicht vor einer Regel mit Tool-Namen ohne Pfad, wie einer deny-Regel für `Write`; es gleicht diese Regel überall auf Tool-Ebene ab. Erfordert Claude Code v2.1.210 oder höher.


467 In gitignore-Mustern gleicht `*` innerhalb eines einzelnen Pfadsegments ab und kann an jeder Position im Muster stehen, während `**` über Verzeichnisse hinweg abgleicht.474 In gitignore-Mustern gleicht `*` innerhalb eines einzelnen Pfadsegments ab und kann an jeder Position im Muster stehen, während `**` über Verzeichnisse hinweg abgleicht.

468</Note>475</Note>

469 476 

470Wenn Sie einen Dateipfad mit „Ja, nicht mehr fragen“ genehmigen, maskiert Claude Code gitignore-Musterzeichen in diesem Pfad, wie `[`, `]` und `*`, sodass die erzeugte Regel nur den wörtlichen Pfad abgleicht, den Sie genehmigt haben. Regeln, die Sie selbst schreiben, werden nicht maskiert. Vor v2.1.202 speicherte Claude Code den Pfad unmaskiert, sodass eine erzeugte Regel für ein Verzeichnis namens `[2024-06] Reports` ihren eigenen Pfad möglicherweise nicht abglich oder unbeabsichtigt benachbarte Verzeichnisse abglich.477Wenn Sie einen Dateipfad mit „Ja, nicht mehr fragen“ genehmigen, maskiert Claude Code gitignore-Musterzeichen in diesem Pfad, wie `[`, `]` und `*`, sodass die erzeugte Regel nur den wörtlichen Pfad abgleicht, den Sie genehmigt haben. Regeln, die Sie selbst schreiben, werden nicht maskiert.

471 478 

472Klammern in einem Pfad müssen Sie nicht maskieren, daher gleicht `Edit(./Finance (2024)/**)` den Ordner `Finance (2024)` so ab, wie er geschrieben ist.479Klammern in einem Pfad müssen Sie nicht maskieren, daher gleicht `Edit(./Finance (2024)/**)` den Ordner `Finance (2024)` so ab, wie er geschrieben ist.

473 480 


805 Die Konfigurationsheim-Ausnahme überspringt nur den Vertrauensschritt. `~/.claude/settings.local.json` hat immer noch [lokalen Umfang](/docs/de/settings#compare-the-scope-of-each-settings-file), daher liest Claude Code sie nur in Sitzungen, die Sie in Ihrem Home-Verzeichnis selbst starten, nicht in jedem Projekt. Um Berechtigungsregeln auf alle Ihre Projekte anzuwenden, fügen Sie sie stattdessen zu Ihren Benutzereinstellungen hinzu: `~/.claude/settings.json` oder `$CLAUDE_CONFIG_DIR/settings.json`, wenn `CLAUDE_CONFIG_DIR` gesetzt ist.812 Die Konfigurationsheim-Ausnahme überspringt nur den Vertrauensschritt. `~/.claude/settings.local.json` hat immer noch [lokalen Umfang](/docs/de/settings#compare-the-scope-of-each-settings-file), daher liest Claude Code sie nur in Sitzungen, die Sie in Ihrem Home-Verzeichnis selbst starten, nicht in jedem Projekt. Um Berechtigungsregeln auf alle Ihre Projekte anzuwenden, fügen Sie sie stattdessen zu Ihren Benutzereinstellungen hinzu: `~/.claude/settings.json` oder `$CLAUDE_CONFIG_DIR/settings.json`, wenn `CLAUDE_CONFIG_DIR` gesetzt ist.

806</Note>813</Note>

807 814 

808Vor v2.1.207 wendete Claude Code die Regeln einer nicht verfolgten Datei an, bevor Sie den Dialog akzeptierten.

809 

810<h3 id="what-runs-before-you-trust-a-folder">815<h3 id="what-runs-before-you-trust-a-folder">

811 Was läuft ab, bevor Sie einem Ordner vertrauen816 Was läuft ab, bevor Sie einem Ordner vertrauen

812</h3>817</h3>

plugin-evals.md +74 −43

Details

364 Wählen Sie aus, was zu evaluieren ist364 Wählen Sie aus, was zu evaluieren ist

365</h3>365</h3>

366 366 

367Meistens 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:367Meistens 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 Falldatei auszuführen oder um ein Plugin zu evaluieren, das Sie installiert haben, anstatt eines, das Sie entwickeln, übergeben Sie ein anderes Ziel:

368 368 

369| Ziel | Was wird ausgeführt |369| Ziel | Was wird ausgeführt |

370| :- | :- |370| :- | :- |


441 441 

442| Exit-Code | Bedeutung |442| Exit-Code | Bedeutung |

443| :- | :- |443| :- | :- |

444| 0 | Jeder Fall hat bei oder über `--threshold` bewertet und jede Falldatei geladen |444| 0 | Die Suite wurde bestanden: Jeder Fall hat bei oder über `--threshold` bewertet, und nichts anderes hat den Durchlauf fehlschlagen lassen |

445| 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 |445| 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, oder ein Durchlauf [endete mit einem API-Fehler](#runs-ended-on-an-api-error). Wird auch zurückgegeben, wenn das Plugin-Verzeichnis nicht vertraut ist und `--trust-plugin` nicht übergeben wurde, eine Option ungültig war oder das `--json`-Ergebnis nicht geschrieben werden konnte |

446| 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 |446| 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 |

447| 130 | Unterbrochen. Teilergebnisse werden geschrieben |447| 130 | Unterbrochen. Teilergebnisse werden geschrieben |

448| 143 | Beendet, wie durch ein CI-Timeout |448| 143 | Beendet, wie durch ein CI-Timeout |


501| `cases[].name` | Fallname |501| `cases[].name` | Fallname |

502| `cases[].aggregates.score` | Mittlerer With-Arm-Durchlauf-Score für den Fall |502| `cases[].aggregates.score` | Mittlerer With-Arm-Durchlauf-Score für den Fall |

503| `cases[].aggregates.delta` | With-Arm Score minus Without-Arm Score. Weggelassen, wenn die Arms nicht vergleichbar sind |503| `cases[].aggregates.delta` | With-Arm Score minus Without-Arm Score. Weggelassen, wenn die Arms nicht vergleichbar sind |

504| `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 |504| `cases[].arms.with[].error` | `null`, oder warum ein Durchlauf abnormal endete, wie `timed out after 300s`. Einige dieser Durchläufe werden dennoch anhand dessen bewertet, was sie produziert haben, daher impliziert ein Fehler ungleich null nicht Score 0. Ein Durchlauf, der [mit einem API-Fehler endete](#runs-ended-on-an-api-error), erhält ohne Bewertung den Score 0 |

505| `cases[].arms.with[].aborted` | Vorhanden, wenn ein [Mock](#mock-mcp-servers) den Durchlauf durch `expect:`, `abort_when` oder das [Agent-Mock-Aufrufbudget](#mock-call-budget-exceeded) stoppte, mit `server`, `tool` und `reason`. Der Durchlauf bewertet 0 und `error` bleibt `null` |505| `cases[].arms.with[].aborted` | Vorhanden, wenn ein [Mock](#mock-mcp-servers) den Durchlauf durch `expect:`, `abort_when` oder das [Agent-Mock-Aufrufbudget](#mock-call-budget-exceeded) stoppte, mit `server`, `tool` und `reason`. Der Durchlauf bewertet 0 und `error` bleibt `null` |

506| `cases[].arms.with[].skippedPaidGraders` | `true`, wenn die Kostendecke dieses Durchlaufs Judge-Grader übersprungen hat, daher ist sein Score nicht vergleichbar |506| `cases[].arms.with[].skippedPaidGraders` | `true`, wenn die Kostendecke dieses Durchlaufs Judge-Grader übersprungen hat, daher ist sein Score nicht vergleichbar |

507| `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 |507| `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 |


688 Fehlerbehebung688 Fehlerbehebung

689</h2>689</h2>

690 690 

691Dies sind die Probleme, auf die Autoren am häufigsten stoßen, sortiert nach dem, was Sie sehen.691Dies sind die Probleme, auf die Autoren am häufigsten stoßen, geordnet nach dem, was Sie sehen.

692 692 

693<h3 id="plugin-eval-is-currently-in-early-access">693<h3 id="plugin-eval-is-currently-in-early-access">

694 „plugin eval is currently in early access“694 "plugin eval is currently in early access"

695</h3>695</h3>

696 696 

697Ihr 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.697Ihr Build stammt aus der Zeit vor der allgemeinen Verfügbarkeit des Befehls. Führen Sie `claude update` aus und führen Sie den Befehl dann in einer neuen Sitzung erneut aus.

698 698 

699<h3 id="plugin-eval-is-currently-unavailable">699<h3 id="plugin-eval-is-currently-unavailable">

700 „plugin eval is currently unavailable“700 "plugin eval is currently unavailable"

701</h3>701</h3>

702 702 

703Anthropic 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.703Anthropic hat den Befehl serverseitig abgeschaltet. Nichts auf Ihrem Rechner schaltet ihn wieder ein; führen Sie `claude update` aus und versuchen Sie es später in einer neuen Sitzung erneut.

704 704 

705<h3 id="is-not-a-trusted-plugin-directory-and-this-run-cannot-stop-to-ask-you-about-it">705<h3 id="is-not-a-trusted-plugin-directory-and-this-run-cannot-stop-to-ask-you-about-it">

706 „is not a trusted plugin directory, and this run cannot stop to ask you about it“706 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

707</h3>707</h3>

708 708 

709Dies 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).709Dies ist der erste Lauf gegen ein Verzeichnis, dem Claude Code noch nicht vertraut, und Claude Code kann Sie nicht fragen, weil 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 Abfrage, oder übergeben Sie `--trust-plugin`, wenn Sie dem Code und der Suite des Plugins vertrauen. Siehe [Worauf ein Lauf zugreifen kann](#security).

710 710 

711<h3 id="git-is-too-old-for-claude-plugin-eval">711<h3 id="git-is-too-old-for-claude-plugin-eval">

712 „is too old for claude plugin eval“712 "is too old for claude plugin eval"

713</h3>713</h3>

714 714 

715Das `git` auf Ihrem `PATH` ist älter als 2.31, daher hat `claude plugin eval` gestoppt, bevor es einen Fall ausgeführt hat, und ist mit 1 beendet worden mit einer Nachricht, die Ihre Version benennt:715Das `git` in Ihrem `PATH` ist älter als 2.31, daher hat `claude plugin eval` angehalten, bevor ein Fall ausgeführt wurde, und mit Code 1 und einer Meldung beendet, die Ihre Version nennt:

716 716 

717```text theme={null}717```text theme={null}

718git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.718git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.

719```719```

720 720 

721Für jeden Durchlauf schaltet Claude Code Git-Hooks, Credential-Helper und andere Programme aus, die eine Git-Konfiguration eines Repositorys starten kann. Dies geschieht durch Umgebungskonfiguration, die Git nur ab Version 2.31 liest. Ein älteres Git ignoriert diese Konfiguration, daher stoppt die Suite, anstatt Durchläufe zu bewerten, bei denen diese Programme ausgeführt werden könnten. Installieren Sie Git 2.31 oder später und führen Sie die Suite erneut aus.721Für jeden Lauf schaltet Claude Code Git-Hooks, Credential-Helper und andere Programme aus, die die Git-Konfiguration eines Repositorys starten kann. Dies geschieht über eine Umgebungskonfiguration, die Git erst ab Version 2.31 liest. Ein älteres Git ignoriert diese Konfiguration, daher hält die Suite an, statt Läufe zu bewerten, in denen diese Programme ausgeführt werden könnten. Installieren Sie Git 2.31 oder neuer und führen Sie die Suite erneut aus.

722 722 

723Vor v2.1.283 überprüfte `claude plugin eval` nicht die Git-Version, und bei einem älteren Git lief die Suite mit diesen Programmen, die eingeschaltet waren.723Vor v2.1.283 prüfte `claude plugin eval` die Git-Version nicht, und mit einem älteren Git lief die Suite mit eingeschalteten Programmen.

724 

725<h3 id="cannot-be-evaluated-where-sessions-load-it">

726 "cannot be evaluated where sessions load it"

727</h3>

728 

729Sie haben `claude plugin eval` in Ihrer Shell mit dem Namen eines Plugins ausgeführt, das aus einem Marketplace installiert wurde, den Sie [aus einem lokalen Pfad hinzugefügt haben](/docs/de/plugins/loading#in-place-and-copied-plugins). Derzeit könnte keine Sitzung das Plugin aus diesem Marketplace laden, daher verweigert der Befehl die Ausführung mit dieser Meldung und endet mit Code 1.

730 

731```text theme={null}

732Error: formatter@my-marketplace cannot be evaluated where sessions load it: no session could load it now. Its marketplace is a folder whose catalog could not be read, or lists it no more. Check the marketplace with `claude plugin marketplace list`, or pass ./<dir> to evaluate a directory.

733```

734 

735Der Satz nach `no session could load it now.` nennt, was fehlgeschlagen ist.

736 

737Führen Sie `claude plugin marketplace list` in Ihrer Shell aus und beheben Sie, was die Meldung nennt. Stellen Sie beispielsweise das Marketplace-Verzeichnis wieder her oder fügen Sie den Eintrag des Plugins wieder in dessen Katalog ein. Um den Quellcode des Plugins ohne den Marketplace zu evaluieren, übergeben Sie dessen Verzeichnis als Ziel, etwa `claude plugin eval ./plugins/formatter`.

724 738 

725<h3 id="no-eval-cases-found">739<h3 id="no-eval-cases-found">

726 „No eval cases found“740 "No eval cases found"

727</h3>741</h3>

728 742 

729Es 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.743Unterhalb des wirksamen Eval-Verzeichnisses existiert keine `<case>/prompt.md` oder `<case>/case.yaml`, oder Ihre Filter `--case` und `--tag` haben keinen Fall getroffen. Führen Sie den Befehl aus dem Plugin-Stammverzeichnis aus, oder führen Sie `claude plugin eval init` aus, um eine Suite zu erstellen.

730 744 

731<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">745<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">

732 Die Baseline-Arm zeigt kein Plugin, oder Delta ist null746 Der Baseline-Arm zeigt kein Plugin, oder das Delta ist null

733</h3>747</h3>

734 748 

735Wenn 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. Wenn jeder Fall ein Transkript durch `context.history_file` fortsetzt, ist die fehlende Spalte stattdessen zu erwarten, da diese Fälle [standardmäßig einen Arm ausführen](#compare-against-a-no-plugin-baseline). Andernfalls fügen Sie `plugins: ["../.."]` zum Fall hinzu und geben Sie den Pfad vom Fall-Verzeichnis zum Plugin-Verzeichnis an.749Wenn die Zusammenfassung keine Spalte `W/OUT` enthält oder ein Fall mit „ablation requested but no plugin resolved“ fehlschlägt, ist die übliche Ursache, dass für den Fall kein Plugin gefunden wurde. Wenn jeder Fall ein Transkript über `context.history_file` fortsetzt, ist die fehlende Spalte dagegen erwartet, da diese Fälle [standardmäßig mit einem Arm laufen](#compare-against-a-no-plugin-baseline). Andernfalls fügen Sie dem Fall `plugins: ["../.."]` hinzu und geben damit den Pfad vom Fallverzeichnis zum Plugin-Verzeichnis an.

736 750 

737Wenn 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.751Wenn das Plugin geladen wurde und `Δ` trotzdem nahe null liegt, während Ihr Grader `tool_used: Skill` fehlschlägt, ist das in der Regel ein echter Befund: Die `description` des Skills wird durch die Formulierung des Prompts nicht ausgelöst. Passen Sie die Beschreibung an und führen Sie dieselbe Suite erneut aus.

738 752 

739<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">753<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">

740 „Agent type '...' not found“ für einen der Agenten Ihres Plugins754 "Agent type '...' not found" für einen der Agenten Ihres Plugins

741</h3>755</h3>

742 756 

743Standardmäßig wird jeder Fall sowohl mit Ihrem Plugin als auch ohne es ausgeführt, und die Durchläufe ohne es sind die [no-plugin baseline](#the-no-plugin-baseline). Wenn Claude einen der Agenten Ihres Plugins in einem Baseline-Durchlauf versendet, schlägt der Agent-Tool-Aufruf mit `Agent type '<plugin>:<agent-name>' not found. Available agents: ...` fehl. Die Liste benennt nur Agenten, die ohne das Plugin existieren, wie z. B. die [built-in subagents](/docs/de/sub-agents#built-in-subagents).757Standardmäßig wird jeder Fall sowohl mit als auch ohne Ihr Plugin ausgeführt, und die Läufe ohne Plugin bilden die [Baseline ohne Plugin](#the-no-plugin-baseline). Wenn Claude in einem Baseline-Lauf einen der Agenten Ihres Plugins aufruft, schlägt der Tool-Aufruf des Agent-Tools mit `Agent type '<plugin>:<agent-name>' not found. Available agents: ...` fehl. Die Liste nennt nur Agenten, die ohne das Plugin existieren, etwa die [integrierten Subagenten](/docs/de/sub-agents#built-in-subagents).

744 758 

745Der Fehler ist zu erwarten, da `Δ` Ihre Plugin-Durchläufe gegen die Baseline vergleicht. Im JSON-Ergebnis befinden sich die Baseline-Durchläufe unter `cases[].arms.without`.759Der Fehler ist erwartet, da `Δ` die Läufe Ihres Plugins mit der Baseline vergleicht. Im JSON-Ergebnis stehen die Baseline-Läufe unter `cases[].arms.without`.

746 760 

747Bei Durchläufen mit Ihrem geladenen Plugin kann ein Fall, der `Agent` in `allowed_tools` auflistet, einen der Agenten Ihres Plugins anhand seines namensgebundenen Namens versendet, wie z. B. `my-plugin:code-reviewer` für den `code-reviewer`-Agent in einem Plugin namens `my-plugin`. Um die Baseline-Durchläufe zu überspringen, übergeben Sie `--ablation none`.761In Läufen mit geladenem Plugin kann ein Fall, der `Agent` in `allowed_tools` aufführt, einen der Agenten Ihres Plugins über dessen Namen mit Namespace aufrufen, etwa `my-plugin:code-reviewer` für den Agenten `code-reviewer` in einem Plugin namens `my-plugin`. Um die Baseline-Läufe zu überspringen, übergeben Sie `--ablation none`.

748 762 

749<h3 id="everything-scores-zero-although-the-right-files-were-produced">763<h3 id="everything-scores-zero-although-the-right-files-were-produced">

750 Alles bewertet null, obwohl die richtigen Dateien erstellt wurden764 Alles wird mit null bewertet, obwohl die richtigen Dateien erzeugt wurden

751</h3>765</h3>

752 766 

753Ihre 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`.767Ihre Grader zielen auf `files`, die Liste der erstellten Pfade, obwohl Sie den Inhalt der Datei gemeint haben. Verwenden Sie `{ source: file, path: <path> }` als `target` oder `focus`.

754 768 

755Separat 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`.769Unabhängig davon zählt `file_exists` nur Dateien, die während des Laufs erstellt wurden; eine Datei, die das Gerüst erstellt hat oder die Claude nur bearbeitet hat, ist dafür unsichtbar. Bewerten Sie ihren Inhalt, oder verwenden Sie `tool_used` auf `Edit`.

756 770 

757<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">771<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

758 Ein Regex über die Trace stimmt nicht mit Text überein, den ich sehen kann772 Ein regulärer Ausdruck über den Trace trifft keinen Text, den ich sehen kann

759</h3>773</h3>

760 774 

761* **Falsches Ziel**: Das Standard-`target` ist `last_message`, nicht die Trace.775* **Falsches Ziel**: Das Standard-`target` ist `last_message`, nicht der Trace.

762* **JSON-Escaping**: Wenn Sie `trace` als Ziel verwenden, ist es JSON pro Zeile, daher erscheinen Anführungszeichen als `\"`.776* **JSON-Escaping**: Wenn Sie `trace` als Ziel verwenden, ist er JSON pro Zeile, daher erscheinen Anführungszeichen als `\"`.

763* **Regex-Syntax**: Regexes verwenden JavaScript-Syntax, daher setzen Sie `i` in `flags`, anstatt `(?i)` zu schreiben.777* **Regex-Syntax**: Reguläre Ausdrücke verwenden JavaScript-Syntax, setzen Sie daher `i` in `flags`, statt `(?i)` zu schreiben.

764 778 

765<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">779<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

766 Tools werden verweigert, MCP-Tools fehlen, oder Bash wird nicht ausgeführt780 Tools werden verweigert, MCP-Tools fehlen oder Bash läuft nicht

767</h3>781</h3>

768 782 

769Alles ü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.783Alles über den Satz nur lesender Tools hinaus benötigt Ihre Freigabe, etwa `--allow-tools Bash Write`. Ihre persönlichen MCP-Server werden in einem Lauf nie geladen. Die eigenen Server des Plugins starten nur, wenn Sie sich [dafür entscheiden](#mock-mcp-servers), und ihre Tools benötigen dann zusätzlich eine Freigabe `--allow-tools "mcp__plugin_<plugin>_<server>__*"`; ein gemocktes Tool benötigt keines von beiden.

770 784 

771<h3 id="the-run-exits-1-but-the-results-look-fine">785<h3 id="the-run-exits-1-but-the-results-look-fine">

772 Der Durchlauf beendet sich mit 1, aber die Ergebnisse sehen gut aus786 Der Lauf endet mit 1, aber die Ergebnisse sehen gut aus

773</h3>787</h3>

774 788 

775Das 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.789Wenn jeder Fall mit `--threshold` oder darüber bewertet wurde und der Befehl trotzdem mit 1 endet, nennt eine Zeile auf stderr die Ursache, auch unter `--json`. Beispielsweise konnte eine Falldatei nicht geladen werden, oder Läufe [endeten mit einem API-Fehler](#runs-ended-on-an-api-error). Die anderen Ursachen finden Sie unter den [Exit-Codes](#run-evals-in-ci).

790 

791Der Standardwert für `--threshold` ist 1.0, daher endet der Befehl mit 1, wenn ein Fall unter der vollen Punktzahl liegt. Legen Sie einen Schwellenwert fest, der der von Ihnen geforderten Punktzahl entspricht.

776 792 

777<h3 id="json-output-path-must-end-in-json">793<h3 id="json-output-path-must-end-in-json">

778 `--json output path must end in .json`794 `--json output path must end in .json`

779</h3>795</h3>

780 796 

781Sie 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.797Sie haben das Ziel nach `--json` angegeben, daher wurde es als Ausgabepfad gelesen. Geben Sie das Ziel zuerst an, wie in `claude plugin eval . --json`, oder übergeben Sie `--json` einen expliziten `.json`-Pfad.

782 798 

783<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">799<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">

784 Ein Grader zeigt passed: false unter einem Durchlauf, der 1,0 bewertet800 Ein Grader zeigt passed: false unter einem Lauf, der mit 1.0 bewertet wurde

801</h3>

802 

803Dieser Grader ist in einem Lauf mit zwei Armen absichtlich von der Bewertung ausgeschlossen, und sein Feld `scored` ist `false`. Siehe [Gegen die Baseline ohne Plugin bewerten](#compare-against-a-no-plugin-baseline).

804 

805<h3 id="runs-ended-on-an-api-error">

806 "ended on an API error and scored 0 without grading"

785</h3>807</h3>

786 808 

787Dieser Grader ist absichtlich von der Bewertung in einem Zwei-Arm-Durchlauf ausgeschlossen, und sein `scored`-Feld ist `false`. Siehe [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline).809Diese Warnung auf stderr bedeutet, dass die API die letzte Anfrage mindestens eines Laufs mit einem HTTP-Fehler beantwortet hat, etwa einem Rate-Limit oder einem Nutzungslimit des Plans. Ein solcher Lauf erhält 0 Punkte ohne Grader-Ergebnisse, und der Befehl endet unabhängig von den Bewertungen und `--threshold` mit einem Exit-Code ungleich null.

810 

811Um das zu beheben, suchen Sie den Fehler jedes betroffenen Laufs, beheben Sie die gemeldete Ursache und führen Sie die Suite dann erneut aus:

812 

813* **Ohne `--json`**: Der Fehler steht am Ende der Fortschrittszeile des Laufs, nach `error:`

814* **Unter `--json`**: Der Fehler steht im [JSON-Ergebnis](#json-result), unter `cases[].arms.with[].error` oder `cases[].arms.without[].error`

815 

816Die Anzahl umfasst auch [Baseline](#the-no-plugin-baseline)-Läufe. Deren Bewertungen entscheiden nie darüber, ob ein Fall besteht, daher kann jeder Fall bestehen, während der Befehl trotzdem fehlschlägt. In einem Lauf mit zwei Armen werden `W/OUT` und `Δ` des betroffenen Falls als `—` ausgegeben. Bei einem Nutzungslimit oder Rate-Limit siehe [Läufe schlagen mittendrin mit einem Nutzungslimit- oder Rate-Limit-Fehler fehl](#runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through).

817 

818Vor v2.1.299 wurde ein solcher Lauf anhand dessen bewertet, was er erzeugt hatte.

788 819 

789<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">820<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

790 Durchläufe schlagen mit einem Nutzungslimit- oder Rate-Limit-Fehler in der Mitte fehl821 Läufe schlagen mittendrin mit einem Nutzungslimit- oder Rate-Limit-Fehler fehl

791</h3>822</h3>

792 823 

793Wenn 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.824Läufe, die mit einem Nutzungslimit- oder Rate-Limit-Fehler enden, [erhalten 0 Punkte ohne Bewertung](#runs-ended-on-an-api-error), und der Befehl endet mit einem Exit-Code ungleich null. Die Suite wird trotzdem abgeschlossen und nicht als `partial` markiert. Führen Sie die Suite nach dem Zurücksetzen des Limits erneut aus, mit `--runs 1` oder einem `--case`-Filter, falls Sie darunter bleiben müssen.

794 825 

795<h3 id="mock-call-budget-exceeded">826<h3 id="mock-call-budget-exceeded">

796 "mock call budget exceeded"827 "mock call budget exceeded"

797</h3>828</h3>

798 829 

799Jeder `type: agent`-[Mock](#mock-mcp-servers) in einem Durchlauf greift auf ein gemeinsames Aufrufbudget zurück, das dem Vierfachen von `max_turns` des Falls entspricht, also 40 Aufrufe beim Standardwert von 10. Aufrufe, die aus `.replay/`-Aufzeichnungen beantwortet werden, zählen ebenfalls, und die `mock budget`-Fortschrittszeile des Falls gibt das Budget aus. Ein Aufruf darüber hinaus bricht den Durchlauf mit der Bewertung 0 und diesem Grund ab. Erhöhen Sie daher `max_turns` im Fall für einen Skill, der viele Aufrufe an Agent-Mocks ausführt.830Jeder [Mock](#mock-mcp-servers) vom `type: agent` in einem Lauf greift auf ein gemeinsames Aufrufbudget zu, das dem Vierfachen von `max_turns` des Falls entspricht, also 40 Aufrufe beim Standardwert von 10. Aufrufe, die aus `.replay/`-Aufzeichnungen beantwortet werden, zählen ebenfalls, und die Fortschrittszeile `mock budget` des Falls gibt das Budget aus. Ein Aufruf darüber hinaus bricht den Lauf mit 0 Punkten und diesem Grund ab. Erhöhen Sie daher `max_turns` im Fall für einen Skill, der viele Aufrufe an Agent-Mocks ausführt.

800 831 

801<h3 id="runs-time-out-or-hit-the-turn-cap">832<h3 id="runs-time-out-or-hit-the-turn-cap">

802 Durchläufe überschreiten das Zeitlimit oder erreichen die Obergrenze für Durchläufe833 Läufe überschreiten das Zeitlimit oder erreichen die Turn-Obergrenze

803</h3>834</h3>

804 835 

805Die 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.836Die Standardwerte sind 10 Turns 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 Kostenobergrenze statt enger Limits pro Lauf.

806 837 

807<h2 id="see-also">838<h2 id="see-also">

808 Siehe auch839 Siehe auch

Details

523 523 

524| Exit-Code | Bedeutung |524| Exit-Code | Bedeutung |

525| :- | :- |525| :- | :- |

526| `0` | Jeder Fall erfüllt den Schwellenwert |526| `0` | Die Suite ist bestanden: Jeder Fall erfüllt den Schwellenwert, und nichts anderes hat den Lauf fehlschlagen lassen |

527| `1` | Ein fehlgeschlagener Fall, ein Ladefehler oder ein nicht vertrauenswürdiges Plugin-Verzeichnis |527| `1` | Ein fehlgeschlagener Fall, ein Ladefehler, ein nicht vertrauenswürdiges Plugin-Verzeichnis, ein Lauf, der [mit einem API-Fehler endete](/docs/de/plugin-evals#runs-ended-on-an-api-error), oder eine andere unter [Evals in CI ausführen](/docs/de/plugin-evals#run-evals-in-ci) aufgeführte Ursache |

528| `2` | Ein Teillauf |528| `2` | Ein Teillauf |

529| `130` | Unterbrochen |529| `130` | Unterbrochen |

530| `143` | Beendet |530| `143` | Beendet |

Details

752 752 

753Die Frontmatter eines Plugin-Agenten folgt diesen Regeln:753Die Frontmatter eines Plugin-Agenten folgt diesen Regeln:

754 754 

755* **Unterstützte Felder**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` und der `cacheTtl`-Schlüssel von `experimental`. Der einzige gültige `isolation`-Wert ist `"worktree"`. Siehe [unterstützte Frontmatter-Felder](/docs/de/sub-agents#supported-frontmatter-fields) für das, was jedes tut755* **Unterstützte Felder**: `name`, `description`, `model`, `effort`, `maxTurns`, `autoCompactWindow`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` und der `cacheTtl`-Schlüssel von `experimental`. Der einzige gültige `isolation`-Wert ist `"worktree"`. Siehe [unterstützte Frontmatter-Felder](/docs/de/sub-agents#supported-frontmatter-fields) für das, was jedes tut

756* **Ignorierte Felder**: `permissionMode`, `hooks`, `mcpServers` und `initialPrompt`. Eine Agent-Datei kann nicht auf eigene Faust Hooks oder MCP-Server hinzufügen, daher fügen Sie diese stattdessen als Plugin-[Hooks](#hooks) und [MCP-Server](#mcp-servers) hinzu756* **Ignorierte Felder**: `permissionMode`, `hooks`, `mcpServers` und `initialPrompt`. Eine Agent-Datei kann nicht auf eigene Faust Hooks oder MCP-Server hinzufügen, daher fügen Sie diese stattdessen als Plugin-[Hooks](#hooks) und [MCP-Server](#mcp-servers) hinzu

757* **Frontmatter, die nicht analysiert wird**: Der Agent lädt immer noch mit jedem Feld ignoriert. Er wird nach der Datei benannt, und seine Beschreibung liest `Agent from my-plugin plugin`. Führen Sie [`claude plugin validate`](/docs/de/plugins/cli-reference#plugin-validate) in Ihrer Shell aus, um diese Dateien zu finden757* **Frontmatter, die nicht analysiert wird**: Der Agent lädt immer noch mit jedem Feld ignoriert. Er wird nach der Datei benannt, und seine Beschreibung liest `Agent from my-plugin plugin`. Führen Sie [`claude plugin validate`](/docs/de/plugins/cli-reference#plugin-validate) in Ihrer Shell aus, um diese Dateien zu finden

758 758 

Details

237 237 

238Wenn ein Benutzer das letzte Plugin deinstalliert, das eine Abhängigkeit beschränkt, wird die Abhängigkeit nicht mehr auf einen Versionsbereich beschränkt und verfolgt bei der nächsten Aktualisierung wieder ihren Marketplace-Eintrag.238Wenn ein Benutzer das letzte Plugin deinstalliert, das eine Abhängigkeit beschränkt, wird die Abhängigkeit nicht mehr auf einen Versionsbereich beschränkt und verfolgt bei der nächsten Aktualisierung wieder ihren Marketplace-Eintrag.

239 239 

240<h3 id="dependencies-when-your-plugin-loads-from-claude-ai">

241 Abhängigkeiten, wenn Ihr Plugin von claude.ai geladen wird

242</h3>

243 

244Wenn ein Benutzer Ihr Plugin für sein claude.ai-Konto einschaltet, lädt Claude Code es als `<name>@synced`, [ohne Marketplace](/docs/de/plugins/loading#synced-plugins). Für diese Kopie Ihres Plugins betrachtet Claude Code einen Abhängigkeitseintrag, der einen Marketplace benennt, als erfüllt, wenn der Benutzer eines der folgenden hat:

245 

246* **Die Abhängigkeit aus ihrem Marketplace**: aus dem Marketplace installiert, den Ihr Eintrag benennt, und aktiviert. Claude Code prüft einen `version`-Bereich in Ihrem Eintrag gegen die Version der installierten Kopie.

247* **Ein claude.ai-Plugin mit demselben Namen**: über das claude.ai-Konto des Benutzers aktiviert. Claude Code prüft einen `version`-Bereich in Ihrem Eintrag gegen die `version` dieses Plugins, und ein Plugin, das keine `version` angibt, besteht die Prüfung.

248 

249Wenn Sie Benutzer anweisen, Ihr Plugin über claude.ai einzuschalten, weisen Sie sie an, auch die Abhängigkeit dort einzuschalten oder sie aus ihrem Marketplace zu installieren.

250 

251Ein claude.ai-Plugin erfüllt den Eintrag nur, wenn Ihr Plugin ebenfalls von claude.ai geladen wird.

252 

240<h2 id="see-also">253<h2 id="see-also">

241 Siehe auch254 Siehe auch

242</h2>255</h2>

Details

48* **Community-Marketplace-Namen**: `claude-community`, `claude-plugins-community` und `healthcare`. Reserviert nach der gleichen Regel wie die offiziellen Namen.48* **Community-Marketplace-Namen**: `claude-community`, `claude-plugins-community` und `healthcare`. Reserviert nach der gleichen Regel wie die offiziellen Namen.

49* **Plugin-Verzeichnisnamen**: `anthropic-plugin-directory` und `claude-plugin-directory`. Reserviert nach der gleichen Regel wie die offiziellen Namen.49* **Plugin-Verzeichnisnamen**: `anthropic-plugin-directory` und `claude-plugin-directory`. Reserviert nach der gleichen Regel wie die offiziellen Namen.

50* **Namen, die einen offiziellen Marketplace imitieren**: Namen wie `official-claude-plugins` oder `claude-plugins-v2` und jeder Name, der ein Nicht-ASCII-Zeichen enthält. Der Fehler ist `Marketplace name impersonates an official Anthropic/Claude marketplace`. Ein Steuerzeichen oder bidirektionales Formatierungszeichen in einem Namen meldet auch `Marketplace name cannot contain control or bidirectional-formatting characters`. Ein bereits unter einem solchen Namen registrierter Marketplace wird nicht mehr geladen, zusammen mit seinen Plugins.50* **Namen, die einen offiziellen Marketplace imitieren**: Namen wie `official-claude-plugins` oder `claude-plugins-v2` und jeder Name, der ein Nicht-ASCII-Zeichen enthält. Der Fehler ist `Marketplace name impersonates an official Anthropic/Claude marketplace`. Ein Steuerzeichen oder bidirektionales Formatierungszeichen in einem Namen meldet auch `Marketplace name cannot contain control or bidirectional-formatting characters`. Ein bereits unter einem solchen Namen registrierter Marketplace wird nicht mehr geladen, zusammen mit seinen Plugins.

51* <span id="reserved-name-spellings" />**Eine andere Schreibweise eines reservierten Namens**: ein Name, der sich von einem reservierten Namen nur durch einen nachgestellten Punkt oder durch ein Symbol anstelle eines Bindestrichs unterscheidet, daher zählt `claude.code.plugins` als `claude-code-plugins`. Das Hinzufügen des Marketplace schlägt mit [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/de/errors#marketplace-name-is-another-spelling-of-a-reserved-name) fehl, und ein bereits unter einem registrierter Marketplace wird nicht mehr geladen. Diese Überprüfung erfordert Claude Code v2.1.280 oder später.51* <span id="reserved-name-spellings" />**Eine andere Schreibweise eines reservierten Namens**: ein Name, der sich von einem reservierten Namen nur durch einen nachgestellten Punkt oder durch ein anderes Symbol als einen Unterstrich anstelle eines Bindestrichs unterscheidet, daher zählt `claude.code.plugins` als `claude-code-plugins`. Das Hinzufügen des Marketplace schlägt mit [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/de/errors#marketplace-name-is-another-spelling-of-a-reserved-name) fehl, und ein bereits unter einem registrierter Marketplace wird nicht mehr geladen. Diese Überprüfung erfordert Claude Code v2.1.280 oder später.

52* **Namen, die Claude Code für Plugins verwendet, die nicht von einem Marketplace stammen**: `inline` für Plugins, die mit [`--plugin-dir`](/docs/de/cli-reference) geladen werden, `builtin` für integrierte Plugins, `skills-dir` für Plugins, die automatisch von [`.claude/skills/`](/docs/de/skills) geladen werden, und `synced` für Plugins, die von Ihrem claude.ai-Konto synchronisiert werden. `claude-plugin-test` ist ebenfalls reserviert. `skills-dir` erscheint auch als `{"source": "skills-dir"}` in `strictKnownMarketplaces` und `blockedMarketplaces`, beschrieben unter [Quellwerte, die nur in Richtlinienlisten gültig sind](#source-values-valid-only-in-policy-lists).52* **Namen, die Claude Code für Plugins verwendet, die nicht von einem Marketplace stammen**: `inline` für Plugins, die mit [`--plugin-dir`](/docs/de/cli-reference) geladen werden, `builtin` für integrierte Plugins, `skills-dir` für Plugins, die automatisch von [`.claude/skills/`](/docs/de/skills) geladen werden, und `synced` für Plugins, die von Ihrem claude.ai-Konto synchronisiert werden. `claude-plugin-test` ist ebenfalls reserviert. `skills-dir` erscheint auch als `{"source": "skills-dir"}` in `strictKnownMarketplaces` und `blockedMarketplaces`, beschrieben unter [Quellwerte, die nur in Richtlinienlisten gültig sind](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` und `gh`**: reserviert in jeder Schreibweise. Diese Überprüfung erfordert Claude Code v2.1.275 oder später.53* **`npm`, `pip`, `uv`, `cargo`, `github` und `gh`**: reserviert in jeder Schreibweise. Diese Überprüfung erfordert Claude Code v2.1.275 oder später.

54* **Member-Namen, die jedes JavaScript-Objekt besitzt**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` und `valueOf`. `claude plugin marketplace add` lehnt einen Marketplace, der einen dieser Namen verwendet, mit [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/de/plugins/troubleshooting#claude-code-reserves-this-name) ab. Diese Überprüfung erfordert Claude Code v2.1.296 oder später.54* **Member-Namen, die jedes JavaScript-Objekt besitzt**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` und `valueOf`. `claude plugin marketplace add` lehnt einen Marketplace, der einen dieser Namen verwendet, mit [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/de/plugins/troubleshooting#claude-code-reserves-this-name) ab. Diese Überprüfung erfordert Claude Code v2.1.296 oder später.

Details

252 252 

253Um einen Prompt zu stoppen, geben Sie `{ drop: 'the reason' }` zurück, ohne `next` aufzurufen. Der Text wandert zurück in das Eingabefeld des Benutzers, und dieser sieht `Prompt dropped by a hook:` gefolgt von Ihrem Grund, richten Sie den Grund also an ihn. Wenn Ihr Hook ein `drop` zurückgibt, nachdem sein Aufruf von `next(e)` den Prompt durchgelassen hat, wird der Turn trotzdem ausgeführt, und der Hook [schlägt fehl](#handle-a-hook-that-fails), mit einer Meldung, die `a drop after its next() was answered` enthält.253Um einen Prompt zu stoppen, geben Sie `{ drop: 'the reason' }` zurück, ohne `next` aufzurufen. Der Text wandert zurück in das Eingabefeld des Benutzers, und dieser sieht `Prompt dropped by a hook:` gefolgt von Ihrem Grund, richten Sie den Grund also an ihn. Wenn Ihr Hook ein `drop` zurückgibt, nachdem sein Aufruf von `next(e)` den Prompt durchgelassen hat, wird der Turn trotzdem ausgeführt, und der Hook [schlägt fehl](#handle-a-hook-that-fails), mit einer Meldung, die `a drop after its next() was answered` enthält.

254 254 

255[Weitere Events](/docs/de/plugins/mods/reference#prompts-and-what-claude-reads) decken den Rest dessen ab, was Claude liest: `prompt.section` für jeden Abschnitt des System-Prompts, `prompt.context` für den mit der ersten Nachricht gesendeten Kontext und `skill.prompt` für den Text eines Skills. Text aus diesen Hooks, der sich zwischen Anfragen ändert, [macht den Prompt-Cache ungültig](/docs/de/prompt-caching).255[Weitere Events](/docs/de/plugins/mods/reference#prompts-and-what-claude-reads) decken den Rest dessen ab, was Claude liest: `prompt.section` für jeden Abschnitt des System-Prompts, `prompt.context` für den mit der ersten Nachricht gesendeten Kontext und `skill.prompt` für den Text eines Skills. Text aus diesen Hooks, der sich zwischen Anfragen ändert, [macht den Prompt-Cache ungültig](/docs/de/prompt-caching). In einem `skill.prompt`-Hook können Sie außerdem auslesen, [aus welchem Plugin oder welcher Datei der Skill stammt](/docs/de/plugins/mods/reference#skill-prompt-fields).

256 256 

257<h3 id="follow-a-turn">257<h3 id="follow-a-turn">

258 Einen Turn verfolgen258 Einen Turn verfolgen

Details

212 Wo Mods ausgeführt werden212 Wo Mods ausgeführt werden

213</h3>213</h3>

214 214 

215Die Hooks eines Mods werden in jeder Art von Sitzung ausgeführt, die das Plugin lädt. Beim Zeichnen ist der Umfang enger: Nur das Terminal und die Desktop-App zeigen die Bereiche, Bänder und ersetzten Zeilen eines Mods an. Diese Tabelle listet jeden Ort auf, an dem Sie Claude Code ausführen können:215Die Hooks eines Mods werden in jeder Art von Sitzung ausgeführt, die das Plugin lädt, unabhängig davon, welcher Anbieter das Modell bereitstellt, einschließlich Amazon Bedrock, Agent Platform von Google Cloud und Microsoft Foundry. Beim Zeichnen ist der Umfang enger: Nur das Terminal und die Desktop-App zeigen die Bereiche, Bänder und ersetzten Zeilen eines Mods an. Diese Tabelle listet jeden Ort auf, an dem Sie Claude Code ausführen können:

216 216 

217| Wo Sie Claude Code ausführen | Hooks werden ausgeführt | Was der Mod zeichnet, wird angezeigt |217| Wo Sie Claude Code ausführen | Hooks werden ausgeführt | Was der Mod zeichnet, wird angezeigt |

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


263| `cc-plugin-plugin-authoring` | Stellt Claude den [Skill `plugin-authoring`](/docs/de/plugins/mods/create#ask-claude-for-a-mod) zum Schreiben von Mods bereit. Er enthält einen Skill und keinen Mod-Code. | Sofern Anthropic installierte Mods nicht remote ausgeschaltet hat | Deaktivieren Sie ihn in `/plugin` |263| `cc-plugin-plugin-authoring` | Stellt Claude den [Skill `plugin-authoring`](/docs/de/plugins/mods/create#ask-claude-for-a-mod) zum Schreiben von Mods bereit. Er enthält einen Skill und keinen Mod-Code. | Sofern Anthropic installierte Mods nicht remote ausgeschaltet hat | Deaktivieren Sie ihn in `/plugin` |

264| `cc-plugin-sec-default` | Schützt das, was Ihre Organisation verwaltet, vor den Mods, die ein Benutzer installiert | [Wo der Schutz geladen wird](/docs/de/plugins/mods/admin#know-what-happens-by-default) | Nicht möglich. Ein Administrator [legt die Reihenfolge](/docs/de/plugins/mods/admin#install-your-organizations-mods) in den verwalteten Einstellungen fest |264| `cc-plugin-sec-default` | Schützt das, was Ihre Organisation verwaltet, vor den Mods, die ein Benutzer installiert | [Wo der Schutz geladen wird](/docs/de/plugins/mods/admin#know-what-happens-by-default) | Nicht möglich. Ein Administrator [legt die Reihenfolge](/docs/de/plugins/mods/admin#install-your-organizations-mods) in den verwalteten Einstellungen fest |

265| `cc-plugin-telemetry` | Sendet die Analysedatensätze, die Claude Code und seine integrierten Mods protokollieren | Überall dort, wo die eigenen Analysen von Claude Code aktiviert sind | Deaktivieren Sie ihn in `/plugin`, oder schalten Sie die Analysen aus, zum Beispiel mit [`DISABLE_TELEMETRY`](/docs/de/env-vars) |265| `cc-plugin-telemetry` | Sendet die Analysedatensätze, die Claude Code und seine integrierten Mods protokollieren | Überall dort, wo die eigenen Analysen von Claude Code aktiviert sind | Deaktivieren Sie ihn in `/plugin`, oder schalten Sie die Analysen aus, zum Beispiel mit [`DISABLE_TELEMETRY`](/docs/de/env-vars) |

266| `cc-plugin-you-should-know` | Führt einen Neben-Agenten aus, der Ihnen den Rücken freihält, während Claude an längeren Aufgaben arbeitet. Wenn er etwas Wissenswertes findet, das Ihnen entgehen könnte, zeigt er Ihnen einen Hinweis über dem Prompt an. | Standardmäßig deaktiviert. Wird unter `/plugin` -> **Installed** -> **Show disabled** aufgeführt, sofern er für Ihre Organisation verfügbar ist. Aktivieren Sie ihn mit [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/de/plugins/cli-reference#plugin-in-a-session). | Deaktivieren Sie ihn in `/plugin` |266| `cc-plugin-you-should-know` | [You should know](/docs/de/interactive-mode#you-should-know-suggestions): Ein Neben-Agent zeigt einen Hinweis über dem Prompt an, wenn er etwas findet, das Ihnen möglicherweise entgangen ist | Ausgeschaltet, bis Sie [ihn einschalten](/docs/de/interactive-mode#you-should-know-suggestions) | Deaktivieren Sie ihn in `/plugin` |

267 267 

268Die Einstellungen und Flags, die installierte Mods stoppen, wie `disableAllHooks`, `--bare` und `--safe-mode`, stoppen integrierte Mods nicht.268Die Einstellungen und Flags, die installierte Mods stoppen, wie `disableAllHooks`, `--bare` und `--safe-mode`, stoppen integrierte Mods nicht.

269 269 

Details

43| `next.origin` | `{ plugin, tier }` desjenigen, der das Event ausgelöst hat. Claude Code selbst ist `{ plugin: 'engine', tier: 'core' }`. Der `tier` eines Mods ist seine Prioritätsgruppe in der [Reihenfolge, in der Mods ausgeführt werden](/docs/de/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` oder `builtin`. |43| `next.origin` | `{ plugin, tier }` desjenigen, der das Event ausgelöst hat. Claude Code selbst ist `{ plugin: 'engine', tier: 'core' }`. Der `tier` eines Mods ist seine Prioritätsgruppe in der [Reihenfolge, in der Mods ausgeführt werden](/docs/de/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` oder `builtin`. |

44| `next.budget` | Das Zeitlimit des Hooks in Millisekunden: `next.budget.ms` ist das gesamte Limit, und `next.budget.remainingMs` ist die aktuell verbleibende Zeit |44| `next.budget` | Das Zeitlimit des Hooks in Millisekunden: `next.budget.ms` ist das gesamte Limit, und `next.budget.remainingMs` ist die aktuell verbleibende Zeit |

45| `next.to(e, tier)` | Springt zu einem späteren Tier, nämlich `append`, `builtin` oder `core`. `next.to(e, 'append')` überspringt die Mods, die ein Benutzer installiert hat. Nur ein Mod in `prependPlugins` oder `appendPlugins` kann es aufrufen. |45| `next.to(e, tier)` | Springt zu einem späteren Tier, nämlich `append`, `builtin` oder `core`. `next.to(e, 'append')` überspringt die Mods, die ein Benutzer installiert hat. Nur ein Mod in `prependPlugins` oder `appendPlugins` kann es aufrufen. |

46| `next.error` | Nur in einem `.catch`-Handler. `kind` ist `throw` oder `timeout`, wenn der Hook fehlgeschlagen ist, und `message` ist der Text des Fehlers. `kind` ist `re-entry`, wenn der Hook übersprungen wurde, weil das Event aus einem seiner eigenen Aufrufe der Mods-API stammte, und `cause` ist `lent`, wenn eine Methode, die ein anderer Mod zur Mods-API hinzufügt, dieses Event ausgelöst hat. `re-entry` und `cause` erfordern Claude Code v2.1.292 oder höher. |46| `next.error` | Nur in einem `.catch`-Handler. `kind` ist `throw` oder `timeout`, wenn der Hook fehlgeschlagen ist, und `message` ist der Text des Fehlers. `kind` ist `re-entry`, wenn der Hook übersprungen wurde, weil das Event aus einem Aufruf der Mods-API stammte, den dieser Hook oder der Code Ihres Mods außerhalb seiner Hooks ausgeführt hat. `re-entry` erfordert Claude Code v2.1.292 oder höher. |

47| `next.error.cause` | Nur gesetzt, wenn `kind` gleich `re-entry` ist. `rewritten`, wenn ein `tool.call`- oder [`PreToolUse`](/docs/de/hooks#pretooluse)-Hook den Aufruf der Mods-API geändert hat, aus dem das Event stammte, oder ein `agent.spawn`-Hook einen durch diesen Aufruf gestarteten Agenten geändert hat. `lent`, wenn eine Methode, die ein anderer Mod zur Mods-API hinzufügt, dieses Event ausgelöst hat, sofern nicht auch `rewritten` zutrifft. `lent` erfordert Claude Code v2.1.292 oder höher und `rewritten` v2.1.300 oder höher. |

47| `next.called` | Nur in einem `.catch`-Handler. `true`, wenn der Hook `next` aufgerufen hatte. |48| `next.called` | Nur in einem `.catch`-Handler. `true`, wenn der Hook `next` aufgerufen hatte. |

48 49 

49<h2 id="events">50<h2 id="events">


97| [`skill.prompt`](/docs/de/plugins/mods/events#rewrite-or-add-to-a-prompt) | Der Text eines Skills für Claude expandiert wird | `{ text }` |98| [`skill.prompt`](/docs/de/plugins/mods/events#rewrite-or-add-to-a-prompt) | Der Text eines Skills für Claude expandiert wird | `{ text }` |

98| `attribution.text` | Claude Code den Attributionstext für einen Commit oder Pull Request erstellt | `{ text }` |99| `attribution.text` | Claude Code den Attributionstext für einen Commit oder Pull Request erstellt | `{ text }` |

99 100 

101<h4 id="skill-prompt-fields">

102 Quell- und Frontmatter-Felder in `skill.prompt`

103</h4>

104 

105In einem `skill.prompt`-Hook können Sie diese Felder zusammen mit dem Namen des Skills in `e.skill` und dem Text, den Claude liest, in `e.text` lesen:

106 

107| Feld | Typ | Was es enthält |

108| :- | :- | :- |

109| `e.source` | string | Wer den Skill bereitstellt: `policySettings`, `userSettings` oder `projectSettings` für einen Skill am Unternehmens-, persönlichen bzw. Projekt-[Speicherort](/docs/de/skills#where-skills-live). Andere Quellen liefern ein Wort wie `plugin`, `mcp`, `syncedSkills` oder `built-in`. |

110| `e.pluginName` | string | Der Name des Plugins, für einen Skill, dessen `e.source` gleich `plugin` ist |

111| `e.path` | string | Der absolute Pfad der `SKILL.md`-Datei des Skills oder seiner `.md`-Datei bei einem Skill, der als [Befehlsdatei](/docs/de/skills#where-skills-live) geschrieben ist. Nicht vorhanden, wenn der Skill auf diesem Rechner keine Datei hat, wie bei einem integrierten Skill. |

112| `e.frontmatter` | object | Das Frontmatter der Datei des Skills als einfache Daten |

113| `e.frontmatterProblem` | string | Der Grund, warum in `e.frontmatter` das Frontmatter der Datei oder einer seiner Schlüssel fehlt, wie in `is a list or a single value, not a table`. Nicht vorhanden, wenn `e.frontmatter` das gesamte Frontmatter enthält oder der Skill keines hat. |

114 

115Ein Hook kann einen geänderten `text` oder ein geändertes `frontmatter` an `next` übergeben: Die Hooks danach lesen beides, und Claude liest den endgültigen `text`. Ein Hook, der ein anderes Feld ändert, [schlägt fehl](/docs/de/plugins/mods/events#handle-a-hook-that-fails).

116 

117Bei `skill.prompt` erfordern `e.source`, `e.pluginName`, `e.path`, `e.frontmatter` und `e.frontmatterProblem` Claude Code v2.1.299 oder höher.

118 

100<h3 id="commands-and-configuration">119<h3 id="commands-and-configuration">

101 Befehle und Konfiguration120 Befehle und Konfiguration

102</h3>121</h3>

Details

31* [**Skills**](/docs/de/plugins/components#skills): `SKILL.md`-Anweisungen, die Claude lädt, wenn relevant, und die Sie auch als Befehl ausführen können31* [**Skills**](/docs/de/plugins/components#skills): `SKILL.md`-Anweisungen, die Claude lädt, wenn relevant, und die Sie auch als Befehl ausführen können

32* [**Agents**](/docs/de/plugins/components#agents): Subagent-Definitionen, an die Claude delegieren kann32* [**Agents**](/docs/de/plugins/components#agents): Subagent-Definitionen, an die Claude delegieren kann

33* [**Hooks**](/docs/de/plugins/components#hooks): Befehle, die Claude Code an Punkten in seinem Lebenszyklus ausführt, z. B. nach jeder Bearbeitung33* [**Hooks**](/docs/de/plugins/components#hooks): Befehle, die Claude Code an Punkten in seinem Lebenszyklus ausführt, z. B. nach jeder Bearbeitung

34* [**Ein Hooks-Modul**](/docs/de/plugins/mods/overview): Hooks, die als JavaScript-Funktionen geschrieben sind und auch Bereiche zeichnen und Befehle hinzufügen können. Ein Plugin, das eines hat, wird Mod genannt34* [**Ein Hooks-Modul**](/docs/de/plugins/mods/overview): Hooks, die als JavaScript-Funktionen geschrieben sind und auch Bereiche zeichnen und Befehle hinzufügen können. Ein Plugin, das eines hat, wird Mod genannt. Einige Mods sind [in Claude Code integriert](/docs/de/plugins/mods/overview#mods-built-into-claude-code).

35* [**MCP-Server**](/docs/de/plugins/components#mcp-servers): Tool-Server, mit denen sich Claude Code verbindet, während das Plugin aktiviert ist35* [**MCP-Server**](/docs/de/plugins/components#mcp-servers): Tool-Server, mit denen sich Claude Code verbindet, während das Plugin aktiviert ist

36 36 

37Dieses Diagramm zeigt ein Plugin namens `my-plugin`, das eine Skill, einen Agent, Hooks und einen MCP-Server enthält, und was Sie von jeder Datei erhalten, sobald das Plugin geladen wird.37Dieses Diagramm zeigt ein Plugin namens `my-plugin`, das eine Skill, einen Agent, Hooks und einen MCP-Server enthält, und was Sie von jeder Datei erhalten, sobald das Plugin geladen wird.

Details

693| Meldung | Bedeutung | Wie zu beheben |693| Meldung | Bedeutung | Wie zu beheben |

694| :- | :- | :- |694| :- | :- | :- |

695| `Dependency "<dep>" is not installed` | Eine deklarierte Abhängigkeit ist nicht installiert. | Installieren Sie sie in Ihrer Shell mit `claude plugin install <dep>@<marketplace>`, oder deinstallieren Sie das Plugin. Wenn der Marktplatz der Abhängigkeit noch nicht registriert ist, fügen Sie ihn hinzu und führen Sie `/reload-plugins` in Ihrer Sitzung aus, was die fehlenden Abhängigkeiten installiert, die es auflösen kann. |695| `Dependency "<dep>" is not installed` | Eine deklarierte Abhängigkeit ist nicht installiert. | Installieren Sie sie in Ihrer Shell mit `claude plugin install <dep>@<marketplace>`, oder deinstallieren Sie das Plugin. Wenn der Marktplatz der Abhängigkeit noch nicht registriert ist, fügen Sie ihn hinzu und führen Sie `/reload-plugins` in Ihrer Sitzung aus, was die fehlenden Abhängigkeiten installiert, die es auflösen kann. |

696| `"<name>@synced" is loaded from your claude.ai account but meets a marketplace dependency only for other claude.ai plugins`, innerhalb der Meldung `is not installed` | Die Abhängigkeit nennt einen Marktplatz, und ein Plugin dieses Namens wird aus Ihrem claude.ai-Konto geladen. Das Plugin, das die Abhängigkeit deklariert, wird nicht aus claude.ai geladen, daher erfüllt das claude.ai-Plugin sie nicht. | Führen Sie in Ihrer Shell `claude plugin install <dep>@<marketplace>` aus, um die Abhängigkeit aus ihrem Marktplatz zu installieren. Die Marktplatz-Kopie wird dann anstelle der claude.ai-Kopie geladen. |

696| `Dependency "<dep>" is disabled` | Die Abhängigkeit ist installiert, aber ausgeschaltet. | Aktivieren Sie die Abhängigkeit, oder deinstallieren Sie das Plugin, das sie benötigt. |697| `Dependency "<dep>" is disabled` | Die Abhängigkeit ist installiert, aber ausgeschaltet. | Aktivieren Sie die Abhängigkeit, oder deinstallieren Sie das Plugin, das sie benötigt. |

697| `Requires "<dep>" <range>, installed <version>` | Die Version der installierten Abhängigkeit liegt außerhalb des deklarierten Bereichs des Plugins. | Aktualisieren Sie die Abhängigkeit auf eine Version im Bereich, oder deinstallieren Sie das Plugin. |698| `Requires "<dep>" <range>, installed <version>` | Die Version der installierten Abhängigkeit liegt außerhalb des deklarierten Bereichs des Plugins. | Aktualisieren Sie die Abhängigkeit auf eine Version im Bereich, oder deinstallieren Sie das Plugin. |

698| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Keine Version erfüllt jeden Bereich, der sie pinnt. Die Meldung listet die Bereiche auf. | Deinstallieren oder aktualisieren Sie eines der in Konflikt stehenden Plugins, oder bitten Sie den Upstream-Autor, seine Einschränkung zu lockern. |699| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Keine Version erfüllt jeden Bereich, der sie pinnt. Die Meldung listet die Bereiche auf. | Deinstallieren oder aktualisieren Sie eines der in Konflikt stehenden Plugins, oder bitten Sie den Upstream-Autor, seine Einschränkung zu lockern. |


700| `... has no git tag satisfying <range>` | Das Repository der Abhängigkeit hat kein `<name>--v*`-Tag im Bereich. | Überprüfen Sie, dass der Upstream-Releases mit dieser Konvention taggt, oder lockern Sie den Bereich. |701| `... has no git tag satisfying <range>` | Das Repository der Abhängigkeit hat kein `<name>--v*`-Tag im Bereich. | Überprüfen Sie, dass der Upstream-Releases mit dieser Konvention taggt, oder lockern Sie den Bereich. |

701| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | Die Abhängigkeit befindet sich in einem anderen Marktplatz, und die marktplatzübergreifende Auflösung ist standardmäßig deaktiviert. | Installieren Sie die Abhängigkeit selbst im gleichen Bereich, in Ihrer Shell mit `claude plugin install <dep>@<marketplace>` plus dem `--scope`, in dem Sie das Plugin installieren, und versuchen Sie es dann erneut. |702| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | Die Abhängigkeit befindet sich in einem anderen Marktplatz, und die marktplatzübergreifende Auflösung ist standardmäßig deaktiviert. | Installieren Sie die Abhängigkeit selbst im gleichen Bereich, in Ihrer Shell mit `claude plugin install <dep>@<marketplace>` plus dem `--scope`, in dem Sie das Plugin installieren, und versuchen Sie es dann erneut. |

702 703 

703Um diese programmgesteuert zu sehen, führen Sie `claude plugin list --json` in Ihrer Shell aus. Plugins mit Problemen tragen ein `errors`-Feld mit den Meldungen und ein `errorDetails`-Feld mit einem `type` für jede: die ersten zwei Zeilen sind `dependency-unsatisfied` und die dritte ist `dependency-version-unsatisfied`.704Um diese programmgesteuert zu sehen, führen Sie `claude plugin list --json` in Ihrer Shell aus. Plugins mit Problemen tragen ein `errors`-Feld mit den Meldungen und ein `errorDetails`-Feld mit einem `type` für jede: die ersten drei Zeilen sind `dependency-unsatisfied` und die vierte ist `dependency-version-unsatisfied`.

704 705 

705<h2 id="plugin-installed-but-not-working">706<h2 id="plugin-installed-but-not-working">

706 Plugin installiert, aber funktioniert nicht707 Plugin installiert, aber funktioniert nicht

Details

211 Komprimierung funktioniert zu Ihrem Vorteil, wenn der Kontext, den Sie verwerfen, Inhalte sind, die Sie nicht mehr benötigen. Um zu wählen, wann ihr Overhead auftritt, führen Sie `/compact` an einer natürlichen Pause in Ihrer Arbeit aus, z. B. zwischen Aufgaben, anstatt zu warten, bis die automatische Komprimierung während einer Aufgabe ausgelöst wird. Wenn Sie einen Weg eingeschlagen haben, den Sie vollständig aufgeben möchten, springen Sie stattdessen mit [`/rewind`](#rewinding-the-conversation) zu einem früheren Turn zurück. Das Zurückspulen schneidet auf ein Präfix zurück, das bereits zwischengespeichert ist, anstatt ein neues zu erstellen, wie es die Komprimierung tut.211 Komprimierung funktioniert zu Ihrem Vorteil, wenn der Kontext, den Sie verwerfen, Inhalte sind, die Sie nicht mehr benötigen. Um zu wählen, wann ihr Overhead auftritt, führen Sie `/compact` an einer natürlichen Pause in Ihrer Arbeit aus, z. B. zwischen Aufgaben, anstatt zu warten, bis die automatische Komprimierung während einer Aufgabe ausgelöst wird. Wenn Sie einen Weg eingeschlagen haben, den Sie vollständig aufgeben möchten, springen Sie stattdessen mit [`/rewind`](#rewinding-the-conversation) zu einem früheren Turn zurück. Das Zurückspulen schneidet auf ein Präfix zurück, das bereits zwischengespeichert ist, anstatt ein neues zu erstellen, wie es die Komprimierung tut.

212</Tip>212</Tip>

213 213 

214Wenn Sie eine lange Konversation in einer Terminal-Sitzung ruhen lassen, während sie die [einstündige TTL](#which-ttl-each-request-gets) verwendet, kann Claude Code sie kurz vor Ablauf des Cache komprimieren. Um die Komprimierung im Leerlauf zu deaktivieren, setzen Sie [`idleCompaction`](/docs/de/settings-reference#idlecompaction) auf `false`, was Claude Code v2.1.290 oder später erfordert.

215 

214<h3 id="accumulating-many-images">216<h3 id="accumulating-many-images">

215 Viele Bilder sammeln217 Viele Bilder sammeln

216</h3>218</h3>

Details

261 261 

262Biometrische Überprüfungen werden auf dem Gerät über das Betriebssystem oder den Browser durchgeführt, denselben Mechanismus wie die Passkey-Anmeldung. Anthropic erhält oder speichert niemals Fingerabdrücke, Gesichtsdaten oder andere biometrische Informationen. Nur der öffentliche Schlüssel des Geräts und grundlegende Metadaten wie Anzeigename, Plattform und Registrierungszeit werden gespeichert.262Biometrische Überprüfungen werden auf dem Gerät über das Betriebssystem oder den Browser durchgeführt, denselben Mechanismus wie die Passkey-Anmeldung. Anthropic erhält oder speichert niemals Fingerabdrücke, Gesichtsdaten oder andere biometrische Informationen. Nur der öffentliche Schlüssel des Geräts und grundlegende Metadaten wie Anzeigename, Plattform und Registrierungszeit werden gespeichert.

263 263 

264Die Einstellung gilt für Remote Control sowohl in Claude Code als auch in [Cowork](https://claude.com/docs/cowork/overview). Diese Seite behandelt die Seite von Claude Code. Regulärer Claude-Chat, Claude Code im Terminal und API-Nutzung sind nicht betroffen.264Die Einstellung gilt für Remote Control in Claude Code und für den Computerzugriff in [Cowork](https://claude.com/docs/cowork/overview). Diese Seite behandelt die Seite von Claude Code. Regulärer Claude-Chat, Claude Code im Terminal und API-Nutzung sind nicht betroffen.

265 265 

266<h3 id="enable-trusted-devices-for-your-organization">266<h3 id="enable-trusted-devices-for-your-organization">

267 Aktivieren Sie Vertrauenswürdige Geräte für eine Team- oder Enterprise-Organisation267 Aktivieren Sie Vertrauenswürdige Geräte für eine Team- oder Enterprise-Organisation

routines.md +27 −14

Details

52 52 

53Das Erstellungsformular richtet den Prompt der Routine, Repositories, Umgebung, Konnektoren und Trigger ein.53Das Erstellungsformular richtet den Prompt der Routine, Repositories, Umgebung, Konnektoren und Trigger ein.

54 54 

55Routinen werden autonom als vollständige Claude Code-Cloud-Sitzungen ausgeführt: Es gibt keinen Berechtigungsmodus-Picker und die Sitzung führt Shell-Befehle aus, verwendet [Skills](/docs/de/skills), die im geklonten Repository committed sind, und ruft alle Konnektoren auf, die Sie einbeziehen, alles ohne Unterbrechung für Genehmigung außer einigen [Artefakt](/docs/de/artifacts)-Aktionen.55Routinen werden autonom als vollständige Claude Code-Cloud-Sitzungen ausgeführt: Es gibt keine Auswahl für den Berechtigungsmodus, und die Sitzung führt Shell-Befehle aus, verwendet [Skills](/docs/de/skills), die im geklonten Repository committet sind, und ruft alle Konnektoren auf, die Sie einbeziehen, alles ohne Unterbrechung für eine Genehmigung außer bei einigen [Artefakt-Aktionen](#when-a-run-publishes-an-artifact-without-asking).

56 56 

57Was eine Routine erreichen kann, wird durch die Repositories bestimmt, die Sie auswählen, den [Netzwerkzugriff und die Variablen der Umgebung](/docs/de/cloud-environments) und die Konnektoren, die Sie einbeziehen. Beschränken Sie jeden dieser Punkte auf das, was die Routine tatsächlich benötigt.57Was eine Routine erreichen kann, wird durch die Repositories bestimmt, die Sie auswählen, den [Netzwerkzugriff und die Variablen der Umgebung](/docs/de/cloud-environments) und die Konnektoren, die Sie einbeziehen. Beschränken Sie jeden dieser Punkte auf das, was die Routine tatsächlich benötigt.

58 58 

59Wenn der Zeitplan der Routine oder **Jetzt ausführen** eine Ausführung startet, republiziert Claude ein vorhandenes Artefakt ohne Nachfrage nur, wenn alle diese Bedingungen erfüllt sind:

60 

61* Sie können das Artefakt bearbeiten und es gehört zu Ihrer eigenen Organisation

62* Das Artefakt wird nicht öffentlich geteilt

63* Wenn das Artefakt mit bestimmten Personen oder Ihrer Organisation geteilt wird, sehen die Betrachter nicht automatisch jede neue Version

64* Die Veröffentlichung enthält nur die Seite, ohne unterstützende Dateien oder etwas anderes hinzugefügt, und erzwingt keine neuere Version

65* Die Seite enthält keine Berechtigung, die über die Seite hinausgeht, wie z. B. [Konnektor-Aufrufe](/docs/de/artifacts#pull-live-data-with-mcp-connectors)

66 

67In jedem anderen Fall, einschließlich der Veröffentlichung eines neuen Artefakts, fragt Claude zuerst. Wenn die Aufgabe einer Routine darin besteht, eine Seite aktuell zu halten, geben Sie ihr ein Artefakt, das Sie bereits veröffentlicht haben.

68 

69Routinen gehören zu Ihrem individuellen claude.ai-Konto. Sie werden nicht mit Teamkollegen geteilt und zählen gegen die [Nutzung und Limits](#usage-and-limits) Ihres Kontos. Alles, was eine Routine durch Ihre verbundene GitHub-Identität oder Konnektoren tut, erscheint als Sie: Commits und Pull Requests tragen Ihren GitHub-Benutzer, und Slack-Nachrichten, Linear-Tickets oder andere Konnektor-Aktionen verwenden Ihre verknüpften Konten für diese Dienste.59Routinen gehören zu Ihrem individuellen claude.ai-Konto. Sie werden nicht mit Teamkollegen geteilt und zählen gegen die [Nutzung und Limits](#usage-and-limits) Ihres Kontos. Alles, was eine Routine durch Ihre verbundene GitHub-Identität oder Konnektoren tut, erscheint als Sie: Commits und Pull Requests tragen Ihren GitHub-Benutzer, und Slack-Nachrichten, Linear-Tickets oder andere Konnektor-Aktionen verwenden Ihre verknüpften Konten für diese Dienste.

70 60 

71<h3 id="create-from-the-web">61<h3 id="create-from-the-web">


93 Wählen Sie eine [Cloud-Umgebung](/docs/de/cloud-environments) für die Routine. Umgebungen steuern, worauf die Cloud-Sitzung Zugriff hat:83 Wählen Sie eine [Cloud-Umgebung](/docs/de/cloud-environments) für die Routine. Umgebungen steuern, worauf die Cloud-Sitzung Zugriff hat:

94 84 

95 * **Netzwerkzugriff**: Legen Sie die Stufe des Internet-Zugriffs fest, der während jeder Ausführung verfügbar ist85 * **Netzwerkzugriff**: Legen Sie die Stufe des Internet-Zugriffs fest, der während jeder Ausführung verfügbar ist

96 * **Umgebungsvariablen**: Stellen Sie Werte bereit, die Claude während jeder Ausführung verwenden kann. Sie sind [für jeden sichtbar, der die Umgebung nutzt](/docs/de/cloud-environments#what-carries-over-from-your-setup), daher speichern Sie auf Pro- und Max-Plänen Schlüssel für die APIs, die Claude während einer Ausführung aufruft, stattdessen als [Netzwerk-Secrets](/docs/de/cloud-environments#add-network-secrets). Dieser Abschnitt listet auch die Anfragen auf, die niemals ein Secret erhalten86 * **Umgebungsvariablen**: Stellen Sie Werte bereit, die Claude während jeder Ausführung verwenden kann. Sie sind [für jeden sichtbar, der die Umgebung nutzt](/docs/de/cloud-environments#what-carries-over-from-your-setup), daher speichern Sie in einer von Anthropic gehosteten Umgebung Schlüssel für die APIs, die Claude während einer Ausführung aufruft, stattdessen als [Netzwerk-Secrets](/docs/de/cloud-environments#add-network-secrets). Dieser Abschnitt listet auch die Anfragen auf, die niemals ein Secret erhalten

97 * **Setup-Skript**: Installieren Sie Abhängigkeiten und Tools, die die Routine benötigt. Das Ergebnis wird [zwischengespeichert](/docs/de/cloud-environments#environment-caching), sodass das Skript nicht bei jeder Sitzung erneut ausgeführt wird87 * **Setup-Skript**: Installieren Sie Abhängigkeiten und Tools, die die Routine benötigt. Das Ergebnis wird [zwischengespeichert](/docs/de/cloud-environments#environment-caching), sodass das Skript nicht bei jeder Sitzung erneut ausgeführt wird

98 88 

99 Eine **Standard**-Umgebung wird mit **Vertrauenswürdigem** Netzwerkzugriff bereitgestellt, der nur die [Standard-Zulassungsliste](/docs/de/cloud-environments#default-allowed-domains) von Paket-Registries, Cloud-Provider-APIs, Container-Registries und häufigen Entwicklungsdomänen ermöglicht. Konnektoren, die Sie zur Routine hinzufügen, erreichen ihre Dienste über Anthropic-Server, daher benötigen sie keine Änderungen an der Zulassungsliste. Wenn Ihre Routine Ihre eigenen Dienste direkt oder eine Domain außerhalb dieser Liste erreichen muss, bearbeiten Sie den [Netzwerkzugriff](/docs/de/cloud-environments#network-access) der Umgebung vor der Ausführung. Um eine separate Umgebung zu verwenden, [erstellen Sie eine](/docs/de/cloud-environments#configure-your-environment) zuerst.89 Eine **Standard**-Umgebung wird mit **Vertrauenswürdigem** Netzwerkzugriff bereitgestellt, der nur die [Standard-Zulassungsliste](/docs/de/cloud-environments#default-allowed-domains) von Paket-Registries, Cloud-Provider-APIs, Container-Registries und häufigen Entwicklungsdomänen ermöglicht. Konnektoren, die Sie zur Routine hinzufügen, erreichen ihre Dienste über Anthropic-Server, daher benötigen sie keine Änderungen an der Zulassungsliste. Wenn Ihre Routine Ihre eigenen Dienste direkt oder eine Domain außerhalb dieser Liste erreichen muss, bearbeiten Sie den [Netzwerkzugriff](/docs/de/cloud-environments#network-access) der Umgebung vor der Ausführung. Um eine separate Umgebung zu verwenden, [erstellen Sie eine](/docs/de/cloud-environments#configure-your-environment) zuerst.


182 172 

183Ein API-Trigger gibt einer Routine einen dedizierten HTTP-Endpunkt. Das Posten zum Endpunkt mit dem Bearer-Token der Routine startet eine neue Sitzung und gibt eine Sitzungs-URL zurück. Verwenden Sie dies, um Claude Code in Alerting-Systeme, Deploy-Pipelines, interne Tools oder überall dort zu integrieren, wo Sie eine authentifizierte HTTP-Anfrage stellen können.173Ein API-Trigger gibt einer Routine einen dedizierten HTTP-Endpunkt. Das Posten zum Endpunkt mit dem Bearer-Token der Routine startet eine neue Sitzung und gibt eine Sitzungs-URL zurück. Verwenden Sie dies, um Claude Code in Alerting-Systeme, Deploy-Pipelines, interne Tools oder überall dort zu integrieren, wo Sie eine authentifizierte HTTP-Anfrage stellen können.

184 174 

185API-Trigger werden einer vorhandenen Routine aus dem Web hinzugefügt. Die CLI kann derzeit keine Tokens erstellen oder widerrufen.175API-Trigger werden einer vorhandenen Routine aus dem Web hinzugefügt. Die CLI kann derzeit keine Token erstellen, neu generieren oder löschen.

186 176 

187<Steps>177<Steps>

188 <Step title="Öffnen Sie die Routine zur Bearbeitung">178 <Step title="Öffnen Sie die Routine zur Bearbeitung">


202 </Step>192 </Step>

203</Steps>193</Steps>

204 194 

205Jede Routine hat ihren eigenen Token, der nur zum Auslösen dieser Routine begrenzt ist. Um ihn zu rotieren oder zu widerrufen, kehren Sie zum gleichen Modal zurück und klicken Sie auf **Neu generieren** oder **Widerrufen**.195Jede Routine hat ihr eigenes Token, das nur zum Auslösen dieser Routine berechtigt. Um den API-Zugriff auszuschalten oder das Token zu rotieren, kehren Sie zum gleichen Modal zurück:

196 

197* **API-Zugriff ausschalten**: Klicken Sie auf **Token löschen**, das Papierkorbsymbol neben **Neu generieren**

198* **Token rotieren**: Klicken Sie auf **Neu generieren**

206 199 

207<h4 id="trigger-a-routine">200<h4 id="trigger-a-routine">

208 Routine auslösen201 Routine auslösen


379 372 

380Um Konnektoren außerhalb des Routine-Formulars zu verwalten oder hinzuzufügen, besuchen Sie [claude.ai/customize/connectors](https://claude.ai/customize/connectors) oder verwenden Sie `/schedule update` in der CLI.373Um Konnektoren außerhalb des Routine-Formulars zu verwalten oder hinzuzufügen, besuchen Sie [claude.ai/customize/connectors](https://claude.ai/customize/connectors) oder verwenden Sie `/schedule update` in der CLI.

381 374 

375<h3 id="when-a-run-publishes-an-artifact-without-asking">

376 Wenn eine Ausführung ein Artefakt ohne Nachfrage veröffentlicht

377</h3>

378 

379Wenn der Schedule einer Routine oder **Jetzt ausführen** eine Ausführung startet, kann Claude ein neues [Artefakt](/docs/de/artifacts) veröffentlichen, ohne nachzufragen. Das neue Artefakt ist nur für Sie sichtbar, bis Sie [es teilen](/docs/de/artifacts#share-an-artifact). Wenn die Veröffentlichung Laufzeitfähigkeiten für die Seite deklariert, etwa [Konnektor-Aufrufe](/docs/de/artifacts#pull-live-data-with-mcp-connectors) oder [Datei-Downloads](/docs/de/artifacts#offer-a-file-download), fragt Claude zuerst nach.

380 

381Bei diesen Ausführungen veröffentlicht Claude ein vorhandenes Artefakt nur dann ohne Nachfrage erneut, wenn alle folgenden Bedingungen erfüllt sind:

382 

383* Sie können das Artefakt bearbeiten, und es gehört zu Ihrer eigenen Organisation

384* Wenn die Veröffentlichung mehr als die Seite umfasst, etwa unterstützende Dateien, sind Sie Eigentümer des Artefakts

385* Das Artefakt ist nicht öffentlich geteilt

386* Wenn das Artefakt mit bestimmten Personen oder Ihrer Organisation geteilt ist, sehen seine Betrachter nicht automatisch jede neue Version

387* Die Veröffentlichung erzwingt kein Überschreiben einer neueren Version

388* Die Veröffentlichung deklariert keine Laufzeitfähigkeiten für die Seite

389* Die vorhandene Seite besitzt keine Freigabe, die über die Seite hinausreicht, etwa [Konnektor-Aufrufe](/docs/de/artifacts#pull-live-data-with-mcp-connectors)

390 

391In allen anderen Fällen, einschließlich einer Ausführung, die ein API- oder GitHub-Trigger startet, fragt Claude zuerst nach.

392 

393Wenn die Aufgabe einer Routine darin besteht, eine Seite aktuell zu halten, geben Sie ihr ein Artefakt, das Sie bereits veröffentlicht haben.

394 

382<h3 id="environments-and-network-access">395<h3 id="environments-and-network-access">

383 Umgebungen und Netzwerkzugriff396 Umgebungen und Netzwerkzugriff

384</h3>397</h3>

Details

79 79 

80In einer Sitzung, in der das [Monitor-Tool verfügbar ist](/docs/de/tools-reference#monitor-tool), kann Claude es direkt verwenden, wenn Sie einen dynamischen `/loop`-Zeitplan anfordern. Monitor führt ein Hintergrundskript aus und streamt jede Ausgabezeile zurück, was das Abrufen ganz vermeidet und oft token-effizienter und reaktiver ist als das erneute Ausführen eines Prompts in einem Intervall.80In einer Sitzung, in der das [Monitor-Tool verfügbar ist](/docs/de/tools-reference#monitor-tool), kann Claude es direkt verwenden, wenn Sie einen dynamischen `/loop`-Zeitplan anfordern. Monitor führt ein Hintergrundskript aus und streamt jede Ausgabezeile zurück, was das Abrufen ganz vermeidet und oft token-effizienter und reaktiver ist als das erneute Ausführen eines Prompts in einem Intervall.

81 81 

82Eine dynamisch geplante Schleife erscheint in Ihrer [geplanten Aufgabenliste](#manage-scheduled-tasks) wie jede andere Aufgabe, sodass Sie sie auf die gleiche Weise auflisten oder stornieren können. Die [Jitter-Regeln](#jitter) gelten nicht dafür, aber die [sieben-Tage-Ablauf](#seven-day-expiry) tut es.82Eine dynamisch geplante Schleife erscheint in Ihrer [geplanten Aufgabenliste](#manage-scheduled-tasks) wie jede andere Aufgabe, sodass Sie sie auf die gleiche Weise auflisten oder stornieren können. Die Liste zeigt ihren ausstehenden Wakeup als einmalige Aufgabe an, sodass ein für `:00` oder `:30` geplanter Wakeup [etwas früher ausgeführt werden kann](#when-a-one-shot-task-runs-early). Der [Sieben-Tage-Ablauf](#seven-day-expiry) gilt auch für die Schleife.

83 83 

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 


174| Tool | Zweck |174| Tool | Zweck |

175| :- | :- |175| :- | :- |

176| `CronCreate` | Planen Sie eine neue Aufgabe. Akzeptiert einen 5-Feld-Cron-Ausdruck, den auszuführenden Prompt und ob er wiederkehrend ist oder einmal läuft. |176| `CronCreate` | Planen Sie eine neue Aufgabe. Akzeptiert einen 5-Feld-Cron-Ausdruck, den auszuführenden Prompt und ob er wiederkehrend ist oder einmal läuft. |

177| `CronList` | Listet alle geplanten Aufgaben mit ihren IDs, Zeitplänen und Prompts auf. |177| `CronList` | Listet geplante Aufgaben mit ihren IDs, Zeitplänen, [nächsten Ausführungszeiten](#jitter) und Prompts auf. |

178| `CronDelete` | Stornieren Sie eine Aufgabe nach ID. |178| `CronDelete` | Stornieren Sie eine Aufgabe nach ID. |

179 179 

180Jede geplante Aufgabe hat eine 8-stellige ID, die Sie an `CronDelete` übergeben können. Eine Sitzung kann gleichzeitig bis zu 50 geplante Aufgaben enthalten.180Jede geplante Aufgabe hat eine 8-stellige ID, die Sie an `CronDelete` übergeben können. Eine Sitzung kann gleichzeitig bis zu 50 geplante Aufgaben enthalten.


193 193 

194Eine geplante Aufgabe kann zu einer anderen Zeit ausgeführt werden, als ihr Zeitplan angibt. Würden die Aufgaben aller Sitzungen exakt nach Zeitplan laufen, würden viele von ihnen die API im selben Moment aufrufen. Deshalb verschiebt Claude Code die Ausführungszeit jeder Aufgabe. Wiederkehrende Aufgaben laufen später, mit Ausnahme einer Aufgabe, die alle fünf Minuten läuft, geschrieben als `*/5 * * * *`. Einmalige Aufgaben, die zur vollen oder halben Stunde geplant sind, laufen etwas früher.194Eine geplante Aufgabe kann zu einer anderen Zeit ausgeführt werden, als ihr Zeitplan angibt. Würden die Aufgaben aller Sitzungen exakt nach Zeitplan laufen, würden viele von ihnen die API im selben Moment aufrufen. Deshalb verschiebt Claude Code die Ausführungszeit jeder Aufgabe. Wiederkehrende Aufgaben laufen später, mit Ausnahme einer Aufgabe, die alle fünf Minuten läuft, geschrieben als `*/5 * * * *`. Einmalige Aufgaben, die zur vollen oder halben Stunde geplant sind, laufen etwas früher.

195 195 

196Um zu sehen, wann eine Aufgabe als Nächstes fällig ist, lesen Sie die Zeile unter Claudes `CronCreate`-Aufruf in Ihrem Terminal. Die Zeile zeigt diese Zeit nach dem Zeitplan an, zum Beispiel `next run 10:21 AM`. Um später erneut nachzusehen, [bitten Sie Claude, Ihre Aufgaben aufzulisten](#manage-scheduled-tasks), und suchen Sie in den Zeilen unter dem `CronList`-Aufruf nach `next run`. Die nächsten Ausführungszeiten in diesen Zeilen erfordern Claude Code v2.1.299 oder höher.

197 

196<h4 id="how-late-a-recurring-task-runs">198<h4 id="how-late-a-recurring-task-runs">

197 Wie viel später eine wiederkehrende Aufgabe läuft199 Wie viel später eine wiederkehrende Aufgabe läuft

198</h4>200</h4>

Details

1001. Ein Runner mit freier Kapazität beansprucht die Sitzung und hält einen Lease darauf.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.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.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 nicht mehr abfragt, läuft sein Lease nach etwa 60 Sekunden ab, und der Server reiht die Sitzung innerhalb weniger Minuten für einen anderen Runner erneut ein.1034. Wenn der Runner nicht mehr abfragt, läuft sein Lease nach etwa 60 Sekunden ab. Der Server kann dann einige Minuten und manchmal auch länger brauchen, um die Sitzung für einen anderen Runner erneut einzureihen.

104 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.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 106 

Details

40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Für eine Claude Tag-Sitzung, die zu einem Slack-Thread gehört, der Slack-Zeitstempel dieses Threads, etwa `1700000000.000100`. Kann nicht gesetzt sein und kann gesetzt sein, wenn `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` es nicht ist; prüfen Sie daher jede Variable einzeln. |40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Für eine Claude Tag-Sitzung, die zu einem Slack-Thread gehört, der Slack-Zeitstempel dieses Threads, etwa `1700000000.000100`. Kann nicht gesetzt sein und kann gesetzt sein, wenn `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` es nicht ist; prüfen Sie daher jede Variable einzeln. |

41| `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. |41| `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. |

42| `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. Das Verzeichnis bleibt unter `<base-dir>/_sessions/` nach dem Sitzungsende, es sei denn, Sie starten den Runner mit [`--remove-session-state`](/docs/de/self-hosted-environments-reference#runner-cli-flags); siehe [Einen vorgewärmten Checkout wiederverwenden](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |42| `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. Das Verzeichnis bleibt unter `<base-dir>/_sessions/` nach dem Sitzungsende, es sei denn, Sie starten den Runner mit [`--remove-session-state`](/docs/de/self-hosted-environments-reference#runner-cli-flags); siehe [Einen vorgewärmten Checkout wiederverwenden](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |

43| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Pfad zu einer Datei in `CLAUDE_CONFIG_DIR`, die die MCP-Server-Definitionen enthält, die die Kontrollebene von Anthropic für diese Sitzung bereitgestellt hat. Wenn Ihr Wrapper die Umgebung des Kindes neu erstellt, übertragen Sie diese Variable. Ohne sie beendet das Kind, wenn die Kontrollebene die bereitgestellten Server aktualisiert, jeden stdio-, HTTP- oder SSE-Server, den Ihr Wrapper mit [`--mcp-config`](/docs/de/cli-reference#cli-flags) hinzufügt und der nicht in der Aktualisierung enthalten ist. Erfordert Claude Code v2.1.299 oder später. |

43| `ANTHROPIC_BASE_URL` | Die API-Basis-URL, die das Kind verwendet, bereitgestellt von der Kontrollebene 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. |44| `ANTHROPIC_BASE_URL` | Die API-Basis-URL, die das Kind verwendet, bereitgestellt von der Kontrollebene 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. |

44| `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. |45| `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. |

45 46 


51 Variablen, die nicht gesetzt sein können, mit einem Standardwert versehen52 Variablen, die nicht gesetzt sein können, mit einem Standardwert versehen

52</h3>53</h3>

53 54 

54`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` und `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` können jeweils nicht gesetzt sein. Wenn Ihr Skript `set -u` verwendet, bricht Bash mit `unbound variable` ab, sobald es eine nicht gesetzte Variable expandiert. Expandieren Sie sie daher mit einem Standardwert, etwa `${CCR_SESSION_ACCOUNT_EMAIL:-}`.55`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` und `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` können jeweils nicht gesetzt sein. Wenn Ihr Skript `set -u` verwendet, bricht Bash mit `unbound variable` ab, sobald es eine nicht gesetzte Variable expandiert. Expandieren Sie sie daher mit einem Standardwert, etwa `"${CCR_SESSION_ACCOUNT_EMAIL:-}"`.

55 56 

56Treffen Sie überall dort, wo eine Shell den Slack-Thread-Link expandiert, diese Vorkehrungen:57<h3 id="quote-the-arguments-and-variables-your-script-expands">

58 Argumente und Variablen, die Ihr Skript expandiert, in Anführungszeichen setzen

59</h3>

60 

61Setzen Sie jedes Argument und jede Variable, die der Runner an Ihren Wrapper oder [`command`-Hook](#command) übergibt, in Anführungszeichen. Manche Werte enthalten Zeichen, auf die eine Shell reagiert, weil sie JSON, ganze Sätze oder eine [Berechtigungsregel](/docs/de/permissions#permission-rule-syntax) wie `Bash(npm run test *)` enthalten.

57 62 

58* **Setzen Sie ihn in Anführungszeichen**: Der Link kann Zeichen enthalten, auf die eine Shell reagiert, etwa `?` und `&`. Setzen Sie die Variable daher in Anführungszeichen, wie in `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`.63* **Argumente**: Reichen Sie sie als `"$@"` weiter

59* **Halten Sie seinen Wert aus `eval`- und `sh -c`-Zeichenfolgen heraus**: Setzen Sie seinen Wert nicht in eine Zeichenfolge ein, die `eval` oder `sh -c` ausführt, auch nicht in Anführungszeichen. Lassen Sie diese Zeichenfolge stattdessen auf die Variable verweisen.64* **Variablen**: Setzen Sie jede einzelne in Anführungszeichen, wie in `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`. Der Slack-Thread-Link kann zum Beispiel `?` und `&` enthalten.

65* **`eval`- und `sh -c`-Zeichenfolgen**: Setzen Sie keinen Wert in eine Zeichenfolge ein, die `eval` oder `sh -c` ausführt, auch nicht in Anführungszeichen. Lassen Sie diese Zeichenfolge stattdessen auf die Variable verweisen.

60 66 

61<h3 id="keep-stdin-and-file-descriptor-3-attached">67<h3 id="keep-stdin-and-file-descriptor-3-attached">

62 Halten Sie stdin und Dateideskriptor 3 angehängt68 Halten Sie stdin und Dateideskriptor 3 angehängt


136| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...`, für Protokollierung und Korrelation |142| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...`, für Protokollierung und Korrelation |

137| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |143| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |

138| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |144| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

139| `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, referenzieren Sie sie daher unter `set -u` als `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`. Erfordert Claude Code v2.1.229 oder später. |145| `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, referenzieren Sie sie daher unter `set -u` als `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"`. Erfordert Claude Code v2.1.229 oder später. |

140| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |146| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

141| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Git-Einstellungen, die der Runner für das Git festlegt, das Ihr Hook ausführt. [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks) beschreibt sie. Erfordert Claude Code v2.1.280 oder später. |147| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Git-Einstellungen, die der Runner für das Git festlegt, das Ihr Hook ausführt. [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks) beschreibt sie. Erfordert Claude Code v2.1.280 oder später. |

142 148 


159 165 

160Der Hook schlägt fehl, wenn er mit einem Wert ungleich Null endet oder mit 0 endet, ohne einen verwendbaren Checkout hinterlassen zu haben:166Der Hook schlägt fehl, wenn er mit einem Wert ungleich Null endet oder mit 0 endet, ohne einen verwendbaren Checkout hinterlassen zu haben:

161 167 

162* **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.168* **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. Schreiben Sie den Grund als eine kurze Zeile nach stderr, schreiben Sie ihn zuletzt, und beenden Sie das Skript dann mit einem Wert ungleich Null. Geben Sie keine Geheimnisse auf stderr aus, und entfernen Sie `set -x`, bevor Sie den Hook bereitstellen.

163* **Ein Repository, aus dem 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 an die Sitzung, entfernt, was der Hook am Checkout-Pfad hinterlassen hat, und fährt mit den verbleibenden Repositorys fort. Wenn die Sitzung durch das Überspringen überhaupt kein Repository mehr hat, lässt der Runner die Sitzung trotzdem fehlschlagen.169* **Ein Repository, aus dem 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 an die Sitzung, entfernt, was der Hook am Checkout-Pfad hinterlassen hat, und fährt mit den verbleibenden Repositorys fort. Wenn die Sitzung durch das Überspringen überhaupt kein Repository mehr hat, lässt der Runner die Sitzung trotzdem fehlschlagen.

164 170 

165Wenn der Hook erfolgreich ist, entfernt der Runner den Checkout-Pfad nach dem Sitzungsende.171Wenn der Hook erfolgreich ist, entfernt der Runner den Checkout-Pfad nach dem Sitzungsende.


180| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Doppelpunkt-getrennte absolute Pfade der Arbeitsbäume der Sitzung. Leer für Null-Repo-Sitzungen. |186| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Doppelpunkt-getrennte absolute Pfade der Arbeitsbäume der Sitzung. Leer für Null-Repo-Sitzungen. |

181| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Pfad zum Debug-Protokoll der Sitzung, noch auf der Festplatte während der Hook-Ausführung |187| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Pfad zum Debug-Protokoll der Sitzung, noch auf der Festplatte während der Hook-Ausführung |

182| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |188| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

183| `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, referenzieren Sie sie daher unter `set -u` als `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`. Erfordert Claude Code v2.1.229 oder später. |189| `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, referenzieren Sie sie daher unter `set -u` als `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"`. Erfordert Claude Code v2.1.229 oder später. |

184| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |190| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

185| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Git-Einstellungen, die der Runner für das Git festlegt, das Ihr Hook ausführt. [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks) beschreibt sie. Erfordert Claude Code v2.1.280 oder später. |191| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Git-Einstellungen, die der Runner für das Git festlegt, das Ihr Hook ausführt. [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks) beschreibt sie. Erfordert Claude Code v2.1.280 oder später. |

186 192 


3293. **Verwenden Sie den Exit-Code-Vertrag.** Beenden Sie den Hook mit dem Status, der dem Ergebnis entspricht:3353. **Verwenden Sie den Exit-Code-Vertrag.** Beenden Sie den Hook mit dem Status, der dem Ergebnis entspricht:

330 336 

331 * **Exit 0**: eingereicht.337 * **Exit 0**: eingereicht.

332 * **Exit 1**: wiederholbarer Fehler. Die Sitzung wartet mit Backoff und wird erneut angeboten.338 * **Exit 1 oder Hook läuft bei Ablauf von `--hook-timeout` noch**: wiederholbarer Fehler. Die Sitzung wartet mit Backoff und wird erneut angeboten.

333 * **Exit 2 oder höher**: nicht wiederholbarer Fehler. Die Sitzung wird für weitere Spawns blockiert, bis ein Benutzer ihr eine neue Nachricht sendet oder ein [Owner](/docs/de/cloud-environments#organization-shared-environments) auf der Registerkarte **Aktivität** der Umgebung **Erneut versuchen** auswählt.339 * **Exit 2 oder höher**: nicht wiederholbarer Fehler. Die Sitzung wird für weitere Spawns blockiert, bis ein Benutzer ihr eine neue Nachricht sendet oder ein [Owner](/docs/de/cloud-environments#organization-shared-environments) auf der Registerkarte **Aktivität** der Umgebung **Erneut versuchen** auswählt.

334 340 

335 Bei einem Exit ungleich null erscheint das Ende der stderr-Ausgabe des Hooks auf der Registerkarte **Aktivität** als Fehlergrund; schreiben Sie daher den umsetzbaren Fehler auf stderr und schreiben Sie dort niemals Geheimnisse. In einem Shell-Hook [halten Sie vorübergehende Fehler wiederholbar](#keep-transient-failures-retryable-in-a-shell-hook).341 Bei einem Exit ungleich null erscheint das Ende der stderr-Ausgabe des Hooks auf der Registerkarte **Aktivität** als Fehlergrund; schreiben Sie daher den umsetzbaren Fehler auf stderr und schreiben Sie dort niemals Geheimnisse. In einem Shell-Hook [halten Sie vorübergehende Fehler wiederholbar](#keep-transient-failures-retryable-in-a-shell-hook).


341 347 

342Eine Sitzung, die in der Warteschlange bleibt, ohne dass ein Spawn-Fehler auf der Registerkarte **Aktivität** vorhanden ist, kann bedeuten, dass der Hook nach der Sitzungs-ID keyed ist. Um dies zu bestätigen, überprüfen Sie, ob Ihre Plattform eine Workload für die erste Spawn-Anfrage dieser Sitzung hat und keine für die Neuanfragen. Wenn ja, keying Sie die Workload auf `CLAUDE_RUNNER_ORDER_ID` stattdessen.348Eine Sitzung, die in der Warteschlange bleibt, ohne dass ein Spawn-Fehler auf der Registerkarte **Aktivität** vorhanden ist, kann bedeuten, dass der Hook nach der Sitzungs-ID keyed ist. Um dies zu bestätigen, überprüfen Sie, ob Ihre Plattform eine Workload für die erste Spawn-Anfrage dieser Sitzung hat und keine für die Neuanfragen. Wenn ja, keying Sie die Workload auf `CLAUDE_RUNNER_ORDER_ID` stattdessen.

343 349 

350<h4 id="make-on-demand-runners-exit-when-idle">

351 On-Demand-Runner im Leerlauf beenden

352</h4>

353 

354Standardmäßig beendet sich ein Runner, den Ihr Hook startet, nicht, wenn der Turn seiner Sitzung abgeschlossen ist, sodass die von Ihnen eingereichte Workload weiterläuft. Damit sich Runner beenden, lassen Sie Ihren Hook diese [Runner-Flags](/docs/de/self-hosted-environments-reference#runner-cli-flags) übergeben:

355 

356| Flag, mit einem Beispielwert | Übergeben an | Funktion |

357| :- | :- | :- |

358| `--release-idle-session-min 30` | Jeden Runner, den Ihr Hook startet | Der Runner gibt seine Sitzung nach so vielen Leerlaufminuten frei und beendet sich dann mit 0. Die Sitzung wird fortgesetzt, wenn ihr Benutzer die nächste Nachricht sendet, aber [Arbeit, die noch nicht gepusht wurde, ist verloren](/docs/de/self-hosted-environments-deploy#additional-limitations). |

359| `--kill-session-after-min 480` | Jeden Runner, den Ihr Hook startet | Begrenzt jede Sitzung auf so viele Minuten, als Absicherung für [Sitzungen, die nicht als Leerlauf gelten](/docs/de/self-hosted-environments-deploy#some-sessions-don’t-count-as-idle); setzen Sie den Wert daher höher als Ihre längste erwartete Sitzung |

360| `--exit-if-unused-min 60` | Standby-Runner, die Ihr Hook für Pre-Warming-Anfragen startet | Ein Standby-Runner, der nie eine Sitzung übernimmt, beendet sich nach so vielen Minuten. Wenn Sie [`--min-idle`](/docs/de/self-hosted-environments-reference#orchestrator-cli-flags) setzen, erhalten Sie einen Ersatz, sofern der Standby-Runner nicht überzählig war; verwenden Sie daher einen Wert deutlich über Ihrer Boot-Zeit. |

361 

362Entfernen Sie die Workload, wenn sich der Runner beendet, zum Beispiel indem Sie `ttlSecondsAfterFinished` auf einem Kubernetes Job setzen oder das Startskript der VM die VM anschließend löschen lassen.

363 

344<h4 id="keep-transient-failures-retryable-in-a-shell-hook">364<h4 id="keep-transient-failures-retryable-in-a-shell-hook">

345 Vorübergehende Fehler in einem Shell-Hook wiederholbar halten365 Vorübergehende Fehler in einem Shell-Hook wiederholbar halten

346</h4>366</h4>


484* Die [verwaltete MCP-Datei](/docs/de/managed-mcp) im Enterprise-Geltungsbereich an 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 abgeschottete Umgebungen, in denen nur vom Administrator aufgeführte Server geladen werden dürfen. Die Regeln zum Vorrang finden Sie unter [Exklusive Kontrolle mit managed-mcp.json](/docs/de/managed-mcp#exclusive-control-with-managed-mcp-json). Wenn sich diese Datei auf dem Runner-Host befindet, überspringt Claude Code die MCP-Server, die die Control Plane von Anthropic an eine Sitzung übermittelt, einschließlich claude.ai-Konnektoren, und nennt sie in einer Warnung auf stderr des Sitzungs-Kindprozesses, die der Runner auf der Log-Ebene `debug` aufzeichnet. Vor v2.1.229 wurden diese Sitzungen beim Start mit `You cannot dynamically configure MCP servers when an enterprise MCP config is present` beendet.504* Die [verwaltete MCP-Datei](/docs/de/managed-mcp) im Enterprise-Geltungsbereich an 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 abgeschottete Umgebungen, in denen nur vom Administrator aufgeführte Server geladen werden dürfen. Die Regeln zum Vorrang finden Sie unter [Exklusive Kontrolle mit managed-mcp.json](/docs/de/managed-mcp#exclusive-control-with-managed-mcp-json). Wenn sich diese Datei auf dem Runner-Host befindet, überspringt Claude Code die MCP-Server, die die Control Plane von Anthropic an eine Sitzung übermittelt, einschließlich claude.ai-Konnektoren, und nennt sie in einer Warnung auf stderr des Sitzungs-Kindprozesses, die der Runner auf der Log-Ebene `debug` aufzeichnet. Vor v2.1.229 wurden diese Sitzungen beim Start mit `You cannot dynamically configure MCP servers when an enterprise MCP config is present` beendet.

485* Der Schlüssel [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) in den [verwalteten Einstellungen](/docs/de/managed-settings) auf dem Runner-Host: Stellt HTTP- und SSE-Server bereit, ohne die exklusive Kontrolle zu übernehmen, sodass Server aus den anderen Quellen weiterhin geladen werden. Erfordert Claude Code v2.1.259 oder neuer.505* Der Schlüssel [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) in den [verwalteten Einstellungen](/docs/de/managed-settings) auf dem Runner-Host: Stellt HTTP- und SSE-Server bereit, ohne die exklusive Kontrolle zu übernehmen, sodass Server aus den anderen Quellen weiterhin geladen werden. Erfordert Claude Code v2.1.259 oder neuer.

486* `<repo>/.mcp.json`: Projekt-Geltungsbereich. Committen Sie die Datei in das Repository; ihre Server werden in Cloud-Sitzungen automatisch genehmigt. In einer Sitzung mit mehreren Repositorys wird [höchstens die Datei eines Repositorys geladen](#repository-settings-in-sessions-with-several-repositories).506* `<repo>/.mcp.json`: Projekt-Geltungsbereich. Committen Sie die Datei in das Repository; ihre Server werden in Cloud-Sitzungen automatisch genehmigt. In einer Sitzung mit mehreren Repositorys wird [höchstens die Datei eines Repositorys geladen](#repository-settings-in-sessions-with-several-repositories).

507* Eine [`--mcp-config`](/docs/de/cli-reference#cli-flags)-Datei aus Ihrem Wrapper-Skript: Hängen Sie das Flag nach `"$@"` an, wie in `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`. Damit die Server aus dieser Datei weiterlaufen, wenn die übermittelten Server der Sitzung während der Sitzung aktualisiert werden, lassen Sie Ihr Wrapper-Skript die [vollständige Umgebung](#wrapper-scripts) an den Kindprozess weitergeben, wie es `exec` tut. Vor v2.1.299 wurden die stdio-, HTTP- und SSE-Server in dieser Datei bei der ersten solchen Aktualisierung beendet, in der sie nicht genannt wurden.

487 508 

488Wenn die Bereitstellung von Konnektoren für Ihre Organisation aktiviert ist, übermittelt die Control Plane von Anthropic die Konnektoren, die Sie auf claude.ai konfiguriert haben, über serverseitig bereitgestellte MCP-Konfiguration an interaktiv erstellte Sitzungen, geleitet über `api.anthropic.com`. Programmgesteuert erstellte Sitzungen, wie etwa [CLI-Dispatches](/docs/de/self-hosted-environments-testing#run-the-test-loop), erhalten keine Konnektoren; stellen Sie ihnen MCP-Server stattdessen über eine der anderen in diesem Abschnitt aufgeführten Quellen bereit. Das OAuth-Token des Kindprozesses enthält keinen Scope zum direkten Abrufen von Konnektoren, daher versucht der Kindprozess diesen Abruf nicht selbst; die Bereitstellung erfolgt serverseitig.509Wenn die Bereitstellung von Konnektoren für Ihre Organisation aktiviert ist, übermittelt die Control Plane von Anthropic die Konnektoren, die Sie auf claude.ai konfiguriert haben, über serverseitig bereitgestellte MCP-Konfiguration an interaktiv erstellte Sitzungen, geleitet über `api.anthropic.com`. Programmgesteuert erstellte Sitzungen, wie etwa [CLI-Dispatches](/docs/de/self-hosted-environments-testing#run-the-test-loop), erhalten keine Konnektoren; stellen Sie ihnen MCP-Server stattdessen über eine der anderen in diesem Abschnitt aufgeführten Quellen bereit. Das OAuth-Token des Kindprozesses enthält keinen Scope zum direkten Abrufen von Konnektoren, daher versucht der Kindprozess diesen Abruf nicht selbst; die Bereitstellung erfolgt serverseitig.

489 510 

Details

182* Ein `credential.helper`, der ein minimal gefasstes Token zurückgibt182* Ein `credential.helper`, der ein minimal gefasstes Token zurückgibt

183* `GIT_SSH_COMMAND`, das auf einen eng gefassten Schlüssel zeigt183* `GIT_SSH_COMMAND`, das auf einen eng gefassten Schlüssel zeigt

184 184 

185Welcher 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:185<span id="git-must-work-without-a-prompt" />Welcher 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:

186 186 

187* Der Runner setzt `GIT_TERMINAL_PROMPT=0`, daher fragt Git nicht nach Benutzername oder Passwort.187* Der Runner setzt `GIT_TERMINAL_PROMPT=0`, daher fragt Git nicht nach Benutzername oder Passwort.

188* 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.188* 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.


212* **Nur github.com**: Anthropic stellt Git für eine Sitzung nur bereit, wenn sich alle ihre Repositorys auf github.com befinden, und der Git-Proxy unterstützt GitHub Enterprise Server noch nicht. Auf einem Runner mit dem Git-Proxy [startet eine Sitzung nicht](#when-anthropic-doesnt-serve-a-session), wenn sie ein Repository auf einem anderen Git-Host hat.212* **Nur github.com**: Anthropic stellt Git für eine Sitzung nur bereit, wenn sich alle ihre Repositorys auf github.com befinden, und der Git-Proxy unterstützt GitHub Enterprise Server noch nicht. Auf einem Runner mit dem Git-Proxy [startet eine Sitzung nicht](#when-anthropic-doesnt-serve-a-session), wenn sie ein Repository auf einem anderen Git-Host hat.

213* **Anmeldedaten nur für die Repositorys der Sitzung**: Anthropic stellt Git-Anmeldedaten für die Repositorys bereit, die Teil der Sitzung sind, nicht für andere Repositorys auf demselben Git-Host. Ein privates Submodul, eine Abhängigkeit, die Ihr Paketmanager mit Git abruft, oder ein Plugin-Marketplace in einem anderen Repository erhält keine Anmeldedaten von Anthropic. Bitten Sie die Personen, die Sitzungen erstellen, beim Erstellen [jedes Repository hinzuzufügen](/docs/de/web-quickstart#start-a-task), das eine Sitzung benötigt.213* **Anmeldedaten nur für die Repositorys der Sitzung**: Anthropic stellt Git-Anmeldedaten für die Repositorys bereit, die Teil der Sitzung sind, nicht für andere Repositorys auf demselben Git-Host. Ein privates Submodul, eine Abhängigkeit, die Ihr Paketmanager mit Git abruft, oder ein Plugin-Marketplace in einem anderen Repository erhält keine Anmeldedaten von Anthropic. Bitten Sie die Personen, die Sitzungen erstellen, beim Erstellen [jedes Repository hinzuzufügen](/docs/de/web-quickstart#start-a-task), das eine Sitzung benötigt.

214* **Nur Branch-Pushes**: Ein Push, der einen Branch löscht, schlägt fehl, ebenso ein Push auf jede andere Art von Ref, etwa ein Tag. Welche Branches ein Push aktualisieren kann, erfahren Sie unter [GitHub-Proxy](/docs/de/cloud-environments#github-proxy).214* **Nur Branch-Pushes**: Ein Push, der einen Branch löscht, schlägt fehl, ebenso ein Push auf jede andere Art von Ref, etwa ein Tag. Welche Branches ein Push aktualisieren kann, erfahren Sie unter [GitHub-Proxy](/docs/de/cloud-environments#github-proxy).

215* **Verbundene GitHub-Konten**: Die Person, die eine Benutzersitzung erstellt hat, muss GitHub auf claude.ai verbunden haben, sonst [startet die Sitzung nicht](#creator-has-no-github-connection).215* **Verbundene GitHub-Konten**: Bitten Sie jede Person, die Benutzersitzungen mit einem Repository erstellt, [GitHub zu verbinden](/docs/de/web-quickstart#connect-github). Ohne ihre eigene Verbindung [starten diese Sitzungen nicht](#creator-has-no-github-connection).

216* **`--capacity 1`**: Der Git-Proxy erfordert eine Sitzung pro Runner-Prozess, führen Sie daher mehr Replicas für Parallelität aus. [Den Anthropic-Git-Proxy einschalten](#turn-the-anthropic-git-proxy-on) listet die Anforderungen auf.216* **`--capacity 1`**: Der Git-Proxy erfordert eine Sitzung pro Runner-Prozess, führen Sie daher mehr Replicas für Parallelität aus. [Den Anthropic-Git-Proxy einschalten](#turn-the-anthropic-git-proxy-on) listet die Anforderungen auf.

217* **Ersetzte globale Git-Konfiguration**: Der Runner [löscht und ersetzt die globale Git-Konfiguration](#git-proxy-replaces-global-git-config) des Benutzers, unter dem er läuft. Führen Sie ihn als dedizierten Benutzer oder in einem Container aus.217* **Ersetzte globale Git-Konfiguration**: Der Runner [löscht und ersetzt die globale Git-Konfiguration](#git-proxy-replaces-global-git-config) des Benutzers, unter dem er läuft. Führen Sie ihn als dedizierten Benutzer oder in einem Container aus.

218* **Host-Anmeldedaten für Host-Pushes**: Der Push des Runners über [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) und jeder Push, den Ihr [`post-session`-Hook](/docs/de/self-hosted-environments-configuration#post-session) ausführt, verwenden weiterhin die eigenen Git-Anmeldedaten des Runner-Hosts und dessen [Netzwerkpfad zu `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Informationen zu diesen Anmeldedaten finden Sie unter [Versenden Sie Git-Konfiguration in Ihrem Image](#ship-git-config-in-your-image).218* **Host-Anmeldedaten für Host-Pushes**: Der Push des Runners über [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) und jeder Push, den Ihr [`post-session`-Hook](/docs/de/self-hosted-environments-configuration#post-session) ausführt, verwenden weiterhin die eigenen Git-Anmeldedaten des Runner-Hosts und dessen [Netzwerkpfad zu `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Halten Sie diese Anmeldedaten aus der [globalen Git-Konfiguration](#git-proxy-replaces-global-git-config) heraus; Möglichkeiten, sie bereitzustellen, finden Sie unter [Versenden Sie Git-Konfiguration in Ihrem Image](#ship-git-config-in-your-image).

219* **Entscheidung pro Sitzung**: Anthropic entscheidet für jede Sitzung auf dem Runner, ob es deren Git bereitstellt, und eine Sitzung, für die es das nicht tut, startet nicht. [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session) behandelt die Ursachen.219* **Entscheidung pro Sitzung**: Anthropic entscheidet für jede Sitzung auf dem Runner, ob es deren Git bereitstellt, und eine Sitzung, für die es das nicht tut, startet nicht. [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session) behandelt die Ursachen.

220 220 

221<span id="git-proxy-replaces-global-git-config" />221<span id="git-proxy-replaces-global-git-config" />


356Repository-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) auf claude.ai konfiguriert haben. Zwei wiederholbare Flags schreiben diese URLs vor dem Clone um:356Repository-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) auf claude.ai konfiguriert haben. Zwei wiederholbare Flags schreiben diese URLs vor dem Clone um:

357 357 

358* `--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üssen358* `--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

359* `--git-ssh-rewrite <host>`: für Git-Hosts, die nur SSH akzeptieren, Umschreiben von `https://<host>/owner/repo` zu `git@<host>:owner/repo`359* `--git-ssh-rewrite <host>`: für Git-Hosts, die nur SSH akzeptieren, oder einen Runner-Host, der nur einen SSH-Schlüssel hat. Um beispielsweise github.com-Repositorys über SSH zu klonen, fügen Sie dem Runner-Befehl `--git-ssh-rewrite github.com` hinzu. Der Runner schreibt dann `https://github.com/owner/repo` in `git@github.com:owner/repo` um. SSH muss [ohne Eingabeaufforderung eine Verbindung herstellen](#git-must-work-without-a-prompt).

360 360 

361Host-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).361Host-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).

362 362 


578 578 

579Geben Sie dem Stopp-Timeout Ihres Hosts mindestens die Summe aus drei Anteilen: die von Ihnen konfigurierten `n` Minuten, die Grace nach der Freigabe und den Drain, der unter [Zeitverhalten beim Herunterfahren](#shutdown-timing) beschrieben ist. Mit Standardeinstellungen beträgt die Grace nach der Freigabe 75 Sekunden und der Drain dauert bis zu 80 Sekunden, planen Sie also `n` Minuten plus 155 Sekunden ein. Der Runner gibt diese Summe beim Start aus, wann immer `--defer-shutdown-max-min` gesetzt ist.579Geben Sie dem Stopp-Timeout Ihres Hosts mindestens die Summe aus drei Anteilen: die von Ihnen konfigurierten `n` Minuten, die Grace nach der Freigabe und den Drain, der unter [Zeitverhalten beim Herunterfahren](#shutdown-timing) beschrieben ist. Mit Standardeinstellungen beträgt die Grace nach der Freigabe 75 Sekunden und der Drain dauert bis zu 80 Sekunden, planen Sie also `n` Minuten plus 155 Sekunden ein. Der Runner gibt diese Summe beim Start aus, wann immer `--defer-shutdown-max-min` gesetzt ist.

580 580 

581Wenn das Stopp-Timeout abläuft, bevor der Runner fertig ist, beendet der Host den Runner zwangsweise. Die Sitzungen, die er noch hält, erhalten keinen `post-session`-Hook. Der Runner meldet sich nicht ab, und die Control Plane reiht die Sitzungen innerhalb weniger Minuten neu ein. Wenn Sie dem Stopp-Timeout diese Summe nicht geben können, lassen Sie `--defer-shutdown-max-min` ungesetzt, damit der Runner stattdessen beim ersten Signal leert.581Wenn das Stopp-Timeout abläuft, bevor der Runner fertig ist, erhalten die Sitzungen, die er noch hält, keinen `post-session`-Hook. Der Runner meldet sich nicht ab, sodass die Control Plane einige Minuten und manchmal länger benötigen kann, um diese Sitzungen neu einzureihen. Wenn Sie dem Stopp-Timeout diese Summe nicht geben können, lassen Sie `--defer-shutdown-max-min` ungesetzt, damit der Runner stattdessen beim ersten Signal leert.

582 582 

583<h3 id="what-reaches-a-running-post-session-hook">583<h3 id="what-reaches-a-running-post-session-hook">

584 Was einen laufenden post-session-Hook erreicht584 Was einen laufenden post-session-Hook erreicht


720 720 

721* **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.721* **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.

722* **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.722* **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.

723* **Runner beendet sich beim Start mit `RegisterRunner failed:` und einem TLS-Zertifikatsfehler**: Der Fehler kann zum Beispiel `self signed certificate in certificate chain` lauten. Der Runner vertraut der Zertifizierungsstelle (CA) hinter dem empfangenen Zertifikat nicht, wie es hinter einem TLS-inspizierenden Proxy vorkommt. Setzen Sie [`NODE_EXTRA_CA_CERTS`](/docs/de/network-config#custom-ca-certificates) in der Umgebung des Runners auf eine PEM-Datei mit der Root-CA des Proxys.

724 

725 Für Sitzungen müssen Sie die Variable nicht erneut setzen, da diese sie erben. Git liest sie nicht: Für Clones über diesen Proxy setzen Sie zusätzlich [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git).

726* **Orchestrator protokolliert `poll failed:` mit einem TLS-Zertifikatsfehler und versucht es fortlaufend erneut**: Der Orchestrator vertraut der CA hinter dem empfangenen Zertifikat nicht, wie es hinter einem TLS-inspizierenden Proxy vorkommt. Setzen Sie [`NODE_EXTRA_CA_CERTS`](/docs/de/network-config#custom-ca-certificates) in der Umgebung des Orchestrators auf eine PEM-Datei mit der Root-CA des Proxys. Setzen Sie die Variable auch für die Runner, die Ihr `spawn-runner`-Hook startet.

727 

728 Zum Beispiel kann eine Zeile mit `poll failed: self signed certificate in certificate chain — retrying in 1s` enden, wobei zwischen dem Doppelpunkt und dem Gedankenstrich die Worte der TLS-Bibliothek stehen. Um die Behebung zu bestätigen, prüfen Sie, dass `connected` im Body von [`/healthz`](/docs/de/self-hosted-environments-reference#health-endpoint) des Orchestrators `true` ist.

723* **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).729* **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).

724* **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. Bei einem Runner, der mit `--use-anthropic-git-proxy` gestartet wurde, siehe [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session). 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.730* **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. Bei einem Runner, der mit `--use-anthropic-git-proxy` gestartet wurde, siehe [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session). 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.

725* **Sitzungen starten nicht auf einem Runner, der `--use-anthropic-git-proxy` gesetzt hat**: Suchen Sie im Log des Runners nach `access denied by the git proxy` oder nach einem Git-Fehler, der eine `api.anthropic.com`-Adresse mit `/git_proxy/` nennt. Um festzustellen, ob Anthropic die Sitzung bedient hat, und die Ursache zu beheben, siehe [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session).731* **Sitzungen starten nicht auf einem Runner, der `--use-anthropic-git-proxy` gesetzt hat**: Suchen Sie im Log des Runners nach `access denied by the git proxy` oder nach einem Git-Fehler, der eine `api.anthropic.com`-Adresse mit `/git_proxy/` nennt. Um festzustellen, ob Anthropic die Sitzung bedient hat, und die Ursache zu beheben, siehe [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session).


741 Vor v2.1.274 stoppte der Runner das erneute Versuchen eines fehlgeschlagenen Abrufs nach einigen Versuchen und wartete auf den nächsten geplanten. Ein fehlgeschlagener Turn löste keinen Abruf aus, daher schlugen alle Turns mit einem 401 fehl, bis zum nächsten geplanten Abruf.747 Vor v2.1.274 stoppte der Runner das erneute Versuchen eines fehlgeschlagenen Abrufs nach einigen Versuchen und wartete auf den nächsten geplanten. Ein fehlgeschlagener Turn löste keinen Abruf aus, daher schlugen alle Turns mit einem 401 fehl, bis zum nächsten geplanten Abruf.

742* **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).748* **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).

743 749 

744Sobald 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.750Sobald das Logging initialisiert ist, schreibt der Runner sein Lebenszyklus-Log, einschließlich `[runner:fatal]`-Zeilen, nach stdout und Debug-Ausgabe nach stderr, alles als Plain-Text-Zeilen anstatt JSON. Die Fehler beim Basis-Verzeichnis, die in den Fehlerbehebungs-Einträgen oben beschrieben sind, werden vor diesem Punkt nach stderr ausgegeben. Erfassen Sie beide Streams mit `--log-file`, was auch `self-hosted-runner doctor` ermöglicht, sie mitzulesen, oder mit der Log-Sammlung Ihrer Plattform.

745 751 

746Jeder Sitzungs-Kind-Prozess schreibt ein separates Debug-Log. Bei Fehler bewahrt der Runner das Log's Tail neben der Sitzung in claude.ai/code. Sofern Sie den Runner nicht mit [`--remove-session-state`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gestartet haben, behält er auch das Log einer fehlgeschlagenen Sitzung auf der Festplatte und druckt seinen Pfad im Runner-Log.752Jeder Sitzungs-Kind-Prozess schreibt ein separates Debug-Log. Bei Fehler bewahrt der Runner das Log's Tail neben der Sitzung in claude.ai/code. Sofern Sie den Runner nicht mit [`--remove-session-state`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gestartet haben, behält er auch das Log einer fehlgeschlagenen Sitzung auf der Festplatte und druckt seinen Pfad im Runner-Log.

747 753 

Details

25Die claude.ai-Seite benötigt:25Die claude.ai-Seite benötigt:

26 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.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.28* Den [GitHub-Konnektor](https://claude.ai/admin-settings/connectors), aktiviert durch einen Owner, sowie die eigene [GitHub-Verbindung](/docs/de/web-quickstart#connect-github) jedes Entwicklers, damit Entwickler github.com-Repositorys auswählen können, wenn sie Sitzungen starten.

29 29 

30<h3 id="host-and-network">30<h3 id="host-and-network">

31 Host und Netzwerk31 Host und Netzwerk


34Der Runner-Host benötigt:34Der Runner-Host benötigt:

35 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.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* Ein Repository für die Testsitzung: ein öffentliches oder eines, das dieser Host bereits über seine HTTPS-URL klonen kann, ohne nach Anmeldedaten gefragt zu werden.37* Ein Repository für die Testsitzung: ein öffentliches oder eines, das dieser Host bereits über seine HTTPS-URL klonen kann, ohne nach Anmeldedaten gefragt zu werden. Ein SSH-Schlüssel allein reicht nicht aus, da der Runner die `https://`-URL des Repositorys klont. Um stattdessen über SSH zu klonen, siehe [Git-URLs für private Netzwerke umschreiben](/docs/de/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks).

38* 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* 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).

39 39 

40<h3 id="software-on-the-runner-host">40<h3 id="software-on-the-runner-host">


105 105 

106 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.106 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.

107 107 

108 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).108 <Warning>

109 Verwenden Sie ein Verzeichnis, das ausschließlich für den Runner bestimmt ist, nicht Ihr Home-Verzeichnis oder ein Verzeichnis mit Ihren eigenen Klonen. Der Runner behandelt alles, was er unter `<writable-dir>/<repo-owner>/<repo>` vorfindet, als seinen eigenen Klon und kann ihn zurücksetzen sowie Dateien darin überschreiben oder löschen.

110 </Warning>

111 

112 Wenn der Runner das Basisverzeichnis nicht erstellen oder nicht hineinschreiben kann, beendet er sich beim Start mit einem Fehler, der das Verzeichnis benennt, statt sich zu registrieren. Siehe [Fehlerbehebung](/docs/de/self-hosted-environments-deploy#troubleshooting).

109 113 

110 Starten Sie dann den Runner mit `--environment-secret-file` und `--base-dir`:114 Starten Sie dann den Runner mit `--environment-secret-file` und `--base-dir`:

111 115 


113 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'117 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

114 ```118 ```

115 119 

116 Der Runner protokolliert `Registered: runner_id=<runner-id>`, sobald er sich bei Ihrer Umgebung registriert hat, und beginnt dann, nach Arbeit abzufragen. Wenn der Runner sich später beendet, starten Sie ihn selbst neu. Unter [Wenn der Runner sich beendet](#if-the-runner-exits) erfahren Sie, wann das passiert.120 Der Runner protokolliert `Registered: runner_id=<runner-id>`, sobald er sich bei Ihrer Umgebung registriert hat, und beginnt dann, nach Arbeit abzufragen. Mit diesem Befehl gestartet, beendet er sich absichtlich, nachdem er eine Sitzung bedient hat, nicht nach jedem Turn. Um weitere Sitzungen zu bedienen, starten Sie den Runner jedes Mal erneut, wenn er sich beendet. Unter [Wenn der Runner sich beendet](#if-the-runner-exits) erfahren Sie, wann das passiert und was der Runner protokolliert.

117 </Step>121 </Step>

118 122 

119 <Step title="Überprüfen Sie, ob der Runner angezeigt wird">123 <Step title="Überprüfen Sie, ob der Runner angezeigt wird">


121 </Step>125 </Step>

122 126 

123 <Step title="Leiten Sie eine Sitzung zur Umgebung weiter">127 <Step title="Leiten Sie eine Sitzung zur Umgebung weiter">

124 <span id="route-a-session" />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. Wählen Sie als Repository dasjenige aus den [Voraussetzungen](#host-and-network): ein öffentliches Repository oder eines, das dieser Host bereits klonen kann. Der Runner klont mit den Git-Anmeldedaten, die der Host bereits hat.128 <span id="route-a-session" />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. Wählen Sie als Repository dasjenige aus den [Voraussetzungen](#host-and-network): ein öffentliches Repository oder eines, das dieser Host bereits über seine HTTPS-URL klonen kann, ohne nach Anmeldedaten gefragt zu werden.

125 129 

126 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 übernommen hat. Beobachten Sie die Sitzungsarbeit und lesen Sie Claudes Antworten unter [claude.ai/code](https://claude.ai/code).130 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 übernommen hat. Beobachten Sie die Sitzungsarbeit und lesen Sie Claudes Antworten unter [claude.ai/code](https://claude.ai/code).

127 131 

128 Wenn die Sitzung nicht mit der Arbeit beginnt, orientieren Sie sich an dem, was Sie sehen:132 <span id="session-doesnt-start" />Wenn die Sitzung nicht mit der Arbeit beginnt, orientieren Sie sich an dem, was Sie sehen:

129 133 

130 * **Die Sitzung bleibt in der Warteschlange**: Siehe [Fehlerbehebung](/docs/de/self-hosted-environments-deploy#troubleshooting).134 * **Die Sitzung bleibt in der Warteschlange**: Siehe [Fehlerbehebung](/docs/de/self-hosted-environments-deploy#troubleshooting).

131 * **Die Sitzung startet nicht und zeigt einen Git-Fehler**: Der Fehler erscheint in der Sitzung und im Log des Runners. Wenn er Gits `could not read Username for` gefolgt von der URL Ihres Git-Hosts enthält, hatte der Runner keine HTTPS-Anmeldedaten für diesen Host. Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git), wo auch Anmeldedaten-Optionen für private Repositorys in der Produktion behandelt werden.135 * **Die Sitzung startet nicht und zeigt einen Git-Fehler**: Wenn der Fehler Gits `could not read Username for` gefolgt von der URL Ihres Git-Hosts enthält, hatte der Runner keine HTTPS-Anmeldedaten für diesen Host.

136 * **HTTPS-Anmeldedaten bereitstellen**: Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git)

137 * **Stattdessen über SSH klonen**: Wenn der Runner-Host bereits einen SSH-Schlüssel hat, siehe [Git-URLs für private Netzwerke umschreiben](/docs/de/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks)

132 </Step>138 </Step>

133</Steps>139</Steps>

134 140 


136 Wenn der Runner sich beendet142 Wenn der Runner sich beendet

137</h3>143</h3>

138 144 

139Wenn der Runner sich während dieses Schnellstarts beendet, starten Sie ihn mit demselben Befehl erneut. Der Runner kann sich von selbst beenden:145Wenn der Runner sich während dieses Schnellstarts beendet, starten Sie ihn erneut. Der Runner kann sich von selbst beenden:

140 146 

141* **Sitzungen abgeschlossen**: Das Log zeigt `[runner:exit] account workload drained — exiting`. Der Runner beendet sich absichtlich, sobald seine aktiven Sitzungen abgeschlossen sind. Siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle).147* **Nichts mehr aktiv**: Das Log zeigt `[runner:exit] account workload drained — exiting`. Der Runner [beendet sich absichtlich](/docs/de/self-hosted-environments#runner-lifecycle), sobald er keine Sitzung mehr ausführt, zum Beispiel:

148 * **Sie haben die Sitzung archiviert oder gelöscht**: Starten Sie den Runner erneut

149 * **Die Sitzung konnte nicht gestartet werden**: [Beheben Sie die Ursache](#session-doesnt-start) und starten Sie den Runner dann erneut

142* **Verbindung verloren**: Das Log zeigt eine `[runner:fatal]`-Zeile mit `runner record gone server-side` oder mit `poll auth failed`. Wenn der Runner für eine Weile den Kontakt zu Anthropic verliert, zum Beispiel weil der Host in den Ruhezustand wechselt, kann er sich beenden, sobald er Anthropic das nächste Mal erreicht.150* **Verbindung verloren**: Das Log zeigt eine `[runner:fatal]`-Zeile mit `runner record gone server-side` oder mit `poll auth failed`. Wenn der Runner für eine Weile den Kontakt zu Anthropic verliert, zum Beispiel weil der Host in den Ruhezustand wechselt, kann er sich beenden, sobald er Anthropic das nächste Mal erreicht.

143 151 

144Ein abgeschlossener Turn beendet Ihre Test-Sitzung nicht. Nach dem ersten Turn ist die Sitzung noch verbunden und der Runner läuft noch, sodass Sie [der Sitzung eine Folgenachricht senden](#send-a-follow-up-message-to-a-running-session) können, ohne den Runner zuerst neu zu starten.152Ein abgeschlossener Turn beendet Ihre Test-Sitzung nicht. Nach dem ersten Turn ist die Sitzung noch verbunden und der Runner läuft noch, sodass Sie [der Sitzung eine Folgenachricht senden](#send-a-follow-up-message-to-a-running-session) können, ohne den Runner zuerst neu zu starten.

Details

54| `--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. |54| `--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. |

55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Welche der Regellisten des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifikators, die die Control Plane mit einer Sitzung sendet, diese Sitzung erreichen dürfen: `all`, `no-allow` oder `none`. Unter [Regellisten des Auto-Modus](#auto-mode-rule-lists) erfahren Sie, was jeder Wert anwendet. Ein ungültiger Wert stoppt den Runner beim Start. Erfordert Claude Code v2.1.295 oder später. |55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Welche der Regellisten des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode)-Klassifikators, die die Control Plane mit einer Sitzung sendet, diese Sitzung erreichen dürfen: `all`, `no-allow` oder `none`. Unter [Regellisten des Auto-Modus](#auto-mode-rule-lists) erfahren Sie, was jeder Wert anwendet. Ein ungültiger Wert stoppt den Runner beim Start. Erfordert Claude Code v2.1.295 oder später. |

56| `--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. |56| `--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. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Geben Sie einen Sitzungs-Slot frei, wenn das Kind nicht signalisiert hat, dass es sich innerhalb von N Minuten nach dem Erzeugen initialisiert hat. Das Klonen erfolgt vor dem Erzeugen, daher zählt die Klonzeit nicht mit. 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. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Geben Sie einen Sitzungs-Slot frei, wenn das Kind nicht innerhalb von N Minuten auf dem [Activity-Kanal](/docs/de/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached) signalisiert hat, dass es sich initialisiert hat. Die N Minuten beginnen beim Erzeugen, nach dem Klonen, und beginnen bei jeder `user`- oder `assistant`-Nachricht, die das Kind ausgibt, bevor es sich initialisiert oder seinen Status gemeldet hat, von vorn. Vor v2.1.299 galt dieser Timeout ab der ersten solchen Nachricht der Sitzung nicht mehr. Zur Freigabe nach dem Init-Signal siehe `--release-idle-session-min`. `0` deaktiviert. |

58| `--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. |58| `--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. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | aus | Klonen Sie Repositorys auf github.com ü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. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | aus | Klonen Sie Repositorys auf github.com ü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. |

60 60 


160 160 

161Verwenden 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.161Verwenden 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.

162 162 

163Der 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.163Der eigene `/healthz`-Endpunkt des Orchestrators auf seinem Health-Port gibt immer `200` zurück. Der Body enthält ein Feld `connected`, das meldet, ob die letzte Abfrage erfolgreich war, sowie Zählungen der Spawn-Queue pro Status in `queue_counts`. Um zu sehen, warum `connected` den Wert `false` hat, lesen Sie das Feld `last_error` auf oberster Ebene, das bei jeder erfolgreichen Abfrage auf `null` zurückgesetzt wird. Machen Sie Bereitschaftsprüfungen und Warnungen von `connected` abhängig statt vom Statuscode.

164 164 

165Wenn 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.165Wenn 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.

166 166 

Details

692| [`gcpAuthRefresh`](#gcpauthrefresh) | Aktualisieren Sie [Google Cloud-Anmeldedaten](/docs/de/google-vertex-ai#advanced-credential-configuration) mit Ihrem eigenen Befehl | Authentication and providers | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | Aktualisieren Sie [Google Cloud-Anmeldedaten](/docs/de/google-vertex-ai#advanced-credential-configuration) mit Ihrem eigenen Befehl | Authentication and providers | Any file |

693| [`hooks`](#hooks) | Führen Sie Ihre eigenen Befehle als [Hooks](/docs/de/hooks) an Punkten im Lebenszyklus von Claude Code aus | Hooks and automation | Any file |693| [`hooks`](#hooks) | Führen Sie Ihre eigenen Befehle als [Hooks](/docs/de/hooks) an Punkten im Lebenszyklus von Claude Code aus | Hooks and automation | Any file |

694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Begrenzen Sie, welche Umgebungsvariablen [HTTP-Hooks](/docs/de/hooks) in Header einfügen können | Hooks and automation | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Begrenzen Sie, welche Umgebungsvariablen [HTTP-Hooks](/docs/de/hooks) in Header einfügen können | Hooks and automation | Any file |

695| [`idleCompaction`](#idlecompaction) | Verhindern Sie, dass Claude Code eine lange Konversation komprimiert, während Ihre Terminal-Sitzung im Leerlauf ist | Memory and context | Any file |

695| [`includeCoAuthoredBy`](#includecoauthoredby) | Veraltet; verwenden Sie `attribution`, um Commit- und PR-Zuschreibung zu verbergen oder zu ändern | Git and attribution | Any file |696| [`includeCoAuthoredBy`](#includecoauthoredby) | Veraltet; verwenden Sie `attribution`, um Commit- und PR-Zuschreibung zu verbergen oder zu ändern | Git and attribution | Any file |

696| [`includeGitInstructions`](#includegitinstructions) | Entfernen Sie die integrierten Commit- und PR-Anweisungen aus Claudes Kontext | Git and attribution | Any file |697| [`includeGitInstructions`](#includegitinstructions) | Entfernen Sie die integrierten Commit- und PR-Anweisungen aus Claudes Kontext | Git and attribution | Any file |

697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Erhalten Sie eine [Push-Benachrichtigung](/docs/de/remote-control#mobile-push-notifications), wenn Claude auf Sie wartet | Remote, desktop, and notifications | Any file |698| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Erhalten Sie eine [Push-Benachrichtigung](/docs/de/remote-control#mobile-push-notifications), wenn Claude auf Sie wartet | Remote, desktop, and notifications | Any file |


1425 * `true`: Sitzungen starten mit aktiviertem Ultracode, wenn dynamische Workflows für Sie aktiviert sind und Ihr Modell `xhigh` unterstützt1426 * `true`: Sitzungen starten mit aktiviertem Ultracode, wenn dynamische Workflows für Sie aktiviert sind und Ihr Modell `xhigh` unterstützt

1426 * `false`: Sitzungen starten mit deaktiviertem Ultracode1427 * `false`: Sitzungen starten mit deaktiviertem Ultracode

1427* **Standard**: nicht gesetzt, daher ist Ultracode deaktiviert1428* **Standard**: nicht gesetzt, daher ist Ultracode deaktiviert

1428* **Überschreibungen pro Sitzung**: `/effort ultracode` aktiviert Ultracode für eine Sitzung ohne diesen Schlüssel, und `/effort ultracode off` deaktiviert es für eine Sitzung, wenn dieser Schlüssel `true` ist. Das Flag `--effort ultracode` aktiviert es ebenfalls für eine Sitzung, mit dem Effort `xhigh`, und erfordert Claude Code v2.1.203 oder später1429* **Überschreibungen pro Sitzung**: `/effort ultracode` aktiviert Ultracode für eine Sitzung ohne diesen Schlüssel, und `/effort ultracode off` deaktiviert es für eine Sitzung, wenn dieser Schlüssel `true` ist. Das Flag `--effort ultracode` aktiviert es ebenfalls für eine Sitzung, mit dem Effort `xhigh`

1429 1430 

1430```json settings.json theme={null}1431```json settings.json theme={null}

1431{1432{


2952}2953}

2953```2954```

2954 2955 

2955Der manuelle `/compact`-Befehl funktioniert weiterhin, während die automatische Komprimierung deaktiviert ist.2956Der manuelle `/compact`-Befehl funktioniert weiterhin, während die automatische Komprimierung deaktiviert ist. Wenn Sie die automatische Komprimierung deaktivieren, wird auch die [Komprimierung im Leerlauf](#idlecompaction) deaktiviert.

2956 2957 

2957<h3 id="autocompactwindow">2958<h3 id="autocompactwindow">

2958 `autoCompactWindow`2959 `autoCompactWindow`


3133 * Variablen, die ändern, wie Claude Code startet oder synchronisiert, wie `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` und `CLAUDE_CODE_PLUGIN_SEED_DIR`.3134 * Variablen, die ändern, wie Claude Code startet oder synchronisiert, wie `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` und `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3134 * Variablen, die die Timer für einen unbeantworteten Dialog festlegen: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` und `CLAUDE_AFK_COUNTDOWN_MS`](/docs/de/env-vars#variables).3135 * Variablen, die die Timer für einen unbeantworteten Dialog festlegen: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` und `CLAUDE_AFK_COUNTDOWN_MS`](/docs/de/env-vars#variables).

3135 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/de/env-vars#variables), das die Verarbeitung von Anhängen ausschaltet.3136 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/de/env-vars#variables), das die Verarbeitung von Anhängen ausschaltet.

3137 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/de/env-vars#variables), das verhindert, dass Claude Code `@`-Erwähnungen von Dateien und Verzeichnissen auflöst.

3136 3138 

3137 Vor v2.1.251 konnten Projekt- und lokale Einstellungen auch die Variablen in dieser Liste setzen, die festlegen, wo Claude Code seine Dateien schreibt, oder die Sitzungsinhalte exportieren, außer `HOME` und `XDG_CONFIG_HOME`. Vor v2.1.290 konnten sie auch die Variablen für die Dialog-Timer und `CLAUDE_CODE_DISABLE_ATTACHMENTS` setzen.3139 Vor v2.1.251 konnten Projekt- und lokale Einstellungen auch die Variablen in dieser Liste setzen, die festlegen, wo Claude Code seine Dateien schreibt, oder die Sitzungsinhalte exportieren, außer `HOME` und `XDG_CONFIG_HOME`. Vor v2.1.290 konnten sie auch die Variablen für die Dialog-Timer und `CLAUDE_CODE_DISABLE_ATTACHMENTS` setzen.

3138* Identitätsvariablen, die den Hosting-Umgebungen von Claude Code gehören, wie `CLAUDE_CODE_REMOTE` und `CLAUDE_CODE_ACCOUNT_UUID`, werden aus jeder Datei ignoriert.3140* Identitätsvariablen, die den Hosting-Umgebungen von Claude Code gehören, wie `CLAUDE_CODE_REMOTE` und `CLAUDE_CODE_ACCOUNT_UUID`, werden aus jeder Datei ignoriert.


3163 3165 

3164In einem `-p`-Lauf oder einer Agent SDK-Sitzung ignoriert Claude Code diesen Schlüssel. Das SDK aktiviert Checkpointing mit seiner Option `enableFileCheckpointing`, und ein einfacher `-p`-Lauf benötigt `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Siehe [Datei-Checkpointing im Agent SDK](/docs/de/agent-sdk/file-checkpointing).3166In einem `-p`-Lauf oder einer Agent SDK-Sitzung ignoriert Claude Code diesen Schlüssel. Das SDK aktiviert Checkpointing mit seiner Option `enableFileCheckpointing`, und ein einfacher `-p`-Lauf benötigt `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Siehe [Datei-Checkpointing im Agent SDK](/docs/de/agent-sdk/file-checkpointing).

3165 3167 

3168<h3 id="idlecompaction">

3169 `idleCompaction`

3170</h3>

3171 

3172Die Komprimierung im Leerlauf [komprimiert](/docs/de/context-window#what-survives-compaction) eine lange Konversation, von der Sie sich entfernt haben, kurz bevor ihr Prompt-Cache abläuft. Ihre nächste Nachricht sendet dann eine Zusammenfassung statt der gesamten Konversation. Wenn Sie zurückkehren, zeigt die Konversation `Compacted while idle, before the prompt cache expired` an.

3173 

3174Die Komprimierung im Leerlauf ist standardmäßig für Konversationen aktiviert, die alle diese Bedingungen erfüllen:

3175 

3176* **Sitzung**: Sie befinden sich in einer interaktiven Terminal-Sitzung

3177* **Prompt-Cache**: Die Konversation verwendet die [einstündige Prompt-Cache-TTL](/docs/de/prompt-caching#which-ttl-each-request-gets)

3178* **Feature-Flags**: Claude Code kann [Feature-Flags von Anthropic abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching)

3179* **Größe**: Der Kontext der Konversation hat den Token-Schwellenwert erreicht, den Sie gegenüber seinem Standardwert von 200.000 [ändern](#change-the-idle-compaction-threshold) können

3180* **Leerlaufzeit**: Seit der letzten Anfrage sind etwa 54 Minuten vergangen, und Ihr Computer befindet sich zu diesem Zeitpunkt nicht im Ruhezustand

3181 

3182Um die Komprimierung im Leerlauf auszuschalten, setzen Sie diesen Schlüssel auf `false`.

3183 

3184* **Geltungsbereich**: [`Any file`](#scopes)

3185* **Typ**: Boolean

3186 * `true`: Claude Code komprimiert Konversationen im Leerlauf, die die Bedingungen erfüllen

3187 * `false`: Claude Code komprimiert nicht, während sich Ihre Sitzung im Leerlauf befindet

3188* **Standard**: `true`

3189* **Überschreibungen pro Sitzung**: [`DISABLE_AUTO_COMPACT`](/docs/de/env-vars) deaktiviert die Komprimierung im Leerlauf zusammen mit der automatischen Komprimierung

3190 

3191```json settings.json theme={null}

3192{

3193 "idleCompaction": false

3194}

3195```

3196 

3197Der Schlüssel erfordert Claude Code v2.1.290 oder später. In einer früheren Version, die diesen Schlüssel ignoriert, deaktivieren Sie [`autoCompactEnabled`](#autocompactenabled), um die Komprimierung im Leerlauf zu stoppen.

3198 

3199<h4 id="change-the-idle-compaction-threshold">

3200 Schwellenwert für die Komprimierung im Leerlauf ändern

3201</h4>

3202 

3203Setzen Sie [`CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`](/docs/de/env-vars) auf die Anzahl der Token, die der Kontext einer Konversation erreichen muss, bevor die Komprimierung im Leerlauf für sie gilt. Verwenden Sie eine positive ganze Zahl. Werte unter `100000` werden auf `100000` angehoben, den niedrigsten Schwellenwert.

3204 

3205Beim Standardwert wird eine Konversation mit einem Kontextfenster von 200K automatisch komprimiert, bevor sie 200.000 Token erreicht. Dieses Beispiel senkt den Schwellenwert auf 150.000, sodass diese Konversationen infrage kommen:

3206 

3207```json settings.json theme={null}

3208{

3209 "env": {

3210 "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"

3211 }

3212}

3213```

3214 

3166<h3 id="plansdirectory">3215<h3 id="plansdirectory">

3167 `plansDirectory`3216 `plansDirectory`

3168</h3>3217</h3>


4209}4258}

4210```4259```

4211 4260 

4261Wenn Sie den System-Prompt im [nicht interaktiven Modus](/docs/de/headless) oder im Agent SDK ersetzen, startet die Sitzung ohne den Snapshot, auch wenn dieser Schlüssel `true` ist:

4262 

4263* **`-p`-Ausführungen**: Sie ersetzen den Prompt, wenn Sie [`--system-prompt`](/docs/de/cli-reference#system-prompt-flags) oder `--system-prompt-file` übergeben. Sie ersetzen ihn auch, wenn Sie einen benutzerdefinierten Agenten mit eigenem Prompt ausführen, ausgewählt mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der Einstellung [`agent`](#agent). Um den Snapshot außerhalb des [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) beizubehalten, führen Sie die Sitzung ohne benutzerdefinierten Agenten aus und fügen Ihre Anweisungen mit [`--append-system-prompt`](/docs/de/cli-reference#system-prompt-flags) hinzu, anstatt den Prompt zu ersetzen.

4264* **[Agent SDK](/docs/de/agent-sdk/modifying-system-prompts)**: Sie ersetzen den Prompt durch einen benutzerdefinierten System-Prompt oder einen benutzerdefinierten Hauptthread-Agenten. Wenn Sie keinen System-Prompt festlegen, verwendet das SDK seinen minimalen Standard, und die Sitzung startet ebenfalls ohne den Snapshot. Um den Snapshot außerhalb des [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) beizubehalten, verwenden Sie das Preset `claude_code` ohne benutzerdefinierten `agent`.

4265 

4212<h3 id="prurltemplate">4266<h3 id="prurltemplate">

4213 `prUrlTemplate`4267 `prUrlTemplate`

4214</h3>4268</h3>


5175 5229 

5176Integrierte Plugins speichern ihre Optionen unter demselben Schlüssel mit einem `@builtin` Suffix. Zum Beispiel ist die [**Projektanweisungen**](/docs/de/memory#choose-which-instruction-files-load) Einstellung, die kontrolliert, ob Claude Code `AGENTS.md` Dateien liest, `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Vor v2.1.285 lautete die ID des Plugins `agents-md@builtin`. Spätere Versionen lesen einen Eintrag unter beiden IDs.5230Integrierte Plugins speichern ihre Optionen unter demselben Schlüssel mit einem `@builtin` Suffix. Zum Beispiel ist die [**Projektanweisungen**](/docs/de/memory#choose-which-instruction-files-load) Einstellung, die kontrolliert, ob Claude Code `AGENTS.md` Dateien liest, `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Vor v2.1.285 lautete die ID des Plugins `agents-md@builtin`. Spätere Versionen lesen einen Eintrag unter beiden IDs.

5177 5231 

5178Claude Code ignoriert Projekt- und lokale Einträge, weil es diese Werte in Plugin-Hook-, MCP- und LSP-Konfigurationen ersetzt, und ein geklontes Repository darf sie nicht liefern. Vor v2.1.207 wurden auch Projekt- und lokale Einstellungen gelesen.5232Claude Code ignoriert Projekt- und lokale Einträge, weil es diese Werte in Plugin-Hook-, MCP- und LSP-Konfigurationen einsetzt und ein geklontes Repository sie nicht liefern können darf.

5179 5233 

5180<h3 id="prependplugins">5234<h3 id="prependplugins">

5181 `prependPlugins`5235 `prependPlugins`


5680}5734}

5681```5735```

5682 5736 

5683Außerhalb eines Git-Repositorys gibt ein [`WorktreeCreate`-Hook](/docs/de/worktrees#non-git-version-control), der fehlschlägt, die Blockade frei, damit die Sitzung das Arbeitsverzeichnis an Ort und Stelle bearbeiten kann; diese Freigabe erfordert Claude Code v2.1.203 oder später.5737Außerhalb eines Git-Repositorys gibt ein [`WorktreeCreate`-Hook](/docs/de/worktrees#non-git-version-control), der fehlschlägt, die Blockade frei, damit die Sitzung das Arbeitsverzeichnis an Ort und Stelle bearbeiten kann.

5684 5738 

5685<h3 id="worktree-location">5739<h3 id="worktree-location">

5686 `worktree.location`5740 `worktree.location`

setup.md +1 −1

Details

226 226 

227Führen Sie `claude doctor` aus, um das Ergebnis des letzten Aktualisierungsversuchs anzuzeigen.227Führen Sie `claude doctor` aus, um das Ergebnis des letzten Aktualisierungsversuchs anzuzeigen.

228 228 

229Unter macOS und Linux verwaltet das native Installationsprogramm das Startprogramm unter `~/.local/bin/claude` als Symlink in `~/.local/share/claude/versions/`. Wenn Sie dieses Startprogramm durch Ihr eigenes Skript oder Symlink ersetzen, lassen Auto-Update und `claude update` es an Ort und Stelle: neue Versionen werden weiterhin im Verzeichnis `versions/` installiert, und Ihr Startprogramm entscheidet, welche Version ausgeführt wird. Vor v2.1.207 ersetzte der Auto-Updater ein benutzerdefiniertes Startprogramm bei diesem Pfad bei jedem Update durch seinen eigenen Symlink.229Unter macOS und Linux verwaltet das native Installationsprogramm das Startprogramm unter `~/.local/bin/claude` als Symlink in `~/.local/share/claude/versions/`. Wenn Sie dieses Startprogramm durch Ihr eigenes Skript oder Symlink ersetzen, lassen Auto-Update und `claude update` es an Ort und Stelle: neue Versionen werden weiterhin im Verzeichnis `versions/` installiert, und Ihr Startprogramm entscheidet, welche Version ausgeführt wird.

230 230 

231Mit einem benutzerdefinierten Startprogramm behält Claude Code auch jede installierte Version auf der Festplatte, da es nicht erkennen kann, welche Version das Startprogramm benötigt. `claude doctor` meldet ein Startprogramm, das das native Installationsprogramm nicht erstellt hat.231Mit einem benutzerdefinierten Startprogramm behält Claude Code auch jede installierte Version auf der Festplatte, da es nicht erkennen kann, welche Version das Startprogramm benötigt. `claude doctor` meldet ein Startprogramm, das das native Installationsprogramm nicht erstellt hat.

232 232 

skills.md +26 −3

Details

31Um gebündelte Skills auszuschalten, verwenden Sie die Einstellung [`disableBundledSkills`](/docs/de/settings-reference#disablebundledskills).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 eingebbar, wenn `disableBundledSkills` aktiviert ist. Um sie auszublenden, setzen Sie die Umgebungsvariable `DISABLE_DOCTOR_COMMAND` oder einen [`skillOverrides`](#override-skill-visibility-from-settings)-Eintrag von `"doctor": "off"`.

35</Note>35</Note>

36 36 

37Gebündelte Skills werden zusammen mit integrierten Befehlen in der [Befehlsreferenz](/docs/de/commands) aufgelistet, gekennzeichnet mit **Skill** in der Spalte „Zweck“.37Gebündelte Skills werden zusammen mit integrierten Befehlen in der [Befehlsreferenz](/docs/de/commands) aufgelistet, gekennzeichnet mit **Skill** in der Spalte „Zweck“.


69 69 

70`/verify` kann auch sein eigenes Rezept aufzeichnen. Wenn es Ihre App ohne ein aufgezeichnetes Rezept erstellen und steuern muss, schreibt es, was funktioniert hat, in `.claude/skills/verify/SKILL.md` im Repository-Root oder im betroffenen Paketverzeichnis in einem Monorepo, damit spätere Läufe und andere Agenten die gleichen Schritte befolgen. Im Repository-Root ersetzt der aufgezeichnete Skill den mitgelieferten `/verify`.70`/verify` kann auch sein eigenes Rezept aufzeichnen. Wenn es Ihre App ohne ein aufgezeichnetes Rezept erstellen und steuern muss, schreibt es, was funktioniert hat, in `.claude/skills/verify/SKILL.md` im Repository-Root oder im betroffenen Paketverzeichnis in einem Monorepo, damit spätere Läufe und andere Agenten die gleichen Schritte befolgen. Im Repository-Root ersetzt der aufgezeichnete Skill den mitgelieferten `/verify`.

71 71 

72Claude bearbeitet die aufgezeichnete Datei nur, wenn es einen Lauf falsch gesteuert hat, z. B. einen Befehl, der fehlgeschlagen ist, oder einen fehlenden Schritt, damit Sie die Datei ohne sitzungsspezifische Diffs committen können. Vor v2.1.205 sagte der gebündelte Skill Claude, dass es alles einbeziehen sollte, was ein Lauf gelernt hat, was häufige Merge-Konflikte verursachte.72Claude bearbeitet die aufgezeichnete Datei nur, wenn es einen Lauf falsch gesteuert hat, z. B. einen Befehl, der fehlgeschlagen ist, oder einen fehlenden Schritt, damit Sie die Datei ohne sitzungsspezifische Diffs committen können.

73 73 

74<h3 id="run-your-checks-before-each-commit">74<h3 id="run-your-checks-before-each-commit">

75 Führen Sie Ihre Prüfungen vor jedem Commit aus75 Führen Sie Ihre Prüfungen vor jedem Commit aus


183* **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/host-marketplace#share-files-within-a-marketplace-with-symlinks).183* **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/host-marketplace#share-files-within-a-marketplace-with-symlinks).

184* **Reservierter Name `synced`**: 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.184* **Reservierter Name `synced`**: 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.

185* **Reservierter Name `anthropic-skills`**: Außerhalb eines Plugins wird ein Skill-Ordner oder eine Befehlsdatei mit dem Namen `anthropic-skills` oder einem Namen, der mit `anthropic-skills:` beginnt, nicht geladen. Siehe [Namen, die für synchronisierte Skills reserviert sind](#names-reserved-for-synced-skills).185* **Reservierter Name `anthropic-skills`**: Außerhalb eines Plugins wird ein Skill-Ordner oder eine Befehlsdatei mit dem Namen `anthropic-skills` oder einem Namen, der mit `anthropic-skills:` beginnt, nicht geladen. Siehe [Namen, die für synchronisierte Skills reserviert sind](#names-reserved-for-synced-skills).

186* **Zeichen im Namen**: Außerhalb eines Plugins wird ein Skill-Ordner nicht geladen, wenn sein Name ein Zeichen wie ein Leerzeichen mit Nullbreite oder `<` enthält. Siehe [Zeichen, die ein Skill-Name nicht enthalten kann](#characters-a-skill-name-cant-hold).

186* **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.187* **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.

187* **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/loading#plugins-shared-through-a-repository) 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 das Workspace-Trust-Dialogfeld zu akzeptieren.188* **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/loading#plugins-shared-through-a-repository) 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 das Workspace-Trust-Dialogfeld zu akzeptieren.

188 189 


495 496 

496Für eine Plugin-Root `SKILL.md` gibt es kein Fähigkeitsverzeichnis, aus dem der Name genommen werden kann, sodass `name` das ganze letzte Segment liefert. Ohne ein `name`-Feld fällt Claude Code auf den Plugin-Verzeichnisnamen zurück.497Für eine Plugin-Root `SKILL.md` gibt es kein Fähigkeitsverzeichnis, aus dem der Name genommen werden kann, sodass `name` das ganze letzte Segment liefert. Ohne ein `name`-Feld fällt Claude Code auf den Plugin-Verzeichnisnamen zurück.

497 498 

499<h4 id="characters-a-skill-name-cant-hold">

500 Zeichen, die ein Skill-Name nicht enthalten darf

501</h4>

502 

503Wenn ein Skill oder benutzerdefinierter Befehl im `/`-Menü fehlt oder das Menü den Frontmatter-`name` eines Skills nicht anzeigt, überprüfen Sie den Namen. Claude Code lehnt einen Befehlsnamen oder einen Frontmatter-`name` ab, der Zeichen wie die folgenden enthält:

504 

505* Ein Leerzeichen mit Nullbreite oder ein Steuerzeichen

506* Ein Zeichen aus dem privaten Nutzungsbereich oder ein nicht zugewiesenes Zeichen, z. B. ein Glyph aus einer Icon-Schriftart

507* Ein Zeichen, das die Richtung des umgebenden Textes ändert

508* Ein Leerraum, der kein einzelnes normales Leerzeichen zwischen Wörtern ist, z. B. ein geschütztes Leerzeichen, zwei Leerzeichen hintereinander oder ein Leerzeichen am Anfang oder Ende

509* `<` oder `>`

510 

511Ein benutzerdefinierter Befehl oder Skill wird nicht geladen, wenn Claude Code seinen Verzeichnis- oder Dateinamen ablehnt. Benennen Sie diesen Ordner bzw. diese Datei um, um die Zeichen zu entfernen. Ein Skill wird trotzdem geladen, wenn sich diese Zeichen nur im Namen eines Plugin-Skill-Ordners oder in seinem Frontmatter-`name` befinden:

512 

513* **Ordner im `skills/`-Verzeichnis eines Plugins oder in den [`skills`-Pfaden](/docs/de/plugins/components#skills) seines Manifests**: Sie müssen den Ordner nicht umbenennen. Diese Zeichen werden im Befehlsnamen des Skills zu Bindestrichen, geben Sie den Befehl also mit den Bindestrichen ein.

514* **Frontmatter `name`**: Das `/`-Menü zeigt den `name`-Wert nicht an, und die Eingabe dieses Werts ruft den Skill nicht auf. Bearbeiten Sie die Zeile `name:`, um die Zeichen zu entfernen.

515 

516Um herauszufinden, welchen Namen Claude Code abgelehnt hat, starten Sie es aus Ihrer Shell mit [`claude --debug`](/docs/de/cli-reference#cli-flags) und durchsuchen Sie das [Debug-Log](/docs/de/debug-your-config) nach `[names]`. In einer interaktiven Sitzung weist Sie außerdem ein [Hinweis beim Start](/docs/de/errors#skill-or-command-name-refused) darauf hin, dass Namen abgelehnt wurden. Starten Sie nach einer Umbenennung oder einer Änderung an `name:` die Sitzung neu, es sei denn, die Datei befindet sich in einem Verzeichnis, das Claude Code [auf Änderungen überwacht](#live-change-detection).

517 

498<h4 id="available-string-substitutions">518<h4 id="available-string-substitutions">

499 Verfügbare Zeichenkettensubstitutionen519 Verfügbare Zeichenkettensubstitutionen

500</h4>520</h4>


858| Skill mit `context: fork` | Vom Agent-Typ | SKILL.md-Inhalt | CLAUDE.md, gemäß dem [Startup-Kontext](/docs/de/sub-agents#what-loads-at-startup) des Agenten |878| Skill mit `context: fork` | Vom Agent-Typ | SKILL.md-Inhalt | CLAUDE.md, gemäß dem [Startup-Kontext](/docs/de/sub-agents#what-loads-at-startup) des Agenten |

859| Subagent mit `skills`-Feld | Markdown-Text des Subagenten | Claudes Delegationsnachricht | Vorgeladene Skills + CLAUDE.md, gemäß dem [Startup-Kontext](/docs/de/sub-agents#what-loads-at-startup) des Subagenten |879| Subagent mit `skills`-Feld | Markdown-Text des Subagenten | Claudes Delegationsnachricht | Vorgeladene Skills + CLAUDE.md, gemäß dem [Startup-Kontext](/docs/de/sub-agents#what-loads-at-startup) des Subagenten |

860 880 

861Mit `context: fork` schreiben Sie die Task in Ihren Skill und wählen einen Agent-Typ aus, um sie auszuführen. Die integrierten Explore- und Plan-Agenten [überspringen CLAUDE.md und git status](/docs/de/sub-agents#what-loads-at-startup), um ihren Kontext klein zu halten, sodass ein verzweigter Skill mit `agent: Explore` nur den SKILL.md-Inhalt und den eigenen System-Prompt des Agenten sieht. Für das Gegenteil, bei dem Sie einen benutzerdefinierten Subagenten definieren, der Skills als Referenzmaterial verwendet, siehe [Subagenten](/docs/de/sub-agents#preload-skills-into-subagents).881Mit `context: fork` schreiben Sie die Aufgabe in Ihren Skill und wählen einen Agent-Typ aus, um sie auszuführen. Die integrierten Explore- und Plan-Agenten [starten ohne CLAUDE.md und git status](/docs/de/sub-agents#what-loads-at-startup), um ihren Kontext klein zu halten. Legen Sie alles, was die Aufgabe benötigt, in Ihre SKILL.md. Ein verzweigter Skill mit `agent: Explore` startet mit diesem Inhalt und dem eigenen System-Prompt des Agenten, ohne eine Ihrer CLAUDE.md-Dateien.

882 

883Für das Gegenteil, bei dem Sie einen benutzerdefinierten Subagenten definieren, der Skills als Referenzmaterial verwendet, siehe [Subagenten](/docs/de/sub-agents#preload-skills-into-subagents).

862 884 

863<h4 id="example-research-skill-using-explore-agent">885<h4 id="example-research-skill-using-explore-agent">

864 Beispiel: Research-Skill mit Explore-Agent886 Beispiel: Research-Skill mit Explore-Agent


12472. Stellen Sie sicher, dass der Skill in `What skills are available?` angezeigt wird12692. Stellen Sie sicher, dass der Skill in `What skills are available?` angezeigt wird

12483. Versuchen Sie, Ihre Anfrage umzuformulieren, um sie besser an die Beschreibung anzupassen12703. Versuchen Sie, Ihre Anfrage umzuformulieren, um sie besser an die Beschreibung anzupassen

12494. Rufen Sie ihn direkt mit `/skill-name` auf, wenn der Skill vom Benutzer aufgerufen werden kann12714. Rufen Sie ihn direkt mit `/skill-name` auf, wenn der Skill vom Benutzer aufgerufen werden kann

12725. Wenn auch `/skill-name` nicht erkannt wird, prüfen Sie, ob Claude Code [den Namen des Skills abgelehnt hat](#characters-a-skill-name-cant-hold)

1250 1273 

1251Wenn 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.1274Wenn 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.

1252 1275 

statusline.md +2 −2

Details

1198| `description` | string | Kurzbeschreibung der Aufgabe, etwa diejenige, die Claude beim Starten des Subagenten angegeben hat |1198| `description` | string | Kurzbeschreibung der Aufgabe, etwa diejenige, die Claude beim Starten des Subagenten angegeben hat |

1199| `label` | string | Kurze Fortschrittszusammenfassung der Aufgabe, sofern Claude Code eine hat, andernfalls derselbe Text wie `description` |1199| `label` | string | Kurze Fortschrittszusammenfassung der Aufgabe, sofern Claude Code eine hat, andernfalls derselbe Text wie `description` |

1200| `startTime` | number | Startzeitpunkt der Aufgabe in Millisekunden seit der Unix-Epoche |1200| `startTime` | number | Startzeitpunkt der Aufgabe in Millisekunden seit der Unix-Epoche |

1201| `model` | string, optional | ID des aufgelösten Modells, auf dem die Aufgabe ausgeführt wird. Wird weggelassen, bis das Modell aufgelöst ist. Erfordert Claude Code v2.1.205 oder später |1201| `model` | string, optional | ID des aufgelösten Modells, auf dem die Aufgabe ausgeführt wird. Wird weggelassen, bis das Modell aufgelöst ist |

1202| `effort` | string or number, optional | Reasoning-Aufwand, der für den Subagenten in seinem [Definitions-Frontmatter](/docs/de/sub-agents#supported-frontmatter-fields) oder beim einzelnen Aufruf festgelegt ist: `low`, `medium`, `high`, `xhigh`, `max` oder ein numerisches Token-Budget. Dies ist der konfigurierte Wert; der Aufwand, den Claude Code anwendet, kann sich unterscheiden, wenn das Modell diese Stufe nicht unterstützt. Wird weggelassen, wenn kein Aufwand festgelegt ist. Erfordert Claude Code v2.1.213 oder später |1202| `effort` | string or number, optional | Reasoning-Aufwand, der für den Subagenten in seinem [Definitions-Frontmatter](/docs/de/sub-agents#supported-frontmatter-fields) oder beim einzelnen Aufruf festgelegt ist: `low`, `medium`, `high`, `xhigh`, `max` oder ein numerisches Token-Budget. Dies ist der konfigurierte Wert; der Aufwand, den Claude Code anwendet, kann sich unterscheiden, wenn das Modell diese Stufe nicht unterstützt. Wird weggelassen, wenn kein Aufwand festgelegt ist. Erfordert Claude Code v2.1.213 oder später |

1203| `contextWindowSize` | number, optional | Kontextfenster von `model` in Token, berechnet auf die gleiche Weise wie das [`context_window.context_window_size`](#context-window-fields) der Hauptstatuszeile, sodass Sie einen Prozentsatz pro Zeile aus `tokenCount` rendern können. Wird weggelassen, wenn `model` weggelassen wird. Erfordert Claude Code v2.1.205 oder später |1203| `contextWindowSize` | number, optional | Kontextfenster von `model` in Token, berechnet auf die gleiche Weise wie das [`context_window.context_window_size`](#context-window-fields) der Hauptstatuszeile, sodass Sie einen Prozentsatz pro Zeile aus `tokenCount` rendern können. Wird weggelassen, wenn `model` weggelassen wird |

1204| `tokenCount` | number | Laufende Token-Anzahl des Subagenten, der Wert, den die Standardzeile anzeigt |1204| `tokenCount` | number | Laufende Token-Anzahl des Subagenten, der Wert, den die Standardzeile anzeigt |

1205| `tokenSamples` | array of numbers | Bis zu 16 der letzten `tokenCount` Messwerte, einer pro Aktualisierungstick, älteste zuerst und endend mit dem aktuellen |1205| `tokenSamples` | array of numbers | Bis zu 16 der letzten `tokenCount` Messwerte, einer pro Aktualisierungstick, älteste zuerst und endend mit dem aktuellen |

1206| `cwd` | string | Arbeitsverzeichnis des Subagenten: sein eigenes Verzeichnis, wenn er in einem solchen ausgeführt wird, etwa einem isolierten Worktree, andernfalls das Arbeitsverzeichnis der Sitzung |1206| `cwd` | string | Arbeitsverzeichnis des Subagenten: sein eigenes Verzeichnis, wenn er in einem solchen ausgeführt wird, etwa einem isolierten Worktree, andernfalls das Arbeitsverzeichnis der Sitzung |

sub-agents.md +40 −11

Details

32 32 

33Claude Code enthält integrierte Subagenten, die Claude automatisch bei Bedarf verwendet. Jeder erbt die Berechtigungen der übergeordneten Konversation; die meisten werden mit einem eingeschränkten Werkzeugsatz ausgeführt.33Claude Code enthält integrierte Subagenten, die Claude automatisch bei Bedarf verwendet. Jeder erbt die Berechtigungen der übergeordneten Konversation; die meisten werden mit einem eingeschränkten Werkzeugsatz ausgeführt.

34 34 

35Explore und Plan überspringen Ihre CLAUDE.md-Dateien und den Git-Status-Snapshot, um die Recherche schnell und kostengünstig zu halten. Alle anderen integrierten und [benutzerdefinierten Subagenten](#configure-subagents) laden beide, es sei denn, ihre Definition setzt das Feld [`omitClaudeMd`](#supported-frontmatter-fields), um die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien zu überspringen. Für die vollständige Aufschlüsselung dessen, was einen Subagenten erreicht, siehe [was beim Start geladen wird](#what-loads-at-startup).35Explore und Plan starten ohne Ihre CLAUDE.md-Dateien und den Git-Status-Snapshot, um die Recherche schnell und kostengünstig zu halten. Andere integrierte und [benutzerdefinierte Subagenten](#configure-subagents) laden beides, es sei denn, Sie setzen [`omitClaudeMd`](#supported-frontmatter-fields) in der Definition eines benutzerdefinierten Subagenten, um ihn ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien zu starten. Für die vollständige Aufschlüsselung dessen, was einen Subagenten erreicht, siehe [was beim Start geladen wird](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


185 185 

186Claude Code scannt `.claude/agents/` und `~/.claude/agents/` rekursiv, sodass Sie Definitionen in Unterordnern wie `agents/review/` oder `agents/research/` organisieren können. Der Unterverzeichnis-Pfad beeinflusst nicht, wie ein Subagent identifiziert oder aufgerufen wird, da die Identität nur vom `name`-Frontmatter-Feld stammt.186Claude Code scannt `.claude/agents/` und `~/.claude/agents/` rekursiv, sodass Sie Definitionen in Unterordnern wie `agents/review/` oder `agents/research/` organisieren können. Der Unterverzeichnis-Pfad beeinflusst nicht, wie ein Subagent identifiziert oder aufgerufen wird, da die Identität nur vom `name`-Frontmatter-Feld stammt.

187 187 

188Halten Sie `name`-Werte über den gesamten Baum eindeutig: Wenn zwei Dateien unter demselben `.claude/agents/`-Verzeichnis, einschließlich seiner Unterordner, denselben Namen deklarieren, lädt Claude Code nur eine von ihnen, ausgewählt nach Dateisystem-Lesereihenfolge statt nach dokumentierter Priorität. Über verschachtelte Projekt-Verzeichnisse hinweg gewinnt die Definition, die dem Arbeitsverzeichnis am nächsten liegt, wie oben beschrieben. Die [`/doctor`](/docs/de/commands#all-commands)-Setup-Überprüfung meldet Dateien im selben Verzeichnis, die einen Namen teilen, und schlägt vor, alle außer einer umzubenennen oder zu entfernen. Vor v2.1.205 öffnete `/doctor` einen Diagnose-Bildschirm, der Duplikate auflistete und zeigte, welche Definition aktiv war.188Halten Sie `name`-Werte über den gesamten Baum eindeutig: Wenn zwei Dateien unter demselben `.claude/agents/`-Verzeichnis, einschließlich seiner Unterordner, denselben Namen deklarieren, lädt Claude Code nur eine von ihnen, ausgewählt nach Dateisystem-Lesereihenfolge statt nach dokumentierter Priorität. Über verschachtelte Projekt-Verzeichnisse hinweg gewinnt die Definition, die dem Arbeitsverzeichnis am nächsten liegt, wie oben beschrieben. Die [`/doctor`](/docs/de/commands#all-commands)-Setup-Überprüfung meldet Dateien im selben Verzeichnis, die einen Namen teilen, und schlägt vor, alle außer einer umzubenennen oder zu entfernen.

189 189 

190Plugin-`agents/`-Verzeichnisse werden ebenfalls rekursiv gescannt. Im Gegensatz zu Projekt- und Benutzer-Umfängen wird ein Unterordner in einem Plugin-`agents/`-Verzeichnis Teil des [scoped identifier](#invoke-subagents-explicitly): Eine Datei unter `agents/review/security.md` im Plugin `my-plugin` registriert sich als `my-plugin:review:security`.190Plugin-`agents/`-Verzeichnisse werden ebenfalls rekursiv gescannt. Im Gegensatz zu Projekt- und Benutzer-Umfängen wird ein Unterordner in einem Plugin-`agents/`-Verzeichnis Teil des [scoped identifier](#invoke-subagents-explicitly): Eine Datei unter `agents/review/security.md` im Plugin `my-plugin` registriert sich als `my-plugin:review:security`.

191 191 


234Jeder Top-Level-Schlüssel im JSON ist ein Agent-Name, und sein Wert ist die Definition dieses Agenten. Starten Sie einen Namen nicht mit `-`. Eine Definition nimmt diese Felder auf:234Jeder Top-Level-Schlüssel im JSON ist ein Agent-Name, und sein Wert ist die Definition dieses Agenten. Starten Sie einen Namen nicht mit `-`. Eine Definition nimmt diese Felder auf:

235 235 

236* **`prompt`**: Der Systemprompt des Agenten, äquivalent zum Markdown-Body in dateibasierten Subagenten. `prompt` kann leer sein. Wenn Sie einen Agent mit einem leeren `prompt` und ohne `memory`-Feld als Sitzungs-Agent mit `--agent` auswählen, bleibt der Systemprompt der Sitzung unverändert. Ein leerer `prompt` erfordert Claude Code v2.1.281 oder später.236* **`prompt`**: Der Systemprompt des Agenten, äquivalent zum Markdown-Body in dateibasierten Subagenten. `prompt` kann leer sein. Wenn Sie einen Agent mit einem leeren `prompt` und ohne `memory`-Feld als Sitzungs-Agent mit `--agent` auswählen, bleibt der Systemprompt der Sitzung unverändert. Ein leerer `prompt` erfordert Claude Code v2.1.281 oder später.

237* **[Frontmatter-Felder](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` und `isolation`.237* **[Frontmatter-Felder](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `autoCompactWindow`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` und `isolation`.

238* **Ignorierte Felder**: `color` und `experimental` werden hier nicht akzeptiert und werden ignoriert statt abgelehnt.238* **Ignorierte Felder**: `color` und `experimental` werden hier nicht akzeptiert und werden ignoriert statt abgelehnt.

239 239 

240Für das, was Claude Code mit einem Wert tut, den es nicht laden kann, und die Flags und Umgebungsvariable, die diese Überprüfung überspringen, siehe [`Invalid --agents configuration`](/docs/de/errors#invalid-agents-configuration).240Für das, was Claude Code mit einem Wert tut, den es nicht laden kann, und die Flags und Umgebungsvariable, die diese Überprüfung überspringen, siehe [`Invalid --agents configuration`](/docs/de/errors#invalid-agents-configuration).


285 285 

286Ein Subagent startet im aktuellen Arbeitsverzeichnis der Hauptkonversation. Innerhalb eines Subagenten bleiben `cd`-Befehle nicht zwischen Bash- oder PowerShell-Werkzeugaufrufen bestehen und beeinflussen nicht das Arbeitsverzeichnis der Hauptkonversation. Um dem Subagenten stattdessen eine isolierte Kopie des Repositorys zu geben, setzen Sie [`isolation: worktree`](#supported-frontmatter-fields).286Ein Subagent startet im aktuellen Arbeitsverzeichnis der Hauptkonversation. Innerhalb eines Subagenten bleiben `cd`-Befehle nicht zwischen Bash- oder PowerShell-Werkzeugaufrufen bestehen und beeinflussen nicht das Arbeitsverzeichnis der Hauptkonversation. Um dem Subagenten stattdessen eine isolierte Kopie des Repositorys zu geben, setzen Sie [`isolation: worktree`](#supported-frontmatter-fields).

287 287 

288Ein Subagent mit `isolation: worktree` führt seine Bash- und PowerShell-Befehle in seinem Worktree aus. Ein Befehl, dessen Arbeitsverzeichnis sich stattdessen zu Ihrem Haupt-Checkout auflöst, beispielsweise weil das Worktree-Verzeichnis entfernt wurde, während der Subagent lief, schlägt mit einem Fehler fehl. Vor v2.1.203 konnte ein solcher Befehl im Haupt-Checkout ausgeführt werden.288Ein Subagent mit `isolation: worktree` führt seine Bash- und PowerShell-Befehle in seinem Worktree aus. Ein Befehl, dessen Arbeitsverzeichnis sich stattdessen zu Ihrem Haupt-Checkout auflöst, beispielsweise weil das Worktree-Verzeichnis entfernt wurde, während der Subagent lief, schlägt mit einem Fehler fehl.

289 289 

290Diese Arbeitsverzeichnis-Überprüfung deckt das gesamte Repository ab, das das Verzeichnis enthält, von dem aus Sie Claude Code gestartet haben. Wenn Ihre Sitzung in einem verknüpften [Worktree](/docs/de/worktrees) läuft, deckt die Überprüfung auch den Haupt-Checkout ab, von dem dieser Worktree verknüpft ist. Vor v2.1.210 deckte die Überprüfung nur das Start-Verzeichnis selbst ab. Ein Befehl, dessen Arbeitsverzeichnis sich anderswo im selben Repository auflöste, wie das Repository-Root, wenn Sie Claude Code von einem Monorepo-Unterverzeichnis aus gestartet haben, wurde dort ausgeführt, anstatt zu fehlschlagen.290Diese Arbeitsverzeichnis-Überprüfung deckt das gesamte Repository ab, das das Verzeichnis enthält, von dem aus Sie Claude Code gestartet haben. Wenn Ihre Sitzung in einem verknüpften [Worktree](/docs/de/worktrees) läuft, deckt die Überprüfung auch den Haupt-Checkout ab, von dem dieser Worktree verknüpft ist. Vor v2.1.210 deckte die Überprüfung nur das Start-Verzeichnis selbst ab. Ein Befehl, dessen Arbeitsverzeichnis sich anderswo im selben Repository auflöste, wie das Repository-Root, wenn Sie Claude Code von einem Monorepo-Unterverzeichnis aus gestartet haben, wurde dort ausgeführt, anstatt zu fehlschlagen.

291 291 


306 306 

307Konfigurieren Sie einen Subagenten mit YAML-[Frontmatter](/docs/de/glossary#frontmatter) zwischen `---`-Markierungen am Anfang seiner Datei, und schreiben Sie seinen Systemprompt als Markdown nach dem schließenden `---`. Nur `name` und `description` sind erforderlich.307Konfigurieren Sie einen Subagenten mit YAML-[Frontmatter](/docs/de/glossary#frontmatter) zwischen `---`-Markierungen am Anfang seiner Datei, und schreiben Sie seinen Systemprompt als Markdown nach dem schließenden `---`. Nur `name` und `description` sind erforderlich.

308 308 

309Mehrteilige Feldnamen verwenden camelCase, wie `maxTurns` und `disallowedTools`, und müssen genau mit der Tabelle übereinstimmen: Claude Code ignoriert ein Feld, das es nicht erkennt, ohne einen Fehler zu melden. Um herauszufinden, warum eine Subagenten-Datei nicht geladen wurde, siehe [Subagenten-Dateien, die Claude Code überspringt](#subagent-files-claude-code-skips).309Mehrteilige Feldnamen verwenden camelCase, wie `maxTurns` und `disallowedTools`, und müssen genau mit der Tabelle übereinstimmen: Claude Code ignoriert ein Feld, das es nicht erkennt, ohne einen Fehler zu melden.

310 

311* Um ein falsch geschriebenes Feld in einem geladenen Subagenten zu finden, führen Sie [`claude --debug`](/docs/de/cli-reference#cli-flags) in Ihrer Shell aus und durchsuchen Sie das Debug-Log unter `~/.claude/debug/<session-id>.txt` nach `does not recognize or apply`. Das Debug-Log nennt bis zu fünf Felder der obersten Ebene in der Datei des Subagenten, die Claude Code nicht erkennt, zusammen mit dem wahrscheinlich gemeinten Namen, wenn ein unterstütztes Feld ähnlich ist. Erfordert Claude Code v2.1.296 oder später.

312* Um herauszufinden, warum eine Subagenten-Datei nicht geladen wurde, siehe [Subagenten-Dateien, die Claude Code überspringt](#subagent-files-claude-code-skips).

310 313 

311| Feld | Erforderlich | Beschreibung |314| Feld | Erforderlich | Beschreibung |

312| :- | :- | :- |315| :- | :- | :- |


317| `model` | Nein | [Modell](#choose-a-model) zu verwenden: `sonnet`, `opus`, `haiku`, `fable`, eine vollständige Modell-ID wie `claude-opus-5-5` oder `inherit`. Wenn Sie es weglassen, wählt Claude Code das Modell in der [Subagenten-Modell-Reihenfolge](#choose-a-model) |320| `model` | Nein | [Modell](#choose-a-model) zu verwenden: `sonnet`, `opus`, `haiku`, `fable`, eine vollständige Modell-ID wie `claude-opus-5-5` oder `inherit`. Wenn Sie es weglassen, wählt Claude Code das Modell in der [Subagenten-Modell-Reihenfolge](#choose-a-model) |

318| `permissionMode` | Nein | [Berechtigungsmodus](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan` oder `manual` als Alias für `default`. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |321| `permissionMode` | Nein | [Berechtigungsmodus](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan` oder `manual` als Alias für `default`. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |

319| `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 |322| `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 |

323| `autoCompactWindow` | Nein | Senkt das [Fenster für die automatische Komprimierung](#subagent-auto-compact-window) für diesen Subagenten auf eine Token-Anzahl von `100000` bis `1000000`. Erfordert Claude Code v2.1.296 oder später |

320| `skills` | Nein | [Skills](/docs/de/skills) zum Vorausladen in den Kontext des Subagenten beim Start. Der vollständige Skill-Inhalt wird eingespritzt, nicht nur die Beschreibung. Subagenten können weiterhin unlisted Projekt-, Benutzer- und Plugin-Skills durch das Skill-Werkzeug aufrufen |324| `skills` | Nein | [Skills](/docs/de/skills) zum Vorausladen in den Kontext des Subagenten beim Start. Der vollständige Skill-Inhalt wird eingespritzt, nicht nur die Beschreibung. Subagenten können weiterhin unlisted Projekt-, Benutzer- und Plugin-Skills durch das Skill-Werkzeug aufrufen |

321| `mcpServers` | Nein | [MCP-Server](/docs/de/mcp) verfügbar für diesen Subagenten. Jeder Eintrag ist entweder ein Servername, der auf einen bereits konfigurierten Server verweist (z. B. `"slack"`) oder eine Inline-Definition mit dem Servernamen als Schlüssel und einer vollständigen [MCP-Server-Konfiguration](/docs/de/mcp#installing-mcp-servers) als Wert. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |325| `mcpServers` | Nein | [MCP-Server](/docs/de/mcp) verfügbar für diesen Subagenten. Jeder Eintrag ist entweder ein Servername, der auf einen bereits konfigurierten Server verweist (z. B. `"slack"`) oder eine Inline-Definition mit dem Servernamen als Schlüssel und einer vollständigen [MCP-Server-Konfiguration](/docs/de/mcp#installing-mcp-servers) als Wert. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |

322| `hooks` | Nein | [Lifecycle-Hooks](#define-hooks-for-subagents) mit Umfang auf diesen Subagenten. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |326| `hooks` | Nein | [Lifecycle-Hooks](#define-hooks-for-subagents) mit Umfang auf diesen Subagenten. Ignoriert für [Plugin-Subagenten](#choose-the-subagent-scope) |

323| `memory` | Nein | [Persistenter Speicherumfang](#enable-persistent-memory): `user`, `project` oder `local`. Ermöglicht sitzungsübergreifendes Lernen |327| `memory` | Nein | [Persistenter Speicherumfang](#enable-persistent-memory): `user`, `project` oder `local`. Ermöglicht sitzungsübergreifendes Lernen |

324| `background` | Nein | Auf `true` setzen, um diesen Subagenten im Hintergrund zu halten, auch wenn Claude ihn im Vordergrund ausführen möchte. Wo [Fork-Modus](#turn-fork-mode-on-or-off) aktiviert ist, führt Claude Code die Subagenten, die Claude spawnt, bereits [im Hintergrund](#run-subagents-in-foreground-or-background) aus |328| `background` | Nein | Auf `true` setzen, um diesen Subagenten im Hintergrund zu halten, auch wenn Claude ihn im Vordergrund ausführen möchte. Wo [Fork-Modus](#turn-fork-mode-on-or-off) aktiviert ist, führt Claude Code die Subagenten, die Claude spawnt, bereits [im Hintergrund](#run-subagents-in-foreground-or-background) aus |

325| `omitClaudeMd` | Nein | Auf `true` setzen, um diesen Subagenten ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien zu starten; [verwaltete Richtliniendateien](/docs/de/memory#how-claude-md-files-load) werden immer noch geladen, außer für [verwaltete Subagenten](#choose-the-subagent-scope). Verwenden Sie es für Subagenten, die alles, was sie benötigen, aus dem [Delegationsprompt](#what-loads-at-startup) erhalten. Ignoriert, wenn der Agent als Hauptsitzungs-Agent über `--agent` oder die `agent`-Einstellung läuft. Erfordert Claude Code v2.1.271 oder später |329| `omitClaudeMd` | Nein | Auf `true` setzen, um diesen Subagenten ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien in seinem [anfänglichen Kontext](#what-loads-at-startup) zu starten; [verwaltete Richtliniendateien](/docs/de/memory#how-claude-md-files-load) werden weiterhin geladen, außer bei [verwalteten Subagenten](#choose-the-subagent-scope). Verwenden Sie es für Subagenten, die alles Benötigte aus dem Delegations-Prompt beziehen. Wird ignoriert, wenn der Agent über `--agent` oder die Einstellung `agent` als Agent der Hauptsitzung läuft. Erfordert Claude Code v2.1.271 oder höher |

326| `effort` | Nein | Effort-Stufe, wenn dieser Subagent aktiv ist. Überschreibt die Effort-Stufe der Sitzung, aber nicht die Umgebungsvariable [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/de/env-vars#variables). Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. Siehe [Wählen Sie eine Effort-Stufe](#choose-an-effort-level) |330| `effort` | Nein | Effort-Stufe, wenn dieser Subagent aktiv ist. Überschreibt die Effort-Stufe der Sitzung, aber nicht die Umgebungsvariable [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/de/env-vars#variables). Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. Siehe [Wählen Sie eine Effort-Stufe](#choose-an-effort-level) |

327| `isolation` | Nein | Auf `worktree` setzen, um den Subagenten in einem temporären [Git-Worktree](/docs/de/worktrees) auszuführen, was ihm eine isolierte Kopie des Repositorys gibt, die standardmäßig von Ihrem [Standard-Branch](/docs/de/worktrees#choose-the-base-branch) verzweigt ist, anstatt vom `HEAD` der übergeordneten Sitzung. Der Worktree wird automatisch bereinigt, wenn der Subagent keine Änderungen vornimmt |331| `isolation` | Nein | Auf `worktree` setzen, um den Subagenten in einem temporären [Git-Worktree](/docs/de/worktrees) auszuführen, was ihm eine isolierte Kopie des Repositorys gibt, die standardmäßig von Ihrem [Standard-Branch](/docs/de/worktrees#choose-the-base-branch) verzweigt ist, anstatt vom `HEAD` der übergeordneten Sitzung. Der Worktree wird automatisch bereinigt, wenn der Subagent keine Änderungen vornimmt |

328| `color` | Nein | Anzeigefarbe für den Subagenten in der Aufgabenliste und dem Transkript. Akzeptiert `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` oder `cyan` |332| `color` | Nein | Anzeigefarbe für den Subagenten in der Aufgabenliste und dem Transkript. Akzeptiert `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` oder `cyan` |


914claude --agent code-reviewer918claude --agent code-reviewer

915```919```

916 920 

917Sofern der Prompt des Agenten nicht [leer ist](#choose-the-subagent-scope), ersetzt der System-Prompt eines benutzerdefinierten Subagenten den Standard-System-Prompt von Claude Code vollständig, genauso wie [`--system-prompt`](/docs/de/cli-reference) es tut. `CLAUDE.md`-Dateien und das Projekt-Memory werden immer noch durch den normalen Nachrichtenfluss geladen, auch wenn die Agent-Definition [`omitClaudeMd`](#supported-frontmatter-fields) setzt.921Sofern der Prompt des Agenten nicht [leer ist](#choose-the-subagent-scope), ersetzt der System-Prompt eines benutzerdefinierten Subagenten den Standard-System-Prompt von Claude Code vollständig, genauso wie [`--system-prompt`](/docs/de/cli-reference) es tut. `CLAUDE.md`-Dateien und das Projekt-Memory werden immer noch durch den normalen Nachrichtenfluss geladen, auch wenn die Agent-Definition [`omitClaudeMd`](#supported-frontmatter-fields) setzt. Wenn Sie die Sitzung mit `-p` als benutzerdefinierten Agenten mit eigenem Prompt ausführen, startet sie außerdem ohne den [Git-Status-Snapshot](/docs/de/settings-reference#includegitinstructions).

918 922 

919Der Agent-Name erscheint als `@<name>` in der Startup-Kopfzeile, damit Sie bestätigen können, dass er aktiv ist.923Der Agent-Name erscheint als `@<name>` in der Startup-Kopfzeile, damit Sie bestätigen können, dass er aktiv ist.

920 924 


1150* **CLAUDE.md-Dateien**: jede Ebene der [CLAUDE.md-Hierarchie](/docs/de/memory#how-claude-md-files-load), die die Hauptkonversation lädt, einschließlich `~/.claude/CLAUDE.md`, Projektregeln, `CLAUDE.local.md`, verwaltete Richtliniendateien und alle [`AGENTS.md`-Dateien](/docs/de/memory#agents-md), die als Projektanweisungen geladen werden. Die integrierten Explore- und Plan-Agenten überspringen dies. Ein Subagent, dessen Definition [`omitClaudeMd`](#supported-frontmatter-fields) setzt, lädt nur die verwalteten Richtliniendateien oder gar keine, wenn die Definition aus [verwalteten Einstellungen](#choose-the-subagent-scope) kommt.1154* **CLAUDE.md-Dateien**: jede Ebene der [CLAUDE.md-Hierarchie](/docs/de/memory#how-claude-md-files-load), die die Hauptkonversation lädt, einschließlich `~/.claude/CLAUDE.md`, Projektregeln, `CLAUDE.local.md`, verwaltete Richtliniendateien und alle [`AGENTS.md`-Dateien](/docs/de/memory#agents-md), die als Projektanweisungen geladen werden. Die integrierten Explore- und Plan-Agenten überspringen dies. Ein Subagent, dessen Definition [`omitClaudeMd`](#supported-frontmatter-fields) setzt, lädt nur die verwalteten Richtliniendateien oder gar keine, wenn die Definition aus [verwalteten Einstellungen](#choose-the-subagent-scope) kommt.

1151* **Git-Status**: Ein Snapshot, den Claude Code aus Ihrem Repository liest, wenn der Subagent startet. Für einen Subagenten in [seinem eigenen Worktree](/docs/de/worktrees#isolate-subagents-with-worktrees) dieses Repositorys zeigt der Snapshot den Branch, den Status und die letzten Commits des Worktrees. Abwesend außerhalb eines Git-Repositorys oder wenn der Snapshot ausgeschaltet ist; siehe [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions). Explore und Plan überspringen es unabhängig davon.1155* **Git-Status**: Ein Snapshot, den Claude Code aus Ihrem Repository liest, wenn der Subagent startet. Für einen Subagenten in [seinem eigenen Worktree](/docs/de/worktrees#isolate-subagents-with-worktrees) dieses Repositorys zeigt der Snapshot den Branch, den Status und die letzten Commits des Worktrees. Abwesend außerhalb eines Git-Repositorys oder wenn der Snapshot ausgeschaltet ist; siehe [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions). Explore und Plan überspringen es unabhängig davon.

1152* **Vorgeladene Skills**: Vollständiger Inhalt jedes Skills, der im Feld [`skills`](#preload-skills-into-subagents) des Agenten benannt ist. Integrierte Agenten laden Skills nicht vor.1156* **Vorgeladene Skills**: Vollständiger Inhalt jedes Skills, der im Feld [`skills`](#preload-skills-into-subagents) des Agenten benannt ist. Integrierte Agenten laden Skills nicht vor.

1153* **Geschwister-Roster**: Eine [System-Erinnerung](/docs/de/glossary#system-reminder), die `main` und jeden anderen benannten Agenten in der Sitzung auflistet, jeweils ein gültiger `to`-Wert für [`SendMessage`](#resume-subagents). Erfordert Claude Code v2.1.206 oder später. Das Roster erscheint nur, wenn die Tools des Subagenten `SendMessage` enthalten und mindestens ein anderer Agent einen Namen hat, ob Claude ihn beim Spawnen benannt hat oder er als [Agent-Team](/docs/de/agent-teams)-Teamkollege läuft. Es ist ein Snapshot, der beim Start des Subagenten aufgenommen wird, sodass später benannte Agenten nicht erscheinen.1157* **Geschwister-Roster**: Eine [System-Erinnerung](/docs/de/glossary#system-reminder), die `main` und jeden anderen benannten Agenten in der Sitzung auflistet, jeweils ein gültiger `to`-Wert für [`SendMessage`](#resume-subagents). Das Roster erscheint nur, wenn die Tools des Subagenten `SendMessage` enthalten und mindestens ein anderer Agent einen Namen hat, ob Claude ihn beim Spawnen benannt hat oder er als [Agent-Team](/docs/de/agent-teams)-Teamkollege läuft. Es ist ein Snapshot, der beim Start des Subagenten aufgenommen wird, sodass später benannte Agenten nicht erscheinen.

1154 1158 

1155Um einen Ihrer eigenen Subagenten ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien zu starten, setzen Sie [`omitClaudeMd: true`](#supported-frontmatter-fields) in sein Frontmatter oder `--agents` JSON.1159Um einen Ihrer eigenen Subagenten ohne die Benutzer-, Projekt- und lokalen CLAUDE.md-Dateien zu starten, setzen Sie [`omitClaudeMd: true`](#supported-frontmatter-fields) in sein Frontmatter oder `--agents` JSON. Für Explore, Plan und Subagenten mit `omitClaudeMd` werden die `CLAUDE.md` eines Unterverzeichnisses und passende [pfadbezogene Regeln](/docs/de/memory#path-specific-rules) weiterhin [geladen](/docs/de/memory#how-claude-md-files-load), wenn der Subagent mit Dateien dort arbeitet.

1156 1160 

1157Die Hauptkonversation hat immer noch Ihre vollständige CLAUDE.md, wenn sie die Ergebnisse dieser Subagenten liest, sodass die meisten Regeln nicht den Subagenten selbst erreichen müssen. Wenn eine Regel dies muss, z. B. „ignorieren Sie das `vendor/`-Verzeichnis“, wiederholen Sie sie im Prompt, den Sie Claude geben, wenn Sie delegieren.1161Die Hauptkonversation hat immer noch Ihre vollständige CLAUDE.md, wenn sie die Ergebnisse dieser Subagenten liest, sodass die meisten Regeln nicht den Subagenten selbst erreichen müssen. Wenn eine Regel dies muss, z. B. „ignorieren Sie das `vendor/`-Verzeichnis“, wiederholen Sie sie im Prompt, den Sie Claude geben, wenn Sie delegieren.

1158 1162 


1196 1200 

1197Während [die Zeile dieses Subagenten immer noch im Subagenten-Panel ist](#run-subagents-in-foreground-or-background), geben Sie in sein Transkript ein, um ihn selbst fortzusetzen. Danach kann eine Nachricht von Claude ihn wieder automatisch fortsetzen.1201Während [die Zeile dieses Subagenten immer noch im Subagenten-Panel ist](#run-subagents-in-foreground-or-background), geben Sie in sein Transkript ein, um ihn selbst fortzusetzen. Danach kann eine Nachricht von Claude ihn wieder automatisch fortsetzen.

1198 1202 

1199Das Fortsetzen startet einen neuen Lauf des Agenten unter derselben ID, sodass ein Subagent, der bereits fehlgeschlagen oder abgeschlossen war, wieder als laufend in der Task-Liste und in den Task-Events des Agent SDK angezeigt wird. Vor v2.1.205 zeigte er seinen früheren fehlgeschlagenen oder abgeschlossenen Status, während der fortgesetzte Lauf arbeitete.1203Das Fortsetzen startet einen neuen Lauf des Agenten unter derselben ID, sodass ein Subagent, der bereits fehlgeschlagen oder abgeschlossen war, wieder als laufend in der Task-Liste und in den Task-Events des Agent SDK angezeigt wird.

1200 1204 

1201`SendMessage` überprüft, dass ein Name immer noch auf denselben Agenten verweist, den er früher in der Konversation erreicht hat. Wenn ein neuerer Agent den Namen übernommen hat, z. B. ein neu gespawnter Hintergrund-Agent, der ihn wiederverwendet hat, weigert sich Claude Code, die Nachricht zu senden, anstatt sie an den falschen Agenten zu liefern, und der Fehler meldet, welchen Agenten der Name jetzt erreicht, damit Claude sie umleiten kann. Um den früheren Agenten zu erreichen, während er noch läuft, adressiert Claude ihn nach der Agent-ID, die er erhielt, als er diesen Agenten spawnte. Die Überprüfung ist auf die aktuelle Konversation beschränkt und setzt sich bei `/clear` zurück.1205`SendMessage` überprüft, dass ein Name immer noch auf denselben Agenten verweist, den er früher in der Konversation erreicht hat. Wenn ein neuerer Agent den Namen übernommen hat, z. B. ein neu gespawnter Hintergrund-Agent, der ihn wiederverwendet hat, weigert sich Claude Code, die Nachricht zu senden, anstatt sie an den falschen Agenten zu liefern, und der Fehler meldet, welchen Agenten der Name jetzt erreicht, damit Claude sie umleiten kann. Um den früheren Agenten zu erreichen, während er noch läuft, adressiert Claude ihn nach der Agent-ID, die er erhielt, als er diesen Agenten spawnte. Die Überprüfung ist auf die aktuelle Konversation beschränkt und setzt sich bei `/clear` zurück.

1202 1206 


1214 Automatische Komprimierung1218 Automatische Komprimierung

1215</h4>1219</h4>

1216 1220 

1217Subagenten unterstützen automatische Komprimierung mit der gleichen Logik wie die Hauptkonversation. Die Komprimierung wird unter den gleichen Bedingungen ausgelöst, und `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` gilt auch für Subagenten. Siehe [Umgebungsvariablen](/docs/de/env-vars) für den Zeitpunkt, an dem die Überschreibung wirksam wird.1221Subagenten unterstützen automatische Komprimierung. Die Komprimierung wird ausgelöst, wenn sich das eigene Kontextfenster des Subagenten füllt, und `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` gilt auch für Subagenten. Siehe [Umgebungsvariablen](/docs/de/env-vars) für den Zeitpunkt, an dem die Überschreibung wirksam wird.

1218 1222 

1219Komprimierungsereignisse werden in Subagenten-Transkriptdateien protokolliert:1223Komprimierungsereignisse werden in Subagenten-Transkriptdateien protokolliert:

1220 1224 


1231 1235 

1232Der Wert `preTokens` zeigt, wie viele Token vor der Komprimierung verwendet wurden.1236Der Wert `preTokens` zeigt, wie viele Token vor der Komprimierung verwendet wurden.

1233 1237 

1238<a id="subagent-auto-compact-window" />

1239 

1240<h5 id="set-the-auto-compact-window-for-one-subagent">

1241 Das Fenster für die automatische Komprimierung für einen Subagenten festlegen

1242</h5>

1243 

1244Damit ein Subagent früher komprimiert, als er es sonst tun würde, setzen Sie `autoCompactWindow` in seinem [Frontmatter](#supported-frontmatter-fields) auf eine Token-Anzahl von `100000` bis `1000000`. Wenn Sie [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/de/env-vars#variables) auf eine positive ganze Zahl setzen, verwendet der Subagent stattdessen das Fenster dieser Variablen, und das Feld hat keine Wirkung. Erfordert Claude Code v2.1.296 oder später.

1245 

1246Dieses Frontmatter setzt `autoCompactWindow` auf 200.000 Token für einen Subagenten, der lange Logdateien liest:

1247 

1248```yaml theme={null}

1249---

1250name: log-reader

1251description: Reads long log files and reports the errors it finds

1252autoCompactWindow: 200000

1253---

1254```

1255 

1256Schreiben Sie den Wert als einfache ganze Zahl wie `200000`, denn im Frontmatter liest Claude Code `200k` als 200, was außerhalb des zulässigen Bereichs liegt. Der Subagent wird dann trotzdem geladen und komprimiert, als ob das Feld fehlen würde. Um zu prüfen, ob Claude Code Ihren Wert ignoriert hat, führen Sie `claude --debug` in Ihrer Shell aus und durchsuchen Sie das [Debug-Log](#supported-frontmatter-fields) nach `invalid autoCompactWindow`.

1257 

1258Wenn der Wert im zulässigen Bereich liegt und Sie trotzdem keine Änderung sehen, prüfen Sie diese Ursachen:

1259 

1260* **Der Wert liegt nicht unter dem [Fenster für die automatische Komprimierung](/docs/de/model-config#context-window-and-auto-compaction), das der Subagent sonst erben würde**: Um früher zu komprimieren, setzen Sie einen Wert unterhalb dieses Fensters.

1261* **Sie führen die gesamte Sitzung mit `--agent` oder der Einstellung `agent` als diesen Subagenten aus**: Das Feld hat dort keine Wirkung. Um das Fenster der Sitzung festzulegen, siehe [Das Fenster für die automatische Komprimierung festlegen](/docs/de/model-config#set-the-auto-compact-window).

1262 

1234<h2 id="fork-the-current-conversation">1263<h2 id="fork-the-current-conversation">

1235 Gegabelte Konversation1264 Gegabelte Konversation

1236</h2>1265</h2>

Details

44| `ReadMcpResourceTool` | Liest eine bestimmte MCP-Ressource nach URI | Nein |44| `ReadMcpResourceTool` | Liest eine bestimmte MCP-Ressource nach URI | Nein |

45| `RemoteTrigger` | Erstellt, aktualisiert, führt aus und listet [Routinen](/docs/de/routines) auf claude.ai auf. Unterstützt den `/schedule`-Befehl. Die [`RemoteTrigger`-Eingabereferenz](/docs/de/agent-sdk/typescript#remotetrigger) dokumentiert jede Aktion und die Organisationsrichtlinien, die das Tool entfernen. Routinen befinden sich auf claude.ai und erfordern einen Pro-, Max-, Team- oder Enterprise-Plan, daher ist dieses Tool nicht von Amazon Bedrock, Claude Platform auf AWS, Google Clouds Agent Platform oder Microsoft Foundry zugänglich | Nein |45| `RemoteTrigger` | Erstellt, aktualisiert, führt aus und listet [Routinen](/docs/de/routines) auf claude.ai auf. Unterstützt den `/schedule`-Befehl. Die [`RemoteTrigger`-Eingabereferenz](/docs/de/agent-sdk/typescript#remotetrigger) dokumentiert jede Aktion und die Organisationsrichtlinien, die das Tool entfernen. Routinen befinden sich auf claude.ai und erfordern einen Pro-, Max-, Team- oder Enterprise-Plan, daher ist dieses Tool nicht von Amazon Bedrock, Claude Platform auf AWS, Google Clouds Agent Platform oder Microsoft Foundry zugänglich | Nein |

46| `ReportFindings` | Meldet Code-Review-Ergebnisse als strukturierte Liste mit einer Datei, Zusammenfassung und Fehlerfall pro Ergebnis, damit Claude Code sie rendern kann, anstatt sie als Text auszugeben. Claude ruft es auf, wenn aktive Code-Review-Anweisungen dies anweisen. Ein Ergebnis kann auch einen optionalen `category`-Slug tragen, wie `correctness` oder `test-coverage`, der neben dem Dateispeicherort in der gerenderten Liste angezeigt wird | Nein |46| `ReportFindings` | Meldet Code-Review-Ergebnisse als strukturierte Liste mit einer Datei, Zusammenfassung und Fehlerfall pro Ergebnis, damit Claude Code sie rendern kann, anstatt sie als Text auszugeben. Claude ruft es auf, wenn aktive Code-Review-Anweisungen dies anweisen. Ein Ergebnis kann auch einen optionalen `category`-Slug tragen, wie `correctness` oder `test-coverage`, der neben dem Dateispeicherort in der gerenderten Liste angezeigt wird | Nein |

47| `ScheduleWakeup` | Plant die nächste Iteration einer [selbstgesteuerten `/loop`](/docs/de/scheduled-tasks#let-claude-choose-the-interval) neu. Claude ruft dies am Ende jeder Iteration auf, um auszuwählen, wann die nächste ausgeführt wird, zwischen einer Minute und einer Stunde; Sie rufen es nicht direkt auf. Um die Schleife stattdessen zu beenden, ruft Claude sie mit `stop: true` auf, was das ausstehende Wakeup abbricht. Das `stop`-Feld erfordert Claude Code v2.1.202 oder später. Das ausstehende Wakeup wird in `session_crons` in [Stop-Hook-Eingabe](/docs/de/hooks#stop-input) angezeigt | Nein |47| `ScheduleWakeup` | Plant die nächste Iteration einer [selbstgesteuerten `/loop`](/docs/de/scheduled-tasks#let-claude-choose-the-interval) neu. Claude ruft dies am Ende jeder Iteration auf, um auszuwählen, wann die nächste ausgeführt wird, zwischen einer Minute und einer Stunde; Sie rufen es nicht direkt auf. Um die Schleife stattdessen zu beenden, ruft Claude sie mit `stop: true` auf, was das ausstehende Wakeup abbricht. Das ausstehende Wakeup wird in `session_crons` in [Stop-Hook-Eingabe](/docs/de/hooks#stop-input) angezeigt | Nein |

48| `SendFeedback` | Entwirft einen Feedbackbericht über Claude Code, der ein Produktproblem oder Claudes eigenes Verhalten in der Sitzung abdeckt, und stellt ihn in die Warteschlange auf Ihrer Maschine, damit Sie ihn überprüfen können. Claude Code sendet nichts, bis Sie sich entscheiden, den Entwurf zu senden. Siehe [SendFeedback-Tool-Verhalten](#sendfeedback-tool-behavior). Erfordert Claude Code v2.1.238 oder später | Nein |48| `SendFeedback` | Entwirft einen Feedbackbericht über Claude Code, der ein Produktproblem oder Claudes eigenes Verhalten in der Sitzung abdeckt, und stellt ihn in die Warteschlange auf Ihrer Maschine, damit Sie ihn überprüfen können. Claude Code sendet nichts, bis Sie sich entscheiden, den Entwurf zu senden. Siehe [SendFeedback-Tool-Verhalten](#sendfeedback-tool-behavior). Erfordert Claude Code v2.1.238 oder später | Nein |

49| `SendMessage` | Sendet eine Nachricht an einen anderen Agenten: einen [Agent-Team](/docs/de/agent-teams)-Teamkollegen, einen [Subagenten, den es nach Agent-ID oder Name fortsetzen kann](/docs/de/sub-agents#resume-subagents), oder eine Ihrer anderen Claude-Code-Sitzungen, auf dieser Maschine oder darüber hinaus. Das Messaging anderer Sitzungen erfordert Claude Code v2.1.224 oder später. [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging) behandelt, welche Sitzungen Claude erreichen kann, [wie eine Nachricht aussieht, wenn sie ankommt](/docs/de/cross-session-messaging#what-a-message-looks-like), und [wie Claude eine Benachrichtigung erhält, wenn eine andere Sitzung untätig wird](/docs/de/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude kann eine optionale `summary`-Eingabe einschließen, typischerweise 5-10 Wörter, die Claude Code als Einzeilenvorschau anzeigt. Wenn Claude sie bei einer [Nur-Text-Nachricht](/docs/de/cross-session-messaging#limitations) auslässt, verwendet Claude Code die erste Zeile der Nachricht als Zusammenfassung. Claude Code schneidet eine Zusammenfassung, die länger als 200 Zeichen ist, mit einer Ellipse ab | Nein |49| `SendMessage` | Sendet eine Nachricht an einen anderen Agenten: einen [Agent-Team](/docs/de/agent-teams)-Teamkollegen, einen [Subagenten, den es nach Agent-ID oder Name fortsetzen kann](/docs/de/sub-agents#resume-subagents), oder eine Ihrer anderen Claude-Code-Sitzungen, auf dieser Maschine oder darüber hinaus. Das Messaging anderer Sitzungen erfordert Claude Code v2.1.224 oder später. [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging) behandelt, welche Sitzungen Claude erreichen kann, [wie eine Nachricht aussieht, wenn sie ankommt](/docs/de/cross-session-messaging#what-a-message-looks-like), und [wie Claude eine Benachrichtigung erhält, wenn eine andere Sitzung untätig wird](/docs/de/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude kann eine optionale `summary`-Eingabe einschließen, typischerweise 5-10 Wörter, die Claude Code als Einzeilenvorschau anzeigt. Wenn Claude sie bei einer [Nur-Text-Nachricht](/docs/de/cross-session-messaging#limitations) auslässt, verwendet Claude Code die erste Zeile der Nachricht als Zusammenfassung. Claude Code schneidet eine Zusammenfassung, die länger als 200 Zeichen ist, mit einer Ellipse ab | 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. Die optionale `display`-Eingabe steuert 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 in einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web). 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. Die optionale `display`-Eingabe steuert 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 in einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web). 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 |


54| `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| `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 |

55| `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| `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 |

56| `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| `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 |

57| `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| `TaskOutput` | In v2.1.277 entfernt. Rief zuvor die Ausgabe einer Hintergrundaufgabe ab; Claude liest stattdessen die [Ausgabedatei](/docs/de/interactive-mode#how-backgrounding-works) einer Hintergrundaufgabe mit `Read` | Nein |

58| `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. 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 von der Hauptkonversation aus gestoppt werden | Nein |58| `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. 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 | Nein |

59| `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| `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 |

60| `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| `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 |

61| `ToolSearch` | Sucht nach und lädt aufgeschobene Tools, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aktiviert ist | Nein |61| `ToolSearch` | Sucht nach und lädt aufgeschobene Tools, wenn [Tool-Suche](/docs/de/mcp#scale-with-mcp-tool-search) aktiviert ist | Nein |

ultrareview.md +2 −2

Details

149 Eine laufende Review verfolgen149 Eine laufende Review verfolgen

150</h2>150</h2>

151 151 

152Eine Review dauert normalerweise 5 bis 10 Minuten. Die Review läuft als Hintergrundaufgabe, sodass Sie in Ihrer Sitzung weiterarbeiten oder andere Befehle starten können. Wenn Sie sich dafür entschieden haben, [die Ergebnisse im Pull Request zu veröffentlichen](#post-findings-to-the-pull-request), halten Sie die Sitzung offen, bis die Review abgeschlossen ist. Wenn die Sitzung zuerst endet, veröffentlicht Claude Code nichts.152Eine Review dauert normalerweise 15 bis 25 Minuten. Die Review läuft als Hintergrundaufgabe, sodass Sie in Ihrer Sitzung weiterarbeiten oder andere Befehle starten können. Wenn Sie sich dafür entschieden haben, [die Ergebnisse im Pull Request zu veröffentlichen](#post-findings-to-the-pull-request), halten Sie die Sitzung offen, bis die Review abgeschlossen ist. Wenn die Sitzung zuerst endet, veröffentlicht Claude Code nichts.

153 153 

154Verwenden Sie `/tasks`, um laufende und abgeschlossene Reviews anzuzeigen, die Detailansicht für eine Review zu öffnen oder eine laufende Review zu stoppen. Wenn Sie eine Review stoppen, archiviert Claude Code die Cloud-Sitzung und gibt keine teilweisen Ergebnisse zurück.154Verwenden Sie `/tasks`, um laufende und abgeschlossene Reviews anzuzeigen, die Detailansicht für eine Review zu öffnen oder eine laufende Review zu stoppen. Wenn Sie eine Review stoppen, archiviert Claude Code die Cloud-Sitzung und gibt keine teilweisen Ergebnisse zurück.

155 155 


216| Ziel | Ihr Working Diff, ein Pull Request, ein Branch oder ein Pfad | Ihr Working Diff oder ein Pull Request |216| Ziel | Ihr Working Diff, ein Pull Request, ein Branch oder ein Pfad | Ihr Working Diff oder ein Pull Request |

217| Läuft | lokal in Ihrer Sitzung | in einer Cloud-Sandbox |217| Läuft | lokal in Ihrer Sitzung | in einer Cloud-Sandbox |

218| Tiefe | skaliert mit dem Effort-Argument | Multi-Agent-Flotte mit unabhängiger Verifizierung |218| Tiefe | skaliert mit dem Effort-Argument | Multi-Agent-Flotte mit unabhängiger Verifizierung |

219| Dauer | Sekunden bis wenige Minuten | ungefähr 5 bis 10 Minuten |219| Dauer | Sekunden bis wenige Minuten | ungefähr 15 bis 25 Minuten |

220| Kosten | zählt zur normalen Nutzung | kostenlose Durchläufe, dann ungefähr 5 bis 25 Dollar pro Review als Nutzungsguthaben |220| Kosten | zählt zur normalen Nutzung | kostenlose Durchläufe, dann ungefähr 5 bis 25 Dollar pro Review als Nutzungsguthaben |

221| Am besten für | schnelles Feedback während der Iteration | Pre-Merge-Sicherheit bei wesentlichen Änderungen |221| Am besten für | schnelles Feedback während der Iteration | Pre-Merge-Sicherheit bei wesentlichen Änderungen |

222 222 

Details

146 146 

147<Steps>147<Steps>

148 <Step title="Wählen Sie ein Repository und einen Branch">148 <Step title="Wählen Sie ein Repository und einen Branch">

149 Von [claude.ai/code](https://claude.ai/code) oder der Code-Registerkarte in der Claude-Mobilanwendung klicken Sie auf den Repository-Selector unter dem Eingabefeld und wählen Sie ein Repository aus, in dem Claude arbeiten soll. Jedes Repository zeigt einen Branch-Selector. Ändern Sie ihn, um Claude von einem Feature-Branch anstelle des Standards zu starten. Sie können mehrere Repositorys hinzufügen, um in einer Sitzung über sie hinweg zu arbeiten.149 Von [claude.ai/code](https://claude.ai/code) oder der Code-Registerkarte in der Claude-Mobilanwendung klicken Sie auf den Repository-Selector unter dem Eingabefeld und wählen Sie ein Repository aus, in dem Claude arbeiten soll. Sie können mehrere Repositorys hinzufügen, um in einer Sitzung über sie hinweg zu arbeiten.

150 

151 Um Claude unter claude.ai/code von einem Feature-Branch anstelle des Standards zu starten, ändern Sie den Branch im Steuerelement nach dem Repository-Selector.

150 </Step>152 </Step>

151 153 

152 <Step title="Wählen Sie einen Berechtigungsmodus">154 <Step title="Wählen Sie einen Berechtigungsmodus">

workflows.md +3 −3

Details

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 die Details eines Agenten. In den Details erweitert oder reduziert `Enter` diese |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 ist `←` nicht aus einer Phase oder einem Agenten zurückgetreten; verwenden Sie `Esc` auf diesen Versionen |102| `Esc` oder `←` | Gehen Sie eine Ebene zurück |

103| `j` / `k` | Scrollen Sie innerhalb der Agenten-Details, wenn diese ü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 |


167/effort ultracode167/effort ultracode

168```168```

169 169 

170Um eine Sitzung mit bereits aktiviertem Ultracode zu starten, starten Sie mit `claude --effort ultracode`, was auch die Anstrengungsebene auf `xhigh` setzt. Erfordert Claude Code v2.1.203 oder später.170Um eine Sitzung mit bereits aktiviertem Ultracode zu beginnen, starten Sie mit `claude --effort ultracode`, was auch die Effort-Stufe auf `xhigh` setzt.

171 171 

172Um es vom `/effort`-Schieberegler aus zu aktivieren, drücken Sie `Tab`, um den **Ultracode**-Schalter umzuschalten, und dann `Enter`, um es anzuwenden. [Anstrengungsebene anpassen](/docs/de/model-config#adjust-effort-level) listet die Routen auf, die Ultracode aktivieren.172Um es vom `/effort`-Schieberegler aus zu aktivieren, drücken Sie `Tab`, um den **Ultracode**-Schalter umzuschalten, und dann `Enter`, um es anzuwenden. [Anstrengungsebene anpassen](/docs/de/model-config#adjust-effort-level) listet die Routen auf, die Ultracode aktivieren.

173 173 


527 Legen Sie eine Größenrichtlinie fest527 Legen Sie eine Größenrichtlinie fest

528</h3>528</h3>

529 529 

530Eine Größenrichtlinie teilt Claude mit, wie viele Agenten angestrebt werden sollen, wenn es einen dynamischen Workflow schreibt. Claude Code sendet die Richtlinie an Claude als Ratschlag, nicht als Obergrenze, sodass ein Prompt, der einen anderen Maßstab fordert, diese Richtlinie immer noch überschreibt. Erfordert Claude Code v2.1.202 oder später.530Eine Größenrichtlinie teilt Claude mit, wie viele Agenten angestrebt werden sollen, wenn es einen dynamischen Workflow schreibt. Claude Code sendet die Richtlinie an Claude als Ratschlag, nicht als Obergrenze, sodass ein Prompt, der einen anderen Maßstab fordert, diese Richtlinie immer noch überschreibt.

531 531 

532Jeder Wert entspricht einer Agentenzahl:532Jeder Wert entspricht einer Agentenzahl:

533 533