SpyBara
Go Premium

Documentation 2026-10-09 23:02 UTC to 2026-10-10 21:01 UTC

69 files changed +1,151 −338. View all changes and history on the product overview
2026
Sat 10 22: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

187 187 

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

189 189 

190* **`allowed_tools` / `allowedTools`** genehmigt automatisch aufgelistete Werkzeuge. Ein schreibgeschützter Agent mit `["Read", "Glob", "Grep"]` in seiner Werkzeugliste für zulässige Werkzeuge führt diese Werkzeuge ohne Aufforderung aus. Werkzeuge, die nicht aufgelistet sind, sind immer noch verfügbar, und Aufrufe an sie, die Genehmigung benötigen, fallen durch zum Berechtigungsmodus und `canUseTool`.190* **`allowed_tools` / `allowedTools`** genehmigt aufgelistete Tools automatisch. Ein nur lesender Agent mit `["Read", "Glob", "Grep"]` in seiner Liste zulässiger Tools führt diese Tools ohne Nachfrage aus, abgesehen von Lesevorgängen aus [Netzwerkpfaden](/docs/de/permissions#network-paths). Tools, die nicht aufgelistet sind, sind weiterhin verfügbar, und Aufrufe an sie, die eine Genehmigung benötigen, werden an den Berechtigungsmodus und `canUseTool` weitergereicht.

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

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

193 193 


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

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

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

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

267| `"auto"` | Verwendet einen Modell-Klassifizierer, um Aktionen wie Shell-Befehle und Netzwerkanfragen zu überprüfen und jede einzelne zu genehmigen oder zu blockieren. Siehe [Auto mode](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit und die Entscheidungsreihenfolge | Autonome Agenten, die immer noch Sicherheitsvorkehrungen bei der Tool-Nutzung wünschen |267| `"auto"` | Verwendet einen Modell-Klassifizierer, um Aktionen wie Shell-Befehle und Netzwerkanfragen zu überprüfen und jede einzelne zu genehmigen oder zu blockieren. Siehe [Auto mode](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) für Verfügbarkeit und die Entscheidungsreihenfolge | Autonome Agenten, die immer noch Sicherheitsvorkehrungen bei der Tool-Nutzung wünschen |

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

269 269 

Details

424 Spezifische Tools automatisch genehmigen424 Spezifische Tools automatisch genehmigen

425</h3>425</h3>

426 426 

427Standardmäßig kann der Agent vor der Verwendung bestimmter Tools um Genehmigung bitten. Dieses Beispiel genehmigt schreibgeschützte Dateisystem-Tools (Read, Glob, Grep) automatisch, indem `permissionDecision: 'allow'` zurückgegeben wird, sodass sie ohne Benutzerbestätigung ausgeführt werden, während alle anderen Tools normalen Berechtigungsprüfungen unterliegen:427Standardmäßig kann der Agent vor der Verwendung bestimmter Tools um Erlaubnis fragen. Dieses Beispiel genehmigt nur lesende Dateisystem-Tools (Read, Glob, Grep) automatisch, indem `permissionDecision: 'allow'` zurückgegeben wird, sodass sie ohne Benutzerbestätigung ausgeführt werden, mit Ausnahme von Lesevorgängen aus [Netzwerkpfaden](/docs/de/permissions#network-paths), während alle anderen Tools normalen Berechtigungsprüfungen unterliegen:

428 428 

429<CodeGroup>429<CodeGroup>

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

Details

44 Prüfen Sie `allow` Regeln (aus `allowed_tools` und settings.json). Wenn eine Regel zutrifft, wird das Tool genehmigt. Ein Aufruf, den das Tool selbst genehmigt, wird auch in diesem Schritt aufgelöst, ohne dass eine Regel erforderlich ist: zum Beispiel ein Dateilesezugriff in Ihren Arbeitsverzeichnissen oder ein [schreibgeschützter Bash-Befehl](/docs/de/permissions#read-only-commands).44 Prüfen Sie `allow` Regeln (aus `allowed_tools` und settings.json). Wenn eine Regel zutrifft, wird das Tool genehmigt. Ein Aufruf, den das Tool selbst genehmigt, wird auch in diesem Schritt aufgelöst, ohne dass eine Regel erforderlich ist: zum Beispiel ein Dateilesezugriff in Ihren Arbeitsverzeichnissen oder ein [schreibgeschützter Bash-Befehl](/docs/de/permissions#read-only-commands).

45 45 

46 `rm` und `rmdir` Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden niemals durch eine Allow-Regel genehmigt. Ob sie dann Ihren Callback erreichen, hängt vom Berechtigungsmodus ab: in einer Agent SDK Sitzung im `auto` Modus lehnt Claude Code sie beispielsweise standardmäßig ab, ohne ihn aufzurufen. Die Tabelle [Kritische Pfade](/docs/de/permission-modes#critical-paths) Modus listet auf, was jeder Modus mit ihnen tut.46 `rm` und `rmdir` Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden niemals durch eine Allow-Regel genehmigt. Ob sie dann Ihren Callback erreichen, hängt vom Berechtigungsmodus ab: in einer Agent SDK Sitzung im `auto` Modus lehnt Claude Code sie beispielsweise standardmäßig ab, ohne ihn aufzurufen. Die Tabelle [Kritische Pfade](/docs/de/permission-modes#critical-paths) Modus listet auf, was jeder Modus mit ihnen tut.

47 

48 Eine Allow-Regel genehmigt keinen Lesezugriff auf einen [Netzwerkpfad](/docs/de/permissions#network-paths).

47 </Step>49 </Step>

48 50 

49 <Step title="canUseTool Callback">51 <Step title="canUseTool Callback">


60Wenn Sie einen `canUseTool` Callback in einer Konfiguration übergeben, in der das TypeScript SDK erwartet, dass die Auswertungsreihenfolge Aufrufe automatisch genehmigt, bevor der Callback konsultiert wird, gibt das SDK eine Node.js-Prozesswarnung aus, wenn die Abfrage konstruiert wird. Der Code der Warnung ist `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Zwei Konfigurationen lösen sie aus:62Wenn Sie einen `canUseTool` Callback in einer Konfiguration übergeben, in der das TypeScript SDK erwartet, dass die Auswertungsreihenfolge Aufrufe automatisch genehmigt, bevor der Callback konsultiert wird, gibt das SDK eine Node.js-Prozesswarnung aus, wenn die Abfrage konstruiert wird. Der Code der Warnung ist `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Zwei Konfigurationen lösen sie aus:

61 63 

62* `permissionMode: 'bypassPermissions'`, das jeden Aufruf automatisch genehmigt, der den Berechtigungsmodus-Schritt erreicht, außer den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves)64* `permissionMode: 'bypassPermissions'`, das jeden Aufruf automatisch genehmigt, der den Berechtigungsmodus-Schritt erreicht, außer den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves)

63* Jeder bare `allowedTools` Eintrag wie `"Read"`, der dieses ganze Tool automatisch genehmigt, bevor der Callback konsultiert wird, außer den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves)65* Jeder bare `allowedTools` Eintrag wie `"Read"`, der dieses ganze Tool automatisch genehmigt, bevor der Callback konsultiert wird, außer den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) und [Lesezugriffen auf Netzwerkpfade](/docs/de/permissions#network-paths)

64 66 

65Einträge mit einem Spezifizierer wie `Bash(ls *)` und der `acceptEdits` Modus lösen es nicht aus, und Allow-Regeln aus Einstellungsdateien sind für die Prüfung nicht sichtbar.67Einträge mit einem Spezifizierer wie `Bash(ls *)` und der `acceptEdits` Modus lösen es nicht aus, und Allow-Regeln aus Einstellungsdateien sind für die Prüfung nicht sichtbar.

66 68 


79 81 

80| Option | Auswirkung |82| Option | Auswirkung |

81| :- | :- |83| :- | :- |

82| `allowed_tools=["Read", "Grep"]` | `Read` und `Grep` werden automatisch genehmigt. Andere Tools, die hier nicht aufgelistet sind, existieren weiterhin, und Aufrufe, die Genehmigung benötigen, fallen durch zum Genehmigungsmodus und `canUseTool`. |84| `allowed_tools=["Read", "Grep"]` | `Read` und `Grep` werden automatisch genehmigt, abgesehen von [Lesezugriffen auf Netzwerkpfade](/docs/de/permissions#network-paths). Andere Tools, die hier nicht aufgelistet sind, existieren weiterhin, und Aufrufe, die Genehmigung benötigen, fallen durch zum Berechtigungsmodus und `canUseTool`. |

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

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

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


95 97 

96 Eine Allow-Regel genehmigt niemals automatisch `AskUserQuestion`, MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), oder `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen. Im `dontAsk`-Modus lehnt Claude Code diese Aufrufe ab, ohne den Callback aufzurufen. In anderen Modi erreichen die ersten drei den Callback. Je nach [Genehmigungsmodus](/docs/de/permission-modes#critical-paths) erreicht eine kritische-Pfad-Entfernung den Callback auch oder Claude Code lehnt sie ab, ohne sie aufzurufen, wie es standardmäßig für eine Agent SDK-Sitzung im `auto`-Modus der Fall ist.98 Eine Allow-Regel genehmigt niemals automatisch `AskUserQuestion`, MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), oder `rm`- und `rmdir`-Entfernungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen. Im `dontAsk`-Modus lehnt Claude Code diese Aufrufe ab, ohne den Callback aufzurufen. In anderen Modi erreichen die ersten drei den Callback. Je nach [Genehmigungsmodus](/docs/de/permission-modes#critical-paths) erreicht eine kritische-Pfad-Entfernung den Callback auch oder Claude Code lehnt sie ab, ohne sie aufzurufen, wie es standardmäßig für eine Agent SDK-Sitzung im `auto`-Modus der Fall ist.

97 99 

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

99</Warning>101</Warning>

100 102 

101Für einen abgesperrten Agent kombinieren Sie `allowedTools` mit `permissionMode: "dontAsk"`:103Für einen abgesperrten Agent kombinieren Sie `allowedTools` mit `permissionMode: "dontAsk"`:


107};109};

108```110```

109 111 

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

111 113 

112<Warning>114<Warning>

113 **`allowed_tools` schränkt `bypassPermissions` nicht ein.** `allowed_tools` genehmigt die Tools, die Sie aufgelistet haben, im Voraus. Andere nicht aufgelistete Tools werden nicht durch eine Allow-Regel abgeglichen und fallen durch zum Genehmigungsmodus, wo `bypassPermissions` sie genehmigt. Das Setzen von `allowed_tools=["Read"]` zusammen mit `permission_mode="bypassPermissions"` genehmigt immer noch jedes Tool, einschließlich `Bash`, `Write` und `Edit`. Wenn Sie `bypassPermissions` benötigen, aber bestimmte Tools blockiert haben möchten, verwenden Sie `disallowed_tools`.115 **`allowed_tools` schränkt `bypassPermissions` nicht ein.** `allowed_tools` genehmigt die Tools, die Sie aufgelistet haben, im Voraus. Andere nicht aufgelistete Tools werden nicht durch eine Allow-Regel abgeglichen und fallen durch zum Genehmigungsmodus, wo `bypassPermissions` sie genehmigt. Das Setzen von `allowed_tools=["Read"]` zusammen mit `permission_mode="bypassPermissions"` genehmigt immer noch jedes Tool, einschließlich `Bash`, `Write` und `Edit`. Wenn Sie `bypassPermissions` benötigen, aber bestimmte Tools blockiert haben möchten, verwenden Sie `disallowed_tools`.


139| Modus | Beschreibung | Tool-Verhalten |141| Modus | Beschreibung | Tool-Verhalten |

140| :- | :- | :- |142| :- | :- | :- |

141| `default` | Standardberechtigungsverhalten | Keine modusbasierten automatischen Genehmigungen; Aufrufe, die eine Genehmigung benötigen und keine Allow-Regel erfüllen, lösen Ihren `canUseTool`-Callback aus |143| `default` | Standardberechtigungsverhalten | Keine modusbasierten automatischen Genehmigungen; Aufrufe, die eine Genehmigung benötigen und keine Allow-Regel erfüllen, lösen Ihren `canUseTool`-Callback aus |

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

143| `acceptEdits` | Dateibearbeitungen automatisch akzeptieren | Dateibearbeitungen und [Dateisystemoperationen](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` usw.) werden automatisch genehmigt |145| `acceptEdits` | Dateibearbeitungen automatisch akzeptieren | Dateibearbeitungen und [Dateisystemoperationen](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` usw.) werden automatisch genehmigt |

144| `bypassPermissions` | Berechtigungsprüfungen umgehen | Tools werden ohne Berechtigungsaufforderungen ausgeführt, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves). Mit Vorsicht verwenden |146| `bypassPermissions` | Berechtigungsprüfungen umgehen | Tools werden ohne Berechtigungsaufforderungen ausgeführt, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves). Mit Vorsicht verwenden |

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


286 Nicht-Fragen-Modus (`dontAsk`)288 Nicht-Fragen-Modus (`dontAsk`)

287</h4>289</h4>

288 290 

289Konvertiert jede Berechtigungsaufforderung in eine Ablehnung, ohne `canUseTool` aufzurufen. Tools, die von `allowed_tools`, `settings.json` Allow-Regeln oder einem Hook vorab genehmigt wurden, werden normal ausgeführt, ebenso wie Aufrufe, die im `default`-Modus keine Genehmigung benötigen, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und Aufrufe an `Agent`. Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), Tools, die Benutzerinteraktion erfordern, und `rm` und `rmdir` Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden abgelehnt, auch wenn eine Allow-Regel übereinstimmt. Ein `PreToolUse`-Hook-Allow hebt auch eine kritische Pfad-Löschung nicht auf.291Konvertiert jede Berechtigungsabfrage in eine Ablehnung, ohne `canUseTool` aufzurufen. Tools, die von `allowed_tools`, `settings.json`-Allow-Regeln oder einem Hook vorab genehmigt wurden, werden normal ausgeführt, ebenso wie Aufrufe, die im `default`-Modus keine Genehmigung benötigen, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und Aufrufe an `Agent`. Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), Tools, die Benutzerinteraktion erfordern, [Lesezugriffe auf Netzwerkpfade](/docs/de/permissions#network-paths) sowie `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) abzielen, werden abgelehnt, auch wenn eine Allow-Regel übereinstimmt. Ein `PreToolUse`-Hook-Allow hebt weder die Löschung eines kritischen Pfads noch einen Lesezugriff auf einen Netzwerkpfad auf.

290 292 

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

292 294 

Details

518 print(session.summary)518 print(session.summary)

519```519```

520 520 

521<h3 id="fork_session">

522 `fork_session()`

523</h3>

524 

525Kopiert das Transkript einer Sitzung in eine neue Sitzung, sodass Sie die Konversation in eine andere Richtung lenken können, während das Original unverändert bleibt. Um von einem früheren Punkt der Konversation abzuzweigen, übergeben Sie `up_to_message_id`. Synchron.

526 

527```python theme={null}

528def fork_session(

529 session_id: str,

530 directory: str | None = None,

531 up_to_message_id: str | None = None,

532 title: str | None = None,

533) -> ForkSessionResult

534```

535 

536<h4 id="parameters-9">

537 Parameter

538</h4>

539 

540| Parameter | Typ | Standard | Beschreibung |

541| :- | :- | :- | :- |

542| `session_id` | `str` | erforderlich | UUID der zu forkenden Sitzung |

543| `directory` | `str \| None` | `None` | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |

544| `up_to_message_id` | `str \| None` | `None` | Kopiert das Transkript bis einschließlich der Nachricht mit dieser UUID, etwa einer `uuid` aus [`get_session_messages()`](#get_session_messages). Wenn weggelassen, wird das gesamte Transkript kopiert |

545| `title` | `str \| None` | `None` | Titel für den Fork. Wenn weggelassen, leitet das SDK einen Titel aus der ursprünglichen Sitzung ab, gefolgt von `(fork)` |

546 

547Gibt ein `ForkSessionResult` zurück, dessen `session_id` die UUID der neuen Sitzung ist. Übergeben Sie diese als [`resume`](#claudeagentoptions), um den Fork fortzusetzen. Der Fork enthält nicht die [Datei-Checkpoints](/docs/de/agent-sdk/file-checkpointing) der ursprünglichen Sitzung, sodass Sie ihn nicht auf einen Checkpoint zurücksetzen können, der vor dem Fork erstellt wurde.

548 

549`fork_session()` wirft:

550 

551* `ValueError`: `session_id` oder `up_to_message_id` ist keine gültige UUID

552* `ValueError`: Die Sitzung enthält keine Nachrichten, oder `up_to_message_id` entspricht keiner Nachricht im Transkript

553* `FileNotFoundError`: Die Sitzung kann nicht gefunden werden

554 

555<h4 id="example-8">

556 Beispiel

557</h4>

558 

559Forken Sie die neueste Sitzung unter einem neuen Titel und setzen Sie anschließend den Fork fort. Die ursprüngliche Sitzung behält ihren eigenen Verlauf.

560 

561```python theme={null}

562from claude_agent_sdk import fork_session, list_sessions

563 

564sessions = list_sessions(directory="/path/to/project", limit=1)

565if sessions:

566 forked = fork_session(sessions[0].session_id, title="Try the OAuth approach")

567 print(forked.session_id) # pass as ClaudeAgentOptions(resume=...) to continue the fork

568```

569 

521<h2 id="classes">570<h2 id="classes">

522 Klassen571 Klassen

523</h2>572</h2>


919| Eigenschaft | Typ | Standard | Beschreibung |968| Eigenschaft | Typ | Standard | Beschreibung |

920| :- | :- | :- | :- |969| :- | :- | :- | :- |

921| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Tools-Konfiguration. Verwenden Sie `{"type": "preset", "preset": "claude_code"}` für die Standard-Tools von Claude Code |970| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Tools-Konfiguration. Verwenden Sie `{"type": "preset", "preset": "claude_code"}` für die Standard-Tools von Claude Code |

922| `allowed_tools` | `list[str]` | `[]` | Tools, die automatisch genehmigt werden, ohne nachzufragen. Dies beschränkt Claude nicht nur auf diese Tools. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) hier nennen, aktiviert Claude Code diese auch für die Sitzung. Andere nicht aufgelistete Tools fallen auf `permission_mode` und `can_use_tool` durch. Verwenden Sie `disallowed_tools`, um Tools zu blockieren. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |971| `allowed_tools` | `list[str]` | `[]` | Tools, die automatisch genehmigt werden, ohne nachzufragen, ausgenommen Lesezugriffe auf [Netzwerkpfade](/docs/de/permissions#network-paths). Dies beschränkt Claude nicht nur auf diese Tools. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/agent-sdk/todo-tracking#model-availability) hier nennen, aktiviert Claude Code diese auch für die Sitzung. Andere nicht aufgelistete Tools fallen auf `permission_mode` und `can_use_tool` durch. Verwenden Sie `disallowed_tools`, um Tools zu blockieren. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |

923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | System-Prompt-Konfiguration. Übergeben Sie eine Zeichenkette für einen benutzerdefinierten Prompt, `{"type": "preset", "preset": "claude_code"}` für den System-Prompt von Claude Code mit optionalem `"append"`, `{"type": "custom", "prompt": "..."}` für einen benutzerdefinierten Prompt, der auch `"snapshot"` setzen kann, oder `{"type": "file", "path": "..."}` zum Laden eines großen Prompts von der Festplatte. Siehe [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) und [`SystemPromptFile`](#systempromptfile) |972| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | System-Prompt-Konfiguration. Übergeben Sie eine Zeichenkette für einen benutzerdefinierten Prompt, `{"type": "preset", "preset": "claude_code"}` für den System-Prompt von Claude Code mit optionalem `"append"`, `{"type": "custom", "prompt": "..."}` für einen benutzerdefinierten Prompt, der auch `"snapshot"` setzen kann, oder `{"type": "file", "path": "..."}` zum Laden eines großen Prompts von der Festplatte. Siehe [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) und [`SystemPromptFile`](#systempromptfile) |

924| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP-Server-Konfigurationen oder Pfad zur Konfigurationsdatei |973| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP-Server-Konfigurationen oder Pfad zur Konfigurationsdatei |

925| `strict_mcp_config` | `bool` | `False` | Wenn `True`, werden nur die in `mcp_servers` übergebenen Server verwendet und die Projektdatei `.mcp.json`, Benutzereinstellungen, von Plugins bereitgestellte MCP-Server und [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) ignoriert. Entspricht dem CLI-Flag `--strict-mcp-config` |974| `strict_mcp_config` | `bool` | `False` | Wenn `True`, werden nur die in `mcp_servers` übergebenen Server verwendet und die Projektdatei `.mcp.json`, Benutzereinstellungen, von Plugins bereitgestellte MCP-Server und [claude.ai-Konnektoren](/docs/de/mcp#use-mcp-servers-from-claude-ai) ignoriert. Entspricht dem CLI-Flag `--strict-mcp-config` |


1849* `terminal_reason`: Warum die Abfrage-Schleife endete, z. B. `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"` oder `"aborted_tools"`. Ein Wert von `"aborted_streaming"` oder `"aborted_tools"` bedeutet, dass die Umdrehung vor Abschluss abgebrochen wurde. Häufige Ursachen sind [`interrupt()`](#claudesdkclient) und ein Berechtigungsrückruf, der [`PermissionResultDeny`](#permissionresultdeny) mit `interrupt=True` zurückgibt. `None` bei CLI-Versionen, die dem Feld vorausgehen, bei Ergebnissen von lokalen Befehlen wie `/voice` oder `/usage`, die die Abfrage-Schleife umgehen, oder bei synthetisierten Fehlerergebnissen, die ausgegeben werden, wenn die Sitzung fatal fehlschlägt. Spiegelt den TypeScript SDK-Typ [`SDKResultMessage.terminal_reason`](/docs/de/agent-sdk/typescript#sdkresultmessage) wider, der den vollständigen Satz von Werten auflistet.1898* `terminal_reason`: Warum die Abfrage-Schleife endete, z. B. `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"` oder `"aborted_tools"`. Ein Wert von `"aborted_streaming"` oder `"aborted_tools"` bedeutet, dass die Umdrehung vor Abschluss abgebrochen wurde. Häufige Ursachen sind [`interrupt()`](#claudesdkclient) und ein Berechtigungsrückruf, der [`PermissionResultDeny`](#permissionresultdeny) mit `interrupt=True` zurückgibt. `None` bei CLI-Versionen, die dem Feld vorausgehen, bei Ergebnissen von lokalen Befehlen wie `/voice` oder `/usage`, die die Abfrage-Schleife umgehen, oder bei synthetisierten Fehlerergebnissen, die ausgegeben werden, wenn die Sitzung fatal fehlschlägt. Spiegelt den TypeScript SDK-Typ [`SDKResultMessage.terminal_reason`](/docs/de/agent-sdk/typescript#sdkresultmessage) wider, der den vollständigen Satz von Werten auflistet.

1850* `origin`: Herkunft der Benutzernachricht, die diese Umdrehung ausgelöst hat. Im [Streaming-Eingabemodus](/docs/de/agent-sdk/streaming-vs-single-mode) überprüfen Sie dies, um das Ergebnis Ihrer eigenen Eingabeaufforderung zu unterscheiden, wobei `origin` `None` oder `{"kind": "human"}` ist, vom Ergebnis einer eingefügten Umdrehung wie einer Hintergrund-Task-Benachrichtigung. Erfordert Python Agent SDK 0.2.137 oder später.1899* `origin`: Herkunft der Benutzernachricht, die diese Umdrehung ausgelöst hat. Im [Streaming-Eingabemodus](/docs/de/agent-sdk/streaming-vs-single-mode) überprüfen Sie dies, um das Ergebnis Ihrer eigenen Eingabeaufforderung zu unterscheiden, wobei `origin` `None` oder `{"kind": "human"}` ist, vom Ergebnis einer eingefügten Umdrehung wie einer Hintergrund-Task-Benachrichtigung. Erfordert Python Agent SDK 0.2.137 oder später.

1851 1900 

1901Wenn mehrere Hintergrundaufgaben kurz nacheinander abgeschlossen werden, kann Claude Code deren Benachrichtigungen in einem einzigen Turn beantworten statt in jeweils einem eigenen Turn. Sie erhalten trotzdem eine `ResultMessage` pro Benachrichtigung, in der richtigen Reihenfolge, jeweils mit einem `origin`, dessen `kind` `"task-notification"` ist. Bei allen außer der letzten ist `num_turns` auf `0` gesetzt und `result` leer; die letzte enthält den Turn, der alle beantwortet.

1902 

1852Das `usage`-Dict deckt nur die Haupt-Agent-Schleife ab und schließt Subagenten und andere verschachtelte oder Hilfs-Modellaufrufe aus. Im [Streaming-Eingabemodus](/docs/de/agent-sdk/streaming-vs-single-mode) sind die Werte pro Umdrehung. Bevorzugen Sie `model_usage` für Token- und Kostenabrechnung. Das `usage`-Dict enthält die folgenden Schlüssel, wenn vorhanden:1903Das `usage`-Dict deckt nur die Haupt-Agent-Schleife ab und schließt Subagenten und andere verschachtelte oder Hilfs-Modellaufrufe aus. Im [Streaming-Eingabemodus](/docs/de/agent-sdk/streaming-vs-single-mode) sind die Werte pro Umdrehung. Bevorzugen Sie `model_usage` für Token- und Kostenabrechnung. Das `usage`-Dict enthält die folgenden Schlüssel, wenn vorhanden:

1853 1904 

1854| Schlüssel | Typ | Beschreibung |1905| Schlüssel | Typ | Beschreibung |

Details

360* [`renameSession()`](/docs/de/agent-sdk/typescript#renamesession)360* [`renameSession()`](/docs/de/agent-sdk/typescript#renamesession)

361* [`tagSession()`](/docs/de/agent-sdk/typescript#tagsession)361* [`tagSession()`](/docs/de/agent-sdk/typescript#tagsession)

362* [`deleteSession()`](/docs/de/agent-sdk/typescript)362* [`deleteSession()`](/docs/de/agent-sdk/typescript)

363* [`forkSession()`](/docs/de/agent-sdk/typescript)363* [`forkSession()`](/docs/de/agent-sdk/typescript#forksession)

364* [`listSubagents()`](/docs/de/agent-sdk/typescript)364* [`listSubagents()`](/docs/de/agent-sdk/typescript)

365* [`getSubagentMessages()`](/docs/de/agent-sdk/typescript)365* [`getSubagentMessages()`](/docs/de/agent-sdk/typescript)

366 366 

Details

293 293 

294 Sie können von jedem Arbeitsverzeichnis aus fortsetzen:294 Sie können von jedem Arbeitsverzeichnis aus fortsetzen:

295 295 

296 * **Verzeichnisübergreifende Suche**: Claude Code sucht über das aktuelle Projektverzeichnis hinaus, um die ID zu finden; siehe [Fortsetzen einer Sitzung](/docs/de/sessions#resume-a-session) für die genaue Suchreihenfolge und wie doppelte Kopien behandelt werden.296 * **Verzeichnisübergreifende Suche**: Claude Code sucht über das aktuelle Projektverzeichnis hinaus, um die ID zu finden; siehe [Fortsetzen einer Sitzung](/docs/de/sessions#where-the-session-picker-looks) für die genaue Suchreihenfolge und wie doppelte Kopien behandelt werden.

297 * **Nur auf demselben Computer**: Die Sitzungsdatei muss immer noch auf dem aktuellen Computer vorhanden sein.297 * **Nur auf demselben Computer**: Die Sitzungsdatei muss immer noch auf dem aktuellen Computer vorhanden sein.

298 298 

299 Vor v2.1.223 war die Suche auf das aktuelle Projektverzeichnis und seine Git-Worktrees beschränkt; SDK-Versionen, die eine ältere CLI bündeln, verhalten sich immer noch so.299 Vor v2.1.223 war die Suche auf das aktuelle Projektverzeichnis und seine Git-Worktrees beschränkt; SDK-Versionen, die eine ältere CLI bündeln, verhalten sich immer noch so.


423 423 

424* **Verschieben Sie die Sitzungsdatei.** Speichern Sie `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl` aus dem ersten Durchlauf und stellen Sie es auf dem neuen Host in einem beliebigen Verzeichnis unter `~/.claude/projects/` wieder her, bevor Sie `resume` aufrufen.424* **Verschieben Sie die Sitzungsdatei.** Speichern Sie `~/.claude/projects/<encoded-cwd>/<session-id>.jsonl` aus dem ersten Durchlauf und stellen Sie es auf dem neuen Host in einem beliebigen Verzeichnis unter `~/.claude/projects/` wieder her, bevor Sie `resume` aufrufen.

425 425 

426 Claude Code sucht über das aktuelle Projektverzeichnis hinaus, um die ID zu finden; siehe [Fortsetzen einer Sitzung](/docs/de/sessions#resume-a-session) für die genaue Lookup-Reihenfolge und wie doppelte Kopien behandelt werden. Vor v2.1.223 war die Lookup auf das aktuelle Projektverzeichnis und seine Git-Worktrees beschränkt; SDK-Versionen, die eine ältere CLI bündeln, verhalten sich immer noch auf diese Weise.426 Claude Code sucht über das aktuelle Projektverzeichnis hinaus, um die ID zu finden; siehe [Fortsetzen einer Sitzung](/docs/de/sessions#where-the-session-picker-looks) für die genaue Lookup-Reihenfolge und wie doppelte Kopien behandelt werden. Vor v2.1.223 war die Lookup auf das aktuelle Projektverzeichnis und seine Git-Worktrees beschränkt; SDK-Versionen, die eine ältere CLI bündeln, verhalten sich immer noch auf diese Weise.

427 427 

428* **Verlassen Sie sich nicht auf Sitzungsfortsetzen.** Erfassen Sie die Ergebnisse, die Sie benötigen (Analyseergebnis, Entscheidungen, Datei-Diffs) als Anwendungszustand und übergeben Sie sie in den Prompt einer neuen Sitzung. Dies ist oft robuster als das Verschiffen von Transkriptdateien.428* **Verlassen Sie sich nicht auf Sitzungsfortsetzen.** Erfassen Sie die Ergebnisse, die Sie benötigen (Analyseergebnis, Entscheidungen, Datei-Diffs) als Anwendungszustand und übergeben Sie sie in den Prompt einer neuen Sitzung. Dies ist oft robuster als das Verschiffen von Transkriptdateien.

429 429 

Details

124 124 

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

126 126 

127<h3 id="handle-a-stream-that’s-cut-off">

128 Einen abgebrochenen Stream behandeln

129</h3>

130 

131Wenn ein Stream mitten in einer Nachricht abbricht, etwa weil Sie den Turn unterbrechen oder die Verbindung abreißt, erhalten Sie vor dem Ende des Turns trotzdem das `message_stop` dieser Nachricht. Ein abgebrochener Text- oder Thinking-Block erhält außerdem sein `content_block_stop`. Ein abgebrochener Tool-Aufruf dagegen nicht. Wenn also `message_stop` eintrifft, während der Block eines Tool-Aufrufs noch offen ist, behandeln Sie die Eingabe dieses Aufrufs als unvollständig.

132 

133Vor Claude Code v2.1.290 konnte ein abgebrochener Stream den Turn ohne `message_stop` beenden, sodass eine Antwort, die Sie aus Stream-Ereignissen rendern, weiterhin als laufend angezeigt werden konnte. Das TypeScript Agent SDK enthält ab v0.3.290 Claude Code v2.1.290 oder neuer, das Python Agent SDK ab v0.2.164. Wenn eine Antwort nach dem Ende des Turns weiterhin als laufend angezeigt wird, aktualisieren Sie das SDK.

134 

127<h2 id="stream-tool-calls">135<h2 id="stream-tool-calls">

128 Tool-Aufrufe streamen136 Tool-Aufrufe streamen

129</h2>137</h2>


229 Streaming-UI erstellen237 Streaming-UI erstellen

230</h2>238</h2>

231 239 

232Dieses Beispiel kombiniert Text- und Tool-Streaming in eine kohärente Benutzeroberfläche. Es verfolgt, ob der Agent gerade ein Tool ausführt (mit einem `in_tool`-Flag), um Statusanzeigen wie `[Using Read...]` anzuzeigen, während Tools ausgeführt werden. Text wird normal gestreamt, wenn nicht in einem Tool, und die Tool-Fertigstellung löst eine „done"-Nachricht aus. Dieses Muster ist nützlich für Chat-Schnittstellen, die während mehrstufiger Agent-Aufgaben Fortschritt anzeigen müssen.240Dieses Beispiel kombiniert Text- und Tool-Streaming in eine kohärente Benutzeroberfläche. Es verfolgt, ob der Agent gerade ein Tool ausführt (mit einem `in_tool`-Flag), um Statusanzeigen wie `[Using Read...]` anzuzeigen, während Tools ausgeführt werden. Text wird normal gestreamt, wenn nicht in einem Tool, und die Tool-Fertigstellung löst eine „done“-Nachricht aus. Dieses Muster ist nützlich für Chat-Schnittstellen, die während mehrstufiger Agent-Aufgaben Fortschritt anzeigen müssen.

233 241 

234<CodeGroup>242<CodeGroup>

235 ```python Python theme={null}243 ```python Python theme={null}

Details

464| `tag` | `string \| null` | erforderlich | Tag-Zeichenkette oder `null` zum Löschen |464| `tag` | `string \| null` | erforderlich | Tag-Zeichenkette oder `null` zum Löschen |

465| `options.dir` | `string` | `undefined` | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |465| `options.dir` | `string` | `undefined` | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |

466 466 

467<h3 id="forksession">

468 `forkSession()`

469</h3>

470 

471Kopiert das Transkript einer Sitzung in eine neue Sitzung, sodass Sie die Konversation in eine andere Richtung lenken können, während das Original unverändert bleibt. Um von einem früheren Punkt der Konversation abzuzweigen, übergeben Sie `upToMessageId`.

472 

473```typescript theme={null}

474function forkSession(

475 sessionId: string,

476 options?: ForkSessionOptions

477): Promise<ForkSessionResult>;

478```

479 

480<h4 id="parameters-10">

481 Parameter

482</h4>

483 

484| Parameter | Typ | Standard | Beschreibung |

485| :- | :- | :- | :- |

486| `sessionId` | `string` | erforderlich | UUID der zu forkenden Sitzung |

487| `options.dir` | `string` | `undefined` | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |

488| `options.upToMessageId` | `string` | `undefined` | Kopiert das Transkript bis einschließlich der Nachricht mit dieser `uuid`: ein Wert aus [`getSessionMessages()`](#getsessionmessages) oder eine `uuid`, die Sie bei einer gestreamten [`SDKUserMessage`](#sdkusermessage) gesetzt haben. Wenn weggelassen, wird das gesamte Transkript kopiert |

489| `options.title` | `string` | `undefined` | Titel für den Fork. Wenn weggelassen, leitet das SDK einen Titel aus der ursprünglichen Sitzung ab, gefolgt von `(fork)` |

490 

491Gibt `{ sessionId }` zurück, die UUID der neuen Sitzung. Übergeben Sie sie als [`resume`](#options), um den Fork fortzusetzen. Der Fork enthält nicht die [Datei-Checkpoints](/docs/de/agent-sdk/file-checkpointing) der ursprünglichen Sitzung, sodass Sie ihn nicht auf einen Checkpoint zurücksetzen können, der vor dem Fork erstellt wurde.

492 

493`forkSession()` wirft einen Fehler, wenn:

494 

495* `sessionId` keine UUID ist

496* die Sitzung nicht gefunden werden kann oder keine Nachrichten enthält

497* `upToMessageId` mit keiner Nachricht im Transkript übereinstimmt

498 

467<h3 id="resolvesettings">499<h3 id="resolvesettings">

468 `resolveSettings()`500 `resolveSettings()`

469</h3>501</h3>


486): Promise<ResolvedSettings>;518): Promise<ResolvedSettings>;

487```519```

488 520 

489<h4 id="parameters-10">521<h4 id="parameters-11">

490 Parameter522 Parameter

491</h4>523</h4>

492 524 


547| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Subagenten programmatisch definieren |579| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Subagenten programmatisch definieren |

548| `agentProgressSummaries` | `boolean` | `false` | Bei `true` werden einzeilige Fortschrittszusammenfassungen für Subagenten erzeugt und über das Feld `summary` in [`task_progress`](#sdktaskprogressmessage)-Ereignissen weitergeleitet. Gilt für Subagenten im Vordergrund und im Hintergrund |580| `agentProgressSummaries` | `boolean` | `false` | Bei `true` werden einzeilige Fortschrittszusammenfassungen für Subagenten erzeugt und über das Feld `summary` in [`task_progress`](#sdktaskprogressmessage)-Ereignissen weitergeleitet. Gilt für Subagenten im Vordergrund und im Hintergrund |

549| `allowDangerouslySkipPermissions` | `boolean` | `false` | Umgehen von Berechtigungen aktivieren. Erforderlich bei Verwendung von `permissionMode: 'bypassPermissions'`, beim Start oder später über `setPermissionMode()`. Unter [Plan-Modus](/docs/de/agent-sdk/permissions#plan-mode-plan) erfahren Sie, wie dies mit `permissionMode: 'plan'` zusammenwirkt |581| `allowDangerouslySkipPermissions` | `boolean` | `false` | Umgehen von Berechtigungen aktivieren. Erforderlich bei Verwendung von `permissionMode: 'bypassPermissions'`, beim Start oder später über `setPermissionMode()`. Unter [Plan-Modus](/docs/de/agent-sdk/permissions#plan-mode-plan) erfahren Sie, wie dies mit `permissionMode: 'plan'` zusammenwirkt |

550| `allowedTools` | `string[]` | `[]` | Tools, die ohne Nachfrage automatisch genehmigt werden. Dies beschränkt Claude nicht auf diese Tools. Wenn Sie hier eines der [Tools zur Aufgabenverfolgung](/docs/de/agent-sdk/todo-tracking#model-availability) nennen, aktiviert Claude Code diese auch für die Sitzung. Andere nicht aufgeführte Tools werden an `permissionMode` und `canUseTool` weitergereicht. Verwenden Sie `disallowedTools`, um Tools zu blockieren. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |582| `allowedTools` | `string[]` | `[]` | Tools, die ohne Nachfrage automatisch genehmigt werden, mit Ausnahme von Lesezugriffen auf [Netzwerkpfade](/docs/de/permissions#network-paths). Dies beschränkt Claude nicht auf diese Tools. Wenn Sie hier eines der [Tools zur Aufgabenverfolgung](/docs/de/agent-sdk/todo-tracking#model-availability) angeben, aktiviert Claude Code diese auch für die Sitzung. Andere nicht aufgeführte Tools werden an `permissionMode` und `canUseTool` weitergereicht. Verwenden Sie `disallowedTools`, um Tools zu blockieren. Siehe [Berechtigungen](/docs/de/agent-sdk/permissions#allow-and-deny-rules) |

551| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Beta-Funktionen aktivieren |583| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Beta-Funktionen aktivieren |

552| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Benutzerdefinierte Berechtigungsfunktion, die nur aufgerufen wird, wenn der [Berechtigungsablauf](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) bei einer Berechtigungsabfrage ankommt. Wird nicht für Aufrufe aufgerufen, die durch `allowedTools`, Erlaubnisregeln oder `permissionMode` automatisch genehmigt werden. Eine Erlaubnisregel genehmigt die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), nicht im Voraus. Details finden Sie unter [`CanUseTool`](#canusetool) |584| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Benutzerdefinierte Berechtigungsfunktion, die nur aufgerufen wird, wenn der [Berechtigungsablauf](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated) bei einer Berechtigungsabfrage ankommt. Wird nicht für Aufrufe aufgerufen, die durch `allowedTools`, Erlaubnisregeln oder `permissionMode` automatisch genehmigt werden. Eine Erlaubnisregel genehmigt die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), nicht im Voraus. Details finden Sie unter [`CanUseTool`](#canusetool) |

553| `continue` | `boolean` | `false` | Die letzte Konversation fortsetzen |585| `continue` | `boolean` | `false` | Die letzte Konversation fortsetzen |


1588 1620 

1589Ordnen Sie die Nachrichten eines Subagenten seinen Task-Ereignissen über `agent_id` zu, statt die `parent_tool_use_id` einer Nachricht mit der `tool_use_id` eines Task-Ereignisses zu paaren. Wenn ein Tool-Aufruf den Subagenten fortsetzt, tragen die Task-Ereignisse die `tool_use_id` dieses Aufrufs, während die Nachrichten die `parent_tool_use_id` des Tool-Aufrufs behalten, der den Subagenten ursprünglich gestartet hat, sodass die beiden nicht mehr übereinstimmen.1621Ordnen Sie die Nachrichten eines Subagenten seinen Task-Ereignissen über `agent_id` zu, statt die `parent_tool_use_id` einer Nachricht mit der `tool_use_id` eines Task-Ereignisses zu paaren. Wenn ein Tool-Aufruf den Subagenten fortsetzt, tragen die Task-Ereignisse die `tool_use_id` dieses Aufrufs, während die Nachrichten die `parent_tool_use_id` des Tool-Aufrufs behalten, der den Subagenten ursprünglich gestartet hat, sodass die beiden nicht mehr übereinstimmen.

1590 1622 

1591Claude Code setzt `user_message_uuid` und `user_message_uuids` auf die erste Assistenten-Nachricht des Turns unter den Bedingungen in [`user_message_uuid`](#user_message_uuid). Wenn Claude Code einen Turn erneut ausführt, den ein Neustart unterbrochen hat, tragen die Assistenten-Nachrichten des erneuten Durchlaufs, die diese Felder tragen, auch [`resume_reason`](#resume_reason).1623Claude Code setzt `user_message_uuid` und `user_message_uuids` in der ersten Assistentennachricht des Turns, unter den in [`user_message_uuid`](#user_message_uuid) beschriebenen Bedingungen. Wenn der Turn einen Turn fortsetzt, der durch einen Neustart unterbrochen wurde, tragen die Assistentennachrichten mit diesen Feldern auch [`resume_reason`](#resume_reason).

1592 1624 

1593`timestamp` ist die ISO-8601-Zeit, wenn die Generierung des Nachrichteninhalts auf dem Prozess, der ihn erzeugt hat, beendet wurde. Der Wert stammt von der Uhr dieser Maschine, daher verwenden Sie ihn nur zur Anzeige und ordnen Sie Nachrichten nicht danach. Ein API-Turn kann mehrere Assistenten-Nachrichten erzeugen, die eine `message.id` teilen, jede mit ihrem eigenen `timestamp`. Wenn das Feld fehlt, greifen Sie auf die Zeit zurück, zu der Sie die Nachricht erhalten haben.1625`timestamp` ist die ISO-8601-Zeit, wenn die Generierung des Nachrichteninhalts auf dem Prozess, der ihn erzeugt hat, beendet wurde. Der Wert stammt von der Uhr dieser Maschine, daher verwenden Sie ihn nur zur Anzeige und ordnen Sie Nachrichten nicht danach. Ein API-Turn kann mehrere Assistenten-Nachrichten erzeugen, die eine `message.id` teilen, jede mit ihrem eigenen `timestamp`. Wenn das Feld fehlt, greifen Sie auf die Zeit zurück, zu der Sie die Nachricht erhalten haben.

1594 1626 


1631 1663 

1632Setzen Sie `inline_pastes`, um Claude Code mitzuteilen, welche Teile von `message.content` der Benutzer eingefügt statt eingetippt hat, ein String pro Einfügung. Der Prompt-Text bleibt dort, wo der Benutzer ihn platziert hat. Claude Code kann jede aufgeführte Einfügung an ihrer Stelle in `<pasted_content>`-Tags einschließen, damit Claude eingefügtes Material von den eigenen Worten des Benutzers unterscheiden kann. Nur Einfügungen im letzten Textblock des Prompts werden eingeschlossen. Erfordert TypeScript Agent SDK v0.3.280 oder höher.1664Setzen Sie `inline_pastes`, um Claude Code mitzuteilen, welche Teile von `message.content` der Benutzer eingefügt statt eingetippt hat, ein String pro Einfügung. Der Prompt-Text bleibt dort, wo der Benutzer ihn platziert hat. Claude Code kann jede aufgeführte Einfügung an ihrer Stelle in `<pasted_content>`-Tags einschließen, damit Claude eingefügtes Material von den eigenen Worten des Benutzers unterscheiden kann. Nur Einfügungen im letzten Textblock des Prompts werden eingeschlossen. Erfordert TypeScript Agent SDK v0.3.280 oder höher.

1633 1665 

1666Jedes Einfügefeld hat eine Größenbeschränkung:

1667 

1668* `pasted_content`: Wenn die Einträge zusammen mit den darin enthaltenen Inhaltsblöcken mehr als 1.000 ergeben, ignoriert Claude Code das gesamte Feld.

1669* `inline_pastes`: Claude Code verwendet die ersten 100 nicht leeren Einträge und ignoriert den Rest.

1670 

1634Setzen Sie `shouldQuery`, `client_composed` oder `priority`, um zu ändern, wie Claude Code eine von Ihnen gesendete Nachricht behandelt:1671Setzen Sie `shouldQuery`, `client_composed` oder `priority`, um zu ändern, wie Claude Code eine von Ihnen gesendete Nachricht behandelt:

1635 1672 

1636* `shouldQuery`: Setzen Sie es auf `false`, um die Nachricht zum Transkript hinzuzufügen, ohne einen Assistenten-Turn auszulösen. Die Nachricht wird gehalten und in die nächste Benutzer-Nachricht zusammengeführt, die einen Turn auslöst. Verwenden Sie dies, um Kontext einzufügen, z. B. die Ausgabe eines Befehls, den Sie außerhalb des Bands ausgeführt haben, ohne einen Modell-Aufruf dafür auszugeben.1673* `shouldQuery`: Setzen Sie es auf `false`, um die Nachricht zum Transkript hinzuzufügen, ohne einen Assistenten-Turn auszulösen. Die Nachricht wird gehalten und in die nächste Benutzer-Nachricht zusammengeführt, die einen Turn auslöst. Verwenden Sie dies, um Kontext einzufügen, z. B. die Ausgabe eines Befehls, den Sie außerhalb des Bands ausgeführt haben, ohne einen Modell-Aufruf dafür auszugeben.


1661* Ein WebFetch- oder WebSearch-Aufruf, den Claude Code in den Hintergrund verschoben hat, um eine `'now'`-Nachricht zuzustellen: Bei der Benutzernachricht, die das `tool_result` dieses Aufrufs enthält, ist `tool_use_result` auf `{ detachedToolCall: true }` gesetzt. Der Aufruf läuft weiter, und Claude erhält sein Ergebnis, sobald er abgeschlossen ist. Es folgt kein zweites `tool_result` für diese `tool_use_id`. Wenn Ihre Anwendung also für jeden Tool-Aufruf eine Zeile darstellt, markieren Sie diese Zeile als in den Hintergrund verschoben, wenn diese Nachricht eintrifft. Erfordert Claude Code v2.1.287 oder höher.1698* Ein WebFetch- oder WebSearch-Aufruf, den Claude Code in den Hintergrund verschoben hat, um eine `'now'`-Nachricht zuzustellen: Bei der Benutzernachricht, die das `tool_result` dieses Aufrufs enthält, ist `tool_use_result` auf `{ detachedToolCall: true }` gesetzt. Der Aufruf läuft weiter, und Claude erhält sein Ergebnis, sobald er abgeschlossen ist. Es folgt kein zweites `tool_result` für diese `tool_use_id`. Wenn Ihre Anwendung also für jeden Tool-Aufruf eine Zeile darstellt, markieren Sie diese Zeile als in den Hintergrund verschoben, wenn diese Nachricht eintrifft. Erfordert Claude Code v2.1.287 oder höher.

1662* Ein MCP-Tool, dessen Ergebnis `resource_link`-Blöcke enthält: `tool_use_result` ist ein Objekt mit einem `resourceLinks`-Array aus [`SDKMcpResourceLink`](#sdkmcpresourcelink)-Einträgen. Claude erhält jeden Link als Textzeile im `tool_result`-Block. Lesen Sie daher `resourceLinks`, um die vom Server zurückgegebenen Dateien darzustellen, statt diesen Text zu parsen. Claude Code lässt `resourceLinks` weg, wenn das Ergebnis keine Links enthält, sowie bei Ergebnissen von Subagenten, behält höchstens 50 Links pro Ergebnis und fügt keine weiteren Links hinzu, sobald das Array 64 KiB serialisiertes JSON erreicht. `resourceLinks` erfordert Agent SDK v0.3.257 oder höher.1699* Ein MCP-Tool, dessen Ergebnis `resource_link`-Blöcke enthält: `tool_use_result` ist ein Objekt mit einem `resourceLinks`-Array aus [`SDKMcpResourceLink`](#sdkmcpresourcelink)-Einträgen. Claude erhält jeden Link als Textzeile im `tool_result`-Block. Lesen Sie daher `resourceLinks`, um die vom Server zurückgegebenen Dateien darzustellen, statt diesen Text zu parsen. Claude Code lässt `resourceLinks` weg, wenn das Ergebnis keine Links enthält, sowie bei Ergebnissen von Subagenten, behält höchstens 50 Links pro Ergebnis und fügt keine weiteren Links hinzu, sobald das Array 64 KiB serialisiertes JSON erreicht. `resourceLinks` erfordert Agent SDK v0.3.257 oder höher.

1663* Ein MCP-Tool, das [`structuredContent`](#calltoolresult) zurückgibt: `tool_use_result` ist ein Objekt, dessen Member `structuredContent` enthält, was der Server gesendet hat, und dessen Member `content` den [`McpOutput`](#mcpoutput)-Wert enthält. Ergebnisse von Subagenten enthalten kein `structuredContent`.1700* Ein MCP-Tool, das [`structuredContent`](#calltoolresult) zurückgibt: `tool_use_result` ist ein Objekt, dessen Member `structuredContent` enthält, was der Server gesendet hat, und dessen Member `content` den [`McpOutput`](#mcpoutput)-Wert enthält. Ergebnisse von Subagenten enthalten kein `structuredContent`.

1664* Ein MCP-Tool, dessen `structuredContent` zu mehr als 1.048.576 Zeichen JSON serialisiert wird: Claude Code lässt `structuredContent` in `tool_use_result` weg und setzt stattdessen `structuredContentOmitted: true`, damit Ihre Anwendung ein verworfenes Objekt von einem Tool unterscheiden kann, das keines gesendet hat. Die anderen Member, etwa `content` und `resourceLinks`, bleiben erhalten, und was Claude erhält, ändert sich nicht. Tools von [In-Process-SDK-Servern](/docs/de/agent-sdk/custom-tools) und Tools, deren `tools/list`-Eintrag eine [MCP-Apps-`_meta.ui`-Ressource](#mcpserverstatus) deklariert, sind ausgenommen und liefern das Objekt vollständig. Claude Code v2.1.287 oder höher wendet diese Obergrenze an.1701* Ein MCP-Tool, dessen `structuredContent` zu mehr als 1.048.576 Zeichen JSON serialisiert wird: Claude Code lässt `structuredContent` in `tool_use_result` weg und setzt stattdessen `structuredContentOmitted: true`, damit Ihre Anwendung ein verworfenes Objekt von einem Tool unterscheiden kann, das keines gesendet hat. Die anderen Member wie `content` und `resourceLinks` bleiben erhalten, und was Claude erhält, ändert sich nicht. Claude Code ab v2.1.287 wendet diese Obergrenze an. Zwei Arten von Tools verhalten sich anders:

1702 * Tools von [prozessinternen SDK-Servern](/docs/de/agent-sdk/custom-tools) sind ausgenommen und liefern das Objekt vollständig.

1703 * Ein Tool, dessen `tools/list`-Eintrag eine [MCP-Apps-`ui://`-Ressource](#mcpserverstatus) deklariert, hat ab Claude Code v2.1.295 ein Limit von 8.388.608 Zeichen; Versionen vor v2.1.295 nehmen es aus.

1665 1704 

1666<h3 id="sdkusermessagereplay">1705<h3 id="sdkusermessagereplay">

1667 `SDKUserMessageReplay`1706 `SDKUserMessageReplay`


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

1776* `user_message_uuid`: Die `uuid` der Nachricht, die Sie gesendet haben und die dieser Turn beantwortet hat. Siehe [`user_message_uuid`](#user_message_uuid) dazu, welche Ergebnisse sie tragen.1815* `user_message_uuid`: Die `uuid` der Nachricht, die Sie gesendet haben und die dieser Turn beantwortet hat. Siehe [`user_message_uuid`](#user_message_uuid) dazu, welche Ergebnisse sie tragen.

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

1778* `resume_reason`: warum Claude Code diesen Turn erneut ausgeführt hat, nachdem ein Neustart ihn unterbrochen hatte. In beiden Zweigen vorhanden. Siehe [`resume_reason`](#resume_reason).1817* `resume_reason`: warum dieser Turn einen Turn fortsetzt, der durch einen Neustart unterbrochen wurde. In beiden Zweigen vorhanden. Siehe [`resume_reason`](#resume_reason).

1779* `local_command`: Der Name des Befehls, den der Turn versendet hat, auf dem Success-Ergebnis eines Turns, den ein Befehl abgeschlossen hat, ohne die Agentenschleife zu betreten, wie `/compact`. Der Name wird auf Kleinbuchstaben und Unterstriche gefaltet, daher meldet `/reload-plugins` `reload_plugins`. Ein Befehl, den ein MCP-Server bereitstellt, und das integrierte `/mcp` melden `mcp`. Ein Befehl, den Sie selbst definiert haben, meldet `custom`. Die Argumente sind nie enthalten. Fehlt bei jedem Turn, der die Agentenschleife betreten hat, und bei Sends, die keinen Befehl ausgeführt haben. Erfordert Agent SDK v0.3.268 oder später.1818* `local_command`: Der Name des Befehls, den der Turn versendet hat, auf dem Success-Ergebnis eines Turns, den ein Befehl abgeschlossen hat, ohne die Agentenschleife zu betreten, wie `/compact`. Der Name wird auf Kleinbuchstaben und Unterstriche gefaltet, daher meldet `/reload-plugins` `reload_plugins`. Ein Befehl, den ein MCP-Server bereitstellt, und das integrierte `/mcp` melden `mcp`. Ein Befehl, den Sie selbst definiert haben, meldet `custom`. Die Argumente sind nie enthalten. Fehlt bei jedem Turn, der die Agentenschleife betreten hat, und bei Sends, die keinen Befehl ausgeführt haben. Erfordert Agent SDK v0.3.268 oder später.

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

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


1825 1864 

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

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

1828* **Der Prompt, den Claude Code generiert, um einen unterbrochenen Turn unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) erneut auszuführen**: Wenn der letzte Prompt des unterbrochenen Turns eine reguläre Nachricht ist, die Sie gesendet haben, ob sie den Turn öffnete oder Claude Code sie während des Turns aufgriff, beantwortet der erneute Durchlauf diese Nachricht zunächst. [`resume_reason`](#resume_reason) unterscheidet die Frames des erneuten Durchlaufs von denen des unterbrochenen Versuchs. Wenn der letzte Prompt keine reguläre Nachricht von Ihnen ist, beantwortet der erneute Durchlauf zunächst keine Nachricht von Ihnen. Wenn Claude Code eine reguläre Nachricht von Ihnen zwischen Tool-Aufrufen aufgreift, beantwortet der Turn die aufgegriffene Nachricht von da an. Das Wiederholen des Prompts des unterbrochenen Turns erfordert Agent SDK v0.3.268 oder später.1867* **Der Prompt, den Claude Code erzeugt, um einen unterbrochenen Turn unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) fortzusetzen**: Wenn der letzte Prompt des unterbrochenen Turns eine reguläre, von Ihnen gesendete Nachricht ist, unabhängig davon, ob sie den Turn eröffnet hat oder von Claude Code während des Turns aufgenommen wurde, beantwortet der fortgesetzte Turn zunächst diese Nachricht. [`resume_reason`](#resume_reason) unterscheidet die Frames des fortgesetzten Turns von denen des unterbrochenen Versuchs. Wenn der letzte Prompt keine reguläre Nachricht von Ihnen ist, beantwortet der fortgesetzte Turn zunächst keine Ihrer Nachrichten. Wenn Claude Code zwischen Tool-Aufrufen eine reguläre Nachricht von Ihnen aufnimmt, beantwortet der Turn ab dann die aufgenommene Nachricht. Die Rückgabe des Prompts des unterbrochenen Turns erfordert Agent SDK v0.3.268 oder höher.

1829* **Jeder andere Prompt, den Claude Code selbst generiert hat**: Der Turn beantwortet zunächst keine Nachricht von Ihnen und seine Frames tragen keine Wiederholung. Wenn Claude Code eine reguläre Nachricht von Ihnen zwischen Tool-Aufrufen aufgreift, beantwortet der Turn diese Nachricht von da an. Die Aufgreif-Wiederholung erfordert Agent SDK v0.3.265 oder später; frühere Versionen wiederholen nichts bei diesen Turns.1868* **Jeder andere Prompt, den Claude Code selbst generiert hat**: Der Turn beantwortet zunächst keine Nachricht von Ihnen und seine Frames tragen keine Wiederholung. Wenn Claude Code eine reguläre Nachricht von Ihnen zwischen Tool-Aufrufen aufgreift, beantwortet der Turn diese Nachricht von da an. Die Aufgreif-Wiederholung erfordert Agent SDK v0.3.265 oder später; frühere Versionen wiederholen nichts bei diesen Turns.

1830 1869 

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


1857 `resume_reason`1896 `resume_reason`

1858</h4>1897</h4>

1859 1898 

1860Warum Claude Code diesen Turn nach einem Neustart erneut ausgeführt hat. Claude Code setzt dieses Feld auf einen Turn, den es unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) erneut ausgeführt hat, damit Sie Antwort und Ergebnis des erneuten Durchlaufs von denen des unterbrochenen Versuchs unterscheiden können. Erfordert Agent SDK v0.3.268 oder später.1899Warum dieser Turn einen Turn fortsetzt, der durch einen Neustart unterbrochen wurde. Claude Code setzt dieses Feld bei einem Turn, der einen unterbrochenen Turn unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) fortsetzt, damit Sie Antwort und Ergebnis des fortgesetzten Turns von denen des unterbrochenen Versuchs unterscheiden können. Erfordert Agent SDK v0.3.268 oder höher.

1861 1900 

1862Claude Code setzt das Feld auf zwei Arten von Frames:1901Claude Code setzt das Feld auf zwei Arten von Frames:

1863 1902 

1864* **Das Ergebnis des erneuten Durchlaufs**: auf den Success- und Error-Armen gleichermaßen, unabhängig davon, ob das Ergebnis `user_message_uuid` trägt.1903* **Das Ergebnis des fortgesetzten Turns**: im Erfolgs- wie im Fehlerzweig, unabhängig davon, ob das Ergebnis `user_message_uuid` trägt.

1865* **Die Antwort-Frames des erneuten Durchlaufs**: diejenigen, die [`user_message_uuid`](#user_message_uuid) tragen.1904* **Die Antwort-Frames des fortgesetzten Turns**: diejenigen, die [`user_message_uuid`](#user_message_uuid) tragen.

1866 1905 

1867Der Wert ist ein kurzes Token in Kleinbuchstaben, das benennt, warum der Turn erneut ausgeführt wurde, etwa `interrupted_turn`.1906Der Wert ist ein kurzes Token in Kleinbuchstaben, etwa `interrupted_turn`.

1868 1907 

1869<h4 id="queued_turn_count">1908<h4 id="queued_turn_count">

1870 `queued_turn_count`1909 `queued_turn_count`


2018```typescript theme={null}2057```typescript theme={null}

2019type SDKPartialAssistantMessage = {2058type SDKPartialAssistantMessage = {

2020 type: "stream_event";2059 type: "stream_event";

2021 event: BetaRawMessageStreamEvent; // Aus Anthropic SDK2060 event: BetaRawMessageStreamEvent; // From Anthropic SDK

2022 parent_tool_use_id: string | null;2061 parent_tool_use_id: string | null;

2023 uuid: UUID;2062 uuid: UUID;

2024 session_id: string;2063 session_id: string;

2025 ttft_ms?: number; // Zeit bis zum ersten Token in ms, nur bei message_start-Ereignissen vorhanden2064 ttft_ms?: number; // Time to first token in ms, present only on message_start events

2026 user_message_uuid?: string;2065 user_message_uuid?: string;

2027 user_message_uuids?: string[];2066 user_message_uuids?: string[];

2028 resume_reason?: string;2067 resume_reason?: string;

2029};2068};

2030```2069```

2031 2070 

2032Claude Code setzt `user_message_uuid` und `user_message_uuids` auf das erste Nicht-Ping-Stream-Ereignis des Turns und erneut, wenn sich die Nachricht, die der Turn beantwortet, ändert, unter den Bedingungen in [`user_message_uuid`](#user_message_uuid). Wenn Claude Code einen Turn erneut ausführt, den ein Neustart unterbrochen hat, tragen die Stream-Ereignisse des erneuten Durchlaufs, die diese Felder tragen, auch [`resume_reason`](#resume_reason).2071Claude Code setzt `user_message_uuid` und `user_message_uuids` im ersten Nicht-Ping-Stream-Ereignis des Turns und erneut, wenn sich die Nachricht ändert, die der Turn beantwortet, unter den in [`user_message_uuid`](#user_message_uuid) beschriebenen Bedingungen. Wenn der Turn einen Turn fortsetzt, der durch einen Neustart unterbrochen wurde, tragen die Stream-Ereignisse mit diesen Feldern auch [`resume_reason`](#resume_reason).

2033 2072 

2034<h3 id="sdkcompactboundarymessage">2073<h3 id="sdkcompactboundarymessage">

2035 `SDKCompactBoundaryMessage`2074 `SDKCompactBoundaryMessage`


3558| - | - | - |3597| - | - | - |

3559| `script` | `string` | Inline-Workflow-Skript. Muss mit `export const meta = { name, description }` als Literal beginnen, gefolgt vom Skript-Body mit `agent()`, `parallel()`, `pipeline()` und `phase()`. Ein optionales `phases`-Array in `meta` gruppiert Agenten unter benannten Phasen in der Fortschrittsansicht |3598| `script` | `string` | Inline-Workflow-Skript. Muss mit `export const meta = { name, description }` als Literal beginnen, gefolgt vom Skript-Body mit `agent()`, `parallel()`, `pipeline()` und `phase()`. Ein optionales `phases`-Array in `meta` gruppiert Agenten unter benannten Phasen in der Fortschrittsansicht |

3560| `name` | `string` | Name eines integrierten Workflows oder eines in `.claude/workflows/` gespeicherten. Wird zu einem Skript aufgelöst |3599| `name` | `string` | Name eines integrierten Workflows oder eines in `.claude/workflows/` gespeicherten. Wird zu einem Skript aufgelöst |

3561| `scriptPath` | `string` | Pfad zu einer Workflow-Skriptdatei auf der Festplatte. Hat Vorrang vor `script` und `name`. Claude Code speichert jede Aufrufs-Skript und gibt den Pfad im Ergebnis zurück, damit Sie diese Datei bearbeiten und mit demselben `scriptPath` erneut aufrufen können, um zu iterieren |3600| `scriptPath` | `string` | Pfad zu einer Workflow-Skriptdatei auf der Festplatte, etwa der `scriptPath`, den ein vorheriger Lauf zurückgegeben hat. Hat Vorrang vor `script` und `name`. Claude Code lehnt `scriptPath` mit einem Fehler ab, wenn die Tools der Sitzung `Read` nicht enthalten |

3562| `args` | `unknown` | Eingabewert, der dem Skript als globales `args` verfügbar gemacht wird, für parametrisierte benannte Workflows wie eine Forschungsfrage oder eine Liste von Dateipfaden. Übergeben Sie Arrays und Objekte als tatsächliche JSON-Werte, nicht als JSON-codierter String |3601| `args` | `unknown` | Eingabewert, der dem Skript als globales `args` verfügbar gemacht wird, für parametrisierte benannte Workflows wie eine Forschungsfrage oder eine Liste von Dateipfaden. Übergeben Sie Arrays und Objekte als tatsächliche JSON-Werte, nicht als JSON-codierter String |

3563| `resumeFromRunId` | `string` | Run-ID eines vorherigen `Workflow`-Aufrufs zum Fortsetzen. Abgeschlossene `agent()`-Aufrufe mit unveränderten Eingaben geben normalerweise zwischengespeicherte Ergebnisse zurück; der Rest läuft live. [Nach einer Pause fortsetzen](/docs/de/workflows#resume-after-a-pause) behandelt, welche abgeschlossenen Aufrufe erneut ausgeführt werden. Nur gleiche Sitzung |3602| `resumeFromRunId` | `string` | Run-ID eines vorherigen `Workflow`-Aufrufs zum Fortsetzen. Abgeschlossene `agent()`-Aufrufe mit unveränderten Eingaben geben normalerweise zwischengespeicherte Ergebnisse zurück; der Rest läuft live. [Nach einer Pause fortsetzen](/docs/de/workflows#resume-after-a-pause) behandelt, welche abgeschlossenen Aufrufe erneut ausgeführt werden. Nur gleiche Sitzung |

3564| `title` | `string` | Ignoriert; der `meta`-Block des Skripts setzt den Titel |3603| `title` | `string` | Ignoriert; der `meta`-Block des Skripts setzt den Titel |

agent-view.md +18 −14

Details

152| Form | Was es bedeutet |152| Form | Was es bedeutet |

153| :- | :- |153| :- | :- |

154| `✻` oder animiert `✽` | Der Sitzungsprozess läuft, oder die Sitzung benötigt Ihre Eingabe |154| `✻` oder animiert `✽` | Der Sitzungsprozess läuft, oder die Sitzung benötigt Ihre Eingabe |

155| `∙` | Der Prozess wurde beendet. Sie können die Zeile immer noch einsehen, und wenn Sie antworten oder anhängen, startet Claude von dort neu, wo es aufgehört hat |155| `∙` | Der Prozess wurde beendet. Sie können die Zeile immer noch einsehen, und wenn Sie antworten oder anhängen, startet Claude ihn aus seiner gespeicherten Konversation neu |

156| `✢` | Eine [`/loop`](/docs/de/scheduled-tasks)-Sitzung, die zwischen Iterationen schläft. Die Zeile zeigt ihre Laufzahl und einen Countdown |156| `✢` | Eine [`/loop`](/docs/de/scheduled-tasks)-Sitzung, die zwischen Iterationen schläft. Die Zeile zeigt ihre Laufzahl und einen Countdown |

157 157 

158Das `#N`- oder `!N`-Label, das am rechten Rand einer Zeile erscheinen kann, ist ein Link zum [Pull Request oder Merge Request](#pull-request-status) der Sitzung, nicht Teil des Status-Symbols.158Das `#N`- oder `!N`-Label, das am rechten Rand einer Zeile erscheinen kann, ist ein Link zum [Pull Request oder Merge Request](#pull-request-status) der Sitzung, nicht Teil des Status-Symbols.


256 256 

257Angehängte Sitzungen werden immer im [Vollbildmodus](/docs/de/fullscreen) gerendert, unabhängig von Ihrer `tui`-Einstellung, da eine Hintergrund-Sitzung keinen Terminal-Scrollback hat, an den angefügt werden kann. Scrollen Sie mit `PgUp`, `PgDn` oder dem Mausrad, und drücken Sie `Ctrl+O` für den Transkript-Modus. Das native Scrollen Ihres Terminals und der tmux-Kopiermodus zeigen nur den aktuellen Viewport, genau wie bei jeder anderen Vollbildanwendung.257Angehängte Sitzungen werden immer im [Vollbildmodus](/docs/de/fullscreen) gerendert, unabhängig von Ihrer `tui`-Einstellung, da eine Hintergrund-Sitzung keinen Terminal-Scrollback hat, an den angefügt werden kann. Scrollen Sie mit `PgUp`, `PgDn` oder dem Mausrad, und drücken Sie `Ctrl+O` für den Transkript-Modus. Das native Scrollen Ihres Terminals und der tmux-Kopiermodus zeigen nur den aktuellen Viewport, genau wie bei jeder anderen Vollbildanwendung.

258 258 

259Eine angehängte Sitzung [meldet ihren Status nicht an Ihr Terminal](/docs/de/terminal-config#see-session-status-in-your-terminal).

260 

259Drücken Sie `←` bei einem leeren Prompt oder führen Sie `/exit` aus, um zu trennen und zur Agent-Ansicht zurückzukehren, unabhängig davon, ob Sie die Sitzung aus der Agent-Ansicht oder mit `claude attach <id>` aus Ihrer Shell geöffnet haben.261Drücken Sie `←` bei einem leeren Prompt oder führen Sie `/exit` aus, um zu trennen und zur Agent-Ansicht zurückzukehren, unabhängig davon, ob Sie die Sitzung aus der Agent-Ansicht oder mit `claude attach <id>` aus Ihrer Shell geöffnet haben.

260 262 

261`←` trennt auch, während das [`/btw`-Overlay](/docs/de/interactive-mode#side-questions-with-%2Fbtw) offen ist. Erfordert Claude Code v2.1.257 oder später. Eine Nebenfrage, die noch beantwortet wird, läuft weiter, während Sie weg sind. Das nächste Mal, wenn Sie anhängen, öffnet sich das Overlay damit neu, oder mit seiner Antwort.263`←` trennt auch, während das [`/btw`-Overlay](/docs/de/interactive-mode#side-questions-with-%2Fbtw) offen ist. Erfordert Claude Code v2.1.257 oder später. Eine Nebenfrage, die noch beantwortet wird, läuft weiter, während Sie weg sind. Das nächste Mal, wenn Sie anhängen, öffnet sich das Overlay damit neu, oder mit seiner Antwort.


264 266 

265`Ctrl+Z` trennt ebenfalls, kehrt aber stattdessen dorthin zurück, wo Sie angefangen haben: zur Agent-Ansicht, wenn Sie von dort angehängt haben, oder zu Ihrer Shell, wenn Sie `claude attach` ausgeführt haben. Verwenden Sie `Ctrl+Z`, wenn ein Dialog den Fokus hat und nicht auf `←` reagiert.267`Ctrl+Z` trennt ebenfalls, kehrt aber stattdessen dorthin zurück, wo Sie angefangen haben: zur Agent-Ansicht, wenn Sie von dort angehängt haben, oder zu Ihrer Shell, wenn Sie `claude attach` ausgeführt haben. Verwenden Sie `Ctrl+Z`, wenn ein Dialog den Fokus hat und nicht auf `←` reagiert.

266 268 

267`Ctrl+C` behält im angehängten Zustand sein Standard-Unterbrechungsverhalten bei: Es bricht eine laufende Antwort oder einen `!`-Shell-Befehl ab, anstatt zu trennen. Zweimaliges Drücken von `Ctrl+C` bei einem leeren Prompt trennt, genau wie in jeder Sitzung.269`Ctrl+C` behält im angehängten Zustand sein Standard-Unterbrechungsverhalten bei: Es bricht eine laufende Antwort oder einen `!`-Shell-Befehl ab, anstatt zu trennen. Zweimaliges Drücken von `Ctrl+C` bei einem leeren Prompt trennt.

268 270 

269Das Trennen stoppt niemals eine Hintergrund-Sitzung: `←`, `Ctrl+Z`, `/exit` und doppeltes `Ctrl+C` oder doppeltes `Ctrl+D` lassen sie alle laufen. Um eine Sitzung von innen zu beenden, führen Sie `/stop` aus.271Das Trennen stoppt niemals eine Hintergrund-Sitzung: `←`, `Ctrl+Z`, `/exit` und doppeltes `Ctrl+C` oder doppeltes `Ctrl+D` lassen sie alle laufen. Wenn Sie trennen, während ein `/loop` auf seine nächste Iteration wartet, läuft die Schleife weiter und diese Iteration startet planmäßig ohne Sie. Um die Schleife vor dem Trennen zu stoppen, siehe [Schleife stoppen](/docs/de/scheduled-tasks#stop-a-loop). Um eine Sitzung von innen zu beenden, führen Sie `/stop` aus.

270 272 

271<h4 id="switch-sessions-without-leaving-the-terminal">273<h4 id="switch-sessions-without-leaving-the-terminal">

272 Sitzungen wechseln, ohne das Terminal zu verlassen274 Sitzungen wechseln, ohne das Terminal zu verlassen


293Nach 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:

294 296 

295* **Vordergrund-Subagenten laufen noch**: Claude Code wartet weiter, damit die Arbeit der [Vordergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background), die Claude gestartet hat, übertragen wird, und zeigt `Still backgrounding after the current tool`. Drücken Sie `←` erneut, um ohne Warten in den Hintergrund zu verschieben, was diese Subagenten von vorne neu startet.297* **Vordergrund-Subagenten laufen noch**: Claude Code wartet weiter, damit die Arbeit der [Vordergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background), die Claude gestartet hat, übertragen wird, und zeigt `Still backgrounding after the current tool`. Drücken Sie `←` erneut, um ohne Warten in den Hintergrund zu verschieben, was diese Subagenten von vorne neu startet.

296* **Eine Berechtigungsabfrage oder Frage wartet auf Ihre Antwort**: Während eine Berechtigungsabfrage oder eine Frage, die Claude gestellt hat, wartet, wartet Claude Code weiter und zeigt `Still backgrounding after the current tool — a question is waiting for your answer.`298* **Eine Berechtigungsabfrage oder Frage wartet auf Ihre Antwort**: Während eine Berechtigungsabfrage oder eine Frage, die Claude gestellt hat, wartet, wartet Claude Code weiter und zeigt `Still backgrounding after the current tool — a question is waiting for your answer.` Wenn Ihre Antwort den Turn fortsetzen lässt, z. B. **Yes** bei einer Berechtigungsabfrage, verschiebt Claude Code die Sitzung in den Hintergrund, sobald das aktuelle Tool fertig ist.

297* **Sie tippen in die Prompt-Eingabe**: Claude Code bricht den Wechsel ab, da ungesendeter Text im Eingabefeld Ihres Terminals bleibt und nicht in die Hintergrund-Sitzung verschoben würde. Es zeigt `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`299* **Sie tippen in die Prompt-Eingabe**: Claude Code bricht den Wechsel ab, da ungesendeter Text im Eingabefeld Ihres Terminals bleibt und nicht in die Hintergrund-Sitzung verschoben würde. Es zeigt `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`

300* **Sie stoppen den Turn**: Claude Code bricht den Wechsel ab und zeigt `Backgrounding cancelled — the turn was stopped.` Der Turn stoppt beispielsweise, wenn Sie [Claude mit `Esc` unterbrechen](/docs/de/interactive-mode#general-controls) oder bei einer Berechtigungsabfrage aus der Hauptkonversation **No** [ohne Kommentar](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt) auswählen, oder wenn Sie bei einer Frage, die Claude dort stellt, `Esc` drücken. Drücken Sie `←` erneut, um die Sitzung in den Hintergrund zu verschieben.

298* **Eine Nachricht in der Warteschlange kann nicht verschoben werden**: Nachrichten, die Sie [in die Warteschlange gestellt haben, während Claude gearbeitet hat](/docs/de/interactive-mode#queue-messages-while-claude-works), werden mit der Konversation in die Hintergrund-Sitzung verschoben. Wenn das bei einer davon nicht möglich ist, bleibt die Sitzung im Vordergrund und Claude Code zeigt einen Hinweis wie `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`301* **Eine Nachricht in der Warteschlange kann nicht verschoben werden**: Nachrichten, die Sie [in die Warteschlange gestellt haben, während Claude gearbeitet hat](/docs/de/interactive-mode#queue-messages-while-claude-works), werden mit der Konversation in die Hintergrund-Sitzung verschoben. Wenn das bei einer davon nicht möglich ist, bleibt die Sitzung im Vordergrund und Claude Code zeigt einen Hinweis wie `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`

299 302 

300Das Drücken von `←` erstellt die Zeile der Sitzung, auch wenn die Konversation noch keine Nachrichten hat, sodass `→` immer noch zu ihr zurückkehrt.303Das Drücken von `←` erstellt die Zeile der Sitzung, auch wenn die Konversation noch keine Nachrichten hat, sodass `→` immer noch zu ihr zurückkehrt.


513* `--fallback-model`516* `--fallback-model`

514* `--allow-dangerously-skip-permissions`517* `--allow-dangerously-skip-permissions`

515 518 

516Verzeichnisse, die Sie während der Sitzung mit [`/add-dir`](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) hinzugefügt haben, werden ebenfalls übernommen. Die Übernahme von `--allow-dangerously-skip-permissions` hält `bypassPermissions` in der Hintergrund-Sitzung erreichbar, gewährt aber nichts Neues: Der Modus erfordert weiterhin die einmalige interaktive Akzeptanz, die unter [Berechtigungsmodus, Modell und Aufwand](#permission-mode-model-and-effort) beschrieben ist.519Verzeichnisse, die Sie während der Sitzung mit [`/add-dir`](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) hinzugefügt haben, werden ebenfalls übernommen. Die Übernahme von `--allow-dangerously-skip-permissions` hält `bypassPermissions` in der Hintergrund-Sitzung erreichbar, gewährt aber nichts Neues: Der Modus erfordert weiterhin, dass Ihre [Akzeptanz des Bypass-Haftungsausschlusses](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) hinterlegt ist.

517 520 

518<span id="from-your-shell" />521<span id="from-your-shell" />

519 522 


767 770 

768Die aktiven Standardwerte werden in der Fußzeile unter dem Versand-Eingabefeld angezeigt.771Die aktiven Standardwerte werden in der Fußzeile unter dem Versand-Eingabefeld angezeigt.

769 772 

770Claude Code lehnt `claude --bg --permission-mode bypassPermissions` ab, bis Sie den Bypass-Haftungsausschluss akzeptiert haben, indem Sie `claude --dangerously-skip-permissions` einmal interaktiv ausführen, da dieser Modus einer Sitzung, die Sie nicht beobachten, erlaubt, ohne Genehmigung zu handeln. Wenn Sie `--dangerously-skip-permissions` oder `--permission-mode bypassPermissions` an `claude agents` übergeben, wird derselbe Haftungsausschluss angezeigt, sofern Sie ihn noch nicht akzeptiert haben, und durch das Akzeptieren wird `bypassPermissions` auf die Sitzungen angewendet, die Sie aus der Ansicht starten. Auch bei Übergabe von `--allow-dangerously-skip-permissions` wird derselbe Haftungsausschluss angezeigt, und durch das Akzeptieren wird `bypassPermissions` im `Shift+Tab`-Zyklus dieser Sitzungen verfügbar, ohne sie in diesem Modus zu starten.773Eine Hintergrund-Sitzung, die im Modus `bypassPermissions` gestartet wird, erfordert, dass Ihre [Akzeptanz des Bypass-Haftungsausschlusses](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) hinterlegt ist, da dieser Modus einer Sitzung, die Sie nicht beobachten, erlaubt, ohne Genehmigung zu handeln. Wenn Sie `--dangerously-skip-permissions` oder `--permission-mode bypassPermissions` an `claude agents` übergeben, wird derselbe Haftungsausschluss angezeigt, sofern Sie ihn noch nicht akzeptiert haben, und durch das Akzeptieren wird `bypassPermissions` auf die Sitzungen angewendet, die Sie aus der Ansicht starten. Auch bei Übergabe von `--allow-dangerously-skip-permissions` wird derselbe Haftungsausschluss angezeigt, und durch das Akzeptieren wird `bypassPermissions` im `Shift+Tab`-Zyklus dieser Sitzungen verfügbar, ohne sie in diesem Modus zu starten.

771 774 

772<h4 id="what-persists-across-restarts">775<h4 id="what-persists-across-restarts">

773 Was über Neustarts hinweg erhalten bleibt776 Was über Neustarts hinweg erhalten bleibt

774</h4>777</h4>

775 778 

776Der Berechtigungsmodus, das Modell und der Aufwand, die Sie für eine Hintergrund-Sitzung gewählt haben, bleiben zusammen mit den [übernommenen Konfigurations-Flags](#what-carries-over-when-you-background) erhalten, wenn der Supervisor ihren Prozess später [stoppt und neu startet](#the-supervisor-process). Eine Sitzung, die Sie mit `claude --bg --dangerously-skip-permissions` oder `claude --bg --permission-mode bypassPermissions` gestartet haben, bleibt nach diesem Neustart in `bypassPermissions`. Ein Modell oder Aufwand, den Sie während der Sitzung mit `/model` oder `/effort` geändert haben, bleibt ebenfalls erhalten.779Der Berechtigungsmodus, das Modell und der Aufwand, die Sie für eine Hintergrund-Sitzung gewählt haben, bleiben zusammen mit den [übernommenen Konfigurations-Flags](#what-carries-over-when-you-background) erhalten, wenn der Supervisor ihren Prozess später [stoppt und neu startet](#the-supervisor-process). Ein Modell oder Aufwand, den Sie während der Sitzung mit `/model` oder `/effort` geändert haben, bleibt ebenfalls erhalten.

777 780 

778Wenn die Sitzung ihren Aufwand aus Ihren Einstellungen statt aus `--effort` oder `/effort` übernommen hat, liest Claude Code Ihre Einstellungen jedes Mal neu, wenn es einen Prozess für die Sitzung startet. Nachdem Sie den gespeicherten Aufwand in `settings.json` bearbeitet haben, erreicht die Änderung Sitzungen, die Sie mit `←` oder `/bg` in den Hintergrund verschieben, sowie deren spätere Neustarts. Der gespeicherte Aufwand ist der Schlüssel [`effortLevel`](/docs/de/settings-reference#effortlevel) oder ein Eintrag in [`modelSettings`](/docs/de/settings-reference#modelsettings).781Wenn die Sitzung ihren Aufwand aus Ihren Einstellungen statt aus `--effort` oder `/effort` übernommen hat, liest Claude Code Ihre Einstellungen jedes Mal neu, wenn es einen Prozess für die Sitzung startet. Nachdem Sie den gespeicherten Aufwand in `settings.json` bearbeitet haben, erreicht die Änderung Sitzungen, die Sie mit `←` oder `/bg` in den Hintergrund verschieben, sowie deren spätere Neustarts. Der gespeicherte Aufwand ist der Schlüssel [`effortLevel`](/docs/de/settings-reference#effortlevel) oder ein Eintrag in [`modelSettings`](/docs/de/settings-reference#modelsettings).

779 782 


822| `claude attach <id\|name>` | An eine Sitzung in diesem Terminal anhängen |825| `claude attach <id\|name>` | An eine Sitzung in diesem Terminal anhängen |

823| `claude logs <id\|name>` | Neueste Ausgabe der Sitzung drucken |826| `claude logs <id\|name>` | Neueste Ausgabe der Sitzung drucken |

824| `claude stop <id>` | Eine Sitzung stoppen. Akzeptiert auch `claude kill` |827| `claude stop <id>` | Eine Sitzung stoppen. Akzeptiert auch `claude kill` |

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

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

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

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

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

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

831| `claude daemon logs` | Der Logdatei des Supervisors, [`~/.claude/daemon.log`](#where-state-is-stored), folgen und neue Zeilen drucken, sobald sie eintreffen, bis Sie `Ctrl+C` drücken |834| `claude daemon logs` | Der Logdatei des Supervisors, [`~/.claude/daemon.log`](#where-state-is-stored), folgen und neue Zeilen drucken, sobald sie eintreffen, bis Sie `Ctrl+C` drücken |

832| `claude daemon stop --any` | Den Supervisor-Prozess und die Hintergrund-Sitzungen, die er hostet, stoppen. Übergeben Sie `--keep-workers`, um Hintergrund-Sitzungen laufen zu lassen, damit der nächste Supervisor sich mit ihnen verbinden kann. Der nächste `claude agents` oder `claude --bg` startet einen neuen Supervisor |835| `claude daemon stop --any` | Den Supervisor-Prozess und die Hintergrund-Sitzungen, die er hostet, stoppen. Übergeben Sie `--keep-workers`, um Hintergrund-Sitzungen laufen zu lassen, damit sich [der nächste Supervisor](#the-supervisor-process) mit ihnen verbinden kann. Der nächste `claude agents` oder `claude --bg` startet einen neuen Supervisor |

833 836 

834`claude attach` und `claude logs` akzeptieren anstelle der ID auch einen Teil des Namens einer Sitzung, wie in `claude logs "auth refactor"`. Die Angabe eines Namens erfordert Claude Code v2.1.290 oder später.837`claude attach` und `claude logs` akzeptieren anstelle der ID auch einen Teil des Namens einer Sitzung, wie in `claude logs "auth refactor"`. `claude attach` öffnet eine Sitzung nur dann über ihren Namen, wenn ihr Prozess läuft; übergeben Sie daher stattdessen die ID, um eine gestoppte Sitzung neu zu starten. Die Angabe eines Namens erfordert Claude Code v2.1.290 oder später.

835 838 

836<h3 id="list-sessions-as-json">839<h3 id="list-sessions-as-json">

837 Sitzungen als JSON auflisten840 Sitzungen als JSON auflisten


889* **Fertig oder wartet auf Ihre nächste Nachricht und unverbunden für etwa eine Stunde**: Der Supervisor stoppt den Prozess, um Ressourcen freizugeben. Eine Sitzung, die ihren Turn beendet hat, indem sie Ihnen eine Frage gestellt hat, zählt als Warten auf Ihre nächste Nachricht. Die Konversation bleibt auf der Festplatte, und das nächste Mal, wenn Sie anhängen oder antworten, wird die Sitzung dort fortgesetzt, wo sie aufgehört hat. Heften Sie eine Sitzung mit `Ctrl+T` an, um ihren Prozess am Laufen zu halten.892* **Fertig oder wartet auf Ihre nächste Nachricht und unverbunden für etwa eine Stunde**: Der Supervisor stoppt den Prozess, um Ressourcen freizugeben. Eine Sitzung, die ihren Turn beendet hat, indem sie Ihnen eine Frage gestellt hat, zählt als Warten auf Ihre nächste Nachricht. Die Konversation bleibt auf der Festplatte, und das nächste Mal, wenn Sie anhängen oder antworten, wird die Sitzung dort fortgesetzt, wo sie aufgehört hat. Heften Sie eine Sitzung mit `Ctrl+T` an, um ihren Prozess am Laufen zu halten.

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

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

895* **Der Supervisor selbst stoppt**, beispielsweise weil sein Prozess von außerhalb von Claude Code beendet wurde: Unter macOS und Linux wartet der Prozess jeder Sitzung etwa eine Minute darauf, dass sich ein neuer Supervisor wieder mit ihm verbindet, und stoppt, wenn dies nicht geschieht. Führen Sie innerhalb dieser Minute `claude agents` in Ihrer Shell aus, um einen neuen Supervisor zu starten und Ihre Sitzungen am Laufen zu halten. Wenn die Minute zuerst verstreicht, stoppen die Sitzungen, aber ihre gespeicherten Konversationen bleiben auf der Festplatte: Hängen Sie sich an eine Sitzung an oder antworten Sie ihr, und sie startet aus ihrer gespeicherten Konversation neu, wie unter [Sitzungen werden nach dem Herunterfahren als fehlgeschlagen oder gestoppt angezeigt](#sessions-show-as-failed-after-shutdown) beschrieben.

892 896 

893Wenn ein Sitzungsprozess stoppt oder neu gestartet wird, werden die Hintergrund-Shell-Befehle, dynamischen Workflows und Hintergrund-Subagenten, die Claude darin gestartet hat, in seinen nächsten Prozess übernommen; laufende Monitore und Shell-Befehle, die ein Subagent gestartet hat, stoppen mit dem Prozess. Das Löschen der Sitzung stoppt alles, das sie übernommen hat. Um stattdessen all dies mit dem Prozess zu stoppen, setzen Sie [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/de/env-vars#variables) auf `1`.897Wenn ein Sitzungsprozess stoppt oder neu gestartet wird, werden die Hintergrund-Shell-Befehle, dynamischen Workflows und Hintergrund-Subagenten, die Claude darin gestartet hat, in seinen nächsten Prozess übernommen; laufende Monitore und Shell-Befehle, die ein Subagent gestartet hat, stoppen mit dem Prozess. Das Löschen der Sitzung stoppt alles, das sie übernommen hat. Um stattdessen all dies mit dem Prozess zu stoppen, setzen Sie [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/de/env-vars#variables) auf `1`.

894 898 


911 915 

912Um diesen Status zu überprüfen, ohne die Dateien direkt zu lesen, führen Sie `claude daemon status` aus. Es meldet, ob der Supervisor erreichbar ist, seine Prozess-ID und Version, das Socket-Verzeichnis und wie viele Hintergrund-Sitzungen aktiv sind.916Um diesen Status zu überprüfen, ohne die Dateien direkt zu lesen, führen Sie `claude daemon status` aus. Es meldet, ob der Supervisor erreichbar ist, seine Prozess-ID und Version, das Socket-Verzeichnis und wie viele Hintergrund-Sitzungen aktiv sind.

913 917 

914Der Befehl warnt auch, wenn der laufende Supervisor eine andere Version hat als der `claude`, den Sie aufgerufen haben, was nach einem Update geschieht, in das der Supervisor noch nicht neu gestartet hat. Die Warnung zeigt beide Versionen an und teilt Ihnen mit, dass Sie `claude daemon stop --any` ausführen sollen, um die neue Version zu übernehmen. Wenn Claude Code als Betriebssystem-Dienst installiert ist, ist der vorgeschlagene Befehl `claude daemon stop` ohne das Flag.918Der Befehl warnt auch, wenn der laufende Supervisor eine andere Version hat als der `claude`, den Sie aufgerufen haben, was nach einem Update geschieht, in das der Supervisor noch nicht neu gestartet hat. Die Warnung zeigt beide Versionen an und teilt Ihnen mit, dass Sie `claude daemon stop --any` ausführen sollen, um die neue Version zu übernehmen.

915 919 

916Sitzungen bleiben bei diesem Versionskonflikt intakt: Eine ältere Claude Code-Version, die die `state.json` einer Sitzung aktualisiert, behält Felder, die sie nicht erkennt, und behält die Sitzung in der Liste. Die Sitzungsliste in `roster.json` folgt derselben Regel, daher bleiben Sitzungen, die von der neueren Version gestartet wurden, erreichbar und akzeptieren weiterhin Eingaben, nachdem der Supervisor neu gestartet wird.920Sitzungen bleiben bei diesem Versionskonflikt intakt: Eine ältere Claude Code-Version, die die `state.json` einer Sitzung aktualisiert, behält Felder, die sie nicht erkennt, und behält die Sitzung in der Liste. Die Sitzungsliste in `roster.json` folgt derselben Regel, daher bleiben Sitzungen, die von der neueren Version gestartet wurden, erreichbar und akzeptieren weiterhin Eingaben, nachdem der Supervisor neu gestartet wird.

917 921 


963 967 

964Das Herunterfahren oder Neustarten Ihres Computers stoppt laufende Hintergrund-Sitzungen. Eine Sitzung, die auf Ihre Eingabe wartet, bleibt unter `Needs input`, wenn Sie zurückkommen. Für jede andere laufende Sitzung hängt das, was die Agenten-Ansicht zeigt, davon ab, wie lange es her ist, dass sie zuletzt Fortschritte gemacht hat:968Das Herunterfahren oder Neustarten Ihres Computers stoppt laufende Hintergrund-Sitzungen. Eine Sitzung, die auf Ihre Eingabe wartet, bleibt unter `Needs input`, wenn Sie zurückkommen. Für jede andere laufende Sitzung hängt das, was die Agenten-Ansicht zeigt, davon ab, wie lange es her ist, dass sie zuletzt Fortschritte gemacht hat:

965 969 

966* Innerhalb von 48 Stunden wird die Sitzung als fehlgeschlagen angezeigt. Hängen Sie sich an oder antworten Sie darauf, und sie startet von dort neu, wo sie aufgehört hat.970* Innerhalb von 48 Stunden wird die Sitzung als fehlgeschlagen angezeigt. Hängen Sie sich an oder antworten Sie darauf, und sie startet aus ihrer gespeicherten Konversation neu. Um die unterbrochene Arbeit wieder aufzunehmen, senden Sie ihr eine Antwort mit der Bitte, fortzufahren.

967* Nach 48 Stunden, z. B. nachdem der Computer tagelang ausgeschaltet war, wird die Sitzung als gestoppt mit `ended while the background service was off` angezeigt. Drücken Sie `Enter` auf der Zeile und die Fußzeile zeigt `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.` Drücken Sie `Enter` auf derselben Zeile erneut, um die gespeicherte Konversation fortzusetzen. Eine Antwort oder `claude attach <id>` setzt sie fort, ohne diesen Hinweis in der Fußzeile.971* Nach 48 Stunden, z. B. nachdem der Computer tagelang ausgeschaltet war, wird die Sitzung als gestoppt mit `ended while the background service was off` angezeigt. Drücken Sie `Enter` auf der Zeile und die Fußzeile zeigt `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.` Drücken Sie `Enter` auf derselben Zeile erneut, um die gespeicherte Konversation fortzusetzen. Eine Antwort oder `claude attach <id>` setzt sie fort, ohne diesen Hinweis in der Fußzeile.

968 972 

969Wenn die [Transkript-Bereinigung](/docs/de/settings-reference#cleanupperioddays) die gespeicherte Konversation einer gestoppten Sitzung entfernt hat, weigert sich Claude Code, die Zeile zu öffnen: Die Meldung besagt, dass es nichts zum Fortsetzen gibt. `claude rm <id>` löscht die Zeile, außer in den [beibehaltenen Fällen](#what-deleting-a-session-removes), die oben beschrieben sind, und `claude respawn <id>` führt den ursprünglichen Prompt erneut aus. Siehe [Die gespeicherte Konversation dieser Sitzung ist nicht mehr auf der Festplatte](/docs/de/errors#this-sessions-saved-conversation-is-no-longer-on-disk).973Wenn die [Transkript-Bereinigung](/docs/de/settings-reference#cleanupperioddays) die gespeicherte Konversation einer gestoppten Sitzung entfernt hat, weigert sich Claude Code, die Zeile zu öffnen: Die Meldung besagt, dass es nichts zum Fortsetzen gibt. `claude rm <id>` löscht die Zeile, außer in den [beibehaltenen Fällen](#what-deleting-a-session-removes), die oben beschrieben sind, und `claude respawn <id>` führt den ursprünglichen Prompt erneut aus. Siehe [Die gespeicherte Konversation dieser Sitzung ist nicht mehr auf der Festplatte](/docs/de/errors#this-sessions-saved-conversation-is-no-longer-on-disk).


1022claude daemon stop --any --keep-workers1026claude daemon stop --any --keep-workers

1023```1027```

1024 1028 

1025Der neue Supervisor verbindet sich wieder mit den laufenden Sitzungen. Ohne `--keep-workers` beendet der Befehl auch die Hintergrund-Sitzungen. Das Flag `--any` bestätigt, dass Sie einen Supervisor stoppen möchten, der bei Bedarf gestartet wurde, anstatt als installierter Dienst, was die Standardeinstellung ist.1029Führen Sie dann `claude agents` in Ihrer Shell aus, um den neuen Supervisor zu starten. Wenn Sie dies innerhalb von [etwa einer Minute](#the-supervisor-process) nach dem Stoppen tun, verbindet er sich wieder mit den noch laufenden Sitzungen, und deren Arbeit wird ohne Unterbrechung fortgesetzt. Wenn Sie länger brauchen, haben sich die Sitzungen unter macOS und Linux bis dahin von selbst beendet, und das Anhängen an eine Sitzung oder eine Antwort darauf startet sie aus ihrer gespeicherten Konversation neu. Ohne `--keep-workers` beendet der Befehl auch die Hintergrund-Sitzungen. Das Flag `--any` bewirkt, dass der Befehl einen Supervisor stoppt, den Claude Code bei Bedarf gestartet hat.

1026 1030 

1027Ein Supervisor, der startet, aber keine Verbindungen akzeptieren kann, beendet sich selbst und gibt seine Sperre frei, sodass der nächste `claude agents` ohne diesen manuellen Stop einen neuen startet. Die obigen Schritte gelten, wenn ein laufender Supervisor steckenbleibt.1031Ein Supervisor, der startet, aber keine Verbindungen akzeptieren kann, beendet sich selbst und gibt seine Sperre frei, sodass der nächste `claude agents` ohne diesen manuellen Stop einen neuen startet. Die obigen Schritte gelten, wenn ein laufender Supervisor steckenbleibt.

1028 1032 


1040claude daemon stop --any --keep-workers1044claude daemon stop --any --keep-workers

1041```1045```

1042 1046 

1043Der nächste `claude agents` oder `claude --bg` startet einen neuen Supervisor, der Ihre gespeicherten Anmeldedaten liest. Wenn Sie sich mit einer Umgebungsvariable wie `ANTHROPIC_API_KEY` authentifizieren, anstatt `/login` zu verwenden, führen Sie diesen nächsten Befehl aus einer Shell aus, in der die Variable gesetzt ist.1047Führen Sie innerhalb von [etwa einer Minute](#the-supervisor-process) `claude agents` oder `claude --bg` in Ihrer Shell aus, um einen neuen Supervisor zu starten, der Ihre gespeicherten Anmeldedaten liest. Wenn Sie sich mit einer Umgebungsvariable wie `ANTHROPIC_API_KEY` authentifizieren, anstatt `/login` zu verwenden, führen Sie diesen nächsten Befehl aus einer Shell aus, in der die Variable gesetzt ist.

1044 1048 

1045Siehe die [Fehlerreferenz](/docs/de/errors#could-not-resolve-authentication-method) für die vollständige Liste der Ursachen und Behebungen.1049Siehe die [Fehlerreferenz](/docs/de/errors#could-not-resolve-authentication-method) für die vollständige Liste der Ursachen und Behebungen.

1046 1050 

analytics.md +4 −4

Details

65Daten werden normalerweise innerhalb von 24 Stunden nach der Aktivierung angezeigt, mit täglichen Updates. Wenn keine Daten angezeigt werden, wird möglicherweise eine dieser Meldungen angezeigt:65Daten werden normalerweise innerhalb von 24 Stunden nach der Aktivierung angezeigt, mit täglichen Updates. Wenn keine Daten angezeigt werden, wird möglicherweise eine dieser Meldungen angezeigt:

66 66 

67* **'GitHub-App erforderlich"**: Installieren Sie die GitHub-App, um Beitragskennzahlen anzuzeigen67* **'GitHub-App erforderlich"**: Installieren Sie die GitHub-App, um Beitragskennzahlen anzuzeigen

68* **„Datenverarbeitung läuft"**: Überprüfen Sie in einigen Tagen erneut und bestätigen Sie, dass die GitHub-App installiert ist, falls keine Daten angezeigt werden68* **„Datenverarbeitung läuft“**: Überprüfen Sie in einigen Tagen erneut und bestätigen Sie, dass die GitHub-App installiert ist, falls keine Daten angezeigt werden

69 69 

70Beitragskennzahlen unterstützen GitHub Cloud und GitHub Enterprise Server.70Beitragskennzahlen decken Repositorys ab, die auf github.com gehostet werden. Für Repositorys auf [GitHub Enterprise Server](/docs/de/github-enterprise-server) zeigt das Analytics-Dashboard nur Nutzungsmetriken an.

71 71 

72<h3 id="review-summary-metrics">72<h3 id="review-summary-metrics">

73 Zusammenfassende Metriken überprüfen73 Zusammenfassende Metriken überprüfen


80Das Dashboard zeigt diese zusammenfassenden Metriken oben an:80Das Dashboard zeigt diese zusammenfassenden Metriken oben an:

81 81 

82* **PRs mit CC**: Gesamtanzahl der zusammengeführten Pull Requests, die mindestens eine Codezeile enthalten, die mit Claude Code geschrieben wurde82* **PRs mit CC**: Gesamtanzahl der zusammengeführten Pull Requests, die mindestens eine Codezeile enthalten, die mit Claude Code geschrieben wurde

83* **Codezeilen mit CC**: Gesamtzahl der Codezeilen in allen zusammengeführten PRs, die mit Claude Code-Unterstützung geschrieben wurden. Nur „effektive Zeilen" werden gezählt: Zeilen mit mehr als 3 Zeichen nach Normalisierung, ohne leere Zeilen und Zeilen mit nur Klammern oder trivialer Interpunktion.83* **Codezeilen mit CC**: Gesamtzahl der Codezeilen in allen zusammengeführten PRs, die mit Claude Code-Unterstützung geschrieben wurden. Nur „effektive Zeilen“ werden gezählt: Zeilen mit mehr als 3 Zeichen nach Normalisierung, ohne leere Zeilen und Zeilen mit nur Klammern oder trivialer Interpunktion.

84* **PRs mit Claude Code (%)**: Prozentsatz aller zusammengeführten PRs, die Claude Code-unterstützten Code enthalten84* **PRs mit Claude Code (%)**: Prozentsatz aller zusammengeführten PRs, die Claude Code-unterstützten Code enthalten

85* **Akzeptanzrate für Vorschläge**: Prozentsatz der Fälle, in denen Benutzer Claude Code-Codebearbeitungsvorschläge akzeptieren, einschließlich Edit, Write und NotebookEdit-Tool-Nutzung85* **Akzeptanzrate für Vorschläge**: Prozentsatz der Fälle, in denen Benutzer Claude Code-Codebearbeitungsvorschläge akzeptieren, einschließlich Edit, Write und NotebookEdit-Tool-Nutzung

86* **Akzeptierte Codezeilen**: Gesamtzahl der Codezeilen, die von Claude Code geschrieben wurden und die Benutzer in ihren Sitzungen akzeptiert haben. Dies schließt abgelehnte Vorschläge aus und verfolgt keine nachfolgenden Löschungen.86* **Akzeptierte Codezeilen**: Gesamtzahl der Codezeilen, die von Claude Code geschrieben wurden und die Benutzer in ihren Sitzungen akzeptiert haben. Dies schließt abgelehnte Vorschläge aus und verfolgt keine nachfolgenden Löschungen.


202 ROI messen202 ROI messen

203</h4>203</h4>

204 204 

205Beitragskennzahlen helfen bei der Beantwortung der Frage „Lohnt sich dieses Tool für die Investition?" mit Daten aus Ihrer eigenen Codebasis:205Beitragskennzahlen helfen bei der Beantwortung der Frage „Lohnt sich dieses Tool für die Investition?“ mit Daten aus Ihrer eigenen Codebasis:

206 206 

207* Verfolgen Sie Änderungen bei PRs pro Benutzer im Zeitverlauf, wenn die Einführung zunimmt207* Verfolgen Sie Änderungen bei PRs pro Benutzer im Zeitverlauf, wenn die Einführung zunimmt

208* Vergleichen Sie PRs und Codezeilen, die mit und ohne Claude Code versendet wurden208* Vergleichen Sie PRs und Codezeilen, die mit und ohne Claude Code versendet wurden

Details

96 <Step title="Benutzer hinzufügen">96 <Step title="Benutzer hinzufügen">

97 Sie können Benutzer auf eine der beiden folgenden Arten hinzufügen:97 Sie können Benutzer auf eine der beiden folgenden Arten hinzufügen:

98 98 

99 * Laden Sie Benutzer in Massen aus der Console ein: Einstellungen -> Mitglieder -> Einladen99 * Laden Sie Benutzer gesammelt über die Mitgliederseite der Console unter [platform.claude.com/settings/members](https://platform.claude.com/settings/members) ein: Klicken Sie auf **Invite**

100 * [Richten Sie SSO ein](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)100 * [Richten Sie SSO ein](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)

101 </Step>101 </Step>

102 102 

Details

1> ## Documentation Index

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

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

4 

5# Gebühren für Klassifikator-Anfragen im Auto-Modus

6 

7> Beheben Sie die Claude Code-Benachrichtigung, dass diese Sitzung nicht für gebührenfreie Klassifikator-Anfragen im Auto-Modus berechtigt ist: Was sie bedeutet, warum sie angezeigt wird und was Sie tun können.

8 

9Im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) führt ein Classifier Aktionen wie Shell-Befehle und Netzwerkanfragen vor ihrer Ausführung durch. Überall dort, wo [serverseitige Prüfungen aktiviert sind](/docs/de/permission-modes#server-side-classifier-review), führt der Server diese Prüfungen als Teil der eigenen Modellanfragen der Sitzung durch, ohne Gebühren. Diese Benachrichtigung bedeutet, dass die Prüfungen des Servers Ihre Sitzung nicht erreichen, daher erstellt Claude Code stattdessen eigene Classifier-Anfragen, und auf Ihrem Konto werden diese Anfragen auf Ihre Token-Nutzung angerechnet:

10 

11```text theme={null}

12We're changing auto mode to no longer charge for classifier requests in Claude Code. However, this session isn't eligible.

13```

14 

15An der Eingabeaufforderung hält Claude Code die erste Aktion, die es auf diese Weise prüfen würde, an, bis Sie antworten. Nichts ist fehlerhaft: Der Auto-Modus funktioniert weiterhin, und seine Classifier-Anfragen werden wie zuvor in Rechnung gestellt. Die häufigste Ursache ist ein LLM-Gateway oder Proxy zwischen Claude Code und der API, und wenn Claude Code einen identifizieren kann, benennt die Benachrichtigung ihn. Drücken Sie **Eingabe**, um fortzufahren, oder siehe [Machen Sie die Sitzung berechtigt](#make-the-session-eligible), um zu verhindern, dass sie in neuen Sitzungen angezeigt wird.

16 

17<h2 id="respond-to-the-notice">

18 Auf die Benachrichtigung antworten

19</h2>

20 

21Die Benachrichtigung hält die Aktion an, bis Sie sie beantworten:

22 

23* **Eingabe** setzt fort: Die gehaltene Aktion und der Rest der Sitzung verwenden Claude Codes eigene Classifier-Anfragen, die wie zuvor als Token-Nutzung abgerechnet werden, und die Benachrichtigung wird in dieser Sitzung nicht erneut angezeigt. Wenn die Benachrichtigung ein Gateway benannt hat, verhindert die Bestätigung, dass sie auf diesem Computer 24 Stunden lang erneut angezeigt wird. Wenn nicht, wird die Benachrichtigung beim nächsten Fallback einer Sitzung erneut angezeigt.

24* **Esc** oder **Strg+C** bricht ab: Die gehaltene Aktion wird nicht ausgeführt und der aktuelle Zug stoppt, wobei die Sitzung noch im Auto-Modus ist. Nichts wird gespeichert, daher wird die Benachrichtigung erneut angezeigt, bevor die nächste überprüfte Aktion ausgeführt wird.

25 

26Um stattdessen den Auto-Modus zu beenden, wechseln Sie die Berechtigungsmodi mit `Shift+Tab`, nachdem Sie geantwortet haben.

27 

28Wenn die Benachrichtigung nicht auf eine Antwort warten kann, meldet Claude Code denselben Text und die Sitzung wird im Auto-Modus fortgesetzt, es sei denn, eine Gateway-Bestätigung auf diesem Computer in den letzten 24 Stunden hat sie verworfen. Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` wird der Text auf stderr ausgegeben, und in der `stream-json`-Ausgabe wird eine `system`-Warnmeldung ausgegeben, die Agent SDK-Anwendungen aus dem Nachrichtenstrom lesen können.

29 

30<h2 id="make-the-session-eligible">

31 Machen Sie die Sitzung berechtigt

32</h2>

33 

34Wenn ein Gateway die Ursache ist, bitten Sie den Administrator Ihres Unternehmens oder Ihren Gateway-Anbieter, Anfragen und Antworten unverändert weiterzuleiten. Das bedeutet, dass Anfrage-Header und Body-Felder wie sie sind weitergeleitet werden, einschließlich solcher, die das Gateway nicht erkennt, wie das Anfrage-Feld `safeguards`, und dass Antworten und Streaming-Events zurückgegeben werden, ohne Schlüssel wie das Feld `safeguard_results` zu löschen oder Tool-Use-IDs umzuschreiben, wie das [Gateway-Kompatibilitätsleitfaden](/docs/de/llm-gateway-protocol#feature-pass-through) beschreibt. Ein Gateway, das den Datenverkehr auf diese Weise weiterleitet, funktioniert weiterhin mit dieser Funktion und mit zukünftigen Funktionen. Neue Sitzungen verwenden dann die Prüfungen des Servers erneut.

35 

36Wenn Sie bereits wissen, dass Ihr Gateway die Prüfungen des Servers nicht bereitstellen kann, teilen Sie Claude Code mit, dass es dort nicht danach fragen soll, indem Sie `CLAUDE_CODE_AUTO_MODE_SERVER` auf `0` setzen, bevor Sie die Sitzung starten, in Ihrer Shell oder im [`env`-Einstellungsschlüssel](/docs/de/settings-reference#env):

37 

38```bash theme={null}

39export CLAUDE_CODE_AUTO_MODE_SERVER=0

40```

41 

42Klassifizierer-Anfragen stammen dann immer von Claude Code selbst, werden auf die gleiche Weise abgerechnet, und die Benachrichtigung wird nicht angezeigt. Bei einer direkten Verbindung zur Anthropic API erfordert die Variable Claude Code v2.1.281 oder später. Das Setzen von `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, während `CLAUDE_CODE_AUTO_MODE_SERVER` nicht gesetzt ist, schaltet die Prüfungen des Servers ebenfalls aus, außer wie [Deaktivieren Sie Pre-Release-Funktionen](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) beschreibt.

43 

44`CLAUDE_CODE_AUTO_MODE_SERVER` ist eine temporäre Einstellung und kann in einer späteren Version entfernt werden.

45 

46<h2 id="why-the-notice-appears">

47 Warum der Dialog angezeigt wird

48</h2>

49 

50[Server-seitige Classifier-Überprüfung](/docs/de/permission-modes#server-side-classifier-review) listet auf, welche Sitzungen den Server um Classifier-Überprüfungen bitten. Pro-, Max- und Team-Pläne zeigen den Dialog nie an. Wenn er angezeigt wird, sind die üblichen Ursachen:

51 

52* **Ein LLM-Gateway oder Proxy befindet sich im Pfad**: eines, das Request-Header entfernt oder umschreibt, Request-Felder löscht, die es nicht erkennt, oder Antworten bearbeitet. Der Server erhält dann nie die Anfrage für Überprüfungen, oder Claude Code erhält die Ergebnisse nie. Wenn Ihre Konfiguration oder die Antworten das Gateway identifizieren, benennt der Dialog es.

53* **Server-seitige Überprüfungen haben Ihre Plattform, Region oder Anmeldedaten noch nicht erreicht**: ob eine Plattform oder Region diese durchführt, hängt vom Rollout dieser Plattform ab. Wenn Sie den Dialog ohne Gateway oder Proxy im Pfad sehen und er wird immer wieder angezeigt, ist dies die wahrscheinliche Ursache. Um dies zu bestätigen, kontaktieren Sie den Support oder den Administrator Ihres Unternehmens, oder melden Sie es mit `/feedback`.

54 

55Um eine Sitzung zu überprüfen, die sich im Auto-Modus befindet, führen Sie `/status` an der Claude Code-Eingabeaufforderung aus: Die Zeile **Auto mode server** zeigt `Enabled` an, während die Server-Überprüfungen die Aktionen der Sitzung entscheiden, und `Disabled`, sobald die Sitzung auf Fallback zurückgegriffen hat.

56 

57Wenn ein Gateway Antworten kürzt oder die Ergebnisse in eine Form umschreibt, die Claude Code nicht lesen kann, erhalten Sie Ablehnungen ohne Urteil anstelle dieses Dialogs; siehe [Server-seitige Classifier-Überprüfung](/docs/de/permission-modes#server-side-classifier-review).

58 

59<h2 id="related-resources">

60 Zugehörige Ressourcen

61</h2>

62 

63* [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode): was Auto-Modus ist und was er standardmäßig blockiert

64* [Serverseitige Klassifizierer-Überprüfung](/docs/de/permission-modes#server-side-classifier-review): welche Sitzungen den Server bitten, Aktionen zu überprüfen, und die Claude Code-Version, die jede erfordert

65* [Gateway-Kompatibilitätsleitfaden](/docs/de/llm-gateway-protocol#feature-pass-through): was bricht, wenn ein Gateway Header oder Body-Felder entfernt

66* [Der Server hat kein Sicherheitsurteil zurückgegeben](/docs/de/errors#the-server-returned-no-safety-verdict): die Ablehnung, die Sie sehen, wenn der Server kein Urteil für eine Aktion gibt

67* [Kosten effektiv verwalten](/docs/de/costs): Token-Nutzung verfolgen und Claude Code-Kosten reduzieren

Details

383 383 

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

385 385 

386Der Text unter dem Aufruf teilt Ihnen mit, ob es etwas zu beheben gibt. Text, der ein Problem mit dem Klassifizierer selbst meldet, z. B. ein Modell, das `is temporarily unavailable` ist, oder ein Klassifizierer-Fehler, bedeutet, dass Claude Code den Aufruf ohne ein endgültiges Urteil des Klassifizierers blockiert hat; siehe [Auto mode cannot determine the safety of an action](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für weitere Informationen. Andernfalls bedeutet eine Zeile, die `Denied by auto mode classifier` mit einem Grund wie `[Production Deploy]` oder `Blocked by classifier` liest, dass der Klassifizierer den Aufruf für unsicher befunden hat. Wählen Sie daher die Behebung basierend auf dem aus, was der Aufruf erreichen oder tun wollte:386Der Text unter dem Aufruf teilt Ihnen mit, ob es etwas zu beheben gibt. Eine abgeblendete Zeile `Not run · auto mode's check had no usable answer` oder Text, der ein Problem mit dem Klassifikator selbst meldet, z. B. `Auto mode could not evaluate this action`, bedeutet, dass Claude Code den Aufruf ohne ein Urteil des Klassifikators blockiert hat. Drücken Sie bei einer `Not run`-Zeile `Ctrl+O`, um die vollständige Meldung zu lesen, und lesen Sie dann unter [Auto mode cannot determine the safety of an action](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) oder [The server returned no safety verdict](/docs/de/errors#the-server-returned-no-safety-verdict) nach, was zu tun ist.

387 

388Andernfalls bedeutet eine Zeile, die `Denied by auto mode classifier` mit einem Grund wie `[Production Deploy]` oder `Blocked by classifier` lautet, dass der Klassifikator den Aufruf für unsicher befunden hat. Wählen Sie daher die Behebung basierend auf dem aus, was der Aufruf erreichen oder tun wollte:

387 389 

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

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

Details

114 Nachrichten, die während eines Zuges gesendet werden, werden nicht als Checkpoint erstellt114 Nachrichten, die während eines Zuges gesendet werden, werden nicht als Checkpoint erstellt

115</h3>115</h3>

116 116 

117Wenn eine Nachricht, die Sie [in die Warteschlange einreihen, während Claude arbeitet](/docs/de/interactive-mode#queue-messages-while-claude-works), Claude innerhalb des laufenden Turns erreicht, wird sie in diesen Turn integriert, anstatt einen neuen zu starten. Die Nachricht wird in der Konversation angezeigt, aber Claude Code erstellt keinen Checkpoint dafür. Eine in die Warteschlange eingereihte Nachricht, die Claude Code als Teil eines neuen Turns sendet, erhält wie gewohnt einen Checkpoint, einschließlich wenn mehrere in die Warteschlange eingereihte Nachrichten [diesen Turn teilen](/docs/de/interactive-mode#when-claude-code-sends-what-you-queued).117Im Rewind-Menü kann eine Nachricht, die Sie [eingegeben haben, während Claude noch arbeitete](/docs/de/interactive-mode#queue-messages-while-claude-works), mit **Keine Code-Wiederherstellung** markiert sein. Claude hat diese Nachricht gelesen, bevor sein Turn endete. [Checkpoints werden für Prompts erstellt, die einen Turn starten](#how-checkpoints-work), daher hat diese Nachricht keinen eigenen. Die Bearbeitungen, die Claude nach dem Lesen dieser Nachricht vorgenommen hat, werden dem Prompt zugerechnet, der den Turn gestartet hat.

118 118 

119Um die Bearbeitungen rückgängig zu machen, die Claude nach einer solchen Nachricht vorgenommen hat, spulen Sie zu dem Prompt zurück, der den Turn gestartet hat. Dies spult den gesamten Turn zurück, einschließlich der Arbeit, die Claude vor dem Eintreffen Ihrer Nachricht geleistet hat.119Für die Nachricht selbst müssen Sie nichts unternehmen. Um die Dateiänderungen aus diesem Teil der Sitzung rückgängig zu machen, wählen Sie den Prompt aus, der den Turn gestartet hat, und wählen Sie **Code wiederherstellen** oder **Code und Unterhaltung wiederherstellen**. Dadurch werden Claudes Dateibearbeitungen aus dem gesamten Turn rückgängig gemacht, einschließlich derjenigen, die vor dem Eintreffen Ihrer Nachricht vorgenommen wurden. Wenn Sie die markierte Nachricht auswählen, wird weiterhin **Unterhaltung wiederherstellen** angeboten, wodurch die Konversation bis zu dieser Nachricht zurückgespult wird und Ihre Dateien unverändert bleiben.

120 120 

121<h3 id="symlinked-and-hard-linked-paths-not-restored">121<h3 id="symlinked-and-hard-linked-paths-not-restored">

122 Symverlinkte und hart verlinkte Pfade werden nicht wiederhergestellt122 Symverlinkte und hart verlinkte Pfade werden nicht wiederhergestellt

chrome.md +3 −4

Details

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

130</h3>130</h3>

131 131 

132In einer VS Code-Sitzung hängt es davon ab, wie die Sitzung mit Ihrem Browser verbunden wurde, ob Claude Code vor einer Browser-Aktion bei Ihnen nachfragt:132Wenn Claude Code in einer VS Code-Sitzung vor einer Browser-Aktion bei Ihnen nachfragt, erscheint die Abfrage als Karte im Chat-Panel. Wenn die Aktion auf eine Website abzielt, die Sie nicht zugelassen haben, bietet die Karte außerdem an, diese Website zuzulassen.

133 133 

134* **Sie haben `@browser` eingegeben**: Die Erweiterung genehmigt jede Browser-Aktion, bei der Claude Code sonst bei Ihnen nachfragen würde.134In einer Sitzung, die sich beim Start mit Ihrem Browser verbunden hat, weil [Enabled by default](#enable-chrome-by-default) aktiviert ist, fragt Claude Code vor Browser-Aktionen auf einer Website, die Sie nicht zugelassen haben, in den Berechtigungsmodi Manual, Edit automatically, Auto und Bypass permissions bei Ihnen nach. In den Berechtigungsmodi Auto und Bypass permissions gilt dies, bis Sie in dieser Sitzung `@browser` eingeben.

135* **Die Einstellung [Enabled by default](#enable-chrome-by-default) hat sie beim Start verbunden**: Claude Code fragt vor Browser-Aktionen auf einer Website, die Sie nicht zugelassen haben, in den Berechtigungsmodi Manual, Edit automatically, Auto und Bypass permissions bei Ihnen nach, bis Sie in dieser Sitzung `@browser` eingeben.

136 135 

137<h3 id="browser-tools-in-plan-mode">136<h3 id="browser-tools-in-plan-mode">

138 Browser-Tools im Plan-Modus137 Browser-Tools im Plan-Modus

139</h3>138</h3>

140 139 

141Im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) wird eine Berechtigungsabfrage angezeigt, bevor Claude ein GIF aufzeichnet, einen neuen Tab öffnet oder eine Verknüpfung ausführt, außer in einer VS Code-Sitzung, in der Sie [`@browser`](#permission-prompts-in-vs-code-sessions) eingegeben haben. Wenn in einer interaktiven CLI-Sitzung der [Bypass-Berechtigungsmodus verfügbar ist](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) und das [Feature-Flag-Abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching) deaktiviert ist, werden diese Aufrufe ohne Abfrage ausgeführt.140Im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) wird eine Berechtigungsabfrage angezeigt, bevor Claude ein GIF aufzeichnet, einen neuen Tab öffnet oder eine Verknüpfung ausführt. Wenn in einer interaktiven CLI-Sitzung der [Bypass-Berechtigungsmodus verfügbar ist](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) und das [Feature-Flag-Abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching) deaktiviert ist, werden diese Aufrufe ohne Abfrage ausgeführt.

142 141 

143Ein `tabs_context_mcp`-Aufruf fordert auch eine Genehmigung an, wenn er `createIfEmpty` setzt, und ebenso ein `browser_batch`-Aufruf, der eine dieser Aktionen enthält.142Ein `tabs_context_mcp`-Aufruf fordert auch eine Genehmigung an, wenn er `createIfEmpty` setzt, und ebenso ein `browser_batch`-Aufruf, der eine dieser Aktionen enthält.

144 143 

Details

263 Entwickler verbinden263 Entwickler verbinden

264</h2>264</h2>

265 265 

266Entwickler verbinden sich von ihren eigenen Laptops mit einer Browser-Anmeldung, indem sie ihr Unternehmensarbeitskonto verwenden. Sie benötigen kein claude.ai-Konto, keinen API-Schlüssel und kein Abonnement, da Anfragen an das Modell über das Gateway mit den Upstream-Anmeldedaten der Organisation gehen. Die Verbindung wird durch die [clientseitigen verwalteten Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) gesteuert, die Sie über MDM pushen, daher gibt es keine manuelle Einrichtung auf der Entwicklerseite; dieser Abschnitt behandelt, was der Admin konfiguriert.266Entwickler verbinden sich von ihren eigenen Laptops mit einer Browser-Anmeldung, indem sie ihr Unternehmensarbeitskonto verwenden. Sie benötigen kein claude.ai-Konto, keinen API-Schlüssel und kein Abonnement, da Anfragen an das Modell über das Gateway mit den Upstream-Anmeldedaten der Organisation gehen. Die Verbindung wird durch die [clientseitigen verwalteten Einstellungen](/docs/de/claude-apps-gateway-config#client-side-managed-settings) gesteuert, die Sie über MDM pushen, und dieser Abschnitt behandelt, was der Admin konfiguriert.

267 267 

268Die CLI erstellt beim ersten Verbinden einen Fingerabdruck des TLS-Leaf-Zertifikats des Gateways und pinnt es pro Hostname. Sie überprüft diesen Pin erneut während der Anmeldung, bei stillen Sitzungsaktualisierungen und beim Abrufen verwalteter Einstellungen, während Inferenzanfragen die standardmäßige TLS-Validierung ohne Pin verwenden. Anfragen, die über einen HTTPS-Proxy weitergeleitet werden, überspringen die Pin-Überprüfung, daher fügen Sie den Gateway-Host zu `NO_PROXY` hinzu, um sie direkt zu halten.268Die CLI erstellt beim ersten Verbinden einen Fingerabdruck des TLS-Leaf-Zertifikats des Gateways und pinnt es pro Hostname. Sie überprüft diesen Pin erneut während der Anmeldung, bei stillen Sitzungsaktualisierungen und beim Abrufen verwalteter Einstellungen, während Inferenzanfragen die standardmäßige TLS-Validierung ohne Pin verwenden. Anfragen, die über einen HTTPS-Proxy weitergeleitet werden, überspringen die Pin-Überprüfung, daher fügen Sie den Gateway-Host zu `NO_PROXY` hinzu, um sie direkt zu halten.

269 269 


287 Gateway-URL festlegen287 Gateway-URL festlegen

288</h3>288</h3>

289 289 

290Drei Schlüssel gehen in die Pro-OS-[Datei mit verwalteten Einstellungen](/docs/de/managed-settings#delivery-mechanisms), die Sie über MDM oder direkt auf der Festplatte bereitstellen. `forceLoginMethod` und `forceLoginGatewayUrl` öffnen `/login` direkt auf dem **Cloud gateway**-Bildschirm mit der ausgefüllten URL, und `parentSettingsBehavior: "merge"` ermöglicht es Claude Desktop, die Egress-Allowlist des Gateways an die Claude Code-Sitzungen zu liefern, die es startet, wie in [Richtlinie an Claude Desktop-Sitzungen liefern](#deliver-policy-to-claude-desktop-sessions) erläutert:290Drei Schlüssel gehen in die Pro-OS-[Datei mit verwalteten Einstellungen](/docs/de/managed-settings#delivery-mechanisms), die Sie über MDM oder direkt auf der Festplatte bereitstellen. Für eine Maschine ohne verwaltete Einstellungen siehe stattdessen [Gateway-URL in den Benutzereinstellungen festlegen](#set-the-gateway-url-in-user-settings). `forceLoginMethod` und `forceLoginGatewayUrl` öffnen `/login` direkt auf dem **Cloud gateway**-Bildschirm mit der ausgefüllten URL, und `parentSettingsBehavior: "merge"` ermöglicht es Claude Desktop, die Egress-Allowlist des Gateways an die Claude Code-Sitzungen zu liefern, die es startet, wie in [Richtlinie an Claude Desktop-Sitzungen liefern](#deliver-policy-to-claude-desktop-sessions) erläutert:

291 291 

292```json theme={null}292```json theme={null}

293{293{


299 299 

300Der Entwickler drückt Enter, um sich zu verbinden. Die [Fingerabdruck-Abfrage beim ersten Verbinden](#connect-developers) wird immer noch angezeigt. Sobald die Datei auf einer Maschine vorhanden ist, sieht ein Entwickler, der die Gateway-Anmeldung nicht abgeschlossen hat, eine der unter [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschriebenen Meldungen. Entwickler, die einen Cloud-Anbieter über eine Umgebungsvariable wie `CLAUDE_CODE_USE_BEDROCK` auswählen, benötigen die Gateway-Anmeldung nicht.300Der Entwickler drückt Enter, um sich zu verbinden. Die [Fingerabdruck-Abfrage beim ersten Verbinden](#connect-developers) wird immer noch angezeigt. Sobald die Datei auf einer Maschine vorhanden ist, sieht ein Entwickler, der die Gateway-Anmeldung nicht abgeschlossen hat, eine der unter [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschriebenen Meldungen. Entwickler, die einen Cloud-Anbieter über eine Umgebungsvariable wie `CLAUDE_CODE_USE_BEDROCK` auswählen, benötigen die Gateway-Anmeldung nicht.

301 301 

302Ein Entwickler kann dies nicht manuell einrichten. Die Anmeldungsauswahl hat keine Gateway-Option, und `forceLoginGatewayUrl` wird in den eigenen Einstellungsdateien eines Entwicklers ignoriert. `forceLoginMethod` allein, ohne URL, lässt den Entwickler bei einer „Kontaktieren Sie Ihren IT-Administrator“-Nachricht. Die Anmeldeschlüssel gehören in die Datei, die Sie auf Maschinen pushen, nicht in den `managed.policies[].cli`-Block des Gateways, der nur bereits verbundene Clients erreicht.302Die Anmeldungsauswahl hat keine Gateway-Option, und in verwalteten Einstellungen lässt `forceLoginMethod` allein, ohne URL, den Entwickler bei einer „Kontaktieren Sie Ihren IT-Administrator“-Nachricht. Die Anmeldeschlüssel gehören in die Datei, die Sie auf Maschinen pushen, nicht in den `managed.policies[].cli`-Block des Gateways, der nur bereits verbundene Clients erreicht.

303 

304<h4 id="set-the-gateway-url-in-user-settings">

305 Gateway-URL in den Benutzereinstellungen festlegen

306</h4>

307 

308Auf Maschinen ohne verwaltete Einstellungen lassen Sie jeden Entwickler `forceLoginMethod` und `forceLoginGatewayUrl` zu seiner eigenen Benutzereinstellungsdatei `~/.claude/settings.json` hinzufügen. Dies erfordert Claude Code v2.1.295 oder später auf der Entwicklermaschine. Dieses Beispiel benennt ein Gateway unter `claude-gateway.internal.example.com`:

309 

310```json theme={null}

311{

312 "forceLoginMethod": "gateway",

313 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

314}

315```

316 

317Wenn der Entwickler `/login` in der Claude Code-Eingabeaufforderung ausführt, öffnet sich der **Cloud gateway**-Bildschirm mit dieser Adresse, und er drückt Enter, um sich zu verbinden. Die [Fingerabdruck-Abfrage beim ersten Verbinden](#connect-developers) wird immer noch angezeigt. Für auf diese Weise gesetzte Schlüssel gelten folgende Einschränkungen:

318 

319* **Nur Benutzereinstellungen**: Claude Code liest die beiden Schlüssel aus `~/.claude/settings.json`, nicht aus der `.claude/settings.json` oder `.claude/settings.local.json` eines Projekts.

320* **Verwaltete Einstellungen deaktivieren sie**: Sobald die Einstellungen eines Administrators die Maschine über eine Datei mit verwalteten Einstellungen, eine macOS-Plist oder Windows-HKLM-Richtlinie oder einen [Policy-Helper](/docs/de/settings-reference#policyhelper) erreichen, ignoriert Claude Code ein in den Benutzereinstellungen benanntes Gateway.

303 321 

304<h3 id="allow-a-gateway-on-public-address-space-you-own">322<h3 id="allow-a-gateway-on-public-address-space-you-own">

305 Ein Gateway auf öffentlichem Adressraum zulassen, den Sie besitzen323 Ein Gateway auf öffentlichem Adressraum zulassen, den Sie besitzen

Details

981 * **Gemischte Schlüssel**: Eine Datei, die sowohl `code` als auch `cli` oder dessen frühere Schreibweise `settings` enthält, stoppt das Gateway beim Start. Stellen Sie alle Blöcke unter einen Schlüssel, in einer einzigen Bearbeitung.981 * **Gemischte Schlüssel**: Eine Datei, die sowohl `code` als auch `cli` oder dessen frühere Schreibweise `settings` enthält, stoppt das Gateway beim Start. Stellen Sie alle Blöcke unter einen Schlüssel, in einer einzigen Bearbeitung.

982</Warning>982</Warning>

983 983 

984Die Claude-Code-Einstellungen einer Richtlinie, etwa eine Regel, die das Lesen von `.env`-Dateien verweigert, gehören in einen Block unter dem Schlüssel `cli` oder `code`. Beide Schlüssel nehmen denselben Inhalt auf. Der Schlüssel entscheidet, wo die Einstellungen durchgesetzt werden:984Die Claude-Code-Einstellungen einer Richtlinie, etwa eine Regel, die das Lesen von `.env`-Dateien verweigert, gehören in einen Block unter dem Schlüssel `cli` oder `code`. `code` ist der empfohlene Schlüssel, `cli` der Legacy-Schlüssel. Beide Schlüssel nehmen denselben Inhalt auf. Der Schlüssel bestimmt, wo die Einstellungen durchgesetzt werden:

985 985 

986* **`cli`**: das Terminal, die Erweiterungen für VS Code und JetBrains sowie das Agent SDK. Unter `cli` erhält der Code-Tab von Claude Desktop die [abgeleiteten Einstellungen](#claude-desktop-overlay), sodass eine eingeschränkte Regel wie `Read(./.env)` einen Benutzer dort nicht aufhält.986* **`cli`**: das Terminal, die Erweiterungen für VS Code und JetBrains sowie das Agent SDK. Unter `cli` erhält der Code-Tab von Claude Desktop die [abgeleiteten Einstellungen](#claude-desktop-overlay), sodass eine eingeschränkte Regel wie `Read(./.env)` einen Benutzer dort nicht aufhält.

987* **`code`**: dieselben Orte, und auch der Code-Tab von Claude Desktop kann abgedeckt werden.987* **`code`**: dieselben Orte, und auch der Code-Tab von Claude Desktop kann abgedeckt werden.

988 988 

989Die Entscheidung lautet, ob diese Einstellungen auch den Code-Tab abdecken sollen. Falls nicht, ändern Sie nichts. Eine Datei, die `cli` verwendet, funktioniert wie bisher, und ein Gateway, das `cli` in einer Richtlinie mit einem [`desktop`](#claude-desktop-overlay)-Schlüssel findet, warnt beim Start und startet trotzdem. Um den Code-Tab abzudecken, wechseln Sie zu `code`, dem empfohlenen Schlüssel.989Eine Datei, die `cli` verwendet, funktioniert wie bisher, und ein Gateway, das `cli` in einer Richtlinie mit einem [`desktop`](#claude-desktop-overlay)-Schlüssel findet, warnt beim Start und startet trotzdem. Wechseln Sie zu `code`, damit die Einstellungen auch den Code-Tab abdecken können.

990 990 

991Lesen Sie vor dem Wechsel [`code`-Einstellungen im Code-Tab anwenden](#apply-code-settings-in-the-code-tab). Die Richtlinie benötigt einen `desktop`-Schlüssel, und die Rechner der Benutzer müssen eingerichtet werden, bevor die Einstellungen dort gelten; außerdem wird die Websuche in Claude Desktop deaktiviert.991Lesen Sie vor dem Wechsel [`code`-Einstellungen im Code-Tab anwenden](#apply-code-settings-in-the-code-tab). Die Richtlinie benötigt einen `desktop`-Schlüssel, und die Rechner der Benutzer müssen eingerichtet werden, bevor die Einstellungen dort gelten; außerdem wird die Websuche in Claude Desktop deaktiviert.

992 992 


1713 1713 

1714Für Claude Desktop setzen Sie den `bootstrapUrl`-Schlüssel in Claude Desktop's eigene [verwaltete Konfiguration](https://claude.com/docs/third-party/claude-desktop/configuration) auf `<listen.public_url>/user/bootstrap`. Der Anmeldungsfluss und die Pro-Gruppen-Richtlinie entsprechen dann der CLI's, sobald eine Richtlinie sich serverseitig mit einem `desktop`-Schlüssel anmeldet; ohne die Anmeldung gibt `/user/bootstrap` 404 zurück. Siehe [Claude Desktop-Overlay](#claude-desktop-overlay) für die serverseitige Hälfte.1714Für Claude Desktop setzen Sie den `bootstrapUrl`-Schlüssel in Claude Desktop's eigene [verwaltete Konfiguration](https://claude.com/docs/third-party/claude-desktop/configuration) auf `<listen.public_url>/user/bootstrap`. Der Anmeldungsfluss und die Pro-Gruppen-Richtlinie entsprechen dann der CLI's, sobald eine Richtlinie sich serverseitig mit einem `desktop`-Schlüssel anmeldet; ohne die Anmeldung gibt `/user/bootstrap` 404 zurück. Siehe [Claude Desktop-Overlay](#claude-desktop-overlay) für die serverseitige Hälfte.

1715 1715 

1716Claude Code berücksichtigt [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/de/settings-reference#gatewayinternalnetworks) und den `"gateway"`-Wert von [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) nur von einer verwalteten Quelle auf dem Computer: `managed-settings.json`, das macOS-Plist oder die Windows HKLM-Registrierung, oder ein Richtlinien-Helper. Das Setzen dieser Schlüssel in der eigenen `~/.claude/settings.json` eines Entwicklers oder in der Gateway-Payload konfiguriert die Gateway-Anmeldung nicht.1716Claude Code berücksichtigt [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/de/settings-reference#gatewayinternalnetworks) und den `"gateway"`-Wert von [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) von einer verwalteten Quelle auf dem Computer: `managed-settings.json`, das macOS-Plist oder die Windows HKLM-Registrierung, oder ein Richtlinien-Helper. Das Setzen dieser Schlüssel in der Gateway-Payload konfiguriert die Gateway-Anmeldung nicht. Informationen zur eigenen `~/.claude/settings.json` eines Entwicklers finden Sie unter [Gateway-URL in Benutzereinstellungen festlegen](/docs/de/claude-apps-gateway#set-the-gateway-url-in-user-settings).

1717 1717 

1718Lassen Sie `forceLoginMethod` und `forceLoginOrgUUID` aus der Payload heraus. Claude Code liest beide Schlüssel für seine Überprüfung der Anmeldedaten beim Start weiterhin aus der Payload, sodass ein Entwickler, der von Anthropic ausgestellte Anmeldedaten auf dem Computer behält, auch nach der Anmeldung den unter [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschriebenen Abbruch beim Start erhält.1718Lassen Sie `forceLoginMethod` und `forceLoginOrgUUID` aus der Payload heraus. Claude Code liest beide Schlüssel für seine Überprüfung der Anmeldedaten beim Start weiterhin aus der Payload, sodass ein Entwickler, der von Anthropic ausgestellte Anmeldedaten auf dem Computer behält, auch nach der Anmeldung den unter [Administratorrichtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschriebenen Abbruch beim Start erhält.

1719 1719 

Details

135 Pushen Sie die Gateway-URL zu Entwicklermaschinen135 Pushen Sie die Gateway-URL zu Entwicklermaschinen

136</h3>136</h3>

137 137 

138Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod`, `forceLoginGatewayUrl` und `parentSettingsBehavior: "merge"` über verwaltete Einstellungen auf jede Entwicklermaschine, über MDM oder durch direktes Schreiben der pro-OS `managed-settings.json`. Ohne dies zeigt `/login` den Standard-Account-Picker ohne Gateway-Option.138Sobald das Gateway bedient wird, pushen Sie `forceLoginMethod`, `forceLoginGatewayUrl` und `parentSettingsBehavior: "merge"` über verwaltete Einstellungen auf jede Entwicklermaschine, über MDM oder durch direktes Schreiben der pro-OS `managed-settings.json`.

139 139 

140Sobald Sie die Schlüssel bereitstellen, stoppt Claude Code die Verwendung eines übrigen API-Schlüssels oder claude.ai-Anmeldung auf der Maschine, daher planen Sie den Push zusammen mit Ihren Anmeldeanweisungen. [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschreibt die Meldungen, die Entwickler sehen.140Sobald Sie die Schlüssel bereitstellen, stoppt Claude Code die Verwendung eines übrigen API-Schlüssels oder claude.ai-Anmeldung auf der Maschine, daher planen Sie den Push zusammen mit Ihren Anmeldeanweisungen. [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in) beschreibt die Meldungen, die Entwickler sehen.

141 141 

Details

277 277 

278Threads laufen im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), wenn das Modell des Threads dies unterstützt, sodass die meisten Tool-Aufrufe ohne Nachfrage ausgeführt werden. Wenn ein Thread Ihre Genehmigung benötigt, befindet sich die Aufforderung in diesem Thread und der Thread wartet, bis Sie dort antworten. Claude in der Projektkonversation zu sagen, dass er fortfahren soll, erreicht ihn nicht.278Threads laufen im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), wenn das Modell des Threads dies unterstützt, sodass die meisten Tool-Aufrufe ohne Nachfrage ausgeführt werden. Wenn ein Thread Ihre Genehmigung benötigt, befindet sich die Aufforderung in diesem Thread und der Thread wartet, bis Sie dort antworten. Claude in der Projektkonversation zu sagen, dass er fortfahren soll, erreicht ihn nicht.

279 279 

280Jede Genehmigung deckt diese Aufforderung oder den Rest dieses Threads ab, wenn Sie die breitere Option wählen. Um jeden Thread bestimmte Befehle ohne Nachfrage ausführen zu lassen, oder um einige zu blockieren, fügen Sie [Berechtigungsregeln](/docs/de/permissions) zur `.claude/settings.json` des Repositorys hinzu. Cloud-Threads wenden sie nur in einem Projekt mit einem Repository an; siehe [Was Threads aus Ihren Repositorys aufgreifen](#what-threads-pick-up-from-your-repositories). In einem Projekt mit mehreren Repositorys erreichen die Berechtigungsregeln eines Repositorys keinen Cloud-Thread, daher verlassen Sie sich auf Auto-Modus und auf die Genehmigungen, die Sie in jedem Thread geben.280Jede Genehmigung deckt diese Abfrage oder den Rest dieses Threads ab, wenn Sie die breitere Option wählen.

281 

282Um jeden Thread bestimmte Befehle ohne Nachfrage ausführen zu lassen, oder um einige zu blockieren, fügen Sie [Berechtigungsregeln](/docs/de/permissions) zur `.claude/settings.json` des Repositorys hinzu. Prüfen Sie, ob Cloud-Threads in Ihrem Projekt sie anwenden:

283 

284* **Ein Repository**: Cloud-Threads wenden die Regeln an. Siehe [Was Threads aus Ihren Repositorys aufgreifen](#what-threads-pick-up-from-your-repositories).

285* **Mehrere Repositorys, von Anthropic gehostete Umgebung**: Die Berechtigungsregeln keines Repositorys erreichen einen Cloud-Thread, daher verlassen Sie sich auf den Auto-Modus und auf die Genehmigungen, die Sie in jedem Thread geben.

286* **Mehrere Repositorys, selbst gehostete Umgebung**: siehe [welche Repository-Einstellungen gelten](/docs/de/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

281 287 

282<h3 id="run-a-thread-on-your-own-computer">288<h3 id="run-a-thread-on-your-own-computer">

283 Führen Sie einen Thread auf Ihrem eigenen Computer aus289 Führen Sie einen Thread auf Ihrem eigenen Computer aus


381 Was Threads aus Ihren Repositories aufgreifen387 Was Threads aus Ihren Repositories aufgreifen

382</h3>388</h3>

383 389 

384Jeder Cloud-Thread klont jedes Repository im Projekt und lädt `CLAUDE.md` und Skills aus allen. Berechtigungsregeln, Hooks und `env` kommen nur aus der `.claude/settings.json` in dem Verzeichnis, in dem der Thread startet: innerhalb des Repositorys, wenn das Projekt eines hat, und über den Klonen, wenn es mehrere hat, wo keine Datei eines Repositorys dafür gelesen wird.390Jeder Cloud-Thread klont jedes Repository im Projekt und lädt `CLAUDE.md` und Skills aus allen. Berechtigungsregeln, Hooks und `env` kommen nur aus der `.claude/settings.json` in dem Verzeichnis, in dem der Thread startet.

385 391 

386| In jedem Repository | Ein Repository | Mehrere Repositories |392| In jedem Repository | Ein Repository | Mehrere Repositories |

387| :- | :- | :- |393| :- | :- | :- |

388| `CLAUDE.md` | Geladen, wenn der Thread startet | Geladen aus jedem Repository, wenn der Thread startet |394| `CLAUDE.md` | Geladen, wenn der Thread startet | Geladen aus jedem Repository, wenn der Thread startet |

389| Skills, Agenten und Befehle unter `.claude/` | Geladen | Geladen aus jedem Repository |395| Skills, Agenten und Befehle unter `.claude/` | Geladen | Geladen aus jedem Repository |

390| Plugins, die in `.claude/settings.json` aktiviert sind | Nicht geladen. Fügen Sie das Plugin stattdessen in **Projekteinstellungen > Plugins** hinzu | Nicht geladen. Fügen Sie das Plugin stattdessen in **Projekteinstellungen > Plugins** hinzu |396| Plugins, die in `.claude/settings.json` aktiviert sind | Nicht geladen. Fügen Sie das Plugin stattdessen in **Projekteinstellungen > Plugins** hinzu | Nicht geladen. Fügen Sie das Plugin stattdessen in **Projekteinstellungen > Plugins** hinzu |

391| Berechtigungsregeln, Hooks und `env`, die in `.claude/settings.json` definiert sind | Gelten für den Thread, außer den `env`-Schlüsseln, die [keine Cloud-Sitzung berücksichtigt](/docs/de/cloud-environments#what-carries-over-from-your-setup) | Gelten nicht |397| Berechtigungsregeln, Hooks und `env`, die in `.claude/settings.json` definiert sind | Gelten für den Thread, außer den `env`-Schlüsseln, die [keine Cloud-Sitzung berücksichtigt](/docs/de/cloud-environments#what-carries-over-from-your-setup) | Gelten nicht in einer von Anthropic gehosteten Umgebung. Für eine selbst gehostete Umgebung siehe [welche Repository-Einstellungen gelten](/docs/de/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |

392 398 

393In einem Projekt mit mehreren Repositories ist jeder Klon an den Thread als [zusätzliches Verzeichnis](/docs/de/memory#load-from-additional-directories) mit aktiviertem `CLAUDE.md`-Laden angehängt, weshalb die `CLAUDE.md` und Skills jedes Repositorys beim Start geladen werden, obwohl der Thread über ihnen startet. Legen Sie in einem solchen Projekt stehende Regeln in Projektanweisungen fest und geben Sie Threads Umgebungsvariablen über die [Cloud-Umgebung](#choose-an-environment-for-threads).399Legen Sie in einem Projekt mit mehreren Repositories stehende Regeln in Projektanweisungen fest und geben Sie Threads Umgebungsvariablen über die [Cloud-Umgebung](#choose-an-environment-for-threads).

394 400 

395<h3 id="choose-an-environment-for-threads">401<h3 id="choose-an-environment-for-threads">

396 Wählen Sie eine Umgebung für Threads402 Wählen Sie eine Umgebung für Threads


406 412 

407Cloud-Threads haben nicht die Skills, MCP-Server, Plugins und Tools, die nur auf Ihrem Computer installiert sind. Ein Thread, den Claude auf Ihrem Computer über [Remote Control](/docs/de/remote-control) ausführt, verwendet das, was dort installiert ist. Um jedes dieser Elemente für Cloud-Threads verfügbar zu machen:413Cloud-Threads haben nicht die Skills, MCP-Server, Plugins und Tools, die nur auf Ihrem Computer installiert sind. Ein Thread, den Claude auf Ihrem Computer über [Remote Control](/docs/de/remote-control) ausführt, verwendet das, was dort installiert ist. Um jedes dieser Elemente für Cloud-Threads verfügbar zu machen:

408 414 

409* 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.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).

410* 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).

411* 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) 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.

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

Details

28| `claude auth logout` | Abmelden von Ihrem Anthropic-Konto | `claude auth logout` |28| `claude auth logout` | Abmelden von Ihrem Anthropic-Konto | `claude auth logout` |

29| `claude auth status` | Authentifizierungsstatus als JSON anzeigen. Verwenden Sie `--text` für benutzerfreundliche Ausgabe. Beendet mit Code 0, wenn angemeldet, 1, wenn nicht. Die JSON enthält ein `configDirectory` Feld, das das [Konfigurationsverzeichnis](/docs/de/claude-directory) benennt, das die CLI verwendet. Das Feld erfordert Claude Code v2.1.268 oder später. Das Feld `authMethod` im JSON hat einen der Werte `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` oder `third_party` | `claude auth status` |29| `claude auth status` | Authentifizierungsstatus als JSON anzeigen. Verwenden Sie `--text` für benutzerfreundliche Ausgabe. Beendet mit Code 0, wenn angemeldet, 1, wenn nicht. Die JSON enthält ein `configDirectory` Feld, das das [Konfigurationsverzeichnis](/docs/de/claude-directory) benennt, das die CLI verwendet. Das Feld erfordert Claude Code v2.1.268 oder später. Das Feld `authMethod` im JSON hat einen der Werte `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` oder `third_party` | `claude auth status` |

30| `claude agents` | Öffnen Sie die [Agent-Ansicht](/docs/de/agent-view), um parallele Hintergrundsitzungen zu überwachen und zu versenden. Verwenden Sie `--cwd <path>`, um nur Sitzungen anzuzeigen, die in diesem Verzeichnis gestartet wurden, oder `--json`, um aktive Sitzungen als JSON-Array zum Scripting auszugeben (`--json --all` schließt auch abgeschlossene Hintergrundsitzungen ein). Übergeben Sie `--permission-mode`, `--model`, `--effort` oder `--agent`, um [Standardwerte für versendete Sitzungen](/docs/de/agent-view#permission-mode-model-and-effort) festzulegen. Akzeptiert `--settings`, `--add-dir`, `--plugin-dir` und `--mcp-config` wie der oberste `claude`-Befehl. Das Öffnen der Agent-Ansicht erfordert ein interaktives Terminal | `claude agents --json` |30| `claude agents` | Öffnen Sie die [Agent-Ansicht](/docs/de/agent-view), um parallele Hintergrundsitzungen zu überwachen und zu versenden. Verwenden Sie `--cwd <path>`, um nur Sitzungen anzuzeigen, die in diesem Verzeichnis gestartet wurden, oder `--json`, um aktive Sitzungen als JSON-Array zum Scripting auszugeben (`--json --all` schließt auch abgeschlossene Hintergrundsitzungen ein). Übergeben Sie `--permission-mode`, `--model`, `--effort` oder `--agent`, um [Standardwerte für versendete Sitzungen](/docs/de/agent-view#permission-mode-model-and-effort) festzulegen. Akzeptiert `--settings`, `--add-dir`, `--plugin-dir` und `--mcp-config` wie der oberste `claude`-Befehl. Das Öffnen der Agent-Ansicht erfordert ein interaktives Terminal | `claude agents --json` |

31| `claude attach <id\|name>` | Verbinden Sie sich mit einer [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) in diesem Terminal. Die Übergabe eines Teils des Sitzungsnamens anstelle der ID erfordert Claude Code v2.1.290 oder später | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Verbinden Sie sich mit einer [Hintergrundsitzung](/docs/de/agent-view#manage-sessions-from-the-shell) in diesem Terminal. Die Übergabe eines Teils des Namens einer laufenden Sitzung anstelle der ID erfordert Claude Code v2.1.290 oder später | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Drucken Sie die integrierten [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) Klassifikatorregeln als JSON. Verwenden Sie `claude auto-mode config`, um Ihre effektive Konfiguration mit angewendeten Einstellungen anzuzeigen. `--label <prefix>` druckt nur die Regeln, deren Bezeichnung mit diesem Präfix beginnt, Groß- und Kleinschreibung wird nicht beachtet. Erfordert Claude Code v2.1.208 oder später | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Drucken Sie die integrierten [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) Klassifikatorregeln als JSON. Verwenden Sie `claude auto-mode config`, um Ihre effektive Konfiguration mit angewendeten Einstellungen anzuzeigen. `--label <prefix>` druckt nur die Regeln, deren Bezeichnung mit diesem Präfix beginnt, Groß- und Kleinschreibung wird nicht beachtet. Erfordert Claude Code v2.1.208 oder später | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Stellen Sie die Standard-[Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) Konfiguration wieder her, indem Sie den `autoMode` Abschnitt aus Ihrer Benutzereinstellungsdatei entfernen. Fordert zur Bestätigung auf, bevor geschrieben wird; übergeben Sie `-y`/`--yes`, um die Eingabeaufforderung zu überspringen. Regeln aus [verwalteten Einstellungen](/docs/de/server-managed-settings) oder dem `--settings` Flag gelten weiterhin. Erfordert Claude Code v2.1.212 oder später. Siehe [Überprüfen Sie die Standardwerte und Ihre effektive Konfiguration](/docs/de/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Stellen Sie die Standard-[Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) Konfiguration wieder her, indem Sie den `autoMode` Abschnitt aus Ihrer Benutzereinstellungsdatei entfernen. Fordert zur Bestätigung auf, bevor geschrieben wird; übergeben Sie `-y`/`--yes`, um die Eingabeaufforderung zu überspringen. Regeln aus [verwalteten Einstellungen](/docs/de/server-managed-settings) oder dem `--settings` Flag gelten weiterhin. Erfordert Claude Code v2.1.212 oder später. Siehe [Überprüfen Sie die Standardwerte und Ihre effektive Konfiguration](/docs/de/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Verfolgen Sie die Logdatei des Hintergrund-Sitzungs-[Supervisors](/docs/de/agent-view#the-supervisor-process), `~/.claude/daemon.log`, wobei neue Zeilen ausgegeben werden, sobald sie eintreffen, bis Sie `Ctrl+C` drücken | `claude daemon logs` |34| `claude daemon logs` | Verfolgen Sie die Logdatei des Hintergrund-Sitzungs-[Supervisors](/docs/de/agent-view#the-supervisor-process), `~/.claude/daemon.log`, wobei neue Zeilen ausgegeben werden, sobald sie eintreffen, bis Sie `Ctrl+C` drücken | `claude daemon logs` |


68| `--agent` | Geben Sie einen Agent für die aktuelle Sitzung an (überschreibt die `agent`-Einstellung) | `claude --agent my-custom-agent` |68| `--agent` | Geben Sie einen Agent für die aktuelle Sitzung an (überschreibt die `agent`-Einstellung) | `claude --agent my-custom-agent` |

69| `--agents` | Definieren Sie benutzerdefinierte Subagenten dynamisch über JSON. Akzeptiert die [für CLI-definierte Subagenten aufgelisteten Felder](/docs/de/sub-agents#choose-the-subagent-scope). Mit `--print` kann der Wert stattdessen der Pfad zu einer JSON-Datei sein, die das Objekt enthält; die Dateiform erfordert Claude Code v2.1.281 oder später. Claude Code validiert das JSON beim Start und beendet sich bei einem ungültigen Wert; siehe [`Invalid --agents configuration`](/docs/de/errors#invalid-agents-configuration) für die Meldung und für die Flags und Umgebungsvariablen, die die Validierung überspringen. Die Validierung erfordert Claude Code v2.1.242 oder später | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |69| `--agents` | Definieren Sie benutzerdefinierte Subagenten dynamisch über JSON. Akzeptiert die [für CLI-definierte Subagenten aufgelisteten Felder](/docs/de/sub-agents#choose-the-subagent-scope). Mit `--print` kann der Wert stattdessen der Pfad zu einer JSON-Datei sein, die das Objekt enthält; die Dateiform erfordert Claude Code v2.1.281 oder später. Claude Code validiert das JSON beim Start und beendet sich bei einem ungültigen Wert; siehe [`Invalid --agents configuration`](/docs/de/errors#invalid-agents-configuration) für die Meldung und für die Flags und Umgebungsvariablen, die die Validierung überspringen. Die Validierung erfordert Claude Code v2.1.242 oder später | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

70| `--allow-dangerously-skip-permissions` | Fügen Sie `bypassPermissions` zum `Shift+Tab`-Moduszyklus hinzu, ohne darin zu starten. Ermöglicht es Ihnen, in einem anderen Modus wie `plan` zu beginnen und später zu `bypassPermissions` zu wechseln. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |70| `--allow-dangerously-skip-permissions` | Fügen Sie `bypassPermissions` zum `Shift+Tab`-Moduszyklus hinzu, ohne darin zu starten. Ermöglicht es Ihnen, in einem anderen Modus wie `plan` zu beginnen und später zu `bypassPermissions` zu wechseln. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

71| `--allowedTools`, `--allowed-tools` | Tools, die ohne Berechtigungsaufforderung ausgeführt werden. Siehe [Berechtigungsregelsyntax](/docs/de/settings-reference#permission-rule-syntax) für Musterabgleich. Um einzuschränken, welche Tools verfügbar sind, verwenden Sie stattdessen `--tools`. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) hier benennen, aktiviert Claude Code die Sitzung auch | `"Bash(git log *)" "Bash(git diff *)" "Read"` |71| `--allowedTools`, `--allowed-tools` | Tools, die ohne Berechtigungsabfrage ausgeführt werden, mit Ausnahme von Lesevorgängen aus [Netzwerkpfaden](/docs/de/permissions#network-paths). Siehe [Berechtigungsregelsyntax](/docs/de/settings-reference#permission-rule-syntax) für Musterabgleich. Um einzuschränken, welche Tools verfügbar sind, verwenden Sie stattdessen `--tools`. Wenn Sie eines der [Task-Tracking-Tools](/docs/de/tools-reference#task-tool-availability) hier benennen, aktiviert Claude Code die Sitzung auch | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

72| `--append-subagent-system-prompt` | Hängen Sie benutzerdefinierten Text an das Ende des System-Prompts jedes [Subagenten](/docs/de/sub-agents) an, einschließlich verschachtelter Subagenten, mit Ausnahme eines [abgespaltenen Subagenten](/docs/de/sub-agents#fork-the-current-conversation), der den eigenen Prompt der Konversation wiederverwendet. Gilt nur im nicht-interaktiven Modus mit `-p`. Erfordert Claude Code v2.1.205 oder später | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |72| `--append-subagent-system-prompt` | Hängen Sie benutzerdefinierten Text an das Ende des System-Prompts jedes [Subagenten](/docs/de/sub-agents) an, einschließlich verschachtelter Subagenten, mit Ausnahme eines [abgespaltenen Subagenten](/docs/de/sub-agents#fork-the-current-conversation), der den eigenen Prompt der Konversation wiederverwendet. Gilt nur im nicht-interaktiven Modus mit `-p`. Erfordert Claude Code v2.1.205 oder später | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |

73| `--append-subagent-system-prompt-file` | Laden Sie Text aus einer Datei und hängen Sie ihn an [Subagenten](/docs/de/sub-agents)-System-Prompts an. Eine Alternative zu `--append-subagent-system-prompt` für Text, der zu lang ist, um ihn in der Befehlszeile zu übergeben. Die beiden Flags können nicht kombiniert werden. Gilt nur im nicht-interaktiven Modus mit `-p`. Erfordert Claude Code v2.1.261 oder später | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |73| `--append-subagent-system-prompt-file` | Laden Sie Text aus einer Datei und hängen Sie ihn an [Subagenten](/docs/de/sub-agents)-System-Prompts an. Eine Alternative zu `--append-subagent-system-prompt` für Text, der zu lang ist, um ihn in der Befehlszeile zu übergeben. Die beiden Flags können nicht kombiniert werden. Gilt nur im nicht-interaktiven Modus mit `-p`. Erfordert Claude Code v2.1.261 oder später | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |

74| `--append-system-prompt` | Hängen Sie benutzerdefinierten Text an das Ende des Standard-System-Prompts an | `claude --append-system-prompt "Always use TypeScript"` |74| `--append-system-prompt` | Hängen Sie benutzerdefinierten Text an das Ende des Standard-System-Prompts an | `claude --append-system-prompt "Always use TypeScript"` |


81| `--channels` | (Forschungsvorschau) MCP-Server, deren [Kanal](/docs/de/channels)-Benachrichtigungen Claude in dieser Sitzung abhören sollte. Durch Leerzeichen getrennte Liste von `plugin:<name>@<marketplace>`-Einträgen. Erfordert Anthropic-Authentifizierung über claude.ai oder einen Console-API-Schlüssel | `claude --channels plugin:my-notifier@my-marketplace` |81| `--channels` | (Forschungsvorschau) MCP-Server, deren [Kanal](/docs/de/channels)-Benachrichtigungen Claude in dieser Sitzung abhören sollte. Durch Leerzeichen getrennte Liste von `plugin:<name>@<marketplace>`-Einträgen. Erfordert Anthropic-Authentifizierung über claude.ai oder einen Console-API-Schlüssel | `claude --channels plugin:my-notifier@my-marketplace` |

82| `--chrome` | Aktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für Web-Automatisierung und Tests | `claude --chrome` |82| `--chrome` | Aktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für Web-Automatisierung und Tests | `claude --chrome` |

83| `--cloud` | Mit einer Task-Beschreibung erstellen Sie eine neue [Cloud-Sitzung](/docs/de/claude-code-on-the-web). Mit einer Sitzungs-ID (`session_...` oder `cse_...`) oder einer claude.ai/code-URL, reihen Sie stattdessen eine Nachricht in diese bestehende Sitzung ein, mit `-p`. Siehe [Senden Sie eine Folgenachricht](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |83| `--cloud` | Mit einer Task-Beschreibung erstellen Sie eine neue [Cloud-Sitzung](/docs/de/claude-code-on-the-web). Mit einer Sitzungs-ID (`session_...` oder `cse_...`) oder einer claude.ai/code-URL, reihen Sie stattdessen eine Nachricht in diese bestehende Sitzung ein, mit `-p`. Siehe [Senden Sie eine Folgenachricht](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |

84| `--continue`, `-c` | Laden Sie die neueste Konversation im aktuellen Verzeichnis, einschließlich einer [Hintergrund-Sitzung, die beendet wurde](/docs/de/sessions#resume-a-session); das Öffnen beendeter Hintergrund-Sitzungen erfordert Claude Code v2.1.257 oder später. Überspringt Sitzungen, die mit `claude -p` oder dem Agent SDK erstellt wurden, und Sitzungen, deren erster Prompt `/loop` war. `claude -p --continue` umfasst `-p`-, SDK- und `/loop`-Sitzungen. Umfasst Sitzungen, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben | `claude --continue` |84| `--continue`, `-c` | Laden Sie die neueste Konversation im aktuellen Verzeichnis, einschließlich einer [Hintergrund-Sitzung, die beendet wurde](/docs/de/sessions#where-the-session-picker-looks); das Öffnen beendeter Hintergrund-Sitzungen erfordert Claude Code v2.1.257 oder später. Überspringt Sitzungen, die mit `claude -p` oder dem Agent SDK erstellt wurden, und Sitzungen, deren erster Prompt `/loop` war. `claude -p --continue` umfasst `-p`-, SDK- und `/loop`-Sitzungen. Umfasst Sitzungen, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben | `claude --continue` |

85| `--dangerously-load-development-channels` | Aktivieren Sie [Channels](/docs/de/channels-reference#test-during-the-research-preview), die sich nicht auf der genehmigten Allowlist befinden, für die lokale Entwicklung. Akzeptiert `plugin:<name>@<marketplace>`- und `server:<name>`-Einträge. Fragt nach einer Bestätigung und wirkt daher in interaktiven Sitzungen. Mit `-p` ignoriert Claude Code das Flag | `claude --dangerously-load-development-channels server:webhook` |85| `--dangerously-load-development-channels` | Aktivieren Sie [Channels](/docs/de/channels-reference#test-during-the-research-preview), die sich nicht auf der genehmigten Allowlist befinden, für die lokale Entwicklung. Akzeptiert `plugin:<name>@<marketplace>`- und `server:<name>`-Einträge. Fragt nach einer Bestätigung und wirkt daher in interaktiven Sitzungen. Mit `-p` ignoriert Claude Code das Flag | `claude --dangerously-load-development-channels server:webhook` |

86| `--dangerously-skip-permissions` | Überspringen Sie Berechtigungsaufforderungen. Entspricht `--permission-mode bypassPermissions`. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) für das, was dies überspringt und nicht überspringt. Für Sitzungen, die mit `--bg` gestartet wurden, [bleibt der Modus bestehen, wenn der Supervisor die Sitzung neu startet](/docs/de/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |86| `--dangerously-skip-permissions` | Überspringen Sie Berechtigungsaufforderungen. Entspricht `--permission-mode bypassPermissions`. Siehe [Berechtigungsmodi](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) für das, was dies überspringt und nicht überspringt. Für Sitzungen, die mit `--bg` gestartet wurden, [bleibt der Modus bestehen, wenn der Supervisor die Sitzung neu startet](/docs/de/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

87| `--debug` | Aktivieren Sie den Debug-Modus mit optionaler Kategoriefilterung, wie z. B. `--debug='mcp,startup'` oder `--debug='!1p'`. Der Filter bindet nur in der `=`-Form; ein durch Leerzeichen getrennter Filter aktiviert den Debug-Modus ohne Filterung | `claude --debug='mcp,startup'` |87| `--debug` | Aktivieren Sie den Debug-Modus mit optionaler Kategoriefilterung, wie z. B. `--debug='mcp,startup'` oder `--debug='!1p'`. Der Filter bindet nur in der `=`-Form; ein durch Leerzeichen getrennter Filter aktiviert den Debug-Modus ohne Filterung | `claude --debug='mcp,startup'` |


108| `--maintenance` | Führen Sie [Setup-Hooks](/docs/de/hooks#setup) mit dem `maintenance`-Matcher vor der Sitzung aus (nur Print-Modus) | `claude -p --maintenance "query"` |108| `--maintenance` | Führen Sie [Setup-Hooks](/docs/de/hooks#setup) mit dem `maintenance`-Matcher vor der Sitzung aus (nur Print-Modus) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | Stoppt den Lauf, sobald die geschätzten Ausgaben für API-Aufrufe diesen Betrag erreichen (nur Print-Modus). Claude Code prüft die Obergrenze anhand seiner [clientseitigen Kostenschätzung](/docs/de/agent-sdk/cost-tracking#estimates-not-billing), die von Ihrer Rechnung abweichen kann. Ausgaben von [Subagenten](/docs/de/sub-agents) zählen zur Obergrenze. Die Ausgaben können die Obergrenze überschreiten, [planen Sie daher Spielraum ein](/docs/de/agent-sdk/agent-loop#budget-headroom). Wenn Sie mit `--continue` oder `--resume` zu einer Konversation zurückkehren, zählen [aus früheren Läufen wiederhergestellte](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) Gesamtsummen nicht zur Obergrenze. Sobald die Ausgaben die Obergrenze erreichen, schlägt das Spawnen eines weiteren Subagenten mit `Budget limit reached` fehl, und Claude Code stoppt Hintergrund-Subagenten, die noch laufen; die Obergrenzendurchsetzungsverhalten erfordern Claude Code v2.1.217 oder später | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | Stoppt den Lauf, sobald die geschätzten Ausgaben für API-Aufrufe diesen Betrag erreichen (nur Print-Modus). Claude Code prüft die Obergrenze anhand seiner [clientseitigen Kostenschätzung](/docs/de/agent-sdk/cost-tracking#estimates-not-billing), die von Ihrer Rechnung abweichen kann. Ausgaben von [Subagenten](/docs/de/sub-agents) zählen zur Obergrenze. Die Ausgaben können die Obergrenze überschreiten, [planen Sie daher Spielraum ein](/docs/de/agent-sdk/agent-loop#budget-headroom). Wenn Sie mit `--continue` oder `--resume` zu einer Konversation zurückkehren, zählen [aus früheren Läufen wiederhergestellte](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) Gesamtsummen nicht zur Obergrenze. Sobald die Ausgaben die Obergrenze erreichen, schlägt das Spawnen eines weiteren Subagenten mit `Budget limit reached` fehl, und Claude Code stoppt Hintergrund-Subagenten, die noch laufen; die Obergrenzendurchsetzungsverhalten erfordern Claude Code v2.1.217 oder später | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | Begrenzen Sie die Anzahl der agentengesteuerten Turns (nur Print-Modus). Beendet sich mit einem Fehler, wenn die Grenze erreicht wird. Standardmäßig keine Grenze. Mit `--input-format stream-json` bleibt eine Nachricht, die noch in die Warteschlange eingereiht ist, wenn die Grenze einen Turn beendet, in der Warteschlange und startet einen neuen Turn mit seiner eigenen Grenze | `claude -p --max-turns 3 "query"` |110| `--max-turns` | Begrenzen Sie die Anzahl der agentengesteuerten Turns (nur Print-Modus). Beendet sich mit einem Fehler, wenn die Grenze erreicht wird. Standardmäßig keine Grenze. Mit `--input-format stream-json` bleibt eine Nachricht, die noch in die Warteschlange eingereiht ist, wenn die Grenze einen Turn beendet, in der Warteschlange und startet einen neuen Turn mit seiner eigenen Grenze | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | Laden Sie MCP-Server aus JSON-Dateien oder Strings (durch Leerzeichen getrennt). Wenn Sie diesen Flag mit `-p` übergeben, wartet Claude Code darauf, dass noch ausstehende Server verbunden werden, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars)-Startup-Timeout, standardmäßig 30 Sekunden; ein Server mit einer [zwischengespeicherten Tool-Liste](/docs/de/mcp#managing-your-servers) überspringt das Warten und verbindet sich bei der ersten Verwendung. Das Warten erfordert Claude Code v2.1.221 oder später | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | Laden Sie MCP-Server aus JSON-Dateien oder Strings (durch Leerzeichen getrennt). Wenn Sie diesen Flag mit `-p` übergeben, wartet Claude Code darauf, dass noch ausstehende Server verbunden werden, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars)-Startup-Timeout, standardmäßig 30 Sekunden; ein Server mit einer [zwischengespeicherten Tool-Liste](/docs/de/mcp#managing-your-servers) überspringt das Warten und verbindet sich bei der ersten Verwendung. In einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments-configuration#connection-timing) gilt stattdessen eine kürzere Wartezeit. Das Warten erfordert Claude Code v2.1.221 oder später | `claude --mcp-config ./mcp.json` |

112| `--model` | Legt das Modell für die aktuelle Sitzung mit einem [Modellalias](/docs/de/model-config#model-aliases) wie `sonnet`, `opus`, `haiku` oder `fable` oder einem vollständigen Modellnamen fest. Überschreibt die [`model`](/docs/de/settings-reference#model)-Einstellung und [`ANTHROPIC_MODEL`](/docs/de/model-config#environment-variables) | `claude --model claude-sonnet-5` |112| `--model` | Legt das Modell für die aktuelle Sitzung mit einem [Modellalias](/docs/de/model-config#model-aliases) wie `sonnet`, `opus`, `haiku` oder `fable` oder einem vollständigen Modellnamen fest. Überschreibt die [`model`](/docs/de/settings-reference#model)-Einstellung und [`ANTHROPIC_MODEL`](/docs/de/model-config#environment-variables) | `claude --model claude-sonnet-5` |

113| `--name`, `-n` | Legen Sie einen Anzeigenamen für die Sitzung fest, der in `/resume` und der Terminalleiste angezeigt wird. Sie können eine benannte Sitzung mit `claude --resume <name>` fortsetzen. In einer interaktiven Sitzung, wenn eine andere Live-Sitzung auf dieser Maschine bereits den Namen verwendet, wendet Claude Code [eine Variante davon](/docs/de/sessions#name-your-sessions) an. <br /><br />[`/rename`](/docs/de/commands) ändert den Namen während der Sitzung und zeigt ihn auch in der Eingabeaufforderungsleiste an | `claude -n "my-feature-work"` |113| `--name`, `-n` | Legen Sie einen Anzeigenamen für die Sitzung fest, der in `/resume` und der Terminalleiste angezeigt wird. Sie können eine benannte Sitzung mit `claude --resume <name>` fortsetzen. <br /><br />[`/rename`](/docs/de/commands) ändert den Namen während der Sitzung und zeigt ihn auch in der Eingabeleiste an | `claude -n "my-feature-work"` |

114| `--no-chrome` | Deaktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für diese Sitzung | `claude --no-chrome` |114| `--no-chrome` | Deaktivieren Sie [Chrome-Browser-Integration](/docs/de/chrome) für diese Sitzung | `claude --no-chrome` |

115| `--no-session-persistence` | Deaktivieren Sie die Sitzungspersistenz, sodass Sitzungen nicht auf der Festplatte gespeichert werden und nicht fortgesetzt werden können. Nur Print-Modus. Die [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/de/env-vars)-Umgebungsvariable macht das Gleiche in jedem Modus | `claude -p --no-session-persistence "query"` |115| `--no-session-persistence` | Deaktivieren Sie die Sitzungspersistenz, sodass Sitzungen nicht auf der Festplatte gespeichert werden und nicht fortgesetzt werden können. Nur Print-Modus. Die [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/de/env-vars)-Umgebungsvariable macht das Gleiche in jedem Modus | `claude -p --no-session-persistence "query"` |

116| `--output-format` | Geben Sie das Ausgabeformat für den Print-Modus an (Optionen: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |116| `--output-format` | Geben Sie das Ausgabeformat für den Print-Modus an (Optionen: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

Details

314| Plugins und Marketplaces, die in der `.claude/settings.json` Ihres Repos deklariert sind | Nein | Eine Cloud-Sitzung installiert nicht die Plugins, die ein Repository unter [`enabledPlugins`](/docs/de/settings-reference#enabledplugins) aktiviert, einschließlich solcher aus den Marketplaces, die es unter [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) auflistet |314| Plugins und Marketplaces, die in der `.claude/settings.json` Ihres Repos deklariert sind | Nein | Eine Cloud-Sitzung installiert nicht die Plugins, die ein Repository unter [`enabledPlugins`](/docs/de/settings-reference#enabledplugins) aktiviert, einschließlich solcher aus den Marketplaces, die es unter [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) auflistet |

315| Die [Server-verwalteten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation | Ja, außer in [Claude Tag](https://claude.com/docs/claude-tag/overview)-Sitzungen | Abgerufen von Anthropic-Servern, wenn die Sitzung startet. Siehe [Surface coverage](/docs/de/model-config#surface-coverage) für die Durchsetzung von `availableModels` in Cloud-Sitzungen. Einstellungen, die auf Ihrem Gerät über MDM oder verwaltete Einstellungsdateien bereitgestellt werden, gelten nicht, da die Sitzung auf einer von Anthropic verwalteten VM läuft; in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) lesen Sitzungen auch die verwaltete Einstellungsdatei im Runner-Image, gemäß [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) |315| Die [Server-verwalteten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation | Ja, außer in [Claude Tag](https://claude.com/docs/claude-tag/overview)-Sitzungen | Abgerufen von Anthropic-Servern, wenn die Sitzung startet. Siehe [Surface coverage](/docs/de/model-config#surface-coverage) für die Durchsetzung von `availableModels` in Cloud-Sitzungen. Einstellungen, die auf Ihrem Gerät über MDM oder verwaltete Einstellungsdateien bereitgestellt werden, gelten nicht, da die Sitzung auf einer von Anthropic verwalteten VM läuft; in einer [selbstgehosteten Umgebung](/docs/de/self-hosted-environments) lesen Sitzungen auch die verwaltete Einstellungsdatei im Runner-Image, gemäß [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources) |

316| Ihre Benutzer `~/.claude/CLAUDE.md` | Nein | Lebt auf Ihrem Computer, nicht im Repo. Siehe [Persönliche Präferenzen hinzufügen, ohne sie in das Repo zu committen](#add-personal-preferences-without-committing-to-the-repo) |316| Ihre Benutzer `~/.claude/CLAUDE.md` | Nein | Lebt auf Ihrem Computer, nicht im Repo. Siehe [Persönliche Präferenzen hinzufügen, ohne sie in das Repo zu committen](#add-personal-preferences-without-committing-to-the-repo) |

317| Ihre Benutzer `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | Nein | Leben auf Ihrem Computer, nicht im Repo. Committen Sie sie stattdessen in das Verzeichnis `.claude/` des Repos. Cloud-Sitzungen laden automatisch Skills, die Sie auf claude.ai aktivieren |317| Ihre Benutzer `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | Nein | Leben auf Ihrem Computer, nicht im Repo. Committen Sie sie stattdessen in das Verzeichnis `.claude/` des Repos. Cloud-Sitzungen laden automatisch [Skills, die Sie auf claude.ai aktivieren](/docs/de/skills#skills-in-cowork-and-cloud-sessions) |

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

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 |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 |

code-review.md +4 −4

Details

269| Bereich | Was es zeigt |269| Bereich | Was es zeigt |

270| :- | :- |270| :- | :- |

271| PRs reviewed | Tägliche Anzahl der überprüften Pull Requests über den ausgewählten Zeitraum |271| PRs reviewed | Tägliche Anzahl der überprüften Pull Requests über den ausgewählten Zeitraum |

272| Cost weekly | Wöchentliche Ausgaben für Code Review |272| Code Review cost | Bisherige Ausgaben für Code Review in diesem Monat |

273| Feedback | Anzahl der Review-Kommentare, die automatisch aufgelöst wurden, weil ein Entwickler das Problem behoben hat |273| Feedback | Anzahl der Review-Kommentare, die automatisch aufgelöst wurden, weil ein Entwickler das Problem behoben hat |

274| Repository breakdown | Pro-Repo-Anzahl der überprüften PRs und aufgelösten Kommentare |274| Repository breakdown | Anzahl der überprüften PRs, aufgelösten Kommentare und Review-Durchläufe pro Repository, mit geschätzten Kosten und einer Ansicht pro PR |

275 275 

276Dashboard-Kostenzahlen sind Schätzungen zur Überwachung der Aktivität. Für rechnungsgenaue Ausgaben beziehen Sie sich auf Ihre Anthropic-Rechnung.276Die Karte „Code Review cost“ zeigt nur dann einen Betrag an, wenn der aktuelle Monat ausgewählt ist. Kostenangaben in den Analysen können von Ihrer Rechnung abweichen. Die Kosten in „Repository breakdown“ werden zum Listenpreis geschätzt, vor Abzug von Rabatten oder Guthaben, und umfassen nur Reviews, die Claude in einem Pull Request veröffentlicht hat. Für rechnungsgenaue Ausgaben beziehen Sie sich auf Ihre Anthropic-Rechnung.

277 277 

278<h2 id="pricing">278<h2 id="pricing">

279 Preisgestaltung279 Preisgestaltung


291 291 

292Kosten erscheinen auf Ihrer Anthropic-Rechnung, unabhängig davon, ob Ihre Organisation Amazon Bedrock oder Google Cloud's Agent Platform für andere Claude Code-Funktionen verwendet. Um eine monatliche Ausgabenbegrenzung für Code Review festzulegen, gehen Sie zu [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) und konfigurieren Sie das Limit für den Claude Code Review-Service.292Kosten erscheinen auf Ihrer Anthropic-Rechnung, unabhängig davon, ob Ihre Organisation Amazon Bedrock oder Google Cloud's Agent Platform für andere Claude Code-Funktionen verwendet. Um eine monatliche Ausgabenbegrenzung für Code Review festzulegen, gehen Sie zu [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) und konfigurieren Sie das Limit für den Claude Code Review-Service.

293 293 

294Überwachen Sie die Ausgaben über das wöchentliche Kostendiagramm in [analytics](#view-usage) oder die durchschnittliche Kostenspalte pro Repository in den Admin-Einstellungen.294Um die Ausgaben zu überwachen, verwenden Sie das [Analytics-Dashboard](#view-usage).

295 295 

296<h2 id="troubleshooting">296<h2 id="troubleshooting">

297 Fehlerbehebung297 Fehlerbehebung

commands.md +2 −2

Details

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 |

80| `/copy [N]` | Kopiert die letzte Antwort des Assistenten in die Zwischenablage. Übergeben Sie eine Zahl `N`, um die N-letzte Antwort zu kopieren: `/copy 2` kopiert die vorletzte. Wenn Codeblöcke vorhanden sind, wird eine interaktive Auswahl angezeigt, um einzelne Blöcke oder die vollständige Antwort auszuwählen. Drücken Sie in der Auswahl `w`, um die Auswahl statt in die Zwischenablage in eine Datei zu schreiben, was über SSH nützlich ist |80| `/copy [N]` | Kopiert die letzte Antwort des Assistenten in die Zwischenablage. Übergeben Sie eine Zahl `N`, um die N-letzte Antwort zu kopieren: `/copy 2` kopiert die vorletzte. Wenn Codeblöcke oder Blockzitate vorhanden sind, wird eine interaktive Auswahl angezeigt, um einzelne Blöcke oder die vollständige Antwort auszuwählen. Drücken Sie in der Auswahl `w`, um die Auswahl statt in die Zwischenablage in eine Datei zu schreiben, was über SSH nützlich ist |

81| `/cost` | Alias für `/usage` |81| `/cost` | Alias für `/usage` |

82| `/dataviz [request]` | **[Skill](/docs/de/skills#bundled-skills).** Gestaltungsleitlinien für Diagramme, Graphen und Dashboards. Claude wählt die Diagrammform für die Daten, weist Farben nach Rolle zu, prüft die Palette mit einem mitgelieferten Skript auf Eignung für Farbenblinde und auf Kontrast und wendet Regeln für Markierungen, Interaktion und Barrierefreiheit an. Verwendet eine markenneutrale Platzhalterpalette, die Sie durch Ihre eigene ersetzen |82| `/dataviz [request]` | **[Skill](/docs/de/skills#bundled-skills).** Gestaltungsleitlinien für Diagramme, Graphen und Dashboards. Claude wählt die Diagrammform für die Daten, weist Farben nach Rolle zu, prüft die Palette mit einem mitgelieferten Skript auf Eignung für Farbenblinde und auf Kontrast und wendet Regeln für Markierungen, Interaktion und Barrierefreiheit an. Verwendet eine markenneutrale Platzhalterpalette, die Sie durch Ihre eigene ersetzen |

83| `/debug [description]` | **[Skill](/docs/de/skills#bundled-skills).** Aktiviert Debug-Logging für die aktuelle Sitzung und behebt Probleme durch Lesen des Debug-Logs der Sitzung. Debug-Logging ist standardmäßig deaktiviert, sofern Sie nicht mit `claude --debug` gestartet haben; wenn Sie `/debug` mitten in der Sitzung ausführen, werden Logs also ab diesem Zeitpunkt erfasst. Beschreiben Sie optional das Problem, um die Analyse zu fokussieren |83| `/debug [description]` | **[Skill](/docs/de/skills#bundled-skills).** Aktiviert Debug-Logging für die aktuelle Sitzung und behebt Probleme durch Lesen des Debug-Logs der Sitzung. Debug-Logging ist standardmäßig deaktiviert, sofern Sie nicht mit `claude --debug` gestartet haben; wenn Sie `/debug` mitten in der Sitzung ausführen, werden Logs also ab diesem Zeitpunkt erfasst. Beschreiben Sie optional das Problem, um die Analyse zu fokussieren |


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; vor v2.1.206 wurde `Unknown command: /remote-control` gemeldet. 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. Wenn eine andere aktive Sitzung auf diesem Rechner bereits einen Namen verwendet, den Sie übergeben, wendet Claude Code stattdessen [eine Variante davon](/docs/de/sessions#name-your-sessions) an |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 |

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

8 8 

9Einige Organisationen erfordern, dass jeder Prozess auf einer Workstation durch einen obligatorischen Launcher gestartet wird. Der Launcher wendet die Sandbox, Netzwerkkontrollen oder Credential-Injection an, auf die die Sicherheitsposition des Unternehmens angewiesen ist, und eine Binärdatei, die ohne diese startet, ist ein Verstoß gegen die Richtlinie.9Einige Organisationen erfordern, dass jeder Prozess auf einer Workstation durch einen obligatorischen Launcher gestartet wird. Der Launcher wendet die Sandbox, Netzwerkkontrollen oder Credential-Injection an, auf die die Sicherheitsposition des Unternehmens angewiesen ist, und eine Binärdatei, die ohne diese startet, ist ein Verstoß gegen die Richtlinie.

10 10 

11`CLAUDE_CODE_PROCESS_WRAPPER` startet jeden Prozess, den Claude Code von seiner eigenen Binärdatei aus startet, durch Ihren Launcher: den Hintergrunddienst, jede Sitzung, die er in [Agent View](/docs/de/agent-view) hostet, und Claude Codes Neustarts nach einem Update. Setzen Sie es auf den absoluten Pfad Ihres Launchers, und Claude Code führt den Launcher mit dem Claude-Code-Befehl als seine Argumente aus.11`CLAUDE_CODE_PROCESS_WRAPPER` startet jeden Prozess, den Claude Code von seiner eigenen Binärdatei aus startet, durch Ihren Launcher: den [Hintergrunddienst](/docs/de/agent-view#the-supervisor-process), jede Sitzung, die er in [Agent View](/docs/de/agent-view) hostet, und Claude Codes Neustarts nach einem Update. Setzen Sie es auf den absoluten Pfad Ihres Launchers, und Claude Code führt den Launcher mit dem Claude-Code-Befehl als seine Argumente aus.

12 12 

13Ein Launcher, der den `claude`-Befehl auf Ihrem `PATH` umhüllt, kann diese Prozesse nicht erreichen, da sie vom direkten Pfad der Binärdatei aus starten, ohne `claude` nachzuschlagen.13Ein Launcher, der den `claude`-Befehl auf Ihrem `PATH` umhüllt, kann diese Prozesse nicht erreichen, da sie vom direkten Pfad der Binärdatei aus starten, ohne `claude` nachzuschlagen.

14 14 


39 39 

40Die folgenden Prozesse starten nicht durch den Launcher:40Die folgenden Prozesse starten nicht durch den Launcher:

41 41 

42* Ein [installierter Hintergrunddienst](/docs/de/agent-view#the-supervisor-process), dessen Unit vor der Launcher-Konfiguration geschrieben wurde: `launchd` oder `systemd` startet diesen Prozess aus seiner Unit-Datei. `/status` und `claude daemon status` warnen, wenn der laufende Dienst und der konfigurierte Launcher nicht übereinstimmen, und die Sitzungen, die der Dienst startet, starten immer noch durch den Launcher, sobald der Dienst mit der Variable in seinen Einstellungen neu startet.

43* Eine Sitzung, die Sie selbst in einem Terminal starten, die so ausgeführt wird, wie Sie sie aufgerufen haben. Um diese Sitzungen abzudecken, legen Sie ein Skript namens `claude` in ein Verzeichnis früher auf `PATH`, das Ihren Launcher mit der echten Binärdatei ausführt; ersetzen Sie nicht den verwalteten Symlink. Der Hintergrunddienst und seine Sitzungen starten ohne `PATH`-Lookup, daher stapeln sich die beiden Launcher dort nicht.42* Eine Sitzung, die Sie selbst in einem Terminal starten, die so ausgeführt wird, wie Sie sie aufgerufen haben. Um diese Sitzungen abzudecken, legen Sie ein Skript namens `claude` in ein Verzeichnis früher auf `PATH`, das Ihren Launcher mit der echten Binärdatei ausführt; ersetzen Sie nicht den verwalteten Symlink. Der Hintergrunddienst und seine Sitzungen starten ohne `PATH`-Lookup, daher stapeln sich die beiden Launcher dort nicht.

44* Der erste Prozess eines `claude-cli://` Deep Links, den der Protokoll-Handler des Betriebssystems direkt startet. Alles, das diese Sitzung danach im Hintergrund startet, läuft durch den Launcher. Um diesen Pfad vollständig zu schließen, [verhindern Sie die Handler-Registrierung](/docs/de/deep-links#registration-and-supported-platforms) mit der Einstellung `disableDeepLinkRegistration`.43* Der erste Prozess eines `claude-cli://` Deep Links, den der Protokoll-Handler des Betriebssystems direkt startet. Alles, das diese Sitzung danach im Hintergrund startet, läuft durch den Launcher. Um diesen Pfad vollständig zu schließen, [verhindern Sie die Handler-Registrierung](/docs/de/deep-links#registration-and-supported-platforms) mit der Einstellung `disableDeepLinkRegistration`.

45* Der Neustart, den `--worktree` kombiniert mit `--tmux` durchführt: Der Terminal-Multiplexer startet diesen Pane, nicht die Binärdatei von Claude Code.44* Der Neustart, den `--worktree` kombiniert mit `--tmux` durchführt: Der Terminal-Multiplexer startet diesen Pane, nicht die Binärdatei von Claude Code.


100 99 

101 Da `processWrapper` eine benannte Einstellung ist, sieht eine Organisation, die sie über [remote verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) bereitstellt, sie auf dem [Sicherheitsgenehmigungsdialog](/docs/de/server-managed-settings#security-approval-dialogs) neben den anderen Einstellungen aufgelistet, die von Administratoren bereitgestellte ausführbare Dateien ausführen.100 Da `processWrapper` eine benannte Einstellung ist, sieht eine Organisation, die sie über [remote verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) bereitstellt, sie auf dem [Sicherheitsgenehmigungsdialog](/docs/de/server-managed-settings#security-approval-dialogs) neben den anderen Einstellungen aufgelistet, die von Administratoren bereitgestellte ausführbare Dateien ausführen.

102 101 

103 Projekt- und lokale Einstellungen können den Launcher nicht konfigurieren. Eine Datei, die in ein Repository committed wird, darf nicht in der Lage sein, eine Binärdatei vor jedem Claude-Code-Prozess auf dem Computer zu platzieren, daher ignoriert Claude Code `CLAUDE_CODE_PROCESS_WRAPPER` in `.claude/settings.json` oder `.claude/settings.local.json` mit einer Warnung im [Debug-Protokoll](/docs/de/troubleshooting), und liest den `processWrapper`-Schlüssel nie aus diesen Dateien.102 Projekt- und lokale Einstellungen können den Launcher nicht konfigurieren. Eine Datei, die in ein Repository committed wird, darf nicht in der Lage sein, eine Binärdatei vor jedem Claude-Code-Prozess auf dem Computer zu platzieren, daher ignoriert Claude Code `CLAUDE_CODE_PROCESS_WRAPPER` in `.claude/settings.json` oder `.claude/settings.local.json` mit einer Warnung im [Debug-Log](/docs/de/troubleshooting), und liest den `processWrapper`-Schlüssel nie aus diesen Dateien.

104 </Step>103 </Step>

105 104 

106 <Step title="Starten Sie den Hintergrunddienst und Ihre Sitzungen neu">105 <Step title="Starten Sie den Hintergrunddienst und Ihre Sitzungen neu">

107 Ein laufender Hintergrunddienst und alle offenen `claude`-Sitzungen lesen die Variable einmal beim Start, daher starten sie weiterhin Prozesse ohne Umhüllung, bis sie neu gestartet werden. Führen Sie `claude daemon stop --any` aus, um den On-Demand-Dienst zu stoppen; der nächste Befehl, der ihn benötigt, z. B. `claude agents`, startet einen umhüllten. Ein [installierter Dienst](/docs/de/agent-view#the-supervisor-process) nimmt `claude daemon stop` ohne `--any`. Starten Sie dann Ihre offenen `claude`-Sitzungen neu.106 Ein laufender Hintergrunddienst und alle offenen `claude`-Sitzungen lesen die Variable einmal beim Start, daher starten sie weiterhin Prozesse ohne Umhüllung, bis sie neu gestartet werden. Führen Sie `claude daemon stop --any` aus, um den On-Demand-Dienst zu stoppen. Der nächste Befehl, der ihn benötigt, z. B. `claude agents`, startet einen umhüllten. Starten Sie dann Ihre offenen `claude`-Sitzungen neu.

108 107 

109 Auf Computern, die Sie nicht von Hand neu starten können, zieht die erste Sitzung, die nach dem Einstellungs-Push gestartet wird, automatisch einen verbleibenden On-Demand-Dienst ohne Umhüllung zurück. Ein Computer, auf dem keine neue Sitzung startet, behält seinen Dienst ohne Umhüllung, bis eine startet, und ein installierter Dienst benötigt immer den Neustart in diesem Schritt.108 Auf Computern, die Sie nicht selbst neu starten können, zieht die erste Sitzung, die nach dem Einstellungs-Push gestartet wird, automatisch einen verbleibenden On-Demand-Dienst ohne Umhüllung zurück. Ein Computer, auf dem keine neue Sitzung startet, behält seinen Hintergrunddienst ohne Umhüllung, bis eine startet.

110 </Step>109 </Step>

111 110 

112 <Step title="Überprüfen">111 <Step title="Überprüfen">

Details

142 142 

143Eine Sitzung antwortet auf den Namen, den Sie mit dem Befehl [`/rename`](/docs/de/commands) oder dem Flag [`--name`](/docs/de/cli-reference#cli-flags) setzen. Wenn Sie keinen setzen, benennt Claude Code die Sitzung selbst. Für eine interaktive Sitzung ist dies der Name, der in [Auflistungen laufender Sitzungen](/docs/de/sessions#name-your-sessions) angezeigt wird.143Eine Sitzung antwortet auf den Namen, den Sie mit dem Befehl [`/rename`](/docs/de/commands) oder dem Flag [`--name`](/docs/de/cli-reference#cli-flags) setzen. Wenn Sie keinen setzen, benennt Claude Code die Sitzung selbst. Für eine interaktive Sitzung ist dies der Name, der in [Auflistungen laufender Sitzungen](/docs/de/sessions#name-your-sessions) angezeigt wird.

144 144 

145Wenn Sie eine Sitzung umbenennen oder eine interaktive mit einem Namen starten oder fortsetzen, den eine andere aktive Sitzung auf diesem Computer bereits verwendet, behält Claude Code den Namen bei der Sitzung, die ihn bereits hat, und [benennt Ihren in eine Variante um](/docs/de/sessions#name-your-sessions). Sitzungen können immer noch einen Namen teilen, z. B. wenn eine von ihnen eine frühere Version von Claude Code ausführt oder der gemeinsame Name einer ist, die Claude Code generiert hat. Es sei denn, diese Sitzung ist mit Remote Control verbunden. Claude Code zeigt das Arbeitsverzeichnis jeder lokalen Sitzung in der `/list-agents`-Ausgabe an, sodass Sie gleichnamige Sitzungen unterscheiden können, wenn sie in verschiedenen Verzeichnissen ausgeführt werden. Claude adressiert die Nachricht auf eine von zwei Arten, je nachdem, wie viele aktive Sitzungen auf den Namen antworten:145Sofern diese Sitzung nicht mit Remote Control verbunden ist, zeigt Claude Code das Arbeitsverzeichnis jeder lokalen Sitzung in der `/list-agents`-Ausgabe an, sodass Sie gleichnamige Sitzungen unterscheiden können, wenn sie in verschiedenen Verzeichnissen ausgeführt werden. Claude adressiert die Nachricht auf eine von zwei Arten, je nachdem, wie viele aktive Sitzungen auf den Namen antworten:

146 146 

147* **Eine Sitzung antwortet auf den Namen**: Claude Code liefert die Nachricht nur auf dem Namen.147* **Eine Sitzung antwortet auf den Namen**: Claude Code liefert die Nachricht nur auf dem Namen.

148* **Mehrere Sitzungen teilen den Namen, oder Claude Code konnte nicht überall überprüfen, wo Ihre Sitzungen ausgeführt werden**: Claude fügt jeder Zeile seiner Auflistung einen kurzen Bezeichner hinzu und verwendet den Bezeichner in der Adresse.148* **Mehrere Sitzungen teilen den Namen, oder Claude Code konnte nicht überall überprüfen, wo Ihre Sitzungen ausgeführt werden**: Claude fügt jeder Zeile seiner Auflistung einen kurzen Bezeichner hinzu und verwendet den Bezeichner in der Adresse.

desktop.md +30 −4

Details

400 400 

401Um zwei Sitzungen gleichzeitig anzuzeigen, halten Sie **Cmd** auf macOS oder **Ctrl** auf Windows gedrückt und klicken Sie auf eine Sitzung in der Seitenleiste. Die Sitzung wird in einem zweiten Bereich neben dem bereits geöffneten angezeigt. Während die Aufteilung aktiv ist, ersetzt das Klicken auf eine andere Sitzung in der Seitenleiste denjenigen Bereich, der den Fokus hat. Drücken Sie **Cmd+\\** auf macOS oder **Ctrl+\\** auf Windows, um den fokussierten Bereich zu schließen und zu einer einzelnen Sitzung zurückzukehren.401Um zwei Sitzungen gleichzeitig anzuzeigen, halten Sie **Cmd** auf macOS oder **Ctrl** auf Windows gedrückt und klicken Sie auf eine Sitzung in der Seitenleiste. Die Sitzung wird in einem zweiten Bereich neben dem bereits geöffneten angezeigt. Während die Aufteilung aktiv ist, ersetzt das Klicken auf eine andere Sitzung in der Seitenleiste denjenigen Bereich, der den Fokus hat. Drücken Sie **Cmd+\\** auf macOS oder **Ctrl+\\** auf Windows, um den fokussierten Bereich zu schließen und zu einer einzelnen Sitzung zurückzukehren.

402 402 

403Worktrees werden standardmäßig in `<project-root>/.claude/worktrees/` gespeichert. Sie können dies in Einstellungen → Claude Code unter „Worktree-Speicherort“ in ein benutzerdefiniertes Verzeichnis ändern. Sie können auch ein Branch-Präfix festlegen, das jedem Worktree-Branch-Namen vorangestellt wird, was nützlich ist, um von Claude erstellte Branches organisiert zu halten. Um einen Worktree zu entfernen, wenn Sie fertig sind, fahren Sie mit der Maus über die Sitzung in der Seitenleiste und klicken Sie auf das Archiv-Symbol. Um Sitzungen automatisch zu archivieren, wenn ihr Pull Request gemergt oder geschlossen wird, schalten Sie **Auto-Archivieren nach PR-Merge oder -Schließung** in Einstellungen → Claude Code ein. Auto-Archivieren gilt nur für lokale Sitzungen, die beendet wurden.403Worktrees werden standardmäßig in `<project-root>/.claude/worktrees/` gespeichert. Sie können dies in ein benutzerdefiniertes Verzeichnis ändern:

404 404 

405Um gitignorierte Dateien wie `.env` in neue Worktrees einzubeziehen, erstellen Sie eine [`.worktreeinclude`-Datei](/docs/de/worktrees#copy-gitignored-files-into-worktrees) in Ihrem Projektstammverzeichnis.405* **Lokale Sitzungen**: Legen Sie **Worktree-Speicherort** in **Einstellungen > Claude Code** fest

406* **SSH-Sitzungen**: Legen Sie **Worktree-Ordner** in der [SSH-Verbindung](#choose-where-ssh-session-worktrees-go) fest

407 

408Sie können auch ein **Branch-Präfix** in **Einstellungen > Claude Code** festlegen. Desktop stellt es jedem Worktree-Branch-Namen voran, was nützlich ist, um von Claude erstellte Branches organisiert zu halten.

409 

410Um einen Worktree zu entfernen, wenn Sie fertig sind, fahren Sie mit der Maus über die Sitzung in der Seitenleiste und klicken Sie auf das Archiv-Symbol. Um Sitzungen automatisch zu archivieren, wenn ihr Pull Request gemergt oder geschlossen wird, schalten Sie **Auto-Archivieren nach PR-Merge oder -Schließung** in **Einstellungen > Claude Code** ein. Auto-Archivieren gilt nur für lokale Sitzungen, die beendet wurden.

411 

412Um gitignorierte Dateien wie `.env` in neue Worktrees einzubeziehen, erstellen Sie eine [`.worktreeinclude`-Datei](/docs/de/worktrees#copy-gitignored-files-into-worktrees) in Ihrem Projektstammverzeichnis. Unter [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout) erfahren Sie, woher eine Worktree-Sitzung Projekteinstellungen, Hooks und Skills liest.

406 413 

407<Note>414<Note>

408 Die Sitzungsisolation erfordert [Git](https://git-scm.com/downloads). Die meisten Macs enthalten Git standardmäßig. Führen Sie `git --version` im Terminal aus, um zu überprüfen. Wenn es eine Versionsnummer ausgibt, ist Git installiert. Wenn Sie auf Git-Fehler stoßen, bitten Sie Claude im [Cowork-Tab](https://claude.com/product/cowork), Ihnen bei der Behebung Ihres Setups zu helfen.415 Die Sitzungsisolation erfordert [Git](https://git-scm.com/downloads). Die meisten Macs enthalten Git standardmäßig. Führen Sie `git --version` im Terminal aus, um zu überprüfen. Wenn es eine Versionsnummer ausgibt, ist Git installiert. Wenn Sie auf Git-Fehler stoßen, bitten Sie Claude im [Cowork-Tab](https://claude.com/product/cowork), Ihnen bei der Behebung Ihres Setups zu helfen.


811* **SSH host**: `user@hostname` oder ein in `~/.ssh/config` definierter Host818* **SSH host**: `user@hostname` oder ein in `~/.ssh/config` definierter Host

812* **SSH port**: Standard ist 22, wenn leer gelassen, oder verwendet den Port aus Ihrer SSH-Konfiguration819* **SSH port**: Standard ist 22, wenn leer gelassen, oder verwendet den Port aus Ihrer SSH-Konfiguration

813* **SSH key (optional)**: Pfad zu Ihrem privaten Schlüssel, z. B. `~/.ssh/id_ed25519`. Lassen Sie das Feld leer, um Ihre SSH-Konfiguration oder Ihren SSH-Agenten zu verwenden.820* **SSH key (optional)**: Pfad zu Ihrem privaten Schlüssel, z. B. `~/.ssh/id_ed25519`. Lassen Sie das Feld leer, um Ihre SSH-Konfiguration oder Ihren SSH-Agenten zu verwenden.

821* **Worktree folder**: ein Ordner auf dem Remote-Computer, z. B. `~/worktrees`, in dem neue Sitzungen ihre Worktrees erstellen. Lassen Sie das Feld leer, um den [Standard des Remote-Computers](#choose-where-ssh-session-worktrees-go) zu verwenden.

814 822 

815Nach dem Hinzufügen wird die Verbindung im Umgebungs-Dropdown unter **SSH** angezeigt. Wählen Sie sie aus, um eine Sitzung auf diesem Computer zu starten. Claude läuft auf dem Remote-Computer mit Zugriff auf seine Dateien und Tools.823Nach dem Hinzufügen wird die Verbindung im Umgebungs-Dropdown unter **SSH** angezeigt. Wählen Sie sie aus, um eine Sitzung auf diesem Computer zu starten. Claude läuft auf dem Remote-Computer mit Zugriff auf seine Dateien und Tools.

816 824 

817Der Remote-Computer muss Linux oder macOS ausführen. Die Desktop-App installiert Claude Code auf dem Remote-Computer automatisch beim ersten Verbindungsaufbau. Nach der Verbindung unterstützen SSH-Sitzungen Berechtigungsmodi, Konnektoren, Plugins und MCP-Server.825Der Remote-Computer muss Linux oder macOS ausführen. Die Desktop-App installiert Claude Code auf dem Remote-Computer automatisch beim ersten Verbindungsaufbau. Nach der Verbindung unterstützen SSH-Sitzungen Berechtigungsmodi, Konnektoren, Plugins und MCP-Server.

818 826 

827<h4 id="choose-where-ssh-session-worktrees-go">

828 Festlegen, wo Worktrees von SSH-Sitzungen abgelegt werden

829</h4>

830 

831Sofern Ihre Organisation nicht einschränkt, welche Ordner Sitzungen verwenden dürfen, erstellen neue SSH-Sitzungen ihre [Worktrees](#work-in-parallel-with-sessions) am ersten der folgenden Orte, der festgelegt ist:

832 

8331. **Worktree folder** in der SSH-Verbindung

8342. [`worktree.location`](/docs/de/settings-reference#worktree-location) in `~/.claude/settings.json` auf dem Remote-Computer

8353. `<project-root>/.claude/worktrees/`, der Standard

836 

837Jedes Projekt erhält einen eigenen Unterordner in dem von Ihnen festgelegten Ordner, sodass der Pfad eines Worktrees bei `~/worktrees` `~/worktrees/<project>-<id>/<worktree-name>` lautet. Wenn der festgelegte Ordner innerhalb des Projekts liegt, ignoriert Desktop ihn für dieses Projekt und verwendet den Standard.

838 

839Um **Worktree folder** für eine Verbindung festzulegen, die Sie zuvor hinzugefügt haben oder die Ihre Organisation verwaltet, fahren Sie im Umgebungs-Dropdown mit der Maus darüber und klicken Sie auf das Zahnrad-Symbol.

840 

841Das 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.

842 

819<h4 id="open-an-ssh-session-from-a-link">843<h4 id="open-an-ssh-session-from-a-link">

820 SSH-Sitzung über einen Link öffnen844 SSH-Sitzung über einen Link öffnen

821</h4>845</h4>


869 SSH-Verbindungen für Ihr Team vorkonfigurieren893 SSH-Verbindungen für Ihr Team vorkonfigurieren

870</h4>894</h4>

871 895 

872Administratoren können SSH-Verbindungen an Teammitglieder verteilen, indem sie `sshConfigs` in den [verwalteten Einstellungen](/docs/de/managed-settings) setzen. Auf diese Weise definierte Verbindungen werden in der Umgebungs-Dropdown-Liste jedes Benutzers automatisch angezeigt und sind als verwaltet gekennzeichnet, sodass Benutzer sie auswählen, aber in der App nicht bearbeiten oder löschen können.896Administratoren können SSH-Verbindungen an Teammitglieder verteilen, indem sie `sshConfigs` in den [verwalteten Einstellungen](/docs/de/managed-settings) setzen. Auf diese Weise definierte Verbindungen werden in der Umgebungs-Dropdown-Liste jedes Benutzers automatisch angezeigt und sind als verwaltet gekennzeichnet. Benutzer können sie auswählen und [ihren eigenen **Worktree folder**](#choose-where-ssh-session-worktrees-go) dafür festlegen, aber in der App nichts anderes bearbeiten oder sie löschen.

873 897 

874Das folgende Beispiel konfiguriert eine einzelne Verbindung vor:898Das folgende Beispiel konfiguriert eine einzelne Verbindung vor:

875 899 


935 Das OpenTelemetry-Formular für Cowork unter **Überwachung** in den [Daten- und Datenschutzeinstellungen](https://claude.ai/admin-settings/data-privacy-controls) der Admin-Konsole gilt nur für Cowork-Sitzungen. In einer Cowork-Sitzung auf diesem Computer übergibt die Desktop-App diesen Collector an Claude Code als `OTEL_*`-Umgebungsvariablen, sodass das Formular wirksam wird, obwohl Claude Code in dieser Sitzung [niemals Admin-Konsolen-Einstellungen abruft](#managed-settings).959 Das OpenTelemetry-Formular für Cowork unter **Überwachung** in den [Daten- und Datenschutzeinstellungen](https://claude.ai/admin-settings/data-privacy-controls) der Admin-Konsole gilt nur für Cowork-Sitzungen. In einer Cowork-Sitzung auf diesem Computer übergibt die Desktop-App diesen Collector an Claude Code als `OTEL_*`-Umgebungsvariablen, sodass das Formular wirksam wird, obwohl Claude Code in dieser Sitzung [niemals Admin-Konsolen-Einstellungen abruft](#managed-settings).

936 960 

937 Um Telemetrie aus Code-Tab-Sitzungen zu exportieren, setzen Sie `CLAUDE_CODE_ENABLE_TELEMETRY` und die `OTEL_*`-Variablen im `env`-Block Ihrer verwalteten Claude-Code-Einstellungen, wie in [Administrator-Konfiguration für Überwachung](/docs/de/monitoring-usage#administrator-configuration) gezeigt. Lokale, Cloud- und SSH-Sitzungen lesen [verwaltete Einstellungen aus verschiedenen Quellen](#managed-settings). Für die Hosts, die eine Cloud-Sitzung erreichen kann, siehe [Netzwerkzugriff](/docs/de/cloud-environments#network-access). Für den `service.name`, den Code-Tab-Sitzungen melden, siehe [Service-Informationen](/docs/de/monitoring-usage#service-information).961 Um Telemetrie aus Code-Tab-Sitzungen zu exportieren, setzen Sie `CLAUDE_CODE_ENABLE_TELEMETRY` und die `OTEL_*`-Variablen im `env`-Block Ihrer verwalteten Claude-Code-Einstellungen, wie in [Administrator-Konfiguration für Überwachung](/docs/de/monitoring-usage#administrator-configuration) gezeigt. Lokale, Cloud- und SSH-Sitzungen lesen [verwaltete Einstellungen aus verschiedenen Quellen](#managed-settings). Für die Hosts, die eine Cloud-Sitzung erreichen kann, siehe [Netzwerkzugriff](/docs/de/cloud-environments#network-access). Für den `service.name`, den Code-Tab-Sitzungen melden, siehe [Service-Informationen](/docs/de/monitoring-usage#service-information).

962 

963 Um herauszufinden, auf welchem Remote-Computer eine SSH-Sitzung ausgeführt wurde, siehe [Telemetrie Desktop-SSH-Sitzungen zuordnen](/docs/de/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions).

938</Note>964</Note>

939 965 

940<h3 id="managed-settings">966<h3 id="managed-settings">


951| `browserExternalPageTools` | auf `"disabled"` setzen, um zu verhindern, dass Claude Tools verwendet, um externe Seiten im [Browser-Bereich](#browse-external-sites) zu lesen oder zu bearbeiten. Benutzer können externe Websites weiterhin selbst navigieren, und lokale Dev-Server-Vorschauen sind nicht betroffen. |977| `browserExternalPageTools` | auf `"disabled"` setzen, um zu verhindern, dass Claude Tools verwendet, um externe Seiten im [Browser-Bereich](#browse-external-sites) zu lesen oder zu bearbeiten. Benutzer können externe Websites weiterhin selbst navigieren, und lokale Dev-Server-Vorschauen sind nicht betroffen. |

952| `disableMobileSimulatorTools` | auf `true` setzen, um Claudes Tools zum Steuern und Erfassen von Geräten im [iOS-Simulator-Bereich](/docs/de/desktop-ios-simulator#turn-off-simulator-access) zu blockieren. Der Bereich bleibt für die eigenen Taps des Benutzers nutzbar; nur Claudes Zugriff wird entfernt. Der Wert muss der JSON-Boolean `true` sein; der String `"true"` wird ignoriert. |978| `disableMobileSimulatorTools` | auf `true` setzen, um Claudes Tools zum Steuern und Erfassen von Geräten im [iOS-Simulator-Bereich](/docs/de/desktop-ios-simulator#turn-off-simulator-access) zu blockieren. Der Bereich bleibt für die eigenen Taps des Benutzers nutzbar; nur Claudes Zugriff wird entfernt. Der Wert muss der JSON-Boolean `true` sein; der String `"true"` wird ignoriert. |

953| `disableBrowserExternalNavigation` | auf `true` setzen, um externe Browsing im [Browser-Bereich](#browse-external-sites) vollständig auszuschalten. Weder Benutzer noch Claude können zu externen Websites navigieren, und localhost Dev-Server-Vorschauen sind nicht betroffen. Der Wert muss der JSON-Boolean `true` sein; der String `"true"` wird ignoriert. |979| `disableBrowserExternalNavigation` | auf `true` setzen, um externe Browsing im [Browser-Bereich](#browse-external-sites) vollständig auszuschalten. Weder Benutzer noch Claude können zu externen Websites navigieren, und localhost Dev-Server-Vorschauen sind nicht betroffen. Der Wert muss der JSON-Boolean `true` sein; der String `"true"` wird ignoriert. |

954| `sshConfigs` | vorkonfigurieren Sie [SSH-Verbindungen](#pre-configure-ssh-connections-for-your-team), die in der Umgebungs-Dropdown angezeigt werden. Benutzer können verwaltete Verbindungen nicht bearbeiten oder löschen. |980| `sshConfigs` | vorkonfigurieren Sie [SSH-Verbindungen](#pre-configure-ssh-connections-for-your-team), die in der Umgebungs-Dropdown angezeigt werden. Benutzer können verwaltete Verbindungen nicht löschen und daran nichts außer ihrem eigenen **Worktree-Ordner** bearbeiten. |

955| `sshHostAllowlist` | beschränken Sie [SSH-Sitzungen](#restrict-which-ssh-hosts-users-can-connect-to) auf Hosts, deren aufgelöster Hostname einem dieser Muster entspricht. Wird nur aus verwalteten Einstellungen gelesen. |981| `sshHostAllowlist` | beschränken Sie [SSH-Sitzungen](#restrict-which-ssh-hosts-users-can-connect-to) auf Hosts, deren aufgelöster Hostname einem dieser Muster entspricht. Wird nur aus verwalteten Einstellungen gelesen. |

956| `disableDesktopLocalSessions` | auf `true` setzen, um [Code-Sitzungen, die auf dem Gerät ausgeführt werden](#local-sessions-on-managed-devices), auszuschalten und SSH-Sitzungen zu anderen Hosts sowie Cloud-Sitzungen verfügbar zu lassen. Der Wert muss der JSON-Boolean `true` sein. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.37937.0 oder später. |982| `disableDesktopLocalSessions` | auf `true` setzen, um [Code-Sitzungen, die auf dem Gerät ausgeführt werden](#local-sessions-on-managed-devices), auszuschalten und SSH-Sitzungen zu anderen Hosts sowie Cloud-Sitzungen verfügbar zu lassen. Der Wert muss der JSON-Boolean `true` sein. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.37937.0 oder später. |

957| `disableSshSavedPasswords` | auf `true` setzen, damit Desktop nicht mehr anbietet, SSH-Passwörter zu speichern, und die zuvor gespeicherten weder verwendet noch anzeigt. Das Einschalten löscht diese nicht. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.49585.0 oder später. |983| `disableSshSavedPasswords` | auf `true` setzen, damit Desktop nicht mehr anbietet, SSH-Passwörter zu speichern, und die zuvor gespeicherten weder verwendet noch anzeigt. Das Einschalten löscht diese nicht. Wird nur aus verwalteten Einstellungen gelesen. Erfordert Claude Desktop v1.49585.0 oder später. |

env-vars.md +5 −5

Details

210| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Setzen Sie `1`, um das Präfix `mcp__<server>__` bei Tool-Namen von im SDK erstellten MCP-Servern wegzulassen. Tools verwenden ihre ursprünglichen Namen. Nur für die SDK-Nutzung |210| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Setzen Sie `1`, um das Präfix `mcp__<server>__` bei Tool-Namen von im SDK erstellten MCP-Servern wegzulassen. Tools verwenden ihre ursprünglichen Namen. Nur für die SDK-Nutzung |

211| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout in Millisekunden, nach dem Subagenten als hängend gelten. Deckt unter Claude Code v2.1.286 oder höher auch [Workflow-Agenten](/docs/de/workflows#when-an-agent-stalls-and-restarts) ab. Standard `600000` (10 Minuten); wenn Sie `CLAUDE_STREAM_IDLE_TIMEOUT_MS` erhöhen, während der Stream-Watchdog eingeschaltet ist, steigt der Standardwert mit, wie [Langsame oder hängende API-Antworten behandeln](/docs/de/agent-sdk/typescript#handle-slow-or-stalled-api-responses) beschreibt |211| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout in Millisekunden, nach dem Subagenten als hängend gelten. Deckt unter Claude Code v2.1.286 oder höher auch [Workflow-Agenten](/docs/de/workflows#when-an-agent-stalls-and-restarts) ab. Standard `600000` (10 Minuten); wenn Sie `CLAUDE_STREAM_IDLE_TIMEOUT_MS` erhöhen, während der Stream-Watchdog eingeschaltet ist, steigt der Standardwert mit, wie [Langsame oder hängende API-Antworten behandeln](/docs/de/agent-sdk/typescript#handle-slow-or-stalled-api-responses) beschreibt |

212| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Legt den Prozentsatz (1-100) des Fensters für die automatische Komprimierung fest, bei dem die automatische Komprimierung ausgelöst wird. Verwenden Sie niedrigere Werte wie `50`, um früher zu komprimieren; die Variable kann den Schwellenwert nicht anheben, daher werden Werte über dem Standardprozentsatz ignoriert. Sie gilt nur in Sitzungen, die [vor dem Kontextlimit des Modells komprimieren](/docs/de/model-config#context-window-and-auto-compaction). Gilt sowohl für Hauptkonversationen als auch für Subagenten |212| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Legt den Prozentsatz (1-100) des Fensters für die automatische Komprimierung fest, bei dem die automatische Komprimierung ausgelöst wird. Verwenden Sie niedrigere Werte wie `50`, um früher zu komprimieren; die Variable kann den Schwellenwert nicht anheben, daher werden Werte über dem Standardprozentsatz ignoriert. Sie gilt nur in Sitzungen, die [vor dem Kontextlimit des Modells komprimieren](/docs/de/model-config#context-window-and-auto-compaction). Gilt sowohl für Hauptkonversationen als auch für Subagenten |

213| `CLAUDE_AUTO_BACKGROUND_TASKS` | Setzen Sie `1`, um das automatische Verschieben lang laufender Agentenaufgaben in den Hintergrund zwangsweise zu aktivieren. Wenn aktiviert, werden Subagenten nach einer Laufzeit von etwa zwei Minuten in den Hintergrund verschoben. Aktiviert unter Claude Code v2.1.212 oder höher im nicht interaktiven Modus auch das [automatische Verschieben langer MCP-Tool-Aufrufe in den Hintergrund](/docs/de/mcp#automatic-backgrounding-of-long-tool-calls) |213| `CLAUDE_AUTO_BACKGROUND_TASKS` | Setzen Sie `1`, um das automatische Verschieben lang laufender Agentenaufgaben in den Hintergrund zwangsweise zu aktivieren. Wenn aktiviert, wird ein [Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) nach etwa zwei Minuten Laufzeit in den Hintergrund verschoben. Wenn Claude einen Tool-Aufruf wie eine Dateibearbeitung hinter dem Subagenten eingereiht hat, wird der Subagent im Vordergrund abgeschlossen, bevor dieser Aufruf startet. Aktiviert ab Claude Code v2.1.212 im nicht interaktiven Modus außerdem das [automatische Verschieben langer MCP-Tool-Aufrufe in den Hintergrund](/docs/de/mcp#automatic-backgrounding-of-long-tool-calls) |

214| `CLAUDE_AX_PREPARK_MS` | Im [Screenreader-Modus](/docs/de/accessibility) die Anzahl der Millisekunden, die Claude Code wartet, bevor es eine neue oder geänderte Zeile schreibt. Standard `0`, sodass Claude Code nicht wartet. Vor v2.1.287 war der Standard `50`. Claude Code begrenzt die Wartezeit auf `5000`. Erfordert Claude Code v2.1.233 oder höher |214| `CLAUDE_AX_PREPARK_MS` | Im [Screenreader-Modus](/docs/de/accessibility) die Anzahl der Millisekunden, die Claude Code wartet, bevor es eine neue oder geänderte Zeile schreibt. Standard `0`, sodass Claude Code nicht wartet. Vor v2.1.287 war der Standard `50`. Claude Code begrenzt die Wartezeit auf `5000`. Erfordert Claude Code v2.1.233 oder höher |

215| `CLAUDE_AX_SCREEN_READER` | Setzen Sie `1`, um screenreaderfreundliche Ausgabe darzustellen: flacher Text ohne dekorative Rahmen oder Animationen. Setzen Sie `0`, um den Screenreader-Modus zwangsweise auszuschalten, selbst wenn [`axScreenReader`](/docs/de/settings-reference#axscreenreader) `true` ist. Das Flag [`--ax-screen-reader`](/docs/de/cli-reference#cli-flags) hat Vorrang. Erfordert Claude Code v2.1.181 oder höher |215| `CLAUDE_AX_SCREEN_READER` | Setzen Sie `1`, um screenreaderfreundliche Ausgabe darzustellen: flacher Text ohne dekorative Rahmen oder Animationen. Setzen Sie `0`, um den Screenreader-Modus zwangsweise auszuschalten, selbst wenn [`axScreenReader`](/docs/de/settings-reference#axscreenreader) `true` ist. Das Flag [`--ax-screen-reader`](/docs/de/cli-reference#cli-flags) hat Vorrang. Erfordert Claude Code v2.1.181 oder höher |

216| `CLAUDE_AX_STARTUP_QUIET_MS` | Im [Screenreader-Modus](/docs/de/accessibility) die Anzahl der Millisekunden, die Claude Code die erste Darstellung der Oberfläche nach der Startbestätigungszeile zurückhält, damit Ihr Screenreader die Zeile vollständig vorlesen kann, bevor neue Ausgabe sie unterbricht. Standard `3000`. Setzen Sie `0`, um sofort darzustellen. Claude Code begrenzt die Verzögerung auf `600000` (10 Minuten). Ihr erster Tastendruck beendet die Verzögerung vorzeitig. Erfordert Claude Code v2.1.217 oder höher |216| `CLAUDE_AX_STARTUP_QUIET_MS` | Im [Screenreader-Modus](/docs/de/accessibility) die Anzahl der Millisekunden, die Claude Code die erste Darstellung der Oberfläche nach der Startbestätigungszeile zurückhält, damit Ihr Screenreader die Zeile vollständig vorlesen kann, bevor neue Ausgabe sie unterbricht. Standard `3000`. Setzen Sie `0`, um sofort darzustellen. Claude Code begrenzt die Verzögerung auf `600000` (10 Minuten). Ihr erster Tastendruck beendet die Verzögerung vorzeitig. Erfordert Claude Code v2.1.217 oder höher |


285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Setzen Sie `1`, um den [automatischen Modellwechsel, wenn ein Sicherheitsklassifikator eine Anfrage kennzeichnet](/docs/de/model-config#automatic-model-fallback), auszuschalten, also das Verhalten, das die Einstellung [`switchModelsOnFlag`](/docs/de/settings-reference#switchmodelsonflag) steuert |285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Setzen Sie `1`, um den [automatischen Modellwechsel, wenn ein Sicherheitsklassifikator eine Anfrage kennzeichnet](/docs/de/model-config#automatic-model-fallback), auszuschalten, also das Verhalten, das die Einstellung [`switchModelsOnFlag`](/docs/de/settings-reference#switchmodelsonflag) steuert |

286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Setzen Sie `1`, damit Claude Code das Feld `output_config.format` für strukturierte Ausgaben und den zugehörigen `anthropic-beta`-Wert nicht mehr sendet, für ein [LLM-Gateway](/docs/de/llm-gateway-protocol#feature-pass-through), dessen Upstream diese ablehnt. Die anderen Vorabfunktionen, die [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) ausschaltet, bleiben dabei eingeschaltet. Erfordert Claude Code v2.1.288 oder höher |286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Setzen Sie `1`, damit Claude Code das Feld `output_config.format` für strukturierte Ausgaben und den zugehörigen `anthropic-beta`-Wert nicht mehr sendet, für ein [LLM-Gateway](/docs/de/llm-gateway-protocol#feature-pass-through), dessen Upstream diese ablehnt. Die anderen Vorabfunktionen, die [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) ausschaltet, bleiben dabei eingeschaltet. Erfordert Claude Code v2.1.288 oder höher |

287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Setzen Sie `1`, um die Prüfung [kritischer Pfade](/docs/de/permission-modes#critical-paths) für ein rekursives `rm` auszuschalten, dessen Ziel vollständig die Ausgabe einer Befehlssubstitution ist, etwa `rm -rf "$(pwd)"`. 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.281 oder höher |287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Setzen Sie `1`, um die Prüfung [kritischer Pfade](/docs/de/permission-modes#critical-paths) für ein rekursives `rm` auszuschalten, dessen Ziel vollständig die Ausgabe einer Befehlssubstitution ist, etwa `rm -rf "$(pwd)"`. 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.281 oder höher |

288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Setzen Sie `1`, um automatische Aktualisierungen des Terminaltitels auf Basis des Konversationskontexts zu deaktivieren. Dadurch wird auch die Hintergrundanfrage an das kleine, schnelle Modell übersprungen, die [einen Sitzungstitel generiert](/docs/de/sessions#name-your-sessions) |288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Setzen Sie `1`, um automatische Aktualisierungen des Terminaltitels auf Grundlage des Konversationskontexts zu deaktivieren. Dadurch wird auch die Hintergrundanfrage an das kleine/schnelle Modell übersprungen, die [einen Sitzungstitel generiert](/docs/de/sessions#name-your-sessions), und [Statusmeldungen an Ihr Terminal](/docs/de/terminal-config#see-session-status-in-your-terminal) werden ausgeschaltet |

289| `CLAUDE_CODE_DISABLE_THINKING` | Setzen Sie `1`, um den Parameter `thinking` vollständig aus API-Anfragen wegzulassen. Dies ist eine Kompatibilitätsoption für Proxys und Gateways, die den Parameter ablehnen. Bei Modellen, die standardmäßig nachdenken, bedeutet das Weglassen des Parameters, dass das Modell möglicherweise trotzdem nachdenkt. Um [Extended Thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) über die Anthropic-API explizit zu deaktivieren, verwenden Sie stattdessen `MAX_THINKING_TOKENS=0`. Keine der beiden Variablen schaltet das Thinking bei Opus 5.5, Sonnet 5.5, Haiku 5.5 oder den Fable-Modellen aus, bei denen sich das Thinking nicht ausschalten lässt. Bei [Drittanbietern](/docs/de/third-party-integrations) lässt `MAX_THINKING_TOKENS=0` den Parameter ebenfalls weg, sodass sich die beiden Variablen dort gleich verhalten |289| `CLAUDE_CODE_DISABLE_THINKING` | Setzen Sie `1`, um den Parameter `thinking` vollständig aus API-Anfragen wegzulassen. Dies ist eine Kompatibilitätsoption für Proxys und Gateways, die den Parameter ablehnen. Bei Modellen, die standardmäßig nachdenken, bedeutet das Weglassen des Parameters, dass das Modell möglicherweise trotzdem nachdenkt. Um [Extended Thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) über die Anthropic-API explizit zu deaktivieren, verwenden Sie stattdessen `MAX_THINKING_TOKENS=0`. Keine der beiden Variablen schaltet das Thinking bei Opus 5.5, Sonnet 5.5, Haiku 5.5 oder den Fable-Modellen aus, bei denen sich das Thinking nicht ausschalten lässt. Bei [Drittanbietern](/docs/de/third-party-integrations) lässt `MAX_THINKING_TOKENS=0` den Parameter ebenfalls weg, sodass sich die beiden Variablen dort gleich verhalten |

290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Setzen Sie `1`, um die proaktive [automatische Komprimierung](/docs/de/costs#reduce-token-usage) zu überspringen, wenn Claude Code die Modell-ID nicht erkennt, etwa einen [LLM-Gateway](/docs/de/llm-gateway)-Alias. Ohne diese Variable komprimiert Claude Code bei dem Kontextfenster, das es für die ID annimmt. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` kann stattdessen das angenommene Fenster korrigieren; unter [Das 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) erfahren Sie, wann welche Variable gilt. Erfordert Claude Code v2.1.223 oder höher |290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Setzen Sie `1`, um die proaktive [automatische Komprimierung](/docs/de/costs#reduce-token-usage) zu überspringen, wenn Claude Code die Modell-ID nicht erkennt, etwa einen [LLM-Gateway](/docs/de/llm-gateway)-Alias. Ohne diese Variable komprimiert Claude Code bei dem Kontextfenster, das es für die ID annimmt. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` kann stattdessen das angenommene Fenster korrigieren; unter [Das 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) erfahren Sie, wann welche Variable gilt. Erfordert Claude Code v2.1.223 oder höher |

291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Setzen Sie `1`, um das virtuelle Scrollen in der [Vollbilddarstellung](/docs/de/fullscreen) zu deaktivieren und jede Nachricht im Transkript darzustellen. Verwenden Sie dies, wenn beim Scrollen im Vollbildmodus leere Bereiche angezeigt werden, wo Nachrichten erscheinen sollten |291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Setzen Sie `1`, um das virtuelle Scrollen in der [Vollbilddarstellung](/docs/de/fullscreen) zu deaktivieren und jede Nachricht im Transkript darzustellen. Verwenden Sie dies, wenn beim Scrollen im Vollbildmodus leere Bereiche angezeigt werden, wo Nachrichten erscheinen sollten |


309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Zeit in Millisekunden, die nach dem Übergang der Abfrageschleife in den Leerlauf gewartet wird, bevor automatisch beendet wird. Nützlich für automatisierte Workflows und Skripte, die den SDK-Modus verwenden |309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Zeit in Millisekunden, die nach dem Übergang der Abfrageschleife in den Leerlauf gewartet wird, bevor automatisch beendet wird. Nützlich für automatisierte Workflows und Skripte, die den SDK-Modus verwenden |

310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Auf `1` setzen, um [Agent Teams](/docs/de/agent-teams) zu aktivieren. Agent Teams sind experimentell und standardmäßig deaktiviert |310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Auf `1` setzen, um [Agent Teams](/docs/de/agent-teams) zu aktivieren. Agent Teams sind experimentell und standardmäßig deaktiviert |

311| `CLAUDE_CODE_EXTRA_BODY` | JSON-Objekt, das in die oberste Ebene des Bodys jeder API-Anfrage zusammengeführt wird. Nützlich, um anbieterspezifische Parameter zu übergeben, die Claude Code nicht direkt bereitstellt. Ein in Ihrer Shell exportierter Wert gilt auch für die [Hintergrundsitzungen](/docs/de/agent-view), die Sie mit `claude agents` oder `--bg` starten. Vor v2.1.206 ignorierten Hintergrundsitzungen einen in der Shell exportierten Wert und verwendeten die Kopie, die der Hintergrund-Supervisor-Prozess geerbt hatte |311| `CLAUDE_CODE_EXTRA_BODY` | JSON-Objekt, das in die oberste Ebene des Bodys jeder API-Anfrage zusammengeführt wird. Nützlich, um anbieterspezifische Parameter zu übergeben, die Claude Code nicht direkt bereitstellt. Ein in Ihrer Shell exportierter Wert gilt auch für die [Hintergrundsitzungen](/docs/de/agent-view), die Sie mit `claude agents` oder `--bg` starten. Vor v2.1.206 ignorierten Hintergrundsitzungen einen in der Shell exportierten Wert und verwendeten die Kopie, die der Hintergrund-Supervisor-Prozess geerbt hatte |

312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Überschreibt das standardmäßige Token-Limit für Dateilesevorgänge. Nützlich, wenn Sie größere Dateien vollständig lesen müssen |312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Überschreibt das standardmäßige Token-Limit für [Dateilesevorgänge](/docs/de/tools-reference#large-files), das 25.000 Token beträgt. Nützlich, wenn Sie größere Dateien vollständig lesen müssen. Ein Lesevorgang, den Claude mit dem Parameter `allow_large` ausführt, kann dieses Limit überschreiten, wenn im Kontextfenster Platz ist |

313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Auf `1` setzen, um die Persistenz von Transkripten, den Prompt-Verlauf und die Registrierung bei `claude agents` zu erzwingen, selbst wenn dieses `claude` aus einer anderen Claude Code-Sitzung heraus gestartet wurde. Verwenden Sie dies, wenn ein geerbter `CLAUDE_CODE_CHILD_SESSION`-Wert, etwa aus einer `screen`-Sitzung oder einem Hintergrund-Launcher, der zuerst vom Bash-Tool von Claude Code gestartet wurde, dazu führt, dass eine echte Sitzung der obersten Ebene fälschlich als verschachtelt eingestuft wird. Ab v2.1.178 erkennt Claude Code den tmux-Fall automatisch und ignoriert die geerbte Markierung, sodass tmux diese Variable nicht mehr benötigt. Wird auch in v2.1.169 und früher berücksichtigt; hat in v2.1.170 und v2.1.171 keine Wirkung, da dort die Erkennung verschachtelter Sitzungen, die sie überschreibt, entfernt war |313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Auf `1` setzen, um die Persistenz von Transkripten, den Prompt-Verlauf und die Registrierung bei `claude agents` zu erzwingen, selbst wenn dieses `claude` aus einer anderen Claude Code-Sitzung heraus gestartet wurde. Verwenden Sie dies, wenn ein geerbter `CLAUDE_CODE_CHILD_SESSION`-Wert, etwa aus einer `screen`-Sitzung oder einem Hintergrund-Launcher, der zuerst vom Bash-Tool von Claude Code gestartet wurde, dazu führt, dass eine echte Sitzung der obersten Ebene fälschlich als verschachtelt eingestuft wird. Ab v2.1.178 erkennt Claude Code den tmux-Fall automatisch und ignoriert die geerbte Markierung, sodass tmux diese Variable nicht mehr benötigt. Wird auch in v2.1.169 und früher berücksichtigt; hat in v2.1.170 und v2.1.171 keine Wirkung, da dort die Erkennung verschachtelter Sitzungen, die sie überschreibt, entfernt war |

314| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Auf `1` setzen, um die durchgestrichene Darstellung von `~~text~~` in Claudes Antworten zu erzwingen, wenn Ihr Terminal sie unterstützt, aber nicht automatisch erkannt wird, etwa über SSH ohne weitergeleitetes `TERM_PROGRAM`. Ohne diese Variable zeigen nicht erkannte Terminals die wörtlichen `~~`-Markierungen an, statt den Text durchgestrichen darzustellen. Erfordert Claude Code v2.1.186 oder höher |314| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Auf `1` setzen, um die durchgestrichene Darstellung von `~~text~~` in Claudes Antworten zu erzwingen, wenn Ihr Terminal sie unterstützt, aber nicht automatisch erkannt wird, etwa über SSH ohne weitergeleitetes `TERM_PROGRAM`. Ohne diese Variable zeigen nicht erkannte Terminals die wörtlichen `~~`-Markierungen an, statt den Text durchgestrichen darzustellen. Erfordert Claude Code v2.1.186 oder höher |

315| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Auf `1` setzen, um den DEC Private Mode 2026 für [synchronisierte Ausgabe](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) zwangsweise zu aktivieren, wenn Ihr Terminal ihn unterstützt, aber nicht automatisch erkannt wird. Nützlich für Emulatoren wie Emacs `eat`, die BSU/ESU implementieren, aber nicht auf die Fähigkeitsabfrage antworten. Hat unter tmux keine Wirkung. Anders als `CLAUDE_CODE_NO_FLICKER`, das zum [Vollbild-Rendering](/docs/de/fullscreen) wechselt, ändert dies den Renderer nicht |315| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Auf `1` setzen, um den DEC Private Mode 2026 für [synchronisierte Ausgabe](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) zwangsweise zu aktivieren, wenn Ihr Terminal ihn unterstützt, aber nicht automatisch erkannt wird. Nützlich für Emulatoren wie Emacs `eat`, die BSU/ESU implementieren, aber nicht auf die Fähigkeitsabfrage antworten. Hat unter tmux keine Wirkung. Anders als `CLAUDE_CODE_NO_FLICKER`, das zum [Vollbild-Rendering](/docs/de/fullscreen) wechselt, ändert dies den Renderer nicht |


340| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Obergrenze für [WebSearch](/docs/de/tools-reference#session-search-limit)-Aufrufe (Standard: 200). Wenn Claude die Obergrenze erreicht, geben weitere WebSearch-Aufrufe einen Hinweis zurück, der Claude anweist, mit den bereits gesammelten Informationen fortzufahren. Akzeptiert eine positive ganze Zahl ohne Obergrenze. Alles andere wird ignoriert, und der Standard gilt, sodass die Obergrenze erhöht, aber nicht ausgeschaltet werden kann. Erfordert Claude Code v2.1.212 oder höher |340| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Obergrenze für [WebSearch](/docs/de/tools-reference#session-search-limit)-Aufrufe (Standard: 200). Wenn Claude die Obergrenze erreicht, geben weitere WebSearch-Aufrufe einen Hinweis zurück, der Claude anweist, mit den bereits gesammelten Informationen fortzufahren. Akzeptiert eine positive ganze Zahl ohne Obergrenze. Alles andere wird ignoriert, und der Standard gilt, sodass die Obergrenze erhöht, aber nicht ausgeschaltet werden kann. Erfordert Claude Code v2.1.212 oder höher |

341| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Auf `1` setzen, um stdio-MCP-Server nur mit einer sicheren Basisumgebung plus dem konfigurierten `env` des Servers zu starten, statt Ihre Shell-Umgebung zu erben |341| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Auf `1` setzen, um stdio-MCP-Server nur mit einer sicheren Basisumgebung plus dem konfigurierten `env` des Servers zu starten, statt Ihre Shell-Umgebung zu erben |

342| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Verstrichene Zeit in Millisekunden, bevor ein noch laufender MCP-Tool-Aufruf [in eine Hintergrundaufgabe verschoben wird](/docs/de/mcp#automatic-backgrounding-of-long-tool-calls) (Standard: 120000, also 2 Minuten). Auf `0` setzen, um das automatische Verschieben in den Hintergrund auszuschalten. Erfordert Claude Code v2.1.212 oder höher |342| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Verstrichene Zeit in Millisekunden, bevor ein noch laufender MCP-Tool-Aufruf [in eine Hintergrundaufgabe verschoben wird](/docs/de/mcp#automatic-backgrounding-of-long-tool-calls) (Standard: 120000, also 2 Minuten). Auf `0` setzen, um das automatische Verschieben in den Hintergrund auszuschalten. Erfordert Claude Code v2.1.212 oder höher |

343| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Wie lange in Millisekunden der erste Turn einer [nicht interaktiven](/docs/de/headless) Sitzung auf MCP-Server wartet, die noch eine Verbindung herstellen, anstelle der standardmäßigen [Wartezeit im ersten Turn](/docs/de/agent-sdk/mcp#connection-timing). Wenn gesetzt, gilt die Wartezeit für jeden ausstehenden Server. Auf `0` setzen, um das Warten zu überspringen. Ein [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags)-Server behält unabhängig vom Wert seine eigene `MCP_TIMEOUT`-Wartezeit. Erfordert Claude Code v2.1.274 oder höher |343| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Wie lange in Millisekunden der erste Turn einer [nicht interaktiven](/docs/de/headless) Sitzung auf MCP-Server wartet, die sich noch verbinden, anstelle der standardmäßigen [Wartezeit im ersten Turn](/docs/de/agent-sdk/mcp#connection-timing). Wenn gesetzt, gilt die Wartezeit für jeden ausstehenden Server; in einer [selbst gehosteten Umgebung](/docs/de/self-hosted-environments-configuration#connection-timing) ändert sie nur, wie lange die Wartezeit dauert. Auf `0` setzen, um die Wartezeit zu überspringen. Ein [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags)-Server behält unabhängig vom Wert seine eigene `MCP_TIMEOUT`-Wartezeit. Erfordert Claude Code v2.1.274 oder höher |

344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Leerlauf-Timeout in Millisekunden für MCP-Tool-Aufrufe. Wenn ein stdio-, HTTP-, SSE-, WebSocket- oder [claude.ai-Konnektor](/docs/de/mcp#use-mcp-servers-from-claude-ai)-MCP-Server so lange weder eine Antwort noch eine Fortschrittsbenachrichtigung sendet, bricht der Tool-Aufruf mit einem Fehler ab, statt auf den gesamten `MCP_TOOL_TIMEOUT` zu warten. Überschreibt die transportspezifischen Standardwerte von 300000 (5 Minuten) für Netzwerkserver und 1800000 (30 Minuten) für stdio-Server. Auf `0` setzen, um die Leerlaufprüfung zu deaktivieren. Werte unter 1000 werden auf eine Sekunde angehoben, und der Wert ist auf den effektiven `MCP_TOOL_TIMEOUT` begrenzt. Ein serverspezifischer `timeout` in `.mcp.json` von mindestens 1000 hebt das Leerlauffenster dieses Servers auf mindestens den `timeout`-Wert an. Gilt nicht für IDE-Server oder prozessinterne SDK-Server. Erfordert Claude Code v2.1.187 oder höher. Vor v2.1.203 waren stdio-Server vom Leerlauf-Timeout ausgenommen |344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Leerlauf-Timeout in Millisekunden für MCP-Tool-Aufrufe. Wenn ein stdio-, HTTP-, SSE-, WebSocket- oder [claude.ai-Konnektor](/docs/de/mcp#use-mcp-servers-from-claude-ai)-MCP-Server so lange weder eine Antwort noch eine Fortschrittsbenachrichtigung sendet, bricht der Tool-Aufruf mit einem Fehler ab, statt auf den gesamten `MCP_TOOL_TIMEOUT` zu warten. Überschreibt die transportspezifischen Standardwerte von 300000 (5 Minuten) für Netzwerkserver und 1800000 (30 Minuten) für stdio-Server. Auf `0` setzen, um die Leerlaufprüfung zu deaktivieren. Werte unter 1000 werden auf eine Sekunde angehoben, und der Wert ist auf den effektiven `MCP_TOOL_TIMEOUT` begrenzt. Ein serverspezifischer `timeout` in `.mcp.json` von mindestens 1000 hebt das Leerlauffenster dieses Servers auf mindestens den `timeout`-Wert an. Gilt nicht für IDE-Server oder prozessinterne SDK-Server. Erfordert Claude Code v2.1.187 oder höher. Vor v2.1.203 waren stdio-Server vom Leerlauf-Timeout ausgenommen |

345| `CLAUDE_CODE_MESSAGING_SOCKET` | Wird von Claude Code gesetzt, nicht von Ihnen: In Sitzungen, die einen [Inbox-Socket](/docs/de/cross-session-messaging#the-sessions-inbox-socket) binden, exportiert Claude Code den Pfad dieses Sockets an Hooks und Bash-Befehle, wenn es den Socket bindet. In einer Sitzung, die mit aktiviertem Messaging startet, bindet Claude Code den Socket, bevor ein Hook ausgeführt wird. Andere Sitzungen auf dem Rechner stellen Nachrichten an diesen Pfad zu. Jede Sitzung exportiert ihren eigenen Socket statt eines von einem übergeordneten Prozess geerbten, und darauf eingehende Nachrichten durchlaufen die [Steuerung eingehender Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) der Sitzung. `env`-Blöcke in Einstellungen können die Variable nicht setzen. Erfordert Claude Code v2.1.224 oder höher |345| `CLAUDE_CODE_MESSAGING_SOCKET` | Wird von Claude Code gesetzt, nicht von Ihnen: In Sitzungen, die einen [Inbox-Socket](/docs/de/cross-session-messaging#the-sessions-inbox-socket) binden, exportiert Claude Code den Pfad dieses Sockets an Hooks und Bash-Befehle, wenn es den Socket bindet. In einer Sitzung, die mit aktiviertem Messaging startet, bindet Claude Code den Socket, bevor ein Hook ausgeführt wird. Andere Sitzungen auf dem Rechner stellen Nachrichten an diesen Pfad zu. Jede Sitzung exportiert ihren eigenen Socket statt eines von einem übergeordneten Prozess geerbten, und darauf eingehende Nachrichten durchlaufen die [Steuerung eingehender Nachrichten](/docs/de/cross-session-messaging#control-inbound-messages) der Sitzung. `env`-Blöcke in Einstellungen können die Variable nicht setzen. Erfordert Claude Code v2.1.224 oder höher |

346| `CLAUDE_CODE_MESSAGING_TOKEN` | Wird von Claude Code gesetzt, nicht von Ihnen: In Sitzungen, die einen [Inbox-Socket](/docs/de/cross-session-messaging#the-sessions-inbox-socket) binden, exportiert Claude Code dieses sitzungsspezifische Token zusammen mit `CLAUDE_CODE_MESSAGING_SOCKET` an Hooks und Bash-Befehle. Ein Skript, das an den Socket sendet, kann `{"type":"auth","token":"<token>"}` als erste Zeile senden, um nachzuweisen, dass es zur Sitzung gehört. Unter nativem Windows verlangt Claude Code diese Zeile und schließt jede Verbindung, die nicht mit einer gültigen Zeile beginnt. Die [Regeln für eigene Kindprozesse](/docs/de/cross-session-messaging#the-sessions-inbox-socket) legen fest, wann Claude Code das Token heranzieht. Jede Sitzung exportiert ihr eigenes Token, nie eines, das von einer übergeordneten Sitzung geerbt wurde. `env`-Blöcke in Einstellungen können die Variable nicht setzen. Erfordert Claude Code v2.1.228 oder höher |346| `CLAUDE_CODE_MESSAGING_TOKEN` | Wird von Claude Code gesetzt, nicht von Ihnen: In Sitzungen, die einen [Inbox-Socket](/docs/de/cross-session-messaging#the-sessions-inbox-socket) binden, exportiert Claude Code dieses sitzungsspezifische Token zusammen mit `CLAUDE_CODE_MESSAGING_SOCKET` an Hooks und Bash-Befehle. Ein Skript, das an den Socket sendet, kann `{"type":"auth","token":"<token>"}` als erste Zeile senden, um nachzuweisen, dass es zur Sitzung gehört. Unter nativem Windows verlangt Claude Code diese Zeile und schließt jede Verbindung, die nicht mit einer gültigen Zeile beginnt. Die [Regeln für eigene Kindprozesse](/docs/de/cross-session-messaging#the-sessions-inbox-socket) legen fest, wann Claude Code das Token heranzieht. Jede Sitzung exportiert ihr eigenes Token, nie eines, das von einer übergeordneten Sitzung geerbt wurde. `env`-Blöcke in Einstellungen können die Variable nicht setzen. Erfordert Claude Code v2.1.228 oder höher |


443| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Auf `1` setzen, um den Streaming-Leerlauf-Watchdog auf Byte-Ebene zwangsweise zu aktivieren, oder auf `0`, um ihn zwangsweise zu deaktivieren. `0` schaltet außerdem die [Erstbyte-Frist](/docs/de/network-config#streaming-idle-watchdogs) auf den Verbindungen aus, auf denen diese Frist läuft. Wenn die Variable nicht gesetzt ist, ist der Watchdog standardmäßig für direkte Verbindungen zur Anthropic API und zu [Claude Platform on AWS](/docs/de/claude-platform-on-aws) aktiviert sowie für Streaming-Antworten auf [Gateway](/docs/de/gateways)-Verbindungen, die über `ANTHROPIC_BASE_URL` oder `ANTHROPIC_AWS_BASE_URL` erreicht werden; vor v2.1.222 lief er auf diesen Gateway-Verbindungen nicht, sodass der Watchdog auf Ereignisebene dort einen Stillstand melden konnte, obwohl Keep-alive-Pings eintrafen. Zu Timeouts und dem Zusammenspiel der Timer siehe [Streaming-Leerlauf-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) |443| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Auf `1` setzen, um den Streaming-Leerlauf-Watchdog auf Byte-Ebene zwangsweise zu aktivieren, oder auf `0`, um ihn zwangsweise zu deaktivieren. `0` schaltet außerdem die [Erstbyte-Frist](/docs/de/network-config#streaming-idle-watchdogs) auf den Verbindungen aus, auf denen diese Frist läuft. Wenn die Variable nicht gesetzt ist, ist der Watchdog standardmäßig für direkte Verbindungen zur Anthropic API und zu [Claude Platform on AWS](/docs/de/claude-platform-on-aws) aktiviert sowie für Streaming-Antworten auf [Gateway](/docs/de/gateways)-Verbindungen, die über `ANTHROPIC_BASE_URL` oder `ANTHROPIC_AWS_BASE_URL` erreicht werden; vor v2.1.222 lief er auf diesen Gateway-Verbindungen nicht, sodass der Watchdog auf Ereignisebene dort einen Stillstand melden konnte, obwohl Keep-alive-Pings eintrafen. Zu Timeouts und dem Zusammenspiel der Timer siehe [Streaming-Leerlauf-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) |

444| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Auf `1` setzen, um den Streaming-Leerlauf-Watchdog auf Byte-Ebene für Amazon-Bedrock-Antworten vom Typ `vnd.amazon.eventstream` zu aktivieren, wodurch auch die [Erstbyte-Frist](/docs/de/network-config#streaming-idle-watchdogs) für Bedrock-Streaming-Anfragen aktiviert wird. Standardmäßig aus. Konfigurieren Sie den Timeout mit `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |444| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Auf `1` setzen, um den Streaming-Leerlauf-Watchdog auf Byte-Ebene für Amazon-Bedrock-Antworten vom Typ `vnd.amazon.eventstream` zu aktivieren, wodurch auch die [Erstbyte-Frist](/docs/de/network-config#streaming-idle-watchdogs) für Bedrock-Streaming-Anfragen aktiviert wird. Standardmäßig aus. Konfigurieren Sie den Timeout mit `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

445| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Auf `0` setzen, um den Streaming-Leerlauf-Watchdog auf Ereignisebene zwangsweise zu deaktivieren, oder auf `1`, um ihn zwangsweise zu aktivieren. Wenn die Variable nicht gesetzt ist, ist der Watchdog standardmäßig für alle Anbieter aktiviert. Vor v2.1.196 wurde der Standardwert ohne gesetzte Variable bei der direkten Anthropic API serverseitig gesteuert und war bei anderen Anbietern ausgeschaltet. Konfigurieren Sie den Timeout mit `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; zu den anderen Stillstands-Timern, die parallel dazu laufen, siehe [Streaming-Leerlauf-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) |445| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Auf `0` setzen, um den Streaming-Leerlauf-Watchdog auf Ereignisebene zwangsweise zu deaktivieren, oder auf `1`, um ihn zwangsweise zu aktivieren. Wenn die Variable nicht gesetzt ist, ist der Watchdog standardmäßig für alle Anbieter aktiviert. Vor v2.1.196 wurde der Standardwert ohne gesetzte Variable bei der direkten Anthropic API serverseitig gesteuert und war bei anderen Anbietern ausgeschaltet. Konfigurieren Sie den Timeout mit `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; zu den anderen Stillstands-Timern, die parallel dazu laufen, siehe [Streaming-Leerlauf-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) |

446| `CLAUDE_ENV_FILE` | Pfad zu einem Shell-Skript, dessen Inhalt Claude Code vor jedem Bash-Befehl im selben Shell-Prozess ausführt, sodass Exporte in der Datei für den Befehl sichtbar sind. Verwenden Sie dies, um die Aktivierung von virtualenv oder conda über Befehle hinweg beizubehalten. Wird außerdem dynamisch von den Hooks [SessionStart](/docs/de/hooks#persist-environment-variables), [Setup](/docs/de/hooks#setup), [CwdChanged](/docs/de/hooks#cwdchanged) und [FileChanged](/docs/de/hooks#filechanged) befüllt |446| `CLAUDE_ENV_FILE` | Pfad zu einem Shell-Skript, dessen Inhalt Claude Code vor jedem Bash-Befehl im selben Shell-Prozess ausführt, sodass Exporte in der Datei für den Befehl sichtbar sind. Verwenden Sie dies, um die Aktivierung von virtualenv oder conda über mehrere Befehle hinweg beizubehalten. Ab v2.1.296 erhalten auch PowerShell-Befehle dessen Variablen, unter den in [Persistierte Variablen in PowerShell-Befehlen](/docs/de/hooks#persisted-variables-in-powershell-commands) beschriebenen Bedingungen. Wird außerdem dynamisch von den Hooks [SessionStart](/docs/de/hooks#persist-environment-variables), [Setup](/docs/de/hooks#setup), [CwdChanged](/docs/de/hooks#cwdchanged) und [FileChanged](/docs/de/hooks#filechanged) befüllt |

447| `CLAUDE_JOB_DIR` | Wird von Claude Code in jeder [Hintergrundsitzung](/docs/de/agent-view) auf das Verzeichnis `~/.claude/jobs/<id>` dieser Sitzung gesetzt. Shell-Befehle, die die Sitzung ausführt, erben die Variable. Schreiben Sie temporäre Dateien nach [`$CLAUDE_JOB_DIR/tmp`](/docs/de/agent-view#where-state-is-stored). Claudes `Write`- und `Edit`-Aufrufe dort fragen nicht nach Berechtigung, und das Verzeichnis wird entfernt, wenn die Sitzung gelöscht wird |447| `CLAUDE_JOB_DIR` | Wird von Claude Code in jeder [Hintergrundsitzung](/docs/de/agent-view) auf das Verzeichnis `~/.claude/jobs/<id>` dieser Sitzung gesetzt. Shell-Befehle, die die Sitzung ausführt, erben die Variable. Schreiben Sie temporäre Dateien nach [`$CLAUDE_JOB_DIR/tmp`](/docs/de/agent-view#where-state-is-stored). Claudes `Write`- und `Edit`-Aufrufe dort fragen nicht nach Berechtigung, und das Verzeichnis wird entfernt, wenn die Sitzung gelöscht wird |

448| `CLAUDE_PID` | Claude Code setzt dies in den von ihm gestarteten Subprozessen auf seine eigene Prozess-ID: Befehle der Bash- und PowerShell-Tools sowie Hook-Befehle. Unter Linux verwendet die Shell-Integration des Bash-Tools die Variable, um ein `pkill`-Muster abzulehnen, das auf den Claude-Code-Prozess selbst zutreffen würde; siehe [die Fehlerreferenz](/docs/de/errors#pkill-pattern-matches-the-claude-code-process). Lesen Sie die Variable in Ihren eigenen Skripten aus, um den übergeordneten Claude-Code-Prozess gezielt zu identifizieren oder ihm Signale zu senden. Erfordert Claude Code v2.1.214 oder höher |448| `CLAUDE_PID` | Claude Code setzt dies in den von ihm gestarteten Subprozessen auf seine eigene Prozess-ID: Befehle der Bash- und PowerShell-Tools sowie Hook-Befehle. Unter Linux verwendet die Shell-Integration des Bash-Tools die Variable, um ein `pkill`-Muster abzulehnen, das auf den Claude-Code-Prozess selbst zutreffen würde; siehe [die Fehlerreferenz](/docs/de/errors#pkill-pattern-matches-the-claude-code-process). Lesen Sie die Variable in Ihren eigenen Skripten aus, um den übergeordneten Claude-Code-Prozess gezielt zu identifizieren oder ihm Signale zu senden. Erfordert Claude Code v2.1.214 oder höher |

449| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Präfix für automatisch generierte Namen von [Remote Control](/docs/de/remote-control)-Sitzungen, wenn kein expliziter Name angegeben ist. Standardmäßig der Hostname Ihres Rechners, was Namen wie `myhost-graceful-unicorn` ergibt. Das CLI-Flag `--remote-control-session-name-prefix` legt denselben Wert für einen einzelnen Aufruf fest |449| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Präfix für automatisch generierte Namen von [Remote Control](/docs/de/remote-control)-Sitzungen, wenn kein expliziter Name angegeben ist. Standardmäßig der Hostname Ihres Rechners, was Namen wie `myhost-graceful-unicorn` ergibt. Das CLI-Flag `--remote-control-session-name-prefix` legt denselben Wert für einen einzelnen Aufruf fest |

errors.md +73 −10

Details

37| `Connection lost while your computer was asleep` | [Automatische Wiederholungen](#automatic-retries) |37| `Connection lost while your computer was asleep` | [Automatische Wiederholungen](#automatic-retries) |

38| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |38| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |

39| `Auto mode could not evaluate this action and is blocking it for safety` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |39| `Auto mode could not evaluate this action and is blocking it for safety` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |

40| `Not run · auto mode's check had no usable answer` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |

40| `Auto mode classifier transcript exceeded context window` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |41| `Auto mode classifier transcript exceeded context window` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |

41| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |42| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Serverfehler](#auto-mode-cannot-determine-the-safety-of-an-action) |

42| `The server-side auto mode classifier gave no verdict` | [Serverfehler](#the-server-returned-no-safety-verdict) |43| `The server-side auto mode classifier gave no verdict` | [Serverfehler](#the-server-returned-no-safety-verdict) |


247| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [Befehlszeilenfehler](#windows-reported-an-error-ebadf) |248| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [Befehlszeilenfehler](#windows-reported-an-error-ebadf) |

248| `Cannot switch renderers in this session` | [Befehlszeilenfehler](#cannot-switch-renderers-in-this-session) |249| `Cannot switch renderers in this session` | [Befehlszeilenfehler](#cannot-switch-renderers-in-this-session) |

249| `Cannot switch renderers while work is running in the background` | [Befehlszeilenfehler](#cannot-switch-renderers-in-this-session) |250| `Cannot switch renderers while work is running in the background` | [Befehlszeilenfehler](#cannot-switch-renderers-in-this-session) |

251| `Claude Code couldn't restart` | [Befehlszeilenfehler](#claude-code-couldnt-restart) |

250| `Couldn't open Claude Desktop` | [Befehlszeilenfehler](#couldnt-open-claude-desktop) |252| `Couldn't open Claude Desktop` | [Befehlszeilenfehler](#couldnt-open-claude-desktop) |

251| `Failed to open Claude Desktop. Please try opening it manually.` | [Befehlszeilenfehler](#couldnt-open-claude-desktop) |253| `Failed to open Claude Desktop. Please try opening it manually.` | [Befehlszeilenfehler](#couldnt-open-claude-desktop) |

252| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |254| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Befehlszeilenfehler](#terminal-setup-left-your-zed-keymap-unchanged) |


262| `Marketplace "<name>" is already added from a different source` | [Plugin-Fehler](#marketplace-is-already-added-from-a-different-source) |264| `Marketplace "<name>" is already added from a different source` | [Plugin-Fehler](#marketplace-is-already-added-from-a-different-source) |

263| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin-Fehler](#marketplace-name-is-another-spelling-of-a-reserved-name) |265| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin-Fehler](#marketplace-name-is-another-spelling-of-a-reserved-name) |

264| `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name) |266| `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name) |

267| `Cannot add marketplace "<name>": Claude Code reserves this name and cannot register a marketplace under it` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#claude-code-reserves-this-name) |

265| `Marketplace "<name>" is added but ignored` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#marketplace-is-added-but-ignored) |268| `Marketplace "<name>" is added but ignored` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#marketplace-is-added-but-ignored) |

266| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#marketplace-is-added-but-ignored) |269| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin-Fehlerbehebung](/docs/de/plugins/troubleshooting#marketplace-is-added-but-ignored) |

267| `references ${user_config.*} in a shell-form command` | [Plugin-Fehler](#plugin-command-references-user-config) |270| `references ${user_config.*} in a shell-form command` | [Plugin-Fehler](#plugin-command-references-user-config) |


308| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |311| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |

309| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |312| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |

310| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |313| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Werkzeugfehler](#disk-quota-or-temp-filesystem-is-full) |

314| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Werkzeugfehler](#file-is-not-valid-utf-8) |

311| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |315| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |

312| `the source file has the replacement character U+FFFD` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |316| `the source file has the replacement character U+FFFD` | [Werkzeugfehler](#the-source-file-is-not-valid-utf-8-text) |

313| `Not published: that file is on a network share` | [Werkzeugfehler](#not-published-that-file-is-on-a-network-share) |317| `Not published: that file is on a network share` | [Werkzeugfehler](#not-published-that-file-is-on-a-network-share) |


334| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Fehler in Hintergrund-Sitzungen](#session-isnt-responding) |338| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Fehler in Hintergrund-Sitzungen](#session-isnt-responding) |

335| `Session <id> was stopped while the respawn was in flight` | [Fehler in Hintergrund-Sitzungen](#session-was-stopped-while-the-respawn-was-in-flight) |339| `Session <id> was stopped while the respawn was in flight` | [Fehler in Hintergrund-Sitzungen](#session-was-stopped-while-the-respawn-was-in-flight) |

336| `This session was running agent '<name>', which is no longer available` | [Fehler in Hintergrund-Sitzungen](#session-agent-no-longer-available) |340| `This session was running agent '<name>', which is no longer available` | [Fehler in Hintergrund-Sitzungen](#session-agent-no-longer-available) |

341| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [Fehler in Hintergrund-Sitzungen](#restarted-after-its-next-loop-wakeup-was-due) |

337| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Fehler in Hintergrund-Sitzungen](#claude_code_process_wrapper-launcher-errors) |342| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Fehler in Hintergrund-Sitzungen](#claude_code_process_wrapper-launcher-errors) |

338| `EUNKNOWN: unknown error, uv_spawn` | [Fehler in Hintergrund-Sitzungen](#eunknown-when-starting-a-background-session) |343| `EUNKNOWN: unknown error, uv_spawn` | [Fehler in Hintergrund-Sitzungen](#eunknown-when-starting-a-background-session) |

339| `EACCES: permission denied, posix_spawn` | [Fehler in Hintergrund-Sitzungen](#eacces-when-starting-a-background-session) |344| `EACCES: permission denied, posix_spawn` | [Fehler in Hintergrund-Sitzungen](#eacces-when-starting-a-background-session) |


439| :- | :- | :- |444| :- | :- | :- |

440| [`CLAUDE_CODE_MAX_RETRIES`](/docs/de/env-vars) | 10 | Anzahl der Wiederholungsversuche. Ab v2.1.186 auf 15 begrenzt; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standardwert und hebt die Begrenzung auf. Verringern Sie den Wert, damit Fehler in Skripten schneller sichtbar werden. |445| [`CLAUDE_CODE_MAX_RETRIES`](/docs/de/env-vars) | 10 | Anzahl der Wiederholungsversuche. Ab v2.1.186 auf 15 begrenzt; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standardwert und hebt die Begrenzung auf. Verringern Sie den Wert, damit Fehler in Skripten schneller sichtbar werden. |

441| [`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. |446| [`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. |

447| [`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. |

442| [`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. |448| [`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. |

443| [`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. |449| [`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. |

444| [`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. |450| [`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. |


596<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.602<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

597```603```

598 604 

605In einer interaktiven Sitzung erscheint statt dieser Nachricht eine abgeblendete Zeile `Not run · auto mode's check had no usable answer` unter dem Tool-Aufruf. Drücken Sie `Ctrl+O`, um die Nachricht im [Transkript-Viewer](/docs/de/interactive-mode#transcript-viewer) zu lesen. Die Verweigerungen unter [Der Server hat kein Sicherheitsurteil zurückgegeben](#the-server-returned-no-safety-verdict) zeigen dieselbe Zeile. Vor v2.1.296 erschien die Nachricht als roter Fehler unter dem Aufruf.

606 

599Wenn Claude Code die Fehlerkategorie bestimmen kann, nennt es die Kategorie in Klammern nach `temporarily unavailable`, z. B. `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Die Kategorien sind `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` und `(connection failed)`. Wenn sich `(timed out)` oder `(connection failed)` wiederholt, überprüfen Sie Ihre Verbindung; siehe [Kann keine Verbindung zur API herstellen](#unable-to-connect-to-api). Vor v2.1.229 nannte die Nachricht nie eine Kategorie und lautete `Wait briefly and then try this action again`.607Wenn Claude Code die Fehlerkategorie bestimmen kann, nennt es die Kategorie in Klammern nach `temporarily unavailable`, z. B. `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Die Kategorien sind `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` und `(connection failed)`. Wenn sich `(timed out)` oder `(connection failed)` wiederholt, überprüfen Sie Ihre Verbindung; siehe [Kann keine Verbindung zur API herstellen](#unable-to-connect-to-api). Vor v2.1.229 nannte die Nachricht nie eine Kategorie und lautete `Wait briefly and then try this action again`.

600 608 

601Wenn keine Kategorie passt, wird die Nachricht ohne Kategorie in Klammern angezeigt; mehr als ein Fehler erzeugt diese Form. Bei [Amazon Bedrock](/docs/de/amazon-bedrock), einschließlich des [Mantle-Endpunkts](/docs/de/amazon-bedrock#use-the-mantle-endpoint), wird sie auch angezeigt, wenn Ihr AWS-Konto das in der Nachricht genannte Modell nicht aufrufen kann, und dieser Fehler wiederholt sich bei jedem Wiederholungsversuch, bis Ihrem Konto Zugriff auf das Modell gewährt wird.609Wenn keine Kategorie passt, wird die Nachricht ohne Kategorie in Klammern angezeigt; mehr als ein Fehler erzeugt diese Form. Bei [Amazon Bedrock](/docs/de/amazon-bedrock), einschließlich des [Mantle-Endpunkts](/docs/de/amazon-bedrock#use-the-mantle-endpoint), wird sie auch angezeigt, wenn Ihr AWS-Konto das in der Nachricht genannte Modell nicht aufrufen kann, und dieser Fehler wiederholt sich bei jedem Wiederholungsversuch, bis Ihrem Konto Zugriff auf das Modell gewährt wird.


1900 1908 

1901Claude Code überspringt diese Überprüfung, wenn eine [verwaltete Einstellungsdatei, MDM-Richtlinie oder Richtlinien-Hilfsprogramm](/docs/de/managed-settings) [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) auf `"gateway"` setzt oder [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl) ohne `forceLoginMethod` setzt. Mit einer dieser Konfigurationen öffnet Claude Code den Anmeldeschritt auf dem **Cloud-Gateway**-Bildschirm statt einer Anthropic-Anmeldemethode. Claude Code überspringt die Überprüfung auch, wenn eine verwaltete Einstellungsquelle auf dem Computer vorhanden ist, aber nicht gelesen werden kann, da diese Quelle die Gateway-Konfiguration enthalten kann. Vor v2.1.247 führte Claude Code die Überprüfung auch unter dieser Konfiguration aus und beendete sich mit diesem Fehler, wenn die Anthropic-Endpunkte unerreichbar waren.1909Claude Code überspringt diese Überprüfung, wenn eine [verwaltete Einstellungsdatei, MDM-Richtlinie oder Richtlinien-Hilfsprogramm](/docs/de/managed-settings) [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) auf `"gateway"` setzt oder [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl) ohne `forceLoginMethod` setzt. Mit einer dieser Konfigurationen öffnet Claude Code den Anmeldeschritt auf dem **Cloud-Gateway**-Bildschirm statt einer Anthropic-Anmeldemethode. Claude Code überspringt die Überprüfung auch, wenn eine verwaltete Einstellungsquelle auf dem Computer vorhanden ist, aber nicht gelesen werden kann, da diese Quelle die Gateway-Konfiguration enthalten kann. Vor v2.1.247 führte Claude Code die Überprüfung auch unter dieser Konfiguration aus und beendete sich mit diesem Fehler, wenn die Anthropic-Endpunkte unerreichbar waren.

1902 1910 

1911Claude Code überspringt die Überprüfung auch auf einem Computer ohne verwaltete Einstellungen, wenn Ihre eigene `~/.claude/settings.json` mit `forceLoginMethod` und `forceLoginGatewayUrl` [ein Gateway benennt](/docs/de/claude-apps-gateway#set-the-gateway-url-in-user-settings). Vor v2.1.295 führte Claude Code die Überprüfung in diesem Fall aus.

1912 

1903**Was zu tun ist:**1913**Was zu tun ist:**

1904 1914 

1905* Wenn die Nachricht eine Proxy-Variable benennt, überprüfen Sie, dass ihr Wert auf den richtigen Proxy verweist, und bitten Sie Ihr Netzwerk-Team, HTTPS-Verbindungen durch ihn zum Host in der Nachricht zuzulassen. Siehe [Netzwerkkonfiguration](/docs/de/network-config).1915* Wenn die Nachricht eine Proxy-Variable benennt, überprüfen Sie, dass ihr Wert auf den richtigen Proxy verweist, und bitten Sie Ihr Netzwerk-Team, HTTPS-Verbindungen durch ihn zum Host in der Nachricht zuzulassen. Siehe [Netzwerkkonfiguration](/docs/de/network-config).


3413Claude 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:3423Claude 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:

3414 3424 

3415* `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 genehmigen3425* `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 genehmigen

3416* ``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 zu `shell: powershell`. Siehe [Wie eingefügte Befehle ausgeführt werden](/docs/de/skills#how-injected-commands-run)3426* ``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)

3417 3427 

3418**Vorgehensweise:**3428**Vorgehensweise:**

3419 3429 


3562 3572 

3563* **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 Beispiel3573* **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

3564* **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>`)``3574* **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>`)``

3565* **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 flach ist, schlägt es stattdessen `git fetch --unshallow origin` vor. Vor v2.1.221 schlug der Hinweis `git fetch --unshallow origin` für jeden abgerufenen Basis-Branch vor, und bei einem vollständigen Klon schlägt dieser Befehl mit `fatal: --unshallow on a complete repository does not make sense` fehl.3575* **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.

3566 3576 

3567**Vorgehensweise:**3577**Vorgehensweise:**

3568 3578 


3756No conversation found with session ID: <session-id>3766No conversation found with session ID: <session-id>

3757```3767```

3758 3768 

3759Claude Code wird nach Anzeige der Meldung mit Code 1 beendet. Claude Code [durchsucht zuerst das aktuelle Projekt und dann jedes andere Projekt auf diesem Rechner](/docs/de/sessions#resume-a-session) nach der ID. Vor v2.1.223 endete die Suche beim aktuellen Projektverzeichnis und dessen Git-Worktrees, setzen Sie die Sitzung daher aus dem Verzeichnis fort, in dem sie zuletzt gearbeitet hat.3769Claude Code beendet sich nach der Anzeige der Meldung mit dem Code 1. Claude Code [durchsucht zuerst das aktuelle Projekt und dann jedes andere Projekt auf diesem Rechner](/docs/de/sessions#where-the-session-picker-looks) nach der ID. Vor v2.1.223 endete die Suche beim aktuellen Projektverzeichnis und dessen Git-Worktrees; setzen Sie die Sitzung daher aus dem Verzeichnis fort, in dem sie zuletzt gearbeitet hat.

3760 3770 

3761Häufige Ursachen:3771Häufige Ursachen:

3762 3772 


3816 3826 

3817* Führen Sie in einer Sitzung, die ohne diese Einschränkungen gestartet wurde, `/tui fullscreen` aus, oder `/tui default`, um zurückzuwechseln. Claude Code speichert dort die [Einstellung `tui`](/docs/de/settings-reference#tui)3827* Führen Sie in einer Sitzung, die ohne diese Einschränkungen gestartet wurde, `/tui fullscreen` aus, oder `/tui default`, um zurückzuwechseln. Claude Code speichert dort die [Einstellung `tui`](/docs/de/settings-reference#tui)

3818 3828 

3829<h3 id="claude-code-couldnt-restart">

3830 Claude Code couldn't restart

3831</h3>

3832 

3833Claude 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:

3834 

3835```text theme={null}

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

3837```

3838 

3839Wenn der Neustart keine Konversation zum erneuten Öffnen hatte, zum Beispiel weil `/tui` Ihre erste Eingabe in einer neuen Sitzung war, lautet die Meldung `Claude Code couldn't restart. Start Claude Code again.`

3840 

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

3842 

3843* 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 aus

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

3845 

3819<h3 id="couldnt-open-claude-desktop">3846<h3 id="couldnt-open-claude-desktop">

3820 Claude Desktop konnte nicht geöffnet werden3847 Claude Desktop konnte nicht geöffnet werden

3821</h3>3848</h3>


4593* Oder starten Sie Claude Code neu, wobei [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) auf ein Verzeichnis auf einem Dateisystem mit ausreichend Platz gesetzt ist4620* Oder starten Sie Claude Code neu, wobei [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) auf ein Verzeichnis auf einem Dateisystem mit ausreichend Platz gesetzt ist

4594* Lassen Sie Claude den Befehl dann erneut ausführen. Die ausgegebene Ausgabe ging verloren, sie wurde nicht gekürzt4621* Lassen Sie Claude den Befehl dann erneut ausführen. Die ausgegebene Ausgabe ging verloren, sie wurde nicht gekürzt

4595 4622 

4623<h3 id="file-is-not-valid-utf-8">

4624 Datei ist kein gültiges UTF-8

4625</h3>

4626 

4627Claude hat das Edit- oder NotebookEdit-Tool auf eine Datei angewendet, deren Bytes sich nicht als UTF-8 dekodieren lassen, und Claude Code hat die Änderung abgelehnt. Es wurde nichts geschrieben, die Datei ist also unverändert. Diese Tools speichern die gesamte Datei als UTF-8 zurück, wodurch jedes Byte, das sie nicht dekodieren konnten, in das Ersatzzeichen `U+FFFD` umgewandelt worden wäre. Die Nachricht erscheint im Tool-Ergebnis:

4628 

4629```text wrap theme={null}

4630File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.

4631```

4632 

4633Auch eine Datei, die UTF-8 sein soll, erhält diese Nachricht, wenn sie auch nur eine ungültige Bytefolge enthält, da die Überprüfung die Bytes der Datei als Ganzes umfasst.

4634 

4635**Was zu tun ist:**

4636 

4637* Um die Datei in ihrer aktuellen Kodierung zu behalten, lassen Sie Claude die Änderung mit einem Shell-Befehl vornehmen, der die Datei in dieser Kodierung liest und schreibt, wie es die Nachricht vorgibt

4638* Um die Datei weiterhin mit dem Edit-Tool zu bearbeiten, konvertieren Sie sie in UTF-8 oder beheben Sie die ungültigen Bytes in einer Datei, die UTF-8 sein soll, und bitten Sie Claude dann, die Bearbeitung erneut vorzunehmen

4639 

4640Vor v2.1.296 wendeten Edit und NotebookEdit eine solche Bearbeitung an und speicherten jedes Byte, das sie nicht dekodieren konnten, als `U+FFFD`. Aktualisieren Sie Claude Code, wenn Sie eine dieser Versionen verwenden.

4641 

4596<h3 id="the-source-file-is-not-valid-utf-8-text">4642<h3 id="the-source-file-is-not-valid-utf-8-text">

4597 Die Quelldatei ist kein gültiger UTF-8-Text4643 Die Quelldatei ist kein gültiger UTF-8-Text

4598</h3>4644</h3>


4752 Befehl blockiert durch die Worktree-Isolationsprüfungen4798 Befehl blockiert durch die Worktree-Isolationsprüfungen

4753</h3>4799</h3>

4754 4800 

4755Claude hat einen Bash- oder Monitor-Befehl in einer [Sitzung ausgeführt, die in einem Worktree isoliert ist](/docs/de/worktrees#how-claude-code-enforces-isolation), und Claude Code hat ihn aus einem von zwei Gründen abgelehnt:4801Claude hat einen Bash-, [PowerShell](/docs/de/tools-reference#powershell-tool)- oder [Monitor](/docs/de/tools-reference#monitor-tool)-Befehl in einer [Sitzung ausgeführt, die in einem Worktree isoliert ist](/docs/de/worktrees#how-claude-code-enforces-isolation), und Claude Code hat ihn aus einem dieser Gründe abgelehnt:

4756 4802 

4757* Der Befehl zeigt git auf den Haupt-Checkout.4803* Der Befehl würde im Haupt-Checkout oder in einem anderen Worktree ausgeführt. Die Meldung sagt, dass sein Arbeitsverzeichnis `resolved to the shared checkout` oder `is in a different worktree`.

4758* Claude Code kann aus dem Befehlstext nicht überprüfen, dass jedes git, das der Befehl ausführt, innerhalb des Worktree bleibt. Ein Befehl, der git nie benennt, kann trotzdem aus diesem Grund abgelehnt werden, da das Erweitern einer Variablenumleitung wie `${!name}` oder das Ausführen einer Bash-Funktionssubstitution wie `${ command; }` einen Wert zur Laufzeit erzeugt, der selbst ein Befehl sein kann.4804* Ein Bash- oder Monitor-Befehl zeigt git auf den Haupt-Checkout.

4805* Claude Code kann aus dem Text eines Bash- oder Monitor-Befehls nicht überprüfen, dass jedes git, das der Befehl ausführt, innerhalb des Worktree bleibt. Ein Befehl, der git nie benennt, kann trotzdem aus diesem Grund abgelehnt werden, da das Erweitern einer Variablenumleitung wie `${!name}` oder das Ausführen einer Bash-Funktionssubstitution wie `${ command; }` einen Wert zur Laufzeit erzeugt, der selbst ein Befehl sein kann.

4759 4806 

4760Die Mitte der Meldung nennt, was nicht überprüft werden konnte:4807Die Meldung sagt `is isolated in the worktree <path>, but this command`, gefolgt vom Grund, etwa einem Befehl, dessen Text Claude Code nicht überprüfen konnte:

4761 4808 

4762```text wrap theme={null}4809```text wrap theme={null}

4763This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.4810This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.


4765 4812 

4766**Was zu tun ist:**4813**Was zu tun ist:**

4767 4814 

4768* Normalerweise nichts: Claude liest die Meldung und schreibt den Befehl so um, wie ihr letzter Satz verlangt4815* **Git auf den Haupt-Checkout gezeigt oder Befehlstext, der nicht überprüft werden kann**: nichts. Claude liest die Meldung und schreibt den Befehl so um, wie ihr letzter Satz verlangt. Wenn ein Befehl, den Sie angefordert haben, wegen einer Erweiterung in seinem Text weiterhin abgelehnt wird, schreiben Sie den gekennzeichneten Wert wörtlich und führen Sie git als eigenen einfachen Befehl von innerhalb des Worktree aus

4769* Wenn ein Befehl, den Sie angefordert haben, weiterhin abgelehnt wird, schreiben Sie den gekennzeichneten Wert wörtlich: Ersetzen Sie die Umleitung oder Substitution durch ihren Wert, und führen Sie git als eigenen einfachen Befehl von innerhalb des Worktree aus

4770* Um absichtlich auf den Haupt-Checkout einzuwirken, führen Sie den Befehl selbst in einem Terminal außerhalb der Sitzung aus4816* Um absichtlich auf den Haupt-Checkout einzuwirken, führen Sie den Befehl selbst in einem Terminal außerhalb der Sitzung aus

4771 4817 

4772<h3 id="this-session-has-no-saved-transcript">4818<h3 id="this-session-has-no-saved-transcript">


4946* Oder setzen Sie mit `--agent <name>` fort, das einen Agenten benennt, der existiert, um die Sitzung stattdessen als dieser Agent auszuführen4992* Oder setzen Sie mit `--agent <name>` fort, das einen Agenten benennt, der existiert, um die Sitzung stattdessen als dieser Agent auszuführen

4947* Wenn der Agent projektbezogen ist und Sie dem ursprünglichen Verzeichnis der Sitzung nicht vertraut haben, führen Sie Claude Code dort einmal aus, akzeptieren Sie den Vertrauensdialog, dann setzen Sie erneut fort4993* Wenn der Agent projektbezogen ist und Sie dem ursprünglichen Verzeichnis der Sitzung nicht vertraut haben, führen Sie Claude Code dort einmal aus, akzeptieren Sie den Vertrauensdialog, dann setzen Sie erneut fort

4948 4994 

4995<h3 id="restarted-after-its-next-loop-wakeup-was-due">

4996 Diese Sitzung wurde neu gestartet, nachdem ihr nächstes /loop-Aufwachen fällig war

4997</h3>

4998 

4999Ein [selbstgetaktetes `/loop`](/docs/de/scheduled-tasks#let-claude-choose-the-interval) in einer [Hintergrund-Sitzung](/docs/de/agent-view) wurde gestoppt. Der Prozess der Sitzung endete, während die Schleife auf ihr nächstes Aufwachen wartete, und dieses Aufwachen wurde fällig, bevor der [nächste Prozess](/docs/de/agent-view#the-supervisor-process) der Sitzung startete. Das verpasste Aufwachen wird nicht verspätet ausgelöst. Der Hinweis gibt an, wie überfällig das Aufwachen war, als die Sitzung neu startete:

5000 

5001```text theme={null}

5002This session restarted 12m after its next /loop wakeup was due, so that wakeup will not fire. The loop stays stopped until Claude schedules it again: reply to continue it.

5003```

5004 

5005Vor v2.1.295 stoppte die Schleife in dieser Situation ohne Hinweis.

5006 

5007**Was zu tun ist:**

5008 

5009* Um die Schleife fortzusetzen, [antworten Sie der Sitzung](/docs/de/agent-view#peek-and-reply) und sagen Sie es, etwa `keep the loop running`. Claude liest den Hinweis mit Ihrer Antwort und kann das nächste Aufwachen planen

5010* Wenn Sie mit der Schleife fertig sind, tun Sie nichts. Sie ist bereits gestoppt

5011 

4949<h3 id="claude_code_process_wrapper-launcher-errors">5012<h3 id="claude_code_process_wrapper-launcher-errors">

4950 CLAUDE\_CODE\_PROCESS\_WRAPPER Launcher-Fehler5013 CLAUDE\_CODE\_PROCESS\_WRAPPER Launcher-Fehler

4951</h3>5014</h3>


5343Pfade, die Claude Code auf diese Weise ablehnt, umfassen:5406Pfade, die Claude Code auf diese Weise ablehnt, umfassen:

5344 5407 

5345* UNC-Freigaben wie `\\server\share`5408* UNC-Freigaben wie `\\server\share`

5346* Automount-Pfade wie `/net/<host>`, es sei denn, Sie haben Claude Code aus einem Verzeichnis unter dem Automount dieses Hosts gestartet5409* Automount-Pfade wie `/net/<host>`, es sei denn, Sie haben Claude Code aus einem Verzeichnis unter dem Automount dieses Hosts gestartet. Lesezugriffe unter diesem Automount durchlaufen weiterhin die [Netzwerkpfadprüfung](/docs/de/permissions#network-paths).

5347* Lokale Pfade, die einen Netzwerkort über einen symbolischen Link oder eine Verknüpfung erreichen5410* Lokale Pfade, die einen Netzwerkort über einen symbolischen Link oder eine Verknüpfung erreichen

5348 5411 

5349Zugeordnete Laufwerksbuchstaben und `\\wsl$`-Pfade zählen nicht als Netzwerkpfade.5412Zugeordnete Laufwerksbuchstaben und `\\wsl$`-Pfade zählen nicht als Netzwerkpfade.

Details

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

29| Plugin-Marktplätze | ✅ Unterstützt | Anforderungen an Anmeldedaten unterscheiden sich je nach Oberfläche. Siehe [Plugin-Marktplätze auf GHES](#plugin-marketplaces-on-ghes) |29| Plugin-Marktplätze | ✅ Unterstützt | Anforderungen an Anmeldedaten unterscheiden sich je nach Oberfläche. Siehe [Plugin-Marktplätze auf GHES](#plugin-marketplaces-on-ghes) |

30| Beitragskennzahlen | ✅ Unterstützt | Bereitgestellt über Webhooks zum [Analytics-Dashboard](/docs/de/analytics) |30| Beitragskennzahlen | ❌ Nicht unterstützt | Erfordert Repositorys, die auf github.com gehostet werden. Das [Analytics-Dashboard](/docs/de/analytics) zeigt weiterhin Nutzungskennzahlen für die Arbeit in GHES-Repositorys an |

31| GitHub Actions | ✅ Unterstützt | Erfordert manuelle Workflow-Einrichtung; `/install-github-app` ist nur für github.com |31| GitHub Actions | ✅ Unterstützt | Erfordert manuelle Workflow-Einrichtung; `/install-github-app` ist nur für github.com |

32| GitHub MCP-Server | ❌ Nicht unterstützt | Der GitHub MCP-Server funktioniert nicht mit GHES-Instanzen |32| GitHub MCP-Server | ❌ Nicht unterstützt | Der GitHub MCP-Server funktioniert nicht mit GHES-Instanzen |

33 33 


56 Installieren Sie die App auf der GitHub App-Seite Ihrer GHES-Instanz auf den Repositorys oder Organisationen, auf die Claude zugreifen soll. Sie können mit einer Teilmenge beginnen und später weitere hinzufügen.56 Installieren Sie die App auf der GitHub App-Seite Ihrer GHES-Instanz auf den Repositorys oder Organisationen, auf die Claude zugreifen soll. Sie können mit einer Teilmenge beginnen und später weitere hinzufügen.

57 </Step>57 </Step>

58 58 

59 <Step title="Aktivieren Sie Funktionen">59 <Step title="Aktivieren Sie Code Review">

60 Gehen Sie zu [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) und aktivieren Sie [Code Review](/docs/de/code-review#set-up-code-review) und [Beitragskennzahlen](/docs/de/analytics#enable-contribution-metrics) für Ihre GHES-Repositorys mit der gleichen Konfiguration wie github.com.60 Gehen Sie zu [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) und aktivieren Sie [Code Review](/docs/de/code-review#set-up-code-review) für Ihre GHES-Repositorys mit der gleichen Konfiguration wie github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 


65 GitHub App-Berechtigungen65 GitHub App-Berechtigungen

66</h3>66</h3>

67 67 

68Das Manifest konfiguriert die GitHub App mit den Berechtigungen und Webhook-Ereignissen unten, die zusammen Cloud-Sitzungen, Code Review, Claude Security, Plugin-Marketplaces und Beitragskennzahlen abdecken:68Das Manifest konfiguriert die GitHub App mit den Berechtigungen und Webhook-Ereignissen unten, die zusammen Cloud-Sitzungen, Code Review, Claude Security und Plugin-Marketplaces abdecken:

69 69 

70| Berechtigung | Zugriff | Verwendet für |70| Berechtigung | Zugriff | Verwendet für |

71| :- | :- | :- |71| :- | :- | :- |


238 Marktplatz-Hinzufügen auf claude.ai schlägt mit GitHub-Zugriffsfehler fehl238 Marktplatz-Hinzufügen auf claude.ai schlägt mit GitHub-Zugriffsfehler fehl

239</h3>239</h3>

240 240 

241Wenn das Hinzufügen eines GHES-Marktplatzes aus Ihren Benutzereinstellungen mit einem generischen Fehler wie „Marktplatz konnte nicht hinzugefügt werden" fehlschlägt, überprüfen Sie zunächst Ihre GitHub Enterprise-Verbindung. Dies ist das, was angezeigt wird, wenn Ihr eigenes GitHub Enterprise-Konto nicht mit Claude verbunden ist, auch wenn Ihre GHES-Instanz der Organisation konfiguriert ist und andere Benutzer verbunden sind. Der Dialog verweist nicht auf den GitHub Enterprise-Verbindungsfluss, und die Option „Mit GitHub verbinden" auf der Registerkarte „Durchsuchen" meldet sich bei github.com an, was keinen Zugriff auf GHES-Repositories gewährt.241Wenn das Hinzufügen eines GHES-Marktplatzes aus Ihren Benutzereinstellungen mit einem generischen Fehler wie „Marktplatz konnte nicht hinzugefügt werden“ fehlschlägt, überprüfen Sie zunächst Ihre GitHub Enterprise-Verbindung. Dies ist das, was angezeigt wird, wenn Ihr eigenes GitHub Enterprise-Konto nicht mit Claude verbunden ist, auch wenn Ihre GHES-Instanz der Organisation konfiguriert ist und andere Benutzer verbunden sind. Der Dialog verweist nicht auf den GitHub Enterprise-Verbindungsfluss, und die Option „Mit GitHub verbinden“ auf der Registerkarte „Durchsuchen“ meldet sich bei github.com an, was keinen Zugriff auf GHES-Repositories gewährt.

242 242 

243Verbinden Sie Ihr GitHub Enterprise-Konto an einer dieser Stellen und fügen Sie den Marketplace dann erneut hinzu:243Verbinden Sie Ihr GitHub Enterprise-Konto an einer dieser Stellen und fügen Sie den Marketplace dann erneut hinzu:

244 244 


247 247 

248Alternativ können Sie einen Owner bitten, den Marketplace in den Plugin-Einstellungen der Organisation hinzuzufügen, wodurch die Verbindung pro Benutzer nicht mehr erforderlich ist.248Alternativ können Sie einen Owner bitten, den Marketplace in den Plugin-Einstellungen der Organisation hinzuzufügen, wodurch die Verbindung pro Benutzer nicht mehr erforderlich ist.

249 249 

250Auf anderen claude.ai-Oberflächen deutet ein Fehler „Repository nicht gefunden. Falls es privat ist, ist GitHub-Zugriff erforderlich" auf einem GHES-Marktplatz normalerweise auf dieselbe fehlende Verbindung hin. Verbinden Sie Ihr GitHub Enterprise-Konto über einen der oben genannten Pfade und versuchen Sie es dann erneut.250Auf anderen claude.ai-Oberflächen deutet ein Fehler „Repository nicht gefunden. Falls es privat ist, ist GitHub-Zugriff erforderlich“ auf einem GHES-Marktplatz normalerweise auf dieselbe fehlende Verbindung hin. Verbinden Sie Ihr GitHub Enterprise-Konto über einen der oben genannten Pfade und versuchen Sie es dann erneut.

251 251 

252<h3 id="ghes-instance-not-reachable">252<h3 id="ghes-instance-not-reachable">

253 GHES-Instanz nicht erreichbar253 GHES-Instanz nicht erreichbar


270* [Claude Code in der Cloud](/docs/de/claude-code-on-the-web): Führen Sie Claude Code-Sitzungen auf Cloud-Infrastruktur aus270* [Claude Code in der Cloud](/docs/de/claude-code-on-the-web): Führen Sie Claude Code-Sitzungen auf Cloud-Infrastruktur aus

271* [Code Review](/docs/de/code-review): Automatisierte PR-Reviews271* [Code Review](/docs/de/code-review): Automatisierte PR-Reviews

272* [Plugin-Marktplätze](/docs/de/plugins/host-marketplace): Erstellen und Verteilen von Plugin-Katalogen272* [Plugin-Marktplätze](/docs/de/plugins/host-marketplace): Erstellen und Verteilen von Plugin-Katalogen

273* [Analytics](/docs/de/analytics): Verfolgen Sie Nutzung und Beitragskennzahlen273* [Analytics](/docs/de/analytics): Verfolgen Sie die Nutzung von Claude Code in Ihrer gesamten Organisation

274* [Verwaltete Einstellungen](/docs/de/settings): Organisationsweite Richtlinienkonfiguration274* [Verwaltete Einstellungen](/docs/de/settings): Organisationsweite Richtlinienkonfiguration

275* [Netzwerkkonfiguration](/docs/de/network-config): Firewall- und IP-Whitelist-Anforderungen275* [Netzwerkkonfiguration](/docs/de/network-config): Firewall- und IP-Whitelist-Anforderungen

headless.md +7 −5

Details

89* **[Monitor](/docs/de/tools-reference#monitor-tool)-Watches**: Die Ausführung wartet, bis die Watch abläuft oder die Obergrenze von 10 Minuten das Warten beendet, je nachdem, was zuerst eintritt. Während des Wartens antwortet Claude weiterhin auf das, was die Watch meldet. Standardmäßig läuft eine Watch fünf Minuten nach dem Start durch Claude ab.89* **[Monitor](/docs/de/tools-reference#monitor-tool)-Watches**: Die Ausführung wartet, bis die Watch abläuft oder die Obergrenze von 10 Minuten das Warten beendet, je nachdem, was zuerst eintritt. Während des Wartens antwortet Claude weiterhin auf das, was die Watch meldet. Standardmäßig läuft eine Watch fünf Minuten nach dem Start durch Claude ab.

90* **Ausstehende Wakeups**: Wenn Claude in einer Ausführung, deren Prompt Sie als Text statt mit `--input-format stream-json` übergeben haben, einen [selbstgetakteten `/loop`-Wakeup](/docs/de/scheduled-tasks#let-claude-choose-the-interval) geplant hat, wartet die Ausführung auf das Auslösen jedes Wakeups und führt dessen Iteration aus, bis die [Schleife endet](/docs/de/scheduled-tasks#stop-a-loop), auch über die Obergrenze von 10 Minuten hinaus.90* **Ausstehende Wakeups**: Wenn Claude in einer Ausführung, deren Prompt Sie als Text statt mit `--input-format stream-json` übergeben haben, einen [selbstgetakteten `/loop`-Wakeup](/docs/de/scheduled-tasks#let-claude-choose-the-interval) geplant hat, wartet die Ausführung auf das Auslösen jedes Wakeups und führt dessen Iteration aus, bis die [Schleife endet](/docs/de/scheduled-tasks#stop-a-loop), auch über die Obergrenze von 10 Minuten hinaus.

91 91 

92Wenn stderr ein Terminal ist und die Ausführung fünf Sekunden gewartet hat, gibt Claude Code eine Zeile an stderr aus, die mit `Waiting for background work to finish` beginnt und die betreffende Arbeit benennt. Bei [`json`- oder `stream-json`-Ausgabe](#get-structured-output) wird die Zeile nur ausgegeben, wenn stdout kein Terminal ist, sodass das JSON, das Ihr Skript liest, sie nie enthält.

93 

92Wenn die Ausführung ihre [`--max-budget-usd`](/docs/de/cli-reference#cli-flags)-Obergrenze erreicht, stoppt Claude Code die verbleibende Hintergrundarbeit, statt zu warten.94Wenn die Ausführung ihre [`--max-budget-usd`](/docs/de/cli-reference#cli-flags)-Obergrenze erreicht, stoppt Claude Code die verbleibende Hintergrundarbeit, statt zu warten.

93 95 

94Wenn Hintergrundarbeit einen weiteren Turn startet, gibt die Ausführung mit der Standardausgabe `text` das Ergebnis jedes Turns aus und mit der Ausgabe `json` das Ergebnis des letzten Turns. Vor v2.1.295 gab die Ausführung auch mit der Ausgabe `text` nur das Ergebnis des letzten Turns aus.96Wenn Hintergrundarbeit einen weiteren Turn startet, gibt die Ausführung mit der Standardausgabe `text` das Ergebnis jedes Turns aus und mit der Ausgabe `json` das Ergebnis des letzten Turns. Vor v2.1.295 gab die Ausführung auch mit der Ausgabe `text` nur das Ergebnis des letzten Turns aus.


296 298 

297Wenn ein `--plugin-dir`-Verzeichnis oder -Archiv selbst nicht geladen werden kann, enthält sein `plugin_errors`-Eintrag den aufgelösten absoluten Pfad als `path`. Verwenden Sie ihn, um zu erkennen, welcher von mehreren `--plugin-dir`-Werten fehlgeschlagen ist. Das Feld `path` erfordert Claude Code v2.1.283 oder später.299Wenn ein `--plugin-dir`-Verzeichnis oder -Archiv selbst nicht geladen werden kann, enthält sein `plugin_errors`-Eintrag den aufgelösten absoluten Pfad als `path`. Verwenden Sie ihn, um zu erkennen, welcher von mehreren `--plugin-dir`-Werten fehlgeschlagen ist. Das Feld `path` erfordert Claude Code v2.1.283 oder später.

298 300 

299Verwenden Sie die MCP-Server-Felder auf die gleiche Weise. Wenn Sie [`--mcp-config`](/docs/de/cli-reference#cli-flags) mit `-p` übergeben, wartet Claude Code auf noch ausstehende Server, bevor der erste Turn ausgeführt wird, höchstens bis zum Start-Timeout [`MCP_TIMEOUT`](/docs/de/env-vars), standardmäßig 30 Sekunden. Ein Remote-Server mit einer [zwischengespeicherten Tool-Liste](/docs/de/agent-sdk/mcp#connection-timing) überspringt das Warten, zeigt `pending` in `system/init` an und verbindet sich beim ersten Tool-Aufruf. Das Warten erfordert Claude Code v2.1.221 oder später.301Verwenden Sie die MCP-Server-Felder auf die gleiche Weise. Wenn Sie [`--mcp-config`](/docs/de/cli-reference#cli-flags) mit `-p` übergeben, wartet Claude Code auf noch ausstehende Server, bevor der erste Turn ausgeführt wird, höchstens bis zum Start-Timeout [`MCP_TIMEOUT`](/docs/de/env-vars), standardmäßig 30 Sekunden. Ein Remote-Server mit einer [zwischengespeicherten Tool-Liste](/docs/de/agent-sdk/mcp#connection-timing) überspringt das Warten, zeigt `pending` in `system/init` an und verbindet sich beim ersten Tool-Aufruf. In einer [selbst gehosteten Umgebung](/docs/de/self-hosted-environments-configuration#connection-timing) gilt stattdessen eine kürzere Wartezeit. Das Warten erfordert Claude Code v2.1.221 oder später.

300 302 

301Claude Code validiert jeden `--mcp-config`-Eintrag beim Start und überspringt Einträge, die die Validierung nicht bestehen, beispielsweise einen `url`-Eintrag ohne `type`. Der Lauf wird fortgesetzt und beendet sich sauber, prüfen Sie also diese Felder, um einen Server zu erkennen, der nie geladen wurde:303Claude Code validiert jeden `--mcp-config`-Eintrag beim Start und überspringt Einträge, die die Validierung nicht bestehen, beispielsweise einen `url`-Eintrag ohne `type`. Der Lauf wird fortgesetzt und beendet sich sauber, prüfen Sie also diese Felder, um einen Server zu erkennen, der nie geladen wurde:

302 304 


327 Tools automatisch genehmigen329 Tools automatisch genehmigen

328</h3>330</h3>

329 331 

330Verwenden Sie `--allowedTools`, damit Claude bestimmte Tools ohne Nachfrage verwenden kann. Wenn Sie `Read` und `Edit` auflisten, kann Claude Dateien lesen und bearbeiten, ohne um Erlaubnis zu fragen. Das Auflisten von `Bash` bewirkt dasselbe für Shell-Befehle, außer in einem Lauf, der im [Auto-Modus](/docs/de/permission-modes#how-auto-mode-evaluates-actions) startet: Dort verwirft Claude Code einen bloßen `Bash`-Eintrag als zu breite allow-Regel, und der Auto-Modus bewertet stattdessen jeden Befehl. Dieses Beispiel führt eine Test-Suite aus und behebt Fehler, wobei diese drei Tools aufgelistet sind:332Verwenden Sie `--allowedTools`, damit Claude bestimmte Tools ohne Nachfrage verwenden kann. Wenn Sie `Read` und `Edit` auflisten, kann Claude Dateien lesen und bearbeiten, ohne um Erlaubnis zu fragen, ausgenommen Lesevorgänge von [Netzwerkpfaden](/docs/de/permissions#network-paths). Das Auflisten von `Bash` bewirkt dasselbe für Shell-Befehle, außer in einem Lauf, der im [Auto-Modus](/docs/de/permission-modes#how-auto-mode-evaluates-actions) startet: Dort verwirft Claude Code einen bloßen `Bash`-Eintrag als zu breite allow-Regel, und der Auto-Modus bewertet stattdessen jeden Befehl. Dieses Beispiel führt eine Test-Suite aus und behebt Fehler, wobei diese drei Tools aufgelistet sind:

331 333 

332```bash theme={null}334```bash theme={null}

333claude -p "Run the test suite and fix any failures" \335claude -p "Run the test suite and fix any failures" \


337Um eine Baseline für die gesamte Sitzung festzulegen, anstatt einzelne Tools aufzulisten, übergeben Sie einen [Berechtigungsmodus](/docs/de/permission-modes). Ein Lauf, bei dem nichts einen Berechtigungsmodus setzt, verwendet den [integrierten Start-Berechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in), der `auto` sein kann. Übergeben Sie also den gewünschten Modus:339Um eine Baseline für die gesamte Sitzung festzulegen, anstatt einzelne Tools aufzulisten, übergeben Sie einen [Berechtigungsmodus](/docs/de/permission-modes). Ein Lauf, bei dem nichts einen Berechtigungsmodus setzt, verwendet den [integrierten Start-Berechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in), der `auto` sein kann. Übergeben Sie also den gewünschten Modus:

338 340 

339* **`auto`**: Übergeben Sie `--permission-mode auto`, damit ein Klassifikator anstelle von Ihnen die meisten Aktionen überprüft341* **`auto`**: Übergeben Sie `--permission-mode auto`, damit ein Klassifikator anstelle von Ihnen die meisten Aktionen überprüft

340* **`dontAsk`**: Claude Code verweigert jeden Aufruf, bei dem sonst nachgefragt würde, was für abgeschottete CI-Läufe nützlich ist. Aktionen, die im Manual-Modus keine Genehmigung benötigen, werden weiterhin ausgeführt, etwa Dateilesevorgänge in Ihren Arbeitsverzeichnissen und die [nur lesenden Befehle](/docs/de/permissions#read-only-commands), ebenso Aktionen, die Ihre `--allowedTools`-Einträge oder `permissions.allow`-Regeln abdecken. `AskUserQuestion`, Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), und MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden verweigert, auch wenn eine allow-Regel passt342* **`dontAsk`**: Claude Code verweigert jeden Aufruf, bei dem sonst nachgefragt würde, was für abgeschottete CI-Läufe nützlich ist. Aktionen, die im Manual-Modus keine Genehmigung benötigen, werden weiterhin ausgeführt, etwa Dateilesevorgänge in Ihren Arbeitsverzeichnissen und die [nur lesenden Befehle](/docs/de/permissions#read-only-commands), ebenso Aktionen, die Ihre `--allowedTools`-Einträge oder `permissions.allow`-Regeln abdecken. `AskUserQuestion`, Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und [Lesevorgänge von Netzwerkpfaden](/docs/de/permissions#network-paths) werden verweigert, auch wenn eine allow-Regel passt

341* **`acceptEdits`**: Claude schreibt Dateien ohne Nachfrage, und Claude Code genehmigt automatisch häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp`. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), gelten weiterhin. Abgesehen von den nur lesenden Befehlen benötigen andere Shell-Befehle und Netzwerkanfragen weiterhin einen `--allowedTools`-Eintrag oder eine `permissions.allow`-Regel. Siehe [was `acceptEdits` automatisch genehmigt](/docs/de/permission-modes#auto-approve-file-edits-with-acceptedits-mode) für die vollständige Liste343* **`acceptEdits`**: Claude schreibt Dateien ohne Nachfrage, und Claude Code genehmigt automatisch häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp`. Die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), gelten weiterhin. Abgesehen von den nur lesenden Befehlen benötigen andere Shell-Befehle und Netzwerkanfragen weiterhin einen `--allowedTools`-Eintrag oder eine `permissions.allow`-Regel. Siehe [was `acceptEdits` automatisch genehmigt](/docs/de/permission-modes#auto-approve-file-edits-with-acceptedits-mode) für die vollständige Liste

342 344 

343Dieses Beispiel wendet Lint-Korrekturen mit `acceptEdits` als Baseline an:345Dieses Beispiel wendet Lint-Korrekturen mit `acceptEdits` als Baseline an:


411 Konversationen fortsetzen413 Konversationen fortsetzen

412</h3>414</h3>

413 415 

414Verwenden Sie `--continue`, um die neueste Konversation fortzusetzen, oder `--resume` mit einer Sitzungs-ID, um eine bestimmte Konversation fortzusetzen. Wenn Sie bei Claude Code v2.1.257 oder später `--continue` übergeben, öffnet Claude Code eine [Hintergrundsitzung](/docs/de/sessions#resume-a-session), die beendet ist, aber keine, die noch läuft. Dieses Beispiel führt eine Überprüfung durch und sendet dann Folge-Prompts:416Verwenden Sie `--continue`, um die neueste Konversation fortzusetzen, oder `--resume` mit einer Sitzungs-ID, um eine bestimmte Konversation fortzusetzen. Wenn Sie bei Claude Code v2.1.257 oder später `--continue` übergeben, öffnet Claude Code eine [Hintergrundsitzung](/docs/de/sessions#where-the-session-picker-looks), die beendet ist, aber keine, die noch läuft. Dieses Beispiel führt eine Überprüfung durch und sendet dann Folge-Prompts:

415 417 

416```bash theme={null}418```bash theme={null}

417# First request419# First request


429claude -p "Continue that review" --resume "$session_id"431claude -p "Continue that review" --resume "$session_id"

430```432```

431 433 

432Sie können die beiden Befehle aus verschiedenen Verzeichnissen ausführen: Claude Code [findet die Sitzung anhand ihrer ID](/docs/de/sessions#resume-a-session) in jedem Projekt auf diesem Computer. Vor v2.1.223 suchte Claude Code die ID nur im aktuellen Projektverzeichnis und seinen Git-Worktrees, sodass Sie beide Befehle aus demselben Verzeichnis ausführen mussten.434Sie können die beiden Befehle aus verschiedenen Verzeichnissen ausführen: Claude Code [findet die Sitzung anhand ihrer ID](/docs/de/sessions#where-the-session-picker-looks) in jedem Projekt auf diesem Computer.

433 435 

434Anstelle der Sitzungs-ID können Sie `--resume` den absoluten Pfad zur `.jsonl`-[Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) einer Sitzung übergeben, und Claude Code setzt die in dieser Datei gespeicherte Konversation fort.436Anstelle der Sitzungs-ID können Sie `--resume` den absoluten Pfad zur `.jsonl`-[Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) einer Sitzung übergeben, und Claude Code setzt die in dieser Datei gespeicherte Konversation fort.

435 437 

hooks.md +40 −13

Details

425 425 

426Alle passenden Hooks werden parallel ausgeführt. Wenn Sie denselben Handler in mehr als einer Einstellungsdatei definieren, wird er einmal ausgeführt. Eine Kopie desselben Handlers eines Plugins oder Skills bleibt separat.426Alle passenden Hooks werden parallel ausgeführt. Wenn Sie denselben Handler in mehr als einer Einstellungsdatei definieren, wird er einmal ausgeführt. Eine Kopie desselben Handlers eines Plugins oder Skills bleibt separat.

427 427 

428Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Wenn das aktuelle Verzeichnis nicht mehr existiert, z. B. ein Worktree oder temporäres Verzeichnis, das eine andere Shell während der Sitzung gelöscht hat, führt Claude Code Command-Hooks aus dem ersten dieser Verzeichnisse aus, das noch existiert: das Verzeichnis, in dem die Sitzung gestartet wurde, das Projekt-Root, Ihr Home-Verzeichnis oder das System-Temp-Verzeichnis. Claude Code zeichnet eine Warnung auf, die das Fallback-Verzeichnis im [Debug-Log](#debug-hooks) benennt.428Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Wenn das aktuelle Verzeichnis nicht mehr existiert, z. B. ein Worktree oder temporäres Verzeichnis, das eine andere Shell während der Sitzung gelöscht hat, führt Claude Code Command-Hooks aus dem ersten dieser Verzeichnisse aus, das noch existiert: das Verzeichnis, in dem die Sitzung gestartet wurde, das Projekt-Root, Ihr Home-Verzeichnis oder das System-Temp-Verzeichnis. Claude Code zeichnet eine Warnung auf, die das Fallback-Verzeichnis im [Debug-Log](#debug-hooks) benennt. Für eine Worktree-Sitzung, die Sie aus der Desktop-App starten, siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).

429 429 

430Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` ist `"true"` in Remote-Web-Umgebungen und nicht gesetzt in der lokalen CLI. Claude Code v2.1.199 und später setzt [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/de/env-vars) auf die [Remote Control](/docs/de/remote-control)-Sitzungs-ID, während die lokale Sitzung eine aktive Remote Control-Verbindung hat.430Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` ist `"true"` in Remote-Web-Umgebungen und nicht gesetzt in der lokalen CLI. Claude Code v2.1.199 und später setzt [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/de/env-vars) auf die [Remote Control](/docs/de/remote-control)-Sitzungs-ID, während die lokale Sitzung eine aktive Remote Control-Verbindung hat.

431 431 


645 645 

646 * **`${CLAUDE_PROJECT_DIR}` bleibt stehen**: Es zeigt immer noch auf das Projekt-Root, wo die Sitzung gestartet wurde, sodass ein Befehl wie `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` das Skript immer noch im Haupt-Checkout ausführt.646 * **`${CLAUDE_PROJECT_DIR}` bleibt stehen**: Es zeigt immer noch auf das Projekt-Root, wo die Sitzung gestartet wurde, sodass ein Befehl wie `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` das Skript immer noch im Haupt-Checkout ausführt.

647 * **`cwd` folgt Claude**: Das Feld `cwd` in der Hook-[Eingabe-JSON](#common-input-fields) ist das Worktree-Root, nachdem Claude einen Worktree betritt, und das neue Verzeichnis, nachdem Claude `cd` ausführt. Lesen Sie es, wenn ein Hook wissen muss, welches Verzeichnis Claude bearbeitet.647 * **`cwd` folgt Claude**: Das Feld `cwd` in der Hook-[Eingabe-JSON](#common-input-fields) ist das Worktree-Root, nachdem Claude einen Worktree betritt, und das neue Verzeichnis, nachdem Claude `cd` ausführt. Lesen Sie es, wenn ein Hook wissen muss, welches Verzeichnis Claude bearbeitet.

648 

649 Für eine Worktree-Sitzung, die Sie aus der Desktop-App starten, siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout), worauf `${CLAUDE_PROJECT_DIR}` zeigt.

648</Note>650</Note>

649 651 

650Bevorzugen Sie [Exec-Form](#exec-form-and-shell-form) für jeden Hook, der auf einen Pfad-Platzhalter verweist. In Shell-Form umgeben Sie jeden Platzhalter mit doppelten Anführungszeichen.652Bevorzugen Sie [Exec-Form](#exec-form-and-shell-form) für jeden Hook, der auf einen Pfad-Platzhalter verweist. In Shell-Form umgeben Sie jeden Platzhalter mit doppelten Anführungszeichen.


782| `effort` | Objekt mit einem `level`-Feld, das die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) enthält, die wirksam ist, wenn der Hook ausgeführt wird: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Wenn Sie eine Stufe festlegen, die das aktive Modell nicht unterstützt, meldet `level` die Stufe, die Claude Code stattdessen ausgeführt hat; [Effort-Stufe anpassen](/docs/de/model-config#adjust-effort-level) sagt, wie es diese Stufe auswählt. Das Objekt stimmt mit dem [Status-Feld](/docs/de/statusline#available-data) `effort`-Feld überein. Vorhanden für Events, die innerhalb eines Tool-Use-Kontexts ausgelöst werden, wie `PreToolUse`, `PostToolUse`, `Stop` und `SubagentStop`, wenn das aktuelle Modell den Effort-Parameter unterstützt. Die Stufe ist auch für Hook-Befehle und das Bash-Tool als die `$CLAUDE_EFFORT`-Umgebungsvariable verfügbar. |784| `effort` | Objekt mit einem `level`-Feld, das die [Effort-Stufe](/docs/de/model-config#adjust-effort-level) enthält, die wirksam ist, wenn der Hook ausgeführt wird: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Wenn Sie eine Stufe festlegen, die das aktive Modell nicht unterstützt, meldet `level` die Stufe, die Claude Code stattdessen ausgeführt hat; [Effort-Stufe anpassen](/docs/de/model-config#adjust-effort-level) sagt, wie es diese Stufe auswählt. Das Objekt stimmt mit dem [Status-Feld](/docs/de/statusline#available-data) `effort`-Feld überein. Vorhanden für Events, die innerhalb eines Tool-Use-Kontexts ausgelöst werden, wie `PreToolUse`, `PostToolUse`, `Stop` und `SubagentStop`, wenn das aktuelle Modell den Effort-Parameter unterstützt. Die Stufe ist auch für Hook-Befehle und das Bash-Tool als die `$CLAUDE_EFFORT`-Umgebungsvariable verfügbar. |

783| `hook_event_name` | Name des ausgelösten Events |785| `hook_event_name` | Name des ausgelösten Events |

784 786 

785Bei Ausführung mit `--agent` oder innerhalb eines Subagenten sind zwei zusätzliche Felder enthalten:787`agent_id` und `agent_type` teilen Ihrem Skript mit, in welchem Agenten ein Hook ausgelöst wurde, etwa in einem Subagenten, einem [In-Process-Teammate](/docs/de/agent-teams#choose-a-display-mode) oder dem Agenten, den Sie mit `--agent` ausgewählt haben:

786 788 

787| Feld | Beschreibung |789| Feld | Beschreibung |

788| :- | :- |790| :- | :- |

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

790| `agent_type` | Agent-Name (z. B. `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Session `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Session. Siehe [SubagentStart](#subagentstart) für die Werte, die benutzerdefinierte und Plugin-Subagenten melden, und wie man einen Matcher gegen einen Plugin-Scoped-Namen schreibt. |792| `agent_type` | Agent-Name (z. B. `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Session `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Session. Siehe [SubagentStart](#subagentstart) für die Werte, die benutzerdefinierte und Plugin-Subagenten melden, und wie man einen Matcher gegen einen Plugin-Scoped-Namen schreibt. |

791 793 

792Nur [`SessionStart`](#sessionstart)-Hooks können ein `model`-Feld empfangen, und Claude Code fügt es nicht immer ein. [`PreModelSwitch`](#premodelswitch)- und [`PostModelSwitch`](#postmodelswitch)-Hooks empfangen stattdessen `from_model` und `to_model`, verwenden Sie also einen PostModelSwitch-Hook, um das Modell zu verfolgen, während es sich während einer Session ändert.794Nur [`SessionStart`](#sessionstart)-Hooks können ein `model`-Feld empfangen, und Claude Code fügt es nicht immer ein. [`PreModelSwitch`](#premodelswitch)- und [`PostModelSwitch`](#postmodelswitch)-Hooks empfangen stattdessen `from_model` und `to_model`, verwenden Sie also einen PostModelSwitch-Hook, um das Modell zu verfolgen, während es sich während einer Session ändert.


855 857 

856Für die meisten Events schreibt Claude Code stdout in das Debug-Protokoll und zeigt es nicht im Transkript an. Die Ausnahmen sind `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` und `PostModelSwitch`, wo Claude Code einfachen Text-stdout als Kontext hinzufügt, den Claude sehen und bearbeiten kann.858Für die meisten Events schreibt Claude Code stdout in das Debug-Protokoll und zeigt es nicht im Transkript an. Die Ausnahmen sind `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` und `PostModelSwitch`, wo Claude Code einfachen Text-stdout als Kontext hinzufügt, den Claude sehen und bearbeiten kann.

857 859 

858Ob Claude Code Ihren stdout als [JSON-Ausgabe](#json-output) oder als einfachen Text liest, hängt davon ab, wie er beginnt und endet, wobei umgebender Whitespace ignoriert wird:860Bei einem Hook, der nicht [async](#how-async-hooks-execute) ist, parst Claude Code Ihren stdout als [JSON-Ausgabe](#json-output), wenn die gesamte Ausgabe ein einzelnes JSON-Objekt ist, das nur von Whitespace umgeben ist, und andernfalls als einfachen Text oder als Parse-Fehler:

859 861 

860* **Beginnt mit `{` und endet mit `}`**: Claude Code parst es als JSON. Wenn die Ausgabe zwei oder mehr Zeilen sind, die jeweils selbst als JSON geparst werden, und keine Zeile ein [JSON-Ausgabe](#json-output)-Objekt ist, das ein Feld setzt, behandelt Claude Code die gesamte Ausgabe als einfachen Text. Wenn eine dieser Zeilen ein Feld setzt, ist die gesamte Ausgabe ein Parse-Fehler.862* **Ein JSON-Objekt, auf einer oder mehreren Zeilen**: wird als JSON-Ausgabe geparst.

861* **Beginnt mit `{` aber endet nicht mit `}`**: Claude Code behandelt es als einfachen Text.863* **Ausgabe, die nicht mit `{` beginnt, oder die mit `{` beginnt und nicht mit `}` endet**: einfacher Text. Ein JSON-Array und ein in Anführungszeichen gesetzter JSON-String sind nach dieser Regel einfacher Text.

862* **Beginnt mit etwas anderem**: Claude Code behandelt es als einfachen Text, ein JSON-Array oder einen zitierten JSON-String enthalten.864* **Zwei oder mehr Zeilen, die jeweils für sich als JSON geparst werden, wobei die erste mit `{` beginnt und die letzte mit `}` endet**: einfacher Text, wenn keine Zeile ein JSON-Ausgabe-Objekt ist, das ein Feld setzt, und ein Parse-Fehler, wenn eine Zeile es ist.

865* **Alles andere, das mit `{` beginnt und mit `}` endet, aber kein gültiges JSON ist**: ein Parse-Fehler.

863 866 

864Wenn Claude Code versucht, Ihren stdout als JSON zu parsen, und dies fehlschlägt, oder das geparste Objekt die [Schemavalidierung](#json-output) nicht besteht, ist der Lauf ein [nicht blockierender Fehler](#exit-code-output). Der `<hook name> hook error`-Hinweis enthält die Parse- oder Validierungsmeldung. Bei den Events, die einfachen Text-stdout als Kontext hinzufügen, fügt Claude Code stdout, den es nicht parsen konnte, nicht hinzu.867Wenn Claude Code versucht, Ihren stdout als JSON zu parsen, und dies fehlschlägt, oder das geparste Objekt die [Schemavalidierung](#json-output) nicht besteht, ist der Lauf ein [nicht blockierender Fehler](#exit-code-output). Der `<hook name> hook error`-Hinweis enthält die Parse- oder Validierungsmeldung. Bei den Events, die einfachen Text-stdout als Kontext hinzufügen, fügt Claude Code stdout, den es nicht parsen konnte, nicht hinzu.

865 868 


1023| `InstructionsLoaded` | Nein | Exit-Code wird ignoriert |1026| `InstructionsLoaded` | Nein | Exit-Code wird ignoriert |

1024| `MessageDisplay` | Nein | Der ursprüngliche Text wird angezeigt |1027| `MessageDisplay` | Nein | Der ursprüngliche Text wird angezeigt |

1025 1028 

1026Für `SessionStart`, `SubagentStart` und `PostModelSwitch` rendert Claude Code den Exit-Code-2-stderr im Transkript als `<Hook-Name> hook error`-Hinweis, auf die gleiche Weise wie es einen [nicht blockierenden Fehler](#exit-code-output) rendert. Claude sieht es nicht, und die Session oder der Subagent wird fortgesetzt. Für `SubagentStart` erscheint der Hinweis im eigenen Transkript des Subagenten, nicht in der übergeordneten Konversation.1029Für `SessionStart`, `SubagentStart` und `PostModelSwitch` rendert Claude Code den Exit-Code-2-stderr im Transkript als `<hook name> hook error`-Hinweis, auf die gleiche Weise wie es einen [nicht blockierenden Fehler](#exit-code-output) rendert. Claude sieht es nicht, und die Session oder der Subagent wird fortgesetzt. Für `SubagentStart` erscheint der Hinweis im eigenen Transkript des Subagenten, nicht in der übergeordneten Konversation.

1027 1030 

1028<h3 id="http-response-handling">1031<h3 id="http-response-handling">

1029 HTTP-Response-Handling1032 HTTP-Response-Handling


1050 Wählen Sie einen Ansatz pro Hook: Verwenden Sie entweder Exit-Codes allein zum Signalisieren oder beenden Sie mit 0 und drucken Sie JSON für strukturierte Kontrolle. Wenn Sie sie mischen, behält Exit 2 seine [blockierende Auswirkung](#exit-code-2-behavior-per-event), und Claude Code liest immer noch die JSON-Felder, mit der einen Elicitation-Ausnahme, die unter [Exit-Code 2](#exit-code-2) notiert ist.1053 Wählen Sie einen Ansatz pro Hook: Verwenden Sie entweder Exit-Codes allein zum Signalisieren oder beenden Sie mit 0 und drucken Sie JSON für strukturierte Kontrolle. Wenn Sie sie mischen, behält Exit 2 seine [blockierende Auswirkung](#exit-code-2-behavior-per-event), und Claude Code liest immer noch die JSON-Felder, mit der einen Elicitation-Ausnahme, die unter [Exit-Code 2](#exit-code-2) notiert ist.

1051</Note>1054</Note>

1052 1055 

1053Der stdout Ihres Hooks muss nur das JSON-Objekt enthalten. Wenn Ihr Shell-Profil beim Start Text druckt, kann es die JSON-Analyse beeinträchtigen. Siehe [Hook JSON hat keine Auswirkung](/docs/de/hooks-guide#hook-json-has-no-effect) im Leitfaden zur Fehlerbehebung.1056Geben Sie auf stdout nichts außer dem JSON-Objekt aus. Bei einem Hook, der nicht [async](#how-async-hooks-execute) ist, verhindert anderer Text dort, etwa eine Zeile, die Ihr Shell-Profil beim Start ausgibt, dass Claude Code das Objekt als JSON liest, und [Hook JSON hat keine Auswirkung](/docs/de/hooks-guide#hook-json-has-no-effect) zeigt, wie Sie diesen Text finden und unterdrücken.

1054 1057 

1055Die Strings `additionalContext`, `systemMessage` und `initialUserMessage` eines Hooks sowie sein einfacher stdout sind auf 10.000 Zeichen begrenzt:1058Die Strings `additionalContext`, `systemMessage` und `initialUserMessage` eines Hooks sowie sein einfacher stdout sind auf 10.000 Zeichen begrenzt:

1056 1059 


1142 1145 

1143Wenn mehrere Hooks `additionalContext` für den gleichen Event zurückgeben, empfängt Claude alle Werte.1146Wenn mehrere Hooks `additionalContext` für den gleichen Event zurückgeben, empfängt Claude alle Werte.

1144 1147 

1148Wenn Ihr String ein `<system-reminder>`- oder `</system-reminder>`-Tag enthält, erhält Claude den String, wobei das `<` dieses Tags durch `&lt;` ersetzt ist.

1149 

1145Wenn ein Wert 10.000 Zeichen überschreitet, schreibt Claude Code den Text in eine Datei im Session-Verzeichnis und übergibt Claude stattdessen den Dateipfad mit einer Vorschau von bis zu den ersten 2.000 Zeichen. Claude kann die Datei lesen, aber Claude Code bittet nicht darum.1150Wenn ein Wert 10.000 Zeichen überschreitet, schreibt Claude Code den Text in eine Datei im Session-Verzeichnis und übergibt Claude stattdessen den Dateipfad mit einer Vorschau von bis zu den ersten 2.000 Zeichen. Claude kann die Datei lesen, aber Claude Code bittet nicht darum.

1146 1151 

1147Verwenden Sie `additionalContext` für Informationen, die Claude über den aktuellen Zustand Ihrer Umgebung oder die gerade ausgeführte Operation wissen sollte:1152Verwenden Sie `additionalContext` für Informationen, die Claude über den aktuellen Zustand Ihrer Umgebung oder die gerade ausgeführte Operation wissen sollte:


1364 Umgebungsvariablen beibehalten1369 Umgebungsvariablen beibehalten

1365</h4>1370</h4>

1366 1371 

1367SessionStart-Hooks haben Zugriff auf die Umgebungsvariable `CLAUDE_ENV_FILE`, die einen Dateipfad bereitstellt, in dem Sie Umgebungsvariablen für nachfolgende Bash-Befehle dauerhaft speichern können.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.

1368 1373 

1369Um einzelne Umgebungsvariablen zu setzen, schreiben Sie `export`-Anweisungen in `CLAUDE_ENV_FILE`. Verwenden Sie Anhängen (`>>`), um von anderen Hooks gesetzte Variablen zu erhalten: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:

1370 1375 


1399exit 01404exit 0

1400```1405```

1401 1406 

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"`.

1408 

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

1410 

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

1412 Gespeicherte Variablen in PowerShell-Befehlen

1413</h5>

1414 

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:

1416 

1417* 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 ist

1419 

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.

1421 

1402<Note>1422<Note>

1403 `CLAUDE_ENV_FILE` ist für SessionStart-, [Setup](#setup)-, [CwdChanged](#cwdchanged)- und [FileChanged](#filechanged)-Hooks verfügbar. Andere Hook-Typen haben keinen Zugriff auf diese Variable.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.

1404</Note>1424</Note>

1405 1425 

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


2030 2050 

2031| Feld | Beschreibung |2051| Feld | Beschreibung |

2032| :- | :- |2052| :- | :- |

2033| `permissionDecision` | `"allow"` überspringt die Berechtigungsabfrage, außer bei den [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves), sowie bei `AskUserQuestion` und `ExitPlanMode`, die [zusammen mit `updatedInput`](#allow-with-updatedinput) verwendet werden müssen. `"deny"` verhindert den Tool-Aufruf. `"ask"` fordert den Benutzer zur Bestätigung auf. `"defer"` beendet sich ordnungsgemäß, sodass 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 |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 |

2034| `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 |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 |

2035| `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 |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 |

2036| `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) |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) |


2136Wenn 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.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.

2137 2157 

2138<Note>2158<Note>

2139 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. Wenn Sie bestimmte andere Start-Flags übergeben, kehrt der fortgesetzte Lauf nicht in den Plan-Modus zurück; siehe [Im Plan-Modus mit `-p` fortsetzen](/docs/de/sessions#resume-in-plan-mode-with-p). Erfordert Claude Code v2.1.246 oder höher.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.

2140 2160 

2141 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.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.

2142</Note>2162</Note>


4304 4324 

4305Nachdem der Hintergrund-Prozess beendet ist, liefert Claude Code die Felder `additionalContext` und `systemMessage` aus der JSON-Response des Hooks Claude beim nächsten Gesprächsturn. Im Gegensatz zu einem synchronen Hook's `systemMessage` wird keines dieser Felder Ihnen angezeigt.4325Nachdem der Hintergrund-Prozess beendet ist, liefert Claude Code die Felder `additionalContext` und `systemMessage` aus der JSON-Response des Hooks Claude beim nächsten Gesprächsturn. Im Gegensatz zu einem synchronen Hook's `systemMessage` wird keines dieser Felder Ihnen angezeigt.

4306 4326 

4327Geben Sie die JSON-Antwort allein auf stdout oder in einer eigenen Zeile aus:

4328 

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

4330* **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`.

4331 

4307Claude 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.4332Claude 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.

4308 4333 

4309Benachrichtigungen ü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`.4334Benachrichtigungen ü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`.


44572026-07-19T02:03:24.382Z [DEBUG] "Hook PostToolUse:Write (PostToolUse) success:\nhook-ran"44822026-07-19T02:03:24.382Z [DEBUG] "Hook PostToolUse:Write (PostToolUse) success:\nhook-ran"

4458```4483```

4459 4484 

4485Um einen langsamen Hook zu finden, durchsuchen Sie das Log nach `Hooks:`-Zeilen, die mit einer Dauer enden. In Claude Code v2.1.296 oder höher hinterlässt jeder Befehls-Hook bei einem Tool-Ereignis, bei `UserPromptSubmit`, `SessionStart`, `Stop` und mehreren anderen Ereignissen eine solche Zeile, wenn er beendet ist, unabhängig davon, was er ausgegeben hat. Die Zeile enthält den Ereignisnamen, per Doppelpunkt verbunden mit dem Tool-Namen oder einem anderen Wert, auf den der Hook gematcht hat, dann den Befehl des Hooks in eckigen Klammern, das Plugin, aus dem er stammt (falls vorhanden), wie der Lauf endete und wie lange er dauerte, etwa `Hooks: PostToolUse:Write [.claude/hooks/log-write.sh] finished with status 0 (31ms)`. Ein Lauf kann auch mit `timed out after <N>ms`, `cancelled`, `moved to the background` oder `failed to start` enden. Bei einigen Ereignissen wie `Notification`, `SessionEnd` und `PreCompact` hinterlässt ein Befehls-Hook stattdessen eine `completed with status`-Zeile ohne Dauer.

4486 

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

4461 4488 

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

hooks-guide.md +15 −7

Details

664 664 

665Bei `PreToolUse` behandelt Claude Code jeden `permissionDecision`-Wert wie folgt:665Bei `PreToolUse` behandelt Claude Code jeden `permissionDecision`-Wert wie folgt:

666 666 

667* `"allow"`: die interaktive Berechtigungsaufforderung überspringen. Deny- und Ask-Regeln, einschließlich verwalteter Deny-Listen, gelten weiterhin, ebenso wie Aufforderungen für MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und für Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht667* `"allow"`: die interaktive Berechtigungsabfrage überspringen. Deny- und Ask-Regeln, einschließlich unternehmensweit verwalteter Deny-Listen, gelten weiterhin, ebenso wie Abfragen für Lesezugriffe auf [Netzwerkpfade](/docs/de/permissions#network-paths), für MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und für Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht

668* `"deny"`: Tool-Aufruf abbrechen und den Grund an Claude senden668* `"deny"`: Tool-Aufruf abbrechen und den Grund an Claude senden

669* `"ask"`: Berechtigungsaufforderung dem Benutzer wie gewohnt anzeigen669* `"ask"`: Berechtigungsaufforderung dem Benutzer wie gewohnt anzeigen

670 670 


1015 1015 

1016`PreToolUse`-Hooks werden vor jeder Genehmigungsmodus-Prüfung in jedem [Genehmigungsmodus](/docs/de/permission-modes) ausgelöst, einschließlich `dontAsk`. Ein Hook, der `permissionDecision: "deny"` zurückgibt, blockiert das Tool auch im `bypassPermissions`-Modus oder mit `--dangerously-skip-permissions`. Dies ermöglicht es Ihnen, eine Richtlinie durchzusetzen, die Benutzer nicht umgehen können, indem sie ihren Genehmigungsmodus ändern.1016`PreToolUse`-Hooks werden vor jeder Genehmigungsmodus-Prüfung in jedem [Genehmigungsmodus](/docs/de/permission-modes) ausgelöst, einschließlich `dontAsk`. Ein Hook, der `permissionDecision: "deny"` zurückgibt, blockiert das Tool auch im `bypassPermissions`-Modus oder mit `--dangerously-skip-permissions`. Dies ermöglicht es Ihnen, eine Richtlinie durchzusetzen, die Benutzer nicht umgehen können, indem sie ihren Genehmigungsmodus ändern.

1017 1017 

1018Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht nicht die Ablehnungsregeln aus den Einstellungen, und er kann die Eingabeaufforderung für MCP-Tools, die als [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, oder für Connector-Tools, die [Ihre Organisation auf `ask`](/docs/de/mcp#organization-controls-on-connector-tools) gesetzt hat, nicht unterdrücken, in Sitzungen, in denen diese Einstellung Claude Code erreicht. Hooks in Einstellungsdateien und in der `hooks/hooks.json` eines Plugins können Einschränkungen verschärfen, aber nicht lockern, über das hinaus, was Genehmigungsregeln zulassen.1018Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht nicht die deny-Regeln aus den Einstellungen, und er kann die Berechtigungsabfrage für Lesezugriffe auf [Netzwerkpfade](/docs/de/permissions#network-paths), für MCP-Tools, die als [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, oder für Konnektor-Tools, die [Ihre Organisation auf `ask`](/docs/de/mcp#organization-controls-on-connector-tools) gesetzt hat, nicht unterdrücken, in Sitzungen, in denen diese Einstellung Claude Code erreicht. Hooks in Einstellungsdateien und in der `hooks/hooks.json` eines Plugins können Einschränkungen verschärfen, aber nicht über das hinaus lockern, was Berechtigungsregeln zulassen.

1019 1019 

1020Ein [Mod](/docs/de/plugins/mods/overview), den Sie installieren und der `tool.check` verarbeitet, kann einen Aufruf genehmigen, den Ihr `PreToolUse`-Hook blockiert hat, es sei denn, der Hook befindet sich in verwalteten Einstellungen. [Erweitern Sie Berechtigungen mit Hooks](/docs/de/permissions#extend-permissions-with-hooks) listet auf, welche Regeln über einen Mod gelten.1020Ein [Mod](/docs/de/plugins/mods/overview), den Sie installieren und der `tool.check` verarbeitet, kann einen Aufruf genehmigen, den Ihr `PreToolUse`-Hook blockiert hat, es sei denn, der Hook befindet sich in verwalteten Einstellungen. [Erweitern Sie Berechtigungen mit Hooks](/docs/de/permissions#extend-permissions-with-hooks) listet auf, welche Regeln über einen Mod gelten.

1021 1021 


1083 1083 

1084Ihr Hook gibt gültiges JSON aus, aber die Entscheidung hat keine Auswirkung und es wird kein Fehler im Transkript angezeigt. Überprüfen Sie, welche Ursache zutrifft:1084Ihr Hook gibt gültiges JSON aus, aber die Entscheidung hat keine Auswirkung und es wird kein Fehler im Transkript angezeigt. Überprüfen Sie, welche Ursache zutrifft:

1085 1085 

1086* **Zusätzliche Ausgabe vor dem JSON**: Etwas anderes schreibt zuerst zu stdout, normalerweise ein bedingungsloses `echo` in Ihrem Shell-Profil, sodass die Ausgabe nicht mehr mit `{` beginnt und Claude Code sie nicht als JSON parst. Die Ursache und Lösung folgen dieser Liste.1086* **Zusätzliche Ausgabe vor dem JSON**: Etwas anderes schreibt zuerst nach stdout, normalerweise ein bedingungsloses `echo` in Ihrem Shell-Profil, sodass die Ausgabe nicht mehr mit `{` beginnt. Siehe [Shell-Profil-Ausgabe vor dem JSON](#shell-profile-output-before-the-json).

1087* **Ein Feld auf der falschen Ebene**: Vergleichen Sie die Platzierung jedes Feldes mit dem Format [JSON output](/docs/de/hooks#json-output). Zum Beispiel gehört `permissionDecision` in `hookSpecificOutput`, nicht auf der obersten Ebene.1087* **Ein Feld auf der falschen Ebene**: Vergleichen Sie die Platzierung jedes Feldes mit dem Format [JSON output](/docs/de/hooks#json-output). Zum Beispiel gehört `permissionDecision` in `hookSpecificOutput`, nicht auf die oberste Ebene. Siehe [Felder auf der falschen Ebene](#fields-at-the-wrong-level).

1088 1088 

1089Wenn Claude Code einen Shell-Form-Command Hook ausführt, einen ohne `args`, spawnt es `sh -c` auf macOS und Linux, Git Bash auf Windows oder PowerShell, wenn Git Bash nicht standardmäßig installiert ist. Diese Shell ist nicht-interaktiv, aber Git Bash und einige Konfigurationen, wie `BASH_ENV`, das auf `~/.bashrc` zeigt, sourchen immer noch Ihr Profil. Wenn dieses Profil bedingungslose `echo`-Anweisungen enthält, wird die Ausgabe Ihrem Hook-JSON vorangestellt:1089<h4 id="shell-profile-output-before-the-json">

1090 Shell-Profil-Ausgabe vor dem JSON

1091</h4>

1092 

1093Hooks werden in nicht interaktiven Shells ausgeführt, aber Git Bash und einige Konfigurationen, wie `BASH_ENV`, das auf `~/.bashrc` zeigt, laden dennoch Ihr Profil, und alles, was das Profil ausgibt, gelangt vor dem JSON Ihres Hooks nach stdout:

1090 1094 

1091```text theme={null}1095```text theme={null}

1092Shell ready on arm641096Shell ready on arm64

1093{"decision": "block", "reason": "Not allowed"}1097{"decision": "block", "reason": "Not allowed"}

1094```1098```

1095 1099 

1096Die kombinierte Ausgabe beginnt nicht mehr mit `{`, daher behandelt Claude Code alle stdout als Klartext und ignoriert das JSON. Bei Exit 0 wird nichts im Transkript gemeldet; der Parse-Versuch wird nur im [Debug-Protokoll](/docs/de/hooks#debug-hooks) aufgezeichnet. Um dies zu beheben, wickeln Sie Echo-Anweisungen in Ihrem Shell-Profil ein, damit sie nur in interaktiven Shells ausgeführt werden:1100Sofern der Hook nicht [asynchron](/docs/de/hooks#how-async-hooks-execute) ist, liest Claude Code eine Ausgabe, die nicht mit `{` beginnt, als Klartext, sodass Ihr JSON ignoriert wird. Da der Hook mit Exit 0 beendet wurde, zeigt das Transkript auch keinen Fehler. Um diese Ursache zu prüfen, starten Sie Claude Code mit `claude --debug`, lösen Sie den Hook aus und suchen Sie im [Debug-Log](/docs/de/hooks#debug-hooks) nach `Hook output does not start with {`. Um das Problem zu beheben, umschließen Sie die `echo`-Anweisungen in Ihrem Profil so, dass sie nur in interaktiven Shells ausgeführt werden:

1097 1101 

1098```bash theme={null}1102```bash theme={null}

1099# In ~/.zshrc or ~/.bashrc1103# In ~/.zshrc or ~/.bashrc


1104 1108 

1105Die Variable `$-` enthält Shell-Flags, und `i` bedeutet interaktiv. Hooks werden in nicht-interaktiven Shells ausgeführt, daher wird das Echo übersprungen.1109Die Variable `$-` enthält Shell-Flags, und `i` bedeutet interaktiv. Hooks werden in nicht-interaktiven Shells ausgeführt, daher wird das Echo übersprungen.

1106 1110 

1111<h4 id="fields-at-the-wrong-level">

1112 Felder auf der falschen Ebene

1113</h4>

1114 

1107Wenn Ihr Hook `permissionDecision` oder `additionalContext` auf der obersten Ebene statt in `hookSpecificOutput` zurückgibt, wird das JSON immer noch geparst, und Claude Code ignoriert die falsch platzierten Felder ohne Fehler zu melden. Um zu sehen, welche Felder ignoriert wurden, starten Sie Claude Code mit `claude --debug` und suchen Sie im [Debug-Protokoll](/docs/de/hooks#debug-hooks) nach `Hook JSON output had unrecognized keys`.1115Wenn Ihr Hook `permissionDecision` oder `additionalContext` auf der obersten Ebene statt in `hookSpecificOutput` zurückgibt, wird das JSON immer noch geparst, und Claude Code ignoriert die falsch platzierten Felder ohne Fehler zu melden. Um zu sehen, welche Felder ignoriert wurden, starten Sie Claude Code mit `claude --debug` und suchen Sie im [Debug-Protokoll](/docs/de/hooks#debug-hooks) nach `Hook JSON output had unrecognized keys`.

1108 1116 

1109<h3 id="check-what-a-hook-did">1117<h3 id="check-what-a-hook-did">


1119 1127 

1120Um das Ergebnis für einen bestimmten Exit-Code und eine bestimmte stdout nachzuschlagen, einschließlich der ereignisspezifischen Ausnahmen, lesen Sie den Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) in der Referenz.1128Um das Ergebnis für einen bestimmten Exit-Code und eine bestimmte stdout nachzuschlagen, einschließlich der ereignisspezifischen Ausnahmen, lesen Sie den Abschnitt [Exit code output](/docs/de/hooks#exit-code-output) in der Referenz.

1121 1129 

1122Für vollständige Ausführungsdetails, einschließlich der Exit-Codes, stdout und stderr der Hooks, lesen Sie das Debug-Log. Starten Sie Claude Code mit `claude --debug-file /tmp/claude.log`, um in einen bekannten Pfad zu schreiben, und führen Sie dann `tail -f /tmp/claude.log` in einem anderen Terminal aus. Wenn Sie ohne dieses Flag gestartet haben, führen Sie `/debug` während der Sitzung aus, um das Logging zu aktivieren und den Log-Pfad zu finden.1130Für vollständige Ausführungsdetails, einschließlich der Exit-Codes, stdout und stderr der Hooks, lesen Sie das [Debug-Log](/docs/de/hooks#debug-hooks). Starten Sie Claude Code mit `claude --debug-file /tmp/claude.log`, um in einen bekannten Pfad zu schreiben, und führen Sie dann `tail -f /tmp/claude.log` in einem anderen Terminal aus. Wenn Sie ohne dieses Flag gestartet haben, führen Sie `/debug` während der Sitzung aus, um das Logging zu aktivieren und den Log-Pfad zu finden.

1123 1131 

1124<h2 id="learn-more">1132<h2 id="learn-more">

1125 Weitere Informationen1133 Weitere Informationen

Details

22 22 

23| Kürzel | Beschreibung | Kontext |23| Kürzel | Beschreibung | Kontext |

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

25| `Ctrl+C` | Unterbrechen oder Eingabe löschen | Unterbricht einen laufenden Vorgang. Wenn nichts läuft, löscht der erste Druck die Eingabeaufforderung und ein zweiter Druck beendet Claude Code |25| `Ctrl+C` | Unterbrechen oder Eingabe löschen | Unterbricht einen laufenden Vorgang. Wenn nichts läuft, löscht der erste Druck die Prompt-Eingabe und ein zweiter Druck beendet Claude Code. Drücken Sie `Up`, solange der Prompt noch leer ist, um den gelöschten Entwurf zurückzuholen; dies erfordert Claude Code v2.1.288 oder später |

26| `Ctrl+X Ctrl+K` | Alle laufenden [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) in dieser Sitzung stoppen und [automatische Artefakt-Antworten](/docs/de/artifacts#let-claude-reply-to-comments-on-its-own) für den Rest deaktivieren. Zweimal innerhalb von 3 Sekunden drücken, um zu bestätigen. Sie können die Tastenkombination auch drücken, während die Berechtigungsabfrage eines Hintergrund-Subagenten geöffnet ist | Subagenten-Steuerung |26| `Ctrl+X Ctrl+K` | Alle laufenden [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) in dieser Sitzung stoppen und [automatische Artefakt-Antworten](/docs/de/artifacts#let-claude-reply-to-comments-on-its-own) für den Rest deaktivieren. Zweimal innerhalb von 3 Sekunden drücken, um zu bestätigen. Sie können die Tastenkombination auch drücken, während die Berechtigungsabfrage eines Hintergrund-Subagenten geöffnet ist | Subagenten-Steuerung |

27| `Ctrl+D` | Claude Code-Sitzung beenden | Der erste Druck zeigt einen Bestätigungshinweis und ein zweiter Druck innerhalb von 800 ms beendet die Sitzung. Wenn die Eingabeaufforderung Text enthält, löscht `Ctrl+D` das Zeichen nach dem Cursor |27| `Ctrl+D` | Claude Code-Sitzung beenden | Der erste Druck zeigt einen Bestätigungshinweis und ein zweiter Druck innerhalb von 800 ms beendet die Sitzung. Wenn die Eingabeaufforderung Text enthält, löscht `Ctrl+D` das Zeichen nach dem Cursor |

28| `Ctrl+G` oder `Ctrl+X Ctrl+E` | Im Standard-Texteditor öffnen | Bearbeiten Sie Ihre Eingabeaufforderung oder benutzerdefinierte Antwort in Ihrem Standard-Texteditor. `Ctrl+X Ctrl+E` ist die readline-native Bindung. Aktivieren Sie **Letzte Antwort im externen Editor anzeigen** in `/config`, um Claudes vorherige Antwort als `#`-kommentierter Kontext über Ihrer Eingabeaufforderung einzufügen; Claude Code entfernt den Kommentarblock, wenn Sie speichern |28| `Ctrl+G` oder `Ctrl+X Ctrl+E` | Im Standard-Texteditor öffnen | Bearbeiten Sie Ihre Eingabeaufforderung oder benutzerdefinierte Antwort in Ihrem Standard-Texteditor. `Ctrl+X Ctrl+E` ist die readline-native Bindung. Aktivieren Sie **Letzte Antwort im externen Editor anzeigen** in `/config`, um Claudes vorherige Antwort als `#`-kommentierter Kontext über Ihrer Eingabeaufforderung einzufügen; Claude Code entfernt den Kommentarblock, wenn Sie speichern |


36| `Ctrl+Z` | Claude Code unterbrechen | Nur Unix. Unterbricht den Prozess zu Ihrer Shell; führen Sie `fg` aus, um fortzufahren |36| `Ctrl+Z` | Claude Code unterbrechen | Nur Unix. Unterbricht den Prozess zu Ihrer Shell; führen Sie `fg` aus, um fortzufahren |

37| `Pfeiltasten links/rechts` | Durch Dialog-Registerkarten navigieren | Navigieren Sie zwischen Registerkarten in Berechtigungsdialogen und Menüs. In einem Dialog mit Registerkarten wechseln die Tasten die Registerkarten, während die Registerkartenzeile den Fokus hat. Siehe [Aktionen für Registerkarten](/docs/de/keybindings#tabs-actions), um zu erfahren, wie sich der Fokus bewegt |37| `Pfeiltasten links/rechts` | Durch Dialog-Registerkarten navigieren | Navigieren Sie zwischen Registerkarten in Berechtigungsdialogen und Menüs. In einem Dialog mit Registerkarten wechseln die Tasten die Registerkarten, während die Registerkartenzeile den Fokus hat. Siehe [Aktionen für Registerkarten](/docs/de/keybindings#tabs-actions), um zu erfahren, wie sich der Fokus bewegt |

38| `Tab` | Einen Autovervollständigungsvorschlag akzeptieren oder einen Kommentar zu einer Berechtigungsantwort hinzufügen | Während Autovervollständigungsvorschläge in der Eingabeaufforderung angezeigt werden, akzeptiert dies den ausgewählten Vorschlag. Bei den meisten Berechtigungsaufforderungen öffnet dies mit **Ja** oder **Nein** fokussiert ein Kommentarfeld für diese Option, und das erneute Drücken schließt das Feld. Siehe [Kommentar hinzufügen, wenn Sie eine Berechtigungsaufforderung beantworten](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | Einen Autovervollständigungsvorschlag akzeptieren oder einen Kommentar zu einer Berechtigungsantwort hinzufügen | Während Autovervollständigungsvorschläge in der Eingabeaufforderung angezeigt werden, akzeptiert dies den ausgewählten Vorschlag. Bei den meisten Berechtigungsaufforderungen öffnet dies mit **Ja** oder **Nein** fokussiert ein Kommentarfeld für diese Option, und das erneute Drücken schließt das Feld. Siehe [Kommentar hinzufügen, wenn Sie eine Berechtigungsaufforderung beantworten](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Pfeiltasten oben/unten` oder `Ctrl+P`/`Ctrl+N` | Cursor verschieben oder Befehlsverlauf navigieren | Wenn sich die Eingabe über mehr als eine visuelle Zeile erstreckt, ob umgebrochen oder mehrzeilig, verschiebt dies zunächst den Cursor in der Eingabeaufforderung. Sobald sich der Cursor in der ersten oder letzten visuellen Zeile befindet, navigiert das erneute Drücken durch den Befehlsverlauf. Während Sie Nachrichten in der Warteschlange haben, [nimmt Oben aus der ersten Zeile diese stattdessen zurück](#take-back-what-you-queued) |39| `Pfeiltasten oben/unten` oder `Ctrl+P`/`Ctrl+N` | Cursor verschieben oder Befehlsverlauf navigieren | Wenn sich die Eingabe über mehr als eine visuelle Zeile erstreckt, ob umgebrochen oder mehrzeilig, verschiebt dies zunächst den Cursor im Prompt. Sobald sich der Cursor in der ersten oder letzten visuellen Zeile befindet, navigiert das erneute Drücken durch den Befehlsverlauf. Während Sie Nachrichten in der Warteschlange haben, [nimmt `Up` aus der ersten Zeile diese stattdessen zurück](#take-back-what-you-queued) |

40| `Esc` | Claude unterbrechen oder einen Dialog schließen | Stoppen Sie die aktuelle Antwort oder den Werkzeugaufruf in der Mitte des Zuges, damit Sie umleiten können. Claude behält die bisherige Arbeit bei. Wenn Sie [Nachrichten in der Warteschlange haben](#queue-messages-while-claude-works), sendet Claude Code diese als nächstes. Wenn ein Dialog offen ist, schließt `Esc` den Dialog. Während ein Fußzeilenelement ausgewählt ist, wie eine Zeile im [Subagenten-Panel](/docs/de/sub-agents#run-subagents-in-foreground-or-background) unter der Eingabeaufforderung, [hebt `Esc` die Auswahl auf](/docs/de/keybindings#footer-actions), anstatt zu unterbrechen. Bei einer Berechtigungsaufforderung lehnt `Esc` die Aktion ab, genauso wie [**Nein** ohne Kommentar](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Claude unterbrechen oder einen Dialog schließen | Stoppen Sie die aktuelle Antwort oder den Werkzeugaufruf in der Mitte des Zuges, damit Sie umleiten können. Claude behält die bisherige Arbeit bei. Wenn Sie [Nachrichten in der Warteschlange haben](#queue-messages-while-claude-works), sendet Claude Code diese als nächstes. Wenn ein Dialog offen ist, schließt `Esc` den Dialog. Während ein Fußzeilenelement ausgewählt ist, wie eine Zeile im [Subagenten-Panel](/docs/de/sub-agents#run-subagents-in-foreground-or-background) unter der Eingabeaufforderung, [hebt `Esc` die Auswahl auf](/docs/de/keybindings#footer-actions), anstatt zu unterbrechen. Bei einer Berechtigungsaufforderung lehnt `Esc` die Aktion ab, genauso wie [**Nein** ohne Kommentar](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Eingabeentwurf löschen oder zurückspulen | Wenn die Eingabeaufforderung Text enthält, löscht doppeltes `Esc` diesen und speichert den Entwurf im Verlauf, damit `Oben` ihn abruft. Wenn die Eingabe leer ist, öffnet doppeltes `Esc` das [Zurückspul-Menü](/docs/de/checkpointing), um Code und Gespräch von einem früheren Punkt wiederherzustellen oder zusammenzufassen |41| `Esc` + `Esc` | Eingabeentwurf löschen oder zurückspulen | Wenn die Prompt-Eingabe Text enthält, löscht doppeltes `Esc` diesen und speichert den Entwurf im Verlauf, damit `Up` ihn abruft. Wenn die Eingabe leer ist, öffnet doppeltes `Esc` das [Zurückspul-Menü](/docs/de/checkpointing), um Code und Konversation von einem früheren Punkt wiederherzustellen oder zusammenzufassen |

42| `Ctrl+Enter` oder `Ctrl+X Ctrl+S` | Warteschlangen-Nachrichten jetzt senden | Sendet Ihre [Nachrichten in der Warteschlange](#queue-messages-while-claude-works) und Ihren Entwurf mit ihnen sofort. [Wenn Claude Code das sendet, das Sie in die Warteschlange eingereiht haben](#when-claude-code-sends-what-you-queued) behandelt, was mit dem Zug passiert, an dem Claude arbeitet. Im [Shell-Modus](#shell-mode-with-prefix) reiht der Schlüssel Ihren Befehl nur in die Warteschlange ein. In Terminals, die erweiterte Tasten nicht melden, kommt `Ctrl+Enter` als einfaches `Enter` an; `Ctrl+X Ctrl+S` funktioniert in jedem Terminal. Erfordert Claude Code v2.1.275 oder später |42| `Ctrl+Enter` oder `Ctrl+X Ctrl+S` | Warteschlangen-Nachrichten jetzt senden | Sendet Ihre [Nachrichten in der Warteschlange](#queue-messages-while-claude-works) und Ihren Entwurf mit ihnen sofort. [Wenn Claude Code das sendet, das Sie in die Warteschlange eingereiht haben](#when-claude-code-sends-what-you-queued) behandelt, was mit dem Zug passiert, an dem Claude arbeitet. Im [Shell-Modus](#shell-mode-with-prefix) reiht der Schlüssel Ihren Befehl nur in die Warteschlange ein. In Terminals, die erweiterte Tasten nicht melden, kommt `Ctrl+Enter` als einfaches `Enter` an; `Ctrl+X Ctrl+S` funktioniert in jedem Terminal. Erfordert Claude Code v2.1.275 oder später |

43| `Shift+Tab` oder `Alt+M` unter Windows, wenn die Node- oder Bun-Laufzeit den VT-Eingabemodus nicht aktiviert | Berechtigungsmodi durchlaufen | Durchlaufen Sie `default` (im Modusindikator als Manuell gekennzeichnet), `acceptEdits`, `plan` und, falls verfügbar, `bypassPermissions` und dann `auto`. Von `auto` wechselt der erste Druck zu `default`. Siehe [Berechtigungsmodi](/docs/de/permission-modes). Bei einer Dateiberechtigungsaufforderung schließt dieselbe Taste ein offenes [Kommentarfeld](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt). Ohne offenes Feld wählt es die Option aus, die die Aktion für den Rest der Sitzung ermöglicht, wenn die Aufforderung diese Option anbietet |43| `Shift+Tab` oder `Alt+M` unter Windows, wenn die Node- oder Bun-Laufzeit den VT-Eingabemodus nicht aktiviert | Berechtigungsmodi durchlaufen | Durchlaufen Sie `default` (im Modusindikator als Manuell gekennzeichnet), `acceptEdits`, `plan` und, falls verfügbar, `bypassPermissions` und dann `auto`. Von `auto` wechselt der erste Druck zu `default`. Siehe [Berechtigungsmodi](/docs/de/permission-modes). Bei einer Dateiberechtigungsaufforderung schließt dieselbe Taste ein offenes [Kommentarfeld](/docs/de/permissions#add-a-comment-when-you-answer-a-permission-prompt). Ohne offenes Feld wählt es die Option aus, die die Aktion für den Rest der Sitzung ermöglicht, wenn die Aufforderung diese Option anbietet |

44| `Option+P` (macOS) oder `Alt+P` (Windows/Linux) | Modell wechseln | Wechseln Sie Modelle, ohne Ihre Eingabeaufforderung zu löschen |44| `Option+P` (macOS) oder `Alt+P` (Windows/Linux) | Modell wechseln | Wechseln Sie Modelle, ohne Ihre Eingabeaufforderung zu löschen |


130 130 

131| Kürzel | Beschreibung | Notizen |131| Kürzel | Beschreibung | Notizen |

132| :- | :- | :- |132| :- | :- | :- |

133| `Leertaste` halten oder tippen | Sprachdiktat | Erfordert, dass [Sprachdiktat](/docs/de/voice-dictation) aktiviert ist. Halten Sie gedrückt, um aufzunehmen, oder führen Sie `/voice tap` aus, um zum Umschalten zu tippen. [Neu bindbar](/docs/de/voice-dictation#rebind-the-dictation-key) |133| `Space` halten oder tippen | Sprachdiktat | Erfordert, dass [Sprachdiktat](/docs/de/voice-dictation) aktiviert ist. Halten Sie gedrückt, um aufzunehmen, oder führen Sie `/voice tap` aus, um per Tippen umzuschalten. [Neu bindbar](/docs/de/voice-dictation#rebind-the-dictation-key) |

134 134 

135<h2 id="commands">135<h2 id="commands">

136 Befehle136 Befehle


442 442 

443Claude Code nimmt eingereihte Shell-Befehle nur zurück, wenn das Eingabefeld leer ist und Sie nichts anderes eingereiht haben, und es schaltet das Eingabefeld in den Shell-Modus um, wenn es das tut. Andernfalls lässt es sie in der Warteschlange, aufgelistet mit ihrem `!`-Präfix, und führt sie nach dem Ende des Turns aus.443Claude Code nimmt eingereihte Shell-Befehle nur zurück, wenn das Eingabefeld leer ist und Sie nichts anderes eingereiht haben, und es schaltet das Eingabefeld in den Shell-Modus um, wenn es das tut. Andernfalls lässt es sie in der Warteschlange, aufgelistet mit ihrem `!`-Präfix, und führt sie nach dem Ende des Turns aus.

444 444 

445Wenn Sie eingereihten Text zurücknehmen, während `←` [darauf wartet, die Sitzung in den Hintergrund zu verschieben](/docs/de/agent-view#switch-sessions-without-leaving-the-terminal), bleibt der Text im Eingabefeld und Claude Code bricht den Wechsel ab. Wenn Sie ihn genau in dem Moment zurücknehmen, in dem die Sitzung verschoben wird, verschwindet der Text mit dem Vordergrundbildschirm: Er wurde nicht gesendet. Jede Nachricht, die Sie zurückgenommen haben, wird als eigener Eintrag im [Befehlsverlauf](#command-history) gespeichert. Um eine davon wiederherzustellen, öffnen Sie die Sitzung erneut und drücken Sie `Up` bei einem leeren Prompt, während nichts eingereiht ist.

446 

445<h2 id="prompt-suggestions">447<h2 id="prompt-suggestions">

446 Eingabeaufforderungsvorschläge448 Eingabeaufforderungsvorschläge

447</h2>449</h2>

Details

299 299 

300[Claude Code in Slack](/docs/de/slack) und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) sind nicht Teil einer Gateway-Bereitstellung. Gateway-Variablen, die in der Umgebungskonfiguration einer Cloud-Sitzung festgelegt sind, werden nicht angewendet. Wenn Ihr Datenverkehr auf dem Gateway bleiben muss, aktivieren Sie diese Oberflächen nicht für diese Benutzer.300[Claude Code in Slack](/docs/de/slack) und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) sind nicht Teil einer Gateway-Bereitstellung. Gateway-Variablen, die in der Umgebungskonfiguration einer Cloud-Sitzung festgelegt sind, werden nicht angewendet. Wenn Ihr Datenverkehr auf dem Gateway bleiben muss, aktivieren Sie diese Oberflächen nicht für diese Benutzer.

301 301 

302[Remote Control](/docs/de/remote-control) und [Sprachdiktat](/docs/de/voice-dictation) verlassen sich beide auf eine claude.ai-Identität: Remote Control, um eine Live-Sitzung mit Ihrem Konto zu koppeln, und Sprachdiktat, um den claude.ai-Transkriptions-Endpunkt zu erreichen. Sie sind nicht verfügbar, während `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder ein `apiKeyHelper` aktiv ist. Remote Control ist auch deaktiviert, während `ANTHROPIC_BASE_URL` auf einen Nicht-Anthropic-Host verweist, daher ist die Anmeldung mit claude.ai allein nicht ausreichend. Vor v2.1.196 hat eine Nicht-Anthropic-Basis-URL Remote Control nicht blockiert.302[Remote Control](/docs/de/remote-control) und [Sprachdiktat](/docs/de/voice-dictation) verlassen sich beide auf eine claude.ai-Identität: Remote Control, um eine Live-Sitzung mit Ihrem Konto zu koppeln, und Sprachdiktat, um den claude.ai-Transkriptions-Endpunkt zu erreichen. Sie sind nicht verfügbar, während `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder ein `apiKeyHelper` aktiv ist. Remote Control ist auch deaktiviert, während `ANTHROPIC_BASE_URL` auf einen Nicht-Anthropic-Host verweist, daher ist die Anmeldung mit claude.ai allein nicht ausreichend.

303 303 

304Um eines dieser Features wiederherzustellen, melden Sie sich mit claude.ai an und heben Sie die Festlegung der Gateway-Variablen auf, die das Feature überprüft. Der Remote Control-Abschnitt von `claude doctor` benennt, was Remote Control derzeit blockiert.304Um eines dieser Features wiederherzustellen, melden Sie sich mit claude.ai an und heben Sie die Festlegung der Gateway-Variablen auf, die das Feature überprüft. Der Remote Control-Abschnitt von `claude doctor` benennt, was Remote Control derzeit blockiert.

305 305 

mcp.md +4 −4

Details

283 Genehmigungen von Projektservern und Workspace-Vertrauen283 Genehmigungen von Projektservern und Workspace-Vertrauen

284</h4>284</h4>

285 285 

286Ab v2.1.196 lesen `claude mcp list` und `claude mcp get` `.mcp.json`-Genehmigungen nur aus Einstellungsdateien, die nicht in das Repository eingecheckt werden, bis Sie dem Workspace vertrauen, indem Sie `claude` darin ausführen und den Workspace-Vertrauensdialog akzeptieren. Ein geklontes Repository kann seine eigenen Server nicht genehmigen: [`enableAllProjectMcpServers`](/docs/de/settings-reference#enableallprojectmcpservers) oder [`enabledMcpjsonServers`](/docs/de/settings-reference#enabledmcpjsonservers), die in die `.claude/settings.json` des Projekts eingecheckt werden, werden in einem nicht vertrauenswürdigen Ordner ignoriert, und der Server bleibt bei `⏸ Pending approval`, statt verbunden und auf seinen Zustand geprüft zu werden.286`claude mcp list` und `claude mcp get` lesen `.mcp.json`-Genehmigungen nur aus Einstellungsdateien, die nicht in das Repository eingecheckt werden, bis Sie dem Workspace vertrauen, indem Sie `claude` darin ausführen und den Workspace-Vertrauensdialog akzeptieren. Ein geklontes Repository kann seine eigenen Server nicht genehmigen: [`enableAllProjectMcpServers`](/docs/de/settings-reference#enableallprojectmcpservers) oder [`enabledMcpjsonServers`](/docs/de/settings-reference#enabledmcpjsonservers), die in die `.claude/settings.json` des Projekts eingecheckt werden, werden in einem nicht vertrauenswürdigen Ordner ignoriert, und der Server bleibt bei `⏸ Pending approval`, statt verbunden und auf seinen Zustand geprüft zu werden.

287 287 

288Genehmigungen aus diesen Quellen gelten weiterhin in einem nicht vertrauenswürdigen Ordner:288Genehmigungen aus diesen Quellen gelten weiterhin in einem nicht vertrauenswürdigen Ordner:

289 289 


859 859 

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

861 861 

862Im nicht-interaktiven Modus gibt es kein `/mcp`-Panel, daher kann Claude Code den OAuth-Fluss nicht für Sie ausführen. Ab v2.1.196 teilt Claude Code Claude mit, dass die Tools des Servers nicht verfügbar sind, bis Sie ihn autorisieren, 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. Claude kann dann den Server benennen, der Anmeldung benötigt, anstatt so zu reagieren, als wäre der Server nicht konfiguriert. Schließen Sie die Anmeldung aus einer interaktiven Sitzung mit `/mcp` oder `claude mcp login <name>` ab.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.

863 863 

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

865 865 


1048 1048 

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

1050 1050 

1051Ab v2.1.196 fordert Claude Code, wenn `oauth.scopes` nicht gesetzt ist, den Bereich an, der vom `WWW-Authenticate`-Header des Servers oder seinen Protected Resource Metadata bereitgestellt wird, und sendet keinen `scope`-Parameter, wenn keiner von beiden einen bereitstellt. Es fordert nicht mehr den vollständigen `scopes_supported`-Katalog aus automatisch erkannten Authorization Server Metadata an. Das Anfordern dieses Katalogs führte dazu, dass Identity Provider, die Admin-only- oder Template-Bereiche bewerben, die Autorisierungsanfrage mit einem `invalid_scope`-Fehler ablehnten. Metadaten, die von einer konfigurierten `authServerMetadataUrl` abgerufen werden, liefern immer noch ihre `scopes_supported` als die angeforderten Bereiche.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.

1052 1052 

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

1054 1054 


1141 1141 

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`.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`.

1143 1143 

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 [eine dieser Variablen erweitert](#environment-variable-expansion-in-mcp-json), hat der `CLAUDE_CODE_MCP_SERVER_URL`-Wert, den der Helper erhält, diesen Teil durch `REDACTED` ersetzt.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.

1145 1145 

1146<h4 id="trust-a-folder-before-its-headershelper-runs">1146<h4 id="trust-a-folder-before-its-headershelper-runs">

1147 Vertrauen Sie einem Ordner, bevor sein headersHelper ausgeführt wird1147 Vertrauen Sie einem Ordner, bevor sein headersHelper ausgeführt wird

Details

470 Das Umhüllen von Werten in Anführungszeichen entgeht nicht Leerzeichen. Zum Beispiel führt `org.name="My Company"` zum Literalwert `"My Company"` mit den Anführungszeichen enthalten, nicht `My Company`.470 Das Umhüllen von Werten in Anführungszeichen entgeht nicht Leerzeichen. Zum Beispiel führt `org.name="My Company"` zum Literalwert `"My Company"` mit den Anführungszeichen enthalten, nicht `My Company`.

471</Warning>471</Warning>

472 472 

473<h3 id="attribute-telemetry-to-desktop-ssh-sessions">

474 Telemetrie Desktop-SSH-Sitzungen zuordnen

475</h3>

476 

477Um zu sehen, auf welchem Remote-Rechner eine [Desktop-SSH-Sitzung](/docs/de/desktop#ssh-sessions) lief, benennen Sie jeden Rechner in einem benutzerdefinierten Attribut. Metriken und Ereignisse nennen den Rechner nicht, auf dem eine Sitzung lief.

478 

479Fügen Sie auf jedem Remote-Rechner [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) dem `env`-Block hinzu, der die Telemetrie einschaltet, und zwar in der [Datei mit verwalteten Einstellungen, die die Sitzung liest](/docs/de/desktop#managed-settings). Schreiben Sie den Namen in der Datei jedes Rechners aus. Claude Code expandiert den Wert nicht, daher kommt `host.name=$(hostname)` als genau diese Zeichen an.

480 

481Das folgende Beispiel benennt den Rechner `build-7`:

482 

483```json theme={null}

484{

485 "env": {

486 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

487 "OTEL_METRICS_EXPORTER": "otlp",

488 "OTEL_LOGS_EXPORTER": "otlp",

489 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

490 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317",

491 "OTEL_RESOURCE_ATTRIBUTES": "host.name=build-7"

492 }

493}

494```

495 

496Wenn nichts anderes die Variable setzt, kommt `host.name` im Ressourcenblock an, in Desktop-SSH-Sitzungen und in der CLI auf diesem Rechner. Wo benutzerdefinierte Attribute sonst noch erscheinen, erfahren Sie unter [Multi-Team-Organisationsunterstützung](#multi-team-organization-support).

497 

498Wenn der Name nicht ankommt, prüfen Sie, ob eine dieser Ursachen vorliegt:

499 

500* **Sie haben ihn auf dem Computer gesetzt, auf dem Desktop läuft**: Desktop gibt einen dort gesetzten Wert nicht an die SSH-Sitzung weiter

501* **Sie haben ihn in einer Login-Datei exportiert**: Nur Login-Shells lesen eine Datei wie `/etc/profile`. Ein Wert, den Sie dort mit `export` setzen, erreicht Claude Code, wenn Sie es aus einer Login-Shell starten. Er erreicht keine Desktop-SSH-Sitzung, da Desktop Claude Code nicht über eine Login-Shell startet.

502* **Ein Wert enthält ein Leerzeichen**: Claude Code kopiert dann keinen der Schlüssel auf Ereignisse oder Datenpunkte und meldet keinen Fehler. [Entfernen Sie das Leerzeichen aus dem Wert](#multi-team-organization-support).

503* **Etwas anderes setzt die Variable bereits**: In einer Sitzung, die die Desktop-App startet, hat eine bereits in der Startumgebung gesetzte Variable [Vorrang vor Einstellungsdateien](/docs/de/settings-reference#how-env-values-interact-with-your-shell). Das [Debug-Log](/docs/de/debug-your-config) nennt jede ignorierte Variable. Wenn eine Desktop-Bereitstellung eines Drittanbieters in der von ihr bereitgestellten Umgebung [einen OTLP-Endpunkt angibt](#how-managed-settings-lock-the-otlp-destination), enthält diese Umgebung das eigene `OTEL_RESOURCE_ATTRIBUTES` von Desktop.

504 

473<h3 id="example-configurations">505<h3 id="example-configurations">

474 Beispielkonfigurationen506 Beispielkonfigurationen

475</h3>507</h3>


1746 1778 

1747Alle Metriken und Ereignisse werden mit den folgenden Ressourcenattributen exportiert:1779Alle Metriken und Ereignisse werden mit den folgenden Ressourcenattributen exportiert:

1748 1780 

1749* `service.name`: `claude-code` für Terminal-Sitzungen, `claude-code-desktop` für Sitzungen, die über die Registerkarte „Code“ in der [Claude Desktop-App](/docs/de/desktop) gestartet werden1781* `service.name`: `claude-code` für Terminal-Sitzungen, `claude-code-desktop` für lokale Sitzungen, die über die Registerkarte „Code“ in der [Claude Desktop-App](/docs/de/desktop) gestartet werden

1750* `service.version`: Aktuelle Claude Code-Version oder die Desktop-App-Version für Code-Registerkarten-Sitzungen1782* `service.version`: Aktuelle Claude Code-Version oder die Desktop-App-Version für lokale Sitzungen in der Code-Registerkarte

1751* `os.type`: Betriebssystemtyp (zum Beispiel `linux`, `darwin`, `windows`)1783* `os.type`: Betriebssystemtyp (zum Beispiel `linux`, `darwin`, `windows`)

1752* `os.version`: Betriebssystem-Versionsnummer1784* `os.version`: Betriebssystem-Versionsnummer

1753* `host.arch`: Host-Architektur (zum Beispiel `amd64`, `arm64`)1785* `host.arch`: Host-Architektur (zum Beispiel `amd64`, `arm64`)

1754* `wsl.version`: WSL-Versionsnummer (nur vorhanden, wenn auf Windows Subsystem for Linux ausgeführt)1786* `wsl.version`: WSL-Versionsnummer (nur vorhanden, wenn auf Windows Subsystem for Linux ausgeführt)

1755* Meter-Name: `com.anthropic.claude_code`1787* Meter-Name: `com.anthropic.claude_code`

1756 1788 

1757Wenn Ihre Collector-Pipelines oder Dashboards nach `service.name = claude-code` filtern, fügen Sie `claude-code-desktop` zum Filter hinzu, um auch Telemetrie von Code-Registerkarten-Sitzungen zu erfassen.1789Wenn Ihre Collector-Pipelines oder Dashboards nach `service.name = claude-code` filtern, fügen Sie `claude-code-desktop` zum Filter hinzu, um auch Telemetrie von lokalen Sitzungen in der Code-Registerkarte zu erfassen.

1758 1790 

1759<h2 id="roi-measurement-resources">1791<h2 id="roi-measurement-resources">

1760 ROI-Messung-Ressourcen1792 ROI-Messung-Ressourcen

Details

183 Netzwerkvariablen in Einstellungen festlegen, nicht in der Shell183 Netzwerkvariablen in Einstellungen festlegen, nicht in der Shell

184</h3>184</h3>

185 185 

186Der Supervisor ist ein Prozess, der von jedem Terminal gemeinsam genutzt wird. Er erbt die Umgebung der Shell, die ihn zuerst startet, und ein vom Betriebssystem installierter Supervisor erhält überhaupt keine Shell-Umgebung. Wenn Sie eine Proxy-, CA-Pfad- oder mTLS-Variable nur in Ihrer Shell exportieren, erreicht sie Hintergrund-Agenten, wenn diese Shell den Supervisor kalt gestartet hat, und erreicht sie stillschweigend nicht, wenn eine andere Shell dies getan hat.186Der Supervisor ist ein Prozess, der von jedem Terminal gemeinsam genutzt wird. Er erbt die Umgebung der Shell, die ihn zuerst startet. Wenn Sie eine Proxy-, CA-Pfad- oder mTLS-Variable nur in Ihrer Shell exportieren, erreicht sie Hintergrund-Agenten, wenn diese Shell den Supervisor kalt gestartet hat, und erreicht sie stillschweigend nicht, wenn eine andere Shell dies getan hat.

187 187 

188Legen Sie stattdessen die gleichen Variablen im `env`-Block von `~/.claude/settings.json` oder in [verwalteten Einstellungen](/docs/de/settings) fest. Jede Variable auf dieser Seite kann dort festgelegt werden, und Einstellungen sind die einzige Konfiguration, die jede Hintergrund-Sitzung auf jedem Computer erreicht.188Legen Sie stattdessen die gleichen Variablen im `env`-Block von `~/.claude/settings.json` oder in [verwalteten Einstellungen](/docs/de/settings) fest. Jede Variable auf dieser Seite kann dort festgelegt werden, und Einstellungen sind die einzige Konfiguration, die jede Hintergrund-Sitzung auf jedem Computer erreicht.

189 189 


196Legen Sie die Einstellung [`processWrapper`](/docs/de/settings-reference#processwrapper) fest, um den Supervisor, seine Worker und die anderen unter [Was der Launcher abdeckt](/docs/de/corporate-launcher#what-the-launcher-covers) aufgelisteten Hintergrund-Prozesse mit Ihrem Launcher zu präfixieren. Die entsprechende Umgebungsvariable [`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/de/env-vars) hat Vorrang, wenn beide festgelegt sind, und unterliegt der gleichen Regel: Liefern Sie sie über verwaltete Einstellungen oder `~/.claude/settings.json`, nicht über einen Shell-Export. [Claude Code hinter einem Corporate Launcher ausführen](/docs/de/corporate-launcher) behandelt den Vertrag, den der Launcher erfüllen muss, was er erreicht und nicht erreicht, und wie Sie ihn bereitstellen.196Legen Sie die Einstellung [`processWrapper`](/docs/de/settings-reference#processwrapper) fest, um den Supervisor, seine Worker und die anderen unter [Was der Launcher abdeckt](/docs/de/corporate-launcher#what-the-launcher-covers) aufgelisteten Hintergrund-Prozesse mit Ihrem Launcher zu präfixieren. Die entsprechende Umgebungsvariable [`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/de/env-vars) hat Vorrang, wenn beide festgelegt sind, und unterliegt der gleichen Regel: Liefern Sie sie über verwaltete Einstellungen oder `~/.claude/settings.json`, nicht über einen Shell-Export. [Claude Code hinter einem Corporate Launcher ausführen](/docs/de/corporate-launcher) behandelt den Vertrag, den der Launcher erfüllen muss, was er erreicht und nicht erreicht, und wie Sie ihn bereitstellen.

197 197 

198<Note>198<Note>

199 Ein bereits laufender Supervisor behält die Startkonfiguration, mit der er gestartet wurde. Nach der Bereitstellung der Launcher-Einstellung führen Sie [`claude daemon stop --any`](/docs/de/agent-view#the-supervisor-process) aus, damit der nächste `claude agents` oder `--bg` einen Supervisor startet, der sie berücksichtigt. Ein installierter Service benötigt `claude daemon stop` ohne `--any`.199 Ein bereits laufender Supervisor behält die Startkonfiguration, mit der er gestartet wurde. Nach der Bereitstellung der Launcher-Einstellung führen Sie [`claude daemon stop --any`](/docs/de/agent-view#the-supervisor-process) aus, damit der nächste `claude agents` oder `--bg` einen Supervisor startet, der sie berücksichtigt.

200</Note>200</Note>

201 201 

202<h2 id="streaming-idle-watchdogs">202<h2 id="streaming-idle-watchdogs">

Details

22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | Lesevorgänge, Dateibearbeitungen und häufige Dateisystembefehle (`mkdir`, `touch`, `mv`, `cp` usw.) | Iteration bei Code-Überprüfung |22| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | Lesevorgänge, Dateibearbeitungen und häufige Dateisystembefehle (`mkdir`, `touch`, `mv`, `cp` usw.) | Iteration bei Code-Überprüfung |

23| [`plan`](#analyze-before-you-edit-with-plan-mode) | Lesevorgänge, plus vom Klassifizierer genehmigte Befehle, wenn [Auto-Modus](#eliminate-prompts-with-auto-mode) verfügbar ist | Erkundung einer Codebasis vor Änderungen |23| [`plan`](#analyze-before-you-edit-with-plan-mode) | Lesevorgänge, plus vom Klassifizierer genehmigte Befehle, wenn [Auto-Modus](#eliminate-prompts-with-auto-mode) verfügbar ist | Erkundung einer Codebasis vor Änderungen |

24| [`auto`](#eliminate-prompts-with-auto-mode) | Alles, mit Sicherheitsprüfungen im Hintergrund | Lange Aufgaben, Reduzierung von Aufforderungsmüdigkeit |24| [`auto`](#eliminate-prompts-with-auto-mode) | Alles, mit Sicherheitsprüfungen im Hintergrund | Lange Aufgaben, Reduzierung von Aufforderungsmüdigkeit |

25| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Lesevorgänge und vorab genehmigte Tools; alles, das eine Aufforderung auslösen würde, wird abgelehnt | Gesperrte CI und Skripte |25| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | Dateilesevorgänge innerhalb Ihrer Arbeitsverzeichnisse und vorab genehmigte Tools; alles, was eine Berechtigungsabfrage auslösen würde, wird abgelehnt | Gesperrte CI und Skripte |

26| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Alles | Nur isolierte Container und VMs |26| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | Alles | Nur isolierte Container und VMs |

27 27 

28Der Modus, der jede Aktion überprüft, wird in der CLI, in `claude --help`, in den VS Code- und JetBrains-Erweiterungen und in der Desktop-App als **Manual** bezeichnet. Sein Konfigurationswert ist `default`, was Hooks und SDK-Integrationen verwenden. Die CLI akzeptiert `manual` als Alias überall dort, wo Sie den Wert eingeben, zum Beispiel `claude --permission-mode manual` oder `"defaultMode": "manual"`.28Der Modus, der jede Aktion überprüft, wird in der CLI, in `claude --help`, in den VS Code- und JetBrains-Erweiterungen und in der Desktop-App als **Manual** bezeichnet. Sein Konfigurationswert ist `default`, was Hooks und SDK-Integrationen verwenden. Die CLI akzeptiert `manual` als Alias überall dort, wo Sie den Wert eingeben, zum Beispiel `claude --permission-mode manual` oder `"defaultMode": "manual"`.


466 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse466 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse

467</h3>467</h3>

468 468 

469Solange [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) deaktiviert ist, laufen Dateilesevorgänge im Auto-Modus ohne Abfrage, einschließlich Lesezugriffen außerhalb der [Arbeitsverzeichnisse](/docs/de/permissions#working-directories). Wenn Claude das Read-, Grep- oder Glob-Tool zum ersten Mal auf einen Pfad außerhalb davon anwendet, fragt Claude Code, ob dieser Lesezugriff erlaubt werden soll.469Solange [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) deaktiviert ist, laufen Dateilesevorgänge mit Ausnahme von [Lesezugriffen auf Netzwerkpfade](/docs/de/permissions#network-paths) im Auto-Modus ohne Abfrage, einschließlich Lesezugriffen außerhalb der [Arbeitsverzeichnisse](/docs/de/permissions#working-directories). Wenn Claude das Read-, Grep- oder Glob-Tool zum ersten Mal auf einen Pfad außerhalb davon anwendet, fragt Claude Code, ob dieser Lesezugriff erlaubt werden soll.

470 470 

471Die Abfrage erscheint nicht in nicht-interaktiven `-p`-Läufen oder Hintergrundsitzungen; Lesezugriffe laufen dort wie bisher.471Die Abfrage erscheint nicht in nicht-interaktiven `-p`-Läufen oder Hintergrundsitzungen; Lesezugriffe laufen dort wie bisher.

472 472 


530 Jede Aktion durchläuft eine feste Entscheidungsreihenfolge. Der erste passende Schritt gewinnt:530 Jede Aktion durchläuft eine feste Entscheidungsreihenfolge. Der erste passende Schritt gewinnt:

531 531 

532 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort entschieden, mit diesen Ausnahmen:532 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort entschieden, mit diesen Ausnahmen:

533 * Schreibvorgänge in [geschützte Pfade](#protected-paths) werden an den Klassifikator weitergeleitet, auch wenn eine Allow-Regel zutrifft533 * Schreibvorgänge in [geschützte Pfade](#protected-paths) werden an den Klassifikator weitergeleitet, auch wenn eine Allow-Regel zutrifft. Wenn der geschützte Pfad die Datei ist, auf die eine per Symlink verknüpfte Einstellungsdatei verweist, kann der Schreibvorgang Sie stattdessen fragen, wie in der Liste der [geschützten Pfade](#protected-paths) beschrieben

534 * Keine Allow-Regel genehmigt `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen534 * Keine Allow-Regel genehmigt `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen

535 * MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, fragen Sie direkt, auch wenn eine Allow-Regel zutrifft, und dasselbe gilt für Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht535 * MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, fragen Sie direkt, auch wenn eine Allow-Regel zutrifft, und dasselbe gilt für Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht

536 * Ein Shell-Befehl, der [pro Befehl erlaubte Domains](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) mitführt, wird ebenfalls an den Klassifikator weitergeleitet, auch wenn eine Allow-Regel zutrifft, weil eine Regel den Befehl genehmigt, nicht seine Hosts536 * Ein Shell-Befehl, der [pro Befehl erlaubte Domains](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) mitführt, wird ebenfalls an den Klassifikator weitergeleitet, auch wenn eine Allow-Regel zutrifft, weil eine Regel den Befehl genehmigt, nicht seine Hosts

537 * Ask-Regeln, die auf den Inhalt eines Befehls abgleichen, wie `Bash(git push *)`, fallen auf eine Berechtigungsabfrage zurück537 * Ask-Regeln, die auf den Inhalt eines Befehls abgleichen, wie `Bash(git push *)`, fallen auf eine Berechtigungsabfrage zurück

538 * Ein Schreibvorgang, den die [Symlink-Prüfung](/docs/de/permissions#symlinks) zu einem geschützten Pfad auflöst, fragt Sie, wenn der von Claude angeforderte Pfad selbst nicht geschützt ist538 * Ein Schreibvorgang, den die [Symlink-Prüfung](/docs/de/permissions#symlinks) zu einem geschützten Pfad auflöst, fragt Sie, wenn der von Claude angeforderte Pfad selbst nicht geschützt ist

539 * Ein Lesezugriff auf einen [Netzwerkpfad](/docs/de/permissions#network-paths) fragt Sie, auch wenn eine Allow-Regel zutrifft

539 2. Nur lesende Aktionen und Dateibearbeitungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgängen in [geschützte Pfade](#protected-paths) und [dem ersten Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), bei denen Sie gefragt werden540 2. Nur lesende Aktionen und Dateibearbeitungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgängen in [geschützte Pfade](#protected-paths) und [dem ersten Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), bei denen Sie gefragt werden

540 * In einer Sitzung mit [serverseitiger Klassifikatorüberprüfung](#server-side-classifier-review) warten nur lesende und [in einer Sandbox ausgeführte](/docs/de/sandboxing#sandbox-modes) Shell-Befehle auf diese Überprüfung und werden blockiert, wenn sie sie kennzeichnet541 * In einer Sitzung mit [serverseitiger Klassifikatorüberprüfung](#server-side-classifier-review) warten nur lesende und [in einer Sandbox ausgeführte](/docs/de/sandboxing#sandbox-modes) Shell-Befehle auf diese Überprüfung und werden blockiert, wenn sie sie kennzeichnet

541 * Ein Schreibvorgang innerhalb Ihres Arbeitsverzeichnisses, den die [Symlink-Prüfung](/docs/de/permissions#symlinks) zu einem Ort außerhalb davon auflöst, fragt Sie542 * Ein Schreibvorgang innerhalb Ihres Arbeitsverzeichnisses, den die [Symlink-Prüfung](/docs/de/permissions#symlinks) zu einem Ort außerhalb davon auflöst, fragt Sie

542 * Wenn Claude ein [Artefakt liest, das jemand anderes erstellt hat](/docs/de/artifacts#read-an-artifact-shared-with-you), gelten die in jenem Abschnitt aufgeführten Genehmigungsfälle543 * Wenn Claude ein [Artefakt liest, das jemand anderes erstellt hat](/docs/de/artifacts#read-an-artifact-shared-with-you), gelten die in jenem Abschnitt aufgeführten Genehmigungsfälle

544 * Ein Lesezugriff auf einen [Netzwerkpfad](/docs/de/permissions#network-paths) fragt Sie

543 3. Alles andere geht an den Klassifikator, abgesehen von [Löschungen kritischer Pfade](#critical-paths) bei deren Standardbehandlung. Die Konnektor-Tools und `requiresUserInteraction`-MCP-Tools, die Sie in Schritt 1 direkt fragen, erreichen den Klassifikator ebenfalls nie, sodass weder eine von der Organisation verlangte Genehmigung noch ein Zustimmungsschritt automatisch genehmigt wird545 3. Alles andere geht an den Klassifikator, abgesehen von [Löschungen kritischer Pfade](#critical-paths) bei deren Standardbehandlung. Die Konnektor-Tools und `requiresUserInteraction`-MCP-Tools, die Sie in Schritt 1 direkt fragen, erreichen den Klassifikator ebenfalls nie, sodass weder eine von der Organisation verlangte Genehmigung noch ein Zustimmungsschritt automatisch genehmigt wird

544 4. Wenn der Klassifikator blockiert, erhält Claude den Grund. In den meisten Sitzungen nennt der Grund die Regel, die der Klassifikator angewendet hat, etwa `[Data Exfiltration]`, statt einer ausformulierten Erklärung; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)546 4. Wenn der Klassifikator blockiert, erhält Claude den Grund. In den meisten Sitzungen nennt der Grund die Regel, die der Klassifikator angewendet hat, etwa `[Data Exfiltration]`, statt einer ausformulierten Erklärung; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)

545 547 


593 595 

594Claude Code lehnt Aufrufe ab, die Ihren expliziten [`ask`-Regeln](/docs/de/permissions#manage-permissions) entsprechen, anstatt bei Ihnen nachzufragen. Es lehnt auch das integrierte `AskUserQuestion`-Tool ab, selbst wenn Ihre Allow-Regeln damit übereinstimmen, und macht dasselbe mit Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht. Es lehnt MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, auf die gleiche Weise ab, da ihre Genehmigungskarte eine Antwort benötigt, die dieser Modus nie erfasst.596Claude Code lehnt Aufrufe ab, die Ihren expliziten [`ask`-Regeln](/docs/de/permissions#manage-permissions) entsprechen, anstatt bei Ihnen nachzufragen. Es lehnt auch das integrierte `AskUserQuestion`-Tool ab, selbst wenn Ihre Allow-Regeln damit übereinstimmen, und macht dasselbe mit Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht. Es lehnt MCP-Tools, die mit [`_meta["anthropic/requiresUserInteraction"]`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, auf die gleiche Weise ab, da ihre Genehmigungskarte eine Antwort benötigt, die dieser Modus nie erfasst.

595 597 

596`rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen, wie z. B. `rm -rf /` und `rm -rf ~`, werden abgelehnt, selbst wenn eine Allow-Regel damit übereinstimmt oder ein `PreToolUse`-Hook sie zulässt.598`rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen, wie z. B. `rm -rf /` und `rm -rf ~`, werden abgelehnt, selbst wenn eine Allow-Regel damit übereinstimmt oder ein `PreToolUse`-Hook sie zulässt. Ein Lesevorgang von einem [Netzwerkpfad](/docs/de/permissions#network-paths) wird auf die gleiche Weise abgelehnt.

597 599 

598Cloud-Sitzungen auf [Claude Code im Web](/docs/de/claude-code-on-the-web) ignorieren `defaultMode: "dontAsk"`; siehe [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) für Details.600Cloud-Sitzungen auf [Claude Code im Web](/docs/de/claude-code-on-the-web) ignorieren `defaultMode: "dontAsk"`; siehe [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) für Details.

599 601 


639* **Wenn Sie akzeptieren**: Claude Code setzt `skipDangerousModePermissionPrompt` auf `true` in `~/.claude/settings.json`, sodass spätere Sitzungen den Dialog überspringen. Um den Dialog erneut zu sehen, entfernen Sie den Schlüssel aus dieser Datei oder setzen Sie ihn auf `false`. Die [`skipDangerousModePermissionPrompt` Referenz](/docs/de/settings-reference#skipdangerousmodepermissionprompt) listet die anderen Einstellungsdateien auf, in denen Sie oder Ihre Organisation ihn setzen können.641* **Wenn Sie akzeptieren**: Claude Code setzt `skipDangerousModePermissionPrompt` auf `true` in `~/.claude/settings.json`, sodass spätere Sitzungen den Dialog überspringen. Um den Dialog erneut zu sehen, entfernen Sie den Schlüssel aus dieser Datei oder setzen Sie ihn auf `false`. Die [`skipDangerousModePermissionPrompt` Referenz](/docs/de/settings-reference#skipdangerousmodepermissionprompt) listet die anderen Einstellungsdateien auf, in denen Sie oder Ihre Organisation ihn setzen können.

640* **Wenn Sie ablehnen**: Claude Code wird beendet.642* **Wenn Sie ablehnen**: Claude Code wird beendet.

641 643 

642Im [nicht-interaktiven Modus](/docs/de/headless) wird kein Dialog angezeigt, und eine [Hintergrund-Sitzung](/docs/de/agent-view), die mit `--bg` gestartet wurde, wird verweigert, bis Sie den Dialog in einer interaktiven Sitzung akzeptiert haben.644Im [nicht interaktiven Modus](/docs/de/headless) wird kein Dialog angezeigt. Eine [Hintergrund-Sitzung](/docs/de/agent-view) berücksichtigt Ihre Zustimmung, wenn diese in Benutzer- oder verwalteten Einstellungen gespeichert ist:

645 

646* Ohne gespeicherte Zustimmung wird `claude --bg --permission-mode bypassPermissions` verweigert, bis Sie den Dialog in einer interaktiven Sitzung akzeptieren.

647* Wenn `skipDangerousModePermissionPrompt` nur in `.claude/settings.local.json` gesetzt ist, startet die Hintergrund-Sitzung, ignoriert die Bypass-Anfrage und heftet den Hinweis `Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true` an. Damit der Bypass berücksichtigt wird, fügen Sie diesen Schlüssel zu `~/.claude/settings.json` hinzu und starten Sie dann eine neue Hintergrund-Sitzung.

643 648 

644Auf Linux und macOS weigert sich Claude Code, in diesem Modus zu starten, wenn es als Root oder unter `sudo` ausgeführt wird:649Auf Linux und macOS weigert sich Claude Code, in diesem Modus zu starten, wenn es als Root oder unter `sudo` ausgeführt wird:

645 650 


708* `.devcontainer.json`713* `.devcontainer.json`

709* `.ripgreprc`, `pyrightconfig.json`714* `.ripgreprc`, `pyrightconfig.json`

710* `.mcp.json`, `.claude.json`715* `.mcp.json`, `.claude.json`

716* Die Datei, auf die Ihre Benutzer-, Projekt- oder lokale [Einstellungsdatei](/docs/de/settings#settings-files-and-who-they-affect) verweist, wenn die Einstellungsdatei selbst ein symbolischer Link ist, beispielsweise in ein Dotfiles-Repository. In den Modi, die Schreibvorgänge in geschützten Pfaden zum Klassifikator leiten, fragt ein Schreibvorgang in diese Datei stattdessen bei Ihnen nach, selbst wenn eine Allow-Regel zutrifft. Ist der eigene Pfad der Datei zugleich der Pfad einer Einstellungsdatei, beispielsweise `.claude/settings.json` in einem anderen Ordner, wird der Schreibvorgang wie andere Schreibvorgänge in geschützten Pfaden zum Klassifikator geleitet

711 717 

712<h2 id="critical-paths">718<h2 id="critical-paths">

713 Kritische Pfade719 Kritische Pfade


727 733 

728* Das Dateisystem-Root734* Das Dateisystem-Root

729* Verzeichnisse der obersten Ebene, d. h. alle direkten Unterordner des Root, wie `/usr`, `/etc` oder `/data`735* Verzeichnisse der obersten Ebene, d. h. alle direkten Unterordner des Root, wie `/usr`, `/etc` oder `/data`

730* Ihr Home-Verzeichnis736* Ihr Home-Verzeichnis. Unter Windows zählt auch sein 8.3-Kurzname, wie `C:\Users\LONGNA~1`

731* Windows-Laufwerk-Roots und ihre Verzeichnisse der obersten Ebene, wie `C:\` und `C:\Windows`737* Windows-Laufwerk-Roots und ihre Verzeichnisse der obersten Ebene, wie `C:\` und `C:\Windows`. Schreibweisen wie `\\?\C:\` und `\\localhost\C$` zählen als `C:\`

732* Ihr Arbeitsverzeichnis und seine übergeordneten Verzeichnisse738* Ihr Arbeitsverzeichnis und seine übergeordneten Verzeichnisse

733* Ihre zusätzlichen Arbeitsverzeichnisse und ihre übergeordneten Verzeichnisse, aber nur wenn die Entfernung ein Glob unter einem von ihnen ist, wie `rm -rf <dir>/*`. `rm -rf <dir>` im Verzeichnis selbst löst diese Überprüfung nicht aus739* Ihre zusätzlichen Arbeitsverzeichnisse und ihre übergeordneten Verzeichnisse, aber nur wenn die Entfernung ein Glob unter einem von ihnen ist, wie `rm -rf <dir>/*`. `rm -rf <dir>` im Verzeichnis selbst löst diese Überprüfung nicht aus

734 740 

741Die Überprüfungen des 8.3-Kurznamens des Home-Verzeichnisses sowie der Schreibweisen `\\?\C:\` und `\\localhost\C$` erfordern Claude Code v2.1.292 oder später.

742 

735<h3 id="other-targets-that-count-as-critical-paths">743<h3 id="other-targets-that-count-as-critical-paths">

736 Andere Ziele, die als kritische Pfade zählen744 Andere Ziele, die als kritische Pfade zählen

737</h3>745</h3>


747| Ein Ziel, das nur die Ausgabe einer Befehlsersetzung ist, wenn der `rm` rekursiv ist | `rm -rf "$(pwd)"` | Claude Code kann das Ziel nicht vor der Ausführung des Befehls überprüfen |755| Ein Ziel, das nur die Ausgabe einer Befehlsersetzung ist, wenn der `rm` rekursiv ist | `rm -rf "$(pwd)"` | Claude Code kann das Ziel nicht vor der Ausführung des Befehls überprüfen |

748| Eine nachgestellte Befehlsersetzung nach einem kritischen Pfad | `rm -rf ~/$(cmd)` | Claude Code überprüft den Pfad, der bleiben würde, wenn die Ersetzung leer erweitert wird, hier Ihr Home-Verzeichnis |756| Eine nachgestellte Befehlsersetzung nach einem kritischen Pfad | `rm -rf ~/$(cmd)` | Claude Code überprüft den Pfad, der bleiben würde, wenn die Ersetzung leer erweitert wird, hier Ihr Home-Verzeichnis |

749| Ein Ziel, das nur Backslashes ist | `rm -rf "\\"` | Git Bash unter Windows liest einen einzelnen Backslash als Root des aktuellen Laufwerks, daher gilt die Überprüfung auf jeder Plattform |757| Ein Ziel, das nur Backslashes ist | `rm -rf "\\"` | Git Bash unter Windows liest einen einzelnen Backslash als Root des aktuellen Laufwerks, daher gilt die Überprüfung auf jeder Plattform |

758| Ein Windows-Pfad, der ein Volume per GUID statt per Laufwerksbuchstabe benennt | `rm -rf '\\?\Volume{GUID}\work\build'` | Der Pfad gibt nicht an, auf welchem Laufwerk er liegt, daher könnte er ein kritischer Pfad sein. Erfordert Claude Code v2.1.292 oder später |

750| Einige Ziele, die auf `/*` oder `/*/` enden | `rm -rf logs/*/*`, `rm -rf logs/*/`, `cd logs && rm -rf a/*` | Claude Code kann vor der Ausführung des Befehls nicht erkennen, welche Verzeichnisse sie erreichen |759| Einige Ziele, die auf `/*` oder `/*/` enden | `rm -rf logs/*/*`, `rm -rf logs/*/`, `cd logs && rm -rf a/*` | Claude Code kann vor der Ausführung des Befehls nicht erkennen, welche Verzeichnisse sie erreichen |

751 760 

752Um die Überprüfung auf einem Ziel auszuschalten, das nur Befehlsersetzungsausgabe ist, setzen Sie [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/de/env-vars#variables) in der Umgebung, die Claude Code startet.761Um die Überprüfung auf einem Ziel auszuschalten, das nur Befehlsersetzungsausgabe ist, setzen Sie [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/de/env-vars#variables) in der Umgebung, die Claude Code startet.


794Wenn eine explizite [Ask-Regel](/docs/de/permissions#manage-permissions) dem Befehl entspricht, fordert Claude Code Sie stattdessen auf, auch im `auto`-Modus und ohne Zeitlimit. In Modi, die fragen, kann ein [`PermissionRequest`-Hook](/docs/de/hooks#permissionrequest) die Eingabeaufforderung beantworten.803Wenn eine explizite [Ask-Regel](/docs/de/permissions#manage-permissions) dem Befehl entspricht, fordert Claude Code Sie stattdessen auf, auch im `auto`-Modus und ohne Zeitlimit. In Modi, die fragen, kann ein [`PermissionRequest`-Hook](/docs/de/hooks#permissionrequest) die Eingabeaufforderung beantworten.

795 804 

796<h3 id="time-limits-and-denials-in-auto-and-bypasspermissions-modes">805<h3 id="time-limits-and-denials-in-auto-and-bypasspermissions-modes">

797 Zeitlimits und Ablehnungen in `auto`- und `bypassPermissions`-Modi806 Zeitlimits und Ablehnungen in auto- und bypassPermissions-Modi

798</h3>807</h3>

799 808 

800In `auto`- und `bypassPermissions`-Modi zeigt die Terminal-Eingabeaufforderung für eine Entfernung eines kritischen Pfads einen Countdown von zwei Minuten:809In `auto`- und `bypassPermissions`-Modi zeigt die Terminal-Eingabeaufforderung für eine Entfernung eines kritischen Pfads einen Countdown von zwei Minuten:

permissions.md +39 −8

Details

36 36 

37Vor v2.1.211 speicherte Claude Code die Regel immer im Startverzeichnis, sodass eine in einem Worktree oder Unterverzeichnis gewährte Genehmigung nicht auf den Rest des Repositorys angewendet wurde. Regeln, die frühere Versionen in einem Unterverzeichnis oder Worktree gespeichert haben, gelten weiterhin für Sitzungen, die dort gestartet werden.37Vor v2.1.211 speicherte Claude Code die Regel immer im Startverzeichnis, sodass eine in einem Worktree oder Unterverzeichnis gewährte Genehmigung nicht auf den Rest des Repositorys angewendet wurde. Regeln, die frühere Versionen in einem Unterverzeichnis oder Worktree gespeichert haben, gelten weiterhin für Sitzungen, die dort gestartet werden.

38 38 

39Manchmal bietet eine Berechtigungsaufforderung nur eine einmalige Genehmigung an, ohne Option „nicht mehr fragen“ und ohne Option, die Aktion für den Rest der Sitzung zuzulassen. Claude Code bietet diese Optionen nur an, wenn die Aufforderung Ihnen alles zeigen kann, was sie zulassen würden, sodass eine Regel, die Sie aus einer Aufforderung speichern, nur das abdeckt, was ihre benannte Option zulässt. Wenn eine Aufforderung nur die einmalige Genehmigung bietet, genehmigen Sie die Aktion einmal, oder fügen Sie die Regel selbst in [`/permissions`](#manage-permissions) hinzu.39Manchmal bietet eine Berechtigungsabfrage nur eine einmalige Genehmigung an, ohne Option „nicht mehr fragen“ und ohne Option, die Aktion für den Rest der Sitzung zuzulassen. Claude Code bietet diese Optionen nur an, wenn die Abfrage Ihnen alles zeigen kann, was sie zulassen würden, sodass eine Regel, die Sie aus einer Abfrage speichern, nur das abdeckt, was ihre Option benannt hat. Wenn eine Abfrage nur die einmalige Genehmigung bietet, genehmigen Sie die Aktion einmal, oder fügen Sie die Regel selbst in [`/permissions`](#manage-permissions) hinzu. Um die Abfragen für einen Befehl zu beenden, der mit einem Exec-Wrapper wie `watch` beginnt, oder für einen `find`-Befehl mit einer Aktion wie `-delete`, lesen Sie [Exec-Wrapper und `find`-Aktionen](#exec-wrappers-and-find-actions).

40 40 

41<h3 id="add-a-comment-when-you-answer-a-permission-prompt">41<h3 id="add-a-comment-when-you-answer-a-permission-prompt">

42 Fügen Sie einen Kommentar hinzu, wenn Sie auf eine Berechtigungsaufforderung antworten42 Fügen Sie einen Kommentar hinzu, wenn Sie auf eine Berechtigungsaufforderung antworten


91| `acceptEdits` | Akzeptiert automatisch Dateibearbeitungen und häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp` für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |91| `acceptEdits` | Akzeptiert automatisch Dateibearbeitungen und häufige Dateisystembefehle wie `mkdir`, `touch`, `mv` und `cp` für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |

92| `plan` | Claude liest Dateien und führt schreibgeschützte Shell-Befehle aus, um zu erkunden, bearbeitet aber nicht Ihre Quelldateien; mit [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) verfügbar, genehmigungsklassifizierte Befehle werden auch ausgeführt. In der CLI und der VS Code-Erweiterung als „Plan“ gekennzeichnet |92| `plan` | Claude liest Dateien und führt schreibgeschützte Shell-Befehle aus, um zu erkunden, bearbeitet aber nicht Ihre Quelldateien; mit [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) verfügbar, genehmigungsklassifizierte Befehle werden auch ausgeführt. In der CLI und der VS Code-Erweiterung als „Plan“ gekennzeichnet |

93| `auto` | Wird ohne routinemäßige Eingabeaufforderungen ausgeführt; bevor Aktionen wie Shell-Befehle und Netzwerkanfragen ausgeführt werden, überprüft ein Hintergrund-[Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), dass sie mit Ihrer Anfrage übereinstimmen |93| `auto` | Wird ohne routinemäßige Eingabeaufforderungen ausgeführt; bevor Aktionen wie Shell-Befehle und Netzwerkanfragen ausgeführt werden, überprüft ein Hintergrund-[Klassifizierer](/docs/de/permission-modes#eliminate-prompts-with-auto-mode), dass sie mit Ihrer Anfrage übereinstimmen |

94| `dontAsk` | Lehnt automatisch jeden Aufruf ab, der sonst eine Eingabeaufforderung auslösen würde; Dateilesevorgänge in Ihren Arbeitsverzeichnissen und andere Aktionen, die keine Genehmigung benötigen, werden weiterhin ausgeführt, ebenso wie Werkzeuge, die über `/permissions` oder `permissions.allow`-Regeln vorab genehmigt wurden. `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge, [die Ihre Organisation auf `ask`](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen gesetzt hat, in denen diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie diese zugelassen haben |94| `dontAsk` | Lehnt automatisch jeden Aufruf ab, der sonst eine Berechtigungsabfrage auslösen würde; Dateilesevorgänge in Ihren Arbeitsverzeichnissen und andere Aktionen, die keine Genehmigung benötigen, werden weiterhin ausgeführt, ebenso wie Tools, die über `/permissions` oder `permissions.allow`-Regeln vorab genehmigt wurden. `AskUserQuestion`, MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, [Lesevorgänge von Netzwerkpfaden](#network-paths) und Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), werden in Sitzungen, in denen diese Einstellung Claude Code erreicht, verweigert, auch wenn Sie diese zugelassen haben |

95| `bypassPermissions` | Überspringt Genehmigungsaufforderungen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) |95| `bypassPermissions` | Überspringt Genehmigungsaufforderungen, außer für die [Aktionen, die kein Modus automatisch genehmigt](/docs/de/permission-modes#actions-no-mode-auto-approves) |

96 96 

97<Warning>97<Warning>


240 Bash240 Bash

241</h3>241</h3>

242 242 

243Bash-Regeln gleichen den gesamten Befehlstext ab, wobei `*` für beliebigen Text steht. [Wildcard-Muster](#wildcard-patterns) zeigt, welche Befehle jede Regelform abgleicht und wo `*` platziert werden sollte. Der Rest dieses Abschnitts behandelt, wie Claude Code zusammengesetzte Befehle und Wrapper abgleicht, was eine Regel nicht abgleicht, nur lesende Befehle und Umleitungen.243Bash-Regeln gleichen den gesamten Befehlstext ab, wobei `*` für beliebigen Text steht. [Wildcard-Muster](#wildcard-patterns) zeigt, welche Befehle jede Regelform abgleicht und wo `*` platziert werden sollte. Der Rest dieses Abschnitts behandelt, wie Claude Code zusammengesetzte Befehle und Wrapper abgleicht, welche Wrapper und `find`-Aktionen eine Präfixregel nicht genehmigen kann, was eine Regel nicht abgleicht, nur lesende Befehle und Umleitungen.

244 244 

245<h4 id="compound-commands">245<h4 id="compound-commands">

246 Zusammengesetzte Befehle246 Zusammengesetzte Befehle


268 268 

269Diese Wrapper-Liste ist integriert und nicht konfigurierbar. Runner für Entwicklungsumgebungen wie `direnv exec`, `devbox run`, `mise exec`, `npx` und `docker exec` sind nicht in der Liste. Da diese Tools ihre Argumente als Befehl ausführen, gleicht eine Regel wie `Bash(devbox run *)` alles ab, was nach `run` kommt, einschließlich `devbox run rm -rf .`. Um Arbeit innerhalb eines Umgebungs-Runners zu genehmigen, schreiben Sie eine spezifische Regel, die sowohl den Runner als auch den inneren Befehl enthält, wie `Bash(devbox run npm test)`. Fügen Sie eine Regel pro innerem Befehl hinzu, den Sie zulassen möchten.269Diese Wrapper-Liste ist integriert und nicht konfigurierbar. Runner für Entwicklungsumgebungen wie `direnv exec`, `devbox run`, `mise exec`, `npx` und `docker exec` sind nicht in der Liste. Da diese Tools ihre Argumente als Befehl ausführen, gleicht eine Regel wie `Bash(devbox run *)` alles ab, was nach `run` kommt, einschließlich `devbox run rm -rf .`. Um Arbeit innerhalb eines Umgebungs-Runners zu genehmigen, schreiben Sie eine spezifische Regel, die sowohl den Runner als auch den inneren Befehl enthält, wie `Bash(devbox run npm test)`. Fügen Sie eine Regel pro innerem Befehl hinzu, den Sie zulassen möchten.

270 270 

271Exec-Wrapper wie `watch`, `setsid`, `ionice` und `flock` können nicht durch eine Präfixregel wie `Bash(watch *)` automatisch genehmigt werden, daher wird im Manual-Modus bei ihnen immer nachgefragt. Dasselbe gilt für `find` mit `-exec` oder `-delete`: Eine `Bash(find *)`-Regel deckt diese Formen nicht ab. Um einen bestimmten Aufruf zu genehmigen, schreiben Sie eine Regel mit exakter Übereinstimmung für die vollständige Befehlszeichenkette.271<h4 id="exec-wrappers-and-find-actions">

272 Exec-Wrapper und `find`-Aktionen

273</h4>

274 

275Eine Präfixregel wie `Bash(watch *)` oder `Bash(find *)` kann die folgenden Befehle nicht automatisch genehmigen, daher wird im Manual-Modus bei ihnen nachgefragt:

276 

277* **Exec-Wrapper**: wie `watch`, `setsid`, `ionice` und `flock`

278* **`find`**: mit einer Aktion, die Befehle ausführt, Dateien löscht oder Dateien schreibt, wie `-exec`, `-delete` oder `-fprint`, oder mit `-files0-from`, das die zu durchsuchenden Pfade aus einer Datei übernimmt

279 

280Um einen bestimmten Aufruf zu genehmigen, der kein `*` enthält, schreiben Sie eine Regel mit exakter Übereinstimmung für die vollständige Befehlszeichenkette, wie `Bash(find build -type f -delete)`.

281 

282Wenn der Befehl ein `*` enthält, wie in `find . -name '*.tmp' -delete`, liest Claude Code die Regel als [Wildcard-Muster](#wildcard-patterns), nicht als exakte Übereinstimmung, daher wird bei dem Befehl weiterhin nachgefragt. Genehmigen Sie ihn bei jeder Abfrage, oder verwenden Sie einen [PreToolUse-Hook](/docs/de/hooks#pretooluse-decision-control), der dafür `"allow"` zurückgibt.

272 283 

273<h4 id="bash-rule-limits">284<h4 id="bash-rule-limits">

274 Was eine Bash-Regel nicht abgleicht285 Was eine Bash-Regel nicht abgleicht


301* **Nicht in Anführungszeichen gesetzte Globs bei Befehlen mit schreibfähigen Flags**: Bei Befehlen mit schreib- oder ausführungsfähigen Flags, wie `find`, `sort`, `sed` und `git`, wird nachgefragt, wenn ein nicht in Anführungszeichen gesetzter Glob vorhanden ist, da der Glob zu einem Flag wie `-delete` expandieren könnte.312* **Nicht in Anführungszeichen gesetzte Globs bei Befehlen mit schreibfähigen Flags**: Bei Befehlen mit schreib- oder ausführungsfähigen Flags, wie `find`, `sort`, `sed` und `git`, wird nachgefragt, wenn ein nicht in Anführungszeichen gesetzter Glob vorhanden ist, da der Glob zu einem Flag wie `-delete` expandieren könnte.

302* **`docker` mit Verweis auf einen anderen Daemon**: Bei nur lesenden Formen von `docker` wird nachgefragt, wenn der Befehl ein Flag enthält, das einen anderen Daemon auswählt, wie `-H`, `--context` oder die Podman-Flags `--url` und `--connection`.313* **`docker` mit Verweis auf einen anderen Daemon**: Bei nur lesenden Formen von `docker` wird nachgefragt, wenn der Befehl ein Flag enthält, das einen anderen Daemon auswählt, wie `-H`, `--context` oder die Podman-Flags `--url` und `--connection`.

303* **`file` mit Flags, die Pfade öffnen**: Bei `file` wird nachgefragt, wenn es `-m`/`--magic-file` oder `-f`/`--files-from` übergibt, da diese Flags `file` dazu veranlassen, die im Wert des Flags genannten Pfade zu öffnen.314* **`file` mit Flags, die Pfade öffnen**: Bei `file` wird nachgefragt, wenn es `-m`/`--magic-file` oder `-f`/`--files-from` übergibt, da diese Flags `file` dazu veranlassen, die im Wert des Flags genannten Pfade zu öffnen.

315* **`ps`, das Umgebungsvariablen ausgeben könnte**: Bei `ps` wird nachgefragt, wenn eines seiner Argumente als Option `e` wirken könnte, wie in `ps auxe` oder `ps aux -e`, da diese Option die Umgebungsvariablen von Prozessen ausgibt. `ps aux` und `ps -ef` laufen ohne Abfrage. Die Prüfung von Formen mit Bindestrich wie `ps aux -e` erfordert Claude Code v2.1.290 oder höher.

304* **Netzwerkpfade unter Windows**: Bei einem Befehl, dessen Argumente einen Netzwerkpfad (UNC-Pfad) wie `\\server\share\file` enthalten, wird nachgefragt, da der Zugriff auf einen Netzwerkpfad Ihre Windows-Anmeldedaten an den genannten Host senden kann. Dieselbe Prüfung gilt für Befehle des [PowerShell-Tools](/docs/de/tools-reference#powershell-tool).316* **Netzwerkpfade unter Windows**: Bei einem Befehl, dessen Argumente einen Netzwerkpfad (UNC-Pfad) wie `\\server\share\file` enthalten, wird nachgefragt, da der Zugriff auf einen Netzwerkpfad Ihre Windows-Anmeldedaten an den genannten Host senden kann. Dieselbe Prüfung gilt für Befehle des [PowerShell-Tools](/docs/de/tools-reference#powershell-tool).

305* **Schreibzugriffe auf spezielle Shell-Variablen**: Bei einem Befehl, der bestimmte spezielle Shell-Variablen wie `PATH` oder `IFS` setzt, zurücksetzt oder über sie iteriert, wird nachgefragt, auch wenn der Rest des Befehls nur lesend ist.317* **Schreibzugriffe auf spezielle Shell-Variablen**: Bei einem Befehl, der bestimmte spezielle Shell-Variablen wie `PATH` oder `IFS` setzt, zurücksetzt oder über sie iteriert, wird nachgefragt, auch wenn der Rest des Befehls nur lesend ist.

306* **Befehle, die die Analyse nicht parsen kann**: Wenn Claude Code einen Befehl nicht vollständig parsen kann, bittet es um Genehmigung, anstatt den Befehl als nur lesend zu behandeln. Bei Befehlen mit mehr als 10.000 Zeichen wird immer nachgefragt, da sie den Umfang überschreiten, den die Analyse parst.318* **Befehle, die die Analyse nicht parsen kann**: Wenn Claude Code einen Befehl nicht vollständig parsen kann, bittet es um Genehmigung, anstatt den Befehl als nur lesend zu behandeln. Bei Befehlen mit mehr als 10.000 Zeichen wird immer nachgefragt, da sie den Umfang überschreiten, den die Analyse parst.


508 520 

509Wenn ein Tool anschließend die genehmigte Datei öffnet, [bestätigt es, dass der Pfad weiterhin zu dem Ort aufgelöst wird, den die Berechtigungsprüfung genehmigt hat](/docs/de/errors#refusing-after-a-symlink-changed).521Wenn ein Tool anschließend die genehmigte Datei öffnet, [bestätigt es, dass der Pfad weiterhin zu dem Ort aufgelöst wird, den die Berechtigungsprüfung genehmigt hat](/docs/de/errors#refusing-after-a-symlink-changed).

510 522 

523<h4 id="network-paths">

524 Netzwerkpfade

525</h4>

526 

527Wenn die Datei-Lese-Tools von Claude, wie Read, Grep und Glob, von einem Netzwerkpfad lesen, erhält der Lesevorgang eine eigene Berechtigungsprüfung. Ein Netzwerkpfad ist ein Pfad, der einen anderen Computer erreichen kann: unter Windows ein UNC-Pfad wie `\\server\share\file` und unter macOS und Linux ein `/net`-Automount-Pfad wie `/net/fileserver/notes.txt`. Das Nachschlagen eines solchen Pfads kann den darin genannten Host kontaktieren, und unter Windows kann dieser Kontakt Ihre Anmeldedaten an den Host senden. Shell-Befehle haben eine eigene Prüfung: Im Manual-Modus wird bei einem nur lesenden Bash- oder PowerShell-Befehl, dessen Argumente einen UNC-Pfad enthalten, [unter Windows weiterhin nachgefragt](#read-only-commands).

528 

529Ab Claude Code v2.1.292 bleibt die Abfrage in jedem der folgenden Fälle bestehen:

530 

531* **allow-Regeln**: Eine Regel genehmigt den Lesevorgang nicht im Voraus, auch nicht eine Regel für das gesamte Tool wie `Read`

532* **PreToolUse-Hooks**: Ein [Hook](#extend-permissions-with-hooks), der `"allow"` zurückgibt, überspringt die Abfrage nicht

533* **Auto-Modus**: Die Abfrage wird Ihnen angezeigt, und der [Klassifikator](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) entscheidet nicht über den Lesevorgang

534 

535Im `dontAsk`-Modus verweigert Claude Code den Lesevorgang, anstatt nachzufragen. Im `bypassPermissions`-Modus sowie in interaktiven Terminal-Sitzungen im Plan-Modus, in denen [Berechtigungen umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) verfügbar ist, läuft der Lesevorgang ohne diese Abfrage.

536 

537Um Dateien auf einer Netzwerkfreigabe ohne diese Abfrage zu lesen, geben Sie der Freigabe zunächst einen lokalen Pfad:

538 

539* **Windows**: Ordnen Sie die Freigabe einem Laufwerksbuchstaben zu und übergeben Sie das Laufwerk beim Start von Claude Code mit `--add-dir`, wie unter [Arbeitsverzeichnisse](#working-directories) beschrieben

540* **macOS und Linux**: Hängen Sie die Freigabe unter einem lokalen Pfad ein, etwa einem Verzeichnis unter `/mnt` oder `/Volumes`, und lesen Sie die Dateien von dort, wie unter [Arbeitsverzeichnis ist ein Netzwerkpfad](/docs/de/errors#working-directory-is-a-network-path) beschrieben

541 

511<h3 id="webfetch">542<h3 id="webfetch">

512 WebFetch543 WebFetch

513</h3>544</h3>

514 545 

515WebFetch-Regeln verwenden ein `domain:`-Präfix und gleichen den Hostnamen der angeforderten URL ab. Beim Abgleich wird die Groß-/Kleinschreibung nicht beachtet, `*`-Wildcards werden unterstützt, und ein nachgestellter `.` wird sowohl aus der Regel als auch aus dem Hostnamen entfernt, sodass `example.com.` und `example.com` gleich behandelt werden.546WebFetch-Regeln verwenden ein `domain:`-Präfix und gleichen den Hostnamen der angeforderten URL ab. Beim Abgleich wird die Groß-/Kleinschreibung nicht beachtet, `*`-Wildcards werden unterstützt, und ein nachgestellter `.` wird sowohl aus der Regel als auch aus dem Hostnamen entfernt, sodass `example.com.` und `example.com` gleich behandelt werden.

516 547 

517* `WebFetch(domain:example.com)` gleicht Anfragen an `example.com` ab548* `WebFetch(domain:example.com)` gleicht nur Anfragen an `example.com` ab. Um auch Subdomains wie `api.example.com` abzudecken, fügen Sie eine `WebFetch(domain:*.example.com)`-Regel hinzu

518* `WebFetch(domain:*.example.com)` gleicht jede Subdomain in beliebiger Tiefe ab, wie `api.example.com` oder `a.b.example.com`, aber nicht `example.com` selbst549* `WebFetch(domain:*.example.com)` gleicht jede Subdomain in beliebiger Tiefe ab, wie `api.example.com` oder `a.b.example.com`, aber nicht `example.com` selbst

519* `WebFetch(domain:*)` gleicht jede Domain ab. Es ist nicht dasselbe wie eine bloße `WebFetch`-Regel; siehe [Jeden Abruf zulassen oder verweigern](#allow-or-deny-every-fetch)550* `WebFetch(domain:*)` gleicht jede Domain ab. Es ist nicht dasselbe wie eine bloße `WebFetch`-Regel; siehe [Jeden Abruf zulassen oder verweigern](#allow-or-deny-every-fetch)

520 551 


622 653 

623Siehe [Entscheiden Sie, ob Sie einem Mod vertrauen](/docs/de/plugins/mods/overview#decide-whether-to-trust-a-mod), oder [Verwalten Sie Mods für Ihre Organisation](/docs/de/plugins/mods/admin#know-what-happens-by-default), wenn Sie verwaltete Einstellungen bereitstellen.654Siehe [Entscheiden Sie, ob Sie einem Mod vertrauen](/docs/de/plugins/mods/overview#decide-whether-to-trust-a-mod), oder [Verwalten Sie Mods für Ihre Organisation](/docs/de/plugins/mods/admin#know-what-happens-by-default), wenn Sie verwaltete Einstellungen bereitstellen.

624 655 

625MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden auch weiterhin aufgefordert, wenn ein Hook `"allow"` zurückgibt, ebenso wie Connector-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht.656Bei einem [Tool, das eine Benutzerinteraktion erfordert](/docs/de/permission-modes#actions-no-mode-auto-approves), etwa `AskUserQuestion` oder einem MCP-Tool, das mit `requiresUserInteraction` gekennzeichnet ist, überspringt die `tool.check`-Genehmigung eines Mods die Berechtigungsabfrage nicht. Erfordert Claude Code v2.1.292 oder höher. Bei MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, wird auch dann weiterhin nachgefragt, wenn ein Hook `"allow"` zurückgibt, ebenso bei Lesezugriffen auf [Netzwerkpfade](#network-paths) und bei Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in Sitzungen, in denen diese Einstellung Claude Code erreicht.

626 657 

627Ein blockierender Hook hat auch Vorrang vor Allow-Regeln. Ein Hook, der mit Code 2 beendet wird, stoppt den Werkzeugaufruf, bevor Berechtigungsregeln evaluiert werden, daher gilt die Blockierung auch dann, wenn eine Allow-Regel den Aufruf sonst zulassen würde. Um alle Bash-Befehle ohne Aufforderungen auszuführen, außer für einige, die Sie blockieren möchten, fügen Sie `"Bash"` zu Ihrer Allow-Liste hinzu und registrieren Sie einen PreToolUse-Hook, der diese spezifischen Befehle ablehnt. Siehe [Bearbeitungen geschützter Dateien blockieren](/docs/de/hooks-guide#block-edits-to-protected-files) für ein Hook-Skript, das Sie anpassen können.658Ein blockierender Hook hat auch Vorrang vor Allow-Regeln. Ein Hook, der mit Code 2 beendet wird, stoppt den Werkzeugaufruf, bevor Berechtigungsregeln evaluiert werden, daher gilt die Blockierung auch dann, wenn eine Allow-Regel den Aufruf sonst zulassen würde. Um alle Bash-Befehle ohne Aufforderungen auszuführen, außer für einige, die Sie blockieren möchten, fügen Sie `"Bash"` zu Ihrer Allow-Liste hinzu und registrieren Sie einen PreToolUse-Hook, der diese spezifischen Befehle ablehnt. Siehe [Bearbeitungen geschützter Dateien blockieren](/docs/de/hooks-guide#block-edits-to-protected-files) für ein Hook-Skript, das Sie anpassen können.

628 659 


636* **Während der Sitzung**: Verwenden Sie den Befehl `/add-dir`667* **Während der Sitzung**: Verwenden Sie den Befehl `/add-dir`

637* **Persistente Konfiguration**: Fügen Sie zu `additionalDirectories` in [Einstellungsdateien](/docs/de/settings#where-settings-live) hinzu668* **Persistente Konfiguration**: Fügen Sie zu `additionalDirectories` in [Einstellungsdateien](/docs/de/settings#where-settings-live) hinzu

638 669 

639Dateien in zusätzlichen Verzeichnissen folgen den gleichen Berechtigungsregeln wie das ursprüngliche Arbeitsverzeichnis: Sie werden lesbar ohne Aufforderungen, und Dateiberechtigungen folgen dem aktuellen Berechtigungsmodus.670Dateien in zusätzlichen Verzeichnissen folgen den gleichen Berechtigungsregeln wie das ursprüngliche Arbeitsverzeichnis: Sie werden ohne Berechtigungsabfragen lesbar, abgesehen von der Prüfung auf [Netzwerkpfade](#network-paths), und Berechtigungen zum Bearbeiten von Dateien folgen dem aktuellen Berechtigungsmodus.

640 671 

641Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path), wie die UNC-Freigabe `\\server\share`, nicht als Arbeitsverzeichnisse hinzufügen, da das Nachschlagen einen Kontakt zum benannten Host verursachen kann. Unter Windows ordnen Sie die Freigabe stattdessen einem Laufwerksbuchstaben zu und übergeben das Laufwerk mit `--add-dir` beim Start.672Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path), wie die UNC-Freigabe `\\server\share`, nicht als Arbeitsverzeichnisse hinzufügen, da das Nachschlagen einen Kontakt zum benannten Host verursachen kann. Unter Windows ordnen Sie die Freigabe stattdessen einem Laufwerksbuchstaben zu und übergeben das Laufwerk mit `--add-dir` beim Start.

642 673 


648 Sitzung in ein anderes Verzeichnis verschieben679 Sitzung in ein anderes Verzeichnis verschieben

649</h3>680</h3>

650 681 

651Um die Sitzung in ein anderes primäres Arbeitsverzeichnis zu verschieben, anstatt [ein Verzeichnis hinzuzufügen](#working-directories) neben dem aktuellen, führen Sie `/cd <path>` aus. Claude Code behält die Konversation bei, lädt die `CLAUDE.md` des neuen Verzeichnisses und fordert Sie auf, [dem Arbeitsbereich zu vertrauen](#project-allow-rules-and-workspace-trust), wenn Sie darin noch nicht gearbeitet haben. Danach [findet Claude Code die verschobene Sitzung](/docs/de/sessions#resume-a-session), wenn Sie `--resume` aus dem neuen Verzeichnis ausführen.682Um die Sitzung in ein anderes primäres Arbeitsverzeichnis zu verschieben, anstatt [ein Verzeichnis hinzuzufügen](#working-directories) neben dem aktuellen, führen Sie `/cd <path>` aus. Claude Code behält die Konversation bei, lädt die `CLAUDE.md` des neuen Verzeichnisses und fordert Sie auf, [dem Workspace zu vertrauen](#project-allow-rules-and-workspace-trust), wenn Sie darin noch nicht gearbeitet haben. Danach [findet Claude Code die verschobene Sitzung](/docs/de/sessions#where-the-session-picker-looks), wenn Sie `--resume` aus dem neuen Verzeichnis ausführen.

652 683 

653Sobald Sie verschieben, wendet Claude Code die Projektkonfiguration des neuen Verzeichnisses an:684Sobald Sie verschieben, wendet Claude Code die Projektkonfiguration des neuen Verzeichnisses an:

654 685 

Details

790 790 

791Hooks in `hooks/hooks.json` und im `hooks`-Manifest-Schlüssel laden beide. Für jedes Ereignis und seine Nutzlast siehe [Hook-Ereignisse](/docs/de/hooks#hook-events).791Hooks in `hooks/hooks.json` und im `hooks`-Manifest-Schlüssel laden beide. Für jedes Ereignis und seine Nutzlast siehe [Hook-Ereignisse](/docs/de/hooks#hook-events).

792 792 

793Wenn ein anderes aktiviertes Plugin denselben Namen hat, registriert eines der beiden seine Hooks aus `hooks/hooks.json`, und die des anderen werden ausgelassen. Unter [Hooks, wenn zwei aktivierte Plugins denselben Namen haben](/docs/de/plugins/loading#hooks-when-two-enabled-plugins-share-a-name) erfahren Sie, welches es ist, und finden den Hinweis in `/plugin`, der Sie darauf aufmerksam macht.

794 

793Um Hooks als JavaScript-Funktionen zu schreiben, die in Claude Code ausgeführt werden und in seiner Benutzeroberfläche zeichnen können, listen Sie eine Moduldatei unter einem `modules`-Schlüssel in der gleichen `hooks/hooks.json` auf. Ein Plugin mit einem ist ein Mod. Siehe [Erstellen Sie einen Mod](/docs/de/plugins/mods/create).795Um Hooks als JavaScript-Funktionen zu schreiben, die in Claude Code ausgeführt werden und in seiner Benutzeroberfläche zeichnen können, listen Sie eine Moduldatei unter einem `modules`-Schlüssel in der gleichen `hooks/hooks.json` auf. Ein Plugin mit einem ist ein Mod. Siehe [Erstellen Sie einen Mod](/docs/de/plugins/mods/create).

794 796 

795<h4 id="when-plugin-hooks-fire">797<h4 id="when-plugin-hooks-fire">

Details

209* **Plugin mit eigenem Repository**: Die Installation schlägt mit einer Nachricht fehl, die `Dependency "secrets-vault@your-marketplace" has no git tag satisfying` enthält.209* **Plugin mit eigenem Repository**: Die Installation schlägt mit einer Nachricht fehl, die `Dependency "secrets-vault@your-marketplace" has no git tag satisfying` enthält.

210* **Plugin, auf das ein relativer Pfad verweist**: Die Installation verwendet stattdessen die aktuelle Kopie des Marketplaces, und die Beschränkung wird überprüft, wenn das Plugin geladen wird. Wenn diese Kopie außerhalb des Bereichs liegt, bleibt das abhängige Plugin deaktiviert und `claude plugin list` zeigt `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`.210* **Plugin, auf das ein relativer Pfad verweist**: Die Installation verwendet stattdessen die aktuelle Kopie des Marketplaces, und die Beschränkung wird überprüft, wenn das Plugin geladen wird. Wenn diese Kopie außerhalb des Bereichs liegt, bleibt das abhängige Plugin deaktiviert und `claude plugin list` zeigt `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`.

211 211 

212Für ein Plugin, auf das der Marketplace mit einem relativen Pfad verweist, löst ein Marketplace, den Sie als lokalen Ordnerpfad hinzugefügt haben, auch Beschränkungen gegen die Git-Tags dieses Ordners auf, wenn der Ordner ein Git-Repository ist. Dies erfordert Claude Code v2.1.196 oder später. Ein lokaler Ordner, der kein Git-Repository ist, hat keine Tags, daher installiert Claude Code die Abhängigkeit stattdessen aus dem aktuellen Inhalt des Ordners.212Für ein Plugin, auf das der Marketplace mit einem relativen Pfad verweist, löst ein Marketplace, den Sie als lokalen Ordnerpfad hinzugefügt haben, auch Beschränkungen gegen die Git-Tags dieses Ordners auf, wenn der Ordner ein Git-Repository ist. Ein lokaler Ordner, der kein Git-Repository ist, hat keine Tags, daher installiert Claude Code die Abhängigkeit stattdessen aus dem aktuellen Inhalt des Ordners.

213 213 

214<h3 id="confirm-the-resolved-version">214<h3 id="confirm-the-resolved-version">

215 Aufgelöste Version bestätigen215 Aufgelöste Version bestätigen

Details

144Diese Eintrag-Quellen benötigen kein Git-Konto:144Diese Eintrag-Quellen benötigen kein Git-Konto:

145 145 

146* **`archive`**: eine ZIP-Datei, die über HTTPS heruntergeladen wird. Benutzer benötigen weder `git` noch ein Konto, nur Netzwerkzugriff auf die URL. Erfordert Claude Code v2.1.224 oder später. Fixieren Sie jedes Archiv mit `sha256`, damit Claude Code einen geänderten Download ablehnt. Um Anmeldedaten mit dem Download zu senden, siehe [Authentifizieren Sie Archive-Downloads](#authenticate-archive-downloads).146* **`archive`**: eine ZIP-Datei, die über HTTPS heruntergeladen wird. Benutzer benötigen weder `git` noch ein Konto, nur Netzwerkzugriff auf die URL. Erfordert Claude Code v2.1.224 oder später. Fixieren Sie jedes Archiv mit `sha256`, damit Claude Code einen geänderten Download ablehnt. Um Anmeldedaten mit dem Download zu senden, siehe [Authentifizieren Sie Archive-Downloads](#authenticate-archive-downloads).

147* **Ein öffentliches Git-Repository**: Claude Code klont eine öffentliche `url`- oder `git-subdir`-Quelle über HTTPS ohne Anmeldedaten, wenn der Eintrag eine `https://`-URL angibt. Für eine `github`-Quelle oder eine `git-subdir`-Quelle, die als `owner/repo` geschrieben ist, setzen Benutzer ohne GitHub SSH-Schlüssel `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.147* **Ein öffentliches Git-Repository**: Claude Code klont eine öffentliche `url`- oder `git-subdir`-Quelle über HTTPS ohne Anmeldedaten, wenn der Eintrag eine `https://`-URL angibt. Für eine `github`-Quelle oder eine `git-subdir`-Quelle, die als `owner/repo` geschrieben ist, weisen Sie Benutzer ohne GitHub SSH-Schlüssel an, `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` zu setzen.

148 

149Behalten Sie `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` in Ihren Anweisungen bei, auch wenn `claude plugin install` aus der Shell auf einer Maschine ohne SSH-Schlüssel auch ohne diese Variable erfolgreich ist. Bei einer `github`-Quelle kann dieser Befehl selbstständig auf HTTPS zurückgreifen und gibt dabei `SSH not configured, cloning via HTTPS` aus. Installationen über `/plugin` innerhalb einer Sitzung und Plugin-Updates greifen nicht auf HTTPS zurück, sodass sie ohne die Variable für Benutzer ohne GitHub SSH-Schlüssel fehlschlagen.

148 150 

149Für ein Team in einem Netzwerk funktioniert auch ein `directory`-Marketplace auf einem gemeinsamen Dateisystem ohne Git-Konten. Benutzer benötigen nur Lesezugriff auf den Pfad.151Für ein Team in einem Netzwerk funktioniert auch ein `directory`-Marketplace auf einem gemeinsamen Dateisystem ohne Git-Konten. Benutzer benötigen nur Lesezugriff auf den Pfad.

150 152 

Details

80 80 

81Eine Cloud-Sitzung fügt die Marktplätze nicht hinzu, die ein Repository unter [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) auflistet, da dies den Workspace-Vertrauensdialog erfordert, den eine Cloud-Sitzung nie anzeigt.81Eine Cloud-Sitzung fügt die Marktplätze nicht hinzu, die ein Repository unter [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) auflistet, da dies den Workspace-Vertrauensdialog erfordert, den eine Cloud-Sitzung nie anzeigt.

82 82 

83Ein Plugin im Bereich Projekt-Fähigkeitsverzeichnis wird nur aus dem `.claude/skills/` des [primären Arbeitsverzeichnisses](/docs/de/permissions#working-directories) der Sitzung geladen und nur, nachdem Sie den [Workspace-Vertrauensdialog](/docs/de/permissions#what-runs-before-you-trust-a-folder) für diesen Ordner akzeptiert haben. Es [sucht nicht in übergeordneten Verzeichnissen bis zur Repository-Root](/docs/de/skills#discovery-from-parent-and-nested-directories) wie einfache Fähigkeiten und Befehle. Wenn Sie von einem Unterverzeichnis aus starten, wird ein Plugin in der Repository-Root nicht geladen. Starten Sie stattdessen von der Repository-Root, oder [verschieben Sie die Sitzung mit `/cd`](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später dorthin.83Wenn ein Plugin im `.claude/skills/` Ihres Repositorys nicht geladen wird, prüfen Sie, wo Sie die Sitzung gestartet haben und ob Sie dem Ordner vertraut haben:

84 

85* **In einem Unterverzeichnis**: Ein Plugin in der Repository-Root wird nicht geladen. Claude Code liest das `.claude/skills/` des [primären Arbeitsverzeichnisses](/docs/de/permissions#working-directories) der Sitzung und [sucht](/docs/de/skills#discovery-from-parent-and-nested-directories) im Gegensatz zu einfachen Skills und Befehlen nicht in übergeordneten Verzeichnissen nach Plugins. Starten Sie stattdessen von der Repository-Root, oder [verschieben Sie die Sitzung mit `/cd`](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später dorthin

86* **Aus der Desktop-App, in einem Worktree**: Das Plugin wird aus dem `.claude/skills/` des Haupt-Checkouts statt aus dem des Worktrees geladen. Siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout)

87* **In einem Ordner, dem Sie nicht vertraut haben**: Das Plugin wird erst geladen, nachdem Sie den [Workspace-Vertrauensdialog](/docs/de/permissions#what-runs-before-you-trust-a-folder) für diesen Ordner akzeptiert haben

84 88 

85Ein Plugin im Projekt-Bereich wird in das Repository eingecheckt und erreicht jeden Mitarbeiter, der es klont. Da dieser Inhalt aus dem Repository und nicht von Ihnen stammt, wird er nur nach der gleichen Vertrauensprüfung geladen, die für Projekt-Allow-Regeln in `.claude/settings.json` gilt. Ein übergeordnetes Verzeichnis zu vertrauen oder mit `-p` auszuführen ist nicht ausreichend. Komponenten, die Code ausführen, sind weiter eingeschränkt:89Ein Plugin im Projekt-Bereich wird in das Repository eingecheckt und erreicht jeden Mitarbeiter, der es klont. Da dieser Inhalt aus dem Repository und nicht von Ihnen stammt, wird er nur nach der gleichen Vertrauensprüfung geladen, die für Projekt-Allow-Regeln in `.claude/settings.json` gilt. Ein übergeordnetes Verzeichnis zu vertrauen oder mit `-p` auszuführen ist nicht ausreichend. Komponenten, die Code ausführen, sind weiter eingeschränkt:

86 90 


421 425 

422Da die Reihenfolge Manifest-Namen vergleicht, ersetzt ein `--plugin-dir`-Plugin namens `hello-plugin` `hello@example-marketplace`, wenn das Plugin-Manifest auch `"name": "hello-plugin"` sagt.426Da die Reihenfolge Manifest-Namen vergleicht, ersetzt ein `--plugin-dir`-Plugin namens `hello-plugin` `hello@example-marketplace`, wenn das Plugin-Manifest auch `"name": "hello-plugin"` sagt.

423 427 

428<h3 id="hooks-when-two-enabled-plugins-share-a-name">

429 Hooks, wenn zwei aktivierte Plugins einen Namen teilen

430</h3>

431 

432Wenn Sie zwei Plugins mit demselben Manifest-Namen aus verschiedenen Marketplaces installieren und aktivieren, erscheinen beide in `/plugin` als aktiviert, aber die Hooks eines der beiden werden ausgelassen. Pro Name registriert ein Plugin die Hooks in seiner `hooks/hooks.json`, und pro Name lädt ein Plugin ein [Hooks-Modul](/docs/de/plugins/mods/overview). Wenn die verwalteten Einstellungen Ihrer Organisation eine der Kopien aktivieren, hält diese Kopie den Namen. Andernfalls hält ihn die Kopie, die Claude Code zuerst lädt.

433 

434Um zu sehen, welche Kopie den Namen hält, führen Sie `/plugin` in Ihrer Sitzung aus und öffnen Sie die Registerkarte **Errors**. Ein Hinweis dort für die Kopie, deren Hooks ausgelassen wurden, nennt die Kopie, die den Namen hält, und die Details der ausgelassenen Kopie zeigen denselben Hinweis. Bei Hooks aus `hooks/hooks.json` beginnt der Hinweis mit `Its hooks.json hooks do not run`, bei einem Hooks-Modul mit `Its hooks module does not load`. Der Hinweis erfordert Claude Code v2.1.296 oder höher.

435 

436Um stattdessen die Hooks der ausgelassenen Kopie auszuführen, deaktivieren oder deinstallieren Sie die Kopie, die den Namen hält, und führen Sie dann `/reload-plugins` in Ihrer Sitzung aus. Das Neuladen registriert die Hooks der verbleibenden Kopie und entfernt den Hinweis. Wenn die Kopie, die den Namen hält, eine ist, die Ihre verwalteten Einstellungen aktivieren, können Sie sie nicht deaktivieren, und die Hooks der anderen Kopie bleiben ausgeschaltet, solange beide installiert sind.

437 

424<h3 id="keep-a-session-only-plugin-from-loading">438<h3 id="keep-a-session-only-plugin-from-loading">

425 Halten Sie ein Sitzungs-Only-Plugin davon ab, zu laden439 Halten Sie ein Sitzungs-Only-Plugin davon ab, zu laden

426</h3>440</h3>

Details

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

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* **Namen, die mit `claudeai-` beginnen**: reserviert für Marketplaces, die auf claude.ai gehostet werden. `claude plugin marketplace add` lehnt jeden anderen Marketplace ab, der einen mit `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai` verwendet.55* **Namen, die mit `claudeai-` beginnen**: reserviert für Marketplaces, die auf claude.ai gehostet werden. `claude plugin marketplace add` lehnt jeden anderen Marketplace ab, der einen mit `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai` verwendet.

55* **Der Download-Ordner eines registrierten GitHub-Marketplace, `<owner>-<repo>`**: Claude Code lädt einen Marketplace, der aus einer `github`-Quelle wie `acme/x-tools` hinzugefügt wurde, über einen Ordner namens `acme-x-tools` herunter, unabhängig davon, welchen `name` dieser Marketplace selbst hat. Solange dieser Marketplace unter einem anderen Namen als `acme-x-tools` registriert ist, lehnt `claude plugin marketplace add` einen anderen Marketplace namens `acme-x-tools` nach dem Herunterladen ab und meldet `Can't use the marketplace name "acme-x-tools"`. Diese Überprüfung erfordert Claude Code v2.1.290 oder später.56* **Der Download-Ordner eines registrierten GitHub-Marketplace, `<owner>-<repo>`**: Claude Code lädt einen Marketplace, der aus einer `github`-Quelle wie `acme/x-tools` hinzugefügt wurde, über einen Ordner namens `acme-x-tools` herunter, unabhängig davon, welchen `name` dieser Marketplace selbst hat. Solange dieser Marketplace unter einem anderen Namen als `acme-x-tools` registriert ist, lehnt `claude plugin marketplace add` einen anderen Marketplace namens `acme-x-tools` nach dem Herunterladen ab und meldet `Can't use the marketplace name "acme-x-tools"`. Diese Überprüfung erfordert Claude Code v2.1.290 oder später.

56 57 

Details

68* **Der Wächter schützt, was Sie verwalten.** Der Mod eines Benutzers kann nicht ändern, was Ihre verwalteten Hooks erhalten oder entscheiden, den System-Prompt, Ihre verwaltete `CLAUDE.md` und andere verwaltete Anweisungen, was ein Mod als Einstellungen liest, oder die Tools und Beschreibungen Ihrer verwalteten MCP-Server.68* **Der Wächter schützt, was Sie verwalten.** Der Mod eines Benutzers kann nicht ändern, was Ihre verwalteten Hooks erhalten oder entscheiden, den System-Prompt, Ihre verwaltete `CLAUDE.md` und andere verwaltete Anweisungen, was ein Mod als Einstellungen liest, oder die Tools und Beschreibungen Ihrer verwalteten MCP-Server.

69* **Alles andere ist erlaubt.** Der Wächter fügt keine weiteren Einschränkungen hinzu. Der Mod eines Benutzers kann weiterhin Dateien lesen und schreiben, Prozesse starten, Netzwerkanfragen stellen, Tool-Aufrufe und Prompts umschreiben, einen Tool-Aufruf ablehnen, einen Aufruf genehmigen, für den sonst eine Berechtigungsabfrage erscheinen würde, und in der Oberfläche zeichnen, alles mit den Berechtigungen dieses Benutzers.69* **Alles andere ist erlaubt.** Der Wächter fügt keine weiteren Einschränkungen hinzu. Der Mod eines Benutzers kann weiterhin Dateien lesen und schreiben, Prozesse starten, Netzwerkanfragen stellen, Tool-Aufrufe und Prompts umschreiben, einen Tool-Aufruf ablehnen, einen Aufruf genehmigen, für den sonst eine Berechtigungsabfrage erscheinen würde, und in der Oberfläche zeichnen, alles mit den Berechtigungen dieses Benutzers.

70* **Deny-Regeln und Ihre verwalteten Hooks haben Vorrang.** Wo der Wächter geladen wird, kann der Mod eines Benutzers keinen Aufruf genehmigen, den eine `deny`-Regel ablehnt, unabhängig davon, in welcher Einstellungsdatei die Regel steht. Eine Blockierung durch einen `PreToolUse`-Hook in verwalteten Einstellungen ist ebenfalls endgültig. Beides gilt für die Tool-Aufrufe von Claude. Keines von beiden gilt für die eigenen [`$.fs`- und `$.process`-Aufrufe](/docs/de/plugins/mods/api#reach-files-processes-and-the-network) eines Mods: Wenn `Read(.env)` abgelehnt ist, kann ein Mod diese Datei trotzdem mit `$.fs.read` lesen oder ein Programm starten, das dies tut. Um diese Aufrufe einzuschränken, verhindern Sie, dass der Mod geladen wird, oder behandeln Sie den Aufruf in einem [Richtlinien-Mod](#enforce-a-policy-with-a-mod-of-your-own).70* **Deny-Regeln und Ihre verwalteten Hooks haben Vorrang.** Wo der Wächter geladen wird, kann der Mod eines Benutzers keinen Aufruf genehmigen, den eine `deny`-Regel ablehnt, unabhängig davon, in welcher Einstellungsdatei die Regel steht. Eine Blockierung durch einen `PreToolUse`-Hook in verwalteten Einstellungen ist ebenfalls endgültig. Beides gilt für die Tool-Aufrufe von Claude. Keines von beiden gilt für die eigenen [`$.fs`- und `$.process`-Aufrufe](/docs/de/plugins/mods/api#reach-files-processes-and-the-network) eines Mods: Wenn `Read(.env)` abgelehnt ist, kann ein Mod diese Datei trotzdem mit `$.fs.read` lesen oder ein Programm starten, das dies tut. Um diese Aufrufe einzuschränken, verhindern Sie, dass der Mod geladen wird, oder behandeln Sie den Aufruf in einem [Richtlinien-Mod](#enforce-a-policy-with-a-mod-of-your-own).

71* **Andere Berechtigungsprüfungen können übergangen werden.** Der Mod eines Benutzers, der Tool-Aufrufe genehmigt, kann einen Aufruf genehmigen, für den eine `ask`-Regel nachfragen würde oder den ein `PreToolUse`-Hook außerhalb der verwalteten Einstellungen blockiert hat. Im Auto-Modus wird ein vom Mod genehmigter Aufruf ohne Prüfung durch den Klassifikator ausgeführt.71* **Andere Berechtigungsprüfungen können übergangen werden.** Der Mod eines Benutzers, der Tool-Aufrufe genehmigt, kann einen Aufruf genehmigen, für den eine `ask`-Regel nachfragen würde oder den ein `PreToolUse`-Hook außerhalb der verwalteten Einstellungen blockiert hat. Im Auto-Modus wird ein vom Mod genehmigter Aufruf ohne Prüfung durch den Klassifikator ausgeführt. Welche Berechtigungsabfragen eine Genehmigung über `tool.check` eines Mods nicht überspringt, erfahren Sie unter [Berechtigungen mit Hooks erweitern](/docs/de/permissions#extend-permissions-with-hooks).

72 72 

73Der Quellcode des Wächters ist öffentlich im [Verzeichnis `mods/sec-default` des Claude Code-Repositorys](https://github.com/anthropics/claude-code/tree/main/mods/sec-default) verfügbar.73Der Quellcode des Wächters ist öffentlich im [Verzeichnis `mods/sec-default` des Claude Code-Repositorys](https://github.com/anthropics/claude-code/tree/main/mods/sec-default) verfügbar.

74 74 


81* **Einstellungs-Hooks funktionieren weiterhin.** Command-, HTTP-, Prompt- und Agent-Hooks in Einstellungsdateien und in `hooks/hooks.json` von Plugins laufen wie bisher, parallel zu Mods. Nichts davon ist veraltet.81* **Einstellungs-Hooks funktionieren weiterhin.** Command-, HTTP-, Prompt- und Agent-Hooks in Einstellungsdateien und in `hooks/hooks.json` von Plugins laufen wie bisher, parallel zu Mods. Nichts davon ist veraltet.

82* **Deny-Regeln haben Vorrang, wo der Wächter geladen wird.** Der Mod eines Benutzers kann keinen Aufruf genehmigen, den eine `deny`-Regel ablehnt, es sei denn, Sie setzen [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).82* **Deny-Regeln haben Vorrang, wo der Wächter geladen wird.** Der Mod eines Benutzers kann keinen Aufruf genehmigen, den eine `deny`-Regel ablehnt, es sei denn, Sie setzen [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

83* **Verwaltete Hooks laufen zuerst.** Ein `PreToolUse`-Hook in verwalteten Einstellungen läuft, bevor ein Mod den Tool-Aufruf sieht, und seine Blockierung ist endgültig. Wenn ein Mod den Aufruf anschließend umschreibt, laufen Ihre verwalteten Hooks erneut für den umgeschriebenen Aufruf, sodass eine Blockierung weiterhin gilt. `PreToolUse`-Hooks aus anderen Einstellungsdateien und aus Plugins laufen nach dem letzten Mod, sodass ein Mod, der anstelle der Ausführung des Tools ein eigenes Ergebnis zurückgibt, deren Ausführung verhindert. Siehe [Die Reihenfolge, in der Mods laufen](/docs/de/plugins/mods/events#the-order-mods-run-in).83* **Verwaltete Hooks laufen zuerst.** Ein `PreToolUse`-Hook in verwalteten Einstellungen läuft, bevor ein Mod den Tool-Aufruf sieht, und seine Blockierung ist endgültig. Wenn ein Mod den Aufruf anschließend umschreibt, laufen Ihre verwalteten Hooks erneut für den umgeschriebenen Aufruf, sodass eine Blockierung weiterhin gilt. `PreToolUse`-Hooks aus anderen Einstellungsdateien und aus Plugins laufen nach dem letzten Mod, sodass ein Mod, der anstelle der Ausführung des Tools ein eigenes Ergebnis zurückgibt, deren Ausführung verhindert. Siehe [Die Reihenfolge, in der Mods laufen](/docs/de/plugins/mods/events#the-order-mods-run-in).

84* **Die Netzwerkrichtlinie gilt für `$.http.fetch`.** Wenn Ihre Organisation das Abrufen aus dem Web deaktiviert oder nicht wesentlicher Netzwerkverkehr für die Sitzung ausgeschaltet ist, lehnt Claude Code eine Netzwerkanfrage ab, die ein Mod mit `$.http.fetch` stellt. Die Richtlinie gilt nicht für ein Programm, das der Mod mit `$.process.run` startet. Dieses Programm greift mit dem eigenen Zugriff des Benutzers auf das Netzwerk zu.84* **Die Netzwerkrichtlinie gilt für `$.http.fetch`.**

85 

86 * **Die Richtlinie Ihrer Organisation lässt WebFetch nicht zu**: Claude Code lehnt auch jede `$.http.fetch`-Anfrage jedes Mods ab. Siehe [Verfügbarkeit von WebFetch](/docs/de/tools-reference#webfetch-availability).

87 * **Sie setzen [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars)**: Ein Mod, den Sie oder Ihre Benutzer installieren, kann diese Anfragen weiterhin stellen. Die Variable stoppt nur die [in Claude Code integrierten Mods](/docs/de/plugins/mods/overview#mods-built-into-claude-code) sowie jede `$.http.fetch`-Anfrage, die die Anthropic-Anmeldedaten der Sitzung mitführt. Vor v2.1.288 stoppte die Variable jede `$.http.fetch`-Anfrage jedes Mods.

88 

89 Keines von beiden gilt für ein Programm, das der Mod mit `$.process.run` startet. Dieses Programm greift mit dem eigenen Zugriff des Benutzers auf das Netzwerk zu.

85* **Plugin-Kontrollen gelten für Mods.** Ein Mod ist ein Plugin, daher entscheiden die [Einstellungen, die einschränken, was Benutzer installieren können](/docs/de/plugins/org#restrict-what-users-can-install), etwa `strictKnownMarketplaces`, ob er überhaupt installiert werden kann.90* **Plugin-Kontrollen gelten für Mods.** Ein Mod ist ein Plugin, daher entscheiden die [Einstellungen, die einschränken, was Benutzer installieren können](/docs/de/plugins/org#restrict-what-users-can-install), etwa `strictKnownMarketplaces`, ob er überhaupt installiert werden kann.

86* **Mods können die Berechtigungsabfrage nicht ändern.** Ein Mod kann einen Großteil der Oberfläche von Claude Code umgestalten, aber nicht die Berechtigungsabfrage, sodass er nicht ändern kann, was eine Abfrage anzeigt. Ein Mod kann einen Tool-Aufruf dennoch genehmigen oder ablehnen, bevor die Abfrage erscheint, wie unter [Wissen, was standardmäßig geschieht](#know-what-happens-by-default) beschrieben.91* **Mods können die Berechtigungsabfrage nicht ändern.** Ein Mod kann einen Großteil der Oberfläche von Claude Code umgestalten, aber nicht die Berechtigungsabfrage, sodass er nicht ändern kann, was eine Abfrage anzeigt. Ein Mod kann einen Tool-Aufruf dennoch genehmigen oder ablehnen, bevor die Abfrage erscheint, wie unter [Wissen, was standardmäßig geschieht](#know-what-happens-by-default) beschrieben.

87* **Vertrauensabfragen kommen zuerst.** In einer interaktiven Sitzung in einem Verzeichnis, dem der Benutzer noch nicht vertraut hat, wird kein Mod geladen, bis er die Vertrauensabfrage beantwortet.92* **Vertrauensabfragen kommen zuerst.** In einer interaktiven Sitzung in einem Verzeichnis, dem der Benutzer noch nicht vertraut hat, wird kein Mod geladen, bis er die Vertrauensabfrage beantwortet.

Details

303| `$.session` | `messages()` gibt das Transkript als Liste von `{ role, text, toolUses }` zurück. Außerdem das Arbeitsverzeichnis, das Modell und mehr. [`usage()`](/docs/de/plugins/mods/reference#mods-api-methods) gibt die Nutzung des Kontextfensters und die Limits des Plans zurück. |303| `$.session` | `messages()` gibt das Transkript als Liste von `{ role, text, toolUses }` zurück. Außerdem das Arbeitsverzeichnis, das Modell und mehr. [`usage()`](/docs/de/plugins/mods/reference#mods-api-methods) gibt die Nutzung des Kontextfensters und die Limits des Plans zurück. |

304| `$.mcp` | Mit `call` ein Tool auf einem verbundenen MCP-Server aufrufen |304| `$.mcp` | Mit `call` ein Tool auf einem verbundenen MCP-Server aufrufen |

305 305 

306Für Dateien und Prozesse gelten einige eigene Regeln:306Für Dateien, Prozesse und Anfragen gelten einige eigene Regeln:

307 307 

308* **Pfade**: Ein relativer Pfad wird relativ zum Arbeitsverzeichnis der Sitzung aufgelöst308* **Pfade**: Ein relativer Pfad wird relativ zum Arbeitsverzeichnis der Sitzung aufgelöst oder zu dem des Subagenten, dessen Event der Hook gerade verarbeitet

309* **`$.fs.list`**: Gibt die Einträge eines einzelnen Verzeichnisses als `{ name, kind, size, isLink }` zurück und arbeitet nicht rekursiv309* **`$.fs.list`**: Gibt die Einträge eines einzelnen Verzeichnisses als `{ name, kind, size, isLink }` zurück und arbeitet nicht rekursiv

310* **`$.process.run`**: Nimmt eine Argumentliste entgegen und verwendet keine Shell. Wird unabhängig vom Exit-Code zu `{ exitCode, stdout, stderr }` aufgelöst. Wird abgelehnt, wenn das Programm nicht starten kann oder beim Timeout, standardmäßig 30 Sekunden, noch läuft. Umschließen Sie den Aufruf daher mit `try` und `catch`.310* **`$.process.run`**: Nimmt eine Argumentliste entgegen und verwendet keine Shell. Wird unabhängig vom Exit-Code zu `{ exitCode, stdout, stderr }` aufgelöst. Wird abgelehnt, wenn das Programm nicht starten kann oder beim Timeout, standardmäßig 30 Sekunden, noch läuft. Umschließen Sie den Aufruf daher mit `try` und `catch`.

311* **`$.http.fetch`**: Folgt bis zu fünf Weiterleitungen. Bei einer Weiterleitung zu einem anderen Origin behält es von den von Ihnen gesetzten Anfrage-Headern nur `accept`, `accept-language`, `content-type` und `user-agent` bei und verwirft die übrigen. Eine Anfrage, die von einem anderen Header wie `Authorization` abhängt, kann daher nach einer solchen Weiterleitung fehlschlagen. Die [Limits](/docs/de/plugins/mods/reference#limits) nennen den Timeout und die Body-Größen.

311 312 

312Jeder dieser Aufrufe ist selbst ein Event, benannt nach seinem Namespace und seiner Methode ohne das `$.`, etwa `fs.read` für `$.fs.read`. Ein Mod, der [früher in der Kette](/docs/de/plugins/mods/events#the-order-mods-run-in) steht, kann Ihren Aufruf beobachten, umschreiben oder ablehnen. Auf diese Weise schränkt eine Organisation ein, worauf Mods zugreifen können.313Jeder dieser Aufrufe ist selbst ein Event, benannt nach seinem Namespace und seiner Methode ohne das `$.`, etwa `fs.read` für `$.fs.read`. Ein Mod, der [früher in der Kette](/docs/de/plugins/mods/events#the-order-mods-run-in) steht, kann Ihren Aufruf beobachten, umschreiben oder ablehnen. Auf diese Weise schränkt eine Organisation ein, worauf Mods zugreifen können.

313 314 

Details

148| `agent.offer` | Claude ein Subagenten-Typ angeboten wird | `{ isOffered: false }`, um ihn zurückzuhalten |148| `agent.offer` | Claude ein Subagenten-Typ angeboten wird | `{ isOffered: false }`, um ihn zurückzuhalten |

149| `agent.spawn` | Ein Subagent oder ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) gleich startet. Bei einem Teammitglied ist `e.isTeammate` gleich `true`. | `next({ ...e, model })`, um sein Modell zu wählen, oder `{ deny: reason }` |149| `agent.spawn` | Ein Subagent oder ein Teammitglied eines [Agent-Teams](/docs/de/agent-teams) gleich startet. Bei einem Teammitglied ist `e.isTeammate` gleich `true`. | `next({ ...e, model })`, um sein Modell zu wählen, oder `{ deny: reason }` |

150 150 

151Wenn Claude einen Subagenten mit dem Tool [`SendMessage`](/docs/de/sub-agents#resume-subagents) fortsetzt, wird Ihr `agent.spawn`-Hook nicht erneut ausgeführt. Um die `SendMessage`-Aufrufe abzulehnen, die einen Subagenten fortsetzen, gleichen Sie dieses Tool in einem [`tool.call`](/docs/de/plugins/mods/events#guard-or-change-a-tool-call)-Hook ab.

152 

151<h3 id="interface">153<h3 id="interface">

152 Oberfläche154 Oberfläche

153</h3>155</h3>


175| [`plugin.register`](/docs/de/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) | Ein Hooks-Modul gleich geladen wird. `e.uses` listet seine Events, Mods-API-Aufrufe, Umgebungsvariablen und seinen Zustand auf, so wie `claude plugin validate` sie ausgibt. Jeder Aufruf wird ohne das Präfix `$.` geschrieben, etwa `fs.read`. | `{ refuse: reason }` |177| [`plugin.register`](/docs/de/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) | Ein Hooks-Modul gleich geladen wird. `e.uses` listet seine Events, Mods-API-Aufrufe, Umgebungsvariablen und seinen Zustand auf, so wie `claude plugin validate` sie ausgibt. Jeder Aufruf wird ohne das Präfix `$.` geschrieben, etwa `fs.read`. | `{ refuse: reason }` |

176| `engine.create` | Die Mods-API für diesen Mod aufgebaut wird | Eine geänderte Mods-API, um einen Namespace hinzuzufügen. Ein Mod außerhalb der [Stufe](#the-hook-function) `user` kann auch einen zurückhalten. |178| `engine.create` | Die Mods-API für diesen Mod aufgebaut wird | Eine geänderte Mods-API, um einen Namespace hinzuzufügen. Ein Mod außerhalb der [Stufe](#the-hook-function) `user` kann auch einen zurückhalten. |

177 179 

180Wenn der Hook eines anderen Mods eine Methode in einem Namespace aufruft, den Sie in `engine.create` hinzugefügt haben, laufen die `$`-Aufrufe Ihrer Methode im Kontext dieses Hooks, bis jeder Hook auf diesem Event zurückgekehrt ist. Beispielsweise wird ein relativer Pfad relativ zum Arbeitsverzeichnis dieses Hooks aufgelöst, und `$.prompt.submit` wird abgelehnt, solange der Turn auf diesen Hook wartet. Aufrufe, die Ihre Methode danach durchführt, laufen im eigenen Kontext Ihres Mods.

181 

178<h3 id="telemetry">182<h3 id="telemetry">

179 Telemetrie183 Telemetrie

180</h3>184</h3>


317| `$.process.run`-Timeout | Standardmäßig 30 Sekunden, höchstens 10 Minuten |321| `$.process.run`-Timeout | Standardmäßig 30 Sekunden, höchstens 10 Minuten |

318| `$.model.complete` `maxTokens` | Standardmäßig 1024, bis zu 64.000 oder das Ausgabelimit des Modells |322| `$.model.complete` `maxTokens` | Standardmäßig 1024, bis zu 64.000 oder das Ausgabelimit des Modells |

319| `$.fs.read` und `$.fs.write` | 4 MiB für eine Datei |323| `$.fs.read` und `$.fs.write` | 4 MiB für eine Datei |

324| Request-Body eines `$.http.fetch`-Aufrufs | 4 MiB, gezählt in Zeichen. Ein Aufruf mit einem größeren Body wird abgelehnt. |

325| Response-Body eines `$.http.fetch`-Aufrufs | 4 MiB. `text` enthält die ersten 4 MiB, der Rest wird nicht gelesen. Wenn der `Content-Length`-Header mehr angibt, wird der Aufruf stattdessen abgelehnt, mit einem Grund, der auf `is over the 4194304-byte limit` endet, außer wenn die letzte Anfrage nach etwaigen Weiterleitungen die Methode `HEAD` verwendet. Die Ausnahme für `HEAD` erfordert Claude Code v2.1.296 oder höher. |

326| Ein `$.http.fetch`-Aufruf, einschließlich Weiterleitungen und Body | 30 Sekunden |

327| Weiterleitungen, denen ein `$.http.fetch`-Aufruf folgt | 5 |

320| `drop`-Grund eines Hooks oder `deny`-Grund von `config.set` | 4.096 Zeichen. Das Ende eines längeren Grundes wird abgeschnitten, und das Drop bzw. Deny gilt weiterhin. Das Abschneiden erfordert Claude Code v2.1.292 oder höher; in früheren Versionen [schlägt der Hook stattdessen fehl](/docs/de/plugins/mods/events#handle-a-hook-that-fails). |328| `drop`-Grund eines Hooks oder `deny`-Grund von `config.set` | 4.096 Zeichen. Das Ende eines längeren Grundes wird abgeschnitten, und das Drop bzw. Deny gilt weiterhin. Das Abschneiden erfordert Claude Code v2.1.292 oder höher; in früheren Versionen [schlägt der Hook stattdessen fehl](/docs/de/plugins/mods/events#handle-a-hook-that-fails). |

321| Text in einem Baum | Die ersten 100.000 Zeichen werden gezeichnet |329| Text in einem Baum | Die ersten 100.000 Zeichen werden gezeichnet |

322| `language` oder `path` eines `Code`, `value` einer `Select`-Option oder `module` eines `Client` | 10.000 Zeichen. Ist einer dieser Werte länger, [zeichnet Claude Code eine eigene Version der Stelle](/docs/de/plugins/mods/interface#build-a-tree-from-elements). |330| `language` oder `path` eines `Code`, `value` einer `Select`-Option oder `module` eines `Client` | 10.000 Zeichen. Ist einer dieser Werte länger, [zeichnet Claude Code eine eigene Version der Stelle](/docs/de/plugins/mods/interface#build-a-tree-from-elements). |

Details

78| `disableAllHooks in managed settings` | Ihre Organisation hat Hooks aus installierten Plugins ausgeschaltet |78| `disableAllHooks in managed settings` | Ihre Organisation hat Hooks aus installierten Plugins ausgeschaltet |

79| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` ist gesetzt, oder `disableAllHooks` ist in einer anderen Einstellungsdatei als den verwalteten Einstellungen gesetzt |79| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` ist gesetzt, oder `disableAllHooks` ist in einer anderen Einstellungsdatei als den verwalteten Einstellungen gesetzt |

80| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Sie haben Claude Code mit `--bare` gestartet |80| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Sie haben Claude Code mit `--bare` gestartet |

81| `another plugin of that name loads first` | Zwei Plugins haben denselben Namen. Das verwaltete oder das zuerst geladene wird verwendet. |81| `another plugin of that name loads first` | Ein anderes aktiviertes Plugin hat denselben Namen wie Ihr Mod und [belegt den Namen](/docs/de/plugins/loading#hooks-when-two-enabled-plugins-share-a-name), daher wird Ihr Hooks-Modul nicht geladen |

82 82 

83<h3 id="messages-from-the-built-in-guard">83<h3 id="messages-from-the-built-in-guard">

84 Meldungen des integrierten Wächters84 Meldungen des integrierten Wächters


191 191 

192Vor v2.1.292 wurde der Aufruf ein zweites Mal ausgeführt, sodass der Prompt zweimal gesendet, der Befehl zweimal ausgeführt oder der Subagent zweimal gestartet wurde.192Vor v2.1.292 wurde der Aufruf ein zweites Mal ausgeführt, sodass der Prompt zweimal gesendet, der Befehl zweimal ausgeführt oder der Subagent zweimal gestartet wurde.

193 193 

194<h3 id="$-agent-register-refused-the-hooks-module-that-made-the-call-is-no-longer-loaded">

195 `$.agent.register refused: the hooks module that made the call is no longer loaded`

196</h3>

197 

198Die Zeile beginnt mit dem Namen Ihres Mods, wie in `first-mod: $.agent.register refused: the hooks module that made the call is no longer loaded (it was reloaded or removed)`, und der Agent wird nicht registriert. Ihr Mod wurde vor dem Aufruf neu geladen oder entladen. Ein Neuladen lädt eine neue Kopie des Hooks-Moduls, und dieser Aufruf stammt aus Code, der noch in der alten Kopie ausgeführt wurde, etwa aus einem Hook, der noch nicht zurückgekehrt war.

199 

200Wenn dieser Hook die Ablehnung nicht abfängt, schlägt er fehl, und Claude Code [überspringt ihn](#hook-skipped). Um den Agenten aus der Kopie zu registrieren, die geladen bleibt, führen Sie den Aufruf in Ihrem [`session.start`](/docs/de/plugins/mods/reference#session)-Hook aus, der nach einem Neuladen in jeder neuen Kopie erneut ausgeführt wird.

201 

194<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">202<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">

195 `mods that run in the hooks worker are off for this session`203 `mods that run in the hooks worker are off for this session`

196</h3>204</h3>

Details

256 256 

257Vor v2.1.295 hat Claude Code das Hinzufügen in diesem Beispiel als erfolgreich gemeldet.257Vor v2.1.295 hat Claude Code das Hinzufügen in diesem Beispiel als erfolgreich gemeldet.

258 258 

259<h3 id="claude-code-reserves-this-name">

260 `Cannot add marketplace "<name>": Claude Code reserves this name and cannot register a marketplace under it`

261</h3>

262 

263Sie haben einen Marktplatz hinzugefügt, und der [`name`](/docs/de/plugins/marketplace-reference#top-level-fields) in seiner `marketplace.json` ist einer der Member-Namen, die jedes JavaScript-Objekt besitzt, etwa `constructor`, `toString` oder `valueOf`. Claude Code reserviert diese Namen, daher lehnt es das Hinzufügen ab und registriert nichts. [Reservierte Namen](/docs/de/plugins/marketplace-reference#reserved-names) listet sie auf.

264 

265In diesem Beispiel heißt der Marktplatz `constructor`:

266 

267```text theme={null}

268Cannot add marketplace "constructor": Claude Code reserves this name and cannot register a marketplace under it. The name is set by "name" in the marketplace's marketplace.json; ask its maintainer to change it.

269```

270 

271Wenn eine Einstellungsdatei den Marktplatz unter [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces) deklariert, schlägt der Versuch von Claude Code, ihn beim Start hinzuzufügen, auf dieselbe Weise fehl, und die Meldung erscheint auf der Registerkarte **Errors** in `/plugin`.

272 

273Geben Sie dem Marktplatz einen anderen Namen, und fügen Sie ihn dann erneut hinzu:

274 

275* **Sie besitzen den Marktplatz**: ändern Sie `name` in `marketplace.json`

276* **Jemand anderes hostet ihn**: bitten Sie den Besitzer, den Namen zu ändern

277 

278Vor v2.1.296 schlug das Hinzufügen eines solchen Marktplatzes mit einem internen Fehler statt dieser Meldung fehl.

279 

259<h3 id="ssh-authentication-failed-or-https-authentication-failed">280<h3 id="ssh-authentication-failed-or-https-authentication-failed">

260 `SSH authentication failed` oder `HTTPS authentication failed`281 `SSH authentication failed` oder `HTTPS authentication failed`

261</h3>282</h3>


907 Hook lädt, aber wird nie ausgelöst928 Hook lädt, aber wird nie ausgelöst

908</h4>929</h4>

909 930 

910Wenn ein Hook ohne Fehler geladen wird, aber nie ausgelöst wird, überprüfen Sie seine Definition und beobachten Sie dann seine Ausführung:931Wenn ein Hook ohne Fehler geladen wird, aber nie ausgelöst wird, führen Sie zuerst `/plugin` in Ihrer Sitzung aus und öffnen Sie die Details des Plugins. Ein Hinweis dort, der mit `Its hooks.json hooks do not run` beginnt, bedeutet, dass stattdessen ein anderes aktiviertes Plugin mit demselben Namen seine Hooks registriert hat. [Hooks, wenn zwei aktivierte Plugins denselben Namen haben](/docs/de/plugins/loading#hooks-when-two-enabled-plugins-share-a-name) erklärt, welche Kopie das ist und wie Sie wechseln. Andernfalls überprüfen Sie die Definition des Hooks und beobachten Sie dann seine Ausführung:

911 932 

912<Steps>933<Steps>

913 <Step title="Überprüfen Sie den Ereignisnamen">934 <Step title="Überprüfen Sie den Ereignisnamen">

routines.md +3 −3

Details

86 </Step>86 </Step>

87 87 

88 <Step title="Wählen Sie Repositories aus">88 <Step title="Wählen Sie Repositories aus">

89 Fügen Sie ein oder mehrere GitHub-Repositories hinzu, in denen Claude arbeiten kann. Jedes Repository wird zu Beginn einer Ausführung geklont, beginnend mit dem Standard-Branch. Claude erstellt `claude/`-prefixierte Branches für seine Änderungen.89 Fügen Sie ein oder mehrere GitHub-Repositories hinzu, in denen Claude arbeiten kann. Jedes Repository wird zu Beginn einer Ausführung geklont. Claude erstellt `claude/`-prefixierte Branches für seine Änderungen.

90 </Step>90 </Step>

91 91 

92 <Step title="Wählen Sie eine Umgebung aus">92 <Step title="Wählen Sie eine Umgebung aus">


359 Repositories und Branch-Berechtigungen359 Repositories und Branch-Berechtigungen

360</h3>360</h3>

361 361 

362Routinen benötigen GitHub-Zugriff zum Klonen von Repositories. Wenn Sie eine Routine aus der CLI mit `/schedule` erstellen, überprüft Claude, ob Ihr Konto GitHub-Zugriff für das Repository hat, von dem aus Sie es ausgeführt haben, und fügt bei Bedarf eine Setup-Notiz hinzu, die angibt, wie Zugriff gewährt wird. Siehe [GitHub-Authentifizierungsoptionen](/docs/de/claude-code-on-the-web#github-authentication-options) für die zwei Möglichkeiten, Zugriff zu gewähren.362Routinen benötigen GitHub-Zugriff zum Klonen von Repositories. Wenn Sie eine Routine aus der CLI mit `/schedule` erstellen, überprüft Claude, ob Ihr Konto GitHub-Zugriff für das Repository hat, von dem aus Sie es ausgeführt haben, und fügt bei Bedarf eine Setup-Notiz hinzu, die angibt, wie Zugriff gewährt wird. Siehe [GitHub-Authentifizierungsoptionen](/docs/de/claude-code-on-the-web#github-authentication-options) für die zwei Möglichkeiten, Zugriff zu gewähren. In Team- und Enterprise-Plänen muss ein [Owner](/docs/de/server-managed-settings#access-control) Ihrer Claude-Organisation jede Methode aktivieren, bevor Sie sie verwenden können; siehe [GitHub verbinden](/docs/de/web-quickstart#connect-github).

363 363 

364Wenn Ihre GitHub-Verbindung fehlt oder abgelaufen ist, wenn eine Ausführung fällig ist, überspringt die Routine Ausführungen, bis Sie die Verbindung wiederherstellen, für bis zu 72 Stunden. Verbinden Sie GitHub innerhalb dieses Zeitfensters erneut, und die Routine wird automatisch fortgesetzt. Nach 72 Stunden ohne Verbindung wird die Routine deaktiviert, und Sie aktivieren sie erneut, nachdem Sie GitHub erneut verbunden haben.364Wenn Ihre GitHub-Verbindung fehlt oder abgelaufen ist, wenn eine Ausführung fällig ist, überspringt die Routine Ausführungen, bis Sie die Verbindung wiederherstellen, für bis zu 72 Stunden. Verbinden Sie GitHub innerhalb dieses Zeitfensters erneut, und die Routine wird automatisch fortgesetzt. Nach 72 Stunden ohne Verbindung wird die Routine deaktiviert, und Sie aktivieren sie erneut, nachdem Sie GitHub erneut verbunden haben.

365 365 

366Jedes Repository, das Sie hinzufügen, wird bei jeder Ausführung geklont. Claude startet vom Standard-Branch des Repositories, es sei denn, Ihr Prompt gibt etwas anderes an.366Jedes Repository, das Sie hinzufügen, wird bei jeder Ausführung geklont. Claude startet vom Standard-Branch des Repositories, es sei denn, Ihr Prompt gibt etwas anderes an. Wenn ein [GitHub-Pull-Request-Ereignis](#add-a-github-trigger) die Ausführung auslöst und das Repository des Pull Requests das erste Repository in der Routine ist, startet dieses Repository stattdessen vom Head-Commit des Pull Requests.

367 367 

368Claude pusht seine Arbeit zu einem Branch mit dem Präfix `claude/`, es sei denn, Ihr Prompt weist Claude an, zu einem anderen Branch zu pushen. Um zu steuern, zu welchen Branches eine Ausführung pushen kann, verwenden Sie Branch-Schutzregeln oder Rulesets auf GitHub. Bei Ausführungen auf von Anthropic verwalteter Infrastruktur und bei selbst gehosteten Ausführungen, die über den [Git-Proxy von Anthropic](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) pushen, wendet GitHub diese Regeln auf den von Ihnen verbundenen GitHub-Zugriff an, sodass eine Regel, die dieser Zugriff umgehen kann, den Push einer Ausführung nicht blockiert. Eine selbst gehostete Ausführung, die mit den Git-Anmeldedaten pusht, die Ihre Bereitstellung zur Verfügung stellt, wird stattdessen anhand dieser Anmeldedaten geprüft. Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git).368Claude pusht seine Arbeit zu einem Branch mit dem Präfix `claude/`, es sei denn, Ihr Prompt weist Claude an, zu einem anderen Branch zu pushen. Um zu steuern, zu welchen Branches eine Ausführung pushen kann, verwenden Sie Branch-Schutzregeln oder Rulesets auf GitHub. Bei Ausführungen auf von Anthropic verwalteter Infrastruktur und bei selbst gehosteten Ausführungen, die über den [Git-Proxy von Anthropic](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) pushen, wendet GitHub diese Regeln auf den von Ihnen verbundenen GitHub-Zugriff an, sodass eine Regel, die dieser Zugriff umgehen kann, den Push einer Ausführung nicht blockiert. Eine selbst gehostete Ausführung, die mit den Git-Anmeldedaten pusht, die Ihre Bereitstellung zur Verfügung stellt, wird stattdessen anhand dieser Anmeldedaten geprüft. Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git).

369 369 

sandboxing.md +1 −0

Details

203* `rm`- oder `rmdir`-Befehle, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) zielen, durchlaufen weiterhin den regulären Berechtigungsablauf203* `rm`- oder `rmdir`-Befehle, die auf einen [kritischen Pfad](/docs/de/permission-modes#critical-paths) zielen, durchlaufen weiterhin den regulären Berechtigungsablauf

204* Inhaltsbezogene [Nachfrageregeln](/docs/de/permissions) wie `Bash(git push *)` erzwingen weiterhin eine Nachfrage, auch für Befehle in der Sandbox204* Inhaltsbezogene [Nachfrageregeln](/docs/de/permissions) wie `Bash(git push *)` erzwingen weiterhin eine Nachfrage, auch für Befehle in der Sandbox

205* Eine einfache `Bash`-Nachfrageregel oder die gleichwertige Form `Bash(*)` wird für Befehle, die in der Sandbox ausgeführt werden, übersprungen; sie gilt weiterhin für Befehle, die auf den regulären Berechtigungsablauf zurückfallen. Im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) wird die Regel nicht übersprungen: Sie fragt auch bei Befehlen in der Sandbox nach, einschließlich nur lesender Befehle205* Eine einfache `Bash`-Nachfrageregel oder die gleichwertige Form `Bash(*)` wird für Befehle, die in der Sandbox ausgeführt werden, übersprungen; sie gilt weiterhin für Befehle, die auf den regulären Berechtigungsablauf zurückfallen. Im [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode) wird die Regel nicht übersprungen: Sie fragt auch bei Befehlen in der Sandbox nach, einschließlich nur lesender Befehle

206* Befehle des [Monitor-Tools](/docs/de/tools-reference#monitor-tool) werden nicht automatisch genehmigt, obwohl sie weiterhin in der Sandbox ausgeführt werden. Um die Nachfrage zu überspringen, fügen Sie eine [Erlaubnisregel](/docs/de/permissions#bash) hinzu, die auf den Befehl passt, etwa `Bash(npm run *)`

206 207 

207<Info>208<Info>

208 Der Auto-Allow-Modus funktioniert unabhängig von Ihrer Einstellung für den Berechtigungsmodus, mit drei Ausnahmen: dem [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode), einem Befehl im Auto-Modus mit [befehlsspezifisch erlaubten Domains](#per-command-allowed-domains-in-auto-mode) und der [serverseitigen Prüfung durch den Klassifikator](/docs/de/permission-modes#how-the-classifier-evaluates-actions) für Befehle in der Sandbox im Auto-Modus. Auch wenn Sie sich nicht im „accept edits“-Modus befinden, werden Bash-Befehle in der Sandbox automatisch ausgeführt, wenn Auto-Allow aktiviert ist. Das bedeutet, dass Bash-Befehle, die Dateien innerhalb der Sandbox-Grenzen ändern, ohne Nachfrage ausgeführt werden, selbst im Manual-Modus, in dem die Tools zur Dateibearbeitung nachfragen würden.209 Der Auto-Allow-Modus funktioniert unabhängig von Ihrer Einstellung für den Berechtigungsmodus, mit drei Ausnahmen: dem [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode), einem Befehl im Auto-Modus mit [befehlsspezifisch erlaubten Domains](#per-command-allowed-domains-in-auto-mode) und der [serverseitigen Prüfung durch den Klassifikator](/docs/de/permission-modes#how-the-classifier-evaluates-actions) für Befehle in der Sandbox im Auto-Modus. Auch wenn Sie sich nicht im „accept edits“-Modus befinden, werden Bash-Befehle in der Sandbox automatisch ausgeführt, wenn Auto-Allow aktiviert ist. Das bedeutet, dass Bash-Befehle, die Dateien innerhalb der Sandbox-Grenzen ändern, ohne Nachfrage ausgeführt werden, selbst im Manual-Modus, in dem die Tools zur Dateibearbeitung nachfragen würden.

Details

132Der Runner und seine Sitzungen stellen mehrere Arten von ausgehenden Verbindungen her, und es ist keine eingehende Konnektivität von Anthropic erforderlich:132Der Runner und seine Sitzungen stellen mehrere Arten von ausgehenden Verbindungen her, und es ist keine eingehende Konnektivität von Anthropic erforderlich:

133 133 

134* **Kontrolleben**: Der Runner fragt `api.anthropic.com` nach Arbeit ab und sendet Setup-Fortschritts- und Fehlerereignisse, alle ausgehend HTTPS. Das Abfragen dient auch als Herzschlag des Runners.134* **Kontrolleben**: Der Runner fragt `api.anthropic.com` nach Arbeit ab und sendet Setup-Fortschritts- und Fehlerereignisse, alle ausgehend HTTPS. Das Abfragen dient auch als Herzschlag des Runners.

135* **SCM-Connector**: Der optionale Orchestrator [SCM-Connector](/docs/de/self-hosted-environments-reference#scm-connector-flags) Tunnel ist die einzige WebSocket-Verbindung.135* **Git**: Der Runner klont von Ihrem Git-Host und pusht zu ihm über HTTPS oder SSH, authentifiziert mit Anmeldedaten, die Ihr Deployment bereitstellt. Siehe [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git) für die Optionen, einschließlich pro Sitzung ausgestellter Anmeldedaten. Mit dem [Anthropic Git-Proxy](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) läuft der Git-Datenverkehr für Repositorys auf github.com stattdessen über `api.anthropic.com`.

136* **Git**: Der Runner klont von und pusht zu Ihrem Git-Host über HTTPS oder SSH, authentifiziert mit Anmeldeinformationen, die Ihre Bereitstellung bereitstellt; [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git) behandelt die Optionen, einschließlich pro-Sitzung geprägte Anmeldeinformationen und der [Anthropic Git-Proxy](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy), der Git durch `api.anthropic.com` leitet.136* **Sitzungs-Child**: Der untergeordnete Claude Code-Prozess hält den Ereignisstrom der Sitzung zu `api.anthropic.com` und führt seine eigenen ausgehenden Aufrufe für Modell-Inferenz und für Git-Befehle durch, die während der Sitzung ausgeführt werden. In einer Sitzung, die [von Anthropic verwaltetes Git](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) verwendet, sendet der untergeordnete Prozess seinen `git`- und `gh`-Datenverkehr für github.com über eine WebSocket-Verbindung, die er zu `api.anthropic.com` öffnet.

137* **Sitzungs-Child**: Der untergeordnete Claude Code-Prozess hält den Ereignisstrom der Sitzung zu `api.anthropic.com` und führt seine eigenen ausgehenden Aufrufe für Modell-Inferenz und für Git-Befehle durch, die während der Sitzung ausgeführt werden. Siehe [Netzwerkanforderungen](/docs/de/self-hosted-environments-deploy#network-requirements) für die vollständige Egress-Liste. Das [Diagramm oben](#how-self-hosted-environments-work) zeigt diese Pfade, abgesehen vom optionalen SCM-Connector.137* **SCM-Konnektor**: Der optionale [SCM-Konnektor](/docs/de/self-hosted-environments-reference#scm-connector-flags) des Orchestrators ist nicht verfügbar, daher wird sein Tunnel nicht geöffnet. Der Tunnel ist eine WebSocket-Verbindung zu `api.anthropic.com`.

138 

139Siehe [Netzwerkanforderungen](/docs/de/self-hosted-environments-deploy#network-requirements) für die vollständige Egress-Liste. Das [Diagramm oben](#how-self-hosted-environments-work) zeigt diese Pfade, abgesehen vom optionalen SCM-Konnektor und der von Anthropic verwalteten Git-Verbindung.

138 140 

139Standardmäßig verwendet die Modell-Inferenz die Anthropic API. Die Kontrollebene liefert den API-Endpunkt an jede Sitzung, und die Sitzung authentifiziert sich mit einem von Anthropic ausgegebenen, sitzungsbezogenen OAuth-Token. Um Modellanfragen stattdessen an Ihr eigenes Cloud-Konto zu senden, siehe [Modellanfragen an Bedrock oder Agent Platform senden](/docs/de/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform).141Standardmäßig verwendet die Modell-Inferenz die Anthropic API. Die Kontrollebene liefert den API-Endpunkt an jede Sitzung, und die Sitzung authentifiziert sich mit einem von Anthropic ausgegebenen, sitzungsbezogenen OAuth-Token. Um Modellanfragen stattdessen an Ihr eigenes Cloud-Konto zu senden, siehe [Modellanfragen an Bedrock oder Agent Platform senden](/docs/de/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform).

140 142 

Details

31| Variable | Beschreibung |31| Variable | Beschreibung |

32| :- | :- |32| :- | :- |

33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-JWT, mit dem Präfix `sk-ant-cc-`. Sein `act`-Anspruch identifiziert den Sitzungsersteller, mit der E-Mail des Erstellers, wenn die erstellende Oberfläche diese aufgezeichnet hat. Der Wert ist das Token zum Zeitpunkt des Spawning; Aktualisierungen kommen über stdin des Kindes an, daher sieht ein Wrapper nur den Anfangswert. Siehe [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity). |33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-JWT, mit dem Präfix `sk-ant-cc-`. Sein `act`-Anspruch identifiziert den Sitzungsersteller, mit der E-Mail des Erstellers, wenn die erstellende Oberfläche diese aufgezeichnet hat. Der Wert ist das Token zum Zeitpunkt des Spawning; Aktualisierungen kommen über stdin des Kindes an, daher sieht ein Wrapper nur den Anfangswert. Siehe [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity). |

34| `CCR_SESSION_ACCOUNT_EMAIL` | Die E-Mail des Sitzungserstellers, vom Runner aus dem `act.email`-Anspruch des Tokens ohne Signaturüberprüfung vorab extrahiert. Geeignet für Beschriftung, wie Commit-Trailer. Wenn die E-Mail die Ausstellung von Anmeldedaten steuert, überprüfen Sie das Token und lesen Sie den Anspruch stattdessen daraus; siehe [Anmeldedaten mit Bereich auf den Sitzungsersteller bereitstellen](#provision-credentials-scoped-to-the-session-creator). Nicht gesetzt, wenn das Token keine Ersteller-E-Mail enthält. Behandeln Sie als personenbezogene Informationen. |34| `CCR_SESSION_ACCOUNT_EMAIL` | Die E-Mail des Sitzungserstellers, vom Runner aus dem `act.email`-Anspruch des Tokens ohne Signaturüberprüfung vorab extrahiert. Geeignet für Beschriftung, wie Commit-Trailer. Wenn die E-Mail die Ausstellung von Anmeldedaten steuert, überprüfen Sie das Token und lesen Sie den Anspruch stattdessen daraus. Siehe [Anmeldedaten mit Bereich auf den Sitzungsersteller bereitstellen](#provision-credentials-scoped-to-the-session-creator). Nicht gesetzt, wenn das Token keine Ersteller-E-Mail enthält, zum Beispiel in Sitzungen, die die Service-Identität Ihrer Organisation erstellt. Behandeln Sie als personenbezogene Informationen. |

35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios`, `claude_code_cli` oder `scheduled_trigger`. Anthropic zeichnet den Wert einmal bei der Sitzungserstellung auf, daher sehen der Wrapper und jeder Lifecycle-Hook denselben Wert. Verwenden Sie ihn nur für Adoptionsanalysen und Beschriftung, nicht als Autorisierungssignal. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat, daher referenzieren Sie sie als `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` unter `set -u`. Erfordert Claude Code v2.1.229 oder später. |35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios`, `claude_code_cli` oder `scheduled_trigger`. Anthropic zeichnet den Wert einmal bei der Sitzungserstellung auf, daher sehen der Wrapper und jeder Lifecycle-Hook denselben Wert. Verwenden Sie ihn nur für Adoptionsanalysen und Beschriftung, nicht als Autorisierungssignal. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat. Erfordert Claude Code v2.1.229 oder später. |

36| `CLAUDE_RUNNER_CLAUDE_BIN` | Absoluter Pfad zur eigenen Claude Code-Binärdatei des Runners. Beenden Sie Ihren Wrapper mit `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"`, um an die angeheftete Binärdatei zu übergeben, ohne einen Installationspfad hartcodieren zu müssen. |36| `CLAUDE_RUNNER_CLAUDE_BIN` | Absoluter Pfad zur eigenen Claude Code-Binärdatei des Runners. Beenden Sie Ihren Wrapper mit `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"`, um an die angeheftete Binärdatei zu übergeben, ohne einen Installationspfad hartcodieren zu müssen. |

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | Sitzungs-ID in der getaggten Form `cse_...`. Dies ist dieselbe Sitzung, die die [Lifecycle-Hooks](#lifecycle-hooks) als `CLAUDE_RUNNER_SESSION_ID` in der Form `session_...` sehen; die UUID-Variablen stimmen über beide überein, und das Ersetzen des Präfixes `cse_` durch `session_` ergibt die in der Sitzungs-URL angezeigte ID. |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | Sitzungs-ID in der getaggten Form `cse_...`. Dies ist dieselbe Sitzung, die die [Lifecycle-Hooks](#lifecycle-hooks) als `CLAUDE_RUNNER_SESSION_ID` in der Form `session_...` sehen; die UUID-Variablen stimmen über beide überein, und das Ersetzen des Präfixes `cse_` durch `session_` ergibt die in der Sitzungs-URL angezeigte ID. |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form, für Systeme, die auf UUIDs basieren. |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form, für Systeme, die auf UUIDs basieren. |

39| `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` | Für eine [Claude Tag](https://claude.com/docs/claude-tag/overview)-Sitzung, die zu einem Slack-Thread gehört, der Link zu diesem Thread. Für andere Sitzungen nicht gesetzt; kann auch bei einer Thread-Sitzung nicht gesetzt sein. |

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

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Absoluter Pfad zu einer pro-Sitzungs-Datei, die das aktuelle Sitzungs-JWT enthält, das über Token-Aktualisierungen hinweg aktuell gehalten wird. Shell-Unterprozesse lesen es für ihren `Authorization`-Header beim Herunterladen von Anhängen, die der Benutzer zur Sitzung hinzugefügt hat. `exec` bewahrt die Variable automatisch; ein Wrapper, der die Umgebung des Kindes neu erstellt, muss die Variable übertragen, oder Anhang-Downloads funktionieren stillschweigend nicht mehr. |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. |

40| `CLAUDE_CONFIG_DIR` | Pro-Sitzungs-Claude-Konfigurationsverzeichnis, geschrieben beim Sitzungsstart aus dem Snapshot der Konfiguration des Runner-Hosts, den der Runner beim Startup erfasst; siehe [Berechtigungen und Tool-Genehmigung](#permissions-and-tool-approval). Schreibvorgänge hier sind auf diese Sitzung isoliert. 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). |

41| `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. |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. |


43 45 

44Der Wrapper erbt auch den Rest der verwalteten Umgebung des Kindes, einschließlich aller vom Server bereitgestellten Umgebungsvariablen. `exec` propagiert alles automatisch; wenn Ihr Wrapper das Kind auf andere Weise startet, leiten Sie die vollständige Umgebung weiter.46Der Wrapper erbt auch den Rest der verwalteten Umgebung des Kindes, einschließlich aller vom Server bereitgestellten Umgebungsvariablen. `exec` propagiert alles automatisch; wenn Ihr Wrapper das Kind auf andere Weise startet, leiten Sie die vollständige Umgebung weiter.

45 47 

48`CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` und `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` erreichen Ihren Wrapper oder [`command`-Hook](#command). Sie erreichen auch das, was die Sitzung ausführt, etwa Shell-Befehle, Git-Hooks und Claude Code-Hooks. Die Hooks `checkout`, `post-session` und `spawn-runner` erhalten sie nicht.

49 

50<h3 id="give-a-default-to-variables-that-can-be-unset">

51 Variablen, die nicht gesetzt sein können, mit einem Standardwert versehen

52</h3>

53 

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 

56Treffen Sie überall dort, wo eine Shell den Slack-Thread-Link expandiert, diese Vorkehrungen:

57 

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:-}"`.

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.

60 

46<h3 id="keep-stdin-and-file-descriptor-3-attached">61<h3 id="keep-stdin-and-file-descriptor-3-attached">

47 Halten Sie stdin und Dateideskriptor 3 angehängt62 Halten Sie stdin und Dateideskriptor 3 angehängt

48</h3>63</h3>

49 64 

50Stdin des Kindes ist der Steuerkanal des Runners. Token-Rotationen und Sitzungsend-Signale kommen darauf an. Der Runner öffnet auch eine Pipe auf Dateideskriptor 3 und liest die Aktivitätssignale des Kindes daraus, um Idle- und Startup-Timeouts zu steuern. Ein einfaches `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` bewahrt beide automatisch.65Stdin des Kindes ist der Steuerkanal des Runners. Token-Rotationen und Sitzungsend-Signale kommen darauf an. Der Runner öffnet auch eine Pipe auf Dateideskriptor 3 und liest die Aktivitätssignale des Kindes daraus, um Idle- und Startup-Timeouts zu steuern. Ein einfaches `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` bewahrt beide automatisch.

51 66 

52Wenn Ihr Wrapper das Kind mit einem bloßen `&` in den Hintergrund versetzt, trennt es stdin des Kindes: Die Sitzung sieht gesund aus, bis die Lebensdauer des anfänglichen OAuth-Tokens von etwa 30 Minuten abläuft, dann schlagen alle API-Aufrufe mit `401 authentication_error` fehl. Wenn Ihr Wrapper das Kind in den Hintergrund versetzen muss, zum Beispiel um eine Teardown-Falle am Leben zu erhalten, speichern Sie stdin auf Dateideskriptor 4 oder höher und hängen Sie ihn explizit wieder an:67Wenn Ihr Wrapper das Kind mit einem bloßen `&` in den Hintergrund versetzt, trennt es stdin des Kindes. Die Sitzung sieht gesund aus, bis die Lebensdauer des anfänglichen OAuth-Tokens von etwa 30 Minuten abläuft, und dann schlägt jeder API-Aufruf, der das Token verwendet, mit `401 authentication_error` fehl. Wenn Ihr Wrapper das Kind in den Hintergrund versetzen muss, zum Beispiel um eine Teardown-Falle am Leben zu erhalten, speichern Sie stdin auf Dateideskriptor 4 oder höher und hängen Sie ihn explizit wieder an:

53 68 

54```bash theme={null}69```bash theme={null}

55exec 4<&070exec 4<&0


59wait "$CHILD"74wait "$CHILD"

60```75```

61 76 

62Schließen oder verwenden Sie Dateideskriptor 3 im Wrapper nicht erneut. Das Umleiten von stdout und stderr des Kindes ist in Ordnung.77Sie können stdout des Kindes umleiten. Halten Sie Dateideskriptor 3 und stderr mit dem Runner verbunden:

78 

79* **Dateideskriptor 3**: überträgt die Aktivitätssignale des Kindes an den Runner. Schließen oder verwenden Sie ihn im Wrapper nicht erneut.

80* **stderr**: Wenn der Wrapper oder das Kind mit einem Wert ungleich Null endet, sendet der Runner die letzten Zeilen von stderr an die Sitzung und gibt sie in seinem eigenen Log aus. Der Benutzer der Sitzung sieht diese Zeilen, geben Sie daher keine Geheimnisse auf stderr aus und entfernen Sie `set -x`, bevor Sie den Wrapper bereitstellen. Wenn Sie stderr umleiten, laufen Sitzungen weiterhin, aber der Runner meldet einen Fehler nur mit dem Exit-Code.

63 81 

64<h3 id="pass-the-system-prompt-flags-through">82<h3 id="pass-the-system-prompt-flags-through">

65 System-Prompt-Flags durchreichen83 System-Prompt-Flags durchreichen


108 checkout126 checkout

109</h3>127</h3>

110 128 

111Wird einmal pro Repository anstelle des integrierten Klons und Abrufs des Runners ausgeführt. Verwenden Sie den Hook, um von einem Read-Through-Mirror zu klonen, einen Arbeitsbaum aus einem Archiv zu seeden oder Pro-Sitzungs-Git-Authentifizierung anzuwenden. Der Runner setzt diese Variablen und kann weitere `CLAUDE_RUNNER_`-Variablen setzen, die die Tabelle nicht aufführt:129Wird einmal pro Repository anstelle des integrierten Klons und Abrufs des Runners ausgeführt. Verwenden Sie den Hook, um von einem Read-Through-Mirror zu klonen, den Sie über HTTPS oder SSH erreichen, einen Working Tree aus einem Archiv zu seeden oder Pro-Sitzungs-Git-Authentifizierung anzuwenden. Der Runner setzt diese Variablen und kann weitere `CLAUDE_RUNNER_`-Variablen setzen, die die Tabelle nicht aufführt:

112 130 

113| Variable | Beschreibung |131| Variable | Beschreibung |

114| :- | :- |132| :- | :- |

115| `CLAUDE_RUNNER_REPO_URL` | Repository-URL zum Klonen, nachdem alle `--git-host-rewrite` und `--git-ssh-rewrite` angewendet wurden |133| `CLAUDE_RUNNER_REPO_URL` | Repository-URL zum Klonen, nachdem alle `--git-host-rewrite` und `--git-ssh-rewrite` angewendet wurden |

116| `CLAUDE_RUNNER_REPO_REF` | Revision zum Auschecken: Branch, Tag oder Commit-SHA, wie die Sitzung sie angefordert hat. Leer bedeutet den Standard-Branch des Repositorys. |134| `CLAUDE_RUNNER_REPO_REF` | Revision zum Auschecken, wie die Sitzung sie angefordert hat: ein Branch, Tag, Commit-SHA oder vollständiger Referenzname wie `refs/pull/<number>/head`. Leer bedeutet den Standard-Branch des Repositorys. |

117| `CLAUDE_RUNNER_CHECKOUT_PATH` | Absoluter Pfad, wo der Arbeitsbaum hinterlassen werden muss |135| `CLAUDE_RUNNER_CHECKOUT_PATH` | Absoluter Pfad, wo der Arbeitsbaum hinterlassen werden muss |

118| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...`, für Protokollierung und Korrelation |136| `CLAUDE_RUNNER_SESSION_ID` | Sitzungs-ID in der getaggten Form `session_...`, für Protokollierung und Korrelation |

119| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |137| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form |

120| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |138| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

121| `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. |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. |

122| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |140| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

123| `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. |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. |

124 142 

125Das Skript muss einen Arbeitsbaum bei `CLAUDE_RUNNER_CHECKOUT_PATH` hinterlassen, der bei der angeforderten Revision ausgecheckt ist. Detached HEAD ist in Ordnung; der Runner erstellt den Arbeitsbranch der Sitzung darauf. Der Runner überprüft danach, ob der Pfad eine `.git` enthält; wenn Ihr Hook eine Nicht-Git-Quelle wie Perforce oder ein entpacktes Tarball materialisiert, setzen Sie `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` in der Umgebung des Runners, um diese Überprüfung zu überspringen. Git-basierte Flows wie Arbeitsbranch-Erstellung und Pushing-Ergebnisse erfordern einen Git-Checkout, daher exportieren Sie Ergebnisse aus Nicht-Git-Bäumen mit einem [`post-session`-Hook](#post-session).143Das Skript muss einen Working Tree bei `CLAUDE_RUNNER_CHECKOUT_PATH` hinterlassen, der bei der angeforderten Revision ausgecheckt ist. Ein Detached HEAD funktioniert, weil der Runner den Arbeits-Branch der Sitzung darauf erstellt.

126 144 

127Der Runner übergibt keine Git-Anmeldedaten an den Hook. Stattdessen prägen Sie eine Pro-Sitzungs-Klone-Anmeldedaten aus der Identität der Sitzung: Überprüfen Sie `CLAUDE_CODE_SESSION_ACCESS_TOKEN` mit einer Standard-JWT-Bibliothek gegen den JWKS-Endpunkt unter `CLAUDE_RUNNER_API_BASE_URL`, wie in [Token von Ihrem Dienst überprüfen](/docs/de/self-hosted-environments-identity#verify-the-token-from-your-service) beschrieben, dann lassen Sie Ihren Anmeldedatendienst eine kurzlebige Klone-Anmeldedaten für die Identität im `act`-Anspruch des Tokens ausstellen. `CLAUDE_RUNNER_CLAUDE_BIN` ist nicht in der Checkout-Hook-Umgebung gesetzt, daher ist der Unterbefehl `decode-token` hier nicht verfügbar. Das Zurückfallen auf die Git-Authentifizierung, die der Host bereits hat, wie einen SSH-Agent, Anmeldedaten-Helper oder `.netrc`, ist auch eine Option.145Nachdem Ihr Hook zurückkehrt, überprüft der Runner, ob `CLAUDE_RUNNER_CHECKOUT_PATH` eine `.git` enthält. Wenn Ihr Hook eine Nicht-Git-Quelle wie Perforce oder ein entpacktes Tarball materialisiert, setzen Sie `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` in der Umgebung des Runners, um diese Überprüfung zu überspringen. Git-basierte Abläufe wie die Erstellung des Arbeits-Branches und das Pushen von Ergebnissen erfordern einen Git-Checkout, daher exportieren Sie Ergebnisse aus Nicht-Git-Bäumen mit einem [`post-session`-Hook](#post-session).

128 146 

129Wenn der Hook mit ungleich Null endet oder mit 0 endet, ohne einen verwendbaren Checkout hinterlassen zu haben, hängt das, was der Runner tut, vom Repository ab:147<h4 id="get-git-credentials-in-the-hook">

148 Git-Anmeldedaten im Hook beziehen

149</h4>

130 150 

131* **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.151Der Runner übergibt keine Git-Anmeldedaten an den Hook. Auch der Unterbefehl `decode-token` ist hier nicht verfügbar, weil `CLAUDE_RUNNER_CLAUDE_BIN` in der Checkout-Hook-Umgebung nicht gesetzt ist. Erzeugen Sie stattdessen Pro-Sitzungs-Klon-Anmeldedaten aus der Identität der Sitzung, oder greifen Sie auf die eigene Git-Authentifizierung des Hosts zurück:

132* **Ein Repository, das die Sitzung nur liest**, wie ein Repository, das zu einer laufenden Sitzung hinzugefügt wird: Der Runner protokolliert eine `[runner:warn]`-Zeile mit dem Fehlerdetail, postet einen `Skipped`-Schritt zur Sitzung, entfernt, was der Hook bei dem Checkout-Pfad hinterlassen hat, und fährt mit den verbleibenden Repositories fort. Wenn der Runner den Pfad nicht sofort entfernen kann, versucht er die Entfernung beim Sitzungsende erneut. Wenn das Überspringen die Sitzung ohne Repository verlässt, schlägt der Runner die Sitzung trotzdem fehl.

133 152 

134Vor v2.1.228 schlägt der Runner die Sitzung bei einem Hook-Fehler für jedes Repository fehl, daher schlägt ein Read-Only-Repository, das der Hook nicht bedienen konnte, die Sitzung erneut auf jedem frischen Runner fehl, auf dem die Sitzung fortgesetzt wurde.153* **Pro-Sitzungs-Klon-Anmeldedaten**: Überprüfen Sie `CLAUDE_CODE_SESSION_ACCESS_TOKEN` mit einer Standard-JWT-Bibliothek gegen den JWKS-Endpunkt unter `CLAUDE_RUNNER_API_BASE_URL`, wie in [Token von Ihrem Dienst überprüfen](/docs/de/self-hosted-environments-identity#verify-the-token-from-your-service) beschrieben. Lassen Sie dann Ihren Anmeldedatendienst kurzlebige Klon-Anmeldedaten für die Identität im `act`-Claim des Tokens ausstellen. Verknüpfen Sie diese Anmeldedaten mit `act.sub`, und setzen Sie `act.email` nicht voraus.

154* **Git-Authentifizierung des Hosts**: Verwenden Sie die Git-Authentifizierung, die der Host bereits hat, wie einen SSH-Agent, einen Anmeldedaten-Helper oder `.netrc`.

135 155 

136Der Runner entfernt den Checkout-Pfad nach dem Sitzungsende.156<h4 id="when-the-hook-fails">

157 Wenn der Hook fehlschlägt

158</h4>

159 

160Der Hook schlägt fehl, wenn er mit einem Wert ungleich Null endet oder mit 0 endet, ohne einen verwendbaren Checkout hinterlassen zu haben:

161 

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.

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.

164 

165Wenn der Hook erfolgreich ist, entfernt der Runner den Checkout-Pfad nach dem Sitzungsende.

137 166 

138<h3 id="post-session">167<h3 id="post-session">

139 post-session168 post-session


151| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Doppelpunkt-getrennte absolute Pfade der Arbeitsbäume der Sitzung. Leer für Null-Repo-Sitzungen. |180| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Doppelpunkt-getrennte absolute Pfade der Arbeitsbäume der Sitzung. Leer für Null-Repo-Sitzungen. |

152| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Pfad zum Debug-Protokoll der Sitzung, noch auf der Festplatte während der Hook-Ausführung |181| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Pfad zum Debug-Protokoll der Sitzung, noch auf der Festplatte während der Hook-Ausführung |

153| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |182| `CLAUDE_RUNNER_API_BASE_URL` | Anthropic-API-Basis-URL für Sitzungs-bezogene Aufrufe |

154| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app` oder `ios`. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat. Erfordert Claude Code v2.1.229 oder später. |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. |

155| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |184| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Das Sitzungs-Zugangstoken für Sitzungs-bezogene API-Aufrufe |

156| `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. |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. |

157 186 

158`CLAUDE_RUNNER_EXIT_REASON` nimmt einen von vier Werten an:187`CLAUDE_RUNNER_EXIT_REASON` nimmt einen von vier Werten an:

159 188 

160* `completed`: die Sitzung endete sauber. Der Claude Code-Prozess wurde normal beendet, oder die Sitzung wurde archiviert oder gelöscht, während sie noch lief.189* `completed`: Die Sitzung endete sauber. Der Claude Code-Prozess wurde normal beendet oder hat sich selbst beendet, nachdem die Sitzung archiviert oder gelöscht wurde.

161* `failed`: Der Claude Code-Prozess ist abgestürzt, oder das Setup ist nach dem Start fehlgeschlagen.190* `failed`: Der Claude Code-Prozess ist abgestürzt, oder das Setup ist nach dem Start fehlgeschlagen.

162* `interrupted`: Der Runner hat die Sitzung gestoppt. Er gab die Sitzung frei, um den Slot freizugeben, die Sitzung ist beim Startup abgelaufen, der Server hat die Sitzung von diesem Runner verschoben, der Runner wurde geleert, oder die Sitzung hat sein [`--kill-session-after-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags)-Limit überschritten.191* `interrupted`: Der Runner hat die Sitzung gestoppt, in einem dieser Fälle:

192 * Der Runner hat die Sitzung freigegeben, um den Slot freizumachen.

193 * Die Sitzung ist beim Start in ein Timeout gelaufen.

194 * Der Server hat die Sitzung von diesem Runner wegverschoben.

195 * Die Abfrage des Runners hat eine Archivierung oder Löschung bemerkt, bevor der Prozess beendet wurde.

196 * Der Runner wurde geleert.

197 * Die Sitzung hat ihr [`--kill-session-after-min`](/docs/de/self-hosted-environments-reference#runner-cli-flags)-Limit überschritten.

163* `abandoned`: reserviert für eine Sitzung, die ein anderer Runner beansprucht hat. Der Hook wird derzeit in diesem Fall nicht ausgelöst.198* `abandoned`: reserviert für eine Sitzung, die ein anderer Runner beansprucht hat. Der Hook wird derzeit in diesem Fall nicht ausgelöst.

164 199 

165Die [Sitzungs-Lifecycle-Zähler](/docs/de/self-hosted-environments-reference#session-lifecycle-counter-semantics) zählen eine Freigabe, ein Startup-Timeout und einen Server-Umzug als `completed` statt `interrupted`, weil der Runner den Slot sauber zurückgegeben hat. Erwarten Sie diesen Unterschied, wenn Sie Hook-Quittungen mit den Zählern vergleichen.200Wenn Sie Hook-Quittungen mit den [Sitzungs-Lifecycle-Zählern](/docs/de/self-hosted-environments-reference#session-lifecycle-counter-semantics) vergleichen, rechnen Sie damit, dass einige `interrupted`-Quittungen dort als `completed` gezählt werden. Die Zähler zählen eine Freigabe, ein Start-Timeout, eine Verschiebung durch den Server sowie eine Archivierung oder Löschung, die die Abfrage des Runners zuerst bemerkt hat, als `completed`, weil der Runner den Slot sauber zurückgegeben hat.

166 201 

167Der Exit-Status des Hooks beeinflusst niemals das Sitzungsergebnis; ein Fehler wird protokolliert und ignoriert. Der Runner wartet bis zu `--post-session-hook-timeout-sec`, standardmäßig 60 Sekunden, bei jedem Sitzungsende einschließlich Runner-Shutdown. Dieses Beispiel speichert ungespeicherte Arbeit in einem Rettungs-Branch:202Der Exit-Status des Hooks beeinflusst niemals das Sitzungsergebnis; ein Fehler wird protokolliert und ignoriert. Der Runner wartet bis zu `--post-session-hook-timeout-sec`, standardmäßig 60 Sekunden, bei jedem Sitzungsende einschließlich Runner-Shutdown. Dieses Beispiel speichert ungespeicherte Arbeit in einem Rettungs-Branch:

168 203 

169```bash theme={null}204```bash theme={null}

170#!/usr/bin/env bash205#!/usr/bin/env bash

171set -u206set -u

207export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

172IFS=':'208IFS=':'

173# -c-Überschreibungen schlagen Repo-lokale Einstellungen und verhindern, dass von der Sitzung209# -c-Überschreibungen schlagen Repo-lokale Einstellungen und verhindern, dass von der Sitzung

174# geschriebene fsmonitor-, Hook-Pfad- und gpg-program-Konfiguration Code mit den Berechtigungen210# geschriebene fsmonitor-, Hook-Pfad- und gpg-program-Konfiguration Code mit den Berechtigungen

175# des Hooks ausführt. -c commit.gpgsign=false lässt diese Rettungs-Commits unter211# des Hooks ausführt. -c commit.gpgsign=false lässt diese Rettungs-Commits unter

176# --configure-git außerdem unsigniert.212# --configure-git außerdem unsigniert.

177# Repo-lokale credential.helper und pushurl gelten weiterhin, und auf einem Runner213# Repo-lokale credential.helper und pushurl gelten weiterhin, und auf einem Runner

178# vor v2.1.280 auch core.sshCommand; wenn der Hook Anmeldedaten hält, die die214# vor v2.1.280 auch core.sshCommand; lesen Sie die Notiz unter dem Skript,

179# Sitzung nicht hatte, siehe die Notiz unter dem Skript.215# bevor Sie diesem Push Anmeldedaten geben.

180g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \216g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

181 -c commit.gpgsign=false "$@"; }217 -c commit.gpgsign=false "$@"; }

182for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do218for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do


188done224done

189```225```

190 226 

191Der Hook pusht mit den Git-Anmeldedaten, die in seiner eigenen Umgebung auf dem Runner-Host verfügbar sind. Unter der [Keine-Anmeldedaten-im-Image-Haltung](/docs/de/self-hosted-environments-deploy#configure-git), einschließlich wenn der integrierte Klon durch den Anthropic-Git-Proxy geht, gibt es keine, daher erzeugen Sie kurzlebige Push-Anmeldedaten innerhalb des Hooks, bevor Sie pushen: Tauschen Sie das Sitzungs-Token, das der Hook in `CLAUDE_CODE_SESSION_ACCESS_TOKEN` erhält, mit Ihrem eigenen Token-Dienst aus, und überprüfen Sie es, wie [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity) beschreibt. Wenn der Hook Anmeldedaten hält, die die Sitzung nicht hatte, ersetzen Sie `origin` durch eine vom Operator bereitgestellte URL und übergeben Sie `-c credential.helper=` plus Ihren eigenen Helper. [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks) beschreibt, was von der Sitzung geschriebene Konfiguration weiterhin beeinflussen kann.227Die Zeile `GIT_ALLOW_PROTOCOL` im Skript beschränkt Git auf HTTPS-, HTTP- und SSH-Remotes. Wenn die Umgebung des Runners bereits eine eigene, nicht leere `GIT_ALLOW_PROTOCOL`-Liste setzt, behält das Skript diese Liste bei.

228 

229Der Hook pusht mit den Git-Anmeldedaten, die in seiner eigenen Umgebung auf dem Runner-Host verfügbar sind. Unter der [Keine-Anmeldedaten-im-Image-Haltung](/docs/de/self-hosted-environments-deploy#configure-git), einschließlich wenn der integrierte Klon durch den Anthropic-Git-Proxy geht, gibt es keine, daher erzeugen Sie kurzlebige Push-Anmeldedaten innerhalb des Hooks, bevor Sie pushen: Tauschen Sie das Sitzungs-Token, das der Hook in `CLAUDE_CODE_SESSION_ACCESS_TOKEN` erhält, mit Ihrem eigenen Token-Dienst aus, und überprüfen Sie es, wie [Sitzungsidentität überprüfen](/docs/de/self-hosted-environments-identity) beschreibt.

230 

231Behandeln Sie alle Anmeldedaten, die Ihr Hook an Git übergibt, als Anmeldedaten, die eine Sitzung erlangen kann, und erzeugen Sie sie so, dass sie nicht mehr als diesen Push ausführen können. Git in Ihrem Hook liest Konfigurationsdateien, die eine Sitzung schreiben kann, und ein Anmeldedaten-Helper oder Filtertreiber, der in einer davon benannt ist, läuft mit den Berechtigungen Ihres Hooks. Einstellungen in diesen Dateien können außerdem ändern, wohin ein Push geht, unabhängig davon, welches Remote Sie angeben. Welche Git-Einstellungen der Runner in Ihrem Hook festlegt und welche er diesen Dateien überlässt, beschreibt [Git-Konfiguration innerhalb von Lifecycle-Hooks](#git-configuration-inside-lifecycle-hooks).

192 232 

193<h4 id="hook-timing-when-the-runner-releases-a-session">233<h4 id="hook-timing-when-the-runner-releases-a-session">

194 Hook-Timing, wenn der Runner eine Sitzung freigibt234 Hook-Timing, wenn der Runner eine Sitzung freigibt


232 272 

233Wird einmal pro Sitzung nach dem Checkout anstelle des integrierten Kind-Spawns ausgeführt. Der Hook erhält dieselbe Umgebung wie ein [Wrapper-Skript](#wrapper-scripts) und sollte auf dieselbe Weise in `"$CLAUDE_RUNNER_CLAUDE_BIN"` `exec` ausführen. Verwenden Sie den `command`-Hook, um alle Anpassungen in einem Hooks-Verzeichnis zu halten; verwenden Sie `--exec-path`, wenn der Wrapper anderswo lebt. Wenn `--exec-path` auch gesetzt ist, hat das Flag Vorrang und der `command`-Hook wird ignoriert.273Wird einmal pro Sitzung nach dem Checkout anstelle des integrierten Kind-Spawns ausgeführt. Der Hook erhält dieselbe Umgebung wie ein [Wrapper-Skript](#wrapper-scripts) und sollte auf dieselbe Weise in `"$CLAUDE_RUNNER_CLAUDE_BIN"` `exec` ausführen. Verwenden Sie den `command`-Hook, um alle Anpassungen in einem Hooks-Verzeichnis zu halten; verwenden Sie `--exec-path`, wenn der Wrapper anderswo lebt. Wenn `--exec-path` auch gesetzt ist, hat das Flag Vorrang und der `command`-Hook wird ignoriert.

234 274 

235Führen Sie immer die eigene Binärdatei des Runners aus, anstatt ein PATH-aufgelöstes `claude`; andernfalls besiegen Sie [Versions-Pinning](/docs/de/self-hosted-environments-deploy#pin-the-version).275Führen Sie immer mit `exec` die eigene Binärdatei des Runners aus, anstatt ein PATH-aufgelöstes `claude`; andernfalls umgehen Sie das [Versions-Pinning](/docs/de/self-hosted-environments-deploy#pin-the-version).

236 276 

237<h2 id="on-demand-runners">277<h2 id="on-demand-runners">

238 On-Demand-Runner278 On-Demand-Runner


264| `CLAUDE_RUNNER_ORDER_ID` | Undurchsichtiger Idempotenz-Schlüssel, eindeutig pro Spawn-Anfrage und sicher für Kubernetes-Ressourcennamen. Verwenden Sie nur die Order-ID als Dedup-Schlüssel Ihres Provisioners. |304| `CLAUDE_RUNNER_ORDER_ID` | Undurchsichtiger Idempotenz-Schlüssel, eindeutig pro Spawn-Anfrage und sicher für Kubernetes-Ressourcennamen. Verwenden Sie nur die Order-ID als Dedup-Schlüssel Ihres Provisioners. |

265| `CLAUDE_RUNNER_SESSION_ID` | Die Sitzung, für die diese Anfrage bestimmt ist. Sie wiederholt sich bei jeder Neuanfrage für die Sitzung, daher verwenden Sie sie für Protokollierung und Routing, nicht als Dedup-Schlüssel. Leer für Pre-Warming-Anfragen, die einen Standby-Runner im Voraus starten, bevor eine bestimmte Sitzung, wenn [`--min-idle`](/docs/de/self-hosted-environments-reference#orchestrator-cli-flags) gesetzt ist, daher nehmen Sie nicht an, dass die Variable gesetzt ist. |305| `CLAUDE_RUNNER_SESSION_ID` | Die Sitzung, für die diese Anfrage bestimmt ist. Sie wiederholt sich bei jeder Neuanfrage für die Sitzung, daher verwenden Sie sie für Protokollierung und Routing, nicht als Dedup-Schlüssel. Leer für Pre-Warming-Anfragen, die einen Standby-Runner im Voraus starten, bevor eine bestimmte Sitzung, wenn [`--min-idle`](/docs/de/self-hosted-environments-reference#orchestrator-cli-flags) gesetzt ist, daher nehmen Sie nicht an, dass die Variable gesetzt ist. |

266| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form. Leer für Pre-Warming-Anfragen. |306| `CLAUDE_RUNNER_SESSION_UUID` | Dieselbe Sitzungs-ID in kanonischer UUID-Form. Leer für Pre-Warming-Anfragen. |

267| `CLAUDE_RUNNER_ATTEMPT` | Wie viele Spawn-Anfragen diese Sitzung hatte. `0` für Pre-Warming-Anfragen. |307| `CLAUDE_RUNNER_ATTEMPT` | Ein Zähler pro Sitzung zur Verwendung in Logs. Er ist weder eine Anzahl von Wiederholungsversuchen noch eine Anzahl von Anfragen. `0` für Pre-Warming-Anfragen, wobei auch eine Anfrage für eine Sitzung `0` enthalten kann. |

268| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Server-Zeit aus dem HTTP-`Date`-Header der Poll-Antwort. Wenn der Hook das Arbeitsorder-JWT `exp` überprüft, vergleichen Sie gegen diesen Wert anstelle der lokalen Uhr, um Skew zu tolerieren. Leer, wenn das Gateway den Header weggelassen hat. |308| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Server-Zeit aus dem HTTP-`Date`-Header der Poll-Antwort. Wenn der Hook das Arbeitsorder-JWT `exp` überprüft, vergleichen Sie gegen diesen Wert anstelle der lokalen Uhr, um Skew zu tolerieren. Leer, wenn das Gateway den Header weggelassen hat. |

269| `CLAUDE_RUNNER_POOL_ID` | Die ID der Umgebung, der der neue Runner beitreten sollte, in der Form `ccpool_...` |309| `CLAUDE_RUNNER_POOL_ID` | Die ID der Umgebung, der der neue Runner beitreten sollte, in der Form `ccpool_...` |

270| `CLAUDE_RUNNER_ACCOUNT_ID` | Getaggte ID des Kontos, das die Sitzung in die Warteschlange eingereiht hat, für Pro-Konto-Routing, Kontingent oder Chargeback. Leer, wenn nicht verfügbar, und immer leer für Claude Tag-Kanal-Sitzungen, die kein Konto einreiht. |310| `CLAUDE_RUNNER_ACCOUNT_ID` | Getaggte ID des Kontos, das die Sitzung in die Warteschlange eingereiht hat, für Pro-Konto-Routing, Kontingent oder Chargeback. Leer, wenn nicht verfügbar, und immer leer für Claude Tag-Kanal-Sitzungen, die kein Konto einreiht. |

271| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | E-Mail des Kontos, das die Sitzung in die Warteschlange eingereiht hat. Leer, wenn nicht verfügbar. Behandeln Sie die E-Mail als personenbezogene Informationen und protokollieren Sie sie nicht. |311| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | E-Mail des Kontos, das die Sitzung in die Warteschlange eingereiht hat. Leer, wenn nicht verfügbar. Behandeln Sie die E-Mail als personenbezogene Informationen und protokollieren Sie sie nicht. |

272| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | URL der ersten Git-Quelle der Sitzung, für Routing zu einem Runner mit diesem Repository pre-warmed. Leer, wenn die Sitzung keine Git-Quellen hat. |312| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | URL der ersten Git-Quelle der Sitzung, für Routing zu einem Runner mit diesem Repository pre-warmed. Leer, wenn die Sitzung keine Git-Quellen hat. |

273| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | Revision der ersten Git-Quelle der Sitzung: Branch, SHA oder Tag. Leer, wenn nicht angegeben. |313| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | Revision der ersten Git-Quelle der Sitzung: Branch, SHA, Tag oder vollständiger Referenzname. Leer, wenn nicht angegeben. |

274| `CLAUDE_RUNNER_REPO_SOURCES` | JSON-Array von `{url, revision}` für alle Git-Quellen der Sitzung, für Hooks, die auf einem sekundären Repository routen. Leer, wenn es keine Quellen gibt. |314| `CLAUDE_RUNNER_REPO_SOURCES` | JSON-Array von `{url, revision}` für alle Git-Quellen der Sitzung, für Hooks, die auf einem sekundären Repository routen. Leer, wenn es keine Quellen gibt. |

275| `CLAUDE_RUNNER_CORRELATION_ID` | Die Korrelations-ID, die bei der Sitzungserstellung bereitgestellt wurde, echoed zurück, damit der Hook diese Arbeitsorder der Anfrage zuordnen kann, die die Sitzung erstellt hat. Leer, wenn die Sitzung keine hat. |315| `CLAUDE_RUNNER_CORRELATION_ID` | Die Korrelations-ID, die bei der Sitzungserstellung bereitgestellt wurde, echoed zurück, damit der Hook diese Arbeitsorder der Anfrage zuordnen kann, die die Sitzung erstellt hat. Leer, wenn die Sitzung keine hat. |

276| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios` oder `scheduled_trigger`, für Adoptionsanalysen. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat, und für Pre-Warming-Anfragen; überprüfen Sie sie mit `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, was unter `set -u` sicher bleibt. |316| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Die Client-Oberfläche, die die Sitzung erstellt hat, wie `web_claude_ai`, `desktop_app`, `ios` oder `scheduled_trigger`, für Adoptionsanalysen. Nicht gesetzt, wenn die Sitzung keine aufgezeichnete oder erkannte Oberfläche hat, und für Pre-Warming-Anfragen; überprüfen Sie sie mit `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, was unter `set -u` sicher bleibt. |


282* **Verwenden Sie `--capacity 1` auf gespawten Runnern**: Eine Sitzungs-gebundene Arbeitsorder registriert genau einen Runner, der an diese Sitzung gebunden ist, daher fügt eine höhere Kapazität Slots hinzu, die niemals Arbeit erhalten, und der Runner protokolliert eine Warnung beim Startup.322* **Verwenden Sie `--capacity 1` auf gespawten Runnern**: Eine Sitzungs-gebundene Arbeitsorder registriert genau einen Runner, der an diese Sitzung gebunden ist, daher fügt eine höhere Kapazität Slots hinzu, die niemals Arbeit erhalten, und der Runner protokolliert eine Warnung beim Startup.

283* **Pre-Warming-Arbeitsorder registrieren ungebunden**: Der Standby-Runner ist nicht an eine Sitzung gebunden und beansprucht in der Warteschlange befindliche Arbeit wie ein Fixed-Fleet-Runner.323* **Pre-Warming-Arbeitsorder registrieren ungebunden**: Der Standby-Runner ist nicht an eine Sitzung gebunden und beansprucht in der Warteschlange befindliche Arbeit wie ein Fixed-Fleet-Runner.

284 324 

285Der Vertrag hat vier Provisioner-agnostische Regeln:325Der Vertrag hat vier Regeln, unabhängig davon, auf welcher Plattform Ihr Hook provisioniert:

286 326 

2871. **Seien Sie idempotent auf `CLAUDE_RUNNER_ORDER_ID`.** Neulieferung derselben Anfrage muss höchstens einen Runner spawnen. Leiten Sie einen deterministischen Ressourcennamen von der Order-ID ab und lassen Sie Ihre Plattform das Duplikat ablehnen. Keying Sie nicht auf `CLAUDE_RUNNER_SESSION_ID` stattdessen. Jede Neuanfrage für eine Sitzung trägt dieselbe Sitzungs-ID mit einer neuen Order-ID, daher wird eine Workload, die nach der Sitzungs-ID benannt oder dedupliziert ist, einmal erstellt und nie wieder für diese Sitzung.3271. **Seien Sie idempotent auf `CLAUDE_RUNNER_ORDER_ID`.** Neulieferung derselben Anfrage muss höchstens einen Runner spawnen. Leiten Sie einen deterministischen Ressourcennamen von der Order-ID ab und lassen Sie Ihre Plattform das Duplikat ablehnen. Keying Sie nicht auf `CLAUDE_RUNNER_SESSION_ID` stattdessen. Jede Neuanfrage für eine Sitzung trägt dieselbe Sitzungs-ID mit einer neuen Order-ID, daher wird eine Workload, die nach der Sitzungs-ID benannt oder dedupliziert ist, einmal erstellt und nie wieder für diese Sitzung.

2882. **Versuchen Sie nicht, die Workload erneut zu versuchen.** Eine Order-ID bedeutet höchstens eine erstellte Workload. Wenn sich der Runner nie registriert, fordert Anthropic nach `--expected-spawn-seconds` mit einer frischen Order-ID erneut an.3282. **Versuchen Sie nicht, die Workload erneut zu versuchen.** Eine Order-ID bedeutet höchstens eine erstellte Workload. Wenn sich der Runner nie registriert, fordert Anthropic nach `--expected-spawn-seconds` mit einer frischen Order-ID erneut an.

2893. **Verwenden Sie den Exit-Code-Vertrag.** Exit 0 bedeutet eingereicht. Exit 1 bedeutet wiederholbarer Fehler; die Sitzung sichert sich ab und wird erneut angeboten. Exit 2 oder höher bedeutet nicht wiederholbar; die Sitzung wird blockiert, bis ein [Owner](/docs/de/cloud-environments#organization-shared-environments) auf der Registerkarte **Aktivität** der Umgebung **Erneut versuchen** auswählt. Bei Nicht-Null-Exit erscheint das Ende des Stderr des Hooks dort als Fehlergrund, daher schreiben Sie den umsetzbaren Fehler auf stderr und niemals Geheimnisse. Für eine Pre-Warming-Anfrage gibt es keine Sitzung zum Fehlschlag: Der Orchestrator protokolliert einen Nicht-Null-Exit lokal nur, und der Server fordert den Spawn nach dem Lease erneut an.3293. **Verwenden Sie den Exit-Code-Vertrag.** Beenden Sie den Hook mit dem Status, der dem Ergebnis entspricht:

2904. **Setzen Sie `--expected-spawn-seconds` auf mindestens Ihre p99-Boot-Zeit.** Dies ist das serverseitige Lease. Alle Orchestrator-Replikas müssen denselben Wert verwenden.330 

331 * **Exit 0**: eingereicht.

332 * **Exit 1**: 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.

334 

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).

336 

337 Eine Pre-Warming-Anfrage hat keine Sitzung, die fehlschlagen kann: Der Orchestrator protokolliert einen Exit ungleich null nur lokal, und der Server fordert den Spawn erneut an, nachdem das Lease von `--expected-spawn-seconds` abgelaufen ist.

3384. **Setzen Sie `--expected-spawn-seconds` auf mindestens Ihre p99-Zeit von der Spawn-Anfrage bis zur Runner-Registrierung.** Messen Sie ab dem Zeitpunkt, an dem der Orchestrator die Spawn-Anfrage erhält, und beziehen Sie jede Wartezeit auf Kapazität auf Ihrer Plattform sowie die Boot-Zeit ein. Dieser Wert ist das serverseitige Lease, und die Arbeitsorder läuft mit ihm ab, sodass sich ein Runner, dessen Workload länger braucht, nicht registrieren kann. Alle Orchestrator-Replikas müssen denselben Wert verwenden.

291 339 

292Alles, was der Hook auf stdout oder stderr schreibt, erscheint im Protokoll des Orchestrators mit automatisch redigierten Anmeldedaten. Wenn Sitzungen in der Warteschlange bleiben, überprüfen Sie den `/healthz`-Body des Orchestrators auf Warteschlangen-Zählungen, öffnen Sie dann die Registerkarte **Aktivität** Ihrer Umgebung auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments): Erweitern Sie eine fehlgeschlagene Sitzung dort für ihren Spawn-Fehler und wählen Sie **Erneut versuchen**, um sie erneut anzufordern.340Alles, was der Hook auf stdout oder stderr schreibt, erscheint im Protokoll des Orchestrators mit automatisch redigierten Anmeldedaten. Wenn Sitzungen in der Warteschlange bleiben, überprüfen Sie den `/healthz`-Body des Orchestrators auf Warteschlangen-Zählungen, öffnen Sie dann die Registerkarte **Aktivität** Ihrer Umgebung auf der [**Cloud-Umgebungen**-Administratorseite](https://claude.ai/admin-settings/cloud-environments): Erweitern Sie eine fehlgeschlagene Sitzung dort für ihren Spawn-Fehler und wählen Sie **Erneut versuchen**, um sie erneut anzufordern.

293 341 

294Eine 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.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.

295 343 

344<h4 id="keep-transient-failures-retryable-in-a-shell-hook">

345 Vorübergehende Fehler in einem Shell-Hook wiederholbar halten

346</h4>

347 

348In einem Shell-Hook, der `set -e` verwendet, kann ein Fehler, den ein Wiederholungsversuch hätte beheben können, die Sitzung blockieren. Der Hook stoppt beim fehlschlagenden Befehl und endet mit dem eigenen Status dieses Befehls, und der Orchestrator wendet den Exit-Code-Vertrag auf diesen Status an. Viele Fehler geben einen Status von 2 oder höher zurück, etwa `127`, wenn ein Befehl nicht installiert ist, und `22` von `curl --fail` bei einem HTTP-Fehler, sodass sie die Sitzung bereits beim ersten Fehler blockieren.

349 

350Eine Sitzung, die der Hook bereits blockiert hat, bleibt 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.

351 

352Um einen solchen Fehler stattdessen in Exit 1 umzuwandeln, fügen Sie diese Zeilen direkt unter der `#!`-Zeile des Hooks ein, oberhalb von allem, was fehlschlagen kann:

353 

354```bash theme={null}

355set -e

356PERMANENT=; permanent() { printf '%s\n' "$*" >&2; PERMANENT=1; exit 2; }

357trap 'rc=$?; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

358```

359 

360Diese Zeilen ändern das Verhalten des restlichen Hooks; prüfen Sie ihn daher nach dem Einfügen auf jedes dieser Muster:

361 

362* **Einfaches `exit 2` oder höher**: Mit gesetztem Trap wird daraus Exit 1. Rufen Sie für einen Fehler, den kein Wiederholungsversuch beheben kann, stattdessen `permanent` mit dem Grund auf, etwa `permanent "namespace claude-runners does not exist"`. Rufen Sie es in der Haupt-Shell auf, nicht innerhalb von `$( )`, `( )` oder einer Pipe.

363* **`exec`**: Beginnen Sie den letzten Befehl des Hooks nicht mit `exec`, da `exec` die Shell ersetzt und der Trap nicht ausgeführt wird.

364* **Zweiter `EXIT`-Trap**: Ein zweiter `trap ... EXIT` ersetzt den ersten; führen Sie die beiden daher zu einem einzigen Trap zusammen. Setzen Sie Ihre Bereinigungsbefehle direkt hinter `rc=$?;` und beenden Sie jeden mit `|| true;`. Die Bereinigung läuft dann sowohl bei Fehlern als auch bei Erfolg, und ein fehlschlagender Bereinigungsbefehl setzt nicht den Exit-Status des Hooks. Dieser zusammengeführte Trap zeigt die Form, wobei `your-cleanup-command` für Ihren eigenen Befehl steht:

365 

366 ```bash theme={null}

367 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

368 ```

369* **Befehle, die fehlschlagen dürfen**: Wenn der Hook zuvor kein `set -e` verwendet hat, stoppt er jetzt beim ersten Befehl, der einen Wert ungleich null zurückgibt, etwa bei einer Suche ohne Ergebnis oder einer doppelten Einreichung, die Ihre Plattform ablehnt. Wenn der Hook auf das Ergebnis reagiert, machen Sie diesen Befehl zur Bedingung eines `if`. Wenn er das Ergebnis ignoriert, hängen Sie `|| true` an den Befehl an.

370 

371Um zu bestätigen, dass der Trap funktioniert, fügen Sie direkt unter der `trap`-Zeile eine Zeile ein, die einen nicht existierenden Befehl aufruft, etwa `no-such-command`. Führen Sie die Hook-Datei aus Ihrer Shell aus und prüfen Sie, dass `echo $?` den Wert `1` ausgibt; entfernen Sie die Zeile anschließend.

372 

296<h2 id="send-model-requests-to-bedrock-or-agent-platform">373<h2 id="send-model-requests-to-bedrock-or-agent-platform">

297 Modellanfragen an Bedrock oder Agent Platform senden374 Modellanfragen an Bedrock oder Agent Platform senden

298</h2>375</h2>


381Eine Sitzung, die Modellanfragen an Amazon Bedrock oder Google Cloud's Agent Platform sendet, unterscheidet sich auf folgende Weise von einer Sitzung über die Anthropic API:458Eine Sitzung, die Modellanfragen an Amazon Bedrock oder Google Cloud's Agent Platform sendet, unterscheidet sich auf folgende Weise von einer Sitzung über die Anthropic API:

382 459 

383* **Richtlinien aus claude.ai**: [Serververwaltete Einstellungen](/docs/de/server-managed-settings) erreichen diese Sitzungen nicht. Ebenso wenig die Organisationsrichtlinien, die ein Owner in den Claude Code Admin-Einstellungen festlegt, daher setzt Claude Code sie innerhalb der Sitzung nicht durch. Legen Sie die Regeln, auf die Sie sich verlassen, in der [Datei für verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) des Runner-Images ab.460* **Richtlinien aus claude.ai**: [Serververwaltete Einstellungen](/docs/de/server-managed-settings) erreichen diese Sitzungen nicht. Ebenso wenig die Organisationsrichtlinien, die ein Owner in den Claude Code Admin-Einstellungen festlegt, daher setzt Claude Code sie innerhalb der Sitzung nicht durch. Legen Sie die Regeln, auf die Sie sich verlassen, in der [Datei für verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) des Runner-Images ab.

461* **Konto-Skills**: Diese Sitzungen laden die Skills, die für das claude.ai-Konto einer Person aktiviert sind, nicht herunter. Siehe [Wie die Konfiguration jeder Sitzung zusammengestellt wird](#how-each-session’s-config-is-assembled).

384* **Dateien**: Dateien, die Personen in claude.ai oder der mobilen oder Desktop-App an eine Sitzung anhängen, erreichen diese nicht, und Claude kann mit dem [`SendUserFile`-Tool](/docs/de/tools-reference) keine Dateien zurücksenden. Legen Sie Eingabedateien stattdessen im Repository oder auf dem Runner ab.462* **Dateien**: Dateien, die Personen in claude.ai oder der mobilen oder Desktop-App an eine Sitzung anhängen, erreichen diese nicht, und Claude kann mit dem [`SendUserFile`-Tool](/docs/de/tools-reference) keine Dateien zurücksenden. Legen Sie Eingabedateien stattdessen im Repository oder auf dem Runner ab.

385* **Modellauswahl**: Die Control Plane von Anthropic sendet das Modell jeder Sitzung, und wenn eine Sitzung ohne Modell startet, verwendet Claude Code seinen Standard für den Anbieter. Der Runner entfernt `ANTHROPIC_MODEL` und `ANTHROPIC_DEFAULT_MODEL` aus der Umgebung, die er an Sitzungen übergibt. Die Beispiele auf den Anbieterseiten setzen `ANTHROPIC_MODEL`, aber in der Umgebung des Runners hat keine der beiden Variablen eine Wirkung. Die familienspezifischen Variablen unter „Modellversionen festlegen“ für [Amazon Bedrock](/docs/de/amazon-bedrock#4-pin-model-versions) und [Agent Platform](/docs/de/google-vertex-ai#5-pin-model-versions) erreichen Sitzungen hingegen. Sie bestimmen, worauf ein Alias wie `opus` aufgelöst wird, nicht, worauf eine vollständige Modell-ID aufgelöst wird.463* **Modellauswahl**: Die Control Plane von Anthropic sendet das Modell jeder Sitzung, und wenn eine Sitzung ohne Modell startet, verwendet Claude Code seinen Standard für den Anbieter. Sie können das Modell nicht mit `ANTHROPIC_MODEL` oder `ANTHROPIC_DEFAULT_MODEL` in der Umgebung des Runners auswählen, aber Sie können festlegen, worauf ein Alias aufgelöst wird:

464 * **`ANTHROPIC_MODEL` und `ANTHROPIC_DEFAULT_MODEL`**: Der Runner entfernt sie aus der Umgebung, die er an Sitzungen übergibt, obwohl die Beispiele auf den Anbieterseiten `ANTHROPIC_MODEL` setzen.

465 * **Familienspezifische Variablen zum Festlegen von Versionen**: Die Variablen unter „Modellversionen festlegen“ für [Amazon Bedrock](/docs/de/amazon-bedrock#4-pin-model-versions) und [Agent Platform](/docs/de/google-vertex-ai#5-pin-model-versions) erreichen Sitzungen hingegen. Sie bestimmen, worauf ein Alias wie `opus` aufgelöst wird, nicht, worauf eine vollständige Modell-ID aufgelöst wird.

386* **Modelle, die Ihr Konto nicht bereitstellt**: Eine Sitzung kann bei einer Nachricht mit einem Fehler fehlschlagen, der das Modell nennt. Aktivieren Sie die Modelle, die Ihre Entwickler auswählen können, das unter „Modellversionen festlegen“ beschriebene Hintergrundmodell sowie das Klassifikatormodell, das der [Auto-Modus](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) verwendet. Lassen Sie bei Amazon Bedrock jedes davon in Ihrer Richtlinie zu.466* **Modelle, die Ihr Konto nicht bereitstellt**: Eine Sitzung kann bei einer Nachricht mit einem Fehler fehlschlagen, der das Modell nennt. Aktivieren Sie die Modelle, die Ihre Entwickler auswählen können, das unter „Modellversionen festlegen“ beschriebene Hintergrundmodell sowie das Klassifikatormodell, das der [Auto-Modus](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) verwendet. Lassen Sie bei Amazon Bedrock jedes davon in Ihrer Richtlinie zu.

387* **Websuche und Fast-Modus**: Die [Websuche](/docs/de/tools-reference#websearch-tool-behavior) ist auf Amazon Bedrock nicht verfügbar, und der [Fast-Modus](/docs/de/fast-mode) ist bei keinem der beiden Anbieter verfügbar. Weitere Funktionen, die sich je nach Anbieter unterscheiden, finden Sie unter [CLI-Funktionen, die je nach Anbieter variieren](/docs/de/feature-availability#cli-capabilities-that-vary-by-provider).467* **Websuche und Fast-Modus**: Die [Websuche](/docs/de/tools-reference#websearch-tool-behavior) ist auf Amazon Bedrock nicht verfügbar, und der [Fast-Modus](/docs/de/fast-mode) ist bei keinem der beiden Anbieter verfügbar. Weitere Funktionen, die sich je nach Anbieter unterscheiden, finden Sie unter [CLI-Funktionen, die je nach Anbieter variieren](/docs/de/feature-availability#cli-capabilities-that-vary-by-provider).

388 468 


411 491 

412Sitzungen erben die Umgebung des Runners. Setzen Sie daher [`ENABLE_TOOL_SEARCH`](/docs/de/mcp#scale-with-mcp-tool-search) dort, um MCP Tool Search für jede Sitzung zu steuern, die ein Runner startet; die MCP-Seite beschreibt die möglichen Werte.492Sitzungen erben die Umgebung des Runners. Setzen Sie daher [`ENABLE_TOOL_SEARCH`](/docs/de/mcp#scale-with-mcp-tool-search) dort, um MCP Tool Search für jede Sitzung zu steuern, die ein Runner startet; die MCP-Seite beschreibt die möglichen Werte.

413 493 

494<a id="connection-timing" />

495 

496<h3 id="wait-for-mcp-servers-before-the-first-turn">

497 Vor dem ersten Turn auf MCP-Server warten

498</h3>

499 

500Eine selbst gehostete Sitzung wartet an zwei separaten Stellen kurz auf MCP-Server, die noch eine Verbindung herstellen. Bei einem Server, der eine Wartezeit verpasst, fehlen die Tools, wenn der erste Turn beginnt; sie werden später ohne Ihr Zutun verfügbar. Die beiden Wartezeiten sind:

501 

502* **Sitzungsstart**: Bevor die Tool-Liste zum ersten Mal erfasst wird, wartet die Sitzung standardmäßig bis zu 5 Sekunden auf einen HTTP- oder SSE-Server, dessen Eintrag [`alwaysLoad: true`](/docs/de/mcp#exempt-a-server-from-deferral) setzt, oder auf alle Server, wenn Sie [`MCP_CONNECTION_NONBLOCKING=0`](/docs/de/env-vars) in der Umgebung des Runners setzen. HTTP- und SSE-Server stellen die Verbindung ansonsten im Hintergrund her. Während die Sitzung hier wartet, dauert ihre Initialisierung länger. [`MCP_CONNECT_TIMEOUT_MS`](/docs/de/env-vars) ändert den Standardwert von 5 Sekunden.

503* **Erster Turn**: Nachdem die Nachricht eingetroffen ist, wartet der erste Turn bis zu 2 Sekunden auf stdio-Server, die noch eine Verbindung herstellen. Während die Sitzung hier wartet, kommt die erste Antwort langsamer. Um die Dauer dieser Wartezeit zu ändern, setzen Sie [`CLAUDE_CODE_MCP_STARTUP_WAIT_MS`](/docs/de/env-vars) in der Umgebung des Runners. Dies ändert nicht, welche Server die Wartezeit abdeckt. Erfordert Claude Code v2.1.274 oder neuer.

504 

505`claude mcp add` hat kein Flag `alwaysLoad`. Um den Schlüssel zu setzen, fügen Sie den Server stattdessen mit `claude mcp add-json` hinzu; dieser Befehl übernimmt den Schlüssel im JSON des Servers und schreibt ihn in `.claude.json`. In Ihrem Dockerfile:

506 

507```dockerfile theme={null}

508RUN claude mcp add-json core '{"type":"http","url":"https://mcp.example.com/mcp","alwaysLoad":true}' --scope user

509```

510 

511Wenn die Tools eines Servers auch in späteren Turns nicht erscheinen, prüfen Sie, ob der Server die Sitzung überhaupt erreicht hat, wie unter [MCP-Server](#mcp-servers) beschrieben.

512 

414<h3 id="turn-off-built-in-session-tools">513<h3 id="turn-off-built-in-session-tools">

415 Integrierte Sitzungstools ausschalten514 Integrierte Sitzungstools ausschalten

416</h3>515</h3>


571 670 

572Setzen Sie `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR`, um von einem anderen Pfad zu befüllen, oder lassen Sie die Variable auf ein leeres Verzeichnis zeigen, um das Befüllen zu deaktivieren.671Setzen Sie `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR`, um von einem anderen Pfad zu befüllen, oder lassen Sie die Variable auf ein leeres Verzeichnis zeigen, um das Befüllen zu deaktivieren.

573 672 

574Eine im Repository committete `.claude/settings.json` wird als Projekteinstellungen darübergelegt. In einer Sitzung mit mehreren Repositorys [wird höchstens die Datei eines einzigen Repositorys wirksam](#repository-settings-in-sessions-with-several-repositories). Sitzungen lesen außerdem [`managed-settings.json`](/docs/de/settings#where-settings-live) aus dem standardmäßigen Systempfad in Ihrem Runner-Image. Ob deren Schlüssel neben [serververwalteten Einstellungen](/docs/de/server-managed-settings) gelten, richtet sich danach, [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources): Wenn Ihre Organisation serververwaltete Schlüssel bereitstellt, ignorieren Sitzungen standardmäßig die Datei des Runner-Images, abgesehen von den [Schlüsseln, die Claude Code aus jeder Admin-Quelle liest](/docs/de/managed-settings#keys-read-from-every-admin-source), etwa dem `env`-Block, den Sandbox-Sperren, den Pfaden zu den Sandbox-Binärdateien und `forceRemoteSettingsRefresh`. Siehe [Vorrang der Einstellungen](/docs/de/settings#settings-precedence).673Sitzungen lesen außerdem diese Einstellungsdateien:

674 

675* **Projekteinstellungen**: Eine im Repository committete `.claude/settings.json` wird über die Basis auf Benutzerebene gelegt. In einer Sitzung mit mehreren Repositorys [wird höchstens die Datei eines einzigen Repositorys wirksam](#repository-settings-in-sessions-with-several-repositories).

676* **Verwaltete Einstellungen**: Sitzungen lesen [`managed-settings.json`](/docs/de/settings#where-settings-live) aus dem standardmäßigen Systempfad in Ihrem Runner-Image. Ob deren Schlüssel neben [serververwalteten Einstellungen](/docs/de/server-managed-settings) gelten, erfahren Sie unter [wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#how-claude-code-combines-managed-sources).

677 

678In welcher Reihenfolge diese Quellen angewendet werden, erfahren Sie unter [Vorrang der Einstellungen](/docs/de/settings#settings-precedence).

575 679 

576Wenn die Steuerungsebene von Anthropic eine Sitzung mit [Claude Code-Hooks](/docs/de/hooks) versorgt, installiert der Runner diese neben Ihrer eigenen Konfiguration, nicht an deren Stelle. Erfordert Claude Code v2.1.229 oder höher.680Wenn die Steuerungsebene von Anthropic eine Sitzung mit [Claude Code-Hooks](/docs/de/hooks) versorgt, installiert der Runner diese neben Ihrer eigenen Konfiguration, nicht an deren Stelle. Erfordert Claude Code v2.1.229 oder höher.

577 681 


579* **Wer sie erstellt**: Die Steuerungsebene füllt die Skripte aus festen Konstanten in ihrem eigenen Deployment, niemals aus sitzungsspezifischen Eingaben oder Eingaben von Drittanbietern.683* **Wer sie erstellt**: Die Steuerungsebene füllt die Skripte aus festen Konstanten in ihrem eigenen Deployment, niemals aus sitzungsspezifischen Eingaben oder Eingaben von Drittanbietern.

580* **Was weiterhin für sie gilt**: Hooks, die über `--settings` bereitgestellt werden, gehen in die gewöhnliche zusammengeführte Hook-Konfiguration ein, nicht in die verwaltete Ebene, sodass Ihre verwalteten Einstellungen weiterhin gelten. `disableAllHooks` deaktiviert sie, und sie gehören nicht zu den Kategorien, die [`allowManagedHooksOnly`](/docs/de/settings-reference#allowmanagedhooksonly) geladen lässt.684* **Was weiterhin für sie gilt**: Hooks, die über `--settings` bereitgestellt werden, gehen in die gewöhnliche zusammengeführte Hook-Konfiguration ein, nicht in die verwaltete Ebene, sodass Ihre verwalteten Einstellungen weiterhin gelten. `disableAllHooks` deaktiviert sie, und sie gehören nicht zu den Kategorien, die [`allowManagedHooksOnly`](/docs/de/settings-reference#allowmanagedhooksonly) geladen lässt.

581 685 

686Wenn eine Person ihre eigene Sitzung startet, lädt Claude Code außerdem die [für ihr claude.ai-Konto aktivierten Skills](/docs/de/skills#skills-in-cowork-and-cloud-sessions) in das Konfigurationsverzeichnis dieser Sitzung herunter. Die Ausführung einer [Routine](/docs/de/routines) erhält nicht die Skills ihres Eigentümers, und eine Sitzung, die [Modellanfragen an Bedrock oder Agent Platform sendet](#send-model-requests-to-bedrock-or-agent-platform), lädt keine herunter. Für einen Skill, den diese Sitzungen benötigen, committen Sie ihn in das Verzeichnis `.claude/skills/` des Repositorys oder fügen Sie ihn Ihrem Runner-Image hinzu.

687 

582Außerhalb von [Claude Tag](https://claude.com/docs/claude-tag/overview)-Sitzungen läuft eine Sitzung in einer selbstgehosteten Umgebung standardmäßig mit ausgeschaltetem [Auto-Memory](/docs/de/memory#auto-memory). Für Anweisungen, die über Sitzungen hinweg erhalten bleiben sollen, verwenden Sie die `CLAUDE.md` in Ihrem Runner-Image oder im Repository.688Außerhalb von [Claude Tag](https://claude.com/docs/claude-tag/overview)-Sitzungen läuft eine Sitzung in einer selbstgehosteten Umgebung standardmäßig mit ausgeschaltetem [Auto-Memory](/docs/de/memory#auto-memory). Für Anweisungen, die über Sitzungen hinweg erhalten bleiben sollen, verwenden Sie die `CLAUDE.md` in Ihrem Runner-Image oder im Repository.

583 689 

584Der Snapshot, den der Runner vom `~/.claude/` des Hosts erstellt, lässt das Verzeichnis `projects/` aus. Der standardmäßige Speicherort von Auto-Memory liegt unterhalb dieses Verzeichnisses. Wenn Sie dort Memory-Dateien ablegen, übernimmt der Runner sie nicht in Sitzungen, und sie schalten Auto-Memory nicht ein.690Der Snapshot, den der Runner vom `~/.claude/` des Hosts erstellt, lässt das Verzeichnis `projects/` aus. Der standardmäßige Speicherort von Auto-Memory liegt unterhalb dieses Verzeichnisses. Wenn Sie dort Memory-Dateien ablegen, übernimmt der Runner sie nicht in Sitzungen, und sie schalten Auto-Memory nicht ein.

Details

20 20 

21* **Ephemere, sitzungsspezifische Container**: Führen Sie jeden Runner-Prozess in einem frischen Container oder einer VM aus, die zerstört wird, wenn der Prozess beendet wird, mit `--capacity 1` und dem Standard `--drain-grace-sec 0`, sodass jeder Container genau eine Sitzung bedient. Bei einer höheren Kapazität oder mit einer positiven Drain-Grace bedient ein Container mehrere Sitzungen vom selben [gesperrten Owner](/docs/de/self-hosted-environments#key-concepts); siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle). Verwenden Sie kein Dateisystem zwischen Runner-Neustarts wieder, außer in der absichtlichen [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout)-Einrichtung, und niemals über Owners hinweg.21* **Ephemere, sitzungsspezifische Container**: Führen Sie jeden Runner-Prozess in einem frischen Container oder einer VM aus, die zerstört wird, wenn der Prozess beendet wird, mit `--capacity 1` und dem Standard `--drain-grace-sec 0`, sodass jeder Container genau eine Sitzung bedient. Bei einer höheren Kapazität oder mit einer positiven Drain-Grace bedient ein Container mehrere Sitzungen vom selben [gesperrten Owner](/docs/de/self-hosted-environments#key-concepts); siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle). Verwenden Sie kein Dateisystem zwischen Runner-Neustarts wieder, außer in der absichtlichen [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout)-Einrichtung, und niemals über Owners hinweg.

22 * <span id="processes-a-stopped-session-leaves" />Wenn der Runner eine Sitzung beendet, sendet er kein Signal an einen Prozess, der nach dem Beenden seines Shell-Befehls noch läuft, etwa einen Dienst, der sich als Daemon abgelöst hat. Das Zerstören des Containers oder der VM beendet diesen Prozess.22 * <span id="processes-a-stopped-session-leaves" />Wenn der Runner eine Sitzung beendet, sendet er kein Signal an einen Prozess, der nach dem Beenden seines Shell-Befehls noch läuft, etwa einen Dienst, der sich als Daemon abgelöst hat. Das Zerstören des Containers oder der VM beendet diesen Prozess.

23* **Keine breiten Anmeldedaten im Image**: Fügen Sie keine langlebigen SSH-Schlüssel, Cloud-Provider-Anmeldedaten oder persönliche Zugriffstokens ein, die mehr gewähren als eine Sitzung benötigt. Erstellen Sie Anmeldedaten, die während einer Sitzung verwendet werden, wie Push- oder API-Tokens, pro Sitzung aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts). Für den anfänglichen Clone, der vor dem Ausführen des Wrappers stattfindet, verwenden Sie einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout) oder [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy); siehe [Git konfigurieren](#configure-git).23* **Keine breiten Anmeldedaten im Image**: Fügen Sie keine langlebigen SSH-Schlüssel, Cloud-Provider-Anmeldedaten oder persönliche Zugriffstokens ein, die mehr gewähren als eine Sitzung benötigt. Erstellen Sie Anmeldedaten, die während einer Sitzung verwendet werden, wie Push- oder API-Tokens, pro Sitzung aus Ihrem [Wrapper-Skript](/docs/de/self-hosted-environments-configuration#wrapper-scripts). Der anfängliche Clone findet statt, bevor der Wrapper ausgeführt wird. Verwenden Sie dafür daher einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout) oder [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), wenn alle Repositorys einer Sitzung auf github.com liegen. Zu beiden siehe [Git konfigurieren](#configure-git).

24* **Halten Sie die GitHub-Anmeldedaten des Hosts von Sitzungen fern**: Claude kann alle GitHub-Anmeldedaten verwenden, die eine Sitzung lesen kann, mit dem Zugriff, den diese Anmeldedaten gewähren. Halten Sie die eigenen, weit gefassten GitHub-Anmeldedaten des Runner-Hosts aus allem heraus, was eine Sitzung lesen kann. Solche Anmeldedaten können ein persönliches Zugriffstoken sein, das Token, das `gh auth login` für Ihr Konto speichert, oder ein `GH_TOKEN` in der Umgebung des Runners.

25 * **Mit [Anthropic-verwaltetem Git](#use-the-anthropic-git-proxy)**: Mit solchen Anmeldedaten erreicht Claude GitHub direkt statt über Anthropic-verwaltetes Git.

26 * **Ohne Anthropic-verwaltetes Git**: Clone-Anmeldedaten können im Image bleiben, wenn Sie sie so eng beschränken, wie in [Git-Konfiguration in Ihrem Image ausliefern](#ship-git-config-in-your-image) beschrieben.

24* **Halten Sie das Umgebungsgeheimnis von sitzungsausführenden Hosts fern**: Das Umgebungsgeheimnis kann Runner registrieren und jede Sitzung abholen, die in der Umgebung in die Warteschlange eingereiht ist. In einer festen Flotte lebt es auf jedem Runner-Host, wo jeder Sitzungscode das Geheimnisdatei lesen kann. Bevorzugen Sie [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners), bei denen das Geheimnis auf dem Orchestrator-Host bleibt, der niemals Benutzercode ausführt, und jeder Runner einen einmaligen Arbeitsauftrag erhält, der genau einen Runner registriert. Behandeln Sie in einer festen Flotte die Umgebungsgeheimnisdatei als von jeder Sitzung lesbar und rotieren Sie das Geheimnis nach jedem vermuteten Sitzungskompromiss.27* **Halten Sie das Umgebungsgeheimnis von sitzungsausführenden Hosts fern**: Das Umgebungsgeheimnis kann Runner registrieren und jede Sitzung abholen, die in der Umgebung in die Warteschlange eingereiht ist. In einer festen Flotte lebt es auf jedem Runner-Host, wo jeder Sitzungscode das Geheimnisdatei lesen kann. Bevorzugen Sie [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners), bei denen das Geheimnis auf dem Orchestrator-Host bleibt, der niemals Benutzercode ausführt, und jeder Runner einen einmaligen Arbeitsauftrag erhält, der genau einen Runner registriert. Behandeln Sie in einer festen Flotte die Umgebungsgeheimnisdatei als von jeder Sitzung lesbar und rotieren Sie das Geheimnis nach jedem vermuteten Sitzungskompromiss.

25* **Standard-Deny-Netzwerk-Egress**: Beschränken Sie den ausgehenden Datenverkehr von Runner- und Sitzungs-Containern an Ihrer eigenen Netzwerkgrenze in jeder Umgebung; [Standard-Deny-Egress](#default-deny-egress) behandelt, was erlaubt ist und warum.28* **Standard-Deny-Netzwerk-Egress**: Beschränken Sie den ausgehenden Datenverkehr von Runner- und Sitzungs-Containern an Ihrer eigenen Netzwerkgrenze in jeder Umgebung; [Standard-Deny-Egress](#default-deny-egress) behandelt, was erlaubt ist und warum.

26* **Least-Privilege-Host-IAM**: Die Compute-Identität, die an den Runner-Host angehängt ist, wie ein Instance-Profil oder ein Node-Service-Konto, sollte nur das gewähren, was der Runner selbst benötigt. Sitzungen sollten ihre eigenen Anmeldedaten über Ihr Wrapper-Skript erhalten, anstatt die des Hosts zu erben.29* **Least-Privilege-Host-IAM**: Die Compute-Identität, die an den Runner-Host angehängt ist, wie ein Instance-Profil oder ein Node-Service-Konto, sollte nur das gewähren, was der Runner selbst benötigt. Sitzungen sollten ihre eigenen Anmeldedaten über Ihr Wrapper-Skript erhalten, anstatt die des Hosts zu erben.


42 Die Guard läuft unabhängig von [`--trust-workspace`](/docs/de/self-hosted-environments-reference#runner-cli-flags) und deckt keine Repository-Hooks, `.mcp.json` oder Bash-Regeln ab; siehe [Berechtigungen und Tool-Genehmigung](/docs/de/self-hosted-environments-configuration#permissions-and-tool-approval) für den Ort dieser Berechtigungen.45 Die Guard läuft unabhängig von [`--trust-workspace`](/docs/de/self-hosted-environments-reference#runner-cli-flags) und deckt keine Repository-Hooks, `.mcp.json` oder Bash-Regeln ab; siehe [Berechtigungen und Tool-Genehmigung](/docs/de/self-hosted-environments-configuration#permissions-and-tool-approval) für den Ort dieser Berechtigungen.

43 46 

44<Note>47<Note>

45 Die IP-Zulassungsliste Ihrer Organisation deckt selbstgehosteten Runner-Datenverkehr standardmäßig nicht ab. Verlassen Sie sich nicht darauf als Netzwerkkontrolle für Runner- oder Sitzungs-Datenverkehr; wenden Sie stattdessen Standard-Deny-Egress an Ihrer eigenen Netzwerkgrenze an, und kontaktieren Sie Ihr Anthropic-Account-Team, wenn Sie IP-Zulassungslisten-Durchsetzung für Ihre Organisation wünschen.48 Wenn für Ihre Organisation [IP-Allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) aktiviert ist, fügen Sie die öffentlichen Egress-Adressen Ihrer Runner und Sitzungs-Container zur Allowlist hinzu, bevor Sie diese starten. Wenn Sie [On-Demand-Runner](/docs/de/self-hosted-environments-configuration#on-demand-runners) betreiben, fügen Sie auch die Adresse des Orchestrator-Hosts hinzu. Verlassen Sie sich nicht auf die Allowlist als Netzwerkkontrolle für Runner- oder Sitzungs-Datenverkehr. Wenden Sie stattdessen Standard-Deny-Egress an Ihrer eigenen Netzwerkgrenze an.

46</Note>49</Note>

47 50 

48<h2 id="network-requirements">51<h2 id="network-requirements">


55 58 

56| Host | Port | Verwendet für |59| Host | Port | Verwendet für |

57| :- | :- | :- |60| :- | :- | :- |

58| `api.anthropic.com` | 443, HTTPS; WSS nur für den SCM-Connector | Runner-Kontrollebene und Sitzungs-Streaming, Modell-Inferenz, Feature-Flags, Produkt-Analytik, [JWKS](/docs/de/self-hosted-environments-identity)-Schlüssel-Abrufe, Commit-Signierung, der Git-Proxy wenn `--use-anthropic-git-proxy` gesetzt ist, und der Orchestrator-[SCM-Connector](/docs/de/self-hosted-environments-reference#scm-connector-flags)-Tunnel wenn `--scm-connector-host` gesetzt ist |61| `api.anthropic.com` | 443, HTTPS; WSS für [von Anthropic verwaltetes Git](#use-the-anthropic-git-proxy) | Runner-Kontrollebene und Sitzungs-Streaming, Modell-Inferenz, Feature-Flags, Produkt-Analytik, [JWKS](/docs/de/self-hosted-environments-identity)-Schlüssel-Abrufe, Commit-Signierung und von Anthropic verwaltetes Git, wenn `--use-anthropic-git-proxy` gesetzt ist |

59| Ihr Git-Host, wie `github.com` oder Ihr GitHub Enterprise-Host | 443 oder 22 | Klonen und Pushen von Repositorys. Nicht erforderlich, wenn der Runner `--use-anthropic-git-proxy` verwendet, das Git-Datenverkehr durch `api.anthropic.com` leitet. |62| Ihr Git-Host, wie `github.com` oder Ihr GitHub Enterprise-Host | 443 oder 22 | Klonen und Pushen von Repositorys auf jedem Git-Host, den die Sitzungen des Runners verwenden. Auf einem Runner, der [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) verwendet, siehe [wann der `github.com`-Pfad weiterhin benötigt wird](#github-com-egress-with-the-anthropic-git-proxy). |

63 

64<span id="github-com-egress-with-the-anthropic-git-proxy" />Ein Runner, der [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) verwendet, leitet seinen Git-Datenverkehr für `github.com` über `api.anthropic.com` und benötigt daher den Git-Host-Pfad für `github.com` nicht. Er benötigt diesen Pfad weiterhin, wenn Sie `--push-outcome-on-release` setzen oder aus einem `post-session`-Hook pushen.

60 65 

61Ob diese Hosts erforderlich sind, hängt von Ihrer Konfiguration ab:66Ob diese Hosts erforderlich sind, hängt von Ihrer Konfiguration ab:

62 67 


71| `browser-intake-us5-datadoghq.com` | 443 | Anthropic-Fehlerberichts-Uploads, nur gesendet wenn [Fehlerberichterstattung](/docs/de/data-usage#telemetry-services) für das Konto der Sitzung aktiviert ist. Unterdrückt durch `DISABLE_ERROR_REPORTING=1` oder `DISABLE_TELEMETRY=1`. |76| `browser-intake-us5-datadoghq.com` | 443 | Anthropic-Fehlerberichts-Uploads, nur gesendet wenn [Fehlerberichterstattung](/docs/de/data-usage#telemetry-services) für das Konto der Sitzung aktiviert ist. Unterdrückt durch `DISABLE_ERROR_REPORTING=1` oder `DISABLE_TELEMETRY=1`. |

72| Die Endpunkte Ihres Cloud-Anbieters für Modellanfragen, Modell-Lookups und das Erneuern von Anmeldedaten, wie `bedrock-runtime.us-east-1.amazonaws.com` oder `aiplatform.googleapis.com` | 443 | Nur wenn der Runner [Modellanfragen an Amazon Bedrock oder die Agent Platform von Google Cloud sendet](/docs/de/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform) |77| Die Endpunkte Ihres Cloud-Anbieters für Modellanfragen, Modell-Lookups und das Erneuern von Anmeldedaten, wie `bedrock-runtime.us-east-1.amazonaws.com` oder `aiplatform.googleapis.com` | 443 | Nur wenn der Runner [Modellanfragen an Amazon Bedrock oder die Agent Platform von Google Cloud sendet](/docs/de/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform) |

73 78 

74Der Runner erreicht `statsig.anthropic.com`, `*.sentry.io`, `claude.ai` oder `platform.claude.com` nicht. Diese Hosts erscheinen in einigen älteren Enterprise-Netzwerk-Checklisten, aber Sie müssen sie nicht für Runner- oder Sitzungs-Datenverkehr zulassungslisten: Feature-Flag-Abrufe gehen zu `api.anthropic.com`, und der Runner authentifiziert sich mit dem Umgebungsgeheimnis anstelle von interaktivem OAuth. Zwei Host-seitige Flows erreichen `claude.ai`, daher führen Sie sie von einem Host aus, dessen Egress es erlaubt, anstatt den Sitzungs-Container-Egress zu verbreitern: Das Einzeilen-Installer-Skript ruft `install.sh` von `claude.ai` zur Installationszeit ab, und interaktives `claude auth login`, das der [geführte Setup](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner), `doctor`'s signierter Modus und [CI-Dispatch](/docs/de/self-hosted-environments-testing#authenticate-from-ci) verwenden, melden sich durch `claude.ai`, `claude.com` und `platform.claude.com` an. `mcp-proxy.anthropic.com` ist auch nicht erforderlich: Selbstgehostete Sitzungen verwenden es nicht, und die Lieferung Ihrer Organisations-claude.ai-Connectoren an Sitzungen, wenn für Ihre Organisation aktiviert, leitet durch `api.anthropic.com`. Siehe [MCP-Server](/docs/de/self-hosted-environments-configuration#mcp-servers).79Diese Hosts müssen Sie für Runner- oder Sitzungs-Datenverkehr nicht in die Allowlist aufnehmen:

80 

81* **`statsig.anthropic.com`, `*.sentry.io`, `claude.ai` und `platform.claude.com`**: Diese Hosts erscheinen in einigen älteren Enterprise-Netzwerk-Checklisten, aber der Runner erreicht sie nicht. Feature-Flag-Abrufe gehen zu `api.anthropic.com`, und der Runner authentifiziert sich mit dem Umgebungsgeheimnis anstelle von interaktivem OAuth.

82* **`mcp-proxy.anthropic.com`**: Selbstgehostete Sitzungen verwenden es nicht. Wenn die Bereitstellung von Konnektoren für Ihre Organisation aktiviert ist, erreichen die claude.ai-Konnektoren Ihrer Organisation die Sitzungen über `api.anthropic.com`. Siehe [MCP-Server](/docs/de/self-hosted-environments-configuration#mcp-servers).

83 

84Diese Host-seitigen Flows erreichen `claude.ai`, führen Sie sie daher von einem Host aus, dessen Egress dies erlaubt, anstatt den Sitzungs-Container-Egress zu erweitern:

85 

86* **Der Einzeilen-Installer**: Ruft `install.sh` zur Installationszeit von `claude.ai` ab.

87* **Interaktives `claude auth login`**: Meldet sich über `claude.ai`, `claude.com` und `platform.claude.com` an. Das [geführte Setup](/docs/de/self-hosted-environments-quickstart#run-the-guided-setup), der angemeldete Modus von `doctor` und [CI-Dispatch](/docs/de/self-hosted-environments-testing#authenticate-from-ci) verwenden es. Der Browser, mit dem Sie sich anmelden, lädt außerdem die Browser-Prüfungen der claude.ai-Anmeldeseite von `hcaptcha.com`, `*.hcaptcha.com` und `challenges.cloudflare.com`.

75 88 

76<h3 id="default-deny-egress">89<h3 id="default-deny-egress">

77 Standard-Deny-Egress90 Standard-Deny-Egress


127* **Lassen Sie den Runner Git konfigurieren**: Starten Sie den Runner mit `--configure-git`, um die gleiche Identität und Commit-Signierungskonfiguration zu schreiben, die Anthropic-gehostete Sitzungen verwenden140* **Lassen Sie den Runner Git konfigurieren**: Starten Sie den Runner mit `--configure-git`, um die gleiche Identität und Commit-Signierungskonfiguration zu schreiben, die Anthropic-gehostete Sitzungen verwenden

128* **Versenden Sie Git-Konfiguration in Ihrem Image**: Setzen Sie Identität und Push-Anmeldedaten selbst, zum Beispiel um unter Ihrer eigenen Bot-Identität zu committen141* **Versenden Sie Git-Konfiguration in Ihrem Image**: Setzen Sie Identität und Push-Anmeldedaten selbst, zum Beispiel um unter Ihrer eigenen Bot-Identität zu committen

129 142 

143Für Repositorys auf github.com können Sie den Runner auch mit [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) starten oder `CLAUDE_RUNNER_USE_GIT_PROXY=1` setzen, um Anthropic zu bitten, Git für die Sitzungen des Runners bereitzustellen.

144 

130Git-Versionsuntergrenzen auf dem Runner-Host: [`--configure-git`](#let-the-runner-configure-git) SSH-Commit-Signierung erfordert Git 2.34 oder neuer, [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) erfordert 2.32 oder neuer, und das Fortsetzen von Sitzungen von Branches, die von [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gepusht werden, erfordert 2.29 oder neuer. Git 2.24 ist ausreichend, wenn Sie alle drei weglassen und die Git-Identität selbst verwalten.145Git-Versionsuntergrenzen auf dem Runner-Host: [`--configure-git`](#let-the-runner-configure-git) SSH-Commit-Signierung erfordert Git 2.34 oder neuer, [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) erfordert 2.32 oder neuer, und das Fortsetzen von Sitzungen von Branches, die von [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) gepusht werden, erfordert 2.29 oder neuer. Git 2.24 ist ausreichend, wenn Sie alle drei weglassen und die Git-Identität selbst verwalten.

131 146 

132<h3 id="let-the-runner-configure-git">147<h3 id="let-the-runner-configure-git">


138* `user.name = Claude` und `user.email = noreply@anthropic.com`, passend zu Anthropic-gehosteten Sitzungen153* `user.name = Claude` und `user.email = noreply@anthropic.com`, passend zu Anthropic-gehosteten Sitzungen

139* SSH-Format-Commit- und Tag-Signierung, geleitet durch einen Runner-verwalteten Shim, der jeden Commit über Anthropic's Signierungsservice mit den Anmeldedaten der Sitzung signiert. Signaturen sind auf GitHub gegen Anthropic's veröffentlichten SSH-Signierungsschlüssel überprüfbar.154* SSH-Format-Commit- und Tag-Signierung, geleitet durch einen Runner-verwalteten Shim, der jeden Commit über Anthropic's Signierungsservice mit den Anmeldedaten der Sitzung signiert. Signaturen sind auf GitHub gegen Anthropic's veröffentlichten SSH-Signierungsschlüssel überprüfbar.

140* `push.negotiate = true`, damit Git Ihren Git-Host fragt, welche Commits er bereits hat, bevor er einen Push packt. Erfordert Claude Code v2.1.257 oder später.155* `push.negotiate = true`, damit Git Ihren Git-Host fragt, welche Commits er bereits hat, bevor er einen Push packt. Erfordert Claude Code v2.1.257 oder später.

141* `core.hooksPath`, das auf ein Runner-verwaltetes Hooks-Verzeichnis zeigt. Seine `commit-msg`- und `prepare-commit-msg`-Hooks fügen jedem Commit einen `Co-authored-by:`-Trailer für den Ersteller der Sitzung hinzu, erstellt aus der E-Mail in [`CCR_SESSION_ACCOUNT_EMAIL`](/docs/de/self-hosted-environments-configuration#wrapper-scripts) und weggelassen, wenn diese Variable nicht gesetzt ist. Wenn Ihr Image bereits `core.hooksPath` setzt, lässt der Runner Ihre Einstellung in Kraft, überspringt die Installation dieser Hooks und gibt eine `[runner:git]`-Warnung aus.156* `core.hooksPath`, das auf ein Runner-verwaltetes Hooks-Verzeichnis zeigt. Seine `commit-msg`- und `prepare-commit-msg`-Hooks fügen jedem Commit einen `Co-authored-by:`-Trailer für den Ersteller der Sitzung hinzu. Der Trailer wird aus der E-Mail in [`CCR_SESSION_ACCOUNT_EMAIL`](/docs/de/self-hosted-environments-configuration#wrapper-scripts) erstellt und weggelassen, wenn diese Variable nicht gesetzt ist. Wenn Ihr Image bereits `core.hooksPath` setzt und der Runner kein [Anthropic-verwaltetes Git](#use-the-anthropic-git-proxy) verwendet, behält der Runner Ihre Einstellung bei, überspringt die Installation dieser Hooks und gibt eine `[runner:git]`-Warnung aus.

142 157 

143Commit-Signierung erfordert Git 2.34 oder neuer; der Runner überprüft beim Start und beendet sich mit einem Fehler, wenn Ihr Git älter ist. Dieses Flag konfiguriert keine Push-Anmeldedaten, die Sie immer noch im Image bereitstellen.158Commit-Signierung erfordert Git 2.34 oder neuer; der Runner überprüft beim Start und beendet sich mit einem Fehler, wenn Ihr Git älter ist. Dieses Flag konfiguriert keine Push-Anmeldedaten, die Sie immer noch im Image bereitstellen.

144 159 

145Auf einem Runner mit v2.1.280 oder später werden Commits, die Sie aus einem `checkout`- oder `post-session`-Lebenszyklus-Hook erstellen, ebenfalls als die Sitzung signiert, ohne den `Co-authored-by:`-Trailer. [Git-Konfiguration innerhalb von Lebenszyklus-Hooks](/docs/de/self-hosted-environments-configuration#git-configuration-inside-lifecycle-hooks) beschreibt die Git-Einstellungen, die der Runner innerhalb dieser Hooks festlegt.160Auf einem Runner mit v2.1.280 oder später werden Commits, die Sie aus einem `checkout`- oder `post-session`-Lebenszyklus-Hook erstellen, ebenfalls als die Sitzung signiert, ohne den `Co-authored-by:`-Trailer. [Git-Konfiguration innerhalb von Lebenszyklus-Hooks](/docs/de/self-hosted-environments-configuration#git-configuration-inside-lifecycle-hooks) beschreibt die Git-Einstellungen, die der Runner innerhalb dieser Hooks festlegt.

146 161 

162Mit oder ohne `--configure-git` weist Claude Code Claude an, seine Commit-Nachrichten mit einem `Claude-Session: <url>`-Trailer und seine Pull-Request-Beschreibungen mit der URL der Sitzung abzuschließen. Um beides wegzulassen, setzen Sie [`attribution.sessionUrl`](/docs/de/settings-reference#attribution-sessionurl) in der [`~/.claude/settings.json`](/docs/de/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) des Runner-Hosts auf `false` und starten Sie den Runner anschließend neu.

163 

147<h3 id="ship-git-config-in-your-image">164<h3 id="ship-git-config-in-your-image">

148 Versenden Sie Git-Konfiguration in Ihrem Image165 Versenden Sie Git-Konfiguration in Ihrem Image

149</h3>166</h3>


186 Verwenden Sie den Anthropic-Git-Proxy203 Verwenden Sie den Anthropic-Git-Proxy

187</h3>204</h3>

188 205 

189Starten Sie den Runner mit `--use-anthropic-git-proxy`, oder setzen Sie `CLAUDE_RUNNER_USE_GIT_PROXY=1`, um durch Anthropic's Git-Proxy zu klonen, authentifiziert mit dem kurzlebigen Token der Sitzung. Für gewöhnliche Benutzersitzungen verwendet der Proxy das GitHub- oder GitHub Enterprise-OAuth-Token, das für den Sitzungs-Ersteller gespeichert ist; für Bot- und Agent-Sitzungen verwendet er das GitHub App-Installations-Token Ihrer Organisation. Wie auch immer, das Runner-Image benötigt überhaupt keine Git-Anmeldedaten: keine SSH-Schlüssel, keinen Credential-Helper, keine `.netrc`. Dies ist der gleiche Auth-Pfad, den Anthropic-gehostete Umgebungen verwenden.206Mit dem Anthropic-Git-Proxy, auch Anthropic-verwaltetes Git genannt, benötigt das Runner-Image für die Sitzung selbst keine SSH-Schlüssel, keinen Credential-Helper, keine `.netrc` und keine anderen Git-Anmeldedaten. Stattdessen bittet der Runner Anthropic, Git für seine Sitzungen bereitzustellen. Bei einer Benutzersitzung, für die Anthropic Git bereitstellt, laufen der Clone des Runners sowie die eigenen Fetches und Pushes der Sitzung über Anthropic, das das für den Ersteller der Sitzung gespeicherte GitHub-OAuth-Token verwendet. [Wie Anthropic Git für eine Sitzung bereitstellt](#how-anthropic-serves-git-for-a-session) behandelt Bot- und Agentensitzungen.

207 

208Der Git-Proxy ist ausgeschaltet, sofern Sie ihn nicht [einschalten](#turn-the-anthropic-git-proxy-on). Ein Runner, der Ihren Git-Host mit eigenen Anmeldedaten erreicht, benötigt ihn nicht, und sein Git funktioniert mit jedem Git-Host.

209 

210Im Gegenzug schränkt der Git-Proxy ein, was der Runner unterstützt, und ändert, was er benötigt:

211 

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.

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).

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.

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).

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 

221<span id="git-proxy-replaces-global-git-config" />

222 

223<Warning>

224 Wenn `--use-anthropic-git-proxy` gesetzt ist, löscht und ersetzt der Runner die globale Git-Konfiguration des Benutzers, unter dem er läuft, und legt keine Sicherung an. Das geschieht beim Start und vor jeder Sitzung. Ein Login- oder Credential-Helper, den Sie dort hinterlegt hatten, geht verloren. Einstellungen, die [`--configure-git`](#let-the-runner-configure-git) schreibt, bleiben erhalten. Führen Sie den Runner als dedizierten Benutzer oder in einem Container aus, niemals als Ihren eigenen Benutzer.

225</Warning>

226 

227Bewahren Sie Git-Einstellungen, die nicht geheim sind, wie die Identität und `safe.directory`, in der System-Git-Konfiguration auf.

228 

229<h4 id="turn-the-anthropic-git-proxy-on">

230 Den Anthropic-Git-Proxy einschalten

231</h4>

232 

233Bevor Sie den Runner mit `--use-anthropic-git-proxy` starten, vergewissern Sie sich, dass der Runner-Host jede dieser Anforderungen erfüllt. Der Runner verweigert den Start, wenn die Kapazitäts- oder Git-Anforderung nicht erfüllt ist:

190 234 

191Der Proxy erfordert `--capacity 1`, weil die Proxy-URL pro Sitzung ist, und Git 2.32 oder neuer, weil älteres Git den Konfigurationsmechanismus ignoriert, den der Proxy verwendet, um Sitzungen voneinander zu isolieren. Der Runner weigert sich zu starten, wenn eine der Anforderungen nicht erfüllt ist. Weil der Proxy von Anthropic's Seite abruft, muss Ihr Git-Host von Anthropic-Infrastruktur erreichbar sein, die gleiche Anforderung, die Anthropic-gehostete Sitzungen haben; für einen Git-Host, der nur innerhalb Ihres Netzwerks routbar ist, verwenden Sie stattdessen einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout). Jeder Runner-Prozess verarbeitet jeweils eine Sitzung, daher führen Sie mehr Replicas für Parallelität aus. Wenn der Proxy aktiviert ist, haben `--git-host-rewrite` und `--git-ssh-rewrite` keine Auswirkung: Die Proxy-URL zeigt auf `api.anthropic.com`, nicht auf Ihren Git-Host.235* **Claude Code v2.1.267 oder später**: Frühere Versionen akzeptieren das Flag, melden Anthropic aber nicht die Anfrage, Git bereitzustellen, und geben die Zeile `Registering as opted in` nicht aus, daher stellt Anthropic für ihre Sitzungen kein Git bereit.

236* **`--capacity 1`, der Standardwert**: Jeder Runner-Prozess verarbeitet jeweils eine Sitzung, daher führen Sie mehr Replicas für Parallelität aus.

237* **Git 2.32 oder neuer**: Älteres Git ignoriert die Git-Konfiguration pro Sitzung, die der Runner für den Git-Proxy einrichtet.

192 238 

193<Warning>239<Warning>

194 Die [Kubernetes](#kubernetes)- und [Docker Compose](#docker-compose)-Rezepte auf dieser Seite verwenden `--capacity 4`. Wenn Sie `--use-anthropic-git-proxy` oder `CLAUDE_RUNNER_USE_GIT_PROXY=1` zu einem von ihnen hinzufügen, ohne die Kapazität auf `1` zu ändern, beendet sich der Runner bei jedem Start, wenn Ihr Orchestrator ihn neu startet. Setzen Sie `--capacity 1` und führen Sie mehr Replicas für Parallelität aus. [Wenn der Runner beendet wird](#when-the-runner-exits) zeigt die Zeile, die der Runner ausgibt.240 Die [Kubernetes](#kubernetes)- und [Docker Compose](#docker-compose)-Rezepte auf dieser Seite verwenden `--capacity 4`. Wenn Sie `--use-anthropic-git-proxy` oder `CLAUDE_RUNNER_USE_GIT_PROXY=1` zu einem von ihnen hinzufügen, ohne die Kapazität auf `1` zu ändern, beendet sich der Runner bei jedem Start, wenn Ihr Orchestrator ihn neu startet. Setzen Sie `--capacity 1` und führen Sie mehr Replicas für Parallelität aus. [Wenn der Runner beendet wird](#when-the-runner-exits) zeigt die Zeile, die der Runner ausgibt.

195</Warning>241</Warning>

196 242 

197Der Runner meldet die Opt-in-Entscheidung auch Anthropic, wenn er sich registriert, und gibt beim Start `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` aus. Die Meldung der Opt-in-Entscheidung erfordert Claude Code v2.1.267 oder später, und frühere Versionen akzeptieren das Flag, ohne es zu melden oder diese Zeile auszugeben. Jede Sitzung auf einem Opt-in-Runner verwendet dann entweder Anthropic-verwaltetes Git oder die Pro-Sitzungs-Proxy-URL. Wenn eine Sitzung die Pro-Sitzungs-Proxy-URL verwendet, protokolliert der Runner eine `[runner:warn]`-Zeile, die dies angibt.243Um den Git-Proxy einzuschalten, fügen Sie dem Befehl des Runners `--use-anthropic-git-proxy` hinzu oder setzen Sie `CLAUDE_RUNNER_USE_GIT_PROXY=1` in der Umgebung des Runners. Dieser Befehl, in einer Shell auf dem Runner-Host ausgeführt, startet den Runner aus dem [Schnellstart](/docs/de/self-hosted-environments-quickstart#set-up-manually) mit eingeschaltetem Git-Proxy:

244 

245```bash theme={null}

246claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>' --use-anthropic-git-proxy

247```

248 

249Beim Start gibt der Runner `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` aus. Anthropic entscheidet dann für jede Sitzung auf diesem Runner, ob es deren Git bereitstellt. Für jede Sitzung, für die es Git bereitstellt, protokolliert der Runner eine `[runner:session]`-Zeile, die `governed git ACTIVE` enthält. Wenn eine Sitzung stattdessen nicht startet, siehe [Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten](#when-anthropic-doesnt-serve-a-session).

250 

251<h4 id="how-anthropic-serves-git-for-a-session">

252 Wie Anthropic Git für eine Sitzung bereitstellt

253</h4>

254 

255Bei einer Sitzung, für die Anthropic Git bereitstellt, laufen der Clone des Runners sowie die eigenen Fetches und Pushes der Sitzung über Anthropic, authentifiziert mit dem eigenen kurzlebigen Token der Sitzung:

256 

257* **Benutzersitzungen**: Anthropic verwendet das für den Ersteller der Sitzung gespeicherte GitHub-OAuth-Token.

258* **Bot- und Agentensitzungen**: Anthropic verwendet das GitHub-App-Installations-Token Ihrer Organisation.

259* **URL-Umschreibungen**: `--git-host-rewrite` und `--git-ssh-rewrite` haben keine Auswirkung auf ein Repository, das der Git-Proxy bereitstellt.

260 

261<h4 id="when-anthropic-doesnt-serve-a-session">

262 Wenn Sitzungen auf einem Runner mit dem Git-Proxy nicht starten

263</h4>

264 

265Auf einem Runner, der mit `--use-anthropic-git-proxy` gestartet wurde, startet eine Sitzung nicht, wenn Anthropic kein Git für sie bereitstellt. Suchen Sie im Log des Runners nach einem Git-Fehler, der eine `api.anthropic.com`-Adresse mit `/git_proxy/` nennt.

266 

267Für jede Sitzung protokolliert ein Runner mit Claude Code v2.1.267 oder später außerdem entweder eine `[runner:session]`-Zeile mit `governed git ACTIVE`, wenn Anthropic Git für die Sitzung bereitstellt, oder eine `[runner:warn]`-Zeile mit `the server withheld Anthropic-managed git for this session`, wenn nicht. Suchen Sie die Zeile, die Sie sehen, unter diesen Fällen:

268 

269* **Weder `governed git ACTIVE` noch die `withheld`-Zeile**: Ein Runner, der älter als Claude Code v2.1.267 ist, protokolliert keine der beiden Zeilen, und Anthropic stellt für seine Sitzungen kein Git bereit. Aktualisieren Sie den Runner auf v2.1.267 oder später, indem Sie [Die Version festlegen](#pin-the-version) folgen.

270* **Die `withheld`-Zeile**: Anthropic hat kein Git für die Sitzung bereitgestellt. Ein Runner, der zuvor mit dem Git-Proxy funktioniert hat, kann auf diese Weise fehlschlagen, ohne dass Sie etwas geändert haben.

271 * **Ein Repository liegt nicht auf github.com**: Für eine Sitzung mit auch nur einem Repository auf einem anderen Git-Host, etwa GitHub Enterprise Server, wird kein Git bereitgestellt, auch nicht für ihre github.com-Repositorys. [Schalten Sie den Anthropic-Git-Proxy aus](#turn-the-anthropic-git-proxy-off) für die Runner dieser Umgebung.

272 * **Jedes Repository liegt auf github.com**: Melden Sie den Fehler [Ihrem Anthropic-Account-Team](#report-an-issue) mit der Sitzungs-ID aus der `withheld`-Zeile. Anthropic erfasst den Grund auf seiner Seite.

273* **Eine Zeile mit `remote: access denied by the git proxy`**: Auch eine Sitzung, für die Anthropic Git bereitstellt, kann abgewiesen werden, zum Beispiel wenn eine Organisationsrichtlinie den Git-Zugriff für die Sitzung verweigert oder die Sitzung nicht für das Repository autorisiert ist. Das Log des Runners zeigt dann eine Zeile mit `remote: access denied by the git proxy`, und der Rest dieser Zeile nennt den Grund.

274* <span id="creator-has-no-github-connection" />**`GitHub authentication required`**: Dies erscheint, wenn der Ersteller der Sitzung keine funktionierende GitHub-Verbindung auf claude.ai hat. Der Clone der Sitzung schlägt fehl, und der Git-Fehler lautet `GitHub authentication required. Please reconnect your GitHub account.` Bitten Sie diese Person, GitHub in ihren claude.ai-Einstellungen zu verbinden oder erneut zu verbinden.

275 

276Nachdem Sie die Ursache behoben haben, starten Sie die fehlgeschlagenen Sitzungen erneut.

277 

278<h4 id="turn-the-anthropic-git-proxy-off">

279 Den Anthropic-Git-Proxy ausschalten

280</h4>

281 

282Wenn Sitzungen in einer Umgebung ein Repository auf einem anderen Git-Host als github.com verwenden, etwa GitHub Enterprise Server, schalten Sie `--use-anthropic-git-proxy` für die Runner dieser Umgebung aus.

283 

284<Steps>

285 <Step title="Flag entfernen">

286 Entfernen Sie `--use-anthropic-git-proxy` aus dem Befehl des Runners. Wenn Sie `CLAUDE_RUNNER_USE_GIT_PROXY` in der Umgebung des Runners gesetzt haben, etwa in einer Pod-Spezifikation oder einer Compose-Datei, entfernen Sie es dort. Heben Sie es in einer Shell auf:

287 

288 ```bash theme={null}

289 unset CLAUDE_RUNNER_USE_GIT_PROXY

290 ```

291 </Step>

292 

293 <Step title="Dem Runner Git-Anmeldedaten geben">

294 Stellen Sie Anmeldedaten bereit, die ohne Eingabeaufforderung für jeden Git-Host funktionieren, den die Sitzungen der Runner verwenden, github.com eingeschlossen. Alle Anmeldedaten, die in der globalen Git-Konfiguration des Runner-Benutzers lagen, sind verloren, weil der Runner diese Konfiguration gelöscht hat, während `--use-anthropic-git-proxy` gesetzt war. [Liefern Sie Anmeldedaten in Ihrem Image mit](#ship-git-config-in-your-image) oder verwenden Sie einen [`checkout`-Lebenszyklus-Hook](/docs/de/self-hosted-environments-configuration#checkout).

295 </Step>

296 

297 <Step title="Netzwerkpfad öffnen">

298 Erlauben Sie dem Runner, jeden Git-Host, den die Sitzungen der Runner verwenden, über Port 443 oder 22 zu erreichen. Siehe die Zeile für den Git-Host unter [Netzwerkanforderungen](#network-requirements).

299 </Step>

300 

301 <Step title="Runner neu starten">

302 Starten Sie die Runner neu, damit sie sich ohne den Git-Proxy registrieren. Starten Sie dann jede fehlgeschlagene Sitzung erneut.

303 </Step>

304</Steps>

198 305 

199<h4 id="github-api-access-without-the-github-cli">306<h4 id="github-api-access-without-the-github-cli">

200 GitHub-API-Zugriff ohne die GitHub CLI307 GitHub-API-Zugriff ohne die GitHub CLI


266```dockerfile theme={null}373```dockerfile theme={null}

267FROM debian:bookworm-slim374FROM debian:bookworm-slim

268ARG CLAUDE_CODE_VERSION375ARG CLAUDE_CODE_VERSION

269RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client \376RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client jq \

270 && rm -rf /var/lib/apt/lists/*377 && rm -rf /var/lib/apt/lists/*

271RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \378RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \

272 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude379 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude


382kubectl create namespace claude-runners489kubectl create namespace claude-runners

383```490```

384 491 

385Erstellen Sie das Backing-Secret aus einer lokalen Datei, die den Wert enthält, den Sie im Admin-UI's [**Copy environment key**-Schritt](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner) kopiert haben, daher erscheint das Geheimnis niemals in Ihrer Shell-Historie. Führen Sie `(umask 077 && cat > ./environment-secret)` aus, fügen Sie das Geheimnis ein, drücken Sie Enter, dann Ctrl-D. Dann erstellen Sie das Secret und löschen die Datei:492Erstellen Sie das zugrunde liegende Secret aus einer lokalen Datei, die den Wert enthält, den Sie im [**Copy environment key**-Schritt](/docs/de/self-hosted-environments-quickstart#set-up-manually) der Admin-UI kopiert haben, damit das Geheimnis niemals in Ihrer Shell-Historie erscheint. Führen Sie `(umask 077 && cat > ./environment-secret)` aus, fügen Sie das Geheimnis ein, drücken Sie Enter und dann Ctrl-D. Erstellen Sie anschließend das Secret und löschen Sie die Datei:

386 493 

387```bash theme={null}494```bash theme={null}

388kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret495kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret


500 Wiederverwendung eines vorgewärmten Checkouts607 Wiederverwendung eines vorgewärmten Checkouts

501</h2>608</h2>

502 609 

503Bei großen Repositories kann das Klonen den Sitzungsstart dominieren. Bei `--capacity 1` ohne [`checkout` Hook](/docs/de/self-hosted-environments-configuration#checkout) behält der Runner einen kanonischen Klon pro Repository unter `<base-dir>/<repo-owner>/<repo>` und verwendet ihn über Sitzungen hinweg erneut: Er ruft die angeforderte Referenz ab, trennt `HEAD` ab und setzt sie hart zurück, was nahezu augenblicklich ist, wenn sich wenig geändert hat. Um das kalte Klonen zu überspringen, stellen Sie den Klon auf eine von zwei Arten bereit:610Bei großen Repositories kann das Klonen den Sitzungsstart dominieren. Um das kalte Klonen zu überspringen, stellen Sie selbst einen Klon unter dem Pfad bereit, an dem der Runner seinen eigenen Klon ablegt. Ohne [`checkout` Hook](/docs/de/self-hosted-environments-configuration#checkout) behält der Runner einen kanonischen Klon pro Repository unter `<base-dir>/<repo-owner>/<repo>` und verwendet ihn über Sitzungen hinweg erneut:

611 

612* **Bei `--capacity 1`**: Der Runner ruft die angeforderte Referenz ab, trennt `HEAD` ab und setzt hart darauf zurück, was nahezu augenblicklich ist, wenn sich wenig geändert hat.

613* **Bei einer `--capacity` größer als eins**: Der Runner ruft in diesen Klon ab und checkt dann für jede Sitzung einen separaten Worktree daraus aus. Ein vorgewärmter Klon spart den Download, aber nicht den Checkout.

614 

615Stellen Sie den Klon im Image oder auf einem persistenten Volume bereit:

504 616 

505* **Klon im Image**: Erstellen Sie den Klon in Ihrem Runner-Image unter diesem Pfad. Jeder neue Container startet dann mit dem warmen Klon, ohne eine Festplatte wiederzuverwenden.617* **Klon im Image**: Erstellen Sie den Klon in Ihrem Runner-Image unter diesem Pfad. Jeder neue Container startet dann mit dem warmen Klon, ohne eine Festplatte wiederzuverwenden.

506* **Klon auf einem persistenten Volume**: Bei Runnern, die Sie mit [`--lock-to-account`](/docs/de/self-hosted-environments-reference#runner-cli-flags) auf das Konto eines Benutzers sperren, verweisen Sie `--base-dir` auf ein persistentes Volume, sodass die Festplatte nur diesem Konto dient. Ein gesperrter Runner akzeptiert niemals Claude Tag Channel-Sitzungen, daher gilt diese Option nicht für Runner, die diese bedienen.618* **Klon auf einem persistenten Volume**: Bei Runnern, die Sie mit [`--lock-to-account`](/docs/de/self-hosted-environments-reference#runner-cli-flags) auf das Konto eines Benutzers sperren, verweisen Sie `--base-dir` auf ein persistentes Volume, sodass die Festplatte nur diesem Konto dient. Ein gesperrter Runner akzeptiert niemals Claude Tag Channel-Sitzungen, daher gilt diese Option nicht für Runner, die diese bedienen.


508Was der Wiederverwendungspfad garantiert und nicht garantiert:620Was der Wiederverwendungspfad garantiert und nicht garantiert:

509 621 

510* **Jede Klonform funktioniert**: Ein vollständiger, flacher oder Single-Branch-Klon unter dem Pfad wird unverändert verwendet. Der Runner übergibt niemals `--depth` beim Abrufen in einen vorhandenen Klon, daher behält ein vollständiger Vorwärm seine vollständige Historie und ein flacher bleibt flach. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0` oder eine Zahl; Standard 50) steuert nur den kalten Klon, den der Runner erstellt, wenn noch kein Klon vorhanden ist.622* **Jede Klonform funktioniert**: Ein vollständiger, flacher oder Single-Branch-Klon unter dem Pfad wird unverändert verwendet. Der Runner übergibt niemals `--depth` beim Abrufen in einen vorhandenen Klon, daher behält ein vollständiger Vorwärm seine vollständige Historie und ein flacher bleibt flach. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0` oder eine Zahl; Standard 50) steuert nur den kalten Klon, den der Runner erstellt, wenn noch kein Klon vorhanden ist.

511* **Nachverfollgte Änderungen werden zurückgesetzt, nicht nachverfolgte Dateien bleiben erhalten**: Jede Sitzung beginnt mit einem harten Zurücksetzen, das die verfolgten Änderungen der vorherigen Sitzung löscht, aber der Runner führt niemals `git clean` aus, daher bleiben nicht nachverfolgte Dateien aus früheren Sitzungen des gesperrten Besitzers im Baum.623* **Nachverfolgte Änderungen werden zurückgesetzt, nicht nachverfolgte Dateien bleiben erhalten**: Bei `--capacity 1` beginnt jede Sitzung mit einem harten Zurücksetzen, das die nachverfolgten Änderungen der vorherigen Sitzung löscht, aber der Runner führt niemals `git clean` aus, daher bleiben nicht nachverfolgte Dateien aus früheren Sitzungen des gesperrten Besitzers im Baum.

512* **Per-Session-Verzeichnisse bleiben ebenfalls erhalten**: Neben dem Checkout erstellt der Runner für jede Sitzung, die er ausführt, Einträge pro Sitzung unter `<base-dir>/_sessions/`. Das Claude-Konfigurationsverzeichnis der Sitzung enthält eine lokale Kopie des Gesprächstranskripts. Daneben befinden sich die hochgeladenen Dateien der Sitzung, falls die Sitzung welche hat. Das Sitzungsverzeichnis befindet sich auch dort: Es enthält alle Pro-Session-Worktrees und `checkout` Hook-Checkouts während der Sitzung ausgeführt wird, und es behält alles andere, was Claude darin geschrieben hat.624* **Per-Session-Verzeichnisse bleiben ebenfalls erhalten**: Neben dem Checkout erstellt der Runner für jede Sitzung, die er ausführt, Einträge pro Sitzung unter `<base-dir>/_sessions/`. Das Claude-Konfigurationsverzeichnis der Sitzung enthält eine lokale Kopie des Gesprächstranskripts. Daneben befinden sich die hochgeladenen Dateien der Sitzung, falls die Sitzung welche hat. Das Sitzungsverzeichnis befindet sich auch dort: Es enthält alle Pro-Session-Worktrees und `checkout` Hook-Checkouts während der Sitzung ausgeführt wird, und es behält alles andere, was Claude darin geschrieben hat.

513 625 

514 Standardmäßig lässt der Runner diese an Ort und Stelle, wenn die Sitzung endet, daher sammeln sie sich auf einer Festplatte an, die den Runner-Prozess überlebt. Jede Sitzung wird als eigener Benutzer des Runners ausgeführt, daher kann jede spätere Sitzung, die diese Festplatte bedient, sie lesen. Wenn Sie ein persistentes `--base-dir` beibehalten, dimensionieren Sie das Volume für dieses Wachstum. Das Gleiche gilt für jedes Setup, das den Runner auf demselben Dateisystem neu startet, einschließlich des [Docker Compose-Rezepts](#docker-compose).626 Standardmäßig lässt der Runner diese an Ort und Stelle, wenn die Sitzung endet, daher sammeln sie sich auf einer Festplatte an, die den Runner-Prozess überlebt. Jede Sitzung wird als eigener Benutzer des Runners ausgeführt, daher kann jede spätere Sitzung, die diese Festplatte bedient, sie lesen. Wenn Sie ein persistentes `--base-dir` beibehalten, dimensionieren Sie das Volume für dieses Wachstum. Das Gleiche gilt für jedes Setup, das den Runner auf demselben Dateisystem neu startet, einschließlich des [Docker Compose-Rezepts](#docker-compose).


522 634 

523Jeder Sitzungs-Kind-Claude-Code-Prozess führt die Binärdatei des Runners selbst aus, und der Runner schaltet Auto-Update in den Sitzungen, die er spawnt, aus, daher führt jede Sitzung die Version aus, die Sie auf dem Host installiert oder in das Image eingebaut haben. Ein Host-Level-Update wird wirksam, das nächste Mal, wenn der Runner startet.635Jeder Sitzungs-Kind-Claude-Code-Prozess führt die Binärdatei des Runners selbst aus, und der Runner schaltet Auto-Update in den Sitzungen, die er spawnt, aus, daher führt jede Sitzung die Version aus, die Sie auf dem Host installiert oder in das Image eingebaut haben. Ein Host-Level-Update wird wirksam, das nächste Mal, wenn der Runner startet.

524 636 

525Ein Modell, das Ihre Sitzungen verwenden, kann eine neuere Claude-Code-Version erfordern als die, die sie ausführen. Der Server lehnt dann Anfragen für dieses Modell mit [Claude Code unterstützt dieses Modell nicht](/docs/de/errors#claude-code-does-not-support-this-model) ab. Bevor Sie eine Version pinnen, überprüfen Sie [die Claude-Code-Versionen, die Modelle erfordern](/docs/de/model-config#available-models) für jedes Modell, das Ihre Sitzungen verwenden.637Legen Sie fest, welche Version Ihre Sitzungen ausführen und wann sie sich ändert:

526 638 

639* **Bevor Sie eine Version pinnen**: Überprüfen Sie [die Claude-Code-Versionen, die Modelle erfordern](/docs/de/model-config#available-models) für jedes Modell, das Ihre Sitzungen verwenden. Wenn ein Modell eine neuere Version erfordert als die, die Ihre Sitzungen ausführen, lehnt der Server Anfragen für dieses Modell mit [Claude Code unterstützt dieses Modell nicht](/docs/de/errors#claude-code-does-not-support-this-model) ab.

527* **Um eine Flotte auf einer Version zu halten**: Erstellen Sie das Image mit einer gepinnten Version, oder installieren Sie auf einem bloßen Host eine spezifische Version und [deaktivieren Sie Auto-Updates](/docs/de/setup#disable-auto-updates)640* **Um eine Flotte auf einer Version zu halten**: Erstellen Sie das Image mit einer gepinnten Version, oder installieren Sie auf einem bloßen Host eine spezifische Version und [deaktivieren Sie Auto-Updates](/docs/de/setup#disable-auto-updates)

528* **Um zu upgraden**: Installieren Sie die neuere Version oder erstellen Sie das Image neu, dann starten Sie die Runner neu641* **Um eine feste Flotte zu aktualisieren**: Lesen Sie die [Changelog](/docs/en/changelog)-Einträge zwischen Ihrer Version und der Version, die Sie installieren, und installieren Sie dann die neuere Version oder bauen Sie das Image neu und starten Sie die Runner neu

642* **Um bedarfsgesteuerte Runner zu aktualisieren**: Lesen Sie die [Changelog](/docs/en/changelog)-Einträge zwischen Ihrer Version und der Version, die Sie installieren, und ändern Sie dann das Image, das Ihr [`spawn-runner`-Hook](/docs/de/self-hosted-environments-configuration#the-spawn-runner-hook) startet. Jeder neue Runner erhält die neue Version. Ein bereits laufender Runner, einschließlich eines Standby-Runners, den [`--min-idle`](/docs/de/self-hosted-environments-reference#orchestrator-cli-flags) gestartet hat, behält seine Version, bis er beendet wird. Starten Sie ihn nicht neu, da sein Arbeitsauftrag nur einmal verwendet werden kann.

529* **Plugins**: Plugin-Marktplätze auto-updaten auch nicht; setzen Sie `FORCE_AUTOUPDATE_PLUGINS=1` in der Runner's Umgebung, um Plugins auto-updaten zu lassen, während die Binärdatei gepinnt bleibt643* **Plugins**: Plugin-Marktplätze auto-updaten auch nicht; setzen Sie `FORCE_AUTOUPDATE_PLUGINS=1` in der Runner's Umgebung, um Plugins auto-updaten zu lassen, während die Binärdatei gepinnt bleibt

530 644 

531<h2 id="scale-the-fleet">645<h2 id="scale-the-fleet">


580</h3>694</h3>

581 695 

582* **Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit**: Ein frischer Runner klont das Repository erneut von seinem Start-Branch, daher ist Arbeit, die die Sitzung nicht gepusht hat, verloren.696* **Fortgesetzte Sitzungen verlieren nicht gepushte Arbeit**: Ein frischer Runner klont das Repository erneut von seinem Start-Branch, daher ist Arbeit, die die Sitzung nicht gepusht hat, verloren.

583 * **Um committete Arbeit zu behalten**: Setzen Sie [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags). Der Runner führt dann vor der Freigabe einen Best-Effort-Push der Ergebnis-Branches der Sitzung durch, und die fortgesetzte Sitzung startet von diesen Commits. Nicht committete Änderungen gehen weiterhin verloren.697 * **Um committete Arbeit zu behalten**: Setzen Sie [`--push-outcome-on-release`](/docs/de/self-hosted-environments-reference#runner-cli-flags) auf jedem Runner in der Umgebung, da ein Runner ohne das Flag die Sitzung von ihrem Start-Branch aus fortsetzt. Ein Runner mit dem Flag führt vor der Freigabe einen Best-Effort-Push der Ergebnis-Branches der Sitzung durch, und die fortgesetzte Sitzung startet von diesen Commits. Der Push verwendet die eigenen Git-Anmeldedaten des Runner-Hosts, auch auf einem Runner, der [von Anthropic verwaltetes Git](#use-the-anthropic-git-proxy) verwendet. Nicht committete Änderungen gehen weiterhin verloren.

698 * **Mit einem `checkout`-Hook**: Repositorys, die über einen [`checkout`-Lifecycle-Hook](/docs/de/self-hosted-environments-configuration#checkout) ausgecheckt werden, werden nicht gepusht. Sichern Sie diese stattdessen über den [`post-session`-Hook](/docs/de/self-hosted-environments-configuration#post-session).

584 * **Bevor Sie das Flag aktivieren**: Beschränken Sie, wer zu `claude/*`-Refs auf dem Quell-Remote pushen kann. Beim Fortsetzen ruft der Runner den zuvor gepushten Branch ab, ohne zu überprüfen, wer ihn gepusht hat.699 * **Bevor Sie das Flag aktivieren**: Beschränken Sie, wer zu `claude/*`-Refs auf dem Quell-Remote pushen kann. Beim Fortsetzen ruft der Runner den zuvor gepushten Branch ab, ohne zu überprüfen, wer ihn gepusht hat.

585* **Ein während der Sitzung hinzugefügtes Repository kann beim Klonen fehlschlagen**: Claude klont es mit `git clone` über HTTPS. Auf einem Runner ohne [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) schlägt das Klonen mit einem Git-Authentifizierungsfehler fehl, wenn nichts auf dem Host das Repository lesen kann. Wählen Sie nach Möglichkeit jedes Repository, das die Sitzung benötigt, bereits beim Erstellen aus.700* **Ein während der Sitzung hinzugefügtes Repository kann beim Klonen fehlschlagen**: Claude klont es mit `git clone` über HTTPS. Auf einem Runner ohne [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) schlägt das Klonen mit einem Git-Authentifizierungsfehler fehl, wenn nichts auf dem Host das Repository lesen kann. Wählen Sie nach Möglichkeit jedes Repository, das die Sitzung benötigt, bereits beim Erstellen aus.

586* **Einige Connectoren erscheinen nicht in selbstgehosteten Sitzungen**: Ein Connector, den Sie noch nicht in claude.ai Settings verbunden haben, wird nicht in einer selbstgehosteten Sitzung aufgelistet, und die Sitzung wird Sie nicht auffordern, ihn zu verbinden. Verbinden Sie ihn zuerst in Settings, dann starten Sie eine frische Sitzung. Das Hinzufügen eines Connectors zu einer bereits laufenden Sitzung macht seine Tools auch nicht für Claude verfügbar; starten Sie eine frische Sitzung, um einen neu hinzugefügten Connector aufzugreifen.701* **Einige Connectoren erscheinen nicht in selbstgehosteten Sitzungen**: Ein Connector, den Sie noch nicht in claude.ai Settings verbunden haben, wird nicht in einer selbstgehosteten Sitzung aufgelistet, und die Sitzung wird Sie nicht auffordern, ihn zu verbinden. Verbinden Sie ihn zuerst in Settings, dann starten Sie eine frische Sitzung. Das Hinzufügen eines Connectors zu einer bereits laufenden Sitzung macht seine Tools auch nicht für Claude verfügbar; starten Sie eine frische Sitzung, um einen neu hinzugefügten Connector aufzugreifen.


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

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

608* **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).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).

609* **Sitzungen schlagen sofort nach der Aufnahme fehl**: Öffnen Sie die Sitzung in claude.ai/code, um den Fehler zu sehen. Die häufigsten Ursachen sind fehlende [Git-Anmeldedaten](#configure-git) im Runner-Image und Build-Tools, die nicht installiert sind. Ein nicht beschreibbares Basis-Verzeichnis stoppt den Runner beim Start anstatt Sitzungen zu fehlschlagen. Siehe den **Runner beendet sich beim Start mit `cannot create or write to base directory`**-Eintrag in dieser Liste.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.

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).

610* **Sitzungen können das Netzwerk nicht durch einen authentifizierenden Egress-Proxy erreichen**: Wenn die Quelle, die Sie mit [`--proxy-authorization-command` oder `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) setzen, fehlschlägt, nach 30 Sekunden abläuft oder einen leeren Wert ergibt, antwortet der Runner dieser Verbindung `502 Bad Gateway` und protokolliert warum. Der Runner redigiert das Kommando's stderr in diesem Log und protokolliert niemals den Header-Wert. Mit `--proxy-authorization-command` führen Sie das Kommando selbst auf dem Host aus, um zu bestätigen, dass es den ganzen Header-Wert auf stdout druckt. Wenn der Runner stattdessen beim Start mit `could not start the proxy-authorization listener` beendet wird, konnte er seinen Loopback-Listener nicht öffnen.726* **Sitzungen können das Netzwerk nicht durch einen authentifizierenden Egress-Proxy erreichen**: Wenn die Quelle, die Sie mit [`--proxy-authorization-command` oder `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) setzen, fehlschlägt, nach 30 Sekunden abläuft oder einen leeren Wert ergibt, antwortet der Runner dieser Verbindung `502 Bad Gateway` und protokolliert warum. Der Runner redigiert das Kommando's stderr in diesem Log und protokolliert niemals den Header-Wert. Mit `--proxy-authorization-command` führen Sie das Kommando selbst auf dem Host aus, um zu bestätigen, dass es den ganzen Header-Wert auf stdout druckt. Wenn der Runner stattdessen beim Start mit `could not start the proxy-authorization listener` beendet wird, konnte er seinen Loopback-Listener nicht öffnen.

611* **Runner protokolliert `Poll failed`-Zeilen, die `rejecting the malformed poll response` enthalten**: Der Runner erhielt eine Work-Poll-Antwort, deren Body nicht das erwartete JSON der Warteschlange ist, am häufigsten weil etwas zwischen dem Runner und `api.anthropic.com`, wie ein abfangender Proxy oder ein Captive Portal, seine eigene Seite antwortet. Der Runner lehnt die Antwort ab, zählt sie unter der `transport`-Art der `claude_code_self_hosted_runner_poll_errors_total`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), und versucht erneut auf dem fehlgeschlagenen Poll-Plan, der in [Sitzungs-Lebenszyklus](/docs/de/self-hosted-environments#session-lifecycle) beschrieben ist. Der Runner bedient weiterhin seine Live-Sitzungen. Konfigurieren Sie den Proxy, um Antworten von `api.anthropic.com` unverändert durchzulassen. Vor v2.1.246 las der Runner eine solche Antwort als eine leere Warteschlange, die seine Live-Sitzungen beenden oder ihn zum Exit bringen könnte.727* **Runner protokolliert `Poll failed`-Zeilen, die `rejecting the malformed poll response` enthalten**: Der Runner erhielt eine Work-Poll-Antwort, deren Body nicht das erwartete JSON der Warteschlange ist, am häufigsten weil etwas zwischen dem Runner und `api.anthropic.com`, wie ein abfangender Proxy oder ein Captive Portal, seine eigene Seite antwortet. Der Runner lehnt die Antwort ab, zählt sie unter der `transport`-Art der `claude_code_self_hosted_runner_poll_errors_total`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), und versucht erneut auf dem fehlgeschlagenen Poll-Plan, der in [Sitzungs-Lebenszyklus](/docs/de/self-hosted-environments#session-lifecycle) beschrieben ist. Der Runner bedient weiterhin seine Live-Sitzungen. Konfigurieren Sie den Proxy, um Antworten von `api.anthropic.com` unverändert durchzulassen. Vor v2.1.246 las der Runner eine solche Antwort als eine leere Warteschlange, die seine Live-Sitzungen beenden oder ihn zum Exit bringen könnte.

612* **Ein Sitzungs-Branch existiert nicht mehr auf dem Remote**: Für eine Git-Quelle, die die Sitzung nur liest, überspringt der Runner diese Quelle und setzt auf den verbleibenden fort. Für die Quelle, zu der die Sitzung Ergebnisse pusht, schlägt ein gelöschter Branch, typischerweise weil er gemergt und auto-gelöscht wurde, die Sitzung mit einem Fehler fehl, der das Repository und den Branch benennt und Sie auffordert, den Branch wiederherzustellen und erneut zu versuchen. Der Runner schlägt die Sitzung mit dem gleichen Fehler fehl, wenn das Überspringen sie mit keinem Repository überhaupt verlassen würde. Vor v2.1.228 startete eine solche Sitzung in einem leeren Verzeichnis.728* **Ein Sitzungs-Branch existiert nicht mehr auf dem Remote**: Für eine Git-Quelle, die die Sitzung nur liest, überspringt der Runner diese Quelle und setzt auf den verbleibenden fort. Für die Quelle, zu der die Sitzung Ergebnisse pusht, schlägt ein gelöschter Branch, typischerweise weil er gemergt und auto-gelöscht wurde, die Sitzung mit einem Fehler fehl, der das Repository und den Branch benennt und Sie auffordert, den Branch wiederherzustellen und erneut zu versuchen. Der Runner schlägt die Sitzung mit dem gleichen Fehler fehl, wenn das Überspringen sie mit keinem Repository überhaupt verlassen würde. Vor v2.1.228 startete eine solche Sitzung in einem leeren Verzeichnis.


616 732 

617 Die Zugriffsprüfung läuft jedes Mal erneut, wenn die Sitzung auf einem Runner startet, daher sobald die Git-Identität des Runners Lesezugriff hat, klont der nächste Start das Repository. Vor v2.1.274 schlugen jede dieser Ablehnungen den Sitzungsstart fehl.733 Die Zugriffsprüfung läuft jedes Mal erneut, wenn die Sitzung auf einem Runner startet, daher sobald die Git-Identität des Runners Lesezugriff hat, klont der nächste Start das Repository. Vor v2.1.274 schlugen jede dieser Ablehnungen den Sitzungsstart fehl.

618* **Sitzungen dauern Minuten zum Start**: Der anfängliche Clone dominiert normalerweise. Beobachten Sie die `claude_code_self_hosted_runner_session_init_duration_seconds`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), um zu bestätigen, und schneiden Sie den Clone mit einem [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout) oder einem kleineren `CLAUDE_RUNNER_FETCH_DEPTH`.734* **Sitzungen dauern Minuten zum Start**: Der anfängliche Clone dominiert normalerweise. Beobachten Sie die `claude_code_self_hosted_runner_session_init_duration_seconds`-[Metrik](/docs/de/self-hosted-environments-reference#prometheus-metrics), um zu bestätigen, und schneiden Sie den Clone mit einem [vorgewärmten Checkout](#reuse-a-pre-warmed-checkout) oder einem kleineren `CLAUDE_RUNNER_FETCH_DEPTH`.

619* **Turns schlagen mit einem 401 fehl**: Jede Sitzung authentifiziert Modellaufrufe mit dem kurzlebigen [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/de/self-hosted-environments-configuration#wrapper-scripts), das der Runner von Anthropic abruft und über die Sitzungs-stdin rotiert. Wenn ein Turn mit einem 401 oder 403 von der Modell-API endet, ruft der Runner ein frisches Token ab und übergibt es der Sitzung. Der fehlgeschlagene Turn wird nicht erneut versucht.735* **Turns schlagen mit einem 401 fehl**: Wenn ein Turn mit einem 401 oder 403 von der Anthropic API endet, ruft der Runner ein frisches [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/de/self-hosted-environments-configuration#wrapper-scripts) von Anthropic ab und übergibt es der Sitzung. Der fehlgeschlagene Turn wird nicht erneut versucht. Dieses Token ist kurzlebig, und der Runner rotiert es über die stdin der Sitzung.

620 736 

621 Wenn ein Abruf fehlschlägt, protokolliert der Runner eine `inference_token refresh failed`-Zeile, die sagt, wann er erneut versuchen wird, und er versucht es weiterhin erneut, solange die Sitzung läuft.737 Wenn ein Abruf fehlschlägt, protokolliert der Runner eine `inference_token refresh failed`-Zeile, die sagt, wann er erneut versuchen wird, und er versucht es weiterhin erneut, solange die Sitzung läuft.

622 738 


637 753 

638* **Ein normaler Exit**: Der Runner hat seine Sitzungen beendet und drainiert, seine Ruhezeit erreicht oder wurde angewiesen zu stoppen. Starten Sie ihn neu, damit die Umgebung wieder Kapazität hat. [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle) beschreibt diese Exits.754* **Ein normaler Exit**: Der Runner hat seine Sitzungen beendet und drainiert, seine Ruhezeit erreicht oder wurde angewiesen zu stoppen. Starten Sie ihn neu, damit die Umgebung wieder Kapazität hat. [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle) beschreibt diese Exits.

639* **Ein fehlgeschlagener Start**: Der Runner kann nicht mit der Konfiguration oder dem Host starten, der ihm gegeben wurde, daher beendet er sich Sekunden nach dem Start, und er beendet sich jedes Mal auf die gleiche Weise, wenn Sie ihn neu starten. Ein schnellerer Neustart hilft nicht. Jemand muss seine Ausgabe lesen und die Ursache beheben.755* **Ein fehlgeschlagener Start**: Der Runner kann nicht mit der Konfiguration oder dem Host starten, der ihm gegeben wurde, daher beendet er sich Sekunden nach dem Start, und er beendet sich jedes Mal auf die gleiche Weise, wenn Sie ihn neu starten. Ein schnellerer Neustart hilft nicht. Jemand muss seine Ausgabe lesen und die Ursache beheben.

756* **Verlorener Kontakt**: Ein Runner, der Anthropic länger als seinen [Lease](/docs/de/self-hosted-environments#session-lifecycle) nicht erreichen kann, zum Beispiel während sein Host schläft, kann aus der Umgebung entfernt werden. Wenn sich ein entfernter Runner wieder verbindet, beendet er sich. Sein Log kann eine `[runner:fatal]`-Zeile zeigen, die `runner record gone server-side` oder, nach einem längeren Ausfall, [`poll auth failed`](/docs/de/self-hosted-environments-quickstart#set-up-an-environment-and-runner) enthält. Der Runner registriert sich nicht von selbst erneut, starten Sie ihn also neu.

640 757 

641Konfigurieren Sie Ihren Supervisor, um den Runner jedes Mal neu zu starten, wenn er beendet wird, länger zwischen Neustarts zu warten, wenn der Runner sich weiterhin direkt nach dem Start beendet, und jemandem zu sagen, wenn das weiterhin passiert.758Konfigurieren Sie Ihren Supervisor, um den Runner jedes Mal neu zu starten, wenn er beendet wird, länger zwischen Neustarts zu warten, wenn der Runner sich weiterhin direkt nach dem Start beendet, und jemandem zu sagen, wenn das weiterhin passiert.

642 759 

Details

195 195 

196Wrapper erhalten den absoluten Pfad zum Binär des Runners selbst in `CLAUDE_RUNNER_CLAUDE_BIN`; verwenden Sie diesen Pfad anstelle eines PATH-aufgelösten `claude`, damit die Dekodierung auf dem gleichen Binär läuft, das der Runner selbst verwendet.196Wrapper erhalten den absoluten Pfad zum Binär des Runners selbst in `CLAUDE_RUNNER_CLAUDE_BIN`; verwenden Sie diesen Pfad anstelle eines PATH-aufgelösten `claude`, damit die Dekodierung auf dem gleichen Binär läuft, das der Runner selbst verwendet.

197 197 

198Verwenden Sie `jq -re` anstelle von `jq -r`, damit ein fehlender Anspruch einen Exit-Code ungleich Null verursacht. Mit nur `-r` gibt ein fehlender Anspruch die Literalzeichenkette `null` aus und beendet mit Null, was einen schlechten Wert stillschweigend nachgelagert übergibt. Übergeben Sie `--no-verify` an `decode-token` nur zur Offline-Inspektion, wenn der JWKS-Endpunkt nicht erreichbar ist.198Verwenden Sie `jq -re` anstelle von `jq -r`, damit ein fehlender Anspruch einen Exit-Code ungleich Null verursacht. Mit nur `-r` gibt ein fehlender Anspruch die Literalzeichenkette `null` aus und beendet mit Null, was einen schlechten Wert stillschweigend nachgelagert übergibt.

199 

200Wenn `decode-token` die Schlüssel nicht vom JWKS-Endpunkt abrufen oder den Token nicht verifizieren kann, gibt es den Grund auf stderr aus, gibt keine Ansprüche aus und beendet sich mit Code 1. Übergeben Sie `--no-verify` an `decode-token` nur zur Offline-Inspektion, wenn der JWKS-Endpunkt nicht erreichbar ist.

199 201 

200<h2 id="claims-reference">202<h2 id="claims-reference">

201 Claims-Referenz203 Claims-Referenz

Details

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

38 39 

39<h3 id="software-on-the-runner-host">40<h3 id="software-on-the-runner-host">


57 Richten Sie eine Umgebung und einen Runner ein58 Richten Sie eine Umgebung und einen Runner ein

58</h2>59</h2>

59 60 

60Claude Code enthält ein geführtes Setup: eine interaktive Claude Code-Sitzung, die Sie durch das Erstellen der Umgebung in der Admin-Benutzeroberfläche führt, einen lokalen Runner mit der Geheimnis-Datei startet, die Sie speichern, bestätigt, dass sich der Runner registriert, und ein Spickzettel zu `./runner-setup/CHEAT-SHEET.md` schreibt. Führen Sie es auf einem Computer aus, auf dem Sie sich mit `claude auth login` mit einem Konto angemeldet haben, das eine Owner-Rolle hat; es ist nicht mit API-Schlüsseln oder Drittanbieter-Modellanbietern verfügbar. Auf Hosts, wo eine interaktive Sitzung nicht möglich ist, verwenden Sie stattdessen die manuellen Schritte unten. Bestätigen Sie zuerst, dass die [Versionsüberprüfung](#software-on-the-runner-host) bestanden wurde: Bei Versionen älter als 2.1.224 startet dieser Befehl eine gewöhnliche Claude-Sitzung mit den Wörtern als Eingabeaufforderung statt des geführten Setups. Um das geführte Setup zu starten, führen Sie den Setup-Unterbefehl aus und folgen Sie den Eingabeaufforderungen:61Verwenden Sie entweder das [geführte Setup](#run-the-guided-setup) oder die [manuellen Schritte](#set-up-manually). Das geführte Setup ist ein einzelner Befehl, der eine interaktive Claude Code-Sitzung startet und Sie durch den Rest führt. Verwenden Sie stattdessen die manuellen Schritte auf einem Host, auf dem eine interaktive Sitzung nicht möglich ist. Verwenden Sie sie auch, wenn jemand mit der Owner-Rolle die Umgebung erstellt und Ihnen ihr Geheimnis übergeben hat, da das geführte Setup eine Owner-Anmeldung erfordert.

62 

63<h3 id="run-the-guided-setup">

64 Geführtes Setup ausführen

65</h3>

66 

67Das geführte Setup führt Sie durch das Erstellen der Umgebung in der Admin-Benutzeroberfläche, startet einen lokalen Runner mit der Geheimnis-Datei, die Sie speichern, bestätigt, dass sich der Runner registriert, und schreibt einen Spickzettel nach `./runner-setup/CHEAT-SHEET.md`. Bevor Sie es ausführen, überprüfen Sie Ihre Anmeldung und Version:

68 

69* **Anmeldung**: Führen Sie es auf einem Computer aus, auf dem Sie sich mit `claude auth login` mit einem Konto angemeldet haben, das eine Owner-Rolle hat. Mit nur einem API-Schlüssel oder einem Drittanbieter-Modellanbieter startet die Sitzung, aber ihre Organisationsprüfungen schlagen fehl.

70* **Version**: Bestätigen Sie, dass die [Versionsüberprüfung](#software-on-the-runner-host) bestanden wurde. Bei Versionen älter als 2.1.224 startet der Setup-Befehl eine Claude-Sitzung mit den Wörtern als Prompt statt des geführten Setups.

71 

72Um das geführte Setup zu starten, führen Sie den Setup-Unterbefehl in Ihrer Shell aus und folgen Sie den Anweisungen:

61 73 

62```bash theme={null}74```bash theme={null}

63claude self-hosted-runner setup75claude self-hosted-runner setup

64```76```

65 77 

66Um stattdessen manuell einzurichten:78Das Setup startet selbst keine Test-Sitzung: Es fordert Sie auf, eine unter claude.ai/code zu starten. Der letzte Schritt des Setups stoppt den Runner, den es gestartet hat. Wenn Sie das Setup vor diesem Schritt verlassen, läuft der Runner weiter. Um nach dem letzten Schritt weiterzumachen, starten Sie den Runner in Ihrer Shell erneut mit dem Befehl in `./runner-setup/CHEAT-SHEET.md` und [leiten Sie dann eine Sitzung zur Umgebung weiter](#route-a-session).

79 

80<h3 id="set-up-manually">

81 Manuell einrichten

82</h3>

83 

84Erstellen Sie die Umgebung auf claude.ai, starten Sie den Runner über ein Terminal auf dem Host und kehren Sie dann zu claude.ai zurück, um zu bestätigen, dass der Runner angezeigt wird, und eine Sitzung an ihn weiterzuleiten. Wenn jemand mit der Owner-Rolle die Umgebung bereits erstellt und Ihnen ihr Geheimnis übergeben hat, beginnen Sie bei Schritt 2.

67 85 

68<Steps>86<Steps>

69 <Step title="Erstellen Sie eine Umgebung">87 <Step title="Erstellen Sie eine Umgebung">


73 </Step>91 </Step>

74 92 

75 <Step title="Starten Sie einen Runner">93 <Step title="Starten Sie einen Runner">

76 Erstellen Sie das Geheimnis-Verzeichnis. Dieser Schritt und der nächste benötigen Root für den `/etc/claude`-Pfad; jeder Pfad, den der Runner-Prozess lesen kann, funktioniert, also passen Sie beide Befehle und den `--environment-secret-file`-Wert zusammen an, wenn Sie einen anderen verwenden.94 Erstellen Sie das Geheimnis-Verzeichnis. Dieser Befehl und der nächste verwenden `/etc/claude`, was Root-Rechte erfordert, und die Geheimnis-Datei, die sie erstellen, ist nur für den Benutzer lesbar, der sie ausführt. Wenn der Runner als anderer Benutzer ausgeführt wird, beendet er sich mit `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')`. Führen Sie in diesem Fall beide Befehle als Benutzer des Runners aus, mit einem Verzeichnis anstelle von `/etc/claude`, in das dieser Benutzer schreiben kann, und übergeben Sie denselben Pfad an `--environment-secret-file`. Jeder Pfad, den der Runner-Prozess lesen kann, funktioniert.

77 95 

78 ```bash theme={null}96 ```bash theme={null}

79 mkdir -p /etc/claude97 mkdir -p /etc/claude


89 107 

90 Wenn der Runner nicht in den Pfad erstellen oder schreiben kann, beendet er sich beim Start mit einem Fehler, der das Verzeichnis benennt, statt sich zu registrieren. Siehe [Troubleshooting](/docs/de/self-hosted-environments-deploy#troubleshooting).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).

91 109 

92 Starten Sie dann den Runner mit `--environment-secret-file` und `--base-dir`. Der Runner registriert sich bei Ihrer Umgebung und beginnt, auf Arbeit zu warten. Wenn der Runner beendet wird, starten Sie ihn manuell neu. Produktionsbereitstellungen führen den Runner unter einem Orchestrator aus, der beendete Runner neu startet, normalerweise mit einem frischen Dateisystem pro Neustart; [Wiederverwendung eines vorgewärmten Checkouts](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) behandelt das unterstützte Persistent-Disk-Setup.110 Starten Sie dann den Runner mit `--environment-secret-file` und `--base-dir`:

93 111 

94 ```bash theme={null}112 ```bash theme={null}

95 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'113 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

96 ```114 ```

115 

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.

97 </Step>117 </Step>

98 118 

99 <Step title="Überprüfen Sie, ob der Runner angezeigt wird">119 <Step title="Überprüfen Sie, ob der Runner angezeigt wird">

100 Kehren Sie zur [**Cloud-Umgebungen** Seite](https://claude.ai/admin-settings/cloud-environments) zurück. Der Status Ihrer Umgebung ändert sich innerhalb weniger Sekunden nach dem Start des Runners von **Keine Runner bereitgestellt** zu **Healthy**; öffnen Sie die Umgebung und wählen Sie **Aktivität**, um den Runner selbst zu sehen.120 Kehren Sie zur [**Cloud-Umgebungen** Seite](https://claude.ai/admin-settings/cloud-environments) zurück. Der Status Ihrer Umgebung ändert sich innerhalb weniger Sekunden nach dem Start des Runners von **Keine Runner bereitgestellt** zu **Healthy**; öffnen Sie die Umgebung und wählen Sie **Aktivität**, um den Runner selbst zu sehen. Wenn Sie keinen Zugriff auf die Admin-Seite haben, liefert Ihnen die Zeile `Registered: runner_id=<runner-id>` im Log des Runners aus dem vorherigen Schritt dasselbe Signal.

101 </Step>121 </Step>

102 122 

103 <Step title="Leiten Sie eine Sitzung zur Umgebung weiter">123 <Step title="Leiten Sie eine Sitzung zur Umgebung weiter">

104 Starten Sie eine Sitzung unter claude.ai/code und wählen Sie Ihre Umgebung aus dem Umgebungs-Picker, wo selbstgehostete Umgebungen neben von Anthropic gehosteten angezeigt werden. Der Runner klont mit den Git-Anmeldedaten, die der Host bereits hat, also wählen Sie ein Repository, das dieser Host bereits klonen kann, oder ein öffentliches; Anmeldedaten-Optionen für private Repositories in der Produktion befinden sich auf [Git konfigurieren](/docs/de/self-hosted-environments-deploy#configure-git). Der nächste verfügbare Runner nimmt die wartende Sitzung auf und protokolliert `Picked up session <session-id>` zusammen mit seiner aktiven Anzahl und Kapazität, damit Sie aus der eigenen Ausgabe des Runners bestätigen können, welcher Host die Sitzung übernahm. Beobachten Sie die Sitzungsarbeit und lesen Sie Claudes Antworten unter [claude.ai/code](https://claude.ai/code). Wenn die Sitzung stattdessen in der Warteschlange sitzt, siehe [Troubleshooting](/docs/de/self-hosted-environments-deploy#troubleshooting).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.

125 

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).

127 

128 Wenn die Sitzung nicht mit der Arbeit beginnt, orientieren Sie sich an dem, was Sie sehen:

129 

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

105 </Step>132 </Step>

106</Steps>133</Steps>

107 134 

108Der Runner beendet sich absichtlich, sobald seine aktiven Sitzungen beendet sind; siehe [Runner-Lebenszyklus](/docs/de/self-hosted-environments#runner-lifecycle). Für die Produktion stellen Sie ihn unter einem Orchestrator bereit, der ihn beim Beenden neu startet und länger zwischen Neustarts wartet, wenn der Runner kurz nach dem Start immer wieder beendet wird. Siehe [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy) und [Wenn der Runner beendet wird](/docs/de/self-hosted-environments-deploy#when-the-runner-exits).135<h3 id="if-the-runner-exits">

136 Wenn der Runner sich beendet

137</h3>

138 

139Wenn der Runner sich während dieses Schnellstarts beendet, starten Sie ihn mit demselben Befehl erneut. Der Runner kann sich von selbst beenden:

140 

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).

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.

143 

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.

145 

146Für die Produktion stellen Sie den Runner unter einem Orchestrator bereit, der ihn beim Beenden neu startet und länger zwischen Neustarts wartet, wenn der Runner sich kurz nach dem Start immer wieder beendet. Siehe [Bereitstellung in der Produktion](/docs/de/self-hosted-environments-deploy) und [Wenn der Runner beendet wird](/docs/de/self-hosted-environments-deploy#when-the-runner-exits).

109 147 

110<h2 id="send-a-follow-up-message-to-a-running-session">148<h2 id="send-a-follow-up-message-to-a-running-session">

111 Senden Sie eine Nachricht an eine laufende Sitzung149 Senden Sie eine Nachricht an eine laufende Sitzung

Details

52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Geben Sie einen Session-Slot nach N Minuten Inaktivität frei, sobald ein Zug beendet ist oder die Sitzung auf die Aktion des Benutzers wartet. Eine Sitzung, die sich noch mitten in einem Zug befindet, einschließlich einer, die eine nie endende Hintergrundaufgabe hält oder eine Genehmigung anfordert, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, zählt nicht als untätig; koppeln Sie mit `--kill-session-after-min` als harter Backstop. Nach einer Sitzung, deren Hintergrundaufgabe beendet ist, betrachtet der Runner die Sitzung als beschäftigt, bis der Folgezug, der das Ergebnis liest, beginnt, für höchstens das Fenster [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Bis der Runner ein Shutdown-Signal empfängt oder seine Ruhestandszeit erreicht, startet eine Freigabe, die den Runner ohne aktive Sitzungen hinterlässt, denselben Ausstiegspfad wie eine normale Entleerung, gesteuert durch `--drain-grace-sec`. Nach einem ersten Signal, das Sie mit [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) verschoben haben, beendet sich der Runner, sobald eine Freigabe ihn ohne Sitzungen hinterlässt. `0` deaktiviert. |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Geben Sie einen Session-Slot nach N Minuten Inaktivität frei, sobald ein Zug beendet ist oder die Sitzung auf die Aktion des Benutzers wartet. Eine Sitzung, die sich noch mitten in einem Zug befindet, einschließlich einer, die eine nie endende Hintergrundaufgabe hält oder eine Genehmigung anfordert, die von innerhalb eines laufenden Tool-Aufrufs angefordert wird, zählt nicht als untätig; koppeln Sie mit `--kill-session-after-min` als harter Backstop. Nach einer Sitzung, deren Hintergrundaufgabe beendet ist, betrachtet der Runner die Sitzung als beschäftigt, bis der Folgezug, der das Ergebnis liest, beginnt, für höchstens das Fenster [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Bis der Runner ein Shutdown-Signal empfängt oder seine Ruhestandszeit erreicht, startet eine Freigabe, die den Runner ohne aktive Sitzungen hinterlässt, denselben Ausstiegspfad wie eine normale Entleerung, gesteuert durch `--drain-grace-sec`. Nach einem ersten Signal, das Sie mit [`--defer-shutdown-max-min`](/docs/de/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) verschoben haben, beendet sich der Runner, sobald eine Freigabe ihn ohne Sitzungen hinterlässt. `0` deaktiviert. |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | aus | Entfernen Sie die Pro-Sitzungs-Verzeichnisse einer Sitzung unter `<base-dir>/_sessions/`, wenn die Sitzung auf diesem Runner endet, unabhängig vom Ergebnis. [Verwenden Sie einen vorgefüllten Checkout erneut](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) beschreibt, was sie enthalten und wer sie lesen kann, wenn sie bleiben. Die Entfernung ist Best-Effort: Die Pro-Sitzungs-Verzeichnisse bleiben an Ort und Stelle, wenn der Runner beendet wird oder seine Drain-Frist erreicht, bevor die Bereinigung ausgeführt wird. Mit dem Flag an, wird das Debug-Protokoll einer fehlgeschlagenen oder unterbrochenen Sitzung nicht auf der Festplatte gespeichert. Erfordert Claude Code v2.1.268 oder später. |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | aus | Entfernen Sie die Pro-Sitzungs-Verzeichnisse einer Sitzung unter `<base-dir>/_sessions/`, wenn die Sitzung auf diesem Runner endet, unabhängig vom Ergebnis. [Verwenden Sie einen vorgefüllten Checkout erneut](/docs/de/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) beschreibt, was sie enthalten und wer sie lesen kann, wenn sie bleiben. Die Entfernung ist Best-Effort: Die Pro-Sitzungs-Verzeichnisse bleiben an Ort und Stelle, wenn der Runner beendet wird oder seine Drain-Frist erreicht, bevor die Bereinigung ausgeführt wird. Mit dem Flag an, wird das Debug-Protokoll einer fehlgeschlagenen oder unterbrochenen Sitzung nicht auf der Festplatte gespeichert. Erfordert Claude Code v2.1.268 oder später. |

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| `--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. |

56| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Geben Sie einen Session-Slot frei, wenn das Kind nicht signalisiert hat, dass es sich innerhalb von N Minuten nach dem Erzeugen initialisiert hat. Gelöscht durch das Init-Signal des Kindes auf dem [Activity-Kanal](/docs/de/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), nicht durch gewöhnliche Ausgabe, danach übernimmt `--release-idle-session-min`. `0` deaktiviert. |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| `--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. |

58| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | aus | Klonen Sie über den [Anthropic Git-Proxy](/docs/de/self-hosted-environments-deploy#use-the-anthropic-git-proxy) anstatt über kundenverwaltete Git-Authentifizierung. Erfordert `--capacity 1` und Git 2.32 oder neuer; der Runner weigert sich, andernfalls zu starten. Ersetzt die Rewrite-Flags. |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 60 

60Die meisten Duration-Flags haben ein Maximum, das gewählt wurde, um jeden Timeout unter der 32-Bit-Timer-Obergrenze der Laufzeit von ungefähr 24,85 Tagen zu halten. Die `--*-min` Flags sind auf 10080 Minuten, 7 Tage begrenzt; `--drain-grace-sec` auf 604800 Sekunden, auch 7 Tage; und `--drain-wait-sec` auf 86400 Sekunden, 24 Stunden. `--session-stop-grace-sec` und `--post-session-hook-timeout-sec` sind unbegrenzt. Das Überschreiten einer Obergrenze verhält sich je nach Oberfläche unterschiedlich:61Die meisten Duration-Flags haben ein Maximum, das gewählt wurde, um jeden Timeout unter der 32-Bit-Timer-Obergrenze der Laufzeit von ungefähr 24,85 Tagen zu halten. Die `--*-min` Flags sind auf 10080 Minuten, 7 Tage begrenzt; `--drain-grace-sec` auf 604800 Sekunden, auch 7 Tage; und `--drain-wait-sec` auf 86400 Sekunden, 24 Stunden. `--session-stop-grace-sec` und `--post-session-hook-timeout-sec` sind unbegrenzt. Das Überschreiten einer Obergrenze verhält sich je nach Oberfläche unterschiedlich:

61 62 

62* **Flag**: Der Start schlägt mit einem Fehler fehl.63* **Flag**: Der Start schlägt mit einem Fehler fehl.

63* **Umgebungsvariable**: Der Runner begrenzt den Wert auf die Timer-Obergrenze, anstatt ihn abzulehnen.64* **Umgebungsvariable**: Der Runner begrenzt den Wert auf die Timer-Obergrenze, anstatt ihn abzulehnen.

64 65 

66<h3 id="auto-mode-rule-lists">

67 Regellisten des Auto-Modus

68</h3>

69 

70Mit `--server-auto-mode-lists` legen Sie fest, welche Klassifikatorregeln des [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) von außerhalb des Runners die Sitzungen auf Ihren Runnern erreichen. Die Control Plane von Anthropic kann Regellisten mit einer Sitzung senden und den Runner auffordern, sie anzuwenden. Einige Einträge können Regeln sein, die ein Admin Ihrer Organisation geschrieben hat. Die Listen sind `environment`, `soft_deny` und `allow`:

71 

72* **`environment`**: Ein Eintrag kann den Klassifikator dazu bringen, sowohl mehr als auch weniger zuzulassen.

73* **`soft_deny`**: Ein Eintrag blockiert eine Aktion, es sei denn, der Benutzer hat ausdrücklich darum gebeten oder eine `allow`-Ausnahme greift.

74* **`allow`**: Die Ausnahmen zu `soft_deny`-Einträgen.

75 

76Der Wert des Flags bestimmt, welche Listen der Runner anwendet:

77 

78* **`no-allow`**: Der Standard. Wendet `environment` und `soft_deny` an und hält `allow` zurück. Ein `environment`-Eintrag kann den Klassifikator weiterhin dazu bringen, mehr zuzulassen, sodass der Standard nicht jede Lockerung ausschließt.

79* **`all`**: Wendet alle drei Listen an.

80* **`none`**: Wendet keine davon an. Wählen Sie `none`, um jede Lockerung durch diese Listen auszuschließen. Dabei entfallen auch die Einschränkungen von `soft_deny`.

81 

82Keine Runner-Einstellung veranlasst die Control Plane, den Runner zur Anwendung der Listen aufzufordern. Wenn sie nicht dazu auffordert, erhalten Sitzungen keine Liste, unabhängig davon, was Sie setzen. Um zu sehen, was geschehen ist, starten Sie den Runner mit `--log-level debug`. Für jede Sitzung protokolliert der Runner dann eine Zeile, die `the server asked this runner to apply` enthält, oder eine, die `the server did not ask this runner to apply the auto mode lists it sends` enthält.

83 

65<h2 id="orchestrator-cli-flags">84<h2 id="orchestrator-cli-flags">

66 Orchestrator-CLI-Flags85 Orchestrator-CLI-Flags

67</h2>86</h2>


72| :- | :- | :- |91| :- | :- | :- |

73| `--hook-concurrency <n>` | `4` | Maximale `spawn-runner` Hooks, die parallel laufen. Begrenzt auch, wie viele Spawn-Anfragen pro Abfrage beansprucht werden. |92| `--hook-concurrency <n>` | `4` | Maximale `spawn-runner` Hooks, die parallel laufen. Begrenzt auch, wie viele Spawn-Anfragen pro Abfrage beansprucht werden. |

74| `--hook-timeout <sec>` | `60` | Beenden Sie den Prozessbaum des Hooks nach dieser vielen Sekunden. Das Timeout plus seine 5-Sekunden-Kill-Gnadenfrist müssen unter `--expected-spawn-seconds` bleiben; der Orchestrator erzwingt dies beim Start. |93| `--hook-timeout <sec>` | `60` | Beenden Sie den Prozessbaum des Hooks nach dieser vielen Sekunden. Das Timeout plus seine 5-Sekunden-Kill-Gnadenfrist müssen unter `--expected-spawn-seconds` bleiben; der Orchestrator erzwingt dies beim Start. |

75| `--expected-spawn-seconds <sec>` | `120` | Erwartete p99-Bootzeit für erzeugte Runner, im servererzwungenen Bereich 10 bis 3600. Wird bei jeder Abfrage als Server-seitige Lease gesendet; wenn sich kein Runner registriert, bevor er verstreicht, wird die Sitzung mit einer frischen Bestellungs-ID erneut angeboten. Alle Replikas müssen diesen Wert teilen. |94| `--expected-spawn-seconds <sec>` | `120` | Erwartete p99-Zeit vom Empfang einer Spawn-Anfrage durch den Orchestrator bis zur Registrierung des Runners, einschließlich einer etwaigen Wartezeit auf Kapazität auf Ihrer Plattform. Der Server erzwingt einen Bereich von 10 bis 3600. Wird bei jeder Abfrage als Server-seitige Lease gesendet: Wenn sich kein Runner registriert, bevor sie verstreicht, wird die Sitzung mit einer frischen Bestellungs-ID erneut angeboten. Alle Replikas müssen diesen Wert teilen. |

76| `--min-idle <n>` | `0` | Halten Sie mindestens N untätige Session-Slots frei, indem Sie proaktiv Standby-Runner erzeugen. `0` deaktiviert Vorwärmung. Koppeln Sie mit dem `--exit-if-unused-min` des Runners, sodass überschüssige Standby-Runner sich selbst zurückfordern. |95| `--min-idle <n>` | `0` | Halten Sie mindestens N untätige Session-Slots frei, indem Sie proaktiv Standby-Runner erzeugen. `0` deaktiviert Vorwärmung. Koppeln Sie mit dem `--exit-if-unused-min` des Runners, sodass überschüssige Standby-Runner sich selbst zurückfordern. |

77| `--debug-dir <path>` | nicht gesetzt | Schreiben Sie die Work-Order und Hook-Stderr jeder Spawn-Anfrage auf die Festplatte. Nur zum Debuggen; niemals in der Produktion setzen. |96| `--debug-dir <path>` | nicht gesetzt | Schreiben Sie die Work-Order und Hook-Stderr jeder Spawn-Anfrage auf die Festplatte. Nur zum Debuggen; niemals in der Produktion setzen. |

78 97 


108| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | Obergrenze für die Zeit, die der Runner eine Sitzung als beschäftigt für die `--drain-wait-sec` Entleerung nach Abschluss eines Zugs zählt, während der Prozess der Sitzung das Ende des Zugs an Anthropic meldet. `0` oder ein unbrauchbarer Wert fällt auf den Standard zurück, sodass die Sperre nicht ausgeschaltet werden kann. Erfordert Claude Code v2.1.275 oder später. |127| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | Obergrenze für die Zeit, die der Runner eine Sitzung als beschäftigt für die `--drain-wait-sec` Entleerung nach Abschluss eines Zugs zählt, während der Prozess der Sitzung das Ende des Zugs an Anthropic meldet. `0` oder ein unbrauchbarer Wert fällt auf den Standard zurück, sodass die Sperre nicht ausgeschaltet werden kann. Erfordert Claude Code v2.1.275 oder später. |

109| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Wie lange der Runner wartet, bis das Betriebssystem `SIGKILL` an ein Kind sendet, das in nicht unterbrechbarem I/O steckt, bevor es sich selbst beendet. Auf `--post-session-hook-timeout-sec` plus 15 Sekunden begrenzt, und 30 weitere, wenn `--push-outcome-on-release` gesetzt ist, sodass das effektive Minimum 75 Sekunden bei Standardwerten ist. |128| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Wie lange der Runner wartet, bis das Betriebssystem `SIGKILL` an ein Kind sendet, das in nicht unterbrechbarem I/O steckt, bevor es sich selbst beendet. Auf `--post-session-hook-timeout-sec` plus 15 Sekunden begrenzt, und 30 weitere, wenn `--push-outcome-on-release` gesetzt ist, sodass das effektive Minimum 75 Sekunden bei Standardwerten ist. |

110| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Git-Fetch-Tiefe für frische Klone. Setzen Sie eine positive Ganzzahl oder `full` oder `0` für einen vollständigen Fetch. Repositories, die bereits im Arbeitsbereich vorhanden sind, behalten ihre bestehende Tiefe. |129| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Git-Fetch-Tiefe für frische Klone. Setzen Sie eine positive Ganzzahl oder `full` oder `0` für einen vollständigen Fetch. Repositories, die bereits im Arbeitsbereich vorhanden sind, behalten ihre bestehende Tiefe. |

130| `CLAUDE_RUNNER_FETCH_SERVER_PROGRESS_CAP_MS` | `600000` | Wie lange in Millisekunden pro Versuch ein Git-Fetch auf seine ersten Daten warten darf, während die eigenen Fortschrittszahlen des Git-Servers weiter steigen, etwa wenn der Server das Pack für ein großes Repository vorbereitet. `0` oder `off` schaltet das Warten aus: Ein solcher Fetch wird dann nach zwei Minuten ohne Daten abgebrochen. Jede andere Ganzzahl wird auf einen Wert zwischen `120000` und `1800000` begrenzt, also 2 bis 30 Minuten. Erfordert Claude Code v2.1.295 oder später. |

111| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | nicht gesetzt | Wenn `1`, überspringen Sie die `.git` Präsenzprüfung, nachdem ein `checkout` Hook ausgeführt wird. Setzen Sie dies, wenn Ihr Hook eine Nicht-Git-Quelle materialisiert. |131| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | nicht gesetzt | Wenn `1`, überspringen Sie die `.git` Präsenzprüfung, nachdem ein `checkout` Hook ausgeführt wird. Setzen Sie dies, wenn Ihr Hook eine Nicht-Git-Quelle materialisiert. |

112| `FORCE_AUTOUPDATE_PLUGINS` | nicht gesetzt | Wenn `1`, lassen Sie Plugin-Marktplätze automatisch aktualisieren, obwohl die Binärdatei angeheftet ist |132| `FORCE_AUTOUPDATE_PLUGINS` | nicht gesetzt | Wenn `1`, lassen Sie Plugin-Marktplätze automatisch aktualisieren, obwohl die Binärdatei angeheftet ist |

113| `CLAUDE_CODE_DISABLE_ARTIFACT` | nicht gesetzt | Wenn `1`, deaktivieren Sie das Artifact-Tool in Sitzungen unabhängig von der Admin-Einstellung der Organisation und löschen Sie die `*.frame.claudeusercontent.com` Egress-Anforderung |133| `CLAUDE_CODE_DISABLE_ARTIFACT` | nicht gesetzt | Wenn `1`, deaktivieren Sie das Artifact-Tool in Sitzungen unabhängig von der Admin-Einstellung der Organisation und löschen Sie die `*.frame.claudeusercontent.com` Egress-Anforderung |


178| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Kumulative PollSpawnHints-Fehler nach Art: `transport`, `timeout`, `5xx`, `429` oder `4xx`. Alle fünf Reihen sind vom Prozessstart vorhanden; Warnung bei `rate(...[5m]) > 0`. |198| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Kumulative PollSpawnHints-Fehler nach Art: `transport`, `timeout`, `5xx`, `429` oder `4xx`. Alle fünf Reihen sind vom Prozessstart vorhanden; Warnung bei `rate(...[5m]) > 0`. |

179| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Spawn-Anfragen, die jetzt beanspruchbar sind |199| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Spawn-Anfragen, die jetzt beanspruchbar sind |

180| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Spawn-Anfragen in Retry-Backoff nach einem wiederholbaren Hook-Fehler |200| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Spawn-Anfragen in Retry-Backoff nach einem wiederholbaren Hook-Fehler |

181| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Spawn-Anfragen, die blockiert sind, bis ein Owner sie von der Registerkarte **Aktivität** der Umgebung erneut versucht; Warnung, wenn über Null |201| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Sitzungen, deren Erzeugung blockiert ist. Jede bleibt blockiert, bis ein Benutzer ihr eine neue Nachricht sendet oder ein Owner sie über die Registerkarte **Aktivität** der Umgebung erneut versucht. Der Wert kann über Null bleiben, nachdem Sie die Ursache behoben haben. Warnung, wenn über Null. |

182| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Gesamtsitzungen, die auf einen Runner für diese Umgebung warten. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |202| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Gesamtsitzungen, die auf einen Runner für diese Umgebung warten. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |

183| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sitzungen, die derzeit einem lebenden Runner in dieser Umgebung zugewiesen sind. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |203| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sitzungen, die derzeit einem lebenden Runner in dieser Umgebung zugewiesen sind. Umgebungsweites Aggregat, identisch auf jeder Orchestrator-Instanz: Verwenden Sie `MAX` statt `SUM` über Instanzen. |

184| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Kumulative `spawn-runner` Hook-Ergebnisse: `ok`, `retryable`, `non_retryable`. Zählt Orchestrator-Hook-Aufrufe, nicht Session-Kinder, die die Runner erzeugen: nicht vergleichbar mit `sessions_started_total`, da Kapazität über eins, warme Pools und Runner, die erneut für dieselbe Sitzung erzeugt werden, die beiden divergieren. |204| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Kumulative `spawn-runner` Hook-Ergebnisse: `ok`, `retryable`, `non_retryable`. Zählt Orchestrator-Hook-Aufrufe, nicht Session-Kinder, die die Runner erzeugen: nicht vergleichbar mit `sessions_started_total`, da Kapazität über eins, warme Pools und Runner, die erneut für dieselbe Sitzung erzeugt werden, die beiden divergieren. |


273 for: 2m293 for: 2m

274 labels: {severity: critical}294 labels: {severity: critical}

275 annotations:295 annotations:

276 summary: "Orchestrator {{ $labels.pod }} kann die Anthropic-Kontrolleben nicht erreichen"296 summary: "Orchestrator {{ $labels.pod }} kann die Anthropic-Kontrollebene nicht erreichen"

277 - alert: ClaudeOrchestratorPollStale297 - alert: ClaudeOrchestratorPollStale

278 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90298 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90

279 for: 2m299 for: 2m


285 for: 1m305 for: 1m

286 labels: {severity: critical}306 labels: {severity: critical}

287 annotations:307 annotations:

288 summary: "{{ $value }} Sitzungen unterbrochen — spawn-runner Hook ist wiederholt nicht wiederholbar; beheben Sie die Infrastruktur und versuchen Sie es erneut von der Registerkarte Aktivität"308 summary: "Sitzungen mit blockierter Erzeugung: {{ $value }}. Lesen Sie den Fehler jeder Sitzung auf der Registerkarte Aktivität, beheben Sie die Ursache und wählen Sie dann Retry"

289 - alert: ClaudeOrchestratorPollErrors309 - alert: ClaudeOrchestratorPollErrors

290 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0310 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

291 for: 2m311 for: 2m


320 340 

321Vor v2.1.260 beendete der Runner jede Sitzung, die ihr `--kill-session-after-min` Limit erreichte, und zählte sie in `sessions_interrupted_total`.341Vor v2.1.260 beendete der Runner jede Sitzung, die ihr `--kill-session-after-min` Limit erreichte, und zählte sie in `sessions_interrupted_total`.

322 342 

323Der [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session) `CLAUDE_RUNNER_EXIT_REASON` klassifiziert saubere Übergaben unterschiedlich. Der Hook meldet eine Freigabe, ein Startup-Timeout und eine Server-Deassign als `interrupted`, da der Runner das Kind stoppte. Diese Zähler zeichnen die gleichen Ereignisse als `completed` auf, da der Slot sauber zurückgegeben wurde.343Der [`post-session` Hook](/docs/de/self-hosted-environments-configuration#post-session) `CLAUDE_RUNNER_EXIT_REASON` klassifiziert saubere Übergaben unterschiedlich. Der Hook meldet diese als `interrupted`, da der Runner das Kind stoppte: eine Freigabe, ein Startup-Timeout, ein Server-Deassign sowie ein Archivieren oder Löschen, das die Abfrage zuerst bemerkte. Diese Zähler zeichnen die gleichen Ereignisse als `completed` auf, da der Slot sauber zurückgegeben wurde.

324 344 

325Wenn Sie Hook-Quittungen direkt gegen `sessions_completed_total` abstimmen, unterzählen Sie Abschlüsse. Verwenden Sie den Hook für Pro-Session-Garantien und die Zähler für Aggregatraten.345Wenn Sie Hook-Quittungen direkt gegen `sessions_completed_total` abstimmen, unterzählen Sie Abschlüsse. Verwenden Sie den Hook für Pro-Session-Garantien und die Zähler für Aggregatraten.

326 346 

Details

87 87 

88Die Dispatch-Flags `--environment` und `--ref` erfordern Claude Code v2.1.224 oder später auf dem Computer, auf dem das Skript ausgeführt wird, die gleiche Untergrenze wie der Runner selbst. Mit dem Hook an Ort und Stelle und einem auf diesem Host gestarteten Runner führt das Test-Skript folgende Schritte aus:88Die Dispatch-Flags `--environment` und `--ref` erfordern Claude Code v2.1.224 oder später auf dem Computer, auf dem das Skript ausgeführt wird, die gleiche Untergrenze wie der Runner selbst. Mit dem Hook an Ort und Stelle und einem auf diesem Host gestarteten Runner führt das Test-Skript folgende Schritte aus:

89 89 

901. Erstellt eine Sitzung in der Test-Umgebung mit `claude -p "<prompt>" --environment <environment-id> --output-format json`, ausgeführt aus einem Git-Checkout, damit die CLI das Repository aus dem `origin`-Remote automatisch erkennen kann. Das optionale `--ref <branch>` basiert auf dem Checkout der Sitzung auf einer benannten Referenz statt auf lokalem HEAD. Der Befehl erstellt die Sitzung, gibt eine Zeile JSON mit `session_id` aus und beendet sich, ohne auf Claudes Antwort zu warten.901. Erstellt eine Sitzung in der Test-Umgebung mit `claude -p "<prompt>" --environment <environment-id> --output-format json`. Führen Sie den Befehl aus einem Git-Checkout aus, damit die CLI das Repository aus dem `origin`-Remote automatisch erkennen kann. Das optionale `--ref <branch>` basiert den Checkout der Sitzung auf einer benannten Referenz statt auf dem lokalen HEAD. Der Befehl beendet sich, ohne auf Claudes Antwort zu warten. Die Ausgabe teilt Ihrem Skript das Ergebnis mit:

91 * **Sitzung erstellt**: eine Zeile JSON wie `{"ok":true,"session_id":"session_...","title":"...","url":"...","pool_id":"..."}`

92 * **Erstellen der Sitzung fehlgeschlagen**: die Zeile `{"ok":false,"error":"..."}`, und der Befehl beendet sich mit Status 1

93 * **Einige frühere Fehler**, etwa wenn Cloud-Sitzungen für Ihre Organisation nicht verfügbar sind oder ein Prompt fehlt: der Fehler auf stderr ohne JSON-Zeile, und der Befehl beendet sich mit Status 1

912. Wartet darauf, dass die Antwort in `$E2E_REPLY_DIR/<session_id>.txt` erscheint, geschrieben vom Stop-Hook auf dem Runner, sobald die Runde abgeschlossen ist.942. Wartet darauf, dass die Antwort in `$E2E_REPLY_DIR/<session_id>.txt` erscheint, geschrieben vom Stop-Hook auf dem Runner, sobald die Runde abgeschlossen ist.

923. Sendet eine Nachverfolgung mit `claude -p "<message>" --cloud <session_id> --output-format json` (siehe [Senden Sie eine Nachverfolgungsnachricht an eine laufende Sitzung](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli)), die ein Benutzerereignis in der vorhandenen Sitzung bereitstellt und beendet sich.953. Sendet eine Nachverfolgung mit `claude -p "<message>" --cloud <session_id> --output-format json` (siehe [Senden Sie eine Nachverfolgungsnachricht an eine laufende Sitzung](/docs/de/claude-code-on-the-web#send-follow-ups-from-the-cli)), die ein Benutzerereignis in der vorhandenen Sitzung bereitstellt und beendet sich.

934. Wartet auf die Antwort der Nachverfolgung auf die gleiche Weise wie Schritt 2.964. Wartet auf die Antwort der Nachverfolgung auf die gleiche Weise wie Schritt 2.


104 Beispielskript107 Beispielskript

105</h2>108</h2>

106 109 

107Das folgende Skript führt die vollständige Schleife gegen `$CLAUDE_TEST_ENVIRONMENT_ID`, die `ccpool_...`-ID Ihrer Test-Umgebung, angezeigt im Detaildialog der Umgebung auf der Admin-Seite oder zurückgegeben durch den [create-environment-Aufruf](#create-a-dedicated-test-environment), aus und behauptet eine Sentinel-Phrase in jeder Antwort. Führen Sie es aus einem Git-Checkout des Repositorys aus, in dem die Sitzung arbeiten soll, nachdem Sie einen Runner auf diesem Host mit dem installierten Capture-Hook und exportiertem `E2E_REPLY_DIR` gestartet haben. Melden Sie sich zunächst auf dem Rechner, auf dem das Skript ausgeführt wird, mit einem claude.ai-Konto an, wie unter [Aus CI authentifizieren](#authenticate-from-ci) beschrieben. Ohne diese Anmeldung schlägt der erste Dispatch mit einem Fehler wie `Unable to get organization UUID for cloud session creation` fehl.110Das Beispielskript wird auf demselben Rechner wie der Test-Runner ausgeführt. Bereiten Sie diesen Rechner vor, bevor Sie es ausführen:

111 

112* **Repository-Checkout**: Führen Sie das Skript aus einem Git-Checkout des Repositorys aus, in dem die Sitzung arbeiten soll.

113* **Runner**: Starten Sie auf diesem Host einen Runner mit dem installierten Capture-Hook und exportiertem `E2E_REPLY_DIR`.

114* **Anmeldung**: Melden Sie sich auf dem Rechner, auf dem das Skript ausgeführt wird, mit einem claude.ai-Konto an, wie unter [Aus CI authentifizieren](#authenticate-from-ci) beschrieben.

115* **Umgebungs-ID**: Setzen Sie `CLAUDE_TEST_ENVIRONMENT_ID` auf die `ccpool_...`-ID Ihrer Test-Umgebung, die im Detaildialog der Umgebung auf der Admin-Seite angezeigt oder durch den [create-environment-Aufruf](#create-a-dedicated-test-environment) zurückgegeben wird.

116 

117Das folgende Skript führt die vollständige Schleife gegen `$CLAUDE_TEST_ENVIRONMENT_ID` aus und prüft in jeder Antwort auf eine Sentinel-Phrase.

108 118 

109```bash theme={null}119```bash theme={null}

110#!/usr/bin/env bash120#!/usr/bin/env bash


152TURN1="e2e-probe-$(date +%s)-$$: say exactly 'ok: custom tools are reachable' and nothing else"162TURN1="e2e-probe-$(date +%s)-$$: say exactly 'ok: custom tools are reachable' and nothing else"

153EXPECT1="ok: custom tools are reachable"163EXPECT1="ok: custom tools are reachable"

154create_json=$(claude -p "$TURN1" --environment "$CLAUDE_TEST_ENVIRONMENT_ID" \164create_json=$(claude -p "$TURN1" --environment "$CLAUDE_TEST_ENVIRONMENT_ID" \

155 --ref "$TEST_REPO_REF" --output-format json)165 --ref "$TEST_REPO_REF" --output-format json < /dev/null)

156echo "create: $create_json"166echo "create: $create_json"

157SESSION_ID=$(jq -er '.session_id' <<<"$create_json")167SESSION_ID=$(jq -er '.session_id' <<<"$create_json")

158 168 


163# 3. Post a follow-up via the CLI.173# 3. Post a follow-up via the CLI.

164TURN2="e2e-probe-followup-$(date +%s): say exactly 'ok: follow-up delivered' and nothing else"174TURN2="e2e-probe-followup-$(date +%s): say exactly 'ok: follow-up delivered' and nothing else"

165EXPECT2="ok: follow-up delivered"175EXPECT2="ok: follow-up delivered"

166followup_json=$(claude -p "$TURN2" --cloud "$SESSION_ID" --output-format json)176followup_json=$(claude -p "$TURN2" --cloud "$SESSION_ID" --output-format json < /dev/null)

167echo "followup: $followup_json"177echo "followup: $followup_json"

168jq -e '.ok == true' <<<"$followup_json" >/dev/null178jq -e '.ok == true' <<<"$followup_json" >/dev/null

169 179 

sessions.md +43 −41

Details

6 6 

7> Benennen, fortsetzen, verzweigen und wechseln Sie zwischen Claude Code-Gesprächen. Behandelt `--continue`, `--resume`, `--from-pr`, die `/resume`-Auswahl, Sitzungsbenennung, Exportieren von Transkripten und wo Transkripte gespeichert werden.7> Benennen, fortsetzen, verzweigen und wechseln Sie zwischen Claude Code-Gesprächen. Behandelt `--continue`, `--resume`, `--from-pr`, die `/resume`-Auswahl, Sitzungsbenennung, Exportieren von Transkripten und wo Transkripte gespeichert werden.

8 8 

9Eine Sitzung ist ein gespeichertes Gespräch, das an ein Projektverzeichnis gebunden ist. Claude Code speichert es lokal während Sie arbeiten, sodass Sie dort weitermachen können, wo Sie aufgehört haben, zu einem anderen Ansatz verzweigen oder zwischen Aufgaben wechseln können.9Eine [Sitzung](/docs/de/glossary#session) ist ein gespeichertes Gespräch, das an ein Projektverzeichnis gebunden ist. Claude Code speichert es lokal während Sie arbeiten, sodass Sie dort weitermachen können, wo Sie aufgehört haben, zu einem anderen Ansatz verzweigen oder zwischen Aufgaben wechseln können.

10 10 

11Die [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions), [claude.ai/code](/docs/de/claude-code-on-the-web) und die [VS Code-Erweiterung](/docs/de/vs-code#resume-past-conversations) verwalten jeweils ihre eigene Sitzungsliste, und die Desktop-App kann auch [eine CLI-Sitzung fortsetzen](/docs/de/desktop#coming-from-the-cli). Diese Seite behandelt die CLI.11Die [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions), [claude.ai/code](/docs/de/claude-code-on-the-web) und die [VS Code-Erweiterung](/docs/de/vs-code#resume-past-conversations) verwalten jeweils ihre eigene Sitzungsliste, und die Desktop-App kann auch [eine CLI-Sitzung fortsetzen](/docs/de/desktop#coming-from-the-cli). Diese Seite behandelt die CLI.

12 12 


18 18 

19| Befehl | Was er tut |19| Befehl | Was er tut |

20| :- | :- |20| :- | :- |

21| `claude --continue` | Öffnet die neueste Konversation im aktuellen Verzeichnis erneut |21| `claude --continue` | Öffnet die neueste Sitzung im aktuellen Verzeichnis erneut |

22| `claude --resume` | Öffnet die [Sitzungsauswahl](#use-the-session-picker) |22| `claude --resume` | Öffnet die [Sitzungsauswahl](#use-the-session-picker) |

23| `claude --resume <name>` | Setzt die benannte Sitzung direkt fort |23| `claude --resume <name>` | Setzt die benannte Sitzung direkt fort |

24| `claude --resume <transcript-path>` | Setzt die Konversation fort, die in der `.jsonl`-[Transkriptdatei](#where-transcripts-are-stored) unter diesem absoluten Pfad gespeichert ist |24| `claude --resume <transcript-path>` | Setzt die Sitzung fort, die in der `.jsonl`-[Transkriptdatei](#where-transcripts-are-stored) unter diesem absoluten Pfad gespeichert ist |

25| `claude --from-pr <number>` | Öffnet die Sitzungsauswahl gefiltert nach Sitzungen, die mit diesem Pull Request verknüpft sind |25| `claude --from-pr <number>` | Öffnet die Sitzungsauswahl gefiltert nach Sitzungen, die mit diesem Pull Request verknüpft sind |

26| `/resume` | Wechselt innerhalb einer aktiven Sitzung zu einer anderen Konversation |26| `/resume` | Wechselt innerhalb einer aktiven Sitzung zu einer anderen Sitzung |

27 

28Claude Code lässt Sitzungen, die mit [`claude -p`](/docs/de/headless) oder dem [Agent SDK](/docs/de/agent-sdk/overview) erstellt wurden, aus der Sitzungsauswahl und aus `claude --continue` aus. Sie können eine trotzdem fortsetzen, indem Sie ihre Sitzungs-ID an `claude --resume <session-id>` übergeben. Mit `claude --continue` überspringt Claude Code auch [Sitzungen, deren erster Prompt `/loop` war](#where-the-session-picker-looks). Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`-, SDK- und `/loop`-Sitzungen ein.

29 

30Sie können `claude --resume <session-id>` von jedem Verzeichnis aus ausführen, sodass Sie eine Sitzung fortsetzen können, die anderswo gestartet wurde oder mit [`/cd`](/docs/de/commands) verschoben wurde. Claude Code sucht in dieser Reihenfolge nach der ID:

31 

321. Im aktuellen Projektverzeichnis und seinen Git-Worktrees

332. In jedem anderen Projekt auf diesem Rechner

34 

35Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie dazu führt, dass Claude Code „nicht gefunden“ meldet, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`.

36 

37Vor v2.1.223 endete die Suche im aktuellen Projektverzeichnis und seinen Git-Worktrees, sodass Sie die Sitzung von dem Verzeichnis aus fortsetzen mussten, in dem die Sitzung zuletzt gearbeitet hatte.

38 

39`claude --continue` öffnet eine [Hintergrundsitzung](/docs/de/agent-view), die beendet wurde, aber nicht eine, die noch läuft; das Öffnen beendeter Hintergrundsitzungen erfordert Claude Code v2.1.257 oder später. Wenn Ihre letzte Konversation eine ist, die Sie [in den Hintergrund verschoben haben](/docs/de/agent-view#send-the-session-to-the-background), und sie dort noch läuft, beendet sich Claude Code mit `Your most recent conversation is running in the background` und der ID dieser Sitzung. Verbinden Sie sich mit der Sitzung über [`claude agents`](/docs/de/agent-view#attach-to-a-session), oder führen Sie `claude --resume` aus, um eine andere auszuwählen.

40 27 

41<h3 id="resume-a-running-background-session">28<h3 id="resume-a-running-background-session">

42 Eine laufende Hintergrundsitzung fortsetzen29 Eine laufende Hintergrundsitzung fortsetzen


64 51 

65Wenn Claude Code eine Konversation aus ihrem Transkript lädt, stellt die fortgesetzte Sitzung die Konversation zusammen mit dem darin gespeicherten Zustand wieder her:52Wenn Claude Code eine Konversation aus ihrem Transkript lädt, stellt die fortgesetzte Sitzung die Konversation zusammen mit dem darin gespeicherten Zustand wieder her:

66 53 

67* Konversationsverlauf: der vollständige Verlauf, einschließlich Tool-Aufrufen und Ergebnissen. Ein Tool, das noch lief, als der vorherige Prozess endete, beispielsweise bei einem Absturz, wird nicht beendet und läuft nicht erneut, wenn Sie fortsetzen. Claude sieht den Aufruf als abgebrochen markiert, bevor sein Ergebnis aufgezeichnet wurde, und wird angewiesen, zu überprüfen, ob er wirksam wurde, bevor er ihn erneut ausführt, es sei denn, [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars#variables) ist gesetzt. Vor v2.1.281 entfernte Claude Code den abgebrochenen Aufruf aus der Konversation oder zeigte ihn Claude als einen, den Sie unterbrochen haben.54* Konversationsverlauf: der vollständige Verlauf, einschließlich Tool-Aufrufen und Ergebnissen. Ein Tool, das noch lief, als der vorherige Prozess endete, beispielsweise bei einem Absturz, wird nicht beendet und läuft nicht erneut, wenn Sie fortsetzen. Claude sieht den Aufruf als abgebrochen markiert, bevor sein Ergebnis aufgezeichnet wurde, und wird angewiesen, zu überprüfen, ob er wirksam wurde, bevor er ihn erneut ausführt, es sei denn, [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars#variables) ist gesetzt.

68* Modell: Die Sitzung wird mit dem Modell fortgesetzt, das sie verwendete, außer in den Fällen unter [Modell festlegen](/docs/de/model-config#setting-your-model).55* Modell: Die Sitzung wird mit dem Modell fortgesetzt, das sie verwendete, außer in den Fällen unter [Modell festlegen](/docs/de/model-config#setting-your-model).

69* Agent: Eine Sitzung, die mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der `agent`-Einstellung gestartet wurde, wird als dieser Agent fortgesetzt, wobei seine Tool-Beschränkungen und sein Modell beibehalten werden. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen; für den System-Prompt in beiden Fällen siehe [System-Prompt-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code sucht an zwei Stellen nach dem Agenten: im ursprünglichen Verzeichnis der Sitzung, vorausgesetzt, Sie haben [diesem Workspace vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann im Verzeichnis, von dem aus Sie fortsetzen, sodass ein projektbezogener Agent auch dann geladen wird, wenn Sie von einem anderen Verzeichnis aus fortsetzen. Wenn Claude Code den Agenten an keiner der beiden Stellen findet, wird die Sitzung mit den Standard-Tools fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).56* Agent: Eine Sitzung, die mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der `agent`-Einstellung gestartet wurde, wird als dieser Agent fortgesetzt, wobei seine Tool-Beschränkungen und sein Modell beibehalten werden. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen; für den System-Prompt in beiden Fällen siehe [System-Prompt-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code sucht an zwei Stellen nach dem Agenten: im ursprünglichen Verzeichnis der Sitzung, vorausgesetzt, Sie haben [diesem Workspace vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann im Verzeichnis, von dem aus Sie fortsetzen, sodass ein projektbezogener Agent auch dann geladen wird, wenn Sie von einem anderen Verzeichnis aus fortsetzen. Wenn Claude Code den Agenten an keiner der beiden Stellen findet, wird die Sitzung mit den Standard-Tools fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).

70* Berechtigungsmodus: Wenn Sie von einem Terminal aus mit `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>` fortsetzen, wenn der Name einer Sitzung entspricht, ohne `-p`, stellt Claude Code den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen unter [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), wo auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` behandelt werden. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.57* Berechtigungsmodus: Wenn Sie von einem Terminal aus mit `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>` fortsetzen, wenn der Name einer Sitzung entspricht, ohne `-p`, stellt Claude Code den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen unter [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), wo auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` behandelt werden. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.


83* Terminal: `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>`, wenn der Name einer Sitzung entspricht, ohne `-p`. Claude Code stellt den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen in der Tabelle. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.70* Terminal: `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>`, wenn der Name einer Sitzung entspricht, ohne `-p`. Claude Code stellt den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen in der Tabelle. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.

84* Nicht-interaktiv: `claude -p --resume` oder `claude -p --continue`. Claude Code startet den Lauf in dem Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf starten würde, außer dass eine Sitzung, die im Plan-Modus endete, unter den [unten genannten Bedingungen](#resume-in-plan-mode-with-p) im Plan-Modus fortgesetzt wird.71* Nicht-interaktiv: `claude -p --resume` oder `claude -p --continue`. Claude Code startet den Lauf in dem Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf starten würde, außer dass eine Sitzung, die im Plan-Modus endete, unter den [unten genannten Bedingungen](#resume-in-plan-mode-with-p) im Plan-Modus fortgesetzt wird.

85* VS Code: das Konversationsfenster der Erweiterung. Die Tabelle behandelt nur eine Konversation, die im Plan-Modus endete; für alle anderen siehe [frühere Konversationen fortsetzen](/docs/de/vs-code#resume-past-conversations).72* VS Code: das Konversationsfenster der Erweiterung. Die Tabelle behandelt nur eine Konversation, die im Plan-Modus endete; für alle anderen siehe [frühere Konversationen fortsetzen](/docs/de/vs-code#resume-past-conversations).

86* Sitzungsauswahl beim Start: eine Sitzung, die Sie aus der [Sitzungsauswahl](#use-the-session-picker) auswählen, unabhängig davon, ob Sie sie mit `claude --resume` allein, `claude --from-pr` oder einem Namen, der mehr als einer Sitzung entspricht, geöffnet haben. Claude Code startet die Sitzung in dem Berechtigungsmodus, in dem es eine neue Sitzung von derselben Befehlszeile aus starten würde, außer dass eine Sitzung, die im Plan-Modus endete, im Plan-Modus fortgesetzt wird, sofern Sie nicht `--permission-mode`, `--dangerously-skip-permissions` oder `--fork-session` übergeben. Kein anderer gespeicherter Berechtigungsmodus wird wiederhergestellt.73* Sitzungsauswahl beim Start: eine Sitzung, die Sie aus der [Sitzungsauswahl](#use-the-session-picker) auswählen, unabhängig davon, ob Sie sie mit `claude --resume` allein, `claude --from-pr` oder einem Namen, der mehr als einer Sitzung entspricht, geöffnet haben. Claude Code startet die Sitzung in dem Berechtigungsmodus, in dem es eine neue Sitzung von derselben Befehlszeile aus starten würde, außer dass eine Sitzung, die im Plan-Modus endete, im Plan-Modus fortgesetzt wird. Wenn Sie `--permission-mode`, `--dangerously-skip-permissions` oder `--fork-session` übergeben, stellt Claude Code den Plan-Modus nicht wieder her. Kein anderer gespeicherter Berechtigungsmodus wird wiederhergestellt.

87* `/resume` innerhalb einer Sitzung, mit oder ohne Argument: Die Konversation, zu der Sie wechseln, wird im Berechtigungsmodus Ihrer aktuellen Sitzung fortgesetzt, außer dass eine Konversation, die im Plan-Modus endete, im Plan-Modus fortgesetzt wird, selbst wenn Sie Claude Code mit `--permission-mode` oder `--dangerously-skip-permissions` gestartet haben. Wenn diese Konversation bereits früher in diesem Lauf von Claude Code geöffnet war, etwa die Konversation, mit der Sie begonnen haben, oder eine, die Sie mit `/clear` oder `/resume` verlassen haben, wird sie stattdessen in Ihrem aktuellen Berechtigungsmodus fortgesetzt.74* `/resume` innerhalb einer Sitzung, mit oder ohne Argument: Die Konversation, zu der Sie wechseln, wird im Berechtigungsmodus Ihrer aktuellen Sitzung fortgesetzt, außer dass eine Konversation, die im Plan-Modus endete, im Plan-Modus fortgesetzt wird, selbst wenn Sie Claude Code mit `--permission-mode` oder `--dangerously-skip-permissions` gestartet haben. Wenn diese Konversation bereits früher in diesem Lauf von Claude Code geöffnet war, etwa die Konversation, mit der Sie begonnen haben, oder eine, die Sie mit `/clear` oder `/resume` verlassen haben, wird sie stattdessen in Ihrem aktuellen Berechtigungsmodus fortgesetzt.

88 75 

76Wenn eine [Ablehnungsregel](/docs/de/permissions#manage-permissions) das Tool [`ExitPlanMode`](/docs/de/tools-reference) entfernt, kann Claude keinen Plan zur Genehmigung vorlegen, daher stellt Claude Code den Plan-Modus nicht wieder her. Die Sitzung startet in dem Berechtigungsmodus, in dem eine neue Sitzung von derselben Befehlszeile aus starten würde. Mit `/resume` wird die Konversation in Ihrem aktuellen Berechtigungsmodus fortgesetzt.

77 

89Das Wiederherstellen des Plan-Modus auf den nicht-interaktiven und VS-Code-Pfaden erfordert Claude Code v2.1.246 oder später. Jede Zeile nennt den Berechtigungsmodus, in dem die Sitzung endete, über welchen der Pfade (Terminal, nicht-interaktiv oder VS Code) Sie sie fortsetzen, und den Berechtigungsmodus, in dem Claude Code die fortgesetzte Sitzung startet.78Das Wiederherstellen des Plan-Modus auf den nicht-interaktiven und VS-Code-Pfaden erfordert Claude Code v2.1.246 oder später. Jede Zeile nennt den Berechtigungsmodus, in dem die Sitzung endete, über welchen der Pfade (Terminal, nicht-interaktiv oder VS Code) Sie sie fortsetzen, und den Berechtigungsmodus, in dem Claude Code die fortgesetzte Sitzung startet.

90 79 

91| Sitzung endete in | Wie Sie fortsetzen | Berechtigungsmodus nach dem Fortsetzen |80| Sitzung endete in | Wie Sie fortsetzen | Berechtigungsmodus nach dem Fortsetzen |

92| :- | :- | :- |81| :- | :- | :- |

93| `bypassPermissions` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung starten würde. Um [Berechtigungen erneut zu umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), aktivieren Sie dies beim Start mit einem der zugehörigen Start-Flags oder mit `permissions.defaultMode: "bypassPermissions"` in [Benutzer-, `--settings`- oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode) |82| `bypassPermissions` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung starten würde. Um [Berechtigungen erneut zu umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), aktivieren Sie dies beim Start mit einem der zugehörigen Start-Flags oder mit `permissions.defaultMode: "bypassPermissions"` in [Benutzer-, `--settings`- oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | Plan-Modus. Mit `--fork-session` der Berechtigungsmodus, in dem eine neue Sitzung starten würde |83| `plan` | Terminal | Plan-Modus. Mit `--fork-session` der Berechtigungsmodus, in dem eine neue Sitzung starten würde |

84| `plan` | Terminal, wenn eine Ablehnungsregel `ExitPlanMode` entfernt | Der Berechtigungsmodus, in dem eine neue Sitzung starten würde |

95| `auto` | Terminal | `auto`, nur wenn Ihr Konto weiterhin die [Anforderungen für den Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) erfüllt |85| `auto` | Terminal | `auto`, nur wenn Ihr Konto weiterhin die [Anforderungen für den Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) erfüllt |

96| Manuell | Terminal | Manuell, wenn eine neue Sitzung aufgrund der [integrierten Standardeinstellung](/docs/de/permission-modes#which-mode-a-session-starts-in) im Auto-Modus starten würde. Wenn ein `defaultMode` aus einer Einstellungsdatei [wirksam wird](/docs/de/permission-modes#which-mode-a-session-starts-in), startet Claude Code die fortgesetzte Sitzung stattdessen in diesem Modus |86| Manuell | Terminal | Manuell, wenn eine neue Sitzung aufgrund der [integrierten Standardeinstellung](/docs/de/permission-modes#which-mode-a-session-starts-in) im Auto-Modus starten würde. Wenn ein `defaultMode` aus einer Einstellungsdatei [wirksam wird](/docs/de/permission-modes#which-mode-a-session-starts-in), startet Claude Code die fortgesetzte Sitzung stattdessen in diesem Modus |

97| `plan` | Nicht-interaktiv, unter den [unten genannten Bedingungen](#resume-in-plan-mode-with-p) | Plan-Modus |87| `plan` | Nicht-interaktiv, unter den [unten genannten Bedingungen](#resume-in-plan-mode-with-p) | Plan-Modus |


110* Sie übergeben weder `--permission-mode` noch `--dangerously-skip-permissions`100* Sie übergeben weder `--permission-mode` noch `--dangerously-skip-permissions`

111* Sie übergeben nicht `--fork-session`101* Sie übergeben nicht `--fork-session`

112* Der Lauf wird nicht über [Channels](/docs/de/channels) gestartet102* Der Lauf wird nicht über [Channels](/docs/de/channels) gestartet

103* Keine [Ablehnungsregel](/docs/de/permissions#manage-permissions) entfernt das Tool `ExitPlanMode`

113 104 

114<h3 id="resume-from-a-summary">105<h3 id="resume-from-a-summary">

115 Aus einer Zusammenfassung fortsetzen106 Aus einer Zusammenfassung fortsetzen


117 108 

118Wenn Sie mit einem Pro- oder Max-Plan eine Sitzung fortsetzen, die länger als etwa eine Stunde inaktiv war und mehr als 100.000 Token umfasst, stellt Claude Code die Konversation wieder her und öffnet dann einen Dialog, bevor Sie Ihre erste Nachricht senden. Der [Prompt-Cache](/docs/de/prompt-caching#cache-lifetime) der Sitzung ist bis dahin abgelaufen, sodass die nächste Anfrage den vollständigen Verlauf einmal verarbeitet, unabhängig davon, welche Option des Dialogs Sie wählen.109Wenn Sie mit einem Pro- oder Max-Plan eine Sitzung fortsetzen, die länger als etwa eine Stunde inaktiv war und mehr als 100.000 Token umfasst, stellt Claude Code die Konversation wieder her und öffnet dann einen Dialog, bevor Sie Ihre erste Nachricht senden. Der [Prompt-Cache](/docs/de/prompt-caching#cache-lifetime) der Sitzung ist bis dahin abgelaufen, sodass die nächste Anfrage den vollständigen Verlauf einmal verarbeitet, unabhängig davon, welche Option des Dialogs Sie wählen.

119 110 

120Der Dialog bietet drei Möglichkeiten, die Sitzung fortzusetzen. Sie unterscheiden sich darin, wie viel der Konversation jede in spätere Anfragen übernimmt, was ein Kompromiss zwischen dem Erhalt jedes Details und dem Senden weniger Token pro Anfrage ist:111Der Dialog bietet drei Möglichkeiten, die Sitzung fortzusetzen:

121 112 

122* **Aus Zusammenfassung fortsetzen**: führt [`/compact`](/docs/de/context-window#what-survives-compaction) sofort aus. Claude Code sendet eine Zusammenfassungsanfrage über den vollständigen Verlauf und ersetzt dann den Verlauf durch die Zusammenfassung, Ihre letzten Austausche und bis zu fünf kürzlich gelesene Dateien. Spätere Anfragen enthalten die Zusammenfassung anstelle des vollständigen Verlaufs.113* **Aus Zusammenfassung fortsetzen**: führt [`/compact`](/docs/de/context-window#what-survives-compaction) sofort aus. Spätere Anfragen enthalten die Zusammenfassung anstelle des vollständigen Verlaufs.

123* **Vollständige Sitzung unverändert fortsetzen**: lädt die Konversation unverändert. Nachdem Sie Ihre erste Nachricht gesendet haben, verarbeitet Claude Code den vollständigen Verlauf erneut und speichert ihn erneut im Cache; bei späteren Anfragen liest es ihn dann aus dem Cache, solange der Cache warm bleibt.114* **Vollständige Sitzung unverändert fortsetzen**: lädt die Konversation unverändert.

124* **Nicht mehr fragen**: setzt die vollständige Sitzung fort und zeigt den Dialog bei allen zukünftigen Fortsetzungen nicht mehr an.115* **Nicht mehr fragen**: setzt die vollständige Sitzung fort und zeigt den Dialog bei allen zukünftigen Fortsetzungen nicht mehr an.

125 116 

126Das unveränderte Fortsetzen hält jedes Detail der Konversation verfügbar, mit Kosten pro Anfrage, die mit der Größe der Konversation steigen. Das Fortsetzen aus der Zusammenfassung kostet bei jeder späteren Anfrage weniger, weil es die Zusammenfassung anstelle des vollständigen Verlaufs enthält, aber was die Zusammenfassung auslässt, ist nicht mehr in Claudes Kontext. Siehe [warum die Nutzung in einer langen Sitzung steigt](/docs/de/costs#why-usage-climbs-in-a-long-session), um zu erfahren, woher diese Kosten pro Anfrage stammen.117Das unveränderte Fortsetzen hält jedes Detail der Konversation verfügbar, mit Kosten pro Anfrage, die mit der Größe der Konversation steigen. Das Fortsetzen aus der Zusammenfassung kostet bei jeder späteren Anfrage weniger, weil es die Zusammenfassung anstelle des vollständigen Verlaufs enthält, aber was die Zusammenfassung auslässt, ist nicht mehr in Claudes Kontext. Siehe [warum die Nutzung in einer langen Sitzung steigt](/docs/de/costs#why-usage-climbs-in-a-long-session), um zu erfahren, woher diese Kosten pro Anfrage stammen.


136 127 

137Verwenden Sie `Ctrl+W`, um auf alle Worktrees des Repositorys zu erweitern, oder `Ctrl+A`, um auf jedes Projekt auf diesem Rechner zu erweitern.128Verwenden Sie `Ctrl+W`, um auf alle Worktrees des Repositorys zu erweitern, oder `Ctrl+A`, um auf jedes Projekt auf diesem Rechner zu erweitern.

138 129 

139Sitzungen, deren erster Prompt ein [`/loop`](/docs/de/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop)-Befehl war, erscheinen nicht in der Auswahl, und `claude --continue` überspringt sie ebenfalls. Das Ausführen von `/loop` später in einer Konversation blendet die Sitzung nicht aus. Vor v2.1.211 blendete ein `/loop`-Lauf früh in einer Konversation die Sitzung dauerhaft aus der Auswahl aus.130<h4 id="/loop-p-agent-sdk-and-background-sessions">

131 `/loop`-, `-p`-, Agent-SDK- und Hintergrundsitzungen

132</h4>

133 

134Sitzungen, deren erster Prompt ein [`/loop`](/docs/de/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop)-Befehl war, erscheinen nicht in der Auswahl, und `claude --continue` überspringt sie ebenfalls. Das Ausführen von `/loop` später in einer Konversation blendet die Sitzung nicht aus.

135 

136Claude Code lässt Sitzungen, die mit [`claude -p`](/docs/de/headless) oder dem [Agent SDK](/docs/de/agent-sdk/overview) erstellt wurden, aus der Sitzungsauswahl und aus `claude --continue` aus. Sie können eine trotzdem fortsetzen, indem Sie ihre Sitzungs-ID an `claude --resume <session-id>` übergeben. Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`-, SDK- und `/loop`-Sitzungen ein.

140 137 

141Das Verschieben einer Sitzung mit [`/cd`](/docs/de/commands) verlegt sie in den Projektspeicher des neuen Verzeichnisses, sodass sie danach in der Auswahl dieses Verzeichnisses erscheint. Ab v2.1.196 bleibt eine verschobene Sitzung auch nach einem Absturz oder erzwungenen Beenden aus der Auswahl des alten Verzeichnisses heraus. In früheren Versionen konnte sie nach einem nicht sauberen Beenden auch wieder in der Liste des alten Verzeichnisses erscheinen, wenn der alte Pfad Sonderzeichen wie Unterstriche enthielt.138`claude --continue` öffnet eine [Hintergrundsitzung](/docs/de/agent-view), die beendet wurde, aber nicht eine, die noch läuft; das Öffnen beendeter Hintergrundsitzungen erfordert Claude Code v2.1.257 oder später. Wenn Ihre letzte Konversation eine ist, die Sie [in den Hintergrund verschoben haben](/docs/de/agent-view#send-the-session-to-the-background), und sie dort noch läuft, beendet sich Claude Code mit `Your most recent conversation is running in the background` und der ID dieser Sitzung. Verbinden Sie sich mit der Sitzung über [`claude agents`](/docs/de/agent-view#attach-to-a-session), oder führen Sie `claude --resume` aus, um eine andere auszuwählen.

139 

140<h4 id="sessions-in-other-worktrees-and-projects">

141 Sitzungen in anderen Worktrees und Projekten

142</h4>

142 143 

143Wenn Sie eine Sitzung aus einem anderen Worktree desselben Repositorys auswählen, setzt Claude Code sie an Ort und Stelle fort; wenn der eigene Worktree der Sitzung nicht mehr existiert, [setzt Claude Code sie in Ihrem aktuellen Verzeichnis fort](/docs/de/worktrees#resume-a-worktree-session). Wenn Sie eine Sitzung aus einem nicht verwandten Projekt auswählen, kopiert Claude Code stattdessen einen `cd`- und Resume-Befehl in Ihre Zwischenablage. Wenn das Verzeichnis dieses Projekts nicht mehr existiert, setzt Claude Code die Sitzung in Ihrem aktuellen Verzeichnis fort, anstatt einen `cd`-Befehl zu kopieren, der fehlschlagen würde.144Wenn Sie eine Sitzung aus einem anderen Worktree desselben Repositorys auswählen, setzt Claude Code sie an Ort und Stelle fort; wenn der eigene Worktree der Sitzung nicht mehr existiert, [setzt Claude Code sie in Ihrem aktuellen Verzeichnis fort](/docs/de/worktrees#resume-a-worktree-session). Wenn Sie eine Sitzung aus einem nicht verwandten Projekt auswählen, kopiert Claude Code stattdessen einen `cd`- und Resume-Befehl in Ihre Zwischenablage. Wenn das Verzeichnis dieses Projekts nicht mehr existiert, setzt Claude Code die Sitzung in Ihrem aktuellen Verzeichnis fort, anstatt einen `cd`-Befehl zu kopieren, der fehlschlagen würde.

144 145 

146Das Verschieben einer Sitzung mit [`/cd`](/docs/de/commands) verlegt sie in den Projektspeicher des neuen Verzeichnisses, sodass sie danach in der Auswahl dieses Verzeichnisses erscheint.

147 

148<h4 id="resume-by-session-id-or-name">

149 Nach Sitzungs-ID oder Name fortsetzen

150</h4>

151 

152Sie können `claude --resume <session-id>` von jedem Verzeichnis aus ausführen, sodass Sie eine Sitzung fortsetzen können, die anderswo gestartet wurde oder mit [`/cd`](/docs/de/commands) verschoben wurde. Claude Code sucht in dieser Reihenfolge nach der ID:

153 

1541. Im aktuellen Projektverzeichnis und seinen Git-Worktrees

1552. In jedem anderen Projekt auf diesem Rechner

156 

157Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie dazu führt, dass Claude Code „nicht gefunden“ meldet, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`.

158 

145Das Fortsetzen nach Name wird über das aktuelle Repository und seine Worktrees aufgelöst. Beide Formen suchen nach einer genauen Übereinstimmung und setzen sie direkt fort, auch wenn sie sich in einem anderen Worktree befindet:159Das Fortsetzen nach Name wird über das aktuelle Repository und seine Worktrees aufgelöst. Beide Formen suchen nach einer genauen Übereinstimmung und setzen sie direkt fort, auch wenn sie sich in einem anderen Worktree befindet:

146 160 

147| Befehl | Genaue Übereinstimmung | Mehrdeutiger Name |161| Befehl | Genaue Übereinstimmung | Mehrdeutiger Name |


166 180 

167Sobald Sie eine Sitzung über eine CLI-Route oder von claude.ai aus benannt haben, kehren Sie mit `claude --resume <name>` oder `/resume <name>` zu ihr zurück; eine Desktop-App-Sitzung wird in der [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions) fortgesetzt. Siehe [Sitzung fortsetzen](#resume-a-session), um zu erfahren, wie die Namensauflösung über Worktrees hinweg funktioniert.181Sobald Sie eine Sitzung über eine CLI-Route oder von claude.ai aus benannt haben, kehren Sie mit `claude --resume <name>` oder `/resume <name>` zu ihr zurück; eine Desktop-App-Sitzung wird in der [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions) fortgesetzt. Siehe [Sitzung fortsetzen](#resume-a-session), um zu erfahren, wie die Namensauflösung über Worktrees hinweg funktioniert.

168 182 

169Wenn Sie eine interaktive Sitzung mit einem Namen starten oder fortsetzen, den bereits eine andere aktive Sitzung auf diesem Computer verwendet, oder eine Sitzung in einen solchen Namen umbenennen, behält Claude Code den Namen bei der Sitzung, die ihn bereits hat, benennt Ihre Sitzung in eine Variante mit einem zweistelligen Suffix um, z. B. `auth-refactor-graceful-unicorn`, und teilt Ihnen dies mit. Führen Sie `/rename` mit einem neuen Namen aus, wenn Sie lieber selbst einen auswählen möchten. Vor v2.1.232 behielten beide Sitzungen den Namen.

170 

171In drei Fällen benennt Claude Code das Duplikat nicht um, sodass Sie in Auflistungen immer noch zwei Sitzungen mit demselben Namen sehen können:

172 

173* Es prüft nicht auf KI-generierte Titel oder Standard-Anzeigenamen.

174* Es prüft nicht den `--name` einer [Hintergrund-](/docs/de/agent-view#from-your-shell) oder `-p`-Sitzung beim Start.

175* Es kann eine Sitzung auf einer früheren Version von Claude Code nicht umbenennen.

176 

177Sitzungen, die Sie nicht benennen, erhalten immer noch zwei Bezeichnungen, die Claude Code zuweist. Nur der generierte Titel funktioniert als Resume-Handle:183Sitzungen, die Sie nicht benennen, erhalten immer noch zwei Bezeichnungen, die Claude Code zuweist. Nur der generierte Titel funktioniert als Resume-Handle:

178 184 

179* Standard-Anzeigename: Interaktive Sitzungen, die Sie nie benennen, erhalten beim Start einen Standard-Anzeigenamen. Erfordert Claude Code v2.1.196 oder später. Der Standard kombiniert den Namen des Arbeitsverzeichnisses mit einem zweistelligen Suffix, beispielsweise `my-app-3f`, und identifiziert die Sitzung in Auflistungen laufender Sitzungen, wie z. B. [Agent-Ansicht](/docs/de/agent-view) und `claude agents --json` Ausgabe. Der Standard ist kein Resume-Handle. Wenn Sie ihn an `claude --resume` oder `/resume` übergeben, findet Claude Code die Sitzung nicht. Das Benennen der Sitzung ersetzt den Standard in diesen Auflistungen, ebenso wie das Akzeptieren eines Plans.185* Standard-Anzeigename: Interaktive Sitzungen, die Sie nie benennen, erhalten beim Start einen Standard-Anzeigenamen. Erfordert Claude Code v2.1.196 oder später. Der Standard kombiniert den Namen des Arbeitsverzeichnisses mit einem zweistelligen Suffix, beispielsweise `my-app-3f`, und identifiziert die Sitzung in Auflistungen laufender Sitzungen, wie z. B. [Agent-Ansicht](/docs/de/agent-view) und `claude agents --json` Ausgabe. Der Standard ist kein Resume-Handle. Wenn Sie ihn an `claude --resume` oder `/resume` übergeben, findet Claude Code die Sitzung nicht.

180* Generierter Titel: Wenn Sie eine Sitzung nicht benennen, generiert Claude Code einen Sitzungstitel für sie. Der Titel ist eine kurze Zusammenfassung Ihres ersten Prompts, geschrieben durch eine Hintergrundanfrage an das kleine/schnelle Modell, normalerweise ein Haiku-Klasse-Modell. Eine `claude -p`-Ausführung, die Sie direkt von einer Shell oder einem Skript aus starten, erhält keinen.186* Generierter Titel: Wenn Sie eine Sitzung nicht benennen, generiert Claude Code einen Sitzungstitel für sie. Der Titel ist eine kurze Zusammenfassung Ihres ersten Prompts, geschrieben durch eine Hintergrundanfrage an das kleine/schnelle Modell, normalerweise ein Haiku-Klasse-Modell. Eine `claude -p`-Ausführung, die Sie direkt von einer Shell oder einem Skript aus starten, erhält keinen.

181 187 

182 Das Akzeptieren eines Plans ersetzt den generierten Titel durch einen Titel basierend auf dem Plan. Das Benennen der Sitzung ersetzt ihn ebenfalls.188 Das Akzeptieren eines Plans ersetzt den generierten Titel durch einen Titel basierend auf dem Plan. Sie können jeden der beiden Titel an `claude --resume` oder `/resume` übergeben, und Claude Code löst ihn auf dieselbe Weise auf wie einen Namen, den Sie festgelegt haben.

183 

184 Sie sehen den Titel des ersten Prompts in der [Sitzungsauswahl](#use-the-session-picker) und im Statusline-Feld [`session_name`](/docs/de/statusline), wenn kein Name festgelegt ist. Der Plan-Titel wird an denselben zwei Stellen angezeigt und auch in den Auflistungen laufender Sitzungen, wo er den Platz des Standard-Anzeigenamens einnimmt.

185 

186 Sie können jeden Titel an `claude --resume` oder `/resume` übergeben, und Claude Code löst ihn auf dieselbe Weise auf wie einen Namen, den Sie festgelegt haben.

187 189 

188<h2 id="use-the-session-picker">190<h2 id="use-the-session-picker">

189 Verwenden Sie die Sitzungsauswahl191 Verwenden Sie die Sitzungsauswahl


205| `Ctrl+B` | Filtern Sie zu Sitzungen aus dem aktuellen Git-Branch. Drücken Sie erneut, um alle Branches anzuzeigen |207| `Ctrl+B` | Filtern Sie zu Sitzungen aus dem aktuellen Git-Branch. Drücken Sie erneut, um alle Branches anzuzeigen |

206| `Esc` | Beenden Sie die Sitzungsauswahl oder den Suchmodus |208| `Esc` | Beenden Sie die Sitzungsauswahl oder den Suchmodus |

207 209 

208Jede Zeile zeigt den Sitzungsnamen, falls festgelegt, andernfalls den KI-generierten Sitzungstitel, die Gesprächszusammenfassung oder die erste Eingabeaufforderung, zusammen mit der Zeit seit der letzten Aktivität, dem Git-Branch und der Dateigröße. Erweitern Sie auf alle Projekte mit `Ctrl+A`, um auch den Projektpfad jeder Sitzung anzuzeigen.210Jede Zeile zeigt den Sitzungsnamen, falls festgelegt, andernfalls den KI-generierten Sitzungstitel, die Konversationszusammenfassung oder den ersten Prompt, zusammen mit der Zeit seit der letzten Aktivität, dem Git-Branch und der Dateigröße.

209 211 

210Sitzungen, die mit `/branch` oder `--fork-session` erstellt wurden, erhalten ihre eigenen Sitzungs-IDs und werden als separate Zeilen angezeigt. Wenn die Auswahl mehr als einen Eintrag für dieselbe Sitzung findet, werden diese unter einer einzelnen Zeile gruppiert. Drücken Sie `→`, um eine Gruppe zu erweitern.212Sitzungen, die mit `/branch` oder `--fork-session` erstellt wurden, erhalten ihre eigenen Sitzungs-IDs und werden als separate Zeilen angezeigt. Wenn die Auswahl mehr als einen Eintrag für dieselbe Sitzung findet, werden diese unter einer einzelnen Zeile gruppiert. Drücken Sie `→`, um eine Gruppe zu erweitern.

211 213 


223/branch try-streaming-approach225/branch try-streaming-approach

224```226```

225 227 

226Wenn Sie den Namen weglassen, benennt Claude Code den neuen Branch nach der ersten Eingabeaufforderung im Gespräch. Ab v2.1.198 gilt dies auch nach [Komprimierung](/docs/de/how-claude-code-works#when-context-fills-up); frühere Versionen fielen auf den wörtlichen Namen `Branched conversation` zurück, anstatt die Komprimierungszusammenfassung zu überschreiten, um die ursprüngliche erste Eingabeaufforderung zu finden.228Wenn Sie den Namen weglassen, benennt Claude Code den neuen Branch nach dem ersten Prompt in der Konversation.

227 229 

228Kombinieren Sie von der Befehlszeile aus `--continue` oder `--resume` mit `--fork-session`:230Kombinieren Sie von der Befehlszeile aus `--continue` oder `--resume` mit `--fork-session`:

229 231 


250 252 

251Diese Befehle steuern, was sich im Kontextfenster befindet, ohne die Sitzung zu verlassen:253Diese Befehle steuern, was sich im Kontextfenster befindet, ohne die Sitzung zu verlassen:

252 254 

253* **`/clear`**: Beginnen Sie mit einem leeren Kontext von vorne. Claude Code speichert das vorherige Gespräch; nehmen Sie es mit `/resume` wieder auf, oder, im selben Claude Code-Prozess, aus [dem Eintrag der vorherigen Sitzung im Rewind-Menü](/docs/de/checkpointing#rewind-past-a-cleared-conversation). Ohne Argument behält das neue Gespräch einen Namen bei, den Sie mit `--name` oder `/rename` festgelegt haben, aber nicht einen von der KI generierten Sitzungstitel. Um stattdessen das Gespräch zu benennen, das Sie verlassen, übergeben Sie den Namen, wie in `/clear release-prep`; das neue Gespräch beginnt dann ohne Namen255* **`/clear`**: Beginnen Sie mit einem leeren Kontext von vorne. Claude Code speichert die vorherige Sitzung; nehmen Sie sie mit `/resume` wieder auf, oder, im selben Claude Code-Prozess, aus [dem Eintrag der vorherigen Sitzung im Rewind-Menü](/docs/de/checkpointing#rewind-past-a-cleared-conversation). Ohne Argument behält die neue Sitzung einen Namen bei, den Sie mit `--name` oder `/rename` festgelegt haben, aber nicht einen von der KI generierten Sitzungstitel. Um stattdessen die Sitzung zu benennen, die Sie verlassen, übergeben Sie den Namen, wie in `/clear release-prep`; die neue Sitzung beginnt dann ohne Namen

254* **`/compact [instructions]`**: Ersetzen Sie den Verlauf durch eine Zusammenfassung, optional fokussiert auf das, was Sie angeben256* **`/compact [instructions]`**: Ersetzen Sie den Verlauf durch eine Zusammenfassung, optional fokussiert auf das, was Sie angeben

255* **`/context`**: Zeigen Sie an, was derzeit Kontext verbraucht257* **`/context`**: Zeigen Sie an, was derzeit Kontext verbraucht

256 258 

settings.md +2 −2

Details

495 495 

496Vor v2.1.211 hielt Claude Code die Datei im Startverzeichnis. Es liest immer noch eine Datei, die eine frühere Version dort neben der Root-Datei hinterlassen hat; wo beide denselben Schlüssel setzen, gilt der Wert des Root, und Berechtigungsregeln aus beiden Dateien gelten. Der [`resolveSettings()`](/docs/de/agent-sdk/typescript#resolvesettings)-Helfer des Agent SDK liest die Datei immer aus dem Startverzeichnis.496Vor v2.1.211 hielt Claude Code die Datei im Startverzeichnis. Es liest immer noch eine Datei, die eine frühere Version dort neben der Root-Datei hinterlassen hat; wo beide denselben Schlüssel setzen, gilt der Wert des Root, und Berechtigungsregeln aus beiden Dateien gelten. Der [`resolveSettings()`](/docs/de/agent-sdk/typescript#resolvesettings)-Helfer des Agent SDK liest die Datei immer aus dem Startverzeichnis.

497 497 

498Claude Code liest die gemeinsame `.claude/settings.json` aus dem [primären Arbeitsverzeichnis](/docs/de/permissions#working-directories) der Sitzung, also um eine Datei zu verwenden, die im Repository-Root committed ist, starten Sie Claude Code dort. Nachdem Sie [die Sitzung mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory), liest Claude Code stattdessen beide Projektdateien aus dem neuen Verzeichnis, wobei die lokale Datei nach denselben Regeln platziert wird. Das Lesen von ihnen aus dem Verzeichnis, in das Sie verschoben haben, erfordert Claude Code v2.1.246 oder später.498Claude Code liest die gemeinsame `.claude/settings.json` aus dem [primären Arbeitsverzeichnis](/docs/de/permissions#working-directories) der Sitzung, also um eine Datei zu verwenden, die im Repository-Root committed ist, starten Sie Claude Code dort. Nachdem Sie [die Sitzung mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory), liest Claude Code stattdessen beide Projektdateien aus dem neuen Verzeichnis, wobei die lokale Datei nach denselben Regeln platziert wird. Das Lesen von ihnen aus dem Verzeichnis, in das Sie verschoben haben, erfordert Claude Code v2.1.246 oder später. Für eine Worktree-Sitzung, die Sie aus der Desktop-App starten, siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).

499 499 

500<span id="managed-settings-delivery" />500<span id="managed-settings-delivery" />

501 501 


767 767 

768Zwei Dinge halten einen Schlüssel in `.claude/settings.json` davon ab, für alle zu gelten, die ihn klonen:768Zwei Dinge halten einen Schlüssel in `.claude/settings.json` davon ab, für alle zu gelten, die ihn klonen:

769 769 

770* **Claude Code ignoriert den Schlüssel in einer Repository-Datei.** Suchen Sie nach `User, local, or managed`, `User or managed`, `Managed` oder `Global config` in der Spalte Scope des [Einstellungsindex](/docs/de/settings-reference#settings-index). Diese Schlüssel wirken sich nie von der gemeinsamen Datei aus, außer ein paar, die eine Repository-Datei immer noch ausschalten kann. Jeder dieser Einträge sagt so auf seiner Scope-Zeile. `Global config` Schlüssel gelten nur von `~/.claude.json`.770* **Claude Code ignoriert den Schlüssel in einer Repository-Datei.** Suchen Sie nach `User, local, or managed`, `User or managed`, `User`, `Managed` oder `Global config` in der Spalte Scope des [Einstellungsindex](/docs/de/settings-reference#settings-index). Diese Schlüssel wirken sich nie von der gemeinsamen Datei aus, außer ein paar, die eine Repository-Datei immer noch ausschalten kann. Jeder dieser Einträge sagt so auf seiner Scope-Zeile. `Global config` Schlüssel gelten nur von `~/.claude.json`.

771 771 

772 Innerhalb des `env` Schlüssels gelten die Telemetrie-Exportvariablen auch nie von der gemeinsamen Datei, außer ein paar Off-Werte; siehe [Variablen, die Claude Code in `env` ignoriert](/docs/de/settings-reference#variables-claude-code-ignores-in-env).772 Innerhalb des `env` Schlüssels gelten die Telemetrie-Exportvariablen auch nie von der gemeinsamen Datei, außer ein paar Off-Werte; siehe [Variablen, die Claude Code in `env` ignoriert](/docs/de/settings-reference#variables-claude-code-ignores-in-env).

773* **Der Schlüssel wartet auf Vertrauen.** `permissions.allow` Regeln, `permissions.additionalDirectories`, `extraKnownMarketplaces` und die meisten [`env`](/docs/de/settings-reference#env) Werte gelten nur, nachdem jeder Teamkollege den [Ordner vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust). Bis dahin sehen sie immer noch Berechtigungsabfragen und bekommen keine Plugins von einem Marketplace, den die Datei erklärt. `deny` und `ask` Regeln gelten sofort.773* **Der Schlüssel wartet auf Vertrauen.** `permissions.allow` Regeln, `permissions.additionalDirectories`, `extraKnownMarketplaces` und die meisten [`env`](/docs/de/settings-reference#env) Werte gelten nur, nachdem jeder Teamkollege den [Ordner vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust). Bis dahin sehen sie immer noch Berechtigungsabfragen und bekommen keine Plugins von einem Marketplace, den die Datei erklärt. `deny` und `ask` Regeln gelten sofort.

Details

582<ReferenceFilter582<ReferenceFilter

583 noun="settings"583 noun="settings"

584 placeholder="Filter settings by key or purpose"584 placeholder="Filter settings by key or purpose"

585 facetOrder={{ scope: ["Any file", "User, local, or managed", "User or managed", "Managed", "Global config"] }}585 facetOrder={{ scope: ["Any file", "User, local, or managed", "User or managed", "User", "Managed", "Global config"] }}

586 columnHelp={{586 columnHelp={{

587topic: "The section of this page that holds the entry. Use Sort by to group the table by topic.",587topic: "The section of this page that holds the entry. Use Sort by to group the table by topic.",

588scope: "Which settings files can set the key: user (~/.claude/settings.json), project (.claude/settings.json), local (.claude/settings.local.json), or managed (deployed by your organization). Global config keys are in ~/.claude.json instead.",588scope: "Which settings files can set the key: user (~/.claude/settings.json), project (.claude/settings.json), local (.claude/settings.local.json), or managed (deployed by your organization). Global config keys are in ~/.claude.json instead.",


638| [`claudeMdExcludes`](#claudemdexcludes) | Überspringen Sie spezifische [CLAUDE.md](/docs/de/memory#exclude-specific-claude-md-files)-Dateien beim Laden des Gedächtnisses | Memory and context | Any file |638| [`claudeMdExcludes`](#claudemdexcludes) | Überspringen Sie spezifische [CLAUDE.md](/docs/de/memory#exclude-specific-claude-md-files)-Dateien beim Laden des Gedächtnisses | Memory and context | Any file |

639| [`cleanupPeriodDays`](#cleanupperioddays) | Wählen Sie, wie viele Tage Claude Code [Transkripte](/docs/de/data-usage#data-retention) behält, bevor sie gelöscht werden | Privacy and telemetry | Any file |639| [`cleanupPeriodDays`](#cleanupperioddays) | Wählen Sie, wie viele Tage Claude Code [Transkripte](/docs/de/data-usage#data-retention) behält, bevor sie gelöscht werden | Privacy and telemetry | Any file |

640| [`companyAnnouncements`](#companyannouncements) | Zeigen Sie die Ankündigungen Ihrer Organisation beim Start an | Interface and terminal | Any file |640| [`companyAnnouncements`](#companyannouncements) | Zeigen Sie die Ankündigungen Ihrer Organisation beim Start an | Interface and terminal | Any file |

641| [`copyFullResponse`](#copyfullresponse) | Lassen Sie [`/copy`](/docs/de/commands) die vollständige Antwort kopieren, ohne die Codeblock-Auswahl anzuzeigen | Global config settings | Global config |641| [`copyFullResponse`](#copyfullresponse) | Lassen Sie [`/copy`](/docs/de/commands) die vollständige Antwort kopieren, ohne die Auswahl anzuzeigen | Global config settings | Global config |

642| [`copyOnSelect`](#copyonselect) | Schalten Sie das automatische Kopieren von Text aus, den Sie mit der Maus im [Vollbild-Rendering](/docs/de/fullscreen#use-the-mouse) und in der Agent-Ansicht auswählen | Global config settings | Global config |642| [`copyOnSelect`](#copyonselect) | Schalten Sie das automatische Kopieren von Text aus, den Sie mit der Maus im [Vollbild-Rendering](/docs/de/fullscreen#use-the-mouse) und in der Agent-Ansicht auswählen | Global config settings | Global config |

643| [`crossSessionInbound`](#crosssessioninbound) | Wählen Sie, ob Claude Code [Nachrichten von Ihren anderen Sitzungen](/docs/de/cross-session-messaging#control-inbound-messages) liefert, einen Hinweis anzeigt, ohne sie zu liefern, oder sie ablehnt | Agents, sessions, and worktrees | Any file |643| [`crossSessionInbound`](#crosssessioninbound) | Wählen Sie, ob Claude Code [Nachrichten von Ihren anderen Sitzungen](/docs/de/cross-session-messaging#control-inbound-messages) liefert, einen Hinweis anzeigt, ohne sie zu liefern, oder sie ablehnt | Agents, sessions, and worktrees | Any file |

644| [`defaultShell`](#defaultshell) | Wählen Sie, ob Bash oder PowerShell die Shell-Befehle ausführt, die Sie mit dem [`!`-Präfix](/docs/de/interactive-mode#shell-mode-with-prefix) eingeben | Interface and terminal | Any file |644| [`defaultShell`](#defaultshell) | Wählen Sie, ob Bash oder PowerShell die Shell-Befehle ausführt, die Sie mit dem [`!`-Präfix](/docs/de/interactive-mode#shell-mode-with-prefix) eingeben | Interface and terminal | Any file |


684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Schalten Sie die Datei-Snapshots aus oder ein, die [`/rewind`](/docs/de/checkpointing) wiederherstellt | Memory and context | Any file |684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Schalten Sie die Datei-Snapshots aus oder ein, die [`/rewind`](/docs/de/checkpointing) wiederherstellt | Memory and context | Any file |

685| [`fileSuggestion`](#filesuggestion) | Stellen Sie [`@`-Datei-Autovervollständigung](/docs/de/interactive-mode#quick-commands) aus Ihrem eigenen Befehl bereit | Interface and terminal | Any file |685| [`fileSuggestion`](#filesuggestion) | Stellen Sie [`@`-Datei-Autovervollständigung](/docs/de/interactive-mode#quick-commands) aus Ihrem eigenen Befehl bereit | Interface and terminal | Any file |

686| [`footerLinksRegexes`](#footerlinksregexes) | Machen Sie Problem- oder Review-IDs in der Ausgabe zu [anklickbaren Links](/docs/de/statusline#clickable-links) unter dem Eingabefeld | Interface and terminal | User or managed |686| [`footerLinksRegexes`](#footerlinksregexes) | Machen Sie Problem- oder Review-IDs in der Ausgabe zu [anklickbaren Links](/docs/de/statusline#clickable-links) unter dem Eingabefeld | Interface and terminal | User or managed |

687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Legen Sie die [Gateway-URL](/docs/de/claude-apps-gateway#set-the-gateway-url) fest, mit der sich der Anmeldebildschirm verbindet | Authentication and providers | Managed |687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Legen Sie die [Gateway-URL](/docs/de/claude-apps-gateway#set-the-gateway-url) fest, mit der sich der Anmeldebildschirm verbindet | Authentication and providers | User or managed |

688| [`forceLoginMethod`](#forceloginmethod) | [Beschränken Sie die Anmeldung](/docs/de/authentication#restrict-login-to-your-organization) auf claude.ai, Claude Console oder ein [Cloud-Gateway](/docs/de/claude-apps-gateway) | Authentication and providers | Any file |688| [`forceLoginMethod`](#forceloginmethod) | [Beschränken Sie die Anmeldung](/docs/de/authentication#restrict-login-to-your-organization) auf claude.ai, Claude Console oder ein [Cloud-Gateway](/docs/de/claude-apps-gateway) | Authentication and providers | Any file |

689| [`forceLoginOrgUUID`](#forceloginorguuid) | [Heften Sie claude.ai-Anmeldungen an Ihre Organisation](/docs/de/authentication#restrict-login-to-your-organization); nur eine verwaltete Quelle erzwingt dies | Authentication and providers | Any file |689| [`forceLoginOrgUUID`](#forceloginorguuid) | [Heften Sie claude.ai-Anmeldungen an Ihre Organisation](/docs/de/authentication#restrict-login-to-your-organization); nur eine verwaltete Quelle erzwingt dies | Authentication and providers | Any file |

690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blockieren Sie den Start, bis [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) frisch abgerufen werden | Enterprise and managed settings | Managed |690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blockieren Sie den Start, bis [Server-verwaltete Einstellungen](/docs/de/server-managed-settings) frisch abgerufen werden | Enterprise and managed settings | Managed |


831| [`worktree`](#worktree) | Konfigurieren Sie, wie Claude Code Git-[Worktrees](/docs/de/worktrees) erstellt | Agents, sessions, and worktrees | Any file |831| [`worktree`](#worktree) | Konfigurieren Sie, wie Claude Code Git-[Worktrees](/docs/de/worktrees) erstellt | Agents, sessions, and worktrees | Any file |

832| [`worktree.baseRef`](#worktree-baseref) | Verzweigen Sie neue [Worktrees](/docs/de/worktrees) vom Remote-Standard-Branch oder Ihrem lokalen HEAD | Agents, sessions, and worktrees | Any file |832| [`worktree.baseRef`](#worktree-baseref) | Verzweigen Sie neue [Worktrees](/docs/de/worktrees) vom Remote-Standard-Branch oder Ihrem lokalen HEAD | Agents, sessions, and worktrees | Any file |

833| [`worktree.bgIsolation`](#worktree-bgisolation) | Lassen Sie Hintergrund-Sitzungen die Arbeitskopie ohne [Worktree](/docs/de/worktrees) bearbeiten | Agents, sessions, and worktrees | Any file |833| [`worktree.bgIsolation`](#worktree-bgisolation) | Lassen Sie Hintergrund-Sitzungen die Arbeitskopie ohne [Worktree](/docs/de/worktrees) bearbeiten | Agents, sessions, and worktrees | Any file |

834| [`worktree.location`](#worktree-location) | Wählen Sie, wo [Desktop-SSH-Sitzungen](/docs/de/desktop#ssh-sessions) ihre Worktrees auf einem Remote-Computer erstellen | Agents, sessions, and worktrees | User |

834| [`worktree.sparsePaths`](#worktree-sparsepaths) | Checken Sie nur die Verzeichnisse aus, die Sie in jedem [Worktree](/docs/de/worktrees) benötigen | Agents, sessions, and worktrees | Any file |835| [`worktree.sparsePaths`](#worktree-sparsepaths) | Checken Sie nur die Verzeichnisse aus, die Sie in jedem [Worktree](/docs/de/worktrees) benötigen | Agents, sessions, and worktrees | Any file |

835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Symlinken Sie große Verzeichnisse in jeden [Worktree](/docs/de/worktrees), anstatt sie zu duplizieren | Agents, sessions, and worktrees | Any file |836| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Symlinken Sie große Verzeichnisse in jeden [Worktree](/docs/de/worktrees), anstatt sie zu duplizieren | Agents, sessions, and worktrees | Any file |

836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Lassen Sie WSL [verwaltete Einstellungen](/docs/de/managed-settings) aus der Windows-Richtlinienkette lesen | Enterprise and managed settings | Managed |837| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Lassen Sie WSL [verwaltete Einstellungen](/docs/de/managed-settings) aus der Windows-Richtlinienkette lesen | Enterprise and managed settings | Managed |


1763 * `"acceptEdits"`: Claude Code führt auch Dateibearbeitungen und häufige Dateisystem-Befehle wie `mkdir` und `mv` ohne Nachfrage aus1764 * `"acceptEdits"`: Claude Code führt auch Dateibearbeitungen und häufige Dateisystem-Befehle wie `mkdir` und `mv` ohne Nachfrage aus

1764 * `"plan"`: Claude Code liest und plant, blockiert aber Bearbeitungen, bis Sie einen Plan genehmigen1765 * `"plan"`: Claude Code liest und plant, blockiert aber Bearbeitungen, bis Sie einen Plan genehmigen

1765 * `"auto"`: Claude Code läuft ohne die üblichen Nachfragen; bevor Aktionen wie Shell-Befehle und Netzwerkanfragen ausgeführt werden, prüft ein Klassifikator im Hintergrund, ob sie mit Ihrer Anfrage übereinstimmen1766 * `"auto"`: Claude Code läuft ohne die üblichen Nachfragen; bevor Aktionen wie Shell-Befehle und Netzwerkanfragen ausgeführt werden, prüft ein Klassifikator im Hintergrund, ob sie mit Ihrer Anfrage übereinstimmen

1766 * `"dontAsk"`: Claude Code verweigert automatisch jeden Aufruf, bei dem sonst nachgefragt würde; Lesevorgänge, andere Aktionen, die keine Genehmigung benötigen, und vorab genehmigte Tools werden weiterhin ausgeführt1767 * `"dontAsk"`: Claude Code verweigert automatisch jeden Aufruf, bei dem sonst nachgefragt würde; Dateilesevorgänge innerhalb Ihrer Arbeitsverzeichnisse, andere Aktionen, die keine Genehmigung benötigen, und vorab genehmigte Tools werden weiterhin ausgeführt, mit Ausnahme von Lesevorgängen aus [Netzwerkpfaden](/docs/de/permissions#network-paths)

1767 * `"bypassPermissions"`: Claude Code führt alles ohne Nachfrage aus1768 * `"bypassPermissions"`: Claude Code führt alles ohne Nachfrage aus

1768 * `"manual"`: ein Alias für `"default"`1769 * `"manual"`: ein Alias für `"default"`

1769* **Standard**: nicht gesetzt1770* **Standard**: nicht gesetzt


2398 2399 

2399* Ein Eintrag in `files` oder `envVars`, der noch einen gültigen `path` oder `name` und einen `mode` von `mask` oder `deny` hat, z. B. einer, dessen `extract`-Muster keine Erfassungsgruppe hat, wird mit einer Warnung auf `mode: "deny"` herabgestuft, sodass die Anmeldedaten blockiert statt maskiert bleiben, bis Sie den Eintrag korrigieren. Ein herabgestufter `files`-Eintrag fixiert [`filesystem.disabled`](/docs/de/sandboxing#disable-filesystem-isolation) wie ein expliziter `deny`-Eintrag, und die Warnung weist darauf hin, dass seine Lesesperre nicht erzwungen wird, wenn verwaltete Einstellungen die Dateisystem-Isolierung ausschalten.2400* Ein Eintrag in `files` oder `envVars`, der noch einen gültigen `path` oder `name` und einen `mode` von `mask` oder `deny` hat, z. B. einer, dessen `extract`-Muster keine Erfassungsgruppe hat, wird mit einer Warnung auf `mode: "deny"` herabgestuft, sodass die Anmeldedaten blockiert statt maskiert bleiben, bis Sie den Eintrag korrigieren. Ein herabgestufter `files`-Eintrag fixiert [`filesystem.disabled`](/docs/de/sandboxing#disable-filesystem-isolation) wie ein expliziter `deny`-Eintrag, und die Warnung weist darauf hin, dass seine Lesesperre nicht erzwungen wird, wenn verwaltete Einstellungen die Dateisystem-Isolierung ausschalten.

2400* Ein Eintrag mit einem unbekannten `mode` oder einem ungültigen `path` oder `name` wird entfernt.2401* Ein Eintrag mit einem unbekannten `mode` oder einem ungültigen `path` oder `name` wird entfernt.

2401* In jedem Fall wird gewarnt; ob ein Eintrag herabgestuft oder entfernt wird, die verbleibenden gültigen Einträge werden weiterhin erzwungen, und ein vollständig ungültiger `credentials`-Wert wird verworfen, während der Rest von `sandbox` weiterhin gilt.2402* In jedem Fall wird gewarnt; ob ein Eintrag herabgestuft oder entfernt wird, die verbleibenden gültigen Einträge werden weiterhin erzwungen.

2402 2403 

2403Gilt in v2.1.191 und später; vor v2.1.221 wurde jeder ungültige Eintrag entfernt. Für die anderen verwalteten Schlüssel mit feldweiser Behandlung siehe [Invalid entries in managed settings](/docs/de/managed-settings#invalid-entries-in-managed-settings).2404Gilt in v2.1.191 und später; vor v2.1.221 wurde jeder ungültige Eintrag entfernt. Für die anderen verwalteten Schlüssel mit feldweiser Behandlung siehe [Invalid entries in managed settings](/docs/de/managed-settings#invalid-entries-in-managed-settings).

2404 2405 


5681 5682 

5682Auß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.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.

5683 5684 

5685<h3 id="worktree-location">

5686 `worktree.location`

5687</h3>

5688 

5689Wählen Sie den Ordner auf einem Remote-Rechner, in dem [Desktop-SSH-Sitzungen](/docs/de/desktop#choose-where-ssh-session-worktrees-go) ihre Worktrees erstellen, anstelle von `<project-root>/.claude/worktrees/`. Nur die Desktop-App liest diesen Schlüssel: `--worktree`, das Tool `EnterWorktree`, isolierte Subagenten und Hintergrund-Sitzungen ignorieren ihn. Erfordert Claude Desktop v1.44121.0 oder später.

5690 

5691* **Geltungsbereich**: [`User`](#scopes), in `~/.claude/settings.json` auf dem Remote-Rechner

5692* **Typ**: String, ein absoluter Pfad oder ein Pfad, der mit `~/` beginnt

5693* **Standard**: nicht gesetzt, daher werden Worktrees innerhalb des Projekts angelegt

5694 

5695Dieses Beispiel setzt den Ordner auf `~/worktrees`:

5696 

5697```json settings.json theme={null}

5698{

5699 "worktree": {

5700 "location": "~/worktrees"

5701 }

5702}

5703```

5704 

5705Ein **Worktree folder**, der in Desktop für die SSH-Verbindung festgelegt ist, hat Vorrang. Wenn Ihre Organisation einschränkt, welche Ordner Sitzungen verwenden dürfen, belässt Desktop die Worktrees innerhalb des Projekts.

5706 

5684<h2 id="remote-desktop-and-notifications">5707<h2 id="remote-desktop-and-notifications">

5685 Remote, Desktop und Benachrichtigungen5708 Remote, Desktop und Benachrichtigungen

5686</h2>5709</h2>


5813 `enableArtifact`5836 `enableArtifact`

5814</h3>5837</h3>

5815 5838 

5816Schalten Sie das [Artifact](/docs/de/artifacts)-Tool aus, das Sitzungsausgaben als private Webseite auf claude.ai veröffentlicht. Wenn Sie die Zeile **Artifacts** in `/config` ausschalten, schreibt Claude Code diesen Schlüssel in Ihre Benutzereinstellungen, daher bearbeiten Sie ihn normalerweise nicht von Hand. Erfordert Claude Code v2.1.196 oder später.5839Schalten Sie das [Artifact](/docs/de/artifacts)-Tool aus, das Sitzungsausgaben als private Webseite auf claude.ai veröffentlicht. Wenn Sie die Zeile **Artifacts** in `/config` ausschalten, schreibt Claude Code diesen Schlüssel in Ihre Benutzereinstellungen, daher bearbeiten Sie ihn normalerweise nicht von Hand.

5817 5840 

5818* **Geltungsbereich**: [`Any file`](#scopes). Jede Datei kann das Tool ausschalten, und keine kann es wieder einschalten.5841* **Geltungsbereich**: [`Any file`](#scopes). Jede Datei kann das Tool ausschalten, und keine kann es wieder einschalten.

5819* **Typ**: Boolean5842* **Typ**: Boolean


5920 `sshConfigs`5943 `sshConfigs`

5921</h3>5944</h3>

5922 5945 

5923Fügen Sie SSH-Verbindungen zur [Desktop](/docs/de/desktop#pre-configure-ssh-connections-for-your-team)-Umgebungs-Dropdown hinzu. Administratoren verwenden es, um gemeinsame Verbindungen an ein Team zu verteilen. Verbindungen, die Sie in verwalteten Einstellungen definieren, werden als verwaltet angezeigt, daher können Benutzer sie auswählen, aber nicht bearbeiten oder löschen in der App.5946Fügen Sie SSH-Verbindungen zur [Desktop](/docs/de/desktop#pre-configure-ssh-connections-for-your-team)-Umgebungs-Dropdown hinzu. Administratoren verwenden es, um gemeinsame Verbindungen an ein Team zu verteilen. Verbindungen, die Sie in verwalteten Einstellungen definieren, werden als verwaltet angezeigt. Benutzer können sie auswählen und [ihren eigenen **Worktree-Ordner**](/docs/de/desktop#choose-where-ssh-session-worktrees-go) dafür festlegen, können in der App aber nichts anderes bearbeiten und sie nicht löschen.

5924 5947 

5925* **Geltungsbereich**: [`User or managed`](#scopes). Die Desktop-App liest diesen Schlüssel. Standardmäßig liest sie verwaltete Verbindungen aus [einer verwalteten Quelle](/docs/de/managed-settings#how-claude-code-combines-managed-sources).5948* **Geltungsbereich**: [`User or managed`](#scopes). Die Desktop-App liest diesen Schlüssel. Standardmäßig liest sie verwaltete Verbindungen aus [einer verwalteten Quelle](/docs/de/managed-settings#how-claude-code-combines-managed-sources).

5926* **Typ**: Array von Objekten, jedes mit erforderlichen `id`, `name` und `sshHost` und optionalen `sshPort` und `sshIdentityFile`5949* **Typ**: Array von Objekten, jedes mit erforderlichen `id`, `name` und `sshHost` und optionalen `sshPort` und `sshIdentityFile`


6085 6108 

6086Beschränken Sie, mit welcher Art von Konto sich Personen anmelden können. Setzen Sie `"claudeai"`, um nur claude.ai-Konten zuzulassen, `"console"`, um nur Claude Console-Konten zuzulassen, oder `"gateway"`, um Personen zu einem [Cloud-Gateway](/docs/de/claude-apps-gateway) statt zu einer First-Party-Anmeldung zu senden. Administratoren legen es in verwalteten Einstellungen fest und koppeln es mit [`forceLoginOrgUUID`](#forceloginorguuid), um die claude.ai-Anmeldungen von Entwicklern in einer Organisation zu halten. Wenn Sie es in einer beliebigen Einstellungsdatei auf `"claudeai"` oder `"console"` setzen, stoppt Claude Code auch das Angebot der [schlüssellosen Console-Anmeldung](/docs/de/authentication#sign-in-without-an-api-key) in den Sitzungen, auf die diese Datei zutrifft.6109Beschränken Sie, mit welcher Art von Konto sich Personen anmelden können. Setzen Sie `"claudeai"`, um nur claude.ai-Konten zuzulassen, `"console"`, um nur Claude Console-Konten zuzulassen, oder `"gateway"`, um Personen zu einem [Cloud-Gateway](/docs/de/claude-apps-gateway) statt zu einer First-Party-Anmeldung zu senden. Administratoren legen es in verwalteten Einstellungen fest und koppeln es mit [`forceLoginOrgUUID`](#forceloginorguuid), um die claude.ai-Anmeldungen von Entwicklern in einer Organisation zu halten. Wenn Sie es in einer beliebigen Einstellungsdatei auf `"claudeai"` oder `"console"` setzen, stoppt Claude Code auch das Angebot der [schlüssellosen Console-Anmeldung](/docs/de/authentication#sign-in-without-an-api-key) in den Sitzungen, auf die diese Datei zutrifft.

6087 6110 

6088* **Geltungsbereich**: [`Any file`](#scopes). Claude Code berücksichtigt `"gateway"` nur von einer verwalteten Quelle auf dem Computer: `managed-settings.json`, die macOS plist oder Windows HKLM-Registrierung oder ein Policy-Helfer. Es behandelt `"gateway"` als nicht gesetzt in Benutzer-, Projekt-, lokalen, HKCU- und Server-verwalteten Einstellungen, die gleiche Regel wie [`forceLoginGatewayUrl`](#forcelogingatewayurl).6111* **Geltungsbereich**: [`Any file`](#scopes). Claude Code berücksichtigt `"gateway"` aus denselben Quellen wie [`forceLoginGatewayUrl`](#forcelogingatewayurl) und behandelt es überall sonst als nicht gesetzt.

6089* **Typ**: string, einer von:6112* **Typ**: string, einer von:

6090 * `"claudeai"`: nur claude.ai-Konten können sich anmelden6113 * `"claudeai"`: nur claude.ai-Konten können sich anmelden

6091 * `"console"`: nur Claude Console-Konten können sich anmelden6114 * `"console"`: nur Claude Console-Konten können sich anmelden


6108 6131 

6109Legen Sie die Gateway-URL fest, mit der sich der `/login` Cloud-Gateway-Bildschirm verbindet, damit Personen Ihr [Cloud-Gateway](/docs/de/claude-apps-gateway) erreichen, ohne seine Adresse einzugeben. Der Bildschirm hat kein URL-Feld: Mit diesem Schlüssel gesetzt zeigt er Ihre Gateway-URL an und verbindet sich, wenn die Person die Eingabetaste drückt; ohne ihn teilt er ihnen mit, sich an ihren IT-Administrator zu wenden.6132Legen Sie die Gateway-URL fest, mit der sich der `/login` Cloud-Gateway-Bildschirm verbindet, damit Personen Ihr [Cloud-Gateway](/docs/de/claude-apps-gateway) erreichen, ohne seine Adresse einzugeben. Der Bildschirm hat kein URL-Feld: Mit diesem Schlüssel gesetzt zeigt er Ihre Gateway-URL an und verbindet sich, wenn die Person die Eingabetaste drückt; ohne ihn teilt er ihnen mit, sich an ihren IT-Administrator zu wenden.

6110 6133 

6111Entweder dieser Schlüssel oder `forceLoginMethod: "gateway"` macht den Computer zu einem reinen Gateway-Computer, mit Ausnahme von Sitzungen, die einen Cloud-Anbieter mit `CLAUDE_CODE_USE_*` auswählen. `/login` öffnet dann auf dem Cloud-Gateway-Bildschirm ohne Anmeldemethoden-Picker. Siehe [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in), um zu erfahren, was mit einer verbleibenden First-Party-Anmeldung oder einem API-Schlüssel geschieht. Legen Sie beide Schlüssel fest, damit sich der Bildschirm verbindet, statt einen Fehler anzuzeigen.6134In verwalteten Einstellungen macht entweder dieser Schlüssel oder `forceLoginMethod: "gateway"` den Computer zu einem reinen Gateway-Computer, mit Ausnahme von Sitzungen, die einen Cloud-Anbieter mit `CLAUDE_CODE_USE_*` auswählen. `/login` öffnet dann auf dem Cloud-Gateway-Bildschirm ohne Anmeldemethoden-Picker. Siehe [Administrator-Richtlinie erfordert eine Cloud-Gateway-Anmeldung](/docs/de/errors#administrator-policy-requires-a-cloud-gateway-sign-in), um zu erfahren, was mit einer verbleibenden First-Party-Anmeldung oder einem API-Schlüssel geschieht. Legen Sie beide Schlüssel fest, damit sich der Bildschirm verbindet, statt einen Fehler anzuzeigen.

6112 6135 

6113* **Geltungsbereich**: [`Managed`](#scopes). Wird nur von einer Quelle auf dem Computer gelesen: `managed-settings.json`, die macOS plist oder Windows HKLM-Registrierung oder ein Policy-Helfer. Claude Code ignoriert es in HKCU- und Server-verwalteten Einstellungen.6136* **Geltungsbereich**: [`User or managed`](#scopes). Wird von einer verwalteten Quelle auf dem Computer gelesen: `managed-settings.json`, die macOS plist oder Windows HKLM-Registrierung oder ein Policy-Helfer. Auf einem Computer ohne eine dieser Quellen liest Claude Code v2.1.295 oder später es auch aus den [Benutzereinstellungen](/docs/de/claude-apps-gateway#set-the-gateway-url-in-user-settings). Claude Code ignoriert es in HKCU- und Server-verwalteten Einstellungen.

6114* **Typ**: string, eine vollständige URL einschließlich des Schemas6137* **Typ**: string, eine vollständige URL einschließlich des Schemas

6115* **Standard**: nicht gesetzt, daher zeigt der Cloud-Gateway-Bildschirm einen Fehler an, der Personen auffordert, sich an ihren IT-Administrator zu wenden6138* **Standard**: nicht gesetzt, daher zeigt der Cloud-Gateway-Bildschirm einen Fehler an, der Personen auffordert, sich an ihren IT-Administrator zu wenden

6116 6139 


6140}6163}

6141```6164```

6142 6165 

6143Wenn eine verwaltete Quelle ein leeres Array setzt oder einen Wert, den Claude Code nicht analysieren kann, blockiert Claude Code jede Anmeldung mit einer Fehlkonfigurationsmeldung.6166Wenn eine verwaltete Quelle ein leeres Array setzt oder einen Wert, der weder ein String noch ein Array von Strings ist, können Benutzer, die sich mit einem Anthropic-Konto anmelden, Claude Code nicht starten und keine Anmeldung abschließen. Sie sehen eine Meldung, die `forceLoginOrgUUID` nennt und sie auffordert, sich an ihren Administrator zu wenden. Ein [`policyHelper`](#policyhelper), der einen Wert des falschen Typs ausgibt, [schlägt bei seinem Lauf fehl](#helper-failures) statt dessen.

6144 6167 

6145Siehe [Anmeldung auf Ihre Organisation beschränken](/docs/de/authentication#restrict-login-to-your-organization), um zu erfahren, wie Claude Code Claude Console-Anmeldungen, die anderen Anmeldepfade und Umgebungsanmeldedaten behandelt.6168Siehe [Anmeldung auf Ihre Organisation beschränken](/docs/de/authentication#restrict-login-to-your-organization), um zu erfahren, wie Claude Code Claude Console-Anmeldungen, die anderen Anmeldepfade und Umgebungsanmeldedaten behandelt.

6146 6169 


6806 `copyFullResponse`6829 `copyFullResponse`

6807</h3>6830</h3>

6808 6831 

6809Lassen Sie [`/copy`](/docs/de/commands) jedes Mal die vollständige Antwort kopieren, ohne die Auswahl, die sonst angezeigt wird, wenn die Antwort Codeblöcke enthält. Wenn Sie in dieser Auswahl **Immer vollständige Antwort kopieren** wählen, wird dieser Schlüssel auf `true` gesetzt. Erscheint in `/config` als **/copy-Auswahl überspringen**.6832Lassen Sie [`/copy`](/docs/de/commands) jedes Mal die vollständige Antwort kopieren, ohne die Auswahl anzuzeigen. Wenn Sie in dieser Auswahl **Immer vollständige Antwort kopieren** wählen, wird dieser Schlüssel auf `true` gesetzt. Erscheint in `/config` als **/copy-Auswahl überspringen**.

6810 6833 

6811* **Geltungsbereich**: [`Global config`](#scopes)6834* **Geltungsbereich**: [`Global config`](#scopes)

6812* **Typ**: Boolean6835* **Typ**: Boolean

6813 * `true`: `/copy` kopiert die vollständige Antwort, ohne die Auswahl anzuzeigen6836 * `true`: `/copy` kopiert die vollständige Antwort, ohne die Auswahl anzuzeigen

6814 * `false`: Wenn die Antwort Codeblöcke enthält, zeigt `/copy` eine Auswahl an, in der Sie einen Codeblock oder die vollständige Antwort wählen6837 * `false`: Wenn die Antwort Codeblöcke oder Blockzitate enthält, zeigt `/copy` eine Auswahl an, in der Sie einen Block oder die vollständige Antwort wählen

6815* **Standard**: `false`6838* **Standard**: `false`

6816 6839 

6817```json ~/.claude.json theme={null}6840```json ~/.claude.json theme={null}

skills.md +7 −7

Details

192 192 

193Claude Code lädt Projekt-Skills aus `.claude/skills/` in dem Verzeichnis, in dem Sie ihn starten, und in jedem übergeordneten Verzeichnis bis zur Repository-Root, sodass das Starten in `packages/frontend/` immer noch Skills aufgreift, die in der Root definiert sind. Wenn Sie [die Sitzung mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später, fügt Claude Code die Projekt-Skills des neuen Verzeichnisses hinzu.193Claude Code lädt Projekt-Skills aus `.claude/skills/` in dem Verzeichnis, in dem Sie ihn starten, und in jedem übergeordneten Verzeichnis bis zur Repository-Root, sodass das Starten in `packages/frontend/` immer noch Skills aufgreift, die in der Root definiert sind. Wenn Sie [die Sitzung mit `/cd` verschieben](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später, fügt Claude Code die Projekt-Skills des neuen Verzeichnisses hinzu.

194 194 

195In einer Sitzung, die in einem verknüpften [Git Worktree](/docs/de/worktrees) läuft, durchsucht Claude Code übergeordnete Verzeichnisse nur bis zur Worktree-Root. Auf Claude Code v2.1.277 oder später lädt Claude Code, wenn der Worktree-Checkout kein `.claude/skills`-Verzeichnis in seiner Root hat, stattdessen die Projekt-Skills des Haupt-Checkouts. Siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).195In einer Sitzung, die in einem verknüpften [Git Worktree](/docs/de/worktrees) läuft, den Sie mit `--worktree` oder `git worktree add` erstellt haben, durchsucht Claude Code übergeordnete Verzeichnisse nur bis zur Worktree-Root. Auf Claude Code v2.1.277 oder später lädt Claude Code, wenn der Worktree-Checkout kein `.claude/skills`-Verzeichnis in seiner Root hat, stattdessen die Projekt-Skills des Haupt-Checkouts. Siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).

196 196 

197Skills in einem `.claude/skills/`-Verzeichnis unterhalb des Ortes, an dem Sie gestartet haben, werden beim Start nicht geladen. Sie werden geladen, wenn Claude zum ersten Mal eine Datei in diesem Unterverzeichnis liest oder bearbeitet, und bleiben für den Rest der Sitzung verfügbar. Bis dahin erscheinen sie nicht im `/`-Menü und Sie können sie nicht nach Name aufrufen. Um sie früher zu laden, führen Sie `/add-dir` mit dem Pfad des Unterverzeichnisses aus, was Claude Code v2.1.257 oder später erfordert.197Skills in einem `.claude/skills/`-Verzeichnis unterhalb des Ortes, an dem Sie gestartet haben, werden beim Start nicht geladen. Sie werden geladen, wenn Claude zum ersten Mal eine Datei in diesem Unterverzeichnis liest oder bearbeitet, und bleiben für den Rest der Sitzung verfügbar. Bis dahin erscheinen sie nicht im `/`-Menü und Sie können sie nicht nach Name aufrufen. Um sie früher zu laden, führen Sie `/add-dir` mit dem Pfad des Unterverzeichnisses aus, was Claude Code v2.1.257 oder später erfordert. Für eine Worktree-Sitzung, die Sie aus der Desktop-App starten, siehe [Was Worktrees mit dem Haupt-Checkout teilen](/docs/de/worktrees#what-worktrees-share-with-the-main-checkout).

198 198 

199Wenn ein verschachtelter Skill denselben Namen wie ein anderer Skill hat, bleiben beide verfügbar. Mit einem `deploy`-Skill in der Repository-Root und einem anderen in `apps/web/.claude/skills/`:199Wenn ein verschachtelter Skill denselben Namen wie ein anderer Skill hat, bleiben beide verfügbar. Mit einem `deploy`-Skill in der Repository-Root und einem anderen in `apps/web/.claude/skills/`:

200 200 


235 235 

236Wenn ein Skill nur in `~/.claude/skills/` auf Ihrer Maschine vorhanden ist, meldet Claude Code, dass der Skill nicht gefunden wurde, wenn eine [Routine](/docs/de/routines) ihn aufruft, da jede Routine-Ausführung als frische Cloud-Sitzung startet. Um einen persönlichen Skill in diesen Sitzungen verfügbar zu machen:236Wenn ein Skill nur in `~/.claude/skills/` auf Ihrer Maschine vorhanden ist, meldet Claude Code, dass der Skill nicht gefunden wurde, wenn eine [Routine](/docs/de/routines) ihn aufruft, da jede Routine-Ausführung als frische Cloud-Sitzung startet. Um einen persönlichen Skill in diesen Sitzungen verfügbar zu machen:

237 237 

238* Für Cowork- und Cloud-Sitzungen aktivieren Sie den Skill für Ihr claude.ai-Konto.238* Für Cowork- und Cloud-Sitzungen aktivieren Sie den Skill für Ihr claude.ai-Konto. [Einige Sitzungen in einer selbst gehosteten Umgebung](/docs/de/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) laden die Skills Ihres Kontos nicht.

239* Für Cloud-Sitzungen können Sie den Skill stattdessen in `.claude/skills/` des Repositorys committen. Plugins, die in `.claude/settings.json` des Repositorys deklariert sind, und Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind, [werden nicht in Cloud-Sitzungen geladen](/docs/de/cloud-environments#what-carries-over-from-your-setup).239* Für Cloud-Sitzungen können Sie den Skill stattdessen in `.claude/skills/` des Repositorys committen. Plugins, die in `.claude/settings.json` des Repositorys deklariert sind, und Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind, [werden nicht in Cloud-Sitzungen geladen](/docs/de/cloud-environments#what-carries-over-from-your-setup).

240 240 

241[Desktop-geplante Aufgaben](/docs/de/desktop-scheduled-tasks) werden lokal auf Ihrer Maschine ausgeführt, daher laden sie `~/.claude/skills/`.241[Desktop-geplante Aufgaben](/docs/de/desktop-scheduled-tasks) werden lokal auf Ihrer Maschine ausgeführt, daher laden sie `~/.claude/skills/`.


434| `when_to_use` | Nein | Zusätzlicher Kontext für den Zeitpunkt, zu dem Claude die Fähigkeit aufrufen sollte, z. B. Trigger-Phrasen oder Beispielanfragen. An `description` in der Fähigkeitsauflistung angehängt und zählt zur 1.536-Zeichen-Obergrenze. |434| `when_to_use` | Nein | Zusätzlicher Kontext für den Zeitpunkt, zu dem Claude die Fähigkeit aufrufen sollte, z. B. Trigger-Phrasen oder Beispielanfragen. An `description` in der Fähigkeitsauflistung angehängt und zählt zur 1.536-Zeichen-Obergrenze. |

435| `argument-hint` | Nein | Hinweis, der während der Autovervollständigung angezeigt wird, um erwartete Argumente anzuzeigen. Beispiel: `[issue-number]` oder `[filename] [format]`. |435| `argument-hint` | Nein | Hinweis, der während der Autovervollständigung angezeigt wird, um erwartete Argumente anzuzeigen. Beispiel: `[issue-number]` oder `[filename] [format]`. |

436| `arguments` | Nein | Benannte Positionsargumente für [`$name`-Substitution](#available-string-substitutions) im Fähigkeitsinhalt. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. Namen werden in Reihenfolge Argumentpositionen zugeordnet. |436| `arguments` | Nein | Benannte Positionsargumente für [`$name`-Substitution](#available-string-substitutions) im Fähigkeitsinhalt. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. Namen werden in Reihenfolge Argumentpositionen zugeordnet. |

437| `disable-model-invocation` | Nein | Setzen Sie auf `true`, um zu verhindern, dass Claude diese Fähigkeit automatisch lädt. Verwenden Sie für Workflows, die Sie manuell mit `/name` auslösen möchten. Verhindert auch, dass die Fähigkeit [in Subagents vorgeladen wird](/docs/de/sub-agents#preload-skills-into-subagents). Ab v2.1.196 verhindert dies auch, dass die Fähigkeit ausgeführt wird, wenn eine [geplante Aufgabe](/docs/de/scheduled-tasks) mit der Fähigkeit als Eingabeaufforderung ausgelöst wird. Standard: `false`. |437| `disable-model-invocation` | Nein | Setzen Sie auf `true`, um zu verhindern, dass Claude diesen Skill automatisch lädt. Verwenden Sie dies für Workflows, die Sie manuell mit `/name` auslösen möchten. Verhindert auch, dass der Skill [in Subagenten vorgeladen wird](/docs/de/sub-agents#preload-skills-into-subagents) und dass er ausgeführt wird, wenn eine [geplante Aufgabe](/docs/de/scheduled-tasks) mit dem Skill als Prompt ausgelöst wird. Standard: `false`. |

438| `user-invocable` | Nein | Setzen Sie auf `false`, wenn nur Claude die Fähigkeit aufrufen sollte: Claude Code blendet sie aus dem `/`-Menü aus und führt sie nicht aus, wenn Sie `/name` eingeben. Verwenden Sie für Hintergrundwissen, das Benutzer nicht direkt aufrufen sollten. Standard: `true`. |438| `user-invocable` | Nein | Setzen Sie auf `false`, wenn nur Claude die Fähigkeit aufrufen sollte: Claude Code blendet sie aus dem `/`-Menü aus und führt sie nicht aus, wenn Sie `/name` eingeben. Verwenden Sie für Hintergrundwissen, das Benutzer nicht direkt aufrufen sollten. Standard: `true`. |

439| `allowed-tools` | Nein | Tools, die Claude ohne Genehmigung während des Turns verwenden kann, der diese Fähigkeit aufruft. Die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Siehe [Tools für eine Fähigkeit vorab genehmigen](#pre-approve-tools-for-a-skill). |439| `allowed-tools` | Nein | Tools, die Claude ohne Genehmigung während des Turns verwenden kann, der diese Fähigkeit aufruft. Die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Siehe [Tools für eine Fähigkeit vorab genehmigen](#pre-approve-tools-for-a-skill). |

440| `disallowed-tools` | Nein | Tools, die aus Claudes verfügbarem Pool entfernt werden, während diese Fähigkeit aktiv ist. Verwenden Sie für autonome Fähigkeiten, die niemals bestimmte Tools aufrufen sollten, z. B. `AskUserQuestion` für eine Hintergrundschleife. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Die Einschränkung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Wie Ablehnungsregeln kann das Feld [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) nicht entfernen, während ein anderes Tool verfügbar bleibt. |440| `disallowed-tools` | Nein | Tools, die aus Claudes verfügbarem Pool entfernt werden, während diese Fähigkeit aktiv ist. Verwenden Sie für autonome Fähigkeiten, die niemals bestimmte Tools aufrufen sollten, z. B. `AskUserQuestion` für eine Hintergrundschleife. Akzeptiert eine durch Leerzeichen oder Komma getrennte Zeichenkette oder eine YAML-Liste. Die Einschränkung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Wie Ablehnungsregeln kann das Feld [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) nicht entfernen, während ein anderes Tool verfügbar bleibt. |


445| `background` | Nein | Gilt nur mit `context: fork`. Setzen Sie auf `false`, um auf das Ergebnis des verzweigten Subagents im Turn zu warten, der die Fähigkeit aufgerufen hat, anstatt [es im Hintergrund auszuführen](#run-skills-in-a-subagent). Standard: `true`. Erfordert Claude Code v2.1.218 oder später. |445| `background` | Nein | Gilt nur mit `context: fork`. Setzen Sie auf `false`, um auf das Ergebnis des verzweigten Subagents im Turn zu warten, der die Fähigkeit aufgerufen hat, anstatt [es im Hintergrund auszuführen](#run-skills-in-a-subagent). Standard: `true`. Erfordert Claude Code v2.1.218 oder später. |

446| `hooks` | Nein | Hooks, die Claude Code registriert, wenn die Fähigkeit aufgerufen wird, und die für den Rest der Sitzung weiterhin ausgeführt werden. Siehe [Hooks in Fähigkeiten und Agenten](/docs/de/hooks#hooks-in-skills-and-agents) für das Konfigurationsformat und die `once`-Option. |446| `hooks` | Nein | Hooks, die Claude Code registriert, wenn die Fähigkeit aufgerufen wird, und die für den Rest der Sitzung weiterhin ausgeführt werden. Siehe [Hooks in Fähigkeiten und Agenten](/docs/de/hooks#hooks-in-skills-and-agents) für das Konfigurationsformat und die `once`-Option. |

447| `paths` | Nein | Glob-Muster, die einschränken, wann diese Fähigkeit aktiviert wird. Akzeptiert eine durch Komma getrennte Zeichenkette oder eine YAML-Liste. Wenn gesetzt, lädt Claude die Fähigkeit automatisch nur, wenn mit Dateien arbeitet, die den Mustern entsprechen. Verwendet das gleiche Format wie [pfadspezifische Regeln](/docs/de/memory#path-specific-rules). |447| `paths` | Nein | Glob-Muster, die einschränken, wann diese Fähigkeit aktiviert wird. Akzeptiert eine durch Komma getrennte Zeichenkette oder eine YAML-Liste. Wenn gesetzt, lädt Claude die Fähigkeit automatisch nur, wenn mit Dateien arbeitet, die den Mustern entsprechen. Verwendet das gleiche Format wie [pfadspezifische Regeln](/docs/de/memory#path-specific-rules). |

448| `shell` | Nein | Shell, die für `` !`command` `` und ` ```! ` Blöcke in dieser Fähigkeit verwendet werden soll. Akzeptiert `bash` (Standard) oder `powershell`. Das Setzen von `powershell` führt Inline-Shell-Befehle über PowerShell aus, wenn das [PowerShell-Tool](/de/tools-reference#powershell-tool) aktiviert ist: Es ist standardmäßig unter Windows ohne Git Bash aktiviert, standardmäßig mit Git Bash für claude.ai und Console-Konten aktiviert, und benötigt `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` in Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry-Sitzungen sowie auf macOS, Linux und WSL. Setzen Sie es auf `0`, um das Tool auszuschalten. |448| `shell` | Nein | Shell, die für `` !`command` ``- und ` ```! `-Blöcke in diesem Skill verwendet werden soll. Akzeptiert `bash` (Standard) oder `powershell`. Das Setzen von `powershell` führt Inline-Shell-Befehle über PowerShell aus, wenn das [PowerShell-Tool](/de/tools-reference#powershell-tool) aktiviert ist: Es ist standardmäßig unter Windows ohne Git Bash aktiviert, standardmäßig mit Git Bash für claude.ai- und Console-Konten aktiviert und benötigt `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` in Sitzungen mit Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry sowie auf macOS, Linux und WSL. Setzen Sie es auf `0`, um das Tool auszuschalten. |

449| `metadata` | Nein | Freie YAML-Zuordnung für Ihre eigenen Schlüssel-Wert-Daten, z. B. Berechtigung oder Katalogfelder, die von Ihrem eigenen Tooling aus `SKILL.md` gelesen werden. Claude Code handelt nicht nach ihrem Inhalt und verwirft einen Wert, der keine Zuordnung ist. Verwenden Sie keine Frontmatter-Feldnamen wie `paths` als Schlüssel erneut. |449| `metadata` | Nein | Freie YAML-Zuordnung für Ihre eigenen Schlüssel-Wert-Daten, z. B. Berechtigung oder Katalogfelder, die von Ihrem eigenen Tooling aus `SKILL.md` gelesen werden. Claude Code handelt nicht nach ihrem Inhalt und verwirft einen Wert, der keine Zuordnung ist. Verwenden Sie keine Frontmatter-Feldnamen wie `paths` als Schlüssel erneut. |

450| `license` | Nein | Lizenz, die die Fähigkeit abdeckt. Teil der [Agent Skills](https://agentskills.io)-Spezifikation; siehe [Fähigkeits-Frontmatter außerhalb von Claude Code verwenden](#using-skill-frontmatter-outside-claude-code). Claude Code akzeptiert das Feld, handelt aber nicht danach. |450| `license` | Nein | Lizenz, die die Fähigkeit abdeckt. Teil der [Agent Skills](https://agentskills.io)-Spezifikation; siehe [Fähigkeits-Frontmatter außerhalb von Claude Code verwenden](#using-skill-frontmatter-outside-claude-code). Claude Code akzeptiert das Feld, handelt aber nicht danach. |

451| `compatibility` | Nein | Umgebungsanforderungen für die Fähigkeit, z. B. beabsichtigte Produkte oder Systemvoraussetzungen, wie in der [Agent Skills](https://agentskills.io)-Spezifikation definiert; siehe [Fähigkeits-Frontmatter außerhalb von Claude Code verwenden](#using-skill-frontmatter-outside-claude-code). Akzeptiert eine Zeichenkette von bis zu 500 Zeichen. Claude Code akzeptiert das Feld, handelt aber nicht danach. |451| `compatibility` | Nein | Umgebungsanforderungen für die Fähigkeit, z. B. beabsichtigte Produkte oder Systemvoraussetzungen, wie in der [Agent Skills](https://agentskills.io)-Spezifikation definiert; siehe [Fähigkeits-Frontmatter außerhalb von Claude Code verwenden](#using-skill-frontmatter-outside-claude-code). Akzeptiert eine Zeichenkette von bis zu 500 Zeichen. Claude Code akzeptiert das Feld, handelt aber nicht danach. |


528 528 

529Wenn diese Fähigkeit unter `~/.claude/skills/render-chart/` installiert ist, expandieren beide Vorkommen von `${CLAUDE_SKILL_DIR}` zu diesem Verzeichnis. Die `allowed-tools`-Regel stimmt dann mit dem genauen Befehl überein, den der Fähigkeitstext Claude ausführen sagt, sodass das Skript ohne Aufforderung ausgeführt wird.529Wenn diese Fähigkeit unter `~/.claude/skills/render-chart/` installiert ist, expandieren beide Vorkommen von `${CLAUDE_SKILL_DIR}` zu diesem Verzeichnis. Die `allowed-tools`-Regel stimmt dann mit dem genauen Befehl überein, den der Fähigkeitstext Claude ausführen sagt, sodass das Skript ohne Aufforderung ausgeführt wird.

530 530 

531Die `${CLAUDE_PROJECT_DIR}`-Substitution erfordert Claude Code v2.1.196 oder später.

532 

533Indizierte Argumente verwenden Shell-ähnliche Anführungszeichen, sodass mehrteilige Werte in Anführungszeichen einschließen, um sie als einzelnes Argument zu übergeben. Zum Beispiel macht `/my-skill "hello world" second` `$0` zu `hello world` und `$1` zu `second`. Der `$ARGUMENTS`-Platzhalter expandiert immer zur vollständigen Argumentzeichenkette wie eingegeben.531Indizierte Argumente verwenden Shell-ähnliche Anführungszeichen, sodass mehrteilige Werte in Anführungszeichen einschließen, um sie als einzelnes Argument zu übergeben. Zum Beispiel macht `/my-skill "hello world" second` `$0` zu `hello world` und `$1` zu `second`. Der `$ARGUMENTS`-Platzhalter expandiert immer zur vollständigen Argumentzeichenkette wie eingegeben.

534 532 

535Ein indizierter Platzhalter ohne entsprechendes Argument, z. B. `$2`, wenn nur ein Argument übergeben wurde, bleibt im Inhalt unverändert. Ein benannter Platzhalter aus dem [`arguments`](#frontmatter-reference)-Frontmatter ohne übereinstimmendes Argument expandiert zu einer leeren Zeichenkette.533Ein indizierter Platzhalter ohne entsprechendes Argument, z. B. `$2`, wenn nur ein Argument übergeben wurde, bleibt im Inhalt unverändert. Ein benannter Platzhalter aus dem [`arguments`](#frontmatter-reference)-Frontmatter ohne übereinstimmendes Argument expandiert zu einer leeren Zeichenkette.


843* Wenn Sie einen verzweigten Skill aufrufen, während ein früherer Aufruf desselben Skills noch läuft841* Wenn Sie einen verzweigten Skill aufrufen, während ein früherer Aufruf desselben Skills noch läuft

844* Wenn eine [geplante Task](/docs/de/scheduled-tasks) mit dem Skill als Prompt ausgelöst wird842* Wenn eine [geplante Task](/docs/de/scheduled-tasks) mit dem Skill als Prompt ausgelöst wird

845 843 

844Wenn ein Agent in einem [dynamischen Workflow](/docs/de/workflows) einen verzweigten Skill aufruft, wartet dieser Agent auf das Ergebnis und erhält es, selbst wenn der Skill `background: false` nicht setzt. Vor v2.1.295 wartete Claude Code in diesem Fall nicht, und wenn der Skill im Hintergrund lief, kam sein Ergebnis in Ihrer Hauptkonversation an, anstatt diesen Agenten zu erreichen.

845 

846Ein hintergrund-verzweigter Skill wird auch mit dem [engeren Tool-Set ausgeführt, das für Hintergrund-Subagenten gilt](/docs/de/sub-agents#run-subagents-in-foreground-or-background): Der Subagent des Skills ist ein regulärer Agent-Typ, daher gilt die Ausnahme für Subagenten, die das Gespräch verzweigen, nicht. Wenn die Schritte Ihres Skills von einem Tool außerhalb dieses Sets abhängen, setzen Sie `background: false`, um das vollständige Tool-Set beizubehalten.846Ein hintergrund-verzweigter Skill wird auch mit dem [engeren Tool-Set ausgeführt, das für Hintergrund-Subagenten gilt](/docs/de/sub-agents#run-subagents-in-foreground-or-background): Der Subagent des Skills ist ein regulärer Agent-Typ, daher gilt die Ausnahme für Subagenten, die das Gespräch verzweigen, nicht. Wenn die Schritte Ihres Skills von einem Tool außerhalb dieses Sets abhängen, setzen Sie `background: false`, um das vollständige Tool-Set beizubehalten.

847 847 

848Ein verzweigter Skill, der im Hintergrund läuft, wendet seine Änderungen außerhalb der [Checkpoints](/docs/de/checkpointing) Ihrer Session an, sodass `/rewind` sie nicht rückgängig macht; verwenden Sie git, um sie rückgängig zu machen.848Ein verzweigter Skill, der im Hintergrund läuft, wendet seine Änderungen außerhalb der [Checkpoints](/docs/de/checkpointing) Ihrer Session an, sodass `/rewind` sie nicht rückgängig macht; verwenden Sie git, um sie rückgängig zu machen.

sub-agents.md +3 −5

Details

386* **Das Modell der Hauptkonversation gehört zu dieser Familie**: Der Subagent läuft auf dem genauen Modell der Hauptkonversation, einschließlich aller `[1m]`-Suffixe, sodass er das gleiche [erweiterte Kontextfenster](/docs/de/model-config#extended-context) wie die Hauptkonversation erhält.386* **Das Modell der Hauptkonversation gehört zu dieser Familie**: Der Subagent läuft auf dem genauen Modell der Hauptkonversation, einschließlich aller `[1m]`-Suffixe, sodass er das gleiche [erweiterte Kontextfenster](/docs/de/model-config#extended-context) wie die Hauptkonversation erhält.

387* **Claude Code kann die Modellfamilie der Hauptkonversation nicht bestimmen, auf [einem anderen Provider als der Anthropic API](/docs/de/third-party-integrations)**: Dies kann mit einem [Application Inference Profile ARN](/docs/de/amazon-bedrock#iam-configuration) auf Amazon Bedrock passieren, das Claude Code nicht zu einem Backing-Modell aufgelöst hat. Dieser Fall deckt nur den `opus`-Alias ab und gilt nicht, wenn Sie [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/de/model-config#environment-variables) setzen, da `opus` dann zum von Ihnen gesetzten Modell aufgelöst wird.387* **Claude Code kann die Modellfamilie der Hauptkonversation nicht bestimmen, auf [einem anderen Provider als der Anthropic API](/docs/de/third-party-integrations)**: Dies kann mit einem [Application Inference Profile ARN](/docs/de/amazon-bedrock#iam-configuration) auf Amazon Bedrock passieren, das Claude Code nicht zu einem Backing-Modell aufgelöst hat. Dieser Fall deckt nur den `opus`-Alias ab und gilt nicht, wenn Sie [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/de/model-config#environment-variables) setzen, da `opus` dann zum von Ihnen gesetzten Modell aufgelöst wird.

388 388 

389Ein Alias in `CLAUDE_CODE_SUBAGENT_MODEL` wird immer zur Version aufgelöst, auf die der Alias verweist, auch wenn er die Familie der Hauptkonversation benennt.389Ein Alias in `CLAUDE_CODE_SUBAGENT_MODEL` wird immer zur Version aufgelöst, auf die der Alias verweist, auch wenn er die Familie der Hauptkonversation benennt. Das Setzen der Variablen auf `inherit` ist dasselbe wie das Nichtsetzen.

390 390 

391Das Setzen von `CLAUDE_CODE_SUBAGENT_MODEL` allein ändert nicht das Modell, auf dem die integrierten Explore- und Plan-Subagenten laufen. Um es zu ändern, siehe [Führen Sie jeden Subagenten auf einem Modell aus](#run-every-subagent-on-one-model).391Das Setzen von `CLAUDE_CODE_SUBAGENT_MODEL` allein ändert nicht das Modell, auf dem die integrierten Explore- und Plan-Subagenten laufen. Um es zu ändern, siehe [Führen Sie jeden Subagenten auf einem Modell aus](#run-every-subagent-on-one-model).

392 392 

393Vor v2.1.251 kam `CLAUDE_CODE_SUBAGENT_MODEL` zuerst in dieser Reihenfolge und überschrieb sowohl den Per-Invokation-Parameter als auch das Frontmatter, einschließlich `model: inherit`.393Vor v2.1.251 kam `CLAUDE_CODE_SUBAGENT_MODEL` zuerst in dieser Reihenfolge und überschrieb sowohl den Per-Invokation-Parameter als auch das Frontmatter, einschließlich `model: inherit`.

394 394 

395Das Setzen der Variablen auf `inherit` ist dasselbe wie das Nichtsetzen. Vor v2.1.196 erzwang dieser Wert Subagenten auf das Modell der Hauptkonversation und ignorierte die anderen Quellen.

396 

397Claude Code überprüft die Per-Invokation-Parameter, Frontmatter und Umgebungsvariablenwerte gegen die [`availableModels`](/docs/de/model-config#restrict-model-selection)-Allowlist Ihrer Organisation. Für einen blockierten Wert ersetzt es ein anderes Modell:395Claude Code überprüft die Per-Invokation-Parameter, Frontmatter und Umgebungsvariablenwerte gegen die [`availableModels`](/docs/de/model-config#restrict-model-selection)-Allowlist Ihrer Organisation. Für einen blockierten Wert ersetzt es ein anderes Modell:

398 396 

399* Wenn der blockierte Wert ein Familien-Alias wie `opus` ist, führt Claude Code den Subagenten auf der neuesten Version dieser Familie aus, die die Allowlist zulässt, und folgt den gleichen [Substitutionsregeln und Provider-Umfang](/docs/de/model-config#restrict-model-selection) wie `/model`. Vor v2.1.222 führte Claude Code den Subagenten auf dem geerbten Modell für einen blockierten Familien-Alias aus.397* Wenn der blockierte Wert ein Familien-Alias wie `opus` ist, führt Claude Code den Subagenten auf der neuesten Version dieser Familie aus, die die Allowlist zulässt, und folgt den gleichen [Substitutionsregeln und Provider-Umfang](/docs/de/model-config#restrict-model-selection) wie `/model`. Vor v2.1.222 führte Claude Code den Subagenten auf dem geerbten Modell für einen blockierten Familien-Alias aus.


620| `default` | Manueller Modus: fordert Berechtigung an |618| `default` | Manueller Modus: fordert Berechtigung an |

621| `acceptEdits` | Auto-Akzeptanz von Dateibearbeitungen und häufigen Dateisystem-Befehlen für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |619| `acceptEdits` | Auto-Akzeptanz von Dateibearbeitungen und häufigen Dateisystem-Befehlen für Pfade im Arbeitsverzeichnis oder `additionalDirectories` |

622| `auto` | [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode): ein Hintergrund-Klassifizierer überprüft Befehle und Schreibvorgänge in geschützten Verzeichnissen |620| `auto` | [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode): ein Hintergrund-Klassifizierer überprüft Befehle und Schreibvorgänge in geschützten Verzeichnissen |

623| `dontAsk` | Auto-Ablehnung von Berechtigungsaufforderungen. Explizit zulässige Werkzeuge funktionieren weiterhin; `AskUserQuestion`, MCP-Werkzeuge, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, und Connector-Werkzeuge [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, wo diese Einstellung Claude Code erreicht, werden verweigert, auch wenn Sie sie zugelassen haben |621| `dontAsk` | Automatisches Ablehnen von Berechtigungsabfragen. Explizit zugelassene Tools funktionieren weiterhin; `AskUserQuestion`, MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, [Lesezugriffe auf Netzwerkpfade](/docs/de/permissions#network-paths) und Konnektor-Tools, [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), werden in Sitzungen, in denen diese Einstellung Claude Code erreicht, verweigert, auch wenn Sie sie zugelassen haben |

624| `bypassPermissions` | [Alle Berechtigungsprüfungen überspringen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode). Ein Subagent läuft in diesem Modus nur, wenn die Hauptkonversation es tut |622| `bypassPermissions` | [Alle Berechtigungsprüfungen überspringen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode). Ein Subagent läuft in diesem Modus nur, wenn die Hauptkonversation es tut |

625| `plan` | Plan-Modus (schreibgeschützte Exploration) |623| `plan` | Plan-Modus (schreibgeschützte Exploration) |

626 624 


1150* **System-Prompt**: der eigene Prompt des Agenten plus Umgebungsdetails, die Claude Code anfügt, nicht der System-Prompt von Claude Code. Benutzerdefinierte Subagenten definieren ihren im [Markdown-Body](#write-subagent-files) oder im Feld `prompt`. Integrierte Agenten haben vordefinierte Prompts.1148* **System-Prompt**: der eigene Prompt des Agenten plus Umgebungsdetails, die Claude Code anfügt, nicht der System-Prompt von Claude Code. Benutzerdefinierte Subagenten definieren ihren im [Markdown-Body](#write-subagent-files) oder im Feld `prompt`. Integrierte Agenten haben vordefinierte Prompts.

1151* **Task-Nachricht**: der Delegierungs-Prompt, den Claude schreibt, wenn er die Arbeit übergibt.1149* **Task-Nachricht**: der Delegierungs-Prompt, den Claude schreibt, wenn er die Arbeit übergibt.

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

1153* **Git-Status**: Ein Snapshot, den Claude Code aus Ihrem Repository liest, wenn der Subagent startet. 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.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.

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

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

1156 1154 

Details

50 Option-Taste-Tastenkombinationen auf macOS aktivieren50 Option-Taste-Tastenkombinationen auf macOS aktivieren

51</h2>51</h2>

52 52 

53Einige Claude Code-Tastenkombinationen verwenden die Option-Taste, z. B. Option+Eingabe für einen Zeilenumbruch oder Option+P zum Wechsel von Modellen. Auf macOS senden die meisten Terminals die Option-Taste standardmäßig nicht als Modifizierer, daher funktionieren diese Tastenkombinationen nicht, bis Sie dies aktivieren. Die Terminal-Einstellung dafür wird normalerweise als „Use Option as Meta Key" bezeichnet; Meta ist der historische Unix-Name für die Taste, die jetzt als Option oder Alt bezeichnet wird.53Einige Claude Code-Tastenkombinationen verwenden die Option-Taste, z. B. Option+Eingabe für einen Zeilenumbruch oder Option+P zum Wechsel von Modellen. Auf macOS senden die meisten Terminals die Option-Taste standardmäßig nicht als Modifizierer, daher funktionieren diese Tastenkombinationen nicht, bis Sie dies aktivieren. Die Terminal-Einstellung dafür wird normalerweise als „Use Option as Meta Key“ bezeichnet; Meta ist der historische Unix-Name für die Taste, die jetzt als Option oder Alt bezeichnet wird.

54 54 

55<Tabs>55<Tabs>

56 <Tab title="Apple Terminal">56 <Tab title="Apple Terminal">

57 Öffnen Sie Einstellungen → Profile → Tastatur und aktivieren Sie „Use Option as Meta Key".57 Öffnen Sie Einstellungen → Profile → Tastatur und aktivieren Sie „Use Option as Meta Key“.

58 58 

59 Wenn Sie die erste Einrichtungsaufforderung des Terminals von Claude Code akzeptiert haben, ist dies bereits erledigt. Diese Aufforderung führt `/terminal-setup` für Sie aus, wodurch Option als Meta aktiviert und die akustische Benachrichtigung in Ihrem Apple Terminal-Profil deaktiviert wird.59 Wenn Sie die erste Einrichtungsaufforderung des Terminals von Claude Code akzeptiert haben, ist dies bereits erledigt. Diese Aufforderung führt `/terminal-setup` für Sie aus, wodurch Option als Meta aktiviert und die akustische Benachrichtigung in Ihrem Apple Terminal-Profil deaktiviert wird.

60 60 

61 Im [Bildschirmlesemodus](/docs/de/accessibility) lässt `/terminal-setup` die Benachrichtigungseinstellung unverändert, sodass die Terminal-Benachrichtigung hörbar bleibt. Vor v2.1.211 deaktivierte `/terminal-setup` die Benachrichtigung auch im Bildschirmlesemodus. Wenn ein früherer Durchlauf die Benachrichtigung deaktiviert hat, aktivieren Sie sie unter Einstellungen → Profile → Erweitert → „Audible bell" erneut.61 Im [Bildschirmlesemodus](/docs/de/accessibility) lässt `/terminal-setup` die Benachrichtigungseinstellung unverändert, sodass die Terminal-Benachrichtigung hörbar bleibt. Vor v2.1.211 deaktivierte `/terminal-setup` die Benachrichtigung auch im Bildschirmlesemodus. Wenn ein früherer Durchlauf die Benachrichtigung deaktiviert hat, aktivieren Sie sie unter Einstellungen → Profile → Erweitert → „Audible bell“ erneut.

62 </Tab>62 </Tab>

63 63 

64 <Tab title="iTerm2">64 <Tab title="iTerm2">

65 Öffnen Sie Einstellungen → Profile → Tasten → Allgemein und setzen Sie die linke Option-Taste und die rechte Option-Taste auf „Esc+".65 Öffnen Sie Einstellungen → Profile → Tasten → Allgemein und setzen Sie die linke Option-Taste und die rechte Option-Taste auf „Esc+“.

66 66 

67 Das Ausführen von `/terminal-setup` in iTerm2 aktiviert „Applications in terminal may access clipboard" unter Einstellungen → Allgemein → Auswahl, damit der Befehl `/copy` in Ihre Systemzwischenablage schreiben kann. Der Befehl erkennt iTerm2 auch, wenn er von innerhalb von tmux ausgeführt wird. Starten Sie iTerm2 neu, damit die Änderung wirksam wird.67 Das Ausführen von `/terminal-setup` in iTerm2 aktiviert „Applications in terminal may access clipboard“ unter Einstellungen → Allgemein → Auswahl, damit der Befehl `/copy` in Ihre Systemzwischenablage schreiben kann. Der Befehl erkennt iTerm2 auch, wenn er von innerhalb von tmux ausgeführt wird. Starten Sie iTerm2 neu, damit die Änderung wirksam wird.

68 </Tab>68 </Tab>

69 69 

70 <Tab title="VS Code">70 <Tab title="VS Code">


96 </Step>96 </Step>

97 97 

98 <Step title="Aktivieren Sie Benachrichtigungen">98 <Step title="Aktivieren Sie Benachrichtigungen">

99 Aktivieren Sie „Notification Center Alerts", klicken Sie dann auf „Filter Alerts" und aktivieren Sie „Send escape sequence-generated alerts".99 Aktivieren Sie „Notification Center Alerts“, klicken Sie dann auf „Filter Alerts“ und aktivieren Sie „Send escape sequence-generated alerts“.

100 </Step>100 </Step>

101</Steps>101</Steps>

102 102 


122}122}

123```123```

124 124 

125<h2 id="see-session-status-in-your-terminal">

126 Sitzungsstatus in Ihrem Terminal anzeigen

127</h2>

128 

129Wenn Ihr Terminal das OSC 7501 Program Status Protocol implementiert, kann es anzeigen, ob jede interaktive Claude Code-Sitzung gerade arbeitet, auf Sie wartet oder fertig ist. Das ist hilfreich, wenn Sie lange Aufgaben oder mehrere Sitzungen gleichzeitig ausführen. In Claude Code müssen Sie nichts aktivieren. Ob Ihr Terminal das Protokoll implementiert und wo es den Status anzeigt, erfahren Sie in dessen Dokumentation.

130 

131Wenn es das Protokoll implementiert und Sie für eine Sitzung keinen Status sehen, prüfen Sie jede dieser Ursachen:

132 

133* **Claude Code-Version**: Die Statusmeldung erfordert Claude Code v2.1.295 oder höher. Führen Sie `claude --version` in Ihrer Shell aus, um dies zu prüfen.

134* **tmux**: Innerhalb von tmux prüft Claude Code die Unterstützung bei tmux statt bei Ihrem Terminal, und [`allow-passthrough`](#configure-tmux) hat darauf keine Auswirkung. Starten Sie die Sitzung außerhalb von tmux.

135* **Hintergrundsitzung**: Eine [Hintergrundsitzung](/docs/de/agent-view) meldet ihren Status nicht an Ihr Terminal, selbst wenn Sie mit ihr verbunden sind. Stattdessen zeigt die Agent-Ansicht ihren Status an.

136* **[`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/de/env-vars#variables)**: Wenn Sie diese Variable auf `1` setzen, prüft Claude Code weder die Unterstützung noch meldet es den Status. Entfernen Sie die Variable.

137 

125<h2 id="configure-tmux">138<h2 id="configure-tmux">

126 tmux konfigurieren139 tmux konfigurieren

127</h2>140</h2>


148 Farbschema anpassen161 Farbschema anpassen

149</h2>162</h2>

150 163 

151Verwenden Sie den Befehl `/theme` oder die Designauswahl in `/config`, um ein Claude Code-Design auszuwählen, das zu Ihrem Terminal passt. Wenn Sie die Option „auto" auswählen, wird der helle oder dunkle Hintergrund Ihres Terminals erkannt, sodass das Design den Änderungen des Betriebssystems folgt, wenn Ihr Terminal dies tut. Claude Code steuert nicht das Farbschema des Terminals selbst, das von der Terminalanwendung festgelegt wird.164Verwenden Sie den Befehl `/theme` oder die Designauswahl in `/config`, um ein Claude Code-Design auszuwählen, das zu Ihrem Terminal passt. Wenn Sie die Option „auto“ auswählen, wird der helle oder dunkle Hintergrund Ihres Terminals erkannt, sodass das Design den Änderungen des Betriebssystems folgt, wenn Ihr Terminal dies tut. Claude Code steuert nicht das Farbschema des Terminals selbst, das von der Terminalanwendung festgelegt wird.

152 165 

153Um anzupassen, was am unteren Rand der Benutzeroberfläche angezeigt wird, konfigurieren Sie eine [benutzerdefinierte Statuszeile](/docs/de/statusline), die das aktuelle Modell, das Arbeitsverzeichnis, den Git-Branch oder andere Kontextinformationen anzeigt.166Um anzupassen, was am unteren Rand der Benutzeroberfläche angezeigt wird, konfigurieren Sie eine [benutzerdefinierte Statuszeile](/docs/de/statusline), die das aktuelle Modell, das Arbeitsverzeichnis, den Git-Branch oder andere Kontextinformationen anzeigt.

154 167 

tools-reference.md +32 −11

Details

279 279 

280Das Edit-Tool führt exakte Zeichenkettenersetzung durch. Es nimmt einen `old_string` und einen `new_string` und ersetzt den ersten durch den zweiten. Es verwendet weder Regex noch Fuzzy Matching.280Das Edit-Tool führt exakte Zeichenkettenersetzung durch. Es nimmt einen `old_string` und einen `new_string` und ersetzt den ersten durch den zweiten. Es verwendet weder Regex noch Fuzzy Matching.

281 281 

282Drei Überprüfungen müssen bestanden werden, damit eine Bearbeitung angewendet wird. Bevor eine davon durchgeführt wird, wird ein Pfad, der einer [`Read`-Ablehnungsregel](/docs/de/permissions#tool-specific-permission-rules) entspricht, abgelehnt, einschließlich der Erstellung einer neuen Datei dort. Die Ablehnung erfordert Claude Code v2.1.208 oder später.282Diese Überprüfungen müssen bestanden werden, damit eine Bearbeitung angewendet wird. Bevor eine davon durchgeführt wird, wird ein Pfad, der einer [`Read`-Ablehnungsregel](/docs/de/permissions#tool-specific-permission-rules) entspricht, abgelehnt, einschließlich der Erstellung einer neuen Datei dort. Die Ablehnung erfordert Claude Code v2.1.208 oder später.

283 283 

284* **Read-before-edit**: Claude liest die Datei in der aktuellen Konversation, bevor er sie bearbeitet, und ein Lesezugriff, der mit einer [`PARTIAL view`-Benachrichtigung](#read-tool-behavior) unterbrochen wird, zählt nicht. Claude Opus 4.6, Claude Haiku 4.5 und ältere Modelle erfordern immer das Lesen. Neuere Modelle können eine ungelesene Datei bearbeiten, wenn das Lesen keine Genehmigungsaufforderung erfordern würde und das Read-Tool verfügbar ist.284* **Read-before-edit**: Claude liest die Datei in der aktuellen Konversation, bevor er sie bearbeitet, und ein Lesezugriff, der mit einer [`PARTIAL view`-Benachrichtigung](#large-files) unterbrochen wird, zählt nicht. Claude Opus 4.6, Claude Haiku 4.5 und ältere Modelle erfordern immer das Lesen. Neuere Modelle können eine ungelesene Datei bearbeiten, wenn das Lesen keine Berechtigungsabfrage erfordern würde und das Read-Tool verfügbar ist.

285* **Match**: `old_string` muss genau wie geschrieben in der Datei vorkommen. Ein einzelnes Zeichen Unterschied in Leerzeichen oder Einrückung reicht aus, um nicht zu treffen.285* **Match**: `old_string` muss genau wie geschrieben in der Datei vorkommen. Ein einzelnes Zeichen Unterschied in Leerzeichen oder Einrückung reicht aus, um nicht zu treffen.

286* **Eindeutigkeit**: `old_string` muss genau einmal vorkommen. Wenn es mehr als einmal vorkommt, stellt Claude entweder eine längere Zeichenkette mit ausreichend umgebendem Kontext bereit, um ein Vorkommen festzulegen, oder setzt `replace_all: true`, um alle zu ersetzen.286* **Eindeutigkeit**: `old_string` muss genau einmal vorkommen. Wenn es mehr als einmal vorkommt, stellt Claude entweder eine längere Zeichenkette mit ausreichend umgebendem Kontext bereit, um ein Vorkommen festzulegen, oder setzt `replace_all: true`, um alle zu ersetzen.

287 287 

288Eine Datei, die sich auf der Festplatte geändert hat, nachdem Claude sie zuletzt gelesen hat, kann immer noch bearbeitet werden, wenn `old_string` genau und eindeutig dem aktuellen Inhalt entspricht und Claude Code die Datei ohne Aufforderung lesen kann. Das Abgleichen mit dem aktuellen Inhalt der Datei hält dies sicher, und das Ergebnis vermerkt, dass die Datei weitere Änderungen enthält, damit Claude sie vor Bearbeitungen, die auf umgebendem Inhalt basieren, erneut liest. In jedem anderen Fall, z. B. bei einem veralteten `old_string` oder einem, der mehr als einmal ohne `replace_all` übereinstimmt, liest Claude die Datei vor der Bearbeitung erneut. Die gelockerte Behandlung von ungelesenen und geänderten Dateien erfordert Claude Code v2.1.208 oder später; davor lehnte Claude Code jede Bearbeitung einer Datei ab, die es in der Konversation nicht gelesen hatte oder die sich auf der Festplatte nach dem Lesen geändert hatte.288Eine Datei, die sich auf der Festplatte geändert hat, nachdem Claude sie zuletzt gelesen hat, kann immer noch bearbeitet werden, wenn `old_string` genau und eindeutig dem aktuellen Inhalt entspricht und Claude Code die Datei ohne Aufforderung lesen kann. Das Abgleichen mit dem aktuellen Inhalt der Datei hält dies sicher, und das Ergebnis vermerkt, dass die Datei weitere Änderungen enthält, damit Claude sie vor Bearbeitungen, die auf umgebendem Inhalt basieren, erneut liest. In jedem anderen Fall, z. B. bei einem veralteten `old_string` oder einem, der mehr als einmal ohne `replace_all` übereinstimmt, liest Claude die Datei vor der Bearbeitung erneut. Die gelockerte Behandlung von ungelesenen und geänderten Dateien erfordert Claude Code v2.1.208 oder später; davor lehnte Claude Code jede Bearbeitung einer Datei ab, die es in der Konversation nicht gelesen hatte oder die sich auf der Festplatte nach dem Lesen geändert hatte.

289 289 

290Das Anzeigen einer Datei mit Bash erfüllt auch die Read-before-edit-Anforderung, wenn der Befehl `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` oder `rg` auf einer einzelnen Datei ohne Pipes oder Umleitungen ist. Weitergeleitete Ausgabe und andere Bash-Befehle zählen nicht zur Read-before-edit-Überprüfung.290Claude kann eine Datei auch ohne separates Read bearbeiten, nachdem es die Datei mit einem Bash-Befehl wie `cat` oder `grep` angezeigt hat. Diese Befehle sind `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` und `rg`, jeweils auf einer einzelnen Datei ohne Pipes oder Umleitungen ausgeführt. Eine Suche, die keine Treffer ausgibt, zählt nicht als Lesen, ebenso wenig wie ein Befehl außerhalb dieser Liste.

291 291 

292Wenn Claude eine Datei auf diese Weise anzeigt, lädt Claude Code außerdem alle [`CLAUDE.md`-Dateien in Unterverzeichnissen](/docs/de/memory#how-claude-md-files-load) und [pfadbezogenen Regeln](/docs/de/memory#path-specific-rules), die für diese Datei gelten. Siehe [Read- und Edit-Berechtigungsregeln](/docs/de/permissions#read-and-edit) für die Bash-Befehle, die Ihre `Read`- und `Edit`-Ablehnungsregeln abdecken.292Wenn Claude eine Datei auf diese Weise anzeigt, lädt Claude Code außerdem alle [`CLAUDE.md`-Dateien in Unterverzeichnissen](/docs/de/memory#how-claude-md-files-load) und [pfadbezogenen Regeln](/docs/de/memory#path-specific-rules), die für diese Datei gelten. Siehe [Read- und Edit-Berechtigungsregeln](/docs/de/permissions#read-and-edit) für die Bash-Befehle, die Ihre `Read`- und `Edit`-Ablehnungsregeln abdecken.

293 293 

294<h3 id="non-utf-8-files">

295 Nicht-UTF-8-Dateien

296</h3>

297 

298Claude kann [NotebookEdit](#notebookedit-tool-behavior) nicht auf eine Datei anwenden, die kein gültiges UTF-8 ist. Dasselbe gilt für Edit, es sei denn, die Datei beginnt mit einer Little-Endian-UTF-16-Byte-Order-Mark. Wenn Claude es versucht, verweigert das Tool die Änderung und lässt die Datei unverändert. Zu den verweigerten Dateien gehören Nicht-ASCII-Text, der in einer älteren Kodierung wie Windows-1252 oder Shift-JIS gespeichert ist, Binärdateien und UTF-8 mit einer ungültigen Bytefolge.

299 

300Die Tools verweigern die Änderung, weil sie die gesamte Datei als UTF-8 zurückspeichern, wodurch jedes Byte, das sie nicht dekodieren können, durch das Ersatzzeichen `U+FFFD` ersetzt würde. Stattdessen weist der [Fehler, den Claude erhält](/docs/de/errors#file-is-not-valid-utf-8), Claude an, die Änderung mit einem Shell-Befehl vorzunehmen, der die Kodierung der Datei beibehält, oder Sie zu fragen, ob die Datei zuerst in UTF-8 konvertiert werden soll.

301 

302Claude kann eine solche Datei weiterhin mit Write ersetzen, es sei denn, der neue Inhalt enthält `U+FFFD`, das Zeichen, das Read Claude anstelle von Bytes anzeigt, die es nicht dekodieren kann. Diese Schutzmaßnahme verhindert, dass Claude den verstümmelten Text, den es gelesen hat, zurückschreibt. Wenn Write die Datei ersetzt, speichert es den neuen Inhalt als UTF-8, sodass die ursprüngliche Kodierung der Datei verloren geht.

303 

294<h2 id="endconversation-tool-behavior">304<h2 id="endconversation-tool-behavior">

295 Verhalten des EndConversation-Tools305 Verhalten des EndConversation-Tools

296</h2>306</h2>


455* `insert`: Fügen Sie eine neue Zelle nach der Zielzelle hinzu. Ohne `cell_id` geht die neue Zelle an den Anfang des Notebooks. Erfordert `cell_type` auf `code` oder `markdown` gesetzt.465* `insert`: Fügen Sie eine neue Zelle nach der Zielzelle hinzu. Ohne `cell_id` geht die neue Zelle an den Anfang des Notebooks. Erfordert `cell_type` auf `code` oder `markdown` gesetzt.

456* `delete`: Entfernen Sie die Zielzelle.466* `delete`: Entfernen Sie die Zielzelle.

457 467 

468NotebookEdit lehnt eine Notebook-Datei, die sich nicht als UTF-8 dekodieren lässt, gemäß der [gleichen Regel wie bei Edit](#non-utf-8-files) ab und schreibt nichts.

469 

458Berechtigungsregeln verwenden das `Edit(...)`-Pfadformat. Eine Regel wie `Edit(notebooks/**)` deckt NotebookEdit-Aufrufe auf Dateien in diesem Verzeichnis ab.470Berechtigungsregeln verwenden das `Edit(...)`-Pfadformat. Eine Regel wie `Edit(notebooks/**)` deckt NotebookEdit-Aufrufe auf Dateien in diesem Verzeichnis ab.

459 471 

460<h2 id="powershell-tool">472<h2 id="powershell-tool">


514* `"shell": "powershell"` auf einzelnen [Command-Hooks](/docs/de/hooks#command-hook-fields): führt diesen Hook in PowerShell aus. Hooks starten PowerShell direkt, daher funktioniert dies unabhängig von `CLAUDE_CODE_USE_POWERSHELL_TOOL`.526* `"shell": "powershell"` auf einzelnen [Command-Hooks](/docs/de/hooks#command-hook-fields): führt diesen Hook in PowerShell aus. Hooks starten PowerShell direkt, daher funktioniert dies unabhängig von `CLAUDE_CODE_USE_POWERSHELL_TOOL`.

515* `shell: powershell` in [Skill-Frontmatter](/docs/de/skills#frontmatter-reference): führt `` !`command` ``-Blöcke in PowerShell aus. Erfordert, dass das PowerShell-Tool aktiviert ist.527* `shell: powershell` in [Skill-Frontmatter](/docs/de/skills#frontmatter-reference): führt `` !`command` ``-Blöcke in PowerShell aus. Erfordert, dass das PowerShell-Tool aktiviert ist.

516 528 

517Das gleiche Verhalten zum Zurücksetzen des Arbeitsverzeichnisses der Hauptsitzung, das im Abschnitt zum Bash-Tool beschrieben ist, gilt für PowerShell-Befehle, einschließlich der Umgebungsvariablen `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR`.529PowerShell-Befehle folgen demselben [Verhalten zum Zurücksetzen des Arbeitsverzeichnisses der Hauptsitzung](#what-persists-between-commands) wie Bash-Befehle, einschließlich der Umgebungsvariablen `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR`.

530 

531PowerShell-Befehle erhalten außerdem die Variablen, die Hooks über `CLAUDE_ENV_FILE` persistieren, unter den in [Persistierte Variablen in PowerShell-Befehlen](/docs/de/hooks#persisted-variables-in-powershell-commands) beschriebenen Bedingungen. Erfordert Claude Code v2.1.296 oder später.

518 532 

519Exit-Code 1 von `grep`, `rg`, `egrep`, `fgrep`, `findstr` und `git grep` bedeutet keine Übereinstimmungen. Exit-Code 1 von `git diff` bedeutet, dass Unterschiede vorhanden sind. Keines dieser Ergebnisse wird Claude als Befehlsfehler gemeldet. Für `robocopy` sind Exit-Codes 0 bis 7 Informationsergebnisse, wie kopierte Dateien oder erkannte zusätzliche Dateien. Exit-Codes von 8 oder höher zählen als Fehler.533Exit-Code 1 von `grep`, `rg`, `egrep`, `fgrep`, `findstr` und `git grep` bedeutet keine Übereinstimmungen. Exit-Code 1 von `git diff` bedeutet, dass Unterschiede vorhanden sind. Keines dieser Ergebnisse wird Claude als Befehlsfehler gemeldet. Für `robocopy` sind Exit-Codes 0 bis 7 Informationsergebnisse, wie kopierte Dateien oder erkannte zusätzliche Dateien. Exit-Codes von 8 oder höher zählen als Fehler.

520 534 


547 561 

548Das Read-Tool nimmt einen Dateipfad und gibt den Inhalt mit Zeilennummern zurück. Claude ist angewiesen, immer absolute Pfade zu übergeben.562Das Read-Tool nimmt einen Dateipfad und gibt den Inhalt mit Zeilennummern zurück. Claude ist angewiesen, immer absolute Pfade zu übergeben.

549 563 

550Standardmäßig gibt Read die Datei vom Anfang zurück. Wenn ein vollständiges Datei-Lesen das Token-Limit überschreitet, gibt Read die erste Seite mit einer `PARTIAL view`-Benachrichtigung zurück, die Claude mitteilt, wie viel der Datei er erhalten hat und wie er mit `offset` und `limit` mehr lesen kann. Ein Lesen, das einen expliziten `offset` oder `limit` übergibt und immer noch das Token-Limit überschreitet, gibt einen Fehler zurück.

551 

552Ein Lesen mit einem expliziten `limit` stoppt, sobald die ausgewählten Zeilen das überschreiten, was das Token-Limit jemals aufnehmen könnte, und gibt einen Fehler zurück, ohne den Rest des Bereichs zu laden. Der Fehler teilt Claude mit, einen kleineren `limit` zu verwenden, oder stattdessen mit [Grep](#grep-tool-behavior) nach spezifischem Inhalt zu suchen, wenn eine einzelne Zeile so groß ist. Vor v2.1.208 lud Claude Code den gesamten Bereich in den Speicher, bevor er ihn ablehnte, sodass das Lesen einer Datei mit einer extrem langen einzelnen Zeile zu Speichermangel führen konnte.

553 

554Das Lesen einer leeren Datei gibt eine Benachrichtigung zurück, dass die Datei existiert, aber ihr Inhalt leer ist, und ein `offset` nach der letzten Zeile gibt eine Benachrichtigung zurück, die die Zeilenanzahl der Datei angibt. Vor v2.1.208 gab das Lesen einer leeren Datei stattdessen die Past-the-End-Benachrichtigung zurück.564Das Lesen einer leeren Datei gibt eine Benachrichtigung zurück, dass die Datei existiert, aber ihr Inhalt leer ist, und ein `offset` nach der letzten Zeile gibt eine Benachrichtigung zurück, die die Zeilenanzahl der Datei angibt. Vor v2.1.208 gab das Lesen einer leeren Datei stattdessen die Past-the-End-Benachrichtigung zurück.

555 565 

556Read verarbeitet mehrere Dateitypen über reinen Text hinaus:566Read verarbeitet mehrere Dateitypen über reinen Text hinaus:

557 567 

558* **Bilder**: PNG, JPG und andere Bildformate werden als visueller Inhalt zurückgegeben, den Claude sehen kann, nicht als Rohdaten. Claude Code ändert die Größe großer Bilder und komprimiert sie neu, um die Bildgrößenlimits des Modells einzuhalten, bevor sie gesendet werden, sodass Claude möglicherweise eine herunterskalierte Version eines großen Screenshots sieht. Ein Bild, das nach dieser Größenänderung immer noch größer als 500 KB ist, wird als JPEG mit reduzierter Qualität mit seinen unveränderten Pixeldimensionen neu codiert. Wenn Claude feine Pixel-Details in einem großen Bild übersieht, bitten Sie es, zuerst die Region von Interesse zuzuschneiden, beispielsweise mit ImageMagick über Bash.568* **Bilder**: PNG, JPG und andere Bildformate werden als visueller Inhalt zurückgegeben, den Claude sehen kann, nicht als Rohdaten. Claude Code ändert die Größe großer Bilder und komprimiert sie neu, um die Bildgrößenlimits des Modells einzuhalten, bevor sie gesendet werden, sodass Claude möglicherweise eine herunterskalierte Version eines großen Screenshots sieht. Ein Bild, das nach dieser Größenänderung immer noch größer als 500 KB ist, wird als JPEG mit reduzierter Qualität mit seinen unveränderten Pixeldimensionen neu codiert. Wenn Claude feine Pixel-Details in einem großen Bild übersieht, bitten Sie es, zuerst die Region von Interesse zuzuschneiden, beispielsweise mit ImageMagick über Bash.

559* **PDFs**: Claude liest kurze `.pdf`-Dateien vollständig. Für PDFs länger als 10 Seiten liest es in Bereichen mit einem `pages`-Parameter, wie `"1-5"`, bis zu 20 Seiten auf einmal. Seitenbereich-Lesevorgänge rendern Seiten mit `pdftoppm` aus poppler-utils, daher installieren Sie es mit `brew install poppler` auf macOS oder `apt-get install poppler-utils` auf Debian und Ubuntu. Auf Windows und anderen Plattformen installieren Sie einen poppler-Build, der `pdftoppm` auf Ihrem `PATH` platziert. Ohne ihn schlägt ein Seitenbereich-Lesevorgang mit `pdftoppm is not installed` fehl.569* **PDFs**: Claude liest kurze `.pdf`-Dateien vollständig. Für PDFs länger als 10 Seiten liest es in Bereichen mit einem `pages`-Parameter, wie `"1-5"`, bis zu 20 Seiten auf einmal. Seitenbereich-Lesevorgänge rendern Seiten mit `pdftoppm` aus poppler-utils, daher installieren Sie es mit `brew install poppler` auf macOS oder `apt-get install poppler-utils` auf Debian und Ubuntu. Auf Windows und anderen Plattformen installieren Sie einen poppler-Build, der `pdftoppm` auf Ihrem `PATH` platziert. Ohne ihn schlägt ein Seitenbereich-Lesevorgang mit `pdftoppm is not installed` fehl.

560* **Jupyter-Notizbücher**: `.ipynb`-Dateien geben alle Zellen mit ihren Ausgaben zurück, einschließlich Code, Markdown und Visualisierungen. Claude Code weigert sich, eine Notizbuchdatei über 100 MB zu lesen; der Fehler teilt Claude mit, wie er stattdessen einen Teil des Notizbuchs liest, wie z. B. einen Ausschnitt von Zellen, mit einem Shell-Befehl.570* **Jupyter-Notizbücher**: `.ipynb`-Dateien geben alle Zellen mit ihren Ausgaben zurück, einschließlich Code, Markdown und Visualisierungen. Ein Notizbuch, dessen Zellen zusammen mehr als 256 KB oder mehr als das [Token-Limit](#large-files) umfassen, gibt stattdessen einen Fehler zurück. Claude Code weigert sich, eine Notizbuchdatei über 100 MB zu lesen; der Fehler teilt Claude mit, wie er stattdessen einen Teil des Notizbuchs liest, wie z. B. einen Ausschnitt von Zellen, mit einem Shell-Befehl.

561 571 

562Read liest nur Dateien, keine Verzeichnisse. Claude listet Verzeichnisinhalte mit einem Shell-Befehl wie `ls` auf.572Read liest nur Dateien, keine Verzeichnisse. Claude listet Verzeichnisinhalte mit einem Shell-Befehl wie `ls` auf.

563 573 

574<h3 id="large-files">

575 Große Dateien

576</h3>

577 

578Claude kann eine Textdatei lesen, die größer ist als das, was ein einzelner Read-Aufruf zurückgibt. Standardmäßig gibt ein Aufruf höchstens 25.000 Token zurück, oder den Wert, den Sie in [`CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS`](/docs/de/env-vars) festlegen, und lehnt eine vollständige Datei über 256 KB ab, sodass Claude eine größere Datei seitenweise mit `offset` und `limit` liest. Ab Claude Code v2.1.296 kann es stattdessen die gesamte Datei oder einen langen Zeilenbereich in einem Aufruf lesen, indem es bei Bedarf `allow_large: true` setzt, beispielsweise weil Sie die gesamte Datei angefordert haben. Dieser Lesevorgang wird am verbleibenden Platz im [Kontextfenster](/docs/de/context-window) der Sitzung statt an den Standardlimits bemessen. Für Bilder, PDFs und Notizbücher gelten weiterhin ihre Limits.

579 

580Was Claude erhält, wenn ein Lesevorgang die Standardlimits überschreitet:

581 

582* **Vollständige Datei über dem Token-Limit**: die erste Seite der Datei mit einer `PARTIAL view`-Benachrichtigung, die angibt, wie viel der Datei es erhalten hat und wie es mit `offset` und `limit` mehr lesen kann

583* **Vollständige Datei über 256 KB oder ein Lesevorgang mit `offset` oder `limit` über dem Token-Limit**: ein Fehler, der es anweist, einen Teil mit `offset` und `limit` zu lesen oder stattdessen mit [Grep](#grep-tool-behavior) nach spezifischem Inhalt zu suchen

584 

564<h2 id="sendfeedback-tool-behavior">585<h2 id="sendfeedback-tool-behavior">

565 Verhalten des SendFeedback-Tools586 Verhalten des SendFeedback-Tools

566</h2>587</h2>


734 Verhalten des Write-Tools755 Verhalten des Write-Tools

735</h2>756</h2>

736 757 

737Das Write-Tool erstellt eine neue Datei oder überschreibt eine vorhandene Datei mit dem vollständigen bereitgestellten Inhalt. Es fügt nicht an und führt nicht zusammen.758Das Write-Tool erstellt eine neue Datei oder überschreibt eine vorhandene Datei mit dem vollständigen bereitgestellten Inhalt. Es fügt nicht an und führt nicht zusammen. Write überschreibt außerdem eine vorhandene Datei, deren Bytes sich nicht dekodieren lassen, und speichert den neuen Inhalt als UTF-8, wie unter [Nicht-UTF-8-Dateien](#non-utf-8-files) beschrieben.

738 759 

739Ob Claude eine vorhandene Datei in der aktuellen Konversation lesen muss, bevor er sie überschreibt, hängt vom Modell und der Datei ab:760Ob Claude eine vorhandene Datei in der aktuellen Konversation lesen muss, bevor er sie überschreibt, hängt vom Modell und der Datei ab:

740 761 

741* Claude Opus 4.6, Claude Haiku 4.5 und ältere Modelle erfordern immer das Lesen, daher schlägt ein Write zu einer ungelesenen vorhandenen Datei mit einem Fehler fehl.762* Claude Opus 4.6, Claude Haiku 4.5 und ältere Modelle erfordern immer das Lesen, daher schlägt ein Write zu einer ungelesenen vorhandenen Datei mit einem Fehler fehl.

742* Neuere Modelle können eine Datei überschreiben, die sie in dieser Sitzung nie gelesen haben, unter den gleichen Bedingungen wie [read-before-edit](#edit-tool-behavior): Das Lesen würde keine Berechtigungsaufforderung erfordern und das Read-Tool ist verfügbar.763* Neuere Modelle können eine Datei überschreiben, die sie in dieser Sitzung nie gelesen haben, unter den gleichen Bedingungen wie [read-before-edit](#edit-tool-behavior): Das Lesen würde keine Berechtigungsaufforderung erfordern und das Read-Tool ist verfügbar.

743* Jupyter-Notebooks und Dateien, die Claude nur teilweise mit einer [`PARTIAL view`-Benachrichtigung](#read-tool-behavior) gelesen hat, erfordern das Lesen auf jedem Modell.764* Jupyter-Notebooks und Dateien, die Claude nur teilweise mit einer [`PARTIAL view`-Benachrichtigung](#large-files) gelesen hat, erfordern das Lesen auf jedem Modell.

744 765 

745Diese Einschränkung gilt nicht für neue Dateien. Vor v2.1.228 erforderten alle Modelle das Lesen vor dem Überschreiben einer vorhandenen Datei.766Diese Einschränkung gilt nicht für neue Dateien. Vor v2.1.228 erforderten alle Modelle das Lesen vor dem Überschreiben einer vorhandenen Datei.

746 767 

Details

1212Wenn Sie `API Error: 403 Request not allowed` nach der Anmeldung sehen:1212Wenn Sie `API Error: 403 Request not allowed` nach der Anmeldung sehen:

1213 1213 

1214* **Claude Pro/Max-Benutzer**: Überprüfen Sie, dass Ihr Abonnement unter [claude.ai/settings](https://claude.ai/settings) aktiv ist1214* **Claude Pro/Max-Benutzer**: Überprüfen Sie, dass Ihr Abonnement unter [claude.ai/settings](https://claude.ai/settings) aktiv ist

1215* **Anthropic Console-Benutzer**: Bestätigen Sie, dass Ihr Konto die Rolle „Claude Code“ oder „Developer“ hat. Admins weisen dies in der Anthropic Console unter Einstellungen → Mitglieder zu.1215* **Anthropic Console-Benutzer**: Bestätigen Sie, dass Ihr Konto die Rolle „Claude Code“ oder „Developer“ hat. Admins weisen diese auf der Mitgliederseite der Console unter [platform.claude.com/settings/members](https://platform.claude.com/settings/members) zu.

1216* **Hinter einem Proxy**: Unternehmens-Proxys können API-Anfragen beeinträchtigen. Siehe [Netzwerkkonfiguration](/docs/de/network-config) für Proxy-Einrichtung.1216* **Hinter einem Proxy**: Unternehmens-Proxys können API-Anfragen beeinträchtigen. Siehe [Netzwerkkonfiguration](/docs/de/network-config) für Proxy-Einrichtung.

1217 1217 

1218<h3 id="claude-code-access-has-not-been-granted-for-this-account">1218<h3 id="claude-code-access-has-not-been-granted-for-this-account">

vs-code.md +3 −2

Details

237 237 

238Um eine archivierte Sitzung wiederherzustellen, erweitern Sie **Archived sessions** und klicken Sie auf **Unarchive session**. Um jede archivierte Sitzung auf einmal wiederherzustellen, bewegen Sie den Mauszeiger über die Kopfzeile **Archived sessions** in der Sitzungsliste in der Aktivitätsleiste und klicken Sie auf sein Unarchive-Symbol, das Claude Code v2.1.277 oder später erfordert. Vor v2.1.257 war die Aktion **Delete session**, die eine Sitzung ohne Möglichkeit zur Wiederherstellung ausblendete. Sitzungen, die Sie dann gelöscht haben, werden nach dem Upgrade unter **Archived sessions** angezeigt.238Um eine archivierte Sitzung wiederherzustellen, erweitern Sie **Archived sessions** und klicken Sie auf **Unarchive session**. Um jede archivierte Sitzung auf einmal wiederherzustellen, bewegen Sie den Mauszeiger über die Kopfzeile **Archived sessions** in der Sitzungsliste in der Aktivitätsleiste und klicken Sie auf sein Unarchive-Symbol, das Claude Code v2.1.277 oder später erfordert. Vor v2.1.257 war die Aktion **Delete session**, die eine Sitzung ohne Möglichkeit zur Wiederherstellung ausblendete. Sitzungen, die Sie dann gelöscht haben, werden nach dem Upgrade unter **Archived sessions** angezeigt.

239 239 

240Wenn das Gespräch, das Sie fortsetzen, im Plan-Modus endete, stellt Claude Code den Plan-Modus wieder her. Erfordert Claude Code v2.1.246 oder später. Claude Code stellt ihn in zwei Fällen nicht wieder her:240Wenn das Gespräch, das Sie fortsetzen, im Plan-Modus endete, stellt Claude Code den Plan-Modus wieder her. Erfordert Claude Code v2.1.246 oder später. Claude Code stellt ihn in diesen Fällen nicht wieder her:

241 241 

242* Die Erweiterung [wählt den Startberechtigungsmodus](/docs/de/permission-modes#switch-permission-modes) aus `claudeCode.initialPermissionMode` oder einer Auswahl, die aus einem früheren Gespräch übernommen wird242* Die Erweiterung [wählt den Startberechtigungsmodus](/docs/de/permission-modes#switch-permission-modes) aus `claudeCode.initialPermissionMode` oder einer Auswahl, die aus einem früheren Gespräch übernommen wird

243* Sie haben `claudeCode.claudeProcessWrapper` konfiguriert243* Sie haben `claudeCode.claudeProcessWrapper` konfiguriert

244* Eine [deny-Regel](/docs/de/permissions#manage-permissions) entfernt das Tool [`ExitPlanMode`](/docs/de/tools-reference)

244 245 

245<h3 id="resume-cloud-sessions-from-claude-ai">246<h3 id="resume-cloud-sessions-from-claude-ai">

246 Cloud-Sitzungen von Claude.ai fortsetzen247 Cloud-Sitzungen von Claude.ai fortsetzen


479 480 

480Claude öffnet neue Tabs für Browser-Aufgaben und teilt den Anmeldestatus Ihres Browsers, sodass es auf jede Website zugreifen kann, bei der Sie bereits angemeldet sind.481Claude öffnet neue Tabs für Browser-Aufgaben und teilt den Anmeldestatus Ihres Browsers, sodass es auf jede Website zugreifen kann, bei der Sie bereits angemeldet sind.

481 482 

482Wie sich jede Sitzung beim Start mit Ihrem Browser verbindet, ohne dass Sie `@browser` eingeben müssen, erfahren Sie unter [Chrome standardmäßig aktivieren](/docs/de/chrome#enable-chrome-by-default). Wann Claude Code in einer so verbundenen Sitzung vor einer Browser-Aktion bei Ihnen nachfragt, erfahren Sie unter [Berechtigungsabfragen in VS Code-Sitzungen](/docs/de/chrome#permission-prompts-in-vs-code-sessions).483Wie sich jede Sitzung beim Start mit Ihrem Browser verbindet, ohne dass Sie `@browser` eingeben müssen, erfahren Sie unter [Chrome standardmäßig aktivieren](/docs/de/chrome#enable-chrome-by-default). Wann Claude Code vor einer Browser-Aktion bei Ihnen nachfragt, erfahren Sie unter [Berechtigungsabfragen in VS Code-Sitzungen](/docs/de/chrome#permission-prompts-in-vs-code-sessions).

483 484 

484Anweisungen zur Einrichtung, die vollständige Liste der Funktionen und Fehlerbehebung finden Sie unter [Claude Code mit Chrome verwenden](/docs/de/chrome).485Anweisungen zur Einrichtung, die vollständige Liste der Funktionen und Fehlerbehebung finden Sie unter [Claude Code mit Chrome verwenden](/docs/de/chrome).

485 486 

workflows.md +2 −2

Details

442Sie können eine Ausführung innerhalb derselben Claude Code-Sitzung fortsetzen. Was mit einem laufenden Workflow geschieht, wenn Sie die Sitzung verlassen, hängt davon ab, wie Sie sie verlassen:442Sie können eine Ausführung innerhalb derselben Claude Code-Sitzung fortsetzen. Was mit einem laufenden Workflow geschieht, wenn Sie die Sitzung verlassen, hängt davon ab, wie Sie sie verlassen:

443 443 

444* Wenn Sie [die Sitzung in den Hintergrund verschieben](/docs/de/agent-view#what-carries-over-when-you-background), spielt Claude Code die Ausführung auf die gleiche Weise in der Hintergrund-Sitzung ab und setzt sie fort.444* Wenn Sie [die Sitzung in den Hintergrund verschieben](/docs/de/agent-view#what-carries-over-when-you-background), spielt Claude Code die Ausführung auf die gleiche Weise in der Hintergrund-Sitzung ab und setzt sie fort.

445* Wenn Sie Claude Code beenden, während ein Workflow ausgeführt wird, und [die Agent-Ansicht ist aktiviert](/docs/de/agent-view#from-inside-a-session), bietet der Beendigungsdialog `In den Hintergrund verschieben und beenden` an, was die Ausführung auf die gleiche Weise überträgt. Wenn Sie stattdessen `Beenden und Aufgaben stoppen` wählen oder die Option nicht angeboten wird, stoppt die Ausführung mit der Sitzung. Claude Code behält die gespeicherten Ergebnisse der Ausführung im Verzeichnis dieser Sitzung in `~/.claude/projects/` bei, sodass eine Sitzung, die Sie mit `claude --resume` fortsetzen, diese abspielen kann, wenn Sie Claude bitten, den Workflow erneut zu starten. In einer neu gestarteten Sitzung hat Claude keine frühere Ausführung zum Abspielen und startet den Workflow als neue Ausführung.445* Wenn Sie Claude Code beenden, während ein Workflow ausgeführt wird, und [die Agent-Ansicht aktiviert ist](/docs/de/agent-view#from-inside-a-session), bietet der Beendigungsdialog `Move to background and exit` an, was die Ausführung auf die gleiche Weise überträgt. Wenn Sie stattdessen `Exit and stop tasks` wählen oder die Option nicht angeboten wird, stoppt die Ausführung mit der Sitzung. Claude Code behält die gespeicherten Ergebnisse der Ausführung im Verzeichnis dieser Sitzung in `~/.claude/projects/` bei, sodass eine Sitzung, die Sie mit `claude --resume` fortsetzen, diese abspielen kann, wenn Sie Claude bitten, den Workflow erneut zu starten. In einer neu gestarteten Sitzung hat Claude keine frühere Ausführung zum Abspielen und startet den Workflow als neue Ausführung.

446 446 

447In einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) speichert Claude Code auch die Ergebnisse der Ausführung zusammen mit der Gesprächshistorie der Sitzung, die erhalten bleibt, wenn die VM der Sitzung zurückgefordert wird. Wenn Sie [eine solche Sitzung erneut öffnen](/docs/de/claude-code-on-the-web#environment-expired) und Claude bitten, den Workflow erneut zu starten, geben abgeschlossene Agenten immer noch ihre gespeicherten Ergebnisse zurück.447In einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) speichert Claude Code auch die Ergebnisse der Ausführung zusammen mit der Gesprächshistorie der Sitzung, die erhalten bleibt, wenn die VM der Sitzung zurückgefordert wird. Wenn Sie [eine solche Sitzung erneut öffnen](/docs/de/claude-code-on-the-web#environment-expired) und Claude bitten, den Workflow erneut zu starten, geben abgeschlossene Agenten immer noch ihre gespeicherten Ergebnisse zurück.

448 448 


511* Überprüfen Sie `/model` vor einer großen Ausführung, wenn Sie normalerweise zu einem kleineren Modell für Routinearbeit wechseln511* Überprüfen Sie `/model` vor einer großen Ausführung, wenn Sie normalerweise zu einem kleineren Modell für Routinearbeit wechseln

512* Bitten Sie Claude, ein kleineres Modell für Phasen zu verwenden, die nicht das stärkste benötigen, wenn Sie die Aufgabe beschreiben512* Bitten Sie Claude, ein kleineres Modell für Phasen zu verwenden, die nicht das stärkste benötigen, wenn Sie die Aufgabe beschreiben

513 513 

514Wenn die [`availableModels`-Zulassungsliste](/docs/de/model-config#restrict-model-selection) Ihrer Organisation ein Modell blockiert, das das Skript für einen Agenten anfordert, wird dieser Agent stattdessen auf einem ersetzten Modell ausgeführt, wobei die gleichen [Ersetzungsregeln wie bei Subagenten](/docs/de/sub-agents#choose-a-model) gelten. Die Fortschrittsansicht der Ausführung in [`/workflows`](#watch-the-run) zeigt eine Warnung, die sowohl das angeforderte als auch das ersetzte Modell benennt.514Wenn die [`availableModels`-Allowlist](/docs/de/model-config#restrict-model-selection) Ihrer Organisation ein Modell blockiert, das das Skript für einen Agenten anfordert, wird dieser Agent stattdessen auf einem ersetzten Modell ausgeführt, wobei die gleichen [Ersetzungsregeln wie bei Subagenten](/docs/de/sub-agents#choose-a-model) gelten.

515 515 

516<h3 id="set-a-size-guideline">516<h3 id="set-a-size-guideline">

517 Legen Sie eine Größenrichtlinie fest517 Legen Sie eine Größenrichtlinie fest

worktrees.md +3 −1

Details

268 268 

269 Dieselbe Durchlesung gilt für `.claude/agents` und `.claude/commands`. Für Skills erfordert die Durchlesung Claude Code v2.1.277 oder später.269 Dieselbe Durchlesung gilt für `.claude/agents` und `.claude/commands`. Für Skills erfordert die Durchlesung Claude Code v2.1.277 oder später.

270 270 

271All diese gelten, ob Sie den Worktree mit `--worktree`, mit `git worktree add` oder über die [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions) erstellen.271All diese gelten, ob Sie den Worktree mit `--worktree` oder mit `git worktree add` erstellen.

272 

273In einer Worktree-Sitzung, die Sie über die [Desktop-App](/docs/de/desktop#work-in-parallel-with-sessions) starten, liest Claude Code die Projektkonfiguration wie Einstellungen, Hooks, Skills, Agenten, Befehle und [`.mcp.json`](/docs/de/mcp#project-scope)-Server aus dem Root des Haupt-Checkouts statt aus dem Worktree. Hook-Befehle werden in diesem Root ausgeführt, und `${CLAUDE_PROJECT_DIR}` verweist darauf. Um die Dateien zu erreichen, an denen Claude arbeitet, lesen Sie den Pfad des Worktrees aus dem [Eingabefeld `cwd`](/docs/de/hooks#common-input-fields) des Hooks. `CLAUDE.md`-Dateien und `.claude/rules/` werden weiterhin aus dem Worktree geladen.

272 274 

273<h2 id="manage-worktrees-manually">275<h2 id="manage-worktrees-manually">

274 Verwalten Sie Worktrees manuell276 Verwalten Sie Worktrees manuell