SpyBara
Go Premium

Documentation 2026-09-30 23:00 UTC to 2026-10-01 21:59 UTC

64 files changed +4,343 −683. View all changes and history on the product overview
2026
Thu 1 21:59

admin-setup.md +1 −0

Details

106| [Claude.ai-Synchronisierung deaktivieren](/docs/de/settings-reference#syncclaudeaiskills) | Verhindern Sie, dass Claude Code die [Skills](/docs/de/skills#how-synced-skills-behave) und [Plugins](/docs/de/plugins/loading#synced-plugins) lädt, die Ihre Entwickler auf claude.ai aktivieren. Wenn Sie Skills für Ihre Organisation auf claude.ai ausschalten, stoppt Claude Code die Synchronisierung beider, und in v2.1.273 oder später entfernt es auch die bereits synchronisierten. Um eines davon zu stoppen, ohne Skills auszuschalten, setzen Sie seinen Schlüssel in verwalteten Einstellungen auf `false` | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Claude.ai-Synchronisierung deaktivieren](/docs/de/settings-reference#syncclaudeaiskills) | Verhindern Sie, dass Claude Code die [Skills](/docs/de/skills#how-synced-skills-behave) und [Plugins](/docs/de/plugins/loading#synced-plugins) lädt, die Ihre Entwickler auf claude.ai aktivieren. Wenn Sie Skills für Ihre Organisation auf claude.ai ausschalten, stoppt Claude Code die Synchronisierung beider, und in v2.1.273 oder später entfernt es auch die bereits synchronisierten. Um eines davon zu stoppen, ohne Skills auszuschalten, setzen Sie seinen Schlüssel in verwalteten Einstellungen auf `false` | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

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

108| [Anmeldung erzwingen](/docs/de/settings-reference#forceloginmethod) | Anmeldung auf eine bestimmte Methode oder Anthropic-Organisation beschränken. Die Methodenbeschränkung gilt über die VS Code-Erweiterung, Agent SDK, `claude setup-token` und `/install-github-app` hinweg, und der Terminal-Bildschirm für interaktive Anmeldung, erreichbar durch `/login` oder Onboarding beim ersten Start, wählt die Methode vor, ohne sie zu erzwingen; Claude Code überprüft die Organisation für claude.ai-Kontoanmeldungen im Terminal, VS Code-Erweiterung und Agent SDK, und überprüft sie nicht für Claude Console-Anmeldungen oder für [Gateway](/docs/de/claude-apps-gateway)-Anmeldung. Vor v2.1.212 galten nur Terminal-Anmeldungen für beide Schlüssel. Wenn festgelegt, werden Sitzungen, die durch `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder `apiKeyHelper` authentifiziert sind, beim Start blockiert; Cloud-Provider-Sitzungen sind nicht betroffen, es sei denn, eines dieser Anmeldedaten oder ein API-Schlüssel, der durch eine frühere Claude Console-Anmeldung gespeichert wurde, ist ebenfalls vorhanden | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Anmeldung erzwingen](/docs/de/settings-reference#forceloginmethod) | Anmeldung auf eine bestimmte Methode oder Anthropic-Organisation beschränken. Die Methodenbeschränkung gilt über die VS Code-Erweiterung, Agent SDK, `claude setup-token` und `/install-github-app` hinweg, und der Terminal-Bildschirm für interaktive Anmeldung, erreichbar durch `/login` oder Onboarding beim ersten Start, wählt die Methode vor, ohne sie zu erzwingen; Claude Code überprüft die Organisation für claude.ai-Kontoanmeldungen im Terminal, VS Code-Erweiterung und Agent SDK, und überprüft sie nicht für Claude Console-Anmeldungen oder für [Gateway](/docs/de/claude-apps-gateway)-Anmeldung. Vor v2.1.212 galten nur Terminal-Anmeldungen für beide Schlüssel. Wenn festgelegt, werden Sitzungen, die durch `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` oder `apiKeyHelper` authentifiziert sind, beim Start blockiert; Cloud-Provider-Sitzungen sind nicht betroffen, es sei denn, eines dieser Anmeldedaten oder ein API-Schlüssel, der durch eine frühere Claude Console-Anmeldung gespeichert wurde, ist ebenfalls vorhanden | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Anbieter-Einschränkungen](/docs/de/settings-reference#allowedproviders) | Begrenzen Sie, welche API-Anbieter ein Computer verwenden darf. Eine Sitzung auf einem Anbieter, der nicht aufgelistet ist, wird beim Start, bei der Anmeldung und wenn sie das nächste Mal die API kontaktiert, abgelehnt. Erfordert Claude Code v2.1.285 oder später | `allowedProviders` |

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

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

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

Details

418 ```418 ```

419</CodeGroup>419</CodeGroup>

420 420 

421Um den Block zu bestätigen, registrieren Sie den Callback unter `PreToolUse` mit einem `Write|Edit` Matcher und bitten Sie den Agent, eine Datei unter `/etc` zu erstellen: Das Ergebnis des Write-Tools im Nachrichtenstrom enthält `Writing to /etc is not allowed`, und es wird keine Datei erstellt.

422 

421<h3 id="auto-approve-specific-tools">423<h3 id="auto-approve-specific-tools">

422 Spezifische Tools automatisch genehmigen424 Spezifische Tools automatisch genehmigen

423</h3>425</h3>


468 470 

469Wenn ein Ereignis ausgelöst wird, werden alle übereinstimmenden Hooks parallel ausgeführt. Bei Berechtigungsentscheidungen gewinnt das restriktivste Ergebnis: Ein einzelnes `deny` blockiert den Tool-Aufruf, unabhängig davon, was die anderen Hooks zurückgeben. Da die Abschlussreihenfolge nicht deterministisch ist, schreiben Sie jeden Hook so, dass er unabhängig agiert, anstatt sich darauf zu verlassen, dass ein anderer Hook zuerst ausgeführt wurde.471Wenn ein Ereignis ausgelöst wird, werden alle übereinstimmenden Hooks parallel ausgeführt. Bei Berechtigungsentscheidungen gewinnt das restriktivste Ergebnis: Ein einzelnes `deny` blockiert den Tool-Aufruf, unabhängig davon, was die anderen Hooks zurückgeben. Da die Abschlussreihenfolge nicht deterministisch ist, schreiben Sie jeden Hook so, dass er unabhängig agiert, anstatt sich darauf zu verlassen, dass ein anderer Hook zuerst ausgeführt wurde.

470 472 

471Das folgende Beispiel registriert drei unabhängige Prüfungen für jeden Tool-Aufruf:473Das folgende Beispiel registriert drei unabhängige Prüfungen für jeden Tool-Aufruf. Die Hook-Namen darin, wie `audit_logger` in Python oder `auditLogger` in TypeScript, stehen für Callbacks, die Sie definieren:

472 474 

473<CodeGroup>475<CodeGroup>

474 ```python Python theme={null}476 ```python Python theme={null}


500 Mit Multi-Tool-Matchern filtern502 Mit Multi-Tool-Matchern filtern

501</h3>503</h3>

502 504 

503Verwenden Sie Multi-Tool-Matcher, um einen Callback über verwandte Tools hinweg zu teilen. Dieses Beispiel registriert drei Matcher mit unterschiedlichen Bereichen:505Verwenden Sie Multi-Tool-Matcher, um einen Callback über verwandte Tools hinweg zu teilen. Dieses Beispiel registriert drei Matcher mit unterschiedlichen Bereichen, und jeder Hook, den es nennt, steht für einen Callback, den Sie definieren:

504 506 

505* Eine durch Pipe getrennte exakte Liste (`Write|Edit|NotebookEdit`) löst `file_security_hook` nur für Datei-Änderungs-Tools aus.507* Eine durch Pipe getrennte exakte Liste (`Write|Edit|NotebookEdit`) löst `file_security_hook` nur für Datei-Änderungs-Tools aus.

506* Ein Regex (`^mcp__`) löst `mcp_audit_hook` für alle MCP-Tools aus, deren Namen mit `mcp__` beginnen.508* Ein Regex (`^mcp__`) löst `mcp_audit_hook` für alle MCP-Tools aus, deren Namen mit `mcp__` beginnen.


585 ```587 ```

586</CodeGroup>588</CodeGroup>

587 589 

590Um zu bestätigen, dass der Hook ausgelöst wird, registrieren Sie den Callback und bitten Sie den Agent, eine kleine Aufgabe an einen Subagent zu delegieren, z. B. die Auflistung der Dateien im aktuellen Verzeichnis: Wenn der Subagent fertig ist, druckt der Callback die `[SUBAGENT] Completed:` Zeilen mit der ID und dem Transkriptpfad des Subagents.

591 

588<h3 id="make-http-requests-from-hooks">592<h3 id="make-http-requests-from-hooks">

589 HTTP-Anfragen von Hooks aus stellen593 HTTP-Anfragen von Hooks aus stellen

590</h3>594</h3>

Details

121 121 

122Berechtigungsmodi bieten globale Kontrolle darüber, wie Claude Tools nutzt. Sie können den Berechtigungsmodus beim Aufrufen von `query()` festlegen oder ihn während Streaming-Sitzungen dynamisch ändern.122Berechtigungsmodi bieten globale Kontrolle darüber, wie Claude Tools nutzt. Sie können den Berechtigungsmodus beim Aufrufen von `query()` festlegen oder ihn während Streaming-Sitzungen dynamisch ändern.

123 123 

124Wenn Sie keinen festlegen, wählt Claude Code den Startberechtigungsmodus nach den Regeln in [Welcher Modus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in):

125 

126* Ein `permissions.defaultMode` aus den [Einstellungsdateien](/docs/de/settings#where-settings-live) der Sitzung, wenn einer zutrifft

127* Andernfalls der integrierte Standard, der [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) sein kann

128 

129Eine Sitzung, die im Auto-Modus startet, verwirft breite Allow-Regeln wie einen bloßen `Bash`-Eintrag, wie [Wie Auto-Modus Aktionen bewertet](/docs/de/permission-modes#how-auto-mode-evaluates-actions) beschreibt. Wenn Ihre Anwendung auf den `default`-Modus oder auf eine solche Regel angewiesen ist, übergeben Sie `default` explizit.

130 

131Vor TypeScript Agent SDK v0.3.286 war das Weglassen von `permissionMode` dasselbe wie das Übergeben von `default`.

132 

124<h3 id="available-modes">133<h3 id="available-modes">

125 Verfügbare Modi134 Verfügbare Modi

126</h3>135</h3>

agent-sdk/python.md +242 −68

Details

517 async def set_model(self, model: str | None = None) -> None517 async def set_model(self, model: str | None = None) -> None

518 async def rewind_files(self, user_message_id: str) -> None518 async def rewind_files(self, user_message_id: str) -> None

519 async def get_mcp_status(self) -> McpStatusResponse519 async def get_mcp_status(self) -> McpStatusResponse

520 async def get_context_usage(self) -> ContextUsageResponse

520 async def reconnect_mcp_server(self, server_name: str) -> None521 async def reconnect_mcp_server(self, server_name: str) -> None

521 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None522 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None

522 async def stop_task(self, task_id: str) -> None523 async def stop_task(self, task_id: str) -> None


540| `set_model(model)` | Ändern Sie das Modell für die aktuelle Sitzung. Übergeben Sie `None`, um auf [Claude Code's Standardmodell](/docs/de/model-config) zurückzusetzen |541| `set_model(model)` | Ändern Sie das Modell für die aktuelle Sitzung. Übergeben Sie `None`, um auf [Claude Code's Standardmodell](/docs/de/model-config) zurückzusetzen |

541| `rewind_files(user_message_id)` | Stellen Sie Dateien in ihren Zustand bei der angegebenen Benutzernachricht wieder her. Erfordert `enable_file_checkpointing=True`. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |542| `rewind_files(user_message_id)` | Stellen Sie Dateien in ihren Zustand bei der angegebenen Benutzernachricht wieder her. Erfordert `enable_file_checkpointing=True`. Siehe [Datei-Checkpointing](/docs/de/agent-sdk/file-checkpointing) |

542| `get_mcp_status()` | Rufen Sie den Status aller konfigurierten MCP-Server ab. Gibt [`McpStatusResponse`](#mcpstatusresponse) zurück |543| `get_mcp_status()` | Rufen Sie den Status aller konfigurierten MCP-Server ab. Gibt [`McpStatusResponse`](#mcpstatusresponse) zurück |

544| `get_context_usage()` | Rufen Sie eine Aufschlüsselung der Kontextfenster-Nutzung nach Kategorie, Skill und Tool ab. Dies sind die gleichen Daten, die `/context` in einer interaktiven Sitzung anzeigt. Gibt [`ContextUsageResponse`](#contextusageresponse) zurück. Um die Aufschlüsselung zu berechnen, führt Claude Code mehrere Token-Zähl-API-Anfragen durch, die nicht im Nachrichtenstrom erscheinen; siehe [wie diese Anfragen behandelt werden](#contextusageresponse) |

543| `reconnect_mcp_server(server_name)` | Versuchen Sie, eine Verbindung zu einem MCP-Server herzustellen, der fehlgeschlagen ist oder getrennt wurde |545| `reconnect_mcp_server(server_name)` | Versuchen Sie, eine Verbindung zu einem MCP-Server herzustellen, der fehlgeschlagen ist oder getrennt wurde |

544| `toggle_mcp_server(server_name, enabled)` | Aktivieren oder deaktivieren Sie einen MCP-Server während der Sitzung. Das Deaktivieren entfernt seine Tools |546| `toggle_mcp_server(server_name, enabled)` | Aktivieren oder deaktivieren Sie einen MCP-Server während der Sitzung. Das Deaktivieren entfernt seine Tools |

545| `stop_task(task_id)` | Stoppen Sie eine laufende Hintergrundaufgabe. Eine [`TaskNotificationMessage`](#tasknotificationmessage) mit Status `"stopped"` folgt im Nachrichtenstrom |547| `stop_task(task_id)` | Stoppen Sie eine laufende Hintergrundaufgabe. Eine [`TaskNotificationMessage`](#tasknotificationmessage) mit Status `"stopped"` folgt im Nachrichtenstrom |


616 Beispiel - Streaming-Eingabe mit ClaudeSDKClient618 Beispiel - Streaming-Eingabe mit ClaudeSDKClient

617</h4>619</h4>

618 620 

621`query()` akzeptiert auch ein asynchrones Iterable von Benutzernachricht-Dicts, sodass Sie die Aufforderung zum Sendezeitpunkt zusammenstellen oder Inhaltsblöcke wie Bilder einschließen können. Claude Code beginnt, auf die erste erstellte Nachricht zu reagieren, sobald sie ankommt, ohne auf das Ende des Iterables zu warten, und `receive_response()` stoppt bei der `ResultMessage`, die diese Antwort beendet. Fügen Sie alles, das Claude vor der Antwort lesen sollte, in eine Nachricht ein, wie dieses Generator tut, und koppeln Sie jeden `query()`-Aufruf mit seiner eigenen `receive_response()`-Schleife.

622 

619```python theme={null}623```python theme={null}

620import asyncio624import asyncio

621from claude_agent_sdk import ClaudeSDKClient625from claude_agent_sdk import ClaudeSDKClient

622 626 

623 627 

624async def message_stream():628async def message_stream():

625 """Generate messages dynamically."""629 """Assemble the prompt at send time and yield it as one user message."""

626 yield {630 readings = {"Temperature": "25°C", "Humidity": "60%"}

627 "type": "user",631 data = ", ".join(f"{name}: {value}" for name, value in readings.items())

628 "message": {"role": "user", "content": "Analyze the following data:"},

629 }

630 await asyncio.sleep(0.5)

631 yield {

632 "type": "user",

633 "message": {"role": "user", "content": "Temperature: 25°C, Humidity: 60%"},

634 }

635 await asyncio.sleep(0.5)

636 yield {632 yield {

637 "type": "user",633 "type": "user",

638 "message": {"role": "user", "content": "What patterns do you see?"},634 "message": {

635 "role": "user",

636 "content": f"Analyze the following sensor data and describe any patterns you see: {data}",

637 },

639 }638 }

640 639 

641 640 


1605| `scope` | `str` (optional) | Konfigurationsbereich |1604| `scope` | `str` (optional) | Konfigurationsbereich |

1606| `tools` | `list` (optional) | Tools, die von diesem Server bereitgestellt werden, jeweils mit `name`, `description` und `annotations`-Feldern |1605| `tools` | `list` (optional) | Tools, die von diesem Server bereitgestellt werden, jeweils mit `name`, `description` und `annotations`-Feldern |

1607 1606 

1607<h3 id="contextusageresponse">

1608 `ContextUsageResponse`

1609</h3>

1610 

1611Antwort von [`ClaudeSDKClient.get_context_usage()`](#methods). Dies ist die gleiche Nutzlast, die Claude Code für den `/context`-Befehl in einer interaktiven Sitzung rendert, daher trägt sie neben den Token-Zählungen auch Anzeigefelder wie `color` und `gridRows`, die Claude Code verwendet, um das `/context`-Nutzungsgitter zu zeichnen.

1612 

1613Claude Code erstellt diese Nutzlast, indem es mehrere Anfragen an die [Token-Zählung](https://platform.claude.com/docs/en/build-with-claude/token-counting)-API sendet. Diese Anfragen erscheinen nicht im Nachrichtenstrom, daher sieht die Kostenverfolgung, die den Strom liest, sie nicht. Auf der Anthropic API wird die Token-Zählung nicht abgerechnet.

1614 

1615```python theme={null}

1616class ContextUsageResponse(TypedDict):

1617 categories: list[ContextUsageCategory]

1618 totalTokens: int

1619 maxTokens: int

1620 rawMaxTokens: int

1621 percentage: float

1622 model: str

1623 isAutoCompactEnabled: bool

1624 memoryFiles: list[dict[str, Any]]

1625 mcpTools: list[dict[str, Any]]

1626 agents: list[dict[str, Any]]

1627 gridRows: list[list[dict[str, Any]]]

1628 autoCompactThreshold: NotRequired[int]

1629 deferredBuiltinTools: NotRequired[list[dict[str, Any]]]

1630 systemTools: NotRequired[list[dict[str, Any]]]

1631 systemPromptSections: NotRequired[list[dict[str, Any]]]

1632 slashCommands: NotRequired[dict[str, Any]]

1633 skills: NotRequired[dict[str, Any]] # skill usage with frontmatter breakdown

1634 messageBreakdown: NotRequired[dict[str, Any]] # message tokens by type

1635 apiUsage: NotRequired[dict[str, Any] | None]

1636```

1637 

1638Jeder `ContextUsageCategory`-Eintrag trägt `name`, `tokens`, `color` und ein optionales `isDeferred`-Flag. `totalTokens` ist die aktuelle Kontextnutzung der Sitzung, und `maxTokens` ist das Fenster, gegen das die Nutzung gemessen wird. Dieses Fenster ist das Kontextfenster des Modells oder das niedrigere Auto-Kompaktierungsfenster, wenn eines zutrifft, und `rawMaxTokens` trägt den gleichen Wert wie `maxTokens`. `apiUsage` enthält die Nutzung aus der neuesten API-Antwort, nicht eine laufende Summe für die Sitzung. Claude Code lässt die optionalen Schlüssel `deferredBuiltinTools`, `systemTools` und `systemPromptSections` ungesetzt, daher erwarten Sie, dass sie abwesend sind, auch wenn der Typ sie deklariert.

1639 

1608<h3 id="sdkpluginconfig">1640<h3 id="sdkpluginconfig">

1609 `SdkPluginConfig`1641 `SdkPluginConfig`

1610</h3>1642</h3>


2710 2742 

2711Dokumentation der Eingabe-/Ausgabeschemas für alle integrierten Claude Code-Tools. Obwohl das Python SDK diese nicht als Typen exportiert, stellen sie die Struktur von Tool-Eingaben und -Ausgaben in Nachrichten dar.2743Dokumentation der Eingabe-/Ausgabeschemas für alle integrierten Claude Code-Tools. Obwohl das Python SDK diese nicht als Typen exportiert, stellen sie die Struktur von Tool-Eingaben und -Ausgaben in Nachrichten dar.

2712 2744 

2745Jede angezeigte Ausgabe ist der Wert, den Sie aus [`UserMessage.tool_use_result`](#usermessage) für dieses Tool lesen. Schlüsselnamen erscheinen genau so, wie Claude Code sie ausgibt. Ein Schlüssel, der mit `| None` annotiert ist und einen Kommentar „vorhanden wenn" oder „optional" hat, wird weggelassen, wenn er nicht zutrifft.

2746 

2713<h3 id="agent">2747<h3 id="agent">

2714 Agent2748 Agent

2715</h3>2749</h3>


2883 2917 

2884**Tool-Name:** `Bash`2918**Tool-Name:** `Bash`

2885 2919 

2886Für das, was die Vordergrund-Obergrenze setzt, siehe [Timeout- und Ausgabegrenzen](/docs/de/tools-reference#timeout-and-output-limits). Für die Hintergrund-Zeitlimit, siehe [Hintergrund-Befehle](/docs/de/tools-reference#background-commands).2920Für das, was die Vordergrund-Obergrenze setzt, siehe [Timeout- und Ausgabegrenzen](/docs/de/tools-reference#timeout-and-output-limits). Für das Hintergrund-Zeitlimit siehe [Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#time-limit-for-background-commands).

2887 2921 

2888**Eingabe:**2922**Eingabe:**

2889 2923 


2960 2994 

2961```python theme={null}2995```python theme={null}

2962{2996{

2963 "message": str, # Bestätigungsmeldung2997 "filePath": str, # Die bearbeitete Datei

2964 "replacements": int, # Anzahl der durchgeführten Ersetzungen2998 "oldString": str, # Der ersetzte Text

2965 "file_path": str, # Dateipfad, der bearbeitet wurde2999 "newString": str, # Der Text, der ihn ersetzt hat

3000 "originalFile": str | None, # Dateiinhalt vor der Bearbeitung

3001 "structuredPatch": [ # Diff-Hunks für die Änderung

3002 {

3003 "oldStart": int,

3004 "oldLines": int,

3005 "newStart": int,

3006 "newLines": int,

3007 "lines": list[str],

3008 }

3009 ],

3010 "userModified": bool, # Ob der Benutzer die vorgeschlagene Bearbeitung vor der Annahme geändert hat

3011 "replaceAll": bool, # Ob alle Vorkommen ersetzt wurden

3012 "gitDiff": { # Optionale Git-Diff-Zusammenfassung für die Datei

3013 "filename": str,

3014 "status": "modified" | "added",

3015 "additions": int,

3016 "deletions": int,

3017 "changes": int,

3018 "patch": str,

3019 "repository": str | None, # GitHub-Besitzer/Repo, wenn verfügbar

3020 } | None,

2966}3021}

2967```3022```

2968 3023 


2982}3037}

2983```3038```

2984 3039 

2985**Ausgabe (Textdateien):**3040Die Ausgabe nimmt je nachdem, was Claude gelesen hat, eine der folgenden Formen an. Überprüfen Sie den `type`-Schlüssel, um sie zu unterscheiden.

3041 

3042**Ausgabe (Typ: `"text"`):**

3043 

3044```python theme={null}

3045{

3046 "type": "text",

3047 "file": {

3048 "filePath": str, # Die gelesene Datei

3049 "content": str, # Der zurückgegebene Inhalt

3050 "numLines": int, # Anzahl der Zeilen im zurückgegebenen Inhalt

3051 "startLine": int, # Zeilennummer, bei der der Inhalt beginnt

3052 "totalLines": int, # Gesamtzahl der Zeilen in der Datei

3053 "truncatedByTokenCap": bool | None, # Vorhanden und True, wenn ein Ganz-Datei-Lesen die Token-Obergrenze überschritten hat und der Inhalt die erste Seite ist

3054 },

3055}

3056```

3057 

3058**Ausgabe (Typ: `"image"`):**

3059 

3060```python theme={null}

3061{

3062 "type": "image",

3063 "file": {

3064 "base64": str, # Base64-codierte Bilddaten

3065 "type": "image/jpeg" | "image/png" | "image/gif" | "image/webp", # Bild-MIME-Typ

3066 "originalSize": int, # Ursprüngliche Dateigröße in Bytes

3067 "dimensions": { # Optionale Größeninformationen für Koordinaten-Zuordnung

3068 "originalWidth": int | None, # Optional; ursprüngliche Breite in Pixeln

3069 "originalHeight": int | None, # Optional; ursprüngliche Höhe in Pixeln

3070 "displayWidth": int | None, # Optional; Breite nach Größenänderung

3071 "displayHeight": int | None, # Optional; Höhe nach Größenänderung

3072 } | None,

3073 },

3074}

3075```

3076 

3077**Ausgabe (Typ: `"notebook"`):**

3078 

3079```python theme={null}

3080{

3081 "type": "notebook",

3082 "file": {

3083 "filePath": str, # Das gelesene Notebook

3084 "cells": list, # Notebook-Zellen

3085 },

3086}

3087```

3088 

3089**Ausgabe (Typ: `"pdf"`):**

3090 

3091```python theme={null}

3092{

3093 "type": "pdf",

3094 "file": {

3095 "filePath": str, # Das gelesene PDF

3096 "base64": str, # Base64-codierte PDF-Daten

3097 "originalSize": int, # Dateigröße in Bytes

3098 },

3099}

3100```

3101 

3102**Ausgabe (Typ: `"parts"`):**

2986 3103 

2987```python theme={null}3104```python theme={null}

2988{3105{

2989 "content": str, # Dateiinhalt mit Zeilennummern3106 "type": "parts",

2990 "total_lines": int, # Gesamtzahl der Zeilen in der Datei3107 "file": {

2991 "lines_returned": int, # Tatsächlich zurückgegebene Zeilen3108 "filePath": str, # Das gelesene PDF

3109 "originalSize": int, # Dateigröße in Bytes

3110 "count": int, # Anzahl der als Bilder extrahierten Seiten

3111 "outputDir": str, # Verzeichnis mit den extrahierten Seitenbildern

3112 },

3113 "firstPage": int | None, # Optionale Dokumentseitennummer der ersten extrahierten Seite

2992}3114}

2993```3115```

2994 3116 

2995**Ausgabe (Bilder):**3117**Ausgabe (Typ: `"file_unchanged"`):**

2996 3118 

2997```python theme={null}3119```python theme={null}

2998{3120{

2999 "image": str, # Base64-codierte Bilddaten3121 "type": "file_unchanged", # Die Datei ist seit dem letzten Lesen durch Claude in dieser Sitzung unverändert, daher wird der Inhalt nicht wiederholt

3000 "mime_type": str, # Bild-MIME-Typ3122 "file": {

3001 "file_size": int, # Dateigröße in Bytes3123 "filePath": str,

3124 },

3125 "source": "seeded" | None, # Vorhanden, wenn die frühere Kopie aus einer CLAUDE.md- oder Memory-Datei stammte, die beim Start geladen wurde, anstatt aus einem Read-Aufruf

3002}3126}

3003```3127```

3004 3128 


3021 3145 

3022```python theme={null}3146```python theme={null}

3023{3147{

3024 "message": str, # Erfolgsmeldung3148 "type": "create" | "update", # Ob das Schreiben eine neue Datei erstellt oder eine vorhandene überschrieben hat

3025 "bytes_written": int, # Anzahl der geschriebenen Bytes3149 "filePath": str, # Die geschriebene Datei

3026 "file_path": str, # Dateipfad, der geschrieben wurde3150 "content": str, # Der geschriebene Inhalt

3151 "structuredPatch": [ # Diff-Hunks; leer für eine neue Datei, wenn sich nichts geändert hat, oder wenn Claude Code das Diff übersprungen hat

3152 {

3153 "oldStart": int,

3154 "oldLines": int,

3155 "newStart": int,

3156 "newLines": int,

3157 "lines": list[str],

3158 }

3159 ],

3160 "originalFile": str | None, # Vorheriger Inhalt; None für eine neue Datei oder wenn der vorherige Inhalt zu groß war, um ihn einzubeziehen

3161 "gitDiff": { # Optionale Git-Diff-Zusammenfassung für die Datei

3162 "filename": str,

3163 "status": "modified" | "added",

3164 "additions": int,

3165 "deletions": int,

3166 "changes": int,

3167 "patch": str,

3168 "repository": str | None, # GitHub-Besitzer/Repo, wenn verfügbar

3169 } | None,

3170 "userModified": bool | None, # Optional; ob der Benutzer den vorgeschlagenen Inhalt vor der Annahme bearbeitet hat

3027}3171}

3028```3172```

3029 3173 


3046 3190 

3047```python theme={null}3191```python theme={null}

3048{3192{

3049 "matches": list[str], # Array von übereinstimmenden Dateipfaden3193 "durationMs": int, # Zeit für die Ausführung der Suche in Millisekunden

3050 "count": int, # Anzahl der gefundenen Übereinstimmungen3194 "numFiles": int, # Anzahl der zurückgegebenen Pfade nach eventueller Kürzung

3051 "search_path": str, # Verwendetes Suchverzeichnis3195 "filenames": list[str], # Übereinstimmende Dateipfade

3196 "truncated": bool, # Ob die Ergebnisse bei der 100-Datei-Grenze gekürzt wurden

3197 "totalMatches": int | None, # Optionale Gesamtzahl der übereinstimmenden Dateien vor Kürzung; eine untere Grenze, wenn countIsComplete False ist

3198 "countIsComplete": bool | None, # Optional; ob totalMatches exakt ist

3052}3199}

3053```3200```

3054 3201 

3202`totalMatches` und `countIsComplete` erfordern Claude Code v2.1.191 oder später.

3203 

3055<h3 id="grep">3204<h3 id="grep">

3056 Grep3205 Grep

3057</h3>3206</h3>


3072 "-B": int | None, # Zeilen vor jeder Übereinstimmung anzeigen3221 "-B": int | None, # Zeilen vor jeder Übereinstimmung anzeigen

3073 "-A": int | None, # Zeilen nach jeder Übereinstimmung anzeigen3222 "-A": int | None, # Zeilen nach jeder Übereinstimmung anzeigen

3074 "-C": int | None, # Zeilen vor und nach anzeigen3223 "-C": int | None, # Zeilen vor und nach anzeigen

3224 "context": int | None, # Zeilen vor und nach anzeigen; -C ist ein Alias

3225 "-o": bool | None, # Nur die übereinstimmenden Teile jeder Zeile drucken

3075 "head_limit": int | None, # Ausgabe auf erste N Zeilen/Einträge begrenzen3226 "head_limit": int | None, # Ausgabe auf erste N Zeilen/Einträge begrenzen

3227 "offset": int | None, # Erste N Zeilen/Einträge überspringen, bevor head_limit angewendet wird

3076 "multiline": bool | None, # Mehrzeiligen-Modus aktivieren3228 "multiline": bool | None, # Mehrzeiligen-Modus aktivieren

3077}3229}

3078```3230```

3079 3231 

3080**Ausgabe (Content-Modus):**3232**Ausgabe:**

3081 3233 

3082```python theme={null}3234```python theme={null}

3083{3235{

3084 "matches": [3236 "mode": "content" | "files_with_matches" | "count" | None, # Der verwendete Ausgabemodus

3085 {3237 "numFiles": int, # Anzahl der Dateien im Ergebnis; immer 0 im Content-Modus

3086 "file": str,3238 "filenames": list[str], # Übereinstimmende Dateien im files_with_matches-Modus; leer in den anderen Modi

3087 "line_number": int | None,3239 "content": str | None, # Übereinstimmende Zeilen im Content-Modus oder pro-Datei-Zählungen im Count-Modus

3088 "line": str,3240 "numLines": int | None, # Anzahl der Zeilen im Inhalt, vorhanden im Content-Modus

3089 "before_context": list[str] | None,3241 "numMatches": int | None, # Gesamtzahl der Übereinstimmungen, vorhanden im Count-Modus

3090 "after_context": list[str] | None,3242 "totalFiles": int | None, # Optionales Total vor head_limit und offset im files_with_matches-Modus

3091 }3243 "totalLines": int | None, # Optionales Total vor head_limit und offset im Content-Modus

3092 ],3244 "appliedLimit": int | None, # Vorhanden, wenn head_limit das Ergebnis gekürzt hat

3093 "total_matches": int,3245 "appliedOffset": int | None, # Vorhanden, wenn ein Offset angewendet wurde

3094}3246}

3095```3247```

3096 3248 

3097**Ausgabe (files\_with\_matches-Modus):**3249Grep gibt diese Dict-Form in jedem Ausgabemodus zurück. Welche optionalen Schlüssel vorhanden sind, hängt von `output_mode` ab.

3098 3250 

3099```python theme={null}3251`totalFiles` erfordert Claude Code v2.1.208 oder später. `totalLines` erfordert Claude Code v2.1.210 oder später.

3100{

3101 "files": list[str], # Dateien mit Übereinstimmungen

3102 "count": int, # Anzahl der Dateien mit Übereinstimmungen

3103}

3104```

3105 3252 

3106<h3 id="notebookedit">3253<h3 id="notebookedit">

3107 NotebookEdit3254 NotebookEdit


3125 3272 

3126```python theme={null}3273```python theme={null}

3127{3274{

3128 "message": str, # Erfolgsmeldung3275 "new_source": str, # Die in die Zelle geschriebene Quelle

3129 "edit_type": "replaced" | "inserted" | "deleted", # Typ der durchgeführten Bearbeitung3276 "old_source": str | None, # Vorherige Zellenquelle, vorhanden für replace und delete

3130 "cell_id": str | None, # Zellen-ID, die betroffen war3277 "cell_id": str | None, # ID der bearbeiteten Zelle, wenn verfügbar

3131 "total_cells": int, # Gesamtzellen im Notebook nach Bearbeitung3278 "cell_type": "code" | "markdown", # Der Zellentyp

3279 "language": str, # Die Programmiersprache des Notebooks

3280 "edit_mode": str, # Der verwendete Bearbeitungsmodus

3281 "error": str | None, # Fehlermeldung, wenn der Vorgang fehlgeschlagen ist

3282 "notebook_path": str, # Die Notebook-Datei

3283 "original_file": str, # Notebook-Inhalt vor der Bearbeitung

3284 "updated_file": str, # Notebook-Inhalt nach der Bearbeitung

3132}3285}

3133```3286```

3134 3287 


3226 3379 

3227```python theme={null}3380```python theme={null}

3228{3381{

3229 "message": str, # Erfolgsmeldung3382 "oldTodos": [ # Die Todo-Liste vor der Aktualisierung

3230 "stats": {"total": int, "pending": int, "in_progress": int, "completed": int},3383 {

3384 "content": str,

3385 "status": "pending" | "in_progress" | "completed",

3386 "activeForm": str,

3387 }

3388 ],

3389 "newTodos": [ # Die Todo-Liste nach der Aktualisierung

3390 {

3391 "content": str,

3392 "status": "pending" | "in_progress" | "completed",

3393 "activeForm": str,

3394 }

3395 ],

3231}3396}

3232```3397```

3233 3398 


3399 3564 

3400```python theme={null}3565```python theme={null}

3401{3566{

3402 "message": str, # Bestätigungsmeldung3567 "plan": str | None, # Der Plan, der dem Benutzer präsentiert wurde

3403 "approved": bool | None, # Ob der Benutzer den Plan genehmigt hat3568 "isAgent": bool, # True, wenn ein Subagent das Tool aufgerufen hat

3569 "filePath": str | None, # Vorhanden, wenn der Plan in einer Datei gespeichert wurde

3570 "hasTaskTool": bool | None, # Optional; ob das Agent-Tool im aktuellen Kontext verfügbar ist

3571 "planWasEdited": bool | None, # Vorhanden und True, wenn der Benutzer den Plan vor der Genehmigung bearbeitet hat

3572 "awaitingLeaderApproval": bool | None, # Vorhanden und True, wenn ein Teamkollege den Plan zur Genehmigung an den Teamleiter gesendet hat

3573 "requestId": str | None, # Optionale ID dieser Genehmigungsanfrage

3404}3574}

3405```3575```

3406 3576 


3418}3588}

3419```3589```

3420 3590 

3591Das Ergebnis ist eine Liste statt eines Dicts, daher enthält `tool_use_result` eine `list` für dieses Tool.

3592 

3421**Ausgabe:**3593**Ausgabe:**

3422 3594 

3423```python theme={null}3595```python theme={null}

3424{3596[ # Ein Eintrag pro Ressource

3425 "resources": [

3426 {3597 {

3427 "uri": str,3598 "uri": str, # Ressourcen-URI

3428 "name": str,3599 "name": str, # Ressourcenname

3429 "description": str | None,3600 "mimeType": str | None, # Optionaler MIME-Typ

3430 "mimeType": str | None,3601 "description": str | None, # Optionale Beschreibung

3431 "server": str,3602 "server": str, # Server, der diese Ressource bereitstellt

3432 }3603 }

3433 ],3604]

3434 "total": int,

3435}

3436```3605```

3437 3606 

3438<h3 id="readmcpresource">3607<h3 id="readmcpresource">


3455```python theme={null}3624```python theme={null}

3456{3625{

3457 "contents": [3626 "contents": [

3458 {"uri": str, "mimeType": str | None, "text": str | None, "blob": str | None}3627 {

3628 "uri": str, # Ressourcen-URI

3629 "mimeType": str | None, # Optionaler MIME-Typ

3630 "text": str | None, # Textinhalt oder eine Notiz zum Binärinhalt

3631 "blobSavedTo": str | None, # Vorhanden, wenn Claude Code Binärinhalt auf die Festplatte gespeichert hat; Pfad der gespeicherten Datei

3632 }

3459 ],3633 ],

3460 "server": str,3634 "error": str | None, # Vorhanden, wenn der Server die Ressource nicht lesen konnte

3461}3635}

3462```3636```

3463 3637 

Details

575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Definieren Sie das Ausgabeformat für Agentenergebnisse. Siehe [Strukturierte Ausgaben](/docs/de/agent-sdk/structured-outputs) für Details |575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Definieren Sie das Ausgabeformat für Agentenergebnisse. Siehe [Strukturierte Ausgaben](/docs/de/agent-sdk/structured-outputs) für Details |

576| `outputStyle` | `string` | `undefined` | Keine `Options`-Feld. Setzen Sie `outputStyle` im Inline-[`settings`](/docs/de/settings)-Objekt oder einer Einstellungsdatei. Siehe [Ausgabestil aktivieren](/docs/de/agent-sdk/modifying-system-prompts#activate-an-output-style) |576| `outputStyle` | `string` | `undefined` | Keine `Options`-Feld. Setzen Sie `outputStyle` im Inline-[`settings`](/docs/de/settings)-Objekt oder einer Einstellungsdatei. Siehe [Ausgabestil aktivieren](/docs/de/agent-sdk/modifying-system-prompts#activate-an-output-style) |

577| `pathToClaudeCodeExecutable` | `string` | Automatisch aufgelöst aus gebündelter nativer Binärdatei | Pfad zur Claude Code-Ausführungsdatei. Nur erforderlich, wenn optionale Abhängigkeiten während der Installation übersprungen wurden oder Ihre Plattform nicht in der unterstützten Menge enthalten ist |577| `pathToClaudeCodeExecutable` | `string` | Automatisch aufgelöst aus gebündelter nativer Binärdatei | Pfad zur Claude Code-Ausführungsdatei. Nur erforderlich, wenn optionale Abhängigkeiten während der Installation übersprungen wurden oder Ihre Plattform nicht in der unterstützten Menge enthalten ist |

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Berechtigungsmodus für die Sitzung |578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Berechtigungsmodus für die Sitzung. Wenn Sie ihn weglassen, kann die Sitzung im Auto-Modus starten. Siehe [Berechtigungsmodi](/docs/de/agent-sdk/permissions#permission-modes), um zu sehen, wie Claude Code den Startberechtigungsmodus wählt |

579| `permissionPromptToolName` | `string` | `undefined` | MCP-Tool-Name für Berechtigungsaufforderungen |579| `permissionPromptToolName` | `string` | `undefined` | MCP-Tool-Name für Berechtigungsaufforderungen |

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Wer beantwortet Berechtigungsaufforderungen: `'host'` leitet sie an Ihren [`canUseTool`](#canusetool)-Callback oder das `permissionPromptToolName`-Tool weiter, und `'none'` [verweigert die Aufrufe, die sonst aufgefordert hätten](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated). Erfordert Claude Code v2.1.259 oder später |580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Wer beantwortet Berechtigungsaufforderungen: `'host'` leitet sie an Ihren [`canUseTool`](#canusetool)-Callback oder das `permissionPromptToolName`-Tool weiter, und `'none'` [verweigert die Aufrufe, die sonst aufgefordert hätten](/docs/de/agent-sdk/permissions#how-permissions-are-evaluated). Erfordert Claude Code v2.1.259 oder später |

581| `persistSession` | `boolean` | `true` | Wenn `false`, wird die Sitzungspersistenz auf der Festplatte deaktiviert. Sitzungen können später nicht fortgesetzt werden |581| `persistSession` | `boolean` | `true` | Wenn `false`, wird die Sitzungspersistenz auf der Festplatte deaktiviert. Sitzungen können später nicht fortgesetzt werden |


709| `supportedModels()` | Gibt verfügbare Modelle mit Anzeigeinformationen zurück |709| `supportedModels()` | Gibt verfügbare Modelle mit Anzeigeinformationen zurück |

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

711| `mcpServerStatus()` | Gibt Status verbundener MCP-Server als [`McpServerStatus`](#mcpserverstatus)`[]` zurück |711| `mcpServerStatus()` | Gibt Status verbundener MCP-Server als [`McpServerStatus`](#mcpserverstatus)`[]` zurück |

712| `getContextUsage(opts?)` | Gibt eine [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) zurück, die die Kontextfenster-Nutzung der Sitzung nach Kategorie, Fähigkeit und Tool aufschlüsselt. Mit dem Standard `detail` ist es die gleichen Daten, die `/context` in einer interaktiven Sitzung anzeigt. Die [`detail`-Option](#sdkcontrolgetcontextusageresponse) erfordert Agent SDK v0.3.257 oder später |712| `getContextUsage(opts?)` | Gibt eine [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) zurück, die die Kontextfenster-Nutzung der Sitzung nach Kategorie, Fähigkeit und Tool aufschlüsselt. Mit dem Standard `detail` ist es die gleichen Daten, die `/context` in einer interaktiven Sitzung anzeigt, berechnet mit Token-Zähl-API-Anfragen, die nicht im Nachrichtenstrom erscheinen; siehe [wie diese Anfragen behandelt werden](#sdkcontrolgetcontextusageresponse). Die [`detail`-Option](#sdkcontrolgetcontextusageresponse) erfordert Agent SDK v0.3.257 oder später |

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

714| `reloadPlugins(options?)` | Lädt Plugins von der Festplatte neu, sodass Plugins, die Sie installieren oder mid-session bearbeiten, die laufende Sitzung erreichen. Wird mit einer [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) aufgelöst, die die Befehle, Subagenten, Plugins und MCP-Server-Status der Sitzung auflistet. Erfordert Agent SDK v0.2.85 oder später. Die [`holdOnCacheImpact`-Option](#sdkcontrolreloadpluginsresponse) erfordert Agent SDK v0.3.268 oder später |714| `reloadPlugins(options?)` | Lädt Plugins von der Festplatte neu, sodass Plugins, die Sie installieren oder mid-session bearbeiten, die laufende Sitzung erreichen. Wird mit einer [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) aufgelöst, die die Befehle, Subagenten, Plugins und MCP-Server-Status der Sitzung auflistet. Erfordert Agent SDK v0.2.85 oder später. Die [`holdOnCacheImpact`-Option](#sdkcontrolreloadpluginsresponse) erfordert Agent SDK v0.3.268 oder später |

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

716| `reloadOutputStyles()` | Re-liest [Ausgabestile](/docs/de/output-styles) von der Festplatte, sodass eine Stildatei, die Sie mid-session hinzufügen oder bearbeiten, der laufenden Sitzung zur Verfügung steht. Wird mit einer [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) aufgelöst, die die nach dem Neuladen verfügbaren Stilnamen auflistet. Erfordert Agent SDK v0.3.261 oder später |716| `reloadOutputStyles()` | Re-liest [Ausgabestile](/docs/de/output-styles) von der Festplatte, sodass eine Stildatei, die Sie mid-session hinzufügen oder bearbeiten, der laufenden Sitzung zur Verfügung steht. Wird mit einer [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) aufgelöst, die die nach dem Neuladen verfügbaren Stilnamen auflistet. Erfordert Agent SDK v0.3.261 oder später |

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

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

719| `toggleMcpServer(serverName, enabled)` | Aktivieren oder deaktivieren Sie einen MCP-Server nach Name, mit der gleichen Namensauflösung wie `reconnectMcpServer()`. Das Deaktivieren trennt den Server |719| `toggleMcpServer(serverName, enabled)` | Aktivieren oder deaktivieren Sie einen MCP-Server nach Name, mit der gleichen Namensauflösung wie `reconnectMcpServer()`. Das Deaktivieren eines stdio-, SSE- oder HTTP-Servers trennt ihn und entfernt seine Tools; für einen Server, den Sie mid-session mit `setMcpServers()` hinzugefügt haben, erfordert die Tool-Entfernung Claude Code v2.1.285 oder später |

720| `setMcpServers(servers)` | Ersetzen Sie dynamisch die Menge der MCP-Server für diese Sitzung. Wird mit einem [`McpSetServersResult`](#mcpsetserversresult) aufgelöst, das benennt, welche Server hinzugefügt und entfernt wurden, und alle Fehler |720| `setMcpServers(servers)` | Ersetzen Sie dynamisch die Menge der MCP-Server für diese Sitzung. Wird mit einem [`McpSetServersResult`](#mcpsetserversresult) aufgelöst, das benennt, welche Server hinzugefügt und entfernt wurden, und alle Fehler |

721| `readMcpResource(serverName, uri)` | *Alpha.* Liest eine MCP Apps `ui://`-Ressource von einem verbundenen MCP-Server, damit Ihre Anwendung das Widget eines Tools rendern kann. Wird mit einer [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) aufgelöst. Erfordert TypeScript Agent SDK v0.3.280 oder später |721| `readMcpResource(serverName, uri)` | *Alpha.* Liest eine MCP Apps `ui://`-Ressource von einem verbundenen MCP-Server, damit Ihre Anwendung das Widget eines Tools rendern kann. Wird mit einer [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) aufgelöst. Erfordert TypeScript Agent SDK v0.3.280 oder später |

722| `streamInput(stream)` | Streamen Sie Eingabenachrichten zur Abfrage für Multi-Turn-Gespräche |722| `streamInput(stream)` | Streamen Sie Eingabenachrichten zur Abfrage für Multi-Turn-Gespräche |


909 909 

910Rückgabetyp von [`getContextUsage()`](#query-object). Mit dem Standard `detail` ist dies die gleiche Nutzlast, die Claude Code für den `/context`-Befehl in einer interaktiven Sitzung rendert, daher trägt sie neben den Token-Zählungen Anzeigefelder wie `color` und `gridRows`, die Claude Code verwendet, um das `/context`-Nutzungsgitter zu zeichnen.910Rückgabetyp von [`getContextUsage()`](#query-object). Mit dem Standard `detail` ist dies die gleiche Nutzlast, die Claude Code für den `/context`-Befehl in einer interaktiven Sitzung rendert, daher trägt sie neben den Token-Zählungen Anzeigefelder wie `color` und `gridRows`, die Claude Code verwendet, um das `/context`-Nutzungsgitter zu zeichnen.

911 911 

912Das optionale `detail`-Argument der Methode wählt, wie Claude Code jede Kategorie zählt. Mit dem Standard `'full'` zählt Claude Code jede Kategorie mit Token-Zähl-API-Anfragen. Übergeben Sie `{ detail: 'summary' }`, um eine Antwort aus der letzten Antwort-Nutzung und lokalen Schätzungen zu erhalten. Keine Token-Zähl-Anfragen gehen raus, und die Pro-Kategorie-Zahlen sind ungefähr. Das `detail`-Argument erfordert Agent SDK v0.3.257 oder später.912Das optionale `detail`-Argument der Methode wählt, wie Claude Code jede Kategorie zählt. Das `detail`-Argument erfordert Agent SDK v0.3.257 oder später.

913 

914* **`'full'`**: der Standard. Claude Code zählt jede Kategorie mit [Token-Zähl](https://platform.claude.com/docs/en/build-with-claude/token-counting)-API-Anfragen. Diese Anfragen erscheinen nicht im Nachrichtenstrom, daher wird die Kostenverfolgung, die den Strom liest, sie nicht sehen. Auf der Anthropic API wird Token-Zählung nicht abgerechnet.

915* **`'summary'`**: übergeben Sie `{ detail: 'summary' }`, um eine Antwort aus der letzten Antwort-Nutzung und lokalen Schätzungen zu erhalten. Keine Token-Zähl-Anfragen gehen raus, und die Pro-Kategorie-Zahlen sind ungefähr.

913 916 

914Wenn Sie `/context` als Eingabeaufforderung anstelle des Aufrufs der Methode senden, fügt Claude Code eine [`SDKContextUsage`](#sdkcontextusage)-Nutzlast an das `context_usage`-Feld der Assistent-Nachricht an, die das Ergebnis liefert. Dieses Feld erfordert Agent SDK v0.3.232 oder später.917Wenn Sie `/context` als Eingabeaufforderung anstelle des Aufrufs der Methode senden, fügt Claude Code eine [`SDKContextUsage`](#sdkcontextusage)-Nutzlast an das `context_usage`-Feld der Assistent-Nachricht an, die das Ergebnis liefert. Dieses Feld erfordert Agent SDK v0.3.232 oder später.

915 918 


1015* `memoryFiles` listet jede geladene Speicherdatei mit ihren Kosten auf.1018* `memoryFiles` listet jede geladene Speicherdatei mit ihren Kosten auf.

1016* `skills.skillFrontmatter` ordnet die Token der Fähigkeitsliste jeder eingeschlossenen Fähigkeit zu. Die Pro-Fähigkeit-Zählungen messen jeden Fähigkeitslisten-Eintrag, wie Claude Code ihn tatsächlich sendet, was kürzer als die vollständige Frontmatter der Fähigkeit sein kann. Vergleichen Sie `skills.totalSkills` mit `skills.includedSkills`, um zu sehen, ob jede entdeckte Fähigkeit in die Liste aufgenommen wurde.1019* `skills.skillFrontmatter` ordnet die Token der Fähigkeitsliste jeder eingeschlossenen Fähigkeit zu. Die Pro-Fähigkeit-Zählungen messen jeden Fähigkeitslisten-Eintrag, wie Claude Code ihn tatsächlich sendet, was kürzer als die vollständige Frontmatter der Fähigkeit sein kann. Vergleichen Sie `skills.totalSkills` mit `skills.includedSkills`, um zu sehen, ob jede entdeckte Fähigkeit in die Liste aufgenommen wurde.

1017 1020 

1018`totalTokens` ist die aktuelle Kontextnutzung der Sitzung, und `maxTokens` ist das Fenster, gegen das die Nutzung gemessen wird. Dieses Fenster ist das Kontextfenster des Modells oder das niedrigere Auto-Komprimierungs-Fenster, wenn eines zutrifft. `rawMaxTokens` trägt den gleichen Wert wie `maxTokens`, und `percentage` ist `totalTokens` als gerundeter Prozentsatz dieses Fensters.1021`totalTokens` ist die aktuelle Kontextnutzung der Sitzung, und `maxTokens` ist das Fenster, gegen das die Nutzung gemessen wird. Dieses Fenster ist das Kontextfenster des Modells oder das niedrigere Auto-Komprimierungs-Fenster, wenn eines zutrifft. `rawMaxTokens` trägt den gleichen Wert wie `maxTokens`, und `percentage` ist `totalTokens` als gerundeter Prozentsatz dieses Fensters. `apiUsage` enthält die Nutzung aus der neuesten API-Antwort, nicht eine laufende Summe für die Sitzung.

1019 1022 

1020Claude Code lässt die optionalen `deferredBuiltinTools`-, `systemTools`- und `systemPromptSections`-Diagnosen ungesetzt, daher erwarten Sie, dass sie abwesend sind, auch wenn der Typ sie deklariert.1023Claude Code lässt die optionalen `deferredBuiltinTools`-, `systemTools`- und `systemPromptSections`-Diagnosen ungesetzt, daher erwarten Sie, dass sie abwesend sind, auch wenn der Typ sie deklariert.

1021 1024 


1275 | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt1278 | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt

1276 | "plan" // Planning mode - explore without editing1279 | "plan" // Planning mode - explore without editing

1277 | "dontAsk" // Don't prompt for permissions, deny if not pre-approved1280 | "dontAsk" // Don't prompt for permissions, deny if not pre-approved

1278 | "auto"; // Model classifier approves or denies permission prompts1281 | "auto"; // A model classifier reviews actions such as shell commands and network requests

1279```1282```

1280 1283 

1281<h3 id="canusetool">1284<h3 id="canusetool">


1708* `resume_reason`: Warum Claude Code diesen Turn nach einem Neustart erneut ausgeführt hat, der ihn unterbrochen hat. Vorhanden auf beiden Armen und nur bei einem solchen erneuten Durchlauf. Siehe [`resume_reason`](#resume_reason).1711* `resume_reason`: Warum Claude Code diesen Turn nach einem Neustart erneut ausgeführt hat, der ihn unterbrochen hat. Vorhanden auf beiden Armen und nur bei einem solchen erneuten Durchlauf. Siehe [`resume_reason`](#resume_reason).

1709* `local_command`: Der Name des Befehls, den der Turn versendet hat, auf dem Success-Ergebnis eines Turns, den ein Befehl abgeschlossen hat, ohne die Agent-Schleife 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 Agent-Schleife betreten hat, und bei Sends, die keinen Befehl ausgeführt haben. Erfordert Agent SDK v0.3.268 oder später.1712* `local_command`: Der Name des Befehls, den der Turn versendet hat, auf dem Success-Ergebnis eines Turns, den ein Befehl abgeschlossen hat, ohne die Agent-Schleife 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 Agent-Schleife betreten hat, und bei Sends, die keinen Befehl ausgeführt haben. Erfordert Agent SDK v0.3.268 oder später.

1710* `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.1713* `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.

1711* `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.1714*

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

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

1717 

1718*

1719 

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

1721 

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

1714* `modelUsage`: Pro-Modell-Summen für jeden Modell-Aufruf, der während dieses `query()`-Aufrufs durch die Abfrage-Pipeline gemacht wurde, einschließlich der Hauptschleife, Subagenten und interner Aufrufe wie Komprimierung und Workflow-Agenten. Hilfaufrufe außerhalb dieser Pipeline, wie der Berechtigungsklassifizierer und Token-Zählungsanfragen, sind ausgeschlossen. Ein Aufruf, der eine Sitzung fortgesetzt, zählt auch die [Pro-Modell-Summen, die aus den früheren Aufrufen der Sitzung wiederhergestellt wurden](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). In Streaming-Input-Sitzungen sind die Summen kumulativ über Turns, daher lesen Sie das neueste Ergebnis, anstatt über Ergebnisse zu summieren. Siehe [Kosten im Streaming-Input-Modus verfolgen](/docs/de/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) für Zurückstellungen und [Summen nach einem Sitzungsabsturz wiederherstellen](/docs/de/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) für zurückgesetzte Ergebnisse.1723* `modelUsage`: Pro-Modell-Summen für jeden Modell-Aufruf, der während dieses `query()`-Aufrufs durch die Abfrage-Pipeline gemacht wurde, einschließlich der Hauptschleife, Subagenten und interner Aufrufe wie Komprimierung und Workflow-Agenten. Hilfaufrufe außerhalb dieser Pipeline, wie der Berechtigungsklassifizierer und Token-Zählungsanfragen, sind ausgeschlossen. Ein Aufruf, der eine Sitzung fortgesetzt, zählt auch die [Pro-Modell-Summen, die aus den früheren Aufrufen der Sitzung wiederhergestellt wurden](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). In Streaming-Input-Sitzungen sind die Summen kumulativ über Turns, daher lesen Sie das neueste Ergebnis, anstatt über Ergebnisse zu summieren. Siehe [Kosten im Streaming-Input-Modus verfolgen](/docs/de/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) für Zurückstellungen und [Summen nach einem Sitzungsabsturz wiederherstellen](/docs/de/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) für zurückgesetzte Ergebnisse.

1715* `total_cost_usd`: Kumulativer geschätzter Kosten in USD, abdeckend die gleichen Aufrufe wie `modelUsage` und Zurückstellung an den gleichen Punkten. Ein Aufruf, der eine Sitzung fortgesetzt, zählt auch die [Summen, die aus den früheren Aufrufen der Sitzung wiederhergestellt wurden](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Es ist eine Schätzung, keine Abrechnungsaussage. Siehe [Kosten und Nutzung verfolgen](/docs/de/agent-sdk/cost-tracking) für Genauigkeitsvorbehalt.1724* `total_cost_usd`: Kumulativer geschätzter Kosten in USD, abdeckend die gleichen Aufrufe wie `modelUsage` und Zurückstellung an den gleichen Punkten. Ein Aufruf, der eine Sitzung fortgesetzt, zählt auch die [Summen, die aus den früheren Aufrufen der Sitzung wiederhergestellt wurden](/docs/de/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Es ist eine Schätzung, keine Abrechnungsaussage. Siehe [Kosten und Nutzung verfolgen](/docs/de/agent-sdk/cost-tracking) für Genauigkeitsvorbehalt.

1716* `queued_turn_count`: Die Anzahl der Nachrichten, die Sie mit `origin: { kind: "human" }` gesendet haben und die noch warten, wenn Claude Code das Ergebnis erzeugt hat. Siehe [`queued_turn_count`](#queued_turn_count) für was `0` und ein fehlendes Feld Ihnen sagen.1725* `queued_turn_count`: Die Anzahl der Nachrichten, die Sie mit `origin: { kind: "human" }` gesendet haben und die noch warten, wenn Claude Code das Ergebnis erzeugt hat. Siehe [`queued_turn_count`](#queued_turn_count) für was `0` und ein fehlendes Feld Ihnen sagen.

1717* `result_index`: Wo dieses Ergebnis in der Lieferreihenfolge des Durchlaufs fällt, gezählt von 0 über jedes Ergebnis, das der Prozess schreibt. Vorhanden auf beiden Armen. Ein Ergebnis, dessen Schreiben fehlschlägt, verbraucht immer noch seine Nummer, daher bedeutet eine Lücke in der Sequenz, dass ein Ergebnis verloren ging. Erfordert Agent SDK v0.3.268 oder später.1726*

1718* `startup_failure_reason`: Warum Claude Code sich weigerte zu starten, auf dem `error_during_execution`-Ergebnis, das es vor dem Beenden bei einem bekannten Startfehler schreibt. Siehe [`startup_failure_reason`](#startup_failure_reason) für die Werte und welche Fehler es tragen. Erfordert Agent SDK v0.3.274 oder später.1727 

1728`result_index`: Wo dieses Ergebnis in der Lieferreihenfolge des Durchlaufs fällt, gezählt von 0 über jedes Ergebnis, das der Prozess schreibt. Vorhanden auf beiden Armen. Ein Ergebnis, dessen Schreiben fehlschlägt, verbraucht immer noch seine Nummer, daher bedeutet eine Lücke in der Sequenz, dass ein Ergebnis verloren ging. Erfordert Agent SDK v0.3.268 oder später.

1729 

1730*

1731 

1732`startup_failure_reason`: Warum Claude Code sich weigerte zu starten, auf dem `error_during_execution`-Ergebnis, das es vor dem Beenden bei einem bekannten Startfehler schreibt. Siehe [`startup_failure_reason`](#startup_failure_reason) für die Werte und welche Fehler es tragen. Erfordert Agent SDK v0.3.274 oder später.

1733 

1719* `terminal_reason`: Warum die Schleife endete. Einer von `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"` oder `"turn_setup_failed"`.1734* `terminal_reason`: Warum die Schleife endete. Einer von `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"` oder `"turn_setup_failed"`.

1720* `fast_mode_state`: Einer von `"on"`, `"off"` oder `"cooldown"`.1735* `fast_mode_state`: Einer von `"on"`, `"off"` oder `"cooldown"`.

1721* `fast_mode_disabled_reason`: Warum [Fast Mode](/docs/de/fast-mode) gerade nicht verfügbar ist. Fehlt, wenn nichts Fast Mode blockiert, obwohl eine Anfrage möglicherweise immer noch mit Standardgeschwindigkeit ausgeführt wird. Während der Abkühlung nach einem Fast Mode Rate Limit meldet Claude Code `fast_mode_state: "cooldown"` ohne Grund-Code und reaktiviert Fast Mode, wenn die Abkühlung abläuft. Erfordert Claude Code v2.1.219 oder später.1736* `fast_mode_disabled_reason`: Warum [Fast Mode](/docs/de/fast-mode) gerade nicht verfügbar ist. Fehlt, wenn nichts Fast Mode blockiert, obwohl eine Anfrage möglicherweise immer noch mit Standardgeschwindigkeit ausgeführt wird. Während der Abkühlung nach einem Fast Mode Rate Limit meldet Claude Code `fast_mode_state: "cooldown"` ohne Grund-Code und reaktiviert Fast Mode, wenn die Abkühlung abläuft. Erfordert Claude Code v2.1.219 oder später.


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

1755 1770 

1756* **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).1771* **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).

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

1758* **Die Eingabeaufforderung, die Claude Code generiert, um einen unterbrochenen Turn unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) erneut auszuführen**: Wenn die letzte Eingabeaufforderung 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) sagt die Frames des erneuten Durchlaufs vom unterbrochenen Versuch. Wenn die letzte Eingabeaufforderung 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 der Eingabeaufforderung des unterbrochenen Turns erfordert Agent SDK v0.3.268 oder später.1773 

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

1775 

1776*

1777 

1778**Die Eingabeaufforderung, die Claude Code generiert, um einen unterbrochenen Turn unter [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/de/env-vars) erneut auszuführen**: Wenn die letzte Eingabeaufforderung 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) sagt die Frames des erneuten Durchlaufs vom unterbrochenen Versuch. Wenn die letzte Eingabeaufforderung 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 der Eingabeaufforderung des unterbrochenen Turns erfordert Agent SDK v0.3.268 oder später.

1779 

1780*

1781 

1782**Jede andere Eingabeaufforderung, die 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.

1760 1783 

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

1762 1785 

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

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

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

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

1790 

1791*

1792 

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

1766 1794 

1767Claude Code lässt das Feld in diesen Fällen weg:1795Claude Code lässt das Feld in diesen Fällen weg:

1768 1796 


1821```typescript theme={null}1849```typescript theme={null}

1822type SDKStartupFailureReason =1850type SDKStartupFailureReason =

1823 | "org_pin_api_key_conflict"1851 | "org_pin_api_key_conflict"

1852 | "provider_not_allowed"

1824 | "org_verify_failed"1853 | "org_verify_failed"

1825 | "org_pin_mismatch"1854 | "org_pin_mismatch"

1826 | "managed_settings_invalid"1855 | "managed_settings_invalid"


1843| Wert | Was die Sitzung stoppte |1872| Wert | Was die Sitzung stoppte |

1844| :- | :- |1873| :- | :- |

1845| `org_pin_api_key_conflict` | Verwaltete Einstellungen [erfordern eine First-Party- oder Cloud-Gateway-Anmeldung](/docs/de/authentication#restrict-login-to-your-organization), und ein Anthropic API-Schlüssel, Auth-Token oder `apiKeyHelper` ist stattdessen konfiguriert |1874| `org_pin_api_key_conflict` | Verwaltete Einstellungen [erfordern eine First-Party- oder Cloud-Gateway-Anmeldung](/docs/de/authentication#restrict-login-to-your-organization), und ein Anthropic API-Schlüssel, Auth-Token oder `apiKeyHelper` ist stattdessen konfiguriert |

1875| `provider_not_allowed` | Verwaltete Einstellungen [listen die API-Anbieter auf, die diese Maschine verwenden darf](/docs/de/settings-reference#allowedproviders), und die Sitzung ist für einen Anbieter eingerichtet, der nicht aufgelistet ist, oder für einen Endpunkt, den die Einstellungen nicht anheften. Erfordert Claude Code v2.1.285 oder später |

1846| `org_verify_failed` | Die Anmeldungs-Organisation konnte nicht gegen die PIN verifiziert werden, z. B. wegen eines Netzwerkfehlers oder eines widerrufenen Tokens |1876| `org_verify_failed` | Die Anmeldungs-Organisation konnte nicht gegen die PIN verifiziert werden, z. B. wegen eines Netzwerkfehlers oder eines widerrufenen Tokens |

1847| `org_pin_mismatch` | Die Anmeldung gehört zu einer Organisation, die die PIN nicht erlaubt |1877| `org_pin_mismatch` | Die Anmeldung gehört zu einer Organisation, die die PIN nicht erlaubt |

1848| `managed_settings_invalid` | Verwaltete Richtlinien-Einstellungen konnten nicht gelesen werden, die PIN benennt keine Organisation, oder [verwaltete Modellbeschränkungen](/docs/de/errors#managed-settings-block-the-default-model) lassen kein zulässiges Modell für die Standard-Option |1878| `managed_settings_invalid` | Verwaltete Richtlinien-Einstellungen konnten nicht gelesen werden, die PIN benennt keine Organisation, oder [verwaltete Modellbeschränkungen](/docs/de/errors#managed-settings-block-the-default-model) lassen kein zulässiges Modell für die Standard-Option |


2092 `SDKContextUsage`2122 `SDKContextUsage`

2093</h3>2123</h3>

2094 2124 

2095Strukturierte Form des `/context`-Berichts, getragen als `context_usage` auf der [`SDKAssistantMessage`](#sdkassistantmessage), die ein `/context`-Ergebnis liefert. Agent SDK v0.3.232 und später exportieren den Typ. Im Gegensatz zu [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) trägt es nur die Daten, die benötigt werden, um die Nutzungsaufschlüsselung zu rendern, ohne Anzeigefelder wie `color` und `gridRows`.2125Strukturierte Form des `/context`-Berichts, getragen als `context_usage` auf der [`SDKAssistantMessage`](#sdkassistantmessage), die ein `/context`-Ergebnis liefert. Agent SDK v0.3.232 und später exportieren den Typ. Im Gegensatz zu [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) trägt es nur die Daten, die benötigt werden, um die Nutzungsaufschlüsselung zu rendern, ohne Anzeigefelder wie `color` und `gridRows`. Claude Code berechnet den Bericht mit Token-Zählungs-API-Anfragen, die nicht im Nachrichtenstream erscheinen; siehe [wie diese Anfragen behandelt werden](#sdkcontrolgetcontextusageresponse).

2096 2126 

2097```typescript theme={null}2127```typescript theme={null}

2098type SDKContextUsage = {2128type SDKContextUsage = {


3209};3239};

3210```3240```

3211 3241 

3212Führt Bash-Befehle mit optionalem Timeout und Hintergrundausführung aus. Das Arbeitsverzeichnis bleibt zwischen Befehlen bestehen, einschließlich Befehlen, die in späteren Turns einer Multi-Turn-Sitzung ausgeführt werden; Shell-Status wie exportierte Umgebungsvariablen nicht. Für die Grenzen, welche Verzeichniswechsel übertragen werden, siehe [Was zwischen Befehlen bestehen bleibt](/docs/de/tools-reference#what-persists-between-commands). Für das, was die Vordergrund-Obergrenze setzt, siehe [Timeout- und Ausgabegrenzen](/docs/de/tools-reference#timeout-and-output-limits). Für die Hintergrund-Zeitlimit, siehe [Hintergrund-Befehle](/docs/de/tools-reference#background-commands).3242Führt Bash-Befehle mit optionalem Timeout und Hintergrundausführung aus. Das Arbeitsverzeichnis bleibt zwischen Befehlen bestehen, einschließlich Befehlen, die in späteren Turns einer Multi-Turn-Sitzung ausgeführt werden; Shell-Status wie exportierte Umgebungsvariablen nicht. Für die Grenzen, welche Verzeichniswechsel übertragen werden, siehe [Was zwischen Befehlen bestehen bleibt](/docs/de/tools-reference#what-persists-between-commands). Für das, was die Vordergrund-Obergrenze setzt, siehe [Timeout- und Ausgabegrenzen](/docs/de/tools-reference#timeout-and-output-limits). Für die Hintergrund-Zeitlimit, siehe [Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#time-limit-for-background-commands).

3213 3243 

3214<h3 id="monitor">3244<h3 id="monitor">

3215 Monitor3245 Monitor


4113 4143 

4114`timedOutAfterMs` ist das Timeout in Millisekunden, gesetzt, wenn der Befehl sein Timeout erreicht hat und in den Hintergrund wechselt, anstatt dort explizit zu starten. `backgroundCwdHint` wird gesetzt, wenn der Hintergrund-Befehl ein Verzeichniswechsel-Builtin wie `cd`, `pushd`, `popd` oder `chdir` enthielt, und vermerkt, dass sich das Sitzungsarbeitsverzeichnis nicht geändert hat. Beide Felder erfordern Claude Code v2.1.210 oder später.4144`timedOutAfterMs` ist das Timeout in Millisekunden, gesetzt, wenn der Befehl sein Timeout erreicht hat und in den Hintergrund wechselt, anstatt dort explizit zu starten. `backgroundCwdHint` wird gesetzt, wenn der Hintergrund-Befehl ein Verzeichniswechsel-Builtin wie `cd`, `pushd`, `popd` oder `chdir` enthielt, und vermerkt, dass sich das Sitzungsarbeitsverzeichnis nicht geändert hat. Beide Felder erfordern Claude Code v2.1.210 oder später.

4115 4145 

4116Wenn ein Subagent, der im Vordergrund läuft, einen Hintergrund-Befehl besitzt, [endet der Befehl, wenn dieser Subagent seinen Lauf beendet](/docs/de/tools-reference#background-commands). Claude Code setzt `backgroundEndsWithFinalResponse` auf `true` bei solchen Befehlen und lässt das Feld weg, wenn der Befehl den Zug überlebt, wie Befehle, die vom Hauptgespräch oder von Hintergrund-Subagenten gestartet werden. Das Feld erfordert Claude Code v2.1.227 oder später.4146Wenn ein Subagent, der im Vordergrund läuft, einen Hintergrund-Befehl besitzt, [endet der Befehl, wenn dieser Subagent seinen Lauf beendet](/docs/de/tools-reference#when-a-background-command-stops). Claude Code setzt `backgroundEndsWithFinalResponse` auf `true` bei solchen Befehlen und lässt das Feld weg, wenn der Befehl den Zug überlebt, wie Befehle, die vom Hauptgespräch oder von Hintergrund-Subagenten gestartet werden. Das Feld erfordert Claude Code v2.1.227 oder später.

4117 4147 

4118Claude Code setzt `gitOperation.commit.branch` auf den Branch, der in Gits Commit-Zusammenfassungszeile benannt ist, und lässt ihn für einen Commit auf einem detached HEAD weg. Das Feld erfordert Agent SDK v0.3.227 oder später. Claude Code meldet einen `gh pr reopen`-Befehl als die `reopened`-PR-Aktion, was Agent SDK v0.3.234 oder später erfordert.4148Claude Code setzt `gitOperation.commit.branch` auf den Branch, der in Gits Commit-Zusammenfassungszeile benannt ist, und lässt ihn für einen Commit auf einem detached HEAD weg. Das Feld erfordert Agent SDK v0.3.227 oder später. Claude Code meldet einen `gh pr reopen`-Befehl als die `reopened`-PR-Aktion, was Agent SDK v0.3.234 oder später erfordert.

4119 4149 

agent-view.md +2 −20

Details

8 8 

9Die Agenten-Ansicht, die mit `claude agents` geöffnet wird, ist ein Bildschirm für alle Ihre Hintergrund-Sitzungen: was läuft, was Ihre Eingabe benötigt und was erledigt ist. Versenden Sie neue Sitzungen, beobachten Sie ihren Status auf einen Blick, anstatt durch Transkripte zu scrollen, und greifen Sie nur ein, wenn eine Sitzung Sie benötigt. Jede Hintergrund-Sitzung ist eine vollständige Claude Code-Konversation, die ohne angeschlossenes Terminal weiterläuft, sodass Sie sie jederzeit öffnen, antworten und verlassen können.9Die Agenten-Ansicht, die mit `claude agents` geöffnet wird, ist ein Bildschirm für alle Ihre Hintergrund-Sitzungen: was läuft, was Ihre Eingabe benötigt und was erledigt ist. Versenden Sie neue Sitzungen, beobachten Sie ihren Status auf einen Blick, anstatt durch Transkripte zu scrollen, und greifen Sie nur ein, wenn eine Sitzung Sie benötigt. Jede Hintergrund-Sitzung ist eine vollständige Claude Code-Konversation, die ohne angeschlossenes Terminal weiterläuft, sodass Sie sie jederzeit öffnen, antworten und verlassen können.

10 10 

11<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-light.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=7a186c96ed47d6700d084d77e786be65" className="dark:hidden" alt="Agenten-Ansicht in einem Terminal: Die Kopfzeile zeigt Claude Code v2.1.140, das Modell, das Arbeitsverzeichnis und eine Zusammenfassung der Anzahl. Sitzungen sind unter 'Benötigt Eingabe', 'Wird ausgeführt' und 'Abgeschlossen' gruppiert, mit einer Versand-Eingabe am unteren Rand und einer Fußzeile mit Tastaturhinweisen." width="1772" height="780" data-path="images/agent-view-light.png" />11<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=d6905012bee31f3e6b3920b09c05dd02" className="dark:hidden" alt="Agenten-Ansicht in einem Terminal. Eine Zeile oben zählt die Sitzungen, die auf Eingabe warten, arbeiten und abgeschlossen sind. Vier Sitzungen sind unter Benötigt Eingabe, Wird ausgeführt und Abgeschlossen gruppiert. Jede Zeile zeigt den Namen der Sitzung, ihren neuesten Status oder ihre Frage und eine Zeit. Am unteren Rand befinden sich eine Eingabe zur Beschreibung einer neuen Aufgabe und eine Reihe von Tastaturhinweisen." width="1872" height="680" data-path="images/agent-view-light.png" />

12 12 

13<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-dark.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=a5bed7434bae368faea3a8f023b52aa2" className="hidden dark:block" alt="Agenten-Ansicht in einem Terminal: Die Kopfzeile zeigt Claude Code v2.1.140, das Modell, das Arbeitsverzeichnis und eine Zusammenfassung der Anzahl. Sitzungen sind unter 'Benötigt Eingabe', 'Wird ausgeführt' und 'Abgeschlossen' gruppiert, mit einer Versand-Eingabe am unteren Rand und einer Fußzeile mit Tastaturhinweisen." width="1772" height="780" data-path="images/agent-view-dark.png" />13<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-dark.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=fc3c195bfc57e313ced1f1beb36cee93" className="hidden dark:block" alt="Agenten-Ansicht in einem Terminal. Eine Zeile oben zählt die Sitzungen, die auf Eingabe warten, arbeiten und abgeschlossen sind. Vier Sitzungen sind unter Benötigt Eingabe, Wird ausgeführt und Abgeschlossen gruppiert. Jede Zeile zeigt den Namen der Sitzung, ihren neuesten Status oder ihre Frage und eine Zeit. Am unteren Rand befinden sich eine Eingabe zur Beschreibung einer neuen Aufgabe und eine Reihe von Tastaturhinweisen." width="1872" height="680" data-path="images/agent-view-dark.png" />

14 14 

15Verwenden Sie die Agenten-Ansicht, wenn Sie mehrere unabhängige Aufgaben haben, an denen Claude ohne Ihre ständige Überwachung arbeiten kann. Versenden Sie eine Fehlerbehebung, eine Pull-Request-Überprüfung und eine Untersuchung eines instabilen Tests als drei Zeilen, arbeiten Sie in einem anderen Fenster weiter und überprüfen Sie später, wenn eine Zeile anzeigt, dass sie Sie benötigt oder ein Ergebnis hat.15Verwenden Sie die Agenten-Ansicht, wenn Sie mehrere unabhängige Aufgaben haben, an denen Claude ohne Ihre ständige Überwachung arbeiten kann. Versenden Sie eine Fehlerbehebung, eine Pull-Request-Überprüfung und eine Untersuchung eines instabilen Tests als drei Zeilen, arbeiten Sie in einem anderen Fenster weiter und überprüfen Sie später, wenn eine Zeile anzeigt, dass sie Sie benötigt oder ein Ergebnis hat.

16 16 


966 966 

967Claude Code startet eine Zeile, die einen [Shell-Befehl](#run-a-shell-command) ausführt, nie neu, von `Enter` oder von `claude attach`, da dies den Befehl erneut ausführen würde; die Meldung der Zeile und `claude attach` sagen beide, dass der Befehl nicht erneut ausgeführt wird.967Claude Code startet eine Zeile, die einen [Shell-Befehl](#run-a-shell-command) ausführt, nie neu, von `Enter` oder von `claude attach`, da dies den Befehl erneut ausführen würde; die Meldung der Zeile und `claude attach` sagen beide, dass der Befehl nicht erneut ausgeführt wird.

968 968 

969<h4 id="terminal-host-died">

970 Terminal-Host ist gestorben

971</h4>

972 

973Unter Linux und WSL überprüft der Supervisor jeden Host-Prozess alle paar Sekunden, unabhängig davon, ob Sie die Sitzung öffnen oder nicht, und markiert die Sitzung als fehlgeschlagen, wenn der Prozess beendet wurde, aber seine Verbindung zum Supervisor nie geschlossen wurde.

974 

975* In der Agenten-Ansicht zeigt die Zeile `terminal host process died — press Enter to restart`. Drücken Sie `Enter` darauf und Claude Code startet die Sitzung auf einem frischen Host-Prozess neu.

976* Aus der Shell meldet `claude attach <id>` eine bereits als fehlgeschlagen markierte Sitzung neu. Andernfalls meldet es die Ursache und beendet sich, und sagt Ihnen, `claude attach <id>` erneut auszuführen.

977 

978<h4 id="session-isn’t-responding">

979 Sitzung reagiert nicht

980</h4>

981 

982Wenn der Supervisor eine offene Verbindung akzeptiert, aber etwa zehn Sekunden lang keine Ausgabe ankommt, beendet Claude Code den Versuch und bietet einen Neustart an. Eine Sitzung, die nur steckengeblieben ist, z. B. über Ruhezustand des Computers, erreicht dieses Angebot nicht: Der Supervisor [startet sie beim Öffnen](#read-session-state) selbst neu.

983 

984* In der Agenten-Ansicht zeigt die Fußzeile `Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).` Drücken Sie `Enter` auf derselben Zeile erneut und Claude Code stoppt den nicht reagierenden Prozess und startet die Sitzung neu; es stoppt nichts ohne diesen zweiten Druck.

985* Aus der Shell meldet `claude attach <id>` die Ursache und beendet sich, und sagt Ihnen, `claude stop <id>` auszuführen, dann `claude attach <id>`.

986 

987<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">969<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

988 Eine Sitzung schlägt vor dem Start mit einer `possibly low memory`-Notiz fehl970 Eine Sitzung schlägt vor dem Start mit einer `possibly low memory`-Notiz fehl

989</h3>971</h3>

Details

384 384 

385Modellaliase wie `opus` fungieren nicht als Anheftungen, und auch nicht eine Modell-ID, die Claude Code nicht erkennt, wie beispielsweise ein Anwendungs-Inferenzprofil-ARN.385Modellaliase wie `opus` fungieren nicht als Anheftungen, und auch nicht eine Modell-ID, die Claude Code nicht erkennt, wie beispielsweise ein Anwendungs-Inferenzprofil-ARN.

386 386 

387Wenn diese Prüfungen ein Modell finden, das Ihr Konto nicht aufrufen kann, merkt sich Claude Code die Ablehnung auf diesem Computer bis zu einem Tag lang, und Starts während dieser Zeit überspringen das gemerkten Modell, ohne Amazon Bedrock erneut zu fragen. Claude Code prüft eine gemerkten Ablehnung eines aktuellen Standardmodells beim Start erneut, sobald zehn Minuten seit der letzten Prüfung vergangen sind, sodass ein Standard, den Ihr Administrator erneut aktiviert, zurückkommt. Um das Gedächtnis auszuschalten, setzen Sie [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/de/env-vars).

388 

389<h3 id="when-a-model-is-disabled-mid-session">

390 Wenn ein Modell während der Sitzung deaktiviert wird

391</h3>

392 

393Wenn Ihr Konto den Zugriff auf das Modell verliert, auf dem Ihre Sitzung läuft, beispielsweise weil ein Administrator es in Ihrem Amazon Bedrock-Konto deaktiviert, wechselt Claude Code die Sitzung zu einem anderen Modell, anstatt jede Anfrage fehlschlagen zu lassen, und zeigt `Switched to <fallback> because <model> is not available` an. Es versucht die gleichen Modelle wie der Startup-Fallback: zuerst frühere Versionen der gleichen Stufe und für eine Opus-Sitzung ohne verfügbare Opus-Version das Standard-Sonnet-Modell.

394 

395Der Wechsel gilt nur für eine Stufe, die Sie nicht angeheftet haben, die gleiche Bedingung wie der Startup-Fallback. Eine Sitzung auf einer bestimmten Version, die Sie ausgewählt haben, oder auf einem [Anwendungs-Inferenzprofil-ARN](#map-each-model-version-to-an-inference-profile), behält sein Modell und schlägt die Anfrage ohne eine Fallback-Modellkette statt fehl. Im [Auto-Modus](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) wechselt Claude Code nur zu einem Modell, das der Auto-Modus auf Amazon Bedrock unterstützt. Wenn keines dieser Modelle verfügbar ist, schlägt die Anfrage mit [AWS-Authentifizierung fehlgeschlagen](/docs/de/errors#aws-authentication-failed) fehl und ein Hinweis zum Aktivieren des Modells.

396 

397Eine [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains), die Sie konfigurieren, ersetzt den Stufenwechsel: Bei diesen Ablehnungen wechselt Claude Code stattdessen zu Ihrem konfigurierten Fallback. Um zu haben, dass abgelehnte Anfragen fehlschlagen, anstatt zu wechseln, setzen Sie [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/de/env-vars). Eine Fallback-Kette, die Sie konfiguriert haben, wechselt immer noch bei diesen Ablehnungen; entfernen Sie die Kette auch, wenn Sie möchten, dass jede abgelehnte Anfrage fehlschlägt.

398 

387<h2 id="cross-region-inference-profile-prefixes">399<h2 id="cross-region-inference-profile-prefixes">

388 Präfixe für regionsübergreifende Inferenzprofile400 Präfixe für regionsübergreifende Inferenzprofile

389</h2>401</h2>

artifacts.md +1 −1

Details

398| [Umgebungsvariable](/docs/de/env-vars) | Setzen Sie `CLAUDE_CODE_DISABLE_ARTIFACT=1` |398| [Umgebungsvariable](/docs/de/env-vars) | Setzen Sie `CLAUDE_CODE_DISABLE_ARTIFACT=1` |

399| [Berechtigungsregel](/docs/de/permissions) | Fügen Sie `Artifact` zu `permissions.deny` hinzu |399| [Berechtigungsregel](/docs/de/permissions) | Fügen Sie `Artifact` zu `permissions.deny` hinzu |

400 400 

401Sobald Sie Artefakte in einer [`--settings`](/docs/de/cli-reference#cli-flags)-Datei oder mit `CLAUDE_CODE_DISABLE_ARTIFACT` ausschalten, oder Ihr Administrator schaltet sie in [verwalteten Einstellungen](/docs/de/server-managed-settings) aus, schaltet keine Einstellungsdatei sie wieder ein. Vor v2.1.242 konnte eine Datei höher im [Prioritätsstapel](/docs/de/settings#settings-precedence) Artefakte wieder einschalten, selbst wenn eine Datei mit niedrigerer Priorität `"enableArtifact": false` setzte.401Sobald Sie Artefakte in einer [`--settings`](/docs/de/cli-reference#cli-flags)-Datei oder mit `CLAUDE_CODE_DISABLE_ARTIFACT` ausschalten, oder Ihr Administrator schaltet sie in [verwalteten Einstellungen](/docs/de/server-managed-settings) aus, schaltet keine Einstellungsdatei sie wieder ein.

402 402 

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

404 404 

Details

194* **Cloud-Anbieter-Sitzungen wie Amazon Bedrock**: Blockiert nur, während eine `ANTHROPIC_API_KEY`-, `ANTHROPIC_AUTH_TOKEN`- oder `apiKeyHelper`-Anmeldedaten oder ein API-Schlüssel, der von einer früheren Claude Console-Anmeldung gespeichert wurde, noch auf dem Computer vorhanden ist. Entfernen Sie ihn und die Sitzung startet. Diese Sitzungen authentifizieren sich gegen Ihren Cloud-Anbieter, dessen Zugriffrichtlinien sie regeln194* **Cloud-Anbieter-Sitzungen wie Amazon Bedrock**: Blockiert nur, während eine `ANTHROPIC_API_KEY`-, `ANTHROPIC_AUTH_TOKEN`- oder `apiKeyHelper`-Anmeldedaten oder ein API-Schlüssel, der von einer früheren Claude Console-Anmeldung gespeichert wurde, noch auf dem Computer vorhanden ist. Entfernen Sie ihn und die Sitzung startet. Diese Sitzungen authentifizieren sich gegen Ihren Cloud-Anbieter, dessen Zugriffrichtlinien sie regeln

195* **[Anthropic-Profil oder Verbundanmeldedaten](#anthropic-profiles-and-federation-credentials)**: Nicht blockiert, es sei denn, eine `ANTHROPIC_API_KEY`-, `ANTHROPIC_AUTH_TOKEN`- oder `apiKeyHelper`-Anmeldedaten oder ein API-Schlüssel, der von einer früheren Claude Console-Anmeldung gespeichert wurde, ist auch auf dem Computer vorhanden. Die Schlüssel überprüfen nicht, zu welcher Organisation das Profil gehört195* **[Anthropic-Profil oder Verbundanmeldedaten](#anthropic-profiles-and-federation-credentials)**: Nicht blockiert, es sei denn, eine `ANTHROPIC_API_KEY`-, `ANTHROPIC_AUTH_TOKEN`- oder `apiKeyHelper`-Anmeldedaten oder ein API-Schlüssel, der von einer früheren Claude Console-Anmeldung gespeichert wurde, ist auch auf dem Computer vorhanden. Die Schlüssel überprüfen nicht, zu welcher Organisation das Profil gehört

196 196 

197<h3 id="restrict-which-api-providers-a-machine-may-use">

198 Beschränken Sie, welche API-Anbieter ein Computer verwenden darf

199</h3>

200 

201[`allowedProviders`](/docs/de/settings-reference#allowedproviders) in [verwalteten Einstellungen](/docs/de/managed-settings) listet auf, welche Dienste ein verwalteter Computer nutzen darf, um auf Claude zuzugreifen, z. B. die Anthropic API, Amazon Bedrock oder ein LLM-Gateway. Es ergänzt `forceLoginMethod` und `forceLoginOrgUUID`, die regeln, welches Konto eine Sitzung verwendet, wenn sie mit Anthropic spricht. Erfordert Claude Code v2.1.285 oder später.

202 

203```json managed-settings.json theme={null}

204{

205 "forceLoginMethod": "claudeai",

206 "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],

207 "allowedProviders": ["anthropic", "bedrock"]

208}

209```

210 

211Mit dieser Datei startet ein Entwickler, der bei Ihrer claude.ai-Organisation angemeldet ist oder für Amazon Bedrock konfiguriert ist, normal. Eine Sitzung, die für einen anderen Anbieter eingerichtet ist, wird beim Start abgelehnt, und eine laufende Sitzung, die zu einem wechselt, wird bei der nächsten Anfrage abgelehnt. [Verwaltete Einstellungen erlauben diesen API-Anbieter nicht](/docs/de/errors#managed-settings-dont-allow-this-api-provider) zeigt jede Nachricht.

212 

213* **Erlauben Sie ein LLM-Gateway oder einen Proxy**: Listet Sie `"customEndpoint"` auf und setzen Sie die URL des Gateways im verwalteten `env`-Block derselben Quelle. Die [Einstellungsreferenz](/docs/de/settings-reference#allowedproviders) listet jeden Wert auf und sagt, welche Endpunkt-Variablen einen verwalteten `env`-Pin benötigen.

214* **Bereitstellung auf verwalteten Computern**: Setzen Sie die Liste in die verwaltete Quelle, die den Rest Ihrer Richtlinie trägt. Der Eintrag [Scope-Hinweis](/docs/de/settings-reference#allowedproviders) sagt, wie sich eine serverseitig verwaltete Liste damit kombiniert.

215* **Nur serverseitig verwaltete Einstellungen**: Eine Liste, die Sie nur in [serverseitig verwalteten Einstellungen](/docs/de/server-managed-settings) setzen, erreicht nur Sitzungen, die die Einstellungen Ihrer Organisation abrufen, daher behandeln Sie sie als Komfort für Computer, die Sie nicht mit Geräteverwaltung erreichen können, nicht als Durchsetzung. [Plattformverfügbarkeit](/docs/de/server-managed-settings#platform-availability) listet auf, welche Sitzungen sie abrufen.

216 

197<h2 id="credential-management">217<h2 id="credential-management">

198 Verwaltung von Anmeldedaten218 Verwaltung von Anmeldedaten

199</h2>219</h2>

Details

285 Bearbeitungsregeln aus `/permissions`285 Bearbeitungsregeln aus `/permissions`

286</h2>286</h2>

287 287 

288Um Klassifiziererregeln anzuzeigen und zu bearbeiten, ohne eine Einstellungsdatei zu öffnen, führen Sie [`/permissions`](/docs/de/permissions#manage-permissions) aus und wählen Sie die Registerkarte **Auto mode** aus. Die Registerkarte erfordert Claude Code v2.1.246 oder später und wird nur angezeigt, wenn [Auto mode für Ihre Sitzung verfügbar](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) ist.288Um Klassifiziererregeln und `environment`-Einträge anzuzeigen und zu bearbeiten, ohne eine Einstellungsdatei zu öffnen, führen Sie [`/permissions`](/docs/de/permissions#manage-permissions) aus und wählen Sie die Registerkarte **Auto mode** aus. Die Registerkarte erfordert Claude Code v2.1.246 oder später und wird nur angezeigt, wenn [Auto mode für Ihre Sitzung verfügbar](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) ist.

289 289 

290Die Registerkarte listet die Einträge `allow`, `soft_deny`, `hard_deny` und `environment` aus jedem der [Bereiche, die der Klassifizierer liest](#where-the-classifier-reads-configuration), auf und zeigt an, ob die integrierten Regeln für jeden Abschnitt wirksam sind. Claude Code zeigt Einträge aus [verwalteten Einstellungen](/docs/de/server-managed-settings) oder dem Flag `--settings` als schreibgeschützt an und speichert jede Änderung, die Sie auf der Registerkarte vornehmen, in `~/.claude/settings.json`. Auf der Registerkarte können Sie:290Claude Code zeigt Einträge aus [verwalteten Einstellungen](/docs/de/server-managed-settings) oder dem Flag `--settings` als schreibgeschützt an und speichert jede Änderung, die Sie auf der Registerkarte vornehmen, in `~/.claude/settings.json`.

291 

292* Regeln in den Abschnitten `allow`, `soft_deny` und `hard_deny` hinzufügen, bearbeiten oder löschen. Wenn Sie die erste Regel zu einem Abschnitt hinzufügen, fügt Claude Code auch `"$defaults"` ein, damit die [integrierten Regeln](#override-the-block-and-allow-rules) wirksam bleiben.

293* Die integrierten Regeln für `allow`, `soft_deny` oder `hard_deny` aus- oder wieder einschalten. Claude Code speichert die Auswahl, indem es `"$defaults"` in Ihrer Liste für diesen Abschnitt hinzufügt oder entfernt. Ein Abschnitt benötigt daher mindestens eine eigene Regel, bevor Sie die integrierten Regeln ausschalten können.

294* Die Einträge `environment` als ein Dokument in Ihrem Editor bearbeiten. Wenn Sie noch keine `environment`-Einträge konfiguriert haben, fragt Claude Code zunächst, ob die integrierte Umgebung ersetzt werden soll, und öffnet dann den Editor mit dem vollständigen integrierten Text. Wenn Sie speichern, ersetzt Claude Code Ihr `autoMode.environment`-Array durch das Dokument. Fügen Sie die Zeile `"$defaults"` ein, um [die integrierten Einträge beizubehalten](#define-trusted-infrastructure).

295 291 

296<h2 id="route-all-shell-commands-through-the-classifier">292<h2 id="route-all-shell-commands-through-the-classifier">

297 Alle Shell-Befehle durch den Klassifizierer leiten293 Alle Shell-Befehle durch den Klassifizierer leiten

Details

1561| `paste-cache/` | Inhalte großer Einfügungen |1561| `paste-cache/` | Inhalte großer Einfügungen |

1562| `image-cache/<session>/` | Angehängte Bilder, die von Claude Code v2.1.274 und früher gespeichert wurden. Spätere Versionen speichern eingefügte und angehängte Bilder außerhalb von `~/.claude`, in einem `images/`-Verzeichnis für jede Sitzung unter dem temporären Verzeichnis, das [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) steuert. Der Durchlauf entfernt die Verzeichnisse anderer Sitzungen, die hier übrig gelassen wurden, unabhängig von ihrem Alter. |1562| `image-cache/<session>/` | Angehängte Bilder, die von Claude Code v2.1.274 und früher gespeichert wurden. Spätere Versionen speichern eingefügte und angehängte Bilder außerhalb von `~/.claude`, in einem `images/`-Verzeichnis für jede Sitzung unter dem temporären Verzeichnis, das [`CLAUDE_CODE_TMPDIR`](/docs/de/env-vars) steuert. Der Durchlauf entfernt die Verzeichnisse anderer Sitzungen, die hier übrig gelassen wurden, unabhängig von ihrem Alter. |

1563| `uploads/<session>/` | Dateien, die Sie aus dem Web oder der mobilen App anhängen, und Fotos, die Sie aus der mobilen App anhängen, wenn Sie eine [Remote Control](/docs/de/remote-control) Sitzung anschreiben. Ein Anhang zu einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) wird stattdessen in der eigenen Cloud-Umgebung dieser Sitzung gespeichert, nicht auf Ihrem Computer. |1563| `uploads/<session>/` | Dateien, die Sie aus dem Web oder der mobilen App anhängen, und Fotos, die Sie aus der mobilen App anhängen, wenn Sie eine [Remote Control](/docs/de/remote-control) Sitzung anschreiben. Ein Anhang zu einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) wird stattdessen in der eigenen Cloud-Umgebung dieser Sitzung gespeichert, nicht auf Ihrem Computer. |

1564| `dev-mods/<session>/` | [Mods, die Claude geschrieben hat](/docs/de/plugins/mods/create#ask-claude-for-a-mod) während der Sitzung |

1564| `session-env/` | Pro-Sitzungs-Umgebungsmetadaten |1565| `session-env/` | Pro-Sitzungs-Umgebungsmetadaten |

1565| `tasks/` | Aufgabenlisten, die von den Task-Tools geschrieben werden, ein Verzeichnis pro Liste |1566| `tasks/` | Aufgabenlisten, die von den Task-Tools geschrieben werden, ein Verzeichnis pro Liste |

1566| `shell-snapshots/` | Aliase, Funktionen und Shell-Optionen, die beim Start erfasst und vom [Bash-Tool](/docs/de/tools-reference#bash-tool-behavior) auf jeden Befehl angewendet werden. Wird bei sauberer Beendigung entfernt. Die Bereinigung löscht alle, die nach einem Absturz übrig bleiben. |1567| `shell-snapshots/` | Aliase, Funktionen und Shell-Optionen, die beim Start erfasst und vom [Bash-Tool](/docs/de/tools-reference#bash-tool-behavior) auf jeden Befehl angewendet werden. Wird bei sauberer Beendigung entfernt. Die Bereinigung löscht alle, die nach einem Absturz übrig bleiben. |

Details

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

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

86| `--debug-file <path>` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus. Hat Vorrang vor `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus. Hat Vorrang vor `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--desktop` | Öffnen Sie die [Claude Desktop-App](/docs/de/desktop) im aktuellen Verzeichnis und beenden Sie sich, ohne eine Sitzung im Terminal zu starten. Fügen Sie `--continue` oder `--resume` mit einer Sitzungs-ID hinzu, um [diese Sitzung stattdessen in Desktop zu öffnen](/docs/de/desktop#coming-from-the-cli). `--resume` akzeptiert hier nur eine Sitzungs-ID, keine Namen oder Transkriptpfade. Akzeptiert keinen Prompt und keine anderen Flags außer `--verbose` und den `--debug`-Flags, da die App die Sitzung selbst startet. Verfügbar auf macOS und x64 Windows, wenn Sie mit einem Claude-Abonnement angemeldet sind. Erfordert Claude Code v2.1.285 oder später | `claude --desktop` |

87| `--disable-slash-commands` | Deaktivieren Sie alle Skills und Befehle für diese Sitzung | `claude --disable-slash-commands` |88| `--disable-slash-commands` | Deaktivieren Sie alle Skills und Befehle für diese Sitzung | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | Ablehnungsregeln. Ein bloßer Tool-Name entfernt die entsprechenden Tools aus Claudes Kontext: `"Edit"` entfernt Edit, `"*"` entfernt jedes Tool, und `"mcp__*"` entfernt jedes MCP-Tool. Eine scoped-Regel wie `Bash(rm *)` lässt das Tool verfügbar und lehnt nur Aufrufe ab, die [wie geschrieben](/docs/de/permissions#bash-rule-limits) übereinstimmen. Eine Regel, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) benennt, kann es nicht entfernen, während ein anderes Tool verbleibt | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |89| `--disallowedTools`, `--disallowed-tools` | Ablehnungsregeln. Ein bloßer Tool-Name entfernt die entsprechenden Tools aus Claudes Kontext: `"Edit"` entfernt Edit, `"*"` entfernt jedes Tool, und `"mcp__*"` entfernt jedes MCP-Tool. Eine scoped-Regel wie `Bash(rm *)` lässt das Tool verfügbar und lehnt nur Aufrufe ab, die [wie geschrieben](/docs/de/permissions#bash-rule-limits) übereinstimmen. Eine Regel, die [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior) benennt, kann es nicht entfernen, während ein anderes Tool verbleibt | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | Legen Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max`, oder `ultracode`. Verfügbare Stufen hängen vom Modell ab. `ultracode` fordert `xhigh`-Anstrengung mit [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) an, und erfordert Claude Code v2.1.203 oder später. Überschreibt die [`modelSettings`](/docs/de/settings-reference#modelsettings)- und [`effortLevel`](/docs/de/settings-reference#effortlevel)-Einstellungen für diese Sitzung und bleibt nicht bestehen | `claude --effort high` |90| `--effort` | Legen Sie die [Anstrengungsstufe](/docs/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max`, oder `ultracode`. Verfügbare Stufen hängen vom Modell ab. `ultracode` fordert `xhigh`-Anstrengung mit [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) an, und erfordert Claude Code v2.1.203 oder später. Überschreibt die [`modelSettings`](/docs/de/settings-reference#modelsettings)- und [`effortLevel`](/docs/de/settings-reference#effortlevel)-Einstellungen für diese Sitzung und bleibt nicht bestehen | `claude --effort high` |


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

112| `--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"` |113| `--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"` |

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

114| `--permission-mode` | Beginnen Sie in einem angegebenen [Berechtigungsmodus](/docs/de/permission-modes). Akzeptiert `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, oder `manual` als Alias für `default`. Der `manual`-Alias wählt den Berechtigungsmodus, den die UI als Manual kennzeichnet, und erfordert Claude Code v2.1.200 oder später; `claude --help` listet ihn anstelle von `default` auf, und beide Werte funktionieren. Überschreibt `defaultMode` aus Einstellungsdateien. Ohne diesen Flag oder `--dangerously-skip-permissions` startet eine neue Sitzung im Berechtigungsmodus, der in [welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) beschrieben ist. Für `-p` ist das `default`, wenn nichts konfiguriert ist | `claude --permission-mode plan` |115| `--permission-mode` | Beginnen Sie in einem angegebenen [Berechtigungsmodus](/docs/de/permission-modes). Akzeptiert `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, oder `manual` als Alias für `default`. Der `manual`-Alias wählt den Berechtigungsmodus, den die UI als Manual kennzeichnet, und erfordert Claude Code v2.1.200 oder später; `claude --help` listet ihn anstelle von `default` auf, und beide Werte funktionieren. Überschreibt `defaultMode` aus Einstellungsdateien. Ohne diesen Flag oder `--dangerously-skip-permissions` startet eine neue Sitzung im Berechtigungsmodus, der in [welcher Berechtigungsmodus eine Sitzung startet](/docs/de/permission-modes#which-mode-a-session-starts-in) beschrieben ist, was auch abdeckt, in welchem Modus ein `-p`-Lauf startet | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Geben Sie ein MCP-Tool an, um Berechtigungsaufforderungen im nicht-interaktiven Modus zu verarbeiten. Claude Code wartet darauf, dass der MCP-Server dieses Tools verbunden wird, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars)-Startup-Timeout, standardmäßig 30 Sekunden. <br /><br />Das Prompt-Tool kann ein MCP-Tool, das als [Benutzerinteraktion erfordernd](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet ist, nicht genehmigen: Claude Code konvertiert ein `allow`-Ergebnis für eines in eine Ablehnung. Diese Einschränkung erfordert Claude Code v2.1.199 oder später | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |116| `--permission-prompt-tool` | Geben Sie ein MCP-Tool an, um Berechtigungsaufforderungen im nicht-interaktiven Modus zu verarbeiten. Claude Code wartet darauf, dass der MCP-Server dieses Tools verbunden wird, bevor der erste Turn ausgeführt wird, bis zum [`MCP_TIMEOUT`](/docs/de/env-vars)-Startup-Timeout, standardmäßig 30 Sekunden. <br /><br />Das Prompt-Tool kann ein MCP-Tool, das als [Benutzerinteraktion erfordernd](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet ist, nicht genehmigen: Claude Code konvertiert ein `allow`-Ergebnis für eines in eine Ablehnung. Diese Einschränkung erfordert Claude Code v2.1.199 oder später | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Legen Sie fest, wer Berechtigungsaufforderungen im Print-Modus beantwortet. Mit dem Standard `host` sendet Claude Code sie an den Agent SDK-Host oder das `--permission-prompt-tool`-Tool. Übergeben Sie `none`, wenn niemand antworten kann, und Claude Code lehnt sie stattdessen ab. Siehe [Deaktivieren Sie Berechtigungsaufforderungen in unbeaufsichtigten Läufen](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs). Erfordert Claude Code v2.1.259 oder später | `claude -p --permission-prompts none "query"` |117| `--permission-prompts` | Legen Sie fest, wer Berechtigungsaufforderungen im Print-Modus beantwortet. Mit dem Standard `host` sendet Claude Code sie an den Agent SDK-Host oder das `--permission-prompt-tool`-Tool. Übergeben Sie `none`, wenn niemand antworten kann, und Claude Code lehnt sie stattdessen ab. Siehe [Deaktivieren Sie Berechtigungsaufforderungen in unbeaufsichtigten Läufen](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs). Erfordert Claude Code v2.1.259 oder später | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Laden Sie ein Plugin aus einem Verzeichnis oder `.zip`-Archiv, oder mehrere aus einem [Ordner von Plugins](/docs/de/plugins/create#load-a-directory-or-archive-for-one-session), nur für diese Sitzung. Jeder Flag nimmt einen Pfad. Wiederholen Sie den Flag für mehr Pfade: `--plugin-dir A --plugin-dir B.zip`. Das Übergeben eines Ordners von Plugins erfordert Claude Code v2.1.265 oder später | `claude --plugin-dir ./my-plugin` |118| `--plugin-dir` | Laden Sie ein Plugin aus einem Verzeichnis oder `.zip`-Archiv, oder mehrere aus einem [Ordner von Plugins](/docs/de/plugins/create#load-a-directory-or-archive-for-one-session), nur für diese Sitzung. Jeder Flag nimmt einen Pfad. Wiederholen Sie den Flag für mehr Pfade: `--plugin-dir A --plugin-dir B.zip`. Das Übergeben eines Ordners von Plugins erfordert Claude Code v2.1.265 oder später | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Rufen Sie ein Plugin `.zip`-Archiv von einer URL für diese Sitzung nur ab. Wiederholen Sie den Flag für mehrere Plugins, oder übergeben Sie durch Leerzeichen getrennte URLs in einem einzelnen angeführten Wert | `claude --plugin-url https://example.com/plugin.zip` |119| `--plugin-url` | Rufen Sie ein Plugin `.zip`-Archiv von einer URL für diese Sitzung nur ab. Wiederholen Sie den Flag für mehrere Plugins, oder übergeben Sie durch Leerzeichen getrennte URLs in einem einzelnen angeführten Wert | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Geben Sie die Antwort ohne interaktiven Modus aus (siehe [Agent SDK-Dokumentation](/docs/de/agent-sdk/overview) für Details zur programmatischen Verwendung) | `claude -p "query"` |120| `--print`, `-p` | Geben Sie die Antwort ohne interaktiven Modus aus (siehe [Agent SDK-Dokumentation](/docs/de/agent-sdk/overview) für Details zur programmatischen Verwendung). Für `--resume` bei einer Hintergrund-Sitzung, die noch läuft, siehe [Setzen Sie eine Sitzung fort](/docs/de/sessions#resume-a-running-background-session) | `claude -p "query"` |

120| `--prompt-suggestions` | Geben Sie eine `prompt_suggestion`-Nachricht mit einem vorhergesagten nächsten Benutzer-Prompt nach jedem Turn aus, der einen erzeugt; sehr kurze Konversationen können keine erzeugen. Erfordert `--print`, `--output-format stream-json` und `--verbose`. Siehe [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |121| `--prompt-suggestions` | Geben Sie eine `prompt_suggestion`-Nachricht mit einem vorhergesagten nächsten Benutzer-Prompt nach jedem Turn aus, der einen erzeugt; sehr kurze Konversationen können keine erzeugen. Erfordert `--print`, `--output-format stream-json` und `--verbose`. Siehe [Prompt-Vorschläge](/docs/de/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

121| `--ref <branch>` | Mit `--environment` basieren Sie den Checkout der neuen Sitzung auf einer benannten Ref anstelle des lokalen `HEAD` | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |122| `--ref <branch>` | Mit `--environment` basieren Sie den Checkout der neuen Sitzung auf einer benannten Ref anstelle des lokalen `HEAD` | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |

122| `--remote` | Veralteter Alias für `--cloud`, einschließlich der bestehenden Sitzungsform | `claude --remote "Fix the login bug"` |123| `--remote` | Veralteter Alias für `--cloud`, einschließlich der bestehenden Sitzungsform | `claude --remote "Fix the login bug"` |


124| `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte [Remote Control](/docs/de/remote-control)-Sitzungsnamen, wenn kein expliziter Name gesetzt ist. Standardmäßig der Hostname Ihrer Maschine, was Namen wie `myhost-graceful-unicorn` erzeugt. Legen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für den gleichen Effekt fest | `claude remote-control --remote-control-session-name-prefix dev-box` |125| `--remote-control-session-name-prefix <prefix>` | Präfix für automatisch generierte [Remote Control](/docs/de/remote-control)-Sitzungsnamen, wenn kein expliziter Name gesetzt ist. Standardmäßig der Hostname Ihrer Maschine, was Namen wie `myhost-graceful-unicorn` erzeugt. Legen Sie `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` für den gleichen Effekt fest | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | Geben Sie Benutzernachrichten von stdin zur Bestätigung auf stdout aus. Erfordert `--input-format stream-json` und `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |126| `--replay-user-messages` | Geben Sie Benutzernachrichten von stdin zur Bestätigung auf stdout aus. Erfordert `--input-format stream-json` und `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | Starten Sie im eingeschränkten Modus. Verwenden Sie ihn, wenn ein Evaluierungs-Harness `claude` auf einer gemeinsamen Maschine antreibt und Claude Code keine Befehle ausführen oder die Benutzer- und Projekteinstellungen dieser Maschine lesen darf. Claude Code entfernt die integrierten Tools, die Befehle oder Code ausführen, und WebFetch, es sei denn, Sie benennen sie einzeln in `--tools`, nicht durch die `default`-Voreinstellung. Es beschränkt auch die integrierten Datei-Tools auf die [Arbeitsverzeichnisse](/docs/de/permissions#working-directories), lädt nur [verwaltete Einstellungen](/docs/de/managed-settings) und `--settings`, lehnt [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) ab, und [lehnt ab, Cloud-Sitzungen zu erstellen](/docs/de/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Erfordert Claude Code v2.1.248 oder später | `claude --restricted -p "query"` |127| `--restricted` | Starten Sie im eingeschränkten Modus. Verwenden Sie ihn, wenn ein Evaluierungs-Harness `claude` auf einer gemeinsamen Maschine antreibt und Claude Code keine Befehle ausführen oder die Benutzer- und Projekteinstellungen dieser Maschine lesen darf. Claude Code entfernt die integrierten Tools, die Befehle oder Code ausführen, und WebFetch, es sei denn, Sie benennen sie einzeln in `--tools`, nicht durch die `default`-Voreinstellung. Es beschränkt auch die integrierten Datei-Tools auf die [Arbeitsverzeichnisse](/docs/de/permissions#working-directories), lädt nur [verwaltete Einstellungen](/docs/de/managed-settings) und `--settings`, lehnt [`bypassPermissions`](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode) ab, und [lehnt ab, Cloud-Sitzungen zu erstellen](/docs/de/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Erfordert Claude Code v2.1.248 oder später | `claude --restricted -p "query"` |

127| `--resume`, `-r` | Setzen Sie eine bestimmte Sitzung nach ID oder Name fort, oder zeigen Sie eine interaktive Auswahl an, um eine Sitzung zu wählen. Anstelle einer ID können Sie den absoluten Pfad zur [Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) einer Sitzung `.jsonl` übergeben. Die Auswahl und Namenssuche umfassen Sitzungen, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben. Wenn Sie eine Sitzungs-ID übergeben, durchsucht Claude Code das aktuelle Projektverzeichnis und seine Git-Worktrees, dann jedes andere Projekt auf dieser Maschine. Vor v2.1.223 deckte die ID-Suche nur das aktuelle Projektverzeichnis und seine Git-Worktrees ab. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet | `claude --resume auth-refactor` |128| `--resume`, `-r` | Setzen Sie eine bestimmte Sitzung nach ID oder Name fort, oder zeigen Sie eine interaktive Auswahl an, um eine Sitzung zu wählen. Anstelle einer ID können Sie den absoluten Pfad zur [Transkriptdatei](/docs/de/sessions#where-transcripts-are-stored) einer Sitzung `.jsonl` übergeben. Die Auswahl und Namenssuche umfassen Sitzungen, die dieses Verzeichnis mit `/add-dir` hinzugefügt haben. Wenn Sie eine Sitzungs-ID übergeben, durchsucht Claude Code das aktuelle Projektverzeichnis und seine Git-Worktrees, dann jedes andere Projekt auf dieser Maschine. Vor v2.1.223 deckte die ID-Suche nur das aktuelle Projektverzeichnis und seine Git-Worktrees ab. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet. Das Fortsetzen einer noch laufenden Sitzung [öffnet diese Sitzung](/docs/de/sessions#resume-a-running-background-session) in diesem Terminal über `claude attach`, und ein Prompt, den Sie in der Befehlszeile übergeben, geht an sie als ihr nächster Turn. Vor v2.1.285 lehnte Claude Code ab und gab stattdessen den `claude attach`-Befehl aus | `claude --resume auth-refactor` |

128| `--safe-mode` | Starten Sie mit allen Anpassungen deaktiviert, um eine fehlerhafte Konfiguration zu beheben: CLAUDE.md, Skills, Plugins, Hooks, MCP-Server, benutzerdefinierte Befehle und Agenten, Ausgabestile, Workflows, benutzerdefinierte Designs, benutzerdefinierte Tastenbindungen, Status-Zeile und Datei-Vorschlagsbefehle, LSP-Server und automatischer Speicher werden nicht geladen. Authentifizierung, Modellauswahl, integrierte Tools und Berechtigungen funktionieren normal, was sich von [`--bare`](/docs/de/headless#start-faster-with-bare-mode) unterscheidet. Die Richtlinie für verwaltete Einstellungen gilt immer noch, einschließlich richtliniengesteuerter Hooks, Status-Zeile und Datei-Vorschlagsbefehle; verwaltete Plugins, verwaltete Skills, verwaltete CLAUDE.md und richtliniengesteuerter MCP-Server werden nicht geladen. Nützlich, um zu überprüfen, ob eine Anpassung das auslöst, was [automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auslöst. Setzt [`CLAUDE_CODE_SAFE_MODE`](/docs/de/env-vars) | `claude --safe-mode` |129| `--safe-mode` | Starten Sie mit allen Anpassungen deaktiviert, um eine fehlerhafte Konfiguration zu beheben: CLAUDE.md, Skills, Plugins, Hooks, MCP-Server, benutzerdefinierte Befehle und Agenten, Ausgabestile, Workflows, benutzerdefinierte Designs, benutzerdefinierte Tastenbindungen, Status-Zeile und Datei-Vorschlagsbefehle, LSP-Server und automatischer Speicher werden nicht geladen. Authentifizierung, Modellauswahl, integrierte Tools und Berechtigungen funktionieren normal, was sich von [`--bare`](/docs/de/headless#start-faster-with-bare-mode) unterscheidet. Die Richtlinie für verwaltete Einstellungen gilt immer noch, einschließlich richtliniengesteuerter Hooks, Status-Zeile und Datei-Vorschlagsbefehle; verwaltete Plugins, verwaltete Skills, verwaltete CLAUDE.md und richtliniengesteuerter MCP-Server werden nicht geladen. Nützlich, um zu überprüfen, ob eine Anpassung das auslöst, was [automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auslöst. Setzt [`CLAUDE_CODE_SAFE_MODE`](/docs/de/env-vars) | `claude --safe-mode` |

129| `--session-id` | Verwenden Sie eine bestimmte Sitzungs-ID für die Konversation (muss eine gültige UUID sein) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |130| `--session-id` | Verwenden Sie eine bestimmte Sitzungs-ID für die Konversation (muss eine gültige UUID sein) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Durch Kommas getrennte Liste von Einstellungsquellen zum Laden (`user`, `project`, `local`). Siehe [Agent-Ansicht](/docs/de/agent-view#what-carries-over-when-you-background) und [Agent-Teams](/docs/de/agent-teams#context-and-communication) für die Sitzungen, die Sie von dieser aus starten und die Liste erben | `claude --setting-sources user,project` |131| `--setting-sources` | Durch Kommas getrennte Liste von Einstellungsquellen zum Laden (`user`, `project`, `local`). Siehe [Agent-Ansicht](/docs/de/agent-view#what-carries-over-when-you-background) und [Agent-Teams](/docs/de/agent-teams#context-and-communication) für die Sitzungen, die Sie von dieser aus starten und die Liste erben | `claude --setting-sources user,project` |

Details

439 439 

440* **Befehle, die Claude ausführt**: Eine Cloud-Umgebung setzt kein eigenes Befehls-Timeout, daher gelten die Standardeinstellungen des Bash-Tools. Claude wartet standardmäßig 2 Minuten auf einen Befehl und kann bis zu 10 Minuten anfordern.440* **Befehle, die Claude ausführt**: Eine Cloud-Umgebung setzt kein eigenes Befehls-Timeout, daher gelten die Standardeinstellungen des Bash-Tools. Claude wartet standardmäßig 2 Minuten auf einen Befehl und kann bis zu 10 Minuten anfordern.

441 441 

442 Wenn ein Befehl sein [Timeout](/docs/de/tools-reference#timeout-and-output-limits) erreicht, [verschiebt Claude Code ihn in den Hintergrund](/docs/de/tools-reference#background-commands), anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Ein Befehl, der auf diese Weise verschoben wird, kann bis zu 30 weitere Minuten laufen, bevor Claude Code ihn bei seinem [Hintergrund-Zeitlimit](/docs/de/tools-reference#background-commands) stoppt. Das Setzen von `BASH_DEFAULT_TIMEOUT_MS` über `1800000` Millisekunden verlängert dieses Limit sowie die Vordergrund-Standardeinstellung.442 Wenn ein Befehl sein [Timeout](/docs/de/tools-reference#timeout-and-output-limits) erreicht, [verschiebt Claude Code ihn in den Hintergrund](/docs/de/tools-reference#foreground-commands-that-move-to-the-background), anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Ein Befehl, der auf diese Weise verschoben wird, kann bis zu 30 weitere Minuten laufen, bevor Claude Code ihn bei seinem [Hintergrund-Zeitlimit](/docs/de/tools-reference#time-limit-for-background-commands) stoppt. Das Setzen von `BASH_DEFAULT_TIMEOUT_MS` über `1800000` Millisekunden verlängert dieses Limit sowie die Vordergrund-Standardeinstellung.

443* **SessionStart-Hooks**: Claude Code bricht einen `command`-Hook nach 600 Sekunden ab, es sei denn, Sie setzen [`timeout`](/docs/de/hooks#common-fields) in Sekunden auf dem Hook-Eintrag. Claude Code erzwingt das Timeout nicht auf einem Hook, den Sie mit [`async: true`](/docs/de/hooks#run-hooks-in-the-background) ausführen.443* **SessionStart-Hooks**: Claude Code bricht einen `command`-Hook nach 600 Sekunden ab, es sei denn, Sie setzen [`timeout`](/docs/de/hooks#common-fields) in Sekunden auf dem Hook-Eintrag. Claude Code erzwingt das Timeout nicht auf einem Hook, den Sie mit [`async: true`](/docs/de/hooks#run-hooks-in-the-background) ausführen.

444* **Setup-Skript**: Ein Skript, das länger als ungefähr fünf Minuten dauert, wird nicht gecacht. [Script-Anforderungen](#script-requirements) behandelt, wie Sie darunter bleiben.444* **Setup-Skript**: Ein Skript, das länger als ungefähr fünf Minuten dauert, wird nicht gecacht. [Script-Anforderungen](#script-requirements) behandelt, wie Sie darunter bleiben.

445* **Untätige Sitzungen**: Nach ein paar Minuten ohne Aktivität pausiert die VM einer Sitzung mit ihren Dateien gespeichert, und eine pausierte VM kann später freigegeben werden. [Umgebungsvariablen setzen](#set-environment-variables) beschreibt, was eine Sitzung in jedem Fall aufgreift, und [Environment expired](/docs/de/claude-code-on-the-web#environment-expired) behandelt, wie Sie eine Sitzung erneut öffnen, deren VM freigegeben wurde.445* **Untätige Sitzungen**: Nach ein paar Minuten ohne Aktivität pausiert die VM einer Sitzung mit ihren Dateien gespeichert, und eine pausierte VM kann später freigegeben werden. [Umgebungsvariablen setzen](#set-environment-variables) beschreibt, was eine Sitzung in jedem Fall aufgreift, und [Environment expired](/docs/de/claude-code-on-the-web#environment-expired) behandelt, wie Sie eine Sitzung erneut öffnen, deren VM freigegeben wurde.

commands.md +90 −90

Details

36 Alle Befehle36 Alle Befehle

37</h2>37</h2>

38 38 

39Die folgende Tabelle listet alle Befehle auf, die in Claude Code enthalten sind. Die meisten sind integrierte Befehle, deren Verhalten in der CLI codiert ist. Zwei Arten von Einträgen sind gekennzeichnet:39Die folgende Tabelle listet alle Befehle auf, die in Claude Code enthalten sind. Die meisten sind integrierte Befehle, deren Verhalten in die CLI codiert ist. Zwei Arten von Einträgen sind gekennzeichnet:

40 40 

41* **[Skill](/docs/de/skills#bundled-skills)**: ein gebündelter Skill. Er funktioniert wie Skills, die Sie selbst schreiben: ein Prompt, der an Claude übergeben wird.41* **[Skill](/docs/de/skills#bundled-skills)**: ein gebündelter Skill. Er funktioniert wie Skills, die Sie selbst schreiben: ein Prompt, der an Claude übergeben wird.

42 * `/verify` wird nur ausgeführt, wenn Sie ihn aufrufen. Vor v2.1.215 konnte Claude `/verify` auch von selbst ausführen.42 * `/verify` wird nur ausgeführt, wenn Sie ihn aufrufen. Vor v2.1.215 konnte Claude `/verify` auch von selbst ausführen.


53 53 

54| Befehl | Zweck |54| Befehl | Zweck |

55| :- | :- |55| :- | :- |

56| `/add-dir <path>` | Fügen Sie ein Arbeitsverzeichnis für den Dateizugriff während der aktuellen Sitzung hinzu. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) aus dem hinzugefügten Verzeichnis. Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path) nicht hinzufügen, wie z. B. `\\server\share`. Nach einem erfolgreichen Hinzufügen werden Ihre [`DirectoryAdded`-Hooks](/docs/de/hooks#directoryadded) ausgeführt. Wenn Sie ihn ausführen, während Claude antwortet, fordert Claude Code Sie auf, das Verzeichnis sofort zu bestätigen, und sobald Sie bestätigen, kann Claudes nächster Tool-Aufruf in derselben Runde darauf zugreifen. Vor v2.1.234 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war |56| `/add-dir <path>` | Fügen Sie ein Arbeitsverzeichnis für den Dateizugriff während der aktuellen Sitzung hinzu. Geben Sie einen Teilpfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die meisten `.claude/`-Konfigurationen werden [nicht erkannt](/docs/de/permissions#additional-directories-grant-file-access-not-configuration) aus dem hinzugefügten Verzeichnis. Sie können die meisten [Netzwerkpfade](/docs/de/errors#working-directory-is-a-network-path) nicht hinzufügen, wie z. B. `\\server\share`. Nach einem erfolgreichen Hinzufügen werden Ihre [`DirectoryAdded` Hooks](/docs/de/hooks#directoryadded) ausgeführt. Wenn Sie ihn ausführen, während Claude antwortet, fordert Claude Code Sie auf, das Verzeichnis sofort zu bestätigen, und sobald Sie bestätigen, kann Claudes nächster Tool-Aufruf in derselben Runde darauf zugreifen. Vor v2.1.234 wartete Claude Code mit dem Befehl, bis die Runde beendet war |

57| `/advisor [model\|off]` | Aktivieren oder deaktivieren Sie das [Advisor-Tool](/docs/de/advisor), das ein zweites Modell zu Schlüsselmomenten während einer Aufgabe konsultiert. Akzeptiert `fable`, `opus`, `sonnet` oder eine vollständige Modell-ID. `fable` erfordert [Fable-Zugriff](/docs/de/advisor#choose-an-advisor-model). Ohne Argument öffnet sich eine Auswahl. In einer Sitzung ohne interaktives Terminal oder über [Remote Control](/docs/de/remote-control#limitations) übergeben Sie das Modell oder `off` als Argument; ohne Argument dort druckt der Befehl den aktuellen Advisor als Text. Diese Formen erfordern Claude Code v2.1.260 oder später |57| `/advisor [model\|off]` | Aktivieren oder deaktivieren Sie das [Advisor-Tool](/docs/de/advisor), das ein zweites Modell zu Schlüsselmomenten während einer Aufgabe zu Rate zieht. Akzeptiert `fable`, `opus`, `sonnet` oder eine vollständige Modell-ID. `fable` erfordert [Fable-Zugriff](/docs/de/advisor#choose-an-advisor-model). Ohne Argument öffnet sich eine Auswahl. In einer Sitzung ohne interaktives Terminal oder über [Remote Control](/docs/de/remote-control#limitations) übergeben Sie das Modell oder `off` als Argument; ohne Argument dort gibt der Befehl den aktuellen Advisor als Text aus. Diese Formen erfordern Claude Code v2.1.260 oder später |

58| `/agents` | Ab v2.1.198 druckt das Ausführen von `/agents` eine Erinnerung aus, Claude zu bitten, [Subagenten](/docs/de/sub-agents) zu erstellen oder zu verwalten, oder `.claude/agents/` oder `~/.claude/agents/` direkt zu bearbeiten. In v2.1.197 und früher öffnet sich eine interaktive Schnittstelle zum Erstellen und Verwalten von Subagenten-Konfigurationen |58| `/agents` | Ab v2.1.198 gibt die Ausführung von `/agents` eine Erinnerung aus, Claude zu bitten, [Subagenten](/docs/de/sub-agents) zu erstellen oder zu verwalten, oder `.claude/agents/` oder `~/.claude/agents/` direkt zu bearbeiten. In v2.1.197 und früher öffnet sich eine interaktive Schnittstelle zum Erstellen und Verwalten von Subagenten-Konfigurationen |

59| `/artifact-capabilities` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie die Referenz für die Laufzeit-Funktionen, die ein veröffentlichtes [Artefakt](/docs/de/artifacts) verwenden kann, wie z. B. [Aufrufen Ihrer Connectors](/docs/de/artifacts#pull-live-data-with-mcp-connectors) oder [Anbieten eines Datei-Downloads](/docs/de/artifacts#offer-a-file-download), einschließlich derjenigen, auf die Ihr Konto Zugriff hat. Claude lädt es normalerweise von selbst, bevor eine Seite erstellt wird, die eines verwendet. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind |59| `/artifact-capabilities` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie die Referenz für die Laufzeitfunktionen, die ein veröffentlichtes [Artefakt](/docs/de/artifacts) verwenden kann, wie z. B. [Aufrufen Ihrer Connectors](/docs/de/artifacts#pull-live-data-with-mcp-connectors) oder [Angebot eines Datei-Downloads](/docs/de/artifacts#offer-a-file-download), einschließlich derjenigen, auf die Ihr Konto Zugriff hat. Claude lädt es normalerweise von selbst, bevor eine Seite erstellt wird, die eines verwendet. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind |

60| `/artifact-diagramming` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie Diagramm-Anleitung für Claude, um in [Artefakten](/docs/de/artifacts) zu folgen: wann ein Diagramm hilft, was zu zeichnen ist und wie man Inline-SVG schreibt, das in hellen und dunklen Designs lesbar bleibt. Erfordert Claude Code v2.1.221 oder später |60| `/artifact-diagramming` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie Diagramm-Richtlinien für Claude, um sie in [Artefakten](/docs/de/artifacts) zu befolgen: wann ein Diagramm hilft, was zu zeichnen ist und wie man Inline-SVG schreibt, das in hellen und dunklen Designs lesbar bleibt. Erfordert Claude Code v2.1.221 oder später |

61| `/artifacts` | Listet die [Artefakte](/docs/de/artifacts#find-an-artifact-again) auf, die Sie besitzen oder die mit Ihnen geteilt werden, und fügen Sie dann eines an die Sitzung an, öffnen Sie es in Ihrem Browser oder kopieren Sie seinen Link. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind. Erfordert Claude Code v2.1.208 oder später; das Anhängen mit `Enter` erfordert v2.1.216 |61| `/artifacts` | Listen Sie die [Artefakte](/docs/de/artifacts#find-an-artifact-again) auf, die Sie besitzen oder die mit Ihnen geteilt werden, und fügen Sie dann eines an die Sitzung an, öffnen Sie es in Ihrem Browser oder kopieren Sie seinen Link. Verfügbar, wo [Artefakte](/docs/de/artifacts#availability) verfügbar sind. Erfordert Claude Code v2.1.208 oder später; das Anhängen mit `Enter` erfordert v2.1.216 |

62| `/auto-mode-setup` | [Entwurf `autoMode.environment`-Einträge](/docs/de/auto-mode-config#generate-environment-entries) aus Ihrem Projekt und kürzlichen Sitzungen, überprüfen Sie dann den Entwurf und speichern Sie ihn in Ihren Benutzereinstellungen. Erfordert einen Pro-, Max- oder Team-Plan und Claude Code v2.1.228 oder später. Unter nativem Windows erfordert v2.1.233 oder später |62| `/auto-mode-setup` | [Entwurf `autoMode.environment` Einträge](/docs/de/auto-mode-config#generate-environment-entries) aus Ihrem Projekt und kürzlichen Sitzungen, überprüfen Sie dann den Entwurf und speichern Sie ihn in Ihren Benutzereinstellungen. Erfordert einen Pro-, Max- oder Team-Plan und Claude Code v2.1.228 oder später. Unter nativem Windows erfordert v2.1.233 oder später |

63| `/autocompact [auto\|<tokens>]` | Legen Sie das Auto-Compact-Fenster fest: wie voll das Kontextfenster wird, bevor Claude Code automatisch komprimiert. Übergeben Sie eine Größe wie `500k` oder `auto`, um zum für Ihr Modell optimierten Fenster zurückzukehren. Claude Code speichert den Wert in den Benutzereinstellungen und wendet ihn auf die aktuelle Sitzung an. Siehe [Auto-Compact-Fenster einstellen](/docs/de/model-config#set-the-auto-compact-window) für akzeptierte Werte und was es überschreibt. Ohne Argument öffnet sich ein Dialog, der das aktuelle Fenster anzeigt. Erfordert Claude Code v2.1.221 oder später |63| `/autocompact [auto\|<tokens>]` | Legen Sie das Auto-Compact-Fenster fest: wie voll das Kontextfenster wird, bevor Claude Code automatisch komprimiert. Übergeben Sie eine Größe wie `500k` oder `auto`, um zum für Ihr Modell optimierten Fenster zurückzukehren. Claude Code speichert den Wert in den Benutzereinstellungen und wendet ihn auf die aktuelle Sitzung an. Siehe [Auto-Compact-Fenster einstellen](/docs/de/model-config#set-the-auto-compact-window) für akzeptierte Werte und was es überschreibt. Ohne Argument öffnet sich ein Dialog, der das aktuelle Fenster anzeigt. Erfordert Claude Code v2.1.221 oder später |

64| `/autofix-pr [prompt]` | Starten Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web#auto-fix-pull-requests), die den PR des aktuellen Branches überwacht und Fixes pusht, wenn CI fehlschlägt oder Reviewer Kommentare hinterlassen. Erkennt den offenen PR aus Ihrem ausgecheckten Branch mit `gh pr view`; um einen anderen PR zu überwachen, checken Sie zuerst seinen Branch aus. Standardmäßig wird der Cloud-Sitzung mitgeteilt, jeden CI-Fehler und Review-Kommentar zu beheben; übergeben Sie einen Prompt, um ihr andere Anweisungen zu geben, z. B. `/autofix-pr only fix lint and type errors`. Erfordert die `gh`-CLI und Zugriff auf [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) |64| `/autofix-pr [prompt]` | Starten Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web#auto-fix-pull-requests), die den PR des aktuellen Branches überwacht und Fixes pusht, wenn CI fehlschlägt oder Reviewer Kommentare hinterlassen. Erkennt den offenen PR aus Ihrem ausgecheckten Branch mit `gh pr view`; um einen anderen PR zu überwachen, checken Sie zuerst seinen Branch aus. Standardmäßig wird der Cloud-Sitzung mitgeteilt, jeden CI-Fehler und Review-Kommentar zu beheben; übergeben Sie einen Prompt, um ihr andere Anweisungen zu geben, z. B. `/autofix-pr only fix lint and type errors`. Erfordert die `gh` CLI und Zugriff auf [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) |

65| `/background [prompt]` | Trennen Sie die aktuelle Sitzung, um als [Hintergrund-Agent](/docs/de/agent-view) zu laufen und dieses Terminal freizugeben. Übergeben Sie einen Prompt, um eine weitere Anweisung zu senden, bevor Sie trennen. Überwachen Sie die Sitzung mit `claude agents`. Um die Konversation in eine neue Hintergrund-Sitzung zu kopieren, während diese weiterläuft, verwenden Sie `/fork`. Alias: `/bg` |65| `/background [prompt]` | Trennen Sie die aktuelle Sitzung, um als [Hintergrund-Agent](/docs/de/agent-view) zu laufen und dieses Terminal freizugeben. Übergeben Sie einen Prompt, um eine weitere Anweisung zu senden, bevor Sie trennen. Überwachen Sie die Sitzung mit `claude agents`. Um die Konversation in eine neue Hintergrund-Sitzung zu kopieren, während diese weiterläuft, verwenden Sie `/fork`. Alias: `/bg` |

66| `/batch <instruction>` | **[Skill](/docs/de/skills#bundled-skills).** Orchestrieren Sie großflächige Änderungen über eine Codebasis parallel. Recherchiert die Codebasis, zerlegt die Arbeit in 5 bis 30 unabhängige Einheiten und präsentiert einen Plan. Nach Genehmigung startet es einen [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) pro Einheit in einem isolierten [Worktree](/docs/de/worktrees). Jeder Subagent implementiert seine Einheit, führt Tests aus und veröffentlicht seine Änderung. Erfordert ein Git-Repository oder einen [`WorktreeCreate`-Hook](/docs/de/worktrees#non-git-version-control), der die Worktrees erstellt. Außerhalb eines Git-Repositorys erfordert `/batch` Claude Code v2.1.281 oder später. Beispiel: `/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/de/skills#bundled-skills).** Orchestrieren Sie großflächige Änderungen über eine Codebasis parallel. Recherchiert die Codebasis, zerlegt die Arbeit in 5 bis 30 unabhängige Einheiten und präsentiert einen Plan. Nach Genehmigung startet es einen [Hintergrund-Subagenten](/docs/de/sub-agents#run-subagents-in-foreground-or-background) pro Einheit in einem isolierten [Worktree](/docs/de/worktrees). Jeder Subagent implementiert seine Einheit, führt Tests aus und veröffentlicht seine Änderung. Erfordert ein Git-Repository oder einen [`WorktreeCreate` Hook](/docs/de/worktrees#non-git-version-control), der die Worktrees erstellt. Außerhalb eines Git-Repositories erfordert `/batch` Claude Code v2.1.281 oder später. Beispiel: `/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | Erstellen Sie einen Branch der aktuellen Konversation an diesem Punkt, damit Sie eine andere Richtung versuchen können, ohne die Konversation zu verlieren. Wechselt Sie in den Branch und bewahrt das Original, zu dem Sie mit `/resume` zurückkehren können. Um eine Kopie stattdessen als separate [Hintergrund-Sitzung](/docs/de/agent-view) auszuführen, verwenden Sie `/fork`; um eine Seitenaufgabe an einen [Subagenten](/docs/de/sub-agents) zu übergeben, der in diese Konversation zurückberichtet, verwenden Sie `/subtask` |67| `/branch [name]` | Erstellen Sie einen Branch der aktuellen Konversation an diesem Punkt, damit Sie eine andere Richtung versuchen können, ohne die Konversation zu verlieren. Wechselt Sie in den Branch und bewahrt das Original, zu dem Sie mit `/resume` zurückkehren können. Um eine Kopie stattdessen als separate [Hintergrund-Sitzung](/docs/de/agent-view) auszuführen, verwenden Sie `/fork`; um eine Nebenaufgabe an einen [Subagenten](/docs/de/sub-agents) zu übergeben, der in diese Konversation zurückberichtet, verwenden Sie `/subtask` |

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

69| `/bug [report]` | Melden Sie einen Fehler oder teilen Sie Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einzubeziehen ist, und bestätigen auf einem Zustimmungsbildschirm, bevor etwas gesendet wird. Wenn Sie bei Anthropic auf einer First-Party-Verbindung angemeldet sind, geht der Bericht an Anthropic; bei einem Drittanbieter oder ohne Anthropic-Anmeldedaten schreibt Claude Code den Bericht in ein [lokales Archiv unter `~/.claude/feedback-bundles/`](/docs/de/data-usage#telemetry-services), das Sie selbst weiterleiten. In der [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) öffnet `/bug` stattdessen den eigenen Feedback-Dialog der Erweiterung; erfordert Claude Code v2.1.229 oder später. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort. Vor v2.1.232 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |69| `/bug [report]` | Melden Sie einen Bug oder teilen Sie Ihre Konversation. Sie wählen, wie viel Sitzungsverlauf einzubeziehen ist, und bestätigen auf einem Zustimmungsbildschirm, bevor etwas gesendet wird. Wenn Sie bei einer Anthropic-Verbindung von Anthropic angemeldet sind, geht der Bericht an Anthropic; bei einem Drittanbieter oder ohne Anthropic-Anmeldedaten schreibt Claude Code den Bericht in ein [lokales Archiv unter `~/.claude/feedback-bundles/`](/docs/de/data-usage#telemetry-services), das Sie selbst weiterleiten. In der [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) öffnet `/bug` stattdessen den eigenen Feedback-Dialog der Erweiterung; erfordert Claude Code v2.1.229 oder später. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort. Vor v2.1.232 wartete Claude Code mit dem Befehl, bis die Runde beendet war. Alias: `/share`. Vor v2.1.212 waren `/bug` und `/share` Aliase von `/feedback` |

70| `/cd <path>` | Verschieben Sie diese Sitzung in ein neues Arbeitsverzeichnis und behalten Sie die Konversation. Geben Sie einen teilweisen Pfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die Vorschläge erfordern Claude Code v2.1.206 oder später. Für das, was Claude Code aus dem neuen Verzeichnis sofort anwendet, wenn Sie sich verschieben, und wie sich `/cd` von `/add-dir` unterscheidet, siehe [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Verschieben Sie diese Sitzung in ein neues Arbeitsverzeichnis und behalten Sie die Konversation. Geben Sie einen Teilpfad ein, um passende Verzeichnisvorschläge zu sehen; drücken Sie `Tab`, um einen zu akzeptieren. Die Vorschläge erfordern Claude Code v2.1.206 oder später. Für das, was Claude Code aus dem neuen Verzeichnis sofort anwendet, wenn Sie sich verschieben, und wie sich `/cd` von `/add-dir` unterscheidet, siehe [Sitzung in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) |

71| `/chrome` | Konfigurieren Sie [Claude in Chrome](/docs/de/chrome)-Einstellungen |71| `/chrome` | Konfigurieren Sie [Claude in Chrome](/docs/de/chrome) Einstellungen |

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

73| `/claude-in-chrome [task]` | **[Skill](/docs/de/skills#bundled-skills).** Lassen Sie Claude eine Aufgabe in Ihrem Browser ausführen, wie z. B. das Testen einer Seite, das Ausfüllen eines Formulars oder das Lesen von Konsolenprotokollen, über [Claude in Chrome](/docs/de/chrome). Verfügbar, wenn Chrome-Integration für die Sitzung aktiviert ist, z. B. mit `claude --chrome`, oder wenn Claude Code anbieten kann, die [Erweiterung zu installieren](/docs/de/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/de/skills#bundled-skills).** Lassen Sie Claude eine Aufgabe in Ihrem Browser ausführen, wie z. B. das Testen einer Seite, das Ausfüllen eines Formulars oder das Lesen von Konsolenprotokollen, über [Claude in Chrome](/docs/de/chrome). Verfügbar, wenn die Chrome-Integration für die Sitzung aktiviert ist, z. B. mit `claude --chrome`, oder wenn Claude Code anbieten kann, die [Erweiterung zu installieren](/docs/de/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Starten Sie eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume`-Auswahl zu kennzeichnen. Um Kontext freizugeben und gleichzeitig die gleiche Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort, oder stellen Sie sie in demselben Claude Code-Prozess wieder her, aus [dem Rewind-Menü-Eintrag der vorherigen Sitzung](/docs/de/checkpointing#rewind-past-a-cleared-conversation). Aliase: `/reset`, `/new` |74| `/clear [name]` | Starten Sie eine neue Konversation mit leerem Kontext. Übergeben Sie einen Namen, um die vorherige Konversation in der `/resume` Auswahl zu kennzeichnen. Um Kontext freizugeben und gleichzeitig die gleiche Konversation fortzusetzen, verwenden Sie stattdessen `/compact`. Setzen Sie die vorherige Konversation mit `/resume` fort, oder stellen Sie sie in demselben Claude Code-Prozess aus [dem Rewind-Menü-Eintrag der vorherigen Sitzung](/docs/de/checkpointing#rewind-past-a-cleared-conversation) wieder her. Aliase: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, auf Korrektheitsfehler. Je nach Ihrem Modell und Aufwandsebene deckt die Überprüfung auch Bereinigungsmöglichkeiten ab. Übergeben Sie `--fix`, um Erkenntnisse anzuwenden, `--comment`, um sie auf dem GitHub PR oder GitLab Merge Request zu posten, oder `ultra`, um eine tiefe [Cloud-Überprüfung](/docs/de/ultrareview) auszuführen. Das Posten auf einem GitLab Merge Request erfordert Claude Code v2.1.257 oder später. Mit `ultra` auf einem `github.com`-PR-Ziel übergeben Sie `--post`, um [das Posten der fertigen Erkenntnisse zum PR](/docs/de/ultrareview#post-findings-to-the-pull-request) im Launch-Dialog vorzuwählen; `--post` erfordert Claude Code v2.1.227 oder später. Siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die Aufwandsebenen, Zielbestimmung und wie es sich auf `/simplify` bezieht. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, auf Korrektheitsfehler. Je nach Ihrem Modell und Aufwandsniveau deckt die Überprüfung auch Bereinigungsmöglichkeiten ab. Übergeben Sie `--fix`, um Erkenntnisse anzuwenden, `--comment`, um sie auf dem GitHub PR oder GitLab Merge Request zu posten, oder `ultra`, um eine tiefe [Cloud-Überprüfung](/docs/de/ultrareview) auszuführen. Das Posten auf einem GitLab Merge Request erfordert Claude Code v2.1.257 oder später. Mit `ultra` auf einem `github.com` PR-Ziel übergeben Sie `--post`, um [das Posten der fertigen Erkenntnisse auf dem PR](/docs/de/ultrareview#post-findings-to-the-pull-request) im Startdialog vorzuwählen; `--post` erfordert Claude Code v2.1.227 oder später. Siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die Aufwandsstufen, Zielbestimmung und wie es sich auf `/simplify` bezieht. Alias: `/review` |

76| `/color [color\|default]` | Legen Sie die Farbe der Eingabeaufforderungsleiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default`, um zurückzusetzen, oder führen Sie ohne Argument aus, um eine zufällige Farbe zu wählen. Wenn [Remote Control](/docs/de/remote-control) verbunden ist, wird die Farbe mit claude.ai/code synchronisiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später |76| `/color [color\|default]` | Legen Sie die Farbe der Eingabeaufforderungsleiste für die aktuelle Sitzung fest. Verfügbare Farben: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Verwenden Sie `default`, um zurückzusetzen, oder führen Sie ohne Argument aus, um eine zufällige Farbe zu wählen. Wenn [Remote Control](/docs/de/remote-control) verbunden ist, wird die Farbe mit claude.ai/code synchronisiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später |

77| `/compact [instructions]` | Geben Sie Kontext frei, indem Sie die bisherige Konversation zusammenfassen. Übergeben Sie optional Fokusanweisungen für die Zusammenfassung. Siehe [wie Komprimierung Regeln, Skills und Memory-Dateien handhabt](/docs/de/context-window#what-survives-compaction) |77| `/compact [instructions]` | Geben Sie Kontext frei, indem Sie die bisherige Konversation zusammenfassen. Übergeben Sie optional Fokusanweisungen für die Zusammenfassung. Siehe [wie Komprimierung Regeln, Skills und Memory-Dateien handhabt](/docs/de/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Öffnen Sie die [Einstellungen](/docs/de/settings)-Schnittstelle, um Design, Modell, [Ausgabestil](/docs/de/output-styles) und andere Voreinstellungen anzupassen. Übergeben Sie ein oder mehrere `key=value`-Paare, um eine Einstellung direkt festzulegen, ohne die Schnittstelle zu öffnen, z. B. `/config thinking=false`, `/config theme=dark` oder `/config model=sonnet`. Das `key=value`-Formular funktioniert auch im nicht-interaktiven Modus (`-p`) und aus der Claude Mobile App über [Remote Control](/docs/de/remote-control). Das `key=value`-Formular kann eine Einstellung, die Ihre Bestätigung im Panel benötigt, nicht aktivieren, wie z. B. [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann sie aber deaktivieren. Führen Sie `/config --help` aus, um die Schlüssel aufzulisten, die es akzeptiert. Alias: `/settings` |78| `/config [key=value ...]` | Öffnen Sie die [Einstellungen](/docs/de/settings) Schnittstelle, um Design, Modell, [Ausgabestil](/docs/de/output-styles) und andere Voreinstellungen anzupassen. Übergeben Sie ein oder mehrere `key=value` Paare, um eine Einstellung direkt ohne Öffnen der Schnittstelle zu setzen, z. B. `/config thinking=false`, `/config theme=dark` oder `/config model=sonnet`. Das `key=value` Formular funktioniert auch im nicht-interaktiven Modus (`-p`) und aus der Claude Mobile App über [Remote Control](/docs/de/remote-control). Das `key=value` Formular kann eine Einstellung, die Ihre Bestätigung im Panel benötigt, nicht aktivieren, wie z. B. [`autoContinueAtUsageLimit`](/docs/de/interactive-mode#turn-automatic-continue-off), kann sie aber ausschalten. Führen Sie `/config --help` aus, um die Schlüssel aufzulisten, die es akzeptiert. Alias: `/settings` |

79| `/context [all]` | Visualisieren Sie die aktuelle Kontextnutzung als farbiges Gitter. Zeigt Optimierungsvorschläge für kontextintensive Tools, Memory-Überfluss 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 sind und welcher Befehl Platz freimacht. Im [Vollbildmodus](/docs/de/fullscreen) bricht `/context` die Aufschlüsselung pro Element zusammen, um das Gitter sichtbar zu halten. Übergeben Sie `all`, um es zu erweitern |79| `/context [all]` | Visualisieren Sie die aktuelle Kontextnutzung als farbiges Gitter. Zeigt Optimierungsvorschläge für kontextintensive Tools, Memory-Übergewicht 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 über dem Limit Sie sind und welcher Befehl Platz freimacht. Im [Vollbildmodus](/docs/de/fullscreen) bricht `/context` die Aufschlüsselung pro Element zusammen, um das Gitter sichtbar zu halten. Übergeben Sie `all`, um es zu erweitern |

80| `/copy [N]` | Kopieren Sie die letzte Antwort des Assistenten in die Zwischenablage. Übergeben Sie eine Nummer `N`, um die N-te letzte Antwort zu kopieren: `/copy 2` kopiert die vorletzte. Wenn Code-Blöcke vorhanden sind, zeigt sich eine interaktive Auswahl, um einzelne Blöcke oder die vollständige Antwort auszuwählen. Drücken Sie `w` in der Auswahl, um die Auswahl stattdessen in eine Datei zu schreiben, anstatt in die Zwischenablage, was über SSH nützlich ist |80| `/copy [N]` | Kopieren Sie die letzte Antwort des Assistenten in die Zwischenablage. Übergeben Sie eine Nummer `N`, um die N-te letzte Antwort zu kopieren: `/copy 2` kopiert die vorletzte. Wenn Code-Blöcke vorhanden sind, zeigt sich eine interaktive Auswahl, um einzelne Blöcke oder die vollständige Antwort auszuwählen. Drücken Sie `w` in der Auswahl, um die Auswahl stattdessen 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).** Designanleitung für Diagramme, Grafiken und Dashboards. Claude wählt die Diagrammform für die Daten, weist Farbe nach Rolle zu, validiert die Palette auf Farbenblindheit-Sicherheit und Kontrast mit einem gebündelten Skript und wendet Mark-, Interaktions- und Barrierefreiheitsregeln an. Verwendet eine markenfreie Platzhalterpalette, die Sie durch Ihre eigene ersetzen. Erfordert Claude Code v2.1.198 oder später |82| `/dataviz [request]` | **[Skill](/docs/de/skills#bundled-skills).** Designanleitung für Diagramme, Grafiken und Dashboards. Claude wählt die Diagrammform für die Daten, weist Farbe nach Rolle zu, validiert die Palette auf Farbenblindheit-Sicherheit und Kontrast mit einem gebündelten Skript und wendet Markierungs-, Interaktions- und Barrierefreiheitsregeln an. Verwendet eine markenfreie Platzhalterpalette, die Sie durch Ihre eigene ersetzen. Erfordert Claude Code v2.1.198 oder später |

83| `/debug [description]` | **[Skill](/docs/de/skills#bundled-skills).** Aktivieren Sie Debug-Protokollierung für die aktuelle Sitzung und beheben Sie Probleme durch Lesen des Sitzungs-Debug-Protokolls. Debug-Protokollierung ist standardmäßig deaktiviert, es sei denn, Sie haben mit `claude --debug` gestartet, daher startet das Ausführen von `/debug` in der Mitte der Sitzung die Erfassung von Protokollen ab diesem Punkt. Beschreiben Sie optional das Problem, um die Analyse zu fokussieren |83| `/debug [description]` | **[Skill](/docs/de/skills#bundled-skills).** Aktivieren Sie Debug-Protokollierung für die aktuelle Sitzung und beheben Sie Probleme durch Lesen des Sitzungs-Debug-Protokolls. Debug-Protokollierung ist standardmäßig deaktiviert, es sei denn, Sie haben mit `claude --debug` gestartet, daher startet die Ausführung von `/debug` in der Mitte der Sitzung die Erfassung von Protokollen von diesem Punkt an. Beschreiben Sie optional das Problem, um die Analyse zu fokussieren |

84| `/deep-research <question>` | **[Workflow](/docs/de/workflows#bundled-workflows).** Verteilen Sie Web-Suchen zu einer Frage, rufen Sie Quellen ab und überprüfen Sie sie, und synthetisieren Sie einen zitierten Bericht |84| `/deep-research <question>` | **[Workflow](/docs/de/workflows#bundled-workflows).** Verteilen Sie Web-Suchen zu einer Frage, rufen Sie Quellen ab und überprüfen Sie sie, und synthetisieren Sie einen zitierten Bericht |

85| `/design [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Entwerfen Sie UI-Mockups, Screen-Flows, Landing Pages oder Poster als Artboards auf einer Leinwand, veröffentlicht als Claude Design-[Artefakt](/docs/de/artifacts#draft-a-design-canvas), z. B. `/design a settings screen for a mobile banking app`. Sie bearbeiten die Artboards in einem Desktop-Browser, und Ihre Änderungen werden automatisch gespeichert. Sie können jedes Artboard als PNG oder PDF exportieren. Erfordert Claude Code v2.1.265 oder später, eine Sitzung, in der [Artefakte verfügbar](/docs/de/artifacts#availability) sind, und ein Konto, auf dem die [Design-Vorlage verfügbar](/docs/de/artifacts#start-from-a-slides-design-or-docs-template) ist; wenn Ihre Organisation diese Vorlage ausgeschaltet hat, wird `/design` keine Designs entwerfen. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |85| `/design [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Entwerfen Sie UI-Mockups, Bildschirmabläufe, Landing Pages oder Poster als Artboards auf einer Leinwand, veröffentlicht als Claude Design [Artefakt](/docs/de/artifacts#draft-a-design-canvas), z. B. `/design a settings screen for a mobile banking app`. Sie bearbeiten die Artboards in einem Desktop-Browser und Ihre Änderungen werden automatisch gespeichert. Sie können jedes Artboard als PNG oder PDF exportieren. Erfordert Claude Code v2.1.265 oder später, eine Sitzung, in der [Artefakte verfügbar sind](/docs/de/artifacts#availability), und ein Konto, in dem die [Design-Vorlage verfügbar ist](/docs/de/artifacts#start-from-a-slides-design-or-docs-template); wenn Ihre Organisation diese Vorlage deaktiviert hat, ist `/design` dort nicht verfügbar. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |

86| `/design-login` | Autorisieren Sie Design-System-Zugriff für `/design-sync` mit Ihrem claude.ai-Konto |86| `/design-login` | Autorisieren Sie Design-System-Zugriff für `/design-sync` mit Ihrem claude.ai-Konto |

87| `/design-sync [hint]` | **[Skill](/docs/de/skills#bundled-skills).** Konvertieren Sie das React-Design-System Ihres Repos und laden Sie es zu [Claude Design](https://claude.ai/design) hoch, damit die Designs, die es produziert, Ihre echten Komponenten verwenden. Benennen Sie optional das Design-System, z. B. `/design-sync Acme DS`. Eine erste Synchronisierung überprüft jede Komponente und kann auf einem großen Repo mehrere Stunden dauern. Verfügbar auf der Anthropic API. Es benötigt claude.ai, das die CLI nicht auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS kontaktiert, oder durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations), daher ist der Befehl dort nicht verfügbar |87| `/design-sync [hint]` | **[Skill](/docs/de/skills#bundled-skills).** Konvertieren Sie das React-Design-System Ihres Repos und laden Sie es auf [Claude Design](https://claude.ai/design) hoch, damit die Designs, die es produziert, Ihre echten Komponenten verwenden. Benennen Sie optional das Design-System, z. B. `/design-sync Acme DS`. Eine erste Synchronisierung überprüft jede Komponente und kann auf einem großen Repo mehrere Stunden dauern. Verfügbar auf der Anthropic API. Es benötigt claude.ai, das die CLI nicht auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS oder über ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations) kontaktiert, daher ist der Befehl dort nicht verfügbar |

88| `/desktop` | Setzen Sie die aktuelle Sitzung in der Claude Code Desktop-App fort. Erfordert macOS oder x64 Windows und ein Claude-Abonnement. Alias: `/app` |88| `/desktop` | Setzen Sie die aktuelle Sitzung in der Claude Code Desktop-App fort. Erfordert macOS oder x64 Windows und ein Claude-Abonnement. Alias: `/app` |

89| `/diff` | Überprüfen Sie die Änderungen in Ihrem Arbeitsbaum, einschließlich der Änderungen, die Claude bisher vorgenommen hat. Siehe [Änderungen mit /diff überprüfen](/docs/de/interactive-mode#review-changes-with-%2Fdiff) |89| `/diff` | Überprüfen Sie die Änderungen in Ihrem Arbeitsbaum, einschließlich der bisherigen Änderungen von Claude. Siehe [Änderungen mit /diff überprüfen](/docs/de/interactive-mode#review-changes-with-%2Fdiff) |

90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/de/skills#bundled-skills).** Führen Sie eine Setup-Überprüfung aus, die Probleme diagnostiziert und beheben kann. Überprüft die Installationsintegrität, einschließlich doppelter oder verbleibender Installationen, `PATH`-Problemen und nicht analysierbaren Einstellungsdateien. Findet ungenutzte Skills, MCP-Server und Plugins im Vergleich zu ihren Kontextkosten, kennzeichnet langsame [Hooks](/docs/de/hooks) und überprüft auf eine neuere Version auf Ihrem [Release-Kanal](/docs/de/setup#configure-release-channel). Dedupliziert lokale `CLAUDE.md`-Dateien gegen eingecheckte, trimmt eingecheckte [`CLAUDE.md`](/docs/de/memory#my-claude-md-is-too-large)-Dateien, indem Inhalte gekürzt werden, die Claude aus der Codebasis ableiten könnte, und migriert die immer geladene Anleitung, die bleibt, in [Skills](/docs/de/skills) und verschachtelte `CLAUDE.md`-Dateien, die bei Bedarf geladen werden. Bietet auch an, [Auto-Modus](/docs/de/permissions#permission-modes) zu Ihrem Standard zu machen und häufig abgelehnte schreibgeschützte Befehle [vorab zu genehmigen](/docs/de/permissions). Meldet Erkenntnisse zuerst und fragt um Bestätigung, bevor etwas geändert wird. Vom Terminal aus druckt `claude doctor` schreibgeschützte Installationsdiagnostiken, ohne eine Sitzung zu starten. Alias: `/checkup`. Führen Sie `/doctor prompt-audit` aus, um Claude [Ihre `CLAUDE.md`-Dateien, Skills und andere Konfiguration](/docs/de/memory#audit-your-instruction-files) auf veraltete oder widersprüchliche Anweisungen zu überprüfen, anstatt die Überprüfung auszuführen. Der Subbefehl `prompt-audit` erfordert Claude Code v2.1.283 oder später. Die `CLAUDE.md`-Trimm-Überprüfung erfordert Claude Code v2.1.206 oder später. Vor v2.1.205 öffnete `/doctor` einen schreibgeschützten Diagnose-Bildschirm und das Drücken von `f` sendete den Bericht an Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/de/skills#bundled-skills).** Führen Sie eine Setup-Überprüfung aus, die Probleme diagnostiziert und beheben kann. Überprüft die Installationsintegrität, einschließlich doppelter oder verbleibender Installationen, `PATH` Probleme und nicht analysierbare Einstellungsdateien. Findet ungenutzte Skills, MCP-Server und Plugins im Vergleich zu ihren Kontextkosten, kennzeichnet langsame [Hooks](/docs/de/hooks) und prüft auf eine neuere Version auf Ihrem [Release-Kanal](/docs/de/setup#configure-release-channel). Dedupliziert lokale `CLAUDE.md` Dateien gegen eingecheckte, trimmt eingecheckte [`CLAUDE.md`](/docs/de/memory#my-claude-md-is-too-large) Dateien durch Schneiden von Inhalten, die Claude aus der Codebasis ableiten könnte, und migriert die immer geladene Anleitung, die bleibt, in [Skills](/docs/de/skills) und verschachtelte `CLAUDE.md` Dateien, die bei Bedarf geladen werden. Bietet auch an, [Auto-Modus](/docs/de/permissions#permission-modes) zu Ihrem Standard zu machen und häufig abgelehnte schreibgeschützte Befehle [vorab zu genehmigen](/docs/de/permissions). Meldet Erkenntnisse zuerst und fragt um Bestätigung, bevor etwas geändert wird. Vom Terminal gibt `claude doctor` schreibgeschützte Installationsdiagnostiken aus, ohne eine Sitzung zu starten. Alias: `/checkup`. Führen Sie `/doctor prompt-audit` aus, um Claude [Ihre `CLAUDE.md` Dateien, Skills und andere Konfiguration](/docs/de/memory#audit-your-instruction-files) auf veraltete oder widersprüchliche Anweisungen zu überprüfen, anstatt die Überprüfung auszuführen. Der `prompt-audit` Unterbefehl erfordert Claude Code v2.1.283 oder später. Die `CLAUDE.md` Trim-Überprüfung erfordert Claude Code v2.1.206 oder später. Vor v2.1.205 öffnete `/doctor` einen schreibgeschützten Diagnosebildschirm und das Drücken von `f` sendete den Bericht an Claude |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Legen Sie die [Aufwandsebene](/docs/de/model-config#adjust-effort-level) fest: `low` bis `xhigh`, `max` oder `auto`; `status` druckt sie. `ultracode` oder `ultracode on` schaltet [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) für die Sitzung auf der aktuellen Ebene ein, und `ultracode off` schaltet es aus; der [`ultracode`](/docs/de/settings-reference#ultracode)-Schlüssel bleibt bestehen. `max` ist nur für Sitzungen. Die `on`- und `off`-Argumente und das Beibehalten der aktuellen Ebene erfordern Claude Code v2.1.284 oder später. Vor v2.1.284 setzte `/effort ultracode` die Sitzung auf `xhigh`, und `/effort ultracode off` schlug mit `Invalid argument` fehl. Führen Sie ihn aus, während Claude antwortet, und sobald Sie die [Cache-Warnung](/docs/de/prompt-caching#changing-effort-level) bestätigen, wenn Claude Code eine anzeigt, wendet Claude Code die neue Ebene auf die nächste Anfrage in dieser Runde an. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder in der Warteschlange bis zum Ende der Runde ausgeführt werden sollte, und stellte ihn immer in die Warteschlange in einer Sitzung, die [Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), wie auf einem [Drittanbieter](/docs/de/third-party-integrations). Funktioniert in `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Legen Sie die [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) fest: `low` bis `xhigh`, `max` oder `auto`; `status` gibt sie aus. `ultracode` oder `ultracode on` schaltet [ultracode](/docs/de/workflows#let-claude-decide-with-ultracode) für die Sitzung auf der aktuellen Stufe ein, und `ultracode off` schaltet es aus; der [`ultracode`](/docs/de/settings-reference#ultracode) Schlüssel bleibt erhalten. `max` ist nur für die Sitzung. Die `on` und `off` Argumente und das Beibehalten der aktuellen Stufe erfordern Claude Code v2.1.284 oder später. Vor v2.1.284 setzte `/effort ultracode` die Sitzung auf `xhigh` und `/effort ultracode off` schlug mit `Invalid argument` fehl. Führen Sie es aus, während Claude antwortet, und sobald Sie die [Cache-Warnung](/docs/de/prompt-caching#changing-effort-level) bestätigen, wenn Claude Code eine anzeigt, wendet Claude Code die neue Stufe auf die nächste Anfrage in dieser Runde an. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder bis zum Ende der Runde ausgeführt werden sollte, und wartete immer in einer Sitzung, die keine [Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), wie auf einem [Drittanbieter](/docs/de/third-party-integrations). Funktioniert in `-p` |

92| `/exit` | Beenden Sie die CLI. In einer angehängten [Hintergrund-Sitzung](/docs/de/agent-view#attach-to-a-session) trennt dies ab und die Sitzung läuft weiter. Alias: `/quit` |92| `/exit` | Beenden Sie die CLI. In einer angehängten [Hintergrund-Sitzung](/docs/de/agent-view#attach-to-a-session) trennt dies ab und die Sitzung läuft weiter. Alias: `/quit` |

93| `/export [filename]` | Exportieren Sie die aktuelle Konversation als Klartext. Mit einem Dateinamen schreibt direkt in diese Datei. Ohne öffnet einen Dialog zum Kopieren in die Zwischenablage oder Speichern in einer Datei |93| `/export [filename]` | Exportieren Sie die aktuelle Konversation als Klartext. Mit einem Dateinamen schreibt direkt in diese Datei. Ohne öffnet einen Dialog zum Kopieren in die Zwischenablage oder Speichern in einer Datei |

94| `/fast [on\|off]` | Schalten Sie [Schnellmodus](/docs/de/fast-mode) ein oder aus. Führen Sie ihn aus, während Claude antwortet, und Claude Code schaltet den Schnellmodus um, ohne auf das Ende der Runde zu warten, obwohl die laufende Runde mit ihrer ursprünglichen Geschwindigkeit endet. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder in der Warteschlange bis zum Ende der Runde ausgeführt werden sollte, und stellte ihn immer in die Warteschlange in einer Sitzung, die [Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching). Die Verfügbarkeit im nicht-interaktiven Modus mit `-p` ist begrenzt; siehe [Schnellmodus umschalten](/docs/de/fast-mode#toggle-fast-mode). Erfordert Claude Code v2.1.205 oder später |94| `/fast [on\|off]` | Schalten Sie [Fast-Modus](/docs/de/fast-mode) ein oder aus. Führen Sie ihn aus, während Claude antwortet, und Claude Code schaltet den Fast-Modus um, ohne auf das Ende der Runde zu warten, obwohl die laufende Runde mit ihrer ursprünglichen Geschwindigkeit endet. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder bis zum Ende der Runde ausgeführt werden sollte, und wartete immer in einer Sitzung, die keine [Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching). Die Verfügbarkeit im nicht-interaktiven Modus mit `-p` ist begrenzt; siehe [Fast-Modus umschalten](/docs/de/fast-mode#toggle-fast-mode). Erfordert Claude Code v2.1.205 oder später |

95| `/feedback [report]` | Senden Sie Produktfeedback zu Claude Code. Öffnet denselben Dialog wie [`/bug`](#all-commands), mit demselben Zustimmungsschritt, Senderegeln und Verhalten in der Mitte der Runde. In Sitzungen mit [Claude-entworfenen Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) öffnet `/feedback` ohne Argument stattdessen die Entwurfswarteschlange, in der Sie die Entwürfe überprüfen, bearbeiten, senden oder verwerfen, die Claude in die Warteschlange gestellt hat; die Warteschlange enthält eine Option, einen neuen Bericht im Dialog zu schreiben. Mit einem Argument und für `/bug` immer öffnet sich der Dialog direkt |95| `/feedback [report]` | Senden Sie Produktfeedback zu Claude Code. Öffnet denselben Dialog wie [`/bug`](#all-commands), mit denselben Zustimmungsschritten, Senderegeln und Verhalten in der Mitte der Runde. In Sitzungen mit [Claude-entworfenes Feedback](/docs/de/tools-reference#sendfeedback-tool-behavior) öffnet `/feedback` ohne Argument stattdessen die Entwurfswarteschlange, in der Sie die Entwürfe überprüfen, bearbeiten, senden oder verwerfen, die Claude in die Warteschlange gestellt hat; die Warteschlange enthält eine Option, einen neuen Bericht im Dialog zu schreiben. Mit einem Argument und für `/bug` immer öffnet sich der Dialog direkt |

96| `/fewer-permission-prompts` | **[Skill](/docs/de/skills#bundled-skills).** Scannen Sie Ihre Transkripte auf häufige schreibgeschützte Bash- und MCP-Tool-Aufrufe und fügen Sie dann eine priorisierte Zulassungsliste zu Projekt `.claude/settings.json` hinzu, um Berechtigungsaufforderungen zu reduzieren |96| `/fewer-permission-prompts` | **[Skill](/docs/de/skills#bundled-skills).** Scannen Sie Ihre Transkripte auf häufige schreibgeschützte Bash- und MCP-Tool-Aufrufe und fügen Sie dann eine priorisierte Zulassungsliste zu Projekt `.claude/settings.json` hinzu, um Berechtigungsaufforderungen zu reduzieren |

97| `/focus` | Schalten Sie die Fokusansicht um, die nur Ihren letzten Prompt, eine einzeilige Tool-Aufruf-Zusammenfassung mit Bearbeitungs-Diffstats und die endgültige Antwort anzeigt. Die Tool-Aufruf-Zusammenfassung zählt auch die in der Runde gestarteten Subagenten und bricht abgeschlossene Hintergrund-Task-Benachrichtigungen in eine einzelne Anzahl zusammen. Die Auswahl bleibt über Sitzungen hinweg bestehen; legen Sie [`viewMode`](/docs/de/settings-reference#viewmode) in den Einstellungen fest, um sie zu überschreiben. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar. Von einem [Remote Control](/docs/de/remote-control)-Client führen Sie `/focus [on\|off]` aus, um die Fokusansicht für die aktuelle Sitzung nur ein- oder auszuschalten, ohne Ihre gespeicherte Auswahl zu ändern; dies erfordert Claude Code v2.1.281 oder später. Die [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) bietet ihre eigene Fokusansicht als Befehlsmenü-Umschalter, gespeichert als Erweiterungseinstellung, unabhängig von `viewMode` |97| `/focus` | Schalten Sie die Fokusansicht um, die nur Ihren letzten Prompt, eine einzeilige Tool-Aufruf-Zusammenfassung mit Bearbeitungs-Diffstats und die endgültige Antwort anzeigt. Die Tool-Aufruf-Zusammenfassung zählt auch die in der Runde gestarteten Subagenten und bricht abgeschlossene Hintergrund-Task-Benachrichtigungen in eine einzelne Anzahl zusammen. Die Auswahl bleibt über Sitzungen hinweg erhalten; setzen Sie [`viewMode`](/docs/de/settings-reference#viewmode) in Einstellungen, um sie zu überschreiben. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar. Von einem [Remote Control](/docs/de/remote-control) Client führen Sie `/focus [on\|off]` aus, um die Fokusansicht für die aktuelle Sitzung nur ein- oder auszuschalten, ohne Ihre gespeicherte Auswahl zu ändern; dies erfordert Claude Code v2.1.281 oder später. Die [VS Code-Erweiterung](/docs/de/vs-code#use-the-prompt-box) bietet ihre eigene Fokusansicht als Befehlsmenü-Umschalter, gespeichert als Erweiterungseinstellung, unabhängig von `viewMode` |

98| `/fork [prompt]` | [Kopieren Sie die aktuelle Konversation](/docs/de/agent-view#copy-the-session-with-%2Ffork) in eine neue Hintergrund-Sitzung und arbeiten Sie hier weiter. Übergeben Sie einen Prompt und die Kopie beginnt sofort damit zu arbeiten; ohne einen wartet sie in der Agent-Ansicht auf ihren ersten Prompt. Außer wenn die Kopie [an Ort und Stelle bearbeitet](/docs/de/agent-view#how-file-edits-are-isolated), weist Claude Code sie an, einen eigenen Worktree zu erstellen, bevor Code-Änderungen vorgenommen werden; die Isolationsanweisung erfordert Claude Code v2.1.221 oder später. Um eine Seitenaufgabe an einen Subagenten zu übergeben, dessen Ergebnis in diese Konversation zurückkommt, verwenden Sie `/subtask`; um selbst in eine Kopie zu wechseln, verwenden Sie `/branch`. Erfordert Claude Code v2.1.212 oder später; auf v2.1.161 bis v2.1.211 und wann immer [Agent-Ansicht ausgeschaltet ist](/docs/de/agent-view#turn-off-agent-view), startet `/fork` stattdessen einen [gegabelten Subagenten](/docs/de/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [Kopieren Sie die aktuelle Konversation](/docs/de/agent-view#copy-the-session-with-%2Ffork) in eine neue Hintergrund-Sitzung und arbeiten Sie hier weiter. Übergeben Sie einen Prompt und die Kopie beginnt sofort damit zu arbeiten; ohne einen wartet sie in der Agent-Ansicht auf ihren ersten Prompt. Außer wenn die Kopie [an Ort und Stelle bearbeitet](/docs/de/agent-view#how-file-edits-are-isolated), weist Claude Code sie an, einen eigenen Worktree zu erstellen, bevor Code-Änderungen vorgenommen werden; die Isolationsanweisung erfordert Claude Code v2.1.221 oder später. Um eine Nebenaufgabe an einen Subagenten zu übergeben, dessen Ergebnis in diese Konversation zurückkommt, verwenden Sie `/subtask`; um selbst in eine Kopie zu wechseln, verwenden Sie `/branch`. Erfordert Claude Code v2.1.212 oder später; auf v2.1.161 bis v2.1.211 und wann immer [Agent-Ansicht ausgeschaltet ist](/docs/de/agent-view#turn-off-agent-view), startet `/fork` stattdessen einen [gegabelten Subagenten](/docs/de/sub-agents#fork-the-current-conversation) |

99| `/goal [condition\|clear]` | Legen Sie ein [Ziel](/docs/de/goal) fest: Claude arbeitet über Runden hinweg, bis die Bedingung erfüllt ist oder das Ziel [aus einem anderen Grund gelöscht wird](/docs/de/goal#how-evaluation-works). Ohne Argument zeigt das aktuelle oder zuletzt erreichte Ziel. `clear`, `stop`, `off`, `reset`, `none` oder `cancel` entfernt ein aktives Ziel früh |99| `/goal [condition\|clear]` | Legen Sie ein [Ziel](/docs/de/goal) fest: Claude arbeitet über Runden hinweg, bis die Bedingung erfüllt ist oder das Ziel [aus einem anderen Grund gelöscht wird](/docs/de/goal#how-evaluation-works). Ohne Argument zeigt das aktuelle oder zuletzt erreichte Ziel. `clear`, `stop`, `off`, `reset`, `none` oder `cancel` entfernt ein aktives Ziel früh |

100| `/heapdump` | Schreiben Sie einen JavaScript-Heap-Snapshot und eine Speicheraufschlüsselung zu `~/Desktop` oder Ihrem Home-Verzeichnis unter Linux ohne Desktop-Ordner, um hohe Speichernutzung zu diagnostizieren. Fügen Sie nur die `-diagnostics.json`-Datei an, wenn Sie ein Speicherproblem melden; die `.heapsnapshot` enthält Ihre vollständige Konversation und Anmeldedaten, daher teilen Sie sie nicht. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type); geben Sie es vollständig ein. Siehe [was mit der Ausgabe zu tun ist](/docs/de/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Schreiben Sie einen JavaScript-Heap-Snapshot und eine Speicheraufschlüsselung auf `~/Desktop` oder Ihr Home-Verzeichnis unter Linux ohne Desktop-Ordner, um hohe Speichernutzung zu diagnostizieren. Fügen Sie nur die `-diagnostics.json` Datei an, wenn Sie ein Speicherproblem melden; die `.heapsnapshot` enthält Ihre vollständige Konversation und Anmeldedaten, daher teilen Sie sie nicht. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type); geben Sie es vollständig ein. Siehe [was mit der Ausgabe zu tun ist](/docs/de/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | Zeigen Sie Hilfe und verfügbare Befehle an |101| `/help` | Zeigen Sie Hilfe und verfügbare Befehle an |

102| `/hooks` | Sehen Sie sich [Hook](/docs/de/hooks)-Konfigurationen für Tool-Ereignisse an |102| `/hooks` | Zeigen Sie [Hook](/docs/de/hooks) Konfigurationen für Tool-Ereignisse an |

103| `/ide` | Verwalten Sie IDE-Integrationen und zeigen Sie den Status an |103| `/ide` | Verwalten Sie IDE-Integrationen und zeigen Sie den Status an |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Bringen Sie Konfiguration von OpenAI Codex, Google Gemini CLI oder Cursor auf Ihrem Computer in Claude Code, einschließlich Anweisungsdateien, MCP-Server, Befehle, Subagenten und Skills. Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` listet `/import` auf, was es gefunden hat, und gibt Ihnen den Befehl, der den Import bestätigt. Fügen Sie `--dry-run` hinzu, um eine Vorschau ohne Schreiben anzuzeigen, oder `--yes`, um die interaktive Auswahl zu überspringen. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS, oder durch ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations). Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausschalten. Erfordert Claude Code v2.1.213 oder später. Das Importieren von Cursor erfordert v2.1.265 oder später |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Bringen Sie Konfiguration von OpenAI Codex, Google Gemini CLI oder Cursor auf Ihrem Computer in Claude Code, einschließlich Anweisungsdateien, MCP-Server, Befehle, Subagenten und Skills. Im [nicht-interaktiven Modus](/docs/de/headless) mit `-p` listet `/import` auf, was es gefunden hat, und gibt Ihnen den Befehl, der den Import bestätigt. Fügen Sie `--dry-run` hinzu, um eine Vorschau ohne Schreiben anzuzeigen, oder `--yes`, um die interaktive Auswahl zu überspringen. Nicht verfügbar auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry oder Claude Platform auf AWS oder über ein [Claude Apps Gateway](/docs/de/claude-apps-gateway#availability-and-limitations). Auch nicht verfügbar, wenn Sie [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausschalten. Erfordert Claude Code v2.1.213 oder später. Das Importieren von Cursor erfordert v2.1.265 oder später |

105| `/init` | Initialisieren Sie das Projekt mit einer `CLAUDE.md`-Anleitung. Legen Sie `CLAUDE_CODE_NEW_INIT=1` fest, um einen interaktiven Flow, der auch Skills, Hooks und persönliche Memory-Dateien durchläuft. Wenn `/init` OpenAI Codex oder Google Gemini CLI-Konfiguration findet, bietet es an, sie mit `/import` zu übertragen |105| `/init` | Initialisieren Sie das Projekt mit einer `CLAUDE.md` Anleitung. Setzen Sie `CLAUDE_CODE_NEW_INIT=1` für einen interaktiven Ablauf, der auch Skills, Hooks und persönliche Memory-Dateien durchläuft. Wenn `/init` OpenAI Codex oder Google Gemini CLI Konfiguration findet, bietet es an, sie mit `/import` zu übernehmen |

106| `/insights` | Generieren Sie einen HTML-Bericht, der Ihre kürzlichen Sitzungen auf diesem Computer analysiert: in welchen Projekten Sie arbeiten, wie Sie Claude Code verwenden, wo Dinge schiefgehen und Funktionen zum Ausprobieren. Nicht verfügbar in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Siehe [Analysieren Sie Ihre Nutzungsmuster](/docs/de/costs#analyze-your-usage-patterns) für den Berichtsspeicherort, die Aufbewahrung und die Kosten |106| `/insights` | Generieren Sie einen HTML-Bericht, der Ihre kürzlichen Sitzungen auf diesem Computer analysiert: in welchen Projekten Sie arbeiten, wie Sie Claude Code verwenden, wo Dinge schiefgehen und Funktionen zum Ausprobieren. Nicht verfügbar in [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Siehe [Analysieren Sie Ihre Nutzungsmuster](/docs/de/costs#analyze-your-usage-patterns) für den Berichtsspeicherort, die Aufbewahrung und die Kosten |

107| `/install-github-app` | Installieren Sie die Claude GitHub App für ein Repository, mit einem optionalen Schritt zum Einrichten von [GitHub Actions](/docs/de/github-actions)-Workflows und Geheimnissen. Führt Sie durch die Auswahl eines Repos und die Konfiguration der Integration. Funktioniert nur mit github.com-Repositories. Wenn das Git-Remote Ihres Repositorys auf gitlab.com oder bitbucket.org ist, druckt der Befehl eine Benachrichtigung und beendet sich, anstatt die Einrichtung zu starten. Um Claude Code aus GitLab-Pipelines auszuführen, siehe [GitLab CI/CD](/docs/de/gitlab-ci-cd) |107| `/install-github-app` | Installieren Sie die Claude GitHub App für ein Repository, mit einem optionalen Schritt zum Einrichten von [GitHub Actions](/docs/de/github-actions) Workflows und Geheimnissen. Führt Sie durch die Auswahl eines Repos und die Konfiguration der Integration. Funktioniert nur mit github.com Repositories. Wenn das Git-Remote Ihres Repositories auf gitlab.com oder bitbucket.org ist, gibt der Befehl eine Benachrichtigung aus und beendet sich, anstatt das Setup zu starten. Um Claude Code aus GitLab-Pipelines auszuführen, siehe [GitLab CI/CD](/docs/de/gitlab-ci-cd) |

108| `/install-slack-app` | Installieren Sie die Claude Slack-App. Öffnet einen Browser, um den OAuth-Flow zu vervollständigen |108| `/install-slack-app` | Installieren Sie die Claude Slack App. Öffnet einen Browser, um den OAuth-Fluss abzuschließen |

109| `/keybindings` | Öffnen Sie Ihre [Tastaturkürzel](/docs/de/keybindings)-Datei |109| `/keybindings` | Öffnen Sie Ihre [Tastaturkürzel](/docs/de/keybindings) Datei |

110| `/list-agents` | Listet die Subagenten, [Agent-Team](/docs/de/agent-teams)-Teamkollegen und andere Claude Code-Sitzungen auf, die Claude anschreiben kann, mit dem Namen, der für jeden verwendet werden soll. Siehe [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging). Auch verfügbar als `/peers`. Erfordert Claude Code v2.1.224 oder später; frühere Versionen melden `Unknown command: /list-agents`. Teamkollegen-Zeilen und die erste Zeile, die den Namen dieser Sitzung anzeigt, erfordern v2.1.239 oder später. Nur verfügbar in Sitzungen, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability) |110| `/list-agents` | Listen Sie die Subagenten, [Agent-Team](/docs/de/agent-teams) Teamkollegen und andere Claude Code Sitzungen auf, die Claude anschreiben kann, mit dem Namen, der für jeden zu verwenden ist. Siehe [Sitzungsübergreifendes Messaging](/docs/de/cross-session-messaging). Auch verfügbar als `/peers`. Erfordert Claude Code v2.1.224 oder später; frühere Versionen melden `Unknown command: /list-agents`. Teamkollegen-Zeilen und die erste Zeile, die den Namen dieser Sitzung anzeigt, erfordern v2.1.239 oder später. Nur in Sitzungen verfügbar, in denen [sitzungsübergreifendes Messaging aktiviert ist](/docs/de/cross-session-messaging#availability) |

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

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

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

114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | Verwalten Sie MCP-Server-Verbindungen und OAuth-Authentifizierung. Führen Sie ohne Argument aus, um die interaktive Liste zu öffnen, übergeben Sie `reconnect <server>`, um einen getrennten Server erneut zu verbinden, oder übergeben Sie `enable`/`disable` mit einem Servernamen oder `all`, um den Verbindungsstatus zu ändern, ohne den Dialog zu öffnen. Auch im nicht-interaktiven Modus (`-p`) verfügbar, wo das Ausführen ohne Argument eine Textzusammenfassung des Serverstatus statt des Öffnens der Liste druckt; erfordert Claude Code v2.1.205 oder später |114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | Verwalten Sie MCP-Server-Verbindungen und OAuth-Authentifizierung. Führen Sie ohne Argument aus, um die interaktive Liste zu öffnen, übergeben Sie `reconnect <server>`, um einen getrennten Server erneut zu verbinden, oder übergeben Sie `enable`/`disable` mit einem Servernamen oder `all`, um den Verbindungsstatus zu ändern, ohne den Dialog zu öffnen. Auch im nicht-interaktiven Modus (`-p`) verfügbar, wo die Ausführung ohne Argument eine Textzusammenfassung des Serverstatus statt der Liste ausgibt; erfordert Claude Code v2.1.205 oder später |

115| `/memory` | Bearbeiten Sie `CLAUDE.md`-Dateien, aktivieren oder deaktivieren Sie [Auto-Memory](/docs/de/memory#auto-memory) und sehen Sie Auto-Memory-Einträge an |115| `/memory` | Bearbeiten Sie `CLAUDE.md` Dateien, aktivieren oder deaktivieren Sie [Auto Memory](/docs/de/memory#auto-memory) und zeigen Sie Auto Memory Einträge an |

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

117| `/model [model]` | Wechseln Sie das KI-Modell und speichern Sie es als Standard für neue Sitzungen. Für Modelle, die es unterstützen, verwenden Sie Pfeile nach links/rechts, um die [Aufwandsebene](/docs/de/model-config#adjust-effort-level) anzupassen. Ohne Argument öffnet sich eine Auswahl; drücken Sie `s` auf einer Zeile, um nur für die aktuelle Sitzung zu wechseln. Siehe [wann Claude Code Sie auffordert, den Wechsel zu bestätigen](/docs/de/prompt-caching#switching-models). Sobald Sie den Wechsel bestätigen, wenn Claude Code fragt, wendet Claude Code die Änderung an, ohne auf das Ende der aktuellen Antwort zu warten. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder in der Warteschlange bis zum Ende der Runde ausgeführt werden sollte, und stellte ihn immer in die Warteschlange in einer Sitzung, die [Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), wie auf einem [Drittanbieter](/docs/de/third-party-integrations). Auch im nicht-interaktiven Modus (`-p`) mit einem Modellargument statt der Auswahl verfügbar, wo es nur auf die aktuelle Sitzung angewendet wird und nicht als Standard gespeichert wird; erfordert Claude Code v2.1.205 oder später |117| `/model [model]` | Wechseln Sie das KI-Modell und speichern Sie es als Standard für neue Sitzungen. Für Modelle, die es unterstützen, verwenden Sie Pfeile nach links/rechts, um die [Aufwandsstufe](/docs/de/model-config#adjust-effort-level) anzupassen. Ohne Argument öffnet sich eine Auswahl; drücken Sie `s` auf einer Zeile, um nur für die aktuelle Sitzung zu wechseln. Siehe [wann Claude Code Sie auffordert, den Wechsel zu bestätigen](/docs/de/prompt-caching#switching-models). Sobald Sie den Wechsel bestätigen, wenn Claude Code fragt, wendet Claude Code die Änderung an, ohne auf das Ende der aktuellen Antwort zu warten. Vor v2.1.242 entschied Claude Code anhand eines Feature-Flags, das es von Anthropic abrief, ob der Befehl in der Mitte der Runde oder bis zum Ende der Runde ausgeführt werden sollte, und wartete immer in einer Sitzung, die keine [Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), wie auf einem [Drittanbieter](/docs/de/third-party-integrations). Auch im nicht-interaktiven Modus (`-p`) mit einem Modellargument statt der Auswahl verfügbar, wo es nur auf die aktuelle Sitzung angewendet wird und nicht als Standard gespeichert wird; erfordert Claude Code v2.1.205 oder später |

118| `/output-style [style]` | Listet [Ausgabestile](/docs/de/output-styles) auf oder wechselt zu einem, z. B. `/output-style concise`. Siehe [Ändern Sie Ihren Ausgabestil](/docs/de/output-styles#change-your-output-style). Erfordert Claude Code v2.1.269 oder später |118| `/output-style [style]` | Listen Sie [Ausgabestile](/docs/de/output-styles) auf oder wechseln Sie zu einem, z. B. `/output-style concise`. Siehe [Ändern Sie Ihren Ausgabestil](/docs/de/output-styles#change-your-output-style). Erfordert Claude Code v2.1.269 oder später |

119| `/passes` | Teilen Sie eine kostenlose Woche Claude Code mit Freunden. Nur sichtbar, wenn Ihr Konto berechtigt ist |119| `/passes` | Teilen Sie eine kostenlose Woche Claude Code mit Freunden. Nur sichtbar, wenn Ihr Konto berechtigt ist |

120| `/permissions` | Verwalten Sie Zulassen-, Fragen- und Ablehnen-Regeln für Tool-Berechtigungen. Öffnet einen interaktiven Dialog, in dem Sie Regeln nach Umfang anzeigen, Regeln hinzufügen oder entfernen, Arbeitsverzeichnisse verwalten und [kürzliche Auto-Modus-Ablehnungen](/docs/de/auto-mode-config#review-denials) überprüfen können. Sie können auch [Auto-Modus-Klassifizierer-Regeln](/docs/de/auto-mode-config#edit-rules-from-permissions) aus der Registerkarte **Auto-Modus** des Dialogs anzeigen und bearbeiten. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort und wendet Ihre Änderungen ab Claudes nächstem Tool-Aufruf in derselben Runde an. Vor v2.1.234 stellte Claude Code den Befehl in die Warteschlange, bis die Runde beendet war. Alias: `/allowed-tools` |120| `/permissions` | Verwalten Sie Zulassen-, Fragen- und Ablehnen-Regeln für Tool-Berechtigungen. Öffnet einen interaktiven Dialog, in dem Sie Regeln nach Umfang anzeigen, Regeln hinzufügen oder entfernen, Arbeitsverzeichnisse verwalten und [kürzliche Auto-Modus-Ablehnungen](/docs/de/auto-mode-config#review-denials) überprüfen können. Sie können auch [Auto-Modus-Klassifizierer-Regeln](/docs/de/auto-mode-config#edit-rules-from-permissions) aus der Registerkarte **Auto mode** des Dialogs anzeigen und bearbeiten. Wenn Sie ihn ausführen, während Claude antwortet, öffnet Claude Code den Dialog sofort und wendet Ihre Änderungen ab Claudes nächstem Tool-Aufruf in derselben Runde an. Vor v2.1.234 wartete Claude Code mit dem Befehl, bis die Runde beendet war. Alias: `/allowed-tools` |

121| `/plan [description]` | Geben Sie den Plan-Modus direkt aus der Eingabeaufforderung ein. Übergeben Sie eine optionale Beschreibung, um den Plan-Modus einzugeben und sofort mit dieser Aufgabe zu beginnen, z. B. `/plan fix the auth bug` |121| `/plan [description]` | Geben Sie den Plan-Modus direkt aus der Eingabeaufforderung ein. Übergeben Sie eine optionale Beschreibung, um den Plan-Modus einzugeben und sofort mit dieser Aufgabe zu beginnen, z. B. `/plan fix the auth bug` |

122| `/plugin [subcommand]` | Verwalten Sie Claude Code [Plugins](/docs/de/plugins/overview). Führen Sie ohne Argument aus, um das Plugin-Menü zu öffnen, oder übergeben Sie einen Subbefehl wie `list`, `install`, `enable` oder `disable`, um direkt zu handeln. Claude Code kann ein Plugin während der Installation aktivieren; die [Installationszusammenfassung](/docs/de/plugins/install#install-a-plugin) teilt Ihnen mit, ob es das tat oder ob Sie `/reload-plugins` ausführen sollten |122| `/plugin [subcommand]` | Verwalten Sie Claude Code [Plugins](/docs/de/plugins/overview). Führen Sie ohne Argument aus, um das Plugin-Menü zu öffnen, oder übergeben Sie einen Unterbefehl wie `list`, `install`, `enable` oder `disable`, um direkt zu handeln. Claude Code kann ein Plugin während der Installation aktivieren; die [Installationszusammenfassung](/docs/de/plugins/install#install-a-plugin) teilt Ihnen mit, ob es das tat oder ob Sie `/reload-plugins` ausführen sollten |

123| `/powerup` | Entdecken Sie Claude Code-Funktionen durch schnelle interaktive Lektionen mit animierten Demos |123| `/powerup` | Entdecken Sie Claude Code Funktionen durch schnelle interaktive Lektionen mit animierten Demos |

124| `/pr-comments [PR]` | Entfernt in v2.1.91. Bitten Sie Claude direkt, Pull-Request-Kommentare anzuzeigen. In früheren Versionen ruft und zeigt Kommentare aus einem GitHub Pull Request ab; erkennt automatisch den PR für den aktuellen Branch oder übergeben Sie eine PR-URL oder -Nummer. Erfordert die `gh`-CLI |124| `/pr-comments [PR]` | Entfernt in v2.1.91. Bitten Sie Claude direkt, Pull Request Kommentare anzuzeigen. In früheren Versionen ruft und zeigt Kommentare aus einem GitHub Pull Request ab; erkennt automatisch den PR für den aktuellen Branch oder übergeben Sie eine PR-URL oder Nummer. Erfordert die `gh` CLI |

125| `/privacy-settings` | Sehen Sie sich Ihre Datenschutzeinstellungen an und aktualisieren Sie sie. Nur verfügbar für Pro- und Max-Plan-Abonnenten |125| `/privacy-settings` | Zeigen Sie Ihre Datenschutzeinstellungen an und aktualisieren Sie sie. Nur für Pro- und Max-Plan-Abonnenten verfügbar |

126| `/radio` | Öffnen Sie Claude FM Lo-Fi-Radio in Ihrem Browser. Druckt die Stream-URL, wenn kein Browser verfügbar ist |126| `/radio` | Öffnen Sie Claude FM Lo-Fi Radio in Ihrem Browser. Gibt die Stream-URL aus, wenn kein Browser verfügbar ist |

127| `/rate-limit-options` | Zeigen Sie Möglichkeiten, weiterzuarbeiten, wenn ein claude.ai-Nutzungslimit eine Anfrage blockiert: warten und [automatisch fortfahren, wenn das Limit zurückgesetzt wird](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset), [Nutzungsguthaben](/docs/de/costs#add-usage-credits-to-your-subscription) hinzufügen oder Ihren Plan upgraden. Claude Code kann dieses Menü auch von selbst öffnen, wenn Sie ein Limit an Ihrem eigenen Terminal erreichen. Siehe [Automatisches Fortfahren ausschalten](/docs/de/interactive-mode#turn-automatic-continue-off). Erfordert ein claude.ai-Abonnement. Die Warte- und Fortfahren-Zeilen erfordern Claude Code v2.1.234 oder später |127| `/rate-limit-options` | Zeigen Sie Möglichkeiten, weiterzuarbeiten, wenn ein claude.ai Nutzungslimit eine Anfrage blockiert: warten und [automatisch fortfahren, wenn das Limit zurückgesetzt wird](/docs/de/interactive-mode#wait-for-a-usage-limit-to-reset), [Nutzungsguthaben](/docs/de/costs#add-usage-credits-to-your-subscription) hinzufügen oder Ihren Plan upgraden. Claude Code kann dieses Menü auch von selbst öffnen, wenn Sie ein Limit an Ihrem eigenen Terminal erreichen. Siehe [Automatisches Fortfahren ausschalten](/docs/de/interactive-mode#turn-automatic-continue-off). Erfordert ein claude.ai Abonnement. Die Warte- und Fortfahren-Zeilen erfordern Claude Code v2.1.234 oder später |

128| `/recap` | Generieren Sie eine einzeilige Zusammenfassung der aktuellen Sitzung auf Anfrage. Siehe [Sitzungs-Recap](/docs/de/interactive-mode#session-recap) für das automatische Recap, das angezeigt wird, nachdem Sie weg waren |128| `/recap` | Generieren Sie auf Anfrage eine einzeilige Zusammenfassung der aktuellen Sitzung. Siehe [Sitzungs-Recap](/docs/de/interactive-mode#session-recap) für das automatische Recap, das angezeigt wird, nachdem Sie weg waren |

129| `/release-notes` | Sehen Sie sich das Changelog in einem interaktiven Versions-Picker an. Wählen Sie eine bestimmte Version aus, um ihre Release Notes zu sehen, oder wählen Sie, um alle Versionen anzuzeigen. Die Notizen erscheinen in Ihrem Transkript, ohne in die Konversation einzutreten, die Claude sieht |129| `/release-notes` | Zeigen Sie das Changelog in einer interaktiven Versions-Auswahl an. Wählen Sie eine bestimmte Version, um ihre Versionshinweise anzuzeigen, oder wählen Sie, um alle Versionen anzuzeigen. Die Hinweise erscheinen in Ihrem Transkript, ohne die Konversation einzugeben, die Claude sieht |

130| `/reload-plugins [--force]` | Laden Sie alle aktiven [Plugins](/docs/de/plugins/overview) neu, um ausstehende Änderungen anzuwenden, ohne neu zu starten. Meldet Anzahlen für jede neu geladene Komponente und kennzeichnet alle Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen werden und den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt, es sei denn, Sie übergeben `--force`. Auch im nicht-interaktiven Modus (`-p`), dem Agent SDK und der Desktop-App verfügbar, wo es nur bei direkt in die Sitzung eingegebener Eingabe ausgeführt wird und Plugin-MCP-Server-Änderungen nicht anwendet; erfordert Claude Code v2.1.260 oder später. Siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | Laden Sie alle aktiven [Plugins](/docs/de/plugins/overview) neu, um ausstehende Änderungen anzuwenden, ohne neu zu starten. Meldet Anzahlen für jede neu geladene Komponente und kennzeichnet alle Ladefehler. Wenn das Neuladen ändern würde, welche MCP-Tools geladen sind und den Prompt-Cache ungültig machen würde, warnt der Befehl und überspringt, es sei denn, Sie übergeben `--force`. Auch im nicht-interaktiven Modus (`-p`), dem Agent SDK und der Desktop App verfügbar, wo es nur auf direkt in die Sitzung eingegebene Eingaben läuft und Plugin-MCP-Server-Änderungen nicht anwendet; erfordert Claude Code v2.1.260 oder später. Siehe [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) |

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

132| `/remote-control` | Machen Sie diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai verfügbar. Das Ausführen während der Abmeldung druckt, dass Remote Control ein claude.ai-Abonnement erfordert, und teilt Ihnen mit, wie Sie sich anmelden; vor v2.1.206 meldete es `Unknown command: /remote-control`. Alias: `/rc` |132| `/remote-control` | Machen Sie diese Sitzung für [Remote Control](/docs/de/remote-control) von claude.ai verfügbar. Die Ausführung während der Abmeldung gibt aus, dass Remote Control ein claude.ai Abonnement erfordert, und teilt Ihnen mit, wie Sie sich anmelden; vor v2.1.206 meldete es `Unknown command: /remote-control`. Alias: `/rc` |

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

134| `/rename [name]` | Benennen Sie die aktuelle Sitzung um und zeigen Sie den Namen auf der Eingabeaufforderungsleiste an. Ohne Namen wird automatisch einer aus dem Konversationsverlauf generiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später. Von jeder Umbenennungsoberfläche, 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 leer ist, sobald unsichtbare Zeichen entfernt werden, lehnt Claude Code ihn ab und zeigt `That name is empty once invisible characters are removed. Usage: /rename <name>`. Der Zeichenersatz und die Längenbegrenzung erfordern Claude Code v2.1.221 oder später. Wenn eine andere Live-Sitzung auf diesem Computer bereits einen Namen verwendet, den Sie übergeben, wendet Claude Code stattdessen [eine Variante davon](/docs/de/sessions#name-your-sessions) an |134| `/rename [name]` | Benennen Sie die aktuelle Sitzung um und zeigen Sie den Namen auf der Eingabeaufforderungsleiste an. Ohne Namen wird automatisch einer aus dem Konversationsverlauf generiert. Auch im nicht-interaktiven Modus (`-p`) verfügbar; erfordert Claude Code v2.1.205 oder später. Von jeder Umbenennungsoberfläche, einschließlich claude.ai und der Desktop App, ersetzt Claude Code Steuerzeichen und unsichtbare Zeichen im neuen Namen durch Leerzeichen und begrenzt den Namen auf 200 Zeichen. Wenn der Name leer ist, sobald unsichtbare Zeichen entfernt werden, lehnt Claude Code ihn ab und zeigt `That name is empty once invisible characters are removed. Usage: /rename <name>`. Der Zeichenersatz und die Längenbegrenzung erfordern Claude Code v2.1.221 oder später. Wenn eine andere Live-Sitzung auf diesem Computer bereits einen Namen verwendet, den Sie übergeben, wendet Claude Code stattdessen [eine Variante davon](/docs/de/sessions#name-your-sessions) an |

135| `/resume [session]` | Setzen Sie eine Konversation nach ID oder Name fort, oder öffnen Sie die Sitzungsauswahl. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet; eine, die noch läuft, kann hier nicht fortgesetzt werden, daher hängen Sie sie von `claude agents` an oder stoppen Sie sie dort zuerst. Alias: `/continue` |135| `/resume [session]` | Setzen Sie eine Konversation nach ID oder Name fort, oder öffnen Sie die Sitzungsauswahl. [Hintergrund-Sitzungen](/docs/de/agent-view) erscheinen in der Auswahl mit `bg` gekennzeichnet. Das Fortsetzen einer, die noch läuft, aus der Auswahl oder nach ID oder Name, [öffnet diese Sitzung](/docs/de/sessions#resume-a-running-background-session): Ihre aktuelle Konversation wechselt in den Hintergrund und dieses Terminal wird an die laufende angehängt. Drücken Sie `←` auf einer leeren Eingabeaufforderung, um zur Agent-Ansicht zurückzukehren, die auch die Konversation auflistet, die Sie verlassen haben. Vor v2.1.285 weigerte sich Claude Code und sagte Ihnen, die Sitzung mit `claude attach` zu öffnen oder sie zuerst zu stoppen. Alias: `/continue` |

136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias von [`/code-review`](/docs/de/code-review#review-a-diff-locally): überprüft den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, wie z. B. `/review 1234`, und nimmt die gleichen Aufwandsebenen und Flags. Ohne angegebene Ebene verwendet die Überprüfung die letzte `low` bis `max`-Ebene, die Sie eingegeben haben; siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die genauen Regeln. Für eine tiefe Cloud-Überprüfung verwenden Sie [`/code-review ultra`](/docs/de/ultrareview). Vor v2.1.223 war `/review` ein separater Befehl, der eine einmalige, schreibgeschützte Überprüfung eines GitHub Pull Request nach Nummer durchführte, wobei offene PRs zum Auswählen aufgelistet wurden, wenn ohne Argument ausgeführt; von v2.1.186 bis v2.1.201 führte er die gleiche Multi-Agent-Engine wie `/code-review medium` aus |136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias von [`/code-review`](/docs/de/code-review#review-a-diff-locally): überprüft den aktuellen Diff oder eine PR-Nummer, einen Branch oder einen Pfad, den Sie übergeben, wie z. B. `/review 1234`, und nimmt die gleichen Aufwandsstufen und Flags. Ohne angegebene Stufe verwendet die Überprüfung die letzte `low` bis `max` Stufe, die Sie eingegeben haben; siehe [Diff lokal überprüfen](/docs/de/code-review#review-a-diff-locally) für die genauen Regeln. Für eine tiefe Cloud-Überprüfung verwenden Sie [`/code-review ultra`](/docs/de/ultrareview). Vor v2.1.223 war `/review` ein separater Befehl, der eine einmalige, schreibgeschützte Überprüfung eines GitHub Pull Request nach Nummer durchführte, wobei offene PRs zum Auswählen aufgelistet wurden, wenn ohne Argument ausgeführt; von v2.1.186 bis v2.1.201 führte er die gleiche Multi-Agent-Engine wie `/code-review medium` aus |

137| `/rewind` | Spulen Sie die Konversation und/oder den Code zu einem vorherigen Punkt zurück, oder fassen Sie von einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/docs/de/checkpointing). Aliase: `/checkpoint`, `/undo` |137| `/rewind` | Spulen Sie die Konversation und/oder den Code zu einem früheren Punkt zurück, oder fassen Sie von einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/docs/de/checkpointing). Aliase: `/checkpoint`, `/undo` |

138| `/run` | **[Skill](/docs/de/skills#bundled-skills).** Starten Sie Ihre Projekt-App und fahren Sie sie, um eine Änderung funktionierend zu sehen, nicht nur Tests zu bestehen. Siehe [App ausführen und überprüfen](/docs/de/skills#run-and-verify-your-app) |138| `/run` | **[Skill](/docs/de/skills#bundled-skills).** Starten Sie Ihre Projekt-App und fahren Sie sie, um eine Änderung funktionierend zu sehen, nicht nur Tests zu bestehen. Siehe [Führen Sie Ihre App aus und überprüfen Sie sie](/docs/de/skills#run-and-verify-your-app) |

139| `/run-skill-generator` | **[Skill](/docs/de/skills#bundled-skills).** Lehren Sie `/run` und `/verify`, wie Sie Ihre Projekt-App aus einer sauberen Umgebung erstellen, starten und fahren, indem Sie einen Pro-Projekt-[Skill](/docs/de/skills#run-and-verify-your-app) schreiben |139| `/run-skill-generator` | **[Skill](/docs/de/skills#bundled-skills).** Lehren Sie `/run` und `/verify`, wie Sie Ihre Projekt-App aus einer sauberen Umgebung erstellen, starten und fahren, indem Sie einen Pro-Projekt-[Skill](/docs/de/skills#run-and-verify-your-app) schreiben |

140| `/sandbox` | Schalten Sie [Sandbox-Modus](/docs/de/sandboxing) um. Nur auf unterstützten Plattformen verfügbar |140| `/sandbox` | Schalten Sie [Sandbox-Modus](/docs/de/sandboxing) um. Nur auf unterstützten Plattformen verfügbar |

141| `/schedule [description]` | Erstellen, aktualisieren, listen oder führen Sie [Routinen](/docs/de/routines) aus, die in der Cloud ausgeführt werden. Claude führt Sie conversationally durch die Einrichtung. Sie können auch nach [kürzlichen Läufen einer Routine](/docs/de/routines#manage-routines-from-the-cli) fragen. Alias: `/routines` |141| `/schedule [description]` | Erstellen, aktualisieren, listen oder führen Sie [Routinen](/docs/de/routines) aus, die in der Cloud ausgeführt werden. Claude führt Sie conversationally durch das Setup. Sie können auch nach [kürzlichen Läufen einer Routine](/docs/de/routines#manage-routines-from-the-cli) fragen. Alias: `/routines` |

142| `/scroll-speed` | Passen Sie die [Scroll-Geschwindigkeit](/docs/de/fullscreen#mouse-wheel-scrolling) der Maus interaktiv an, mit einem Lineal, das Sie scrollen können, während der Dialog offen ist, um die Änderung in der Vorschau anzuzeigen. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar und nicht im JetBrains IDE-Terminal |142| `/scroll-speed` | Passen Sie die [Scroll-Geschwindigkeit](/docs/de/fullscreen#mouse-wheel-scrolling) der Maus interaktiv an, mit einem Lineal, das Sie scrollen können, während der Dialog offen ist, um die Änderung in der Vorschau anzuzeigen. Nur im [Vollbild-Rendering](/docs/de/fullscreen) verfügbar und nicht im JetBrains IDE Terminal |

143| `/security-review` | Analysieren Sie die Änderungen auf Ihrem aktuellen Branch auf Sicherheitslücken. Überprüft den Diff zwischen Ihrem Branch und dem Standard-Branch des Ursprungs und identifiziert Risiken wie Injection, Auth-Probleme und Datenexposition. Benötigt einen `origin`-Remote; wenn die Überprüfung mit einem `ambiguous argument`-Fehler fehlschlägt, siehe die [Fehlerreferenz](/docs/de/errors#security-review-fails-without-origin-head) |143| `/security-review` | Analysieren Sie die Änderungen auf Ihrem aktuellen Branch auf Sicherheitslücken. Überprüft den Diff zwischen Ihrem Branch und dem Standard-Branch des Origin, identifiziert Risiken wie Injection, Auth-Probleme und Datenexposition. Benötigt ein `origin` Remote; wenn die Überprüfung mit einem `ambiguous argument` Fehler fehlschlägt, siehe die [Fehlerreferenz](/docs/de/errors#security-review-fails-without-origin-head) |

144| `/setup-bedrock` | Konfigurieren Sie [Amazon Bedrock](/docs/de/amazon-bedrock)-Authentifizierung, Region und Modell-Pins durch einen interaktiven Wizard. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type), bis `CLAUDE_CODE_USE_BEDROCK=1` gesetzt ist; geben Sie es vollständig ein. Erstbenutzer von Amazon Bedrock können auch auf diesen Wizard vom Anmeldebildschirm zugreifen |144| `/setup-bedrock` | Konfigurieren Sie [Amazon Bedrock](/docs/de/amazon-bedrock) Authentifizierung, Region und Modell-Pins durch einen interaktiven Wizard. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type), bis `CLAUDE_CODE_USE_BEDROCK=1` gesetzt ist; geben Sie es vollständig ein. Erstbenutzer von Amazon Bedrock können auch auf diesen Wizard vom Anmeldebildschirm zugreifen |

145| `/setup-vertex` | Konfigurieren Sie [Google Cloud's Agent Platform](/docs/de/google-vertex-ai)-Authentifizierung, Projekt, Region und Modell-Pins durch einen interaktiven Wizard. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type), bis `CLAUDE_CODE_USE_VERTEX=1` gesetzt ist; geben Sie es vollständig ein. Erstbenutzer von Google Cloud's Agent Platform können auch auf diesen Wizard vom Anmeldebildschirm zugreifen |145| `/setup-vertex` | Konfigurieren Sie [Google Cloud's Agent Platform](/docs/de/google-vertex-ai) Authentifizierung, Projekt, Region und Modell-Pins durch einen interaktiven Wizard. [Versteckt vor dem Befehlsmenü](#how-the-command-menu-matches-what-you-type), bis `CLAUDE_CODE_USE_VERTEX=1` gesetzt ist; geben Sie es vollständig ein. Erstbenutzer von Google Cloud's Agent Platform können auch auf diesen Wizard vom Anmeldebildschirm zugreifen |

146| `/simplify [target]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den geänderten Code auf Bereinigungsmöglichkeiten und wenden Sie die Fixes an. Vier Überprüfungs-[Agenten](/docs/de/sub-agents) laufen parallel und decken Wiederverwendung vorhandener Helfer, Vereinfachung, Effizienz und ob die Änderung auf der richtigen Abstraktionsebene ist, ab. Die Überprüfung sucht nicht nach Korrektheitsfehler. Verwenden Sie `/code-review`, um Fehler zu finden. Übergeben Sie einen Pfad oder PR-Referenz, um ein bestimmtes Ziel zu überprüfen |146| `/simplify [target]` | **[Skill](/docs/de/skills#bundled-skills).** Überprüfen Sie den geänderten Code auf Bereinigungsmöglichkeiten und wenden Sie die Fixes an. Vier Überprüfungs-[Agenten](/docs/de/sub-agents) laufen parallel und decken Wiederverwendung vorhandener Helfer, Vereinfachung, Effizienz und ob die Änderung auf der richtigen Abstraktionsebene ist, ab. Die Überprüfung sucht nicht nach Korrektheitsfehler. Verwenden Sie `/code-review`, um Fehler zu finden. Übergeben Sie einen Pfad oder PR-Referenz, um ein bestimmtes Ziel zu überprüfen |

147| `/skill-doctor` | Zeigen Sie, was jeder Ihrer [Skills](/docs/de/skills) in Kontext kostet und wie oft er verwendet wird, damit Sie [Skills finden können, die Sie ausschalten können](/docs/de/skills#find-unused-skills). Erfordert Claude Code v2.1.252 oder später und [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) |147| `/skill-doctor` | Zeigen Sie, was jeder Ihrer [Skills](/docs/de/skills) im Kontext kostet und wie oft er verwendet wird, damit Sie [Skills finden können, die Sie ausschalten können](/docs/de/skills#find-unused-skills). Erfordert Claude Code v2.1.252 oder später und [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) |

148| `/skills` | Listet verfügbare [Skills](/docs/de/skills) auf. Geben Sie ein, um die Liste nach Name, Beschreibung oder Quelle zu filtern. Drücken Sie `t`, um nach Token-Anzahl zu sortieren, `Space` oder `Enter`, um die [Sichtbarkeit eines Skills für Claude und das `/`-Menü zu zyklisieren](/docs/de/skills#override-skill-visibility-from-settings), und `Esc`, um zu speichern und zu schließen. Sie können Plugin-Skills, Skills, deren Frontmatter `disable-model-invocation: true` setzt, oder Skills mit einem `skillOverrides`-Eintrag in verwalteten Einstellungen oder dem `--settings`-Flag nicht zyklisieren |148| `/skills` | Listen Sie verfügbare [Skills](/docs/de/skills) auf. Geben Sie ein, um die Liste nach Name, Beschreibung oder Quelle zu filtern. Drücken Sie `t`, um nach Token-Anzahl zu sortieren, `Space` oder `Enter`, um [die Sichtbarkeit eines Skills für Claude und das `/` Menü zu durchlaufen](/docs/de/skills#override-skill-visibility-from-settings), und `Esc`, um zu speichern und zu schließen. Sie können Plugin-Skills, Skills, deren Frontmatter `disable-model-invocation: true` setzt, oder Skills mit einem `skillOverrides` Eintrag in verwalteten Einstellungen oder dem `--settings` Flag nicht durchlaufen |

149| `/slides [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Erstellen Sie eine neue Präsentation als Claude Slides-[Artefakt](/docs/de/artifacts#make-a-slide-deck), das aus Ihrem Brief gefüllt ist, z. B. `/slides a quarterly review of the platform team`. Erfordert Claude Code v2.1.265 oder später, eine Sitzung, in der [Artefakte verfügbar](/docs/de/artifacts#availability) sind, und ein Konto, auf dem die [Slides-Vorlage verfügbar](/docs/de/artifacts#start-from-a-slides-design-or-docs-template) ist; andernfalls wird der Befehl nicht angezeigt. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |149| `/slides [brief]` | **[Skill](/docs/de/skills#bundled-skills).** Erstellen Sie eine neue Präsentation als Claude Slides [Artefakt](/docs/de/artifacts#make-a-slide-deck), gefüllt aus Ihrem Brief, z. B. `/slides a quarterly review of the platform team`. Erfordert Claude Code v2.1.265 oder später, eine Sitzung, in der [Artefakte verfügbar sind](/docs/de/artifacts#availability), und ein Konto, in dem die [Slides-Vorlage verfügbar ist](/docs/de/artifacts#start-from-a-slides-design-or-docs-template); andernfalls wird der Befehl nicht angezeigt. Verfügbar auf der Anthropic API. Auf Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und Claude Platform auf AWS sind Artefakte nicht verfügbar, daher ist der Befehl dort nicht verfügbar |

150| `/stats` | Alias für `/usage`. Öffnet auf der Registerkarte Stats |150| `/stats` | Alias für `/usage`. Öffnet auf der Registerkarte Stats |

151| `/status` | Öffnen Sie die Einstellungsschnittstelle auf der Registerkarte Status, die Version, Modell, Konto und Konnektivität anzeigt. Eine `Session kind`-Zeile liest `background job · attached` oder `background job · unattended` in einer [Hintergrund-Sitzung](/docs/de/agent-view), je nachdem, ob ein Terminal angehängt ist, und `interactive` in jeder anderen Sitzung. Vor v2.1.221 zeigte `/status` diese Zeile nicht. Funktioniert, während Claude antwortet |151| `/status` | Öffnen Sie die Einstellungsschnittstelle auf der Registerkarte Status, die Version, Modell, Konto und Konnektivität anzeigt. Eine `Session kind` Zeile liest `background job · attached` oder `background job · unattended` in einer [Hintergrund-Sitzung](/docs/de/agent-view), je nachdem, ob ein Terminal angehängt ist, und `interactive` in jeder anderen Sitzung. Vor v2.1.221 zeigte `/status` diese Zeile nicht. Funktioniert, während Claude antwortet |

152| `/statusline` | Konfigurieren Sie Claude Code's [Statuszeile](/docs/de/statusline). Beschreiben Sie, was Sie möchten, oder führen Sie ohne Argumente aus, um automatisch aus Ihrer Shell-Eingabeaufforderung zu konfigurieren |152| `/statusline` | Konfigurieren Sie Claude Code's [Status-Zeile](/docs/de/statusline). Beschreiben Sie, was Sie möchten, oder führen Sie ohne Argumente aus, um automatisch aus Ihrer Shell-Eingabeaufforderung zu konfigurieren |

153| `/stickers` | Bestellen Sie Claude Code-Aufkleber |153| `/stickers` | Bestellen Sie Claude Code Aufkleber |

154| `/stop` | Stoppen Sie die aktuelle [Hintergrund-Sitzung](/docs/de/agent-view). Nur verfügbar, während Sie an einer Hintergrund-Sitzung angehängt sind; das Transkript und alle Worktrees werden beibehalten. Um zu trennen, ohne zu stoppen, verwenden Sie `/exit` oder drücken Sie `←` |154| `/stop` | Stoppen Sie die aktuelle [Hintergrund-Sitzung](/docs/de/agent-view). Nur verfügbar, während Sie an einer Hintergrund-Sitzung angehängt sind; das Transkript und alle Worktrees werden beibehalten. Um zu trennen, ohne zu stoppen, verwenden Sie `/exit` oder drücken Sie `←` |

155| `/subtask <task>` | Starten Sie einen [gegabelten Subagenten](/docs/de/sub-agents#fork-the-current-conversation): einen Hintergrund-Subagenten, der die vollständige Konversation erbt und an der Aufgabe arbeitet, während Sie weiterarbeiten. Sein Ergebnis kehrt zu dieser Konversation zurück, wenn er fertig ist. Um die Konversation stattdessen in eine separate Hintergrund-Sitzung zu kopieren, verwenden Sie `/fork`. Erfordert Claude Code v2.1.212 oder später; auf v2.1.161 bis v2.1.211 ist dieser Befehl `/fork`. Wenn [Agent-Ansicht ausgeschaltet ist](/docs/de/agent-view#turn-off-agent-view), ist `/subtask` nicht verfügbar und `/fork` behält das gegabelte-Subagenten-Verhalten |155| `/subtask <task>` | Starten Sie einen [gegabelten Subagenten](/docs/de/sub-agents#fork-the-current-conversation): einen Hintergrund-Subagenten, der die vollständige Konversation erbt und an der Aufgabe arbeitet, während Sie weiterarbeiten. Sein Ergebnis kehrt zu dieser Konversation zurück, wenn er fertig ist. Um die Konversation stattdessen in eine separate Hintergrund-Sitzung zu kopieren, verwenden Sie `/fork`. Erfordert Claude Code v2.1.212 oder später; auf v2.1.161 bis v2.1.211 ist dieser Befehl `/fork`. Wenn [Agent-Ansicht ausgeschaltet ist](/docs/de/agent-view#turn-off-agent-view), ist `/subtask` nicht verfügbar und `/fork` behält das gegabelte-Subagenten-Verhalten |

156| `/tasks` | Sehen Sie sich Hintergrund-Arbeit in der aktuellen Sitzung an und verwalten Sie sie, einschließlich Subagenten, die fertig sind. Auch verfügbar als `/bashes` |156| `/tasks` | Zeigen Sie an und verwalten Sie Hintergrundarbeit in der aktuellen Sitzung, einschließlich Subagenten, die fertig sind. Auch verfügbar als `/bashes` |

157| `/team-onboarding` | Generieren Sie einen Team-Onboarding-Leitfaden aus Ihrem Claude Code-Nutzungsverlauf. Claude analysiert Ihre Sitzungen, Befehle und MCP-Server-Nutzung der letzten 30 Tage und erstellt einen Markdown-Leitfaden, den ein Teamkollege als erste Nachricht einfügen kann, um schnell eingerichtet zu werden. Für claude.ai-Abonnenten in Pro-, Max-, Team- und Enterprise-Plänen gibt es auch einen Share-Link, den Teamkollegen direkt in Claude Code öffnen können |157| `/team-onboarding` | Generieren Sie einen Team-Onboarding-Leitfaden aus Ihrem Claude Code Nutzungsverlauf. Claude analysiert Ihre Sitzungen, Befehle und MCP-Server-Nutzung der letzten 30 Tage und erstellt einen Markdown-Leitfaden, den ein Teamkollege als erste Nachricht einfügen kann, um schnell eingerichtet zu werden. Für claude.ai Abonnenten in Pro-, Max-, Team- und Enterprise-Plänen gibt es auch einen Share-Link, den Teamkollegen direkt in Claude Code öffnen können |

158| `/teleport` | Ziehen Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web#from-cloud-to-terminal) in dieses Terminal. Öffnet eine Auswahl, dann ruft den Branch und die Konversation ab. Auch verfügbar als `/tp`. Erfordert ein claude.ai-Abonnement |158| `/teleport` | Ziehen Sie eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web#from-cloud-to-terminal) in dieses Terminal. Öffnet eine Auswahl, dann ruft den Branch und die Konversation ab. Auch verfügbar als `/tp`. Erfordert ein claude.ai Abonnement |

159| `/terminal-setup` | [Installieren Sie eine Shift+Enter-Tastenbindung für Zeilenumbrüche](/docs/de/terminal-config#enter-multiline-prompts) in VS Code, Cursor, Devin Desktop, Alacritty oder Zed. In Apple Terminal [aktivieren Sie stattdessen Option+Enter für Zeilenumbrüche und schalten Sie die audible Bell aus](/docs/de/terminal-config#enable-option-key-shortcuts-on-macos). In iTerm2 [schalten Sie Clipboard-Zugriff ein, damit `/copy` funktioniert](/docs/de/terminal-config#enable-option-key-shortcuts-on-macos) |159| `/terminal-setup` | [Installieren Sie eine Shift+Enter Tastenbindung für Zeilenumbrüche](/docs/de/terminal-config#enter-multiline-prompts) in VS Code, Cursor, Devin Desktop, Alacritty oder Zed. In Apple Terminal [aktivieren Sie stattdessen Option+Enter für Zeilenumbrüche und schalten Sie die audible Bell aus](/docs/de/terminal-config#enable-option-key-shortcuts-on-macos). In iTerm2 [schalten Sie Clipboard-Zugriff ein, damit `/copy` funktioniert](/docs/de/terminal-config#enable-option-key-shortcuts-on-macos) |

160| `/theme` | Ändern Sie das Farbschema. Enthält eine `auto`-Option, die den hellen oder dunklen Hintergrund Ihres Terminals abgleicht, helle und dunkle Varianten, farbenblind-zugängliche (daltonisierte) Designs, ANSI-Designs, die die Farbpalette Ihres Terminals verwenden, und alle [benutzerdefinierten Designs](/docs/de/terminal-config#create-a-custom-theme) aus `~/.claude/themes/` oder Plugins. Wählen Sie **Neues benutzerdefiniertes Design…**, um eines zu erstellen |160| `/theme` | Ändern Sie das Farbschema. Enthält eine `auto` Option, die den hellen oder dunklen Hintergrund Ihres Terminals abgleicht, helle und dunkle Varianten, farbenblind-zugängliche (daltonisierte) Designs, ANSI-Designs, die die Farbpalette Ihres Terminals verwenden, und alle [benutzerdefinierten Designs](/docs/de/terminal-config#create-a-custom-theme) aus `~/.claude/themes/` oder Plugins. Wählen Sie **New custom theme…**, um eines zu erstellen |

161| `/tui [default\|fullscreen]` | Legen Sie den Terminal-UI-Renderer fest und starten Sie ihn mit Ihrer Konversation intakt neu. `fullscreen` aktiviert den [flimmerfreien Alt-Screen-Renderer](/docs/de/fullscreen). Ohne Argument druckt den aktiven Renderer |161| `/tui [default\|fullscreen]` | Legen Sie den Terminal-UI-Renderer fest und starten Sie ihn mit Ihrer Konversation intakt neu. `fullscreen` aktiviert den [flimmerfreien Alt-Screen-Renderer](/docs/de/fullscreen). Ohne Argument gibt den aktiven Renderer aus |

162| `/ultraplan <prompt>` | Entfernt. Verwenden Sie stattdessen [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode). Zuvor sendete eine Planungsaufgabe an eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) zur Überprüfung in Ihrem Browser |162| `/ultraplan <prompt>` | Entfernt. Verwenden Sie stattdessen [Plan-Modus](/docs/de/permission-modes#analyze-before-you-edit-with-plan-mode). Zuvor sendete eine Planungsaufgabe an eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) zur Überprüfung in Ihrem Browser |

163| `/ultrareview [PR or branch]` | Führen Sie eine tiefe, Multi-Agent-Code-Überprüfung in einer Cloud-Sandbox mit [ultrareview](/docs/de/ultrareview) aus. Übergeben Sie eine PR-Referenz, um diesen Pull Request zu überprüfen, oder einen Branch oder Commit, um die Vergleichsbasis zu ändern. Die bevorzugte Invokation ist `/code-review ultra`, und `/ultrareview` ist ein Alias. Enthält 3 kostenlose Läufe auf Pro und Max, dann erfordert [Nutzungsguthaben](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |163| `/ultrareview [PR or branch]` | Führen Sie eine tiefe, Multi-Agent-Code-Überprüfung in einer Cloud-Sandbox mit [ultrareview](/docs/de/ultrareview) aus. Übergeben Sie eine PR-Referenz, um diesen Pull Request zu überprüfen, oder einen Base-Branch oder Commit, um die Vergleichsbasis zu ändern. Die bevorzugte Invokation ist `/code-review ultra`, und `/ultrareview` ist ein Alias. Enthält 3 kostenlose Läufe auf Pro und Max, dann erfordert [Nutzungsguthaben](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

164| `/update-config [request]` | **[Skill](/docs/de/skills#bundled-skills).** Beschreiben Sie eine Einstellungsänderung, wie z. B. das Zulassen eines Befehls, das Festlegen einer Umgebungsvariablen oder das Hinzufügen eines [Hooks](/docs/de/hooks), und Claude bearbeitet die passende [`settings.json`](/docs/de/settings)-Datei. Für Optionen wie Design und Modell verwenden Sie stattdessen `/config` |164| `/update-config [request]` | **[Skill](/docs/de/skills#bundled-skills).** Beschreiben Sie eine Einstellungsänderung, wie z. B. das Zulassen eines Befehls, das Setzen einer Umgebungsvariablen oder das Hinzufügen eines [Hook](/docs/de/hooks), und Claude bearbeitet die passende [`settings.json`](/docs/de/settings) Datei. Für Optionen wie Design und Modell verwenden Sie stattdessen `/config` |

165| `/upgrade` | Öffnen Sie die Upgrade-Seite in Ihrem Browser, um zu einem höheren Plan-Tier zu wechseln. Wenn der Browser nicht geöffnet werden kann, zeigt der Befehl eine Anmeldeaufforderung ohne Drucken der URL |165| `/upgrade` | Öffnen Sie die Upgrade-Seite in Ihrem Browser, um zu einem höheren Plan-Tier zu wechseln. Wenn der Browser nicht öffnet, zeigt der Befehl eine Anmeldeaufforderung ohne Drucken der URL |

166| `/usage` | Zeigen Sie Sitzungskosten, Plan-Nutzungslimits und Aktivitätsstatistiken an. In einem Pro-, Max-, Team- oder Enterprise-Plan enthält eine [Aufschlüsselung, was gegen Ihre Plan-Limits zählt](/docs/de/costs#plan-usage-breakdown). `/cost` und `/stats` sind Aliase |166| `/usage` | Zeigen Sie Sitzungskosten, Plan-Nutzungslimits und Aktivitätsstatistiken an. In einem Pro-, Max-, Team- oder Enterprise-Plan enthält eine [Aufschlüsselung, was gegen Ihre Plan-Limits zählt](/docs/de/costs#plan-usage-breakdown). `/cost` und `/stats` sind Aliase |

167| `/usage-credits` | Konfigurieren Sie Nutzungsguthaben oder fordern Sie sie von Ihrem Admin an, wenn Sie ein Limit erreichen. Öffnet Ihre [Nutzungsguthaben-Abrechnungseinstellungen](/docs/de/costs#add-usage-credits-to-your-subscription) im Browser, außer dass Team- und Enterprise-Mitglieder ohne Abrechnungszugriff stattdessen eine Nutzungsguthaben-Anfrage von der CLI an ihren Admin senden, nachdem sie in einem Dialog bestätigt haben, dass die Anfrage ihre Admins benachrichtigt. Wenn kein Browser die Abrechnungsseite öffnen kann, z. B. über SSH, druckt der Befehl stattdessen die URL zum Besuchen; dies erfordert Claude Code v2.1.205 oder später, und frühere Versionen zeigten in diesem Fall nichts. Zuvor `/extra-usage` |167| `/usage-credits` | Konfigurieren Sie Nutzungsguthaben oder fordern Sie sie von Ihrem Admin an, wenn Sie ein Limit erreichen. Öffnet Ihre [Nutzungsguthaben-Abrechnungseinstellungen](/docs/de/costs#add-usage-credits-to-your-subscription) im Browser, außer dass Team- und Enterprise-Mitglieder ohne Abrechnungszugriff stattdessen eine Nutzungsguthaben-Anfrage von der CLI an ihren Admin senden, nachdem sie in einem Dialog bestätigt haben, dass die Anfrage ihre Admins benachrichtigt. Wenn kein Browser die Abrechnungsseite öffnen kann, z. B. über SSH, gibt der Befehl stattdessen die URL zum Besuchen aus; dies erfordert Claude Code v2.1.205 oder später, und frühere Versionen zeigten in diesem Fall nichts. Zuvor `/extra-usage` |

168| `/verify` | **[Skill](/docs/de/skills#bundled-skills).** Bestätigen Sie, dass eine Code-Änderung das tut, was sie sollte, indem Sie Ihre Projekt-App erstellen, ausführen und das Ergebnis beobachten, anstatt sich auf Tests oder Typ-Überprüfungen zu verlassen. Siehe [App ausführen und überprüfen](/docs/de/skills#run-and-verify-your-app) |168| `/verify` | **[Skill](/docs/de/skills#bundled-skills).** Bestätigen Sie, dass eine Code-Änderung das tut, was sie sollte, indem Sie Ihre Projekt-App erstellen, ausführen und das Ergebnis beobachten, anstatt sich auf Tests oder Typ-Überprüfungen zu verlassen. Siehe [Führen Sie Ihre App aus und überprüfen Sie sie](/docs/de/skills#run-and-verify-your-app) |

169| `/vim` | Entfernt in v2.1.92. Um zwischen Vim- und Normal-Bearbeitungsmodi zu wechseln, verwenden Sie `/config` → Editor-Modus |169| `/vim` | Entfernt in v2.1.92. Um zwischen Vim und Normal Bearbeitungsmodi zu wechseln, verwenden Sie `/config` → Editor mode |

170| `/voice [hold\|tap\|off]` | Schalten Sie [Sprachdiktat](/docs/de/voice-dictation) um oder aktivieren Sie es in einem bestimmten Modus. Erfordert ein Claude.ai-Konto |170| `/voice [hold\|tap\|off]` | Schalten Sie [Sprachdiktat](/docs/de/voice-dictation) um, oder aktivieren Sie es in einem bestimmten Modus. Erfordert ein Claude.ai Konto |

171| `/web-setup` | Verbinden Sie Ihr GitHub-Konto mit [Cloud-Sitzungen](/docs/de/web-quickstart#connect-from-your-terminal) mit Ihren lokalen `gh`-CLI-Anmeldedaten |171| `/web-setup` | Verbinden Sie Ihr GitHub-Konto für [Cloud-Sitzungen](/docs/de/web-quickstart#connect-from-your-terminal) mit Ihren lokalen `gh` CLI-Anmeldedaten |

172| `/workflow-authoring` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie die Referenz zum Schreiben von [dynamischen Workflow](/docs/de/workflows)-Skripten: die Skript-API, Resume-Verhalten, Qualitätsmuster und durchgearbeitete Beispiele. Claude lädt sie normalerweise von selbst, bevor ein Skript geschrieben wird; führen Sie es selbst aus, bevor Sie [ein gespeichertes Skript von Hand bearbeiten](/docs/de/workflows#edit-a-saved-script). Verfügbar, wenn dynamische Workflows aktiviert sind, und erfordert Claude Code v2.1.248 oder später |172| `/workflow-authoring` | **[Skill](/docs/de/skills#bundled-skills).** Laden Sie die Referenz zum Schreiben von [dynamischen Workflow](/docs/de/workflows) Skripten: die Skript-API, Resume-Verhalten, Qualitätsmuster und durchgearbeitete Beispiele. Claude lädt es normalerweise von selbst, bevor ein Skript geschrieben wird; führen Sie es selbst aus, bevor Sie [ein gespeichertes Skript von Hand bearbeiten](/docs/de/workflows#edit-a-saved-script). Verfügbar, wenn dynamische Workflows aktiviert sind, und erfordert Claude Code v2.1.248 oder später |

173| `/workflows` | Öffnen Sie die [Workflow](/docs/de/workflows#watch-the-run)-Fortschrittsansicht, um laufende und abgeschlossene Workflows zu beobachten, zu pausieren, fortzusetzen oder zu speichern |173| `/workflows` | Öffnen Sie die [Workflow](/docs/de/workflows#watch-the-run) Fortschrittsansicht, um laufende und abgeschlossene Workflows zu beobachten, zu pausieren, fortzusetzen oder zu speichern |

174 174 

175<h2 id="how-the-command-menu-matches-what-you-type">175<h2 id="how-the-command-menu-matches-what-you-type">

176 Wie das Befehlsmenü mit Ihrer Eingabe übereinstimmt176 Wie das Befehlsmenü mit Ihrer Eingabe übereinstimmt

Details

1634 1634 

1635Wenn Sie ein größeres Fenster benötigen, anstatt ein kleineres Gespräch zu führen, unterstützen Fable-Modelle, Sonnet 5 und später, Opus 4.6 und später sowie Sonnet 4.6 ein Kontextfenster mit 1 Million Token. Siehe [Erweiterter Kontext](/docs/de/model-config#extended-context) für die Verfügbarkeit nach Plan und wie Sie eine `[1m]` Modellvariante auswählen. Die Komprimierung funktioniert auf die gleiche Weise bei der größeren Grenze.1635Wenn Sie ein größeres Fenster benötigen, anstatt ein kleineres Gespräch zu führen, unterstützen Fable-Modelle, Sonnet 5 und später, Opus 4.6 und später sowie Sonnet 4.6 ein Kontextfenster mit 1 Million Token. Siehe [Erweiterter Kontext](/docs/de/model-config#extended-context) für die Verfügbarkeit nach Plan und wie Sie eine `[1m]` Modellvariante auswählen. Die Komprimierung funktioniert auf die gleiche Weise bei der größeren Grenze.

1636 1636 

1637Sonnet 5.5 und Sonnet 5 laufen mit dem 1M-Kontextfenster und haben keine `[1m]`-Variante zur Auswahl. Siehe [Sonnet 5.5 und Sonnet 5 Kontextfenster](/docs/de/model-config#sonnet-5-5-and-sonnet-5-context-window) für ihre automatischen Kompressionsschwellen und die LLM-Gateway-Ausnahme.1637Sonnet 5.5 und Sonnet 5 laufen mit dem 1M-Kontextfenster und haben keine `[1m]`-Variante zur Auswahl. Siehe [Sonnet 5.5 und Sonnet 5 Kontextfenster](/docs/de/model-config#sonnet-5-5-and-sonnet-5-context-window) für ihre automatischen Kompressionsschwellen und [das Kontextfenster hinter einem Gateway](/docs/de/model-config#context-window-behind-a-gateway) für die Größe des Fensters durch Claude Code, wenn Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway](/docs/de/llm-gateway) setzen.

1638 1638 

1639Der Punkt, an dem die automatische Komprimierung ausgeführt wird, hängt von Ihrem Modell und Ihrer Konfiguration ab. Siehe [Standardschwellen für automatische Komprimierung](/docs/de/model-config#default-auto-compact-thresholds) für die Grenzen pro Modell, und [Fenster für ein Gateway oder benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id), wenn Claude Code das falsche Fenster für Ihre Modell-ID annimmt, wie z. B. einen [LLM-Gateway](/docs/de/llm-gateway)-Alias.1639Der Punkt, an dem die automatische Komprimierung ausgeführt wird, hängt von Ihrem Modell und Ihrer Konfiguration ab. Siehe [Standardschwellen für automatische Komprimierung](/docs/de/model-config#default-auto-compact-thresholds) für die Grenzen pro Modell, und [Fenster für ein Gateway oder benutzerdefinierte Modell-ID korrigieren](/docs/de/model-config#correct-the-window-for-a-gateway-or-custom-model-id), wenn Claude Code das falsche Fenster für Ihre Modell-ID annimmt, wie z. B. einen [LLM-Gateway](/docs/de/llm-gateway)-Alias.

1640 1640 

costs.md +1 −1

Details

51 51 

52Die Misses, erwarteten Neuerstellungen und warmen oder kalten Teile der Zeile bedeuten Folgendes:52Die Misses, erwarteten Neuerstellungen und warmen oder kalten Teile der Zeile bedeuten Folgendes:

53 53 

54* **Misses**: Anfragen, die Inhalte erneut verarbeitet haben, die der Cache bereits enthielt, mit dem Zeitpunkt des letzten Miss und wie viele Token diese Anfragen zurück in den Cache geschrieben haben. Claude Code zählt eine Anfrage als Miss, wenn die Anfrage mehr als 5% und mindestens 2.000 Token von dem erneut verarbeitet hat, was sie aus dem Cache hätte lesen können. [Aktionen, die den Cache ungültig machen](/docs/de/prompt-caching#actions-that-invalidate-the-cache) listet die üblichen Ursachen auf. Wenn Claude Code eine wahrscheinliche Ursache für den letzten Miss identifizieren kann, benennt die Zeile sie auch, zum Beispiel `likely cause: tool definitions changed`. Der Text der wahrscheinlichen Ursache erfordert Claude Code v2.1.260 oder später.54* **Misses**: Anfragen, die Inhalte erneut verarbeitet haben, die der Cache bereits enthielt, mit dem Zeitpunkt des letzten Miss und wie viele Token diese Anfragen zurück in den Cache geschrieben haben. [Aktionen, die den Cache ungültig machen](/docs/de/prompt-caching#actions-that-invalidate-the-cache) listet die üblichen Ursachen auf. Wenn Claude Code eine wahrscheinliche Ursache für den letzten Miss identifizieren kann, benennt die Zeile sie auch, zum Beispiel `likely cause: tool definitions changed`. Der Text der wahrscheinlichen Ursache erfordert Claude Code v2.1.260 oder später.

55* **Erwartete Neuerstellungen**: Wenn Claude Code die Konversation selbst gerade umgeschrieben hat, durch [Komprimierung](/docs/de/prompt-caching#compacting-the-conversation) oder durch Löschen alter Tool-Ergebnisse aus dem Kontext, zählt es die gleiche Art von Miss als erwartete Neuerstellung statt. Dieser Teil erscheint nur, nachdem mindestens eine erwartete Neuerstellung stattgefunden hat.55* **Erwartete Neuerstellungen**: Wenn Claude Code die Konversation selbst gerade umgeschrieben hat, durch [Komprimierung](/docs/de/prompt-caching#compacting-the-conversation) oder durch Löschen alter Tool-Ergebnisse aus dem Kontext, zählt es die gleiche Art von Miss als erwartete Neuerstellung statt. Dieser Teil erscheint nur, nachdem mindestens eine erwartete Neuerstellung stattgefunden hat.

56* **Warm oder kalt**: ob das zwischengespeicherte Präfix noch innerhalb seiner [Cache-Lebensdauer](/docs/de/prompt-caching#cache-lifetime) liegt, mit dem geltenden TTL. Wenn der Cache kalt ist, zeigt die Zeile, wie lange die Sitzung untätig war. Wenn keine Antwort Cache-Token gemeldet hat, endet die Zeile stattdessen mit `no prompt caching reported by the API`.56* **Warm oder kalt**: ob das zwischengespeicherte Präfix noch innerhalb seiner [Cache-Lebensdauer](/docs/de/prompt-caching#cache-lifetime) liegt, mit dem geltenden TTL. Wenn der Cache kalt ist, zeigt die Zeile, wie lange die Sitzung untätig war. Wenn keine Antwort Cache-Token gemeldet hat, endet die Zeile stattdessen mit `no prompt caching reported by the API`.

57 57 

desktop.md +8 −0

Details

967 967 

968Um eine CLI-Sitzung in Desktop zu verschieben, führen Sie `/desktop` im Terminal aus. Claude speichert Ihre Sitzung und öffnet sie in der Desktop-App, dann beendet die CLI. Dieser Befehl ist auf macOS und x64 Windows verfügbar, wenn Sie mit einem Claude-Abonnement angemeldet sind. Er ist nicht mit API-Schlüssel-Authentifizierung oder auf Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry verfügbar.968Um eine CLI-Sitzung in Desktop zu verschieben, führen Sie `/desktop` im Terminal aus. Claude speichert Ihre Sitzung und öffnet sie in der Desktop-App, dann beendet die CLI. Dieser Befehl ist auf macOS und x64 Windows verfügbar, wenn Sie mit einem Claude-Abonnement angemeldet sind. Er ist nicht mit API-Schlüssel-Authentifizierung oder auf Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry verfügbar.

969 969 

970Aus Ihrer Shell öffnet [`claude --desktop`](/docs/de/cli-reference#cli-flags) Desktop direkt, ohne eine Terminal-Sitzung zu starten. Es erfordert Claude Code v2.1.285 oder später und hat die gleichen Plattform- und Anmeldeanforderungen wie `/desktop`. Ohne weitere Argumente öffnet es Desktop im aktuellen Verzeichnis. Um eine vorhandene CLI-Sitzung in Desktop zu öffnen, fügen Sie `--continue` für die neueste Konversation in diesem Verzeichnis hinzu, oder `--resume` mit der Sitzungs-ID, die `/status` anzeigt:

971 

972```bash theme={null}

973claude --desktop --resume <session-id>

974```

975 

976Claude Code gibt `Opening session <session-id> in Claude Desktop` aus, die Sitzung öffnet sich in der App, und der Befehl wird beendet. Ein Sitzungsname funktioniert nicht anstelle der ID. Claude Code verschiebt keine Sitzung, die in einem anderen Terminal offen ist oder noch im Hintergrund läuft. Wenn Claude Desktop nicht installiert ist, gibt der Befehl einen Download-Link aus und wird beendet.

977 

970Sie können auch eine CLI-Sitzung von innen in Desktop aufgreifen mit `/resume`. Der Befehl ist in lokalen Sitzungen verfügbar, nicht in SSH-, WSL- oder Cloud-Sitzungen.978Sie können auch eine CLI-Sitzung von innen in Desktop aufgreifen mit `/resume`. Der Befehl ist in lokalen Sitzungen verfügbar, nicht in SSH-, WSL- oder Cloud-Sitzungen.

971 979 

972Um eine Terminal-Sitzung in Desktop fortzusetzen:980Um eine Terminal-Sitzung in Desktop fortzusetzen:

desktop-linux.md +12 −0

Details

163 163 

164Wenn `claude-desktop` mit dieser Meldung beendet wird, haben Sie es als root gestartet. Melden Sie sich als normaler Benutzer an und starten Sie es von dort aus.164Wenn `claude-desktop` mit dieser Meldung beendet wird, haben Sie es als root gestartet. Melden Sie sich als normaler Benutzer an und starten Sie es von dort aus.

165 165 

166<h3 id="your-sign-in-won’t-be-saved-on-this-device">

167 Ihre Anmeldung wird auf diesem Gerät nicht gespeichert

168</h3>

169 

170Claude Desktop speichert Ihre Anmeldung im Schlüsselbund Ihres Desktops, z. B. GNOME Keyring oder KDE Wallet. Wenn es keinen entsperrten Schlüsselbund erreichen kann, wird Ihre Anmeldung nicht gespeichert und Sie melden sich jedes Mal an, wenn Sie die App starten. Wählen Sie den Fall aus, der zu Ihrem System passt:

171 

172* **Kein Schlüsselbund installiert, auf einem Desktop außer KDE Plasma**: Wenn Sie mit `--no-install-recommends` installiert haben oder auf einem minimalen Image, das empfohlene Pakete überspringt, hat apt keinen Schlüsselbund installiert. Installieren Sie GNOME Keyring mit `sudo apt install gnome-keyring`.

173* **KDE Plasma mit auch installiertem GNOME Keyring**: KDE Wallet wird mit dem Plasma-Desktop geliefert. Die beiden Schlüsselbunde sind in Konflikt, und Claude Desktop kann diese Meldung anzeigen, obwohl KDE Wallet funktioniert. Entfernen Sie den zusätzlichen mit `sudo apt remove gnome-keyring` und starten Sie Ihren Computer neu.

174* **Schlüsselbund installiert, aber gesperrt**: Entsperren Sie ihn.

175 

176Nach der Behebung starten Sie die App neu und melden Sie sich an. Beenden Sie die App dann und starten Sie sie erneut, um zu bestätigen, dass die App mit Ihrer Anmeldung geöffnet wird.

177 

166<h3 id="cowork-isn’t-available">178<h3 id="cowork-isn’t-available">

167 Cowork ist nicht verfügbar179 Cowork ist nicht verfügbar

168</h3>180</h3>

env-vars.md +8 −6

Details

34 claude34 claude

35 ```35 ```

36 36 

37 Um sie für jede Sitzung festzulegen, fügen Sie die `export`-Zeile zu `~/.bashrc`, `~/.zshrc` oder der Profilldatei Ihrer Shell hinzu.37 Um sie für jede Sitzung festzulegen, fügen Sie die `export`-Zeile zu `~/.bashrc`, `~/.zshrc` oder der Profildatei Ihrer Shell hinzu.

38 </Tab>38 </Tab>

39 39 

40 <Tab title="Windows PowerShell">40 <Tab title="Windows PowerShell">


56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59Die Zuweisungszeile gibt bei erfolgreicher Ausführung nichts aus. Bestätigen Sie daher, dass die Variable festgelegt ist, indem Sie sie in derselben Shell ausdrucken, bevor Sie `claude` ausführen:59Die Zuweisungszeile gibt bei erfolgreicher Ausführung nichts aus. Um zu bestätigen, dass die Variable festgelegt ist, geben Sie sie in derselben Shell aus:

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS, Linux, WSL">62 <Tab title="macOS, Linux, WSL">


127Numerische Variablen wie Timeouts, Token-Budgets und Wiederholungsanzahlen akzeptieren wissenschaftliche Notation und Zifferntrennzeichen zusätzlich zu einfachen Ziffern, außer wo in der Zeile einer Variablen vermerkt ist, dass sie nur einfache Ziffern akzeptiert. Zum Beispiel liest Claude Code `2e3` als 2000 und `64_000` als 64000. Vor v2.1.211 konnten diese Schreibweisen stillschweigend einen viel kleineren Wert setzen, wie `1e6` das Timeout auf 1 setzen.127Numerische Variablen wie Timeouts, Token-Budgets und Wiederholungsanzahlen akzeptieren wissenschaftliche Notation und Zifferntrennzeichen zusätzlich zu einfachen Ziffern, außer wo in der Zeile einer Variablen vermerkt ist, dass sie nur einfache Ziffern akzeptiert. Zum Beispiel liest Claude Code `2e3` als 2000 und `64_000` als 64000. Vor v2.1.211 konnten diese Schreibweisen stillschweigend einen viel kleineren Wert setzen, wie `1e6` das Timeout auf 1 setzen.

128 128 

129<Note>129<Note>

130 Für Variablen, die ein Verhalten ein- oder ausschalten, setzen Sie `1` oder `true`, um es einzuschalten, und `0` oder `false`, um es auszuschalten, in beliebiger Schreibweise.130 Für Variablen, die ein Verhalten ein- oder ausschalten, setzen Sie `1`, `true`, `yes` oder `on`, um es einzuschalten, und `0`, `false`, `no` oder `off`, um es auszuschalten, in beliebiger Schreibweise.

131 131 

132 Einige Variablen lesen nur, ob Sie sie überhaupt gesetzt haben, daher schaltet jeder nicht-leere Wert einschließlich `0` das Verhalten ein, und Sie schalten das Verhalten aus, indem Sie die Variable nicht setzen oder auf einen leeren Wert setzen. Diese Variablen funktionieren so:132 Einige Variablen lesen nur, ob Sie sie überhaupt gesetzt haben, daher schaltet jeder nicht-leere Wert einschließlich `0` das Verhalten ein, und Sie schalten das Verhalten aus, indem Sie die Variable nicht setzen oder auf einen leeren Wert setzen. Diese Variablen funktionieren so:

133 133 


192| `API_FORCE_IDLE_TIMEOUT` | Überschreiben Sie das 5-Minuten-Body-Idle-Timeout, das eine Streaming-Modell-Antwort abbricht, wenn keine Bytes ankommen. Setzen Sie auf `0`, um das Timeout auszuschalten, zum Beispiel wenn ein langsames [Gateway](/docs/de/llm-gateway) oder lokales Modell länger als 5 Minuten zwischen Chunks pausiert, oder `1`, um es für jeden Provider einzuschalten. Wenn nicht gesetzt, ist das Timeout bei Providern außer der direkten Anthropic API und [Claude Platform on AWS](/docs/de/claude-platform-on-aws) aktiv. Die [Stream-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) laufen unabhängig davon und brechen eine lange stille Pause ab, auch wenn Sie hier `0` setzen |192| `API_FORCE_IDLE_TIMEOUT` | Überschreiben Sie das 5-Minuten-Body-Idle-Timeout, das eine Streaming-Modell-Antwort abbricht, wenn keine Bytes ankommen. Setzen Sie auf `0`, um das Timeout auszuschalten, zum Beispiel wenn ein langsames [Gateway](/docs/de/llm-gateway) oder lokales Modell länger als 5 Minuten zwischen Chunks pausiert, oder `1`, um es für jeden Provider einzuschalten. Wenn nicht gesetzt, ist das Timeout bei Providern außer der direkten Anthropic API und [Claude Platform on AWS](/docs/de/claude-platform-on-aws) aktiv. Die [Stream-Watchdogs](/docs/de/network-config#streaming-idle-watchdogs) laufen unabhängig davon und brechen eine lange stille Pause ab, auch wenn Sie hier `0` setzen |

193| `API_TIMEOUT_MS` | Timeout für API-Anfragen in Millisekunden (Standard: 600000 oder 10 Minuten; Maximum: 2147483647). Erhöhen Sie dies, wenn Anfragen bei langsamen Netzwerken oder beim Routing durch einen Proxy timeout. Werte über dem Maximum führen zu Überläufen des zugrunde liegenden Timers und verursachen, dass Anfragen sofort fehlschlagen |193| `API_TIMEOUT_MS` | Timeout für API-Anfragen in Millisekunden (Standard: 600000 oder 10 Minuten; Maximum: 2147483647). Erhöhen Sie dies, wenn Anfragen bei langsamen Netzwerken oder beim Routing durch einen Proxy timeout. Werte über dem Maximum führen zu Überläufen des zugrunde liegenden Timers und verursachen, dass Anfragen sofort fehlschlagen |

194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API-Schlüssel für Authentifizierung (siehe [Amazon Bedrock API-Schlüssel](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API-Schlüssel für Authentifizierung (siehe [Amazon Bedrock API-Schlüssel](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Standard-Timeout für einen Vordergrund-Bash- oder PowerShell-Tool-Befehl in Millisekunden (Standard: 120000 oder 2 Minuten). Ein Standard länger als 30 Minuten wird auch zum Standard-[Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#background-commands). Das Hintergrund-Zeitlimit erfordert Claude Code v2.1.285 oder später |195| `BASH_DEFAULT_TIMEOUT_MS` | Standard-Timeout für einen Vordergrund-Bash- oder PowerShell-Tool-Befehl in Millisekunden (Standard: 120000 oder 2 Minuten). Ein Standard länger als 30 Minuten wird auch zum Standard-[Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#time-limit-for-background-commands). Das Hintergrund-Zeitlimit erfordert Claude Code v2.1.285 oder später |

196| `BASH_MAX_OUTPUT_LENGTH` | Maximale Anzahl von Zeichen der Bash-Ausgabe, die Claude Code in das Ergebnis eines Befehls zurückliest (Standard: 30000; Maximum: 150000). Wenn Sie die [`bashOutputMaxChars`](/docs/de/settings-reference#bashoutputmaxchars)-Einstellung setzen, ignoriert Claude Code diese Variable. Siehe [Ausgabebegrenzungen](/docs/de/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Maximale Anzahl von Zeichen der Bash-Ausgabe, die Claude Code in das Ergebnis eines Befehls zurückliest (Standard: 30000; Maximum: 150000). Wenn Sie die [`bashOutputMaxChars`](/docs/de/settings-reference#bashoutputmaxchars)-Einstellung setzen, ignoriert Claude Code diese Variable. Siehe [Ausgabebegrenzungen](/docs/de/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Maximales Timeout, das das Modell für einen Vordergrund-Bash- oder PowerShell-Tool-Befehl setzen kann, in Millisekunden (Standard: 600000 oder 10 Minuten). Die effektive Obergrenze ist die größere von dieser und `BASH_DEFAULT_TIMEOUT_MS`. Eine effektive Obergrenze länger als 2 Stunden wird auch zum Maximum-[Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#background-commands). Das Hintergrund-Zeitlimit erfordert Claude Code v2.1.285 oder später |197| `BASH_MAX_TIMEOUT_MS` | Maximales Timeout, das das Modell für einen Vordergrund-Bash- oder PowerShell-Tool-Befehl setzen kann, in Millisekunden (Standard: 600000 oder 10 Minuten). Die effektive Obergrenze ist die größere von dieser und `BASH_DEFAULT_TIMEOUT_MS`. Eine effektive Obergrenze länger als 2 Stunden wird auch zum Maximum-[Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#time-limit-for-background-commands). Das Hintergrund-Zeitlimit erfordert Claude Code v2.1.285 oder später |

198| `BETA_TRACING_ENDPOINT` | OTLP-Endpunkt für [detailliertes Beta-Tracing](/docs/de/monitoring-usage#traces-beta): mit `ENABLE_BETA_TRACING_DETAILED=1` gehen Logs und Traces dorthin anstatt zu den konfigurierten Exportern. Setzen Sie es in Ihrer Shell, Benutzereinstellungen oder verwalteten Einstellungen. Wird in [Projekt- und lokalen Einstellungen](/docs/de/settings-reference#variables-claude-code-ignores-in-env) ignoriert |198| `BETA_TRACING_ENDPOINT` | OTLP-Endpunkt für [detailliertes Beta-Tracing](/docs/de/monitoring-usage#traces-beta): mit `ENABLE_BETA_TRACING_DETAILED=1` gehen Logs und Traces dorthin anstatt zu den konfigurierten Exportern. Setzen Sie es in Ihrer Shell, Benutzereinstellungen oder verwalteten Einstellungen. Wird in [Projekt- und lokalen Einstellungen](/docs/de/settings-reference#variables-claude-code-ignores-in-env) ignoriert |

199| `CCR_FORCE_BUNDLE` | Setzen Sie auf `1`, um [`claude --cloud`](/docs/de/claude-code-on-the-web#send-local-repositories-without-github) zu zwingen, Ihr lokales Repository zu bündeln und hochzuladen, anstatt es von seinem Remote zu klonen |199| `CCR_FORCE_BUNDLE` | Setzen Sie auf `1`, um [`claude --cloud`](/docs/de/claude-code-on-the-web#send-local-repositories-without-github) zu zwingen, Ihr lokales Repository zu bündeln und hochzuladen, anstatt es von seinem Remote zu klonen |

200| `CLAUDECODE` | Setzen Sie auf `1` in Subprozessen, die Claude Code spawnt (Bash- und PowerShell-Tools, tmux-Sitzungen, [Hook](/docs/de/hooks)-Befehle, [Status-Zeile](/docs/de/statusline)-Befehle, stdio [MCP-Server](/docs/de/mcp)-Subprozesse). IDE-Erweiterungen setzen dies auch in ihren integrierten Terminals. Verwenden Sie dies, um zu erkennen, wenn ein Skript in einem Subprocess läuft, der von Claude Code spawnt wurde. Um zu überprüfen, ob der aktuelle Prozess direkt von einem Tool-Aufruf oder Hook spawnt wurde, anstatt in einem stdio MCP-Server, den Claude Code gestartet hat, verwenden Sie stattdessen `CLAUDE_CODE_CHILD_SESSION` |200| `CLAUDECODE` | Setzen Sie auf `1` in Subprozessen, die Claude Code spawnt (Bash- und PowerShell-Tools, tmux-Sitzungen, [Hook](/docs/de/hooks)-Befehle, [Status-Zeile](/docs/de/statusline)-Befehle, stdio [MCP-Server](/docs/de/mcp)-Subprozesse). IDE-Erweiterungen setzen dies auch in ihren integrierten Terminals. Verwenden Sie dies, um zu erkennen, wenn ein Skript in einem Subprocess läuft, der von Claude Code spawnt wurde. Um zu überprüfen, ob der aktuelle Prozess direkt von einem Tool-Aufruf oder Hook spawnt wurde, anstatt in einem stdio MCP-Server, den Claude Code gestartet hat, verwenden Sie stattdessen `CLAUDE_CODE_CHILD_SESSION` |


263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie auf `1`, um Datei-[Checkpointing](/docs/de/checkpointing) zu deaktivieren. Der `/rewind`-Befehl kann Code-Änderungen nicht wiederherstellen. Überschreibt die [`fileCheckpointingEnabled`](/docs/de/settings-reference#filecheckpointingenabled)-Einstellung |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie auf `1`, um Datei-[Checkpointing](/docs/de/checkpointing) zu deaktivieren. Der `/rewind`-Befehl kann Code-Änderungen nicht wiederherstellen. Überschreibt die [`fileCheckpointingEnabled`](/docs/de/settings-reference#filecheckpointingenabled)-Einstellung |

264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie auf `1`, um integrierte Commit- und PR-Workflow-Anweisungen und den Git-Status-Snapshot aus Claude's Kontext zu entfernen. Nützlich bei Verwendung Ihrer eigenen Git-Workflow-Skills. Hat Vorrang vor der [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions)-Einstellung, wenn gesetzt |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie auf `1`, um integrierte Commit- und PR-Workflow-Anweisungen und den Git-Status-Snapshot aus Claude's Kontext zu entfernen. Nützlich bei Verwendung Ihrer eigenen Git-Workflow-Skills. Hat Vorrang vor der [`includeGitInstructions`](/docs/de/settings-reference#includegitinstructions)-Einstellung, wenn gesetzt |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie auf `1`, um die automatische Neuzuordnung von Opus 4.0 und 4.1 zur aktuellen Opus-Version auf der Anthropic API zu verhindern. Verwenden Sie dies, wenn Sie absichtlich ein älteres Modell anheften möchten. Die Neuzuordnung läuft nicht auf Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie auf `1`, um die automatische Neuzuordnung von Opus 4.0 und 4.1 zur aktuellen Opus-Version auf der Anthropic API zu verhindern. Verwenden Sie dies, wenn Sie absichtlich ein älteres Modell anheften möchten. Die Neuzuordnung läuft nicht auf Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry |

266| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Setzen Sie auf `1`, um Claude Code auf [Amazon Bedrock](/docs/de/amazon-bedrock#when-a-model-is-disabled-mid-session) und [Google Cloud's Agent Platform](/docs/de/google-vertex-ai#when-a-model-is-disabled-mid-session) davon abzuhalten, zu einem älteren Modell zu wechseln, wenn Ihr Konto mid-session den Zugriff auf das Modell einer Sitzung verliert; die abgelehnte Anfrage schlägt sofort fehl statt. Eine [Fallback-Modell-Kette](/docs/de/model-config#fallback-model-chains), die Sie konfigurieren, wechselt immer noch bei dieser Ablehnung, und die [Startup-Modell-Prüfungen](/docs/de/amazon-bedrock#startup-model-checks) fallen immer noch beim Start zurück. Erfordert Claude Code v2.1.285 oder später |

266| `CLAUDE_CODE_DISABLE_MOUSE` | Setzen Sie auf `1`, um die Mausverfolgung im [Vollbild-Rendering](/docs/de/fullscreen) zu deaktivieren. Tastatur-Scrolling mit `PgUp` und `PgDn` funktioniert immer noch. Verwenden Sie dies, um das native Copy-on-Select-Verhalten Ihres Terminals zu behalten |267| `CLAUDE_CODE_DISABLE_MOUSE` | Setzen Sie auf `1`, um die Mausverfolgung im [Vollbild-Rendering](/docs/de/fullscreen) zu deaktivieren. Tastatur-Scrolling mit `PgUp` und `PgDn` funktioniert immer noch. Verwenden Sie dies, um das native Copy-on-Select-Verhalten Ihres Terminals zu behalten |

267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Setzen Sie auf `1`, um Click-, Drag- und Hover-Handling im [Vollbild-Rendering](/docs/de/fullscreen) zu deaktivieren, während Sie Mausrad-Scrolling behalten. Verwenden Sie dies, wenn Sie möchten, dass Rad-Scroll in Claude Code funktioniert, aber nicht möchten, dass Klicks den Cursor positionieren, Tool-Ausgabe erweitern oder Links öffnen. `CLAUDE_CODE_DISABLE_MOUSE` hat Vorrang, wenn beide gesetzt sind. Erfordert Claude Code v2.1.195 oder später |268| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Setzen Sie auf `1`, um Click-, Drag- und Hover-Handling im [Vollbild-Rendering](/docs/de/fullscreen) zu deaktivieren, während Sie Mausrad-Scrolling behalten. Verwenden Sie dies, wenn Sie möchten, dass Rad-Scroll in Claude Code funktioniert, aber nicht möchten, dass Klicks den Cursor positionieren, Tool-Ausgabe erweitern oder Links öffnen. `CLAUDE_CODE_DISABLE_MOUSE` hat Vorrang, wenn beide gesetzt sind. Erfordert Claude Code v2.1.195 oder später |

268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Setzen Sie auf `1`, um Claude Code davon abzuhalten, das [mTLS-Client-Zertifikat und den Schlüssel](/docs/de/network-config#mtls-authentication) erneut zu lesen, wenn eine API-Anfrage mit einem Verbindungs-Level-Fehler fehlschlägt, wie ein Verbindungs-Reset oder ein TLS-Handshake-Fehler. Mit dem Reload deaktiviert lädt Claude Code rotierte Dateien nur, wenn es nächstes Mal Einstellungen anwendet oder beim nächsten Start. Erfordert Claude Code v2.1.232 oder später |269| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Setzen Sie auf `1`, um Claude Code davon abzuhalten, das [mTLS-Client-Zertifikat und den Schlüssel](/docs/de/network-config#mtls-authentication) erneut zu lesen, wenn eine API-Anfrage mit einem Verbindungs-Level-Fehler fehlschlägt, wie ein Verbindungs-Reset oder ein TLS-Handshake-Fehler. Mit dem Reload deaktiviert lädt Claude Code rotierte Dateien nur, wenn es nächstes Mal Einstellungen anwendet oder beim nächsten Start. Erfordert Claude Code v2.1.232 oder später |


315| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Wie viele [Subagents](/docs/de/sub-agents#concurrent-subagent-limit) in einer Sitzung laufen können, bevor das Agent-Tool sich weigert, einen anderen zu spawnen (Standard: 20). Akzeptiert eine positive ganze Zahl in einfachen Ziffern; alles andere wird ignoriert, daher kann die Variable die Obergrenze anpassen, aber nicht deaktivieren. Erfordert Claude Code v2.1.217 oder später |316| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Wie viele [Subagents](/docs/de/sub-agents#concurrent-subagent-limit) in einer Sitzung laufen können, bevor das Agent-Tool sich weigert, einen anderen zu spawnen (Standard: 20). Akzeptiert eine positive ganze Zahl in einfachen Ziffern; alles andere wird ignoriert, daher kann die Variable die Obergrenze anpassen, aber nicht deaktivieren. Erfordert Claude Code v2.1.217 oder später |

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

317| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Maximale Länge in Zeichen jeder MCP-Tool-Beschreibung und jeder MCP-Server-Anweisungen, die Claude Code an das Modell sendet (Standard: 2048). Claude Code [kürzt längeren Text](/docs/de/mcp#for-mcp-server-authors). Akzeptiert eine positive ganze Zahl in einfachen Ziffern. Alles andere wird ignoriert und der Standard gilt. Erfordert Claude Code v2.1.280 oder später |318| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Maximale Länge in Zeichen jeder MCP-Tool-Beschreibung und jeder MCP-Server-Anweisungen, die Claude Code an das Modell sendet (Standard: 2048). Claude Code [kürzt längeren Text](/docs/de/mcp#for-mcp-server-authors). Akzeptiert eine positive ganze Zahl in einfachen Ziffern. Alles andere wird ignoriert und der Standard gilt. Erfordert Claude Code v2.1.280 oder später |

318| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Setzen Sie die maximale Anzahl von Output-Tokens für die meisten Anfragen. Standardwerte und Obergrenzen variieren je nach Modell; siehe [Max Output Tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code standardmäßig auf 32000 für Modell-IDs, die es nicht erkennt, wie Gateway-spezifische Namen, und senkt Werte über einer Modell-Obergrenze auf die Obergrenze. Das Erhöhen dieses Wertes reduziert das verfügbare effektive Kontext-Fenster, bevor [Auto-Compaction](/docs/de/costs#reduce-token-usage) ausgelöst wird |319| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Setzen Sie die maximale Anzahl von Output-Tokens für die meisten Anfragen. Standardwerte und Obergrenzen variieren je nach Modell; siehe [Max Output Tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code sendet einen Standard von 32000 für Modell-IDs, die es nicht erkennt, wie Gateway-spezifische Namen, und senkt Werte über einer Modell-Obergrenze auf die Obergrenze. Das Erhöhen dieses Wertes reduziert das verfügbare effektive Kontext-Fenster, bevor [Auto-Compaction](/docs/de/costs#reduce-token-usage) ausgelöst wird |

319| `CLAUDE_CODE_MAX_RETRIES` | Überschreiben Sie die Anzahl der Versuche, fehlgeschlagene API-Anfragen zu wiederholen (Standard: 10). Begrenzt auf 15 ab v2.1.186; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standard und entfernt die Obergrenze. Für unbeaufsichtigte Sitzungen, die längere Ausfallzeiten abwarten müssen, setzen Sie stattdessen `CLAUDE_CODE_RETRY_WATCHDOG` |320| `CLAUDE_CODE_MAX_RETRIES` | Überschreiben Sie die Anzahl der Versuche, fehlgeschlagene API-Anfragen zu wiederholen (Standard: 10). Begrenzt auf 15 ab v2.1.186; ab v2.1.199 erhöht `CLAUDE_CODE_RETRY_WATCHDOG` den Standard und entfernt die Obergrenze. Für unbeaufsichtigte Sitzungen, die längere Ausfallzeiten abwarten müssen, setzen Sie stattdessen `CLAUDE_CODE_RETRY_WATCHDOG` |

320| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Entfernt in v2.1.224 und jetzt ein No-Op. Begrenzte zuvor die Gesamtzahl der [Subagents](/docs/de/sub-agents), die Claude mit dem Agent-Tool in einer Sitzung spawnen konnte (Standard: 200); Spawning über die Obergrenze hinaus schlägt mit `Subagent spawn limit reached` fehl. Die [Concurrent Subagent Limit](/docs/de/sub-agents#concurrent-subagent-limit) und die [Depth Limit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) gelten immer noch |321| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Entfernt in v2.1.224 und jetzt ein No-Op. Begrenzte zuvor die Gesamtzahl der [Subagents](/docs/de/sub-agents), die Claude mit dem Agent-Tool in einer Sitzung spawnen konnte (Standard: 200); Spawning über die Obergrenze hinaus schlägt mit `Subagent spawn limit reached` fehl. Die [Concurrent Subagent Limit](/docs/de/sub-agents#concurrent-subagent-limit) und die [Depth Limit](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) gelten immer noch |

321| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Anzahl der [Subagent-Schichten](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) unter der Hauptkonversation (Standard: 3). Bei dem Standard können Subagents ihre eigenen spawnen, und ein Subagent in der dritten Schicht kann nicht weiter spawnen; setzen Sie `1`, um Verschachtelung auszuschalten. In v2.1.217 bis v2.1.218 war der Standard 1, daher konnte ein Subagent nicht sein eigenes spawnen, es sei denn, Sie erhöhten die Obergrenze; v2.1.219 erhöhte den Standard auf 3. Akzeptiert eine positive ganze Zahl in einfachen Ziffern; alles andere wird ignoriert, daher kann die Obergrenze angepasst, aber nicht entfernt werden. Erfordert Claude Code v2.1.217 oder später |322| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Anzahl der [Subagent-Schichten](/docs/de/sub-agents#let-subagents-spawn-their-own-subagents) unter der Hauptkonversation (Standard: 3). Bei dem Standard können Subagents ihre eigenen spawnen, und ein Subagent in der dritten Schicht kann nicht weiter spawnen; setzen Sie `1`, um Verschachtelung auszuschalten. In v2.1.217 bis v2.1.218 war der Standard 1, daher konnte ein Subagent nicht sein eigenes spawnen, es sei denn, Sie erhöhten die Obergrenze; v2.1.219 erhöhte den Standard auf 3. Akzeptiert eine positive ganze Zahl in einfachen Ziffern; alles andere wird ignoriert, daher kann die Obergrenze angepasst, aber nicht entfernt werden. Erfordert Claude Code v2.1.217 oder später |


381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Setzen Sie auf `1`, um die Client-seitige [Fast Mode](/docs/de/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)-Verfügbarkeitsprüfung zu überspringen, für Proxies, die die Prüfung's Anfrage abfangen, anstatt sie zu verweigern. Die API lehnt immer noch Fast-Mode-Anfragen ab, wenn Ihre Organisation Fast Mode deaktiviert hat |382| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Setzen Sie auf `1`, um die Client-seitige [Fast Mode](/docs/de/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)-Verfügbarkeitsprüfung zu überspringen, für Proxies, die die Prüfung's Anfrage abfangen, anstatt sie zu verweigern. Die API lehnt immer noch Fast-Mode-Anfragen ab, wenn Ihre Organisation Fast Mode deaktiviert hat |

382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Überspringen Sie Azure-Authentifizierung für Microsoft Foundry, für einen Proxy oder ein Gateway, das seinen eigenen `Authorization`-Header injiziert. Claude Code sendet Anfragen ohne Azure-Credential und bewahrt den `Authorization`-Header, den Sie liefern, zum Beispiel durch `ANTHROPIC_CUSTOM_HEADERS`. Wird ignoriert, wenn `ANTHROPIC_FOUNDRY_API_KEY` oder `ANTHROPIC_FOUNDRY_AUTH_TOKEN` gesetzt ist. Vor v2.1.203 ließ diese Variable den Microsoft Foundry-Client unfähig, Anfragen zu senden, es sei denn, ein API-Schlüssel war auch gesetzt |383| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Überspringen Sie Azure-Authentifizierung für Microsoft Foundry, für einen Proxy oder ein Gateway, das seinen eigenen `Authorization`-Header injiziert. Claude Code sendet Anfragen ohne Azure-Credential und bewahrt den `Authorization`-Header, den Sie liefern, zum Beispiel durch `ANTHROPIC_CUSTOM_HEADERS`. Wird ignoriert, wenn `ANTHROPIC_FOUNDRY_API_KEY` oder `ANTHROPIC_FOUNDRY_AUTH_TOKEN` gesetzt ist. Vor v2.1.203 ließ diese Variable den Microsoft Foundry-Client unfähig, Anfragen zu senden, es sei denn, ein API-Schlüssel war auch gesetzt |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Überspringen Sie AWS-Authentifizierung für Amazon Bedrock Mantle (zum Beispiel, wenn Sie ein LLM-Gateway verwenden) |384| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Überspringen Sie AWS-Authentifizierung für Amazon Bedrock Mantle (zum Beispiel, wenn Sie ein LLM-Gateway verwenden) |

385| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Die [Startup-Modell-Prüfungen](/docs/de/amazon-bedrock#startup-model-checks) auf [Amazon Bedrock](/docs/de/amazon-bedrock) und [Google Cloud's Agent Platform](/docs/de/google-vertex-ai) merken sich auf dieser Maschine, welche Modelle sie fanden, dass Ihr Konto nicht aufrufen kann, für bis zu einen Tag. Setzen Sie auf `1`, um diese Erinnerung auszuschalten. Erfordert Claude Code v2.1.285 oder später |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Setzen Sie auf `1`, um das Schreiben von Prompt-Verlauf und Sitzungs-Transkripten auf die Festplatte zu überspringen. Sitzungen, die mit dieser Variable gesetzt gestartet werden, erscheinen nicht in `--resume`, `--continue` oder Up-Arrow-Verlauf. Nützlich für ephemere Skript-Sitzungen |386| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Setzen Sie auf `1`, um das Schreiben von Prompt-Verlauf und Sitzungs-Transkripten auf die Festplatte zu überspringen. Sitzungen, die mit dieser Variable gesetzt gestartet werden, erscheinen nicht in `--resume`, `--continue` oder Up-Arrow-Verlauf. Nützlich für ephemere Skript-Sitzungen |

385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Überspringen Sie Google-Authentifizierung für Google Cloud's Agent Platform (zum Beispiel, wenn Sie ein LLM-Gateway verwenden) |387| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Überspringen Sie Google-Authentifizierung für Google Cloud's Agent Platform (zum Beispiel, wenn Sie ein LLM-Gateway verwenden) |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Setzen Sie auf `1`, um eine Sitzung, die mit `--output-format stream-json` gestartet wird, eine [Result-Nachricht zu schreiben, die benennt, warum Claude Code sich weigerte zu starten](/docs/de/agent-sdk/typescript#startup_failure_reason) für Startup-Fehler, die andernfalls nur mit stderr enden. Erfordert Claude Code v2.1.274 oder später |388| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Setzen Sie auf `1`, um eine Sitzung, die mit `--output-format stream-json` gestartet wird, eine [Result-Nachricht zu schreiben, die benennt, warum Claude Code sich weigerte zu starten](/docs/de/agent-sdk/typescript#startup_failure_reason) für Startup-Fehler, die andernfalls nur mit stderr enden. Erfordert Claude Code v2.1.274 oder später |

errors.md +62 −34

Details

322| `Transcript writes are failing (...)` | [Warnungen zum Speichern von Sitzungen](#transcript-writes-are-failing) |322| `Transcript writes are failing (...)` | [Warnungen zum Speichern von Sitzungen](#transcript-writes-are-failing) |

323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Warnungen zum Speichern von Sitzungen](#transcript-saving-is-off-skip-prompt-history) |323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Warnungen zum Speichern von Sitzungen](#transcript-saving-is-off-skip-prompt-history) |

324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Warnungen zum Speichern von Sitzungen](#transcript-saving-is-off-child-session-marker) |324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Warnungen zum Speichern von Sitzungen](#transcript-saving-is-off-child-session-marker) |

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

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

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

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


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

332| `Managed settings were not approved; exiting without applying them.` | [Konfigurationswarnungen](#managed-settings-were-not-approved) |332| `Managed settings were not approved; exiting without applying them.` | [Konfigurationswarnungen](#managed-settings-were-not-approved) |

333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Konfigurationswarnungen](#managed-settings-block-the-default-model) |333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Konfigurationswarnungen](#managed-settings-block-the-default-model) |

334| `Your organization's managed settings allow Claude Code to use: <providers>` | [Konfigurationswarnungen](#managed-settings-dont-allow-this-api-provider) |

335| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Konfigurationswarnungen](#managed-settings-dont-allow-this-api-provider) |

334| `MCP server <name> is blocked by enterprise managed policy` | [Konfigurationswarnungen](#mcp-server-is-blocked-by-enterprise-managed-policy) |336| `MCP server <name> is blocked by enterprise managed policy` | [Konfigurationswarnungen](#mcp-server-is-blocked-by-enterprise-managed-policy) |

335| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |337| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |

336| `Managed settings drop-in directory could not be read` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |338| `Managed settings drop-in directory could not be read` | [Konfigurationswarnungen](#managed-settings-document-could-not-be-parsed) |

339| `Unable to read managed policy settings` | [Konfigurationswarnungen](#unable-to-read-managed-policy-settings) |

337| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Konfigurationswarnungen](#otelheadershelper-failed) |340| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Konfigurationswarnungen](#otelheadershelper-failed) |

338| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Konfigurationswarnungen](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |341| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Konfigurationswarnungen](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

339| `headersHelper not run — this workspace has no persisted trust` | [Konfigurationswarnungen](#headershelper-not-run) |342| `headersHelper not run — this workspace has no persisted trust` | [Konfigurationswarnungen](#headershelper-not-run) |


3659 Claude Desktop konnte nicht geöffnet werden3662 Claude Desktop konnte nicht geöffnet werden

3660</h3>3663</h3>

3661 3664 

3662Sie haben [`/desktop`](/docs/de/desktop#coming-from-the-cli) oder seinen Alias `/app` ausgeführt, und der System-Befehl, den Claude Code zum Öffnen von Claude Desktop verwendet, ist fehlgeschlagen. Die Sitzung bleibt im Terminal.3665Sie haben [`/desktop`](/docs/de/desktop#coming-from-the-cli) oder seinen Alias `/app` in einer Sitzung ausgeführt, oder [`claude --desktop`](/docs/de/cli-reference#cli-flags) in Ihrer Shell, und der System-Befehl, den Claude Code zum Öffnen von Claude Desktop verwendet, ist fehlgeschlagen. Nach `/desktop` bleibt die Sitzung im Terminal; `claude --desktop` druckt die Meldung ohne das `Error:`-Präfix und beendet sich mit Status 1.

3666 

3667Der Text in Klammern benennt den Befehl, der fehlgeschlagen ist, mit seinem Exit-Status und der ersten Zeile seiner Fehlerausgabe, wenn er sie erzeugt hat. Auf macOS ist dieser Befehl `open`, wie in diesem Beispiel; unter Windows ist es `rundll32`:

3663 3668 

3664```text theme={null}3669```text theme={null}

3665Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.3670Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

3666```3671```

3667 3672 

3668**Was zu tun ist:**3673**Was zu tun ist:**

3669 3674 

3670* Öffnen Sie Claude Desktop selbst, dann führen Sie `/desktop` erneut aus3675* Öffnen Sie Claude Desktop selbst, dann führen Sie `/desktop` oder `claude --desktop` erneut aus

3671* Um die vollständige Fehlerausgabe dieses Befehls zu lesen, aktivieren Sie Debug-Protokollierung mit `/debug`, führen Sie `/desktop` erneut aus, und überprüfen Sie das Debug-Protokoll3676* Um die vollständige Fehlerausgabe dieses Befehls zu lesen, aktivieren Sie Debug-Protokollierung mit `/debug` und führen Sie `/desktop` erneut aus, oder führen Sie `claude --desktop --debug-file <path>` aus, dann überprüfen Sie das Debug-Protokoll

3672 3677 

3673Vor v2.1.275 war die Meldung `Failed to open Claude Desktop. Please try opening it manually.` und sagte nicht, was fehlgeschlagen ist.3678Vor v2.1.285 endete die Meldung mit `Open Claude Desktop and run /desktop again.` Vor v2.1.275 war es `Failed to open Claude Desktop. Please try opening it manually.` und sagte nicht, was fehlgeschlagen ist.

3674 3679 

3675<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3680<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3676 /terminal-setup hat Ihre Zed-Tastaturzuordnung unverändert gelassen3681 /terminal-setup hat Ihre Zed-Tastaturzuordnung unverändert gelassen


3923commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform3928commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

3924```3929```

3925 3930 

3926Vor v2.1.251 lud Claude Code einen `commands`-Pfad, der in einem Marketplace-Eintrag deklariert war, auch wenn er außerhalb des Plugin-Verzeichnisses zeigte. Claude Code lehnte bereits Pfade ab, die in `plugin.json` deklariert waren, und die anderen Komponentenpfade in einem Marketplace-Eintrag.3931Vor v2.1.251 lud Claude Code einen `commands`-Pfad, der in einem Marketplace-Eintrag deklariert war, auch wenn er außerhalb des Plugin-Verzeichnisses zeigte.

3927 3932 

3928Vor v2.1.257 überprüfte die Kontrolle nur die Schreibweise des Pfads, nicht wo ein Symlink führt.3933Vor v2.1.257 überprüfte die Kontrolle nur die Schreibweise des Pfads, nicht wo ein Symlink führt.

3929 3934 


4003* `Failed to load marketplace configuration`: Die Datei ist kein gültiges JSON oder kann nicht gelesen werden. Eine leere Datei schlägt auf diese Weise fehl.4008* `Failed to load marketplace configuration`: Die Datei ist kein gültiges JSON oder kann nicht gelesen werden. Eine leere Datei schlägt auf diese Weise fehl.

4004* `Marketplace configuration file is corrupted`: Die Datei ist gültiges JSON, aber ihr Inhalt stimmt nicht mit dem Registrierungsschema überein.4009* `Marketplace configuration file is corrupted`: Die Datei ist gültiges JSON, aber ihr Inhalt stimmt nicht mit dem Registrierungsschema überein.

4005 4010 

4006Eine fehlende Datei ist kein Fehler: Claude Code behandelt sie als eine Registrierung ohne Marketplaces.

4007 

4008Mit einer leeren Datei meldet `claude plugin install`:4011Mit einer leeren Datei meldet `claude plugin install`:

4009 4012 

4010```text theme={null}4013```text theme={null}


4628terminal host process died — press Enter to restart4631terminal host process died — press Enter to restart

4629```4632```

4630 4633 

4631Wenn Sie die Zeile öffnen, bevor die Überprüfung läuft, zeigt die Fußzeile `This session's terminal host process died (the conversation is saved) — press Enter to restart it` und die Zeile wird fehlgeschlagen.

4632 

4633Aus der Shell startet `claude attach <id>` eine Sitzung, die bereits als fehlgeschlagen für einen toten Host markiert ist, neu, und druckt ansonsten den Grund und beendet sich:4634Aus der Shell startet `claude attach <id>` eine Sitzung, die bereits als fehlgeschlagen für einen toten Host markiert ist, neu, und druckt ansonsten den Grund und beendet sich:

4634 4635 

4635```text theme={null}4636```text theme={null}


5025 5026 

5026Claude Code schreibt die meisten dieser Meldungen auf stderr, nicht in die Konversation, und schreibt die meisten beim Start. Ein Eintrag gibt an, wenn seine Meldung an anderer Stelle erscheint, z. B. im Debug-Protokoll oder als Startnachricht in der Konversationsansicht, oder zu einem anderen Zeitpunkt, z. B. die [Zeile zur Diagnose nicht erkannter Modelle](#unrecognized-model-id-on-a-request) zur Anfragezeitpunkt.5027Claude Code schreibt die meisten dieser Meldungen auf stderr, nicht in die Konversation, und schreibt die meisten beim Start. Ein Eintrag gibt an, wenn seine Meldung an anderer Stelle erscheint, z. B. im Debug-Protokoll oder als Startnachricht in der Konversationsansicht, oder zu einem anderen Zeitpunkt, z. B. die [Zeile zur Diagnose nicht erkannter Modelle](#unrecognized-model-id-on-a-request) zur Anfragezeitpunkt.

5027 5028 

5028<h3 id="fullscreen-failed-start-notice">

5029 Fullscreen-Renderer konnte nicht vollständig starten

5030</h3>

5031 

5032Eine vorherige [Fullscreen](/docs/de/fullscreen)-Sitzung auf diesem Computer wurde beendet, bevor sie vollständig gestartet wurde, daher startet Claude Code diese Sitzung auf dem klassischen Renderer und gibt eine dieser Meldungen aus:

5033 

5034```text theme={null}

5035Claude Code's fullscreen renderer didn't finish starting last time on this machine, so this launch is using the classic renderer. It will try fullscreen again next launch; /tui default keeps the classic renderer.

5036 

5037Claude Code's fullscreen renderer has repeatedly failed to start on this machine, so it has been turned off here. Run /tui fullscreen to try it again (this also resets after an update).

5038```

5039 

5040**Was zu tun ist:**

5041 

5042* Folgen Sie [Fullscreen-Rendering](/docs/de/fullscreen#fullscreen-renderer-didnt-finish-starting). Es sagt, welche Meldung Sie erhalten, was Claude Code in späteren Sitzungen tut, und wie Sie Fullscreen erneut versuchen oder den klassischen Renderer beibehalten können.

5043* Wenn die Sitzung, die beendet wurde, eine Ausstiegsmeldung ausgegeben hat, siehe [Claude Code wurde nach einem nicht behebbaren Schnittstellenfehler beendet](#exited-after-an-unrecoverable-interface-error), um zu sehen, was es benennt.

5044 

5045Vor v2.1.236 gab Claude Code keine Meldung aus und startete Sitzungen nach einem fehlgeschlagenen Start weiterhin im Fullscreen-Rendering.

5046 

5047<h3 id="exited-after-an-unrecoverable-interface-error">5029<h3 id="exited-after-an-unrecoverable-interface-error">

5048 Claude Code wurde nach einem nicht behebbaren Schnittstellenfehler beendet5030 Claude Code wurde nach einem nicht behebbaren Schnittstellenfehler beendet

5049</h3>5031</h3>


5195* Wenn Sie die Einstellungen verwalten, fügen Sie ein Modell, das Ihre Benutzer ausführen können, zu `availableModels` hinzu, oder grenzen Sie die `deniedModels`-Einträge ein, die jeden Fallback blockieren. [Blockieren Sie bestimmte Modelle oder Versionen](/docs/de/model-config#block-specific-models-or-versions) beschreibt, wie die Standardoption herabgestuft wird5177* Wenn Sie die Einstellungen verwalten, fügen Sie ein Modell, das Ihre Benutzer ausführen können, zu `availableModels` hinzu, oder grenzen Sie die `deniedModels`-Einträge ein, die jeden Fallback blockieren. [Blockieren Sie bestimmte Modelle oder Versionen](/docs/de/model-config#block-specific-models-or-versions) beschreibt, wie die Standardoption herabgestuft wird

5196* Wenn Sie sie nicht verwalten, senden Sie die Meldung an Ihren Administrator. Ihre eigenen Einstellungsdateien können eine verwaltete `availableModels`- oder `deniedModels`-Liste nicht verbreitern5178* Wenn Sie sie nicht verwalten, senden Sie die Meldung an Ihren Administrator. Ihre eigenen Einstellungsdateien können eine verwaltete `availableModels`- oder `deniedModels`-Liste nicht verbreitern

5197 5179 

5180<h3 id="managed-settings-dont-allow-this-api-provider">

5181 Verwaltete Einstellungen erlauben diesen API-Anbieter nicht

5182</h3>

5183 

5184Die [verwalteten Einstellungen](/docs/de/managed-settings) Ihrer Organisation setzen eine [`allowedProviders`](/docs/de/settings-reference#allowedproviders)-Liste, und der API-Anbieter der Sitzung ist nicht darauf oder die Sitzung verwendet einen Endpunkt, der nicht auf die Weise angeheftet ist, die dieser Eintrag erfordert. Claude Code weigert sich beim Start, vor einer Anmeldung oder wenn die Sitzung das nächste Mal die API kontaktiert. Die Meldung beginnt mit den zulässigen Anbietern:

5185 

5186```text theme={null}

5187Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.

5188```

5189 

5190Wenn die Liste leer ist, lautet die Meldung stattdessen:

5191 

5192```text theme={null}

5193Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.

5194```

5195 

5196Wenn jeder Eintrag nicht erkannt wird, lautet die Klammer stattdessen `(allowedProviders lists only unrecognized entries)`.

5197 

5198**Was zu tun ist:**

5199 

5200* Folgen Sie den `To continue:`-Schritten der Meldung

5201* Wenn Sie die Einstellungen verwalten, benennen die Zeilen der Meldung, die mit `Admins:` beginnen, den Eintrag zum Hinzufügen oder den Wert zum Anheften, und der [`allowedProviders`](/docs/de/settings-reference#allowedproviders)-Eintrag sagt, welcher Block `env` des Quellcodes es anheften kann

5202 

5198<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5203<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

5199 MCP-Server wird durch Unternehmensrichtlinie blockiert5204 MCP-Server wird durch Unternehmensrichtlinie blockiert

5200</h3>5205</h3>


5248* Wenn Sie den Computer verwalten, beheben Sie das benannte Dokument, damit es als JSON-Objekt analysiert wird, oder entfernen Sie die Datei, das Profil oder den Registrierungswert. Ein leeres `managed-settings.json` zählt als `{}` und blockiert den Start nicht.5253* Wenn Sie den Computer verwalten, beheben Sie das benannte Dokument, damit es als JSON-Objekt analysiert wird, oder entfernen Sie die Datei, das Profil oder den Registrierungswert. Ein leeres `managed-settings.json` zählt als `{}` und blockiert den Start nicht.

5249* Wenn nicht, bitten Sie Ihren Administrator, das bereitgestellte Dokument zu beheben. Nichts in Ihren eigenen Einstellungsdateien verursacht oder löscht diesen Fehler.5254* Wenn nicht, bitten Sie Ihren Administrator, das bereitgestellte Dokument zu beheben. Nichts in Ihren eigenen Einstellungsdateien verursacht oder löscht diesen Fehler.

5250 5255 

5256<h3 id="unable-to-read-managed-policy-settings">

5257 Verwaltete Einstellungen konnten nicht gelesen werden

5258</h3>

5259 

5260Ihre Organisation stellt [verwaltete Einstellungen](/docs/de/managed-settings) bereit, und eine der bereitgestellten Quellen existiert, konnte aber nicht gelesen werden, aus einem Grund wie einem E/A-Fehler statt der Verweigerung durch das Betriebssystem. Ohne eine andere Admin-Quelle, die eine Richtlinie liefert, wird Claude Code beim Start beendet, anstatt ohne die Richtlinie ausgeführt zu werden, die die Quelle möglicherweise trägt:

5261 

5262```text theme={null}

5263Unable to read managed policy settings.

5264This machine may require organization login enforcement, but the policy file failed to load.

5265Contact your administrator.

5266 

5267Detail: <source>: <reason>

5268```

5269 

5270Im gleichen Zustand werden Anmeldungsflüsse, API-Anfragen aus einer bereits laufenden Sitzung und der [`claude gateway`](/docs/de/claude-apps-gateway)-Server mit einer Variante der ersten Zeile abgelehnt, die [`allowedProviders`](/docs/de/settings-reference#allowedproviders) benennt.

5271 

5272Ein Lesezugriff, den das Betriebssystem verweigert hat, z. B. auf eine Datei, die nur root gehört, erzeugt diesen Exit nicht: [die Sitzung startet ohne die Richtlinien dieser Quelle](/docs/de/managed-settings#find-entries-claude-code-dropped). Für eine Quelle, die nicht analysiert werden kann, wird Claude Code mit [einer anderen Meldung beendet, die die Quelle benennt](#managed-settings-document-could-not-be-parsed).

5273 

5274**Was zu tun ist:**

5275 

5276* Wenn Sie den Computer verwalten, beheben Sie das Problem, das die `Detail:`-Zeile benennt, damit die bereitgestellte Quelle gelesen werden kann, oder entfernen Sie die Quelle

5277* Wenn nicht, senden Sie die Meldung an Ihren Administrator. Nichts in Ihren eigenen Einstellungsdateien verursacht oder löscht diesen Fehler

5278 

5279Vor v2.1.285 wurden nur Sitzungen, die mit claude.ai- oder Claude Console-Anmeldedaten angemeldet waren, mit dieser Meldung beendet, und ein Lesezugriff, den das Betriebssystem verweigert hatte, erzeugte ihn auch.

5280 

5251<h3 id="otelheadershelper-failed">5281<h3 id="otelheadershelper-failed">

5252 otelHeadersHelper fehlgeschlagen5282 otelHeadersHelper fehlgeschlagen

5253</h3>5283</h3>


5346* Beheben Sie die Regel an der Quelle, die die Warnung in Klammern benennt: ein Einstellungsdateipfad oder das `--allowed-tools`-Flag selbst. Ein `claude-settings-<hash>.json`-Pfad, der nicht auf der Festplatte vorhanden ist, steht für einen Inline-`--settings`-Wert. Beheben Sie das JSON, das Sie an dieses Flag übergeben.5376* Beheben Sie die Regel an der Quelle, die die Warnung in Klammern benennt: ein Einstellungsdateipfad oder das `--allowed-tools`-Flag selbst. Ein `claude-settings-<hash>.json`-Pfad, der nicht auf der Festplatte vorhanden ist, steht für einen Inline-`--settings`-Wert. Beheben Sie das JSON, das Sie an dieses Flag übergeben.

5347* Wenn die Quelle `managed policy settings` liest, leiten Sie die Warnung an denjenigen weiter, der Ihre verwalteten Einstellungen verwaltet, da Sie sie nicht selbst löschen können.5377* Wenn die Quelle `managed policy settings` liest, leiten Sie die Warnung an denjenigen weiter, der Ihre verwalteten Einstellungen verwaltet, da Sie sie nicht selbst löschen können.

5348 5378 

5349Claude Code warnt nicht vor Deny- und Ask-Regeln mit der gleichen Form: Es weigert sich oder fordert auf für die zusätzlichen Befehle, die sie abgleichen, anstatt sie zu genehmigen. Es warnt auch nicht vor Regeln, deren Unterbefehl vor dem ersten `*` kommt, z. B. `Bash(git commit *)`, oder Regeln, in denen kein anderes Wort als eine Option dem `*` folgt, z. B. `Bash(git *)`, oder vor `:*`-Präfix-Regeln wie `Bash(git:*)`.

5350 

5351In einer [Hintergrundsitzung](/docs/de/agent-view) oder mit `--output-format json` oder `stream-json` schreibt Claude Code die Warnung statt auf stderr in das Debug-Protokoll, damit die maschinenlesbare Ausgabe sauber bleibt. Führen Sie mit `--debug` aus, um sie unter `~/.claude/debug/<session-id>.txt` zu erfassen. Vor v2.1.246 akzeptierte Claude Code diese Regeln ohne Warnung.5379In einer [Hintergrundsitzung](/docs/de/agent-view) oder mit `--output-format json` oder `stream-json` schreibt Claude Code die Warnung statt auf stderr in das Debug-Protokoll, damit die maschinenlesbare Ausgabe sauber bleibt. Führen Sie mit `--debug` aus, um sie unter `~/.claude/debug/<session-id>.txt` zu erfassen. Vor v2.1.246 akzeptierte Claude Code diese Regeln ohne Warnung.

5352 5380 

5353<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">5381<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">


5460 Antworten scheinen von geringerer Qualität als üblich5488 Antworten scheinen von geringerer Qualität als üblich

5461</h2>5489</h2>

5462 5490 

5463Wenn Claudes Antworten weniger leistungsfähig erscheinen als erwartet, aber kein Fehler angezeigt wird, liegt die Ursache normalerweise im Gesprächszustand und nicht im Modell selbst. Claude Code ändert nicht stillschweigend Modellversionen. Es kann in drei spezifischen Fällen zu einem Fallback-Modell wechseln:5491Wenn Claudes Antworten weniger leistungsfähig erscheinen als erwartet, aber kein Fehler angezeigt wird, liegt die Ursache normalerweise im Gesprächszustand und nicht im Modell selbst. Claude Code ändert nicht stillschweigend Modellversionen. Es kann in diesen Fällen zu einem Fallback-Modell wechseln:

5464 5492 

5465* Ein konfiguriertes [`--fallback-model`](/docs/de/cli-reference#cli-flags) übernimmt nach einem Verfügbarkeitsfehler für diesen Zug nur mit einer Notiz im Transkript5493* Ein konfiguriertes [`--fallback-model`](/docs/de/cli-reference#cli-flags) übernimmt nach einem Verfügbarkeitsfehler für diesen Zug nur mit einer Notiz im Transkript

5466* Eine Verfügbarkeitsprüfung von Amazon Bedrock oder Google Cloud's Agent Platform stellt fest, dass Ihr Standardmodell nicht verfügbar ist5494* Eine Verfügbarkeitsprüfung von Amazon Bedrock oder Google Cloud's Agent Platform stellt fest, dass Ihr Standardmodell nicht verfügbar ist, oder Ihr Konto [verliert während einer Sitzung den Zugriff darauf](/docs/de/amazon-bedrock#when-a-model-is-disabled-mid-session)

5467* [Automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auf Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 und Opus 5 verschiebt die Sitzung zum Fallback-Modell der gekennzeichneten Kategorie, wenn diese Kategorie über einen verfügt, und zeigt eine Notiz im Transkript an5495* [Automatisches Modell-Fallback](/docs/de/model-config#automatic-model-fallback) auf Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 und Opus 5 verschiebt die Sitzung zum Fallback-Modell der gekennzeichneten Kategorie, wenn diese Kategorie über einen verfügt, und zeigt eine Notiz im Transkript an

5468 5496 

5469Die Modellauswahlprüfung unten erfasst den zweiten und dritten Fall; der erste erscheint als Transkriptnotiz statt als `/model`-Änderung. [Modellkonfiguration](/docs/de/model-config) erklärt, wann jedes Fallback angewendet wird.5497Die Modellauswahlprüfung unten erfasst den zweiten und dritten Fall; der erste erscheint als Transkriptnotiz statt als `/model`-Änderung. [Modellkonfiguration](/docs/de/model-config) erklärt, wann jedes Fallback angewendet wird.

Details

293 293 

294Modellaliase wie `opus` fungieren nicht als Pins, und auch nicht eine Modell-ID, die Claude Code nicht erkennt.294Modellaliase wie `opus` fungieren nicht als Pins, und auch nicht eine Modell-ID, die Claude Code nicht erkennt.

295 295 

296Wenn diese Prüfungen ein Modell finden, das Ihr Projekt nicht aufrufen kann, merkt sich Claude Code die Ablehnung auf diesem Computer bis zu einem Tag lang, und Starts während dieser Zeit überspringen das gemerkten Modell, ohne Agent Platform erneut zu fragen. Claude Code prüft eine gemerkten Ablehnung eines aktuellen Standardmodells beim Start erneut, sobald zehn Minuten seit der letzten Prüfung vergangen sind, sodass ein Standard, den Ihr Administrator erneut aktiviert, zurückkommt. Um das Gedächtnis auszuschalten, setzen Sie [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/de/env-vars).

297 

298<h3 id="when-a-model-is-disabled-mid-session">

299 Wenn ein Modell während der Sitzung deaktiviert wird

300</h3>

301 

302Wenn Ihr Projekt den Zugriff auf das Modell verliert, auf dem Ihre Sitzung läuft, beispielsweise weil ein Administrator es im [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) deaktiviert, wechselt Claude Code die Sitzung zu einem anderen Modell, anstatt jede Anfrage fehlschlagen zu lassen, und zeigt `Switched to <fallback> because <model> is not available` an. Es versucht die gleichen Modelle wie das Startup-Fallback: frühere Versionen der gleichen Stufe zuerst und für eine Opus-Sitzung ohne verfügbare Opus-Version das Standard-Sonnet-Modell.

303 

304Der Wechsel gilt nur für eine Stufe, die Sie nicht fixiert haben, die gleiche Bedingung wie das Startup-Fallback. Eine Sitzung auf einer bestimmten Version, die Sie ausgewählt haben, behält ihr Modell bei und ohne eine Fallback-Modellkette schlägt die Anfrage stattdessen fehl. Im [Auto-Modus](/docs/de/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) wechselt Claude Code nur zu einem Modell, das der Auto-Modus auf Agent Platform unterstützt. Wenn auch keines dieser Modelle verfügbar ist, schlägt die Anfrage fehl.

305 

306Eine [Fallback-Modellkette](/docs/de/model-config#fallback-model-chains), die Sie konfigurieren, ersetzt den Stufenwechsel: Bei diesen Ablehnungen wechselt Claude Code stattdessen zu Ihrem konfigurierten Fallback. Um abgelehnte Anfragen fehlschlagen zu lassen, anstatt zu wechseln, setzen Sie [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/de/env-vars). Eine Fallback-Kette, die Sie konfiguriert haben, wechselt immer noch bei diesen Ablehnungen; entfernen Sie auch die Kette, wenn Sie möchten, dass jede abgelehnte Anfrage fehlschlägt.

307 

296<h2 id="iam-configuration">308<h2 id="iam-configuration">

297 IAM-Konfiguration309 IAM-Konfiguration

298</h2>310</h2>

headless.md +8 −3

Details

296 Tools automatisch genehmigen296 Tools automatisch genehmigen

297</h3>297</h3>

298 298 

299Verwenden Sie `--allowedTools`, um Claude die Verwendung bestimmter Tools ohne Aufforderung zu ermöglichen. Dieses Beispiel führt eine Test-Suite aus und behebt Fehler, wobei Claude Bash-Befehle ausführen und Dateien lesen/bearbeiten kann, ohne um Genehmigung zu fragen:299Verwenden Sie `--allowedTools`, um Claude die Verwendung bestimmter Tools ohne Aufforderung zu ermöglichen. Das Auflisten von `Read` und `Edit` ermöglicht Claude, Dateien zu lesen und zu bearbeiten, ohne um Genehmigung zu fragen. Das Auflisten von `Bash` macht dasselbe für Shell-Befehle, außer in einem Lauf, der im [Auto-Modus](/docs/de/permission-modes#how-auto-mode-evaluates-actions) startet, wo Claude Code einen bloßen `Bash`-Eintrag als breite Allow-Regel ablegt und der Auto-Modus stattdessen jeden Befehl bewertet. Dieses Beispiel führt eine Test-Suite aus und behebt Fehler mit diesen drei Tools:

300 300 

301```bash theme={null}301```bash theme={null}

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

303 --allowedTools "Bash,Read,Edit"303 --allowedTools "Bash,Read,Edit"

304```304```

305 305 

306Um einen Baseline für die gesamte Sitzung festzulegen, anstatt einzelne Tools aufzulisten, übergeben Sie einen [Berechtigungsmodus](/docs/de/permission-modes). Für `-p` ist der [integrierte Starterechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in) auf jedem Plan Manual, übergeben Sie also den Berechtigungsmodus, den Sie möchten:306Um einen 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, nimmt den [integrierten Starterechtigungsmodus](/docs/de/permission-modes#which-mode-a-session-starts-in), der `auto` sein kann, also übergeben Sie den, den Sie möchten:

307 307 

308* **`auto`**: Übergeben Sie `--permission-mode auto`, um einen Klassifizierer die meisten Aktionen überprüfen zu lassen, anstatt Sie308* **`auto`**: Übergeben Sie `--permission-mode auto`, um einen Klassifizierer die meisten Aktionen überprüfen zu lassen, anstatt Sie

309* **`dontAsk`**: Claude Code verweigert jeden Aufruf, der sonst eine Aufforderung auslösen würde, was für gesperrte CI-Läufe nützlich ist. Aktionen, die im Manual-Modus keine Genehmigung benötigen, werden immer noch ausgeführt, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und dem [schreibgeschützten Befehlssatz](/docs/de/permissions#read-only-commands), ebenso wie Aktionen, die Ihre `--allowedTools`-Einträge oder `permissions.allow`-Regeln abdecken. `AskUserQuestion`, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden verweigert, auch wenn eine Allow-Regel passt309* **`dontAsk`**: Claude Code verweigert jeden Aufruf, der sonst eine Aufforderung auslösen würde, was für gesperrte CI-Läufe nützlich ist. Aktionen, die im Manual-Modus keine Genehmigung benötigen, werden immer noch ausgeführt, wie Dateilesevorgänge in Ihren Arbeitsverzeichnissen und dem [schreibgeschützten Befehlssatz](/docs/de/permissions#read-only-commands), ebenso wie Aktionen, die Ihre `--allowedTools`-Einträge oder `permissions.allow`-Regeln abdecken. `AskUserQuestion`, Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) und MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, werden verweigert, auch wenn eine Allow-Regel passt


351Das Flag `--allowedTools` verwendet [Berechtigungsregelsyntax](/docs/de/settings-reference#permission-rule-syntax). Das nachfolgende ` *` ermöglicht Präfix-Matching, sodass `Bash(git diff *)` jeden Befehl erlaubt, der mit `git diff` beginnt. Das Leerzeichen vor `*` ist wichtig: ohne es würde `Bash(git diff*)` auch `git diff-index` entsprechen.351Das Flag `--allowedTools` verwendet [Berechtigungsregelsyntax](/docs/de/settings-reference#permission-rule-syntax). Das nachfolgende ` *` ermöglicht Präfix-Matching, sodass `Bash(git diff *)` jeden Befehl erlaubt, der mit `git diff` beginnt. Das Leerzeichen vor `*` ist wichtig: ohne es würde `Bash(git diff*)` auch `git diff-index` entsprechen.

352 352 

353<Note>353<Note>

354 Benutzer-aufgerufene [skills](/docs/de/skills) und benutzerdefinierte Befehle funktionieren im `-p`-Modus. Fügen Sie `/skill-name` in die Eingabeaufforderungszeichenkette ein und Claude Code erweitert sie vor dem Ausführen. Integrierte Befehle, die nur in der Terminalschnittstelle ausgeführt werden, wie `/login`, sind im `-p`-Modus nicht verfügbar. `/model`, `/effort`, `/fast`, `/color` und `/rename` akzeptieren den Wert als Argument, zum Beispiel `/model sonnet`, und `/mcp` ohne Argument gibt eine Textzusammenfassung des Serverstatus aus; diese Formen erfordern Claude Code v2.1.205 oder später und folgen den [Verfügbarkeitshinweisen](/docs/de/commands#all-commands) jedes Befehls. Um eine Einstellung zu ändern, übergeben Sie `key=value` an `/config`, zum Beispiel `/config thinking=false`. `/output-style <style>` wechselt [Ausgabestile](/docs/de/output-styles) und `/output-style` allein listet sie auf. Erfordert Claude Code v2.1.269 oder später.354 Benutzer-aufgerufene [skills](/docs/de/skills) und benutzerdefinierte Befehle funktionieren. Fügen Sie `/skill-name` in die Eingabeaufforderungszeichenkette ein und Claude Code erweitert sie vor dem Ausführen.

355 

356 * Integrierte Befehle, die nur in der Terminalschnittstelle ausgeführt werden, wie `/login`, sind nicht verfügbar.

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

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

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

355</Note>360</Note>

356 361 

357<h3 id="customize-the-system-prompt">362<h3 id="customize-the-system-prompt">

hooks.md +2 −2

Details

12 12 

13Hooks sind benutzerdefinierte Shell-Befehle, HTTP-Endpunkte, MCP-Tool-Aufrufe, LLM-Prompts oder Subagenten, die automatisch an bestimmten Punkten im Lebenszyklus von Claude Code ausgeführt werden. Claude Code löst die gleichen Hook-Ereignisse überall aus, wo es läuft: Sitzungen im Terminal, IDE-Erweiterungen, die [Desktop-App](/docs/de/desktop-quickstart) und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Verwenden Sie diese Referenz, um Ereignisschemas, Konfigurationsoptionen, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks, HTTP-Hooks und MCP-Tool-Hooks nachzuschlagen.13Hooks sind benutzerdefinierte Shell-Befehle, HTTP-Endpunkte, MCP-Tool-Aufrufe, LLM-Prompts oder Subagenten, die automatisch an bestimmten Punkten im Lebenszyklus von Claude Code ausgeführt werden. Claude Code löst die gleichen Hook-Ereignisse überall aus, wo es läuft: Sitzungen im Terminal, IDE-Erweiterungen, die [Desktop-App](/docs/de/desktop-quickstart) und [Cloud-Sitzungen](/docs/de/claude-code-on-the-web). Verwenden Sie diese Referenz, um Ereignisschemas, Konfigurationsoptionen, JSON-Ein-/Ausgabeformate und erweiterte Funktionen wie asynchrone Hooks, HTTP-Hooks und MCP-Tool-Hooks nachzuschlagen.

14 14 

15Ein Plugin kann auch Hooks als JavaScript-Funktionen registrieren, die Claude Code in seinem eigenen Prozess aufruft, die sowohl in der Benutzeroberfläche angezeigt als auch auf Ereignisse reagieren können. Ein Plugin, das dies tut, ist ein [mod](/docs/de/plugins/mods/overview), und diese Funktions-Hooks werden in [Auf Ereignisse reagieren](/docs/de/plugins/mods/events) behandelt, nicht hier. Die Hooks auf dieser Seite funktionieren weiterhin neben Mods.

16 

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

16 Hook-Lebenszyklus18 Hook-Lebenszyklus

17</h2>19</h2>


453| `Bash(git *)` | `npm test && git push` | ja | jeder Subbefehl wird überprüft; `git push` passt |455| `Bash(git *)` | `npm test && git push` | ja | jeder Subbefehl wird überprüft; `git push` passt |

454| `Bash(rm *)` | `echo $(rm -rf /)` | ja | Befehle in `$()` und Backticks werden überprüft; `rm -rf /` passt |456| `Bash(rm *)` | `echo $(rm -rf /)` | ja | Befehle in `$()` und Backticks werden überprüft; `rm -rf /` passt |

455| `Bash(rm *)` | `echo $(date)` | nein | kein Subbefehl passt auf `rm *` |457| `Bash(rm *)` | `echo $(date)` | nein | kein Subbefehl passt auf `rm *` |

456| `Bash(cat *)` | `echo before $(date) after` | nein | eine Substitution kann an jeder Argumentposition sitzen, sodass der vollständige Befehl und `date` beide überprüft werden; keiner passt auf `cat *` |

457| `Bash(git *)` | `$TOOL git push` | ja | Claude Code kann nicht sagen, worauf sich der Befehlsname erweitert, sodass es den Hook ausführt |

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

459 459 

460Wenn Claude Code nicht bestimmen kann, welche Befehle die Bash-Eingabe ausführt, führt es Ihren Hook unabhängig vom Muster aus. Da der `if`-Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/docs/de/permissions) statt eines Hooks, um ein hartes Zulassen oder Verweigern durchzusetzen.460Wenn Claude Code nicht bestimmen kann, welche Befehle die Bash-Eingabe ausführt, führt es Ihren Hook unabhängig vom Muster aus. Da der `if`-Filter Best-Effort ist, verwenden Sie das [Berechtigungssystem](/docs/de/permissions) statt eines Hooks, um ein hartes Zulassen oder Verweigern durchzusetzen.

hooks-guide.md +3 −1

Details

1014 1014 

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

1016 1016 

1017Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht nicht die Ablehnungsregeln aus den Einstellungen, und er kann die Eingabeaufforderung für MCP-Tools, die als [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, oder für Connector-Tools, die [Ihre Organisation auf `ask`](/docs/de/mcp#organization-controls-on-connector-tools) gesetzt hat, nicht unterdrücken, in Sitzungen, in denen diese Einstellung Claude Code erreicht. Hooks können Einschränkungen verschärfen, aber nicht lockern, über das hinaus, was Genehmigungsregeln zulassen.1017Das Gegenteil ist nicht wahr: Ein Hook, der `"allow"` zurückgibt, umgeht nicht die Ablehnungsregeln aus den Einstellungen, und er kann die Eingabeaufforderung für MCP-Tools, die als [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, oder für Connector-Tools, die [Ihre Organisation auf `ask`](/docs/de/mcp#organization-controls-on-connector-tools) gesetzt hat, nicht unterdrücken, in Sitzungen, in denen diese Einstellung Claude Code erreicht. Hooks 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.

1018 

1019Ein [Mod](/docs/de/plugins/mods/overview), den Sie installieren und der `tool.check` hooked, 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.

1018 1020 

1019<h3 id="hook-not-firing">1021<h3 id="hook-not-firing">

1020 Hook wird nicht ausgelöst1022 Hook wird nicht ausgelöst

Details

346* Claude Code auffordern, einen Befehl im Hintergrund auszuführen346* Claude Code auffordern, einen Befehl im Hintergrund auszuführen

347* `Ctrl+B` drücken, um eine reguläre Bash-Tool-Invokation in den Hintergrund zu verschieben. Tmux-Benutzer müssen `Ctrl+B` zweimal drücken, da Tmux eine Präfixaste hat.347* `Ctrl+B` drücken, um eine reguläre Bash-Tool-Invokation in den Hintergrund zu verschieben. Tmux-Benutzer müssen `Ctrl+B` zweimal drücken, da Tmux eine Präfixaste hat.

348 348 

349Wenn ein Befehl sein Timeout erreicht, bevor er abgeschlossen ist, verschiebt Claude Code ihn automatisch [in den Hintergrund](/docs/de/tools-reference#background-commands), anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Um zu ändern, wie lange Befehle ausgeführt werden, bevor dies geschieht, stellen Sie die [Bash-Timeout-Umgebungsvariablen](/docs/de/tools-reference#timeout-and-output-limits) ein.349Wenn ein Befehl sein Timeout erreicht, bevor er abgeschlossen ist, verschiebt Claude Code ihn automatisch [in den Hintergrund](/docs/de/tools-reference#foreground-commands-that-move-to-the-background), anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Wenn Sie Hintergrund-Tasks mit [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/de/env-vars#variables) deaktiviert haben oder im [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) starten, wird der Befehl bei seinem Timeout gestoppt. Um das Timeout zu ändern, stellen Sie die [Bash-Timeout-Umgebungsvariablen](/docs/de/tools-reference#timeout-and-output-limits) ein.

350 350 

351**Wichtigste Funktionen:**351**Wichtigste Funktionen:**

352 352 


358* Unter macOS und Linux beendet Claude Code laufende Hintergrund-Tasks, wenn das Betriebssystem ein Speicherdrucksignal sendet, sofern die Sitzung mindestens 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Erfordert Claude Code v2.1.193 oder später358* Unter macOS und Linux beendet Claude Code laufende Hintergrund-Tasks, wenn das Betriebssystem ein Speicherdrucksignal sendet, sofern die Sitzung mindestens 30 Minuten untätig war und kein Turn oder Subagent ausgeführt wird. Erfordert Claude Code v2.1.193 oder später

359 * Das [Debug-Protokoll](/docs/de/debug-your-config) zeigt, warum Tasks beendet wurden, oder warum ein Druckereignis sie weiterhin ausführen ließ359 * Das [Debug-Protokoll](/docs/de/debug-your-config) zeigt, warum Tasks beendet wurden, oder warum ein Druckereignis sie weiterhin ausführen ließ

360 * Setzen Sie [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/de/env-vars) auf `1`, um Speicherdruckstopps auszuschalten360 * Setzen Sie [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/de/env-vars) auf `1`, um Speicherdruckstopps auszuschalten

361* Bash- und PowerShell-Befehle im Hintergrund haben ein Zeitlimit, das ab dem Moment gezählt wird, in dem der Befehl in den Hintergrund geht: 30 Minuten oder das `timeout`, das Claude anfordert, wenn es einen Befehl im Hintergrund startet, bis zu einem Maximum von 2 Stunden. Ein Befehl, der während der Ausführung in den Hintergrund geht, beispielsweise mit `Ctrl+B`, erhält 30 Minuten ab dem Verschieben. Wenn ein Befehl sein Limit erreicht, stoppt Claude Code ihn und teilt Claude mit, warum, und Claude kann ihn mit einem längeren `timeout` erneut starten, wenn die Arbeit noch erforderlich ist. Zwei Umgebungsvariablen erhöhen die Limits in Millisekunden, und keine kann sie verkürzen:361* Bash- und PowerShell-Befehle im Hintergrund haben ein Zeitlimit, das ab dem Moment gezählt wird, in dem der Befehl in den Hintergrund geht: 30 Minuten oder das `timeout`, das Claude anfordert, wenn es einen Befehl im Hintergrund startet, bis zu einem Maximum von 2 Stunden. Ein Befehl, der während der Ausführung in den Hintergrund geht, beispielsweise mit `Ctrl+B`, erhält 30 Minuten ab dem Verschieben. Wenn ein Befehl sein Limit erreicht, stoppt Claude Code ihn und teilt Claude mit, warum, und Claude kann ihn mit einem längeren `timeout` erneut starten, wenn die Arbeit noch erforderlich ist. Um die Limits zu erhöhen, siehe [Erhöhen Sie das Zeitlimit für Hintergrund-Befehle](/docs/de/tools-reference#raise-the-time-limit-for-background-commands) in der Tools-Referenz

362 * Setzen Sie [`BASH_DEFAULT_TIMEOUT_MS`](/docs/de/env-vars) über `1800000`, um den 30-Minuten-Standard durch diesen Wert zu ersetzen, auch für verschobene Befehle362* Ein Hintergrund-Befehl, den ein Vordergrund-[Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, endet, wenn die Ausführung dieses Subagenten endet, unabhängig davon, ob sie abgeschlossen, fehlgeschlagen oder unterbrochen wurde; siehe [Wenn ein Hintergrund-Befehl stoppt](/docs/de/tools-reference#when-a-background-command-stops) in der Tools-Referenz

363 * Setzen Sie [`BASH_MAX_TIMEOUT_MS`](/docs/de/env-vars) über `7200000`, um das 2-Stunden-Maximum zu erhöhen. Das Setzen von `BASH_DEFAULT_TIMEOUT_MS` über `7200000` erhöht es auf die gleiche Weise

364* Ein Hintergrund-Befehl, den ein Vordergrund-[Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, endet, wenn die Ausführung dieses Subagenten endet, unabhängig davon, ob sie abgeschlossen, fehlgeschlagen oder unterbrochen wurde; siehe [Hintergrund-Befehle](/docs/de/tools-reference#background-commands) in der Tools-Referenz

365 363 

366Um alle Hintergrund-Task-Funktionen zu deaktivieren, setzen Sie die Umgebungsvariable `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1`. Siehe [Umgebungsvariablen](/docs/de/env-vars) für Details.364Um alle Hintergrund-Task-Funktionen zu deaktivieren, setzen Sie die Umgebungsvariable [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/de/env-vars#variables) auf `1`. Das Starten im [Bare-Modus](/docs/de/headless#start-faster-with-bare-mode) deaktiviert es ebenfalls.

367 365 

368**Häufig in den Hintergrund verschobene Befehle:**366**Häufig in den Hintergrund verschobene Befehle:**

369 367 

keybindings.md +1 −3

Details

545* Unter einem nicht-lateinischen Layout wie Kyrillisch gleicht Claude Code Strg-Verknüpfungen durch die US-Layout-Position der Taste ab, wenn das Terminal das Kitty-Tastaturprotokoll verwendet und diese Position meldet. In einem solchen Terminal mit aktivem russischem Layout löst das Drücken von Strg und der physischen W-Taste `ctrl+w` aus. In einem Terminal, das die Position nicht meldet, gleicht Claude Code ab, was das Terminal für den Tastendruck sendet: Ein ASCII-Steuercode löst die lateinische Verknüpfung aus, und ein Tastendruck, der als kyrillisches Zeichen ankommt, entspricht keiner Bindung545* Unter einem nicht-lateinischen Layout wie Kyrillisch gleicht Claude Code Strg-Verknüpfungen durch die US-Layout-Position der Taste ab, wenn das Terminal das Kitty-Tastaturprotokoll verwendet und diese Position meldet. In einem solchen Terminal mit aktivem russischem Layout löst das Drücken von Strg und der physischen W-Taste `ctrl+w` aus. In einem Terminal, das die Position nicht meldet, gleicht Claude Code ab, was das Terminal für den Tastendruck sendet: Ein ASCII-Steuercode löst die lateinische Verknüpfung aus, und ein Tastendruck, der als kyrillisches Zeichen ankommt, entspricht keiner Bindung

546* Unter Layouts, die lateinische Buchstaben neu anordnen, wie AZERTY, gleicht Claude Code den Buchstaben ab, den die Taste eingibt, daher löst das Drücken von Strg und der mit A beschrifteten Taste `ctrl+a` aus546* Unter Layouts, die lateinische Buchstaben neu anordnen, wie AZERTY, gleicht Claude Code den Buchstaben ab, den die Taste eingibt, daher löst das Drücken von Strg und der mit A beschrifteten Taste `ctrl+a` aus

547 547 

548Vor v2.1.247 löste das Drücken einer Strg-Verknüpfung unter einem nicht-lateinischen Layout seine Bindung in Terminals, die das Kitty-Tastaturprotokoll verwenden, wie Ghostty, Kitty, WezTerm und iTerm2, nicht aus.

549 

550<h3 id="chords">548<h3 id="chords">

551 Akkorde549 Akkorde

552</h3>550</h3>


697* Falsch geschriebene Modifizierer, wie `ctl+k`. Claude Code verwirft den Teil, den es nicht erkennt, und wendet die Bindung auf den verbleibenden Tastendruck an, `k` in diesem Beispiel.695* Falsch geschriebene Modifizierer, wie `ctl+k`. Claude Code verwirft den Teil, den es nicht erkennt, und wendet die Bindung auf den verbleibenden Tastendruck an, `k` in diesem Beispiel.

698* Ungültige Kontextnamen696* Ungültige Kontextnamen

699* Ungültige Aktionswerte, wie eine Aktion, die keine Zeichenkette oder `null` ist697* Ungültige Aktionswerte, wie eine Aktion, die keine Zeichenkette oder `null` ist

700* Unbekannte Aktionsnamen, wie ein Tippfehler einer registrierten Aktion. Claude Code überspringt die Bindung und behält alle Standard-Bindungen für diese Taste bei. Vor v2.1.246 deaktivierte eine Bindung mit einem unbekannten Aktionsnamen diese Taste stillschweigend698* Unbekannte Aktionsnamen, wie ein Tippfehler einer registrierten Aktion. Claude Code überspringt die Bindung und behält alle Standard-Bindungen für diese Taste bei.

701* Reservierte Kürzel-Konflikte699* Reservierte Kürzel-Konflikte

702* Doppelte Bindings im selben Kontext700* Doppelte Bindings im selben Kontext

703 701 

llm-gateway.md +2 −0

Details

45 45 

46[Ein LLM-Gateway für Ihre Organisation bereitstellen](/docs/de/llm-gateway-rollout) führt jeden Schritt durch und zeigt die Konfigurationsdateien, die bei jedem verteilt werden sollen. Das Gateway ist ein Teil der Organisationseinrichtung; für Richtliniendurchsetzung, Nutzungssichtbarkeit und Datenbehandlungsentscheidungen siehe [Claude Code für Ihre Organisation einrichten](/docs/de/admin-setup).46[Ein LLM-Gateway für Ihre Organisation bereitstellen](/docs/de/llm-gateway-rollout) führt jeden Schritt durch und zeigt die Konfigurationsdateien, die bei jedem verteilt werden sollen. Das Gateway ist ein Teil der Organisationseinrichtung; für Richtliniendurchsetzung, Nutzungssichtbarkeit und Datenbehandlungsentscheidungen siehe [Claude Code für Ihre Organisation einrichten](/docs/de/admin-setup).

47 47 

48Um ein Gateway, das über `ANTHROPIC_BASE_URL` erreichbar ist, zum einzigen Ziel zu machen, das eine verwaltete Maschine verwenden darf, setzen Sie [`allowedProviders`](/docs/de/settings-reference#allowedproviders) auf `["customEndpoint"]` in derselben verwalteten Einstellungsdatei und geben Sie die `ANTHROPIC_BASE_URL` des Gateways in den `env`-Block dieser Datei ein. Claude Code lehnt dann eine Sitzung ab, die auf etwas anderes verweist, einschließlich direkt auf Anthropic oder auf den eigenen Proxy eines Entwicklers, und akzeptiert `ANTHROPIC_BASE_URL` nur mit dem Wert, den Sie dort festgelegt haben. Für ein Gateway, das über eine anbieterspezifische Endpunkt-Variable wie `ANTHROPIC_BEDROCK_BASE_URL` erreichbar ist, gibt der `allowedProviders`-Eintrag an, welche Variable zu fixieren ist. Erfordert Claude Code v2.1.285 oder später.

49 

48<h2 id="subscriptions-and-gateways">50<h2 id="subscriptions-and-gateways">

49 Abonnements und Gateways51 Abonnements und Gateways

50</h2>52</h2>

Details

310 310 

311Claude Code sendet die Ermittlungsanfrage mit beiden Anmeldedaten-Headern unten und lässt einen Header weg, dessen Wert sich nicht auflöst. Das Senden beider Header erfordert Claude Code v2.1.248 oder später. Frühere Versionen senden nur `Authorization`, wenn `ANTHROPIC_AUTH_TOKEN` gesetzt ist, und nur `x-api-key` andernfalls.311Claude Code sendet die Ermittlungsanfrage mit beiden Anmeldedaten-Headern unten und lässt einen Header weg, dessen Wert sich nicht auflöst. Das Senden beider Header erfordert Claude Code v2.1.248 oder später. Frühere Versionen senden nur `Authorization`, wenn `ANTHROPIC_AUTH_TOKEN` gesetzt ist, und nur `x-api-key` andernfalls.

312 312 

313* `Authorization`: `ANTHROPIC_AUTH_TOKEN` als Bearer-Token, andernfalls der [`apiKeyHelper`](/docs/de/llm-gateway-connect#rotate-credentials-with-apikeyhelper) Wert als Bearer-Token. In diesem Fall wartet Claude Code, bis der Helper zurückkommt, bevor die Anfrage gesendet wird.313* `Authorization`: `ANTHROPIC_AUTH_TOKEN` als Bearer-Token, andernfalls der [`apiKeyHelper`](/docs/de/llm-gateway-connect#rotate-credentials-with-apikeyhelper) Wert als Bearer-Token.

314* `x-api-key`: der API-Schlüssel, den Claude Code aufgelöst hat, wie `ANTHROPIC_API_KEY`. Wenn ein Helper-Wert die einzige Anmeldedaten ist, trägt dieser Header ihn auch, daher kommt der Wert in beiden Headern an.314* `x-api-key`: der API-Schlüssel, den Claude Code aufgelöst hat, wie `ANTHROPIC_API_KEY`. Wenn ein Helper-Wert die einzige Anmeldedaten ist, trägt dieser Header ihn auch, daher kommt der Wert in beiden Headern an.

315 315 

316Claude Code sendet auch alle Header von `ANTHROPIC_CUSTOM_HEADERS`. Wenn ein benutzerdefinierter Header einen nicht leeren Wert hat, sendet Claude Code ihn anstelle eines eingebauten Headers mit demselben Namen, wobei die Namen Groß- und Kleinschreibung ignoriert werden.316Claude Code sendet auch alle Header von `ANTHROPIC_CUSTOM_HEADERS`. Wenn ein benutzerdefinierter Header einen nicht leeren Wert hat, sendet Claude Code ihn anstelle eines eingebauten Headers mit demselben Namen, wobei die Namen Groß- und Kleinschreibung ignoriert werden.

Details

199 199 

200Die [Gateway-Login-Schlüssel](#choose-a-delivery-mechanism) folgen einer separaten Regel. Claude Code liest sie niemals aus servergesteuerten Einstellungen, sodass während servergesteuerte Einstellungen die ausgewählte Quelle sind, die höchstrangige Admin-Quelle auf dem Computer, die einen Richtlinienschlüssel trägt, sie immer noch liefert. Ein Wert in einer Admin-Quelle, die unter dieser rangiert, oder in der HKCU-Registrierung wird ignoriert.200Die [Gateway-Login-Schlüssel](#choose-a-delivery-mechanism) folgen einer separaten Regel. Claude Code liest sie niemals aus servergesteuerten Einstellungen, sodass während servergesteuerte Einstellungen die ausgewählte Quelle sind, die höchstrangige Admin-Quelle auf dem Computer, die einen Richtlinienschlüssel trägt, sie immer noch liefert. Ein Wert in einer Admin-Quelle, die unter dieser rangiert, oder in der HKCU-Registrierung wird ignoriert.

201 201 

202[`allowedProviders`](/docs/de/settings-reference#allowedproviders) hat seine eigene Regel: der Eintrag der Notiz zum Umfang sagt, wie eine auf dem Computer gesetzte Liste mit einer servergesteuerten kombiniert wird. Erfordert Claude Code v2.1.285 oder später.

203 

202Wenn eine Admin-Quelle `allowManagedMcpServersOnly` setzt oder eine `allowedMcpServers` Liste setzt und dieser Wert nicht der ist, der gerade gültig ist, nennen `/status` und `claude doctor` diese Quelle und diesen Schlüssel.204Wenn eine Admin-Quelle `allowManagedMcpServersOnly` setzt oder eine `allowedMcpServers` Liste setzt und dieser Wert nicht der ist, der gerade gültig ist, nennen `/status` und `claude doctor` diese Quelle und diesen Schlüssel.

203 205 

204<h3 id="compose-every-managed-source">206<h3 id="compose-every-managed-source">


353* Eine leere verwaltete Einstellungsdatei zählt als `{}`.355* Eine leere verwaltete Einstellungsdatei zählt als `{}`.

354* Ein fehlerhafter Wert im benutzergeschriebenen HKCU-Registrierungsschlüssel blockiert niemals den Start. Claude Code meldet ihn stattdessen als Hinweis in `/status` und `claude doctor`.356* Ein fehlerhafter Wert im benutzergeschriebenen HKCU-Registrierungsschlüssel blockiert niemals den Start. Claude Code meldet ihn stattdessen als Hinweis in `/status` und `claude doctor`.

355 357 

356Wenn eine verwaltete Einstellungsdatei, Drop-in-Datei oder `managed-settings.d/`-Verzeichnis nicht gelesen werden kann und keine Admin-Quelle eine Richtlinie bereitstellt, beenden Sitzungen, die mit claude.ai- oder Claude Console-Anmeldedaten angemeldet sind, beim Start mit einer Nachricht, um einen Administrator zu kontaktieren.358Wenn eine verwaltete Einstellungsdatei, Drop-in-Datei, `managed-settings.d/`-Verzeichnis, MDM-Profil oder HKLM-Registrierungswert vorhanden ist, aber nicht gelesen werden kann, und keine Admin-Quelle eine Richtlinie bereitstellt, hängt das, was geschieht, davon ab, warum der Lesevorgang fehlgeschlagen ist:

359 

360* Wenn das Betriebssystem den Lesevorgang verweigert hat, z. B. bei einer Datei, auf die nur der Root-Benutzer zugreifen kann, startet jede Sitzung ohne die Richtlinien dieser Quelle. `/status` und `claude doctor` zeichnen den Fehler auf, und ein Lauf mit `-p` gibt ihn auch auf stderr aus.

361* Bei jedem anderen Lesefehler, z. B. einem E/A-Fehler, beendet jede Sitzung beim Start mit [einer Nachricht, um einen Administrator zu kontaktieren](/docs/de/errors#unable-to-read-managed-policy-settings).

357 362 

358Um einen verworfenen Eintrag zu finden, schauen Sie an einer von drei Stellen nach:363Um einen verworfenen Eintrag zu finden, schauen Sie an einer von drei Stellen nach:

359 364 


387| Feld | Verhalten, wenn vorhanden, aber ungültig |392| Feld | Verhalten, wenn vorhanden, aber ungültig |

388| :- | :- |393| :- | :- |

389| `allowedMcpServers` | Wird als leere Zulassungsliste durchgesetzt, bis der Wert behoben ist, sodass keine MCP-Server, die Benutzer hinzufügen, zugelassen werden. Server, die Ihre Organisation über [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) bereitstellt, werden weiterhin geladen, und `managed-mcp.json`-Server werden pro [Wie ein Server bewertet wird](/docs/de/managed-mcp#how-a-server-is-evaluated) geladen. Ein einzelner ungültiger Eintrag wird entfernt und die gültige Teilmenge wird durchgesetzt. |394| `allowedMcpServers` | Wird als leere Zulassungsliste durchgesetzt, bis der Wert behoben ist, sodass keine MCP-Server, die Benutzer hinzufügen, zugelassen werden. Server, die Ihre Organisation über [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) bereitstellt, werden weiterhin geladen, und `managed-mcp.json`-Server werden pro [Wie ein Server bewertet wird](/docs/de/managed-mcp#how-a-server-is-evaluated) geladen. Ein einzelner ungültiger Eintrag wird entfernt und die gültige Teilmenge wird durchgesetzt. |

395| [`allowedProviders`](/docs/de/settings-reference#allowedproviders) | Wird als leere Zulassungsliste durchgesetzt, bis der Wert behoben ist, sodass jeder API-Anbieter abgelehnt wird und Claude Code nicht auf dem Computer startet. Wenn nur ein einzelner Eintrag kein bekannter Anbieter-Name ist, verwirft Claude Code diesen Eintrag und meldet ihn und erzwingt den Rest. |

390| `allowedHttpHookUrls` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#allowedhttphookurls), bis Sie den Wert beheben, sodass ein HTTP-Hook nur ausgeführt wird, wenn eine andere Einstellungsdatei seine URL auflistet. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |396| `allowedHttpHookUrls` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#allowedhttphookurls), bis Sie den Wert beheben, sodass ein HTTP-Hook nur ausgeführt wird, wenn eine andere Einstellungsdatei seine URL auflistet. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |

391| `httpHookAllowedEnvVars` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#httphookallowedenvvars), bis Sie den Wert beheben, sodass eine Header-Variable nur interpoliert wird, wenn eine andere Einstellungsdatei sie benennt. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |397| `httpHookAllowedEnvVars` | Claude Code erzwingt eine leere verwaltete [Zulassungsliste](/docs/de/settings-reference#httphookallowedenvvars), bis Sie den Wert beheben, sodass eine Header-Variable nur interpoliert wird, wenn eine andere Einstellungsdatei sie benennt. Wenn nur ein einzelner Eintrag ungültig ist, entfernt Claude Code diesen Eintrag und erzwingt den Rest. |

392| `allowedChannelPlugins` | Claude Code erzwingt eine leere Zulassungsliste, bis Sie den Wert beheben, sodass kein an `--channels` übergebenes Channel-Plugin zugelassen wird. Wenn nur ein einzelner Eintrag ungültig ist, entfernt es diesen Eintrag und erzwingt den Rest. |398| `allowedChannelPlugins` | Claude Code erzwingt eine leere Zulassungsliste, bis Sie den Wert beheben, sodass kein an `--channels` übergebenes Channel-Plugin zugelassen wird. Wenn nur ein einzelner Eintrag ungültig ist, entfernt es diesen Eintrag und erzwingt den Rest. |


437 443 

438Die meisten davon sind Sperren: Der Wert, den eine Sperre steuert, wie Berechtigungsregeln oder `sandbox.network.allowedDomains`, ist ein gewöhnlicher Schlüssel, den jede Ebene setzen kann, und die Sperre teilt Claude Code mit, nur den verwalteten Wert zu berücksichtigen.444Die meisten davon sind Sperren: Der Wert, den eine Sperre steuert, wie Berechtigungsregeln oder `sandbox.network.allowedDomains`, ist ein gewöhnlicher Schlüssel, den jede Ebene setzen kann, und die Sperre teilt Claude Code mit, nur den verwalteten Wert zu berücksichtigen.

439 445 

440Die Tabelle behandelt die Berechtigung, das Plugin und die Lieferungssteuerungen. Für jeden Schlüssel, der hier nicht aufgeführt ist, gibt die Spalte „Scope" (Bereich) des [Einstellungsreferenz](/docs/de/settings-reference#all-settings)-Index an, ob er nur verwaltet ist; die verbleibenden nur verwalteten Schlüssel dort umfassen die Gateway-Anmelde-URL, Version, Browser, Mobile-Simulator, SSH-Host, Desktop-Lokalsitzung, Sandbox-Binärpfad, Modellpreisgestaltung, Modellbeschränkung und CLAUDE.md-Steuerungen.446Die Tabelle behandelt die Berechtigung, das Plugin und die Lieferungssteuerungen. Für jeden Schlüssel, der hier nicht aufgeführt ist, gibt die Spalte „Scope" (Bereich) des [Einstellungsreferenz](/docs/de/settings-reference#all-settings)-Index an, ob er nur verwaltet ist.

441 447 

442| Einstellung | Beschreibung |448| Einstellung | Beschreibung |

443| :- | :- |449| :- | :- |

mcp.md +134 −132

Details

68 MCP-Server installieren68 MCP-Server installieren

69</h2>69</h2>

70 70 

71MCP-Server können je nach Ihren Anforderungen auf mehrere Arten konfiguriert werden:71MCP-Server können je nach Ihren Anforderungen auf verschiedene Weise konfiguriert werden:

72 72 

73<h3 id="option-1-add-a-remote-http-server">73<h3 id="option-1-add-a-remote-http-server">

74 Option 1: Einen Remote-HTTP-Server hinzufügen74 Option 1: Einen Remote-HTTP-Server hinzufügen


88 --header "Authorization: Bearer your-token"88 --header "Authorization: Bearer your-token"

89```89```

90 90 

91Bei der Konfiguration von MCP-Servern über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` akzeptiert das Feld `type` `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet den Namen `streamable-http` für dieses Transportprotokoll, sodass Konfigurationen, die aus der Server-Dokumentation kopiert werden, ohne Änderungen funktionieren.91Bei der Konfiguration von MCP-Servern über JSON in `.mcp.json`, `~/.claude.json` oder `claude mcp add-json` akzeptiert das Feld `type` `streamable-http` als Alias für `http`. Die MCP-Spezifikation verwendet den Namen `streamable-http` für dieses Transportprotokoll, sodass Konfigurationen, die aus der Serverdokumentation kopiert werden, ohne Änderungen funktionieren.

92 92 

93Ein JSON-Eintrag, der eine `url` hat, aber keinen `type`, ist ein Konfigurationsfehler, da Claude Code einen Eintrag ohne `type` als Stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Vor v2.1.202 meldete Claude Code diese Fehlkonfiguration als `command: expected string, received undefined`.93Ein JSON-Eintrag mit einer `url` aber ohne `type` ist ein Konfigurationsfehler, da Claude Code einen Eintrag ohne `type` als Stdio-Server liest. Claude Code überspringt diesen Server und meldet `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Vor v2.1.202 meldete Claude Code diese Fehlkonfiguration als `command: expected string, received undefined`.

94 94 

95Nur eine SDK-Host-Anwendung, wie eine [Agent SDK](/docs/de/agent-sdk/mcp)-Anwendung oder die [Desktop-App](/docs/de/desktop), kann einen In-Process-Server mit `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Nur eine SDK-Host-Anwendung, wie eine [Agent SDK](/docs/de/agent-sdk/mcp)-Anwendung oder die [Desktop-App](/docs/de/desktop), kann einen In-Process-Server vom Typ `"type": "sdk"` registrieren. Claude Code überspringt einen `"type": "sdk"`-Eintrag in `.mcp.json`, `~/.claude.json` oder Einstellungen und meldet `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 96 

97Bei `--output-format stream-json`-Läufen meldet Claude Code auch einen übersprungenen `--mcp-config`-Eintrag im [`mcp_server_errors`-Feld](/docs/de/headless#stream-responses) des `system/init`-Ereignisses, sodass Skripte erkennen können, dass der Server nie geladen wurde. Dies erfordert Claude Code v2.1.219 oder später.97Bei `--output-format stream-json`-Läufen meldet Claude Code auch einen übersprungenen `--mcp-config`-Eintrag im [`mcp_server_errors`-Feld](/docs/de/headless#stream-responses) des `system/init`-Events, sodass Skripte erkennen können, dass der Server nie geladen wurde. Dies erfordert Claude Code v2.1.219 oder später.

98 98 

99<h3 id="option-2-add-a-remote-sse-server">99<h3 id="option-2-add-a-remote-sse-server">

100 Option 2: Einen Remote-SSE-Server hinzufügen100 Option 2: Einen Remote-SSE-Server hinzufügen


104 Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.104 Das SSE-Transportprotokoll (Server-Sent Events) ist veraltet. Verwenden Sie stattdessen HTTP-Server, wo verfügbar.

105</Warning>105</Warning>

106 106 

107Einige Dienste stellen nur einen SSE-Endpunkt bereit. Fügen Sie diese mit dem gleichen Befehl `claude mcp add --transport http <name> <url>` wie [ein HTTP-Server](#option-1-add-a-remote-http-server) hinzu. Claude Code versucht zuerst das HTTP-Transportprotokoll und wechselt zu SSE, wenn der Server es nicht akzeptiert. Der automatische Wechsel erfordert Claude Code v2.1.265 oder später.107Einige Dienste stellen nur einen SSE-Endpunkt bereit. Fügen Sie diese mit demselben Befehl `claude mcp add --transport http <name> <url>` wie [einen HTTP-Server](#option-1-add-a-remote-http-server) hinzu. Claude Code versucht zuerst das HTTP-Transportprotokoll und wechselt zu SSE, wenn der Server es nicht akzeptiert. Der automatische Wechsel erfordert Claude Code v2.1.265 oder später.

108 108 

109Bei einer früheren Version oder um sich direkt über SSE zu verbinden, übergeben Sie stattdessen `--transport sse`:109Bei einer früheren Version oder um direkt über SSE zu verbinden, übergeben Sie stattdessen `--transport sse`:

110 110 

111```bash theme={null}111```bash theme={null}

112# Grundlegende Syntax112# Grundlegende Syntax


115# Echtes Beispiel: Mit Asana verbinden115# Echtes Beispiel: Mit Asana verbinden

116claude mcp add --transport sse asana https://mcp.asana.com/sse116claude mcp add --transport sse asana https://mcp.asana.com/sse

117 117 

118# Beispiel mit Authentifizierungs-Header118# Beispiel mit Authentifizierungsheader

119claude mcp add --transport sse private-api https://api.company.com/sse \119claude mcp add --transport sse private-api https://api.company.com/sse \

120 --header "X-API-Key: your-key-here"120 --header "X-API-Key: your-key-here"

121```121```


126 126 

127Stdio-Server werden als lokale Prozesse auf Ihrem Computer ausgeführt. Sie sind ideal für Tools, die direkten Systemzugriff oder benutzerdefinierte Skripte benötigen.127Stdio-Server werden als lokale Prozesse auf Ihrem Computer ausgeführt. Sie sind ideal für Tools, die direkten Systemzugriff oder benutzerdefinierte Skripte benötigen.

128 128 

129Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des erzeugten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abhängig zu sein. Dies ist das gleiche Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR`-Variable erhalten. Lesen Sie es aus Ihrem Serverprozess, zum Beispiel `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.129Claude Code setzt `CLAUDE_PROJECT_DIR` in der Umgebung des erzeugten Servers auf das Projektstammverzeichnis, sodass Ihr Server projektrelative Pfade auflösen kann, ohne vom Arbeitsverzeichnis abhängig zu sein. Dies ist dasselbe Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR`-Variable erhalten. Lesen Sie es aus Ihrem Serverprozess, zum Beispiel `process.env.CLAUDE_PROJECT_DIR` in Node oder `os.environ["CLAUDE_PROJECT_DIR"]` in Python.

130 130 

131`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während einer Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf einen Satz zulässiger Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code antwortet auf `roots/list` mit dem Startverzeichnis der Sitzung plus jedem [zusätzlichen Arbeitsverzeichnis](/docs/de/permissions#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` gewährt haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich dieser Satz ändert. Vor v2.1.203 gab `roots/list` nur das Startverzeichnis zurück und Claude Code sendete `notifications/roots/list_changed` nicht.131`CLAUDE_PROJECT_DIR` ist das stabile Projektstammverzeichnis und ändert sich nicht, wenn Sie während einer Sitzung Arbeitsverzeichnisse hinzufügen oder entfernen. Ein Server, der seinen eigenen Dateisystemzugriff auf einen Satz zulässiger Verzeichnisse beschränkt, sollte stattdessen die MCP-Anfrage `roots/list` implementieren. Claude Code antwortet auf `roots/list` mit dem Startverzeichnis der Sitzung plus jedem [zusätzlichen Arbeitsverzeichnis](/docs/de/permissions#working-directories), das Sie mit `--add-dir`, `/add-dir` oder der Einstellung `additionalDirectories` gewährt haben. Claude Code sendet `notifications/roots/list_changed`, wenn sich dieser Satz ändert. Vor v2.1.203 gab `roots/list` nur das Startverzeichnis zurück und Claude Code sendete `notifications/roots/list_changed` nicht.

132 132 

133Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst, daher erfordert das Referenzieren über `${VAR}`-Erweiterung in `command` oder `args` eines projektgesteuerten `.mcp.json`-Eintrags oder eines lokal- oder benutzergesteuerten Server-Eintrags in `~/.claude.json` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.133Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst. Daher erfordert das Referenzieren über `${VAR}`-Expansion in `command` oder `args` eines projektgebundenen `.mcp.json`-Eintrags oder eines lokal- oder benutzergebundenen Servereintrags in `~/.claude.json` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.

134 134 

135```bash theme={null}135```bash theme={null}

136# Grundlegende Syntax136# Grundlegende Syntax


142```142```

143 143 

144<Note>144<Note>

145 **Wichtig: Trennen Sie Server-Argumente mit `--`**145 **Wichtig: Trennen Sie Serverargumente mit `--`**

146 146 

147 Bei Stdio-Servern trennt der `--` (Doppelstrich) Claudes eigene Optionen, wie `--transport`, `--env` und `--scope`, vom Befehl und den Argumenten, die den Server ausführen. Alles nach `--` wird unverändert an den Server übergeben.147 Bei Stdio-Servern trennt `--` (Doppelstrich) Claudes eigene Optionen wie `--transport`, `--env` und `--scope` vom Befehl und den Argumenten, die den Server ausführen. Alles nach `--` wird unverändert an den Server übergeben.

148 148 

149 Zum Beispiel:149 Zum Beispiel:

150 150 

151 * `claude mcp add --transport stdio myserver -- npx server` → führt `npx server` aus151 * `claude mcp add --transport stdio myserver -- npx server` → führt `npx server` aus

152 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → führt `python server.py --port 8080` mit `KEY=value` in der Umgebung aus152 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → führt `python server.py --port 8080` mit `KEY=value` in der Umgebung aus

153 153 

154 Ohne `--` würde Claude Code versuchen, die Flags des Servers, wie `--port` oben, als seine eigenen Optionen zu analysieren.154 Ohne `--` würde Claude Code versuchen, die Flags des Servers wie `--port` oben als seine eigenen Optionen zu analysieren.

155 155 

156 `--env` akzeptiert mehrere `KEY=value`-Paare. Wenn der Servername direkt nach `--env` kommt, liest die CLI den Namen als ein weiteres Paar und lehnt ihn ab, daher platzieren Sie mindestens eine andere Option, wie `--transport stdio`, zwischen `--env` und dem Servernamen.156 `--env` akzeptiert mehrere `KEY=value`-Paare. Wenn der Servername direkt nach `--env` kommt, liest die CLI den Namen als ein weiteres Paar und lehnt ihn ab. Platzieren Sie daher mindestens eine andere Option wie `--transport stdio` zwischen `--env` und dem Servernamen.

157</Note>157</Note>

158 158 

159<h3 id="option-4-add-a-remote-websocket-server">159<h3 id="option-4-add-a-remote-websocket-server">

160 Option 4: Einen Remote-WebSocket-Server hinzufügen160 Option 4: Einen Remote-WebSocket-Server hinzufügen

161</h3>161</h3>

162 162 

163WebSocket-Server halten eine persistente bidirektionale Verbindung, die sich für Remote-MCP-Server eignet, die Claude unaufgefordert Ereignisse pushen. Verwenden Sie HTTP stattdessen, wenn Ihr Server nur auf Anfragen antwortet, da HTTP OAuth und das Flag `claude mcp add --transport` unterstützt, während WebSocket beides nicht unterstützt.163WebSocket-Server halten eine persistente bidirektionale Verbindung, die sich für Remote-MCP-Server eignet, die Claude unaufgefordert Ereignisse übermitteln. Verwenden Sie HTTP, wenn Ihr Server nur auf Anfragen antwortet, da HTTP OAuth und das Flag `claude mcp add --transport` unterstützt, während WebSocket beides nicht unterstützt.

164 164 

165Konfigurieren Sie WebSocket-Server in `.mcp.json` oder mit `claude mcp add-json`:165Konfigurieren Sie WebSocket-Server in `.mcp.json` oder mit `claude mcp add-json`:

166 166 


169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

170```170```

171 171 

172Der Eintrag `type: "ws"` akzeptiert die gleichen Felder `url`, `headers`, `headersHelper`, `timeout` und `alwaysLoad` wie `http`. Die Authentifizierung erfolgt nur über Header, daher übergeben Sie ein statisches Token in `headers` oder generieren Sie eines zur Verbindungszeit mit [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Das Flag `claude mcp add --transport` akzeptiert nicht `ws`.172Der Eintrag `type: "ws"` akzeptiert dieselben Felder `url`, `headers`, `headersHelper`, `timeout` und `alwaysLoad` wie `http`. Die Authentifizierung erfolgt nur über Header. Übergeben Sie ein statisches Token in `headers` oder generieren Sie eines beim Verbinden mit [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Das Flag `claude mcp add --transport` akzeptiert `ws` nicht.

173 173 

174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">

175 Einen Server aus Setupanweisungen hinzufügen, die für einen anderen Client geschrieben wurden175 Einen Server aus Setupanweisungen hinzufügen, die für einen anderen Client geschrieben wurden


181* **Ein Startbefehl** wie `npx -y @example/mcp-server`: Der Server wird auf Ihrem Computer ausgeführt.181* **Ein Startbefehl** wie `npx -y @example/mcp-server`: Der Server wird auf Ihrem Computer ausgeführt.

182* **Ein `mcpServers`-JSON-Block**: Konfiguration, die für die Einstellungsdatei eines anderen Clients geschrieben wurde.182* **Ein `mcpServers`-JSON-Block**: Konfiguration, die für die Einstellungsdatei eines anderen Clients geschrieben wurde.

183 183 

184Jedes ist einer der Eingaben, die die vier Optionen in [MCP-Server installieren](#installing-mcp-servers) benötigen. Finden Sie die Form, die Sie haben, unten, um sie in den Befehl umzuwandeln, den Claude Code akzeptiert. Jeder Befehl schreibt in [lokalen Bereich](#local-scope), es sei denn, Sie fügen `--scope project` oder `--scope user` hinzu.184Jede ist eine der Eingaben, die die vier Optionen in [MCP-Server installieren](#installing-mcp-servers) benötigen. Finden Sie die Form, die Sie haben, unten, um sie in den Befehl umzuwandeln, den Claude Code akzeptiert. Jeder Befehl schreibt in [lokalen Bereich](#local-scope), es sei denn, Sie fügen `--scope project` oder `--scope user` hinzu.

185 185 

186<h4 id="from-a-url">186<h4 id="from-a-url">

187 Aus einer URL187 Aus einer URL

188</h4>188</h4>

189 189 

190Eine URL bedeutet, dass der Server Remote ist. Für einen `https://`-Endpunkt fügen Sie ihn mit `--transport http` hinzu, oder folgen Sie [Option 2](#option-2-add-a-remote-sse-server), wenn die Anweisungen sagen, dass der Endpunkt SSE verwendet. Für einen `wss://`-Endpunkt verwenden Sie stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` nicht `ws` akzeptiert:190Eine URL bedeutet, dass der Server Remote ist. Für einen `https://`-Endpunkt fügen Sie ihn mit `--transport http` hinzu, oder folgen Sie [Option 2](#option-2-add-a-remote-sse-server), wenn die Anweisungen sagen, dass der Endpunkt SSE verwendet. Für einen `wss://`-Endpunkt verwenden Sie stattdessen [Option 4](#option-4-add-a-remote-websocket-server), da `--transport` `ws` nicht akzeptiert:

191 191 

192```bash theme={null}192```bash theme={null}

193claude mcp add --transport http example https://mcp.example.com/mcp193claude mcp add --transport http example https://mcp.example.com/mcp

194```194```

195 195 

196Wenn die Anweisungen auch einen API-Schlüssel oder Token-Header geben, übergeben Sie ihn mit `--header`, wie in [Option 1](#option-1-add-a-remote-http-server) gezeigt.196Wenn die Anweisungen auch einen API-Schlüssel oder Token-Header geben, übergeben Sie ihn mit `--header` wie in [Option 1](#option-1-add-a-remote-http-server) gezeigt.

197 197 

198<h4 id="from-an-npx-uvx-or-binary-command">198<h4 id="from-an-npx-uvx-or-binary-command">

199 Aus einem `npx`-, `uvx`- oder Binary-Befehl199 Aus einem `npx`-, `uvx`- oder Binärbefehl

200</h4>200</h4>

201 201 

202Ein Startbefehl bedeutet, dass der Server als lokaler Stdio-Prozess ausgeführt wird. Setzen Sie den gesamten Befehl nach `--`, sodass Claude Code Flags wie `-y` an den Befehl übergibt, der den Server startet, anstatt sie als seine eigenen Optionen zu lesen. Übergeben Sie alle Umgebungsvariablen, die die Anweisungen anfordern, mit `--env`, nach dem Servernamen und vor `--`:202Ein Startbefehl bedeutet, dass der Server als lokaler Stdio-Prozess ausgeführt wird. Platzieren Sie den gesamten Befehl nach `--`, sodass Claude Code Flags wie `-y` an den Befehl übergibt, der den Server startet, anstatt sie als seine eigenen Optionen zu lesen. Übergeben Sie alle Umgebungsvariablen, die die Anweisungen anfordern, mit `--env`, nach dem Servernamen und vor `--`:

203 203 

204```bash theme={null}204```bash theme={null}

205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

206```206```

207 207 

208[Option 3](#option-3-add-a-local-stdio-server) behandelt den `--`-Separator vollständig.208[Option 3](#option-3-add-a-local-stdio-server) behandelt den `--`-Trennzeichen vollständig.

209 209 

210<h4 id="from-an-mcpservers-json-block">210<h4 id="from-an-mcpservers-json-block">

211 Aus einem `mcpServers`-JSON-Block211 Aus einem `mcpServers`-JSON-Block

212</h4>212</h4>

213 213 

214Ein `mcpServers`-Block, der für einen anderen MCP-Client wie Claude Desktop geschrieben wurde, verwendet den Wrapper-Schlüssel und die Eintrag-Form, die Claude Code liest. Übergeben Sie `claude mcp add-json` das Objekt innerhalb von `mcpServers`, nicht den Wrapper. Zwei Einträge benötigen zuerst eine Reparatur:214Ein `mcpServers`-Block, der für einen anderen MCP-Client wie Claude Desktop geschrieben wurde, verwendet den Wrapper-Schlüssel und die Eintragform, die Claude Code liest. Übergeben Sie `claude mcp add-json` das Objekt in `mcpServers`, nicht den Wrapper. Zwei Einträge benötigen zuerst eine Reparatur:

215 215 

216* **Eine `url` ohne `type`**: Fügen Sie `"type": "http"`, `"type": "sse"` oder `"type": "ws"` hinzu, um dem Endpunkt zu entsprechen. Claude Code liest einen Eintrag ohne `type` als Stdio-Server, daher schlägt ein `url`-Eintrag ohne `type` fehl.216* **Eine `url` ohne `type`**: Fügen Sie `"type": "http"`, `"type": "sse"` oder `"type": "ws"` hinzu, um dem Endpunkt zu entsprechen. Claude Code liest einen Eintrag ohne `type` als Stdio-Server, daher schlägt ein `url`-Eintrag ohne `type` fehl.

217* **Ein Schlüssel mit Zeichen außer Buchstaben, Zahlen, Bindestrichen und Unterstrichen**: Wählen Sie einen Servernamen, der nur diese Zeichen verwendet. Andernfalls ist der Schlüssel der Servername.217* **Ein Schlüssel mit Zeichen außer Buchstaben, Zahlen, Bindestrichen und Unterstrichen**: Wählen Sie einen Servernamen, der nur diese Zeichen verwendet. Andernfalls ist der Schlüssel der Servername.


235claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'235claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

236```236```

237 237 

238[MCP-Server aus JSON-Konfiguration hinzufügen](#add-mcp-servers-from-json-configuration) behandelt Shell-Escaping und das `--scope`-Flag für `add-json`. Um den Server stattdessen mit Ihrem Team zu teilen, fügen Sie `--scope project` hinzu, oder fügen Sie den Eintrag unter `mcpServers` in `.mcp.json` in Ihrem Projektstammverzeichnis hinzu und committen Sie ihn. [Projektbereich](#project-scope) behandelt, wie Claude Code diese Datei lädt und genehmigt.238[MCP-Server aus JSON-Konfiguration hinzufügen](#add-mcp-servers-from-json-configuration) behandelt Shell-Escaping und das Flag `--scope` für `add-json`. Um den Server stattdessen mit Ihrem Team zu teilen, fügen Sie `--scope project` hinzu, oder fügen Sie den Eintrag unter `mcpServers` in `.mcp.json` in Ihrem Projektstammverzeichnis hinzu und committen Sie ihn. [Projektbereich](#project-scope) behandelt, wie Claude Code diese Datei lädt und genehmigt.

239 239 

240Jeder `claude mcp add`- und `claude mcp add-json`-Befehl gibt eine `Added ...`-Zeile aus. Um zu überprüfen, dass Claude Code verbunden ist, führen Sie `claude mcp get <name>` aus; [Serverstatus](#server-status) behandelt die Statuse, die er anzeigt, und den Genehmigungsschritt für `.mcp.json`-Server.240Jeder `claude mcp add`- und `claude mcp add-json`-Befehl gibt bei Erfolg eine `Added ...`-Zeile aus. Um zu überprüfen, dass Claude Code verbunden ist, führen Sie `claude mcp get <name>` aus; [Serverstatus](#server-status) behandelt die Statuse, die er anzeigt, und den Genehmigungsschritt für `.mcp.json`-Server.

241 241 

242<h3 id="managing-your-servers">242<h3 id="managing-your-servers">

243 Verwalten Ihrer Server243 Ihre Server verwalten

244</h3>244</h3>

245 245 

246Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:246Nach der Konfiguration können Sie Ihre MCP-Server mit diesen Befehlen verwalten:


259/mcp259/mcp

260```260```

261 261 

262Wenn Sie einen Remote-Server entfernen, löscht Claude Code auch die OAuth-Tokens und die Client-Registrierung, die er für diesen Server gespeichert hat.262Wenn Sie einen Remote-Server entfernen, löscht Claude Code auch die OAuth-Tokens und die Client-Registrierung, die es für diesen Server gespeichert hat.

263 263 

264<h4 id="server-status">264<h4 id="server-status">

265 Serverstatus265 Serverstatus

266</h4>266</h4>

267 267 

268`claude mcp add` bestätigt ein erfolgreiches Hinzufügen durch Ausgabe einer `Added ...`-Zeile, was bedeutet, dass die Konfiguration geschrieben wurde. Wenn der Befehl stattdessen eine `was not saved`-Nachricht druckt, siehe [MCP-Server wurde nicht gespeichert oder entfernt](/docs/de/errors#mcp-server-was-not-saved-or-removed); für eine `may not have been saved`-Nachricht siehe [MCP-Server wurde möglicherweise nicht gespeichert oder entfernt](/docs/de/errors#mcp-server-may-not-have-been-saved-or-removed).268`claude mcp add` bestätigt ein erfolgreiches Hinzufügen durch Ausgabe einer `Added ...`-Zeile, was bedeutet, dass die Konfiguration geschrieben wurde. Wenn der Befehl stattdessen eine `was not saved`-Meldung ausgibt, siehe [MCP-Server wurde nicht gespeichert oder entfernt](/docs/de/errors#mcp-server-was-not-saved-or-removed); für eine `may not have been saved`-Meldung siehe [MCP-Server wurde möglicherweise nicht gespeichert oder entfernt](/docs/de/errors#mcp-server-may-not-have-been-saved-or-removed).

269 269 

270`claude mcp list` zeigt einen Gesundheitsstatus neben jedem Server an, den es auflistet, wie `✔ Connected`, `! Needs authentication` oder `✘ Failed to connect`. Ein Fehlerstatus bedeutet, dass Claude Code sich nicht mit diesem Server verbinden konnte, nicht dass der List-Befehl fehlgeschlagen ist.270`claude mcp list` zeigt neben jedem aufgelisteten Server einen Gesundheitsstatus an, wie `✔ Connected`, `! Needs authentication` oder `✘ Failed to connect`. Ein Fehlerstatus bedeutet, dass Claude Code keine Verbindung zu diesem Server herstellen konnte, nicht dass der List-Befehl fehlgeschlagen ist.

271 271 

272Die Statuse in dieser Liste melden eine Konfigurationsentscheidung statt eines Verbindungsversuchs, daher gibt Claude Code sie aus, ohne sich mit dem Server zu verbinden:272Die Statuse in dieser Liste melden eine Konfigurationsentscheidung statt eines Verbindungsversuchs, daher gibt Claude Code sie aus, ohne sich mit dem Server zu verbinden:

273 273 

274* ``⏸ Pending approval (run `claude` to approve)``: Ein projektgesteuerten Server aus `.mcp.json`, den Sie noch nicht genehmigt haben. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>`. Führen Sie `claude` interaktiv aus, um ihn zu überprüfen und zu genehmigen.274* ``⏸ Pending approval (run `claude` to approve)``: ein projektgebundener Server aus `.mcp.json`, den Sie noch nicht genehmigt haben. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>`. Führen Sie `claude` interaktiv aus, um ihn zu überprüfen und zu genehmigen.

275* `✘ Rejected (see disabledMcpjsonServers in settings)`: Ein `.mcp.json`-Server, den ein [`disabledMcpjsonServers`](/docs/de/settings-reference#disabledmcpjsonservers)-Eintrag ablehnt. Claude Code zeigt ihn nur in `claude mcp get <name>`.275* `✘ Rejected (see disabledMcpjsonServers in settings)`: ein `.mcp.json`-Server, den ein [`disabledMcpjsonServers`](/docs/de/settings-reference#disabledmcpjsonservers)-Eintrag ablehnt. Claude Code zeigt ihn nur in `claude mcp get <name>`.

276* `⊘ Disabled for this project (re-enable via /mcp)`: Ein Server, den die [`disabledMcpServers`](#disable-a-server-without-removing-it)-Liste des Projekts benennt. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>`. Schalten Sie den Server über das `/mcp`-Panel wieder ein. Vor v2.1.238 verbanden sich beide Befehle mit einem deaktivierten Server, um ihn zu überprüfen, und meldeten das Verbindungsergebnis.276* `⊘ Disabled for this project (re-enable via /mcp)`: ein Server, den die [`disabledMcpServers`](#disable-a-server-without-removing-it)-Liste des Projekts nennt. Claude Code zeigt ihn sowohl in `claude mcp list` als auch in `claude mcp get <name>`. Schalten Sie den Server über das `/mcp`-Panel wieder ein.

277 277 

278WebSocket-Server erscheinen nicht in der `claude mcp list`-Ausgabe. Verwenden Sie `claude mcp get <name>` oder das `/mcp`-Panel, um sie zu überprüfen.278WebSocket-Server erscheinen nicht in der `claude mcp list`-Ausgabe. Verwenden Sie `claude mcp get <name>` oder das `/mcp`-Panel, um sie zu überprüfen.

279 279 


281 Genehmigungen von Projektservern und Workspace-Vertrauen281 Genehmigungen von Projektservern und Workspace-Vertrauen

282</h4>282</h4>

283 283 

284Ab 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 Health-Check zu sein.284Ab 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 Gesundheitsprüfung.

285 285 

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

287 287 

288* Ihre Benutzer-`~/.claude/settings.json`288* Ihre Benutzer-`~/.claude/settings.json`

289* Verwaltete Einstellungen289* verwaltete Einstellungen

290* Einstellungen, die mit `--settings` übergeben werden290* Einstellungen, die mit `--settings` übergeben werden

291 291 

292Claude Code wendet auch Genehmigungen aus einer nicht verfolgten `.claude/settings.local.json` an, aber es führt Git aus, um zu überprüfen, ob die Datei verfolgt wird, und führt diese Überprüfung nur in einem [vertrauenswürdigen Ordner](/docs/de/permissions#project-allow-rules-and-workspace-trust) durch. In einem Ordner, dem Sie noch nie vertraut haben, wartet Claude Code auf den Vertrauensdialog, bevor die Genehmigungen der Datei angewendet werden, es sei denn, der Ordner ist Ihr eigenes Konfigurationsheim: Ihr Home-Verzeichnis oder ein Verzeichnis, dessen `.claude` Sie als [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) festgelegt haben. Vor v2.1.207 genehmigte Claude Code Server aus einer nicht verfolgten `.claude/settings.local.json` sogar in einem Ordner, dem Sie noch nie vertraut haben.292Claude Code wendet auch Genehmigungen aus einer nicht verfolgten `.claude/settings.local.json` an, aber es führt git aus, um zu überprüfen, ob die Datei verfolgt wird, und führt diese Überprüfung nur in einem [vertrauenswürdigen Ordner](/docs/de/permissions#project-allow-rules-and-workspace-trust) durch. In einem Ordner, dem Sie noch nie vertraut haben, wartet Claude Code auf den Vertrauensdialog, bevor die Genehmigungen der Datei angewendet werden, es sei denn, der Ordner ist Ihr eigenes Konfigurationsheim: Ihr Home-Verzeichnis oder ein Verzeichnis, dessen `.claude` Sie als [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) gesetzt haben. Vor v2.1.207 wendete Claude Code Genehmigungen aus einer nicht verfolgten `.claude/settings.local.json` auch in einem Ordner an, dem Sie noch nie vertraut hatten.

293 293 

294Ein `disabledMcpjsonServers`-Eintrag in einer beliebigen Einstellungsdatei lehnt den Server weiterhin ab.294Ein `disabledMcpjsonServers`-Eintrag in einer beliebigen Einstellungsdatei lehnt den Server weiterhin ab.

295 295 


297 Serverstatus-Detail297 Serverstatus-Detail

298</h4>298</h4>

299 299 

300In `/mcp`, einschließlich des Menüs eines Servers dort, und im [`/plugin`](/docs/de/plugins/install)-Manager kann ein Remote-HTTP- oder SSE-Server, den Sie zuvor verwendet haben, einen `cached`-Status wie `cached 2h ago · connects on first use · 5 tools` anzeigen. Claude Code lud die Tool-Liste des Servers aus seinem Discovery-Cache, der in einer vorherigen Sitzung gespeichert wurde, anstatt beim Start zu verbinden, und Claude Code verbindet den Server das erste Mal, wenn Claude eines der Tools des Servers aufruft. Die Tools sind ab Ihrer ersten Nachricht verfügbar, daher müssen Sie nichts tun. Der Discovery-Cache und sein `cached`-Status erfordern Claude Code v2.1.221 oder später.300In `/mcp`, einschließlich des Menüs eines Servers dort, und im [`/plugin`](/docs/de/plugins/install)-Manager kann ein Remote-HTTP- oder SSE-Server, den Sie zuvor verwendet haben, einen `cached`-Status wie `cached 2h ago · connects on first use · 5 tools` anzeigen. Claude Code hat die Werkzeugliste des Servers aus seinem Erkennungs-Cache geladen, der in einer vorherigen Sitzung gespeichert wurde, anstatt beim Start zu verbinden, und Claude Code verbindet den Server das erste Mal, wenn Claude eines der Werkzeuge des Servers aufruft. Die Werkzeuge sind ab Ihrer ersten Nachricht verfügbar, daher müssen Sie nichts tun. Der Erkennungs-Cache und sein `cached`-Status erfordern Claude Code v2.1.221 oder später.

301 301 

302Der Discovery-Cache ist standardmäßig deaktiviert, es sei denn, ein schrittweiser Rollout hat ihn für Ihr Konto aktiviert. Setzen Sie [`MCP_DISCOVERY_CACHE=1`](/docs/de/env-vars), um ihn einzuschalten, oder `0`, um ihn ausgeschaltet zu halten, auch wenn der Rollout ihn aktiviert hat. Vor v2.1.238 war der Cache standardmäßig aktiviert.302Der Erkennungs-Cache ist standardmäßig deaktiviert, es sei denn, ein schrittweiser Rollout hat ihn für Ihr Konto aktiviert. Setzen Sie [`MCP_DISCOVERY_CACHE=1`](/docs/de/env-vars), um ihn einzuschalten, oder `0`, um ihn deaktiviert zu halten, auch wenn der Rollout ihn aktiviert hat. Vor v2.1.238 war der Cache standardmäßig aktiviert.

303 303 

304Wenn Sie **Disable** oder **Clear authentication** aus dem Menü eines Servers in `/mcp` auswählen, verwirft Claude Code auch den Cache-Eintrag dieses Servers. **Reconnect** verwirft ihn auch bei einem verbundenen oder fehlgeschlagenen Server; bei einem `cached`-Server verbindet **Reconnect** den Server jetzt und behält den Eintrag. Das nächste Mal, wenn Claude Code sich mit dem Server verbindet, nachdem der Eintrag verworfen wurde, ruft es die Tool-Liste vom Server ab, anstatt aus dem Cache.304Wenn Sie **Disable** oder **Clear authentication** aus dem Menü eines Servers in `/mcp` auswählen, verwirft Claude Code auch den Cache-Eintrag dieses Servers. **Reconnect** verwirft ihn auch auf einem verbundenen oder fehlgeschlagenen Server; auf einem `cached`-Server verbindet **Reconnect** den Server jetzt und behält den Eintrag. Das nächste Mal, wenn Claude Code sich mit dem Server verbindet, nachdem der Eintrag verworfen wurde, ruft es die Werkzeugliste vom Server ab, anstatt sie aus dem Cache zu holen.

305 305 

306Wenn der Status eines Servers `✘ Failed to connect` ist, hängt `claude mcp list` das Fehlerdetail an diese Statuszeile an, und `claude mcp get <name>` zeigt es auf einer `Issue:`-Zeile: der HTTP-Status oder Fehlercode, plus jeder Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält den gleichen vom Server gemeldeten Text in ihrer `Issue:`-Zeile. Claude Code redigiert Credential-ähnlichen Text aus diesem Detail und enthält niemals die erweiterte Server-URL, die Geheimnisse tragen kann. Claude Code hängt keinen Detail an einen `✘ Connection error`-Status an, da der Exception-Text, den es dort drucken würde, diese URL einbetten kann. Vor v2.1.219 zeigten beide Befehle nur den bloßen Fehlerstatus ohne Statuscode oder Fehlertext des Servers.306Wenn der Status eines Servers `✘ Failed to connect` ist, hängt `claude mcp list` das Fehlerdetail an diese Statuszeile an, und `claude mcp get <name>` zeigt es auf einer `Issue:`-Zeile: der HTTP-Status oder Fehlercode, plus jeder Fehlertext, den der Server zurückgegeben hat. Die Detailansicht des Servers in `/mcp` enthält denselben vom Server gemeldeten Text in seiner `Issue:`-Zeile. Claude Code redigiert anmeldungsähnlichen Text aus diesem Detail und enthält niemals die erweiterte Server-URL, die Geheimnisse tragen kann. Claude Code hängt kein Detail an einen `✘ Connection error`-Status an, da der Ausnahmtext, den es dort drucken würde, diese URL einbetten kann. Vor v2.1.219 zeigten beide Befehle nur den bloßen Fehlerstatus ohne Statuscode oder Fehlertext des Servers.

307 307 

308Wenn Sie die Authentifizierung von `/mcp` aus abschließen und die Verbindung immer noch mit einem HTTP-Status oder einem Transport-Fehlercode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der URL des Servers zur Nachricht hinzu, die es nach dem Versuch druckt. Der Ursprung ist das Schema und der Host, plus der Port, wenn die URL einen benennt, wie `https://mcp.example.com`.308Wenn Sie die Authentifizierung von `/mcp` aus abschließen und die Verbindung immer noch mit einem HTTP-Status oder einem Transportfehlerkode fehlschlägt, fügt Claude Code diesen Code und den Ursprung der Server-URL zur Meldung hinzu, die es nach dem Versuch druckt. Der Ursprung ist das Schema und der Host, plus der Port, wenn die URL einen nennt, wie `https://mcp.example.com`.

309 309 

310* Der Pfad und die Abfrage erscheinen niemals in dieser Nachricht.310* Der Pfad und die Abfrage erscheinen niemals in dieser Meldung.

311* Für einen Server im lokalen, Projekt- oder Benutzer-[Bereich](#mcp-installation-scopes) oder in verwalteter MCP-Konfiguration zeigt der Ursprung den Host, wie er in dieser Konfiguration geschrieben ist, daher wird eine `${VAR}`-Referenz im Host nicht in der Nachricht erweitert.311* Für einen Server im lokalen, Projekt- oder Benutzer-[Bereich](#mcp-installation-scopes) oder in verwalteter MCP-Konfiguration zeigt der Ursprung den Host wie in dieser Konfiguration geschrieben, daher wird eine `${VAR}`-Referenz im Host in der Meldung nicht erweitert.

312* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung.312* Bei einem Fehler ohne Status oder Fehlercode zeigt Claude Code den Fehlertext ohne den Ursprung.

313 313 

314Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](/docs/de/plugins/install)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich damit zu verbinden. Ein Plugin kann einen Platzhalter-Eintrag wie diesen für einen Connector enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Setup-Problem meldet. Die Detailansicht des Servers in `/mcp` liest `No URL configured for this server`; setzen Sie die `url` des Eintrags, um sich zu verbinden. Vor v2.1.208 meldete Claude Code eine leere `url` als Konfigurationsproblem mit einer Aufforderung zur Wiederverbindung.314Ein Remote-Server, dessen Konfiguration eine leere `url` hat, wird in `/mcp`, in `claude mcp list` und im [`/plugin`](/docs/de/plugins/install)-Manager als `not configured` angezeigt, und Claude Code versucht nicht, sich damit zu verbinden. Ein Plugin kann einen Platzhalter-Eintrag wie diesen für einen Connector enthalten, den Sie später konfigurieren, sodass Claude Code ihn nicht als Fehler oder Setup-Problem meldet. Die Detailansicht des Servers in `/mcp` liest `No URL configured for this server`; setzen Sie die `url` des Eintrags, um ihn zu verbinden. Vor v2.1.208 meldete Claude Code eine leere `url` als Konfigurationsproblem mit einer Aufforderung zum Erneuten Verbinden.

315 315 

316<h4 id="configuration-warnings">316<h4 id="configuration-warnings">

317 Konfigurationswarnungen317 Konfigurationswarnungen


319 319 

320Claude Code warnt vor den folgenden Konfigurationsproblemen. Jeder Eintrag sagt, was Claude Code überprüft und wie die Warnung gelöscht wird:320Claude Code warnt vor den folgenden Konfigurationsproblemen. Jeder Eintrag sagt, was Claude Code überprüft und wie die Warnung gelöscht wird:

321 321 

322* **Versteckte Leerzeichen**: Claude Code warnt, wenn ein MCP-Konfigurationswert versteckte führende oder nachfolgende Leerzeichen trägt, die oft vom Einfügen eines Tokens mit einem nachfolgenden Zeilenumbruch stammen. Claude Code überprüft `command`, `url`, jeden `args`-Eintrag und die Werte und Schlüsselnamen unter `env` und `headers`. Claude Code zeigt die Warnung in der `claude mcp list`-Ausgabe und in `/mcp` an und benennt die betroffenen Felder, ohne ihre Werte zu wiederholen, zum Beispiel `Leading or trailing whitespace in: headers.Authorization`. Claude Code trimmt das Leerzeichen nicht und verwendet die Werte genau wie geschrieben, daher bearbeiten Sie die Konfiguration, um es zu entfernen.322* **Versteckte Leerzeichen**: Claude Code warnt, wenn ein MCP-Konfigurationswert versteckte führende oder nachfolgende Leerzeichen trägt, die oft vom Einfügen eines Tokens mit einem nachfolgenden Zeilenumbruch stammen. Claude Code überprüft `command`, `url`, jeden `args`-Eintrag und die Werte und Schlüsselnamen unter `env` und `headers`. Claude Code zeigt die Warnung in der `claude mcp list`-Ausgabe und in `/mcp` an und nennt die betroffenen Felder, ohne ihre Werte auszugeben, zum Beispiel `Leading or trailing whitespace in: headers.Authorization`. Claude Code trimmt die Leerzeichen nicht und verwendet die Werte genau wie geschrieben, daher bearbeiten Sie die Konfiguration, um sie zu entfernen.

323* **Gleicher Name in mehr als einem Bereich**: Wenn Sie den gleichen Servernamen in mehr als einem [Bereich](#mcp-installation-scopes) mit verschiedenen Endpunkten definieren, warnt Claude Code vor dem Konflikt in der `claude mcp list`-Ausgabe und in `/mcp`. Claude Code speichert OAuth-Anmeldungen pro Endpunkt, daher müssen Sie sich, wenn Sie die Definition authentifizieren, die in einem Projekt geladen wird, immer noch separat in einem Projekt anmelden, in dem eine andere Definition geladen wird. Behalten Sie den Endpunkt, den Sie möchten, und entfernen Sie die anderen mit `claude mcp remove <name> --scope <scope>`. In der Warnung zitiert Claude Code den Endpunkt jedes Bereichs, wie er in Ihrer Konfiguration geschrieben ist, mit [`${VAR}`-Referenzen](#environment-variable-expansion-in-mcp-json) nicht erweitert, daher zeigt es niemals einen aufgelösten Wert wie einen API-Schlüssel.323* **Gleicher Name in mehr als einem Bereich**: Wenn Sie denselben Servernamen in mehr als einem [Bereich](#mcp-installation-scopes) mit verschiedenen Endpunkten definieren, warnt Claude Code vor dem Konflikt in der `claude mcp list`-Ausgabe und in `/mcp`. Claude Code speichert OAuth-Anmeldungen pro Endpunkt, daher müssen Sie sich, wenn Sie die Definition authentifizieren, die in einem Projekt geladen wird, in einem Projekt, in dem eine andere Definition geladen wird, immer noch separat anmelden. Behalten Sie den Endpunkt, den Sie möchten, und entfernen Sie die anderen mit `claude mcp remove <name> --scope <scope>`. In der Warnung zitiert Claude Code den Endpunkt jedes Bereichs wie in Ihrer Konfiguration geschrieben, mit [`${VAR}`-Referenzen](#environment-variable-expansion-in-mcp-json) nicht erweitert, daher zeigt es niemals einen aufgelösten Wert wie einen API-Schlüssel.

324* **Reservierte Namen**: Claude Code reserviert die Namen seiner integrierten Server, einschließlich `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` und `Claude Browser`. Wenn Ihre Konfiguration einen Server mit einem reservierten Namen definiert, überspringt Claude Code ihn beim Laden und zeigt eine Warnung an, die Sie auffordert, ihn umzubenennen. `claude mcp add` lehnt einen reservierten Namen mit einem Fehler ab. `Claude Preview` und `Claude Browser` benennen beide den integrierten Server, den der [Claude Code Desktop-App-Vorschaubereich](/docs/de/desktop#preview-your-app) verwendet. Vor v2.1.205 war `Claude Browser` nicht reserviert, daher konnte ein benutzerkonfigurierter Server sich unter diesem Namen registrieren.324* **Reservierte Namen**: Claude Code reserviert die Namen seiner integrierten Server, einschließlich `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` und `Claude Browser`. Wenn Ihre Konfiguration einen Server mit einem reservierten Namen definiert, überspringt Claude Code ihn beim Laden und zeigt eine Warnung an, die Sie auffordert, ihn umzubenennen. `claude mcp add` lehnt einen reservierten Namen mit einem Fehler ab. `Claude Preview` und `Claude Browser` benennen beide den integrierten Server, den das [Vorschau-Panel der Claude Code Desktop-App](/docs/de/desktop#preview-your-app) verwendet.

325* **Fehlende Umgebungsvariable**: Wenn eine [`${VAR}`-Referenz](#environment-variable-expansion-in-mcp-json) in der Konfiguration eines Servers eine Variable benennt, die nicht gesetzt ist und keinen `:-default` hat, warnt Claude Code in der `claude mcp list`-Ausgabe und in `/mcp`, benennt die Variable und lädt den Server immer noch mit dem `${VAR}`-Text nicht erweitert. Setzen Sie die Variable oder fügen Sie einen `${VAR:-default}`-Fallback hinzu. In der `url` und `headers` eines Remote-Servers lesen einige Credential-Variablen [als leer](#credential-variables-that-read-as-empty) statt, ohne Warnung.325* **Fehlende Umgebungsvariable**: Wenn eine [`${VAR}`-Referenz](#environment-variable-expansion-in-mcp-json) in der Konfiguration eines Servers eine Variable nennt, die nicht gesetzt ist und keinen `:-default` hat, warnt Claude Code in der `claude mcp list`-Ausgabe und in `/mcp`, nennt die Variable und lädt den Server immer noch mit dem `${VAR}`-Text nicht erweitert. Setzen Sie die Variable oder fügen Sie einen `${VAR:-default}`-Fallback hinzu. In der `url` und `headers` eines Remote-Servers lesen einige Anmeldungsvariablen stattdessen [als leer](#credential-variables-that-read-as-empty), ohne Warnung.

326 326 

327<h4 id="tool-availability">327<h4 id="tool-availability">

328 Tool-Verfügbarkeit328 Werkzeugverfügbarkeit

329</h4>329</h4>

330 330 

331Das `/mcp`-Panel zeigt die Tool-Anzahl neben jedem verbundenen Server an und kennzeichnet Server, die die Tools-Funktion ankündigen, aber keine Tools bereitstellen.331Das `/mcp`-Panel zeigt die Werkzeuganzahl neben jedem verbundenen Server und kennzeichnet Server, die die Werkzeugfähigkeit ankündigen, aber keine Werkzeuge bereitstellen.

332 332 

333Wenn Ihre Anfrage Tools von einem Server benötigt, der sich noch im Hintergrund verbindet, wartet Claude auf diesen Server, bevor er fortfährt. Wie das Warten geschieht, hängt von Ihrer Konfiguration ab:333Wenn Ihre Anfrage Werkzeuge von einem Server benötigt, der sich noch im Hintergrund verbindet, wartet Claude auf diesen Server, bevor er fortfährt. Wie das Warten geschieht, hängt von Ihrer Konfiguration ab:

334 334 

335* **Mit [Tool-Suche](#scale-with-mcp-tool-search), der Standardeinstellung**: Das Warten erfolgt innerhalb des `ToolSearch`-Aufrufs.335* **Mit [Werkzeugsuche](#scale-with-mcp-tool-search), der Standard**: Das Warten geschieht innerhalb des `ToolSearch`-Aufrufs.

336* **Ohne Tool-Suche**: Claude verwendet stattdessen das `WaitForMcpServers`-Tool. Konfigurationen ohne Tool-Suche enthalten eine benutzerdefinierte `ANTHROPIC_BASE_URL`, `ENABLE_TOOL_SEARCH=false` und ein Modell früher als die Claude 4.5-Generation auf Google Cloud's Agent Platform.336* **Ohne Werkzeugsuche**: Claude verwendet stattdessen das `WaitForMcpServers`-Werkzeug. Konfigurationen ohne Werkzeugsuche enthalten eine benutzerdefinierte `ANTHROPIC_BASE_URL`, `ENABLE_TOOL_SEARCH=false` und ein Modell früher als die Claude 4.5-Generation auf Google Clouds Agent Platform.

337* **Bei einer Microsoft Foundry-[Bereitstellung auf Azure gehostet](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Tool-Suche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung der Bereitstellung nur von der API entdeckt. Nachdem Claude Code diese Bereitstellung auf [vorausgehendes Laden](#scale-with-mcp-tool-search) umschaltet, werden Tools von einem Server, der die Verbindung beendet, bei Claudes nächster Anfrage verfügbar.337* **Bei einer Microsoft Foundry-[Bereitstellung auf Azure gehostet](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude startet auf dem Werkzeugsuche-Pfad statt mit `WaitForMcpServers`, da Claude Code die serverseitige Ablehnung der Bereitstellung nur von der API entdeckt. Nachdem Claude Code diese Bereitstellung auf [vorausgehendes Laden](#scale-with-mcp-tool-search) umschaltet, werden Werkzeuge von einem Server, der die Verbindung beendet, bei Claudes nächster Anfrage verfügbar.

338 338 

339Mit aktivierter Tool-Suche, wenn ein Server die Verbindung beendet, während Claude arbeitet, listet Claude Code die Tool-Namen des Servers bei seiner nächsten Anfrage in der gleichen Runde zu Claude auf. Claude kann dann diese Tools suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.339Mit aktivierter Werkzeugsuche, wenn ein Server die Verbindung beendet, während Claude arbeitet, listet Claude Code die Werkzeugnamen des Servers bei Claudes nächster Anfrage in derselben Runde auf. Claude kann dann diese Werkzeuge suchen und aufrufen, ohne auf Ihre nächste Nachricht zu warten.

340 340 

341<h3 id="disable-a-server-without-removing-it">341<h3 id="disable-a-server-without-removing-it">

342 Einen Server deaktivieren, ohne ihn zu entfernen342 Einen Server deaktivieren, ohne ihn zu entfernen

343</h3>343</h3>

344 344 

345Schalten Sie einen Server im `/mcp`-Panel aus, um Claude Code daran zu hindern, sich damit zu verbinden, ohne seine Konfiguration zu verlieren. Claude Code listet den Server immer noch in `/mcp` auf, markiert als deaktiviert.345Schalten Sie einen Server im `/mcp`-Panel aus, um Claude Code daran zu hindern, sich damit zu verbinden, ohne seine Konfiguration zu verlieren. Claude Code listet den Server immer noch in `/mcp` auf, gekennzeichnet als deaktiviert.

346 346 

347Wenn Sie einen Server umschalten, zeichnet Claude Code Ihre Wahl pro Projekt in `~/.claude.json` in einer von zwei Listen auf, die disjunkte Sätze von Servern abdecken:347Wenn Sie einen Server umschalten, zeichnet Claude Code Ihre Wahl pro Projekt in `~/.claude.json` in einer von zwei Listen auf, die disjunkte Sätze von Servern abdecken:

348 348 

349* `disabledMcpServers`: Eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, Server, die Ihre Organisation [über verwaltete Einstellungen bereitstellt](/docs/de/managed-mcp#provide-servers-through-managed-settings), die claude.ai-Connectoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), und integrierte Server, die standardmäßig aktiviert sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier auflisten. Wenn Sie einen claude.ai-Connector mit dem Pro-Projekt-`/mcp`-Umschalter deaktivieren, der in [claude.ai-Connectoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn in diese Liste unter seinem Anzeigenamen, zum Beispiel `claude.ai Slack`.349* `disabledMcpServers`: eine Opt-out-Liste für benutzerkonfigurierte Server, Plugin-Server, Server, die Ihre Organisation [durch verwaltete Einstellungen bereitstellt](/docs/de/managed-mcp#provide-servers-through-managed-settings), die claude.ai-Connectoren, die Claude Code [selbst abruft](#how-connectors-reach-claude-code), und integrierte Server, die standardmäßig aktiviert sind. Claude Code verbindet sich nicht mit einem Server, den Sie hier auflisten. Wenn Sie einen claude.ai-Connector mit dem pro-Projekt-`/mcp`-Umschalter deaktivieren, der in [claude.ai-Connectoren deaktivieren](#disable-claude-ai-connectors) beschrieben ist, schreibt Claude Code ihn unter seinem Anzeigenamen in diese Liste, zum Beispiel `claude.ai Slack`.

350* `enabledMcpServers`: Eine Opt-in-Liste für integrierte Server, die standardmäßig deaktiviert sind, wie `computer-use`. Claude Code verbindet sich mit einem standardmäßig deaktivierten Server nur, wenn Sie ihn hier auflisten.350* `enabledMcpServers`: eine Opt-in-Liste für integrierte Server, die standardmäßig deaktiviert sind, wie `computer-use`. Claude Code verbindet sich mit einem standardmäßig deaktivierten Server nur, wenn Sie ihn hier auflisten.

351 351 

352Claude Code konsultiert genau eine der beiden Listen für jeden Server, daher überschreibt keine Liste die andere. Wenn Sie einen regulären Server zu `enabledMcpServers` hinzufügen oder einen standardmäßig deaktivierten integrierten Server zu `disabledMcpServers`, ignoriert Claude Code den Eintrag.352Claude Code konsultiert genau eine der beiden Listen für jeden Server, daher überschreibt keine Liste die andere. Wenn Sie einen regulären Server zu `enabledMcpServers` hinzufügen oder einen standardmäßig deaktivierten integrierten Server zu `disabledMcpServers`, ignoriert Claude Code den Eintrag.

353 353 


357 MCP-Client-Runtimes357 MCP-Client-Runtimes

358</h3>358</h3>

359 359 

360Claude Code verbindet sich mit MCP-Servern über eine von zwei Client-Runtimes. Die v1-Runtime basiert auf MCP TypeScript SDK 1.x. Die v2-Runtime ist der gleiche Code auf [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), das MCP-Protokoll-Revision 2026-07-28 hinzufügt. Der Rest dieser Seite gilt für beide Runtimes, außer wo ein Abschnitt die v2-Runtime benennt.360Claude Code verbindet sich mit MCP-Servern über eine von zwei Client-Runtimes. Die v1-Runtime basiert auf MCP TypeScript SDK 1.x. Die v2-Runtime ist derselbe Code auf [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), das MCP-Protokollrevision 2026-07-28 hinzufügt. Der Rest dieser Seite gilt für beide Runtimes, außer wo ein Abschnitt die v2-Runtime nennt.

361 361 

362Claude Code wählt jedes Mal, wenn Sie es starten, eine Runtime aus und behält sie bis zum Beenden. In Sitzungen, in denen es [Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), verwendet es die v2-Runtime bei Claude Code v2.1.232 oder später.362Claude Code wählt jedes Mal, wenn Sie ihn starten, eine Runtime aus und behält sie bis zum Beenden. In Sitzungen, in denen es [Feature-Flags abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), verwendet es die v2-Runtime auf Claude Code v2.1.232 oder später.

363 363 

364In den Sitzungen, in denen es keine Feature-Flags abruft, verwendet Claude Code die v2-Runtime standardmäßig bei Claude Code v2.1.274 oder später:364In den Sitzungen, in denen es keine Feature-Flags abruft, verwendet Claude Code die v2-Runtime standardmäßig auf Claude Code v2.1.274 oder später:

365 365 

366* Sitzungen auf Amazon Bedrock, Claude Platform auf AWS, Google Cloud's Agent Platform oder Microsoft Foundry, es sei denn, eine Host-Plattform, die Claude Code einbettet, setzt [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars)366* Sitzungen auf Amazon Bedrock, Claude Platform auf AWS, Google Clouds Agent Platform oder Microsoft Foundry, es sei denn, eine Host-Plattform, die Claude Code einbettet, setzt [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/de/env-vars)

367* Sitzungen angemeldet über ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)367* Sitzungen, die sich über ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) anmelden

368* Sitzungen, in denen Sie Telemetrie oder Feature-Flag-Abruf ausschalten, zum Beispiel mit `DISABLE_TELEMETRY`368* Sitzungen, in denen Sie Telemetrie oder Feature-Flag-Abruf deaktivieren, zum Beispiel mit `DISABLE_TELEMETRY`

369 369 

370Bei v2 macht Claude Code auch:370Auf v2 führt Claude Code auch:

371 371 

372* Fragt HTTP-Server, ob sie die neuere Revision unterstützen, und verwendet sie mit denen, die das tun. Es fragt auch claude.ai-Connector-Server in Sitzungen, in denen es Feature-Flags abruft. Um es Stdio-Server zu fragen oder Connector-Server in jeder Sitzung zu fragen, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto`. Es verbindet sich mit jedem anderen Server wie v1.372* Fragt HTTP-Server, ob sie die neuere Revision unterstützen, und verwendet sie mit denen, die dies tun. Es fragt auch claude.ai-Connector-Server in Sitzungen, in denen es Feature-Flags abruft. Um es zu fragen, Stdio-Server oder Connector-Server in jeder Sitzung zu fragen, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto`. Es verbindet sich mit jedem anderen Server wie v1.

373* Empfängt `list_changed`-Benachrichtigungen von Servern auf der neueren Revision über einen [Stream, den es offen hält](#notification-streams-on-the-v2-runtime).373* Empfängt `list_changed`-Benachrichtigungen von Servern auf der neueren Revision über einen [Stream, den es offen hält](#notification-streams-on-the-v2-runtime).

374* Registriert keinen [Kanal](#push-messages-with-channels)-Server, der sich auf der neueren Revision verbindet, da diese Revision keine Kanal-Nachrichten tragen kann.374* Registriert keinen [Channel](#push-messages-with-channels)-Server, der sich auf der neueren Revision verbindet, da diese Revision keine Channel-Nachrichten tragen kann.

375* Schlägt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehl, deren Autorisierungsantwort einen unerwarteten Aussteller benennt.375* Schlägt eine [MCP-OAuth-Anmeldung](#authenticate-with-remote-mcp-servers) fehl, deren Autorisierungsantwort einen unerwarteten Aussteller nennt.

376* Sendet [MCP-OAuth](#authenticate-with-remote-mcp-servers)-Anmeldedaten nur an einen Token-Endpunkt, der über HTTPS oder bei `localhost`, `127.0.0.1` oder `::1` bereitgestellt wird. Die Anmeldung schlägt für einen Server fehl, dessen Token-Endpunkt einfaches `http://` irgendwo anders ist, wie ein Gerät in Ihrem lokalen Netzwerk. Siehe [Ablehnung, Anmeldedaten an nicht-HTTPS-Token-Endpunkt zu senden](/docs/de/errors#refusing-to-send-credentials-to-non-https-token-endpoint).376* Sendet [MCP-OAuth](#authenticate-with-remote-mcp-servers)-Anmeldedaten nur an einen Token-Endpunkt, der über HTTPS oder bei `localhost`, `127.0.0.1` oder `::1` bereitgestellt wird. Die Anmeldung schlägt für einen Server fehl, dessen Token-Endpunkt einfaches `http://` irgendwo anders ist, wie ein Gerät in Ihrem lokalen Netzwerk. Siehe [Refusing to send credentials to non-https token endpoint](/docs/de/errors#refusing-to-send-credentials-to-non-https-token-endpoint).

377 377 

378Anthropic kann einen bestimmten Server auf dem früheren Protokoll halten oder von diesem Stream entfernen, mit einem Feature-Flag, das Claude Code abruft.378Anthropic kann einen bestimmten Server mit einem Feature-Flag, das Claude Code abruft, auf dem früheren Protokoll halten oder aus diesem Stream entfernen.

379 379 

380Um die Runtime selbst zu wählen, setzen Sie [`MCP_SDK_GENERATION`](/docs/de/env-vars) auf `v1` oder `v2`. Um zu entscheiden, ob Claude Code fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` oder `legacy`.380Um die Runtime selbst auszuwählen, setzen Sie [`MCP_SDK_GENERATION`](/docs/de/env-vars) auf `v1` oder `v2`. Um zu entscheiden, ob Claude Code fragt, setzen Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` oder `legacy`.

381 381 

382<h3 id="dynamic-tool-updates">382<h3 id="dynamic-tool-updates">

383 Dynamische Tool-Updates383 Dynamische Werkzeugaktualisierungen

384</h3>384</h3>

385 385 

386Claude Code unterstützt MCP-`list_changed`-Benachrichtigungen, die es MCP-Servern ermöglichen, ihre verfügbaren Tools, Prompts und Ressourcen dynamisch zu aktualisieren, ohne dass Sie die Verbindung trennen und erneut verbinden müssen. Wenn ein MCP-Server eine `list_changed`-Benachrichtigung sendet, aktualisiert Claude Code automatisch die verfügbaren Funktionen von diesem Server.386Claude Code unterstützt MCP-`list_changed`-Benachrichtigungen, die es MCP-Servern ermöglichen, ihre verfügbaren Werkzeuge, Prompts und Ressourcen dynamisch zu aktualisieren, ohne dass Sie die Verbindung trennen und erneut verbinden müssen. Wenn ein MCP-Server eine `list_changed`-Benachrichtigung sendet, aktualisiert Claude Code automatisch die verfügbaren Fähigkeiten von diesem Server.

387 387 

388Wenn eine Aktualisierungsanfrage fehlschlägt, behält Claude Code die zuvor entdeckten Tools, Prompts und Ressourcen des Servers bis zu einer späteren erfolgreichen Aktualisierung. Vor v2.1.214 ersetzte ein vorübergehender Fehler während der Aktualisierung die Tools, Prompts und Ressourcen des Servers durch eine leere Liste.388Wenn eine Aktualisierungsanfrage fehlschlägt, behält Claude Code die zuvor entdeckten Werkzeuge, Prompts und Ressourcen des Servers, bis eine spätere Aktualisierung erfolgreich ist. Vor v2.1.214 ersetzte ein vorübergehender Fehler während der Aktualisierung die Werkzeuge, Prompts und Ressourcen des Servers durch eine leere Liste.

389 389 

390<h4 id="notification-streams-on-the-v2-runtime">390<h4 id="notification-streams-on-the-v2-runtime">

391 Benachrichtigungs-Streams auf der v2-Runtime391 Benachrichtigungsströme auf der v2-Runtime

392</h4>392</h4>

393 393 

394Bei der [v2-Runtime](#mcp-client-runtimes) empfängt Claude Code `list_changed`-Benachrichtigungen von einem Server auf der neueren Protokoll-Revision über einen Stream, den es offen hält. Wenn der Stream schließt, öffnet Claude Code ihn erneut, mit zwei Grenzen:394Auf der [v2-Runtime](#mcp-client-runtimes) empfängt Claude Code `list_changed`-Benachrichtigungen von einem Server auf der neueren Protokollrevision über einen Stream, den es offen hält. Wenn der Stream schließt, öffnet Claude Code ihn erneut, mit zwei Grenzen:

395 395 

396* **Der Stream schließt innerhalb von 10 Sekunden erneut**: Claude Code öffnet ihn bis zu dreimal erneut, dann stoppt es für diese Verbindung.396* **Der Stream schließt innerhalb von 10 Sekunden erneut**: Claude Code öffnet ihn bis zu dreimal erneut, dann stoppt es für diese Verbindung.

397* **Der Stream bleibt länger als 10 Sekunden offen, dann schließt**, wie Streams zu serverlosen Hosts häufig tun: Nach fünf Wiederöffnungen in einer Stunde wartet Claude Code etwa sechs Stunden vor der nächsten.397* **Der Stream bleibt länger als 10 Sekunden offen, dann schließt**, wie Streams zu serverlosen Hosts häufig tun: Nach fünf Wiederöffnungen in einer Stunde wartet Claude Code etwa sechs Stunden, bevor die nächste.

398 398 

399Bis der Stream erneut öffnet, behalten Sie die zuletzt abgerufenen Tools, Prompts und Ressourcen des Servers. Um seine Änderungen schneller zu erkennen, verbinden Sie den Server von `/mcp` erneut.399Bis der Stream erneut öffnet, behalten Sie die zuletzt abgerufenen Werkzeuge, Prompts und Ressourcen des Servers. Um seine Änderungen schneller zu erkennen, verbinden Sie den Server von `/mcp` erneut.

400 400 

401<h3 id="automatic-reconnection">401<h3 id="automatic-reconnection">

402 Automatische Wiederverbindung402 Automatische Wiederverbindung

403</h3>403</h3>

404 404 

405Claude Code verbindet einen Remote-Server, der während einer Sitzung die Verbindung trennt, erneut und versucht die erste Verbindung eines HTTP- oder SSE-Servers nach einem vorübergehenden Fehler erneut. Stdio-Server sind lokale Prozesse, und Claude Code verbindet sie nicht automatisch erneut.405Claude Code verbindet einen Remote-Server erneut, der während einer Sitzung abbricht, und versucht die erste Verbindung eines HTTP- oder SSE-Servers nach einem vorübergehenden Fehler erneut. Stdio-Server sind lokale Prozesse, und Claude Code verbindet sie nicht automatisch erneut.

406 406 

407<h4 id="mid-session-drops-of-a-remote-server">407<h4 id="mid-session-drops-of-a-remote-server">

408 Verbindungstrennung eines Remote-Servers während einer Sitzung408 Mitten in der Sitzung abbrechende Remote-Server

409</h4>409</h4>

410 410 

411Claude Code verbindet einen getrennten Remote-Server mit exponentiellem Backoff erneut: bis zu fünf Versuche, beginnend mit einer Verzögerung von einer Sekunde und sich jedes Mal verdoppelnd. Was Sie sehen, hängt davon ab, wie Sie Claude Code ausführen:411Claude Code verbindet einen abgebrochenen Remote-Server mit exponentiellem Backoff erneut: bis zu fünf Versuche, beginnend mit einer Verzögerung von einer Sekunde und verdoppelt sich jedes Mal. Was Sie sehen, hängt davon ab, wie Sie Claude Code ausführen:

412 412 

413* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code erneut verbindet. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als Authentifizierung erforderlich, wenn der Server erneut autorisiert werden muss. Sie können manuell von `/mcp` aus erneut versuchen.413* **In einer interaktiven Sitzung**: `/mcp` zeigt den Server als ausstehend an, während Claude Code erneut verbindet. Nach fünf fehlgeschlagenen Versuchen markiert Claude Code den Server als fehlgeschlagen oder als Authentifizierung erforderlich, wenn der Server erneut autorisiert werden muss. Wenn es den Server als fehlgeschlagen markiert, sehen Sie eine `MCP server "<name>" disconnected · open /mcp to reconnect`-Benachrichtigung. Sie können manuell von `/mcp` aus erneut versuchen.

414* **In [`claude -p`](/docs/de/headless)-Läufen und [Agent SDK](/docs/de/agent-sdk/overview)-Sitzungen**: Claude Code verbindet sich nach dem gleichen Zeitplan erneut, ohne `/mcp`-Panel, um die Versuche anzuzeigen.414* **In [`claude -p`](/docs/de/headless)-Läufen und [Agent SDK](/docs/de/agent-sdk/overview)-Sitzungen**: Claude Code verbindet sich nach demselben Zeitplan erneut, ohne `/mcp`-Panel, um die Versuche anzuzeigen.

415 415 

416<h4 id="failed-first-connections">416<h4 id="failed-first-connections">

417 Fehlgeschlagene erste Verbindungen417 Fehlgeschlagene erste Verbindungen

418</h4>418</h4>

419 419 

420Wenn die erste Verbindung eines HTTP- oder SSE-Servers mit einem vorübergehenden Fehler fehlschlägt, wie eine 5xx-Antwort, eine Verbindungsverweigerung oder ein Timeout, versucht Claude Code bis zu dreimal erneut. Wenn die Verbindung immer noch fehlschlägt, markiert Claude Code den Server als fehlgeschlagen. Claude Code versucht auf diese Weise beim Start und wenn ein Server während einer Sitzung hinzugefügt wird. Das schließt einen Server ein, den Claude Code zu einer [Cloud-Sitzung](/docs/de/claude-code-on-the-web) aus seiner Konfiguration hinzufügt, und einen Server, den Sie mit der Agent SDK's [`setMcpServers()`](/docs/de/agent-sdk/typescript) hinzufügen.420Wenn die erste Verbindung eines HTTP- oder SSE-Servers mit einem vorübergehenden Fehler fehlschlägt, wie eine 5xx-Antwort, eine Verbindung verweigert oder ein Timeout, versucht Claude Code bis zu dreimal erneut. Wenn die Verbindung immer noch fehlschlägt, markiert Claude Code den Server als fehlgeschlagen.

421 421 

422Claude Code versucht nicht in diesen Fällen erneut:422Claude Code versucht in diesen Fällen nicht erneut:

423 423 

424* Eine WebSocket-Server-Verbindung424* Die erste Verbindung eines WebSocket-Servers

425* Ein Authentifizierungs- oder Not-Found-Fehler, da er eine Konfigurationsänderung erfordert, um behoben zu werden. Wenn ein [`headersHelper`](#use-dynamic-headers-for-custom-authentication) die einzige Quelle des `Authorization`-Headers des Servers ist, versucht Claude Code einen Authentifizierungsfehler trotzdem erneut, da er den Helper bei jedem Versuch erneut ausführt und eine frische Anmeldedaten abholen kann425* Ein Authentifizierungs- oder Not-Found-Fehler, da er eine Konfigurationsänderung erfordert, um ihn zu beheben. Wenn ein [`headersHelper`](#use-dynamic-headers-for-custom-authentication) die einzige Quelle des `Authorization`-Headers des Servers ist, versucht Claude Code einen Authentifizierungsfehler trotzdem erneut, da es den Helper bei jedem Versuch erneut ausführt und eine frische Anmeldung abholen kann

426 426 

427<h4 id="failed-discovery-requests">427<h4 id="failed-discovery-requests">

428 Fehlgeschlagene Discovery-Anfragen428 Fehlgeschlagene Erkennungsanfragen

429</h4>429</h4>

430 430 

431Nachdem ein Server verbunden ist, sendet Claude Code ihm Funktionsentdeckungsanfragen wie `tools/list`, `prompts/list` und `resources/list`. Claude Code versucht diese Anfragen bis zu dreimal mit kurzem Backoff nach einem vorübergehenden Netzwerk- oder Serverfehler erneut. Es versucht Authentifizierungsfehler, 4xx-Antworten oder Request-Timeouts nicht erneut.431Nachdem sich ein Server verbindet, sendet Claude Code ihm Erkennungsanfragen wie `tools/list`, `prompts/list` und `resources/list`. Claude Code versucht diese Anfragen bis zu dreimal mit kurzem Backoff nach einem vorübergehenden Netzwerk- oder Serverfehler erneut. Es versucht Authentifizierungsfehler, 4xx-Antworten oder Anfrage-Timeouts nicht erneut.

432 432 

433<h4 id="how-claude-learns-that-a-server-failed">433<h4 id="how-claude-learns-that-a-server-failed">

434 Wie Claude erfährt, dass ein Server fehlgeschlagen ist434 Wie Claude erfährt, dass ein Server fehlgeschlagen ist

435</h4>435</h4>

436 436 

437Ob Claude Code Claude über einen konfigurierten Server, der sich nicht verbinden konnte, informiert, hängt von [Tool-Suche](#scale-with-mcp-tool-search) ab, die standardmäßig aktiviert ist:437Ob Claude Code Claude über einen konfigurierten Server informiert, der keine Verbindung hergestellt hat, hängt von [Werkzeugsuche](#scale-with-mcp-tool-search) ab, die standardmäßig aktiviert ist:

438 438 

439* Mit Tool-Suche teilt Claude Code Claude mit, welcher Server fehlgeschlagen ist und sein Verbindungsfehler, daher meldet Claude den Verbindungsfehler in seiner Antwort. Claude Code enthält die gleichen Informationen in `ToolSearch`-Ergebnissen, die kein passendes Tool finden.439* Mit Werkzeugsuche informiert Claude Code Claude, welcher Server fehlgeschlagen ist und sein Verbindungsfehler, daher meldet Claude den Verbindungsfehler in seiner Antwort. Claude Code enthält dieselben Informationen in `ToolSearch`-Ergebnissen, die kein passendes Werkzeug finden.

440* In jeder [Konfiguration ohne Tool-Suche](#configure-tool-search) meldet Claude Code fehlgeschlagene Server-Verbindungen nicht an Claude.440* In jeder [Konfiguration ohne Werkzeugsuche](#configure-tool-search) meldet Claude Code fehlgeschlagene Serververbindungen nicht Claude.

441 441 

442<h3 id="push-messages-with-channels">442<h3 id="push-messages-with-channels">

443 Push-Nachrichten mit Kanälen443 Nachrichten mit Channels pushen

444</h3>444</h3>

445 445 

446Ein MCP-Server kann auch Nachrichten direkt in Ihre Sitzung pushen, sodass Claude auf externe Ereignisse wie CI-Ergebnisse, Überwachungswarnungen oder Chat-Nachrichten reagieren kann. Um dies zu aktivieren, deklariert Ihr Server die Funktion `claude/channel` und Sie aktivieren sie mit dem Flag `--channels` beim Start. Siehe [Kanäle](/docs/de/channels), um einen offiziell unterstützten Kanal zu verwenden, oder [Kanäle-Referenz](/docs/de/channels-reference), um Ihren eigenen zu erstellen.446Ein MCP-Server kann auch Nachrichten direkt in Ihre Sitzung pushen, damit Claude auf externe Ereignisse wie CI-Ergebnisse, Überwachungswarnungen oder Chat-Nachrichten reagieren kann. Um dies zu aktivieren, erklärt Ihr Server die `claude/channel`-Fähigkeit und Sie aktivieren sie mit dem Flag `--channels` beim Start. Siehe [Channels](/docs/de/channels), um einen offiziell unterstützten Channel zu verwenden, oder [Channels-Referenz](/docs/de/channels-reference), um Ihren eigenen zu erstellen.

447 447 

448Bei der [v2-Runtime](#mcp-client-runtimes), wenn Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` setzen und ein Kanal-Server die MCP-Protokoll-Revision 2026-07-28 aushandelt, kann er keine Kanal-Nachrichten liefern, daher registriert Claude Code ihn nicht als Kanal. Das Verlassen der Variable ungesetzt oder das Setzen auf `legacy` hält Stdio-Server auf dem früheren Handshake.448Auf der [v2-Runtime](#mcp-client-runtimes), wenn Sie [`MCP_PROTOCOL_NEGOTIATION`](/docs/de/env-vars) auf `auto` setzen und ein Channel-Server MCP-Protokollrevision 2026-07-28 aushandelt, kann er keine Channel-Nachrichten liefern, daher registriert Claude Code ihn nicht als Channel. Das Lassen der Variable ungesetzt oder das Setzen auf `legacy` hält Stdio-Server auf dem früheren Handshake.

449 449 

450<Tip>450<Tip>

451 Tipps:451 Tipps:

452 452 

453 * Verwenden Sie das Flag `-s` oder `--scope`, um anzugeben, wo die Konfiguration gespeichert wird:453 * Verwenden Sie das Flag `-s` oder `--scope`, um anzugeben, wo die Konfiguration gespeichert wird:

454 * `local` (Standard): Nur für Sie im aktuellen Projekt verfügbar454 * `local` (Standard): nur für Sie im aktuellen Projekt verfügbar

455 * `project`: Geteilt mit allen im Projekt über die Datei `.mcp.json`455 * `project`: geteilt mit jedem im Projekt über die `.mcp.json`-Datei

456 * `user`: Für Sie über alle Projekte hinweg verfügbar456 * `user`: für Sie über alle Projekte verfügbar

457 * Legen Sie Umgebungsvariablen mit `-e` oder `--env`-Flags fest (zum Beispiel `-e KEY=value`)457 * Setzen Sie Umgebungsvariablen mit `-e` oder `--env`-Flags (zum Beispiel `-e KEY=value`)

458 * Die Flags `--transport` und `--header` akzeptieren auch die Kurzformen `-t` und `-H`458 * Die Flags `--transport` und `--header` akzeptieren auch `-t` und `-H` Kurzformen

459 * Konfigurieren Sie das Startup-Timeout des MCP-Servers mit der Umgebungsvariablen `MCP_TIMEOUT` (zum Beispiel `MCP_TIMEOUT=10000 claude` setzt ein 10-Sekunden-Timeout)459 * Konfigurieren Sie das MCP-Server-Starttimeout mit der Umgebungsvariable `MCP_TIMEOUT` (zum Beispiel `MCP_TIMEOUT=10000 claude` setzt ein 10-Sekunden-Timeout)

460 * Setzen Sie ein Pro-Server-Tool-Ausführungs-Timeout, indem Sie ein `timeout`-Feld in Millisekunden zum `.mcp.json`-Eintrag dieses Servers hinzufügen, zum Beispiel `"timeout": 600000` für zehn Minuten. Dies überschreibt die Umgebungsvariable `MCP_TOOL_TIMEOUT` nur für diesen Server460 * Setzen Sie ein Pro-Server-Werkzeug-Ausführungs-Timeout, indem Sie ein `timeout`-Feld in Millisekunden zum `.mcp.json`-Eintrag dieses Servers hinzufügen, zum Beispiel `"timeout": 600000` für zehn Minuten. Dies überschreibt die Umgebungsvariable `MCP_TOOL_TIMEOUT` nur für diesen Server

461 * Claude Code zeigt eine Warnung an, wenn die MCP-Tool-Ausgabe 10.000 Token überschreitet und begrenzt die Ausgabe standardmäßig auf 25.000 Token. Um dieses Limit zu erhöhen, setzen Sie die Umgebungsvariable `MAX_MCP_OUTPUT_TOKENS` (zum Beispiel `MAX_MCP_OUTPUT_TOKENS=50000`); die Warnschwelle ist fest. Siehe [MCP-Ausgabegrenzen und Warnungen](#mcp-output-limits-and-warnings)461 * Claude Code zeigt eine Warnung an, wenn die MCP-Werkzeugausgabe 10.000 Token überschreitet, und begrenzt die Ausgabe standardmäßig auf 25.000 Token. Um die Grenze zu erhöhen, setzen Sie die Umgebungsvariable `MAX_MCP_OUTPUT_TOKENS` (zum Beispiel `MAX_MCP_OUTPUT_TOKENS=50000`); die Warnschwelle ist fest. Siehe [MCP-Ausgabegrenzen und Warnungen](#mcp-output-limits-and-warnings)

462 * Verwenden Sie `/mcp`, um sich bei Remote-Servern zu authentifizieren, die OAuth 2.0-Authentifizierung erfordern462 * Verwenden Sie `/mcp`, um sich bei Remote-Servern zu authentifizieren, die OAuth 2.0-Authentifizierung erfordern

463</Tip>463</Tip>

464 464 

465Das Pro-Server-`timeout` ist eine harte Wanduhr-Grenze pro Tool-Aufruf, und Fortschrittsbenachrichtigungen vom Server verlängern sie nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` zurück, oder auf seinen Standard von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Connector](/docs/de/mcp#use-mcp-servers-from-claude-ai)-Server gibt es auch einen zweiten, Pro-Request-Timer, der jeden Request bis zur ersten Antwort-Byte des Servers abdeckt. Claude Code setzt diesen Timer auf das Maximum von drei Werten: 60 Sekunden, das Tool-Timeout, das für den Server gilt, und `MCP_TIMEOUT`. Der 28-Stunden-Standard eines nicht gesetzten `MCP_TOOL_TIMEOUT` speist diese Vergleichung nicht, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Pro-Request-Timer.465Das Pro-Server-`timeout` ist eine harte Wanduhr-Grenze pro Werkzeugaufruf, und Fortschrittsbenachrichtigungen vom Server verlängern es nicht. Werte unter 1000 werden ignoriert und fallen auf `MCP_TOOL_TIMEOUT` oder auf seinen Standard von etwa 28 Stunden, wenn diese Variable nicht gesetzt ist. Für einen HTTP-, SSE- oder [claude.ai-Connector](/docs/de/mcp#use-mcp-servers-from-claude-ai)-Server gibt es auch einen zweiten, pro-Anfrage-Timer, der jede Anfrage bis zur ersten Antwortbyte des Servers abdeckt. Claude Code setzt diesen Timer auf den größten von drei Werten: 60 Sekunden, das Werkzeug-Timeout, das für den Server gilt, und `MCP_TIMEOUT`. Der 28-Stunden-Standard eines nicht gesetzten `MCP_TOOL_TIMEOUT` tritt nicht in diesen Vergleich ein, und ein Wert unter 60 Sekunden verkürzt den Timer nicht. Stdio- und WebSocket-Server haben keinen Pro-Anfrage-Timer.

466 466 

467Ein Pro-Server-`timeout` von mindestens 1000 fungiert auch als Untergrenze für das unten beschriebene Idle-Timeout: Claude Code bricht die Tool-Aufrufe dieses Servers niemals wegen Untätigkeit früher ab als das Pro-Server-`timeout`. Erfordert Claude Code v2.1.203 oder später.467Ein Pro-Server-`timeout` von mindestens 1000 fungiert auch als Untergrenze für das unten beschriebene Idle-Timeout: Claude Code bricht die Werkzeugaufrufe dieses Servers nicht früher als das Pro-Server-`timeout` ab. Erfordert Claude Code v2.1.203 oder später.

468 468 

469Ein Tool-Aufruf an einen MCP-Server, der für das Idle-Fenster keine Antwort und keine Fortschrittsbenachrichtigung sendet, bricht mit einem Fehler ab, anstatt auf die Wanduhr-Grenze zu warten. Das Idle-Timeout gilt für jeden Server-Typ außer IDE-Servern und SDK-In-Process-Servern. Das Idle-Fenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Connector](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für Stdio-Server. Vor v2.1.203 waren Stdio-Server vom Idle-Timeout ausgenommen.469Ein Werkzeugaufruf an einen MCP-Server, der für das Idle-Fenster keine Antwort und keine Fortschrittsbenachrichtigung sendet, bricht mit einem Fehler ab, anstatt auf die Wanduhr-Grenze zu warten. Das Idle-Timeout gilt für jeden Servertyp außer IDE-Servern und SDK In-Process-Servern. Das Idle-Fenster beträgt standardmäßig fünf Minuten für HTTP-, SSE-, WebSocket- und [claude.ai-Connector](#use-mcp-servers-from-claude-ai)-Server und 30 Minuten für Stdio-Server. Vor v2.1.203 waren Stdio-Server vom Idle-Timeout ausgenommen.

470 470 

471Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) in Millisekunden, um das Idle-Fenster zu ändern, oder setzen Sie sie auf `0`, um die Überprüfung zu deaktivieren.471Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) in Millisekunden, um das Idle-Fenster zu ändern, oder setzen Sie sie auf `0`, um die Überprüfung zu deaktivieren.

472 472 

473Diese Timeouts begrenzen, wie lange ein Aufruf ausgeführt werden kann, nicht immer wie lange er die Sitzung blockiert: Ein Hauptkonversations-Aufruf, der zwei Minuten überschreitet, wird zuerst zu einer Hintergrund-Aufgabe. Siehe [Automatisches Backgrounding von langen Tool-Aufrufen](#automatic-backgrounding-of-long-tool-calls).473Diese Timeouts begrenzen, wie lange ein Aufruf laufen kann, nicht immer wie lange er die Sitzung blockiert: Ein Hauptkonversations-Aufruf, der zwei Minuten überschreitet, wird zuerst zu einer Hintergrundaufgabe. Siehe [Automatisches Backgrounding von langen Werkzeugaufrufen](#automatic-backgrounding-of-long-tool-calls).

474 474 

475<h3 id="automatic-backgrounding-of-long-tool-calls">475<h3 id="automatic-backgrounding-of-long-tool-calls">

476 Automatisches Backgrounding von langen Tool-Aufrufen476 Automatisches Backgrounding von langen Werkzeugaufrufen

477</h3>477</h3>

478 478 

479Ein MCP-Tool-Aufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird zu einer Hintergrund-Aufgabe, anstatt die Sitzung zu blockieren. Claude erhält die Aufgaben-ID sofort und arbeitet weiter, und das Ergebnis kommt als Aufgaben-Benachrichtigung, wenn der Aufruf sich setzt. Automatisches Backgrounding erfordert Claude Code v2.1.212 oder später.479Ein MCP-Werkzeugaufruf in der Hauptkonversation, der nach zwei Minuten noch läuft, wird statt die Sitzung zu blockieren zu einer Hintergrundaufgabe. Claude erhält die Aufgaben-ID sofort und arbeitet weiter, und das Ergebnis kommt als Aufgabenbenachrichtigung, wenn der Aufruf sich setzt. Automatisches Backgrounding erfordert Claude Code v2.1.212 oder später.

480 480 

481Die Aufgabe erscheint in [`/tasks`](/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überlebt nicht das Beenden der Sitzung. Die Pro-Aufruf-Grenzen gelten immer noch, während der Aufruf im Hintergrund läuft: die Wanduhr-Grenze, die durch das Pro-Server-`timeout` oder [`MCP_TOOL_TIMEOUT`](/docs/de/env-vars) gesetzt wird, und das Idle-Timeout, das durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) gesetzt wird.481Die Aufgabe erscheint in [`/tasks`](/docs/de/commands#all-commands), wo Sie sie auch stoppen können, und sie überlebt das Beenden der Sitzung nicht. Der Eintrag der Aufgabe zeigt den neuesten Fortschritt, den der Server gemeldet hat.

482 482 

483Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/de/env-vars) in Millisekunden, um den Schwellenwert zu ändern, oder setzen Sie sie auf `0`, um automatisches Backgrounding auszuschalten. Das Setzen von `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1` schaltet es auch aus, zusammen mit allen anderen Hintergrund-Aufgaben-Funktionen.483Die Pro-Aufruf-Grenzen gelten weiterhin, während der Aufruf im Hintergrund läuft: die Wanduhr-Grenze, die durch das Pro-Server-`timeout` oder [`MCP_TOOL_TIMEOUT`](/docs/de/env-vars) gesetzt wird, und das Idle-Timeout, das durch [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/de/env-vars) gesetzt wird.

484 484 

485Einige Aufrufe werden niemals in den Hintergrund verschoben:485Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/de/env-vars) in Millisekunden, um den Schwellenwert zu ändern, oder setzen Sie sie auf `0`, um automatisches Backgrounding auszuschalten. Das Setzen von `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` auf `1` schaltet es auch aus, zusammen mit allen anderen Hintergrundaufgaben-Funktionen.

486 

487Einige Aufrufe werden nie in den Hintergrund verschoben:

486 488 

487* Aufrufe von [Subagenten](/docs/de/sub-agents); Claude Code verschiebt nur Hauptkonversations-Aufrufe489* Aufrufe von [Subagenten](/docs/de/sub-agents); Claude Code verschiebt nur Hauptkonversations-Aufrufe

488* Aufrufe an IDE-Server490* Aufrufe an IDE-Server

489* Aufrufe im [nicht-interaktiven Modus](/docs/de/headless), es sei denn, `CLAUDE_AUTO_BACKGROUND_TASKS` ist auf `1` gesetzt, da ein One-Shot-Lauf enden kann, bevor das Ergebnis ankommt491* Aufrufe im [nicht-interaktiven Modus](/docs/de/headless), es sei denn, `CLAUDE_AUTO_BACKGROUND_TASKS` ist auf `1` gesetzt, da ein One-Shot-Lauf enden kann, bevor das Ergebnis ankommt

490 492 

491Ein Aufruf, der auf einen offenen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) wartet, wird nicht in den Hintergrund verschoben, während der Dialog offen ist; der Server ist auf Ihre Eingabe blockiert, nicht langsam, daher verschiebt Claude Code die Verschiebung bis zum Schließen des Dialogs.493Ein Aufruf, der auf einen offenen [Elicitation-Dialog](#respond-to-mcp-elicitation-requests) wartet, wird nicht in den Hintergrund verschoben, während der Dialog offen ist; der Server wird auf Ihre Eingabe blockiert, nicht langsam, daher verschiebt Claude Code die Verschiebung, bis der Dialog schließt.

492 494 

493<h3 id="plugin-provided-mcp-servers">495<h3 id="plugin-provided-mcp-servers">

494 Von Plugins bereitgestellte MCP-Server496 Von Plugins bereitgestellte MCP-Server

495</h3>497</h3>

496 498 

497[Plugins](/docs/de/plugins/overview) können MCP-Server bündeln, die Tools und Integrationen bereitstellen, wenn Sie das Plugin aktivieren. Plugin-MCP-Server funktionieren identisch mit benutzerkonfigurierten Servern.499[Plugins](/docs/de/plugins/overview) können MCP-Server bündeln, die Werkzeuge und Integrationen bereitstellen, wenn Sie das Plugin aktivieren. Von Plugins bereitgestellte MCP-Server funktionieren identisch mit benutzerkonfigurierten Servern.

498 500 

499**Wie Plugin-MCP-Server funktionieren**:501**Wie von Plugins bereitgestellte MCP-Server funktionieren**:

500 502 

501* Plugins definieren MCP-Server in `.mcp.json` im Plugin-Root oder inline in `plugin.json`503* Plugins definieren MCP-Server in `.mcp.json` im Plugin-Root oder inline in `plugin.json`

502* Wenn Sie ein Plugin aktivieren, starten seine MCP-Server automatisch504* Wenn Sie ein Plugin aktivieren, startet Claude Code seine MCP-Server automatisch

503* Claude Code bietet Plugin-MCP-Tools neben manuell konfigurierten MCP-Tools an505* Claude Code bietet Plugin-MCP-Werkzeuge neben manuell konfigurierten MCP-Werkzeugen an

504* Sie fügen Plugin-Server hinzu und entfernen sie durch Installation oder Deinstallation des Plugins, nicht mit `/mcp`-Befehlen. Sie können einen installierten Plugin-Server immer noch [ohne Entfernung ausschalten](#disable-a-server-without-removing-it) in `/mcp`, was Claude Code daran hindert, sich damit zu verbinden, ohne das Plugin zu entfernen506* Sie fügen Plugin-Server hinzu und entfernen sie, indem Sie das Plugin installieren oder deinstallieren, nicht mit `/mcp`-Befehlen. Sie können einen installierten Plugin-Server immer noch [ohne ihn zu entfernen ausschalten](#disable-a-server-without-removing-it) in `/mcp`, was Claude Code daran hindert, sich damit zu verbinden, ohne das Plugin zu entfernen

505 507 

506**Beispiel-Plugin-MCP-Konfiguration**:508**Beispiel-Plugin-MCP-Konfiguration**:

507 509 


535}537}

536```538```

537 539 

538**Plugin-MCP-Funktionen**:540**Von Plugins bereitgestellte MCP-Funktionen**:

539 541 

540* **Automatischer Lebenszyklus**: Server verbinden und trennen sich an diesen Punkten:542* **Automatischer Lebenszyklus**: Server verbinden und trennen sich an diesen Punkten:

541 * Beim Sitzungsstart verbindet Claude Code die Server für aktivierte Plugins automatisch. In `/mcp` kann ein Remote-HTTP- oder SSE-Plugin-Server, den Sie zuvor verwendet haben, den [`cached`-Status](#server-status-detail) statt anzeigen; Claude Code verbindet ihn, wenn Claude eines seiner Tools zum ersten Mal aufruft543 * Beim Sitzungsstart verbindet Claude Code die Server für aktivierte Plugins automatisch. In `/mcp` kann ein Remote-(HTTP- oder SSE-)Plugin-Server, den Sie zuvor verwendet haben, stattdessen den [`cached`-Status](#server-status-detail) anzeigen; Claude Code verbindet ihn, wenn Claude eines seiner Werkzeuge zum ersten Mal aufruft

542 * Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, verbindet Claude Code seine MCP-Server oder trennt sie, wenn die Änderung angewendet wird. [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) beschreibt, wann das ist. In einer Sitzung ohne interaktives Terminal verbindet oder trennt `/reload-plugins` Plugin-MCP-Server nicht; diese Änderungen treten in Ihrer nächsten Sitzung in Kraft544 * Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, verbindet oder trennt Claude Code seine MCP-Server, wenn die Änderung angewendet wird. [Plugin-Änderungen ohne Neustart anwenden](/docs/de/plugins/cli-reference#reload-plugins) beschreibt, wann das ist. In einer Sitzung ohne interaktives Terminal verbindet oder trennt `/reload-plugins` keine Plugin-MCP-Server; diese Änderungen treten in Ihrer nächsten Sitzung in Kraft

543 * Wenn Sie neu laden, behält Claude Code die Live-Verbindungen von Plugin-Servern, deren Konfiguration unverändert ist, und macht das gleiche, wenn Sie [die MCP-Server-Liste der Sitzung](/docs/de/agent-sdk/typescript#mcpsetserversresult) vom Agent SDK ersetzen, ohne sie zu benennen545 * Wenn Sie neu laden, behält Claude Code die Live-Verbindungen von Plugin-Servern, deren Konfiguration unverändert ist, und macht dasselbe, wenn Sie [die MCP-Serverliste der Sitzung](/docs/de/agent-sdk/typescript#mcpsetserversresult) vom Agent SDK ersetzen, ohne sie zu nennen

544 * Wenn Sie die Sitzung mit `/cd` [in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) bei v2.1.246 oder später, verbindet Claude Code die Server von Plugins, die die Einstellungen des neuen Verzeichnisses aktivieren, und trennt die Server von Plugins, die nicht mehr aktiviert sind, daher müssen Sie `/reload-plugins` nach der Verschiebung nicht ausführen546 * Wenn Sie die Sitzung mit `/cd` [in ein anderes Verzeichnis verschieben](/docs/de/permissions#move-the-session-to-another-directory) auf v2.1.246 oder später, verbindet Claude Code die Server von Plugins, die die Einstellungen des neuen Verzeichnisses aktivieren, und trennt die Server von Plugins, die nicht mehr aktiviert sind, daher müssen Sie `/reload-plugins` nach der Verschiebung nicht ausführen

545 * In [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) startet ein MCP-Aufruf an einen Plugin-Server, der noch nicht verbunden ist, wie direkt nach einer Idle-Sitzung, die aufwacht, den Server bei Bedarf und wartet auf die Verbindung547 * In [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) startet ein MCP-Aufruf an einen Plugin-Server, der noch nicht verbunden ist, wie direkt nach einer Idle-Sitzung aufwacht, den Server bei Bedarf und wartet auf die Verbindung

546* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird in das Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` in sein [persistentes Zustandsverzeichnis](/docs/de/plugins/components#path-variables-and-persistent-data), und `${CLAUDE_PROJECT_DIR}` in das stabile Projektstammverzeichnis. Die Substitution gilt für:548* **Pfad-Platzhalter**: `${CLAUDE_PLUGIN_ROOT}` wird zum Installationsverzeichnis des Plugins aufgelöst, `${CLAUDE_PLUGIN_DATA}` zu seinem [persistenten Zustand](/docs/de/plugins/components#path-variables-and-persistent-data)-Verzeichnis und `${CLAUDE_PROJECT_DIR}` zum stabilen Projektstammverzeichnis. Die Substitution gilt für:

547 * `stdio`-Server: `command`, `args`, `env`549 * `stdio`-Server: `command`, `args`, `env`

548 * `http`-, `sse`- und `ws`-Server: `url`, `headers` und `headersHelper`550 * `http`-, `sse`- und `ws`-Server: `url`, `headers` und `headersHelper`

549* **Zugriff auf Benutzerumgebung**: Zugriff auf die gleichen Umgebungsvariablen wie manuell konfigurierte Server551* **Zugriff auf Benutzerumgebung**: Zugriff auf dieselben Umgebungsvariablen wie manuell konfigurierte Server

550* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE-, HTTP- und WebSocket-Transporte, wobei die Transportunterstützung je nach Server variieren kann552* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE-, HTTP- und WebSocket-Transporte, obwohl die Transportunterstützung je nach Server variieren kann

551 553 

552Plugin-Server erscheinen in `/mcp` mit Indikatoren, die zeigen, dass sie von Plugins stammen.554Plugin-Server erscheinen in `/mcp` mit Indikatoren, die zeigen, dass sie von Plugins stammen.

553 555 

554**Plugin-MCP-Tool-Namen**:556Für einen Stdio-Server eines Plugins druckt `claude mcp get` `Command: stdio`, eine leere `Args:`-Zeile und jede Umgebungsvariable als `NAME=[REDACTED]`. Die Werte sind verborgen, da sie Anmeldedaten tragen können.

557 

558**Namen von Plugin-MCP-Werkzeugen**:

555 559 

556Tools von einem Plugin-gebündelten MCP-Server enthalten sowohl den Plugin-Namen als auch den Server-Schlüssel in ihrem aufrufbaren Namen. Die vollständige Form ist `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, wobei jedes Zeichen außerhalb von `A-Z`, `a-z`, `0-9`, `_` und `-` durch `_` ersetzt wird. Für den Server `database-tools`, der in einem Plugin namens `my-plugin` gebündelt ist, ist ein `query`-Tool aufrufbar als:560Werkzeuge von einem von einem Plugin gebündelten MCP-Server enthalten sowohl den Plugin-Namen als auch den Server-Schlüssel in ihrem aufrufbaren Namen. Die vollständige Form ist `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, wobei jedes Zeichen außerhalb von `A-Z`, `a-z`, `0-9`, `_` und `-` durch `_` ersetzt wird. Für den `database-tools`-Server, der in einem Plugin namens `my-plugin` gebündelt ist, ist ein `query`-Werkzeug aufrufbar als:

557 561 

558```562```

559mcp__plugin_my-plugin_database-tools__query563mcp__plugin_my-plugin_database-tools__query

560```564```

561 565 

562Verwenden Sie diesen vollständigen Namen, wenn Sie auf das Tool in [Berechtigungsregeln](/docs/de/permissions), der `allowed-tools`-Liste eines Skills, dem [`tools`-Feld eines Subagenten](/docs/de/sub-agents#available-tools) oder einem [Hook-Matcher](/docs/de/hooks#match-mcp-tools) verweisen. Ein Hook-Matcher, der gegen den bloßen Server-Schlüssel geschrieben wurde, wie `mcp__database-tools__.*`, wird niemals für einen Plugin-gebündelten Server ausgelöst.566Verwenden Sie diesen vollständigen Namen, wenn Sie das Werkzeug in [Berechtigungsregeln](/docs/de/permissions), einer Skill-`allowed-tools`-Liste, einem [Subagenten-`tools`-Feld](/docs/de/sub-agents#available-tools) oder einem [Hook-Matcher](/docs/de/hooks#match-mcp-tools) referenzieren. Ein Hook-Matcher, der gegen den bloßen Server-Schlüssel geschrieben ist, wie `mcp__database-tools__.*`, wird niemals für einen von einem Plugin gebündelten Server ausgelöst.

563 567 

564Der Server selbst registriert sich unter dem scoped Namen `plugin:<plugin-name>:<server-name>`, wie `plugin:my-plugin:database-tools`. Verwenden Sie diesen Namen, wo ein konfigurierter Server-Name erwartet wird, wie das [`server`-Feld eines `mcp_tool`-Hooks](/docs/de/hooks#mcp-tool-hook-fields).568Der Server selbst registriert sich unter dem scoped Namen `plugin:<plugin-name>:<server-name>`, wie `plugin:my-plugin:database-tools`. Verwenden Sie diesen Namen, wo ein konfigurierter Servername erwartet wird, wie das [`mcp_tool`-Hook-Feld `server`](/docs/de/hooks#mcp-tool-hook-fields).

565 569 

566Siehe die [Plugin-Komponenten-Referenz](/docs/de/plugins/components#mcp-servers) für Details zum Bündeln von MCP-Servern mit Plugins.570Siehe die [Plugin-Komponenten-Referenz](/docs/de/plugins/components#mcp-servers) für Details zum Bündeln von MCP-Servern mit Plugins.

567 571 


1454* Namen von Eigenschaften auf der obersten Ebene müssen 1 bis 64 Zeichen lang sein und dürfen nur ASCII-Buchstaben und Ziffern, `_`, `.` und `-` verwenden1458* Namen von Eigenschaften auf der obersten Ebene müssen 1 bis 64 Zeichen lang sein und dürfen nur ASCII-Buchstaben und Ziffern, `_`, `.` und `-` verwenden

1455* Das Schema muss gegen das JSON-Schema-Draft-2020-12-Meta-Schema gültig sein. Claude Code wendet diese Überprüfung auf Schemas an, die kein `$schema` deklarieren, und auf Schemas, die Draft 2020-12 deklarieren. Ein Schema, das einen anderen Dialekt deklariert, überspringt diese Überprüfung, obwohl die obige Überprüfung der Eigenschaftsnamen weiterhin gilt1459* Das Schema muss gegen das JSON-Schema-Draft-2020-12-Meta-Schema gültig sein. Claude Code wendet diese Überprüfung auf Schemas an, die kein `$schema` deklarieren, und auf Schemas, die Draft 2020-12 deklarieren. Ein Schema, das einen anderen Dialekt deklariert, überspringt diese Überprüfung, obwohl die obige Überprüfung der Eigenschaftsnamen weiterhin gilt

1456 1460 

1457Claude Code führt die Überprüfungen nach dem [Umschreiben des Root-Level-Kombinators](#tool-input-schemas-with-a-root-level-combinator) auf dem Schema durch, das es tatsächlich senden würde.

1458 

1459Wenn Claude Code ein Tool ausschließt, zeichnet es den Grund im Log des Servers auf und teilt Claude mit, welche Tools es ausgeschlossen hat und warum, damit Sie Claude fragen können, warum ein Tool fehlt. Wenn Sie das Schema auf dem Server korrigieren, wird das Tool beim nächsten Laden der Server-Tools durch Claude Code wieder verfügbar.1461Wenn Claude Code ein Tool ausschließt, zeichnet es den Grund im Log des Servers auf und teilt Claude mit, welche Tools es ausgeschlossen hat und warum, damit Sie Claude fragen können, warum ein Tool fehlt. Wenn Sie das Schema auf dem Server korrigieren, wird das Tool beim nächsten Laden der Server-Tools durch Claude Code wieder verfügbar.

1460 1462 

1461Claude Code aktiviert den Ausschluss über ein Feature-Flag, das es von Anthropic abruft. Bei einer [Bereitstellung, bei der das Flag-Abrufen deaktiviert ist](/docs/de/env-vars#features-that-need-feature-flag-fetching), oder auf einem Computer, dessen Flags nie angekommen sind, z. B. auf einem isolierten Computer, führt Claude Code die Überprüfungen weiterhin durch und zeichnet im Log des Servers auf, welches Tool abgelehnt würde, sendet das Schema des Tools aber trotzdem an die API. Die API lehnt eine Anfrage, die dieses Schema enthält, mit [einem 400-Fehler ab, der das Tool nach seiner Position benennt](/docs/de/errors#tool-input-schema-is-invalid). Vor v2.1.216 führte keine Bereitstellung diese Überprüfungen durch.1463Claude Code aktiviert den Ausschluss über ein Feature-Flag, das es von Anthropic abruft. Bei einer [Bereitstellung, bei der das Flag-Abrufen deaktiviert ist](/docs/de/env-vars#features-that-need-feature-flag-fetching), oder auf einem Computer, dessen Flags nie angekommen sind, z. B. auf einem isolierten Computer, führt Claude Code die Überprüfungen weiterhin durch und zeichnet im Log des Servers auf, welches Tool abgelehnt würde, sendet das Schema des Tools aber trotzdem an die API. Die API lehnt eine Anfrage, die dieses Schema enthält, mit [einem 400-Fehler ab, der das Tool nach seiner Position benennt](/docs/de/errors#tool-input-schema-is-invalid). Vor v2.1.216 führte keine Bereitstellung diese Überprüfungen durch.

Details

360 360 

361 Was danach passiert, sagt Ihnen, wo das Problem liegt:361 Was danach passiert, sagt Ihnen, wo das Problem liegt:

362 362 

363 * Der Befehl startet und wartet auf Eingabe: Der Server selbst funktioniert. Führen Sie `claude mcp get <name>` aus und bestätigen Sie, dass der dort angezeigte Befehl dem entspricht, den Sie gerade ausgeführt haben. Wenn sich der angezeigte Befehl von dem unterscheidet, den Sie eingegeben haben, haben Sie wahrscheinlich das `--`-Trennzeichen vor dem Server-Befehl weggelassen. Entfernen Sie den Server und fügen Sie ihn mit `--` an der richtigen Stelle erneut hinzu. Wenn Sie `.mcp.json` von Hand geschrieben haben, überprüfen Sie seine Syntax und seinen Speicherort.363 * Der Befehl startet und wartet auf Eingabe: Der Server selbst funktioniert.

364 

365 Führen Sie `claude mcp get <name>` aus und bestätigen Sie, dass der dort angezeigte Befehl dem entspricht, den Sie gerade ausgeführt haben. Wenn sich der angezeigte Befehl von dem unterscheidet, den Sie eingegeben haben, haben Sie wahrscheinlich das `--`-Trennzeichen vor dem Server-Befehl weggelassen. Entfernen Sie den Server und fügen Sie ihn mit `--` an der richtigen Stelle erneut hinzu. Wenn Sie `.mcp.json` von Hand geschrieben haben, überprüfen Sie seine Syntax und seinen Speicherort. Vor v2.1.285 druckte `claude mcp get` keine `Command`-Zeile für einen stdio-Eintrag aus, der ohne ein `type`-Feld gespeichert wurde, wie z. B. einen von Hand geschriebenen `.mcp.json`-Eintrag. Führen Sie auf diesen Versionen stattdessen `claude mcp list` aus, das die Befehlszeile in jedem Fall druckt.

364 * Der Befehl gibt einen Fehler aus: Die Nachricht nennt, was fehlt, wie z. B. Node.js oder ein Browser.366 * Der Befehl gibt einen Fehler aus: Die Nachricht nennt, was fehlt, wie z. B. Node.js oder ein Browser.

365 </Accordion>367 </Accordion>

366 368 

model-config.md +10 −5

Details

39| **`sonnet`** | Verwendet das neueste Sonnet-Modell für tägliche Codierungsaufgaben |39| **`sonnet`** | Verwendet das neueste Sonnet-Modell für tägliche Codierungsaufgaben |

40| **`opus`** | Verwendet das neueste Opus-Modell für komplexe Denkaufgaben |40| **`opus`** | Verwendet das neueste Opus-Modell für komplexe Denkaufgaben |

41| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |41| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |

42| **`sonnet[1m]`** | Verwendet Sonnet mit einem [Kontextfenster von 1 Million Token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) für lange Sitzungen. Keine Auswirkung, wenn `sonnet` bereits zu Sonnet 5.5 oder Sonnet 5 mit ihrem nativen 1M-Fenster aufgelöst wird; hinter einem [LLM-Gateway](/docs/de/llm-gateway) wählt das 1M-Fenster für dieses Modell aus |42| **`sonnet[1m]`** | Verwendet Sonnet mit einem [Kontextfenster von 1 Million Token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) für lange Sitzungen. Keine Auswirkung, wenn `sonnet` bereits zu Sonnet 5.5 oder Sonnet 5 mit ihrem nativen 1M-Fenster aufgelöst wird |

43| **`opus[1m]`** | Verwendet Opus mit einem [Kontextfenster von 1 Million Token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) für lange Sitzungen |43| **`opus[1m]`** | Verwendet Opus mit einem [Kontextfenster von 1 Million Token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) für lange Sitzungen |

44| **`opusplan`** | Spezialmodell, das `opus` während des Plan-Modus verwendet und dann zu `sonnet` für die Ausführung wechselt |44| **`opusplan`** | Spezialmodell, das `opus` während des Plan-Modus verwendet und dann zu `sonnet` für die Ausführung wechselt |

45 45 


521 Fallback-Modellketten521 Fallback-Modellketten

522</h3>522</h3>

523 523 

524Wenn das primäre Modell überlastet ist, nicht verfügbar ist oder einen anderen nicht wiederholbaren Serverfehler zurückgibt, kann Claude Code zu einem Fallback-Modell wechseln, anstatt die Anfrage fehlschlagen zu lassen. Authentifizierungs-, Abrechnungs-, Rate-Limit-, Anfragegröße- und Transportfehler sowie eine [Ablehnung durch die Richtlinienprüfung Ihrer Organisation](/docs/de/errors#automatic-retries) lösen niemals einen Wechsel aus; diese folgen ihrer normalen Wiederholung und Fehlerbehandlung.524Wenn das primäre Modell überlastet ist, nicht verfügbar ist oder einen anderen nicht wiederholbaren Serverfehler zurückgibt, kann Claude Code zu einem Fallback-Modell wechseln, anstatt die Anfrage fehlschlagen zu lassen. Authentifizierungs-, Abrechnungs-, Rate-Limit-, Anfragegröße- und Transportfehler sowie eine [Ablehnung durch die Richtlinienprüfung Ihrer Organisation](/docs/de/errors#automatic-retries) lösen niemals einen Wechsel aus; diese folgen ihrer normalen Wiederholung und Fehlerbehandlung. Es wechselt, wenn [Amazon Bedrock](/docs/de/amazon-bedrock#when-a-model-is-disabled-mid-session) oder [Google Cloud's Agent Platform](/docs/de/google-vertex-ai#when-a-model-is-disabled-mid-session) ein Modell ablehnt, das Ihr Konto nicht aufrufen kann, was Claude Code als das Modell, das nicht verfügbar ist, statt als Authentifizierungsfehler behandelt.

525 525 

526Konfigurieren Sie ein oder mehrere Fallback-Modelle und Claude Code versucht sie der Reihe nach, wobei eine Benachrichtigung angezeigt wird, wenn es wechselt. Der Wechsel dauert nur für den aktuellen Zug, sodass Ihre nächste Nachricht zuerst wieder das primäre Modell versucht. Claude Code begrenzt Ketten auf drei Modelle nach Duplikatentfernung und ignoriert zusätzliche Einträge.526Konfigurieren Sie ein oder mehrere Fallback-Modelle und Claude Code versucht sie der Reihe nach, wobei eine Benachrichtigung angezeigt wird, wenn es wechselt. Der Wechsel dauert nur für den aktuellen Zug, sodass Ihre nächste Nachricht zuerst wieder das primäre Modell versucht. Claude Code begrenzt Ketten auf drei Modelle nach Duplikatentfernung und ignoriert zusätzliche Einträge.

527 527 


775 775 

776Claude Code überprüft diese Plan-Anforderungen nur, wenn es sich direkt mit der Anthropic API verbindet. Wenn Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway](/docs/de/llm-gateway#subscriptions-and-gateways) verweisen und Ihr gespeicherter claude.ai-Login bleibt die aktive Anmeldeinformation, überprüft Claude Code nicht Ihre Plan-Nutzungsguthaben. Die `[1m]` Optionen bleiben in `/model` verfügbar und das Gateway entscheidet, ob die Anfrage erfolgreich ist. Vor v2.1.229 lehnte Claude Code `/model sonnet[1m]` in dieser Konfiguration ab, wenn es die Nutzungsguthaben auf dem Konto nicht bestätigen konnte.776Claude Code überprüft diese Plan-Anforderungen nur, wenn es sich direkt mit der Anthropic API verbindet. Wenn Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway](/docs/de/llm-gateway#subscriptions-and-gateways) verweisen und Ihr gespeicherter claude.ai-Login bleibt die aktive Anmeldeinformation, überprüft Claude Code nicht Ihre Plan-Nutzungsguthaben. Die `[1m]` Optionen bleiben in `/model` verfügbar und das Gateway entscheidet, ob die Anfrage erfolgreich ist. Vor v2.1.229 lehnte Claude Code `/model sonnet[1m]` in dieser Konfiguration ab, wenn es die Nutzungsguthaben auf dem Konto nicht bestätigen konnte.

777 777 

778<span id="context-window-behind-a-gateway" />

779 

780Wenn Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway](/docs/de/llm-gateway) oder einen anderen Proxy einstellen, gibt Claude Code jedem Modell, das es erkennt, das gleiche Kontextfenster, das das Modell auf der Anthropic API hat. Fable 5.1, Fable 5, Sonnet 5 und später sowie Opus 4.7 und später erhalten das 1M-Fenster ohne `[1m]` Variante zum Auswählen, und ein Modell, das 1M nur durch seine `[1m]` Variante erreicht, wie Opus 4.6, läuft bei 200K ohne es. Claude Code kann eine niedrigere Grenze, die das Gateway oder der Server dahinter erzwingt, nicht erkennen. Wenn Ihr Gateway Anfragen über 200K Token ablehnt, führen Sie [`/autocompact 200k`](#set-the-auto-compact-window) aus, damit Sitzungen bei dieser Grenze komprimieren.

781 

778Um 1M-Kontext auszuschalten, stellen Sie `CLAUDE_CODE_DISABLE_1M_CONTEXT=1` ein. Claude Code entfernt 1M-Modellvarianten aus dem Modell-Picker. Auf Modellen mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, behandelt es das Modell auch als ein Modell mit einem 200K-Kontextfenster:782Um 1M-Kontext auszuschalten, stellen Sie `CLAUDE_CODE_DISABLE_1M_CONTEXT=1` ein. Claude Code entfernt 1M-Modellvarianten aus dem Modell-Picker. Auf Modellen mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, behandelt es das Modell auch als ein Modell mit einem 200K-Kontextfenster:

779 783 

780* Mit Auto-Komprimierung an komprimieren Sitzungen bei der 200K-Grenze durch [Auto-Komprimierung](#set-the-auto-compact-window). Das Einstellen des Auto-Komprimierungs-Fensters über 200K hebt die Sperre nicht auf, da Claude Code dieses Fenster auf das Kontextfenster des Modells begrenzt.784* Mit Auto-Komprimierung an komprimieren Sitzungen bei der 200K-Grenze durch [Auto-Komprimierung](#set-the-auto-compact-window). Das Einstellen des Auto-Komprimierungs-Fensters über 200K hebt die Sperre nicht auf, da Claude Code dieses Fenster auf das Kontextfenster des Modells begrenzt.


803 807 

804Auf der Anthropic API laufen Sonnet 5.5 und Sonnet 5 immer mit dem 1M-Kontextfenster. Es gibt keine 200K-Variante, kein `[1m]` Suffix zum Auswählen und keine Nutzungsguthaben erforderlich auf jedem Plan. Sitzungen komprimieren sich automatisch, bevor das Fenster sich füllt, bei etwa 967K Token standardmäßig; stellen Sie [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/de/env-vars) ein, um einen anderen Schwellenwert zu wählen.808Auf der Anthropic API laufen Sonnet 5.5 und Sonnet 5 immer mit dem 1M-Kontextfenster. Es gibt keine 200K-Variante, kein `[1m]` Suffix zum Auswählen und keine Nutzungsguthaben erforderlich auf jedem Plan. Sitzungen komprimieren sich automatisch, bevor das Fenster sich füllt, bei etwa 967K Token standardmäßig; stellen Sie [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/de/env-vars) ein, um einen anderen Schwellenwert zu wählen.

805 809 

806Zwei Konfigurationen budgetieren das Fenster stattdessen bei 200K:810Claude Code gibt Sonnet 5.5 und Sonnet 5 das gleiche 1M-Fenster hinter einem [LLM-Gateway](/docs/de/llm-gateway) oder einem anderen benutzerdefinierten `ANTHROPIC_BASE_URL`. Wenn Ihr Gateway eine niedrigere Grenze erzwingt, siehe [das Kontextfenster hinter einem Gateway](#context-window-behind-a-gateway).

811 

812Diese Einstellung budgetiert das Fenster stattdessen bei 200K:

807 813 

808* **LLM-Gateway**: Wenn `ANTHROPIC_BASE_URL` auf ein [Gateway](/docs/de/llm-gateway) verweist, kann Claude Code 1M-Unterstützung nicht überprüfen. Um das vollständige Fenster zu verwenden, wählen Sie Sonnet 5.5 (1M context) im Modell-Picker, das zu `sonnet[1m]` zugeordnet ist, oder führen Sie `/model claude-sonnet-5[1m]` für Sonnet 5 aus.

809* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: hält Sitzungen auf jedem Modell mit einem nativen 1M-Fenster bei einem 200K-Fenster; siehe [Erweiterter Kontext](#extended-context) für wie die Sperre erzwungen wird. Nützlich für Bereitstellungen, die den Kontext begrenzen müssen.814* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: hält Sitzungen auf jedem Modell mit einem nativen 1M-Fenster bei einem 200K-Fenster; siehe [Erweiterter Kontext](#extended-context) für wie die Sperre erzwungen wird. Nützlich für Bereitstellungen, die den Kontext begrenzen müssen.

810 815 

811<h2 id="context-window-and-auto-compaction">816<h2 id="context-window-and-auto-compaction">


841* [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) komprimieren, wenn sich die Konversation dem Limit des Modells nähert846* [Cloud-Sitzungen](/docs/de/claude-code-on-the-web) komprimieren, wenn sich die Konversation dem Limit des Modells nähert

842* Sonnet 4.6 und Opus 4.6 ohne [erweiterter Kontext](#extended-context) komprimieren bei der 200K-Grenze, ebenso wie Opus 4.8 und später, wenn sie mit einem 200K-Kontextfenster laufen, z. B. auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry847* Sonnet 4.6 und Opus 4.6 ohne [erweiterter Kontext](#extended-context) komprimieren bei der 200K-Grenze, ebenso wie Opus 4.8 und später, wenn sie mit einem 200K-Kontextfenster laufen, z. B. auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry

843* Wenn Sie [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars) setzen, komprimieren Modelle mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, bei der 200K-Grenze848* Wenn Sie [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/de/env-vars) setzen, komprimieren Modelle mit einem nativen 1M-Fenster, wie Sonnet 5 und die Fable-Modelle, bei der 200K-Grenze

844* Modelle, die mit einem nativen 1M-Fenster laufen, wie Sonnet 5, die Fable-Modelle und Opus 4.7 und später auf der Anthropic API, komprimieren, bevor das Fenster voll wird, standardmäßig bei etwa 967K Token. Auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry gibt [Modelle für Bereitstellungen von Drittanbietern anheften](#pin-models-for-third-party-deployments) an, welche Modelle mit diesem Fenster laufen; für die Konfigurationen, die Sonnet 5.5 und Sonnet 5 stattdessen mit 200K budgetieren, siehe [Sonnet 5.5 und Sonnet 5 Kontextfenster](#sonnet-5-5-and-sonnet-5-context-window)849* Modelle, die mit einem nativen 1M-Fenster laufen, komprimieren, bevor das Fenster voll wird, standardmäßig bei etwa 967K Token. Auf der Anthropic API gehören dazu Sonnet 5, die Fable-Modelle und Opus 4.7 und später. Auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry siehe [Modelle für Bereitstellungen von Drittanbietern anheften](#pin-models-for-third-party-deployments), welche Modelle mit diesem Fenster laufen. Hinter einer benutzerdefinierten `ANTHROPIC_BASE_URL` siehe [das Kontextfenster hinter einem Gateway](#context-window-behind-a-gateway)

845* Sitzungen auf einer Modell-ID, die Claude Code nicht erkennt, z. B. ein [LLM-Gateway](/docs/de/llm-gateway)-Alias, komprimieren bei dem Kontextfenster, das Claude Code für die ID annimmt; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](#correct-the-window-for-a-gateway-or-custom-model-id)850* Sitzungen auf einer Modell-ID, die Claude Code nicht erkennt, z. B. ein [LLM-Gateway](/docs/de/llm-gateway)-Alias, komprimieren bei dem Kontextfenster, das Claude Code für die ID annimmt; siehe [Fenster für ein Gateway oder eine benutzerdefinierte Modell-ID korrigieren](#correct-the-window-for-a-gateway-or-custom-model-id)

846 851 

847<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">852<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

Details

1430* `error.type`: warum Claude Code die Sitzung gestoppt hat. Nur vorhanden bei `refused`-Ereignissen:1430* `error.type`: warum Claude Code die Sitzung gestoppt hat. Nur vorhanden bei `refused`-Ereignissen:

1431 * `"helper_failed"`: ein [Policy-Helper-Lauf fehlgeschlagen](/docs/de/settings-reference#helper-failures)1431 * `"helper_failed"`: ein [Policy-Helper-Lauf fehlgeschlagen](/docs/de/settings-reference#helper-failures)

1432 * `"policy_invalid"`: die verwalteten Einstellungen enthalten einen Fehler, der Claude Code vom Starten abhält, oder eine Admin-Quelle konnte nicht geladen werden, daher kann Claude Code die Durchsetzung der Organisationsanmeldung nicht überprüfen1432 * `"policy_invalid"`: die verwalteten Einstellungen enthalten einen Fehler, der Claude Code vom Starten abhält, oder eine Admin-Quelle konnte nicht geladen werden, daher kann Claude Code die Durchsetzung der Organisationsanmeldung nicht überprüfen

1433 * `"provider_not_allowed"`: die Sitzung würde einen API-Provider verwenden, oder den Traffic eines Providers an einen Host senden, den die verwaltete [`allowedProviders`](/docs/de/settings-reference#allowedproviders)-Liste nicht erlaubt. Erfordert Claude Code v2.1.285 oder später

1433 * `"consent_rejected"`: der Benutzer lehnte den [Sicherheitsgenehmigungsdialog](/docs/de/server-managed-settings#security-approval-dialogs) für Server-verwaltete Einstellungen ab1434 * `"consent_rejected"`: der Benutzer lehnte den [Sicherheitsgenehmigungsdialog](/docs/de/server-managed-settings#security-approval-dialogs) für Server-verwaltete Einstellungen ab

1434 * `"force_refresh_failed"`: der Einstellungs-Abruf, den [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh) erfordert, fehlgeschlagen1435 * `"force_refresh_failed"`: der Einstellungs-Abruf, den [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh) erfordert, fehlgeschlagen

1435 * `"gateway_rejected"`: ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) antwortete auf den Abruf der verwalteten Einstellungen mit HTTP 4031436 * `"gateway_rejected"`: ein [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) antwortete auf den Abruf der verwalteten Einstellungen mit HTTP 403

Details

246| `storage.googleapis.com` | Nativer Installer und nativer Auto-Updater in Versionen vor 2.1.116 |246| `storage.googleapis.com` | Nativer Installer und nativer Auto-Updater in Versionen vor 2.1.116 |

247| `registry.npmjs.org` | Plugin-Installationen (Abrufen von npm-Quell-Plugin-Paketen und Installation von Node.js-Paketabhängigkeiten von Plugins), `npx`-gestartete MCP-Server und die Paketregistrierung für npm- und bun-Installationen von Claude Code selbst |247| `registry.npmjs.org` | Plugin-Installationen (Abrufen von npm-Quell-Plugin-Paketen und Installation von Node.js-Paketabhängigkeiten von Plugins), `npx`-gestartete MCP-Server und die Paketregistrierung für npm- und bun-Installationen von Claude Code selbst |

248| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/de/chrome) Erweiterungs-WebSocket-Bridge |248| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/de/chrome) Erweiterungs-WebSocket-Bridge |

249| `*.frame.claudeusercontent.com` | [Artifact](/docs/de/artifacts) Inhaltslesevorgänge. Die CLI ruft die Dateien eines Artifacts von diesem Host ab, wenn Claude eines öffnet, und nur wenn das Artifact-Tool [verfügbar](/docs/de/artifacts#availability) für Ihr Konto ist. Um das Tool auszuschalten und diese Anforderung zu entfernen, setzen Sie [`"enableArtifact": false`](/docs/de/settings-reference#enableartifact) oder [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/de/env-vars); Claude Code berücksichtigt auch die veraltete Einstellung [`disableArtifact`](/docs/de/settings-reference#disableartifact). Siehe [Disable artifacts](/docs/de/artifacts#disable-artifacts) für die Interaktion dieser Einstellungen |249| `*.frame.claudeusercontent.com` | [Artifact](/docs/de/artifacts) Inhaltslesevorgänge. Die CLI ruft die Dateien eines Artifacts von diesem Host ab, wenn Claude eines öffnet, und nur wenn das Artifact-Tool [verfügbar](/docs/de/artifacts#availability) für Ihr Konto ist. Um das Tool auszuschalten und diese Anforderung zu entfernen, setzen Sie [`"enableArtifact": false`](/docs/de/settings-reference#enableartifact) oder [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/de/env-vars) |

250| `github.com` | Klonen von GitHub-gehosteten [Plugin-Marktplätzen](/docs/de/plugins/overview) und Plugins, einschließlich des offiziellen Anthropic-Marktplatzes, über HTTPS oder SSH. Um GitHub `owner/repo` Quellen nur über HTTPS zu klonen, setzen Sie [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/de/env-vars) |250| `github.com` | Klonen von GitHub-gehosteten [Plugin-Marktplätzen](/docs/de/plugins/overview) und Plugins, einschließlich des offiziellen Anthropic-Marktplatzes, über HTTPS oder SSH. Um GitHub `owner/repo` Quellen nur über HTTPS zu klonen, setzen Sie [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/de/env-vars) |

251| `raw.githubusercontent.com` | Changelog-Feed für [`/release-notes`](/docs/de/commands). In interaktiven Sitzungen ruft Claude Code ihn auch beim Start im Hintergrund ab, wenn sein zwischengespeichertes Changelog die laufende Version noch nicht abdeckt, z. B. beim ersten Start nach einem Update; nicht-interaktive und Cloud-Sitzungen rufen ihn nie ab |251| `raw.githubusercontent.com` | Changelog-Feed für [`/release-notes`](/docs/de/commands). In interaktiven Sitzungen ruft Claude Code ihn auch beim Start im Hintergrund ab, wenn sein zwischengespeichertes Changelog die laufende Version noch nicht abdeckt, z. B. beim ersten Start nach einem Update; nicht-interaktive und Cloud-Sitzungen rufen ihn nie ab |

252| `*-review.googlesource.com` | Gerrit-Änderungssuche bei `googlesource.com`-Checkouts. Wenn eine Claude Desktop Code-Tab-Sitzung auf einem [vertrauenswürdigen](/docs/de/permissions#project-allow-rules-and-workspace-trust) Checkout startet oder fortgesetzt wird, dessen `origin` ein `googlesource.com`-Host ist, fragt Claude Code diesen Host's `-review`-Server anonym nach der offenen Änderung, die HEADs `Change-Id` entspricht, einmal pro Start oder Fortsetzung. Andere Sitzungstypen überspringen die Suche, und kein anderer Gerrit-Host wird kontaktiert. Optional: deaktivieren mit [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) |252| `*-review.googlesource.com` | Gerrit-Änderungssuche bei `googlesource.com`-Checkouts. Wenn eine Claude Desktop Code-Tab-Sitzung auf einem [vertrauenswürdigen](/docs/de/permissions#project-allow-rules-and-workspace-trust) Checkout startet oder fortgesetzt wird, dessen `origin` ein `googlesource.com`-Host ist, fragt Claude Code diesen Host's `-review`-Server anonym nach der offenen Änderung, die HEADs `Change-Id` entspricht, einmal pro Start oder Fortsetzung. Andere Sitzungstypen überspringen die Suche, und kein anderer Gerrit-Host wird kontaktiert. Optional: deaktivieren mit [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) |

Details

86| Wie Sie Claude Code ausführen | Integrierter Standard-Berechtigungsmodus |86| Wie Sie Claude Code ausführen | Integrierter Standard-Berechtigungsmodus |

87| :- | :- |87| :- | :- |

88| Eine Einstellungsdatei setzt `disableAutoMode` auf `"disable"` | `default` |88| Eine Einstellungsdatei setzt `disableAutoMode` auf `"disable"` | `default` |

89| `claude -p` oder das [Agent SDK](/docs/de/agent-sdk/permissions) | `default` |89| `claude -p` oder das [Agent SDK](/docs/de/agent-sdk/permissions#permission-modes) | `default` in Sitzungen, die [Feature-Flags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching). In Sitzungen, die dies nicht tun, wie bei einem Drittanbieter oder mit deaktivierter Telemetrie, `auto` mit Claude Code v2.1.285 oder später und `default` bei früheren Versionen. Eine Sitzung in einer Organisation, deren Richtlinie den `auto` Standard vorenthält, startet stattdessen in `default` |

90| In einem Terminal oder über die [VS Code-Erweiterung](/docs/de/vs-code) | `auto` mit Claude Code v2.1.283 oder später; bei früheren Versionen `auto` bei Pro-, Max- oder Team-Plänen in Sitzungen, die [Feature-Flags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching), und `default` andernfalls |90| In einem Terminal oder über die [VS Code-Erweiterung](/docs/de/vs-code) | `auto` mit Claude Code v2.1.283 oder später; bei früheren Versionen `auto` bei Pro-, Max- oder Team-Plänen in Sitzungen, die [Feature-Flags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching), und `default` andernfalls |

91 91 

92In Ihrer [ersten Sitzung nach einer Installation oder einem Upgrade](/docs/de/env-vars#first-session-after-an-install-or-upgrade) kann Claude Code den Standard-Berechtigungsmodus wählen, bevor seine Feature-Flags ankommen. Diese Sitzung kann in einem anderen Berechtigungsmodus starten als die Tabelle angibt, und Ihre nächste Sitzung entspricht der Tabelle.92In Ihrer [ersten Sitzung nach einer Installation oder einem Upgrade](/docs/de/env-vars#first-session-after-an-install-or-upgrade) kann Claude Code den Standard-Berechtigungsmodus wählen, bevor seine Feature-Flags ankommen. Diese Sitzung kann in einem anderen Berechtigungsmodus starten als die Tabelle angibt, und Ihre nächste Sitzung entspricht der Tabelle.


98* In einem Terminal, einmal, oben in der Sitzung98* In einem Terminal, einmal, oben in der Sitzung

99* In der VS Code-Erweiterung, als Karte auf dem Bildschirm für neue Konversationen, die bleibt, bis Sie sie schließen99* In der VS Code-Erweiterung, als Karte auf dem Bildschirm für neue Konversationen, die bleibt, bis Sie sie schließen

100 100 

101Bei Pro-, Max- und Team-Plänen, wenn Ihre `~/.claude/settings.json` einen `defaultMode` setzt, der nicht `auto` ist, und keine andere Einstellungsdatei setzt einen, starten Ihre Sitzungen weiterhin in diesem Modus. Claude Code fragt einmal, im Terminal oder in der VS Code-Erweiterung, ob die Einstellung auf Auto-Modus geändert werden soll. Wenn Sie ablehnen, bleibt Ihre Einstellung wie sie ist.101Wenn Ihre `~/.claude/settings.json` einen `defaultMode` setzt, der nicht `auto` ist, und keine andere Einstellungsdatei setzt einen, starten Ihre Sitzungen weiterhin in diesem Modus. Bei Pro-, Max- und Team-Plänen und in Sitzungen, die [keine Feature-Flags abrufen](/docs/de/env-vars#features-that-need-feature-flag-fetching), fragt Claude Code einmal, im Terminal oder in der VS Code-Erweiterung, ob die Einstellung auf Auto-Modus geändert werden soll. Wenn Sie ablehnen, bleibt Ihre Einstellung wie sie ist.

102 102 

103<h3 id="start-in-a-different-mode">103<h3 id="start-in-a-different-mode">

104 Starten Sie in einem anderen Berechtigungsmodus104 Starten Sie in einem anderen Berechtigungsmodus


288Um den Plan-Modus als Standard für die Terminal-Sitzungen eines Projekts festzulegen, setzen Sie `defaultMode` auf `plan` in `.claude/settings.json`, wie das Beispiel unter [Starten Sie in einem anderen Berechtigungsmodus](#start-in-a-different-mode) zeigt. Konversationen, die die [VS Code-Erweiterung](/docs/de/vs-code) startet, lesen keine Projekteinstellungen für den Standard-Berechtigungsmodus. Dort setzen Sie stattdessen `claudeCode.initialPermissionMode` auf `plan` in Ihren VS Code-Benutzereinstellungen.288Um den Plan-Modus als Standard für die Terminal-Sitzungen eines Projekts festzulegen, setzen Sie `defaultMode` auf `plan` in `.claude/settings.json`, wie das Beispiel unter [Starten Sie in einem anderen Berechtigungsmodus](#start-in-a-different-mode) zeigt. Konversationen, die die [VS Code-Erweiterung](/docs/de/vs-code) startet, lesen keine Projekteinstellungen für den Standard-Berechtigungsmodus. Dort setzen Sie stattdessen `claudeCode.initialPermissionMode` auf `plan` in Ihren VS Code-Benutzereinstellungen.

289 289 

290<h2 id="eliminate-prompts-with-auto-mode">290<h2 id="eliminate-prompts-with-auto-mode">

291 Eliminieren Sie Genehmigungsaufforderungen mit dem Auto-Modus291 Genehmigungsaufforderungen mit Auto-Modus eliminieren

292</h2>292</h2>

293 293 

294Der Auto-Modus ermöglicht Claude, ohne routinemäßige Genehmigungsaufforderungen auszuführen. Ein separates Klassifizierungsmodell überprüft Aktionen vor ihrer Ausführung und blockiert alles, das über Ihre Anfrage hinausgeht, auf nicht erkannte Infrastruktur abzielt oder von feindseligem Inhalt angetrieben zu sein scheint, den Claude gelesen hat. Explizite [Ask-Regeln](/docs/de/permissions#manage-permissions) erzwingen weiterhin eine Aufforderung.294Der Auto-Modus ermöglicht es Claude, ohne routinemäßige Genehmigungsaufforderungen auszuführen. Ein separates Klassifizierungsmodell überprüft Aktionen, bevor sie ausgeführt werden, und blockiert alles, das über Ihre Anfrage hinausgeht, auf nicht erkannte Infrastruktur abzielt oder von feindseligem Inhalt angetrieben zu sein scheint, den Claude gelesen hat. Explizite [Anfrageregelungen](/docs/de/permissions#manage-permissions) erzwingen weiterhin eine Aufforderung.

295 295 

296Mit Claude Code v2.1.283 oder später ist der Auto-Modus der [integrierte Standard-Genehmigungsmodus](#which-mode-a-session-starts-in) für interaktive Terminal- und VS Code-Sitzungen auf jedem Plan und Anbieter. Bei früheren Versionen ist er der integrierte Standard-Genehmigungsmodus nur auf Pro-, Max- und Team-Plänen.296Mit Claude Code v2.1.283 oder später ist der Auto-Modus der [integrierte Standard-Berechtigungsmodus](#which-mode-a-session-starts-in) für interaktive Terminal- und VS Code-Sitzungen in jedem Plan und bei jedem Anbieter. Bei früheren Versionen ist er der integrierte Standard-Berechtigungsmodus nur bei Pro-, Max- und Team-Plänen.

297 297 

298Der Klassifizierer überprüft auch jede Nachricht, die Claude mit [`SendMessage`](/docs/de/tools-reference) an einen anderen Agent sendet, ob als Klartext oder als strukturierte [Agent-Team](/docs/de/agent-teams)-Nachricht, bevor Claude Code sie liefert, sowohl im Auto-Modus als auch im [Plan-Modus, während der Klassifizierer Befehle überprüft](#analyze-before-you-edit-with-plan-mode); die Sendungsüberprüfung erfordert Claude Code v2.1.222 oder später.298Der Klassifizierer überprüft auch jede Nachricht, die Claude mit [`SendMessage`](/docs/de/tools-reference) an einen anderen Agent sendet, ob als Klartext oder als strukturierte [Agent-Team](/docs/de/agent-teams)-Nachricht, bevor Claude Code sie liefert, sowohl im Auto-Modus als auch im [Plan-Modus, während der Klassifizierer Befehle überprüft](#analyze-before-you-edit-with-plan-mode); die Sendungsüberprüfung erfordert Claude Code v2.1.222 oder später.

299 299 

300Standardmäßig überprüft der Klassifizierer `rm`- und `rmdir`-Löschungen, die auf einen kritischen Pfad abzielen, wie `rm -rf /` oder `rm -rf ~`, nicht. [Kritische Pfade](#critical-paths) behandelt, was mit ihnen in jedem Genehmigungsmodus passiert.300Standardmäßig überprüft der Klassifizierer `rm`- und `rmdir`-Löschungen, die auf einen kritischen Pfad abzielen, wie `rm -rf /` oder `rm -rf ~`, nicht. [Kritische Pfade](#critical-paths) behandelt, was mit ihnen in jedem Berechtigungsmodus geschieht.

301 301 

302Der Auto-Modus ermutigt Claude auch, weiter zu arbeiten, ohne bei Klärungsfragen zu stoppen, obwohl Claude immer noch fragt, wenn Ihre Eingabeaufforderung oder eine Fähigkeit explizit darauf angewiesen ist. Für stärkeres autonomes Verhalten in einem Modus, der Sie immer noch auffordert, stellen Sie stattdessen den [Proaktiven Ausgabestil](/docs/de/output-styles) ein.302Der Auto-Modus ermutigt Claude auch, ohne Unterbrechung für Klärungsfragen weiterzuarbeiten, obwohl Claude immer noch fragt, wenn Ihre Aufforderung oder eine Fähigkeit explizit darauf angewiesen ist. Für stärkeres autonomes Verhalten in einem Modus, der Sie immer noch auffordert, stellen Sie stattdessen den [Proaktiven Ausgabestil](/docs/de/output-styles) ein.

303 303 

304<Warning>304<Warning>

305 Der Auto-Modus reduziert Genehmigungsaufforderungen, garantiert aber keine Sicherheit. Verwenden Sie ihn für Aufgaben, bei denen Sie der allgemeinen Richtung vertrauen, nicht als Ersatz für die Überprüfung bei sensiblen Operationen.305 Der Auto-Modus reduziert Genehmigungsaufforderungen, garantiert aber keine Sicherheit. Verwenden Sie ihn für Aufgaben, bei denen Sie der allgemeinen Richtung vertrauen, nicht als Ersatz für eine Überprüfung bei sensiblen Operationen.

306</Warning>306</Warning>

307 307 

308Der Auto-Modus ist nur verfügbar, wenn Ihr Konto alle diese Anforderungen erfüllt:308Der Auto-Modus ist nur verfügbar, wenn Ihr Konto alle diese Anforderungen erfüllt:

309 309 

310* **Plan**: Alle Pläne.310* **Plan**: Alle Pläne.

311* **Organisation**: Bei Team und Enterprise ist der Auto-Modus standardmäßig verfügbar. Administratoren können ihn für die Organisation deaktivieren, indem sie `permissions.disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"` setzen.311* **Organisation**: Bei Team und Enterprise ist der Auto-Modus standardmäßig verfügbar. Administratoren können ihn für die Organisation deaktivieren, indem sie `permissions.disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"` setzen.

312* **Modell**: In der Anthropic API und [Claude Platform on AWS](/docs/de/claude-platform-on-aws), Claude Opus 4.6 oder später, Sonnet 4.6 oder später, oder ein [Fable-Modell](/docs/de/model-config#work-with-fable). Bei Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldeten [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen nur Claude Sonnet 5 oder später, Opus 4.7 oder später und die Fable-Modelle. Ältere Modelle, einschließlich Sonnet 4.5, Opus 4.5, Haiku und claude-3-Modelle, werden auf keinem Anbieter unterstützt.312* **Modell**: Bei der Anthropic API und [Claude Platform auf AWS](/docs/de/claude-platform-on-aws) Claude Opus 4.6 oder später, Sonnet 4.6 oder später, oder ein [Fable-Modell](/docs/de/model-config#work-with-fable). Bei Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldeten [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen nur Claude Sonnet 5 oder später, Opus 4.7 oder später und die Fable-Modelle. Ältere Modelle, einschließlich Sonnet 4.5, Opus 4.5, Haiku und claude-3-Modelle, werden bei keinem Anbieter unterstützt.

313* **Anbieter**: Standardmäßig verfügbar in der Anthropic API, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldeten Claude-Apps-Gateway-Sitzungen.313* **Anbieter**: Standardmäßig verfügbar bei der Anthropic API, Claude Platform auf AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry und angemeldeten Claude-Apps-Gateway-Sitzungen.

314 314 

315Wenn Claude Code meldet, dass der Auto-Modus nicht verfügbar ist, überprüfen Sie zunächst diese Anforderungen und ob eine Einstellungsdatei [`disableAutoMode`](/docs/de/settings-reference#disableautomode) setzt. Anthropic kann den Auto-Modus auch serverseitig deaktiviert haben, oder der Server kann den Auto-Modus für Ihr Konto abgelehnt haben. Eine Sitzung, die eine dieser Antworten erhalten hat, behält den Auto-Modus aus, bis die Sitzung endet. Starten Sie später eine neue Sitzung.315Wenn Claude Code meldet, dass der Auto-Modus nicht verfügbar ist, überprüfen Sie zunächst diese Anforderungen und ob eine Einstellungsdatei [`disableAutoMode`](/docs/de/settings-reference#disableautomode) setzt. Anthropic kann den Auto-Modus auch serverseitig deaktiviert haben, oder der Server kann den Auto-Modus für Ihr Konto abgelehnt haben. Eine Sitzung, die eine dieser Antworten erhalten hat, behält den Auto-Modus aus, bis die Sitzung endet. Starten Sie später eine neue Sitzung.

316 316 

317Eine separate Nachricht, die ein Modell benennt und sagt, dass der Auto-Modus die Sicherheit einer Aktion „nicht bestimmen kann", bedeutet, dass eine Klassifizierer-Anfrage fehlgeschlagen ist. Dieser Fehler ist normalerweise vorübergehend, kann aber bei Amazon Bedrock wiederholt auftreten, bis Ihr Konto das benannte Modell aufrufen kann. Siehe die [Fehlerreferenz](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für die Ursachen und was zu tun ist.317Eine separate Nachricht, die ein Modell benennt und sagt, dass der Auto-Modus die Sicherheit einer Aktion „nicht bestimmen kann", bedeutet, dass eine Klassifiziereranfrage fehlgeschlagen ist. Dieser Fehler ist normalerweise vorübergehend, kann aber bei Amazon Bedrock wiederholt werden, bis Ihr Konto das benannte Modell aufrufen kann. Siehe die [Fehlerreferenz](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für die Ursachen und was zu tun ist.

318 318 

319Wenn Sie `defaultMode: "auto"` in [Einstellungen](/docs/de/settings-reference#all-settings) setzen und eine Terminal-Sitzung im manuellen Modus ohne Fehler startet, befindet sich die Einstellung wahrscheinlich in `.claude/settings.json` oder `.claude/settings.local.json`. `auto` wird aus diesen Dateien nicht wirksam. Verschieben Sie es zu `~/.claude/settings.json`. Für ein Gespräch, das die VS Code-Erweiterung gestartet hat, überprüfen Sie stattdessen die eigene Liste der Erweiterung in [Genehmigungsmodi wechseln](#switch-permission-modes).319Wenn Sie `defaultMode: "auto"` in [Einstellungen](/docs/de/settings-reference#all-settings) setzen und eine Terminal-Sitzung im manuellen Modus ohne Fehler startet, befindet sich die Einstellung wahrscheinlich in `.claude/settings.json` oder `.claude/settings.local.json`. `auto` wird aus diesen Dateien nicht wirksam. Verschieben Sie es zu `~/.claude/settings.json`. Überprüfen Sie für ein Gespräch, das die VS Code-Erweiterung gestartet hat, stattdessen die eigene Liste der Erweiterung in [Berechtigungsmodi wechseln](#switch-permission-modes).

320 320 

321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

322 Auto-Modus auf Bedrock, Agent Platform oder Foundry322 Auto-Modus auf Bedrock, Agent Platform oder Foundry

323</h3>323</h3>

324 324 

325Bei [Amazon Bedrock](/docs/de/amazon-bedrock), [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), [Microsoft Foundry](/docs/de/microsoft-foundry) und angemeldeten [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen ist der Auto-Modus standardmäßig verfügbar. Mit Claude Code v2.1.283 oder später ist er auch der [integrierte Standard-Genehmigungsmodus](#which-mode-a-session-starts-in) für interaktive Terminal- und [VS Code](/docs/de/vs-code)-Sitzungen. Um den Standard-Genehmigungsmodus selbst zu wählen, setzen Sie `permissions.defaultMode` wie [In einem anderen Genehmigungsmodus starten](#start-in-a-different-mode) beschreibt, oder wählen Sie einen Genehmigungsmodus aus dem Modusindikator der VS Code-Erweiterung.325Bei [Amazon Bedrock](/docs/de/amazon-bedrock), [Google Cloud's Agent Platform](/docs/de/google-vertex-ai), [Microsoft Foundry](/docs/de/microsoft-foundry) und angemeldeten [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzungen ist der Auto-Modus standardmäßig verfügbar. Wenn nichts anderes einen Berechtigungsmodus setzt, ist er auch der [integrierte Standard-Berechtigungsmodus](#which-mode-a-session-starts-in), auf den Versionen, die dieser Abschnitt auflistet. Um den Standard-Berechtigungsmodus selbst zu wählen, setzen Sie `permissions.defaultMode` wie [In einem anderen Berechtigungsmodus starten](#start-in-a-different-mode) beschreibt, oder wählen Sie einen Berechtigungsmodus aus dem Modus-Indikator der VS Code-Erweiterung.

326 326 

327Nur Claude Sonnet 5 oder später, Opus 4.7 oder später und die Fable-Modelle werden auf diesen Anbietern unterstützt. Bei jedem anderen Modell startet die Sitzung stattdessen im manuellen Modus.327Nur Claude Sonnet 5 oder später, Opus 4.7 oder später und die Fable-Modelle werden auf diesen Anbietern unterstützt. Bei jedem anderen Modell startet die Sitzung stattdessen im manuellen Modus.

328 328 

329Um Entwickler daran zu hindern, den Auto-Modus zu verwenden, setzen Sie `disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"`. Dies entfernt `auto` aus dem `Shift+Tab`-Zyklus, und eine Sitzung, die mit `--permission-mode auto` gestartet wurde, startet stattdessen im manuellen Modus. Eine bereits im Auto-Modus laufende Sitzung verlässt ihn, wenn die Einstellung diese Sitzung von einer [von Admin bereitgestellten Quelle](/docs/de/managed-settings#which-managed-source-claude-code-uses) erreicht, und zeigt `auto mode disabled by settings`. Vor v2.1.251 behielt eine laufende Sitzung den Auto-Modus bis zum Ende.329Um Entwickler daran zu hindern, den Auto-Modus zu verwenden, setzen Sie `disableAutoMode` in [verwalteten Einstellungen](/docs/de/managed-settings) auf `"disable"`. Dies entfernt `auto` aus dem `Shift+Tab`-Zyklus, und eine Sitzung, die mit `--permission-mode auto` gestartet wird, startet stattdessen im manuellen Modus. Eine bereits im Auto-Modus laufende Sitzung verlässt ihn, wenn die Einstellung diese Sitzung von einer [von Admin bereitgestellten Quelle](/docs/de/managed-settings#which-managed-source-claude-code-uses) erreicht, und zeigt `auto mode disabled by settings`. Vor v2.1.251 behielt eine laufende Sitzung den Auto-Modus bis zum Ende.

330 330 

331In v2.1.158 bis v2.1.206 war der Auto-Modus auf diesen Anbietern aus, bis Sie `CLAUDE_CODE_ENABLE_AUTO_MODE=1` setzten, und Claude Code ignorierte `defaultMode: "auto"` auf diesen Anbietern, es sei denn, die Variable war auch gesetzt. Die Variable wird weiterhin aus Kompatibilitätsgründen akzeptiert und hat ab v2.1.207 keine Auswirkung.331In v2.1.158 bis v2.1.206 war der Auto-Modus auf diesen Anbietern aus, bis Sie `CLAUDE_CODE_ENABLE_AUTO_MODE=1` setzten, und Claude Code ignorierte `defaultMode: "auto"` auf diesen Anbietern, es sei denn, die Variable wurde auch gesetzt. Die Variable wird immer noch aus Kompatibilitätsgründen akzeptiert und hat ab v2.1.207 keine Auswirkung.

332 332 

333<h3 id="server-side-classifier-review">333<h3 id="server-side-classifier-review">

334 Serverseitige Klassifizierer-Überprüfung334 Serverseitige Klassifiziererüberprüfung

335</h3>335</h3>

336 336 

337Im Auto-Modus kann Claude Code den Server bitten, die Aktionen zu überprüfen, die [die Entscheidungsreihenfolge](#how-the-classifier-evaluates-actions) zur Überprüfung sendet, als Teil der Modellabfragen der Sitzung, anstatt seine eigenen Klassifizierer-Anfragen zu senden. Diese Sitzungen fragen:337Im Auto-Modus kann Claude Code den Server bitten, die Aktionen zu überprüfen, die [die Entscheidungsreihenfolge](#how-the-classifier-evaluates-actions) zur Überprüfung sendet, als Teil der Modellanfragen der Sitzung, anstatt eigene Klassifiziereranfragen zu senden. Diese Sitzungen fragen:

338 338 

339* **Eine direkte Verbindung zur Anthropic API**: in einer interaktiven Terminal-Sitzung, auf jedem claude.ai-Plan und auf Konten, die die Claude API verwenden, wenn Anthropic dies ausrollt. Erfordert Claude Code v2.1.271 oder später auf Pro-, Max- und Team-Plänen und v2.1.278 oder später auf Enterprise-Plänen und Claude API-Konten. Ab v2.1.282 fragt eine Sitzung, die [Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), zum Beispiel weil Sie Telemetrie deaktiviert haben, den Server standardmäßig in jeder Art von Sitzung.339* **Eine direkte Verbindung zur Anthropic API**: in einer interaktiven Terminal-Sitzung, bei jedem claude.ai-Plan und bei Konten, die die Claude API verwenden, während Anthropic dies einführt. Erfordert Claude Code v2.1.271 oder später bei Pro-, Max- und Team-Plänen und v2.1.278 oder später bei Enterprise-Plänen und Claude API-Konten. Ab v2.1.282 fragt eine Sitzung, die [Feature-Flags nicht abruft](/docs/de/env-vars#features-that-need-feature-flag-fetching), zum Beispiel weil Sie Telemetrie deaktiviert haben, standardmäßig den Server in jeder Art von Sitzung.

340* **Ein Cloud-Anbieter, oder ein LLM-Gateway oder Proxy**: auf [Claude Platform on AWS](/docs/de/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry, und wenn Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway oder einen Proxy](/docs/de/llm-gateway) verweisen, unabhängig von Ihrem Plan. Das standardmäßige Fragen erfordert Claude Code v2.1.278 oder später.340* **Ein Cloud-Anbieter oder ein LLM-Gateway oder Proxy**: bei [Claude Platform auf AWS](/docs/de/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry, und wann immer Sie `ANTHROPIC_BASE_URL` auf ein [LLM-Gateway oder Proxy](/docs/de/llm-gateway) verweisen, unabhängig von Ihrem Plan. Das standardmäßige Fragen erfordert Claude Code v2.1.278 oder später.

341* **Eine angemeldete [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzung**: erfordert Claude Code v2.1.280 oder später341* **Eine angemeldete [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Sitzung**: erfordert Claude Code v2.1.280 oder später

342 342 

343Wo der Server die Aktionen überprüft, entscheiden seine Urteile diese. Zwei andere Ergebnisse sind möglich:343Wenn der Server die Aktionen überprüft, entscheiden seine Urteile über sie. Zwei weitere Ergebnisse sind möglich:

344 344 

345* **Der Server überprüft die Sitzung nicht**: Eine Antwort wird ohne Überprüfungsergebnisse abgeschlossen, oder der Server antwortet, dass er diese Sitzung nicht überprüft. Die häufigsten Ursachen sind ein LLM-Gateway oder Proxy, der die Anfrage zur Überprüfung oder die Ergebnisse blockiert, und eine Plattform, Region oder Anmeldedaten, die noch keine serverseitigen Überprüfungen haben. Claude Code fällt auf seine eigenen Klassifizierer-Anfragen zurück. Sobald dieses Fallback für den Rest der Sitzung gilt, zeigt es eine [Mitteilung über Klassifizierer-Anfrage-Gebühren](/docs/de/auto-mode-classifier-billing) auf Konten, bei denen diese Anfragen abgerechnet werden.345* **Der Server überprüft die Sitzung nicht**: Eine Antwort wird ohne Überprüfungsergebnisse abgeschlossen, oder der Server antwortet, dass er diese Sitzung nicht überprüft. Die häufigsten Ursachen sind ein LLM-Gateway oder Proxy, das die Anfrage zur Überprüfung oder die Ergebnisse verwirft, und eine Plattform, Region oder Anmeldedaten, die noch keine serverseitigen Überprüfungen haben. Claude Code fällt auf seine eigenen Klassifiziereranfragen zurück. Sobald dieses Fallback für den Rest der Sitzung gilt, zeigt es einen [Hinweis zu Klassifiziereranfrage-Gebühren](/docs/de/auto-mode-classifier-billing) bei Konten, bei denen diese Anfragen in Rechnung gestellt werden.

346* **Der Server gibt kein Urteil für eine Aktion**: Claude Code verweigert die Aktion, anstatt sie unüberprüft auszuführen. Bei jeder Verbindung geschieht dies, wenn die Antwort endet, bevor die Überprüfungsergebnisse ankommen, oder die Ergebnisse in einer Form ankommen, die Claude Code nicht lesen kann. Ein LLM-Gateway oder Proxy, der Antworten kürzt oder die Ergebnisse umschreibt, kann beides verursachen. Bei einer direkten Verbindung zur Anthropic API geschieht es auch, wenn die Überprüfung des Servers für die Aktion fehlschlägt, zum Beispiel durch Timeout. [Der Server hat kein Sicherheitsurteil zurückgegeben](/docs/de/errors#the-server-returned-no-safety-verdict) behandelt die Verweigerungsmitteilung, was passiert, wenn Verweigerungen wiederholt werden, und was zu tun ist.346* **Der Server gibt kein Urteil für eine Aktion ab**: Claude Code verweigert die Aktion, anstatt sie unüberprüft auszuführen. Bei jeder Verbindung geschieht dies, wenn die Antwort endet, bevor die Überprüfungsergebnisse ankommen, oder die Ergebnisse in einer Form ankommen, die Claude Code nicht lesen kann. Ein LLM-Gateway oder Proxy, das Antworten kürzt oder die Ergebnisse umschreibt, kann beides verursachen. Bei einer direkten Verbindung zur Anthropic API geschieht dies auch, wenn die Überprüfung des Servers für die Aktion fehlschlägt, zum Beispiel durch Timeout. [Der Server hat kein Sicherheitsurteil zurückgegeben](/docs/de/errors#the-server-returned-no-safety-verdict) behandelt die Verweigerungsmeldung, was geschieht, wenn Verweigerungen wiederholt werden, und was zu tun ist.

347 347 

348Um das Fragen des Servers zu überspringen und immer Claude Codes eigene Klassifizierer-Anfragen zu verwenden, setzen Sie [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/de/env-vars). Bei einer direkten Verbindung zur Anthropic API erfordert die Variable Claude Code v2.1.281 oder später. Das Setzen auf `1` dort schaltet die serverseitige Überprüfung in einer Sitzung ein, die sie noch nicht hat, wie eine `-p`- oder Agent SDK-Sitzung, es sei denn, Sie haben auch `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` gesetzt. Wenn Sie `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` setzen und `CLAUDE_CODE_AUTO_MODE_SERVER` nicht gesetzt lassen, stoppt Claude Code auch das Fragen des Servers, außer wie [Deaktivieren Sie Pre-Release-Funktionen](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) beschreibt.348Um das Fragen des Servers zu überspringen und immer Claude Codes eigene Klassifiziereranfragen zu verwenden, setzen Sie [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/de/env-vars). Bei einer direkten Verbindung zur Anthropic API erfordert die Variable Claude Code v2.1.281 oder später. Das Setzen auf `1` dort schaltet die Serverüberprüfung in einer Sitzung ein, die sie noch nicht hat, wie eine `-p`- oder Agent SDK-Sitzung, es sei denn, Sie haben auch `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` gesetzt. Wenn Sie `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` setzen und `CLAUDE_CODE_AUTO_MODE_SERVER` nicht gesetzt lassen, stoppt Claude Code auch das Fragen des Servers, außer wie [Vorabversions-Funktionen deaktivieren](/docs/de/llm-gateway-protocol#disable-pre-release-capabilities) beschreibt.

349 349 

350<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

351 Was der Klassifizierer standardmäßig blockiert351 Was der Klassifizierer standardmäßig blockiert

352</h3>352</h3>

353 353 

354Der Klassifizierer vertraut Ihrem Arbeitsverzeichnis und den Remotes, die dafür konfiguriert wurden, als die Sitzung startete. Ein Remote, das während der Sitzung mit `git remote add` oder `git remote set-url` hinzugefügt oder umgeleitet wird, wird nicht vertraut, und alles andere wird als extern behandelt, bis Sie [vertrauenswürdige Infrastruktur konfigurieren](/docs/de/auto-mode-config). Vor v2.1.200 wurden auch während der Sitzung hinzugefügte Remotes vertraut.354Der Klassifizierer vertraut Ihrem Arbeitsverzeichnis und den Remotes, die dafür konfiguriert wurden, als die Sitzung begann. Ein Remote, das während der Sitzung mit `git remote add` oder `git remote set-url` hinzugefügt oder umgeleitet wird, wird nicht vertraut, und alles andere wird als extern behandelt, bis Sie [vertrauenswürdige Infrastruktur konfigurieren](/docs/de/auto-mode-config). Vor v2.1.200 wurden auch während der Sitzung hinzugefügte Remotes vertraut.

355 355 

356**Standardmäßig blockiert**:356**Standardmäßig blockiert**:

357 357 


363* Änderung gemeinsamer Infrastruktur363* Änderung gemeinsamer Infrastruktur

364* Irreversibles Zerstören von Dateien, die vor der Sitzung existierten364* Irreversibles Zerstören von Dateien, die vor der Sitzung existierten

365* Force Push365* Force Push

366* Committen oder Pushen einer Änderung, die Geheimnisse oder sensible Daten außerhalb des Repositorys sendet, wenn es ausgeführt wird, oder erweitert, was eine Bereitstellung offenlegt. Dies umfasst einen CI-Workflow oder eine Bereitstellungskonfiguration, die ein Geheimnis an ein Ziel übergibt, das es nicht bereits erhält, ein Skript oder einen Einrichtungsschritt, der einen Geheimnisspeicher liest und die Daten sendet, und eine Konfigurationsänderung, die erweitert, was eine Bereitstellung veröffentlicht, wie eine Registrierung, Sichtbarkeit, ein Artefakt oder eine Sourcemap-Einstellung. Die Überprüfung gilt auf jedem Branch, gilt auch wenn das Repository öffentlich ist, und wird ausgelöst, wenn die Änderung committed oder gepusht wird, unabhängig davon, ob dieser Commit oder Push die Pipeline auslöst; das Löschen erfordert die Benennung des Ausführungseffekts, nicht nur des Commits oder Pushes. Vor v2.1.211 war diese Überprüfung auf den Standard-Branch beschränkt: Ein Push dort wurde blockiert, wenn er sensible Inhalte trug, Änderungen verborgen oder falsch beschrieben waren im Vergleich zu dem, was Sie fragten, Inhalte von außerhalb des Repositorys portiert wurden oder eine Überprüfung umgangen wurde, die Sie fragten366* Committen oder Pushen einer Änderung, die Geheimnisse oder sensible Daten außerhalb des Repositorys sendet, wenn es ausgeführt wird, oder erweitert, was eine Bereitstellung offenlegt. Dies umfasst einen CI-Workflow oder eine Bereitstellungskonfiguration, die ein Geheimnis an ein Ziel übergibt, das es nicht bereits erhält, ein Skript oder Setup-Schritt, das einen Geheimnisspeicher liest und die Daten sendet, und eine Konfigurationsänderung, die erweitert, was eine Bereitstellung veröffentlicht, wie eine Registrierung, Sichtbarkeit, ein Artefakt oder eine Sourcemap-Einstellung. Die Überprüfung gilt auf jedem Branch, gilt auch, wenn das Repository öffentlich ist, und wird ausgelöst, wenn die Änderung committed oder gepusht wird, unabhängig davon, ob dieser Commit oder Push die Pipeline auslöst; das Löschen erfordert die Benennung des Ausführungseffekts, nicht nur des Commits oder Pushs. Vor v2.1.211 war diese Überprüfung auf den Standard-Branch beschränkt: Ein Push dort wurde blockiert, wenn er sensiblen Inhalt trug, Änderungen verborgen oder falsch beschrieben waren im Vergleich zu dem, was Sie fragten, Inhalt von außerhalb des Repositorys portiert wurde, oder um eine Überprüfung, die Sie fragten, umgangen wurde

367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` oder `git stash clear`, von denen der Klassifizierer annimmt, dass sie nicht committete Änderungen verwerfen würden367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` oder `git stash clear`, von denen der Klassifizierer annimmt, dass sie nicht committete Änderungen verwerfen würden

368* `git commit --amend`, wenn der Commit am HEAD nicht in dieser Sitzung erstellt wurde368* `git commit --amend`, wenn der Commit am HEAD nicht in dieser Sitzung erstellt wurde

369* Ab v2.1.198, `git commit --amend`, wenn der Commit am HEAD bereits gepusht wurde. Eine nur-Nachricht-Umformulierung wird nicht blockiert: `--amend -m` ohne neu Gestaffeltes, auf einem Commit, den Claude während dieser Sitzung erstellt hat369* Ab v2.1.198 `git commit --amend`, wenn der Commit am HEAD bereits gepusht wurde. Eine Nachricht-nur-Umformulierung wird nicht blockiert: `--amend -m` ohne neu Gestaffeltes, bei einem Commit, den Claude während dieser Sitzung erstellt hat

370* `terraform destroy`, `pulumi destroy`, `cdk destroy` oder `terragrunt destroy`, und Anwendung eines Plans, der Ressourcen zerstört370* `terraform destroy`, `pulumi destroy`, `cdk destroy` oder `terragrunt destroy`, und Anwendung eines Plans, der Ressourcen zerstört

371* Schreiben in einen Geheimnisspeicher oder Ändern von DNS-Einträgen oder TLS-Zertifikaten371* Schreiben in einen Geheimnisspeicher oder Ändern von DNS-Einträgen oder TLS-Zertifikaten

372* Zusammenführen eines Pull Requests, den kein Mensch genehmigt hat, Genehmigung von Claudes eigenem Pull Request oder Deaktivierung von CI-Überprüfungen372* Zusammenführen eines Pull Requests, den kein Mensch genehmigt hat, Genehmigung von Claudes eigenem Pull Request oder Deaktivierung von CI-Überprüfungen

373* Posten eines Kommentars, der selbst ein Befehl für Automatisierung ist, wie `atlantis apply` oder ein Bot's `/deploy` oder `/merge`373* Posten eines Kommentars, der selbst ein Befehl zur Automatisierung ist, wie `atlantis apply` oder ein Bot's `/deploy` oder `/merge`

374* Umschalten, Ramping oder Löschen eines Produktions-Feature-Flags374* Umschalten, Ramping oder Löschen eines Produktions-Feature-Flags

375* Anwendung von Infrastrukturänderungen auf einen geschützten IaC-Bereich oder Entwässerung und Entfernung von Cluster-Knoten375* Anwendung von Infrastrukturänderungen auf einen geschützten IaC-Bereich oder Entwässerung und Entfernung von Cluster-Knoten

376* Schreibvorgänge auf einen gemeinsamen Compute-Cluster, die über die benannte Ressource hinausgehen, wie ein Label-Selektor oder `--all`, der andere Benutzer's Jobs erfasst376* Schreibvorgänge in einen gemeinsamen Compute-Cluster, die über die benannte Ressource hinausgehen, wie ein Label-Selektor oder `--all`, das andere Benutzer's Jobs erfasst

377* Erstellen von Kubernetes-Ressourcen, die auf jedem Knoten ausgeführt werden oder Cluster-Verkehr abfangen, wie DaemonSets und Admission Webhooks377* Erstellen von Kubernetes-Ressourcen, die auf jedem Knoten laufen oder Cluster-Verkehr abfangen, wie DaemonSets und Admission Webhooks

378* Interaktive Shells oder Port-Forwards in ein sensibles Remote-Ziel378* Interaktive Shells oder Port-Forwards in ein sensibles Remote-Ziel

379* Öffnen eines Tunnels oder einer Reverse Shell, die einen lokalen Service vom öffentlichen Internet erreichbar macht379* Öffnen eines Tunnels oder einer Reverse Shell, die einen lokalen Service vom öffentlichen Internet erreichbar macht

380* Drucken einer Live-Anmeldedaten oder eines Tokens in das Transkript oder eine Datei380* Drucken eines Live-Credentials oder Tokens in das Transkript oder eine Datei

381* Zugriff auf einen Ort, der in Ihrer [Umgebung](/docs/de/auto-mode-config#define-trusted-infrastructure) als sensible Datenlocation aufgelistet ist, oder Kopieren von Daten daraus. Ab v2.1.198 blockiert dies auch das Senden von Daten von einem zu einer Zielgruppe, die der Eintrag ausschließt381* Zugriff auf einen Ort, der in Ihrer [Umgebung](/docs/de/auto-mode-config#define-trusted-infrastructure) als sensible Datenlocation aufgelistet ist, oder Kopieren von Daten daraus. Ab v2.1.198 blockiert dies auch das Senden von Daten von einem zu einer Zielgruppe, die der Eintrag ausschließt

382* Umleitung einer Paketinstallation um Ihre interne Paketregistrierung zu einer öffentlichen Registrierung. Ab v2.1.198 gilt dies auch, wenn Sie Claude in der Konversation mitgeteilt haben, dass eine interne Registrierung oder ein Mirror existiert, nicht nur wenn eine in Ihrer Umgebung aufgelistet ist382* Routing einer Paketinstallation um Ihre interne Paketregistrierung zu einer öffentlichen Registrierung. Ab v2.1.198 gilt dies auch, wenn Sie Claude in der Konversation von einer internen Registrierung oder einem Mirror erzählt haben, nicht nur wenn eine in Ihrer Umgebung aufgelistet ist

383* Ausführung eines Befehls mit einem Flag, das einen Sicherheitsschutz deaktiviert, wie `--insecure`383* Ausführung eines Befehls mit einem Flag, das einen Sicherheitsschutz deaktiviert, wie `--insecure`

384* Starten einer autonomen Agent-Schleife, die ohne menschliche Genehmigung oder einen Sandbox läuft, wie eine mit `--dangerously-skip-permissions` oder `--no-sandbox` gestartete. Ab v2.1.198 umfasst dies auch das Ausführen eines Drittanbieter-Agenten oder Eval-Harness mit deaktivierter Isolation und Pro-Aktion-Genehmigung, wie ein Runner, der mit `--yes-always` gestartet wurde384* Starten einer autonomen Agent-Schleife, die ohne menschliche Genehmigung oder Sandbox läuft, wie eine mit `--dangerously-skip-permissions` oder `--no-sandbox` gestartete. Ab v2.1.198 umfasst dies auch das Ausführen eines Drittanbieter-Agents oder Eval-Harness mit deaktivierter Isolation und Pro-Aktion-Genehmigung, wie ein mit `--yes-always` gestarteter Runner

385* [Claude in Chrome](/docs/de/chrome) Browser-Aktionen, die Seiteninhalte, Cookies oder Anmeldedaten off-origin senden könnten385* [Claude in Chrome](/docs/de/chrome) Browser-Aktionen, die Seiteninhalte, Cookies oder Anmeldedaten off-origin senden könnten

386 386 

387Mehrere dieser Kategorien hängen von [Umgebungs](/docs/de/auto-mode-config#define-trusted-infrastructure)-Einträgen ab, wie sensible Remote-Ziele und geschützte IaC-Bereiche, die Sie auf konkrete Namen eingrenzen können.387Mehrere dieser Kategorien hängen von [Umgebungs](/docs/de/auto-mode-config#define-trusted-infrastructure)-Einträgen ab, wie sensible Remote-Ziele und geschützte IaC-Bereiche, die Sie auf konkrete Namen eingrenzen können.

388 388 

389Claude Code v2.1.198 und später blockieren diese standardmäßig auch:389Claude Code v2.1.198 und später blockieren diese auch standardmäßig:

390 390 

391* Löschen von Dateien in `/tmp`, `$TMPDIR` oder einem anderen gemeinsamen Scratch- oder Cache-Verzeichnis nach Wildcard, Glob oder Altersfilter statt nach einem spezifischen benannten Pfad391* Löschen von Dateien in `/tmp`, `$TMPDIR` oder einem anderen gemeinsamen Scratch- oder Cache-Verzeichnis nach Wildcard, Glob oder Altersfilter anstelle eines spezifischen benannten Pfads

392* Einbeziehen sensibler Details in Inhalte, die gesendet, hochgeladen, veröffentlicht oder an andere Personen oder gemeinsame Systeme geschrieben werden, wenn Ihre eigene Nachricht diese Details nicht für diesen Empfänger autorisiert hat. PR- und Issue-Bodies, Commit-Nachrichten und Kommentare zählen als diese Art von ausgehendem Inhalt, wenn das Repository außerhalb der Vertrauensgrenze oder öffentlich ist, einschließlich der eigenen öffentlichen Repositorys Ihrer Organisation; interne Dateipfade, Code-Namen, Live-API-Antwortdaten wie E-Mails oder Kontobezeichner und Infrastruktur-Bezeichner zählen als sensible Details. Die PR-, Issue- und Commit-Nachricht-Scoping erfordert Claude Code v2.1.200 oder später. Live-Personendaten aus einer API-Antwort in einem PR- oder Issue-Body, wie eine E-Mail-Adresse, ein Konto- oder Organisationsbezeichner oder eine Nutzungsmetrik, erfordert, dass Sie diese Details und den Empfänger benennen, unabhängig von der Sichtbarkeit oder Vertrauensgrenze des Repositorys. Diese Überprüfung erfordert Claude Code v2.1.203 oder später392* Einbeziehen sensibler Details in Inhalte, die gesendet, hochgeladen, veröffentlicht oder an andere Personen oder gemeinsame Systeme geschrieben werden, wenn Ihre eigene Nachricht diese Details nicht für diesen Empfänger autorisiert hat. PR- und Issue-Texte, Commit-Nachrichten und Kommentare zählen als diese Art von ausgehendem Inhalt, wenn das Repository außerhalb der Vertrauensgrenze oder öffentlich ist, einschließlich der eigenen öffentlichen Repositorys Ihrer Organisation; interne Dateipfade, Codenamen, Live-API-Antwortdaten wie E-Mails oder Kontobezeichner und Infrastrukturbezeichner zählen als sensible Details. Die PR-, Issue- und Commit-Nachrichten-Scoping erfordert Claude Code v2.1.200 oder später. Live-Personendaten aus einer API-Antwort in einem PR- oder Issue-Text, wie eine E-Mail-Adresse, ein Konto- oder Organisationsbezeichner oder eine Nutzungsmetrik, erfordert, dass Sie diese Details und den Empfänger benennen, unabhängig von der Sichtbarkeit oder Vertrauensgrenze des Repositorys. Diese Überprüfung erfordert Claude Code v2.1.203 oder später

393* Senden von Tastenanschlägen an Claude Codes eigenen tmux-Bereich, um seine eigene Schnittstelle zu steuern, was der Klassifizierer als Claude behandelt, das seine eigenen Berechtigungen oder Aufsicht ändert393* Senden von Tastenanschlägen an Claude Codes eigenen tmux-Bereich, um seine eigene Schnittstelle zu steuern, was der Klassifizierer als Claude behandelt, das seine eigenen Berechtigungen oder Aufsicht ändert

394 394 

395Claude Code v2.1.200 und später blockieren diese standardmäßig auch:395Claude Code v2.1.200 und später blockieren diese auch standardmäßig:

396 396 

397* Auskommentieren, Löschen oder Force-Passing eines Tests oder einer Assertion, die Sicherheitsverhalten schützt, wie Authentifizierung, Zugriffskontrolle, Eingabevalidierung oder Sandboxing397* Auskommentieren, Löschen oder Force-Passing eines Tests oder einer Assertion, die Sicherheitsverhalten schützt, wie Authentifizierung, Zugriffskontrolle, Eingabevalidierung oder Sandboxing

398* Löschen oder Abbau einer zustandsbehafteten Ressource, die Claude nicht in der Sitzung erstellt hat, wenn keine spezifischere Löschregel gilt und Sie diese Ressource nicht benannt haben398* Löschen oder Abbau einer zustandsbehafteten Ressource, die Claude nicht in der Sitzung erstellt hat, wenn keine spezifischere Löschregel gilt und Sie diese Ressource nicht benannt haben

399* Umleitung einer API-Basis-URL, eines Proxy-Endpunkts, eines Webhook-Empfängers oder eines Registrierungs-Mirrors auf einen Drittanbieter-Host, der nicht zur Aufgabe passt, auch in Beispieldateien wie `.env.example`399* Umleitung einer API-Basis-URL, eines Proxy-Endpunkts, eines Webhook-Empfängers oder eines Registrierungsspiegels auf einen Drittanbieter-Host, der nicht zur Aufgabe passt, einschließlich in Beispieldateien wie `.env.example`

400* Änderung, wohin Pushes mit `git remote set-url` oder `git remote add` gehen, es sei denn, Sie haben den neuen Remote benannt400* Änderung, wohin Pushes mit `git remote set-url` oder `git remote add` gehen, es sei denn, Sie haben den neuen Remote benannt

401* Pushen von Geheimnissen oder persönlichen oder anvertrauten Daten in ein Repository, das bekannt ist, öffentlich zu sein, oder Pushen von vertraulichem Material dorthin, das nicht Teil der eigenen Arbeit dieses Repositorys ist. Ein Dotfiles-Repository's eigenes Thema ist die einzige Ausnahme für persönliche oder anvertraute Daten, und Inhalte aus einem privaten Repository, die eine öffentliche Oberfläche erreichen, werden auf die gleiche Weise blockiert; beide Verfeinerungen erfordern Claude Code v2.1.203 oder später. Vor v2.1.203 wurden persönliche Daten mit vertraulichem Material gruppiert und nur blockiert, wenn sie nicht Teil der eigenen Arbeit dieses Repositorys waren. Wenn die Sichtbarkeit eines Repositorys nicht etabliert ist, blockiert der Klassifizierer nicht allein darauf; er beurteilt den Inhalt stattdessen gegen die anderen Regeln401* Pushen von Geheimnissen oder persönlichen oder anvertrauten Daten in ein Repository, das bekannt ist, öffentlich zu sein, oder Pushen von vertraulichem Material dorthin, das nicht Teil der eigenen Arbeit dieses Repositorys ist. Das eigene Thema eines Dotfiles-Repositorys ist die eine Ausnahme für persönliche oder anvertraute Daten, und Inhalte aus einem privaten Repository, die eine öffentliche Oberfläche erreichen, werden auf die gleiche Weise blockiert; beide Verfeinerungen erfordern Claude Code v2.1.203 oder später. Vor v2.1.203 wurden persönliche Daten mit vertraulichem Material gruppiert und nur blockiert, wenn sie nicht Teil der eigenen Arbeit dieses Repositorys waren. Wenn die Sichtbarkeit eines Repositorys nicht etabliert ist, blockiert der Klassifizierer nicht allein darauf; er beurteilt den Inhalt stattdessen gegen die anderen Regeln

402* Öffnen eines Pull Requests gegen ein anderes Repository oder eine andere Organisation, Forking mit `gh repo fork` oder Pushen in ein Drittanbieter-Repository, es sei denn, Sie haben dieses externe Ziel benannt402* Öffnen eines Pull Requests gegen ein anderes Repository oder eine andere Organisation, Forking mit `gh repo fork` oder Pushen in ein Drittanbieter-Repository, es sei denn, Sie haben dieses externe Ziel benannt

403 403 

404Claude Code v2.1.203 und später blockieren diese standardmäßig auch:404Claude Code v2.1.203 und später blockieren diese auch standardmäßig:

405 405 

406* Inhalte aus einem sensiblen lokalen Speicher oder aus einer Datei, deren Name, Pfad oder Typ sie als sensibel markiert, die in einen Commit, einen Push, PR- oder Issue-Text, einen Gist oder Paste oder eine Paketveröffentlichung eingehen, es sei denn, Sie haben sowohl die Quelle als auch das Ziel benannt. Sitzungstranskripte und Gesprächsprotokolle, Anmeldedaten und Konfigurationspunkt-Ordner wie SSH-Schlüssel, Cloud-Anmeldedaten, Browser-Profile und Shell-Verlauf sowie Benutzer-Daten-Exporte zählen alle, und das Repository ist privat, löscht es nicht406* Inhalte aus einem sensiblen lokalen Speicher oder aus einer Datei, deren Name, Pfad oder Typ sie als sensibel kennzeichnet, die in einen Commit, einen Push, PR- oder Issue-Text, einen Gist oder Paste oder eine Paketveröffentlichung eingehen, es sei denn, Sie haben sowohl die Quelle als auch das Ziel benannt. Sitzungstranskripte und Gesprächsprotokolle, Anmeldedaten und Konfigurationspunkt-Ordner wie SSH-Schlüssel, Cloud-Anmeldedaten, Browser-Profile und Shell-Verlauf sowie Benutzer-Daten-Exporte zählen alle, und das Repository ist privat, löscht es nicht

407 407 

408Claude Code v2.1.205 und später blockieren diese standardmäßig auch:408Claude Code v2.1.205 und später blockieren diese auch standardmäßig:

409 409 

410* Schreiben in Claude Code-Sitzungstranskripte, die `.jsonl`-Verlaufsdateien unter `~/.claude/projects/` oder Ihrem konfigurierten Konfigurationsverzeichnis, ob direkt oder durch einen Shell-Befehl. Die Regel umfasst auch die Metadatenzeilen, die Claude Code an jeden Transkripteintrag für seine eigenen Überprüfungen anhängt. Das Lesen eines Transkripts wird nicht blockiert410* Schreiben in Claude Code-Sitzungstranskripte, die `.jsonl`-Verlaufsdateien unter `~/.claude/projects/` oder Ihrem konfigurierten Konfigurationsverzeichnis, ob direkt oder durch einen Shell-Befehl. Die Regel umfasst auch die Metadatenzeilen, die Claude Code für seine eigenen Überprüfungen an jeden Transkripteintrag anhängt. Das Lesen eines Transkripts wird nicht blockiert

411* Eine rekursive erzwungene Löschung wie `rm -rf "$VAR"` oder `Remove-Item -Recurse -Force $dir`, deren Ziel eine Shell-Variable ist, die nirgendwo in der Konversation zugewiesen ist, die der Klassifizierer sieht, oder ein Glob, der an einer verwurzelt ist. Der Wert kam nur aus früherer Befehlsausgabe, die der Klassifizierer nie erhält, daher kann der Klassifizierer das Löschziel nicht gegen die anderen Löschregeln überprüfen. Der Block wird gelöscht, wenn Sie den genauen gelöschten Pfad benennen, oder wenn Claude die Löschung mit dem aufgelösten Literalpfad, der in den Befehl geschrieben ist, erneut ausführt. Löschungen, deren Ziel der Klassifizierer auflösen kann, sind nicht betroffen.411* Ein rekursives erzwungenes Löschen wie `rm -rf "$VAR"` oder `Remove-Item -Recurse -Force $dir`, dessen Ziel eine Shell-Variable ist, die nirgendwo in der Konversation, die der Klassifizierer sieht, zugewiesen ist, oder ein Glob, das an einer solchen Variable verwurzelt ist. Der Wert kam nur aus früherer Befehlsausgabe, die der Klassifizierer nie erhält, daher kann der Klassifizierer das Löschziel nicht gegen die anderen Löschregeln überprüfen. Der Block wird gelöscht, wenn Sie den genauen gelöschten Pfad benennen, oder wenn Claude das Löschen mit dem aufgelösten Literalpfad, der in den Befehl geschrieben ist, erneut ausführt. Löschungen, deren Ziel der Klassifizierer auflösen kann, sind nicht betroffen.

412 412 

413 Ein Glob direkt unter der Variable, wie in `rm -rf "$VAR"/*`, ist stattdessen ein [kritischer Pfad](#critical-paths). `Remove-Item`-Ziele, die ein bloßes `*` sind oder auf `/*` oder `\*` enden, erreichen den Klassifizierer nie: Claude Code [lehnt sie direkt ab](#remove-item-in-powershell).413 Ein Glob direkt unter der Variable, wie in `rm -rf "$VAR"/*`, ist stattdessen ein [kritischer Pfad](#critical-paths). `Remove-Item`-Ziele, die ein bloßes `*` sind oder in `/*` oder `\*` enden, erreichen den Klassifizierer nie: Claude Code [verweigert sie direkt](#remove-item-in-powershell).

414 414 

415Claude Code v2.1.257 und später blockieren diese standardmäßig auch:415Claude Code v2.1.257 und später blockieren diese auch standardmäßig:

416 416 

417* Anfordern von Anmeldedaten vom Cloud-Instance-Metadaten-Endpunkt, wie `169.254.169.254`, oder explizites Authentifizieren eines Cloud-, Cluster- oder Registrierungsaufrufs mit der eigenen Service-Account oder Node-Identität der Maschine417* Anfordern von Anmeldedaten vom Cloud-Instance-Metadaten-Endpunkt, wie `169.254.169.254`, oder explizite Authentifizierung eines Cloud-, Cluster- oder Registrierungsaufrufs mit der eigenen Service-Account oder Node-Identität der Maschine

418* Erreichen eines öffentlichen Hosts durch eine Route, die nicht direkt ist, wie ein Tunnel, eine Reverse Shell oder eine Resolver- oder Proxy-Konfiguration, die umgeschrieben wurde, um außerhalb zu verweisen418* Erreichen eines öffentlichen Hosts durch eine Route, die nicht direkt ist, wie ein Tunnel, eine Reverse Shell oder eine Resolver- oder Proxy-Konfiguration, die umgeschrieben wurde, um außerhalb zu verweisen

419* Lesen von Anmeldedaten, die dem Host gehören, nicht zu Ihrer Aufgabe, wie Node-Zertifikate oder die Container-Registry-Auth des Knotens419* Lesen von Anmeldedaten, die dem Host gehören, anstatt zu Ihrer Aufgabe, wie Node-Zertifikate oder die Container-Registry-Auth des Knotens

420* Verbindung zu oder Scannen von Sibling-Containern, Pods oder VMs, die Claude nicht gestartet hat, oder dem Knoten unter dem Container420* Verbindung zu oder Scannen von Geschwister-Containern, Pods oder VMs, die Claude nicht gestartet hat, oder des Knotens unter dem Container

421 421 

422Wenn Claude Code irgendwo läuft, das eines davon erlauben soll, beschreiben Sie dieses Setup in einem [Host-Containment-Eintrag](/docs/de/auto-mode-config#define-trusted-infrastructure) in `autoMode.environment`.422Wenn Claude Code irgendwo läuft, das eines davon erlauben soll, beschreiben Sie dieses Setup in einem [Host-Containment-Eintrag](/docs/de/auto-mode-config#define-trusted-infrastructure) in `autoMode.environment`.

423 423 

424Claude Code v2.1.261 und später blockieren diese standardmäßig auch:424Claude Code v2.1.261 und später blockieren diese auch standardmäßig:

425 425 

426* Posten oder Schreiben eines Links zu einem öffentlichen Paste-, Diagramm- oder Datenaustausch-Service in einer Nachricht, PR- oder Issue-Text, einem Dokument oder überall dort, wo der Link geöffnet oder abgerufen wird, wenn die URL selbst den geteilten Inhalt trägt, es sei denn, Sie haben diesen Service benannt426* Posten oder Schreiben eines Links zu einem öffentlichen Paste-, Diagramm- oder Datenaustausch-Service in einer Nachricht, PR- oder Issue-Text, einem Dokument oder überall dort, wo der Link geöffnet oder abgerufen wird, wenn die URL selbst den geteilten Inhalt trägt, es sei denn, Sie haben diesen Service benannt

427 427 


431* Installation von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind431* Installation von Abhängigkeiten, die in Ihren Lock-Dateien oder Manifesten deklariert sind

432* Lesen von `.env` und Senden von Anmeldedaten an ihre passende API432* Lesen von `.env` und Senden von Anmeldedaten an ihre passende API

433* Schreibgeschützte HTTP-Anfragen433* Schreibgeschützte HTTP-Anfragen

434* Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, einschließlich des Standard-Branchs. Ein nicht-Standard-Branch, dessen Name ihn als Deploy- oder Veröffentlichungsziel markiert, wie `production` oder `gh-pages`, ist nicht abgedeckt: Der Klassifizierer beurteilt einen Push dort auf seine eigenen Bedingungen. Der Inhalt des Pushes wird immer noch gegen die anderen Regeln überprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Push-Befehle immer noch [wie geschrieben](/docs/de/permissions#bash-rule-limits) in jedem Modus blockieren, und der eigene Branch-Schutz des Remotes gilt immer noch. Vor v2.1.211 waren nur Pushes zum Branch, auf dem Sie starteten, Branches, die Claude erstellt hatte, und routinemäßige Pushes zum Standard-Branch standardmäßig erlaubt, und vor v2.1.203 war jeder direkte Push zum Standard-Branch blockiert434* Pushen zu jedem Branch des Repositorys, an dem Sie arbeiten, einschließlich des Standard-Branchs. Ein nicht-Standard-Branch, dessen Name ihn als Bereitstellungs- oder Veröffentlichungsziel kennzeichnet, wie `production` oder `gh-pages`, ist nicht abgedeckt: der Klassifizierer beurteilt einen Push dort auf seine eigenen Bedingungen. Der Inhalt des Pushs wird immer noch gegen die anderen Regeln überprüft, [`permissions.deny`-Regeln](/docs/de/permissions#manage-permissions) können Push-Befehle immer noch [wie geschrieben](/docs/de/permissions#bash-rule-limits) in jedem Modus blockieren, und der eigene Branch-Schutz des Remotes gilt immer noch. Vor v2.1.211 waren nur Pushes zum Branch, auf dem Sie gestartet haben, Branches, die Claude erstellt hat, und routinemäßige Pushes zum Standard-Branch standardmäßig erlaubt, und vor v2.1.203 war jeder direkte Push zum Standard-Branch blockiert

435* Löschen der genauen Jobs, die Claude früher in der gleichen Sitzung erstellt hat435* Löschen der genauen Jobs, die Claude früher in der gleichen Sitzung erstellt hat

436* Lesen, Überprüfen oder Schreiben von sicherheitsbezogenem Code, Konfigurationen und Bedrohungsmodellen als Teil Ihrer Aufgabe436* Lesen, Überprüfen oder Schreiben von sicherheitsbezogenem Code, Konfigurationen und Bedrohungsmodellen als Teil Ihrer Aufgabe

437* Nachrichten zwischen Agenten, die zusammen in der gleichen Multi-Agent-Sitzung arbeiten437* Nachrichten zwischen Agents, die zusammen in der gleichen Multi-Agent-Sitzung arbeiten

438* Senden von Daten an die vertrauenswürdigen Domänen, Buckets und Services, die Sie in [`environment`](/docs/de/auto-mode-config#define-trusted-infrastructure) auflisten. Dies umfasst nur Datenfluss, nicht destruktive oder Anmeldedaten-Operationen auf der gleichen Infrastruktur438* Senden von Daten an die vertrauenswürdigen Domains, Buckets und Services, die Sie in [`environment`](/docs/de/auto-mode-config#define-trusted-infrastructure) auflistet. Dies umfasst nur Datenfluss, nicht destruktive oder Anmeldedaten-Operationen auf der gleichen Infrastruktur

439* [Claude in Chrome](/docs/de/chrome) Navigation zu einer vertrauenswürdigen internen Domäne, localhost oder einer URL, die Sie benannt haben439* [Claude in Chrome](/docs/de/chrome) Navigation zu einer vertrauenswürdigen internen Domain, localhost oder einer URL, die Sie benannt haben

440 440 

441Sandbox-Befehle erhalten standardmäßig keinen Netzwerkzugriff. Claude benennt die Hosts, die ein Befehl auf dem Befehl selbst benötigt, der Klassifizierer überprüft sie mit dem Befehl, und eine genehmigte Liste öffnet diese Hosts nur für diesen einen Befehl. [Pro-Befehl erlaubte Domänen](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) behandelt, was eine Liste öffnen kann und nicht und was passiert, wenn ein Befehl nach einem nicht aufgelisteten Host greift.441Sandbox-Befehle erhalten standardmäßig keinen Netzwerkzugriff. Claude benennt die Hosts, die ein Befehl auf dem Befehl selbst benötigt, der Klassifizierer überprüft sie mit dem Befehl, und eine genehmigte Liste öffnet diese Hosts nur für diesen einen Befehl. [Pro-Befehl erlaubte Domains](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) behandelt, was eine Liste öffnen kann und nicht und was geschieht, wenn ein Befehl nach einem nicht aufgelisteten Host greift.

442 442 

443Führen Sie `claude auto-mode defaults` aus, um die vollständigen Regellisten als JSON zu drucken. Wenn routinemäßige Aktionen blockiert werden, kann ein Administrator vertrauenswürdige Repos, Buckets und Services über die `autoMode.environment`-Einstellung hinzufügen: siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config).443Führen Sie `claude auto-mode defaults` aus, um die vollständigen Regellisten als JSON zu drucken. Wenn routinemäßige Aktionen blockiert werden, kann ein Administrator vertrauenswürdige Repos, Buckets und Services über die `autoMode.environment`-Einstellung hinzufügen: siehe [Auto-Modus konfigurieren](/docs/de/auto-mode-config).

444 444 


448 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse448 Der erste Lesezugriff außerhalb der Arbeitsverzeichnisse

449</h3>449</h3>

450 450 

451Während [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) aus ist, laufen Dateileseoperationen ohne Aufforderung im Auto-Modus, einschließlich Lesezugriffe außerhalb der [Arbeitsverzeichnisse](/docs/de/permissions#working-directories). Das erste Mal, wenn Claude das Read-, Grep- oder Glob-Tool auf einen Pfad außerhalb davon verwendet, fragt Claude Code Sie, ob Sie diese Lesezugriffe weiterhin erlauben möchten.451Während [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) aus ist, laufen Dateileseoperationen ohne Aufforderung im Auto-Modus, einschließlich Lesezugriffe außerhalb der [Arbeitsverzeichnisse](/docs/de/permissions#working-directories). Das erste Mal, wenn Claude das Read-, Grep- oder Glob-Tool auf einen Pfad außerhalb davon verwendet, fragt Claude Code, ob dieser Lesezugriff erlaubt werden soll.

452 452 

453Die Aufforderung wird nicht in nicht-interaktiven `-p`-Läufen oder Hintergrund-Sitzungen angezeigt; Lesezugriffe dort laufen wie zuvor.453Die Aufforderung erscheint nicht in nicht-interaktiven `-p`-Läufen oder Hintergrund-Sitzungen; Lesezugriffe dort laufen wie zuvor.

454 454 

455Was auch immer Sie antworten, Claude arbeitet weiter:455Was auch immer Sie antworten, Claude arbeitet weiter:

456 456 

457* **Weiterhin erlauben**: Der Lesezugriff läuft, spätere Lesezugriffe außerhalb der Arbeitsverzeichnisse laufen wie zuvor, und Claude Code zeichnet Ihre Antwort auf, damit die Aufforderung nicht wieder angezeigt wird457* **Ja, und erlauben Sie weiterhin alle Lesezugriffe außerhalb der Arbeitsverzeichnisse**: Der Lesezugriff läuft, spätere Lesezugriffe außerhalb der Arbeitsverzeichnisse laufen wie zuvor, und Claude Code speichert Ihre Antwort, damit die Aufforderung nicht erneut erscheint

458* **Von jetzt an blockieren**: Der Lesezugriff wird verweigert, und Claude Code setzt [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) in Ihren Benutzereinstellungen auf `true`, was die Dateiwerkzeuge dazu bringt, solche Lesezugriffe in jeder späteren Sitzung und jedem Genehmigungsmodus zu verweigern. Um Claude später einen solchen Pfad lesen zu lassen, fügen Sie sein Verzeichnis mit `/add-dir` hinzu oder entfernen Sie die Einstellung.458* **Nein, und blockieren Sie Lesezugriffe außerhalb der Arbeitsverzeichnisse von jetzt an**: Der Lesezugriff wird verweigert, und Claude Code setzt [`permissions.blockReadsOutsideWorkingDirectories`](/docs/de/settings-reference#permissions-blockreadsoutsideworkingdirectories) in Ihren Benutzereinstellungen auf `true`, was die Dateiwerkzeuge dazu bringt, solche Lesezugriffe in jeder späteren Sitzung und jedem Berechtigungsmodus zu verweigern. Um Claude später einen solchen Pfad lesen zu lassen, fügen Sie sein Verzeichnis mit `/add-dir` hinzu oder entfernen Sie die Einstellung.

459* **Nächstes Mal erneut fragen**: Der Lesezugriff wird verweigert, und der nächste Lesezugriff außerhalb der Arbeitsverzeichnisse fordert erneut auf459* **Nein, und fragen Sie mich beim nächsten Mal erneut**: Der Lesezugriff wird verweigert, und der nächste Lesezugriff außerhalb der Arbeitsverzeichnisse fordert erneut auf

460* **Ja, aber nächstes Mal erneut fragen**: Der Lesezugriff läuft, nichts wird gespeichert, und der nächste Lesezugriff außerhalb der Arbeitsverzeichnisse fordert erneut auf460* **Ja, aber fragen Sie mich beim nächsten Mal erneut**: Der Lesezugriff läuft, nichts wird gespeichert, und der nächste Lesezugriff außerhalb der Arbeitsverzeichnisse fordert erneut auf

461 461 

462<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

463 Grenzen, die Sie in der Konversation angeben463 Grenzen, die Sie in der Konversation angeben

464</h3>464</h3>

465 465 

466Der Klassifizierer behandelt Grenzen, die Sie in der Konversation angeben, als Blocksignal. Wenn Sie Claude sagen „pushe nicht" oder „warte, bis ich überprüfe, bevor ich bereitstelle", blockiert der Klassifizierer passende Aktionen, auch wenn die Standardregeln sie erlauben würden. Eine Grenze bleibt in Kraft, bis Sie sie in einer späteren Nachricht aufheben. Claudes eigenes Urteil, dass eine Bedingung erfüllt wurde, hebt sie nicht auf.466Der Klassifizierer behandelt Grenzen, die Sie in der Konversation angeben, als Blocksignal. Wenn Sie Claude sagen „pushe nicht" oder „warte, bis ich überprüfe, bevor du bereitest", blockiert der Klassifizierer passende Aktionen, auch wenn die Standardregeln sie erlauben würden. Eine Grenze bleibt in Kraft, bis Sie sie in einer späteren Nachricht aufheben. Claudes eigenes Urteil, dass eine Bedingung erfüllt wurde, hebt sie nicht auf.

467 467 

468Grenzen werden nicht als Regeln gespeichert. Der Klassifizierer liest sie bei jeder Überprüfung aus dem Transkript erneut, daher kann eine Grenze verloren gehen, wenn [Kontext-Komprimierung](/docs/de/costs#reduce-token-usage) die Nachricht entfernt, die sie angegeben hat. Für eine harte Garantie fügen Sie stattdessen eine [Deny-Regel](/docs/de/permissions#permission-rule-syntax) hinzu.468Grenzen werden nicht als Regeln gespeichert. Der Klassifizierer liest sie bei jeder Überprüfung aus dem Transkript, daher kann eine Grenze verloren gehen, wenn [Kontext-Komprimierung](/docs/de/costs#reduce-token-usage) die Nachricht entfernt, die sie angegeben hat. Für eine harte Garantie fügen Sie stattdessen eine [Deny-Regel](/docs/de/permissions#permission-rule-syntax) hinzu.

469 469 

470<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

471 Genehmigungen, die Sie in der Konversation angeben471 Genehmigungen, die Sie in der Konversation angeben


473 473 

474Wenn Sie Claude sagen, dass eine blockierte Aktion erlaubt ist, liest der Klassifizierer das als Ihre Genehmigung und kann den Block löschen. Wie Sie es formuliert haben, entscheidet, ob die Aktion läuft und wie weit die Genehmigung reicht:474Wenn Sie Claude sagen, dass eine blockierte Aktion erlaubt ist, liest der Klassifizierer das als Ihre Genehmigung und kann den Block löschen. Wie Sie es formuliert haben, entscheidet, ob die Aktion läuft und wie weit die Genehmigung reicht:

475 475 

476* **Benennen Sie die Aktion und ihre Besonderheiten**: Ihre Nachricht muss die Aktion und das Spezifische benennen, das sie gefährlich macht, wie der Branch eines Force Push. Das Benennen des Verbs allein löscht nichts, daher lässt „Sie können force-pushen" den Block in Kraft.476* **Benennen Sie die Aktion und ihre Besonderheiten**: Ihre Nachricht muss die Aktion und das Spezifische benennen, das sie gefährlich macht, wie den Branch eines Force Push. Das Benennen des Verbs allein löscht nichts, daher lässt „du kannst force-pushen" den Block in Kraft.

477* **Erwarten Sie, dass es eine Aktion abdeckt**: Eine Genehmigung umfasst die destruktive Aktion, die Sie benannt haben, daher wird eine spätere Aktion wieder blockiert, es sei denn, Sie haben die Genehmigung als stehend gewährt. Um ein routinemäßiges Muster nicht mehr eine Aktion nach der anderen zu genehmigen, fügen Sie es zu [`autoMode.allow`](/docs/de/auto-mode-config#override-the-block-and-allow-rules) hinzu.477* **Erwarten Sie, dass es eine Aktion abdeckt**: Eine Genehmigung deckt die destruktive Aktion ab, die Sie benannt haben, daher wird eine spätere Aktion wieder blockiert, es sei denn, Sie haben die Genehmigung als stehend gewährt. Um ein routinemäßiges Muster eine Aktion nach der anderen zu genehmigen, fügen Sie es zu [`autoMode.allow`](/docs/de/auto-mode-config#override-the-block-and-allow-rules) hinzu.

478* **Einige Blöcke bleiben in Kraft**: [Die Vorrangordnung des Klassifizierers](/docs/de/auto-mode-config#override-the-block-and-allow-rules) legt fest, welche Blöcke Ihre Genehmigung erreichen kann. Um einen Schritt auszuführen, den sie nicht löschen wird, [verlassen Sie den Auto-Modus](#switch-permission-modes) und beantworten Sie die Genehmigungsaufforderung.478* **Einige Blöcke bleiben in Kraft**: [Die Präzedenzordnung des Klassifizierers](/docs/de/auto-mode-config#override-the-block-and-allow-rules) legt fest, welche Blöcke Ihre Genehmigung erreichen kann. Um einen Schritt auszuführen, den sie nicht löscht, [verlassen Sie den Auto-Modus](#switch-permission-modes) und beantworten Sie die Berechtigungsaufforderung.

479 479 

480<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

481 Wenn Auto-Modus zurückfällt481 Wenn Auto-Modus zurückfällt

482</h3>482</h3>

483 483 

484Wenn der Auto-Modus Ihre Sitzungsaktionen nicht genehmigen kann, hängt das, was passiert, vom Fall ab:484Wenn der Auto-Modus Ihre Sitzungsaktionen nicht genehmigen kann, hängt das, was geschieht, vom Fall ab:

485 485 

486* **Eine blockierte Aktion**: Claude Code zeigt eine Benachrichtigung und listet die Aktion in `/permissions` unter der Registerkarte **Kürzlich verweigert** auf, wo Sie `r` drücken können, um sie mit einer manuellen Genehmigung erneut zu versuchen.486* **Eine blockierte Aktion**: Claude Code zeigt eine Benachrichtigung und listet die Aktion in `/permissions` unter der Registerkarte **Kürzlich verweigert** auf, wo Sie `r` drücken können, um sie mit einer manuellen Genehmigung erneut zu versuchen.

487* **Wiederholte Blöcke**: Wenn der Klassifizierer eine Aktion 3 Mal hintereinander oder 20 Mal insgesamt blockiert, pausiert der Auto-Modus und Claude Code setzt das Auffordern fort. Das Genehmigen der aufgeforderten Aktion setzt den Auto-Modus fort. Siehe [Wiederholte-Block-Schwellwerte](#repeated-block-thresholds) für die Zählung der Blöcke.487* **Wiederholte Blöcke**: Wenn der Klassifizierer eine Aktion 3 Mal hintereinander oder insgesamt 20 Mal blockiert, pausiert der Auto-Modus und Claude Code setzt das Auffordern fort. Das Genehmigen der aufgeforderten Aktion setzt den Auto-Modus fort. Siehe [Wiederholte-Block-Schwellwerte](#repeated-block-thresholds) für die Zählung der Blöcke.

488* **Kein Urteil vom Klassifizierer**: Wenn eine Sicherheitsüberprüfung, die vom Auto-Modus getrennt ist, die Anfrage des Klassifizierers verweigert, oder die Antwort des Klassifizierers nicht geparst wird, verweigert Claude Code die Aktion ohne die Benachrichtigung oder den Eintrag **Kürzlich verweigert**. Siehe [Auto-Modus kann die Sicherheit einer Aktion nicht bestimmen](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für die Nachricht in jedem Fall und was zu tun ist.488* **Kein Urteil vom Klassifizierer**: Wenn eine Sicherheitsüberprüfung, die vom Auto-Modus getrennt ist, die Anfrage des Klassifizierers verweigert, oder die Antwort des Klassifizierers nicht geparst wird, verweigert Claude Code die Aktion ohne die Benachrichtigung oder den Eintrag **Kürzlich verweigert**. Siehe [Auto-Modus kann die Sicherheit einer Aktion nicht bestimmen](/docs/de/errors#auto-mode-cannot-determine-the-safety-of-an-action) für die Nachricht, die jeder Fall zeigt, und was zu tun ist.

489* **Kein Urteil vom Server**: Unter [serverseitiger Klassifizierer-Überprüfung](#server-side-classifier-review) verweigert Claude Code eine Aktion, für die der Server kein Urteil gibt, und stoppt die Runde nach zehn Antworten hintereinander ohne Urteil. Siehe [Der Server hat kein Sicherheitsurteil zurückgegeben](/docs/de/errors#the-server-returned-no-safety-verdict).489* **Kein Urteil vom Server**: Unter [serverseitiger Klassifiziererüberprüfung](#server-side-classifier-review) verweigert Claude Code eine Aktion, für die der Server kein Urteil gibt, und stoppt die Runde nach zehn Antworten hintereinander ohne Urteil. Siehe [Der Server hat kein Sicherheitsurteil zurückgegeben](/docs/de/errors#the-server-returned-no-safety-verdict).

490* **Ein Modusschalter während einer Überprüfung**: Wenn Sie Genehmigungsmodi wechseln, während eine Klassifizierer-Überprüfung ausstehend ist, verwirft Claude Code ein Urteil, das der neue Modus nicht angefordert hätte. Sie werden stattdessen aufgefordert, oder die Aktion wird im [`dontAsk`-Modus](#allow-only-pre-approved-tools-with-dontask-mode) automatisch verweigert.490* **Ein Modusschalter während einer Überprüfung**: Wenn Sie Berechtigungsmodi wechseln, während eine Klassifiziererüberprüfung ausstehend ist, verwirft Claude Code ein Urteil, das der neue Modus nicht angefordert hätte. Sie werden stattdessen aufgefordert, oder die Aktion wird im [`dontAsk`-Modus](#allow-only-pre-approved-tools-with-dontask-mode) automatisch verweigert.

491 491 

492<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

493 Wiederholte-Block-Schwellwerte493 Wiederholte-Block-Schwellwerte


500Wiederholte Blöcke bedeuten normalerweise, dass dem Klassifizierer Kontext über Ihre Infrastruktur fehlt. Verwenden Sie `/feedback`, um falsch positive zu melden, oder lassen Sie einen Administrator [vertrauenswürdige Infrastruktur konfigurieren](/docs/de/auto-mode-config).500Wiederholte Blöcke bedeuten normalerweise, dass dem Klassifizierer Kontext über Ihre Infrastruktur fehlt. Verwenden Sie `/feedback`, um falsch positive zu melden, oder lassen Sie einen Administrator [vertrauenswürdige Infrastruktur konfigurieren](/docs/de/auto-mode-config).

501 501 

502<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

503 Wie Auto-Modus Aktionen bewertet503 Wie Auto-Modus Aktionen evaluiert

504</h3>504</h3>

505 505 

506Die folgenden Abschnitte behandeln die Reihenfolge, in der Claude Code eine Aktion bewertet, wie der Klassifizierer Subagenten-Arbeit überprüft, und welche Klassifizierer-Aufrufe in Kosten und Latenz hinzufügen.506Die folgenden Abschnitte behandeln die Reihenfolge, in der Claude Code eine Aktion evaluiert, wie der Klassifizierer Subagent-Arbeit überprüft, und welche Klassifiziereraufrufe in Kosten und Latenz hinzufügen.

507 507 

508<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

509 509 

510<AccordionGroup>510<AccordionGroup>

511 <Accordion title="Wie der Klassifizierer Aktionen bewertet">511 <Accordion title="Wie der Klassifizierer Aktionen evaluiert">

512 Jede Aktion durchläuft eine feste Entscheidungsreihenfolge. Der erste passende Schritt gewinnt:512 Jede Aktion durchläuft eine feste Entscheidungsreihenfolge. Der erste passende Schritt gewinnt:

513 513 

514 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort aufgelöst, mit diesen Ausnahmen:514 1. Aktionen, die Ihren [Allow-, Ask- oder Deny-Regeln](/docs/de/permissions#manage-permissions) entsprechen, werden sofort aufgelöst, mit diesen Ausnahmen:

515 * Schreibvorgänge zu [geschützten Pfaden](#protected-paths) werden zum Klassifizierer weitergeleitet, auch wenn eine Allow-Regel passt515 * Schreibvorgänge zu [geschützten Pfaden](#protected-paths) werden zum Klassifizierer weitergeleitet, auch wenn eine Allow-Regel passt

516 * Keine Allow-Regel genehmigt `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen516 * Keine Allow-Regel genehmigt `rm`- und `rmdir`-Löschungen, die auf einen [kritischen Pfad](#critical-paths) abzielen

517 * MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) markiert sind, fordern Sie direkt auf, auch wenn eine Allow-Regel passt, und ebenso Connector-Tools [die Ihre Organisation auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools) in Sitzungen, in denen diese Einstellung Claude Code erreicht517 * MCP-Tools, die mit [`requiresUserInteraction`](/docs/de/mcp#require-approval-for-a-specific-tool) gekennzeichnet sind, fordern Sie direkt auf, auch wenn eine Allow-Regel passt, und das tun auch Connector-Tools, [die Ihre Organisation in Sitzungen auf `ask` gesetzt hat](/docs/de/mcp#organization-controls-on-connector-tools), in denen diese Einstellung Claude Code erreicht

518 * Ein Shell-Befehl, der [pro-Befehl erlaubte Domänen](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) trägt, wird auch zum Klassifizierer weitergeleitet, auch wenn eine Allow-Regel passt, weil eine Regel den Befehl genehmigt, nicht seine Hosts518 * Ein Shell-Befehl, der [pro-Befehl erlaubte Domains](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) trägt, wird auch zum Klassifizierer weitergeleitet, auch wenn eine Allow-Regel passt, weil eine Regel den Befehl genehmigt, nicht seine Hosts

519 * Ask-Regeln, die auf Befehlsinhalte abgleichen, wie `Bash(git push *)`, fallen auf eine Genehmigungsaufforderung zurück519 * Ask-Regeln, die auf Befehlsinhalte passen, wie `Bash(git push *)`, fallen auf eine Berechtigungsaufforderung zurück

520 * Ein Schreibvorgang, den die [Symlink-Überprüfung](/docs/de/permissions#symlinks) zu einem geschützten Pfad auflöst, fordert Sie auf, wenn der Pfad, den Claude angefordert hat, nicht selbst geschützt ist520 * Ein Schreibvorgang, den die [Symlink-Überprüfung](/docs/de/permissions#symlinks) zu einem geschützten Pfad auflöst, fordert Sie auf, wenn der Pfad, den Claude angefordert hat, nicht selbst geschützt ist

521 2. Schreibgeschützte Aktionen und Dateieditierungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgänge zu [geschützten Pfaden](#protected-paths) und [dem ersten Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), die Sie auffordern521 2. Schreibgeschützte Aktionen und Dateibearbeitungen in Ihrem Arbeitsverzeichnis werden automatisch genehmigt, außer Schreibvorgänge zu [geschützten Pfaden](#protected-paths) und [der erste Lesezugriff außerhalb der Arbeitsverzeichnisse](#first-read-outside-the-working-directories), die Sie auffordern

522 * In einer Sitzung mit [serverseitiger Klassifizierer-Überprüfung](#server-side-classifier-review) warten schreibgeschützte und [Sandbox](/docs/de/sandboxing#sandbox-modes)-Shell-Befehle auf diese Überprüfung und werden blockiert, wenn sie diese kennzeichnet522 * In einer Sitzung mit [serverseitiger Klassifiziererüberprüfung](#server-side-classifier-review) warten schreibgeschützte und [Sandbox-](/docs/de/sandboxing#sandbox-modes) Shell-Befehle auf diese Überprüfung und werden blockiert, wenn sie sie kennzeichnet

523 * Ein Schreibvorgang in Ihrem Arbeitsverzeichnis, den die [Symlink-Überprüfung](/docs/de/permissions#symlinks) zu einem Ort außerhalb davon auflöst, fordert Sie auf523 * Ein Schreibvorgang in Ihrem Arbeitsverzeichnis, den die [Symlink-Überprüfung](/docs/de/permissions#symlinks) zu einem Ort außerhalb davon auflöst, fordert Sie auf

524 3. Alles andere geht zum Klassifizierer, außer [kritischen Pfad-Löschungen](#critical-paths) unter ihrer Standard-Behandlung. Die Connector-Tools und `requiresUserInteraction` MCP-Tools, die Sie direkt in Schritt 1 auffordern, erreichen den Klassifizierer nie, daher wird weder eine von der Organisation erforderliche Genehmigung noch ein Zustimmungsschritt automatisch genehmigt524 3. Alles andere geht zum Klassifizierer, außer [kritischen Pfad-Löschungen](#critical-paths) unter ihrer Standardbehandlung. Die Connector-Tools und `requiresUserInteraction` MCP-Tools, die Sie direkt in Schritt 1 auffordern, erreichen den Klassifizierer auch nie, daher wird weder eine von der Organisation erforderliche Genehmigung noch ein Zustimmungsschritt automatisch genehmigt

525 4. Wenn der Klassifizierer blockiert, erhält Claude den Grund. In den meisten Sitzungen benennt der Grund die Regel, die der Klassifizierer abgeglichen hat, wie `[Data Exfiltration]`, statt eine schriftliche Erklärung zu geben; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)525 4. Wenn der Klassifizierer blockiert, erhält Claude den Grund. In den meisten Sitzungen benennt der Grund die Regel, die der Klassifizierer passte, wie `[Data Exfiltration]`, anstatt eine schriftliche Erklärung zu geben; siehe [Verweigerungen überprüfen](/docs/de/auto-mode-config#review-denials)

526 

527 Ein [Mod](/docs/de/plugins/mods/overview), den Sie installieren, das `tool.check` hakt, kann eine Aktion vor Schritt 3 genehmigen, und der Klassifizierer überprüft eine Aktion nicht, die der Mod genehmigt. Siehe [Berechtigungen mit Hooks erweitern](/docs/de/permissions#extend-permissions-with-hooks).

526 528 

527 Beim Eintritt in den Auto-Modus werden breite Allow-Regeln, die willkürliche Code-Ausführung gewähren, gelöscht:529 Beim Eintritt in den Auto-Modus werden breite Allow-Regeln, die willkürliche Code-Ausführung gewähren, gelöscht:

528 530 

529 * Pauschal `Bash(*)` oder `PowerShell(*)`531 * Pauschal `Bash(*)` oder `PowerShell(*)`

530 * Wildcard-Interpreter wie `Bash(python*)`532 * Wildcard-Interpreter wie `Bash(python*)`

531 * Paketmanager-Ausführungsbefehle533 * Paketmanager-Run-Befehle

532 * `Agent` Allow-Regeln534 * `Agent` Allow-Regeln

533 * [`Monitor`](/docs/de/tools-reference#monitor-tool) Allow-Regeln, weil Claude Code Monitor-Befehle durch die Shell ausführt535 * [`Monitor`](/docs/de/tools-reference#monitor-tool) Allow-Regeln, weil Claude Code Monitor-Befehle durch die Shell ausführt

534 536 

535 Enge Regeln wie `Bash(npm test)` bleiben in Kraft. Claude Code stellt die gelöschten Regeln wieder her, wenn Sie den Auto-Modus verlassen. Vor v2.1.236 ließ Claude Code `Monitor` Allow-Regeln im Auto-Modus in Kraft, daher genehmigte eine Regel, die das ganze Tool abglich, Monitor-Befehle ohne Klassifizierer-Überprüfung.537 Enge Regeln wie `Bash(npm test)` bleiben in Kraft. Claude Code stellt die gelöschten Regeln wieder her, wenn Sie den Auto-Modus verlassen. Vor v2.1.236 ließ Claude Code `Monitor` Allow-Regeln im Auto-Modus in Kraft, daher genehmigte eine Regel, die das ganze Tool passte, Monitor-Befehle ohne Klassifiziererüberprüfung.

536 538 

537 Claude Code führt auch `git status` selbst vor einem Befehl aus, der nicht committete Arbeit verwerfen würde, wie `git reset --hard` oder `rm -rf`, und zeigt dem Klassifizierer, ob gestaffelte, geänderte oder nicht verfolgte Arbeit vorhanden ist. Claude Code meldet nicht verfolgte Dateien in dieser Überprüfung, auch wenn die Git-Konfiguration des Repositorys `status.showUntrackedFiles=no` setzt.539 Claude Code führt auch `git status` selbst vor einem Befehl aus, der nicht committete Arbeit verwerfen würde, wie `git reset --hard` oder `rm -rf`, und zeigt dem Klassifizierer, ob gestaffelte, geänderte oder nicht verfolgte Arbeit vorhanden ist. Claude Code meldet nicht verfolgte Dateien in dieser Überprüfung, auch wenn die Git-Konfiguration des Repositorys `status.showUntrackedFiles=no` setzt.

538 540 

539 In den Klassifizierer-Anfragen, die Claude Code selbst sendet, sieht der Klassifizierer Benutzernachrichten, Tool-Aufrufe außer schreibgeschützten Lookups wie Dateileseoperationen und Suchen, und Ihren CLAUDE.md-Inhalt. Tool-Ergebnisse werden aus diesen Anfragen entfernt, daher kann feindselige Inhalte in einer Datei oder Webseite den Klassifizierer nicht direkt manipulieren.541 In den Klassifiziereranfragen, die Claude Code selbst sendet, sieht der Klassifizierer Benutzernachrichten, Werkzeugaufrufe außer schreibgeschützten Lookups wie Dateileseoperationen und Suchen, und Ihren CLAUDE.md-Inhalt. Werkzeugergebnisse werden aus diesen Anfragen entfernt, daher kann feindselige Inhalte in einer Datei oder Webseite den Klassifizierer nicht direkt manipulieren.

540 542 

541 Sie können einen Aufruf's Ergebnis mit einem [PostToolUse Hook's `classifierContext`-Feld](/docs/de/hooks#annotate-a-result-for-the-auto-mode-classifier) annotieren, das der Klassifizierer als von der Anwendung bereitgestellter Kontext liest. Das Feld erfordert Claude Code v2.1.236 oder später.543 Sie können einen Aufruf's Ergebnis mit einem [PostToolUse Hook's `classifierContext`-Feld](/docs/de/hooks#annotate-a-result-for-the-auto-mode-classifier) annotieren, das der Klassifizierer als von der Anwendung bereitgestellter Kontext liest. Das Feld erfordert Claude Code v2.1.236 oder später.

542 544 

543 Eine separate serverseitige Sonde scannt eingehende Tool-Ergebnisse und kennzeichnet verdächtige Inhalte, bevor Claude sie liest. Für mehr darüber, wie diese Schichten zusammenarbeiten, siehe die [Auto-Modus-Ankündigung](https://claude.com/blog/auto-mode) und den [Engineering Deep Dive](https://www.anthropic.com/engineering/claude-code-auto-mode).545 Eine separate serverseitige Sonde scannt eingehende Werkzeugergebnisse und kennzeichnet verdächtige Inhalte, bevor Claude sie liest. Für mehr darüber, wie diese Schichten zusammenarbeiten, siehe die [Auto-Modus-Ankündigung](https://claude.com/blog/auto-mode) und den [Engineering Deep Dive](https://www.anthropic.com/engineering/claude-code-auto-mode).

544 </Accordion>546 </Accordion>

545 547 

546 <Accordion title="Wie Auto-Modus Subagenten handhabt">548 <Accordion title="Wie Auto-Modus Subagents handhabt">

547 Der Klassifizierer überprüft [Subagenten](/docs/de/sub-agents)-Arbeit an drei Punkten:549 Der Klassifizierer überprüft [Subagent](/docs/de/sub-agents)-Arbeit an drei Punkten:

548 550 

549 1. Bevor ein Subagent startet, wird die delegierte Aufgabenbeschreibung bewertet, daher wird eine gefährlich aussehende Aufgabe beim Spawn blockiert.551 1. Bevor ein Subagent startet, wird die delegierte Aufgabenbeschreibung evaluiert, daher wird eine gefährlich aussehende Aufgabe beim Spawn blockiert.

550 2. Während der Subagent läuft, geht jede seiner Aktionen durch die gleiche [Entscheidungsreihenfolge](#how-the-classifier-evaluates-actions) wie in der übergeordneten Sitzung, mit den gleichen Block- und Allow-Regeln. Jeder `permissionMode` in der Frontmatter des Subagenten wird ignoriert.552 2. Während der Subagent läuft, durchläuft jede seiner Aktionen die gleiche [Entscheidungsreihenfolge](#how-the-classifier-evaluates-actions) wie in der übergeordneten Sitzung, mit den gleichen Block- und Allow-Regeln. Jeder `permissionMode` in der Frontmatter des Subagents wird ignoriert.

551 3. Wenn der Subagent fertig ist, überprüft der Klassifizierer seine Arbeit und seinen Abschlussbericht, bevor die übergeordnete Sitzung den Bericht liest. Wenn der Klassifizierer die Arbeit oder den Bericht des Subagenten kennzeichnet, oder eine separate API-Sicherheitsüberprüfung die Überprüfung verweigert, wird der Bericht immer noch geliefert, vorangestellt mit einer Sicherheitswarnung. Wenn der Klassifizierer für die Überprüfung nicht verfügbar ist, kommt der Bericht mit einer Notiz an, um die Arbeit des Subagenten zu überprüfen, bevor Sie darauf handeln.553 3. Wenn der Subagent fertig ist, überprüft der Klassifizierer seine Arbeit und seinen Abschlussbericht, bevor die übergeordnete Sitzung den Bericht liest. Wenn der Klassifizierer die Arbeit oder den Bericht des Subagents kennzeichnet, oder eine separate API-Sicherheitsüberprüfung die Überprüfung verweigert, wird der Bericht immer noch geliefert, eingeleitet mit einer Sicherheitswarnung. Wenn der Klassifizierer für die Überprüfung nicht verfügbar ist, kommt der Bericht mit einem Hinweis an, die Arbeit des Subagents zu überprüfen, bevor Sie danach handeln.

552 </Accordion>554 </Accordion>

553 555 

554 <Accordion title="Kosten und Latenz">556 <Accordion title="Kosten und Latenz">

555 Der Klassifizierer läuft standardmäßig auf Claude Sonnet 5 statt auf Ihrer `/model`-Auswahl. Ein Klassifizierer-Modell, das Anthropic serverseitig konfiguriert, hat Vorrang vor diesem Standard. Wenn das Modell Ihrer Sitzung Claude Sonnet 4.6 ist, oder wenn [`availableModels`](/docs/de/model-config#restrict-model-selection) Sonnet 5 ausschließt, läuft der Klassifizierer stattdessen auf dem Modell Ihrer Sitzung oder auf einem Opus-Modell, wenn die Sitzung auf einem [Fable-Modell](/docs/de/model-config#work-with-fable) läuft; bei Anbietern außer der Anthropic API ist dieses Opus-Fallback das Standard-Opus-Modell des Anbieters.557 Der Klassifizierer läuft standardmäßig auf Claude Sonnet 5 anstelle Ihrer `/model`-Auswahl. Ein Klassifizierermodell, das Anthropic serverseitig konfiguriert, hat Vorrang vor diesem Standard. Wenn das Modell Ihrer Sitzung Claude Sonnet 4.6 ist, oder wenn [`availableModels`](/docs/de/model-config#restrict-model-selection) Sonnet 5 ausschließt, läuft der Klassifizierer stattdessen auf dem Modell Ihrer Sitzung oder auf einem Opus-Modell, wenn die Sitzung auf einem [Fable-Modell](/docs/de/model-config#work-with-fable) läuft; bei Anbietern außer der Anthropic API ist dieses Opus-Fallback das Standard-Opus-Modell des Anbieters.

556 558 

557 Die erste Auto-Modus-Anfrage Ihrer Sitzung validiert den Sonnet 5-Standard: Wenn die Anfrage erfolgreich ist, bleibt Sonnet 5 das Klassifizierer-Modell Ihrer Sitzung, und wenn sie fehlschlägt, weil das Modell nicht verfügbar ist, verwendet die Sitzung stattdessen das Fallback. Nachdem diese Validierung sich beruhigt hat, ändert sich das Klassifizierer-Modell nicht für die Sitzung.559 Die erste Auto-Modus-Anfrage Ihrer Sitzung validiert den Sonnet 5-Standard: Wenn die Anfrage erfolgreich ist, bleibt Sonnet 5 das Klassifizierermodell Ihrer Sitzung, und wenn sie fehlschlägt, weil das Modell nicht verfügbar ist, verwendet die Sitzung stattdessen das Fallback.

558 560 

559 Bei Enterprise-Plänen und Konten, die die Claude API verwenden, [Claude Platform on AWS](/docs/de/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry, zählen Klassifizierer-Aufrufe zu Ihrer Token-Nutzung. Jede Überprüfung sendet einen Teil des Transkripts plus die ausstehende Aktion, was eine Hin- und Rückfahrt vor der Ausführung hinzufügt. Lesezugriffe und Arbeitsverzeichnis-Editierungen außerhalb geschützter Pfade überspringen den Klassifizierer, daher kommt der Overhead hauptsächlich von Shell-Befehlen und Netzwerkoperationen. Wo der Server die Aktionen als Teil der Modellabfragen der Sitzung überprüft, gibt es keine separaten Klassifizierer-Aufrufe zu zählen; siehe [Serverseitige Klassifizierer-Überprüfung](#server-side-classifier-review).561 Bei Enterprise-Plänen und bei Konten, die die Claude API verwenden, [Claude Platform auf AWS](/docs/de/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry, zählen Klassifiziereraufrufe zu Ihrer Token-Nutzung. Jede Überprüfung sendet einen Teil des Transkripts plus die ausstehende Aktion, was eine Hin- und Rückfahrt vor der Ausführung hinzufügt. Lesezugriffe und Arbeitsverzeichnis-Bearbeitungen außerhalb geschützter Pfade überspringen den Klassifizierer, daher kommt der Overhead hauptsächlich von Shell-Befehlen und Netzwerkoperationen. Wenn der Server die Aktionen als Teil der Modellanfragen der Sitzung überprüft, gibt es keine separaten Klassifiziereraufrufe zu zählen; siehe [Serverseitige Klassifiziererüberprüfung](#server-side-classifier-review).

560 562 

561 Sandbox-Netzwerkzugriff fügt keine Pro-Verbindungs-Klassifizierer-Anfragen hinzu. Der Klassifizierer beurteilt [die Hosts, die ein Befehl benennt](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) zusammen mit dem Befehl in einer Überprüfung, und Claude Code überprüft jede Verbindung gegen die genehmigte Liste, ohne den Klassifizierer erneut aufzurufen.563 Sandbox-Netzwerkzugriff fügt keine Pro-Verbindungs-Klassifiziereranfragen hinzu. Der Klassifizierer beurteilt [die Hosts, die ein Befehl benennt](/docs/de/sandboxing#per-command-allowed-domains-in-auto-mode) zusammen mit dem Befehl in einer Überprüfung, und Claude Code überprüft jede Verbindung gegen die genehmigte Liste, ohne den Klassifizierer erneut aufzurufen.

562 </Accordion>564 </Accordion>

563</AccordionGroup>565</AccordionGroup>

564 566 


667* `.yarn`669* `.yarn`

668* `.mvn`670* `.mvn`

669* `.claude`, außer `.claude/worktrees`, wo Claude seine eigenen Git-Worktrees speichert671* `.claude`, außer `.claude/worktrees`, wo Claude seine eigenen Git-Worktrees speichert

672* Ein Verzeichnis, das Sie mit [`--plugin-dir`](/docs/de/plugins/mods/create#change-a-mod-with-claude) geladen haben, da Claude Code den Code eines Mods von dort aus neu lädt und ausführt, wenn sich eine Datei ändert

670 673 

671Geschützte Dateien:674Geschützte Dateien:

672 675 

permissions.md +14 −3

Details

600 600 

601[Claude Code Hooks](/docs/de/hooks-guide) ermöglichen es Ihnen, benutzerdefinierte Shell-Befehle zu registrieren, die Berechtigungen zur Laufzeit evaluieren. Wenn Claude Code einen Werkzeugaufruf tätigt, werden PreToolUse-Hooks vor dem Berechtigungssystem ausgeführt, für jedes Werkzeug außer [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior). Die Hook-Ausgabe kann den Werkzeugaufruf verweigern, eine Aufforderung erzwingen oder die Aufforderung überspringen, um den Aufruf fortzufahren.601[Claude Code Hooks](/docs/de/hooks-guide) ermöglichen es Ihnen, benutzerdefinierte Shell-Befehle zu registrieren, die Berechtigungen zur Laufzeit evaluieren. Wenn Claude Code einen Werkzeugaufruf tätigt, werden PreToolUse-Hooks vor dem Berechtigungssystem ausgeführt, für jedes Werkzeug außer [`EndConversation`](/docs/de/tools-reference#endconversation-tool-behavior). Die Hook-Ausgabe kann den Werkzeugaufruf verweigern, eine Aufforderung erzwingen oder die Aufforderung überspringen, um den Aufruf fortzufahren.

602 602 

603Hook-Entscheidungen umgehen keine Berechtigungsregeln. Claude Code evaluiert Deny- und Ask-Regeln unabhängig davon, was ein PreToolUse-Hook zurückgibt: Eine übereinstimmende Deny-Regel blockiert den Aufruf, und eine übereinstimmende Ask-Regel fordert immer noch auf, selbst wenn der Hook `"allow"` oder `"ask"` zurückgegeben hat. Dies bewahrt die Deny-First-Priorität, die in [Berechtigungen verwalten](#manage-permissions) beschrieben ist, einschließlich Deny-Regeln, die in verwalteten Einstellungen festgelegt sind.603PreToolUse-Hook-Entscheidungen umgehen keine Berechtigungsregeln. Claude Code evaluiert Deny- und Ask-Regeln unabhängig davon, was ein PreToolUse-Hook zurückgibt: Eine übereinstimmende Deny-Regel blockiert den Aufruf, und eine übereinstimmende Ask-Regel fordert immer noch auf, selbst wenn der Hook `"allow"` oder `"ask"` zurückgegeben hat. Dies bewahrt die Deny-First-Priorität, die in [Berechtigungen verwalten](#manage-permissions) beschrieben ist, einschließlich Deny-Regeln, die in verwalteten Einstellungen festgelegt sind.

604 

605Diese Priorität gilt für Hooks in Einstellungsdateien und in der `hooks/hooks.json` eines Plugins. Ein [Mod](/docs/de/plugins/mods/overview), den Sie installieren und der `tool.check` hooked, antwortet, nachdem die Regeln und die `PreToolUse`-Hooks entschieden haben, und seine Antwort kann deren Antwort ersetzen:

606 

607* **Ask-Regeln**: Der Mod kann einen Aufruf genehmigen, für den eine Ask-Regel eine Aufforderung anzeigen würde

608* **Eine Blockierung durch einen `PreToolUse`-Hook**: Der Mod kann den Aufruf genehmigen, es sei denn, der Hook befindet sich in verwalteten Einstellungen

609* **Der Auto-Modus-Klassifizierer**: Im [Auto-Modus](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) wird ein Aufruf, den der Mod genehmigt, ohne eine Klassifizierer-Überprüfung ausgeführt

610* **Deny-Regeln**: Auf einem Computer mit verwalteten Einstellungen oder wenn Sie mit einem Team- oder Enterprise-Plan angemeldet sind, haben Deny-Regeln standardmäßig Vorrang vor dem Mod, und Ihre Organisation kann dies ändern. Überall sonst kann der Mod einen Aufruf genehmigen, den eine Deny-Regel ablehnt.

611 

612Siehe [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.

604 613 

605MCP-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.614MCP-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.

606 615 


718 727 

719Das Gleiche gilt für Einstellungsbereiche: Wenn Benutzereinstellungen eine Berechtigung zulassen und Projekteinstellungen sie verweigern, blockiert die Deny-Regel sie. Das Gegenteil ist auch wahr: eine Deny-Regel auf Benutzerebene blockiert eine Allow-Regel auf Projektebene, da Deny-Regeln aus jedem Bereich vor Allow-Regeln ausgewertet werden.728Das Gleiche gilt für Einstellungsbereiche: Wenn Benutzereinstellungen eine Berechtigung zulassen und Projekteinstellungen sie verweigern, blockiert die Deny-Regel sie. Das Gegenteil ist auch wahr: eine Deny-Regel auf Benutzerebene blockiert eine Allow-Regel auf Projektebene, da Deny-Regeln aus jedem Bereich vor Allow-Regeln ausgewertet werden.

720 729 

730Diese Priorität gilt zwischen Einstellungsdateien und Befehlszeilenargumenten. Ob eine Deny-Regel gegenüber einem [mod](/docs/de/plugins/mods/overview), das Sie installieren, gilt, siehe [Berechtigungen mit Hooks erweitern](#extend-permissions-with-hooks).

731 

721Embedding-Hosts können zusätzliche verwaltete Richtlinien über die SDK-Option `managedSettings` bereitstellen, einschließlich Berechtigungsallow-Regeln, es sei denn, der Administrator setzt die `allowManaged*Only`-Sperren; [Richtlinie an Claude Desktop-Sitzungen bereitstellen](/docs/de/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) behandelt, wann die Embedder-Richtlinie überhaupt angewendet wird.732Embedding-Hosts können zusätzliche verwaltete Richtlinien über die SDK-Option `managedSettings` bereitstellen, einschließlich Berechtigungsallow-Regeln, es sei denn, der Administrator setzt die `allowManaged*Only`-Sperren; [Richtlinie an Claude Desktop-Sitzungen bereitstellen](/docs/de/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) behandelt, wann die Embedder-Richtlinie überhaupt angewendet wird.

722 733 

723<h2 id="project-allow-rules-and-workspace-trust">734<h2 id="project-allow-rules-and-workspace-trust">


764| [Hooks](/docs/de/hooks) in Einstellungsdateien, der [`env`](/docs/de/settings-reference#env)-Block und Hilfsbefehle wie [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper), und die [Hooks](/docs/de/hooks#hooks-in-skills-and-agents) und [`allowed-tools`](/docs/de/skills#pre-approve-tools-for-a-skill) eines Projektskills | Verwendet | Verwendet. Workspace-Vertrauen gatet nie die `allowed-tools` eines Skills in einer Sitzung |775| [Hooks](/docs/de/hooks) in Einstellungsdateien, der [`env`](/docs/de/settings-reference#env)-Block und Hilfsbefehle wie [`apiKeyHelper`](/docs/de/settings-reference#apikeyhelper), und die [Hooks](/docs/de/hooks#hooks-in-skills-and-agents) und [`allowed-tools`](/docs/de/skills#pre-approve-tools-for-a-skill) eines Projektskills | Verwendet | Verwendet. Workspace-Vertrauen gatet nie die `allowed-tools` eines Skills in einer Sitzung |

765| `permissions.allow`-Regeln und `additionalDirectories` in `.claude/settings.json` | Nicht verwendet, bis Sie den Vertrauensdialog akzeptieren, der sie erneut auflistet | Nicht verwendet. Claude Code gibt eine [`this workspace has not been trusted`](/docs/de/errors#workspace-has-not-been-trusted)-Warnung auf stderr aus |776| `permissions.allow`-Regeln und `additionalDirectories` in `.claude/settings.json` | Nicht verwendet, bis Sie den Vertrauensdialog akzeptieren, der sie erneut auflistet | Nicht verwendet. Claude Code gibt eine [`this workspace has not been trusted`](/docs/de/errors#workspace-has-not-been-trusted)-Warnung auf stderr aus |

766| Frontmatter-Hooks in einem Projekt-[Subagent](/docs/de/sub-agents#hooks-in-subagent-frontmatter), einem Projekt-[`@skills-dir`-Plugin](/docs/de/plugins/loading#plugins-shared-through-a-repository) und [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces)-Einträgen aus dem Repository oder einem `--add-dir`-Verzeichnis | Nicht verwendet, und es wird kein Dialog angeboten | Nicht verwendet |777| Frontmatter-Hooks in einem Projekt-[Subagent](/docs/de/sub-agents#hooks-in-subagent-frontmatter), einem Projekt-[`@skills-dir`-Plugin](/docs/de/plugins/loading#plugins-shared-through-a-repository) und [`extraKnownMarketplaces`](/docs/de/settings-reference#extraknownmarketplaces)-Einträgen aus dem Repository oder einem `--add-dir`-Verzeichnis | Nicht verwendet, und es wird kein Dialog angeboten | Nicht verwendet |

767| Inline-[`mcpServers`](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) im Frontmatter eines Subagents aus dem Repository oder einem `--add-dir`-Verzeichnis. Vor v2.1.238 lud Claude Code diese Server in beiden Situationen | Nicht verwendet, und es wird kein Dialog angeboten | Nicht verwendet |778| Inline-[`mcpServers`](/docs/de/sub-agents#scope-mcp-servers-to-a-subagent) im Frontmatter eines Subagents aus dem Repository oder einem `--add-dir`-Verzeichnis | Nicht verwendet, und es wird kein Dialog angeboten | Nicht verwendet |

768| Server in `.mcp.json`, einschließlich derjenigen, die das Repository [in seinen eigenen Einstellungen genehmigt](/docs/de/mcp#project-server-approvals-and-workspace-trust) | Claude Code fragt Sie, bevor er sich mit ihnen verbindet. Die eigenen Genehmigungen des Repositorys zählen nicht | Verbunden ohne zu fragen, genehmigt oder nicht. Das SDK lädt sie nur, wenn `settingSources` Projekteinstellungen enthält. `claude mcp list` im selben Ordner meldet einen solchen Server immer noch als ausstehend |779| Server in `.mcp.json`, einschließlich derjenigen, die das Repository [in seinen eigenen Einstellungen genehmigt](/docs/de/mcp#project-server-approvals-and-workspace-trust) | Claude Code fragt Sie, bevor er sich mit ihnen verbindet. Die eigenen Genehmigungen des Repositorys zählen nicht | Verbunden ohne zu fragen, genehmigt oder nicht. Das SDK lädt sie nur, wenn `settingSources` Projekteinstellungen enthält. `claude mcp list` im selben Ordner meldet einen solchen Server immer noch als ausstehend |

769| Ein [`headersHelper`](/docs/de/mcp#trust-a-folder-before-its-headershelper-runs) auf einem Server in `.mcp.json`. Vor v2.1.238 führte Claude Code den Helper in beiden Situationen aus | Nicht ausgeführt, bis Sie den Vertrauensdialog akzeptieren, der erneut anzeigt, wo der Helper deklariert ist. Claude Code verbindet den Server nur mit seinen statischen `headers`, bis dahin | Nicht ausgeführt. Claude Code verbindet den Server mit seinen statischen `headers` und gibt eine [`headersHelper not run`](/docs/de/errors#headershelper-not-run)-Zeile pro Server auf stderr aus |780| Ein [`headersHelper`](/docs/de/mcp#trust-a-folder-before-its-headershelper-runs) auf einem Server in `.mcp.json` | Nicht ausgeführt, bis Sie den Vertrauensdialog akzeptieren, der erneut anzeigt, wo der Helper deklariert ist. Claude Code verbindet den Server nur mit seinen statischen `headers`, bis dahin | Nicht ausgeführt. Claude Code verbindet den Server mit seinen statischen `headers` und gibt eine [`headersHelper not run`](/docs/de/errors#headershelper-not-run)-Zeile pro Server auf stderr aus |

770 781 

771Für die Zeilen, die diesen genauen Ordner vertraut benötigen, vertrauen Sie ihm manuell: Setzen Sie `projects["<path>"].hasTrustDialogAccepted` auf `true` in `~/.claude.json`, wobei `<path>` die Repository-Root oder der Ordner selbst außerhalb eines Repositorys ist. Claude Code gibt den genauen Schlüssel in der Debug-Log-Zeile für einen übersprungenen Subagent-Hook oder Inline-MCP-Server, in der stderr-Warnung für übersprungene Allow-Regeln und in der `headersHelper not run`-Zeile für einen übersprungenen Helper aus.782Für die Zeilen, die diesen genauen Ordner vertraut benötigen, vertrauen Sie ihm manuell: Setzen Sie `projects["<path>"].hasTrustDialogAccepted` auf `true` in `~/.claude.json`, wobei `<path>` die Repository-Root oder der Ordner selbst außerhalb eines Repositorys ist. Claude Code gibt den genauen Schlüssel in der Debug-Log-Zeile für einen übersprungenen Subagent-Hook oder Inline-MCP-Server, in der stderr-Warnung für übersprungene Allow-Regeln und in der `headersHelper not run`-Zeile für einen übersprungenen Helper aus.

772 783 

Details

29Jeder Unterbefehl teilt diese Exit-Codes, Plugin-Argumente und Bereichswerte:29Jeder Unterbefehl teilt diese Exit-Codes, Plugin-Argumente und Bereichswerte:

30 30 

31* **Exit-Codes**: `0` bei Erfolg und `1` bei Fehler. `validate` fügt Exit `2` für einen unerwarteten Fehler hinzu, und `eval` fügt die in [seinem Abschnitt](#plugin-eval) aufgelisteten Codes hinzu.31* **Exit-Codes**: `0` bei Erfolg und `1` bei Fehler. `validate` fügt Exit `2` für einen unerwarteten Fehler hinzu, und `eval` fügt die in [seinem Abschnitt](#plugin-eval) aufgelisteten Codes hinzu.

32* **Plugin-Argumente**: ein `<plugin>`-Argument ist ein Plugin-`name` oder `name@marketplace`. Wenn zwei Marktplätze denselben Namen anbieten, verwenden Sie die qualifizierte Form.32* **Plugin-Argumente**: ein `<plugin>`-Argument ist ein Plugin-`name` oder `name@marketplace`. Wenn zwei Marktplätze denselben Namen anbieten, verwenden Sie die qualifizierte Form. `configure` nimmt nur die qualifizierte Form.

33* **Bereiche**: `--scope` nimmt `user`, `project` oder `local` und benennt die Einstellungsdatei, in die der Befehl schreibt. `update` nimmt auch `managed`.33* **Bereiche**: `--scope` nimmt `user`, `project` oder `local` und benennt die Einstellungsdatei, in die der Befehl schreibt. `update` nimmt auch `managed`.

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">


87| Flag | Beschreibung |87| Flag | Beschreibung |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | Installationsbereich: `user`, `project` oder `local`. Standardwert ist `user` |89| `-s, --scope <scope>` | Installationsbereich: `user`, `project` oder `local`. Standardwert ist `user` |

90| `--config <key=value>` | Legen Sie eine [`userConfig`](/docs/de/plugins/manifest-reference)-Option fest, die das Manifest des Plugins deklariert. Wiederholen Sie das Flag für jede Option. Erfordert Claude Code v2.1.147 oder später |90| `--config <key=value>` | Legen Sie eine [`userConfig`](/docs/de/plugins/manifest-reference)-Option fest, die das Manifest des Plugins deklariert. Wiederholen Sie das Flag für jede Option. Erfordert Claude Code v2.1.147 oder später. Ein Schlüssel, der als `<server>.<key>` geschrieben ist, setzt eine Einstellung, die ein [gebündelter MCP-Server](/docs/de/plugins/components#include-a-packaged-mcpb-server) in seiner eigenen `user_config` deklariert, statt für eine Bundle-Datei, die im Plugin enthalten ist. Die `<server>.<key>`-Form erfordert Claude Code v2.1.285 oder später |

91| `-y, --yes` | Akzeptieren Sie den angezeigten Installationsbefehl ohne die `Run this command now?`-Eingabeaufforderung. Wird ignoriert, wenn der Befehl innerhalb einer Claude Code-Sitzung ausgeführt wird, z. B. vom Bash-Tool oder einem Hook. Erfordert Claude Code v2.1.229 oder später |91| `-y, --yes` | Akzeptieren Sie den angezeigten Installationsbefehl ohne die `Run this command now?`-Eingabeaufforderung. Wird ignoriert, wenn der Befehl innerhalb einer Claude Code-Sitzung ausgeführt wird, z. B. vom Bash-Tool oder einem Hook. Erfordert Claude Code v2.1.229 oder später |

92| `--accept-command <sha256>` | Akzeptieren Sie den angezeigten Installationsbefehl, dessen `sha256` ein vorheriger [`--json`-Lauf](#plugin-json-result) in `shownCommand` gemeldet hat, anstelle von `-y`. Kann nicht mit `-y` kombiniert werden. Siehe [Angezeigten Installationsbefehl akzeptieren](#accept-a-displayed-install-command). Erfordert Claude Code v2.1.271 oder später |92| `--accept-command <sha256>` | Akzeptieren Sie den angezeigten Installationsbefehl, dessen `sha256` ein vorheriger [`--json`-Lauf](#plugin-json-result) in `shownCommand` gemeldet hat, anstelle von `-y`. Kann nicht mit `-y` kombiniert werden. Siehe [Angezeigten Installationsbefehl akzeptieren](#accept-a-displayed-install-command). Erfordert Claude Code v2.1.271 oder später |

93| `--json` | Drucken Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout statt der benutzerfreundlichen Meldung, zur Verwendung in Skripten. Siehe [JSON-Ergebnisformat](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später |93| `--json` | Drucken Sie das Ergebnis als ein JSON-Objekt in der letzten Zeile von stdout statt der benutzerfreundlichen Meldung, zur Verwendung in Skripten. Siehe [JSON-Ergebnisformat](#plugin-json-result). Erfordert Claude Code v2.1.268 oder später |


299| :- | :- |299| :- | :- |

300| `--json` | Drucken Sie die Liste als JSON |300| `--json` | Drucken Sie die Liste als JSON |

301| `--available` | Listet auch Plugins auf, die Ihre Marktplätze anbieten, die Sie nicht installiert haben. Hat keine Auswirkung ohne `--json` |301| `--available` | Listet auch Plugins auf, die Ihre Marktplätze anbieten, die Sie nicht installiert haben. Hat keine Auswirkung ohne `--json` |

302| `--data-size [plugin]` | Messen Sie das [gespeicherte Datenverzeichnis](#what-an-uninstall-deletes-and-keeps) jedes installierten Plugins, oder nur das des benannten Plugins, angegeben als `name@marketplace`. Hat keine Auswirkung ohne `--json`. Wenn der Name keinen Installationsdatensatz hat, druckt der Befehl `--data-size names a plugin that is not installed` und beendet sich mit `1`, statt die Liste zu drucken. Erfordert Claude Code v2.1.285 oder später |

302 303 

303Claude Code gruppiert die benutzerfreundliche Ausgabe nach dem Laden jedes Plugins:304Claude Code gruppiert die benutzerfreundliche Ausgabe nach dem Laden jedes Plugins:

304 305 


330| `notes` | array of strings | Authoring-Warnungen für ein Plugin, das geladen wurde und funktioniert |331| `notes` | array of strings | Authoring-Warnungen für ein Plugin, das geladen wurde und funktioniert |

331| `errorDetails` | array of objects | Ein Objekt pro `errors`-Eintrag, das seinen diagnostischen `type` und die Namen angibt, auf die es sich bezieht, wie das Plugin, der Marktplatz, der Server oder die Datei. Erfordert Claude Code v2.1.268 oder später |332| `errorDetails` | array of objects | Ein Objekt pro `errors`-Eintrag, das seinen diagnostischen `type` und die Namen angibt, auf die es sich bezieht, wie das Plugin, der Marktplatz, der Server oder die Datei. Erfordert Claude Code v2.1.268 oder später |

332| `noteDetails` | array of objects | Die gleichen Detail-Objekte für jeden `notes`-Eintrag. Erfordert Claude Code v2.1.268 oder später |333| `noteDetails` | array of objects | Die gleichen Detail-Objekte für jeden `notes`-Eintrag. Erfordert Claude Code v2.1.268 oder später |

334| `hasUserConfig` | boolean | Vorhanden und `true`, wenn das Plugin geladen wurde und sein Manifest [`userConfig`-Optionen](/docs/de/plugins/manifest-reference#user-configuration) deklariert. Abwesend für ein Plugin, das nicht geladen wurde, unabhängig davon, was sein Manifest deklariert. Gespeicherte Werte sind nie enthalten. Erfordert Claude Code v2.1.285 oder später |

335| `projectEnabled` | boolean | Ob die gemeinsame `.claude/settings.json` des Projekts das Plugin aktiviert. Nur Marktplatz-Installationen. Erfordert Claude Code v2.1.285 oder später |

336| `dataDirSize` | object | Mit `--data-size`, die Größe des [gespeicherten Datenverzeichnisses](#what-an-uninstall-deletes-and-keeps) des Plugins als `bytes` und `human`; abwesend, wenn das Verzeichnis fehlt oder leer ist. Nur Marktplatz-Installationen. Erfordert Claude Code v2.1.285 oder später |

337| `dataDirUnreadable` | boolean | Mit `--data-size`, `true`, wenn das gespeicherte Datenverzeichnis existiert, aber nicht gemessen werden konnte. Nur Marktplatz-Installationen. Erfordert Claude Code v2.1.285 oder später |

333 338 

334Mit `--json --available` druckt Claude Code ein Objekt statt eines Arrays. Sein `installed`-Feld hält das Array von installierten-Plugin-Objekten, und sein `available`-Feld hält ein Objekt pro nicht installiertem Marktplatz-Plugin mit den unten aufgelisteten Feldern.339Mit `--json --available` druckt Claude Code ein Objekt statt eines Arrays. Sein `installed`-Feld hält das Array von installierten-Plugin-Objekten, und sein `available`-Feld hält ein Objekt pro nicht installiertem Marktplatz-Plugin mit den unten aufgelisteten Feldern.

335 340 


373 378 

374Für ein Plugin, das nicht geladen ist, druckt Claude Code ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` und beendet sich mit `1`.379Für ein Plugin, das nicht geladen ist, druckt Claude Code ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` und beendet sich mit `1`.

375 380 

381<h3 id="plugin-configure">

382 plugin configure

383</h3>

384 

385Zeigen Sie die [`userConfig`](/docs/de/plugins/manifest-reference#user-configuration)-Optionen eines installierten Plugins und welche gesetzt sind, oder speichern Sie Werte, die auf stdin eingegeben werden. Erfordert Claude Code v2.1.285 oder später.

386 

387```bash theme={null}

388claude plugin configure <plugin>

389```

390 

391| Flag | Beschreibung |

392| :- | :- |

393| `--values-stdin` | Lesen Sie Optionswerte von stdin als ein JSON-Objekt von einzeiligen Strings und speichern Sie sie. Optionen, die Sie weglassen, behalten ihre gespeicherten Werte |

394| `--json` | Drucken Sie das Ergebnis als ein JSON-Objekt auf stdout. Ohne `--values-stdin` trägt das Objekt das `schema` und `choices` der Optionen, ihre anfänglichen `inputs` und die `configured`- und `unconfigured`-Optionsnamen. Mit `--values-stdin` trägt es die `saved`-Optionsnamen und, wenn sie zurückgelesen werden konnten, die `unconfigured`-Optionen |

395 

396Ohne Flags listet der Befehl jede Option mit bis zu drei Labels auf: `required` oder `optional`, dann `sensitive` für eine Option, die das Manifest als sensitiv deklariert, dann `set` oder `not set`. Er druckt keine gespeicherten Werte. Mit `--json` enthält die Ausgabe die gespeicherten Werte von Optionen, die nicht sensitiv sind, und nie den Text einer sensitiven.

397 

398Um Werte zu speichern, schreiben Sie sie in eine Datei als ein JSON-Objekt, das Optionsschlüssel auf String-Werte abbildet, und übergeben Sie die Datei auf stdin. Ersetzen Sie `formatter@my-marketplace` durch die ID Ihres eigenen Plugins, wie `claude plugin list` sie zeigt. Dieses Beispiel setzt eine Option namens `api_url` aus einer Datei `values.json`, die `{"api_url": "https://example.com"}` enthält:

399 

400```bash theme={null}

401claude plugin configure formatter@my-marketplace --values-stdin < values.json

402```

403 

404Claude Code validiert jeden Wert gegen den deklarierten Typ der Option und druckt `Configuration saved. Restart Claude Code to apply it.` Wenn Sie einen Schlüssel übergeben, den das Manifest nicht deklariert, oder einen Wert, der die Validierung nicht besteht, speichert der Befehl nichts, druckt `Failed to save configuration:` mit dem Grund, und beendet sich mit `1`. Mit `--json` druckt ein abgelehnter Wert auch ein Objekt auf stdout, dessen `refused`-Feld die `message` trägt und, wenn eine Option schuldig ist, ihren `option`-Schlüssel.

405 

406Übergeben Sie die vollständige `name@marketplace`-ID des Plugins, wie `claude plugin list` sie zeigt. `configure` akzeptiert keinen bloßen `name`. Wenn kein geladenes Plugin diese ID hat, druckt der Befehl `No installed plugin has the id "<plugin>".` und beendet sich mit `1`.

407 

408Für die Einstellungen eines gebündelten MCP-Servers siehe [`plugin install --config`](#plugin-install) oder das **Configure**-Element in `/plugin`.

409 

376<h3 id="plugin-prune">410<h3 id="plugin-prune">

377 plugin prune411 plugin prune

378</h3>412</h3>

Details

791 791 

792Hooks 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).792Hooks 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).

793 793 

794Um 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).

795 

794<h4 id="when-plugin-hooks-fire">796<h4 id="when-plugin-hooks-fire">

795 Wenn Plugin-Hooks auslösen797 Wenn Plugin-Hooks auslösen

796</h4>798</h4>


868 870 

869Der Server nimmt seinen Namen aus dem `name` im Manifest des Bundles.871Der Server nimmt seinen Namen aus dem `name` im Manifest des Bundles.

870 872 

873Ein Manifest eines Bundles kann Einstellungen deklarieren, die der Server vom Benutzer in einem `user_config`-Block benötigt. Ein gebündelter Server mit einer erforderlichen Einstellung, die keinen gespeicherten Wert hat, startet nicht. Die Registerkarte `/plugin` **Errors** zeigt `Bundled MCP server "<name>" was not started: it needs configuration`.

874 

875Benutzer liefern die Werte auf eine von zwei Arten:

876 

877* **In `/plugin`**: Wählen Sie das Plugin auf der Registerkarte **Installed** und wählen Sie **Configure**

878* **Bei der Installation, von der Shell**: Übergeben Sie [`--config <server>.<key>=<value>`](/docs/de/plugins/cli-reference#plugin-install) an `claude plugin install`. Erfordert Claude Code v2.1.285 oder später, und funktioniert nur für ein Bundle, das im Plugin verpackt ist.

879 

871Für Transporte und Authentifizierung siehe [MCP](/docs/de/mcp#plugin-provided-mcp-servers).880Für Transporte und Authentifizierung siehe [MCP](/docs/de/mcp#plugin-provided-mcp-servers).

872 881 

873<h3 id="lsp-servers">882<h3 id="lsp-servers">


1071 Wenn der Konfigurationsdialog erscheint1080 Wenn der Konfigurationsdialog erscheint

1072</h3>1081</h3>

1073 1082 

1074Der Dialog erscheint nur in der interaktiven `/plugin`-Schnittstelle. Er öffnet sich für jede Option, die noch nicht gesetzt ist, wenn der Benutzer eines der folgenden tut:1083Der Dialog ist Teil der interaktiven `/plugin`-Schnittstelle. Wenn der Benutzer eines der folgenden tut, öffnet er sich für jede Option, die noch nicht gesetzt ist:

1075 1084 

1076* Installiert das Plugin in `/plugin`1085* Installiert das Plugin in `/plugin`

1077* Führt `/plugin install <plugin>@<marketplace>` in einer Sitzung aus1086* Führt `/plugin install <plugin>@<marketplace>` in einer Sitzung aus


1079 1088 

1080Um den gleichen Dialog jederzeit zu öffnen, führt der Benutzer `/plugin configure <plugin>@<marketplace>` aus.1089Um den gleichen Dialog jederzeit zu öffnen, führt der Benutzer `/plugin configure <plugin>@<marketplace>` aus.

1081 1090 

1082Der `claude plugin install`-Shell-Befehl fordert nie `userConfig`-Werte auf. Um Werte aus der Shell zu setzen, übergeben Sie jeden als `--config KEY=VALUE`. Wenn Optionen ungesetzt bleiben, druckt der Befehl eine `userConfig options not yet set`-Zeile, die beide Wege benennt, um sie zu setzen. [Der `userConfig`-Dialog erscheint nie](/docs/de/plugins/troubleshooting#the-userconfig-dialog-never-appears) zitiert die Zeile.1091Der Dialog des VS Code-Erweiterung [Plugins verwalten](/docs/de/vs-code#install-plugins) fragt nach nicht gesetzten Optionen als Formular nach einer Installation, und ein Zahnradsymbol in der Zeile des Plugins öffnet das Formular erneut mit jeder Option.

1092 

1093Der `claude plugin install`-Shell-Befehl fordert nie `userConfig`-Werte auf. Um Werte aus der Shell zu setzen, übergeben Sie jeden als `--config KEY=VALUE` bei der Installation, oder leiten Sie ein JSON-Objekt an [`claude plugin configure --values-stdin`](/docs/de/plugins/cli-reference#plugin-configure) danach weiter.

1094 

1095Wenn Optionen ungesetzt bleiben, druckt `claude plugin install` eine `userConfig options not yet set`-Zeile. Für den genauen Text der Zeile siehe [Der `userConfig`-Dialog erscheint nie](/docs/de/plugins/troubleshooting#the-userconfig-dialog-never-appears).

1083 1096 

1084Für die Optionsfelder, wo jeder Wert gespeichert wird, wie eine Komponente einen gespeicherten Wert referenziert und welche Felder `${user_config.*}` ablehnen, siehe [Benutzerkonfiguration](/docs/de/plugins/manifest-reference#user-configuration).1097Für die Optionsfelder, wo jeder Wert gespeichert wird, wie eine Komponente einen gespeicherten Wert referenziert und welche Felder `${user_config.*}` ablehnen, siehe [Benutzerkonfiguration](/docs/de/plugins/manifest-reference#user-configuration).

1085 1098 

Details

72 Der letzte Satz der Zusammenfassung sagt Ihnen, ob das Plugin in dieser Sitzung bereits verwendbar ist:72 Der letzte Satz der Zusammenfassung sagt Ihnen, ob das Plugin in dieser Sitzung bereits verwendbar ist:

73 73 

74 * **Active now**: `Plugin is now active.` Es ist kein Neuladen erforderlich.74 * **Active now**: `Plugin is now active.` Es ist kein Neuladen erforderlich.

75 * **Active, but a server needs setup**: `Plugin is now active.` wird gefolgt von `Its bundled MCP server needs configuration before it can start`. Der [gebündelte MCP-Server](/docs/de/plugins/components#include-a-packaged-mcpb-server) des Plugins kann nicht starten, bis Sie seine Optionen festlegen. Wählen Sie das Plugin auf der Registerkarte **Installed** in `/plugin` aus und wählen Sie **Configure**, um die Optionen des Servers festzulegen.

75 * **Reload needed**: `Run /reload-plugins to activate.` Das Panel schließt sich und Claude Code führt dieses Neuladen für Sie aus. Wenn das Neuladen den [Prompt-Cache ungültig machen würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin), warnt es und lässt das Plugin stattdessen ausstehend. Führen Sie `/reload-plugins --force` aus, um es trotzdem zu aktivieren, was eine nicht gecachte Anfrage kostet.76 * **Reload needed**: `Run /reload-plugins to activate.` Das Panel schließt sich und Claude Code führt dieses Neuladen für Sie aus. Wenn das Neuladen den [Prompt-Cache ungültig machen würde](/docs/de/prompt-caching#enabling-or-disabling-a-plugin), warnt es und lässt das Plugin stattdessen ausstehend. Führen Sie `/reload-plugins --force` aus, um es trotzdem zu aktivieren, was eine nicht gecachte Anfrage kostet.

76 * **Load failed**: `The plugin couldn't be loaded`. Öffnen Sie die Registerkarte **Errors** in `/plugin`, um den Grund zu erfahren, und siehe dann [Nach Installation: Plugin funktioniert nicht](/docs/de/plugins/troubleshooting#plugin-installed-but-not-working).77 * **Load failed**: `The plugin couldn't be loaded`. Öffnen Sie die Registerkarte **Errors** in `/plugin`, um den Grund zu erfahren, und siehe dann [Nach Installation: Plugin funktioniert nicht](/docs/de/plugins/troubleshooting#plugin-installed-but-not-working).

77 </Step>78 </Step>


248Ein privater Marketplace ist einer in einem Repository, auf das Sie Anmeldedaten zum Klonen benötigen, auf GitHub oder einem anderen Git-Host. Sie fügen ihn mit dem gleichen `/plugin marketplace add`- oder `claude plugin marketplace add`-Befehl wie einen öffentlichen hinzu. Claude Code klont ihn mit den Git-Anmeldedaten, die bereits auf Ihrem Computer vorhanden sind, und fragt nie, daher hat jede Verbindungsweise eine Anforderung:249Ein privater Marketplace ist einer in einem Repository, auf das Sie Anmeldedaten zum Klonen benötigen, auf GitHub oder einem anderen Git-Host. Sie fügen ihn mit dem gleichen `/plugin marketplace add`- oder `claude plugin marketplace add`-Befehl wie einen öffentlichen hinzu. Claude Code klont ihn mit den Git-Anmeldedaten, die bereits auf Ihrem Computer vorhanden sind, und fragt nie, daher hat jede Verbindungsweise eine Anforderung:

249 250 

250* **HTTPS**: Ihre Git-Credential-Helper gelten, daher funktioniert der Zugriff, den Sie mit `gh auth login`, dem macOS-Schlüsselbund oder `git-credential-store` einrichten. Interaktive Aufforderungen werden unterdrückt, daher schlägt ein Host, bei dem Sie sich noch nie authentifiziert haben, statt zu fragen, fehl.251* **HTTPS**: Ihre Git-Credential-Helper gelten, daher funktioniert der Zugriff, den Sie mit `gh auth login`, dem macOS-Schlüsselbund oder `git-credential-store` einrichten. Interaktive Aufforderungen werden unterdrückt, daher schlägt ein Host, bei dem Sie sich noch nie authentifiziert haben, statt zu fragen, fehl.

251* **SSH**: Der Host muss bereits in Ihrer `known_hosts`-Datei sein und der Schlüssel muss ohne Passphrase-Aufforderung funktionieren, da die Host-Fingerprint- und Passphrase-Aufforderungen auch unterdrückt werden.252* **SSH**: Der Host muss bereits in Ihrer `known_hosts`-Datei sein und der Schlüssel muss ohne Passphrase-Aufforderung funktionieren. Wenn Ihre Git-Einrichtung ein SSH-Programm in `GIT_SSH_COMMAND`, `GIT_SSH` oder dem `core.sshCommand` Ihrer Git-Konfiguration benennt, führt Claude Code dieses Programm aus.

252* **GitHub `owner/repo`-Kurzform**: Claude Code prüft, ob Ihr SSH-Schlüssel sich bei `github.com` authentifiziert, klont dann über SSH, wenn ja, und über HTTPS, wenn nein. Setzen Sie [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/de/env-vars#variables), um diese Prüfung zu überspringen und immer über HTTPS zu klonen.253* **GitHub `owner/repo`-Kurzform**: Claude Code prüft, ob Ihr SSH-Schlüssel sich bei `github.com` authentifiziert, klont dann über SSH, wenn ja, und über HTTPS, wenn nein. Setzen Sie [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/de/env-vars#variables), um diese Prüfung zu überspringen und immer über HTTPS zu klonen.

253 254 

254Die gleichen Anmeldedaten gelten, wenn Sie `/plugin install`, `/plugin marketplace update` und `claude plugin update` ausführen.255Die gleichen Anmeldedaten gelten, wenn Sie `/plugin install`, `/plugin marketplace update` und `claude plugin update` ausführen.


288 289 

289* Geben Sie ein, um nach Name oder Beschreibung zu filtern.290* Geben Sie ein, um nach Name oder Beschreibung zu filtern.

290* Drücken Sie **Space**, um das ausgewählte Plugin zu aktivieren oder zu deaktivieren, und **f**, um es zu favorisieren.291* Drücken Sie **Space**, um das ausgewählte Plugin zu aktivieren oder zu deaktivieren, und **f**, um es zu favorisieren.

291* Drücken Sie **Enter**, um die Details eines Plugins zu öffnen. Das Menü dort bietet **Disable plugin** oder **Enable plugin**, **Update now** und **Uninstall**. Plugins, die Einstellungen vornehmen, bieten auch **Configure options**.292* Drücken Sie **Enter**, um die Details eines Plugins zu öffnen.

293 

294Das Menü mit den Details eines Plugins bietet **Disable plugin** oder **Enable plugin**, **Update now** und **Uninstall**. Zwei weitere Elemente erscheinen für Plugins, die Einstellungen vornehmen, und ein Plugin kann beide anzeigen:

295 

296* **Configure options**: wird angezeigt, wenn das Manifest des Plugins [`userConfig`-Optionen](/docs/de/plugins/manifest-reference#user-configuration) deklariert. Öffnet den Dialog für diese Optionen

297* **Configure**: wird angezeigt, wenn das Plugin einen [gebündelten MCP-Server](/docs/de/plugins/components#include-a-packaged-mcpb-server) enthält. Legt die eigenen `user_config`-Einstellungen dieses Servers fest

292 298 

293Die Registerkarte kann auch Plugins im Bereich **Managed** anzeigen. Ihre Organisation hat diese über [verwaltete Einstellungen](/docs/de/settings#settings-files) installiert, und Sie können sie hier nicht aktivieren, deaktivieren oder deinstallieren.299Die Registerkarte kann auch Plugins im Bereich **Managed** anzeigen. Ihre Organisation hat diese über [verwaltete Einstellungen](/docs/de/settings#settings-files) installiert, und Sie können sie hier nicht aktivieren, deaktivieren oder deinstallieren.

294 300 

Details

146| [`dependencies`](#dependencies) | Array von Strings oder Objekten | Plugins, die aktiviert sein müssen, damit dieses funktioniert |146| [`dependencies`](#dependencies) | Array von Strings oder Objekten | Plugins, die aktiviert sein müssen, damit dieses funktioniert |

147| [`settings`](#settings) | Object | Einstellungen, die Claude Code anwendet, während das Plugin aktiviert ist. Nur `agent` und `subagentStatusLine` wirken sich aus |147| [`settings`](#settings) | Object | Einstellungen, die Claude Code anwendet, während das Plugin aktiviert ist. Nur `agent` und `subagentStatusLine` wirken sich aus |

148| [`userConfig`](#user-configuration) | Object | Werte, die Claude Code den Benutzer auffordert einzugeben, wenn das Plugin aktiviert ist |148| [`userConfig`](#user-configuration) | Object | Werte, die Claude Code den Benutzer auffordert einzugeben, wenn das Plugin aktiviert ist |

149| `types` | Pfad | Eine `.d.ts`-Datei, die die `$.state`-Werte und `$`-Nomen eines [mod](/docs/de/plugins/mods/reference#files) deklariert |

149| [`channels`](#channels) | Array von Objekten | Nachrichtenkanäle, die das Plugin bereitstellt, jeweils an einen seiner MCP-Server gebunden |150| [`channels`](#channels) | Array von Objekten | Nachrichtenkanäle, die das Plugin bereitstellt, jeweils an einen seiner MCP-Server gebunden |

150| `skills` | Pfad oder Array von Pfaden | Verzeichnisse zum Scannen nach Skills, jeweils ein Verzeichnis von `<name>/SKILL.md`-Ordnern oder ein Ordner mit `SKILL.md` direkt. `"."` benennt den Plugin-Root. Fügt zum Standard-`skills/`-Scan hinzu |151| `skills` | Pfad oder Array von Pfaden | Verzeichnisse zum Scannen nach Skills, jeweils ein Verzeichnis von `<name>/SKILL.md`-Ordnern oder ein Ordner mit `SKILL.md` direkt. `"."` benennt den Plugin-Root. Fügt zum Standard-`skills/`-Scan hinzu |

151| [`commands`](#commands) | Pfad, Array von Pfaden oder Objekt | Flache `.md`-Befehlsdateien, Verzeichnisse davon oder eine Objektzuordnung von Befehlsname zu `source` oder `content`. Ersetzt den Standard-`commands/`-Scan |152| [`commands`](#commands) | Pfad, Array von Pfaden oder Objekt | Flache `.md`-Befehlsdateien, Verzeichnisse davon oder eine Objektzuordnung von Befehlsname zu `source` oder `content`. Ersetzt den Standard-`commands/`-Scan |


170 171 

171Claude Code namespaced jede Komponente darunter, daher erscheint ein Agent `reviewer` im Plugin `deploy-tools` als `deploy-tools:reviewer`.172Claude Code namespaced jede Komponente darunter, daher erscheint ein Agent `reviewer` im Plugin `deploy-tools` als `deploy-tools:reviewer`.

172 173 

174`claude plugin validate` überprüft auch, dass der Name nicht als eines von Anthropic's eigenen Plugins durchgeht. Die Überprüfung ignoriert Groß-/Kleinschreibung und behandelt jeden Lauf von Trennzeichen als einen:

175 

176| Name | Ergebnis |

177| :- | :- |

178| Beginnt mit `claude-`, `anthropic-`, `anthropics-` oder `cc-plugin-` | Fehler |

179| Ist `claude`, `anthropic`, `anthropics`, `claude-code` oder `claude-mods` | Fehler |

180| Setzt `official` neben `claude` oder `anthropic`, z. B. `official-claude-tools` | Fehler |

181| Hat `claude`, `anthropic` oder `anthropics` als ganzes Wort irgendwo anders, z. B. `mcp-for-claude` | Warnung |

182 

183Die Fehlermeldung lautet `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, und die Warnung lautet `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` und `claude plugin tag` lehnen einen Namen ab, der den Fehler verursacht. Nur diese Befehle überprüfen den Namen. Claude Code installiert und lädt immer noch ein Plugin, dessen Namen sie ablehnen.

184 

173<h3 id="displayname">185<h3 id="displayname">

174 `displayName`186 `displayName`

175</h3>187</h3>

Details

484| `Author name cannot be empty` | Error | `owner.name` |484| `Author name cannot be empty` | Error | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

487| `Plugin name "x" is reserved: it passes as one of Anthropic's own` | Error | `plugins[i].name`. Siehe das Manifest [`name`](/docs/de/plugins/manifest-reference#name) für die reservierten Namen |

488| `Plugin name "x" reads as one of Anthropic's own` | Warning | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |489| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |490| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |

489| `Duplicate plugin name "x" found in marketplace` | Error | Zwei Einträge teilen einen `name` |491| `Duplicate plugin name "x" found in marketplace` | Error | Zwei Einträge teilen einen `name` |

plugins/mods/admin.md +375 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Mods für Ihre Organisation verwalten

6 

7> Kontrollieren Sie Claude Code Mods mit verwalteten Einstellungen: Deaktivieren Sie von Benutzern installierte Mods, erlauben Sie nur Ihre eigenen, überprüfen Sie, was ein Mod tun kann, und erzwingen Sie eine Richtlinie mit Ihrem eigenen Mod.

8 

9Ein [Mod](/docs/de/plugins/mods/overview) ist ein Plugin, das Code innerhalb von Claude Code mit den Berechtigungen des Benutzers ausführt, der es installiert hat. Mods sind nicht isoliert. Durch [verwaltete Einstellungen](/docs/de/managed-settings) entscheiden Sie, ob Mods auf den Maschinen Ihrer Benutzer ausgeführt werden, welche und in welcher Reihenfolge. Sie können auch einen Mod Ihrer eigenen installieren, der überwacht oder ablehnt, was andere Mods tun.

10 

11Diese Seite ist für die Person, die verwaltete Einstellungen für Claude Code bereitstellt, ob als Datei, über MDM oder über die claude.ai Admin-Konsole. Mods sind standardmäßig in Claude Code v2.1.287 und später aktiviert. Beginnen Sie mit dem Abschnitt, der zu dem passt, was Sie tun möchten:

12 

13* **Mods von Benutzern ausschließen, mit oder ohne Ihre eigenen Mods**: [Verhindern Sie, dass von Benutzern installierte Mods geladen werden](#stop-user-installed-mods-from-loading)

14* **Sehen Sie, was Ihre Benutzer erhalten, wenn Sie nichts ändern**: [Wissen Sie, was standardmäßig passiert](#know-what-happens-by-default)

15* **Lassen Sie Mods mit anderen Einschränkungen aktiviert**: [Wählen Sie, wie viel Sie erlauben](#choose-how-much-to-allow)

16 

17<Note>

18 Diese Fälle werden auf anderen Seiten behandelt:

19 

20 * **Sie haben verwaltete Einstellungen noch nicht bereitgestellt**: Beginnen Sie mit [Verwaltete Einstellungen bereitstellen](/docs/de/managed-settings)

21 * **Sie möchten kontrollieren, welche Plugins Benutzer installieren können**: Siehe [Plugins für Ihre Organisation verwalten](/docs/de/plugins/org)

22</Note>

23 

24<h2 id="stop-user-installed-mods-from-loading">

25 Verhindern Sie, dass von Benutzern installierte Mods geladen werden

26</h2>

27 

28Um zu verhindern, dass jeder Mod, den Ihre Benutzer mitbringen, geladen wird, setzen Sie die Option `allowManagedModsOnly` auf dem [integrierten Guard](#know-what-happens-by-default), einem Policy-Mod, den Claude Code vor jedem Mod lädt, den ein Benutzer installiert. Die Option befindet sich in verwalteten Einstellungen unter `pluginConfigs`, mit dem Schlüssel `cc-plugin-sec-default@builtin`:

29 

30```json managed-settings.json theme={null}

31{

32 "pluginConfigs": {

33 "cc-plugin-sec-default@builtin": {

34 "options": {

35 "allowManagedModsOnly": true

36 }

37 }

38 }

39}

40```

41 

42Mit der in verwalteten Einstellungen gesetzten Option:

43 

44* **Kein Mod, den ein Benutzer mitbringt, wird geladen**: Das umfasst einen Mod in einem Plugin, das der Benutzer installiert hat, einen Mod, der mit `--plugin-dir` geladen wird, und einen Mod, den [Claude während einer Sitzung geschrieben hat](/docs/de/plugins/mods/create#ask-claude-for-a-mod)

45* **Die Mods Ihrer Organisation werden weiterhin geladen**: Ein Mod, der [als Mod Ihrer Organisation zählt](#install-your-organizations-mods), wird nicht überprüft. Jeder andere Mod zählt als Mod eines Benutzers und wird nicht geladen. Das umfasst einen Mod in einem Plugin, das Sie von einem GitHub oder anderen Remote-Marketplace aktivieren, und einen, den Ihre Organisation für ihre Mitglieder auf claude.ai aktiviert. Wenn keiner als Ihrer zählt, wird kein installierter Mod geladen.

46* **Benutzer können es nicht rückgängig machen**: Der Guard liest die Option nur aus verwalteten Einstellungen, daher ändert derselbe Eintrag in einer Benutzer-, Projekt- oder lokalen Einstellungsdatei oder in einer Datei, die mit `--settings` übergeben wird, nichts

47* **Eine Datei oder MDM-Richtlinie deckt jeden Provider ab**: Wenn Sie die Option als Datei oder über MDM bereitstellen, funktioniert sie auf Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry auf die gleiche Weise. Für die Bereitstellung über die claude.ai Admin-Konsole siehe [Plattformverfügbarkeit](/docs/de/server-managed-settings#platform-availability)

48* **Die anderen Anpassungen der Benutzer funktionieren weiterhin**: Ihre [Hooks in Einstellungsdateien](/docs/de/hooks), Statuszeilen und `/goal` sind nicht betroffen

49* **Integrierte Mods funktionieren weiterhin**: Mods, die in Claude Code integriert sind, wie z. B. `AGENTS.md` Unterstützung, haben jeweils [ihren eigenen Schalter](/docs/de/plugins/mods/overview#mods-built-into-claude-code)

50 

51Um die Option auf der Maschine eines Benutzers zu bestätigen, starten Sie Claude Code dort mit `--plugin-dir` und dem Pfad eines Verzeichnisses, das einen Mod enthält, z. B. `claude --plugin-dir ./first-mod`. Die Hooks des Mods werden nicht ausgeführt, und das Transkript und das Debug-Protokoll enthalten die [Nachricht des Guards](/docs/de/plugins/mods/troubleshoot#messages-from-the-built-in-guard), die den Mod und `allowManagedModsOnly` benennt. Wenn der Mod geladen wird, siehe [Überprüfen Sie, dass eine Richtlinie in Kraft ist](/docs/de/managed-settings#check-that-a-policy-is-in-force) und die [Regeln, die entscheiden, ob eine Option wirksam wird](#set-options-on-the-built-in-guard).

52 

53Wenn Sie `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` während des Early Access auf `0` gesetzt haben, ersetzen Sie es durch diese Option. Claude Code v2.1.287 und später ignoriert die Variable bei jedem Wert, daher lässt ein `0` dort Mods aktiviert.

54 

55<h2 id="know-what-happens-by-default">

56 Wissen Sie, was standardmäßig passiert

57</h2>

58 

59Ohne Ihre eigenen Mod-Einstellungen erhalten Ihre Benutzer folgendes:

60 

61* **Mods sind aktiviert.** Ein Benutzer kann ein Plugin installieren, das einen Mod von jedem Marketplace enthält, den Ihre Plugin-Einstellungen erlauben, oder einen aus einem Verzeichnis mit `--plugin-dir` laden.

62* **Ein integrierter Guard wird zuerst ausgeführt.** Claude Code lädt einen integrierten Mod namens `sec-default@builtin` vor jedem Mod, den ein Benutzer installiert. Benutzer können ihn nicht ausschalten. `/plugin` und das Debug-Protokoll listen ihn als `cc-plugin-sec-default` auf. Der Guard wird geladen, wenn einer dieser Punkte zutrifft:

63 

64 * Die Maschine hat verwaltete Einstellungen

65 * Der Benutzer ist bei Claude Code mit einem Team- oder Enterprise-Plan angemeldet

66 

67 Ein Benutzer, der sich mit einem API-Schlüssel authentifiziert oder über Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry, erhält den Guard nur auf einer Maschine, die verwaltete Einstellungen hat.

68* **Der Guard schützt, was Sie verwalten.** Ein Mod eines Benutzers kann nicht ändern, was Ihre verwalteten Hooks erhalten oder entscheiden, die Systemaufforderung, Ihre verwaltete `CLAUDE.md` und andere verwaltete Anweisungen, was jeder Mod als Einstellungen liest, oder die Tools und Beschreibungen Ihrer verwalteten MCP-Server.

69* **Alles andere ist erlaubt.** Der Guard fügt keine anderen Einschränkungen hinzu. Ein Mod eines Benutzers kann immer noch Dateien lesen und schreiben, Prozesse starten, Netzwerkanfragen stellen, Tool-Aufrufe und Aufforderungen umschreiben, einen Tool-Aufruf ablehnen, einen genehmigen, der sonst eine Aufforderung auslösen würde, und in der Benutzeroberfläche zeichnen, alles mit den Berechtigungen dieses Benutzers.

70* **Deny-Regeln und Ihre verwalteten Hooks haben Vorrang.** Wo der Guard geladen wird, kann ein Mod eines Benutzers einen Aufruf nicht genehmigen, den eine `deny` Regel ablehnt, unabhängig davon, welche Einstellungsdatei die Regel enthält. Ein Block von einem `PreToolUse` Hook in verwalteten Einstellungen ist auch endgültig. Beide gelten für Claude's Tool-Aufrufe. Keiner gilt für die eigenen [`$.fs` und `$.process` Aufrufe](/docs/de/plugins/mods/api#reach-files-processes-and-the-network) eines Mods: Mit `Read(.env)` verweigert, kann ein Mod diese Datei immer noch mit `$.fs.read` lesen oder ein Programm starten, das dies tut. Um diese Aufrufe zu begrenzen, verhindern Sie, dass der Mod geladen wird, oder hooken Sie den Aufruf in einem [Policy-Mod](#enforce-a-policy-with-a-mod-of-your-own).

71* **Andere Berechtigungsprüfungen können überschrieben werden.** Ein Mod eines Benutzers, der Tool-Aufrufe genehmigt, kann einen Aufruf genehmigen, den eine `ask` Regel auffordern würde, oder den ein `PreToolUse` Hook außerhalb verwalteter Einstellungen blockiert hat. Im Auto-Modus wird ein Aufruf, den der Mod genehmigt, ohne eine Klassifiziererprüfung ausgeführt.

72 

73Der Quellcode des Guards ist öffentlich im [`mods/sec-default` Verzeichnis des Claude Code Repositorys](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).

74 

75<h3 id="know-which-controls-still-apply">

76 Wissen Sie, welche Kontrollen noch gelten

77</h3>

78 

79Mods ersetzen nicht die Kontrollen, die Sie bereits haben:

80 

81* **Einstellungs-Hooks funktionieren weiterhin.** Command-, HTTP-, Prompt- und Agent-Hooks in Einstellungsdateien und in `hooks/hooks.json` von Plugins werden wie zuvor ausgeführt, zusammen mit Mods. Nichts daran ist veraltet.

82* **Deny-Regeln haben Vorrang, wo der Guard geladen wird.** Ein Mod eines Benutzers kann einen Aufruf nicht genehmigen, den eine `deny` Regel ablehnt, es sei denn, Sie setzen [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

83* **Verwaltete Hooks werden zuerst ausgeführt.** Ein `PreToolUse` Hook in verwalteten Einstellungen wird ausgeführt, bevor ein Mod den Tool-Aufruf sieht, und sein Block ist endgültig. Wenn ein Mod dann den Aufruf umschreibt, werden Ihre verwalteten Hooks erneut auf dem umgeschriebenen Aufruf ausgeführt, daher gilt ein Block immer noch. `PreToolUse` Hooks aus anderen Einstellungsdateien und von Plugins werden nach dem letzten Mod ausgeführt, daher verhindert ein Mod, der sein eigenes Ergebnis anstelle der Ausführung des Tools zurückgibt, dass diese ausgeführt werden. Siehe [Die Reihenfolge, in der Mods ausgeführt werden](/docs/de/plugins/mods/events#the-order-mods-run-in).

84* **Netzwerkrichtlinie deckt `$.http.fetch` ab.** Wenn Ihre Organisation Web-Abrufe deaktiviert oder nicht wesentlicher Netzwerkverkehr für die Sitzung deaktiviert ist, lehnt Claude Code eine Netzwerkanfrage ab, die ein Mod mit `$.http.fetch` macht. Die Richtlinie deckt kein Programm ab, das der Mod mit `$.process.run` startet. Dieses Programm erreicht das Netzwerk mit dem eigenen Zugriff des Benutzers.

85* **Plugin-Kontrollen decken Mods ab.** 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), wie z. B. `strictKnownMarketplaces`, ob er überhaupt installiert werden kann.

86* **Mods können die Berechtigungsaufforderung nicht ändern.** Ein Mod kann viel von Claude Code's Benutzeroberfläche umgestalten, aber nicht die Berechtigungsaufforderung, daher kann er nicht ändern, was eine Aufforderung zeigt. Ein Mod kann immer noch einen Tool-Aufruf genehmigen oder ablehnen, bevor die Aufforderung erscheint, wie [Wissen Sie, was standardmäßig passiert](#know-what-happens-by-default) beschreibt.

87* **Vertrauensaufforderungen kommen zuerst.** In einer interaktiven Sitzung in einem Verzeichnis, das der Benutzer noch nicht vertraut hat, wird kein Mod geladen, bis er die Vertrauensaufforderung beantwortet.

88* **`--safe-mode` schaltet installierte Mods aus, einschließlich Ihrer.** Starten Sie eine Sitzung mit `claude --safe-mode`, um zu überprüfen, ob ein Mod ein Problem verursacht hat.

89 

90Keine dieser Kontrollen isoliert einen Mod. Ein Mod, den Sie erlauben, wird als Benutzer ausgeführt, mit dem Zugriff des Benutzers auf Dateien, Prozesse und das Netzwerk.

91 

92<h2 id="decide-whether-to-leave-mods-on">

93 Entscheiden Sie, ob Sie Mods aktiviert lassen

94</h2>

95 

96Ein Mod kann mehr tun als die anderen Teile eines Plugins, da er innerhalb von Claude Code ausgeführt wird. Er sieht jede Aufforderung und jeden Tool-Aufruf, kann sie ändern und kann einen Tool-Aufruf genehmigen oder ablehnen, bevor eine Berechtigungsaufforderung erscheint.

97 

98Was ein Benutzer als Mod laden kann, hängt von den Plugin-Kontrollen ab, die Sie bereits haben:

99 

100| Ihre heutigen Plugin-Kontrollen | Was ein Benutzer als Mod laden kann |

101| :- | :- |

102| Keine | Ein Mod von jedem Marketplace, aus jedem Verzeichnis mit `--plugin-dir` oder den Claude während einer Sitzung schreibt |

103| Ein Marketplace-Allowlist | Ein Mod von den Marketplaces, die Sie erlauben, oder aus jedem Verzeichnis mit `--plugin-dir`. Ein Mod, den Claude während einer Sitzung schreibt, wird nur geladen, wenn die Allowlist [`skills-dir`](/docs/de/plugins/org#keep-skills-directory-plugins-loading) enthält. |

104| Ein Marketplace-Allowlist und `disableSideloadFlags` | Ein Mod von den Marketplaces, die Sie erlauben |

105 

106[Plugins für Ihre Organisation verwalten](/docs/de/plugins/org) listet jeden Weg auf, auf dem ein Plugin geladen wird, und die Einstellung, die jeden kontrolliert.

107 

108Um die Mods in einem Marketplace zu überprüfen, bevor Ihre Benutzer sie installieren, siehe [Überprüfen Sie, was ein Mod tun kann](#review-what-a-mod-can-do). Um Mods von Benutzern auszuschließen, bis Sie dies getan haben, siehe [Verhindern Sie, dass von Benutzern installierte Mods geladen werden](#stop-user-installed-mods-from-loading).

109 

110<h3 id="review-what-a-mod-can-do">

111 Überprüfen Sie, was ein Mod tun kann

112</h3>

113 

114Sie können sehen, was ein Mod tun kann, ohne ihn auszuführen. Führen Sie in Ihrer Shell `claude plugin validate` im Verzeichnis des Plugins aus:

115 

116```bash theme={null}

117claude plugin validate ./some-mod

118```

119 

120Zwei Zeilen in der Ausgabe beschreiben den Code des Mods:

121 

122```text theme={null}

123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}

124 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open

125```

126 

127Die `hooks:` Zeile listet die Ereignisse auf, die der Mod empfängt. Die `calls:` Zeile listet die Mods API-Methoden auf, die sein Code aufruft. Die [Mods API](/docs/de/plugins/mods/api), geschrieben als `$` im Code eines Mods, ist, wie ein Mod Dateien, Prozesse und das Netzwerk erreicht. Claude Code weigert sich, einen Mod zu laden, der die Mods API auf eine Weise verwendet, die dieser Befehl nicht lesen kann.

128 

129Schauen Sie sich die `calls:` Zeile auf diese an:

130 

131| Aufruf | Was es bedeutet |

132| :- | :- |

133| `$.fs.read`, `$.fs.write` | Liest oder schreibt Dateien überall, wo der Benutzer kann |

134| `$.process.run`, `$.process.spawn` | Startet Programme als Benutzer |

135| `$.http.fetch` | Macht Netzwerkanfragen |

136| `$.env.get`, `$.settings.read` | Liest Umgebungsvariablen und Einstellungen, die API-Schlüssel enthalten können. Eine `env reads:` Zeile in der Ausgabe benennt jede Variable. |

137| `$.env.set` | Setzt eine Umgebungsvariable für Claude Code und für jeden Befehl und MCP-Server, den es danach startet, was ändern kann, was diese Programme ausführen. Eine `env writes:` Zeile benennt jede Variable. |

138| `$.mcp.call` | Ruft ein Tool auf einem verbundenen MCP-Server auf, unter den Berechtigungsregeln der Sitzung |

139| `$.model.complete` | Verwendet den Plan oder API-Schlüssel des Benutzers für Modellaufrufe |

140| `$.prompt.submit` | Sendet eine Aufforderung und kann sie als die eigenen Worte des Benutzers senden |

141| `$.session.send` | Sendet eine Nachricht, die eine andere Sitzung oder ein Subagent von Claude liest |

142 

143In der `hooks:` Zeile bedeuten [`tool.call`](/docs/de/plugins/mods/reference#tools) und [`prompt.submit`](/docs/de/plugins/mods/reference#prompts-and-what-claude-reads), dass der Mod jeden Tool-Aufruf und jede Aufforderung sieht und sie ändern kann. [`session.append`](/docs/de/plugins/mods/reference#session) bedeutet, dass der Mod jede Zeile der Konversation umschreiben kann, bevor sie gespeichert wird. [`ui.render{component=AskUserQuestion}`](/docs/de/plugins/mods/interface#change-what-claude-code-already-draws) bedeutet, dass der Mod den Dialog umzeichnen kann, den Claude verwendet, um den Benutzer eine Frage zu stellen. `tool.check` bedeutet, dass der Mod einen Tool-Aufruf genehmigen oder ablehnen kann, bevor eine Berechtigungsaufforderung erscheint. [Wissen Sie, was standardmäßig passiert](#know-what-happens-by-default) listet auf, welche Ihrer Regeln und Hooks Vorrang vor seiner Antwort haben.

144 

145<h2 id="choose-how-much-to-allow">

146 Wählen Sie, wie viel Sie erlauben

147</h2>

148 

149Mod-Richtlinien reichen von keinen installierten Mods bis zu jedem Mod, den ein Benutzer wählt, mit Ihrem eigenen Mod, der die anderen überprüft, und jede ist ein paar verwaltete Einstellungen. Finden Sie die Richtlinie, die Sie möchten, in der ersten Spalte und setzen Sie, was die zweite Spalte benennt. [Verwaltete Einstellungen bereitstellen](/docs/de/managed-settings) behandelt, wo verwaltete Einstellungen leben.

150 

151| Was Sie möchten | Einstellungen |

152| :- | :- |

153| Keine installierten Mods, mit Hooks unverändert | Setzen Sie [`allowManagedModsOnly`](#set-options-on-the-built-in-guard) und stellen Sie keine Mods Ihrer eigenen bereit |

154| Keine installierten Mods und überhaupt keine Hooks, einschließlich Ihrer verwalteten Hooks | Setzen Sie `disableAllHooks` auf `true` |

155| Nur die Mods Ihrer Organisation | Setzen Sie die Option [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading) des Guards und [installieren Sie Ihre Mods](#install-your-organizations-mods), damit sie als Ihre zählen |

156| Jeder Mod von Marketplaces, die Sie genehmigen | Behalten Sie Ihre [Marketplace-Einschränkungen](/docs/de/plugins/org#restrict-what-users-can-install) und setzen Sie `disableSideloadFlags` auf `true` |

157| Jeder Mod, mit Ihrem eigenen Mod, der die anderen überprüft | [Installieren Sie Ihren Mod](#install-your-organizations-mods) und listen Sie ihn mit `sec-default@builtin` in `prependPlugins` auf |

158 

159Was jede Einstellung tut:

160 

161* **`allowManagedModsOnly`**: eine Option auf dem integrierten Guard. Mods von Benutzern werden nicht geladen, und ihre Einstellungs-Hooks, Statuszeilen und `/goal` funktionieren weiterhin. [Verhindern Sie, dass von Benutzern installierte Mods geladen werden](#stop-user-installed-mods-from-loading) listet auf, was es abdeckt.

162* **`allowManagedHooksOnly`**: eine breitere Einstellung. Nur [die Mods Ihrer Organisation](#install-your-organizations-mods) und die in Claude Code integrierten Mods werden geladen. Ein Mod, den ein Benutzer selbst installiert hat, wird nicht geladen. Die Einstellung blockiert auch Hooks in den eigenen Einstellungsdateien von Benutzern. Lesen Sie [Was unter `allowManagedHooksOnly` ausgeführt wird](/docs/de/settings-reference#what-runs-under-allowmanagedhooksonly), bevor Sie es setzen.

163* **`disableAllHooks`**: die breiteste Einstellung. In verwalteten Einstellungen stoppt es die Mods in jedem installierten Plugin, einschließlich Ihrer, und schaltet jeden Hook in Einstellungsdateien aus, daher blockiert ein `PreToolUse` Hook in Ihren verwalteten Einstellungen nichts mehr. Benutzerdefinierte Statuszeilen und `/goal` funktionieren auch nicht mehr. Lesen Sie [`disableAllHooks`](/docs/de/settings-reference#disableallhooks), bevor Sie es setzen.

164* **`disableSideloadFlags`**: lehnt `--plugin-dir` und `--plugin-url` beim Start ab, daher lädt niemand einen Mod aus einem Verzeichnis, und verhindert, dass Mods, die Claude während einer Sitzung schreibt, geladen werden. Die Einstellung lehnt auch `--agents` und `--mcp-config` ab. Lesen Sie [`disableSideloadFlags`](/docs/de/settings-reference#disablesideloadflags), bevor Sie es setzen.

165 

166Mods, die in Claude Code integriert sind, wie z. B. `AGENTS.md` Unterstützung, sind von diesen Einstellungen nicht betroffen. Jeder hat [seinen eigenen Schalter](/docs/de/plugins/mods/overview#mods-built-into-claude-code).

167 

168Ein Benutzer, dessen Mod nicht geladen wurde, findet den Grund in seinem Debug-Protokoll. [Verweigerungsmeldungen](/docs/de/plugins/mods/troubleshoot#refusal-messages) listet die Zeilen für `allowManagedHooksOnly` und `disableAllHooks` auf, und [Meldungen vom integrierten Guard](/docs/de/plugins/mods/troubleshoot#messages-from-the-built-in-guard) hat die Zeile für `allowManagedModsOnly`.

169 

170<h3 id="set-options-on-the-built-in-guard">

171 Setzen Sie Optionen auf dem integrierten Guard

172</h3>

173 

174Der integrierte Guard nimmt zwei Optionen. Setzen Sie sie in verwalteten Einstellungen unter `pluginConfigs`, mit dem Schlüssel `cc-plugin-sec-default@builtin`, wie das Beispiel in [Verhindern Sie, dass von Benutzern installierte Mods geladen werden](#stop-user-installed-mods-from-loading) tut.

175 

176Die Tabelle gibt an, was Ihre Benutzer mit jeder Option nicht gesetzt und mit ihr auf `true` gesetzt erhalten:

177 

178| Option | Nicht gesetzt | `true` |

179| :- | :- | :- |

180| `allowManagedModsOnly` | Mods von Benutzern werden geladen | Nur [die Mods Ihrer Organisation](#install-your-organizations-mods) und in Claude Code integrierte Mods werden geladen. Claude Code lehnt jeden anderen Mod ab, einschließlich eines, den ein Benutzer installiert hat oder mit `--plugin-dir` benannt hat. |

181| `allowModsToOverrideDenyRules` | Deny-Regeln haben Vorrang vor Mods von Benutzern | Ein Mod eines Benutzers, der Tool-Aufrufe genehmigt, kann einen Aufruf genehmigen, den eine `deny` Regel ablehnt |

182 

183Diese Regeln entscheiden, ob eine Option wirksam wird:

184 

185* **Die ID hat hier eine Schreibweise**: Claude Code liest die Optionen nur unter `cc-plugin-sec-default@builtin`. `prependPlugins` akzeptiert auch `sec-default@builtin`, und `pluginConfigs` nicht.

186* **Nur verwaltete Einstellungen zählen**: derselbe Eintrag in einer Benutzer-, Projekt- oder lokalen Einstellungsdatei oder in einer Datei, die mit `--settings` übergeben wird, setzt weder eine Option noch lockert eine

187* **Der Guard muss geladen werden**: Wenn Sie `prependPlugins` setzen, [benennen Sie den Guard in der Liste](#install-your-organizations-mods). Wo der Guard nicht geladen wird, gilt keine Option.

188* **Der Guard schlägt geschlossen fehl**: Wenn der Guard verwaltete Einstellungen nicht lesen kann, lehnt er jeden Mod eines Benutzers beim Laden ab. Wenn er die Deny-Regeln für einen Aufruf, den ein Mod eines Benutzers genehmigt hat, nicht überprüfen kann, lehnt er den Aufruf ab.

189 

190Die [Meldungen vom integrierten Guard](/docs/de/plugins/mods/troubleshoot#messages-from-the-built-in-guard) sind das, was Ihre Benutzer sehen, wenn eine Option gilt.

191 

192<h2 id="run-your-organization’s-own-mods">

193 Führen Sie die Mods Ihrer Organisation aus

194</h2>

195 

196Sie können Mods Ihrer eigenen für jeden Benutzer bereitstellen, wählen, wo sie relativ zu Mods von Benutzern ausgeführt werden, und einen verwenden, um eine Richtlinie durchzusetzen.

197 

198<h3 id="install-your-organizations-mods">

199 Installieren Sie die Mods Ihrer Organisation und setzen Sie die Reihenfolge

200</h3>

201 

202Die Mods Ihrer Organisation werden geladen, wo Mods von Benutzern nicht geladen werden, und können vor ihnen ausgeführt werden, daher muss Claude Code in der Lage sein zu sagen, dass ein Mod von Ihnen kam. Es behandelt einen Mod als Mod Ihrer Organisation nur, wenn alle diese Punkte zutreffen:

203 

204* Verwaltete `enabledPlugins` setzt das Plugin des Mods auf `true`

205* Verwaltete Einstellungen benennen den [Marketplace](/docs/de/plugins/create-marketplace) des Plugins als Verzeichnis auf der Maschine des Benutzers, nach absolutem Pfad. Ein `extraKnownMarketplaces` Eintrag tut das und registriert den Marketplace für den Benutzer auch.

206* Der Marketplace listet das Plugin nach einem relativen Pfad auf, daher [lädt Claude Code es an Ort und Stelle](/docs/de/plugins/loading#in-place-and-copied-plugins) aus diesem Verzeichnis

207 

208Um sie zu erfüllen, lassen Sie Ihre Geräteverwaltung das Marketplace-Verzeichnis auf den gleichen Pfad auf jeder Maschine kopieren. Machen Sie das Verzeichnis und jedes Verzeichnis darüber nur für einen Administrator beschreibbar, wie die verwaltete Einstellungsdatei. Jeder, der dort schreiben kann, kann Ihren Mod umschreiben. Verwaltete Einstellungen, die Sie über die claude.ai Admin-Konsole bereitstellen, können die Schlüssel tragen, aber sie können das Verzeichnis nicht auf eine Maschine legen.

209 

210Das Verzeichnis enthält das Manifest des Marketplace und das Plugin:

211 

212```text theme={null}

213/opt/acme/claude-plugins/

214├── .claude-plugin/

215│ └── marketplace.json

216└── plugins/

217 └── acme-guard/

218 ├── .claude-plugin/

219 │ └── plugin.json

220 └── hooks/

221 ├── hooks.json

222 └── register.js

223```

224 

225Das Manifest listet das Plugin nach seinem Pfad relativ zu diesem Verzeichnis:

226 

227```json /opt/acme/claude-plugins/.claude-plugin/marketplace.json theme={null}

228{

229 "name": "acme-tools",

230 "owner": { "name": "Acme" },

231 "plugins": [

232 { "name": "acme-guard", "source": "./plugins/acme-guard", "description": "Acme policy mod" }

233 ]

234}

235```

236 

237Ein Plugin, das Claude Code in seinen Cache kopiert, zählt als eines eines Benutzers, auch wenn verwaltete `enabledPlugins` es aktiviert. Das umfasst jedes Plugin von einer GitHub-, Git-, URL- oder npm-Quelle. Sein Mod wird unter Mods von Benutzern ausgeführt, `prependPlugins` und `appendPlugins` überspringen es, und es wird nicht unter `allowManagedModsOnly` oder `allowManagedHooksOnly` geladen. Das Debug-Protokoll des Benutzers hat eine Zeile, die mit der ID des Plugins beginnt und `is enabled by managed settings, but`.

238 

239Claude Code löst ein Ereignis aus, jedes Mal wenn es etwas tun soll, wie ein Tool ausführen, und übergibt es an jeden Mod der Reihe nach. Ein Mod, der als Ihrer zählt, [wird vor Mods von Benutzern ausgeführt](/docs/de/plugins/mods/events#the-order-mods-run-in), auch wenn Sie ihn nirgendwo auflisten. Um seinen Platz zu setzen, listen Sie seine ID in einer von zwei Einstellungen auf. Die ID ist der Name des Plugins, `@`, und der Name des Marketplace, wie z. B. `acme-guard@acme-tools`.

240 

241* **`prependPlugins`**: Ihr Mod sieht jedes Ereignis vor jedem Mod eines Benutzers und jedes Ergebnis danach. Er kann das Ereignis ändern, ablehnen oder die Mods von Benutzern überspringen.

242* **`appendPlugins`**: Ihr Mod wird nach jedem Mod eines Benutzers ausgeführt, daher sieht er nur die Ereignisse, die diese Mods weitergeben, in der Form, in der sie sie weitergeben

243 

244Dieses Beispiel deklariert den `acme-tools` Marketplace bei `/opt/acme/claude-plugins`, aktiviert `acme-guard` von ihm und führt diesen Mod zuerst aus, mit dem integrierten Guard danach:

245 

246```json managed-settings.json theme={null}

247{

248 "extraKnownMarketplaces": {

249 "acme-tools": {

250 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

251 }

252 },

253 "enabledPlugins": { "acme-guard@acme-tools": true },

254 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]

255}

256```

257 

258Jeder Schlüssel tut einen Job:

259 

260* **`extraKnownMarketplaces`**: benennt das Verzeichnis, das den `acme-tools` Marketplace enthält. `path` ist der absolute Pfad des Verzeichnisses, das `.claude-plugin/marketplace.json` enthält.

261* **`enabledPlugins`**: schaltet `acme-guard` für jeden Benutzer ein, der diese verwalteten Einstellungen erhält

262* **`prependPlugins`**: setzt `acme-guard` zuerst und den integrierten Guard zweite, beide vor jedem Mod, den ein Benutzer installiert. Claude Code folgt der Reihenfolge, die Sie auflisten.

263 

264Um zu bestätigen, dass die Maschine eines Benutzers die Einstellungen erhalten hat, siehe [Überprüfen Sie, dass eine Richtlinie in Kraft ist](/docs/de/managed-settings#check-that-a-policy-is-in-force).

265 

266Um zu bestätigen, wo der Mod ausgeführt wird, starten Sie eine Sitzung auf dieser Maschine mit `claude --debug` und suchen Sie das [Debug-Protokoll](/docs/de/plugins/mods/troubleshoot#read-the-debug-log) nach der ID des Mods:

267 

268* **`hooks module acme-guard@acme-tools loaded`, mit `tier prepend`**: Der Mod zählt als Mod Ihrer Organisation und wird zuerst ausgeführt

269* **Die gleiche Zeile mit `tier user`**: Claude Code behandelt es als Mod eines Benutzers. Eine zweite Zeile, `prependPlugins names acme-guard@acme-tools, which is not an enabled managed plugin with a hooks module; skipped`, sagt, dass die Liste es übersprungen hat.

270 

271Diese Regeln entscheiden, welche IDs in den zwei Listen wirksam werden:

272 

273* **Die Liste ersetzt die Standardeinstellung**: Wenn Sie `prependPlugins` in verwalteten Einstellungen setzen, benennen Sie `sec-default@builtin` darin, um den integrierten Guard zu behalten. Der Guard ist integriert und braucht keinen `enabledPlugins` Eintrag.

274* **Ihre eigenen IDs müssen als Ihre zählen**: In verwalteten Einstellungen überspringt Claude Code eine ID, deren Plugin nicht die drei Bedingungen für einen Mod einer Organisation erfüllt

275* **Repositories können sie nicht setzen**: Claude Code liest beide Einstellungen aus verwalteten Einstellungen und niemals aus einer Einstellungsdatei eines Repositorys. Ein Benutzer kann sie in `~/.claude/settings.json` setzen, um nur seine eigenen Mods auf einer Maschine ohne verwaltete Einstellungen zu ordnen, und nur wenn er nicht mit einem Team- oder Enterprise-Plan angemeldet ist. Überall sonst ignoriert Claude Code beide Schlüssel in Benutzereinstellungen. Eine Liste dort weder fügt noch entfernt den integrierten Guard.

276 

277<h3 id="enforce-a-policy-with-a-mod-of-your-own">

278 Erzwingen Sie eine Richtlinie mit einem Mod Ihrer eigenen

279</h3>

280 

281Um jeden Mod eines Benutzers auszuschließen, brauchen Sie keinen Mod Ihrer eigenen. Setzen Sie [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading). Schreiben Sie einen Policy-Mod, wenn Sie einige Mods von Benutzern zulassen und andere ablehnen möchten, oder um zu protokollieren, was Mods tun.

282 

283Jedes Mal wenn ein anderer Mod geladen werden soll, erhält Ihr Mod die Liste, die `claude plugin validate` druckt, in einem Ereignis namens [`plugin.register`](/docs/de/plugins/mods/reference#other-mods). Ein Mod in `prependPlugins` kann diese Liste lesen und den Mod ablehnen. Er kann auch [jeden Mods API-Aufruf nach Name hooken](/docs/de/plugins/mods/api#reach-files-processes-and-the-network), um diesen Aufruf für jeden anderen Mod zu protokollieren oder abzulehnen. Der Name ist die Methode ohne das `$.`, daher sieht ein Hook auf `fs.write` jeden `$.fs.write` Aufruf.

284 

285Dieser Policy-Mod lehnt jeden Mod eines Benutzers ab, dessen eigener Code `$.process.run` oder `$.process.spawn` aufruft. Er führt auch ein Audit-Protokoll, schreibt jeden Tool-Aufruf und jede Datei, die ein Mod schreibt, in das Debug-Protokoll. Da er zuerst ausgeführt wird, protokolliert das Protokoll, was angefordert wurde, bevor ein Mod eines Benutzers es ändert. Speichern Sie es als `acme-guard/hooks/register.js`:

286 

287```javascript acme-guard/hooks/register.js theme={null}

288// Die Methoden, die kein Mod eines Benutzers aufrufen darf, jede geschrieben als namespace.method

289const BLOCKED_CALLS = ['process.run', 'process.spawn']

290 

291export function register(on) {

292 // Wird jedes Mal ausgeführt, wenn ein anderer Mod geladen werden soll

293 on('plugin.register', async ($, e, next) => {

294 // Behalten Sie die Aufrufe in diesem Mod's Code, die auf der blockierten Liste stehen

295 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

296 if (e.tier === 'user' && blocked.length > 0) {

297 // Das Zurückgeben von refuse verhindert, dass der Mod geladen wird, und der Text ist der Grund

298 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }

299 }

300 // Lassen Sie jeden anderen Mod laden

301 return next(e)

302 })

303 

304 // Protokollieren Sie jeden Tool-Aufruf, dann lassen Sie ihn unverändert weitergehen

305 on('tool.call', async ($, e, next) => {

306 $.ui.log('audit tool.call ' + e.tool, { to: 'debug' })

307 return next(e)

308 })

309 

310 // Protokollieren Sie, welcher Mod eine Datei geschrieben hat, dann den Pfad, zitiert, weil der Mod ihn gewählt hat

311 on('fs.write', async ($, e, next) => {

312 $.ui.log('audit fs.write by ' + next.origin.plugin + ' ' + JSON.stringify(e.path), { to: 'debug' })

313 return next(e)

314 })

315}

316```

317 

318Die Datei registriert drei Hooks:

319 

320* **`plugin.register`**: entscheidet, ob ein anderer Mod geladen wird. Er lehnt einen Mod eines Benutzers ab, der eine blockierte Methode aufruft, und gibt jeden anderen Mod weiter.

321* **`tool.call`**: schreibt eine Zeile wie `audit tool.call Bash` in das Debug-Protokoll für jeden Tool-Aufruf und ändert nichts

322* **`fs.write`**: schreibt eine Zeile wie `audit fs.write by reader "/tmp/notes.md"` für jeden `$.fs.write` Aufruf, den ein anderer Mod macht, und ändert nichts. Der Name des Mods kommt zuerst und der Pfad ist zitiert, daher kann ein Pfad, den ein Mod wählt, nicht als ein anderes Feld der Zeile durchgehen.

323 

324Der `plugin.register` Hook liest zwei Felder des Ereignisses:

325 

326* **`e.tier`**: wo der Mod ausgeführt würde, eines von `prepend`, `user`, `append` oder `builtin`. Jeder Mod, den eine Person installiert, ist `user`.

327* **`e.uses.calls`**: die Mods API-Methoden, die der Mod aufruft, jede geschrieben als `namespace.method` wie `process.run`, ohne das `$.`, das `claude plugin validate` druckt

328 

329Wenn ein Benutzer einen Mod installiert, der `$.process.run` aufruft, wird der Mod nicht geladen, und sein Debug-Protokoll hat eine Zeile, die mit `refused by acme-guard:` und Ihrem Grund endet. Die Verweigerung erreicht auch das Transkript in einer [Sitzung, die ein Plugin-Verzeichnis neu lädt](/docs/de/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing). Um einen Aufruf zu blockieren, ohne den ganzen Mod abzulehnen, geben Sie `{ deny: 'your reason' }` von einem Hook auf den Namen dieses Aufrufs zurück.

330 

331Um die Audit-Zeilen woanders als im Debug-Protokoll zu senden, rufen Sie `$.http.fetch` von den gleichen Hooks auf.

332 

333Eine Sitzung kann ohne Ihren Mod ausgeführt werden. Wenn der Worker-Thread, der installierte Mods ausführt, [dreimal abstürzt](/docs/de/plugins/mods/troubleshoot#mods-that-run-in-the-hooks-worker-are-off-for-this-session), entlädt Claude Code jeden Mod, der nicht integriert ist, einschließlich Ihres, bis der Benutzer `/reload-plugins` ausführt oder eine neue Sitzung startet. Und ein Benutzer, der Claude Code mit `--safe-mode` startet, wird ohne installierte Mods ausgeführt, einschließlich Ihrer.

334 

335[Erstellen Sie einen Mod](/docs/de/plugins/mods/create) behandelt die Dateien, die ein Mod braucht. [Testen Sie einen Mod, der andere Mods beurteilt](/docs/de/plugins/mods/test#test-a-mod-that-judges-other-mods) hat eine Test-Datei für diesen Policy-Mod.

336 

337<h4 id="refuse-mods-when-your-check-fails">

338 Lehnen Sie Mods ab, wenn Ihre Überprüfung fehlschlägt

339</h4>

340 

341Wenn Ihr `plugin.register` Hook wirft oder seine Zeitlimit überschreitet, überspringt Claude Code den Hook, daher schlägt die Überprüfung offen fehl und der Mod, den er überprüft, wird geladen. Um geschlossen fehlzuschlagen und Mods von Benutzern abzulehnen, verschieben Sie die Überprüfung in eine benannte Funktion und fügen Sie einen `.catch` Handler hinzu, der die Verweigerung zurückgibt. Diese Version der Datei zeigt nur den `plugin.register` Hook, daher behalten Sie die zwei Audit-Hooks aus der ersten Version in `register`:

342 

343```javascript acme-guard/hooks/register.js theme={null}

344const BLOCKED_CALLS = ['process.run', 'process.spawn']

345 

346// Die gleiche Überprüfung wie zuvor, in eine Funktion ihrer eigenen verschoben

347async function checkMod($, e, next) {

348 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

349 if (e.tier === 'user' && blocked.length > 0) {

350 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }

351 }

352 return next(e)

353}

354 

355export function register(on) {

356 // Der Handler wird nur ausgeführt, wenn checkMod wirft oder sein Zeitlimit überschreitet

357 on('plugin.register', checkMod).catch(async ($, e, next) => {

358 // Lassen Sie die Mods Ihrer Organisation und integrierte Mods laden

359 if (e.tier !== 'user') return next(e)

360 // Lehnen Sie den Mod eines Benutzers ab, der nicht überprüft werden konnte

361 return { refuse: 'Acme policy check failed, so this mod was not loaded' }

362 })

363}

364```

365 

366Mit dem Handler an Ort und Stelle wird ein Mod, der überprüft wurde, als die Überprüfung wirft oder das Zeitlimit überschreitet, nicht geladen, und die Verweigerungszeile trägt den zweiten Grund, wie in `refused by acme-guard: Acme policy check failed, so this mod was not loaded`. Der Handler gibt jeden Mod außerhalb des `user` Tier an `next(e)` weiter, daher stoppt eine fehlgeschlagene Überprüfung nicht die Mods, die Ihre Organisation auflistet. [Behandeln Sie einen Hook, der fehlschlägt](/docs/de/plugins/mods/events#handle-a-hook-that-fails), behandelt `.catch` für andere Ereignisse.

367 

368<h2 id="next-steps">

369 Nächste Schritte

370</h2>

371 

372* [Plugin-Sicherheit](/docs/de/plugins/security): was jedes Plugin auf der Maschine eines Benutzers tun kann und wie man eines überprüft, bevor es installiert wird

373* [Mods Übersicht](/docs/de/plugins/mods/overview): was ein Mod ist und wie er sich mit Hooks, Skills und MCP-Servern vergleicht

374* [Die Reihenfolge, in der Mods ausgeführt werden](/docs/de/plugins/mods/events#the-order-mods-run-in): wie `prependPlugins` und `appendPlugins` mit Mods von Benutzern passen

375* [Einstellungen und Umgebungsvariablen](/docs/de/plugins/mods/reference#settings-and-environment-variables): jede Einstellung, die auf dieser Seite benannt wird, in einer Tabelle

plugins/mods/api.md +218 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Verwenden Sie die mods API

6 

7> Rufen Sie die mods API aus einem Claude Code Mod auf, um Befehle und Tools hinzuzufügen, ein Modell aufzurufen, Arbeiten auf einem Timer auszuführen, Nachrichten an andere Sitzungen zu senden und auf Dateien und das Netzwerk zuzugreifen.

8 

9Die mods API ist die Menge von Methoden, die ein Mod aufruft, um zu handeln: Befehle und Tools hinzufügen, ein Modell aufrufen, Arbeiten zwischen Ereignissen ausführen und auf das Dateisystem, Prozesse und das Netzwerk zugreifen. Jeder Hook erhält sie als sein erstes Argument, `$`, mit den Methoden in Namespaces wie `$.ui` und `$.fs` gruppiert. [Ereignisse](/docs/de/plugins/mods/events) entscheiden, wann ein Hook ausgeführt wird, und die mods API ist das, was der Hook aufruft, sobald er dies tut.

10 

11Erstellen Sie Ihren [ersten Mod](/docs/de/plugins/mods/create), bevor Sie hier beginnen. Für jede Methode siehe [mods API Methoden](/docs/de/plugins/mods/reference#mods-api-methods) oder lesen Sie [die Typen für Ihren Build](/docs/de/plugins/mods/create#get-the-types-for-your-build).

12 

13<h2 id="add-a-command-or-a-tool">

14 Fügen Sie einen Befehl oder ein Tool hinzu

15</h2>

16 

17Ein Mod kann einen Befehl hinzufügen, den der Benutzer ausführen kann, und ein Tool, das Claude aufrufen kann. Registrieren Sie beide in einem [`session.start`](/docs/de/plugins/mods/reference#session) Hook. Claude Code wartet auf diesen Hook vor der ersten Eingabeaufforderung, sodass das, was Sie registrieren, ab der ersten Runde verfügbar ist.

18 

19<h3 id="add-a-command">

20 Fügen Sie einen Befehl hinzu

21</h3>

22 

23Ein Befehl ist für den Benutzer. Registrieren Sie ihn und behandeln Sie dann [`command.run`](/docs/de/plugins/mods/reference#commands-and-configuration) für seinen Namen. Dieses Beispiel fügt einen `/standup` Befehl hinzu, der eine optionale Anzahl von Tagen akzeptiert:

24 

25```javascript theme={null}

26on('session.start', async ($, e, next) => {

27 // Add /standup to the command list, with the description the user sees there

28 await $.command.register({ name: 'standup', description: 'Summarize what changed today', argumentHint: '[days]' })

29 return next(e)

30})

31 

32// The matcher limits the hook to /standup, so other commands don't reach it

33on('command.run', { command: 'standup' }, async ($, e) => {

34 // e.args is the text typed after the command name, or an empty string

35 return { text: 'Summary for the last ' + (e.args || '1') + ' day(s): ...' }

36})

37```

38 

39Nach dem Start der Sitzung erscheint `/standup` mit seiner Beschreibung in der Liste, die Sie sehen, wenn Sie `/` eingeben. Der `argumentHint` wird in der Eingabeaufforderung angezeigt, nachdem Sie den Befehl und ein Leerzeichen eingeben, wie in `/standup [days]`. Wenn Sie `/standup 3` ausführen, gibt der zweite Hook `Summary for the last 3 day(s): ...` zurück, und das Transkript zeigt diesen Text nach dem Namen des Plugins. Der Hook ruft niemals `next` auf, da der Befehl kein anderes Verhalten als Ihres hat.

40 

41Der `text`, den Sie zurückgeben, wird im Transkript gedruckt und Claude liest ihn. Um nichts zu drucken, wie ein Befehl, der nur einen [Bereich](/docs/de/plugins/mods/interface#pick-where-to-draw) öffnet, geben Sie `{}` zurück. Um den Befehl auszuführen, während Claude arbeitet, fügen Sie `immediate: true` zur Registrierung hinzu.

42 

43Wählen Sie einen Namen, den kein integrierter Befehl verwendet. Geben Sie `/` in einer Sitzung ein, um sie zu sehen. `$.command.register` wirft einen Fehler für einen verwendeten Namen mit einer Nachricht wie `"/focus" refused: it is the built-in /focus"`. Ein Hook, der einen Fehler wirft, wird übersprungen, sodass der Rest Ihres `session.start` Hooks auch nicht ausgeführt wird. Registrieren Sie Befehle zuletzt in diesem Hook oder wickeln Sie den Aufruf in `try` und `catch`.

44 

45<h3 id="add-a-tool">

46 Fügen Sie ein Tool hinzu

47</h3>

48 

49Ein Tool ist für Claude. Registrieren Sie es mit einem Namen, einer Beschreibung, die Claude liest, und einem JSON Schema für seine Eingabe. Claude sieht es unter einem längeren Namen, der aus `mcp__`, dem Namen Ihres Plugins, zwei Unterstrichen und dem Namen besteht, den Sie registriert haben. Sie behandeln seine Aufrufe in einem [`tool.call`](/docs/de/plugins/mods/events#guard-or-change-a-tool-call) Hook, der auf diesen vollständigen Namen gefiltert ist. Dieses Beispiel aus einem Plugin namens `my-mod` registriert `ticket`, sodass der vollständige Name `mcp__my-mod__ticket` ist. Es gibt Claude ein Tool, das ein Ticket in einem Issue-Tracker nachschlägt:

50 

51```javascript theme={null}

52on('session.start', async ($, e, next) => {

53 await $.tool.register({

54 name: 'ticket',

55 // Claude decides when to call the tool from this description

56 description: 'Look up a ticket by its id and return its title and status',

57 // The arguments Claude has to send: one required string named id

58 inputSchema: { type: 'object', properties: { id: { type: 'string' } }, required: ['id'] },

59 })

60 return next(e)

61})

62 

63// The full tool name is mcp__, the plugin's name, and the registered name

64on('tool.call', { tool: 'mcp__my-mod__ticket' }, async ($, e) => {

65 // The tool's arguments are fields of e, so the id is e.id

66 const response = await $.http.fetch('https://tickets.example.com/api/' + encodeURIComponent(e.id))

67 // Return a result either way, so Claude learns when the lookup failed

68 return { result: response.ok ? response.text : 'Lookup failed with status ' + response.status }

69})

70```

71 

72Wenn Sie nach einem Ticket fragen, kann Claude `mcp__my-mod__ticket` mit seiner ID aufrufen. Der zweite Hook ruft das Ticket ab und gibt den Antwortkörper zurück, den Claude als Ergebnis des Tools liest. Wenn der Server mit einem Fehlerstatus antwortet, liest Claude `Lookup failed with status` und die Nummer.

73 

74<h2 id="call-a-model">

75 Rufen Sie ein Modell auf

76</h2>

77 

78Ein Mod kann ein Modell eine Frage stellen, außerhalb des Gesprächs, für eine kleine Aufgabe wie das Sortieren oder Zusammenfassen eines Textstücks. `$.model.complete` sendet eine Eingabeaufforderung an ein Modell mit den Anmeldedaten Ihrer Sitzung und wird in die Antwort aufgelöst. Es hat keine Gesprächsverlauf.

79 

80Dieser Hook beantwortet einen `/triage` Befehl, [registriert als Befehl](#add-a-command), indem er ein kleines Modell fragt, den nach dem Befehl eingegebenen Text zu kennzeichnen:

81 

82```javascript theme={null}

83on('command.run', { command: 'triage' }, async ($, e) => {

84 const r = await $.model.complete({

85 model: 'haiku',

86 // The system prompt sets the job, and the prompt carries the text to label

87 system: 'Reply with one word: bug, feature, or question.',

88 prompt: e.args,

89 // One word needs few tokens, and the call gives up after 15 seconds

90 maxTokens: 20,

91 timeoutMs: 15000,

92 })

93 // r.text exists only when the model answered, so check r.isAnswered first

94 const label = r.isAnswered ? r.text.trim() : 'unknown'

95 return { text: 'Label: ' + label }

96})

97```

98 

99Wenn Sie `/triage the export button does nothing` ausführen, sendet der Mod diesen Text an das Modell und druckt seine Antwort, wie `Label: bug`. Claudes Gespräch ist nicht Teil der Anfrage. Wenn das Modell nicht antwortet, ist die Bezeichnung `unknown`.

100 

101Ein Claude API Fehler lehnt den Aufruf nicht ab, daher überprüfen Sie `r.isAnswered` und lesen Sie `r.reason`, wenn es `false` ist. Der Aufruf lehnt nur für eine Anfrage ab, die Claude Code nicht sendet, wie ein Modell, das Ihre Organisation blockiert. [Die Typen für Ihren Build](/docs/de/plugins/mods/create#get-the-types-for-your-build) listen die anderen Optionen auf, wie `effort`, und die [Limits](/docs/de/plugins/mods/reference#limits) geben den `maxTokens` Standard an.

102 

103`$.model.fork({ prompt })` stellt stattdessen eine Frage über das aktuelle Gespräch, mit demselben Modell und Systemaufforderung, sodass die Claude API die meisten davon aus dem Prompt Cache bedient.

104 

105Diese Aufrufe verwenden den Plan oder API-Schlüssel des Benutzers.

106 

107<h2 id="run-work-in-the-background">

108 Führen Sie Arbeiten im Hintergrund aus

109</h2>

110 

111Arbeiten, die ein Ereignis überdauern, wie das Überprüfen von etwas einmal pro Minute, laufen auf einem Timer, den Sie von `session.start` starten. Ein Hook selbst läuft für ein Ereignis und hat ein Zeitlimit von 10 Sekunden seiner eigenen Laufzeit. Die Zeit, die auf `next` oder auf einen mods API Aufruf wartet, zählt nicht, außer einem `$.clock.sleep`. `$.clock.every` und `$.clock.after` ersetzen `setInterval` und `setTimeout`, mit der Verzögerung in Millisekunden zuerst: `$.clock.after(5000, fn)` ruft `fn` einmal auf, fünf Sekunden von jetzt an. Jeder gibt einen Timer mit einer `cancel()` Methode zurück, und `await $.clock.now()` gibt die Zeit in Millisekunden an.

112 

113Dieser Hook schlägt die Überprüfungen eines Pull Requests einmal pro Minute nach und zeigt das Ergebnis unter der Eingabeaufforderung an. `summarize` ist eine Funktion Ihres eigenen, die die JSON-Ausgabe des Befehls in ein paar Wörter umwandelt:

114 

115```javascript theme={null}

116on('session.start', async ($, e, next) => {

117 // Call the function every 60,000 milliseconds, starting one minute from now

118 $.clock.every(60_000, async () => {

119 const status = await $.process.run(['gh', 'pr', 'checks', '--json', 'state'])

120 // Replace the line under the prompt with the latest summary

121 $.ui.status('checks: ' + summarize(status.stdout))

122 })

123 // Return without waiting for the timer, so the session starts right away

124 return next(e)

125})

126```

127 

128Die Sitzung startet wie gewohnt. Eine Minute später erscheint eine Zeile unter der Eingabeaufforderung mit einem `⚠`, dem Namen des Mods und dann `checks:` und Ihrer Zusammenfassung. Sie wird einmal pro Minute danach ersetzt. Der Callback des Timers läuft außerhalb eines Ereignisses, sodass er zwischen Runden weiterläuft und keinen startet. Wenn der Callback einen Fehler wirft, geht der Fehler zum [Debug-Protokoll](/docs/de/plugins/mods/troubleshoot#read-the-debug-log) und der Timer läuft beim nächsten Intervall erneut.

129 

130<h3 id="show-something-without-starting-a-turn">

131 Zeigen Sie etwas an, ohne eine Runde zu starten

132</h3>

133 

134Ein Hintergrund-Job kann dem Benutzer etwas anzeigen, ohne eine Runde zu starten. Jeder dieser Aufrufe setzt Text an einen anderen Ort:

135 

136| Aufruf | Was der Benutzer sieht |

137| :- | :- |

138| `$.ui.status(text)` | Eine Zeile unter der Eingabeaufforderung, die bleibt, bis Sie sie ändern. Sie beginnt mit `⚠` und dem Namen des Mods, wie in `⚠ my-mod: checks: 3 passing`. |

139| `$.ui.toast(text)` | Ein kleines Feld oben rechts, mit dem Namen des Mods über dem Text, das nach ein paar Sekunden verschwindet |

140| `$.ui.log(text)` | Eine schwache Zeile im Transkript, die Claude nicht liest. Sie beginnt mit `●` und dem Namen des Mods, wie in `● my-mod: build finished`. |

141 

142<h3 id="start-a-turn-from-a-background-job">

143 Starten Sie eine Runde aus einem Hintergrund-Job

144</h3>

145 

146Wenn ein Hintergrund-Job etwas findet, das Claudes Aufmerksamkeit benötigt, kann er eine Runde starten, indem er eine Eingabeaufforderung mit `$.prompt.submit({ text })` einreicht. Claude liest den Text nach einem Satz, der Ihren Mod als Absender benennt. Um ihn als die eigenen Worte des Benutzers zu senden, ohne diesen Satz, fügen Sie `asUser: true` hinzu. Der Aufruf wartet, bis die Sitzung untätig ist, und startet dann eine neue Runde. Er wird aufgelöst, wenn diese Runde startet, daher `await` ihn nicht in einem Handler, der läuft, während Claude arbeitet.

147 

148<h3 id="stop-background-work">

149 Beenden Sie Hintergrund-Arbeiten

150</h3>

151 

152Hintergrund-Arbeiten enden auf zwei Arten. Timer enden, wenn das Modul neu geladen wird. Für lang laufende Arbeiten in einem Hook ist [`next.signal`](/docs/de/plugins/mods/reference#the-hook-function) ein `AbortSignal`, das abbricht, wenn das Ereignis, das Ihr Hook behandelt, aufgegeben wird, zum Beispiel wenn der Benutzer unterbricht, daher übergeben Sie es an alles, das lang läuft.

153 

154<h2 id="send-and-receive-messages-between-sessions">

155 Senden und empfangen Sie Nachrichten zwischen Sitzungen

156</h2>

157 

158Ein Mod kann eine Klartextnachricht an eine andere Ihrer Sitzungen oder an einen der Subagenten dieser Sitzung senden und die Nachrichten beobachten, die ankommen und gehen. `$.session.send({ to, text })` sendet eine, die gleiche Lieferung, die das SendMessage Tool macht. `to` ist `{ sessionId }` für eine Sitzung, `{ agentId }` für einen Subagenten von `$.agent.list()` oder die Zeichenkettenadresse, von der eine empfangene Nachricht kam. Der Aufruf wird aufgelöst, sobald die Nachricht in die Warteschlange eingereiht ist, mit `{ isDelivered: true }`. Wenn nichts geliefert wurde, wird es mit `{ isDelivered: false, reason }` aufgelöst, und `reason` sagt, warum.

159 

160Dieser Hook beantwortet einen `/ping` Befehl, [registriert als Befehl](#add-a-command), indem er die Sitzung fragt, deren ID Sie nach ihm eingeben, um einen Status zu erhalten:

161 

162```javascript theme={null}

163on('command.run', { command: 'ping' }, async ($, e) => {

164 // e.args is the session id typed after /ping

165 const sent = await $.session.send({ to: { sessionId: e.args }, text: 'Status? One line.' })

166 // The call resolves either way, so check isDelivered to learn what happened

167 if (!sent.isDelivered) $.ui.toast('Not delivered: ' + sent.reason)

168 // An empty result prints nothing in this session's transcript

169 return {}

170})

171```

172 

173Wenn die Nachricht in die Warteschlange eingereiht wird, erscheint nichts in Ihrer Sitzung, und Claudes andere Sitzung liest `Status? One line.` Wenn nichts geliefert wurde, gibt ein kleines Feld oben rechts den Grund an und verschwindet nach ein paar Sekunden.

174 

175Zwei Ereignisse lassen einen Mod die Nachrichten beobachten. Geben Sie `next(e)` von beiden zurück, um jede Nachricht unverändert durchzuleiten:

176 

177| Ereignis | Wird ausgelöst, wenn | Nützliche Felder |

178| :- | :- | :- |

179| `session.receive` | Eine Nachricht kommt für diese Sitzung an, bevor Claude sie liest | `e.text` und `e.origin.kind`, wie `peer` oder `peer-send-message` für eine andere Sitzung oder einen Agenten, `task-notification` oder `scheduled-trigger`. Geben Sie `{ consumed: reason }` zurück, um sie von Claude fernzuhalten. |

180| `session.send` | Eine Nachricht ist dabei zu gehen, vom SendMessage Tool oder einem Mod | `e.to`, `e.text` und `e.origin.kind`, das `model` oder `plugin` ist |

181 

182Eine Sitzung, die auf [eingehende Nachrichten ablehnen](/docs/de/cross-session-messaging#control-inbound-messages) eingestellt ist, lehnt eine Nachricht ab, bevor `session.receive` ausgelöst wird, daher sieht ein Hook sie nie. Eine Nachricht, die für Ihre Genehmigung gehalten wird, erreicht zuerst den Hook, daher kann ein Mod eine Nachricht lesen, die Sie noch nicht genehmigt haben. Der `next(e)` des Hooks lehnt ab, wenn die Nachricht nicht geliefert wird.

183 

184Der Name des Absenders auf einer empfangenen Nachricht ist das, was der Absender geschrieben hat, daher treffen Sie keine Entscheidung darauf.

185 

186<h2 id="reach-files-processes-and-the-network">

187 Erreichen Sie Dateien, Prozesse und das Netzwerk

188</h2>

189 

190Ein Mod erreicht das Dateisystem, Prozesse und das Netzwerk durch die mods API, mit den gleichen Berechtigungen wie der Benutzer, der Claude Code ausführt. Das Hooks-Modul selbst hat keine Node.js APIs, keine Timer-Globale wie `setTimeout` und keinen Netzwerk- oder Dateizugriff. Standard-JavaScript und Web-APIs wie `URL`, `TextEncoder`, `AbortController` und `crypto.subtle` sind verfügbar. Jeder Namespace unten behandelt eine Art von Zugriff:

191 

192| Namespace | Was es tut |

193| :- | :- |

194| `$.fs` | `read(path)`, `write(path, text)`, `exists(path)`, `stat(path)` und `list(path)` arbeiten mit Dateien und Verzeichnissen |

195| `$.process` | `run(['git', 'status'])` startet einen Befehl und wird aufgelöst, wenn er beendet wird. `spawn` streamt die Ausgabe eines lang laufenden Befehls. |

196| `$.http` | `fetch(url, init)` über `http` oder `https`. Es wird aufgelöst zu `{ status, ok, headers, text }`, sobald der Körper gelesen wird. |

197| `$.store` | Ein JSON-Schlüssel-Wert-Speicher Ihres eigenen Plugins, der zwischen Sitzungen beibehalten wird |

198| `$.env` | `get` und `set` Umgebungsvariablen. Schreiben Sie den Namen als Literalzeichenkette. |

199| `$.settings` | `read` was die Einstellungsdateien und verwaltete Richtlinie halten |

200| `$.session` | `messages()` gibt das Transkript als eine Liste von `{ role, text, toolUses }` zurück. Auch das Arbeitsverzeichnis, Modell und mehr. [`usage()`](/docs/de/plugins/mods/reference#mods-api-methods) gibt die Nutzung des Kontextfensters und Planlimits zurück. |

201| `$.mcp` | `call` ein Tool auf einem verbundenen MCP Server |

202 

203Dateien und Prozesse haben ein paar Regeln ihrer eigenen:

204 

205* **Pfade**: ein relativer Pfad ist unter dem Arbeitsverzeichnis der Sitzung

206* **`$.fs.list`**: gibt die Einträge eines Verzeichnisses als `{ name, kind, size, isLink }` zurück und steigt nicht in Unterverzeichnisse ab

207* **`$.process.run`**: nimmt eine Argumentliste und verwendet keine Shell. Es wird aufgelöst zu `{ exitCode, stdout, stderr }` unabhängig vom Exit-Code. Es lehnt ab, wenn das Programm nicht starten kann oder beim Timeout noch läuft, das standardmäßig 30 Sekunden beträgt, daher wickeln Sie es in `try` und `catch`.

208 

209Jeder dieser Aufrufe ist selbst ein Ereignis, benannt nach seinem Namespace und seiner Methode ohne das `$.`, wie `fs.read` für `$.fs.read`. Ein Mod [früher in der Kette](/docs/de/plugins/mods/events#the-order-mods-run-in) kann Ihren Aufruf beobachten, umschreiben oder ablehnen, was ist, wie eine Organisation einschränkt, was Mods erreichen.

210 

211<h2 id="next-steps">

212 Nächste Schritte

213</h2>

214 

215* [Reagieren Sie auf Ereignisse](/docs/de/plugins/mods/events): Hook Tool-Aufrufe, Eingabeaufforderungen und Runden

216* [Zeichnen Sie in der Benutzeroberfläche](/docs/de/plugins/mods/interface): zeigen Sie, was Ihr Mod sammelt, in einem Bereich oder über der Eingabeaufforderung

217* [Testen Sie einen Mod](/docs/de/plugins/mods/test): stub jeden dieser Aufrufe in einem Test

218* [Mods Referenz](/docs/de/plugins/mods/reference): jedes Ereignis, jede mods API Methode und die Limits

plugins/mods/create.md +395 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Erstelle einen Mod

6 

7> Lasse Claude einen Claude Code Mod aus einer Beschreibung schreiben, oder schreibe selbst einen, der Werkzeugaufrufe zählt und einen Befehl hinzufügt. Lerne die Reload- und Validierungsschleife.

8 

9Ein Mod ist ein Claude Code [Plugin](/docs/de/plugins/overview) mit einer Eingabedatei, genannt das Hooks-Modul: eine JavaScript- oder TypeScript-Datei, deren Funktionen Claude Code aufruft, wenn Ereignisse auftreten. Es gibt zwei Möglichkeiten, einen zu erstellen:

10 

11* **Claude bitten, ihn zu schreiben**: [beschreibe, was du möchtest](#ask-claude-for-a-mod) in einer Claude Code Sitzung

12* **Schreibe ihn selbst**: [folge dem Tutorial](#write-a-mod-yourself), um zu lernen, wie der Code eines Mods funktioniert. Du brauchst Node.js, einen Bundler oder einen Build-Schritt nicht, da Claude Code `.js` und `.ts` Dateien direkt lädt.

13 

14Wenn du dich noch nicht entschieden hast, ob ein Mod das richtige Werkzeug ist, lies zuerst den [Vergleich in der Übersicht](/docs/de/plugins/mods/overview#compare-mods-settings-hooks-skills-and-mcp-servers).

15 

16<Note>

17 Mods erfordern Claude Code v2.1.287 oder später. Führe in deiner Shell `claude --version` aus, um dies zu überprüfen. Um zu sehen, ob Mods für dich geladen werden können, siehe [Überprüfe, ob Mods geladen werden können](/docs/de/plugins/mods/troubleshoot#check-whether-mods-can-load).

18</Note>

19 

20<h2 id="ask-claude-for-a-mod">

21 Claude um einen Mod bitten

22</h2>

23 

24Beschreibe den Mod, den du möchtest, in einer interaktiven Claude Code Sitzung, und Claude schreibt ihn. Claude arbeitet von einer integrierten [Skill](/docs/de/skills) namens `plugin-authoring`, die ihm sagt, wo der Mod geschrieben werden soll, welche Ereignisse und Methoden deine Version hat, und wie der Mod geladen wird. Claude kann die Skill laden, wenn du um einen Mod bittest, oder du kannst sie selbst laden, indem du `/plugin-authoring` an der Claude Code Eingabeaufforderung ausführst.

25 

26Der Mod wird ausgeführt, sobald du ihn genehmigst, außer in [Sitzungen, in denen ein von Claude geschriebener Mod nicht geladen werden kann](#sessions-that-skip-the-approval).

27 

28<Steps>

29 <Step title="Beschreibe den Mod">

30 Bitte um den Mod in deinen eigenen Worten, zum Beispiel `make a mod that shows the current git branch above the prompt`. Claude schreibt den Mod in einem eigenen Verzeichnis im Mods-Ordner der Sitzung, das `~/.claude/dev-mods/` gefolgt von der Sitzungs-ID ist. Der vollständige Pfad eines Mods sieht wie `~/.claude/dev-mods/3f2a9c1e-5b7d-4e8a-9c21-6d0f4b8a7e13/git-branch/` aus.

31 

32 <Note>

33 In den [Berechtigungsmodi](/docs/de/permission-modes#protected-paths) `default` und `acceptEdits` fragt Claude Code, bevor Claude jede der Dateien des Mods erstellt, da `~/.claude` ein geschützter Pfad ist. Genehmige jede Datei, wenn sie auftaucht.

34 </Note>

35 </Step>

36 

37 <Step title="Genehmige den Mod">

38 Wenn Claude die erste Datei speichert, fragt Claude Code, ob Hot Reloading für die Sitzung aktiviert werden soll. Hot Reloading führt die Mods aus, die Claude in dieser Sitzung schreibt, und nimmt jede spätere Änderung auf.

39 

40 Wähle eine dieser Antworten:

41 

42 * **Für diese Sitzung aktivieren**: Die Mods im Mods-Ordner der Sitzung werden geladen, wenn die Runde endet, und werden am Ende jeder Runde neu geladen, die sie ändert. Deine Antwort gilt für die Sitzung, auch nachdem du sie fortgesetzt hast.

43 * **Nicht jetzt**: Nichts wird jetzt geladen. Die Dateien bleiben dort, wo Claude sie geschrieben hat, und die Mods werden beim nächsten Start dieser Sitzung geladen. Um zu verhindern, dass ein Mod jemals geladen wird, lösche sein Verzeichnis.

44 </Step>

45 

46 <Step title="Überprüfe, dass der Mod geladen wurde">

47 Führe `/plugin` an der Claude Code Eingabeaufforderung aus und drücke Tab, bis die Registerkarte **Installed** ausgewählt ist. Sie listet den Mod auf, und du kannst ihn dort ausschalten.

48 </Step>

49 

50 <Step title="Probiere den Mod aus">

51 Nutze das, worum du gebeten hast. Für die Beispiel-Eingabeaufforderung erscheint der aktuelle Branchname über dem Eingabefeld. Wenn der Mod nicht das tut, was du wolltest, sag Claude, was geändert werden soll. Der Mod wird am Ende jeder Runde neu geladen, die seine Dateien ändert, sodass du die Änderung ausprobieren kannst, sobald Claude fertig ist.

52 </Step>

53</Steps>

54 

55<h3 id="use-the-mod-in-other-sessions">

56 Verwende den Mod in anderen Sitzungen

57</h3>

58 

59Ein Mod, den Claude geschrieben hat, wird nur in der Sitzung geladen, die ihn erstellt hat, und Claude Code löscht den Mods-Ordner dieser Sitzung, sobald er älter als [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays) ist. Um den Mod zu behalten, kopiere sein Verzeichnis aus dem Mods-Ordner an einen Ort deiner Wahl, z. B. `~/mods/git-branch`. Wähle dann, wie du ihn laden möchtest:

60 

61* **In einer Sitzung, die du startest**: Führe in deiner Shell `claude --plugin-dir ~/mods/git-branch` aus

62* **Für andere Personen**: [Füge ihn zu einem Marketplace hinzu](#share-your-mod), damit sie ihn installieren können

63 

64<h3 id="sessions-that-skip-the-approval">

65 Sitzungen, in denen ein von Claude geschriebener Mod nicht geladen werden kann

66</h3>

67 

68Ein Mod, den Claude schreibt, wird nur geladen, nachdem du ihn genehmigt hast, in einem vertrauenswürdigen Arbeitsbereich, in dem Mods ausgeführt werden dürfen. In diesen Sitzungen wird er nicht geladen:

69 

70* **Niemand ist da, um zu genehmigen**: Die Sitzung kann dir keine Eingabeaufforderung anzeigen, wie in einem `claude -p` Lauf oder im [`dontAsk` Modus](/docs/de/permission-modes)

71* **Der Arbeitsbereich ist nicht vertrauenswürdig**: Du hast die Vertrauensaufforderung für das Verzeichnis nicht akzeptiert

72* **Mods sind gestoppt**: Du hast mit `--safe-mode` oder `--bare` gestartet, du hast `disableAllHooks` gesetzt, oder die [verwalteten Einstellungen](/docs/de/plugins/mods/admin#choose-how-much-to-allow) deiner Organisation blockieren es

73 

74<h2 id="write-a-mod-yourself">

75 Schreibe einen Mod selbst

76</h2>

77 

78In diesem Tutorial erstellst du einen Mod namens `first-mod`, der die Werkzeugaufrufe zählt, die Claude macht, die Anzahl neben dem Spinner anzeigt, während Claude arbeitet, und einen `/tally` Befehl hinzufügt, der sie ausdruckt. Dann liest du die Typdeklarationen, die Claude Code neben deinem Mod schreibt, und führst `claude plugin validate` aus. Zusammen zeigen sie dir die Ereignisse und Methoden, die deine Version bietet, und was Claude Code aus deinem Code liest.

79 

80Diese Aufzeichnung zeigt den fertigen Mod. Der Spinner zählt Werkzeugaufrufe, `/tally` druckt die Anzahl, und eine Bearbeitung des Codes wird wirksam, während die Sitzung läuft:

81 

82<Frame>

83 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-first-mod-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=eb561134afa90375777408453ba51c77" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. The spinner reads 'Thinking · tool calls: 1' and the count rises as Claude works. The /tally command prints 'first-mod: Claude has made 3 tool calls since this mod loaded'. A line says first-mod reloaded and lists its four hooks. On the next prompt the spinner reads 'Thinking · tools used: 1'." data-path="images/mods-first-mod-light.mp4" />

84 

85 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-first-mod-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=09779dadc7ef66c2b1e2da0c2e31ac72" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. The spinner reads 'Thinking · tool calls: 1' and the count rises as Claude works. The /tally command prints 'first-mod: Claude has made 3 tool calls since this mod loaded'. A line says first-mod reloaded and lists its four hooks. On the next prompt the spinner reads 'Thinking · tools used: 1'." data-path="images/mods-first-mod-dark.mp4" />

86</Frame>

87 

88Du schreibst drei Dateien:

89 

90```text theme={null}

91first-mod/

92├── .claude-plugin/

93│ └── plugin.json

94└── hooks/

95 ├── hooks.json

96 └── register.js

97```

98 

99* **`plugin.json`**: das [Manifest](/docs/de/plugins/manifest-reference) des Plugins

100* **`hooks.json`**: [verweist auf deine Codedatei](/docs/de/plugins/mods/reference#files)

101* **`register.js`**: dein Code, genannt das Hooks-Modul

102 

103<Steps>

104 <Step title="Erstelle das Plugin-Verzeichnis">

105 Erstelle die zwei Verzeichnisse, die die Dateien enthalten:

106 

107 <Tabs>

108 <Tab title="Bash oder Zsh">

109 ```bash theme={null}

110 mkdir -p first-mod/.claude-plugin first-mod/hooks

111 ```

112 </Tab>

113 

114 <Tab title="PowerShell">

115 ```powershell theme={null}

116 New-Item -ItemType Directory -Force first-mod\.claude-plugin, first-mod\hooks

117 ```

118 </Tab>

119 </Tabs>

120 </Step>

121 

122 <Step title="Schreibe das Manifest">

123 Ein Mod ist ein Plugin, und ein Mod braucht ein [Manifest](/docs/de/plugins/manifest-reference). Das Manifest dieses Mods hat keine speziellen Felder. Speichere dies als `first-mod/.claude-plugin/plugin.json`:

124 

125 ```json first-mod/.claude-plugin/plugin.json theme={null}

126 {

127 "name": "first-mod",

128 "version": "0.1.0",

129 "description": "Counts Claude's tool calls, shows the count beside the spinner, and adds a /tally command",

130 "author": { "name": "Your Name" }

131 }

132 ```

133 </Step>

134 

135 <Step title="Sag Claude Code, wo dein Code ist">

136 Wenn Claude Code ein Plugin lädt, liest es die `hooks/hooks.json` des Plugins. Der `modules` Schlüssel in dieser Datei gibt den Pfad zu deinem Code an, und ihn zu haben ist das, was das Plugin zu einem Mod macht. Liste einen Pfad auf, relativ zu `hooks.json`. Hier verweist es auf `register.js`, das du im nächsten Schritt schreibst.

137 

138 Speichere dies als `first-mod/hooks/hooks.json`:

139 

140 ```json first-mod/hooks/hooks.json theme={null}

141 {

142 "description": "The first-mod hooks module",

143 "modules": ["./register.js"]

144 }

145 ```

146 </Step>

147 

148 <Step title="Schreibe den Code">

149 Diese Datei ist der Code des Mods, genannt das Hooks-Modul. Wenn der Mod geladen wird, ruft Claude Code die `register` Funktion auf, die die Datei exportiert, und übergibt ihr eine Funktion namens [`on`](/docs/de/plugins/mods/reference#the-hook-function). Jeder Aufruf zu `on` registriert einen Ereignishandler, genannt ein Hook, für das Ereignis, das er benennt.

150 

151 Speichere dies als `first-mod/hooks/register.js`:

152 

153 ```javascript first-mod/hooks/register.js theme={null}

154 // The count, shared by the hooks below

155 let calls = 0

156 

157 // Claude Code calls this once when the mod loads

158 export function register(on) {

159 // Runs when the session starts, before your first prompt

160 on('session.start', async ($, e, next) => {

161 // Add the /tally command

162 await $.command.register({

163 name: 'tally',

164 description: 'Show how many tool calls Claude has made',

165 })

166 // Let the session start as usual

167 return next(e)

168 })

169 

170 // Runs each time Claude is about to use a tool

171 on('tool.call', async ($, e, next) => {

172 calls += 1

173 // Ask Claude Code to draw the interface again, so the new count shows

174 $.ui.invalidate('ui.render')

175 // Let the tool run as usual

176 return next(e)

177 })

178 

179 // Runs when you type /tally, and only then, because of the matcher

180 on('command.run', { command: 'tally' }, async () => {

181 // The text to print in the transcript

182 return { text: 'Claude has made ' + calls + ' tool calls since this mod loaded' }

183 })

184 

185 // Runs each time Claude Code draws the spinner

186 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

187 // Keep Claude Code's spinner, with the count added after its word

188 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

189 })

190 }

191 ```

192 

193 Die Datei behält eine Anzahl in `calls` und registriert vier Hooks:

194 

195 * **[`session.start`](/docs/de/plugins/mods/reference#session)** wird ausgeführt, wenn die Sitzung startet, vor deiner ersten Eingabeaufforderung, und jedes Mal, wenn der Mod neu geladen wird. Es fügt den `/tally` Befehl zu Claude Code hinzu.

196 * **[`tool.call`](/docs/de/plugins/mods/reference#tools)** wird jedes Mal ausgeführt, wenn Claude ein Werkzeug verwenden wird. Es addiert eins zu `calls` und bittet Claude Code, die Schnittstelle erneut zu zeichnen.

197 * **[`command.run`](/docs/de/plugins/mods/reference#commands-and-configuration)** wird ausgeführt, wenn du `/tally` eingibst. Es gibt den Text zurück, der gedruckt werden soll.

198 * **[`ui.render`](/docs/de/plugins/mods/reference#interface)** wird jedes Mal ausgeführt, wenn Claude Code den Spinner zeichnet. Es fügt die Anzahl nach dem Wort des Spinners hinzu.

199 

200 [Wie der Beispiel-Mod funktioniert](#how-the-example-mod-works) erklärt die drei Argumente, die jeder Hook nimmt, und was jeder zurückgibt.

201 </Step>

202 

203 <Step title="Lade den Mod">

204 Starte Claude Code mit dem `--plugin-dir` Flag, das ein Plugin-Verzeichnis für eine Sitzung lädt, ohne es zu installieren:

205 

206 ```bash theme={null}

207 claude --plugin-dir ./first-mod

208 ```

209 </Step>

210 

211 <Step title="Probiere den Mod aus">

212 Bitte Claude, etwas zu tun, das ein paar Werkzeugaufrufe dauert, wie `list the files here and read the README`. Während Claude arbeitet, wird das Wort des Spinners gefolgt von einer Anzahl, die steigt, wie in `Thinking · tool calls: 2…`. Wenn Claude fertig ist, gib `/tally` ein und drücke Enter. Das Transkript zeigt `first-mod: Claude has made 2 tool calls since this mod loaded`, mit deiner eigenen Anzahl. Claude Code stellt den Namen des Plugins vor den Text des Befehls.

213 

214 Um den Befehl ohne eine interaktive Sitzung zu überprüfen, führe ihn im nicht-interaktiven Modus aus:

215 

216 ```bash theme={null}

217 claude -p "/tally" --plugin-dir ./first-mod

218 ```

219 

220 ```text theme={null}

221 first-mod: Claude has made 0 tool calls since this mod loaded

222 ```

223 

224 Wenn `/tally` nicht in der Befehlsliste ist, wurde das Modul nicht geladen. Siehe [Finde heraus, warum ein Mod nichts tut](/docs/de/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing).

225 </Step>

226 

227 <Step title="Ändere den Code, während die Sitzung läuft">

228 Lasse die Sitzung offen. In `register.js`, ändere `' · tool calls: '` zu `' · tools used: '` im `ui.render` Hook und speichere. Die hervorgehobene Zeile ist die, die sich ändert:

229 

230 ```javascript first-mod/hooks/register.js {4} theme={null}

231 // Runs each time Claude Code draws the spinner

232 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

233 // Keep Claude Code's spinner, with the count added after its word

234 return next({ ...e, props: { ...e.props, suffix: ' · tools used: ' + calls + '…' } })

235 })

236 ```

237 

238 Eine Zeile im Transkript sagt, dass `first-mod` neu geladen wurde und listet seine Hooks auf, und der nächste Spinner verwendet den neuen Text, wie in `Thinking · tools used: 1…`.

239 </Step>

240</Steps>

241 

242<h3 id="how-the-example-mod-works">

243 Wie der Beispiel-Mod funktioniert

244</h3>

245 

246Jede Funktion, die du an `on` übergibst, ist ein Hook, der ein Ereignishandler ist. Claude Code übergibt jedem Hook die gleichen drei Argumente:

247 

248* **Die Mods API**, genannt `$`: jede Methode, die ein Mod aufrufen kann, um sich selbst zu erreichen, in [Namespaces](/docs/de/plugins/mods/reference#mods-api-methods) wie `$.ui` und `$.command`

249* **Das Ereignis**, genannt `e`: die [Eingabe des Ereignisses](/docs/de/plugins/mods/reference#events) als einfache Daten, wie der Name und die Argumente eines Werkzeugaufrufs

250* **Der nächste Handler**, genannt [`next`](/docs/de/plugins/mods/events#how-a-hook-handles-an-event): eine Funktion, die das Ereignis an die anderen Mods und dann an Claude Codes eigenes Verhalten weiterleitet und das Ergebnis zurückgibt

251 

252Die Hooks in `first-mod` handhaben ihre Ereignisse auf die drei Arten, auf die ein Hook kann:

253 

254* **Beobachten**: Der `session.start` Hook registriert den Befehl, und der `tool.call` Hook zählt den Aufruf und bittet um eine Neuzeichnung. Beide geben `next(e)` zurück, sodass die Sitzung startet und das Werkzeug wie gewohnt läuft.

255* **Antworten**: Der `command.run` Hook gibt sein eigenes Ergebnis zurück und ruft niemals `next` auf. Das zweite Argument zu `on`, `{ command: 'tally' }`, ist ein Filter, genannt ein [Matcher](/docs/de/plugins/mods/events#filter-which-events-a-hook-handles), sodass der Hook nur für `/tally` läuft.

256* **Umschreiben**: Der `ui.render` Hook ruft `next` mit einer Kopie von `e` auf, deren `suffix` die Anzahl hält, sodass Claude Code seinen üblichen Spinner mit deinem Text nach dem Wort zeichnet

257 

258Claude Code beobachtet ein Verzeichnis, das mit `--plugin-dir` geladen wird, und lädt das Hooks-Modul neu, wenn sich eine Datei darin ändert. Jedes Neuladen führt `register` erneut aus, sodass `calls` auf `0` zurückgeht und `/tally` wieder zu zählen beginnt. Um einen Wert über Neuladen hinweg zu behalten, siehe [Behalte den Status](/docs/de/plugins/mods/interface#keep-state).

259 

260<h2 id="keep-working-on-a-mod">

261 Arbeite weiter an einem Mod

262</h2>

263 

264Sobald ein Mod geladen ist, kannst du Claude ihn ändern lassen, deinen Code gegen die Typdefinitionen für deine Version überprüfen, die Ereignisse und Aufrufe auflisten, die Claude Code darin findet, und ihn testen.

265 

266<h3 id="change-a-mod-with-claude">

267 Ändere einen Mod mit Claude

268</h3>

269 

270Um einen Mod zu ändern, den du bereits hast, starte die Sitzung mit `--plugin-dir` auf das Verzeichnis des Mods gerichtet, sodass das, was Claude schreibt, in der gleichen Sitzung geladen wird:

271 

272```bash theme={null}

273claude --plugin-dir ./first-mod

274```

275 

276Dann bitte um die Änderung, zum Beispiel `add a /tally-reset command to this mod that sets the tally back to zero`. Claude bearbeitet das Hooks-Modul, führt `claude plugin validate` aus und behebt, was es meldet. Ein Verzeichnis, das du mit `--plugin-dir` lädst, ist ein [geschützter Pfad](/docs/de/permission-modes#protected-paths), sodass du in den Modi `default` und `acceptEdits` aufgefordert wirst, jede von Claudes Bearbeitungen des Mods zu genehmigen. Die Tabelle der geschützten Pfade gibt das Ergebnis für die anderen Berechtigungsmodi.

277 

278Dateien, die Claude während seiner Runde speichert, werden neu geladen, wenn die Runde endet, sodass du `/tally-reset` ausprobieren kannst, sobald Claude fertig ist.

279 

280<h3 id="get-the-types-for-your-build">

281 Erhalte Typdeklarationen für deine Version

282</h3>

283 

284Jedes Mal, wenn Claude Code einen Mod aus einem Verzeichnis lädt oder neu lädt, das du an `--plugin-dir` übergibst, oder einen Mod [Claude für dich geschrieben hat](#ask-claude-for-a-mod), schreibt es TypeScript-Deklarationsdateien, die auf `.d.ts` enden, in `.claude-plugin/types/` im Verzeichnis des Mods. Sie beschreiben die genauen Ereignisse, Mods API Methoden und Elemente in der Claude Code Version, die du ausführst, sodass dein Editor Autovervollständigung und Typprüfung für deine Hooks durchführen kann. Um die Deklarationen online zu durchsuchen, lies [`mods/types/claude-code.d.ts`](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) im Claude Code Repository, dessen erste Zeile die Version benennt, die es geschrieben hat. Das Verzeichnis enthält diese Dateien:

285 

286| Pfad | Was es deklariert |

287| :- | :- |

288| `claude-code/index.d.ts` | Jedes Ereignis und seine Eingabe und sein Ergebnis, jeder Mods API Namespace und Methode, und die Elemente, die jede Oberfläche zeichnen kann |

289| `claude-code-tools/index.d.ts` | Die Eingaben der integrierten Werkzeuge, sodass die Überprüfung von `e.tool === 'Bash'` `e` einengt |

290| `claude-code-mcp/index.d.ts` | Die Eingaben der MCP Werkzeuge, die das letzte Mal verbunden waren, als du eine Datei im Mod gespeichert hast |

291| `index.d.ts` in einem Verzeichnis, das nach einem Plugin benannt ist | Was dieses Plugin zur Mods API hinzufügt. Es gibt ein Verzeichnis für jedes Plugin, das deine `plugin.json` unter `dependencies` auflistet. |

292| `tsconfig.json` | Compiler-Optionen, die zu einem Hooks-Modul passen |

293 

294Wenn dein Mod keine eigene `tsconfig.json` hat, fügt Claude Code eine an der Wurzel des Mods hinzu, die die generierte erweitert, sodass dein Editor und `tsc -p ./first-mod` den Mod ohne weitere Einrichtung typprüfen.

295 

296Die Ereignisse und Methoden können sich zwischen Versionen ändern, daher vertraue diesen Dateien über jede Seite, einschließlich dieser, wenn sie nicht übereinstimmen.

297 

298`claude-code/index.d.ts` ist die vollständigste Referenz für deinen Build, mit einem Kommentar und einem Beispiel für jede Mods API Methode. Um etwas nachzuschlagen, durchsuche die Datei nach seinem Namen, wie `'tool.call'`.

299 

300<h3 id="check-what-claude-code-reads-from-your-mod">

301 Überprüfe, was Claude Code aus deinem Mod liest

302</h3>

303 

304Um deinen Mod so zu sehen, wie Claude Code ihn sieht, ohne deinen Code auszuführen oder eine Sitzung zu starten, verwende `claude plugin validate`. Es überprüft das Manifest und führt die gleiche statische Analyse auf der Quelle des Hooks-Moduls durch, die Claude Code durchführt, wenn es einen Mod lädt. Führe es in deiner Shell auf dem Verzeichnis des Mods aus:

305 

306```bash theme={null}

307claude plugin validate ./first-mod

308```

309 

310Für `first-mod` enthält die Ausgabe diese Zeilen.

311 

312```text theme={null}

313 ❯ ./register.js hooks: session.start, tool.call, command.run{command=tally}, ui.render{component=Spinner}

314 ❯ ./register.js calls: $.command.register, $.ui.invalidate

315 

316✔ Validation passed

317```

318 

319Die `hooks:` Zeile listet die Ereignisse auf, die dein Modul hookt, jeweils mit seinem Filter in Klammern. Die `calls:` Zeile listet jede Mods API Methode auf, die es aufruft. Ein Modul, das Umgebungsvariablen liest oder setzt, erhält auch `env reads:` und `env writes:` Zeilen, und eines, das [`$.state`](/docs/de/plugins/mods/interface#keep-state) verwendet, erhält `state reads:` und `state writes:`.

320 

321Wenn ein Ereignis, das du hooken wolltest, in der ersten Zeile fehlt, wird Claude Code diesen Hook auch nicht aufrufen. Die übliche Ursache ist ein falsch geschriebener Ereignisname, den der Befehl als Fehler meldet, wie `"tool.calls" is not an event`.

322 

323Befolge diese Regeln, damit statische Analyse jeden Hook und Aufruf finden kann:

324 

325* Schreibe jeden Mods API Aufruf vollständig: `$`, den Namespace, dann die Methode, wie in `$.store.get('notes')`. Du kannst `$` an eine Funktion übergeben, die auf der obersten Ebene der gleichen Datei deklariert ist, und für eine Funktion von dir namens `loadNotes`, liest die `calls:` Zeile dann `$.store.get (via loadNotes)`. Das Übergeben von `$` an eine Methode, eine Funktion, die im Hook definiert ist, oder eine Funktion, die du aus einer anderen deiner Dateien importierst, schlägt die Validierung fehl. Die `read` und `update` Funktionen, die [`$.state`](/docs/de/plugins/mods/interface#keep-state) verwendet, sind die Importe, die es nehmen können. Weise `$` oder einen seiner Namespaces nicht einer Variablen zu, destrukturiere ihn nicht, und indexiere ihn nicht mit einem berechneten Namen. `const ui = $.ui` schlägt mit `$.ui is used as a value` fehl.

326* Schreibe den Ereignisnamen in jedem `on` Aufruf als String-Literal, wie `'tool.call'`. Eine Variable oder eine Schleife über eine Liste von Namen schlägt mit `the event name passed to on() is not a string literal` fehl.

327* Deklariere innerhalb von `register` keine zweite Variable oder keinen Parameter namens `on`. Die Validierung schlägt mit `"on" is declared again (shadowed)` fehl.

328* Importiere nur aus Dateien im Plugin-Verzeichnis, nach relativem Pfad. Der einzige erlaubte bloße Import ist `claude-code`, für Typen und ein paar Helfer.

329* Verwende `import` Deklarationen am Anfang der Datei, wie in `import { name } from './file.js'`. Ein dynamischer `import()` schlägt mit `a dynamic import(); a hooks module imports its own files with an import declaration` fehl.

330* Schreibe jede Datei als ES-Modul, mit `import` und nicht `require`. Die [Referenz](/docs/de/plugins/mods/reference#files) listet die Dateierweiterungen auf, die Claude Code lädt.

331 

332<h3 id="test-the-mod">

333 Teste den Mod

334</h3>

335 

336Du kannst automatisierte Tests für einen Mod schreiben und sie von deiner Shell mit `claude plugin test` ausführen, ohne Sitzung, Anmeldung oder Netzwerk. Ein Test löst die Ereignisse aus, die deine Hooks handhaben, und überprüft, was die Hooks taten.

337 

338Dieser Test löst zwei Werkzeugaufrufe aus, führt `/tally` aus und überprüft, dass die Antwort beide zählt. Speichere ihn als `first-mod/tests/first-mod.test.ts`:

339 

340```typescript first-mod/tests/first-mod.test.ts theme={null}

341import { expect, test } from 'claude-code/testing'

342 

343test('/tally reports the tool calls the mod has seen', async ($, on) => {

344 // Answer each tool call in Claude Code's place, so no tool runs

345 on('tool.call', () => ({ result: 'ok' }))

346 

347 // Raise two tool calls, which the mod's tool.call hook counts

348 await $.tool.call({ tool: 'Bash', command: 'ls' })

349 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

350 

351 // Run /tally and check the text its hook returns

352 const answer = await $.command.run({ command: 'tally', args: '' })

353 expect(answer.text).toBe('Claude has made 2 tool calls since this mod loaded')

354})

355```

356 

357Führe die Tests von deiner Shell aus dem `first-mod` Verzeichnis aus:

358 

359```bash theme={null}

360claude plugin test

361```

362 

363Die Ausgabe benennt jeden Test und ob er bestanden hat, mit Timings, die von Lauf zu Lauf variieren:

364 

365```text theme={null}

366tests/first-mod.test.ts:

367(pass) /tally reports the tool calls the mod has seen [22.87ms]

368 

369 1 pass

370 0 fail

371Ran 1 test across 1 file. [0.19s]

372```

373 

374[Teste einen Mod](/docs/de/plugins/mods/test) behandelt das Stubben eines Modellaufrufs oder des Speichers, und das Testen von Timern und Zeichnungen.

375 

376<h2 id="share-your-mod">

377 Teile deinen Mod

378</h2>

379 

380Ein Mod ist ein Plugin, daher versionierst du ihn im Manifest und Personen installieren und aktualisieren ihn mit den `/plugin` Befehlen. Um ihn anderen Personen zu geben, [füge ihn zu einem Marketplace hinzu](/docs/de/plugins/publish).

381 

382Bevor du das tust, überprüfe den Namen des Plugins: `claude plugin validate` schlägt einen Namen fehl, der [wie einer von Anthropics eigenen aussieht](/docs/de/plugins/manifest-reference#name), wie einer, der mit `claude-` beginnt. Die Ereignisse und Methoden können sich zwischen Versionen ändern, daher ist deine README der Ort, um zu sagen, welche Claude Code Version du getestet hast.

383 

384Entwickle weiter gegen das Verzeichnis mit `--plugin-dir`, nicht gegen eine installierte Kopie. Claude Code speichert ein installiertes Plugin nach Version, sodass deine Bearbeitungen die installierte Kopie nicht erreichen, bis du die Version erhöhst und erneut installierst.

385 

386<h2 id="next-steps">

387 Nächste Schritte

388</h2>

389 

390* [Zeichne in der Schnittstelle](/docs/de/plugins/mods/interface): öffne einen Bereich, zeichne über der Eingabeaufforderung, und füge Schaltflächen und Textfelder hinzu

391* [Reagiere auf Ereignisse](/docs/de/plugins/mods/events): hook Werkzeugaufrufe, Eingabeaufforderungen und Runden

392* [Verwende die Mods API](/docs/de/plugins/mods/api): füge Befehle und Werkzeuge hinzu, rufe ein Modell auf, und führe Arbeit auf einem Timer aus

393* [Teste einen Mod](/docs/de/plugins/mods/test): stub, was Claude Code antworten würde, und teste Timer und Zeichnungen

394* [Behebe einen Mod](/docs/de/plugins/mods/troubleshoot): die Gründe, warum ein Mod nichts tut, und das Debug-Protokoll

395* [Lese die Quelle von integrierten Mods](/docs/de/plugins/mods/overview#read-the-source-of-built-in-mods): vollständige Plugins, jeweils mit seinem Hooks-Modul und Tests

plugins/mods/events.md +336 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Mit einem Mod auf Ereignisse reagieren

6 

7> Behandeln Sie Claude Code-Ereignisse von einem Mod aus: beobachten, schreiben Sie um oder beantworten Sie Tool-Aufrufe, Eingabeaufforderungen und Turns, filtern Sie, welche Ereignisse ein Hook behandelt, und planen Sie für andere Mods.

8 

9Ein Hook ist ein Ereignishandler: eine Funktion, die Claude Code ausführt, wenn ein benanntes Ereignis eintritt. Claude Code löst ein Ereignis an jedem Punkt aus, an dem es handeln wird, z. B. wenn es ein Tool ausführt, eine Eingabeaufforderung einreicht, eine Anfrage an das Modell sendet oder eine Sitzung startet oder beendet. Ihr Hook wird ausgeführt, bevor Claude Code handelt, sodass er das Ereignis beobachten, umschreiben oder an Stelle von Claude Code beantworten kann. Sie registrieren einen Hook mit [`on(eventName, handler)`](/docs/de/plugins/mods/reference#the-hook-function).

10 

11Erstellen Sie Ihren [ersten Mod](/docs/de/plugins/mods/create), bevor Sie hier beginnen. Für jedes Ereignis und seine genauen Felder siehe die [Referenz](/docs/de/plugins/mods/reference#events) oder lesen Sie [die Typen für Ihren Build](/docs/de/plugins/mods/create#get-the-types-for-your-build).

12 

13<h2 id="how-a-hook-handles-an-event">

14 Wie ein Hook ein Ereignis behandelt

15</h2>

16 

17Ein Hook sitzt zwischen einem Ereignis und dem, was Claude Code daran tun würde, sodass er das Ereignis beobachten, umschreiben oder selbst beantworten kann. Er empfängt drei Argumente: die [Mods-API](/docs/de/plugins/mods/api) als `$`, das Ereignis als `e` und den nächsten Handler als `next`. Die Handler für ein Ereignis bilden eine Middleware-Kette. `next(e)` ruft den nächsten Handler auf, der ein Hook eines anderen Mods oder am Ende der Kette Claude Codes eigenes Verhalten ist, und wird zum Ergebnis aufgelöst. Was Ihr Hook mit `next` tut, entscheidet, welches der drei er tut.

18 

19<h3 id="observe-an-event">

20 Ein Ereignis beobachten

21</h3>

22 

23Um ein Ereignis zu beobachten, ohne es zu ändern, führen Sie Ihre Arbeit aus und geben Sie `next(e)` zurück. Dieser Hook protokolliert jedes Tool, das Claude verwenden wird:

24 

25```javascript theme={null}

26on('tool.call', async ($, e, next) => {

27 // Wird ausgeführt, bevor das Tool ausgeführt wird

28 $.ui.log('Claude is about to use ' + e.tool)

29 // Geben Sie das Ereignis unverändert weiter

30 return next(e)

31})

32```

33 

34Bevor jedes Tool ausgeführt wird, erscheint eine schwache Zeile wie `● my-mod: Claude is about to use Bash` im Transkript, wobei `my-mod` der Name Ihres Plugins ist. Das Tool wird so ausgeführt, wie es ohne den Mod wäre.

35 

36Um nach dem Ereignis zu handeln, `await next(e)`, führen Sie Ihre Arbeit aus und geben Sie das Ergebnis zurück. Dieser Hook protokolliert jedes Tool, nachdem es ausgeführt wurde:

37 

38```javascript theme={null}

39on('tool.call', async ($, e, next) => {

40 // Lassen Sie das Tool ausführen und warten Sie auf sein Ergebnis

41 const result = await next(e)

42 // Wird ausgeführt, nachdem das Tool ausgeführt wurde

43 $.ui.log(e.tool + ' finished')

44 // Geben Sie das Ergebnis unverändert zurück

45 return result

46})

47```

48 

49Die Zeile erscheint jetzt, nachdem jedes Tool beendet ist. Claude liest das gleiche Ergebnis in beiden Fällen, da der Hook das zurückgibt, zu dem `next(e)` aufgelöst wurde.

50 

51<h3 id="rewrite-an-event">

52 Ein Ereignis umschreiben

53</h3>

54 

55Um zu ändern, worauf Claude Code handelt, z. B. den Text einer Eingabeaufforderung, rufen Sie `next` mit einer geänderten Kopie des Ereignisses auf. Das Ereignis selbst ist unveränderlich: es ist in jeder Tiefe eingefroren, und das Zuweisen zu einem Feld wirft einen Fehler. Dieser Hook schneidet jede Eingabeaufforderung ab, bevor sie gesendet wird:

56 

57```javascript theme={null}

58on('prompt.submit', async ($, e, next) => {

59 // Geben Sie eine Kopie des Ereignisses mit geändertem Text weiter

60 return next({ ...e, text: e.text.trim() })

61})

62```

63 

64Spätere Handler und Claude Code erhalten die gekürzte Eingabeaufforderung und sehen niemals das Original. Sie können auch das Ergebnis ändern: `await next(e)`, dann geben Sie eine Kopie des Ergebnisses mit einem ersetzten Feld zurück.

65 

66<h3 id="answer-an-event">

67 Ein Ereignis beantworten

68</h3>

69 

70Um ein Ereignis selbst zu behandeln, geben Sie ein Ergebnis zurück, ohne `next` aufzurufen. Das unterbricht die Kette, sodass spätere Mods und Claude Codes eigenes Verhalten nicht ausgeführt werden. Dieser Hook lehnt jeden Bash-Befehl ab:

71 

72```javascript theme={null}

73on('tool.call', { tool: 'Bash' }, async () => {

74 // Kein Aufruf von next, daher wird der Befehl nie ausgeführt

75 return { deny: 'Bash is turned off in this project. Use the file tools.' }

76})

77```

78 

79Wenn Claude einen Bash-Befehl versucht, wird der Befehl nicht ausgeführt, und Claude liest den `deny`-Text als Ergebnis des Tools. Jedes Ereignis hat seine eigene Ergebnisform, die die [Ereignisreferenz](/docs/de/plugins/mods/reference#events) auflistet.

80 

81<h3 id="filter-which-events-a-hook-handles">

82 Filtern Sie, welche Ereignisse ein Hook behandelt

83</h3>

84 

85Um einen Hook nur für einige Ereignisse auszuführen, übergeben Sie einen Filter als zweites Argument an `on`. Claude Code nennt den Filter einen Matcher. Es ist ein Objekt, dessen Felder mit denen des Ereignisses verglichen werden, und der Hook wird nur ausgeführt, wenn jedes Feld übereinstimmt. Ein Feld kann ein Wert, ein Array zulässiger Werte oder ein regulärer Ausdruck sein.

86 

87Jede Zeile in diesem Beispiel registriert die gleiche Funktion, `hook`, für einen engeren Satz von Tool-Aufrufen:

88 

89```javascript theme={null}

90// Ein String passt zu einem Wert: nur Bash-Aufrufe

91on('tool.call', { tool: 'Bash' }, hook)

92// Ein Array passt zu jedem Wert darin: Edit-Aufrufe und Write-Aufrufe

93on('tool.call', { tool: ['Edit', 'Write'] }, hook)

94// Ein regulärer Ausdruck passt nach Muster: jedes Tool eines MCP-Servers

95on('tool.call', { tool: /^mcp__github__/ }, hook)

96```

97 

98`hook` wird einmal für einen Bash-, Edit- oder Write-Aufruf ausgeführt und einmal für einen Aufruf zu einem Tool, dessen Name mit `mcp__github__` beginnt. Ein Aufruf zu jedem anderen Tool, z. B. Read, passt zu keinem der drei, daher wird `hook` nicht dafür ausgeführt.

99 

100Der Ereignisname kann ein Platzhalter sein. `'classic.*'` passt zu jedem [Settings-Hook-Ereignis](#hook-the-settings-hook-events). `'*'` passt zu jedem Ereignis außer den [Telemetrie-Ereignissen](/docs/de/plugins/mods/reference#telemetry), die Sie nach Name oder als `'telemetry.*'` hooken.

101 

102Registrieren Sie jedes Ereignis einmal pro Matcher. Wenn Sie `on` zweimal für `session.start` ohne Matcher aufrufen, schlägt das Modul mit `on("session.start") is registered twice without a matcher` fehl. Fügen Sie alles, was Ihr Mod beim Sitzungsstart tut, in einen Hook ein.

103 

104<h2 id="hook-what-claude-is-doing">

105 Hook, was Claude tut

106</h2>

107 

108Hooken Sie diese Ereignisse, um einen Tool-Aufruf, eine Eingabeaufforderung oder einen Turn zu sehen oder zu ändern, während er stattfindet. Für jedes Ereignis und was ein Hook zurückgeben kann, siehe die [Ereignisreferenz](/docs/de/plugins/mods/reference#events).

109 

110<h3 id="guard-or-change-a-tool-call">

111 Schützen oder ändern Sie einen Tool-Aufruf

112</h3>

113 

114Ein `tool.call`-Hook sieht jedes Tool, das Claude verwenden wird, sodass er den Aufruf ablehnen, seine Argumente ändern oder ihn durchlassen kann. `tool.call` wird ausgelöst, wenn Claude Code ein Tool ausführen wird, einschließlich Aufrufe, die ein Subagent tätigt, und Aufrufe zu MCP-Tools. `e.tool` ist der Name des Tools und die Argumente des Tools sind Felder von `e`, z. B. `e.command` für Bash. Wenn Sie `next(e)` aufrufen, führt Claude Code die Berechtigungsprüfung und dann das Tool aus.

115 

116Dieser Hook lehnt einen Bash-Befehl ab, der Force-Push durchführt, und teilt Claude mit, warum:

117 

118```javascript theme={null}

119// Der Matcher begrenzt den Hook auf Bash-Aufrufe, daher ist e.command der Shell-Befehl

120on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

121 if (/git push .*--force/.test(e.command)) {

122 // Rückgabe ohne Aufruf von next beantwortet das Ereignis, daher wird der Befehl nie ausgeführt

123 return { deny: 'Force pushes are not allowed in this repository. Push to a new branch instead.' }

124 }

125 // Jeder andere Befehl geht zur Berechtigungsprüfung und dann zu Bash

126 return next(e)

127})

128```

129 

130Wenn Claude `git push --force` versucht, wird der Befehl nicht ausgeführt und es erscheint keine Berechtigungsaufforderung, da der Hook `next` nie aufruft. Claude liest den `deny`-Text als Ergebnis des Tools, daher schreiben Sie ihn als Anweisung, auf die Claude reagieren kann. Jeder andere Bash-Befehl wird so ausgeführt, wie er ohne den Mod wäre.

131 

132Um nach Ausführung eines Tools zu handeln, `await next(e)`, führen Sie Ihre Arbeit aus und geben Sie das zurück, was `next` Ihnen gab. Dieser Hook protokolliert jede `.mdx`-Datei, die Claude ändert, mit [`$.ui.log`](/docs/de/plugins/mods/api#show-something-without-starting-a-turn), das eine schwache Zeile zum Transkript hinzufügt, die Claude nicht liest:

133 

134```javascript theme={null}

135on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {

136 // Warten Sie auf die Berechtigungsprüfung und das Tool und behalten Sie, was sie produziert haben

137 const result = await next(e)

138 // Ein abgelehnter Aufruf kommt als { deny } zurück, und ein fehlgeschlagener hat isError gesetzt

139 const changed = !result.deny && !result.isError

140 if (changed && e.file_path.endsWith('.mdx')) $.ui.log('Claude changed ' + e.file_path)

141 // Geben Sie das Ergebnis so zurück, wie es kam, damit Claude liest, was das Tool zurückgegeben hat

142 return result

143})

144```

145 

146Nachdem Claude eine `.mdx`-Datei bearbeitet oder geschrieben hat, benennt eine schwache Zeile im Transkript die Datei. Nichts wird für eine andere Art von Datei protokolliert oder für einen Aufruf, der abgelehnt oder fehlgeschlagen ist. Claude's Ansicht des Aufrufs ändert sich nicht, da der Hook das Ergebnis zurückgibt, das er erhalten hat.

147 

148Um einen Aufruf zu ändern, übergeben Sie geänderte Argumente an `next`. Um einen Aufruf zu wiederholen, rufen Sie `next(e)` erneut auf: Ein Hook, der `isError` beim ersten Ergebnis sieht, kann das Tool ein zweites Mal ausführen und dieses Ergebnis zurückgeben. Um einen Aufruf selbst zu beantworten, geben Sie ein Objekt mit einem `result`-Feld zurück, z. B. `{ result: 'Skipped by my-mod' }`, ohne `next` aufzurufen. Wenn Sie das tun, erscheint keine Berechtigungsaufforderung und das Tool wird nicht ausgeführt, daher ist das Ergebnis, das Sie zurückgeben, alles, was Claude über das Geschehene erfährt.

149 

150Hooks in den [verwalteten Einstellungen](/docs/de/server-managed-settings) Ihrer Organisation werden vor jedem `tool.call`-Hook eines Mods ausgeführt, und ein Block von einem von ihnen ist endgültig.

151 

152<h4 id="hold-a-tool-call-until-the-user-decides">

153 Halten Sie einen Tool-Aufruf an, bis der Benutzer entscheidet

154</h4>

155 

156Ein Hook kann einen Tool-Aufruf anhalten und den Benutzer fragen, was zu tun ist, bevor er fortfährt. Ein `tool.call`-Hook kann `await` durchführen, bevor er `next` aufruft oder zurückgibt, und der Tool-Aufruf bleibt ausstehend, bis dann. Um die Frage dem Benutzer zu stellen, rufen Sie `$.ui.ask` auf. Es zeigt Ihre Frage über einer nummerierten Liste Ihrer Optionen in dem Dialog an, den Claude verwendet, um Sie etwas zu fragen, und wird zur Bezeichnung aufgelöst, die der Benutzer auswählt. Nach Ihren Optionen fügt der Dialog eine Zeile zum Eingeben einer anderen Antwort und eine Zeile **Chat about this** hinzu.

157 

158Das `RISKY`-Muster in diesem Beispiel passt zu `rm -r`, `rm -rf`, `git reset --hard` und `git push` mit `--force` und verfehlt andere Schreibweisen wie `git push -f`. Dieses Modul fragt, bevor es einen Bash-Befehl ausführt, der dem Muster entspricht:

159 

160```javascript theme={null}

161const RISKY = /\brm\s+-rf?\b|\bgit\s+reset\s+--hard\b|\bgit\s+push\b.*--force/

162 

163export function register(on) {

164 on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

165 // Lassen Sie jeden anderen Befehl ohne Frage durch

166 if (!RISKY.test(e.command)) return next(e)

167 // Beginnen Sie mit der sicheren Antwort, damit eine Frage, die niemand beantwortet, den Befehl ablehnt

168 let answer = 'Refuse'

169 try {

170 // Der Tool-Aufruf wartet hier, bis der Benutzer eine der beiden Bezeichnungen auswählt

171 answer = await $.ui.ask('Run this command? ' + e.command, ['Run it', 'Refuse'])

172 } catch {

173 // Der Benutzer hat die Frage verworfen oder dies ist ein claude -p-Lauf mit niemandem zum Fragen

174 }

175 if (answer !== 'Run it') {

176 // Antwort ohne Aufruf von next, daher wird der Befehl nicht ausgeführt

177 return { deny: 'The user declined this command. Ask before trying a different approach.' }

178 }

179 return next(e)

180 })

181}

182```

183 

184Wenn Claude einen Befehl wie `rm -rf build` versucht, erscheint die Frage mit dem Befehl darin, und der Befehl wartet auf die Antwort:

185 

186* **Der Benutzer wählt Run it**: Der Hook ruft `next(e)` auf, und die übliche Berechtigungsprüfung wird danach immer noch ausgeführt

187* **Der Benutzer wählt Refuse**: Der Befehl wird nicht ausgeführt, und Claude liest den `deny`-Text

188* **Der Benutzer gibt eine Antwort ein**: `$.ui.ask` wird zur eingegebenen Antwort aufgelöst. Der Hook vergleicht sie mit `Run it`, daher lehnt jeder andere Text den Befehl ab.

189* **Niemand antwortet**: `$.ui.ask` wird abgelehnt, wenn der Benutzer die Frage verwirft oder **Chat about this** auswählt, und in einem `claude -p`-Lauf, daher lässt der `catch`-Block die Antwort bei `Refuse`

190 

191Halten Sie das Warten in einem Mods-API-Aufruf wie `$.ui.ask`, da diese Zeit nicht gegen das [10-Sekunden-Zeitlimit](/docs/de/plugins/mods/reference#limits) des Hooks zählt. Zeit, die mit dem Warten auf ein eigenes Promise verbracht wird, zählt. Claude Code überspringt einen Hook, der das Zeitlimit überschreitet, daher würde der gehaltene Befehl ausgeführt.

192 

193<h3 id="rewrite-or-add-to-a-prompt">

194 Schreiben Sie eine Eingabeaufforderung um oder fügen Sie sie hinzu

195</h3>

196 

197Ein `prompt.submit`-Hook sieht jede Eingabeaufforderung, bevor der Turn beginnt, sodass er den Text umschreiben oder hinzufügen kann. `e.text` ist das, was eingegeben wurde.

198 

199| Um dies zu tun | Geben Sie dies zurück |

200| :- | :- |

201| Schreiben Sie die Eingabeaufforderung um. Die Nachricht im Transkript zeigt den neuen Text. | `next({ ...e, text: newText })` |

202| Fügen Sie Text hinzu, den nur Claude liest, nach der Eingabeaufforderung | `next({ ...e, context: [...(e.context ?? []), extraText] })` |

203| Verhindern Sie, dass die Eingabeaufforderung gesendet wird | `{ drop: 'the reason' }` |

204 

205Dieser Hook fügt den aktuellen Branch-Namen für Claude hinzu, wenn eine Eingabeaufforderung einen Pull Request erwähnt:

206 

207```javascript theme={null}

208on('prompt.submit', async ($, e, next) => {

209 // Geben Sie eine Eingabeaufforderung weiter, die keinen Pull Request erwähnt, wie sie ist

210 if (!/\bPR\b|pull request/i.test(e.text)) return next(e)

211 const git = await $.process.run(['git', 'branch', '--show-current'])

212 // Außerhalb eines Git-Repositorys schlägt der Befehl fehl, daher gibt es keinen Branch zum Hinzufügen

213 if (git.exitCode !== 0) return next(e)

214 // Behalten Sie jeden Kontext, den ein früherer Hook hinzugefügt hat, und fügen Sie eine weitere Zeile für Claude hinzu

215 return next({ ...e, context: [...(e.context ?? []), 'Current branch: ' + git.stdout.trim()] })

216})

217```

218 

219Wenn Sie eine Eingabeaufforderung wie `open a PR for this change` senden, sieht Ihre Nachricht im Transkript gleich aus, und Claude liest auch eine Zeile wie `Current branch: feature/auth` danach. Eine Eingabeaufforderung, die keinen Pull Request erwähnt, wird unverändert weitergeleitet, und `git` wird nicht ausgeführt.

220 

221[Andere Ereignisse](/docs/de/plugins/mods/reference#prompts-and-what-claude-reads) behandeln den Rest dessen, was Claude liest: `prompt.section` für jeden Abschnitt der Systemaufforderung, `prompt.context` für den Kontext, der mit der ersten Nachricht gesendet wird, und `skill.prompt` für den Text einer Fähigkeit. Text aus diesen Hooks, der sich zwischen Anfragen ändert, [invalidiert den Prompt-Cache](/docs/de/prompt-caching).

222 

223<h3 id="follow-a-turn">

224 Folgen Sie einem Turn

225</h3>

226 

227Ein Turn ist alles, was Claude als Antwort auf eine Eingabeaufforderung tut. Hooken Sie `turn.start`, `turn.step` und `turn.complete`, um einen zu folgen:

228 

229| Ereignis | Wann es ausgelöst wird | Was ein Hook tun kann |

230| :- | :- | :- |

231| `turn.start` | Ein Turn beginnt | Beobachten. `e.turnId` identifiziert den Turn in den anderen beiden Ereignissen. |

232| `turn.step` | Claude Code wird eine Anfrage an das Modell senden. Ein Turn mit Tool-Aufrufen hat mehrere. `e.agentId` wird für eine Anfrage eines Subagenten gesetzt. | Lesen Sie die Token-Nutzung jeder Anfrage, senden Sie sie mit `next({ ...e, model })` an ein anderes Modell, oder beantworten Sie ohne Aufruf des Modells |

233| `turn.complete` | Der Turn endete, einschließlich eines Turns, den der Benutzer unterbrochen hat, wobei `e.isAborted` `true` ist. `e.answer` ist Claude's endgültiger Text, `e.durationMs` wie lange es dauerte, und `e.usage` die Token-Gesamtwerte des Turns. Ein Turn eines Subagenten wird es mit `e.agentId` gesetzt auslösen. | Beobachten, oder geben Sie ein Objekt mit einem `text`-Feld zurück, z. B. `{ text: 'Done in 12 seconds' }`, um eine Zeile unter der Antwort anzuzeigen |

234 

235Schreiben Sie einen `turn.step`-Hook als asynchronen Generator, da das Ereignis streamt. `yield* next(e)` leitet die Antwort weiter, während sie streamt, und wird zum fertigen Ergebnis ausgewertet. Dieser Hook protokolliert, wie viel von jeder Anfrage die Claude-API aus dem [Prompt-Cache](/docs/de/prompt-caching) bedient hat:

236 

237```javascript theme={null}

238// function* macht den Hook zu einem Generator, der die Antwort Stück für Stück weitergeben kann

239on('turn.step', async function* ($, e, next) {

240 // Senden Sie die Anfrage, leiten Sie jedes Stück weiter, während es ankommt, und behalten Sie das fertige Ergebnis

241 const result = yield* next(e)

242 // Überspringen Sie ein Ergebnis, das keine Token-Zählungen meldet

243 if (result.usage) {

244 $.ui.log('cache read ' + result.usage.cache_read_input_tokens + ' · wrote ' + result.usage.cache_creation_input_tokens)

245 }

246 // Geben Sie das Ergebnis unverändert zurück, damit der Turn wie gewohnt fortfährt

247 return result

248})

249```

250 

251Claude's Antwort streamt auf den Bildschirm, wie es ohne den Mod wäre. Nachdem jede Anfrage beendet ist, gibt eine schwache Zeile im Transkript die Anzahl der aus dem Cache gelesenen Token und die Anzahl der darin geschriebenen Token an. Ein Turn mit Tool-Aufrufen hat mehrere Anfragen, daher fügt er mehrere Zeilen hinzu.

252 

253`result.usage` enthält die vier Token-Zählungen, die die Claude-API für eine Anfrage meldet, plus das `model`, das geantwortet hat: `input_tokens`, `output_tokens`, `cache_read_input_tokens` und `cache_creation_input_tokens`. Der Hook wird auch für Anfragen von Subagenten ausgeführt, daher überprüfen Sie `e.agentId`, wenn Sie nur die Hauptkonversation möchten.

254 

255<h3 id="hook-the-settings-hook-events">

256 Hooken Sie die Settings-Hook-Ereignisse

257</h3>

258 

259Settings-Hooks sind die Befehls-, HTTP-, Eingabeaufforderungs- und Agent-Hooks, die Sie in Einstellungsdateien konfigurieren. Jedes [Settings-Hook-Ereignis](/docs/de/hooks#hook-events), z. B. `Stop`, `SessionEnd` oder `PostToolUse`, ist auch ein Ereignis mit dem Namen `classic.` gefolgt vom Namen des Settings-Hook-Ereignisses, z. B. `classic.Stop`. `e` ist das JSON, das ein Settings-Hook auf stdin empfängt, einschließlich `transcript_path`.

260 

261Dieser Hook verwendet `Stop`, das ausgelöst wird, wenn Claude die Antwort beendet, um zu protokollieren, wo das Transkript der Sitzung gespeichert ist:

262 

263```javascript theme={null}

264on('classic.Stop', async ($, e, next) => {

265 // e hat die gleichen Felder, die ein Stop-Hook in einer Einstellungsdatei von stdin liest

266 $.ui.log('Transcript saved at ' + e.transcript_path)

267 // Geben Sie das Ereignis weiter, damit Stop-Hooks in Ihren Einstellungsdateien immer noch ausgeführt werden

268 return next(e)

269})

270```

271 

272Jedes Mal, wenn Claude die Antwort beendet, gibt eine schwache Zeile im Transkript den Pfad der Transkriptdatei an. Der Hook gibt `next(e)` zurück, daher beobachtet er das Ereignis und ändert nichts daran, wie der Turn endet.

273 

274<h2 id="run-alongside-other-mods">

275 Führen Sie neben anderen Mods aus

276</h2>

277 

278Mehrere Mods können das gleiche Ereignis hooken, und jeder von ihnen kann fehlschlagen. Wenn Ihr Mod Tool-Aufrufe blockiert, überprüfen Sie seine Position in der Kette und was passiert, wenn sein Hook fehlschlägt.

279 

280<h3 id="the-order-mods-run-in">

281 Die Reihenfolge, in der Mods ausgeführt werden

282</h3>

283 

284Hooks auf dem gleichen Ereignis bilden eine Middleware-Kette. Jeder `next` eines Mods ruft den Hook des folgenden Mods auf, und der letzte `next` erreicht Claude Codes eigenes Verhalten. Der erste Mod ist am weitesten außen: Er sieht das Ereignis vor den anderen und das Ergebnis nach ihnen, und er entscheidet, ob die anderen überhaupt ausgeführt werden. Ein späterer Mod kann einen früheren nicht daran hindern, ein Ereignis zu sehen.

285 

286Claude Code ordnet die Kette danach, woher jeder Mod kommt:

287 

2881. Der eingebaute Guard `sec-default@builtin`, ein in Claude Code eingebauter Mod, den `/plugin` als `cc-plugin-sec-default` auflistet, wo [er lädt](/docs/de/plugins/mods/admin#know-what-happens-by-default), Mods, die Ihre Organisation in [`prependPlugins`](/docs/de/plugins/mods/admin#install-your-organizations-mods) auflistet, und dann jeden anderen Mod, der als Mod Ihrer Organisation zählt und nicht in `appendPlugins` ist

2892. Mods, die Sie installieren

2903. Mods, die Ihre Organisation in `appendPlugins` auflistet

2914. Andere in Claude Code eingebaute Mods

292 

293Unter den Mods, die Sie installieren, wird ein Mod vor den Mods ausgeführt, die er unter `dependencies` in seinem Manifest auflistet. Innerhalb eines Moduls werden Hooks in der Reihenfolge ausgeführt, in der `register` `on` aufgerufen hat.

294 

295<h4 id="where-settings-hooks-run-in-the-order">

296 Wo Settings-Hooks in der Reihenfolge ausgeführt werden

297</h4>

298 

299Die `PreToolUse`-Hooks, die in Einstellungsdateien konfiguriert sind, werden auch während eines Tool-Aufrufs an festen Punkten in der Kette von Mods ausgeführt:

300 

301* **`PreToolUse`-Hooks aus verwalteten Einstellungen**: werden vor dem Hook `tool.call` des ersten Mods ausgeführt, und ein Block von einem von ihnen ist endgültig, daher sieht kein Mod den Aufruf.

302* **`PreToolUse`-Hooks aus jeder anderen Einstellungsdatei und aus `hooks/hooks.json` von Plugins**: werden nach dem letzten Aufruf von `next` eines Mods ausgeführt, als Teil von Claude Codes eigenem Verhalten. Ein Mod, der `tool.call` beantwortet, ohne `next` aufzurufen, hindert sie daran, ausgeführt zu werden, und ein Mod, der `next` aufruft, sieht ihre Entscheidung im Ergebnis, das er zurückgibt.

303 

304[`tool.check`](/docs/de/plugins/mods/reference#tools) ist das Ereignis, bei dem Claude Code entscheidet, ob ein Tool-Aufruf ausgeführt werden darf. Es wird nach diesen Hooks und den Berechtigungsregeln ausgelöst, und `next(e)` wird zu ihrer Entscheidung aufgelöst. Ein Hook auf `tool.check` kann eine andere Entscheidung zurückgeben, z. B. `{ decision: 'allow' }`, daher kann er einen Aufruf genehmigen, den ein Hook in der zweiten Gruppe blockiert hat. [Erweitern Sie Berechtigungen mit Hooks](/docs/de/permissions#extend-permissions-with-hooks) listet auf, welche Entscheidungen einen Mod überlagern.

305 

306<h3 id="handle-a-hook-that-fails">

307 Behandeln Sie einen Hook, der fehlschlägt

308</h3>

309 

310Ein Hook, der fehlschlägt, bricht die Sitzung nicht, und Sie können entscheiden, was stattdessen passiert. Wenn ein Hook ohne `.catch`-Handler wirft, das Zeitlimit überschreitet oder ein Ergebnis der falschen Form zurückgibt, hängt das, was als nächstes passiert, davon ab, ob er `next` aufgerufen hatte:

311 

312* **Es ist fehlgeschlagen, bevor `next` aufgerufen wurde**: Claude Code überspringt es, und der nächste Handler wird an seiner Stelle ausgeführt

313* **Es ist fehlgeschlagen, nachdem `next` aufgelöst wurde**: Dieses Ergebnis bleibt bestehen, und nichts wird ein zweites Mal ausgeführt

314 

315Eine Zeile benennt den Mod, das Ereignis und den Grund, z. B. `my-mod: tool.call hook skipped: threw Error: boom`. Wo Sie es lesen, hängt von der Sitzung ab, wie [Finden Sie heraus, warum ein Mod nichts tut](/docs/de/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing) auflistet. Ein `ui.render`-Hook, dessen Zeichnung nicht validiert, wird anders gemeldet, wie [Erstellen Sie einen Baum aus Elementen](/docs/de/plugins/mods/interface#build-a-tree-from-elements) beschreibt.

316 

317Um einen Hook, der Aufrufe blockiert, fehlgeschlagen zu schließen, fügen Sie einen `.catch`-Fehlerhandler hinzu, der stattdessen antwortet. Hier ist `guard` Ihre Hook-Funktion:

318 

319```javascript theme={null}

320// on gibt eine Registrierung zurück, und .catch fügt einen Handler an diesen einen Hook an

321on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {

322 // next.error.kind ist 'throw' oder 'timeout', was sagt, wie guard fehlgeschlagen ist

323 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }

324})

325```

326 

327Während `guard` funktioniert, wird der Handler nie ausgeführt. Wenn `guard` bei einem Bash-Aufruf wirft oder das Zeitlimit überschreitet, ruft Claude Code den Handler mit dem gleichen Ereignis auf. Der Handler gibt `{ deny }` zurück, daher wird der Befehl nicht ausgeführt, und Claude liest den Text mit `throw` oder `timeout` am Ende. Ohne den Handler würde Claude Code `guard` überspringen und den Befehl ausführen. Der Handler hat [eine Sekunde](/docs/de/plugins/mods/reference#limits) Zeit zum Antworten.

328 

329<h2 id="next-steps">

330 Nächste Schritte

331</h2>

332 

333* [Verwenden Sie die Mods-API](/docs/de/plugins/mods/api): Fügen Sie Befehle und Tools hinzu, rufen Sie ein Modell auf und führen Sie Arbeit auf einem Timer aus

334* [Zeichnen Sie in der Schnittstelle](/docs/de/plugins/mods/interface): Zeigen Sie, was Ihre Hooks in einem Bereich oder über der Eingabeaufforderung sammeln

335* [Testen Sie einen Mod](/docs/de/plugins/mods/test): Lösen Sie eines dieser Ereignisse aus einem Test aus

336* [Mods-Referenz](/docs/de/plugins/mods/reference): Jedes Ereignis, jede Mods-API-Methode und die Limits

plugins/mods/interface.md +867 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Mit einem Mod in der Benutzeroberfläche zeichnen

6 

7> Zeichnen Sie Panes, ein Band über der Eingabeaufforderung, Schaltflächen und Textfelder aus einem Claude Code Mod, verarbeiten Sie Drücke und Eingaben, und behalten Sie den Status zwischen Neuzeichnungen und Sitzungen bei.

8 

9Ein Mod kann seine eigene Benutzeroberfläche in Claude Code zeichnen und Teile der Benutzeroberfläche ändern, die Claude Code bereits zeichnet. Jeder Ort, an dem ein Mod zeichnen kann, wird als [Render-Site](/docs/de/plugins/mods/reference#render-sites) bezeichnet, z. B. ein Pane, das Band über der Eingabeaufforderung oder der Spinner. Claude Code löst das [`ui.render`](/docs/de/plugins/mods/reference#interface) Ereignis jedes Mal aus, wenn es eine Render-Site zeichnen möchte, und Ihr Hook für dieses Ereignis gibt zurück, was dort gezeichnet werden soll.

10 

11Diese Karte zeigt, wo ein Mod in einer Terminal-Sitzung zeichnen kann:

12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Karte einer Claude Code Terminal-Sitzung. Ein Mod kann ein Pane als Seitenleiste auf der rechten Seite hinzufügen, einen Toast oben rechts im Transkript, eine Protokollzeile im Transkript, ein Band über der Eingabeaufforderung und eine Statuszeile unter der Eingabeaufforderung. Ein Mod kann Nachrichten, Tool-Call-Zeilen und den Spinner neu zeichnen. Die Eingabeaufforderung ist Claude Codes eigene." width="600" height="336" data-path="images/mods-screen-map.svg" />

14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Karte einer Claude Code Terminal-Sitzung. Ein Mod kann ein Pane als Seitenleiste auf der rechten Seite hinzufügen, einen Toast oben rechts im Transkript, eine Protokollzeile im Transkript, ein Band über der Eingabeaufforderung und eine Statuszeile unter der Eingabeaufforderung. Ein Mod kann Nachrichten, Tool-Call-Zeilen und den Spinner neu zeichnen. Die Eingabeaufforderung ist Claude Codes eigene." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 

17In einem schmaleren Terminal sitzt das Pane über der Eingabeaufforderung statt neben dem Transkript.

18 

19Erstellen Sie Ihren [ersten Mod](/docs/de/plugins/mods/create), bevor Sie hier beginnen. Beginnen Sie mit dem durchgearbeiteten Beispiel, das ein Pane mit zwei Registerkarten und einem Zähler erstellt, lesen Sie dann den Abschnitt für jeden Teil, den Sie ändern möchten.

20 

21<Note>

22 Um eine Eigenschaft oder ein Limit nachzuschlagen, siehe die [Referenz](/docs/de/plugins/mods/reference#render-sites).

23</Note>

24 

25<h2 id="build-a-pane-with-tabs">

26 Erstellen Sie ein Pane mit Registerkarten

27</h2>

28 

29In diesem Abschnitt erstellen Sie einen Mod, der einen `/hello-tabs` Befehl hinzufügt, und der Befehl öffnet ein Pane. Ein Pane ist eine Seitenleiste neben dem Transkript in einem breiten Vollbildterminal oder eine gerahmte Region über der Eingabeaufforderung. Dieses Pane zeigt zwei Registerkarten, und die zweite Registerkarte hat eine Schaltfläche, die eins zu einem Zähler addiert. Die Anzahl ist immer noch da, nachdem Sie Claude Code neu starten.

30 

31Der fertige Mod sieht so aus. Die Aufzeichnung öffnet das Pane, wechselt zur zweiten Registerkarte, drückt die Schaltfläche ein paar Mal und kehrt zur ersten Registerkarte zurück:

32 

33<Frame>

34 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=49d520094d87b5b44bfe50fa49677f06" aria-label="Der Befehl /hello-tabs wird an der Claude Code Eingabeaufforderung eingegeben und ein gerahmtes Pane öffnet sich darüber, mit „1: One&#x22; und „2: Two&#x22; oben und dem Text „This is the first tab.&#x22; Die zweite Registerkarte zeigt eine Schaltfläche „Add one&#x22; neben „Count: 1&#x22;, und die Anzahl steigt auf 3. Das Pane kehrt dann zur ersten Registerkarte zurück." data-path="images/mods-hello-tabs-light.mp4" />

35 

36 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=ff7a14d713d6e5d3b0000efa8522ea4b" aria-label="Der Befehl /hello-tabs wird an der Claude Code Eingabeaufforderung eingegeben und ein gerahmtes Pane öffnet sich darüber, mit „1: One&#x22; und „2: Two&#x22; oben und dem Text „This is the first tab.&#x22; Die zweite Registerkarte zeigt eine Schaltfläche „Add one&#x22; neben „Count: 1&#x22;, und die Anzahl steigt auf 3. Das Pane kehrt dann zur ersten Registerkarte zurück." data-path="images/mods-hello-tabs-dark.mp4" />

37</Frame>

38 

39Claude Code hat kein integriertes Registerkarten-Element, daher sind die Registerkarten zwei Schaltflächen in einer Reihe. Der Mod verfolgt, welche aktiv ist, und zeichnet den Inhalt dieser Registerkarte unter der Reihe.

40 

41<Steps>

42 <Step title="Erstellen Sie das Plugin">

43 Ein Mod ist ein Plugin mit einem Manifest, einer `hooks.json`, die auf Ihren Code verweist, und der Codedatei. [Erstellen Sie einen Mod](/docs/de/plugins/mods/create#write-a-mod-yourself) erklärt jeden. Erstellen Sie ein Verzeichnis namens `hello-tabs` mit `.claude-plugin` und `hooks` Verzeichnissen darin, speichern Sie dann die ersten zwei Dateien.

44 

45 Speichern Sie das Manifest als `hello-tabs/.claude-plugin/plugin.json`:

46 

47 ```json hello-tabs/.claude-plugin/plugin.json theme={null}

48 {

49 "name": "hello-tabs",

50 "version": "0.1.0",

51 "description": "Opens a pane with two tabs and a counter",

52 "author": { "name": "Your Name" }

53 }

54 ```

55 

56 Benennen Sie Ihren Einstiegspunkt in `hello-tabs/hooks/hooks.json`:

57 

58 ```json hello-tabs/hooks/hooks.json theme={null}

59 {

60 "modules": ["./register.js"]

61 }

62 ```

63 </Step>

64 

65 <Step title="Schreiben Sie den Code">

66 Der Code führt drei Aufgaben aus, eine in jedem Hook:

67 

68 * Fügt den `/hello-tabs` Befehl hinzu

69 * Öffnet das Pane, wenn Sie diesen Befehl ausführen

70 * Zeichnet den Inhalt des Pane: die Reihe von Registerkarten und den Hauptteil der offenen Registerkarte

71 

72 Zwei Variablen auf Modulebene, `tab` und `count`, halten den Status des Pane.

73 

74 Speichern Sie dies als `hello-tabs/hooks/register.js`:

75 

76 ```javascript hello-tabs/hooks/register.js theme={null}

77 // The pane's id, used to open the pane and to recognize it when drawing

78 const PANE = 'hello-tabs'

79 

80 // What the pane shows: which tab is open, and the counter's value

81 let tab = 'one'

82 let count = 0

83 

84 export function register(on) {

85 // Runs before your first prompt, and again after a reload

86 on('session.start', async ($, e, next) => {

87 await $.command.register({ name: 'hello-tabs', description: 'Open the hello-tabs pane' })

88 // Load the count an earlier session saved, if there is one

89 const saved = await $.store.get('count')

90 if (typeof saved === 'number') count = saved

91 return next(e)

92 })

93 

94 // Runs when you type /hello-tabs

95 on('command.run', { command: 'hello-tabs' }, async ($) => {

96 // Open the pane, give it the keyboard, and let Esc close it

97 await $.ui.open({ id: PANE, title: 'Hello tabs', focus: true, closeOnEscape: true })

98 // Print nothing in the transcript

99 return {}

100 })

101 

102 // Runs each time Claude Code draws a pane

103 on('ui.render', { component: 'Pane' }, async ($, e, next) => {

104 // Leave other mods' panes alone

105 if (e.requestId !== PANE) return next(e)

106 // Get the elements this app can draw

107 const { Box, Text, Button } = $.ui.resolve(e)

108 // Ask Claude Code to run this hook again

109 const redraw = () => $.ui.invalidate('ui.render')

110 

111 // One tab: a button that switches to its tab when pressed

112 const tabButton = (name, label, hotkey) =>

113 Button({

114 key: 'tab-' + name,

115 label,

116 hotkey,

117 plain: true,

118 // Dim the tab that isn't open

119 dimColor: tab !== name,

120 onPress: () => {

121 tab = name

122 redraw()

123 },

124 })

125 

126 // What goes under the tabs, depending on which one is open

127 const body =

128 tab === 'one'

129 ? [Text({ children: ['This is the first tab.'] })]

130 : [

131 Box({

132 flexDirection: 'row',

133 columnGap: 2,

134 children: [

135 Button({

136 key: 'more',

137 label: 'Add one',

138 hotkey: 'a',

139 onPress: async () => {

140 count += 1

141 redraw()

142 // Save the count so it's there after a restart

143 await $.store.set('count', count)

144 },

145 }),

146 Text({ children: ['Count: ' + count] }),

147 ],

148 }),

149 ]

150 

151 // The whole pane: the row of tabs, a blank line, then the body

152 return Box({

153 flexDirection: 'column',

154 children: [

155 Box({

156 flexDirection: 'row',

157 columnGap: 3,

158 children: [tabButton('one', 'One', '1'), tabButton('two', 'Two', '2')],

159 }),

160 Text({ children: [' '] }),

161 ...body,

162 ],

163 })

164 })

165 }

166 ```

167 

168 Jeder Hook führt auch etwas aus, das der Code nicht deutlich macht:

169 

170 * **[`session.start`](/docs/de/plugins/mods/reference#session)** liest auch die gespeicherte Anzahl aus [`$.store`](#keep-state), einem Schlüssel-Wert-Speicher, der zwischen Sitzungen bestehen bleibt.

171 * **[`command.run`](/docs/de/plugins/mods/api#add-a-command)** teilt Claude Code nur mit, dass das Pane existiert. Das Öffnen eines Pane zeichnet nichts von selbst: Claude Code löst dann `ui.render` aus, um zu fragen, was darin geht.

172 * **`ui.render`** gibt den Element-Baum zurück, ein `Box`, das andere Boxen, Text und Schaltflächen enthält, und erstellt ihn jedes Mal aus `tab` und `count` neu.

173 

174 Das Drücken einer Schaltfläche führt ihren `onPress` Callback aus, der eine Variable ändert und `redraw` aufruft. Claude Code führt dann den `ui.render` Hook erneut aus, und der Hook erstellt einen neuen Baum aus den neuen Werten. Jede interaktive Zeichnung verwendet diesen Render-Zyklus: Ein Callback ändert den Status, und der Hook zeichnet aus dem neuen Status neu.

175 </Step>

176 

177 <Step title="Öffnen Sie das Pane">

178 Starten Sie Claude Code in Ihrer Shell mit `claude --plugin-dir ./hello-tabs`. Führen Sie an der Claude Code Eingabeaufforderung `/hello-tabs` aus. Ein Pane öffnet sich mit `1: One` und `2: Two` oben. Drücken Sie `2`, dann drücken Sie `a`, die Hotkey für **Add one**, ein paar Mal. Die Anzahl steigt.

179 </Step>

180 

181 <Step title="Überprüfen Sie, dass die Anzahl gespeichert wurde">

182 Drücken Sie Esc, um das Pane zu schließen, und beenden Sie dann die Sitzung. Starten Sie Claude Code in Ihrer Shell erneut mit dem gleichen `claude --plugin-dir ./hello-tabs` Befehl, und führen Sie an der Claude Code Eingabeaufforderung `/hello-tabs` aus. Die Anzahl ist dort, wo Sie sie gelassen haben.

183 

184 Um die Anzahl zu löschen, lassen Sie den Mod `$.store.delete('count')` aufrufen. [Behalten Sie den Status](#keep-state) behandelt, wie lange jede Art von Wert dauert.

185 </Step>

186</Steps>

187 

188<h2 id="pick-where-to-draw">

189 Wählen Sie, wo Sie zeichnen möchten

190</h2>

191 

192Ein `ui.render` Hook läuft für jede Render-Site, es sei denn, Sie grenzen ihn auf die gewünschte ein. Um die Render-Site auszuwählen, übergeben Sie einen Filter, genannt [Matcher](/docs/de/plugins/mods/events#filter-which-events-a-hook-handles), als zweites Argument an `on`. `{ component: 'Pane' }` führt den Hook nur für Panes aus. Im Hook benennt `e.component` die Site, `e.surface` sagt, welche App zeichnet, und `e.props` enthält die eigenen Daten der Site. Für ein Pane ist `e.requestId` die `id`, mit der Sie es geöffnet haben.

193 

194Zwei Sites sind leer, bis ein Mod sie ausfüllt, das Pane und das Band. Wählen Sie eine Registerkarte, um zu sehen, was jede ist und wie man darin zeichnet:

195 

196<Tabs>

197 <Tab title="Pane">

198 Ein Pane ist eine Seitenleiste neben dem Transkript in einem breiten Vollbildterminal oder eine gerahmte Region über der Eingabeaufforderung. Mit mehreren offenen Panes erhält jedes eine Registerkarte, die seinen Titel anzeigt.

199 

200 Ein Pane erscheint, wenn Ihr Mod `$.ui.open` mit einer `id` aufruft, die Sie wählen, wie in `$.ui.open({ id: 'hello-tabs' })`. [Öffnen Sie ein Pane zum richtigen Zeitpunkt](#open-a-pane-at-the-right-time) behandelt die anderen Felder und wann ein Pane auf ein breiteres Terminal wartet.

201 

202 Um in Ihrem Pane zu zeichnen, filtern Sie auf `{ component: 'Pane' }` und überprüfen Sie, dass `e.requestId` Ihre `id` ist.

203 </Tab>

204 

205 <Tab title="Band über der Eingabeaufforderung">

206 Das Band ist ein Streifen direkt über der Eingabeaufforderung. Es ist immer da, und jeder Mod teilt es sich.

207 

208 Ihr Hook gibt einen Baum zurück, um etwas im Band zu zeigen, oder `next(e)`, um nichts zu zeigen. Ein Baum ersetzt das, was die Mods [nach Ihrem](/docs/de/plugins/mods/events#the-order-mods-run-in) dort zeichnen. Um das Ihre zu behalten, setzen Sie das Ergebnis von `await next(e)` unter die Kinder eines [`Box`](#build-a-tree-from-elements) in Ihrem Baum.

209 

210 Um im Band zu zeichnen, filtern Sie auf `{ component: 'AbovePrompt' }`.

211 </Tab>

212</Tabs>

213 

214<h3 id="change-what-claude-code-already-draws">

215 Ändern Sie, was Claude Code bereits zeichnet

216</h3>

217 

218Claude Code zeichnet den Großteil seiner Benutzeroberfläche selbst: Nachrichten, Tool-Call-Zeilen, den Spinner und mehr. Jeder dieser Teile ist auch eine Render-Site, daher kann ein Mod ihn umgestalten oder ersetzen. Um einen zu ändern, filtern Sie Ihren `ui.render` Hook auf seinen Namen aus dieser Tabelle:

219 

220| Site | Was es ist |

221| :- | :- |

222| `UserMessage`, `AssistantMessage` | Eine Nachricht im Transkript |

223| `ToolUse`, `ToolResult`, `ToolGroup` | Die Zeile eines Tool-Calls, sein Ergebnis und eine gefaltete Reihe von Calls |

224| `CommandOutput` | Die Zeile, die ein Befehl gedruckt hat |

225| `AskUserQuestion` | Der Dialog, den Claude öffnet, um Sie eine Frage zu stellen |

226| `Spinner`, `ToolProgress`, `TurnDuration` | Statuszeilen für einen Turn: die Zeile, die animiert wird, während Claude arbeitet, eine laufende Tool-Fortschrittszeile und die Zeile, die einen Turn schließt |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Statuszeilen unter dem Logo, die Modusbezeichnungen in der Fußzeile und die Hinweiszeile unter der Eingabeaufforderung |

228 

229An einer Site, die Claude Code bereits zeichnet, hat Ihr Hook drei Möglichkeiten: ein Detail ändern, die Zeichnung ersetzen oder sie allein lassen. Wählen Sie eine Registerkarte, um jede auf den Spinner angewendet zu sehen. Die Beispiele lesen eine `calls` Variable, die ein anderer Hook zählt, wie im [Tutorial-Mod](/docs/de/plugins/mods/create#write-a-mod-yourself).

230 

231<Tabs>

232 <Tab title="Ändern Sie ein Detail">

233 Um Claude Codes Zeichnung zu behalten und einen Teil davon zu ändern, übergeben Sie `next` eine Kopie des Ereignisses mit geänderten `props`. Dieser Hook ändert den Text nach dem Wort des Spinners:

234 

235 ```javascript theme={null}

236 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

237 // Keep Claude Code's spinner, and change the text after its word

238 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

239 })

240 ```

241 

242 Der Spinner behält seine Animation und sein Wort, und Ihr Text folgt dem Wort:

243 

244 ```text theme={null}

245 Thinking · tool calls: 2…

246 ```

247 </Tab>

248 

249 <Tab title="Ersetzen Sie die Zeichnung">

250 Um etwas Eigenes an der Stelle des Spinners zu zeichnen, geben Sie einen Baum zurück und rufen Sie `next` nicht auf. Dieser Hook zeichnet eine Textzeile, wo der Spinner wäre:

251 

252 ```javascript theme={null}

253 on('ui.render', { component: 'Spinner' }, async ($, e) => {

254 const { Text } = $.ui.resolve(e)

255 // No call to next, so this line is drawn in the spinner's place

256 return Text({ children: ['Claude has made ' + calls + ' tool calls'] })

257 })

258 ```

259 

260 Während Claude arbeitet, zeigt Ihre Zeile und Claude Codes Spinner nicht:

261 

262 ```text theme={null}

263 Claude has made 2 tool calls

264 ```

265 </Tab>

266 

267 <Tab title="Lassen Sie es allein">

268 Um die Site so zu lassen, wie Claude Code sie zeichnet, geben Sie `next(e)` zurück. Ein Hook tut das oft für einige Ereignisse und nicht für andere. Dieser Hook lässt den Spinner allein, bis es einen Call zu zählen gibt:

269 

270 ```javascript theme={null}

271 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

272 // Nothing to show yet, so pass the event on unchanged

273 if (calls === 0) return next(e)

274 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

275 })

276 ```

277 

278 Vor dem ersten Tool-Call sieht der Spinner so aus, wie er ohne den Mod aussieht:

279 

280 ```text theme={null}

281 Thinking…

282 ```

283 </Tab>

284</Tabs>

285 

286Die Berechtigungsaufforderung ist keine Render-Site, daher kann ein Mod nicht ändern, was sie zeigt. Der Frage-Dialog, `AskUserQuestion`, ist einer, daher kann ein Mod diesen ändern.

287 

288Das Terminal und die Desktop-App lösen nicht alle gleichen Sites aus. `Pane`, `AbovePrompt`, `Spinner` und die Transkript-Sites funktionieren in beiden. Ein paar andere Statuszeilen werden nur im Terminal ausgelöst. Die [Render-Sites-Tabelle](/docs/de/plugins/mods/reference#render-sites) listet auf, wo jede ausgelöst wird.

289 

290<h3 id="open-a-pane-at-the-right-time">

291 Öffnen Sie ein Pane zum richtigen Zeitpunkt

292</h3>

293 

294Ein Pane erscheint nur, wenn Ihr Mod es öffnet. Wie und wann Sie es öffnen, entscheidet, ob es den Tastaturfokus erhält, wie viel Platz es anfordert und ob es überhaupt in einem schmalen Terminal angezeigt wird.

295 

296Um ein Pane zu öffnen, rufen Sie [`$.ui.open`](/docs/de/plugins/mods/reference#mods-api-methods) mit einer `id` auf, die Sie wählen. Die `id` ist der Name des Pane: Ihr `ui.render` Hook überprüft sie, und Sie übergeben sie erneut, um das Pane zu schließen.

297 

298```javascript theme={null}

299await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })

300```

301 

302Um das Pane zu schließen, rufen Sie `$.ui.close` mit der `id` auf, mit der Sie es geöffnet haben:

303 

304```javascript theme={null}

305await $.ui.close({ id: 'hello-tabs' })

306```

307 

308Neben `id` nimmt `$.ui.open` diese optionalen Felder:

309 

310| Feld | Was es tut |

311| :- | :- |

312| `title` | Die Registerkarte des Pane, wenn mehr als ein Pane offen ist |

313| `focus` | Fordert [Tastaturfokus](#know-which-keys-your-mod-can-receive) an |

314| `closeOnEscape` | Macht Esc das Pane schließen. Übergeben Sie `true` oder lassen Sie das Feld weg, da Claude Code `false` ablehnt. |

315| `holdToasts` | Hält Toasts, die kleinen Mitteilungen von [`$.ui.toast`](/docs/de/plugins/mods/api#show-something-without-starting-a-turn), bis das Pane schließt |

316| `rows` | Die Höhe, die angefordert wird, wenn das Pane über der Eingabeaufforderung sitzt. Der Standard ist ein Drittel des Platzes. |

317| `columns` | Die Breite, die angefordert wird, wenn das Pane neben dem Transkript sitzt |

318 

319Um einem Befehl zu ermöglichen, das Pane zu öffnen, während Claude arbeitet, fügen Sie `immediate: true` hinzu, wenn Sie den [Befehl registrieren](/docs/de/plugins/mods/api#add-a-command). Ohne ihn wartet ein Befehl, der während eines Turns eingegeben wird, bis der Turn endet.

320 

321<h4 id="when-a-pane-waits-for-a-wider-terminal">

322 Wenn ein Pane auf ein breiteres Terminal wartet

323</h4>

324 

325Ein Pane, das Ihr Mod öffnet, ohne gefragt zu werden, erscheint nicht in einem schmalen Terminal, daher kann es einen kleinen Bildschirm nicht übernehmen. Ob es erscheint, hängt davon ab, was es geöffnet hat:

326 

327* **Geöffnet durch etwas, das der Benutzer getan hat**, z. B. ein Befehl, den er ausgeführt hat, oder eine Schaltfläche, die er gedrückt hat, das Pane erscheint bei jeder Breite

328* **Geöffnet durch Ihren Mod, der von selbst handelt**, z. B. von einem Timer oder einem [`turn.start`](/docs/de/plugins/mods/events#follow-a-turn) Hook, das Pane erscheint nur in einem Terminal mit mindestens 144 Spalten Breite. Nachdem der Benutzer dieses Pane einmal selbst geöffnet hat, reichen 110 Spalten aus.

329 

330Wenn das Pane erscheint, wird `$.ui.open` zu `{ isPlaced: true }` aufgelöst. Wenn das Pane wartet, ist `isPlaced` `false` und `reason` ist ein String, der sagt, warum. Ein wartendes Pane erscheint, wenn der Benutzer es öffnet oder das Terminal verbreitert. Um zu sagen, dass etwas verfügbar ist, ohne ein Pane zu öffnen, rufen Sie `$.ui.toast('Your message')` auf, das eine kleine Mitteilung zeigt, die nach ein paar Sekunden verschwindet.

331 

332<h2 id="build-a-tree-from-elements">

333 Erstellen Sie einen Baum aus Elementen

334</h2>

335 

336Was ein `ui.render` Hook zurückgibt, ist ein Element-Baum: eine Beschreibung dessen, was zu zeichnen ist, bestehend aus Boxen, Text und Steuerelementen, die ineinander verschachtelt sind. Sie beschreiben die Zeichnung, und Claude Code rendert sie im Terminal oder der Desktop-App.

337 

338Um die Elemente zu erhalten, rufen Sie `$.ui.resolve(e)` in Ihrem Hook auf, wie in `const { Box, Text, Button } = $.ui.resolve(e)`. Jedes Element ist eine Funktion. Sie übergeben ihr Props, und Sie setzen die Elemente und Strings, die darin gehen, in `children`.

339 

340Die meisten Zeichnungen verwenden vier Elemente. Wählen Sie eine Registerkarte, um jedes zu sehen und wie das Terminal es zeichnet:

341 

342<Tabs>

343 <Tab title="Text">

344 `Text` zeichnet einen String mit optionalem Styling wie `bold` und `color`:

345 

346 ```javascript theme={null}

347 Text({ children: ['This is the first tab.'] })

348 ```

349 

350 ```text theme={null}

351 This is the first tab.

352 ```

353 </Tab>

354 

355 <Tab title="Box">

356 `Box` ordnet an, was darin ist, in einer Reihe oder einer Spalte. Diese setzt eine Schaltfläche und eine Textzeile nebeneinander, zwei Spalten auseinander:

357 

358 ```javascript theme={null}

359 Box({

360 flexDirection: 'row',

361 columnGap: 2,

362 children: [

363 Button({ key: 'more', label: 'Add one', onPress: addOne }),

364 Text({ children: ['Count: 0'] }),

365 ],

366 })

367 ```

368 

369 ```text theme={null}

370 [ Add one ] Count: 0

371 ```

372 </Tab>

373 

374 <Tab title="Button">

375 `Button` ist ein Steuerelement, das der Benutzer drücken kann. Es führt Ihren `onPress` Callback aus. Mit `plain: true` hat es keine Klammern und zeigt seine Hotkey:

376 

377 ```javascript theme={null}

378 Button({ key: 'more', label: 'Add one', onPress: addOne })

379 Button({ key: 'tab-one', label: 'One', hotkey: '1', plain: true, onPress: showTabOne })

380 ```

381 

382 ```text theme={null}

383 [ Add one ]

384 1: One

385 ```

386 </Tab>

387 

388 <Tab title="Input">

389 `Input` ist ein Textfeld. Es führt Ihren `onSubmit` Callback mit dem Text aus, wenn der Benutzer Enter drückt:

390 

391 ```javascript theme={null}

392 Input({

393 key: 'new-note',

394 label: 'Note',

395 placeholder: 'Type a note and press Enter',

396 value: '',

397 submitLabel: 'add',

398 onSubmit: addNote,

399 })

400 ```

401 

402 ```text theme={null}

403 Note: Type a note and press Enter ⏎ add

404 ```

405 </Tab>

406</Tabs>

407 

408Diese Tabelle listet jedes Element auf:

409 

410| Element | Was es zeichnet | Wo |

411| :- | :- | :- |

412| `Box` | Ein Flex-Container. Nimmt Layout-Props wie `flexDirection`, `columnGap`, `padding`, `borderStyle` und `width`. | Überall |

413| `Text` | Gestylter Text. Nimmt `color`, `bold`, `dimColor`, `italic` und `wrap`. Ein `color` ist ein Theme-Schlüssel oder eine Farbe wie `'red'`. Ein `wrap` ist `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` oder `'truncate-end'`. | Überall |

414| `Button` | Ein Steuerelement, das `onPress` aufruft | Überall |

415| `Link`, `Code`, `Markdown` | Ein Link mit `href` und einem optionalen `label`, ein Codeblock und Text, der so formatiert ist wie Claude's Antworten. `Markdown` nimmt seinen Inhalt in einem `text` Prop, nicht in `children`, und braucht einen `key`, wenn Sie `onLinkPress` übergeben. | Überall |

416| `Input`, `Select` | Ein Textfeld und ein Picker | Terminal, Desktop |

417| `Svg` | Ein SVG-Dokument | Desktop |

418| `Client` | Eine Region, die von einer zweiten Datei von Ihnen gezeichnet wird, für Animation und Zeigereingabe. Diese Datei erhält keine Mods API. Sie erreicht Ihre Hooks nur durch das Posten von Daten, die als `ui.message` Ereignis ankommen. | Terminal, Desktop |

419| `Raster`, `Image` | Ein [Gitter von farbigen Zellen](#draw-a-grid-of-colored-cells) und ein Bild | Terminal |

420 

421Wenn Ihr Modul eine `.tsx` oder `.jsx` Datei ist, können Sie den Baum als JSX schreiben. Destrukturieren Sie die Elemente zuerst aus `$.ui.resolve(e)`, da ein Hooks-Modul keine Element-Globals hat.

422 

423Wenn ein Baum ein Element verwendet, das die App nicht hat, ein Prop, das ein Element nicht nimmt, oder ein Kind, wo keines geht, zeichnet Claude Code seine eigene Version der Site.

424 

425In einer Sitzung, die mit `--plugin-dir` gestartet wurde, sagt eine Transkriptzeile so, wie `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. Das [Debug-Protokoll](/docs/de/plugins/mods/troubleshoot#read-the-debug-log) zeichnet es als `ui.render (Pane): a hook returned a tree that does not validate` mit dem gleichen Grund auf. Nichts anderes erscheint in der Sitzung, also wenn eine Zeichnung nicht angezeigt wird, überprüfen Sie diese Zeile oder das Protokoll.

426 

427<h3 id="draw-a-grid-of-colored-cells">

428 Zeichnen Sie ein Gitter von farbigen Zellen

429</h3>

430 

431Für eine Wärmekarte, eine Sparkline oder ein Spielbrett im Terminal zeichnen Sie ein `Raster` und nicht ein `Box` für jede Zelle. Ein `Raster` nimmt einen `key`, seine Größe in `columns` und `rows` und `cells`, die jede Zelle in einen String packt. Jede Zelle sind drei Zahlen: der Code-Punkt des Zeichens, seine Farbe und seine Hintergrundfarbe. Eine Farbe ist eine Hexadezimalzahl mit zwei Ziffern jeweils für Rot, Grün und Blau, wie `0xc62828` für ein Rot oder `0x01000000` für das Standard des Terminals.

432 

433Die Desktop-App hat kein `Raster`, also überprüfen Sie `e.surface` und zeichnen Sie dort Text. Dieser Pane-Hauptteil zeichnet eine drei mal zwei Wärmekarte:

434 

435```javascript theme={null}

436// The value that means "use the terminal's default color"

437const DEFAULT_COLOR = 0x01000000

438 

439// Pack rows of [character, color] pairs into the one string a Raster takes

440// One cell is three numbers: the character's code point, its color, and its background

441function cellsOf(rows) {

442 const numbers = rows.flat().flatMap(([char, color]) => [char.codePointAt(0), color, DEFAULT_COLOR])

443 return new Uint8Array(Uint32Array.from(numbers).buffer).toBase64()

444}

445 

446on('ui.render', { component: 'Pane' }, async ($, e, next) => {

447 // Draw only in the pane opened with the id 'heat'

448 if (e.requestId !== 'heat') return next(e)

449 const { Box, Text, Raster } = $.ui.resolve(e)

450 // Two rows of three cells, each a block character and its color

451 const rows = [

452 [['█', 0x2e7d32], ['█', 0xf9a825], ['█', 0xc62828]],

453 [['█', 0x2e7d32], ['█', 0x2e7d32], ['█', 0xf9a825]],

454 ]

455 if (e.surface !== 'terminal') {

456 return Text({ children: ['The heat map needs the terminal.'] })

457 }

458 return Box({

459 flexDirection: 'column',

460 children: [Raster({ key: 'grid', columns: 3, rows: 2, cells: cellsOf(rows) })],

461 })

462})

463```

464 

465Im Terminal zeigt das Pane das Gitter:

466 

467<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=b91bcce3bad74bc851149133d4acc5d5" alt="Ein Pane im Terminal, das ein kleines Gitter von farbigen Blöcken enthält, zwei Reihen von drei. Die obere Reihe ist grün, bernsteinfarben und rot. Die untere Reihe ist grün, grün und bernsteinfarben." width="360" height="132" data-path="images/mods-heat-map.svg" />

468 

469Das `rows` Array ist der Teil, den Sie ändern würden, und `cellsOf` verwandelt es in den gepackten String. Der Hook zeichnet nur in einem Pane, dessen `id` `heat` ist, also öffnen Sie eines mit `$.ui.open({ id: 'heat' })` von einem Befehl, wie das [`hello-tabs` Beispiel](#build-a-pane-with-tabs) sein Pane öffnet.

470 

471Jedes Zeichen muss eine Zelle breit sein. Um ein `Raster`, das bereits auf dem Bildschirm ist, zu animieren, rufen Sie `$.ui.blit` mit der `id` des Pane als `requestId`, dem `key` des `Raster`, der gleichen Größe und neuen Zellen auf. Für dieses Beispiel ist das `$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })`. Es malt dieses eine Element neu, ohne Ihren `ui.render` Hook erneut auszuführen.

472 

473<h2 id="respond-to-presses-and-typing">

474 Reagieren Sie auf Drücke und Eingaben

475</h2>

476 

477Wenn der Benutzer eine Schaltfläche drückt, in ein Feld tippt oder aus einer Liste auswählt, die Ihr Mod gezeichnet hat, ruft Claude Code die Funktion auf, die Sie diesem Steuerelement gegeben haben, und sie läuft in Ihrem Modul. Jedes Steuerelement nimmt seine eigenen Callbacks:

478 

479* **`Button`**: nimmt `onPress(e)`, wobei `e.surface` die App ist, von der der Druck kam

480* **`Input`**: nimmt `onSubmit(value)` und `onInput(value)`

481* **`Select`**: nimmt `onSelect(value)` mit seinen Auswahlmöglichkeiten in `options`, eine Liste von mindestens einer Auswahlmöglichkeit mit eindeutigen Werten, wie `[{ value: 'sm', label: 'Small' }, { value: 'lg', label: 'Large' }]`

482 

483Ein Test drückt oder tippt in ein Steuerelement nach seinem `key`, also geben Sie jedem einen. Jede Verwendung eines Steuerelements löst auch [`ui.press`, `ui.input` oder `ui.select`](/docs/de/plugins/mods/reference#interface) mit dem `key` in `e.element` aus, und ein anderer Mod kann diese Ereignisse hooken. Sein Hook läuft vor Ihrem Callback, daher sieht er, was der Benutzer in Ihren `Input` tippt und kann es ändern oder an Stelle Ihres Callbacks antworten. Die Mods API hat keine Methode, die die Schaltfläche eines anderen Mods drückt.

484 

485<h3 id="know-which-keys-your-mod-can-receive">

486 Tastaturfokus und Hotkeys

487</h3>

488 

489Ihr Mod liest die Tastatur nie selbst. Der Benutzer drückt eine Taste, Claude Code entscheidet, welches Ihrer Steuerelemente es ist, und der Callback dieses Steuerelements läuft. Abgesehen von einer [Ziffern-Hotkey auf dem Band](/docs/de/plugins/mods/reference#elements) passiert das nur, während Ihr Pane oder Band den Tastaturfokus hat. Der Rest der Zeit gehen Tasten zur Eingabeaufforderung.

490 

491<h4 id="how-a-pane-gets-keyboard-focus">

492 Wie ein Pane den Tastaturfokus erhält

493</h4>

494 

495Ein Pane erhält den Tastaturfokus auf eine von drei Arten:

496 

497* Ihr Mod öffnet es mit `focus: true` von einem Befehl oder einem Druck

498* Der Benutzer drückt Ctrl+X dann Tab

499* Der Benutzer klickt darauf

500 

501Claude Code gewährt `focus: true` nur, während die Eingabeaufforderung leer ist und nichts anderes den Tastaturfokus hat. Ein Pane, das sich öffnet, während der Benutzer tippt, nimmt seine Tastenanschläge nicht.

502 

503<h4 id="what-each-key-does">

504 Was jede Taste tut

505</h4>

506 

507Diese Tabelle listet auf, was eine Taste tut, während Ihr Pane oder Band den Tastaturfokus hat:

508 

509| Taste | Was es tut |

510| :- | :- |

511| Tab | Bewegt sich zum nächsten Steuerelement |

512| Auf und Ab | Bewegen Sie sich zwischen Steuerelementen, während Ihre Zeichnung passt. Wenn das Pane oder Band mehr Reihen hat, als es anzeigen kann, scrollen sie es. |

513| Enter | Drückt die fokussierte `Button`, sendet die fokussierte `Input` oder wählt in einem `Select` |

514| Die Hotkey einer Schaltfläche | Drückt diese Schaltfläche. Während ein `Input` den Fokus hat, geht jede druckbare Taste zum Feld. |

515| Esc | Gibt den Tastaturfokus zur Eingabeaufforderung zurück. Mit `closeOnEscape: true` schließt es auch das Pane. |

516 

517Ein Mod kann Tab oder die Pfeiltasten nicht an etwas anderes binden, daher steuert ein Spiel mit `w`, `a`, `s` und `d`.

518 

519<h4 id="set-a-hotkey-and-the-first-focus">

520 Setzen Sie eine Hotkey und den ersten Fokus

521</h4>

522 

523Zwei Props auf einem Steuerelement entscheiden, wie die Tastatur es erreicht:

524 

525* **`hotkey`**: um dem Benutzer zu ermöglichen, eine `Button` mit einer Taste zu drücken, geben Sie ihr eine `hotkey` von einer Ziffer oder einem Kleinbuchstaben, wie in `hotkey: 'a'`

526* **`autoFocus`**: um zu wählen, welches Steuerelement den Fokus hat, wenn das Pane sich öffnet, fügen Sie `autoFocus: true` hinzu. Lassen Sie das Prop bei den anderen weg, da Claude Code `autoFocus: false` ablehnt.

527 

528Wie eine Hotkey angezeigt wird, hängt von der Schaltfläche und der App ab:

529 

530| Schaltfläche | Im Terminal | In der Desktop-App |

531| :- | :- | :- |

532| Mit Klammern, der Standard | `[ Add one ]`, ohne Hotkey angezeigt | Das Label mit einem kleinen Schlüssel daneben |

533| Mit `plain: true` | `1: One` | Das Label mit einem kleinen Schlüssel daneben |

534 

535Im Terminal benennen Sie die Taste im Label einer geklammerten Schaltfläche oder verwenden Sie `plain: true`, damit der Benutzer sehen kann, was zu drücken ist. Die [Elements-Referenz](/docs/de/plugins/mods/reference#elements) hat die anderen `Button` Regeln: `action`, Ziffern-Hotkeys auf dem Band und zwei Schaltflächen auf einer Hotkey.

536 

537<h3 id="take-typed-input-and-draw-a-row-for-each-item">

538 Nehmen Sie eingegebenen Text und zeichnen Sie eine Reihe für jedes Element

539</h3>

540 

541Viele Panes sind ein Textfeld mit einer Liste darunter. Das Beispiel in diesem Abschnitt ist ein Notizen-Pane: Sie tippen eine Notiz und drücken Enter, um sie hinzuzufügen, und jede Notiz hat eine `x` Schaltfläche, die sie löscht. Mit zwei hinzugefügten Notizen zeichnet das Terminal das Pane so:

542 

543```text theme={null}

544╭──────────────────────────────────────────────────────────╮

545│ Note: Type a note and press Enter ⏎ add ✕ │

546│ x buy milk │

547│ x call bob │

548╰──────────────────────────────────────────────────────────╯

549```

550 

551Das Beispiel verwendet zwei Techniken:

552 

553* **Nehmen Sie eingegebenen Text**: ein `Input` ruft `onSubmit(value)` mit dem Text des Feldes auf, wenn der Benutzer Enter drückt, und `onInput(value)` bei jeder Änderung

554* **Zeichnen Sie eine Liste**: ordnen Sie Ihre Daten einer Reihe jeweils zu, und geben Sie jedem `key` der Reihe seine eigene

555 

556Dieser Hook zeichnet den Inhalt des Pane:

557 

558```javascript theme={null}

559// The list the pane draws

560let notes = []

561 

562on('ui.render', { component: 'Pane' }, async ($, e, next) => {

563 // Draw only in the pane opened with the id 'notes'

564 if (e.requestId !== 'notes') return next(e)

565 const { Box, Text, Button, Input } = $.ui.resolve(e)

566 const redraw = () => $.ui.invalidate('ui.render')

567 

568 return Box({

569 flexDirection: 'column',

570 children: [

571 Input({

572 key: 'new-note',

573 label: 'Note',

574 placeholder: 'Type a note and press Enter',

575 // Draw the field empty each time, which clears it after a submit

576 value: '',

577 submitLabel: 'add',

578 autoFocus: true,

579 // Runs when you press Enter in the field

580 onSubmit: async (value) => {

581 // Ignore an empty line

582 if (!value.trim()) return

583 notes = [...notes, value.trim()]

584 redraw()

585 await $.store.set('notes', notes)

586 },

587 }),

588 // One row for each note: a delete button, then the note's text

589 ...notes.map((note, i) =>

590 Box({

591 flexDirection: 'row',

592 columnGap: 1,

593 children: [

594 Button({

595 // A key of its own, so each row's button can be told apart

596 key: 'delete-' + i,

597 label: 'x',

598 plain: true,

599 onPress: async () => {

600 notes = notes.filter((_, j) => j !== i)

601 redraw()

602 await $.store.set('notes', notes)

603 },

604 }),

605 Text({ children: [note] }),

606 ],

607 }),

608 ),

609 ],

610 })

611})

612```

613 

614Um das Pane zu versuchen:

615 

616* **Fügen Sie eine Notiz hinzu**: tippen Sie eine Zeile und drücken Sie Enter. Die Zeile erscheint als neue Reihe, und das Feld leert sich.

617* **Löschen Sie eine Notiz**: drücken Sie Tab, bis die `x` Schaltfläche der Notiz den Fokus hat, dann drücken Sie Enter. Das `x` ist das Label der Schaltfläche und keine Hotkey, daher drückt das Tippen des Buchstabens es nicht.

618 

619Jede Änderung folgt dem gleichen Render-Zyklus wie `hello-tabs`: Der Callback ändert `notes`, ruft `redraw` auf und speichert die Liste in `$.store`.

620 

621Das Feld leert sich nach jedem Submit wegen seines `value` Props. `value` ist der Text, den das Feld hält, wenn es gezeichnet wird, und das Tippen des Benutzers ersetzt ihn, bis Ihr Hook das Feld erneut zeichnet. Das Beispiel zeichnet das Feld immer mit `''`.

622 

623Das Beispiel speichert die Notizen und lädt sie nicht. Um sie in der nächsten Sitzung zurückzubringen, lesen Sie sie in einem `session.start` Hook, wie `hello-tabs` `count` liest.

624 

625Drei Props machen die Zeile des Feldes aus, `Note: Type a note and press Enter ⏎ add`:

626 

627| Prop | Im Beispiel | Was es ist |

628| :- | :- | :- |

629| `label` | `Note` | Der Text vor dem Feld. Das Terminal zeichnet `: ` danach. |

630| `placeholder` | `Type a note and press Enter` | Schwacher Text, der angezeigt wird, während das Feld leer ist |

631| `submitLabel` | `add` | Das Wort nach `⏎`, das sagt, was Enter tut |

632 

633Das Absenden eines `Input` startet keinen Turn, es sei denn, Ihr Callback ruft [`$.prompt.submit`](/docs/de/plugins/mods/api#start-a-turn-from-a-background-job) auf.

634 

635<h2 id="redraw-when-something-changes">

636 Zeichnen Sie eine Site neu

637</h2>

638 

639Eine Zeichnung ist ein Schnappschuss: Sie zeigt, was Ihr `ui.render` Hook das letzte Mal zurückgegeben hat, als der Hook lief. Um etwas Neues zu zeigen, muss der Hook erneut laufen. Claude Code führt ihn für einige Änderungen erneut aus, und Ihr Mod fragt nach dem Rest.

640 

641<h3 id="when-claude-code-redraws-without-being-asked">

642 Wenn Claude Code ohne Aufforderung neu zeichnet

643</h3>

644 

645Claude Code führt Ihren `ui.render` Hook erneut aus, wenn sich die Props der Site ändern oder die Breite des Terminals ändert. Es führt den Hook nicht auf einem Timer aus, und es kann nicht sagen, wenn sich eine Variable in Ihrem Modul ändert.

646 

647<h3 id="redraw-when-your-data-changes">

648 Zeichnen Sie neu, wenn sich Ihre Daten ändern

649</h3>

650 

651Um Ihre Sites nach Ihren eigenen Datenänderungen erneut zu zeichnen, rufen Sie `$.ui.invalidate('ui.render')` auf. Dieses Pane zählt Drücke. Der Callback der Schaltfläche ändert `count` und fragt dann nach einem Neuzeichnen:

652 

653```javascript theme={null}

654let count = 0

655 

656on('ui.render', { component: 'Pane' }, async ($, e, next) => {

657 if (e.requestId !== 'counter') return next(e)

658 const { Box, Text, Button } = $.ui.resolve(e)

659 return Box({

660 flexDirection: 'row',

661 columnGap: 2,

662 children: [

663 Button({

664 key: 'more',

665 label: 'Add one',

666 onPress: () => {

667 count += 1

668 // The data changed, so ask Claude Code to draw the pane again

669 $.ui.invalidate('ui.render')

670 },

671 }),

672 Text({ children: ['Count: ' + count] }),

673 ],

674 })

675})

676```

677 

678Jeder Druck erhöht die Zahl im Pane. Das [`hello-tabs` Beispiel](#build-a-pane-with-tabs) wickelt den gleichen Aufruf in seine `redraw` Funktion.

679 

680Ein Wert, den Sie in [`$.state`](#keep-a-value-in-\$-state) halten, braucht den Aufruf nicht, da das Schreiben des Wertes die Sites neu zeichnet, die ihn lesen.

681 

682<h3 id="redraw-on-a-timer">

683 Zeichnen Sie auf einem Timer neu

684</h3>

685 

686Um eine Uhr, einen Countdown oder einen Wert von außerhalb der Sitzung aktuell zu halten, zeichnen Sie nach einem Zeitplan neu. Starten Sie einen Timer im `session.start` Hook des Moduls. Wenn das Modul bereits einen hat, wie `hello-tabs`, fügen Sie die [`$.clock.every`](/docs/de/plugins/mods/api#run-work-in-the-background) Zeile hinzu:

687 

688```javascript theme={null}

689on('session.start', async ($, e, next) => {

690 // Every 1000 milliseconds, ask Claude Code to draw your sites again

691 $.clock.every(1000, () => $.ui.invalidate('ui.render'))

692 return next(e)

693})

694```

695 

696Claude Code führt jetzt Ihren `ui.render` Hook einmal pro Sekunde aus. Der Timer stoppt, wenn das Modul neu geladen wird, und die neue Kopie des Moduls startet ihren eigenen.

697 

698<h3 id="how-often-a-site-can-redraw">

699 Wie oft eine Site neu gezeichnet werden kann

700</h3>

701 

702Claude Code begrenzt, wie oft es neu zeichnet, daher kann Ihr Mod `$.ui.invalidate` so oft aufrufen, wie sich seine Daten ändern. Das sichtbare Pane und das Band haben ein höheres Limit als andere Sites, und die [Limits-Tabelle](/docs/de/plugins/mods/reference#limits) hat die Zahlen.

703 

704Aufrufe, die schneller als das Limit kommen, werden in einem Neuzeichnen kombiniert. Dieses Neuzeichnen führt Ihren Hook einmal aus, und der Hook liest Ihre Daten, wie sie in diesem Moment sind, daher zeigt der neueste Wert und die Werte dazwischen nicht. Eine Animation kann nicht schneller als das Limit laufen.

705 

706<h2 id="keep-state">

707 Behalten Sie den Status

708</h2>

709 

710Ein Mod hat drei Orte, um einen Wert zu halten, und sie unterscheiden sich darin, wie lange der Wert dauert: bis das Modul neu geladen wird, bis die Sitzung endet oder von einer Sitzung zur nächsten. Wählen Sie danach, wie lange der Wert dauern muss:

711 

712| Halten Sie es in | Es dauert bis | Verwenden Sie es für |

713| :- | :- | :- |

714| Eine Modulebenen-Variable | Das Modul wird neu geladen, was jedes Mal passiert, wenn Sie eine Datei während der Entwicklung speichern | Werte, die Sie verlieren können, wie `tab` in `hello-tabs` |

715| `$.state` | Die Sitzung endet oder der Benutzer führt `/clear`, `/resume` oder `/branch` aus | Werte, die eine Zeichnung abhängt, die einen Reload überleben sollten |

716| `$.store` | Ihr Mod löscht es oder keine Sitzung liest oder schreibt den Store für [`cleanupPeriodDays`](/docs/de/settings-reference#cleanupperioddays). Der Store ist ein Schlüssel-Wert-Speicher, gespeichert als JSON-Datei Ihres Plugins unter `~/.claude/plugins/store/`. | Einstellungen, Verlauf, alles, das der Benutzer das nächste Mal erwartet zu finden |

717 

718`$.store.get(key)` wird zu dem Wert oder `undefined` aufgelöst, und `$.store.set(key, value)` nimmt jeden JSON-Wert.

719 

720<h3 id="keep-a-value-in-state">

721 Behalten Sie einen Wert in `$.state`

722</h3>

723 

724`$.state` hält Werte für die Länge einer Sitzung, und es zeichnet für Sie neu. Es ist reaktiver Status: ein `ui.render` Hook, der einen Wert liest, abonniert ihn, daher zeichnet Claude Code diese Site jedes Mal neu, wenn Sie den Wert schreiben, und Sie rufen `$.ui.invalidate` nicht auf. Ein Wert in `$.state` überlebt auch ein Reload des Moduls, das eine Variable nicht tut.

725 

726Um es einzurichten, deklarieren Sie Ihre Werte, zeigen Sie Ihr Manifest auf die Deklaration, dann definieren und verwenden Sie jeden Wert. Die Beispiele verschieben den `count` aus `hello-tabs` in `$.state`.

727 

728<h4 id="declare-the-values">

729 Deklarieren Sie die Werte

730</h4>

731 

732Deklarieren Sie die Werte in einer Typendatei. Der äußere Schlüssel ist der Name Ihres Plugins, und jeder Eintrag darunter ist ein Wert und sein Typ. Speichern Sie dies als `hello-tabs/types/index.d.ts`:

733 

734```typescript hello-tabs/types/index.d.ts theme={null}

735declare module 'claude-code' {

736 interface PluginState {

737 'hello-tabs': {

738 tab: 'one' | 'two'

739 count: number

740 }

741 }

742}

743```

744 

745<h4 id="point-the-manifest-at-the-declaration">

746 Zeigen Sie das Manifest auf die Deklaration

747</h4>

748 

749Um `claude plugin validate` zu lassen, Ihren Code gegen diese Datei zu überprüfen, fügen Sie ein `types` Feld zum Manifest mit seinem Pfad hinzu:

750 

751```json hello-tabs/.claude-plugin/plugin.json theme={null}

752{

753 "name": "hello-tabs",

754 "version": "0.1.0",

755 "description": "Opens a pane with two tabs and a counter",

756 "author": { "name": "Your Name" },

757 "types": "./types/index.d.ts"

758}

759```

760 

761<h4 id="define-read-and-write-a-value">

762 Definieren, lesen und schreiben Sie einen Wert

763</h4>

764 

765In Ihrem Modul definieren Sie jeden Wert mit einem Standard, lesen ihn beim Zeichnen und schreiben ihn von einem Callback. `atom` benennt einen Wert und seinen Standard, `read` gibt ihn zurück, und `update` schreibt ihn. Die drei Helfer rufen `$.state.get` und `$.state.set` für Sie auf:

766 

767```javascript theme={null}

768import { atom, read, update } from 'claude-code'

769 

770// At the top of the module: name the value and give its default

771const count = atom({ plugin: 'hello-tabs', key: 'count' }, 0)

772 

773// In the ui.render hook: read the value to draw it

774const n = await read($, count)

775 

776// In a Button: write a new value from the old one

777onPress: () => update($, count, (value) => value + 1)

778```

779 

780Da der `ui.render` Hook `count` gelesen hat, führt Claude Code den Hook jedes Mal erneut aus, wenn die Schaltfläche ihn schreibt.

781 

782Drei Regeln gelten für den Code:

783 

784* **Schreiben Sie `plugin` und `key` als Literal-Strings**: `claude plugin validate` liest sie aus Ihrer Quelle

785* **Deklarieren Sie jeden Wert in der Typendatei**: sonst schlägt die Validierung mit `hello-tabs.count is not declared` fehl

786* **Schreiben Sie von einem Callback oder einem anderen Ereignis-Hook**: ein `ui.render` Hook kann Status lesen und kann ihn nicht schreiben, daher schreiben Sie von `onPress`, `onSubmit` oder einem Hook für ein anderes Ereignis

787 

788<h4 id="change-hello-tabs-to-use-state">

789 Ändern Sie `hello-tabs`, um `$.state` zu verwenden

790</h4>

791 

792Um `count` in `hello-tabs` in `$.state` zu verschieben, ändern Sie jede Zeile, die ihn verwendet:

793 

794* **Am Anfang des Moduls**: fügen Sie die `import` Zeile hinzu, und ersetzen Sie `let count = 0` mit der `atom` Zeile

795* **Im `ui.render` Hook**: fügen Sie die `read` Zeile vor `tabButton` hinzu, und zeichnen Sie `'Count: ' + n` im `Text`

796* **Im Add one Button**: ersetzen Sie `onPress` mit dem aus [Speichern Sie aus mehr als einer Sitzung](#save-from-more-than-one-session), das die Anzahl speichert sowie schreibt

797* **Im `session.start` Hook**: ersetzen Sie die zwei Zeilen, die `saved` lesen, mit dem `loadCount` Aufruf aus [Laden Sie einen gespeicherten Wert erneut nach `/clear`](#load-a-saved-value-again-after-clear)

798 

799Behalten Sie `redraw` für die Tab-Schaltflächen, da `tab` immer noch eine Variable ist.

800 

801<h3 id="load-a-saved-value-again-after-clear">

802 Laden Sie einen gespeicherten Wert erneut nach `/clear`

803</h3>

804 

805Wenn Ihr Mod einen gespeicherten Wert aus `$.store` in `$.state` bei `session.start` kopiert, muss er ihn nach `/clear`, `/resume` oder `/branch` erneut kopieren. Diese Befehle setzen jeden `$.state` Wert auf seinen Standard zurück, und `session.start` wird nicht erneut ausgelöst. [`classic.SessionStart`](/docs/de/plugins/mods/events#hook-the-settings-hook-events) wird nach jedem ausgelöst, mit `e.source` auf `clear`, `resume` oder `fork` gesetzt, daher kopieren Sie den Wert erneut in einem Hook darauf. Sonst zeigt Ihre Zeichnung den Standard, und ein Callback, der den `$.state` Wert speichert, schreibt den Standard über das, was Sie gespeichert haben.

806 

807Dieser Code lädt `count` aus beiden Hooks. Es baut auf der `$.state` Version von `hello-tabs` auf, wo `count` ein Atom ist und `update` importiert wird. Setzen Sie `loadCount` über `register`, und fügen Sie den `loadCount` Aufruf zum `session.start` Hook hinzu, den Sie bereits haben. `classic.SessionStart` wird auch beim Start und nach Verdichtung ausgelöst, was `$.state` nicht zurückgesetzt, daher hält der Filter auf `source` den Hook zu den drei Resets:

808 

809```javascript theme={null}

810// Copy the saved count from $.store into $.state, or 0 if nothing is saved

811async function loadCount($) {

812 const saved = Number((await $.store.get('count')) ?? 0)

813 await update($, count, () => saved)

814}

815 

816// Runs before your first prompt, and again after a reload

817on('session.start', async ($, e, next) => {

818 await loadCount($)

819 return next(e)

820})

821 

822// Runs again after /clear, /resume, and /branch, which reports fork

823on('classic.SessionStart', { source: ['clear', 'resume', 'fork'] }, async ($, e, next) => {

824 await loadCount($)

825 return next(e)

826})

827```

828 

829Mit beiden Hooks an Ort und Stelle zeigt das Pane die gespeicherte Anzahl nach `/clear` und nicht `0`, und der nächste Druck von **Add one** addiert zur gespeicherten Anzahl.

830 

831`loadCount` schreibt den gespeicherten Wert über den in `$.state`, und `session.start` wird jedes Mal ausgelöst, wenn das Modul neu geladen wird. Um den Store nicht hinter sich zu lassen, speichern Sie bei jeder Änderung, wie die **Add one** Schaltfläche tut.

832 

833Um den Reload ohne eine Sitzung zu überprüfen, [testen Sie die Zeichnung nach `/clear`](/docs/de/plugins/mods/test#test-a-drawing-after-clear).

834 

835<h3 id="save-from-more-than-one-session">

836 Speichern Sie aus mehr als einer Sitzung

837</h3>

838 

839Jede Sitzung auf Ihrem Computer, die Ihren Mod ausführt, teilt einen `$.store`. Ein `get` gefolgt von einem `set` ist nicht atomar. Wenn zwei Sitzungen jeweils einen Wert lesen, ihn ändern und zurückschreiben, rennen sie, und der zweite Schreib ersetzt den ersten.

840 

841Zwei Auswahlmöglichkeiten machen das weniger wahrscheinlich:

842 

843* **Geben Sie jedem Element seinen eigenen Schlüssel**: ein `set` ändert nur seinen eigenen Schlüssel, daher überschreiben Sitzungen, die verschiedene Schlüssel schreiben, sich nicht gegenseitig

844* **Lesen Sie erneut direkt vor dem Schreiben**: für einen Wert, den mehrere Sitzungen ändern, `get` den Schlüssel im Callback und erstellen Sie den neuen Wert daraus, nicht aus einer Kopie, die Sie bei `session.start` geladen haben. Ein Schreib einer anderen Sitzung geht immer noch verloren, wenn er zwischen Ihrem `get` und Ihrem `set` landet.

845 

846Diese Schaltfläche addiert eins zu dem, was der Store jetzt hält, dann aktualisiert die Zeichnung:

847 

848```javascript theme={null}

849onPress: async () => {

850 // Read what the store holds now, which another session may have changed

851 const saved = Number((await $.store.get('count')) ?? 0)

852 // Save the new count, then show it

853 await $.store.set('count', saved + 1)

854 await update($, count, () => saved + 1)

855}

856```

857 

858Wenn eine zweite Sitzung ihre eigene Schaltfläche drei Mal gedrückt hat, seit diese Sitzung gestartet wurde, zeigt dieser Druck und speichert eine Anzahl, die diese drei enthält.

859 

860<h2 id="next-steps">

861 Nächste Schritte

862</h2>

863 

864* [Reagieren Sie auf Ereignisse](/docs/de/plugins/mods/events): speisen Sie Ihre Zeichnung aus Tool-Calls und Turns

865* [Verwenden Sie die Mods API](/docs/de/plugins/mods/api): speisen Sie Ihre Zeichnung aus Timern und Modell-Aufrufen

866* [Testen Sie eine Zeichnung](/docs/de/plugins/mods/test#test-a-drawing): drücken Sie Ihre Schaltflächen aus einem Test auf mehr als einer Oberfläche

867* [Render-Sites](/docs/de/plugins/mods/reference#render-sites) und [Elemente](/docs/de/plugins/mods/reference#elements): jede Site's Props und jedes Element's Props

plugins/mods/overview.md +269 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Mods – Übersicht

6 

7> Fügen Sie Bereiche, Befehle und Tool-Call-Regeln zu Claude Code mit einem Mod hinzu. Sehen Sie, was ein Mod kann, wie Sie einen erstellen oder installieren, und wo Mods ausgeführt werden.

8 

9Ein Mod ist ein [Plugin](/docs/de/plugins/overview), das ändert, wie Claude Code aussieht und sich verhält. Er besteht aus JavaScript- oder TypeScript-Event-Handlern: Claude Code ruft einen auf, wenn ein Ereignis eintritt, z. B. ein Tool-Call, eine eingereichte Eingabeaufforderung oder ein Teil der Benutzeroberfläche wird gezeichnet, und der Handler kann das Ereignis beobachten, ändern oder übernehmen. Verwenden Sie einen Mod, um Claude Code eine eigene Funktion hinzuzufügen, z. B. einen Bereich, der nach jeder Anfrage anzeigt, wie voll Ihr Kontext ist. Für die Dateien in einem Mod und ein vollständiges Beispiel siehe [Wie ein Mod funktioniert](#how-a-mod-works).

10 

11<Note>

12 Die vorhandenen [Hooks](/docs/de/hooks) von Claude Code werden auch bei Ereignissen ausgeführt, als Shell-Befehl, HTTP-Anfrage oder Eingabeaufforderung, die Sie in einer Einstellungsdatei konfigurieren. Die Handler eines Mods sind Funktionen, die stattdessen in Claude Code ausgeführt werden. Claude Code ruft beide Arten von Hooks auf: Auf diesen Seiten bedeutet „Hook" einen Handler eines Mods, und die Art aus der Einstellungsdatei ist ein „Settings-Hook".

13</Note>

14 

15<h2 id="what-a-mod-can-do">

16 Was ein Mod kann

17</h2>

18 

19Settings-Hooks, Skills, Statuszeilen und MCP-Server funktionieren außerhalb von Claude Code: Jeder führt ein Skript aus oder gibt Claude Text oder Tools. Ein Mod wird in Claude Code ausgeführt, daher kann er Dinge tun, die sie nicht können:

20 

21* **Eine Benutzeroberfläche zeichnen, die Sie verwenden können**: ein Bereich neben dem Transkript oder ein Band über der Eingabeaufforderung mit Registerkarten, Schaltflächen und Textfeldern. Siehe [In der Benutzeroberfläche zeichnen](/docs/de/plugins/mods/interface).

22* **Claude Codes eigene Benutzeroberfläche neu zeichnen**: Ersetzen oder gestalten Sie Teile neu, die Claude Code selbst zeichnet, z. B. die Zeile eines Tool-Calls, den Spinner oder den Dialog, in dem Claude Fragen stellt. Siehe [Ändern Sie, was Claude Code bereits zeichnet](/docs/de/plugins/mods/interface#change-what-claude-code-already-draws).

23* **In einen Tool-Call oder eine Anfrage einsteigen**: Halten Sie beispielsweise einen Tool-Call an, während Sie den Benutzer eine Frage stellen, beantworten Sie ihn, ohne das Tool auszuführen, oder senden Sie eine Anfrage an ein anderes Modell. Siehe [Einen Tool-Call schützen oder ändern](/docs/de/plugins/mods/events#guard-or-change-a-tool-call) und [Einem Zug folgen](/docs/de/plugins/mods/events#follow-a-turn).

24* **Ihren eigenen Code auf einem Befehl ausführen**: ein `/command`, der Ihre Funktion sofort ausführt, ohne Claude-Zug, auch während Claude arbeitet. Siehe [Einen Befehl oder ein Tool hinzufügen](/docs/de/plugins/mods/api#add-a-command-or-a-tool).

25* **Daten zwischen Hooks teilen**: Die Hooks eines Mods teilen die Variablen in seiner Datei, daher kann ein anderer Hook zeigen, was ein Hook aufzeichnet. Beispielsweise kann ein Hook Tool-Calls zählen, während ein anderer die Anzahl neben dem Spinner anzeigt, oder einer kann die Token-Nutzung jeder Anfrage lesen, während ein anderer sie in einem Bereich darstellt. Siehe [Auf Ereignisse reagieren](/docs/de/plugins/mods/events).

26 

27Mods funktionieren in der Claude Code CLI und auf der Registerkarte „Code" der Claude Desktop-App. Siehe [Wo Mods ausgeführt werden](#where-mods-run), um zu verstehen, wie sie sich an anderen Orten verhalten, z. B. in der VS Code-Erweiterung, `claude -p` und Cloud-Sitzungen. Wenn ein Settings-Hook, ein Skill oder ein MCP-Server bereits das tut, was Sie benötigen, [vergleichen Sie sie](#compare-mods-settings-hooks-skills-and-mcp-servers), bevor Sie einen Mod schreiben. Um Mods für eine Organisation zu verwalten, siehe [Mods für Ihre Organisation verwalten](/docs/de/plugins/mods/admin).

28 

29<h2 id="get-a-mod">

30 Einen Mod abrufen

31</h2>

32 

33Sie können auf eine von drei Arten mit einem Mod beginnen:

34 

35* **Verwenden Sie einen, den Sie bereits haben**: Einige der eigenen Funktionen von Claude Code sind Mods, z. B. `/diff`. Siehe [In Claude Code integrierte Mods](#mods-built-into-claude-code).

36* **Erstellen Sie einen**: Beschreiben Sie, was Sie in einer Claude Code-Sitzung möchten, und Claude schreibt den Mod. Siehe [Claude um einen Mod bitten](/docs/de/plugins/mods/create#ask-claude-for-a-mod). Um zu erfahren, wie der Code eines Mods funktioniert, [schreiben Sie selbst einen](/docs/de/plugins/mods/create#write-a-mod-yourself).

37* **Installieren Sie einen**: siehe [Einen Mod installieren oder aktualisieren](#install-or-update-a-mod)

38 

39<h3 id="install-or-update-a-mod">

40 Einen Mod installieren oder aktualisieren

41</h3>

42 

43<Warning>

44 Ein Mod ist Code, der mit Ihren Berechtigungen ausgeführt wird. Er kann Ihre Dateien lesen und schreiben, Prozesse starten und Netzwerkanfragen stellen. Installieren Sie Mods nur von Autoren und Marktplätzen, denen Sie vertrauen. Siehe [Entscheiden Sie, ob Sie einem Mod vertrauen](#decide-whether-to-trust-a-mod).

45</Warning>

46 

47Ein Mod wird als Plugin von einem Marktplatz installiert. Geben Sie den Namen des Plugins, ein `@` und den Namen des Marktplatzes an. Diese Beispiele installieren ein Plugin namens `token-chart` von einem Marktplatz namens `your-org`:

48 

49* Führen Sie in einer Claude Code-Sitzung `/plugin install token-chart@your-org` aus.

50* Führen Sie in Ihrer Shell `claude plugin install token-chart@your-org` aus.

51 

52[Plugins installieren](/docs/de/plugins/install) behandelt Marktplätze, Bereiche, die VS Code-Erweiterung und die Desktop-App sowie [Plugins aktuell halten](/docs/de/plugins/install#keep-plugins-updated), die alle auf ein Plugin angewendet werden, das einen Mod ohne Änderungen enthält.

53 

54Wenn Sie einen Mod von Ihrer Shell aus installieren oder aktualisieren, während eine Sitzung offen ist, führen Sie `/reload-plugins` in dieser Sitzung aus, um ihn zu laden. Andernfalls wird er beim nächsten Start von Claude Code geladen.

55 

56<h2 id="decide-whether-to-trust-a-mod">

57 Entscheiden Sie, ob Sie einem Mod vertrauen

58</h2>

59 

60Ein Mod ist Code, der mit Ihren Berechtigungen in Claude Code ausgeführt wird. Installieren Sie Mods nur von Autoren und [Marktplätzen, denen Sie vertrauen](/docs/de/plugins/security).

61 

62<h3 id="what-a-mod-can-reach">

63 Was ein Mod erreichen kann

64</h3>

65 

66Ein Mod wird mit Ihren Berechtigungen ausgeführt, daher sollten Sie vor der Installation wissen, worauf er Zugriff hat. Nach dem Laden kann ein Mod:

67 

68* **Auf Ihrem Computer als Sie handeln**: Dateien überall dort lesen und schreiben, wo Ihr Benutzerkonto kann, Programme starten und Netzwerkanfragen stellen

69* **Ihre Geheimnisse lesen**: Umgebungsvariablen und Einstellungsdateien, einschließlich eines API-Schlüssels, den Sie in einem von beiden aufbewahren

70* **Ihre Sitzung sehen**: Jede Eingabeaufforderung, die Sie senden, und jeden Tool-Call, den Claude macht

71* **Ihre Sitzung ändern**: Schreiben Sie eine Eingabeaufforderung oder einen Tool-Call um, reichen Sie eine Eingabeaufforderung ein, als hätten Sie sie eingegeben, oder senden Sie eine Nachricht an eine andere Ihrer Sitzungen

72* **Ohne Sie zu fragen handeln**: Genehmigen Sie einen Tool-Call, bevor Sie gefragt werden

73* **Ihre Nutzung ausgeben**: Rufen Sie ein Modell in Ihrem Plan oder API-Schlüssel auf

74 

75Ein Mod, der Tool-Calls genehmigt, kann einen genehmigen, für den eine `ask`-Regel Sie auffordert, oder den einer Ihrer eigenen `PreToolUse`-Hooks blockiert hat. [Berechtigungen mit Hooks erweitern](/docs/de/permissions#extend-permissions-with-hooks) listet auf, was ein solcher Mod genehmigen kann, einschließlich wann er einen Anruf genehmigen kann, den eine `deny`-Regel ablehnt.

76 

77Ein Mod kann einen Großteil der Claude Code-Benutzeroberfläche umgestalten, aber nicht die Berechtigungsaufforderung. Es kann nicht ändern, was eine Eingabeaufforderung Ihnen zeigt.

78 

79<h3 id="list-what-a-mod-does-before-you-install-one">

80 Auflisten, was ein Mod tut, bevor Sie ihn installieren

81</h3>

82 

83Bevor Sie einen Mod installieren, können Sie auflisten, welche Ereignisse er verknüpft und was er Claude Code auffordert zu tun, z. B. eine Datei zu lesen oder eine Netzwerkanfrage zu stellen, ohne ihn auszuführen. Rufen Sie zuerst die Plugin-Dateien ab, z. B. durch Klonen des Repositorys. Führen Sie dann in Ihrer Shell `claude plugin validate` im Verzeichnis des Plugins aus:

84 

85```bash theme={null}

86claude plugin validate ./some-mod

87```

88 

89Die Zeilen `hooks:` und `calls:` in der Ausgabe listen die Ereignisse auf, die der Mod verarbeitet, und was er Claude Code auffordert zu tun. [Überprüfen Sie, was ein Mod tun kann](/docs/de/plugins/mods/admin#review-what-a-mod-can-do) zeigt die Ausgabe und welche Aufrufe zu suchen sind.

90 

91<h2 id="turn-mods-on-or-off">

92 Mods aktivieren oder deaktivieren

93</h2>

94 

95Mods erfordern Claude Code v2.1.287 oder später, und sie sind standardmäßig aktiviert. Führen Sie in Ihrer Shell `claude --version` aus, um dies zu überprüfen, und aktualisieren Sie Claude Code, wenn Ihre Version älter ist.

96 

97Um Mods zu deaktivieren, wählen Sie, wie viele Sie stoppen möchten, und für wie lange. Um sie wieder zu aktivieren, machen Sie die gleiche Änderung rückgängig:

98 

99* **Ein Mod**: deaktivieren oder deinstallieren Sie sein Plugin auf der [**Installed**-Registerkarte in `/plugin`](/docs/de/plugins/install#manage-installed-plugins)

100* **Alle installierten Mods, für eine Sitzung**: starten Sie Claude Code mit [`--safe-mode`](/docs/de/cli-reference#cli-flags), was auch Ihre anderen Anpassungen ausschließt

101* **Alle Mods, die Sie installiert haben, in jeder Sitzung**: setzen Sie [`"disableAllHooks": true`](/docs/de/settings-reference#disableallhooks) in `~/.claude/settings.json`. Ihre Einstellungs-Hooks und benutzerdefinierte Statuszeile werden ebenfalls beendet. Das, was Ihre Organisation verwaltet, läuft weiter.

102 

103Wenn Sie Claude Code über eine Organisation nutzen, kann ein Administrator auch einschränken, welche Mods geladen werden. Administratoren beginnen bei [Stop user-installed mods from loading](/docs/de/plugins/mods/admin#stop-user-installed-mods-from-loading).

104 

105Um herauszufinden, ob Mods für Sie geladen werden können, siehe [Check whether mods can load](/docs/de/plugins/mods/troubleshoot#check-whether-mods-can-load).

106 

107<Note>

108 Wenn Sie `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` während des Early Access gesetzt haben, entfernen Sie es. Claude Code v2.1.287 und später ignoriert es, daher hält das Setzen auf `0` Mods nicht aus.

109</Note>

110 

111<h3 id="see-which-mods-a-session-loaded">

112 Sehen Sie, welche Mods eine Sitzung geladen hat

113</h3>

114 

115Um zu sehen, welche Mods eine Terminal-Sitzung geladen hat, führen Sie `/plugin` an der Claude Code-Eingabeaufforderung aus. Eine schwache Linie unter den Registerkarten gibt die Anzahl und die Namen an, z. B. `1 mod active · first-mod`. Wenn ein Mod, das Sie installiert haben, dort nicht aufgeführt ist, siehe [Find out why a mod does nothing](/docs/de/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing).

116 

117<h2 id="how-a-mod-works">

118 Wie ein Mod funktioniert

119</h2>

120 

121Ein Mod ist ein [Plugin](/docs/de/plugins/overview), dessen Code Event-Handler registriert, sogenannte Hooks. Claude Code führt einen Hook aus, wenn sein Ereignis eintritt, z. B. wenn Claude ein Tool aufruft oder der Spinner gezeichnet wird. Ein kleiner Mod hat drei Dateien:

122 

123```text theme={null}

124first-mod/

125├── .claude-plugin/

126│ └── plugin.json

127└── hooks/

128 ├── hooks.json

129 └── register.js

130```

131 

132* **`plugin.json`**: das [Manifest](/docs/de/plugins/manifest-reference) des Plugins

133* **`hooks.json`**: [verweist auf Ihre Code-Datei](/docs/de/plugins/mods/reference#files)

134* **`register.js`**: [Ihr Code](/docs/de/plugins/mods/create#write-a-mod-yourself), genannt das Hooks-Modul. Es teilt Claude Code mit, auf welche Ereignisse Ihre Funktionen ausgeführt werden sollen.

135 

136Dies ist ein vollständiges `register.js`. Es zählt die Tool-Calls, die Claude macht, und zeigt die Anzahl neben dem Spinner an, während Claude arbeitet, wie in `Thinking · tool calls: 3…`.

137 

138```javascript hooks/register.js theme={null}

139// The count, shared by the two hooks below

140let calls = 0

141 

142// Claude Code calls this once when the mod loads

143export function register(on) {

144 // Runs each time Claude is about to use a tool

145 on('tool.call', async ($, e, next) => {

146 calls += 1

147 // Ask Claude Code to draw the interface again, so the new count shows

148 $.ui.invalidate('ui.render')

149 // Let the tool run as usual

150 return next(e)

151 })

152 

153 // Runs each time Claude Code draws the spinner

154 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

155 // Keep Claude Code's spinner, with the count added after its word

156 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

157 })

158}

159```

160 

161Die Datei registriert zwei Hooks, und beide verwenden die `calls`-Variable oben:

162 

163* **Der [`tool.call`](/docs/de/plugins/mods/reference#tools)-Hook** wird jedes Mal ausgeführt, wenn Claude ein Tool verwenden möchte. Er addiert eins zu `calls`, fordert Claude Code auf, die Benutzeroberfläche erneut zu zeichnen, und lässt das Tool wie gewohnt ausführen.

164* **Der [`ui.render`](/docs/de/plugins/mods/reference#interface)-Hook** wird jedes Mal ausgeführt, wenn Claude Code den Spinner zeichnet. Er behält Claude Codes eigenen Spinner und fügt die Anzahl nach dem Wort hinzu.

165 

166Diese Aufzeichnung zeigt den Mod in Aktion. Beobachten Sie die Spinner-Zeile über dem Eingabefeld: Während Claude ein Verzeichnis auflistet und zwei Dateien liest, liest es `Thinking · tool calls: 1…`, dann `2…`, dann `3…`.

167 

168<Frame>

169 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. While Claude works, the spinner reads 'Thinking · tool calls: 1', then 2, then 3, as Claude lists the files and reads two of them." data-path="images/mods-overview-light.mp4" />

170 

171 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=d5223da2fef16ceaaa214a36d72c0536" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. While Claude works, the spinner reads 'Thinking · tool calls: 1', then 2, then 3, as Claude lists the files and reads two of them." data-path="images/mods-overview-dark.mp4" />

172</Frame>

173 

174<h3 id="what-a-hook-can-do-with-an-event">

175 Was ein Hook mit einem Ereignis tun kann

176</h3>

177 

178Claude Code führt Ihren Hook aus, bevor er auf das Ereignis reagiert, daher entscheidet der Hook, was als Nächstes passiert. Er hat drei Möglichkeiten:

179 

180* **Beobachten**: Notieren Sie, was passiert, und lassen Sie es unverändert fortfahren, wie der `tool.call`-Hook im Beispiel

181* **Umschreiben**: Ändern Sie das Ereignis, bevor es fortfährt, wie der `ui.render`-Hook, wenn er die Anzahl zum Spinner hinzufügt

182* **Antworten**: Verarbeiten Sie das Ereignis selbst, damit das übliche Verhalten nicht ausgeführt wird, z. B. einen Befehl ablehnen

183 

184Um etwas außerhalb seines eigenen Codes zu tun, z. B. zu zeichnen, einen Befehl hinzuzufügen, ein Modell aufzurufen, eine Datei zu lesen, einen Prozess zu starten oder eine Netzwerkanfrage zu stellen, ruft ein Hook die Mods-API auf. Ein Hook hat keine andere Möglichkeit, diese Dinge zu tun, weshalb Claude Code [auflisten kann, was ein Mod tut](#list-what-a-mod-does-before-you-install-one), bevor Sie ihn installieren.

185 

186Für den Code hinter jeder Wahl siehe [Auf Ereignisse reagieren](/docs/de/plugins/mods/events#how-a-hook-handles-an-event). Für das, was ein Hook aufrufen kann, siehe [Verwenden Sie die Mods-API](/docs/de/plugins/mods/api).

187 

188<h3 id="where-mods-run">

189 Wo Mods ausgeführt werden

190</h3>

191 

192Die Hooks eines Mods werden in jeder Art von Sitzung ausgeführt, die das Plugin lädt. Das Zeichnen ist enger: Nur das Terminal und die Desktop-App zeigen die Bereiche, Bänder und ersetzten Zeilen eines Mods. Diese Tabelle listet jeden Ort auf, an dem Sie Claude Code ausführen könnten:

193 

194| Wo Sie Claude Code ausführen | Hooks werden ausgeführt | Was der Mod zeichnet, wird angezeigt |

195| :- | :- | :- |

196| `claude` in einem Terminal, einschließlich des integrierten Terminals eines Editors und des JetBrains-Plugins | Ja | Ja |

197| Die Registerkarte „Code" der Desktop-App, außer in einer WSL-Sitzung | Ja | Ja, außer Elementen, die die [Elementtabelle](/docs/de/plugins/mods/reference#elements) als nur Terminal markiert |

198| Eine [WSL-Sitzung](/docs/de/desktop-wsl) in der Desktop-App | Nein, da Plugins in WSL-Sitzungen nicht verfügbar sind | Nein |

199| Das Chat-Panel der VS Code-Erweiterung | Ja | Nein |

200| `claude -p` und das [Agent SDK](/docs/de/agent-sdk/overview) | Ja | Nein |

201| [Remote Control](/docs/de/remote-control) von claude.ai oder der mobilen App | Ja, in der Sitzung auf Ihrem Computer | Im Terminal auf Ihrem Computer |

202| Eine [Cloud-Sitzung](/docs/de/claude-code-on-the-web) | Ja, für ein Plugin, das [die Cloud-Sitzung erreicht](/docs/de/cloud-environments#what-carries-over-from-your-setup) | Nein |

203 

204Ein Mod, der zeichnet, kann überprüfen, in welcher App er ausgeführt wird, und auf eine Zeile im Transkript oder eine Textantwort eines Befehls zurückgreifen, wo nichts gezeichnet wird.

205 

206<h2 id="control-mods-for-your-organization">

207 Mods für Ihre Organisation steuern

208</h2>

209 

210Administratoren entscheiden, ob Mods ausgeführt werden und welche, durch [verwaltete Einstellungen](/docs/de/managed-settings). [Mods für Ihre Organisation verwalten](/docs/de/plugins/mods/admin) behandelt, was standardmäßig passiert, wie man einen Mod überprüft, und wie man eine Richtlinie mit einem eigenen Mod durchsetzt.

211 

212<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">

213 Vergleichen Sie Mods, Settings-Hooks, Skills und MCP-Server

214</h2>

215 

216Mods, Settings-Hooks, Skills und MCP-Server überlappen sich. Diese Tabelle zeigt, was jeder ist und wann man ihn wählt.

217 

218| | Mod | Settings-Hook | Skill | MCP-Server |

219| :- | :- | :- | :- | :- |

220| Was es ist | Funktionen in einem Plugin, die Claude Code in seinem eigenen Prozess aufruft | Ein Shell-Befehl, eine HTTP-Anfrage oder eine Eingabeaufforderung, die Claude Code bei einem Lebenszyklusereignis ausführt | Eine `SKILL.md`-Datei mit Anweisungen, die Claude liest | Ein externer Prozess oder Service, der Claude Tools gibt |

221| Was es ändern kann | Tool-Calls, Eingabeaufforderungen, Befehle, Züge und was die Benutzeroberfläche zeichnet | Ob ein Tool-Call oder eine Eingabeaufforderung fortfährt, die Argumente und das Ergebnis eines Tool-Calls und der für Claude hinzugefügte Kontext | Was Claude weiß und tut | Welche Tools Claude hat |

222| Kann es in der Benutzeroberfläche zeichnen | Ja | Nein | Nein | Nein |

223| Was Sie schreiben | JavaScript oder TypeScript | Ein Skript und ein `settings.json`-Eintrag | Markdown | Ein Server in jeder Sprache |

224| Wählen Sie es, wenn | Sie einen Bereich, ein Band über der Eingabeaufforderung, einen benutzerdefinierten Befehl oder das Umschreiben eines Ereignisses möchten | Sie ein Ereignis mit einem Skript, das Sie bereits haben, blockieren, zulassen oder protokollieren möchten | Sie die gleichen Anweisungen immer wieder in den Chat einfügen | Claude muss ein externes System erreichen |

225 

226Jeder der anderen hat seine eigene Seite: [Hooks](/docs/de/hooks), [Skills](/docs/de/skills) und [MCP](/docs/de/mcp). Ein Plugin kann alle vier enthalten, daher kann ein Mod in demselben Plugin wie ein Skill und ein MCP-Server versendet werden.

227 

228<h2 id="mods-built-into-claude-code">

229 In Claude Code integrierte Mods

230</h2>

231 

232Einige der eigenen Funktionen von Claude Code sind Mods. Um die zu sehen, die Ihre Sitzung hat, führen Sie `/plugin` an der Claude Code-Eingabeaufforderung aus und gehen Sie zur Registerkarte **Installed**, die sie unter **Built-in** auflistet. Sie können einen integrierten Mod nicht aktualisieren oder deinstallieren, und die letzte Spalte der Tabelle sagt, wie Sie jeden ausschalten. Die [`mods active`-Zeile](#see-which-mods-a-session-loaded) lässt integrierte Mods aus.

233 

234Diese Tabelle listet jeden Eintrag nach dem Namen auf, den `/plugin` anzeigt:

235 

236| Name in `/plugin` | Was es tut | Wo es aktiviert ist | Wie man es ausschaltet |

237| :- | :- | :- | :- |

238| `cc-plugin-agents-md` | Lädt `AGENTS.md` als Projektanweisungen | Jede Sitzung, außer [den Sitzungen, die `AGENTS.md` nicht lesen können](/docs/de/memory#when-agents-md-support-is-unavailable) | Deaktivieren Sie es in `/plugin`, oder [wählen Sie, welche Anweisungsdateien geladen werden](/docs/de/memory#choose-which-instruction-files-load) |

239| `cc-plugin-diff` | Übernimmt [`/diff`](/docs/de/interactive-mode#review-changes-with-%2Fdiff) und zeichnet seinen Bereich | Interaktive Terminal-Sitzungen | Deaktivieren Sie es in `/plugin`. `/diff` bleibt, und Claude Codes integrierte Version des Befehls beantwortet ihn. |

240| `cc-plugin-plugin-authoring` | Gibt Claude den [`plugin-authoring`-Skill](/docs/de/plugins/mods/create#ask-claude-for-a-mod) zum Schreiben von Mods. Es enthält einen Skill und keinen Mod-Code. | Sofern Anthropic installierte Mods nicht remote ausgeschaltet hat | Deaktivieren Sie es in `/plugin` |

241| `cc-plugin-sec-default` | Schützt das, was Ihre Organisation verwaltet, vor den Mods, die ein Benutzer installiert | [Wo der Guard lädt](/docs/de/plugins/mods/admin#know-what-happens-by-default) | Sie können nicht. Ein Administrator [setzt die Reihenfolge](/docs/de/plugins/mods/admin#install-your-organizations-mods) in verwalteten Einstellungen |

242| `cc-plugin-telemetry` | Sendet die Analysedatensätze, die Claude Code und seine integrierten Mods protokollieren | Überall dort, wo Claude Codes eigene Analysen aktiviert sind | Deaktivieren Sie es in `/plugin`, oder schalten Sie Analysen aus, z. B. mit [`DISABLE_TELEMETRY`](/docs/de/env-vars) |

243| `cc-plugin-you-should-know` | Führt einen Seiten-Agent aus, der Ihnen den Rücken deckt, während Claude an längeren Aufgaben arbeitet. Wenn er etwas findet, das wissenswert ist und das Sie möglicherweise übersehen, zeigt er Ihnen eine Notiz über der Eingabeaufforderung. | Standardmäßig deaktiviert. Aufgelistet in `/plugin` -> **Installed** -> **Show disabled**, falls für Ihre Organisation verfügbar. Aktivieren Sie mit [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/de/plugins/cli-reference#plugin-in-a-session). | Deaktivieren Sie es in `/plugin` |

244 

245Die Einstellungen und Flags, die installierte Mods stoppen, wie `disableAllHooks`, `--bare` und `--safe-mode`, stoppen keine integrierten Mods.

246 

247<h3 id="read-the-source-of-built-in-mods">

248 Lesen Sie die Quelle integrierter Mods

249</h3>

250 

251Die Quelle von vier dieser Mods ist öffentlich im [`mods`-Verzeichnis des Claude Code-Repositorys](https://github.com/anthropics/claude-code/tree/main/mods). Jeder ist ein vollständiges Plugin mit seinem Hooks-Modul und Tests:

252 

253* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): der `/diff`-Bereich mit Schaltflächen, die an Tastaturaktionen gebunden sind, und das Scrollen, das der Mod selbst verarbeitet

254* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): lädt `AGENTS.md` als Projektanweisungen mit einer [`userConfig`](/docs/de/plugins/components#user-configuration)-Option

255* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): der Guard, der in [Wissen Sie, was standardmäßig passiert](/docs/de/plugins/mods/admin#know-what-happens-by-default) beschrieben wird, ein Modell für einen Mod, der Richtlinien durchsetzt

256* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): fügt Methoden hinzu, die andere Mods aufrufen können, und versendet ihre Typen

257 

258<h2 id="next-steps">

259 Nächste Schritte

260</h2>

261 

262* [Erstellen Sie einen Mod](/docs/de/plugins/mods/create): Erstellen Sie einen, der Tool-Calls zählt, die Anzahl neben dem Spinner anzeigt und einen Befehl hinzufügt, und lernen Sie die Bearbeitungs- und Neuladen-Schleife

263* [In der Benutzeroberfläche zeichnen](/docs/de/plugins/mods/interface): Bereiche, das Band über der Eingabeaufforderung, Schaltflächen, Textfelder und Status

264* [Auf Ereignisse reagieren](/docs/de/plugins/mods/events): Tool-Calls, Eingabeaufforderungen, Züge und die Reihenfolge, in der Mods ausgeführt werden

265* [Verwenden Sie die Mods-API](/docs/de/plugins/mods/api): Befehle, Tools, Modellaufrufe, Timer und Dateien

266* [Testen Sie einen Mod](/docs/de/plugins/mods/test): automatisierte Tests, die ohne eine Sitzung ausgeführt werden

267* [Beheben Sie einen Mod](/docs/de/plugins/mods/troubleshoot): die Gründe, warum ein Mod nichts tut, und das Debug-Protokoll

268* [Mods für Ihre Organisation verwalten](/docs/de/plugins/mods/admin): Standardeinstellungen, verwaltete Einstellungen, Überprüfung eines Mods und Richtlinien-Mods

269* [Mods-Referenz](/docs/de/plugins/mods/reference): jedes Ereignis, jede Methode, jedes Element und jedes Limit

plugins/mods/test.md +422 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Einen Mod testen

6 

7> Schreiben Sie automatisierte Tests für einen Claude Code Mod, der Ereignisse auslöst, Antworten von Claude Code simuliert und Schaltflächen drückt, ohne Sitzung, Anmeldung oder Netzwerk.

8 

9Sie können automatisierte Tests für einen Mod schreiben und diese von Ihrer Shell aus mit [`claude plugin test`](/docs/de/plugins/mods/reference#commands) ausführen. Ein Test löst die Ereignisse aus, die Ihre Hooks verarbeiten, und überprüft, was die Hooks getan haben, damit Sie ein Problem fangen, bevor es eine Sitzung erreicht. Das erste Beispiel testet den Mod aus [Einen Mod erstellen](/docs/de/plugins/mods/create).

10 

11<h2 id="write-a-test">

12 Schreiben Sie einen Test

13</h2>

14 

15Ein Test lädt Ihr Mod, sendet Ereignisse durch seine Hooks so, wie Claude Code es würde, und prüft, was die Hooks getan haben, ohne eine Sitzung, eine Anmeldung oder ein Netzwerk. Sie führen Tests aus Ihrer Shell mit `claude plugin test` aus, und jede Testdatei importiert das Test-Kit, eine Test-Bibliothek im Modul `claude-code/testing`.

16 

17Geben Sie jeder Testdatei einen Namen, der auf `.test.ts` endet, z. B. `first-mod.test.ts`, und speichern Sie sie überall im Plugin-Verzeichnis. Jede Testdatei benötigt mindestens einen `test()`, sonst schlägt die Ausführung mit `declares no test(): nothing ran` fehl. Eine Testdatei kann die eigenen Dateien Ihres Mods und Hilfsdateien mit `.ts` importieren, sodass Sie einfache Funktionen, wie die Regeln eines Spiels, ohne das Kit testen können.

18 

19Dieser Test löst zwei Tool-Aufrufe aus, führt den Befehl `/tally` aus [Create a mod](/docs/de/plugins/mods/create) aus und prüft, dass die Antwort beide zählt. Seine erste Zeile ist ein [Stub](#stub-what-claude-code-would-answer), der die Tool-Aufrufe an Stelle von Claude Code beantwortet. Speichern Sie ihn als `first-mod/tests/first-mod.test.ts`:

20 

21```typescript first-mod/tests/first-mod.test.ts theme={null}

22import { expect, test } from 'claude-code/testing'

23 

24test('/tally reports the tool calls the mod has seen', async ($, on) => {

25 // Answer each tool call in Claude Code's place, so no tool runs

26 on('tool.call', () => ({ result: 'ok' }))

27 

28 // Raise two tool calls, which the mod's tool.call hook counts

29 await $.tool.call({ tool: 'Bash', command: 'ls' })

30 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

31 

32 // Run /tally and check the text its hook returns

33 const answer = await $.command.run({ command: 'tally', args: '' })

34 expect(answer.text).toBe('Claude has made 2 tool calls since this mod loaded')

35})

36```

37 

38Führen Sie in Ihrer Shell die Tests aus dem Verzeichnis `first-mod` aus:

39 

40```bash theme={null}

41claude plugin test

42```

43 

44Die Ausgabe nennt jeden Test und ob er bestanden hat, mit Zeitangaben, die von Durchlauf zu Durchlauf variieren:

45 

46```text theme={null}

47tests/first-mod.test.ts:

48(pass) /tally reports the tool calls the mod has seen [22.87ms]

49 

50 1 pass

51 0 fail

52Ran 1 test across 1 file. [0.19s]

53```

54 

55Jeder `$.tool.call` durchlief den [`tool.call`](/docs/de/plugins/mods/reference#tools)-Hook des Mods, der eins zu seiner Zählung addierte und den Aufruf an den Stub weitergab. Kein `ls` wurde ausgeführt und keine Datei wurde gelesen. `$.command.run` ging dann zum [`command.run`](/docs/de/plugins/mods/reference#commands-and-configuration)-Hook des Mods, und `answer` ist das Objekt, das dieser Hook zurückgab.

56 

57Der Befehl wird mit Status 1 beendet, wenn ein Test fehlschlägt, sodass er in CI funktioniert. Wenn Ihre eigenen Mods nicht in der Shell geladen werden können, die ihn ausführt, druckt er eine Zeile aus, die mit `claude plugin test: hooks modules are turned off` beginnt, mit dem Grund, und wird mit Status 1 beendet.

58 

59<h3 id="stub-what-claude-code-would-answer">

60 Stub was Claude Code antworten würde

61</h3>

62 

63Kein Modell, Speicher oder Tool wird in einem Test ausgeführt, daher liefert der Test überall dort, wo Ihr Mod erwartet, dass Claude Code antwortet, die Antwort mit einem Stub. Eine Test-Funktion erhält zwei Argumente dafür:

64 

65* **`$`**: das eigene `$` des Tests, das an der Stelle von Claude Code steht. Es ist nicht die [Mods-API](/docs/de/plugins/mods/reference#mods-api-methods), die ein Hook erhält. Jede seiner Methoden löst das Ereignis desselben Namens aus, sendet es durch die Hooks Ihres Mods und wird zum Ergebnis aufgelöst: `$.tool.call({ tool: 'Bash', command: 'ls' })` löst `tool.call` aus. `$.command.run`, `$.prompt.submit`, `$.session.start` und `$.turn.complete` funktionieren auf die gleiche Weise, und `$.classic.Stop` und die anderen `$.classic`-Methoden lösen ein [Einstellungs-Hook-Ereignis](/docs/de/plugins/mods/events#hook-the-settings-hook-events) aus. Ein Test kann einen Mods-API-Aufruf wie `ui.close` nicht direkt auslösen. Lösen Sie ihn durch Ihr Mod aus, z. B. indem Sie auf die Schaltfläche klicken, die den Bereich schließt.

66* **`on`**: Rufen Sie es auf, um Stubs zu registrieren, die Hooks sind, die an Stelle von Claude Code antworten. Benennen Sie einen Stub für einen Mods-API-Aufruf ohne das `$.`, sodass ein als `store.get` registrierter Stub die `$.store.get` Ihres Mods beantwortet. Wenn Ihr Mod [`$.model.complete`](/docs/de/plugins/mods/api#call-a-model) oder [`$.store.get`](/docs/de/plugins/mods/interface#keep-state) aufruft, liefert ein Stub die Antwort.

67 

68Dieses Beispiel stubbt einen Modellaufruf. Der Hook gehört zu einem Mod namens `grader` und verarbeitet einen `/grade`-Befehl, der einen Satz an ein Modell sendet und meldet, ob die Antwort mit `PASS` beginnt. Die Datei enthält nur den Hook unter Test, daher benötigt das Mod auch eine `plugin.json` und eine `hooks.json`, wie in [Create a mod](/docs/de/plugins/mods/create#write-a-mod-yourself). Um `/grade` in einer Sitzung einzugeben, muss das Mod auch den [Befehl registrieren](/docs/de/plugins/mods/api#add-a-command):

69 

70```javascript grader/hooks/register.js theme={null}

71export function register(on) {

72 on('command.run', { command: 'grade' }, async ($, e) => {

73 // e.args is the text typed after /grade

74 const reply = await $.model.complete({

75 model: 'haiku',

76 system: 'Grade the sentence. Start your reply with PASS or FAIL.',

77 prompt: e.args,

78 })

79 const passed = reply.isAnswered && reply.text.startsWith('PASS')

80 return { text: passed ? 'Passed' : 'Try again' }

81 })

82}

83```

84 

85Dieser Test stubbt den Modellaufruf, um zu prüfen, was der Hook mit einer bestandenen Antwort tut:

86 

87```typescript grader/tests/grader.test.ts theme={null}

88import { expect, test } from 'claude-code/testing'

89 

90test('a passing grade is reported', async ($, on) => {

91 // Answer the mod's $.model.complete call with a fixed reply, so no model runs

92 on('model.complete', () => ({

93 value: {

94 isAnswered: true,

95 text: 'PASS\nNice sentence.',

96 usage: { input_tokens: 10, output_tokens: 5, cache_read_input_tokens: 0, cache_creation_input_tokens: 0 },

97 },

98 }))

99 

100 // Run /grade, which makes the mod call the model

101 const answer = await $.command.run({ command: 'grade', args: 'The cat sat on the mat.' })

102 expect(answer.text).toBe('Passed')

103})

104```

105 

106Der Test besteht, weil die `reply` des Hooks das Objekt unter `value` ist, dessen `text` mit `PASS` beginnt. Um den anderen Zweig zu prüfen, fügen Sie einen zweiten Test hinzu, dessen Stub einen `text` zurückgibt, der mit `FAIL` beginnt, und erwarten Sie `Try again`.

107 

108Ein Stub für einen Mods-API-Aufruf gibt ein Objekt mit einem `value`-Feld zurück, das hält, was der Aufruf in Ihrem Mod aufgelöst wird: `{ value: 7 }` macht `$.store.get` zu `7` aufgelöst. Ein Stub für eines der Ereignisse von Claude Code, wie [`turn.step`](/docs/de/plugins/mods/reference#turns) oder `tool.call`, gibt das eigene Ergebnis dieses Ereignisses zurück, wie `{ result: 'ok' }`. `$.session.send` und `$.prompt.fill` nehmen auch das Ergebnis des Ereignisses, wie die Tabelle zeigt. [Nachschlagen, was ein Stub zurückgibt](#look-up-what-a-stub-returns) zeigt, welche Form jeder häufige Name annimmt. Zwei Fehler bedeuten, dass ein Stub falsch oder fehlend ist. Die Ausgabe eines fehlgeschlagenen Tests enthält einen Block mit der Überschrift `the engine reported:`, und jeder Fehler erscheint dort:

109 

110* `returned neither { value } nor { deny }`: ein Stub für einen Mods-API-Aufruf gab einen bloßen Wert zurück

111* `no implementation for` gefolgt von einem Namen: Ihr Mod hat diesen Aufruf gemacht und kein Stub beantwortet ihn

112 

113Das Kit exportiert auch speicherinterne Mocks, die einen ganzen Namespace für Sie beantworten. `mock.clock(on)` beantwortet [`$.clock`](/docs/de/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` beantwortet `$.store` aus einem Speicher, der mit diesen Einträgen beginnt, und `mock.env(on, { CI: 'true' })` beantwortet `$.env.get` aus diesen Variablen. `mock.clock` gibt eine Mock-Uhr zurück, die Ihr Test vorantreibt, sodass ein Test eines Timers nicht wartet. `mock.store` gibt nichts zurück, daher schreiben Sie die beiden `store`-Stubs selbst, wie der [Zeichnungstest](#test-a-drawing) es tut.

114 

115<h3 id="follow-the-test-kit’s-rules">

116 Befolgen Sie die Regeln des Test-Kits

117</h3>

118 

119Das Test-Kit hat ein paar eigene Regeln, und das Brechen einer produziert die Fehler, die neue Test-Autoren zuerst treffen:

120 

121* **Registrieren Sie jeden Stub vor dem ersten Aufruf des Tests auf `$`.** Das Aufrufen von `on` danach wirft einen Fehler wie `on("ui.render") after the test first called $`.

122 

123* **[`session.start`](/docs/de/plugins/mods/reference#session) wird nicht von selbst ausgeführt.** Jeder Test beginnt mit Ihrem Modul frisch geladen und keiner seiner Hooks aufgerufen, daher halten Variablen auf Modulebene ihre Anfangswerte. Wenn ein Hook davon abhängt, was `session.start` einrichtet, lösen Sie es zuerst aus:

124 

125 ```typescript theme={null}

126 // Answer the event after your hook passes it on with next(e)

127 on('session.start', () => ({ cwd: '/work' }))

128 // Answer the $.command.register call your hook makes

129 on('command.register', () => ({ value: undefined }))

130 // Raise the event, which runs your session.start hook

131 await $.session.start({ surface: 'terminal', isInteractive: true, cwd: '/work' })

132 ```

133 

134 Der zweite Stub beantwortet den `$.command.register`-Aufruf, den ein `session.start`-Hook wie der [Tutorial](/docs/de/plugins/mods/create#write-a-mod-yourself) macht. Ohne ihn wird dieser Aufruf mit `no implementation for command.register` abgelehnt und das Kit überspringt Ihren Hook, sodass nichts nach dem Aufruf im Hook ausgeführt wird. Der Test schlägt an diesem Punkt nicht fehl. Der übersprungene Hook wird unter `the engine reported:` nur aufgelistet, wenn eine spätere Prüfung fehlschlägt.

135 

136* **Ein Hook, der `next(e)` zurückgibt, benötigt einen Stub zum Beantworten.** Wenn Ihr [`ui.render`](/docs/de/plugins/mods/reference#interface)-Hook `next(e)` zurückgibt, z. B. um nichts zu zeichnen, während Claude untätig ist, schlägt das [Mounten](#test-a-drawing) mit `no implementation for ui.render` fehl. Registrieren Sie einen Stub, der ein Element als einfache Daten zurückgibt:

137 

138 ```typescript theme={null}

139 // Stands for what Claude Code would draw at the site

140 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

141 ```

142 

143 Mit dem registrierten Stub wird das Mounten erfolgreich, und `ui.find({ type: 'Text' })` gibt dieses Element zurück, wann immer Ihr Hook `next(e)` zurückgab.

144 

145* **Ein Stub für `turn.step` ist ein asynchroner Generator**, und der Test liest den Stream bis zum Ende, um das Ergebnis zu erhalten:

146 

147 ```typescript theme={null}

148 on('turn.step', async function* ($, e) {

149 // Each yield is one piece of the model's streamed reply

150 yield { kind: 'text', index: 0, text: 'ok' }

151 // The return value is the result of the whole request

152 return { turnId: e.turnId, index: e.index, answer: 'ok', toolUses: [], stopReason: 'end_turn', usage: null }

153 })

154 

155 // Raise one request to the model, which runs your turn.step hook

156 const stream = $.turn.step({ turnId: 't', index: 0, model: 'claude-test', messageCount: 1 })

157 // Read every piece until the stream says it's done

158 let step = await stream.next()

159 while (step.done !== true) step = await stream.next()

160 const result = step.value

161 ```

162 

163 Wenn die Schleife endet, ist `result` das Objekt, das der Stub zurückgab, nachdem Ihr `turn.step`-Hook die Chance hatte, es zu ändern. Hier ist `result.answer` `'ok'`.

164 

165* **Lösen Sie einen Tool-Aufruf mit dem Namen und den Argumenten des Tools als Felder aus**, wie `await $.tool.call({ tool: 'Bash', command: 'ls' })`, und registrieren Sie einen `tool.call`-Stub, der `{ result }` zurückgibt.

166 

167<h3 id="look-up-what-a-stub-returns">

168 Nachschlagen, was ein Stub zurückgibt

169</h3>

170 

171Jeder Mods-API-Aufruf, den Ihr Mod in einem Test macht, benötigt einen Stub, der an Stelle von Claude Code antwortet, außer den wenigen, die das Kit selbst beantwortet: [`$.ui.invalidate`](/docs/de/plugins/mods/interface#redraw-when-something-changes) und [`$.state`](/docs/de/plugins/mods/interface#keep-state)-Aufrufe. Für `$.clock`-Aufrufe verwenden Sie `mock.clock(on)`, oder die `$.clock.now()` Ihres Mods schlägt mit `no implementation for clock.now` fehl.

172 

173Diese Tabelle listet die auf, die Mods am häufigsten verwenden. Die erste Spalte ist der Aufruf, den Ihr Mod macht, oder das Ereignis, das es mit `next(e)` weitergegeben wird. Die zweite ist die Funktion, die unter diesem Namen an `on` übergeben wird, sodass die Zeile `$.store.get` zu `on('store.get', ($, e) => ({ value: saved.get(e.key) }))` wird. Ein `'...'` in einem Stub markiert Text, den Sie ausfüllen müssen:

174 

175| Ihr Mod ruft auf oder gibt weiter | Stub |

176| :- | :- |

177| `$.command.register`, `$.tool.register`, `$.ui.toast`, `$.ui.log`, `$.ui.status`, `$.ui.close`, `$.store.set` | `() => ({ value: undefined })`. Für `ui.toast` und `ui.log` ist der Text `e.text`. |

178| `$.store.get` | `($, e) => ({ value: saved.get(e.key) })` |

179| `$.fs.read` | `($, e) => ({ value: e.path.endsWith('notes.md') ? '# Notes' : '' })`. `e.path` kommt als absoluter Pfad an, daher vergleichen Sie mit `endsWith`. |

180| `$.ui.open` | `() => ({ value: { isPlaced: true } })` |

181| `$.ui.ask` | Ein `tool.call`-Stub, weil die Frage es als Aufruf des `AskUserQuestion`-Tools erreicht: `($, e) => ({ result: { answers: { [e.questions[0].question]: 'Run it' } } })`. Prüfen Sie zuerst `e.tool`, wenn Ihr Mod andere Tool-Aufrufe weitergegeben wird. |

182| `$.model.complete` | `() => ({ value: { isAnswered: true, text: '...', usage } })` |

183| `$.process.run` | `($, e) => ({ value: { exitCode: 0, stdout: '...', stderr: '' } })`. `e.argv` ist die Argumentliste und `e.init` hält `cwd` und `timeoutMs`. |

184| Jeder Mods-API-Aufruf, der fehlschlagen sollte | `() => ({ deny: 'the reason' })`, was den Aufruf in Ihrem Mod ablehnen lässt. Ein Stub, der wirft, wird stattdessen übersprungen. |

185| `session.start` | `() => ({ cwd: '/work' })` |

186| `turn.start` | `($, e) => ({ turnId: e.turnId })` |

187| `tool.call` | `() => ({ result: '...' })` |

188| `turn.complete` | `() => ({ text: '' })`. Lösen Sie es mit `$.turn.complete({ turnId, answer, durationMs, isAborted: false, usage: null })` aus. |

189| `prompt.submit` | `($, e) => ({ text: e.text })` |

190| `prompt.fill` | `() => ({ isFilled: true })` |

191| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |

192| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |

193| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |

194| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |

195| `session.send` | `() => ({ isDelivered: true })`. `e.to` kommt als String an, auch wenn Ihr Mod `{ sessionId }` weitergegeben hat. |

196| `session.receive` | `($, e) => ({ text: e.text })`. Lösen Sie es mit `$.session.receive({ origin: { kind: 'peer-send-message' }, text })` aus. |

197| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })` |

198 

199`expect` hat die Assertions `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined` und `toThrow`, und `.not` vor jedem von ihnen.

200 

201<h2 id="test-a-timer">

202 Einen Timer testen

203</h2>

204 

205Ein Mod, der Arbeit auf einem Timer ausführt, benötigt eine Uhr, die der Test steuert, sodass der Test die Zeit vorantreiben kann, anstatt zu warten. `const clock = mock.clock(on)` gibt eine Mock-Uhr zurück, die bei `0` beginnt und sich nur bewegt, wenn Ihr Test sie bewegt. Um bei einer anderen Zeit zu beginnen, übergeben Sie sie in Millisekunden, wie in `mock.clock(on, { now: 5000 })`. Die Uhr hat diese Methoden:

206 

207| Methode | Was sie tut |

208| :- | :- |

209| `await clock.advance(1000)` | Bewegt die Zeit um diese viele Millisekunden vorwärts und führt jeden Timer aus, der fällig wird |

210| `await clock.set(5000)` | Bewegt die Zeit vorwärts zu diesem Wert, wie `advance` es würde |

211| `clock.now()` | Gibt die Zeit zurück, die Ihr Mods `$.clock.now()` zu aufgelöst wird |

212| `await clock.settle()` | Führt Timer aus, die bereits fällig sind, wie eine Kette von `$.clock.after`-Aufrufen mit Null-Verzögerung, ohne die Zeit zu bewegen |

213| `await clock.sleep(2000)` | Innerhalb eines Stubs macht dies, dass dieser Stub nur antwortet, sobald der Test so weit vorangekommen ist, was ist, wie Sie ein langsames Modell oder einen langsamen Prozess simulieren |

214 

215Dieser Hook gehört zu einem Mod namens `countdown` und verarbeitet einen Befehl `/countdown`, der eine Anzahl von Sekunden nimmt, einen `$.clock.every`-Timer von einer Sekunde startet und einen Toast bei Null zeigt. Wie bei `grader` enthält die Datei nur den Hook unter Test und registriert den Befehl nicht:

216 

217```javascript countdown/hooks/register.js theme={null}

218export function register(on) {

219 on('command.run', { command: 'countdown' }, async ($, e) => {

220 // e.args is the text typed after /countdown

221 let left = Number(e.args)

222 const timer = $.clock.every(1000, () => {

223 left -= 1

224 if (left === 0) {

225 timer.cancel()

226 $.ui.toast('Time is up')

227 }

228 })

229 // Print nothing in the transcript

230 return {}

231 })

232}

233```

234 

235Dieser Test führt `/countdown 3` aus und bewegt die Mock-Uhr, sodass er drei Sekunden Verhalten überprüft, ohne drei Sekunden zu warten:

236 

237```typescript countdown/tests/countdown.test.ts theme={null}

238import { expect, mock, test } from 'claude-code/testing'

239 

240test('the countdown ends with a toast', async ($, on) => {

241 // Answer every $.clock call from a clock the test controls

242 const clock = mock.clock(on)

243 // Collect the text of each toast the mod shows

244 const toasts: string[] = []

245 on('ui.toast', ($, e) => {

246 toasts.push(e.text)

247 return { value: undefined }

248 })

249 

250 await $.command.run({ command: 'countdown', args: '3' })

251 // After two seconds the timer has fired twice, and no toast is due

252 await clock.advance(2000)

253 expect(toasts).toEqual([])

254 // The third second brings the count to zero

255 await clock.advance(1000)

256 expect(toasts).toEqual(['Time is up'])

257})

258```

259 

260Das erste `expect` zeigt, dass der Toast nicht früh kommt, und das zweite zeigt, dass er einmal kommt. Jeder `advance` wird aufgelöst, nachdem die Timer, die fällig wurden, ausgeführt wurden, sodass die Überprüfung auf der nächsten Zeile ihre Auswirkung sieht.

261 

262<h2 id="test-a-drawing">

263 Eine Zeichnung testen

264</h2>

265 

266Ein Test kann eine der [Render-Stellen](/docs/de/plugins/mods/reference#render-sites) Ihres Mods zeichnen, dann Elemente drücken, eingeben und finden, die er gezeichnet hat. `$.ui.mount` zeichnet die Stelle durch den Hook `ui.render` Ihres Mods und gibt ein Handle mit einer Methode für jeden zurück. Um mehrere Apps in einem Test abzudecken, setzen Sie `surface` auf die App, für die gezeichnet werden soll. Dieser Test öffnet den Bereich aus [Einen Bereich mit Registerkarten erstellen](/docs/de/plugins/mods/interface#build-a-pane-with-tabs), wechselt Registerkarten, drückt die Schaltfläche und überprüft die Zählung im Terminal und der Desktop-App:

267 

268```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

269import { expect, test } from 'claude-code/testing'

270 

271// What Claude Code passes to a ui.render hook for this pane, apart from the app

272const PANE = {

273 plugin: 'hello-tabs',

274 component: 'Pane',

275 requestId: 'hello-tabs',

276 viewport: { columns: 100, rows: 30 },

277 props: {

278 title: 'Hello tabs',

279 isFocused: true,

280 bodyColumns: 60,

281 placement: 'inline',

282 scroll: { offset: 0, bodyRows: 10 },

283 view: {},

284 },

285} as const

286 

287test('the second tab counts presses and saves the count', async ($, on) => {

288 // Stub $.store with a Map, so the test can read what the mod saved

289 const saved = new Map<string, unknown>()

290 on('store.get', ($, e) => ({ value: saved.get(e.key) }))

291 on('store.set', ($, e) => {

292 saved.set(e.key, e.value)

293 return { value: undefined }

294 })

295 

296 // Draw the pane once for each app

297 for (const surface of ['terminal', 'desktop'] as const) {

298 const ui = await $.ui.mount({ ...PANE, surface })

299 // Press the buttons by the key the mod gave them

300 await ui.press({ key: 'tab-two' })

301 await ui.press({ key: 'more' })

302 // The second tab's count line is in the drawing

303 expect(await ui.find({ type: 'Text', text: /^Count: \d+$/ })).toBeDefined()

304 await ui.unmount()

305 }

306 

307 // One press in each app makes two

308 expect(saved.get('count')).toBe(2)

309})

310```

311 

312Führen Sie in Ihrer Shell `claude plugin test` aus dem Verzeichnis `hello-tabs` aus. Der Test besteht, wenn beide Apps die Zählzeile zeichnen und der Mod `2` gespeichert hat. Die Zählung wird von der ersten App zur zweiten übertragen, weil beide Mounts das gleiche geladene Modul verwenden.

313 

314Das Handle, das `$.ui.mount` zurückgibt, hat diese Methoden, die Elemente nach dem `key` adressieren, den Sie ihnen gegeben haben:

315 

316| Methode | Was sie tut |

317| :- | :- |

318| `press({ key: 'more' })` | Drückt die `Button` mit diesem Key |

319| `input({ key: 'new-note', text: 'buy milk' })` | Gibt den Text in die `Input` mit diesem Key ein und drückt Enter. Fügen Sie `kind: 'change'` hinzu, um einzugeben, ohne zu senden. |

320| `select({ key: 'size', value: 'large' })` | Wählt die Option mit diesem Wert in der `Select` mit diesem Key |

321| `find({ key: 'more' })` oder `find({ type: 'Text', text: 'Count: 2' })` | Gibt das erste übereinstimmende Element als `{ type, props, children }` zurück, oder `undefined`. `text` kann ein String oder ein regulärer Ausdruck sein. |

322| `unmount()` | Entfernt die Zeichnung |

323 

324Jede Methode wird aufgelöst, nachdem Ihr Handler fertig ist, sodass Sie das Ergebnis auf der nächsten Zeile überprüfen können. Setzen Sie `props` auf das, was Claude Code für diese Stelle übergeben würde. Die [Render-Stellen-Tabelle](/docs/de/plugins/mods/reference#render-sites) listet die Props jeder Stelle auf, und [die Typen für Ihren Build](/docs/de/plugins/mods/create#get-the-types-for-your-build) haben ihre Typen.

325 

326Ein Zeichnungstest überprüft den Baum, den Ihr Hook zurückgibt, und ob er für diese App gültig ist. Er überprüft nicht, wie die App ihn malt, daher schauen Sie sich ein neues Layout auch in einer echten Sitzung an.

327 

328<h3 id="test-a-drawing-after-clear">

329 Eine Zeichnung nach `/clear` testen

330</h3>

331 

332Jeder Test beginnt mit jedem `$.state`-Wert bei seinem Standard, was ist, wie `/clear` sie hinterlässt. Um zu testen, was Ihr Mod als nächstes tut, überspringen Sie `session.start`, lösen Sie `classic.SessionStart` mit `source: 'clear'` aus und überprüfen Sie, was Ihr Mod zeichnet.

333 

334Dieser Test überprüft das Modul aus [Einen gespeicherten Wert nach `/clear` erneut laden](/docs/de/plugins/mods/interface#load-a-saved-value-again-after-clear). Fügen Sie es zur Datei aus [Eine Zeichnung testen](#test-a-drawing) hinzu, wo `PANE` definiert ist. Der erste Test dieser Datei erwartet, dass die Schaltfläche die Zählung speichert, wie die Schaltfläche in [Von mehr als einer Sitzung speichern](/docs/de/plugins/mods/interface#save-from-more-than-one-session) es tut:

335 

336```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

337test('the saved count comes back after /clear', async ($, on) => {

338 // The store already holds a count of 7

339 on('store.get', () => ({ value: 7 }))

340 // Answer the event after your hook passes it on with next(e)

341 on('classic.SessionStart', () => ({}))

342 

343 // Raise the event that fires after /clear, which runs your hook

344 await $.classic.SessionStart({ source: 'clear' })

345 

346 const ui = await $.ui.mount({ ...PANE, surface: 'terminal' })

347 await ui.press({ key: 'tab-two' })

348 // The pane shows the stored count, not the default of 0

349 expect(await ui.find({ type: 'Text', text: 'Count: 7' })).toBeDefined()

350})

351```

352 

353Der Test besteht, wenn Ihr `classic.SessionStart`-Hook die gespeicherte `7` in `$.state` kopiert hat, bevor der Bereich gezeichnet wird. Ohne diesen Hook in Ihrem Modul zeichnet der Bereich `Count: 0`, `find` gibt `undefined` zurück, und der Test schlägt bei `toBeDefined` fehl.

354 

355<h2 id="test-a-mod-that-judges-other-mods">

356 Einen Mod testen, der andere Mods beurteilt

357</h2>

358 

359Ein Mod, den Ihre Organisation in [`prependPlugins`](/docs/de/plugins/mods/admin) auflistet, kann einen anderen Mod ablehnen, bevor er geladen wird. Um einen zu testen, setzen Sie den Tier Ihres Mods und geben Sie dem Test einen zweiten Mod, den Ihrer zulassen oder ablehnen kann:

360 

361* **`tier`**: rufen Sie es einmal oben in der Testdatei auf, wie in `tier('prepend')`, um Ihren Mod als `prepend`, `append` oder `builtin` zu laden, seinen Platz in der [Reihenfolge, in der Mods ausgeführt werden](/docs/de/plugins/mods/events#the-order-mods-run-in). Ohne ihn wird Ihr Mod als `user` geladen.

362* **`plugins`**: übergeben Sie `test` ein Optionsobjekt vor dem Test-Body. Sein `plugins`-Array hält Mods, die Sie inline schreiben, jeder mit einem `name` und einer `register`-Funktion. Um einen an einer anderen Stelle als `user` zu laden, fügen Sie `tier` hinzu.

363 

364Diese Testdatei lädt den [Policy-Mod von der Admin-Seite](/docs/de/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) zuerst. Sie überprüft, dass der Policy-Mod einen Mod ablehnt, der einen Prozess startet, und einen zulässt, der nicht:

365 

366```typescript acme-guard/tests/guard.test.ts theme={null}

367import { expect, test, tier } from 'claude-code/testing'

368 

369// Load the mod under test ahead of every other mod

370tier('prepend')

371 

372// A second mod whose code calls $.process.run, which the policy blocks

373const runner = {

374 name: 'runner',

375 register(on) {

376 on('tool.call', async ($, e, next) => {

377 await $.process.run(['ls'])

378 return { result: 'runner answered' }

379 })

380 },

381}

382 

383// A second mod that calls nothing the policy blocks

384const reader = {

385 name: 'reader',

386 register(on) {

387 on('tool.call', async ($, e, next) => {

388 return { result: 'reader answered' }

389 })

390 },

391}

392 

393test('refuses a mod that starts a process', { plugins: [runner] }, async ($, on) => {

394 on('tool.call', () => ({ result: 'claude code answered' }))

395 let message = ''

396 try {

397 // The first call on $ loads the mods, so the refusal is thrown here

398 await $.tool.call({ tool: 'Bash', command: 'ls' })

399 } catch (error) {

400 message = error.message

401 }

402 expect(message).toBe('runner: refused by acme-guard: Acme policy: mods may not call process.run')

403})

404 

405test('admits a mod that starts no process', { plugins: [reader] }, async ($, on) => {

406 on('tool.call', () => ({ result: 'claude code answered' }))

407 const out = await $.tool.call({ tool: 'Bash', command: 'ls' })

408 // The answer comes from reader, which shows that it loaded

409 expect(out).toEqual({ result: 'reader answered' })

410})

411```

412 

413Führen Sie in Ihrer Shell `claude plugin test` aus dem Verzeichnis `acme-guard` aus. Beide Tests bestehen mit dem Policy-Mod, wie die Admin-Seite ihn zeigt.

414 

415Das Kit lädt jeden Mod beim ersten Aufruf des Tests auf `$`. Wenn Ihr Mod einen ablehnt, wirft dieser Aufruf, und die Nachricht nennt den abgelehnten Mod, den Mod, der ihn ablehnt, und Ihren Grund. Im zweiten Test wird nichts abgelehnt, daher beantwortet `reader` den Tool-Aufruf, bevor er den Stub erreicht.

416 

417<h2 id="next-steps">

418 Nächste Schritte

419</h2>

420 

421* [Einen Mod beheben](/docs/de/plugins/mods/troubleshoot): finden Sie heraus, warum ein Mod in einer Sitzung nichts tut

422* [Mods-Referenz](/docs/de/plugins/mods/reference): jedes Ereignis-Input und Ergebnis zum Schreiben von Stubs

plugins/mods/troubleshoot.md +284 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Fehlerbehebung für ein Mod

6 

7> Finden Sie heraus, warum ein Claude Code Mod nichts tut: Ordnen Sie das Symptom oder die Meldung seiner Ursache zu, schauen Sie sich Ablehnungsmeldungen an, und lesen Sie das Debug-Protokoll.

8 

9Wenn ein Modul eines Mods oder einer seiner Hooks fehlschlägt, überspringt Claude Code es und die Sitzung wird fortgesetzt, sodass ein fehlerhafter Mod wie einer aussehen kann, der nichts tut. Überprüfen Sie zunächst, was Claude Code aus Ihrem Mod gelesen hat und wo es ein Problem meldet, und suchen Sie dann das Symptom oder die Meldung, die Sie haben.

10 

11<h2 id="find-out-why-a-mod-does-nothing">

12 Finden Sie heraus, warum ein Mod nichts tut

13</h2>

14 

15Wenn ein Mod nichts tut, finden zwei Überprüfungen den Grund: was Claude Code aus den Dateien des Mods liest, und die Zeile, die es schreibt, wenn es etwas überspringt. Für das erste führen Sie in Ihrer Shell [`claude plugin validate`](/docs/de/plugins/mods/create#check-what-claude-code-reads-from-your-mod) mit dem Verzeichnis des Mods aus, wie in `claude plugin validate ./first-mod`. Es erfasst ein falsch geschriebenes Ereignis, ein fehlerhaftes Manifest und ein Modul, das Claude Code nicht lesen kann, ohne eine Sitzung zu starten.

16 

17Wenn ein Modul nicht geladen wird, ein Hook übersprungen wird oder ein anderer Mod Ihren ablehnt, schreibt Claude Code eine Zeile, die Ihren Mod benennt. Wo Sie diese Zeile lesen, hängt von der Sitzung ab:

18 

19* **Eine Sitzung, die ein Plugin-Verzeichnis neu lädt**: eine schwache Zeile im Transkript. Das ist eine interaktive Sitzung, die Sie mit `--plugin-dir` gestartet haben, oder eine, in der Sie [das Neuladen aktiviert haben](/docs/de/plugins/mods/create#ask-claude-for-a-mod) für Mods, die Claude geschrieben hat.

20* **Jede andere interaktive Sitzung, wie eine, die einen Mod ausführt, den Sie von einem Marketplace installiert haben**: das [Debug-Protokoll](#read-the-debug-log) nur. Um eines zu erhalten, starten Sie die Sitzung mit `claude --debug`.

21* **Ein `claude -p` Lauf mit `--plugin-dir`**: stderr, im Standard-Textausgabeformat. Eine Ablehnung durch einen anderen Mod geht nur ins Debug-Protokoll.

22 

23<h2 id="check-whether-mods-can-load">

24 Überprüfen Sie, ob Mods geladen werden können

25</h2>

26 

27Um zu überprüfen, ob Ihre Einrichtung Mods überhaupt laden kann, ohne einen zu installieren, führen Sie `claude plugin test` in Ihrer Shell aus, von einem Verzeichnis, das keinen Mod enthält. Sie benötigen keine Sitzung. Die Meldung, die es ausgibt, teilt Ihnen den Status mit:

28 

29| Meldung enthält | Was es bedeutet |

30| :- | :- |

31| `no hooks module to load` | Mods können geladen werden. Der Befehl hat keinen Mod zum Testen in diesem Verzeichnis gefunden. |

32| `hooks modules are turned off here` | Eine Einstellung hält Ihre Mods aus: `disableAllHooks` in Ihren eigenen Einstellungen oder die Richtlinie Ihrer Organisation |

33| `hooks modules are turned off in this process` | Anthropic hat installierte Mods remote ausgeschaltet. Keine Einstellung auf Ihrem Computer schaltet sie wieder ein. |

34 

35Eine Organisation kann auch `allowManagedModsOnly` setzen, um nur ihre eigenen Mods zuzulassen, was dieser Befehl nicht meldet. In diesem Fall wird ein Mod, den Sie installieren, nicht geladen, und [eine Meldung erklärt warum](/docs/de/plugins/mods/troubleshoot#messages-from-the-built-in-guard).

36 

37<h2 id="the-mod-doesn’t-load">

38 Der Mod wird nicht geladen

39</h2>

40 

41Nichts, das der Mod hinzufügt, wird angezeigt: kein Befehl, keine Zeichnung und keine Verhaltensänderung.

42 

43<h3 id="your-version-is-older-than-2-1-287">

44 Ihre Version ist älter als 2.1.287

45</h3>

46 

47`claude --version` gibt eine Version älter als 2.1.287 aus. Ihre Version stammt von vor der Zeit, als Mods standardmäßig aktiviert waren.

48 

49[Aktualisieren Sie Claude Code](/docs/de/setup#update-claude-code).

50 

51<h3 id="the-mods-active-line-doesn’t-name-the-mod">

52 Die `mods active` Zeile benennt den Mod nicht

53</h3>

54 

55Nichts, das der Mod hinzufügt, wird angezeigt, und die [`mods active` Zeile](/docs/de/plugins/mods/overview#see-which-mods-a-session-loaded) in `/plugin` benennt ihn nicht. Das Hooks-Modul wurde nicht geladen. Wenn Claude Code es ablehnte, hat das Debug-Protokoll eine Zeile, die mit `hooks module`, dem Namen des Mods und `not loaded:` beginnt, wie in `hooks module first-mod@inline not loaded: disableAllHooks in managed settings` für einen Mod, der mit `--plugin-dir` geladen wurde.

56 

57Lesen Sie den Grund nach dem Doppelpunkt. Der Abschnitt [Ablehnungsmeldungen](#refusal-messages) listet jeden auf. Wenn das Protokoll keine solche Zeile hat, arbeiten Sie die anderen Einträge in dieser Gruppe durch.

58 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 Ein `claude -p` Lauf gibt `hooks module not loaded` aus

61</h3>

62 

63Die Zeile beginnt mit dem Namen des Mods und geht zu stderr. Das Hooks-Modul wurde abgelehnt. Ein nicht-interaktiver Lauf hat kein Transkript, daher geht die Meldung zu stderr.

64 

65Lesen Sie den Grund nach dem Doppelpunkt. Der Abschnitt [Ablehnungsmeldungen](#refusal-messages) listet jeden auf.

66 

67<h3 id="refusal-messages">

68 Ablehnungsmeldungen

69</h3>

70 

71Jede dieser folgt `hooks module`, dem Namen des Mods und `not loaded:` im Debug-Protokoll.

72 

73| Meldung beginnt mit | Was es bedeutet |

74| :- | :- |

75| `hooks modules are turned off for installed plugins in this process` | Anthropic hat installierte Mods remote ausgeschaltet. Keine Einstellung auf Ihrem Computer schaltet sie wieder ein. |

76| `disableAllHooks in managed settings` | Ihre Organisation hat Hooks von installierten Plugins ausgeschaltet |

77| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` ist gesetzt, oder `disableAllHooks` ist in einer Einstellungsdatei außer verwalteten Einstellungen gesetzt |

78| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Sie haben Claude Code mit `--bare` gestartet |

79| `another plugin of that name loads first` | Zwei Plugins teilen sich einen Namen. Das verwaltete oder das zuerst geladene wird verwendet. |

80 

81<h3 id="messages-from-the-built-in-guard">

82 Meldungen vom integrierten Guard

83</h3>

84 

85Auf einem Computer mit verwalteten Einstellungen oder für einen Benutzer, der mit einem Team- oder Enterprise-Plan angemeldet ist, kann der [integrierte Guard](/docs/de/plugins/mods/admin#know-what-happens-by-default) einen Mod oder eine seiner Antworten ablehnen. Jede Meldung benennt die Option, die der Administrator Ihrer Organisation setzt, um die Regel zu ändern.

86 

87| Meldung enthält | Was es bedeutet | Wo es angezeigt wird |

88| :- | :- | :- |

89| `mods are limited to your organization's by policy (allowManagedModsOnly)` | Ihre Organisation erlaubt nur [ihre eigenen Mods](/docs/de/plugins/mods/admin#install-your-organizations-mods), daher wurde Ihrer nicht geladen | Das Debug-Protokoll und das Transkript in einer [Sitzung, die ein Plugin-Verzeichnis neu lädt](#find-out-why-a-mod-does-nothing) |

90| `tried to lift a deny rule in your settings` | Der [`tool.check`](/docs/de/plugins/mods/reference#tools) Hook Ihres Mods genehmigte einen Aufruf, den eine `deny` Regel ablehnt. Der Aufruf bleibt abgelehnt. | Das Transkript und das Debug-Protokoll, einmal für jeden Mod in einer Sitzung. In einem `claude -p` Lauf nur das Debug-Protokoll. |

91| `the deny rules in your settings could not be checked for this call, so it is refused` | Der Guard ist fehlgeschlagen, während er einen Aufruf überprüfte, den ein Mod genehmigte, daher lehnte er den Aufruf ab | Der Grund, den Claude für den abgelehnten Aufruf liest |

92 

93<h3 id="validate-passes-and-lists-no-hooks-line">

94 `validate` besteht und listet keine `hooks` Zeile auf

95</h3>

96 

97`hooks/hooks.json` hat keinen `modules` Schlüssel, oder der Schlüssel ist falsch geschrieben.

98 

99Fügen Sie `"modules": ["./register.js"]` hinzu.

100 

101<h3 id="hooks-module-did-not-load">

102 `hooks module did not load`

103</h3>

104 

105Die Zeile beginnt mit dem Namen des Mods, dann `hooks module did not load:` und ein Grund, der die Datei und Zeile angibt, wenn das Problem in Ihrem Code ist. Claude Code konnte das Modul nicht laden, zum Beispiel weil sein Code auf oberster Ebene geworfen wurde.

106 

107Beheben Sie den Fehler, den der Grund benennt.

108 

109<h3 id="options-do-not-fit-plugin-json-userconfig">

110 `options do not fit plugin.json userConfig`

111</h3>

112 

113Die Zeile beginnt mit dem Namen des Mods, dann `hooks module did not load: options do not fit plugin.json userConfig:` und ein Grund. Eine Option passt nicht zu ihrem [`userConfig`](/docs/de/plugins/components#user-configuration) Feld, wie eine Zahl über dem `max` Feld, oder ein erforderliches Feld hat keinen Wert.

114 

115Setzen oder ändern Sie den Wert. Das Ende der Zeile benennt seinen `pluginConfigs` Eintrag in `settings.json`.

116 

117<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">

118 Kein Mod wird in einem Verzeichnis geladen, das Sie zum ersten Mal geöffnet haben

119</h3>

120 

121Sie haben die Vertrauensaufforderung für das Verzeichnis nicht beantwortet.

122 

123Starten Sie eine interaktive Sitzung in diesem Verzeichnis mit `claude`, und akzeptieren Sie die Vertrauensaufforderung, die sie öffnet.

124 

125<h3 id="no-installed-plugin-loads-at-all">

126 Kein installiertes Plugin wird überhaupt geladen

127</h3>

128 

129Sie haben Claude Code mit `--safe-mode` gestartet.

130 

131Starten Sie ohne das Flag.

132 

133<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">

134 Ein Hook wird übersprungen oder ein Mod wird entladen

135</h2>

136 

137Der Mod wurde geladen, und dann übersprungen Claude Code einen seiner Hooks oder entlud ihn.

138 

139<h3 id="hook-skipped">

140 `hook skipped`

141</h3>

142 

143Die Zeile benennt den Mod und das Ereignis, dann sagt `hook skipped:` und ein Grund, wie in `first-mod: tool.call hook skipped: threw Error: boom`. Ein Hook warf, lief über sein [10-Sekunden-Zeitlimit](/docs/de/plugins/mods/reference#limits) hinaus, oder gab ein Ergebnis der falschen Form zurück. Die Zeile wird einmal für jedes Ereignis und jede Art von Fehler angezeigt, bis der Mod neu geladen wird.

144 

145Beheben Sie den Fehler. Das Debug-Protokoll hat eine Zeile für jedes Vorkommen.

146 

147<h3 id="it-crashed-the-hooks-worker">

148 `it crashed the hooks worker`

149</h3>

150 

151Die Zeile beginnt mit dem Namen des Mods, wie in `first-mod was unloaded: it crashed the hooks worker`. Installierte Mods teilen sich einen Worker-Thread. Der Worker hat nicht mehr reagiert oder ist abgestürzt, und Claude Code hat das auf diesen Mod zurückgeführt und ihn entladen. Ein Hook, der den Thread blockiert, wie eine Schleife, die nie erwartet, ist eine Ursache.

152 

153Beheben Sie den Hook.

154 

155<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">

156 `mods that run in the hooks worker are off for this session`

157</h3>

158 

159Die Zeile liest `hooks: mods that run in the hooks worker are off for this session: it crashed 3 times`. Der Worker ist dreimal gestoppt worden und Claude Code konnte die Stopps nicht auf einen Mod zurückführen, daher entlud es jeden Mod, der nicht integriert ist, einschließlich Mods, die Ihre Organisation installiert. Diese Zeile erreicht das Transkript in jeder interaktiven Sitzung.

160 

161Führen Sie `/reload-plugins` aus, um sie wieder zu laden.

162 

163<h2 id="a-tool-call-is-denied">

164 Ein Tool-Aufruf wird abgelehnt

165</h2>

166 

167Der Mod wurde geladen und seine Hooks laufen, und ein Tool-Aufruf, den er berührte, wird abgelehnt.

168 

169<h3 id="a-hook-changed-this-call’s-input-after-the-model-wrote-it">

170 `a hook changed this call's input after the model wrote it`

171</h3>

172 

173Im Auto-Modus gibt ein abgelehnter Tool-Aufruf diesen Grund an. Ein Hook hat die Eingabe des Tool-Aufrufs geändert, nachdem der [serverseitige Klassifizierer](/docs/de/permission-modes#server-side-classifier-review) ihn überprüft hat, daher deckt diese Überprüfung nicht ab, was ausgeführt würde. Der Hook kann ein [`tool.call`](/docs/de/plugins/mods/reference#tools) oder [`turn.step`](/docs/de/plugins/mods/reference#turns) Hook eines Mods sein, oder ein [`PreToolUse`](/docs/de/hooks#pretooluse) Einstellungs-Hook. Die Meldung sagt nicht, welcher.

174 

175Die Meldung teilt Claude mit, den Aufruf einmal mehr wie aufgezeichnet auszugeben. Wenn dieser auch abgelehnt wird, ändert der Hook die Eingabe jedes Mal, daher schalten Sie den Mod oder Hook aus, oder verlassen Sie den Auto-Modus und genehmigen Sie den Aufruf selbst.

176 

177<h3 id="a-message-about-the-deny-rules-in-your-settings">

178 Eine Meldung über die Deny-Regeln in Ihren Einstellungen

179</h3>

180 

181`tried to lift a deny rule in your settings` und `the deny rules in your settings could not be checked for this call, so it is refused` kommen beide vom integrierten Guard.

182 

183Schauen Sie sie in [Meldungen vom integrierten Guard](#messages-from-the-built-in-guard) nach.

184 

185<h2 id="a-drawing-doesn’t-appear-or-respond">

186 Eine Zeichnung wird nicht angezeigt oder reagiert nicht

187</h2>

188 

189Der Mod wurde geladen, und sein Bereich, Band oder Steuerelemente verhalten sich nicht wie erwartet.

190 

191<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

192 Ein Bereich oder Band ist leer oder zeigt den üblichen Inhalt von Claude Code

193</h3>

194 

195Der [Baum](/docs/de/plugins/mods/interface#build-a-tree-from-elements), den Ihr Hook zurückgab, wurde nicht validiert. Mit `--plugin-dir` sagt das Transkript `ui.render (Pane) refused:` mit dem Grund, wie in `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. Das Debug-Protokoll hat `a hook returned a tree that does not validate` mit dem gleichen Grund.

196 

197Lesen Sie den Grund auf dieser Zeile. Häufige Ursachen sind eine Eigenschaft, die das Element nicht annimmt, und ein Element, das die App nicht hat.

198 

199<h3 id="ui-open-runs-and-no-pane-appears">

200 `$.ui.open` läuft und kein Bereich wird angezeigt

201</h3>

202 

203Der Aufruf kam nicht von etwas, das der Benutzer tat, und das Terminal ist schmaler als 144 Spalten.

204 

205Öffnen Sie den Bereich von einem Befehl oder einer Schaltfläche, oder überprüfen Sie das `isPlaced` Ergebnis des Aufrufs. Siehe [Öffnen Sie einen Bereich zur richtigen Zeit](/docs/de/plugins/mods/interface#open-a-pane-at-the-right-time).

206 

207<h3 id="hotkeys-do-nothing">

208 Hotkeys tun nichts

209</h3>

210 

211Ihr Bereich hat keinen Tastaturfokus.

212 

213Drücken Sie Strg+X und dann Tab, oder klicken Sie auf den Bereich. Öffnen Sie ihn mit `focus: true` von einem Befehl.

214 

215<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">

216 Eine Zeichnung funktioniert im Terminal und nicht in der Desktop-App

217</h3>

218 

219Die Website oder das Element ist dort nicht verfügbar.

220 

221Überprüfen Sie die [Render-Websites](/docs/de/plugins/mods/reference#render-sites) und [Elemente](/docs/de/plugins/mods/reference#elements) Tabellen.

222 

223<h2 id="an-edit-or-a-value-is-lost">

224 Eine Bearbeitung oder ein Wert geht verloren

225</h2>

226 

227Der Mod läuft, und eine Änderung, die Sie vorgenommen haben, oder ein Wert, den er beibehielt, ist nicht vorhanden.

228 

229<h3 id="your-edits-don’t-take-effect">

230 Ihre Bearbeitungen werden nicht wirksam

231</h3>

232 

233Sie bearbeiten ein Plugin, das Sie installiert haben. Claude Code führt die zwischengespeicherte Kopie für die installierte Version aus.

234 

235Entwickeln Sie mit `--plugin-dir` auf Ihre Arbeitskopie, wie in `claude --plugin-dir ./first-mod`, die beim Speichern neu lädt.

236 

237<h3 id="a-value-resets-when-the-module-reloads">

238 Ein Wert wird zurückgesetzt, wenn das Modul neu geladen wird

239</h3>

240 

241Variablen auf Modulebene werden bei jedem Neuladen neu initialisiert.

242 

243[Behalten Sie den Wert in `$.state` oder `$.store`](/docs/de/plugins/mods/interface#keep-state).

244 

245<h3 id="a-value-resets-after-/clear-/resume-or-/branch">

246 Ein Wert wird nach `/clear`, `/resume` oder `/branch` zurückgesetzt

247</h3>

248 

249Ein Wert wird zurückgesetzt, oder ein gespeicherter Wert wird durch seinen Standard ersetzt. Jeder dieser Befehle setzt `$.state` auf seine Standards zurück, und `session.start` wird nicht erneut ausgelöst.

250 

251[Laden Sie den gespeicherten Wert nach `/clear` erneut](/docs/de/plugins/mods/interface#load-a-saved-value-again-after-clear) in einem `classic.SessionStart` Hook.

252 

253<h2 id="read-the-debug-log">

254 Lesen Sie das Debug-Protokoll

255</h2>

256 

257Das Debug-Protokoll hat eine Zeile für jedes Modul, das Claude Code lädt oder ablehnt, jeden Hook, der fehlschlägt, und jedes Ergebnis, das es ablehnt, daher ist es der Ort, an dem man nachschaut, wenn das Transkript nichts zeigt. Um eines zu schreiben, starten Sie Claude Code in Ihrer Shell mit `--debug`, oder mit `--debug-file <path>`, um zu wählen, wo es geht:

258 

259```bash theme={null}

260claude --debug-file ./mod-debug.log --plugin-dir ./first-mod

261```

262 

263Folgen Sie in einem anderen Terminal der Datei und filtern Sie nach dem Namen Ihres Mods:

264 

265```bash theme={null}

266tail -f ./mod-debug.log | grep first-mod

267```

268 

269Ein Mod, der geladen wurde, hat eine Zeile, die ihn benennt und die Ereignisse auflistet, die er verbindet. Ein Mod, der mit `--plugin-dir` geladen wurde, wird unter seinem Namen gefolgt von `@inline` angezeigt:

270 

271```text theme={null}

272hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

273```

274 

275Eine Zeichnung, die nicht validiert wurde, zählt als abgelehntes Ergebnis und erhält auch eine Zeile. Um Ihre eigenen Zeilen im Protokoll zu schreiben, rufen Sie [`$.ui.log`](/docs/de/plugins/mods/api#show-something-without-starting-a-turn) mit einem zweiten Argument auf, wie in `$.ui.log('message', { to: 'debug' })`. Ohne das zweite Argument fügt `$.ui.log` eine schwache Zeile zum Transkript hinzu.

276 

277Während Sie einen Mod bearbeiten, der mit `--plugin-dir` geladen wurde, zeigt das Transkript eine Zeile für jedes Neuladen, die den Mod benennt und seine Hooks auflistet. Wenn ein Speichern das Modul bricht, sagt die Zeile `reload failed, the previous version stays loaded:` mit dem Grund, und die letzte funktionierende Version läuft weiter.

278 

279<h2 id="next-steps">

280 Nächste Schritte

281</h2>

282 

283* [Testen Sie einen Mod](/docs/de/plugins/mods/test): Fangen Sie Probleme ab, bevor sie eine Sitzung erreichen

284* [Fehlerbehebung für Plugins](/docs/de/plugins/troubleshooting): Probleme mit der Installation und dem Laden eines Plugins, die nicht spezifisch für Mods sind

plugins/org.md +4 −1

Details

212| `pluginTrustMessage` | Fügt Ihren Text zur Vertrauenswarnung an, die `/plugin` vor der Installation eines Plugins anzeigt | Ändert den Text der Warnung selbst nicht |212| `pluginTrustMessage` | Fügt Ihren Text zur Vertrauenswarnung an, die `/plugin` vor der Installation eines Plugins anzeigt | Ändert den Text der Warnung selbst nicht |

213| `allowedChannelPlugins` | Ersetzt die Standardliste von Plugins, die Kanalnachrichten pushen dürfen. Erfordert `channelsEnabled: true` | Siehe [Einschränken, welche Channel-Plugins ausgeführt werden können](/docs/de/channels#restrict-which-channel-plugins-can-run) |213| `allowedChannelPlugins` | Ersetzt die Standardliste von Plugins, die Kanalnachrichten pushen dürfen. Erfordert `channelsEnabled: true` | Siehe [Einschränken, welche Channel-Plugins ausgeführt werden können](/docs/de/channels#restrict-which-channel-plugins-can-run) |

214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/de/env-vars) | Stoppt interaktive Terminal-Sitzungen von der automatischen Registrierung des offiziellen Marketplace | Entfernt keinen bereits registrierten Marketplace. Die Zulassungsliste und Blockliste geben die gleiche automatische Registrierung ohne sie ein. Ein Computer, der einmal damit gestartet wurde, setzt die automatische Registrierung nicht fort, nachdem Sie es deaktiviert haben |214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/de/env-vars) | Stoppt interaktive Terminal-Sitzungen von der automatischen Registrierung des offiziellen Marketplace | Entfernt keinen bereits registrierten Marketplace. Die Zulassungsliste und Blockliste geben die gleiche automatische Registrierung ohne sie ein. Ein Computer, der einmal damit gestartet wurde, setzt die automatische Registrierung nicht fort, nachdem Sie es deaktiviert haben |

215| [`allowManagedModsOnly`](/docs/de/plugins/mods/admin#stop-user-installed-mods-from-loading) | Stoppt jeden installierten [Mod](/docs/de/plugins/mods/overview), der nicht [als Mod Ihrer Organisation zählt](/docs/de/plugins/mods/admin#install-your-organizations-mods), vom Laden | Stoppt kein Plugin, das einen Mod enthält, von der Installation. Verwenden Sie dafür die Marketplace-Schlüssel in dieser Tabelle |

215 216 

216Jeder Schlüssel in der Tabelle ist eine verwaltete Einstellung, außer `enabledPlugins`, `syncClaudeAiPlugins` und `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`:217Jeder Schlüssel in der Tabelle ist eine verwaltete Einstellung, außer `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` und `allowManagedModsOnly`:

217 218 

218* **`enabledPlugins`**: Sie können es in jedem Bereich festlegen, und verwaltete Einstellungen sperren es.219* **`enabledPlugins`**: Sie können es in jedem Bereich festlegen, und verwaltete Einstellungen sperren es.

219* **`syncClaudeAiPlugins`**: Jeder Benutzer kann es auch in seinen eigenen Benutzer- oder lokalen Einstellungen festlegen. Siehe seinen [Bereich in der Einstellungsreferenz](/docs/de/settings-reference#syncclaudeaiplugins).220* **`syncClaudeAiPlugins`**: Jeder Benutzer kann es auch in seinen eigenen Benutzer- oder lokalen Einstellungen festlegen. Siehe seinen [Bereich in der Einstellungsreferenz](/docs/de/settings-reference#syncclaudeaiplugins).

220* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: Dies ist eine Umgebungsvariable, die Sie über den verwalteten `env`-Block bereitstellen, der unter [Updates für die gesamte Flotte ausschalten](#turn-updates-off-for-the-whole-fleet) angezeigt wird.221* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: Dies ist eine Umgebungsvariable, die Sie über den verwalteten `env`-Block bereitstellen, der unter [Updates für die gesamte Flotte ausschalten](#turn-updates-off-for-the-whole-fleet) angezeigt wird.

222* **`allowManagedModsOnly`**: Dies ist eine Option auf einem integrierten Plugin, das Sie unter `pluginConfigs` in verwalteten Einstellungen festlegen. Siehe [Benutzer-installierte Mods vom Laden stoppen](/docs/de/plugins/mods/admin#stop-user-installed-mods-from-loading).

221 223 

222Jeder Einstellungsschlüssel hier hat einen Eintrag in der [Einstellungsreferenz](/docs/de/settings-reference).224Jeder Einstellungsschlüssel hier hat einen Eintrag in der [Einstellungsreferenz](/docs/de/settings-reference).

223 225 


457* [Marketplace-Referenz](/docs/de/plugins/marketplace-reference#marketplace-sources): Die `source`-Werte, die `extraKnownMarketplaces`, `strictKnownMarketplaces` und `blockedMarketplaces` akzeptieren459* [Marketplace-Referenz](/docs/de/plugins/marketplace-reference#marketplace-sources): Die `source`-Werte, die `extraKnownMarketplaces`, `strictKnownMarketplaces` und `blockedMarketplaces` akzeptieren

458* [Hosten und verwalten Sie einen Marketplace](/docs/de/plugins/host-marketplace): Betreiben Sie den Marketplace, auf den Ihre Richtlinie verweist460* [Hosten und verwalten Sie einen Marketplace](/docs/de/plugins/host-marketplace): Betreiben Sie den Marketplace, auf den Ihre Richtlinie verweist

459* [Plugin-Sicherheit und Vertrauen](/docs/de/plugins/security): Was ein Plugin auf einem Computer tun kann und wie man eines vor der Installation überprüft461* [Plugin-Sicherheit und Vertrauen](/docs/de/plugins/security): Was ein Plugin auf einem Computer tun kann und wie man eines vor der Installation überprüft

462* [Mods für Ihre Organisation verwalten](/docs/de/plugins/mods/admin): Deaktivieren oder beschränken Sie Mods, die Plugins, die JavaScript in Claude Code ausführen

460* [Serverseitig verwaltete Einstellungen](/docs/de/server-managed-settings): Stellen Sie diese Schlüssel aus der claude.ai-Administratorkonsole bereit463* [Serverseitig verwaltete Einstellungen](/docs/de/server-managed-settings): Stellen Sie diese Schlüssel aus der claude.ai-Administratorkonsole bereit

461* [Fehlerbehebung für Plugins](/docs/de/plugins/troubleshooting#blocked-by-your-organization): Die Meldungen, die Benutzer sehen, wenn die Richtlinie sie blockiert464* [Fehlerbehebung für Plugins](/docs/de/plugins/troubleshooting#blocked-by-your-organization): Die Meldungen, die Benutzer sehen, wenn die Richtlinie sie blockiert

Details

30* [**Skills**](/docs/de/plugins/components#skills): `SKILL.md`-Anweisungen, die Claude lädt, wenn relevant, und die Sie auch als Befehl ausführen können30* [**Skills**](/docs/de/plugins/components#skills): `SKILL.md`-Anweisungen, die Claude lädt, wenn relevant, und die Sie auch als Befehl ausführen können

31* [**Agents**](/docs/de/plugins/components#agents): Subagent-Definitionen, an die Claude delegieren kann31* [**Agents**](/docs/de/plugins/components#agents): Subagent-Definitionen, an die Claude delegieren kann

32* [**Hooks**](/docs/de/plugins/components#hooks): Befehle, die Claude Code an Punkten in seinem Lebenszyklus ausführt, z. B. nach jeder Bearbeitung32* [**Hooks**](/docs/de/plugins/components#hooks): Befehle, die Claude Code an Punkten in seinem Lebenszyklus ausführt, z. B. nach jeder Bearbeitung

33* [**Ein Hooks-Modul**](/docs/de/plugins/mods/overview): Hooks, die als JavaScript-Funktionen geschrieben sind und auch Bereiche zeichnen und Befehle hinzufügen können. Ein Plugin, das eines hat, wird Mod genannt

33* [**MCP-Server**](/docs/de/plugins/components#mcp-servers): Tool-Server, mit denen sich Claude Code verbindet, während das Plugin aktiviert ist34* [**MCP-Server**](/docs/de/plugins/components#mcp-servers): Tool-Server, mit denen sich Claude Code verbindet, während das Plugin aktiviert ist

34 35 

35Dieses Diagramm zeigt ein Plugin namens `my-plugin`, das eine Komponente von jedem dieser Typen enthält, und was Sie von jeder Datei erhalten, sobald das Plugin geladen wird.36Dieses Diagramm zeigt ein Plugin namens `my-plugin`, das eine Skill, einen Agent, Hooks und einen MCP-Server enthält, und was Sie von jeder Datei erhalten, sobald das Plugin geladen wird.

36 37 

37<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagramm in zwei Spalten, verbunden durch fünf gerade Pfeile. Links das Verzeichnis eines Plugins namens my-plugin mit einem Manifest unter .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json und anderen Komponenten. Rechts das, was jede Datei in Ihrer Sitzung gibt: Das Manifest setzt den Plugin-Namen, my-plugin; die Skill läuft als /my-plugin:review; die Agent-Datei ist ein Subagent, an den Claude delegieren kann; die Hooks-Datei enthält Hooks, die bei Lebenszyklusereignissen ausgeführt werden; und .mcp.json fügt einen MCP-Server hinzu, der Claude Tools gibt." width="760" height="336" data-path="images/plugin-directory.svg" />38<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagramm in zwei Spalten, verbunden durch fünf gerade Pfeile. Links das Verzeichnis eines Plugins namens my-plugin mit einem Manifest unter .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json und anderen Komponenten. Rechts das, was jede Datei in Ihrer Sitzung gibt: Das Manifest setzt den Plugin-Namen, my-plugin; die Skill läuft als /my-plugin:review; die Agent-Datei ist ein Subagent, an den Claude delegieren kann; die Hooks-Datei enthält Hooks, die bei Lebenszyklusereignissen ausgeführt werden; und .mcp.json fügt einen MCP-Server hinzu, der Claude Tools gibt." width="760" height="336" data-path="images/plugin-directory.svg" />

38 39 

Details

29Ein Plugin kann Inhalte enthalten, die Code auf Ihrem Computer mit Ihren Benutzerrechten ausführen, und Inhalte, die als Anweisungen in Claudes Kontext eingehen. Daher [überprüfen Sie ein Plugin vor der Installation](#review-a-plugin-before-you-install). Hier ist, was ein installiertes Plugin tun kann:29Ein Plugin kann Inhalte enthalten, die Code auf Ihrem Computer mit Ihren Benutzerrechten ausführen, und Inhalte, die als Anweisungen in Claudes Kontext eingehen. Daher [überprüfen Sie ein Plugin vor der Installation](#review-a-plugin-before-you-install). Hier ist, was ein installiertes Plugin tun kann:

30 30 

31* **Hooks**: die [Hooks](/docs/de/hooks) eines Plugins werden als Shell-Befehle an Punkten im Lebenszyklus von Claude Code ausgeführt, z. B. vor oder nach einem Tool-Aufruf.31* **Hooks**: die [Hooks](/docs/de/hooks) eines Plugins werden als Shell-Befehle an Punkten im Lebenszyklus von Claude Code ausgeführt, z. B. vor oder nach einem Tool-Aufruf.

32* **Mods**: ein [Mod](/docs/de/plugins/mods/overview) eines Plugins führt JavaScript in Claude Code mit Ihren Berechtigungen aus. Um zu sehen, was ein Mod vor der Installation tut, siehe [Entscheiden Sie, ob Sie einem Mod vertrauen](/docs/de/plugins/mods/overview#decide-whether-to-trust-a-mod).

32* **MCP- und LSP-Server**: Claude Code verbindet sich mit den [MCP-Servern](/docs/de/mcp), die ein aktiviertes Plugin deklariert, und gibt Claude deren Tools. Ein stdio-MCP-Server wird als Prozess ausgeführt, den Claude Code auf Ihrem Computer startet. Claude Code startet auch die Sprachserver, die das Plugin deklariert.33* **MCP- und LSP-Server**: Claude Code verbindet sich mit den [MCP-Servern](/docs/de/mcp), die ein aktiviertes Plugin deklariert, und gibt Claude deren Tools. Ein stdio-MCP-Server wird als Prozess ausgeführt, den Claude Code auf Ihrem Computer startet. Claude Code startet auch die Sprachserver, die das Plugin deklariert.

33* **`bin/`-Verzeichnis**: Claude Code fügt das `bin/`-Verzeichnis jedes aktivierten Plugins zum `PATH` der Shell des Bash-Tools hinzu, sodass Claudes Bash-Befehle jede dort vorhandene ausführbare Datei ausführen können.34* **`bin/`-Verzeichnis**: Claude Code fügt das `bin/`-Verzeichnis jedes aktivierten Plugins zum `PATH` der Shell des Bash-Tools hinzu, sodass Claudes Bash-Befehle jede dort vorhandene ausführbare Datei ausführen können.

34* **Skills, Befehle und Agenten**: diese gehen als Anweisungen in Claudes Kontext ein und beeinflussen daher, was Claude mit den Tools tut, die es bereits hat.35* **Skills, Befehle und Agenten**: diese gehen als Anweisungen in Claudes Kontext ein und beeinflussen daher, was Claude mit den Tools tut, die es bereits hat.


37Claude Codes [Berechtigungsregeln](/docs/de/permissions) und [Sandbox](/docs/de/sandboxing) decken die Tool-Aufrufe ab, die Claude macht, nicht den Code, den ein Plugin selbst ausführt:38Claude Codes [Berechtigungsregeln](/docs/de/permissions) und [Sandbox](/docs/de/sandboxing) decken die Tool-Aufrufe ab, die Claude macht, nicht den Code, den ein Plugin selbst ausführt:

38 39 

39* **Hooks und Server-Prozesse**: Befehls-Hooks führen Shell-Befehle mit Ihren vollständigen Benutzerberechtigungen aus. Claude Code führt Hooks und MCP-Server außerhalb der Sandbox aus.40* **Hooks und Server-Prozesse**: Befehls-Hooks führen Shell-Befehle mit Ihren vollständigen Benutzerberechtigungen aus. Claude Code führt Hooks und MCP-Server außerhalb der Sandbox aus.

40* **Claudes Tool-Aufrufe**: ein Aufruf eines der MCP-Tools des Plugins und ein Bash-Befehl, der eine ausführbare Datei aus dem `bin/`-Verzeichnis des Plugins ausführt, sind Tool-Aufrufe, daher gelten Ihre Berechtigungsregeln für sie.41* **Claudes Tool-Aufrufe**: ein Aufruf eines der MCP-Tools des Plugins und ein Bash-Befehl, der eine ausführbare Datei aus dem `bin/`-Verzeichnis des Plugins ausführt, sind Tool-Aufrufe, daher gelten Ihre Berechtigungsregeln für sie. Für das, was ein Mod mit einem Tool-Aufruf tun kann, siehe [Entscheiden Sie, ob Sie einem Mod vertrauen](/docs/de/plugins/mods/overview#decide-whether-to-trust-a-mod).

41 42 

42Die Installation eines Plugins aktiviert es auch, es sei denn, sein Manifest oder der Marketplace-Eintrag setzt [`defaultEnabled: false`](/docs/de/plugins/install#choose-an-install-scope) und Sie haben es nicht selbst aktiviert.43Die Installation eines Plugins aktiviert es auch, es sei denn, sein Manifest oder der Marketplace-Eintrag setzt [`defaultEnabled: false`](/docs/de/plugins/install#choose-an-install-scope) und Sie haben es nicht selbst aktiviert.

43 44 

Details

201 201 

202Ein erfolgreiches Hinzufügen druckt `Successfully added marketplace: <name>`.202Ein erfolgreiches Hinzufügen druckt `Successfully added marketplace: <name>`.

203 203 

204<h3 id="invalid-git-url">

205 `Invalid git URL`

206</h3>

207 

208Sie haben einen Marktplatz hinzugefügt, ein Plugin installiert oder eine Aktualisierung von einer Git-Adresse ausgeführt, und der Befehl ist mit `Invalid git URL` in seiner Meldung fehlgeschlagen.

209 

210Claude Code überprüft jede Git-Adresse, bevor Git ausgeführt wird. Es weigert sich, eine Adresse zu akzeptieren, deren Protokoll es nicht unterstützt. Es weigert sich auch, eine Adresse zu akzeptieren, die Git als Benennung eines anderen Servers oder Ordners als dem, den die Adresse zeigt, lesen könnte.

211 

212Der Text nach der Adresse benennt, was zu ändern ist. Schreiben Sie die Adresse wie in der Meldung angegeben um und führen Sie den Befehl erneut aus.

213 

214Eine Ablehnung, die stattdessen `is blocked by enterprise policy` sagt, kommt von den Einstellungen Ihrer Organisation. Siehe [Marktplatzquelle wird durch Unternehmensrichtlinie blockiert](#marketplace-source-is-blocked-by-enterprise-policy).

215 

204<h3 id="path-does-not-exist">216<h3 id="path-does-not-exist">

205 `Path does not exist: <path>`217 `Path does not exist: <path>`

206</h3>218</h3>


410 422 

411`claude plugin install` in Ihrer Shell druckt eine andere Meldung. Für ein Plugin, das bereits im Zielbereich installiert ist, druckt es `Plugin "<name>@<marketplace>" is already installed (scope: user)` und beendet mit 0. Wenn sein Cache-Verzeichnis fehlt, lädt derselbe Befehl es erneut herunter.423`claude plugin install` in Ihrer Shell druckt eine andere Meldung. Für ein Plugin, das bereits im Zielbereich installiert ist, druckt es `Plugin "<name>@<marketplace>" is already installed (scope: user)` und beendet mit 0. Wenn sein Cache-Verzeichnis fehlt, lädt derselbe Befehl es erneut herunter.

412 424 

425<h3 id="plugin-would-share-its-folder">

426 `"<plugin>" was not installed: it would share its folder with "<other>"`

427</h3>

428 

429Sie haben ein Plugin durch `claude plugin install`, `/plugin` oder einen Installationsvorschlag in einer Sitzung installiert, und Claude Code hat es mit dieser Zeile oder mit `would share its saved data with` abgelehnt.

430 

431Die ID des abgelehnten Plugins und die ID eines installierten Plugins werden dem gleichen Ordner auf der Festplatte zugeordnet: Sie sind gleich, sobald `.` und `@` als `-` geschrieben werden. Auf macOS und Windows werden IDs, die sich nur in Großbuchstaben unterscheiden, auch dem gleichen Ordner zugeordnet. Die Installation beider würde die Dateien eines Plugins in den Ordner des anderen Plugins legen, daher lehnt Claude Code ab und das installierte Plugin behält seine Dateien.

432 

433Die Meldung benennt den Ausweg:

434 

435* **Das andere Plugin ist installiert**: die Meldung sagt `Only one of the two can be installed.` und benennt den `claude plugin uninstall`-Befehl oder den Deinstallationsschritt in `/plugin`, der das andere Plugin entfernt. Führen Sie ihn aus, und installieren Sie dann erneut. Für das, was die Deinstallation entfernt, siehe [Was eine Deinstallation löscht und behält](/docs/de/plugins/cli-reference#what-an-uninstall-deletes-and-keeps).

436* **Beide IDs kommen in einer Installation an**, wie ein Plugin und eine Abhängigkeit, die es benötigt: keine Installationsreihenfolge hilft. Nur ein Verwalter des Marktplatzes, der die beiden Plugins auflistet, kann es beheben, indem er einen von ihnen umbenennt. Wenn die beiden aus verschiedenen Marktplätzen kommen, kann ein Verwalter von einem von ihnen es beheben.

437 

413<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

414 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`

415</h3>440</h3>


790* **`URL is unset or invalid`**: eine `${user_config.*}`-Option, die die URL verwendet, ist nicht gesetzt. Führen Sie `/plugin configure <plugin>` aus, um sie zu setzen815* **`URL is unset or invalid`**: eine `${user_config.*}`-Option, die die URL verwendet, ist nicht gesetzt. Führen Sie `/plugin configure <plugin>` aus, um sie zu setzen

791* **`has an invalid MCP url`** oder **`headersHelper for MCP server '<server>' references ${user_config.*}`**: die Konfiguration des Plugins selbst ist schuld. Beheben Sie die `url` oder `headersHelper` in der MCP-Konfiguration Ihres Plugins, oder melden Sie es dem Autor des Plugins, wenn das Plugin nicht Ihres ist. Der `headersHelper`-Fall hat seinen eigenen Eintrag unter [Plugin-Befehl referenziert user\_config](/docs/de/errors#plugin-command-references-user-config)816* **`has an invalid MCP url`** oder **`headersHelper for MCP server '<server>' references ${user_config.*}`**: die Konfiguration des Plugins selbst ist schuld. Beheben Sie die `url` oder `headersHelper` in der MCP-Konfiguration Ihres Plugins, oder melden Sie es dem Autor des Plugins, wenn das Plugin nicht Ihres ist. Der `headersHelper`-Fall hat seinen eigenen Eintrag unter [Plugin-Befehl referenziert user\_config](/docs/de/errors#plugin-command-references-user-config)

792 817 

818<h4 id="bundled-mcp-server-name-was-not-started-it-needs-configuration">

819 `Bundled MCP server "<name>" was not started: it needs configuration`

820</h4>

821 

822Das Plugin enthält den Server als [MCPB-Bundle](/docs/de/plugins/components#include-a-packaged-mcpb-server), das `user_config` deklariert, und eine erforderliche Einstellung hat noch keinen gespeicherten Wert oder ein gespeicherter Wert schlägt die Validierung des Bundles fehl, daher überspringt Claude Code das Starten des Servers. Der Rest des Plugins funktioniert.

823 

824Wählen Sie das Plugin auf der Registerkarte **Installed** von `/plugin` aus und wählen Sie **Configure**, um die Werte bereitzustellen. Nachdem Sie speichern, zeigt `/plugin` `Configuration saved.` an und schließt sich, und Claude Code lädt Plugins wie unter [Installierte Plugins verwalten](/docs/de/plugins/install#manage-installed-plugins) beschrieben erneut. Der Server startet, sobald dieses Reload angewendet wird. Vor v2.1.285 übersprang Claude Code den Server, ohne diese Zeile anzuzeigen.

825 

793<h4 id="server-is-configured-but-never-connects">826<h4 id="server-is-configured-but-never-connects">

794 Server ist konfiguriert, verbindet sich aber nie827 Server ist konfiguriert, verbindet sich aber nie

795</h4>828</h4>


934 967 

935Ihr Plugin deklariert `userConfig`-Optionen, aber kein Konfigurationsdialog erscheint, wenn Sie es installieren.968Ihr Plugin deklariert `userConfig`-Optionen, aber kein Konfigurationsdialog erscheint, wenn Sie es installieren.

936 969 

937Die interaktive Installation zeigt den Dialog, und der Shell-Befehl nimmt die Werte stattdessen als Flags:970Ob die Installation nach den Werten fragt, hängt davon ab, wo Sie sie ausführen:

938 971 

939* **`/plugin install` in einer Sitzung, oder die Registerkarte Discover in `/plugin`**: der Dialog ist Teil dieser interaktiven Installation972* **`/plugin install` in einer Sitzung, oder die Registerkarte Discover in `/plugin`**: der Dialog ist Teil dieser interaktiven Installation

973* **Der Verwaltungsdialog für Plugins der VS Code-Erweiterung**: fordert nach der Installation ungesetzte Optionen als Formular an. Vor v2.1.285 zeigte die Installation dort kein Optionsformular, daher setzen Sie die Werte aus einer Terminal-Sitzung mit `/plugin configure <plugin>@<marketplace>`

940* **`claude plugin install` in Ihrer Shell**: fordert nie `userConfig`-Werte auf. Es speichert alle `--config KEY=VALUE`-Werte, die Sie übergeben, und wenn Optionen ungesetzt bleiben, druckt es `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Wenn eine der ungesetzten Optionen erforderlich ist, folgt `(M required)` auf `not yet set`.974* **`claude plugin install` in Ihrer Shell**: fordert nie `userConfig`-Werte auf. Es speichert alle `--config KEY=VALUE`-Werte, die Sie übergeben, und wenn Optionen ungesetzt bleiben, druckt es `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Wenn eine der ungesetzten Optionen erforderlich ist, folgt `(M required)` auf `not yet set`.

941 975 

942Wenn Sie von der Shell aus installiert haben, übergeben Sie die Werte mit `--config`, ein Flag pro Option:976Wenn Sie von der Shell aus installiert haben, übergeben Sie die Werte mit `--config`, ein Flag pro Option:


945claude plugin install my-plugin@my-marketplace --config api_url=https://example.com979claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

946```980```

947 981 

948Wenn jede Option gesetzt ist, trägt die Installationsausgabe keine `not yet set`-Zeile. Um den Dialog danach stattdessen zu öffnen, führen Sie `/plugin configure my-plugin@my-marketplace` in einer Sitzung aus.982Wenn jede Option gesetzt ist, trägt die Installationsausgabe keine `not yet set`-Zeile.

983 

984Um den Dialog danach stattdessen zu öffnen, führen Sie `/plugin configure my-plugin@my-marketplace` in einer Sitzung aus. Von der Shell aus zeigt [`claude plugin configure`](/docs/de/plugins/cli-reference#plugin-configure), welche Optionen noch ungesetzt sind, und speichert Werte, die auf stdin weitergeleitet werden. Es erfordert Claude Code v2.1.285 oder später.

949 985 

950Wenn Sie einen `--config`-Schlüssel übergeben, den das Manifest nicht deklariert, wird das Plugin immer noch installiert, und der Befehl druckt `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` gefolgt von den Schlüsseln, die das Plugin deklariert.986Wenn Sie einen `--config`-Schlüssel übergeben, den das Manifest nicht deklariert, wird das Plugin immer noch installiert, und der Befehl druckt `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` gefolgt von den Schlüsseln, die das Plugin deklariert.

951 987 

988Für ein Plugin, das eine [MCPB-Bundle-Datei](/docs/de/plugins/components#include-a-packaged-mcpb-server) mit eigener `user_config` versendet, lautet die Meldung `isn't declared in this plugin's userConfig or by its bundled MCP servers.` stattdessen, und die bekannten Schlüssel enthalten die Schlüssel dieses Servers, geschrieben als `<server>.<key>`. Ein Bundle, das das Manifest per URL referenziert, wird zur Installationszeit nicht gelesen, daher sind seine Schlüssel nicht aufgelistet und die Meldung sagt, es in `/plugin` zu konfigurieren. Das Setzen von `<server>.<key>`-Schlüsseln erfordert Claude Code v2.1.285 oder später.

989 

952<h3 id="claude-plugin-validate-reports-errors">990<h3 id="claude-plugin-validate-reports-errors">

953 `claude plugin validate` meldet Fehler991 `claude plugin validate` meldet Fehler

954</h3>992</h3>


968| `Path contains ".." which could be a path traversal attempt: <path>` | Ein Komponentenpfad entweicht dem Plugin-Verzeichnis. | Verwenden Sie Pfade im Plugin-Root. |1006| `Path contains ".." which could be a path traversal attempt: <path>` | Ein Komponentenpfad entweicht dem Plugin-Verzeichnis. | Verwenden Sie Pfade im Plugin-Root. |

969| `Path is a file; skills entries must be directories containing SKILL.md` | Ein `skills`-Eintrag zeigt auf `SKILL.md` statt auf sein Verzeichnis. | Zeigen Sie auf das übergeordnete Verzeichnis, oder `.` für eine Root-Level-`SKILL.md`. |1007| `Path is a file; skills entries must be directories containing SKILL.md` | Ein `skills`-Eintrag zeigt auf `SKILL.md` statt auf sein Verzeichnis. | Zeigen Sie auf das übergeordnete Verzeichnis, oder `.` für eine Root-Level-`SKILL.md`. |

970| `No frontmatter block found` oder `YAML frontmatter failed to parse: <error>` | Eine Skill-, Agent- oder Befehlsdatei hat fehlende oder ungültige YAML-Frontmatter. | Fügen Sie oder beheben Sie die Frontmatter zwischen `---`-Trennzeichen. Wird beim Validieren eines Plugin-Verzeichnisses gemeldet. |1008| `No frontmatter block found` oder `YAML frontmatter failed to parse: <error>` | Eine Skill-, Agent- oder Befehlsdatei hat fehlende oder ungültige YAML-Frontmatter. | Fügen Sie oder beheben Sie die Frontmatter zwischen `---`-Trennzeichen. Wird beim Validieren eines Plugin-Verzeichnisses gemeldet. |

1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | Der Name des Plugins ist einer der [reservierten Namen](/docs/de/plugins/manifest-reference#name). | Benennen Sie das Plugin nach dem, was es tut. |

971| `Unknown field '<key>'` | Das Manifest hat ein Feld, das das Schema nicht definiert. | Entfernen Sie es, oder verwenden Sie den Namen, den die Meldung vorschlägt. Claude Code ignoriert unbekannte Felder zur Ladezeit. |1010| `Unknown field '<key>'` | Das Manifest hat ein Feld, das das Schema nicht definiert. | Entfernen Sie es, oder verwenden Sie den Namen, den die Meldung vorschlägt. Claude Code ignoriert unbekannte Felder zur Ladezeit. |

972 1011 

973Führen Sie den Befehl erneut aus, nachdem Sie jeden Fehler behoben haben, bis er keine Fehler druckt.1012Führen Sie den Befehl erneut aus, nachdem Sie jeden Fehler behoben haben, bis er keine Fehler druckt.

Details

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 

86<Note>86<Note>

87 Dynamisch gewählte Intervalle und der [integrierte Wartungs-Prompt](#run-the-built-in-maintenance-prompt) funktionieren auf jedem Anbieter und mit [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausgeschaltet. Bei Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry oder mit ausgeschaltetem Abruf erfordern beide Claude Code v2.1.248 oder später. In diesen Fällen läuft ein Prompt ohne Intervall auf früheren Versionen nach einem festen 10-Minuten-Zeitplan, und ein `/loop` ohne Prompt druckt die Nutzungsmeldung.87 Dynamisch gewählte Intervalle und der [integrierte Wartungs-Prompt](#run-the-built-in-maintenance-prompt) funktionieren auf jedem Anbieter und mit [Feature-Flag-Abruf](/docs/de/env-vars#features-that-need-feature-flag-fetching) ausgeschaltet. Bei Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform und Microsoft Foundry oder mit ausgeschaltetem Abruf erfordern beide Claude Code v2.1.248 oder später.

88</Note>88</Note>

89 89 

90<h3 id="run-the-built-in-maintenance-prompt">90<h3 id="run-the-built-in-maintenance-prompt">

Details

87Ein Runner bedient jeweils einen Besitzer. Die erste Sitzung, die ein Runner aufgreift, sperrt den Runner für den Besitzer dieser Sitzung, und der Runner führt dann Sitzungen nur für diesen Besitzer bis zu einer konfigurierten Kapazität aus. Wer der Besitzer ist, hängt davon ab, wie die Sitzung gestartet wurde:87Ein Runner bedient jeweils einen Besitzer. Die erste Sitzung, die ein Runner aufgreift, sperrt den Runner für den Besitzer dieser Sitzung, und der Runner führt dann Sitzungen nur für diesen Besitzer bis zu einer konfigurierten Kapazität aus. Wer der Besitzer ist, hängt davon ab, wie die Sitzung gestartet wurde:

88 88 

89* **Sitzungen, die ein Benutzer startet**: Der Besitzer ist das Konto dieses Benutzers.89* **Sitzungen, die ein Benutzer startet**: Der Besitzer ist das Konto dieses Benutzers.

90* **Claude Tag-Kanal-Sitzungen**: Claude führt sie ohne ein Benutzerkonto aus, daher ist der Besitzer der [Claude Tag-Agent](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity), der die Sitzung gestartet hat. Jede Kanal-Sitzung, die dieser Agent startet, hat denselben Besitzer, unabhängig davon, wer die Slack-Nachricht gesendet hat. Ein Runner, der daran gesperrt ist, bedient Sitzungen, die verschiedene Personen gestartet haben, wenn Sie ihn mit einer `--capacity` über eins oder mit einem positiven `--drain-grace-sec` ausführen. Ein Runner, der an einen Benutzer gesperrt ist, greift diese nicht auf, und ein Runner, der an einen Claude Tag-Agent gesperrt ist, greift niemals die Sitzungen eines Benutzers auf.90* **Claude Tag-Kanal-Sitzungen**: Claude führt sie ohne ein Benutzerkonto aus, daher ist der Besitzer der [Claude Tag-Agent](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity), der die Sitzung gestartet hat. Jede Kanal-Sitzung, die dieser Agent startet, hat denselben Besitzer, unabhängig davon, wer die Slack-Nachricht gesendet hat. Ein Runner, der daran gesperrt ist, bedient Sitzungen, die verschiedene Personen gestartet haben, wenn Sie ihn mit einer `--capacity` über eins oder mit einem positiven `--drain-grace-sec` ausführen.

91 91 

92Die minimale Flottengröße ist daher die Anzahl der Besitzer, die Sie gleichzeitig aktiv erwarten, einschließlich Benutzer und Claude Tag-Agenten.92Die minimale Flottengröße ist daher die Anzahl der Besitzer, die Sie gleichzeitig aktiv erwarten, einschließlich Benutzer und Claude Tag-Agenten.

93 93 

Details

149 Einstellungspriorität149 Einstellungspriorität

150</h3>150</h3>

151 151 

152Serververwaltete Einstellungen und [endpunktverwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) nehmen beide die höchste Ebene in der Claude Code [Einstellungshierarchie](/docs/de/settings#settings-precedence) ein. Keine andere Einstellungsebene kann sie überschreiben, einschließlich Befehlszeilenargumenten, abgesehen von den [Ausnahmen zur Priorität verwalteter Einstellungen](/docs/de/settings#exceptions-to-managed-settings-precedence).152Server-verwaltete Einstellungen und [Endpunkt-verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) nehmen beide die höchste Ebene in der Claude Code [Einstellungshierarchie](/docs/de/settings#settings-precedence) ein. Keine andere Einstellungsebene kann sie außer Kraft setzen, einschließlich Befehlszeilenargumenten, mit Ausnahme der [Ausnahmen zur Priorität verwalteter Einstellungen](/docs/de/settings#exceptions-to-managed-settings-precedence).

153 153 

154Innerhalb der verwalteten Ebene verwendet Claude Code standardmäßig die erste Quelle, die mindestens einen Richtlinienschlüssel liefert, wobei zuerst serververwaltete Einstellungen überprüft werden und dann endpunktverwaltete Einstellungen, abgesehen von der [Ausnahmeregelung für Schlüssel, die als nächstes behandelt wird](#per-key-exceptions-across-managed-sources). [Wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#precedence-within-the-managed-tier) enthält die vollständige Rangfolge, die Ausnahmeregelung für die Steuerschlüssel und die Opt-in-Option, die für jede Quelle gilt.154Innerhalb der verwalteten Ebene verwendet Claude Code standardmäßig die erste Quelle, die mindestens einen Richtlinienschlüssel bereitstellt, wobei zuerst server-verwaltete Einstellungen und dann Endpunkt-verwaltete Einstellungen überprüft werden, mit Ausnahme der [Ausnahmeschlüssel, die als nächstes behandelt werden](#per-key-exceptions-across-managed-sources). [Wie Claude Code verwaltete Quellen kombiniert](/docs/de/managed-settings#precedence-within-the-managed-tier) enthält die vollständige Rangfolge, die Ausnahme für die Steuerschlüssel und die Opt-in-Option, die für jede Quelle gilt.

155 155 

156Wenn die ausgewählte Quelle eine MDM-Richtlinie oder verwaltete Einstellungsdatei ist, deren [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen liefert, ersetzt die Ausgabe des Helpers diese Quelle als einzige verwaltete Konfiguration für den Lauf. Claude Code konsultiert einen `policyHelper`, der in MDM oder dateigestützten Einstellungen konfiguriert ist, nicht, während serververwaltete Einstellungen einen Richtlinienschlüssel liefern.156Wenn die ausgewählte Quelle eine MDM-Richtlinie oder verwaltete Einstellungsdatei ist, deren [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen bereitstellt, ersetzt die Ausgabe des Helpers diese Quelle als einzige verwaltete Konfiguration für den Lauf. Claude Code konsultiert keinen `policyHelper`, der in MDM- oder dateigestützten Einstellungen konfiguriert ist, während server-verwaltete Einstellungen einen Richtlinienschlüssel bereitstellen.

157 157 

158Wenn ein späterer Abruf feststellt, dass die serververwalteten Einstellungen entfernt wurden, führt Claude Code diesen Helper sofort aus, anstatt beim nächsten Start. Der [`policyHelper`](/docs/de/settings-reference#policyhelper) Eintrag behandelt, was passiert, wenn dieser Lauf fehlschlägt.158Wenn ein späterer Abruf feststellt, dass die server-verwalteten Einstellungen entfernt wurden, führt Claude Code diesen Helper sofort aus, anstatt beim nächsten Start. Der [`policyHelper`](/docs/de/settings-reference#policyhelper)-Eintrag behandelt, was passiert, wenn dieser Lauf fehlschlägt.

159 159 

160Wenn Sie Ihre serververwaltete Konfiguration in der Admin-Konsole mit der Absicht löschen, auf eine endpunktverwaltete plist oder Registrierungsrichtlinie zurückzugreifen, beachten Sie, dass [zwischengespeicherte Einstellungen](#fetch-and-caching-behavior) auf Client-Maschinen bestehen bleiben, bis der nächste erfolgreiche Abruf erfolgt, und die Schlüssel, die [nur beim nächsten Start gelten](#fetch-and-caching-behavior), wie `model`, bleiben wirksam, bis jeder Client neu gestartet wird. Führen Sie `/status` aus, um zu sehen, welche verwaltete Quelle aktiv ist.160Wenn Sie Ihre server-verwaltete Konfiguration in der Admin-Konsole mit der Absicht löschen, auf eine Endpunkt-verwaltete plist- oder Registry-Richtlinie zurückzugreifen, beachten Sie, dass [zwischengespeicherte Einstellungen](#fetch-and-caching-behavior) auf Client-Computern bestehen bleiben, bis der nächste erfolgreiche Abruf erfolgt, und die Schlüssel, die [nur beim nächsten Start gelten](#fetch-and-caching-behavior), wie `model`, bleiben wirksam, bis jeder Client neu gestartet wird. Führen Sie `/status` aus, um zu sehen, welche verwaltete Quelle aktiv ist.

161 161 

162<h3 id="per-key-exceptions-across-managed-sources">162<h3 id="per-key-exceptions-across-managed-sources">

163 Ausnahmen pro Schlüssel über verwaltete Quellen hinweg163 Ausnahmen pro Schlüssel über verwaltete Quellen hinweg

164</h3>164</h3>

165 165 

166Drei Arten von Schlüsseln sind Ausnahmen von der Nicht-Zusammenführungsregel:166Diese Schlüssel sind Ausnahmen zur Nicht-Zusammenführungsregel:

167 167 

168* **Quellübergreifende Sperr-Schlüssel**: ein kleiner Satz von Schlüsseln, wie die Sandbox-Zulassungslisten-Sperren, [aufgelistet auf der Seite für verwaltete Einstellungen](/docs/de/managed-settings#precedence-within-the-managed-tier). Claude Code berücksichtigt sie, wenn eine beliebige administratorgesteuerte verwaltete Quelle sie setzt; die benutzerbare HKCU-Registrierungsebene ist ausgeschlossen.168* **Quellübergreifende Sperreschlüssel**: eine kleine Menge von Schlüsseln, wie die Sandbox-Zulassungslisten-Sperren, [aufgelistet auf der Seite für verwaltete Einstellungen](/docs/de/managed-settings#precedence-within-the-managed-tier). Claude Code berücksichtigt sie, wenn eine beliebige admin-kontrollierte verwaltete Quelle sie setzt; die benutzerbare HKCU-Registry-Ebene ist ausgeschlossen.

169 169 

170 Wenn ein [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen liefert, ist seine Ausgabe die einzige Quelle, die diese Überprüfungen lesen, abgesehen von [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh), das Claude Code beim Start direkt aus den administratorgesteuerten Quellen liest.170 Wenn ein [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen bereitstellt, ist seine Ausgabe die einzige Quelle, die diese Überprüfungen lesen, mit Ausnahme von [`forceRemoteSettingsRefresh`](/docs/de/settings-reference#forceremotesettingsrefresh), das Claude Code beim Start direkt aus den Admin-Quellen liest.

171* **Der `env`-Block**: abgesehen von der Telemetrie-Einheit und Routing-Variablen, die mit einem Anmeldedatenschlüssel gekoppelt sind, beide unten behandelt, wird er pro Schlüssel über die administratorgesteuerten Quellen hinweg zusammengeführt. Für jede Umgebungsvariable gewinnt die höchstpriorisierte Quelle, die sie definiert, und niedrigere administratorgesteuerte Quellen füllen Variablen aus, die die höheren Quellen nicht setzen. Ein endpunktverwalteter `env`-Eintrag gilt daher, wenn die serververwaltete Konfiguration diese Variable nicht setzt, oder während ein zwischengespeicherter Serverwert dafür [zurückgehalten wird, bis der Server ihn bestätigt](#fetch-and-caching-behavior). Erfordert Claude Code v2.1.223 oder später. Vor v2.1.223 wendet Claude Code nur den `env`-Block der ausgewählten Quelle an.171* **Der `env`-Block**: mit Ausnahme der Telemetrie-Einheit und Routing-Variablen, die mit einem Anmeldedatenschlüssel gekoppelt sind, beide unten behandelt, wird er pro Schlüssel über die admin-kontrollierten Quellen hinweg zusammengeführt. Für jede Umgebungsvariable gewinnt die höchstpriorisierte Quelle, die sie definiert, und niedrigere Admin-Quellen füllen Variablen aus, die die höheren Quellen ungesetzt lassen. Ein Endpunkt-verwalteter `env`-Eintrag gilt daher, wenn die server-verwaltete Konfiguration diese Variable ungesetzt lässt, oder während ein zwischengespeicherter Serverwert dafür [ausstehend der Serverbestätigung zurückgehalten wird](#fetch-and-caching-behavior). Erfordert Claude Code v2.1.223 oder später. Vor v2.1.223 wendet Claude Code nur den `env`-Block der ausgewählten Quelle an.

172 * **Telemetrie-Einheit**: die `OTEL_EXPORTER_OTLP_*` Exporter-Schlüssel, die `OTEL_LOG_*` Inhaltserfassungs-Umschalter, `OTEL_LOGS_EXPORTER` und die Beta-Tracing-Variablen `ENABLE_BETA_TRACING_DETAILED` und `BETA_TRACING_ENDPOINT` folgen der höchsten Quelle, die eine von ihnen als Einheit setzt. Eine Quelle, die den `otelHeadersHelper` Anmeldedatenschlüssel liefert, beansprucht die Einheit auch, landet diese Variablen aber nur, wenn sie die ausgewählte Quelle ist: Eine Quelle, die nicht ausgewählt ist, aber den Schlüssel liefert, trägt keine von ihnen bei und blockiert immer noch niedrigere Quellen davon, sie auszufüllen. In jedem Fall kann ein Exporter-Endpunkt von einer Quelle niemals mit Anmeldedaten von einer anderen gekoppelt werden.172 * **Telemetrie-Einheit**: die `OTEL_EXPORTER_OTLP_*`-Exporterschlüssel, die `OTEL_LOG_*`-Inhaltserfassungs-Umschalter, `OTEL_LOGS_EXPORTER` und die Beta-Tracing-Variablen `ENABLE_BETA_TRACING_DETAILED` und `BETA_TRACING_ENDPOINT` folgen der höchsten Quelle, die eine davon als Einheit setzt. Eine Quelle, die den `otelHeadersHelper`-Anmeldedatenschlüssel bereitstellt, beansprucht die Einheit auch, landet diese Variablen aber nur, wenn sie die ausgewählte Quelle ist: eine Quelle, die nicht ausgewählt ist, aber den Schlüssel bereitstellt, trägt keine davon bei und blockiert dennoch niedrigere Quellen davon, sie auszufüllen. In jedem Fall kann ein Exporterendpunkt aus einer Quelle niemals mit Anmeldedaten aus einer anderen gekoppelt werden.

173 * **Anmeldedaten-gekoppeltes Routing**: eine Quelle, die Routing-Variablen mit einem Anmeldedatenschlüssel nur für die ausgewählte Quelle, wie `apiKeyHelper` oder `otelHeadersHelper`, koppelt, trägt diese Routing-Variablen nur bei, wenn sie den Slot gewinnt.173 * **Anmeldedaten-gekoppeltes Routing**: eine Quelle, die Routing-Variablen mit einem nur-ausgewählte-Quelle-Anmeldedatenschlüssel, wie `apiKeyHelper` oder `otelHeadersHelper`, koppelt, trägt diese Routing-Variablen nur bei, wenn sie den Slot gewinnt.

174* **Gateway-Anmeldeschlüssel**: Claude Code liest [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/de/settings-reference#gatewayinternalnetworks) oder den `"gateway"` Wert von [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) niemals aus serververwalteten Einstellungen, daher liefert ein Wert dort weder eine Gateway-Anmeldung noch verbirgt eine in einer MDM-Richtlinie oder verwalteten Einstellungsdatei gesetzte. Der [`managedSourcesBehavior` Eintrag](/docs/de/settings-reference#managedsourcesbehavior) sagt, welche administratorgesteuerte Quelle auf der Maschine sie liefert.174* **`allowedProviders`**: eine auf dem Computer gesetzte Liste und eine server-verwaltete Liste kombinieren sich wie [der Scope-Hinweis des Eintrags](/docs/de/settings-reference#allowedproviders) besagt. Erfordert Claude Code v2.1.285 oder später

175* **Gateway-Anmeldeschlüssel**: Claude Code liest [`forceLoginGatewayUrl`](/docs/de/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/de/settings-reference#gatewayinternalnetworks) oder den `"gateway"`-Wert von [`forceLoginMethod`](/docs/de/settings-reference#forceloginmethod) niemals aus server-verwalteten Einstellungen, daher gilt ein Wert dort weder noch verbirgt er einen in einer MDM-Richtlinie oder verwalteten Einstellungsdatei gesetzten Wert. Der [`managedSourcesBehavior`-Eintrag](/docs/de/settings-reference#managedsourcesbehavior) sagt, welche Admin-Quelle auf dem Computer sie bereitstellt.

175 176 

176<h3 id="fetch-and-caching-behavior">177<h3 id="fetch-and-caching-behavior">

177 Abruf- und Caching-Verhalten178 Abruf- und Zwischenspeicherungsverhalten

178</h3>179</h3>

179 180 

180Claude Code ruft Einstellungen beim Start von Anthropics Servern ab und fragt stündlich während aktiver Sitzungen nach Updates ab.181Claude Code ruft Einstellungen beim Start von Anthropic-Servern ab und fragt während aktiver Sitzungen stündlich nach Updates ab.

181 182 

182Ein Client, der sich über ein [Claude-Apps-Gateway](#platform-availability) angemeldet hat, ruft seine Einstellungen vom Gateway ab und wartet auf diesen Abruf, bevor die Sitzung beginnt, daher gilt der Abruf in den folgenden Listen nicht dafür. [Erzwingen Sie einen Fail-Closed-Start](#enforce-fail-closed-startup) behandelt, was passiert, wenn dieser Abruf fehlschlägt.183Ein Client, der sich über ein [Claude-Apps-Gateway](#platform-availability) anmeldet, ruft seine Einstellungen vom Gateway ab und wartet auf diesen Abruf, bevor die Sitzung startet, daher gilt der Abruf in den folgenden Listen nicht dafür. [Erzwinge Fail-Closed-Start](#enforce-fail-closed-startup) behandelt, was passiert, wenn dieser Abruf fehlschlägt.

183 184 

184**Erster Start ohne zwischengespeicherte Einstellungen:**185**Erster Start ohne zwischengespeicherte Einstellungen:**

185 186 

186* Wenn sich ein Entwickler beim Start anmeldet, z. B. beim ersten Lauf oder nach `/logout`, wartet Claude Code bis zu fünf Sekunden auf den Abruf, bevor die Sitzung geöffnet wird. Wenn die Richtlinie rechtzeitig ankommt, erzwingt Claude Code sie vom ersten Bildschirm an und zeigt Ihre [`companyAnnouncements`](/docs/de/settings-reference#companyannouncements) darauf an. Wenn die Payload [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, beendet Claude Code das Warten und wendet die Payload an, sobald der Entwickler sie genehmigt187* Wenn sich ein Entwickler beim Start anmeldet, z. B. beim ersten Lauf oder nach `/logout`, wartet Claude Code bis zu fünf Sekunden auf den Abruf, bevor die Sitzung geöffnet wird. Wenn die Richtlinie rechtzeitig ankommt, erzwingt Claude Code sie vom ersten Bildschirm an und zeigt Ihre [`companyAnnouncements`](/docs/de/settings-reference#companyannouncements) darauf an. Wenn die Nutzlast [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, beendet Claude Code das Warten und wendet die Nutzlast an, sobald der Entwickler sie genehmigt

187* Bei jedem anderen Start und wenn diese fünf-Sekunden-Wartezeit abläuft, öffnet Claude Code die Sitzung, während der Abruf fortgesetzt wird, sodass ein kurzes Fenster verstreicht, bevor die Einstellungen geladen werden und die Einschränkungen wirksam werden188* Bei jedem anderen Start und wenn das fünf-Sekunden-Warten abläuft, öffnet Claude Code die Sitzung, während der Abruf fortgesetzt wird, daher vergeht ein kurzes Fenster, bevor die Einstellungen geladen werden und die Einschränkungen wirksam werden

188* Wenn der Abruf fehlschlägt, wird Claude Code ohne serververwaltete Einstellungen fortgesetzt und warnt in interaktiven Sitzungen, dass keine Remote-Richtlinie gilt; endpunktverwaltete Einstellungen gelten immer noch. Wenn eine verwaltete Quelle [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) setzt, wird Claude Code stattdessen beendet189* Wenn der Abruf fehlschlägt, wird Claude Code ohne server-verwaltete Einstellungen fortgesetzt und warnt in interaktiven Sitzungen, dass keine Remote-Richtlinie gilt; Endpunkt-verwaltete Einstellungen gelten weiterhin. Wenn eine verwaltete Quelle [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) setzt, beendet Claude Code stattdessen

189 190 

190**Nachfolgende Starts mit zwischengespeicherten Einstellungen:**191**Nachfolgende Starts mit zwischengespeicherten Einstellungen:**

191 192 

192* Zwischengespeicherte Einstellungen werden beim Start sofort angewendet, außer für die zwischengespeicherten `modelPricing` und `managedMcpServers` Werte und die Umgebungsvariablen, die Claude Code zurückhält, bis der Server die Payload bestätigt193* Zwischengespeicherte Einstellungen gelten sofort beim Start, mit Ausnahme der zwischengespeicherten `modelPricing`- und `managedMcpServers`-Werte und der Umgebungsvariablen, die Claude Code zurückhält, bis der Server die Nutzlast bestätigt

193* Ein zwischengespeichertes [`modelPricing`](/docs/de/settings-reference#modelpricing) wird nicht angewendet, bis der Abruf der Sitzung die Payload bestätigt. Bis dahin sind die Kostenzahlen, die Entwickler in `/usage` und in der Statuszeile sehen, zum Listenpreis194* Ein zwischengespeichertes [`modelPricing`](/docs/de/settings-reference#modelpricing) gilt nicht, bis der Abruf der Sitzung die Nutzlast bestätigt. Bis dahin sind die Kostenzahlen, die Entwickler in `/usage` und in der Statuszeile sehen, zum Listenpreis

194* Ein zwischengespeicherter [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers) Block wird nicht angewendet, bis der Abruf der Sitzung die Payload bestätigt. Claude Code wartet bis zu 30 Sekunden auf diesen Abruf, bevor MCP-Server verbunden werden. Wenn der Abruf fehlschlägt oder das Zeitlimit überschritten wird, startet die Sitzung ohne die Server der Organisation, `/status` sagt dies, und sie verbinden sich, sobald ein späterer Abruf sie bestätigt. Siehe [Wenn bereitgestellte Server verbunden werden](/docs/de/managed-mcp#when-provided-servers-connect) für das vollständige Verhalten, einschließlich des ersten Starts. Erfordert Claude Code v2.1.259 oder später195* Ein zwischengespeicherter [`managedMcpServers`](/docs/de/settings-reference#managedmcpservers)-Block gilt nicht, bis der Abruf der Sitzung die Nutzlast bestätigt. Claude Code wartet bis zu 30 Sekunden auf diesen Abruf, bevor MCP-Server verbunden werden. Wenn der Abruf fehlschlägt oder das Zeitlimit überschritten wird, startet die Sitzung ohne die Server der Organisation, `/status` sagt dies, und sie verbinden sich, sobald ein späterer Abruf sie bestätigt. Siehe [Wenn bereitgestellte Server verbunden werden](/docs/de/managed-mcp#when-provided-servers-connect) für das vollständige Verhalten, einschließlich des ersten Starts. Erfordert Claude Code v2.1.259 oder später

195* Claude Code ruft frische Einstellungen im Hintergrund ab196* Claude Code ruft frische Einstellungen im Hintergrund ab

196* Zwischengespeicherte Einstellungen bleiben bei Netzwerkfehlern erhalten. Wenn der Startup-Abruf fehlschlägt, warnt Claude Code in interaktiven Sitzungen, dass die zwischengespeicherte Richtlinie wirksam ist197* Zwischengespeicherte Einstellungen bleiben durch Netzwerkfehler bestehen. Wenn der Start-Abruf fehlschlägt, warnt Claude Code in interaktiven Sitzungen, dass die zwischengespeicherte Richtlinie wirksam ist

197* Bis ein Abruf erfolgreich ist, bleiben die beim Start zurückgehaltenen Werte zurückgehalten198* Bis ein Abruf erfolgreich ist, bleiben die beim Start zurückgehaltenen Werte zurückgehalten

198 199 

199Claude Code hält mehrere Kategorien von Variablen im zwischengespeicherten `env`-Block zurück, bis der Server die Payload für die Sitzung bestätigt. Dies verhindert, dass ein zwischengespeicherter Proxy-, Zertifizierungsstellen-, Endpunkt- oder Anmeldedatenwert den Einstellungsabruf umleitet, abfängt oder erneut authentifiziert, der die Payload bestätigt. Die Härtung gilt nur für den vom Server abgerufenen Einstellungs-Cache: [endpunktverwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms), die über MDM oder `managed-settings.json` bereitgestellt werden, sind nicht betroffen. Das Zurückhalten erfordert Claude Code v2.1.198 oder später; vor v2.1.198 wird der gesamte zwischengespeicherte `env`-Block beim Start angewendet. Die zurückhaltenden Kategorien umfassen:200Claude Code hält mehrere Kategorien von Variablen im zwischengespeicherten `env`-Block zurück, bis der Server die Nutzlast für die Sitzung bestätigt. Dies verhindert, dass ein zwischengespeicherter Proxy-, Zertifizierungsstellen-, Endpunkt- oder Anmeldedatenwert den Abruf der Einstellungen, der die Nutzlast bestätigt, umleitet, abfängt oder erneut authentifiziert. Die Härtung gilt nur für den vom Server abgerufenen Einstellungs-Cache: [Endpunkt-verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms), die über MDM oder `managed-settings.json` bereitgestellt werden, sind nicht betroffen. Das Zurückhalten erfordert Claude Code v2.1.198 oder später; vor v2.1.198 gilt der gesamte zwischengespeicherte `env`-Block beim Start. Die zurückgehaltenen Kategorien umfassen:

200 201 

201* Proxy- und TLS-Konfiguration, wie `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` und die mTLS-Client-Zertifikatvariablen `CLAUDE_CODE_CLIENT_CERT` und `CLAUDE_CODE_CLIENT_KEY`202* Proxy- und TLS-Konfiguration, wie `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` und die mTLS-Client-Zertifikatvariablen `CLAUDE_CODE_CLIENT_CERT` und `CLAUDE_CODE_CLIENT_KEY`

202* API-Routing und Anbieterauswahl, einschließlich `ANTHROPIC_BASE_URL`, der Anbieterauswahlvariablen wie `CLAUDE_CODE_USE_BEDROCK` und `CLAUDE_CODE_USE_VERTEX` und der Anbieter-Endpunkt-URLs wie `ANTHROPIC_BEDROCK_BASE_URL`203* API-Routing und Anbieterauswahl, einschließlich `ANTHROPIC_BASE_URL`, der Anbieterauswahlvariablen wie `CLAUDE_CODE_USE_BEDROCK` und `CLAUDE_CODE_USE_VERTEX` und der Anbieter-Endpunkt-URLs wie `ANTHROPIC_BEDROCK_BASE_URL`


204* Der Konfigurationsverzeichnis-Selektor `CLAUDE_CONFIG_DIR`205* Der Konfigurationsverzeichnis-Selektor `CLAUDE_CONFIG_DIR`

205* Anmeldedaten-Quellen- und Konfigurationsverzeichnis-Selektoren, in Claude Code v2.1.223 oder später: die Workload Identity Federation-Variablen wie `ANTHROPIC_FEDERATION_RULE_ID` und `ANTHROPIC_IDENTITY_TOKEN`, die Profil- und Konfigurationsverzeichnis-Selektoren `ANTHROPIC_PROFILE` und `ANTHROPIC_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen `HOME`, `XDG_CONFIG_HOME`, `APPDATA` und `USERPROFILE`206* Anmeldedaten-Quellen- und Konfigurationsverzeichnis-Selektoren, in Claude Code v2.1.223 oder später: die Workload Identity Federation-Variablen wie `ANTHROPIC_FEDERATION_RULE_ID` und `ANTHROPIC_IDENTITY_TOKEN`, die Profil- und Konfigurationsverzeichnis-Selektoren `ANTHROPIC_PROFILE` und `ANTHROPIC_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen `HOME`, `XDG_CONFIG_HOME`, `APPDATA` und `USERPROFILE`

206 207 

207Claude Code liest die Workload Identity Federation-Variablen und die `ANTHROPIC_PROFILE` und `ANTHROPIC_CONFIG_DIR` Selektoren nur beim Start, daher wechselt ein vom Server bereitgestellter Wert dafür die Anmeldedatenquelle der Sitzung nicht, auch nachdem der Abruf erfolgreich ist. Um diese Selektoren auf Claude Code v2.1.223 oder später bereitzustellen, verwenden Sie [endpunktverwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) wie MDM oder `managed-settings.json`. Für `CLAUDE_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen ist das Zurückhalten selbst der Schutz: Der zwischengespeicherte Wert bleibt aus der Umgebung, bis der Server die Payload bestätigt.208Claude Code liest die Workload Identity Federation-Variablen und die `ANTHROPIC_PROFILE`- und `ANTHROPIC_CONFIG_DIR`-Selektoren nur beim Start, daher wechselt ein vom Server bereitgestellter Wert dafür nicht die Anmeldedatenquelle der Sitzung, auch nachdem der Abruf erfolgreich ist. Um diese Selektoren auf Claude Code v2.1.223 oder später bereitzustellen, verwenden Sie [Endpunkt-verwaltete Einstellungen](/docs/de/managed-settings#delivery-mechanisms) wie MDM oder `managed-settings.json`. Für `CLAUDE_CONFIG_DIR` und die Betriebssystem-Verzeichnisvariablen ist das Zurückhalten selbst der Schutz: der zwischengespeicherte Wert bleibt aus der Umgebung, bis der Server die Nutzlast bestätigt.

208 209 

209Jeder andere Schlüssel im zwischengespeicherten `env`-Block wird beim Start angewendet. Sobald der Server die Payload bestätigt und Sie sie genehmigen, wenn sie [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, werden die zurückgehaltenen Variablen für den Rest der Sitzung angewendet.210Jeder andere Schlüssel im zwischengespeicherten `env`-Block gilt beim Start. Sobald der Server die Nutzlast bestätigt und Sie sie genehmigen, wenn sie [Sicherheitsgenehmigung](#security-approval-dialogs) benötigt, gelten die zurückgehaltenen Variablen für den Rest der Sitzung.

210 211 

211Wenn Ihre Organisation einen Proxy benötigt, um `api.anthropic.com` zu erreichen, betrifft das Zurückhalten nur den vom Server bereitgestellten `env`-Block selbst: Ein Proxy, der in einem [endpunktverwalteten](/docs/de/managed-settings#delivery-mechanisms) `env`-Block über MDM oder `managed-settings.json`, in der Shell-Umgebung oder in [Benutzereinstellungen](/docs/de/settings#where-settings-live) gesetzt ist, erreicht den Einstellungsabruf. Die endpunktverwaltete Quelle erfordert Claude Code v2.1.223 oder später: Der zwischengespeicherte serververwaltete Proxy-Wert wird zurückgehalten, bis der Abruf ihn bestätigt, daher füllt der endpunktverwaltete Wert pro Schlüssel aus und erreicht den Abruf selbst. Vor v2.1.223 verwenden Sie die Shell-Umgebung oder Benutzereinstellungen, damit der Proxy neben einer zwischengespeicherten Server-Payload gilt. Der erste Start hat keinen Cache, daher ist eine endpunktverwaltete Quelle, die Shell-Umgebung oder Benutzereinstellungen immer noch für den anfänglichen Abruf erforderlich.212Wenn Ihre Organisation einen Proxy benötigt, um `api.anthropic.com` zu erreichen, betrifft das Zurückhalten nur den vom Server bereitgestellten `env`-Block selbst: ein Proxy, der in einem [Endpunkt-verwalteten](/docs/de/managed-settings#delivery-mechanisms) `env`-Block über MDM oder `managed-settings.json`, in der Shell-Umgebung oder in [Benutzereinstellungen](/docs/de/settings#where-settings-live) gesetzt ist, erreicht den Abruf der Einstellungen. Die Endpunkt-verwaltete Quelle erfordert Claude Code v2.1.223 oder später: der zwischengespeicherte server-verwaltete Proxy-Wert wird zurückgehalten, bis der Abruf ihn bestätigt, daher füllt der Endpunkt-verwaltete Wert pro Schlüssel aus und erreicht den Abruf selbst. Vor v2.1.223 verwenden Sie die Shell-Umgebung oder Benutzereinstellungen, damit der Proxy neben einer zwischengespeicherten Server-Nutzlast gilt. Der erste Start hat keinen Cache, daher ist eine Endpunkt-verwaltete Quelle, die Shell-Umgebung oder Benutzereinstellungen immer noch für den ersten Abruf erforderlich.

212 213 

213Claude Code wendet die meisten Einstellungsaktualisierungen auf laufende Sitzungen ohne Neustart an. Einige Aktualisierungen gelten nur beim nächsten Start, einschließlich OpenTelemetry-Exporter-Konfiguration, des `model`-Schlüssels und der Entfernung einer Variablen aus dem `env`-Block.214Claude Code wendet die meisten Einstellungsaktualisierungen auf laufende Sitzungen ohne Neustart an. Einige Aktualisierungen gelten nur beim nächsten Start, einschließlich OpenTelemetry-Exporter-Konfiguration, des `model`-Schlüssels und der Entfernung einer Variablen aus dem `env`-Block.

214 215 


216 Ungültige Einträge in bereitgestellten Einstellungen217 Ungültige Einträge in bereitgestellten Einstellungen

217</h3>218</h3>

218 219 

219Wenn ein Teil einer Payload die Schemavalidierung nicht besteht, zeigt Claude Code einen Validierungsfehler an und wendet jede verbleibende gültige Einstellung an; [Ungültige Einträge in verwalteten Einstellungen](/docs/de/managed-settings#invalid-entries-in-managed-settings) sagt, was es entfernt und welche Schlüssel auf einen strengeren Wert zurückfallen. Erfordert Claude Code v2.1.169 oder später.220Wenn ein Teil einer Nutzlast die Schemavalidierung nicht besteht, zeigt Claude Code einen Validierungsfehler an und wendet jede verbleibende gültige Einstellung an; [Ungültige Einträge in verwalteten Einstellungen](/docs/de/managed-settings#invalid-entries-in-managed-settings) sagt, was es ablegt und welche Schlüssel auf einen strengeren Wert zurückfallen. Erfordert Claude Code v2.1.169 oder später.

220 221 

221Die serververwaltete Bereitstellung fügt diese Verhaltensweisen hinzu:222Die server-verwaltete Bereitstellung fügt diese Verhaltensweisen hinzu:

222 223 

223* Ein Start, der auf dem Cache unter `~/.claude/remote-settings.json` läuft, behandelt ungültige Einträge so, wie der Abruf, der den Cache geschrieben hat:224* Ein Start, der auf dem Cache unter `~/.claude/remote-settings.json` läuft, behandelt ungültige Einträge so, wie der Abruf, der den Cache schrieb, es tat:

224 * Einträge, die die Validierung nicht bestanden haben, bleiben entfernt.225 * Einträge, die die Validierung nicht bestanden haben, bleiben abgelegt.

225 * [Schlüssel, die fehlgeschlossen sind](/docs/de/managed-settings#keys-that-fail-closed), behalten ihre strengeren Werte.226 * [Schlüssel, die fehlgeschlossen sind](/docs/de/managed-settings#keys-that-fail-closed), behalten ihre strengeren Werte.

226 * Ein ungültiger `cleanupPeriodDays` oder `desktopSessionCleanupPeriodDays` Wert bleibt in der zwischengespeicherten Kopie und wird niemals angewendet.227 * Ein ungültiger `cleanupPeriodDays`- oder `desktopSessionCleanupPeriodDays`-Wert bleibt in der zwischengespeicherten Kopie und wird nie angewendet.

227* Claude Code wendet nichts aus einer Payload an und lässt den Cache unverändert, wenn alle drei dieser Bedingungen erfüllt sind:228* Claude Code wendet nichts aus einer Nutzlast an und lässt den Cache unverändert, wenn alle drei dieser Bedingungen erfüllt sind:

228 229 

229 * Jede Einstellung in der Payload schlägt die Validierung fehl.230 * Jede Einstellung in der Nutzlast schlägt die Validierung fehl.

230 * Keine von ihnen fällt auf einen strengeren Wert zurück.231 * Keine davon fällt auf einen strengeren Wert zurück.

231 * Die Payload enthält einen Schlüssel außer diesen beiden Aufbewahrungsschlüsseln.232 * Die Nutzlast enthält einen Schlüssel außer diesen zwei Aufbewahrungsschlüsseln.

232 233 

233 Die Startup-Benachrichtigung, `/status` und `claude doctor` melden dann den [fehlgeschlagenen Ladevorgang](/docs/de/errors#remote-managed-settings-failed-to-load) mit der Ursache `no setting in the server response could be applied as written`, und dieser Eintrag sagt, welche Richtlinie die Sitzung ausführt. Clients, die [Fail-Closed-Start erzwingen](#enforce-fail-closed-startup), werden stattdessen beim Start beendet.234 Der Start-Hinweis, `/status` und `claude doctor` melden dann das [fehlgeschlagene Laden](/docs/de/errors#remote-managed-settings-failed-to-load) mit der Ursache `no setting in the server response could be applied as written`, und dieser Eintrag sagt, welche Richtlinie die Sitzung ausführt. Clients, die [Fail-Closed-Start erzwingen](#enforce-fail-closed-startup), beenden stattdessen beim Start.

234* Der [Sicherheitsgenehmigungsdialog](#security-approval-dialogs) bewertet die gerettete Payload, daher wird ein entfernter ungültiger Eintrag niemals zur Genehmigung präsentiert und niemals ausgeführt.235* Der [Sicherheitsgenehmigungsdialog](#security-approval-dialogs) bewertet die gerettete Nutzlast, daher wird ein entfernter ungültiger Eintrag nie zur Genehmigung präsentiert und wird nie ausgeführt.

235 236 

236Um Bereitstellungsprobleme zu debuggen, führen Sie `claude --debug-file <path>` aus und suchen Sie im Protokoll nach `Remote settings`. Validieren Sie eine Payload-Änderung mit `claude doctor` auf einem Test-Computer, bevor Sie sie in der Organisation bereitstellen.237Um Bereitstellungsprobleme zu debuggen, führen Sie `claude --debug-file <path>` aus und suchen Sie im Protokoll nach `Remote settings`. Validieren Sie eine Nutzlaständerung mit `claude doctor` auf einem Test-Computer, bevor Sie sie in der Organisation bereitstellen.

237 238 

238<h3 id="enforce-fail-closed-startup">239<h3 id="enforce-fail-closed-startup">

239 Erzwingen Sie einen Fail-Closed-Start240 Erzwinge Fail-Closed-Start

240</h3>241</h3>

241 242 

242Standardmäßig wird die CLI, wenn der Abruf der Remote-Einstellungen beim Start fehlschlägt, mit den beim letzten erfolgreichen Abruf zwischengespeicherten Einstellungen fortgesetzt, außer für die [Werte, die Claude Code zurückhält](#fetch-and-caching-behavior), bis ein Abruf gelingt. Auf einer Maschine, die sie noch nie abgerufen hat, wird die CLI ohne serververwaltete Einstellungen fortgesetzt und wendet immer noch alle [endpunktverwalteten Einstellungen](/docs/de/managed-settings#delivery-mechanisms) auf dem Gerät an.243Standardmäßig wird die CLI, wenn der Abruf der Remote-Einstellungen beim Start fehlschlägt, mit den Einstellungen fortgesetzt, die aus dem letzten erfolgreichen Abruf zwischengespeichert wurden, mit Ausnahme der [Werte, die Claude Code zurückhält](#fetch-and-caching-behavior), bis ein Abruf erfolgreich ist. Auf einem Computer, der sie noch nie abgerufen hat, wird die CLI ohne server-verwaltete Einstellungen fortgesetzt und wendet weiterhin alle [Endpunkt-verwalteten Einstellungen](/docs/de/managed-settings#delivery-mechanisms) auf dem Gerät an.

243 244 

244Um Clients daran zu hindern, mit zwischengespeicherten oder fehlenden serververwalteten Einstellungen zu starten, setzen Sie `forceRemoteSettingsRefresh: true` in Ihren verwalteten Einstellungen.245Um zu verhindern, dass Clients auf zwischengespeicherten oder fehlenden server-verwalteten Einstellungen starten, setzen Sie `forceRemoteSettingsRefresh: true` in Ihren verwalteten Einstellungen.

245 246 

246Clients, die sich über ein [Claude-Apps-Gateway](#platform-availability) angemeldet haben, warten auf den Startup-Abruf, unabhängig davon, ob Sie diese Einstellung setzen oder nicht, und handhaben einen fehlgeschlagenen Abruf wie folgt:247Clients, die sich über ein [Claude-Apps-Gateway](#platform-availability) anmelden, warten auf den Start-Abruf, unabhängig davon, ob Sie diese Einstellung setzen oder nicht, und handhaben einen fehlgeschlagenen Abruf wie folgt:

247 248 

248* Wenn das Gateway einen beaufsichtigten interaktiven Start mit einem `401` beantwortet und diese Einstellung deaktiviert ist, hat das Gateway diese Anmeldung beendet. Claude Code druckt [`Cloud gateway session expired — run /login to reconnect.`](/docs/de/errors#cloud-gateway-session-expired) und öffnet die Sitzung vom Gateway abgemeldet, bis der Benutzer `/login` ausführt.249* Wenn das Gateway einen besuchten interaktiven Start mit einem `401` beantwortet und diese Einstellung ist aus, hat das Gateway diese Anmeldung beendet. Claude Code druckt [`Cloud gateway session expired — run /login to reconnect.`](/docs/de/errors#cloud-gateway-session-expired) und öffnet die Sitzung abgemeldet vom Gateway, bis der Benutzer `/login` ausführt.

249* Wenn der Abruf auf andere Weise fehlschlägt, oder bei jeder anderen Art von Start außer einem `claude auth` Unterbefehl, wird der Client mit einem Fehler beendet.250* Wenn der Abruf auf andere Weise fehlschlägt oder in jeder anderen Art von Start außer einem `claude auth`-Unterbefehl, beendet der Client mit einem Fehler.

250 251 

251Wenn diese Einstellung in einer Sitzung aktiv ist, die serververwaltete Einstellungen abruft, blockiert die CLI beim Start, bis Remote-Einstellungen neu abgerufen werden. Wenn der Abruf fehlschlägt, wird die CLI beendet, anstatt ohne die Richtlinie fortzufahren. Diese Einstellung perpetuiert sich selbst: Sobald sie vom Server bereitgestellt wird, wird sie auch lokal zwischengespeichert, sodass nachfolgende Starts das gleiche Verhalten erzwingen, auch bevor der erste erfolgreiche Abruf einer neuen Sitzung erfolgt. Eine Sitzung, die [serververwaltete Einstellungen nicht abruft](#platform-availability), startet ohne zu warten.252Wenn diese Einstellung in einer Sitzung aktiv ist, die server-verwaltete Einstellungen abruft, blockiert die CLI beim Start, bis Remote-Einstellungen frisch abgerufen werden. Wenn der Abruf fehlschlägt, beendet die CLI, anstatt ohne die Richtlinie fortzufahren. Diese Einstellung perpetuiert sich selbst: Sobald sie vom Server bereitgestellt wird, wird sie auch lokal zwischengespeichert, damit nachfolgende Starts das gleiche Verhalten erzwingen, auch bevor der erste erfolgreiche Abruf einer neuen Sitzung erfolgt. Eine Sitzung, die [keine server-verwalteten Einstellungen abruft](#platform-availability), startet ohne zu warten.

252 253 

253Um dies zu aktivieren, fügen Sie den Schlüssel zu Ihrer verwalteten Einstellungskonfiguration hinzu:254Um dies zu aktivieren, fügen Sie den Schlüssel zu Ihrer verwalteten Einstellungskonfiguration hinzu:

254 255 


258}259}

259```260```

260 261 

261Sie können diesen Schlüssel auch in einem [endpunktverwalteten](/docs/de/managed-settings#delivery-mechanisms) MDM-Profil oder einer System-Datei `managed-settings.json` setzen, um Fail-Closed-Verhalten beim ersten Start durchzusetzen, bevor eine Server-Payload bereitgestellt wurde. Dieses Flag ist eine Ausnahme von der [Prioritätsregel](#settings-precedence) oben: Claude Code berücksichtigt es, wenn es in einer beliebigen administratorgesteuerten verwalteten Quelle gesetzt ist, auch wenn eine zwischengespeicherte serververwaltete Payload vorhanden ist, daher wird ein MDM-bereitgestellter Wert nicht ignoriert, wenn serververwaltete Einstellungen vorhanden sind.262Sie können diesen Schlüssel auch in einem [Endpunkt-verwalteten](/docs/de/managed-settings#delivery-mechanisms) MDM-Profil oder einer System-`managed-settings.json`-Datei setzen, um Fail-Closed-Verhalten beim ersten Start durchzusetzen, bevor eine Server-Nutzlast ankommt. Dieses Flag ist eine Ausnahme zur [Prioritätsregel](#settings-precedence) oben: Claude Code berücksichtigt es, wenn eine beliebige admin-kontrollierte verwaltete Quelle es setzt, auch wenn eine zwischengespeicherte server-verwaltete Nutzlast ebenfalls vorhanden ist, daher ignoriert es keinen MDM-bereitgestellten Wert, wenn server-verwaltete Einstellungen vorhanden sind.

262 263 

263Wenn ein [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen liefert, ersetzt seine Ausgabe jede andere verwaltete Quelle für die Schlüssel, die Claude Code nach dem Start liest. Für die Quellen, aus denen Claude Code diesen Schlüssel liest, siehe [seinen Einstellungseintrag](/docs/de/settings-reference#forceremotesettingsrefresh). Der `policyHelper` Eintrag sagt, welche Quellen Claude Code den Helper aus liest und wann er ausgeführt wird.264Wenn ein [`policyHelper`](/docs/de/settings-reference#policyhelper) verwaltete Einstellungen bereitstellt, ersetzt seine Ausgabe jede andere verwaltete Quelle für die Schlüssel, die Claude Code nach dem Start liest. Für die Quellen, aus denen Claude Code diesen Schlüssel liest, siehe [seinen Einstellungseintrag](/docs/de/settings-reference#forceremotesettingsrefresh). Der `policyHelper`-Eintrag sagt, welche Quellen Claude Code den Helper liest und wann er läuft.

264 265 

265Der Einstellungsabruf sendet auch einen `Cache-Control: no-cache` Header, sodass zwischengeschaltete HTTP-Proxys keine veraltete Antwort bereitstellen.266Der Abruf der Einstellungen sendet auch einen `Cache-Control: no-cache`-Header, damit Zwischenproxys keine veraltete Antwort bereitstellen.

266 267 

267Bevor Sie diese Einstellung aktivieren, stellen Sie sicher, dass Ihre Netzwerkrichtlinien die Konnektivität zu `api.anthropic.com` ermöglichen. Wenn dieser Endpunkt nicht erreichbar ist, wird die CLI beim Start beendet und Benutzer können Claude Code nicht starten.268Bevor Sie diese Einstellung aktivieren, stellen Sie sicher, dass Ihre Netzwerkrichtlinien die Konnektivität zu `api.anthropic.com` ermöglichen. Wenn dieser Endpunkt nicht erreichbar ist, beendet die CLI beim Start und Benutzer können Claude Code nicht starten.

268 269 

269Die `claude auth` Unterbefehle wie `claude auth login` sind von dieser Überprüfung und vom Gateway-Startup-Exit ausgenommen, daher können Benutzer sich erneut authentifizieren, wenn abgelaufene Anmeldedaten der Grund für den fehlgeschlagenen Einstellungsabruf sind.270Die `claude auth`-Unterbefehle wie `claude auth login` sind von dieser Überprüfung und vom Gateway-Start-Exit ausgenommen, daher können Benutzer sich erneut authentifizieren, wenn abgelaufene Anmeldedaten der Grund sind, warum der Abruf der Einstellungen fehlschlägt.

270 271 

271<h3 id="security-approval-dialogs">272<h3 id="security-approval-dialogs">

272 Sicherheitsgenehmigungsdialoge273 Sicherheitsgenehmigungsdialoge

273</h3>274</h3>

274 275 

275Bestimmte Einstellungen, die Sicherheitsrisiken darstellen könnten, erfordern explizite Benutzergenehmigung, bevor Claude Code sie in einer interaktiven Sitzung anwendet:276Bestimmte Einstellungen, die Sicherheitsrisiken darstellen könnten, erfordern explizite Benutzerbestätigung, bevor Claude Code sie in einer interaktiven Sitzung anwendet:

276 277 

277* **Shell-Befehlseinstellungen**: Einstellungen, die Shell-Befehle ausführen, wie `apiKeyHelper`, `statusLine` und `otelHeadersHelper`278* **Shell-Befehls-Einstellungen**: Einstellungen, die Shell-Befehle ausführen, wie `apiKeyHelper`, `statusLine` und `otelHeadersHelper`

278* **Sandbox-Binär-Einstellungen**: `sandbox.bwrapPath`, `sandbox.socatPath` und `sandbox.ripgrep`. Jede dieser Einstellungen verweist auf eine ausführbare Datei, und Claude Code führt diese ausführbare Datei aus279* **Sandbox-Binär-Einstellungen**: `sandbox.bwrapPath`, `sandbox.socatPath` und `sandbox.ripgrep`. Jede dieser Einstellungen verweist auf eine ausführbare Datei, und Claude Code führt diese ausführbare Datei aus

279* **Sandbox-Netzwerk- und Isolationseinstellungen**: [Sandbox](/docs/de/sandboxing) Einstellungen, die dem Sandbox-Proxy ermöglichen, Datenverkehr zu lesen, umzuleiten oder zu authentifizieren, oder die die Isolation der Sandbox schwächen: `sandbox.network.tlsTerminate`, `sandbox.network.httpProxyPort`, `sandbox.network.socksProxyPort`, `sandbox.credentials`, `sandbox.allowAppleEvents`, `sandbox.enableWeakerNestedSandbox`, `sandbox.enableWeakerNetworkIsolation`, `sandbox.filesystem.disabled`, `sandbox.network.allowAllUnixSockets`, `sandbox.network.allowUnixSockets` und `sandbox.network.allowMachLookup`. Ein `sandbox.credentials` Block, der nur `deny` Regeln enthält, benötigt keine Genehmigung, da er die Sandbox einschränkt, ohne dem Proxy Anmeldedaten zu geben. Vor v2.1.251 wendete Claude Code diese Einstellungen ohne Genehmigung an280* **Sandbox-Netzwerk- und Isolationseinstellungen**: [Sandbox](/docs/de/sandboxing)-Einstellungen, die der Sandbox ermöglichen, Datenverkehr zu lesen, umzuleiten oder zu authentifizieren, oder die die Isolation der Sandbox schwächen: `sandbox.network.tlsTerminate`, `sandbox.network.httpProxyPort`, `sandbox.network.socksProxyPort`, `sandbox.credentials`, `sandbox.allowAppleEvents`, `sandbox.enableWeakerNestedSandbox`, `sandbox.enableWeakerNetworkIsolation`, `sandbox.filesystem.disabled`, `sandbox.network.allowAllUnixSockets`, `sandbox.network.allowUnixSockets` und `sandbox.network.allowMachLookup`. Ein `sandbox.credentials`-Block, der nur `deny`-Regeln enthält, benötigt keine Genehmigung, da er die Sandbox einschränkt, ohne dem Proxy Anmeldedaten zu geben. Vor v2.1.251 wendete Claude Code diese Einstellungen ohne Genehmigung an

280* **Benutzerdefinierte Umgebungsvariablen**: bereitgestellte `env` Variablen, die die Genehmigung des Benutzers erfordern, wie Proxy- und Base-URL-Variablen; siehe [Umgebungsvariablen und der Genehmigungsdialog](#environment-variables-and-the-approval-dialog)281* **Benutzerdefinierte Umgebungsvariablen**: bereitgestellte `env`-Variablen, die die Genehmigung des Benutzers erfordern, wie Proxy- und Basis-URL-Variablen; siehe [Umgebungsvariablen und der Genehmigungsdialog](#environment-variables-and-the-approval-dialog)

281* **Hook-Konfigurationen**: jede Hook-Definition282* **Hook-Konfigurationen**: jede Hook-Definition

282 283 

283Wenn diese Einstellungen vorhanden sind, sehen Benutzer einen Sicherheitsdialog, der erklärt, was konfiguriert wird. Benutzer müssen genehmigen, um fortzufahren. Wenn ein Benutzer die Einstellungen ablehnt, wird Claude Code beendet.284Wenn diese Einstellungen vorhanden sind, sehen Benutzer einen Sicherheitsdialog, der erklärt, was konfiguriert wird. Benutzer müssen genehmigen, um fortzufahren. Wenn ein Benutzer die Einstellungen ablehnt, beendet Claude Code.

284 285 

285Ein verwalteter CLAUDE.md, der durch den [`claudeMd`](/docs/de/settings-reference#claudemd) Schlüssel bereitgestellt wird, benötigt keine Genehmigung, da es Anweisungstext für Claude ist, anstatt ein Befehl, den Claude Code ausführt. Claude Code überprüft immer noch [Berechtigungen](/docs/de/permissions) für die Tools, die Claude bei der Befolgung dieser Anweisungen verwendet. Vor v2.1.260 erforderte ein `claudeMd` Wert auch Genehmigung.286Eine verwaltete CLAUDE.md, die über den [`claudeMd`](/docs/de/settings-reference#claudemd)-Schlüssel bereitgestellt wird, benötigt keine Genehmigung, da es sich um Anweisungstext für Claude handelt, anstatt um einen Befehl, den Claude Code ausführt. Claude Code überprüft weiterhin [Berechtigungen](/docs/de/permissions) für die Tools, die Claude verwendet, während er diese Anweisungen befolgt. Vor v2.1.260 erforderte ein `claudeMd`-Wert auch Genehmigung.

286 287 

287<h4 id="approval-memory">288<h4 id="approval-memory">

288 Genehmigungsspeicher289 Genehmigungsspeicher

289</h4>290</h4>

290 291 

291Claude Code zeichnet Ihre Genehmigung in Ihrem Konfigurationsverzeichnis auf, `~/.claude` wenn Sie nicht [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars) setzen. Was es aufzeichnet, hängt von der Anmeldedaten ab, die der Einstellungsabruf verwendet:292Claude Code zeichnet Ihre Genehmigung in Ihrem Konfigurationsverzeichnis auf, `~/.claude`, es sei denn, Sie setzen [`CLAUDE_CONFIG_DIR`](/docs/de/env-vars). Was es aufzeichnet, hängt von der Anmeldedaten ab, die der Abruf der Einstellungen verwendet:

292 293 

293* **Eine claude.ai-Anmeldung, die durch `/login` oder `claude auth login` gespeichert wurde, oder die [schlüssellose Console-Anmeldung](/docs/de/authentication#sign-in-without-an-api-key)**: eine Genehmigung pro Organisation, gehalten vom Konto, das zuletzt genehmigt hat.294* **Eine claude.ai-Anmeldung, die von `/login` oder `claude auth login` gespeichert wurde, oder die [schlüssellose Konsolen-Anmeldung](/docs/de/authentication#sign-in-without-an-api-key)**: eine Genehmigung pro Organisation, gehalten vom Konto, das zuletzt genehmigt hat.

294* **Eine [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) Anmeldung**: eine Genehmigung pro Gateway.295* **Eine [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Anmeldung**: eine Genehmigung pro Gateway.

295 296 

296 Wenn Sie sich vom gleichen Gateway ab- und wieder anmelden, zeigt Claude Code den Dialog nicht erneut an, während die Einstellungen, die Genehmigung erfordern, unverändert sind. Claude Code zeigt ihn erneut an, wenn sich diese Einstellungen ändern, wenn Sie sich bei einem anderen Gateway anmelden und wenn Sie ein neues Zertifikat für das gleiche Gateway akzeptieren.297 Wenn Sie sich vom gleichen Gateway ab- und wieder anmelden, zeigt Claude Code den Dialog nicht erneut an, während die Einstellungen, die Genehmigung erfordern, unverändert sind. Claude Code zeigt ihn erneut an, wenn sich diese Einstellungen ändern, wenn Sie sich bei einem anderen Gateway anmelden und wenn Sie ein neues Zertifikat für das gleiche Gateway akzeptieren.

297 298 

298 Claude Code speichert keine Genehmigung für ein Loopback-Entwicklungs-Gateway, das über einfaches HTTP erreicht wird, daher wird der Dialog nach jeder Anmeldung erneut angezeigt.299 Claude Code speichert keine Genehmigung für ein Loopback-Entwicklungs-Gateway, das über einfaches HTTP erreicht wird, daher wird der Dialog nach jeder Anmeldung erneut angezeigt.

299* **Jede andere Anmeldedaten**, wie ein API-Schlüssel oder `CLAUDE_CODE_OAUTH_TOKEN`: eine Genehmigung für die bereitgestellten Einstellungen, die mit der zwischengespeicherten Kopie der Einstellungen in diesem Konfigurationsverzeichnis aufbewahrt werden. Claude Code zeigt den Dialog erneut an, wenn sich die Einstellungen ändern, die Genehmigung erfordern, und nachdem Sie `/logout` oder `claude auth logout` ausführen, von denen jeder die zwischengespeicherte Kopie löscht.300* **Jede andere Anmeldedaten**, wie ein API-Schlüssel oder `CLAUDE_CODE_OAUTH_TOKEN`: eine Genehmigung für die bereitgestellten Einstellungen, die mit der zwischengespeicherten Kopie der Einstellungen in diesem Konfigurationsverzeichnis aufbewahrt wird. Claude Code zeigt den Dialog erneut an, wenn sich die Einstellungen, die Genehmigung erfordern, ändern, und nachdem Sie `/logout` oder `claude auth logout` ausführen, von denen jede die zwischengespeicherte Kopie löscht.

300 301 

301Eine Genehmigung für `sandbox.credentials` oder `sandbox.network.tlsTerminate` deckt auch die [`sandbox.network.allowedDomains`](/docs/de/settings-reference#sandbox-network-alloweddomains) Einträge in denselben bereitgestellten Einstellungen ab, da beide Einstellungen auf diese Zulassungsliste wirken. Der Dialog wird erneut angezeigt, wenn Ihr Administrator einen dieser Einträge hinzufügt oder entfernt, obwohl `sandbox.network.allowedDomains` selbst keine Genehmigung erfordert.302Eine Genehmigung für `sandbox.credentials` oder `sandbox.network.tlsTerminate` deckt auch die [`sandbox.network.allowedDomains`](/docs/de/settings-reference#sandbox-network-alloweddomains)-Einträge in den gleichen bereitgestellten Einstellungen ab, da beide Einstellungen auf dieser Zulassungsliste wirken. Der Dialog wird erneut angezeigt, wenn Ihr Administrator einen dieser Einträge hinzufügt oder entfernt, obwohl `sandbox.network.allowedDomains` auf eigene Faust keine Genehmigung erfordert.

302 303 

303Mit einer gespeicherten claude.ai-Anmeldung:304Mit einer gespeicherten claude.ai-Anmeldung:

304 305 

305* Wenn Sie sich ab- und wieder anmelden, oder zu einer anderen Organisation wechseln und später zurückkehren, zeigt Claude Code den Dialog nicht erneut an, während diese Einstellungen unverändert sind, es sei denn, ein anderes Konto hat sie für diese Organisation im gleichen Konfigurationsverzeichnis dazwischen genehmigt.306* Wenn Sie sich ab- und wieder anmelden oder zu einer anderen Organisation wechseln und später zurückkehren, zeigt Claude Code den Dialog nicht erneut an, während diese Einstellungen unverändert sind, es sei denn, ein anderes Konto hat sie für diese Organisation im gleichen Konfigurationsverzeichnis dazwischen genehmigt.

306* Wenn Sie sich bei der gleichen Organisation mit einem anderen Konto anmelden, zeigt Claude Code den Dialog erneut an, auch wenn die Einstellungen unverändert sind. Die Genehmigung dieses Kontos ersetzt die vorherige, daher zeigt Claude Code den Dialog erneut an, wenn Sie zurückwechseln.307* Wenn Sie sich bei der gleichen Organisation mit einem anderen Konto anmelden, zeigt Claude Code den Dialog erneut an, auch wenn die Einstellungen unverändert sind. Die Genehmigung dieses Kontos ersetzt die vorherige, daher zeigt Claude Code den Dialog erneut an, wenn Sie zurückwechseln.

307 308 

308Claude Code kann den Dialog nicht immer anzeigen. Jeder Fall unten sagt, welche Einstellungen gelten, wenn es nicht kann, und wann Sie den Dialog nächstes Mal sehen:309Claude Code kann den Dialog nicht immer anzeigen. Jeder Fall unten sagt, welche Einstellungen gelten, wenn es nicht kann, und wann Sie den Dialog nächstes Mal sehen:

309 310 

310* **Eine interaktive Sitzung, die den Dialog nicht anzeigen kann**: Claude Code wendet die bereitgestellten Einstellungen nicht an und behält die zuletzt genehmigten Einstellungen. Der Dialog wird in der nächsten Sitzung angezeigt, die ihn anzeigen kann. Erfordert Claude Code v2.1.211 oder später.311* **Eine interaktive Sitzung, die den Dialog nicht anzeigen kann**: Claude Code wendet die bereitgestellten Einstellungen nicht an und behält die zuletzt genehmigten Einstellungen. Der Dialog wird in der nächsten Sitzung angezeigt, die ihn anzeigen kann. Erfordert Claude Code v2.1.211 oder später.

311* **`claude install` oder `claude update`**: Claude Code zeigt den Dialog während keinem der beiden Befehle an. Der Befehl wird mit den zuletzt genehmigten Einstellungen ausgeführt, und der Dialog wird in Ihrer nächsten interaktiven Sitzung angezeigt. Wenn Claude Code beim Start auf den Einstellungsabruf wartet, wie mit [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) gesetzt oder bei einer [Claude-Apps-Gateway](/docs/de/claude-apps-gateway) Bereitstellung, zeigt es den Dialog stattdessen während des Befehls an, und ein Install-Lauf aus einer Pipe schlägt fehl; siehe [`Raw mode is not supported` während der Installation](/docs/de/troubleshoot-install#raw-mode-is-not-supported-during-install). Vor v2.1.246 versuchte Claude Code, den Dialog auch während dieser Befehle anzuzeigen.312* **`claude install` oder `claude update`**: Claude Code zeigt den Dialog während keinem der Befehle an. Der Befehl läuft mit den zuletzt genehmigten Einstellungen, und der Dialog wird in Ihrer nächsten interaktiven Sitzung angezeigt. Wenn Claude Code beim Start auf den Abruf der Einstellungen wartet, wie mit [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) gesetzt oder auf einer [Claude-Apps-Gateway](/docs/de/claude-apps-gateway)-Bereitstellung, zeigt es den Dialog stattdessen während des Befehls an, und ein Install-Lauf aus einer Pipe schlägt fehl; siehe [`Raw mode is not supported` während install](/docs/de/troubleshoot-install#raw-mode-is-not-supported-during-install). Vor v2.1.246 versuchte Claude Code, den Dialog während dieser Befehle auch anzuzeigen.

312* **Ein Fehler schließt den Dialog, bevor Sie antworten**: Claude Code wendet die bereitgestellten Einstellungen nicht an und behält die zuletzt genehmigten Einstellungen. Es zeigt den Dialog erneut in der nächsten Sitzung an, die ihn anzeigen kann.313* **Ein Fehler schließt den Dialog, bevor Sie antworten**: Claude Code wendet die bereitgestellten Einstellungen nicht an und behält die zuletzt genehmigten Einstellungen. Es zeigt den Dialog erneut in der nächsten Sitzung an, die ihn anzeigen kann.

313* **Ein nicht-interaktiver Lauf**, wie `claude -p`, eine Agent SDK-Sitzung oder eine Sitzung im Chat-Panel der VS Code-Erweiterung oder der Code-Registerkarte der Desktop-App: Claude Code kann den Dialog nicht anzeigen, daher wendet es sie an, wenn die bereitgestellten Einstellungen Genehmigung erfordern würden, nur für diesen Lauf an. Es zeichnet sie nicht als genehmigt auf oder schreibt sie in den [lokalen Cache](#fetch-and-caching-behavior), und die nächste interaktive Sitzung zeigt den Dialog. Bis ein Benutzer in einer interaktiven Sitzung genehmigt, ruft jeder nicht-interaktive Lauf die Einstellungen beim Start erneut ab. Vor v2.1.207 speicherte ein nicht-interaktiver Lauf die Einstellungen als genehmigt, daher zeigten spätere interaktive Sitzungen den Dialog dafür nie.314* **Ein nicht-interaktiver Lauf**, wie `claude -p`, eine Agent SDK-Sitzung oder eine Sitzung im Chat-Panel der VS Code-Erweiterung oder der Code-Registerkarte der Desktop-App: Claude Code kann den Dialog nicht anzeigen, daher wendet es sie an, wenn die bereitgestellten Einstellungen Genehmigung erfordern würden, nur für diesen Lauf. Es zeichnet sie nicht als genehmigt auf oder schreibt sie in den [lokalen Cache](#fetch-and-caching-behavior), und die nächste interaktive Sitzung zeigt den Dialog. Bis ein Benutzer in einer interaktiven Sitzung genehmigt, ruft jeder nicht-interaktive Lauf die Einstellungen beim Start erneut ab. Vor v2.1.207 speicherte ein nicht-interaktiver Lauf die Einstellungen als genehmigt, daher zeigten spätere interaktive Sitzungen den Dialog dafür nie.

314 315 

315<h4 id="environment-variables-and-the-approval-dialog">316<h4 id="environment-variables-and-the-approval-dialog">

316 Umgebungsvariablen und der Genehmigungsdialog317 Umgebungsvariablen und der Genehmigungsdialog

317</h4>318</h4>

318 319 

319Claude Code wendet einige bereitgestellte `env` Variablen an, ohne dem Benutzer den Genehmigungsdialog anzuzeigen, einschließlich:320Claude Code wendet einige bereitgestellte `env`-Variablen an, ohne dem Benutzer den Genehmigungsdialog anzuzeigen, einschließlich:

320 321 

321* Funktions- und Befehlsumschalter322* Feature- und Befehls-Umschalter

322* Modellauswahl und Verhaltenseinstellungen, wie `ANTHROPIC_MODEL`, `DISABLE_PROMPT_CACHING` und `CLAUDE_CODE_EFFORT_LEVEL`323* Modellauswahl- und Verhaltenseinstellungen, wie `ANTHROPIC_MODEL`, `DISABLE_PROMPT_CACHING` und `CLAUDE_CODE_EFFORT_LEVEL`

323* Kontextfenster- und Kompaktierungseinstellungen, wie `DISABLE_AUTO_COMPACT`324* Kontextfenster- und Kompaktierungseinstellungen, wie `DISABLE_AUTO_COMPACT`

324* Terminal-UI und Barrierefreiheitsoptionen325* Terminal-UI- und Barrierefreiheitsoptionen

325* Numerische Grenzen, Budgets und Timeouts326* Numerische Grenzen, Budgets und Timeouts

326 327 

327Andere bereitgestellte Variablen können die Genehmigung des Benutzers erfordern, bevor sie wirksam werden; ein nicht leerer Proxy-, Base-URL- oder `OTEL_EXPORTER_OTLP_ENDPOINT` Wert tut dies immer. Wenn eine bereitgestellte Variable Genehmigung benötigt, benennt der Dialog sie, daher sieht der Benutzer genau, was die Richtlinie zu setzen versucht. Vor v2.1.218 wendete Claude Code weniger Variablen an, ohne den Benutzer zu fragen, daher lösten Einstellungen wie `DISABLE_AUTO_COMPACT` den Dialog bei jedem nicht leeren Wert aus.328Andere bereitgestellte Variablen können die Genehmigung des Benutzers erfordern, bevor sie wirksam werden; ein nicht-leerer Proxy-, Basis-URL- oder `OTEL_EXPORTER_OTLP_ENDPOINT`-Wert tut dies immer. Wenn eine bereitgestellte Variable Genehmigung benötigt, benennt der Dialog sie, daher sieht der Benutzer genau, was die Richtlinie zu setzen versucht. Vor v2.1.218 wendete Claude Code weniger Variablen an, ohne den Benutzer zu fragen, daher lösten Einstellungen wie `DISABLE_AUTO_COMPACT` den Dialog bei jedem nicht-leeren Wert aus.

328 329 

329Claude Code entscheidet, ob vier Datenschutz-Umschalter Genehmigung benötigen, anhand des bereitgestellten Werts statt des Variablennamens: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` und `DO_NOT_TRACK`. Ein wahrheitsgemäßer Wert wie `1` oder `true` schaltet nur Tracking, Berichterstattung oder anderen nicht wesentlichen Datenverkehr aus, daher wendet Claude Code ihn an, ohne den Benutzer zu fragen. Für jeden anderen nicht leeren Wert zeigt Claude Code den Dialog an. Vor v2.1.218 wendeten alle außer `DO_NOT_TRACK` ohne Genehmigung bei jedem Wert an, und `DO_NOT_TRACK` löste den Dialog bei jedem nicht leeren Wert aus.330Claude Code entscheidet, ob vier Datenschutz-Umschalter Genehmigung benötigen, nach dem bereitgestellten Wert statt nach dem Variablennamen: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` und `DO_NOT_TRACK`. Ein wahrheitsgemäßer Wert wie `1` oder `true` schaltet nur Tracking, Berichterstattung oder anderen nicht-wesentlichen Datenverkehr aus, daher wendet Claude Code ihn an, ohne den Benutzer zu fragen. Für jeden anderen nicht-leeren Wert zeigt Claude Code den Dialog. Vor v2.1.218 wendeten alle außer `DO_NOT_TRACK` ihn ohne Genehmigung bei jedem Wert an, und `DO_NOT_TRACK` löste den Dialog bei jedem nicht-leeren Wert aus.

330 331 

331Claude Code entscheidet auch, ob [`API_FORCE_IDLE_TIMEOUT`](/docs/de/env-vars) Genehmigung benötigt, anhand des bereitgestellten Werts: Ein wahrheitsgemäßer Wert schaltet nur das [Body-Idle-Timeout](/docs/de/network-config#streaming-idle-watchdogs) ein, daher wendet Claude Code ihn an, ohne den Benutzer zu fragen. Für jeden anderen nicht leeren Wert zeigt Claude Code den Dialog an. Vor v2.1.248 löste jeder nicht leere Wert den Dialog aus.332Claude Code entscheidet auch, ob [`API_FORCE_IDLE_TIMEOUT`](/docs/de/env-vars) Genehmigung benötigt, nach dem bereitgestellten Wert: ein wahrheitsgemäßer Wert schaltet nur das [Body-Idle-Timeout](/docs/de/network-config#streaming-idle-watchdogs) ein, daher wendet Claude Code ihn an, ohne den Benutzer zu fragen. Für jeden anderen nicht-leeren Wert zeigt Claude Code den Dialog. Vor v2.1.248 löste jeder nicht-leere Wert den Dialog aus.

332 333 

333Ob [`ANTHROPIC_CUSTOM_HEADERS`](/docs/de/env-vars#variables) Genehmigung benötigt, hängt auch vom bereitgestellten Wert ab. Header, die nur Anfragen kennzeichnen, wie `Accept-Language`, werden ohne den Dialog angewendet. Eine Zeile, die eine Anmeldedaten, einen Organisations- oder Mandanten-Selektor, einen Routing- oder Host-Override oder einen API-Verhaltens-Header benennt, wie `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta` oder die `X-Amzn-Bedrock-*` Header, benötigt Genehmigung. Ebenso eine Zeile, deren Name kein gültiges HTTP-Header-Token ist, oder deren Wert ein Zeichen enthält, das ein HTTP-Header nicht tragen kann. Die Überprüfung stimmt Wörter im Header-Namen ab, daher benötigt `X-Client-Version`, das `client` und `version` enthält, auch Genehmigung. Vor v2.1.251 wurde jeder `ANTHROPIC_CUSTOM_HEADERS` Wert ohne sie angewendet.334Ob [`ANTHROPIC_CUSTOM_HEADERS`](/docs/de/env-vars#variables) Genehmigung benötigt, hängt auch vom bereitgestellten Wert ab. Header, die nur Anfragen kennzeichnen, wie `Accept-Language`, gelten ohne den Dialog. Eine Zeile, die eine Anmeldedaten, einen Org- oder Tenant-Selektor, einen Routing- oder Host-Override oder einen API-Verhaltens-Header benennt, wie `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta` oder die `X-Amzn-Bedrock-*`-Header, erfordert Genehmigung. Eine Zeile erfordert auch Genehmigung, wenn ihr Name kein gültiges HTTP-Header-Token ist oder ihr Wert ein Zeichen enthält, das ein HTTP-Header nicht tragen kann. Die Überprüfung stimmt Wörter im Header-Namen ab, daher erfordert `X-Client-Version`, das `client` und `version` enthält, auch Genehmigung. Vor v2.1.251 galt jeder `ANTHROPIC_CUSTOM_HEADERS`-Wert ohne sie.

334 335 

335Ein Falsy-Wert wie `0` oder `false` für [`ENABLE_BETA_TRACING_DETAILED`](/docs/de/env-vars#variables) oder [`OTEL_LOG_RAW_API_BODIES`](/docs/de/env-vars#variables) wird ohne den Dialog angewendet, da er nur detailliertes Tracing oder Raw-API-Body-Erfassung ausschaltet. Jeder andere nicht leere Wert für eine der beiden Variablen benötigt Genehmigung.336Ein wahrheitsgemäßer Wert wie `0` oder `false` für [`ENABLE_BETA_TRACING_DETAILED`](/docs/de/env-vars#variables) oder [`OTEL_LOG_RAW_API_BODIES`](/docs/de/env-vars#variables) gilt ohne den Dialog, da er nur detailliertes Tracing oder Erfassung von rohen API-Texten ausschaltet. Jeder andere nicht-leere Wert für eine der beiden Variablen erfordert Genehmigung.

336 337 

337<h2 id="platform-availability">338<h2 id="platform-availability">

338 Plattformverfügbarkeit339 Plattformverfügbarkeit

sessions.md +57 −39

Details

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 

13<h2 id="resume-a-session">13<h2 id="resume-a-session">

14 Sitzung fortsetzen14 Eine Sitzung fortsetzen

15</h2>15</h2>

16 16 

17Sitzungen werden kontinuierlich in [lokale Transkriptdateien](#export-and-locate-session-data) gespeichert, während Sie arbeiten, sodass Sie nach dem Beenden oder Ausführen von `/clear` zu einer zurückkehren können. Verwenden Sie diese Einstiegspunkte:17Sitzungen werden kontinuierlich in [lokale Transkriptdateien](#export-and-locate-session-data) gespeichert, während Sie arbeiten, sodass Sie nach dem Beenden oder Ausführen von `/clear` zu einer zurückkehren können. Verwenden Sie diese Einstiegspunkte:

18 18 

19| Befehl | Was er tut |19| Befehl | Was er tut |

20| :- | :- |20| :- | :- |

21| `claude --continue` | Setzt die neueste Konversation im aktuellen Verzeichnis fort |21| `claude --continue` | Öffnet das neueste Gespräch 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 das Gespräch fort, das 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 zu einem anderen Gespräch innerhalb einer aktiven Sitzung |26| `/resume` | Wechselt zu einem anderen Gespräch innerhalb einer aktiven Sitzung |

27 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 erste Eingabeaufforderung `/loop` war](#where-the-session-picker-looks). Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`-, SDK- und `/loop`-Sitzungen ein.28Claude Code lässt Sitzungen, die mit [`claude -p`](/docs/de/headless) oder dem [Agent SDK](/docs/de/agent-sdk/overview) erstellt wurden, aus der Sitzungsauswahl und aus `claude --continue` aus. Sie können eine trotzdem fortsetzen, indem Sie ihre Sitzungs-ID an `claude --resume <session-id>` übergeben. Mit `claude --continue` überspringt Claude Code auch [Sitzungen, deren erste Eingabeaufforderung `/loop` war](#where-the-session-picker-looks). Wenn Sie [`claude -p --continue`](/docs/de/headless#continue-conversations) ausführen, bezieht Claude Code `-p`, SDK und `/loop` Sitzungen ein.

29 29 

30`claude --continue` öffnet eine [Hintergrund-Sitzung](/docs/de/agent-view), die beendet wurde, aber nicht eine, die noch läuft; das Öffnen beendeter Hintergrund-Sitzungen erfordert Claude Code v2.1.257 oder später. Wenn Ihre neueste Konversation eine ist, die Sie [in den Hintergrund verschoben haben](/docs/de/agent-view#send-the-session-to-the-background), und sie läuft dort noch, beendet Claude Code mit `Your most recent conversation is running in the background` und der ID dieser Sitzung. Hängen Sie sich an die Sitzung von [`claude agents`](/docs/de/agent-view#attach-to-a-session) an, oder führen Sie `claude --resume` aus, um eine andere auszuwählen.30`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 Ihr letztes Gespräch eines ist, das Sie [in den Hintergrund verschoben haben](/docs/de/agent-view#send-the-session-to-the-background), und es läuft dort noch, beendet Claude Code mit `Your most recent conversation is running in the background` und der ID dieser Sitzung. Verbinden Sie sich mit der Sitzung von [`claude agents`](/docs/de/agent-view#attach-to-a-session) aus, oder führen Sie `claude --resume` aus, um eine andere auszuwählen.

31 31 

32Sie können `claude --resume <session-id>` aus jedem Verzeichnis ausführen: Claude Code sucht nach der ID zuerst im aktuellen Projektverzeichnis und seinen Git Worktrees, dann in jedem anderen Projekt auf dieser Maschine, sodass es eine Sitzung findet, die anderswo gestartet wurde oder sich mit [`/cd`](/docs/de/commands) verschoben hat. Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie Claude Code veranlasst, nicht gefunden zu melden, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`. Vor v2.1.223 stoppte die Suche im aktuellen Projektverzeichnis und seinen Git Worktrees, sodass Sie die Sitzung aus dem Verzeichnis fortsetzen mussten, in dem sie zuletzt funktioniert hat.32<span id="resume-a-running-background-session" />

33 

34Wenn das Gespräch, das Sie mit `claude --resume` oder `/resume` fortsetzen, zu einer [Hintergrundsitzung](/docs/de/agent-view) gehört, die noch läuft, öffnet Claude Code die laufende Sitzung selbst. Mit `--bg` in der Befehlszeile ist die Fortsetzung stattdessen ein [Hintergrund-Dispatch](/docs/de/agent-view#from-your-shell). Vor v2.1.285 weigerte sich Claude Code und sagte Ihnen, die Sitzung mit `claude attach <id>` zu öffnen oder sie zuerst mit `claude stop <id>` zu stoppen.

35 

36* **Von Ihrer Shell aus**: `claude --resume <session>` führt [`claude attach`](/docs/de/agent-view#attach-to-a-session) auf dieser Sitzung im selben Terminal aus, anstatt das Transkript selbst zu laden. Eine Eingabeaufforderung, die Sie in der Befehlszeile übergeben, wie in `claude --resume <session> "check the tests too"`, geht zuerst als nächster Zug an die Sitzung, und Claude Code gibt `Sent your prompt to the background session (<id>); opening it…` aus, bevor es sich verbindet. `claude -p --resume <session> "prompt"` in einem Terminal eingegeben macht dasselbe, sodass `-p` diesen Lauf nicht nicht-interaktiv hält.

37 

38 Claude Code öffnet die Sitzung nicht, wenn die Befehlszeile eines dieser Elemente enthält:

39 

40 * Weitergeleitete oder umgeleitete Ein- oder Ausgabe

41 * Flags, die die Sitzung konfigurieren, wie `--permission-mode`, `--model` oder `--settings`

42 * Flags, die die Ausgabe lesen, wie `--output-format json` oder `--json-schema`

43 * Flags, die den Lauf begrenzen oder zurückspulen, wie `--max-turns` oder `--max-budget-usd`

44 

45 Mit einem dieser Elemente oder wenn [Agent View ausgeschaltet ist](/docs/de/agent-view#turn-off-agent-view), sendet Claude Code nichts und beendet sich mit Status 1, gibt aus, dass die Sitzung im Hintergrund läuft, zusammen mit dem `claude attach <id>` Befehl, der sie öffnet, oder teilt Ihnen mit, sie in `claude agents` zu finden, wenn die ID nicht bestimmt werden kann. Fügen Sie `--fork-session` hinzu, um stattdessen eine Kopie des Gesprächs fortzusetzen. Um das Gespräch selbst in einer Sitzung Ihrer eigenen fortzusetzen, mit Ihren Flags angewendet, führen Sie `claude stop <id>` aus und wiederholen Sie dann den Befehl.

46 

47 Eine Eingabeaufforderung, die mit `/` oder `!` beginnt, wird nicht gesendet, und auch keine Eingabeaufforderung, während die Sitzung auf Ihre Antwort auf eine Frage wartet. In beiden Fällen öffnet Claude Code die Sitzung nicht, und die Nachricht enthält `Your prompt was not sent to it` mit dem Grund.

48* **Von innerhalb einer Sitzung**: `/resume` verschiebt Ihr aktuelles Gespräch in den Hintergrund und verbindet dieses Terminal mit der laufenden Sitzung, gibt `Opening "<title>", running in the background (<id>)` aus. Drücken Sie `←` auf einer leeren Eingabeaufforderung, um zur Agent View zurückzukehren, die auch das Gespräch auflistet, das Sie verlassen haben. Wenn das aktuelle Gespräch nicht in den Hintergrund verschoben werden kann, beispielsweise weil Sie bereits an einer Hintergrundsitzung angehängt sind oder die Sitzungspersistenz ausgeschaltet ist, gibt `/resume` den `claude attach` Befehl aus, den Sie stattdessen ausführen müssen.

49 

50Sie können `claude --resume <session-id>` von jedem Verzeichnis aus ausführen: Claude Code sucht zuerst nach der ID im aktuellen Projektverzeichnis und seinen Git Worktrees, dann in jedem anderen Projekt auf dieser Maschine, sodass es eine Sitzung findet, die anderswo gestartet wurde oder sich mit [`/cd`](/docs/de/commands) verschoben hat. Die projektübergreifende Suche löst die ID nur auf, wenn genau ein anderes Projekt ein Transkript mit Nachrichten dafür enthält, sodass eine manuell kopierte Kopie Claude Code dazu bringt, nicht gefunden zu melden, anstatt eine beliebige Kopie fortzusetzen. Wenn keine gespeicherte Sitzung der ID entspricht, meldet Claude Code `No conversation found with session ID: <session-id>`. Vor v2.1.223 stoppte die Suche im aktuellen Projektverzeichnis und seinen Git Worktrees, sodass Sie die Sitzung von dem Verzeichnis aus fortsetzen mussten, in dem die Sitzung zuletzt funktioniert hat.

33 51 

34<h3 id="what-a-resumed-session-restores">52<h3 id="what-a-resumed-session-restores">

35 Was eine fortgesetzte Sitzung wiederherstellt53 Was eine fortgesetzte Sitzung wiederherstellt

36</h3>54</h3>

37 55 

38Eine fortgesetzte Sitzung stellt das Gespräch zusammen mit dem darin gespeicherten Zustand wieder her:56Wenn Claude Code ein Gespräch aus seinem Transkript lädt, stellt die fortgesetzte Sitzung das Gespräch zusammen mit dem darin gespeicherten Zustand wieder her:

39 57 

40* Gesprächsverlauf: der vollständige Verlauf, einschließlich Werkzeugaufrufe und Ergebnisse. Ein Werkzeug, das noch lief, als der vorherige Prozess endete, beispielsweise bei einem Absturz, wird nicht beendet oder erneut ausgeführt, wenn Sie fortsetzen. Claude sieht den Aufruf als unterbrochen 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 ließ Claude Code den unterbrochenen Aufruf aus dem Gespräch fallen oder zeigte ihn Claude als einen an, den Sie unterbrochen haben.58* Gesprächsverlauf: der vollständige Verlauf, einschließlich Werkzeugaufrufe und Ergebnisse. Ein Werkzeug, das noch lief, als der vorherige Prozess endete, beispielsweise bei einem Absturz, wird nicht beendet 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 ließ Claude Code den abgebrochenen Aufruf aus dem Gespräch fallen oder zeigte ihn Claude als einen, den Sie unterbrochen haben.

41* Modell: Die Sitzung wird auf dem Modell fortgesetzt, das sie verwendet hat. Das Modell wird nicht wiederhergestellt, wenn es eingestellt wurde oder nicht von `availableModels` zulässig ist, wenn ein `--model`-Flag oder eine `ANTHROPIC_MODEL`-Familie-Umgebungsvariable beim Start eine auswählt, oder bei Anbietern, die anbieterspezifische Bereitstellungs-IDs verwenden, wie [Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry](/docs/de/third-party-integrations); siehe [Modellkonfiguration](/docs/de/model-config#setting-your-model) für die Auflösungsreihenfolge.59* Modell: die Sitzung wird auf dem Modell fortgesetzt, das sie verwendete. Das Modell wird nicht wiederhergestellt, wenn es eingestellt wurde oder nicht von `availableModels` erlaubt ist, wenn ein `--model` Flag oder eine `ANTHROPIC_MODEL`-Familie Umgebungsvariable beim Start eine auswählt, oder bei Anbietern, die anbieterspezifische Deployment-IDs verwenden, wie [Amazon Bedrock, Google Cloud's Agent Platform und Microsoft Foundry](/docs/de/third-party-integrations); siehe [Modellkonfiguration](/docs/de/model-config#setting-your-model) für die Auflösungsreihenfolge.

42* Agent: Eine Sitzung, die mit [`--agent`](/docs/de/sub-agents#invoke-subagents-explicitly) oder der `agent`-Einstellung gestartet wurde, wird als dieser Agent fortgesetzt und behält seine Werkzeugbeschränkungen und sein Modell. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen; für die Systemaufforderung in beiden Fällen siehe [Systemaufforderungs-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code sucht nach dem Agent an zwei Stellen: im ursprünglichen Verzeichnis der Sitzung, sofern Sie [diesem Arbeitsbereich vertraut haben](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann im Verzeichnis, aus dem Sie fortsetzen, sodass ein projektbezogener Agent weiterhin geladen wird, wenn Sie aus einem anderen Verzeichnis fortsetzen. Wenn Claude Code den Agent an keiner Stelle findet, wird die Sitzung mit den Standard-Werkzeugen fortgesetzt und zeigt eine [Warnung mit dem Namen des Agenten](/docs/de/errors#session-agent-no-longer-available).60* 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 Werkzeugbeschränkungen und sein Modell beibehalten werden. Übergeben Sie `--agent` beim Fortsetzen, um einen anderen auszuwählen; für die Systemaufforderung in beiden Fällen siehe [Systemaufforderungs-Flags in fortgesetzten Gesprächen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code sucht nach dem Agent an zwei Stellen: dem ursprünglichen Verzeichnis der Sitzung, vorausgesetzt, Sie haben [diesem Arbeitsbereich vertraut](/docs/de/permissions#project-allow-rules-and-workspace-trust), und dann dem Verzeichnis, von dem aus Sie fortsetzen, sodass ein projektbezogener Agent immer noch geladen wird, wenn Sie von einem anderen Verzeichnis aus fortsetzen. Wenn Claude Code den Agent an keiner Stelle findet, wird die Sitzung mit den Standard-Werkzeugen fortgesetzt und zeigt eine [Warnung mit dem Namen des Agents](/docs/de/errors#session-agent-no-longer-available).

43* Berechtigungsmodus: Wenn Sie aus einem Terminal mit `claude --continue`, `claude --resume <session-id>` oder `claude --resume <name>` fortsetzen, wenn der Name einer Sitzung entspricht, ohne `-p`, stellt Claude Code den Berechtigungsmodus wieder her, in dem sich die Sitzung befand, außer in den Fällen in [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), die auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` abdecken. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.61* 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 in [Berechtigungsmodus beim Fortsetzen](#permission-mode-on-resume), die auch die Sitzungsauswahl, `/resume` und das Fortsetzen mit `claude -p` abdecken. Übergeben Sie `--permission-mode` oder `--dangerously-skip-permissions`, um den wiederhergestellten Modus zu überschreiben.

44* Aktives Ziel: Ein [Ziel](/docs/de/goal#resume-with-an-active-goal), das noch aktiv war, als die Sitzung endete, wird übertragen; seine Rundenzahl, sein Timer und seine Token-Ausgaben-Baseline werden zurückgesetzt.62* Aktives Ziel: ein [Ziel](/docs/de/goal#resume-with-an-active-goal), das noch aktiv war, als die Sitzung endete, wird übertragen; seine Zugzahl, sein Timer und seine Token-Ausgabenbaseline werden zurückgesetzt.

45* Geplante Aufgaben: [Aufgaben, die nicht abgelaufen sind](/docs/de/scheduled-tasks#limitations), werden wiederhergestellt. Hintergrund-Bash- und Monitor-Aufgaben nicht.63* Geplante Aufgaben: [Aufgaben, die nicht abgelaufen sind](/docs/de/scheduled-tasks#limitations), werden wiederhergestellt. Hintergrund-Bash und Monitor-Aufgaben nicht.

46* Hintergrundarbeit: Ein [Hintergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background), ein Hintergrund-Bash-Befehl oder ein [Workflow](/docs/de/workflows), der mit dem vorherigen Prozess endete, wird im fortgesetzten Transkript als Notiz angezeigt, dass er nicht beendet wurde. Claude Code startet keine Runde aus diesen Notizen; Claude liest sie mit Ihrer nächsten Eingabeaufforderung.64* Hintergrundarbeit: ein [Hintergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background), Hintergrund-Bash-Befehl oder [Workflow](/docs/de/workflows), der mit dem vorherigen Prozess endete, wird im fortgesetzten Transkript als Notiz angezeigt, dass er nicht beendet wurde. Claude Code startet keinen Zug von diesen Notizen; Claude liest sie mit Ihrer nächsten Eingabeaufforderung.

47 65 

48Nicht jedes Konfigurationsflag aus dem ursprünglichen Start wird wiederhergestellt. Wenn die Sitzung von `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` oder mit `--add-dir` hinzugefügten Verzeichnissen abhängig war, übergeben Sie diese erneut, wenn Sie fortsetzen; mit `/add-dir` während der Sitzung hinzugefügte Verzeichnisse werden ebenfalls nicht wiederhergestellt, obwohl die Sitzungsauswahl sie weiterhin verwendet, um die Sitzung zu lokalisieren. Die Standard-Einstellungsdateien wie `settings.json` und `settings.local.json` werden beim Start erneut gelesen, sodass Konfigurationen, die sich darin befinden, nicht erneut übergeben werden müssen. Für `--system-prompt` und `--append-system-prompt` siehe [Systemaufforderungs-Flags in fortgesetzten Konversationen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations).66Nicht jedes Konfigurationsflags aus dem ursprünglichen Start wird wiederhergestellt. Wenn die Sitzung von `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` oder Verzeichnissen, die mit `--add-dir` hinzugefügt wurden, abhängig war, übergeben Sie sie erneut, wenn Sie fortsetzen; Verzeichnisse, die während der Sitzung mit `/add-dir` hinzugefügt wurden, werden nicht wiederhergestellt, obwohl die Sitzungsauswahl sie immer noch verwendet, um die Sitzung zu finden. Die Standard-Einstellungsdateien, wie `settings.json` und `settings.local.json`, werden beim Start erneut gelesen, sodass Konfiguration, die darin lebt, nicht erneut übergeben werden muss. Für `--system-prompt` und `--append-system-prompt` siehe [Systemaufforderungs-Flags in fortgesetzten Gesprächen](/docs/de/cli-reference#system-prompt-flags-in-resumed-conversations).

49 67 

50<h4 id="permission-mode-on-resume">68<h4 id="permission-mode-on-resume">

51 Berechtigungsmodus beim Fortsetzen69 Berechtigungsmodus beim Fortsetzen

52</h4>70</h4>

53 71 

54Welcher Berechtigungsmodus Claude Code eine fortgesetzte Sitzung startet, hängt davon ab, wie Sie fortsetzen:72Welcher Berechtigungsmodus Claude Code eine fortgesetzte Sitzung startet, hängt davon ab, wie Sie fortsetzen. Die folgenden Fälle gelten, wenn Claude Code das Gespräch aus seinem Transkript lädt; wenn Sie stattdessen [eine Hintergrundsitzung öffnen, die noch läuft](#resume-a-running-background-session), behält diese Sitzung den Berechtigungsmodus bei, in dem sie sich befindet.

55 73 

56* 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.74* 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.

57* Nicht-interaktiv: `claude -p --resume` oder `claude -p --continue`. Claude Code startet den Lauf im Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf gestartet würde, außer dass eine Sitzung, die im Plan-Modus endete, unter den [unten stehenden Bedingungen](#resume-in-plan-mode-with-p) im Plan-Modus fortgesetzt wird.75* Nicht-interaktiv: `claude -p --resume` oder `claude -p --continue`. Claude Code startet den Lauf im Berechtigungsmodus, in dem ein neuer `claude -p` Lauf gestartet würde, außer dass eine Sitzung, die im Plan Mode endete, unter den [Bedingungen unten](#resume-in-plan-mode-with-p) im Plan Mode fortgesetzt wird.

58* VS Code: Das Gesprächsfenster der Erweiterung. Die Tabelle behandelt nur ein Gespräch, das im Plan-Modus endete; für den Rest siehe [Frühere Gespräche fortsetzen](/docs/de/vs-code#resume-past-conversations).76* VS Code: das Gesprächsfenster der Erweiterung. Die Tabelle behandelt nur ein Gespräch, das im Plan Mode endete; für den Rest siehe [frühere Gespräche fortsetzen](/docs/de/vs-code#resume-past-conversations).

59* 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 öffnet, der mehr als einer Sitzung entspricht. Claude Code stellt den gespeicherten Berechtigungsmodus nicht wieder her. Es startet die Sitzung im Berechtigungsmodus, in dem es eine neue Sitzung aus derselben Befehlszeile starten würde.77* Sitzungsauswahl beim Start: eine Sitzung, die Sie aus der [Sitzungsauswahl](#use-the-session-picker) auswählen, ob Sie sie mit `claude --resume` allein, `claude --from-pr` oder einem Namen, der mehr als einer Sitzung entspricht, geöffnet haben. Claude Code stellt den gespeicherten Berechtigungsmodus nicht wieder her. Es startet die Sitzung im Berechtigungsmodus, in dem es eine neue Sitzung von derselben Befehlszeile aus starten würde.

60* `/resume` innerhalb einer Sitzung, mit oder ohne Argument: Claude Code stellt den gespeicherten Berechtigungsmodus nicht wieder her. Das Gespräch, zu dem Sie wechseln, wird im Berechtigungsmodus Ihrer aktuellen Sitzung fortgesetzt.78* `/resume` innerhalb einer Sitzung, mit oder ohne Argument: Claude Code stellt den gespeicherten Berechtigungsmodus nicht wieder her. Das Gespräch, zu dem Sie wechseln, wird im Berechtigungsmodus Ihrer aktuellen Sitzung fortgesetzt.

61 79 

62Das Wiederherstellen des Plan-Modus auf den nicht-interaktiven und VS Code-Pfaden erfordert Claude Code v2.1.246 oder später. Jede Zeile benennt den Berechtigungsmodus, in dem die Sitzung endete, welche der Terminal-, nicht-interaktiven und VS Code-Pfade Sie ihn fortsetzen, und den Berechtigungsmodus, in dem Claude Code die fortgesetzte Sitzung startet.80Das Wiederherstellen des Plan Mode auf den nicht-interaktiven und VS Code Pfaden erfordert Claude Code v2.1.246 oder später. Jede Zeile benennt den Berechtigungsmodus, in dem die Sitzung endete, welche der Terminal-, nicht-interaktiven und VS Code Pfade Sie ihn fortsetzen, und den Berechtigungsmodus, in dem Claude Code die fortgesetzte Sitzung startet.

63 81 

64| Sitzung endete in | Wie Sie fortsetzen | Berechtigungsmodus nach dem Fortsetzen |82| Sitzung endete in | Wie Sie fortsetzen | Berechtigungsmodus nach dem Fortsetzen |

65| :- | :- | :- |83| :- | :- | :- |

66| `bypassPermissions` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung gestartet würde. Um [Berechtigungen zu umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), aktivieren Sie es beim Start mit einem seiner Start-Flags oder `permissions.defaultMode: "bypassPermissions"` in [Benutzer-, `--settings`- oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode) |84| `bypassPermissions` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung gestartet würde. Um [Berechtigungen zu umgehen](/docs/de/permission-modes#skip-all-checks-with-bypasspermissions-mode), aktivieren Sie es beim Start mit einem seiner Start-Flags oder `permissions.defaultMode: "bypassPermissions"` in [Benutzer-, `--settings`- oder verwalteten Einstellungen](/docs/de/settings-reference#permissions-defaultmode) |

67| `plan` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung gestartet würde |85| `plan` | Terminal | Der Berechtigungsmodus, in dem eine neue Sitzung gestartet würde |

68| `auto` | Terminal | `auto`, nur wenn Ihr Konto weiterhin die [Auto-Modus-Anforderungen](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) erfüllt |86| `auto` | Terminal | `auto`, nur wenn Ihr Konto immer noch die [Auto Mode Anforderungen](/docs/de/permission-modes#eliminate-prompts-with-auto-mode) erfüllt |

69| Manuell | Terminal | Manuell, wenn eine neue Sitzung im Auto-Modus aus dem [integrierten Standard](/docs/de/permission-modes#which-mode-a-session-starts-in) gestartet 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 |87| Manual | Terminal | Manual, wenn eine neue Sitzung im Auto Mode von der [integrierten Standardeinstellung](/docs/de/permission-modes#which-mode-a-session-starts-in) gestartet 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 |

70| `plan` | Nicht-interaktiv, unter den [unten stehenden Bedingungen](#resume-in-plan-mode-with-p) | Plan-Modus |88| `plan` | Nicht-interaktiv, unter den [Bedingungen unten](#resume-in-plan-mode-with-p) | Plan Mode |

71| Beliebiger Modus | Nicht-interaktiv, in jedem anderen Fall | Der Berechtigungsmodus, in dem ein neuer `claude -p`-Lauf gestartet würde |89| Beliebiger Modus | Nicht-interaktiv, in jedem anderen Fall | Der Berechtigungsmodus, in dem ein neuer `claude -p` Lauf gestartet würde |

72| `plan` | VS Code | Plan-Modus, mit [den Ausnahmen auf der VS Code-Seite](/docs/de/vs-code#resume-past-conversations) |90| `plan` | VS Code | Plan Mode, mit [den Ausnahmen auf der VS Code Seite](/docs/de/vs-code#resume-past-conversations) |

73 91 

74<h5 id="resume-in-plan-mode-with-p">92<h5 id="resume-in-plan-mode-with-p">

75 Plan-Modus mit `-p` fortsetzen93 Im Plan Mode mit `-p` fortsetzen

76</h5>94</h5>

77 95 

78Ein `claude -p --resume`- oder `claude -p --continue`-Lauf wird nur im Plan-Modus fortgesetzt, wenn alle diese Bedingungen erfüllt sind:96Ein `claude -p --resume` oder `claude -p --continue` Lauf wird nur im Plan Mode fortgesetzt, wenn alle diese Bedingungen erfüllt sind:

79 97 

80* Sie übergeben [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags) und übergeben nicht [`--permission-prompts none`](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs), damit Claude Code den Plan zur Genehmigung präsentieren kann98* Sie übergeben [`--permission-prompt-tool`](/docs/de/cli-reference#cli-flags) und übergeben nicht [`--permission-prompts none`](/docs/de/headless#turn-off-permission-prompts-in-unattended-runs), sodass Claude Code den Plan zur Genehmigung präsentieren kann

81* Sie übergeben nicht `--permission-mode` oder `--dangerously-skip-permissions`99* Sie übergeben nicht `--permission-mode` oder `--dangerously-skip-permissions`

82* Sie übergeben nicht `--fork-session`100* Sie übergeben nicht `--fork-session`

83* Der Lauf wird nicht über [Kanäle](/docs/de/channels) gestartet101* Der Lauf wird nicht über [Kanäle](/docs/de/channels) gestartet


86 Aus einer Zusammenfassung fortsetzen104 Aus einer Zusammenfassung fortsetzen

87</h3>105</h3>

88 106 

89Bei einem Pro- oder Max-Plan öffnet Claude Code einen Dialog, wenn Sie eine Sitzung fortsetzen, die länger als etwa eine Stunde inaktiv war und über 100.000 Token umfasst, 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 die vollständige Verlauf einmal verarbeitet, unabhängig davon, welche Option des Dialogs Sie wählen.107Bei einem Pro oder Max Plan öffnet Claude Code, wenn Sie eine Sitzung fortsetzen, die länger als etwa eine Stunde inaktiv war und über 100.000 Token umfasst, das Gespräch 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 die vollständige Historie einmal verarbeitet, unabhängig davon, welche Option des Dialogs Sie wählen.

90 108 

91Der Dialog bietet drei Möglichkeiten, die Sitzung fortzusetzen. Sie unterscheiden sich darin, wie viel des Gesprächs jede in spätere Anfragen überträgt, was ein Kompromiss zwischen dem Beibehalten aller Details und dem Senden weniger Token pro Anfrage ist:109Der Dialog bietet drei Möglichkeiten, die Sitzung fortzusetzen. Sie unterscheiden sich darin, wie viel des Gesprächs jede in spätere Anfragen trägt, was ein Kompromiss zwischen dem Behalten jedes Details und dem Senden weniger Token pro Anfrage ist:

92 110 

93* **Aus Zusammenfassung fortsetzen**: Führt [`/compact`](/docs/de/context-window#what-survives-compaction) sofort aus. Claude Code sendet eine Zusammenfassungsanfrage über die vollständige Verlauf, ersetzt dann die Verlauf durch die Zusammenfassung, Ihre letzten Austausche und bis zu fünf kürzlich gelesene Dateien. Spätere Anfragen tragen die Zusammenfassung anstelle der vollständigen Verlauf.111* **Aus Zusammenfassung fortsetzen**: führt [`/compact`](/docs/de/context-window#what-survives-compaction) sofort aus. Claude Code sendet eine Zusammenfassungsanfrage über die vollständige Historie, ersetzt dann die Historie durch die Zusammenfassung, Ihre letzten Austausche und bis zu fünf kürzlich gelesene Dateien. Spätere Anfragen tragen die Zusammenfassung anstelle der vollständigen Historie.

94* **Vollständige Sitzung unverändert fortsetzen**: Lädt das Gespräch unverändert. Nachdem Sie Ihre erste Nachricht senden, verarbeitet Claude Code die vollständige Verlauf erneut und speichert sie zwischen, liest sie dann aus dem Cache bei späteren Anfragen, während der Cache warm bleibt.112* **Vollständige Sitzung wie vorhanden fortsetzen**: lädt das Gespräch unverändert. Nachdem Sie Ihre erste Nachricht senden, verarbeitet Claude Code die vollständige Historie erneut und speichert sie zwischen, liest sie dann später aus dem Cache, während der Cache warm bleibt.

95* **Nicht mehr fragen**: Setzt die vollständige Sitzung fort und stoppt die Anzeige des Dialogs bei allen zukünftigen Fortsetzungen.113* **Mich nicht mehr fragen**: setzt die vollständige Sitzung fort und stoppt die Anzeige des Dialogs bei allen zukünftigen Fortsetzungen.

96 114 

97Das Fortsetzen unverändert behält alle Details des Gesprächs zur Verfügung, mit Kosten pro Anfrage, die mit der Größe des Gesprächs skalieren. Das Fortsetzen aus der Zusammenfassung kostet weniger bei jeder späteren Anfrage, da es die Zusammenfassung anstelle der vollständigen Verlauf trägt, 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 kommen.115Das Fortsetzen wie vorhanden behält jedes Detail des Gesprächs verfügbar, mit Kosten pro Anfrage, die mit der Größe des Gesprächs skalieren. Das Fortsetzen aus der Zusammenfassung kostet weniger bei jeder späteren Anfrage, weil es die Zusammenfassung anstelle der vollständigen Historie trägt, 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) für den Ursprung dieser Kosten pro Anfrage.

98 116 

99<h3 id="where-the-session-picker-looks">117<h3 id="where-the-session-picker-looks">

100 Wo die Sitzungsauswahl sucht118 Wo die Sitzungsauswahl sucht


102 120 

103Claude Code speichert Sitzungen pro Projektverzeichnis. Standardmäßig zeigt die Sitzungsauswahl:121Claude Code speichert Sitzungen pro Projektverzeichnis. Standardmäßig zeigt die Sitzungsauswahl:

104 122 

105* Sitzungen aus dem aktuellen Worktree, einschließlich [Hintergrund-Sitzungen](/docs/de/agent-view), die in der Liste als `bg` gekennzeichnet sind123* Sitzungen aus dem aktuellen Worktree, einschließlich [Hintergrundsitzungen](/docs/de/agent-view), die in der Liste als `bg` markiert sind

106* Sitzungen, die anderswo gestartet wurden und das aktuelle Verzeichnis mit `/add-dir` hinzugefügt haben124* Sitzungen, die anderswo gestartet wurden und das aktuelle Verzeichnis mit `/add-dir` hinzugefügt haben

107 125 

108Verwenden Sie `Ctrl+W`, um auf alle Worktrees des Repositorys zu erweitern, oder `Ctrl+A`, um auf jedes Projekt auf dieser Maschine zu erweitern.126Verwenden Sie `Ctrl+W`, um auf alle Worktrees des Repositorys zu erweitern, oder `Ctrl+A`, um auf jedes Projekt auf dieser Maschine zu erweitern.

109 127 

110Sitzungen, deren erste Eingabeaufforderung ein [`/loop`](/docs/de/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop)-Befehl war, werden nicht in der Auswahl angezeigt, und `claude --continue` überspringt sie ebenfalls. Das Ausführen von `/loop` später in einem Gespräch versteckt die Sitzung nicht. Vor v2.1.211 versteckte ein `/loop`-Lauf früh in einem Gespräch die Sitzung dauerhaft aus der Auswahl.128Sitzungen, deren erste Eingabeaufforderung ein [`/loop`](/docs/de/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop) Befehl war, erscheinen nicht in der Auswahl, und `claude --continue` überspringt sie auch. Das Ausführen von `/loop` später in einem Gespräch versteckt die Sitzung nicht. Vor v2.1.211 versteckte ein `/loop` Lauf früh in einem Gespräch die Sitzung dauerhaft aus der Auswahl.

111 129 

112Das Verschieben einer Sitzung mit [`/cd`](/docs/de/commands) verlagert sie in den Projektspeicher des neuen Verzeichnisses, sodass sie danach in der Auswahl dieses Verzeichnisses angezeigt wird. Ab v2.1.196 bleibt eine verschobene Sitzung aus der Auswahl des alten Verzeichnisses ausgeschlossen, auch nach einem Absturz oder erzwungenen Beenden. In früheren Versionen konnte sie auch nach einem nicht sauberen Beenden in der Liste des alten Verzeichnisses erneut angezeigt werden, wenn der alte Pfad Sonderzeichen wie Unterstriche enthielt.130Das Verschieben einer Sitzung mit [`/cd`](/docs/de/commands) verlegt sie zum Projektlager des neuen Verzeichnisses, sodass sie danach in der Auswahl dieses Verzeichnisses erscheint. Ab v2.1.196 bleibt eine verschobene Sitzung aus der Auswahl des alten Verzeichnisses, auch nach einem Absturz oder erzwungenen Beenden. In früheren Versionen konnte sie auch nach einem nicht sauberen Beenden in der Liste des alten Verzeichnisses erneut erscheinen, wenn der alte Pfad Sonderzeichen wie Unterstriche enthielt.

113 131 

114Wenn Sie eine Sitzung aus einem anderen Worktree desselben Repositorys auswählen, setzt Claude Code sie an Ort und Stelle fort; wenn der 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.132Wenn 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.

115 133 

116Das Fortsetzen nach Name wird über das aktuelle Repository und seine Worktrees hinweg aufgelöst. Beide Formen suchen nach einer genauen Übereinstimmung und setzen sie direkt fort, auch wenn sie sich in einem anderen Worktree befindet:134Das 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 in einem anderen Worktree lebt:

117 135 

118| Befehl | Genaue Übereinstimmung | Mehrdeutiger Name |136| Befehl | Genaue Übereinstimmung | Mehrdeutiger Name |

119| :- | :- | :- |137| :- | :- | :- |

skills.md +1 −1

Details

740 740 

741* **Arbeitsverzeichnis**: Claude Code führt jeden Befehl im aktuellen Arbeitsverzeichnis der Session-Shell aus. Dieses Verzeichnis wechselt, wenn Claude `cd` ausführt. Verwenden Sie [`${CLAUDE_SKILL_DIR}` oder `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) in Pfaden, die sich jedes Mal auf die gleiche Weise auflösen müssen.741* **Arbeitsverzeichnis**: Claude Code führt jeden Befehl im aktuellen Arbeitsverzeichnis der Session-Shell aus. Dieses Verzeichnis wechselt, wenn Claude `cd` ausführt. Verwenden Sie [`${CLAUDE_SKILL_DIR}` oder `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) in Pfaden, die sich jedes Mal auf die gleiche Weise auflösen müssen.

742* **stderr**: Mit der Standard-`bash`-Shell führt Claude Code stderr in stdout zusammen. Alles, was der Befehl in stderr schreibt, erscheint im eingefügten Text.742* **stderr**: Mit der Standard-`bash`-Shell führt Claude Code stderr in stdout zusammen. Alles, was der Befehl in stderr schreibt, erscheint im eingefügten Text.

743* **Timeout**: Jeder Befehl wird unter dem Standard-2-Minuten-[Timeout](/docs/de/tools-reference#timeout-and-output-limits) des Bash-Tools ausgeführt. Wenn das Bash-Tool [einen Befehl mit Timeout in den Hintergrund verschiebt](/docs/de/tools-reference#background-commands), wird der Skill trotzdem gerendert. Der eingefügte Text meldet die Verschiebung und nennt die Hintergrund-Task und die Datei, die die Ausgabe des Befehls sammelt. Wenn der Befehl einer ist, den das Bash-Tool niemals automatisch in den Hintergrund verschiebt, beendet Claude Code ihn beim Timeout. Dieser Fehler [bricht den Aufruf ab](#when-an-injected-command-fails).743* **Timeout**: Jeder Befehl wird unter dem Standard-2-Minuten-[Timeout](/docs/de/tools-reference#timeout-and-output-limits) des Bash-Tools ausgeführt. Wenn das Bash-Tool [einen Befehl mit Timeout in den Hintergrund verschiebt](/docs/de/tools-reference#foreground-commands-that-move-to-the-background), wird der Skill trotzdem gerendert. Der eingefügte Text meldet die Verschiebung und nennt die Hintergrund-Task und die Datei, die die Ausgabe des Befehls sammelt. Wenn der Befehl einer ist, den das Bash-Tool niemals automatisch in den Hintergrund verschiebt, beendet Claude Code ihn beim Timeout. Dieser Fehler [bricht den Aufruf ab](#when-an-injected-command-fails).

744* **Ausgabegröße**: Ausgabe, die die Inline-Obergrenze des Bash-Tools überschreitet, kommt als Dateipfad plus kurze Vorschau an, nicht als gekürzter Text. [Ausgabegrenzen](/docs/de/tools-reference#output-limits) behandelt die Obergrenze und wie man jede Grenze anpasst.744* **Ausgabegröße**: Ausgabe, die die Inline-Obergrenze des Bash-Tools überschreitet, kommt als Dateipfad plus kurze Vorschau an, nicht als gekürzter Text. [Ausgabegrenzen](/docs/de/tools-reference#output-limits) behandelt die Obergrenze und wie man jede Grenze anpasst.

745 745 

746Das PowerShell-Tool wendet das gleiche Timeout-, Backgrounding- und Output-Ceiling-Verhalten auf die Befehle an, die es ausführt. Siehe den Abschnitt [PowerShell-Tool](/docs/de/tools-reference#powershell-tool) für seine Besonderheiten.746Das PowerShell-Tool wendet das gleiche Timeout-, Backgrounding- und Output-Ceiling-Verhalten auf die Befehle an, die es ausführt. Siehe den Abschnitt [PowerShell-Tool](/docs/de/tools-reference#powershell-tool) für seine Besonderheiten.

statusline.md +7 −7

Details

20Hier ist ein Beispiel einer [mehrzeiligen Statuszeile](#display-multiple-lines), die Git-Informationen in der ersten Zeile und einen farbcodierten Kontextbalken in der zweiten Zeile anzeigt.20Hier ist ein Beispiel einer [mehrzeiligen Statuszeile](#display-multiple-lines), die Git-Informationen in der ersten Zeile und einen farbcodierten Kontextbalken in der zweiten Zeile anzeigt.

21 21 

22<Frame>22<Frame>

23 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Eine mehrzeilige Statuszeile, die Modellname, Verzeichnis, Git-Branch in der ersten Zeile und einen Kontextnutzungs-Fortschrittsbalken mit Kosten und Dauer in der zweiten Zeile anzeigt" width="776" height="212" data-path="images/statusline-multiline.png" />23 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="Eine mehrzeilige Statuszeile, die Modellname, Verzeichnis, Git-Branch in der ersten Zeile und einen Kontextnutzungs-Fortschrittsbalken mit Kosten und Dauer in der zweiten Zeile anzeigt" width="1224" height="262" data-path="images/statusline-multiline.png" />

24</Frame>24</Frame>

25 25 

26Diese Seite führt Sie durch [das Einrichten einer grundlegenden Statuszeile](#set-up-a-status-line), erklärt [wie die Daten fließen](#how-status-lines-work) von Claude Code zu Ihrem Skript, listet [alle Felder auf, die Sie anzeigen können](#available-data), und bietet [einsatzbereite Beispiele](#examples) für häufige Muster wie Git-Status, Kostenverfolgung und Fortschrittsbalken.26Diese Seite führt Sie durch [das Einrichten einer grundlegenden Statuszeile](#set-up-a-status-line), erklärt [wie die Daten fließen](#how-status-lines-work) von Claude Code zu Ihrem Skript, listet [alle Felder auf, die Sie anzeigen können](#available-data), und bietet [einsatzbereite Beispiele](#examples) für häufige Muster wie Git-Status, Kostenverfolgung und Fortschrittsbalken.


93Diese Beispiele verwenden Bash-Skripte, die auf macOS und Linux funktionieren. Unter Windows finden Sie unter [Windows-Konfiguration](#windows-configuration) PowerShell- und Git Bash-Beispiele.93Diese Beispiele verwenden Bash-Skripte, die auf macOS und Linux funktionieren. Unter Windows finden Sie unter [Windows-Konfiguration](#windows-configuration) PowerShell- und Git Bash-Beispiele.

94 94 

95<Frame>95<Frame>

96 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-quickstart.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=696445e59ca0059213250651ad23db6b" alt="Eine Statuszeile, die Modellname, Verzeichnis und Kontextprozentsatz anzeigt" width="726" height="164" data-path="images/statusline-quickstart.png" />96 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-quickstart.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=88a7eab9c1038dd098ee8e284d96b7e6" alt="Eine Statuszeile, die Modellname, Verzeichnis und Kontextprozentsatz anzeigt" width="1224" height="224" data-path="images/statusline-quickstart.png" />

97</Frame>97</Frame>

98 98 

99<Steps>99<Steps>


444Zeigen Sie das aktuelle Modell und die Kontextfensternutzung mit einem visuellen Fortschrittsbalken an. Jedes Skript liest JSON von stdin, extrahiert das `used_percentage` Feld und erstellt einen 10-Zeichen-Balken, wobei gefüllte Blöcke (▓) die Nutzung darstellen:444Zeigen Sie das aktuelle Modell und die Kontextfensternutzung mit einem visuellen Fortschrittsbalken an. Jedes Skript liest JSON von stdin, extrahiert das `used_percentage` Feld und erstellt einen 10-Zeichen-Balken, wobei gefüllte Blöcke (▓) die Nutzung darstellen:

445 445 

446<Frame>446<Frame>

447 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-context-window-usage.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=15b58ab3602f036939145dde3165c6f7" alt="Eine Statuszeile, die Modellname und einen Fortschrittsbalken mit Prozentsatz anzeigt" width="448" height="152" data-path="images/statusline-context-window-usage.png" />447 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-context-window-usage.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f3918a549912dc47e90f2b69e68bc847" alt="Eine Statuszeile, die Modellname und einen Fortschrittsbalken mit Prozentsatz anzeigt" width="1224" height="224" data-path="images/statusline-context-window-usage.png" />

448</Frame>448</Frame>

449 449 

450<CodeGroup>450<CodeGroup>


513Zeigen Sie Git-Branch mit farbcodierten Indikatoren für bereitgestellte und geänderte Dateien an. Dieses Skript verwendet [ANSI-Escape-Codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) für Terminalfarben: `\033[32m` ist Grün, `\033[33m` ist Gelb und `\033[0m` setzt auf Standard zurück.513Zeigen Sie Git-Branch mit farbcodierten Indikatoren für bereitgestellte und geänderte Dateien an. Dieses Skript verwendet [ANSI-Escape-Codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) für Terminalfarben: `\033[32m` ist Grün, `\033[33m` ist Gelb und `\033[0m` setzt auf Standard zurück.

514 514 

515<Frame>515<Frame>

516 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-git-context.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e656f34f90d1d9a1d0e220988914345f" alt="Eine Statuszeile, die Modell, Verzeichnis, Git-Branch und farbcodierte Indikatoren für bereitgestellte und geänderte Dateien anzeigt" width="742" height="178" data-path="images/statusline-git-context.png" />516 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-git-context.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f13c190724d9ec7188c17cd2f98b7bf4" alt="Eine Statuszeile, die Modell, Verzeichnis, Git-Branch und farbcodierte Indikatoren für bereitgestellte und geänderte Dateien anzeigt" width="1224" height="224" data-path="images/statusline-git-context.png" />

517</Frame>517</Frame>

518 518 

519Jedes Skript prüft, ob das aktuelle Verzeichnis ein Git-Repository ist, zählt bereitgestellte und geänderte Dateien und zeigt farbcodierte Indikatoren an:519Jedes Skript prüft, ob das aktuelle Verzeichnis ein Git-Repository ist, zählt bereitgestellte und geänderte Dateien und zeigt farbcodierte Indikatoren an:


611Jedes Skript formatiert Kosten als Währung und konvertiert Millisekunden in Minuten und Sekunden:611Jedes Skript formatiert Kosten als Währung und konvertiert Millisekunden in Minuten und Sekunden:

612 612 

613<Frame>613<Frame>

614 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-cost-tracking.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e3444a51fe6f3440c134bd5f1f08ad29" alt="Eine Statuszeile, die Modellname, Sitzungskosten und Dauer anzeigt" width="588" height="180" data-path="images/statusline-cost-tracking.png" />614 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-cost-tracking.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=925f7024c3b38be0f0eca63564bfb52f" alt="Eine Statuszeile, die Modellname, Sitzungskosten und Dauer anzeigt" width="1224" height="224" data-path="images/statusline-cost-tracking.png" />

615</Frame>615</Frame>

616 616 

617<CodeGroup>617<CodeGroup>


672Ihr Skript kann mehrere Zeilen ausgeben, um eine reichhaltigere Anzeige zu erstellen.672Ihr Skript kann mehrere Zeilen ausgeben, um eine reichhaltigere Anzeige zu erstellen.

673 673 

674<Frame>674<Frame>

675 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="Eine mehrzeilige Statuszeile, die Modellname, Verzeichnis, Git-Branch in der ersten Zeile und einen Kontextnutzungs-Fortschrittsbalken mit Kosten und Dauer in der zweiten Zeile anzeigt" width="776" height="212" data-path="images/statusline-multiline.png" />675 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="Eine mehrzeilige Statuszeile, die Modellname, Verzeichnis, Git-Branch in der ersten Zeile und einen Kontextnutzungs-Fortschrittsbalken mit Kosten und Dauer in der zweiten Zeile anzeigt" width="1224" height="262" data-path="images/statusline-multiline.png" />

676</Frame>676</Frame>

677 677 

678Dieses Beispiel kombiniert mehrere Techniken: schwellenwertbasierte Farben (Grün unter 70%, Gelb 70-89%, Rot 90%+), einen Fortschrittsbalken und Git-Branch-Informationen. Jede `print` oder `echo` Anweisung erstellt eine separate Zeile:678Dieses Beispiel kombiniert mehrere Techniken: schwellenwertbasierte Farben (Grün unter 70%, Gelb 70-89%, Rot 90%+), einen Fortschrittsbalken und Git-Branch-Informationen. Jede `print` oder `echo` Anweisung erstellt eine separate Zeile:


781Dieses Beispiel erstellt einen anklickbaren Link zu Ihrem GitHub-Repository. Halten Sie Cmd (macOS) oder Strg (Windows/Linux) gedrückt und klicken Sie, um den Link in Ihrem Browser zu öffnen.781Dieses Beispiel erstellt einen anklickbaren Link zu Ihrem GitHub-Repository. Halten Sie Cmd (macOS) oder Strg (Windows/Linux) gedrückt und klicken Sie, um den Link in Ihrem Browser zu öffnen.

782 782 

783<Frame>783<Frame>

784 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-links.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=4bcc6e7deb7cf52f41ab85a219b52661" alt="Eine Statuszeile, die einen anklickbaren Link zu einem GitHub-Repository anzeigt" width="726" height="198" data-path="images/statusline-links.png" />784 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-links.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=4778a144a28cb498c99d5fa018bb374a" alt="Eine Statuszeile, die einen anklickbaren Link zu einem GitHub-Repository anzeigt" width="1224" height="224" data-path="images/statusline-links.png" />

785</Frame>785</Frame>

786 786 

787Jedes Skript ruft die Git-Remote-URL ab, konvertiert das SSH-Format in HTTPS und umhüllt den Repository-Namen mit OSC 8 Escape-Codes. Die Bash-Version verwendet `printf '%b'`, das Backslash-Escapes zuverlässiger interpretiert als `echo -e` über verschiedene Shells hinweg:787Jedes Skript ruft die Git-Remote-URL ab, konvertiert das SSH-Format in HTTPS und umhüllt den Repository-Namen mit OSC 8 Escape-Codes. Die Bash-Version verwendet `printf '%b'`, das Backslash-Escapes zuverlässiger interpretiert als `echo -e` über verschiedene Shells hinweg:

Details

253 253 

254Sicherheitsteams können verwaltete Berechtigungen für das konfigurieren, was Claude Code darf und nicht darf, was nicht durch lokale Konfiguration überschrieben werden kann. [Erfahren Sie mehr](/docs/de/security).254Sicherheitsteams können verwaltete Berechtigungen für das konfigurieren, was Claude Code darf und nicht darf, was nicht durch lokale Konfiguration überschrieben werden kann. [Erfahren Sie mehr](/docs/de/security).

255 255 

256Um einzuschränken, welche dieser Bereitstellungsoptionen ein verwalteter Computer verwenden darf, setzen Sie [`allowedProviders`](/docs/de/settings-reference#allowedproviders) in verwalteten Einstellungen. Zum Beispiel erlaubt `["bedrock"]` Amazon Bedrock und nichts anderes; eine Bedrock-Flotte, die auch den Mantle-Endpunkt aktiviert, listet auch `"mantle"` auf. Der Eintrag gibt an, welche Endpunktvariablen auch einen verwalteten `env`-Pin benötigen. Erfordert Claude Code v2.1.285 oder später.

257 

256<h3 id="leverage-mcp-for-integrations">258<h3 id="leverage-mcp-for-integrations">

257 Nutzen Sie MCP für Integrationen259 Nutzen Sie MCP für Integrationen

258</h3>260</h3>

Details

174* `BASH_DEFAULT_TIMEOUT_MS` — die Standardeinstellung, wenn Claude kein Timeout übergibt; standardmäßig zwei Minuten174* `BASH_DEFAULT_TIMEOUT_MS` — die Standardeinstellung, wenn Claude kein Timeout übergibt; standardmäßig zwei Minuten

175* `BASH_MAX_TIMEOUT_MS` — mit der Standardeinstellung wird die Obergrenze gesetzt, die das begrenzt, was Claude anfordert: die effektive Obergrenze ist die größere der beiden, standardmäßig zehn Minuten175* `BASH_MAX_TIMEOUT_MS` — mit der Standardeinstellung wird die Obergrenze gesetzt, die das begrenzt, was Claude anfordert: die effektive Obergrenze ist die größere der beiden, standardmäßig zehn Minuten

176 176 

177Für einen Befehl, den Claude im Hintergrund startet, setzt `timeout` stattdessen, wie lange der Befehl dort laufen darf, mit dem separaten Standard und Maximum, das unter [Hintergrund-Befehle](#background-commands) beschrieben ist. Das [PowerShell-Tool](#powershell-tool) folgt den gleichen Timeout-Regeln und liest die gleichen zwei Variablen.177Für einen Befehl, den Claude im Hintergrund startet, setzt `timeout` stattdessen, wie lange der Befehl dort laufen darf, mit dem separaten Standard und Maximum, das unter [Zeitlimit für Hintergrund-Befehle](#time-limit-for-background-commands) beschrieben ist. Das [PowerShell-Tool](#powershell-tool) folgt den gleichen Timeout-Regeln und liest die gleichen zwei Variablen.

178 178 

179<h4 id="output-limits">179<h4 id="output-limits">

180 Ausgabegrenzen180 Ausgabegrenzen


199 199 

200Für lang laufende Prozesse wie Dev-Server oder Watch-Builds kann Claude `run_in_background: true` setzen, um den Befehl als Hintergrund-Task zu starten und weiter zu arbeiten, während er läuft. Listen Sie Hintergrund-Tasks auf und stoppen Sie sie mit `/tasks`. Nachdem Sie einen dort stoppen oder von einem verbundenen Client wie der Desktop-App, geht Claude weiter, anstatt zu warten. Wenn ein Subagent den Befehl gestartet hat, ist es dieser Subagent, der weitergeht.200Für lang laufende Prozesse wie Dev-Server oder Watch-Builds kann Claude `run_in_background: true` setzen, um den Befehl als Hintergrund-Task zu starten und weiter zu arbeiten, während er läuft. Listen Sie Hintergrund-Tasks auf und stoppen Sie sie mit `/tasks`. Nachdem Sie einen dort stoppen oder von einem verbundenen Client wie der Desktop-App, geht Claude weiter, anstatt zu warten. Wenn ein Subagent den Befehl gestartet hat, ist es dieser Subagent, der weitergeht.

201 201 

202Ein Befehl, den ein [Vordergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, stoppt, wenn dieser Subagent seine Ausführung beendet, ob sie erfolgreich war, fehlgeschlagen ist oder unterbrochen wurde. Ein Befehl, den die Hauptkonversation oder ein Hintergrund-Subagent gestartet hat, läuft nach einer endgültigen Antwort weiter, bis er beendet wird, gestoppt wird oder sein Zeitlimit erreicht. Im nicht-interaktiven Modus mit dem `-p`-Flag [enden Hintergrund-Befehle kurz nach dem endgültigen Ergebnis des Laufs](/docs/de/headless#background-tasks-at-exit).202<h4 id="when-a-background-command-stops">

203 Wenn ein Hintergrund-Befehl stoppt

204</h4>

205 

206Ein Befehl, den ein [Vordergrund-Subagent](/docs/de/sub-agents#run-subagents-in-foreground-or-background) gestartet hat, stoppt, wenn dieser Subagent seine Ausführung beendet, ob sie erfolgreich war, fehlgeschlagen ist oder unterbrochen wurde. Ein Befehl, den die Hauptkonversation oder ein Hintergrund-Subagent gestartet hat, läuft nach einer endgültigen Antwort weiter, bis er beendet wird, gestoppt wird oder sein [Zeitlimit](#time-limit-for-background-commands) erreicht. Im nicht-interaktiven Modus mit dem `-p`-Flag [enden Hintergrund-Befehle kurz nach dem endgültigen Ergebnis des Laufs](/docs/de/headless#background-tasks-at-exit).

207 

208<h4 id="time-limit-for-background-commands">

209 Zeitlimit für Hintergrund-Befehle

210</h4>

203 211 

204Bash- und PowerShell-Befehle im Hintergrund haben ein Zeitlimit, das ab dem Moment gezählt wird, in dem der Befehl in den Hintergrund eintritt:212Bash- und PowerShell-Befehle im Hintergrund haben ein Zeitlimit, das ab dem Moment gezählt wird, in dem der Befehl in den Hintergrund eintritt:

205 213 

206* Ein Befehl, den Claude im Hintergrund startet, erhält 30 Minuten oder das `timeout`, das Claude mit `run_in_background` übergibt, bis zu einem Maximum von 2 Stunden214* Ein Befehl, den Claude im Hintergrund startet, erhält 30 Minuten oder das `timeout`, das Claude mit `run_in_background` übergibt, bis zu einem Maximum von 2 Stunden

207* Ein Befehl, der im Vordergrund startet und dann in den Hintergrund wechselt, z. B. mit `Ctrl+B` oder bei seinem Timeout, erhält 30 Minuten ab dem Wechsel215* Ein Befehl, der im Vordergrund startet und dann in den Hintergrund wechselt, z. B. mit `Ctrl+B` oder bei seinem Timeout, erhält 30 Minuten ab dem Wechsel

208 216 

217Wenn ein Hintergrund-Befehl sein Zeitlimit erreicht, stoppt Claude Code ihn und teilt Claude mit, warum, und Claude kann den Befehl erneut mit einem längeren `timeout` starten, wenn die Arbeit noch erforderlich ist. Die Stop-Mitteilung lautet `Background command "<description>" was stopped after reaching its background time limit`.

218 

219<h4 id="raise-the-time-limit-for-background-commands">

220 Erhöhen Sie das Zeitlimit für Hintergrund-Befehle

221</h4>

222 

209Zwei [Umgebungsvariablen](/docs/de/env-vars) erhöhen diese Limits für Bash- und PowerShell-Befehle gleichermaßen. Beide nehmen Millisekunden an, und keine kann ein Limit verkürzen: ein niedrigerer Wert lässt den 30-Minuten-Standard und das 2-Stunden-Maximum bestehen.223Zwei [Umgebungsvariablen](/docs/de/env-vars) erhöhen diese Limits für Bash- und PowerShell-Befehle gleichermaßen. Beide nehmen Millisekunden an, und keine kann ein Limit verkürzen: ein niedrigerer Wert lässt den 30-Minuten-Standard und das 2-Stunden-Maximum bestehen.

210 224 

211* Setzen Sie `BASH_DEFAULT_TIMEOUT_MS` über `1800000`, um den 30-Minuten-Standard durch diesen Wert zu ersetzen, sowohl für Befehle, die Claude ohne `timeout` startet, als auch für verschobene Befehle225* Setzen Sie `BASH_DEFAULT_TIMEOUT_MS` über `1800000`, um den 30-Minuten-Standard durch diesen Wert zu ersetzen, sowohl für Befehle, die Claude ohne `timeout` startet, als auch für verschobene Befehle

212* Setzen Sie `BASH_MAX_TIMEOUT_MS` über `7200000`, um das 2-Stunden-Maximum auf diesen Wert zu erhöhen. Das Setzen von `BASH_DEFAULT_TIMEOUT_MS` über `7200000` erhöht das Maximum auf die gleiche Weise226* Setzen Sie `BASH_MAX_TIMEOUT_MS` über `7200000`, um das 2-Stunden-Maximum auf diesen Wert zu erhöhen. Das Setzen von `BASH_DEFAULT_TIMEOUT_MS` über `7200000` erhöht das Maximum auf die gleiche Weise

213 227 

214Wenn ein Hintergrund-Befehl sein Zeitlimit erreicht, stoppt Claude Code ihn und teilt Claude mit, warum, und Claude kann den Befehl erneut mit einem längeren `timeout` starten, wenn die Arbeit noch erforderlich ist. Die Stop-Mitteilung lautet `Background command "<description>" was stopped after reaching its background time limit`.228<h4 id="foreground-commands-that-move-to-the-background">

229 Vordergrund-Befehle, die in den Hintergrund wechseln

230</h4>

215 231 

216Wenn ein Vordergrund-Befehl sein Timeout erreicht, ohne zu beenden, verschiebt Claude Code ihn in den Hintergrund, anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Ein verschobener Befehl hat sein Zeitlimit ab dem Wechsel, und ein Vordergrund-Subagent-Befehl stoppt immer noch, wenn dieser Subagent seine Ausführung beendet.232Wenn ein Vordergrund-Befehl sein Timeout erreicht, ohne zu beenden, verschiebt Claude Code ihn in den Hintergrund, anstatt ihn zu stoppen, es sei denn, der Befehl beginnt mit `sleep`. Ein verschobener Befehl hat sein [Zeitlimit](#time-limit-for-background-commands) ab dem Wechsel, und ein Vordergrund-Subagent-Befehl stoppt immer noch, wenn dieser Subagent seine Ausführung beendet.

217 233 

218Das Setzen von [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/de/env-vars#variables) deaktiviert Auto-Backgrounding zusammen mit dem Rest der Hintergrund-Task-Funktionalität.234Das Setzen von [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/de/env-vars#variables) deaktiviert Auto-Backgrounding zusammen mit dem Rest der Hintergrund-Task-Funktionalität.

219 235 


246Was auch immer Sie auflisten, diese Regeln gelten:262Was auch immer Sie auflisten, diese Regeln gelten:

247 263 

248* **Unbekannte Namen**: Claude Code ignoriert Namen, die es nicht erkennt264* **Unbekannte Namen**: Claude Code ignoriert Namen, die es nicht erkennt

249* **Bash, PowerShell und Monitor**: Claude Code hält Bash-, PowerShell- und Monitor-Tool-Befehle unter der Obergrenze, was auch immer Sie auflisten

250* **Variable nicht gesetzt**: Claude Code nimmt die Menge der anderen begrenzten Arten aus der Konfiguration, die Anthropic vom Server liefert, und diese Menge kann sich im Laufe der Zeit ändern, daher setzen Sie die Variable, wenn Sie eine Menge benötigen, die sich nicht ändert265* **Variable nicht gesetzt**: Claude Code nimmt die Menge der anderen begrenzten Arten aus der Konfiguration, die Anthropic vom Server liefert, und diese Menge kann sich im Laufe der Zeit ändern, daher setzen Sie die Variable, wenn Sie eine Menge benötigen, die sich nicht ändert

251* **Permission-Gating-Hooks**: Auch wenn jede Art begrenzt ist, schließt Claude Code von der Obergrenze einen Hook aus, der das Ergebnis einer Aktion blockieren oder ändern kann, und jeden MCP-Server, den ein solcher Hook aufruft, daher kann das Töten eines Permission-Gating-Hooks durch den Kernel die Aktion, die er blockiert, nicht zulassen266* **Permission-Gating-Hooks**: Auch wenn jede Art begrenzt ist, schließt Claude Code von der Obergrenze einen Hook aus, der das Ergebnis einer Aktion blockieren oder ändern kann, und jeden MCP-Server, den ein solcher Hook aufruft, daher kann das Töten eines Permission-Gating-Hooks durch den Kernel die Aktion, die er blockiert, nicht zulassen

252 267 

ultrareview.md +35 −35

Details

21Ultrareview erfordert eine Authentifizierung mit einem claude.ai-Konto, da es als Cloud-Sitzung auf der Infrastruktur von Anthropic ausgeführt wird. Wenn Sie nur mit einem API-Schlüssel angemeldet sind, führen Sie `/login` aus und authentifizieren Sie sich zuerst mit claude.ai. Ultrareview ist nicht verfügbar, wenn Sie Claude Code mit Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry verwenden, und es ist nicht für Organisationen verfügbar, die Zero Data Retention aktiviert haben. Wenn Ultrareview nicht verfügbar ist, führt `/code-review ultra` stattdessen eine lokale Review in Ihrer Sitzung aus.21Ultrareview erfordert eine Authentifizierung mit einem claude.ai-Konto, da es als Cloud-Sitzung auf der Infrastruktur von Anthropic ausgeführt wird. Wenn Sie nur mit einem API-Schlüssel angemeldet sind, führen Sie `/login` aus und authentifizieren Sie sich zuerst mit claude.ai. Ultrareview ist nicht verfügbar, wenn Sie Claude Code mit Amazon Bedrock, Google Cloud's Agent Platform oder Microsoft Foundry verwenden, und es ist nicht für Organisationen verfügbar, die Zero Data Retention aktiviert haben. Wenn Ultrareview nicht verfügbar ist, führt `/code-review ultra` stattdessen eine lokale Review in Ihrer Sitzung aus.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Ultrareview von der CLI ausführen24 Ultrareview über die CLI ausführen

25</h2>25</h2>

26 26 

27Starten Sie eine Review aus einem beliebigen Git-Repository:27Starten Sie eine Überprüfung aus einem beliebigen Git-Repository:

28 28 

29```text theme={null}29```text theme={null}

30/code-review ultra30/code-review ultra

31```31```

32 32 

33Ohne Argumente überprüft Ultrareview den Diff zwischen Ihrem aktuellen Branch und dem Standard-Branch, einschließlich aller nicht committeter und gestaged Changes. Für nicht committete Änderungen an Dateien mit Namen wie Credentials oder Keys, wie `.env` und `*.tfvars` Dateien, folgt Claude Code den Regeln für [Hochladen eines lokalen Repositories in eine Cloud-Sitzung](/docs/de/claude-code-on-the-web#send-local-repositories-without-github).33Ohne Argumente überprüft ultrareview den Diff zwischen Ihrem aktuellen Branch und dem Standard-Branch, einschließlich nicht committeter und gestaged Änderungen. Für nicht committete Änderungen an Dateien mit Namen wie Anmeldedaten oder Schlüssel, wie `.env` und `*.tfvars` Dateien, folgt Claude Code den Regeln für [das Hochladen eines lokalen Repositories in eine Cloud-Sitzung](/docs/de/claude-code-on-the-web#send-local-repositories-without-github).

34 34 

35Für eine Branch-Review bündelt Claude Code den Repository-Status und lädt ihn in eine Remote-Sandbox hoch; wenn Sie [einen Pull Request überprüfen](#review-a-pull-request), lädt Claude Code nichts von Ihrem Computer hoch.35Für eine Branch-Überprüfung bündelt Claude Code den Repository-Status und lädt ihn in eine Cloud-Sandbox hoch; wenn Sie [einen Pull Request überprüfen](#review-a-pull-request), lädt Claude Code nichts von Ihrem Computer hoch.

36 36 

37Vor dem Start zeigt Claude Code einen Bestätigungsdialog mit dem Review-Umfang, Ihren verbleibenden kostenlosen Durchläufen und den geschätzten Kosten an; für eine Branch-Review umfasst der Umfang die Datei- und Zeilenanzahl. Nach der Bestätigung läuft die Review im Hintergrund weiter, während Sie Ihre Sitzung weiterhin nutzen.37Vor dem Start zeigt Claude Code einen Bestätigungsdialog mit dem Überprüfungsumfang, Ihren verbleibenden kostenlosen Durchläufen und den geschätzten Kosten an; für eine Branch-Überprüfung umfasst der Umfang die Datei- und Zeilenanzahl. Nach Ihrer Bestätigung wird die Überprüfung im Hintergrund fortgesetzt, während Sie Ihre Sitzung weiterhin nutzen.

38 38 

39Der Befehl wird nur ausgeführt, wenn Sie ihn mit `/code-review ultra` aufrufen; Claude startet nicht automatisch eine Ultrareview.39Der Befehl wird nur ausgeführt, wenn Sie ihn mit `/code-review ultra` aufrufen; Claude startet eine ultrareview nicht von selbst.

40 40 

41<h3 id="review-against-a-different-base">41<h3 id="review-against-a-different-base">

42 Review gegen eine andere Basis42 Überprüfung gegen eine andere Basis

43</h3>43</h3>

44 44 

45Um gegen eine andere Basis als den Standard-Branch zu vergleichen, übergeben Sie den Branch-Namen. Dieses Beispiel überprüft Ihren aktuellen Branch gegen `develop` statt gegen den Standard-Branch:45Um gegen eine andere Basis als den Standard-Branch zu vergleichen, übergeben Sie den Branch-Namen. Dieses Beispiel überprüft Ihren aktuellen Branch gegen `develop` statt:

46 46 

47```text theme={null}47```text theme={null}

48/code-review ultra develop48/code-review ultra develop

49```49```

50 50 

51Der Basis-Branch muss nicht in Ihrem lokalen Clone vorhanden sein; Claude Code ruft ihn von `origin` ab. Wenn der Name einen Tippfehler enthält, schlägt Claude Code den nächstgelegenen Branch-Namen im Fehler vor.51Der Basis-Branch muss nicht in Ihrem lokalen Klon vorhanden sein; Claude Code ruft ihn von `origin` ab. Wenn der Name einen Tippfehler enthält, schlägt Claude Code den nächstgelegenen Branch-Namen im Fehler vor.

52 52 

53Ein Commit-ID oder Tag funktioniert auch als Basis, und die Review deckt dann die Änderungen auf Ihrem Branch seit diesem Commit ab.53Eine Commit-ID oder ein Tag funktioniert auch als Basis, und die Überprüfung deckt dann die Änderungen auf Ihrem Branch seit diesem Commit ab.

54 54 

55<h3 id="review-a-pull-request">55<h3 id="review-a-pull-request">

56 Review eines Pull Requests56 Überprüfung eines Pull Requests

57</h3>57</h3>

58 58 

59Um einen GitHub Pull Request statt eines lokalen Branches zu überprüfen, übergeben Sie die PR-Nummer:59Um einen GitHub Pull Request statt eines lokalen Branches zu überprüfen, übergeben Sie die PR-Nummer:


64 64 

65Der Befehl akzeptiert auch `#1234`, `PR 1234` und eingefügte PR-URLs; eine eingefügte URL muss auf das Repository in Ihrem aktuellen Verzeichnis verweisen.65Der Befehl akzeptiert auch `#1234`, `PR 1234` und eingefügte PR-URLs; eine eingefügte URL muss auf das Repository in Ihrem aktuellen Verzeichnis verweisen.

66 66 

67Im PR-Modus klont die Remote-Sandbox den Pull Request direkt vom Host, anstatt Ihren lokalen Working Tree zu bündeln. Der PR-Modus funktioniert mit Repositories auf `github.com` und auf [GitHub Enterprise Server](/docs/de/github-enterprise-server)-Instanzen, die ein Administrator mit Claude Code verbunden hat.67Im PR-Modus klont die Cloud-Sandbox den Pull Request direkt vom Host, anstatt Ihren lokalen Arbeitsbaum zu bündeln. Der PR-Modus funktioniert mit Repositories auf `github.com` und auf [GitHub Enterprise Server](/docs/de/github-enterprise-server) Instanzen, die ein Owner mit Claude Code verbunden hat.

68 68 

69Für Repositories auf `github.com` klont die Sandbox mit dem GitHub-Konto, das mit Ihrem Claude-Konto verbunden ist, daher muss das Konto den PR-Repository lesen können. Claude Code überprüft dies vor dem Erstellen der Cloud-Sitzung, es sei denn, Sie haben [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars#variables) gesetzt, und lehnt den Start ab, wenn [kein Konto verbunden ist](/docs/de/errors#no-github-account-is-connected-to-your-claude-account) oder [das Konto das Repository nicht sehen kann](/docs/de/errors#your-connected-github-account-cant-see-the-repository); die Ablehnung nennt die Lösung. Vor v2.1.248 überprüfte Claude Code dies nicht vor dem Start.69Für Repositories auf `github.com` klont die Sandbox mit dem GitHub-Konto, das mit Ihrem Claude-Konto verbunden ist, daher muss das Konto in der Lage sein, das Repository des PR zu lesen.

70 70 

71Führen Sie [`/web-setup`](/docs/de/web-quickstart#connect-from-your-terminal) aus, um Ihren GitHub CLI-Login mit Ihrem Claude-Konto zu verbinden.71Führen Sie [`/web-setup`](/docs/de/web-quickstart#connect-from-your-terminal) aus, um Ihren GitHub CLI-Login mit Ihrem Claude-Konto zu verbinden.

72 72 

73<h3 id="post-findings-to-the-pull-request">73<h3 id="post-findings-to-the-pull-request">

74 Ergebnisse im Pull Request posten74 Ergebnisse im Pull Request veröffentlichen

75</h3>75</h3>

76 76 

77In Claude Code v2.1.227 oder später können Sie, wenn Sie einen Pull Request auf `github.com` überprüfen, Claude die fertigen Ergebnisse als einzelnen einfachen Kommentar von Ihrem eigenen GitHub-Konto im PR posten lassen. Der Kommentar ist keine Review oder Genehmigung und endet mit einer Notiz „Generated by Claude Code". Wenn Sie einen Branch oder einen GitHub Enterprise Server Pull Request überprüfen, zeigt Claude Code die Ergebnisse nur in Ihrer Sitzung an.77In Claude Code v2.1.227 oder später können Sie, wenn Sie einen Pull Request auf `github.com` überprüfen, Claude die fertigen Ergebnisse als einzelnen einfachen Kommentar von Ihrem eigenen GitHub-Konto im PR veröffentlichen lassen. Der Kommentar ist keine Überprüfung oder Genehmigung und endet mit einer Notiz „Generated by Claude Code". Wenn Sie einen Branch oder einen GitHub Enterprise Server Pull Request überprüfen, zeigt Claude Code die Ergebnisse nur in Ihrer Sitzung an.

78 78 

79Claude Code postet niemals, es sei denn, Sie wählen dies für diesen Durchlauf, und `--no-post` ist die Standardeinstellung. Das Posten ist eine Wahl, die Sie für jeden Durchlauf treffen:79Claude Code veröffentlicht niemals, es sei denn, Sie wählen dies bei diesem Durchlauf, und `--no-post` ist die Standardeinstellung. Das Veröffentlichen ist eine Wahl, die Sie für jeden Durchlauf treffen:

80 80 

81* **Interaktiv**: Wählen Sie im Startdialog **Run and post the findings to the PR as me** aus. Wenn Sie `--post` zum Befehl hinzufügen, wie in `/code-review ultra 1234 --post`, wählt Claude Code diese Option vor und fragt trotzdem vor dem Start.81* **Interaktiv**: Wählen Sie im Startdialog **Run and post the findings to the PR as me** aus. Wenn Sie `--post` zum Befehl hinzufügen, wie in `/code-review ultra 1234 --post`, wählt Claude Code diese Wahl vor und fragt trotzdem vor dem Start.

82* **Nicht-interaktiv**: Führen Sie den [`claude ultrareview` Subbefehl](#run-ultrareview-non-interactively) mit `--post` aus. Sie stimmen dem Posten zu, indem Sie den Subbefehl mit dem Flag ausführen, daher postet Claude Code ohne zu fragen. In einem `claude -p '/code-review ultra'` Durchlauf beendet Claude Code sich, bevor die Ergebnisse ankommen, daher postet es nichts; verwenden Sie stattdessen den Subbefehl.82* **Nicht-interaktiv**: Führen Sie den [`claude ultrareview` Unterbefehl](#run-ultrareview-non-interactively) mit `--post` aus. Sie stimmen dem Beitrag zu, indem Sie den Unterbefehl mit dem Flag ausführen, daher veröffentlicht Claude Code ohne zu fragen. Bei einem `claude -p '/code-review ultra'` Durchlauf beendet Claude Code die Ausführung, bevor die Ergebnisse ankommen, daher veröffentlicht es nichts; verwenden Sie stattdessen den Unterbefehl.

83 83 

84Claude Code postet nicht von Ihrem Computer. Es sendet die Review-Sitzungs-ID an die Anthropic API, die die gespeicherten Ergebnisse der Review als Kommentar über das GitHub-Konto postet, das Sie mit Claude verbunden haben. Das Posten erfordert die gleiche claude.ai-Anmeldung wie die Review selbst, und es ist nicht auf Drittanbieter verfügbar oder wenn Sie [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) gesetzt haben.84Claude Code veröffentlicht nicht von Ihrem Computer. Es sendet die Sitzungs-ID der Überprüfung an die Anthropic API, die die gespeicherten Ergebnisse der Überprüfung als Kommentar über das GitHub-Konto veröffentlicht, das Sie mit Claude verbunden haben. Das Veröffentlichen erfordert dieselbe claude.ai Anmeldung wie die Überprüfung selbst und ist nicht auf Drittanbieter-Providern oder wenn Sie [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/de/env-vars) setzen, verfügbar.

85 85 

86In einer interaktiven Sitzung startet Claude Code das Posten, wenn die Ergebnisse ankommen, daher halten Sie die Sitzung offen, bis die Review endet. Claude Code behält die Posten-Wahl nur in dieser Sitzung. Wenn die Sitzung endet, bevor die Review endet, postet Claude Code nichts, auch wenn Sie das Gespräch später fortsetzen.86In einer interaktiven Sitzung startet Claude Code die Veröffentlichung, wenn die Ergebnisse ankommen, daher halten Sie die Sitzung offen, bis die Überprüfung abgeschlossen ist. Claude Code behält die Veröffentlichungswahl nur in dieser Sitzung. Wenn die Sitzung endet, bevor die Überprüfung abgeschlossen ist, veröffentlicht Claude Code nichts, auch wenn Sie das Gespräch später fortsetzen.

87 87 

88Wenn das Posten endet, teilt Claude Ihnen das Ergebnis mit:88Wenn die Veröffentlichung abgeschlossen ist, teilt Claude Ihnen das Ergebnis mit:

89 89 

90* **Gepostet**: Claude gibt Ihnen einen Link zum Kommentar.90* **Posted**: Claude gibt Ihnen einen Link zum Kommentar.

91* **Bereits gepostet**: Ein früheres Posten der gleichen Review hat den Kommentar bereits auf dem PR platziert, daher verlinkt Claude Sie stattdessen zum Pull Request, anstatt erneut zu posten.91* **Already posted**: Ein früherer Beitrag derselben Überprüfung hat den Kommentar bereits im PR platziert, daher verlinkt Claude Sie stattdessen zum Pull Request, anstatt erneut zu veröffentlichen.

92* **Fehlgeschlagen**: Claude teilt Ihnen mit, warum, und die Ergebnisse bleiben in Ihrem Terminal, damit Sie sie manuell posten können.92* **Failed**: Claude teilt Ihnen mit, warum, und die Ergebnisse bleiben in Ihrem Terminal, damit Sie sie manuell veröffentlichen können.

93 93 

94<h3 id="pass-a-request-in-plain-words">94<h3 id="pass-a-request-in-plain-words">

95 Eine Anfrage in einfachen Worten übergeben95 Anfrage in einfachen Worten übergeben

96</h3>96</h3>

97 97 

98In Claude Code v2.1.218 oder später können Sie auch beschreiben, woran Sie arbeiten, in einfachen Worten:98In Claude Code v2.1.218 oder später können Sie auch beschreiben, woran Sie arbeiten, in einfachen Worten:


101/code-review ultra check my auth changes101/code-review ultra check my auth changes

102```102```

103 103 

104Die Review deckt immer noch Ihren aktuellen Branch ab, den gleichen Umfang wie das Ausführen ohne Argument. Claude behält Ihren Text als Notiz, die im Startdialog angezeigt wird, und bezieht die Ergebnisse darauf, wenn sie ankommen.104Die Überprüfung deckt immer noch Ihren aktuellen Branch ab, denselben Umfang wie das Ausführen ohne Argument. Claude behält Ihren Text als Notiz, die im Startdialog angezeigt wird, und bezieht die Ergebnisse darauf, wenn sie ankommen.

105 105 

106Claude Code behandelt Ihren Text nur als Notiz, wenn er mehr als ein Wort hat und kein Branch-Name oder PR-Verweis ist. Es liest ein einzelnes Wort als Branch-Namen oder PR-Verweis, daher erhält ein fehlerhafter Branch-Name den Fehler des nächstgelegenen Branches von [Review gegen eine andere Basis](#review-against-a-different-base) statt mit einer Notiz zu starten. Wenn Ihr Text einen PR-Verweis mit anderen Worten kombiniert, wie `check PR 123 again`, startet Claude Code auch nicht; es fordert Sie auf, mit nur der PR-Nummer erneut auszuführen, um diesen PR zu überprüfen, oder ohne den Verweis, um Ihren aktuellen Branch zu überprüfen.106Claude Code behandelt Ihren Text nur als Notiz, wenn er mehr als ein Wort hat und kein Branch-Name oder PR-Verweis ist. Es liest ein einzelnes Wort als Branch-Namen oder PR-Verweis, daher erhält ein fehlerhafter Branch-Name den Fehler des nächstgelegenen Branches von [Überprüfung gegen eine andere Basis](#review-against-a-different-base), anstatt mit einer Notiz zu starten. Wenn Ihr Text einen PR-Verweis mit anderen Worten kombiniert, wie `check PR 123 again`, startet Claude Code auch nicht; es fordert Sie auf, mit nur der PR-Nummer erneut auszuführen, um diesen PR zu überprüfen, oder ohne den Verweis, um Ihren aktuellen Branch zu überprüfen.

107 107 

108<Tip>108<Tip>

109 Wenn Ihr Repository zu groß zum Bündeln ist, fordert Claude Code Sie auf, stattdessen den PR-Modus zu verwenden. Pushen Sie Ihren Branch und öffnen Sie einen Draft PR, führen Sie dann `/code-review ultra <PR-number>` aus.109 Wenn Ihr Repository zu groß ist, um es zu bündeln, fordert Claude Code Sie auf, stattdessen den PR-Modus zu verwenden. Pushen Sie Ihren Branch und öffnen Sie einen Entwurf-PR, führen Sie dann `/code-review ultra <PR-number>` aus.

110</Tip>110</Tip>

111 111 

112<h3 id="diff-limits-and-fallbacks">112<h3 id="diff-limits-and-fallbacks">

113 Diff-Limits und Fallbacks113 Diff-Limits und Fallbacks

114</h3>114</h3>

115 115 

116Ultrareview überprüft den Diff, bevor irgendwelche Review-Arbeiten ausgeführt werden, und teilt Ihnen mit, wenn es ihn nicht wie vorhanden überprüfen kann:116Ultrareview überprüft den Diff, bevor eine Überprüfungsarbeit ausgeführt wird, und teilt Ihnen mit, wenn es ihn nicht wie gewohnt überprüfen kann:

117 117 

118* **Diff zu groß**: Eine Branch-Review kann standardmäßig bis zu 500 geänderte Dateien und 8.000 geänderte Zeilen enthalten. Die genauen Werte können sich ändern, und die [Ablehnung](/docs/de/errors#diff-is-too-large-for-ultrareview) nennt die geltenden Werte, die Größe Ihres Diffs und die Dateien mit den meisten geänderten Zeilen. Claude Code lehnt einen zu großen Pull Request auf die gleiche Weise ab und nennt seine Datei- und Zeilenanzahl, aber nicht die Aufschlüsselung pro Datei118* **Diff zu groß**: Eine Branch-Überprüfung kann standardmäßig bis zu 500 geänderte Dateien und 8.000 geänderte Zeilen enthalten. Die genauen Werte können sich ändern, und die [Ablehnung](/docs/de/errors#diff-is-too-large-for-ultrareview) nennt die geltenden Werte, die Größe Ihres Diff und die Dateien mit den meisten geänderten Zeilen. Claude Code lehnt einen zu großen Pull Request auf die gleiche Weise ab und nennt seine Datei- und Zeilenanzahl, aber nicht die Aufschlüsselung pro Datei

119* **Nichts zu überprüfen**: Wenn der Diff gegen die Basis leer ist, weigert sich Ultrareview und nennt den Branch oder Commit, gegen den es verglichen wurde, und den Fall, in dem Sie sich befinden, wie z. B. auf dem Basis-Branch selbst mit nichts Uncommitted, oder ein Branch, dessen Commits alle bereits Teil der Basis sind. Es schlägt auch den Weg aus diesem Fall vor, wie z. B. zum Branch mit Ihrer Arbeit wechseln, lokale Änderungen stagen oder committen, oder eine andere Basis übergeben119* **Nichts zu überprüfen**: Wenn der Diff gegen die Basis leer ist, lehnt ultrareview ab und nennt den Branch oder Commit, gegen den es verglichen wurde, und den Fall, in dem Sie sich befinden, wie z. B. auf dem Basis-Branch selbst mit nichts nicht committetetem, oder ein Branch, dessen Commits alle bereits Teil der Basis sind. Es schlägt auch den Weg aus diesem Fall vor, wie z. B. zum Branch mit Ihrer Arbeit wechseln, lokale Änderungen stagen oder committen, oder eine andere Basis übergeben

120* **Erster Commit**: Der erste Commit eines Repositories hat nichts Früheres zum Vergleichen, daher überprüft Ultrareview jede Datei darin, nachdem Sie im Startdialog bestätigt haben. Wenn Sie unverfolgbare Dateien haben, weigert es sich stattdessen und teilt Ihnen mit, die Dateien zu `git add`, die Sie überprüft haben möchten. Die gleichen Größenlimits gelten.120* **Erster Commit**: Der erste Commit eines Repositories hat nichts Früheres zum Vergleichen, daher überprüft ultrareview jede Datei darin, nachdem Sie im Startdialog bestätigt haben. Wenn Sie nicht verfolgte Dateien haben, lehnt es stattdessen ab und teilt Ihnen mit, `git add` die Dateien auszuführen, die Sie überprüft haben möchten. Die gleichen Größenlimits gelten.

121 121 

122 Ein erster Commit wird nur nach dieser Bestätigung ganz überprüft, daher weigern sich der `claude ultrareview` Subbefehl und `claude -p` und verweisen Sie auf eine interaktive Sitzung stattdessen. Erfordert Claude Code v2.1.277 oder später122 Ein erster Commit wird nur nach dieser Bestätigung ganz überprüft, daher lehnen der `claude ultrareview` Unterbefehl und `claude -p` ihn ab und verweisen Sie auf eine interaktive Sitzung statt. Erfordert Claude Code v2.1.277 oder später

123* **Keine Merge-Basis**: Wenn Ihr Branch keine Historie mit dem Basis-Branch teilt, oder das Repository keinen Basis-Branch zum Vergleichen hat, überprüft Ultrareview stattdessen jede verfolgbare Datei im Repository. Das Fallback erfordert einen vollständigen Clone und wendet die gleichen Größenlimits an. Es wird nur gestartet, wenn Sie im Startdialog bestätigen oder den `claude ultrareview` Subbefehl selbst ausführen. In `claude -p` und überall sonst, wo keines davon passiert, weigert sich Ultrareview, sagt, die Review würde jede Datei abdecken, und verweist Sie auf eine interaktive Sitzung.123* **Keine Merge-Basis**: Wenn Ihr Branch keine Historie mit dem Basis-Branch teilt, oder das Repository keinen Basis-Branch zum Vergleichen hat, überprüft ultrareview stattdessen jede verfolgte Datei im Repository. Das Fallback erfordert einen vollständigen Klon und wendet die gleichen Größenlimits an. Es wird nur gestartet, wenn Sie im Startdialog bestätigen oder den `claude ultrareview` Unterbefehl selbst ausführen. In `claude -p` und überall sonst, wo keines von beiden geschieht, lehnt ultrareview ab, sagt, dass die Überprüfung jede Datei abdecken würde, und verweist Sie auf eine interaktive Sitzung.

124 124 

125 Bei einem Checkout ohne Branches oder andere Refs, wie ein detached HEAD, der durch Auschecken von `FETCH_HEAD` nach dem Abrufen einer URL erstellt wurde, [lehnt Claude Code die Review ab](/docs/de/errors#your-checkout-has-no-branches) und schlägt vor, zuerst einen Branch zu erstellen125 Bei einem Checkout ohne Branches oder andere Refs, wie ein detached HEAD, der durch Auschecken von `FETCH_HEAD` nach dem Abrufen einer URL erstellt wurde, [lehnt Claude Code die Überprüfung ab](/docs/de/errors#your-checkout-has-no-branches) und schlägt vor, zuerst einen Branch zu erstellen

126 126 

127<h2 id="pricing-and-free-runs">127<h2 id="pricing-and-free-runs">

128 Preisgestaltung und kostenlose Durchläufe128 Preisgestaltung und kostenlose Durchläufe

vs-code.md +25 −5

Details

58 58 

59 * **Aktivitätsleiste**: Klicken Sie auf das Spark-Symbol in der linken Seitenleiste, um die Sitzungsliste zu öffnen. Klicken Sie auf eine beliebige Sitzung, um sie an Ihrem [bevorzugten Ort](#extension-settings) zu öffnen, oder starten Sie eine neue. Dieses Symbol ist immer in der Aktivitätsleiste sichtbar.59 * **Aktivitätsleiste**: Klicken Sie auf das Spark-Symbol in der linken Seitenleiste, um die Sitzungsliste zu öffnen. Klicken Sie auf eine beliebige Sitzung, um sie an Ihrem [bevorzugten Ort](#extension-settings) zu öffnen, oder starten Sie eine neue. Dieses Symbol ist immer in der Aktivitätsleiste sichtbar.

60 * **Befehlspalette**: `Cmd+Shift+P` (Mac) oder `Ctrl+Shift+P` (Windows/Linux), geben Sie „Claude Code" ein und wählen Sie eine Option wie „In neuem Tab öffnen"60 * **Befehlspalette**: `Cmd+Shift+P` (Mac) oder `Ctrl+Shift+P` (Windows/Linux), geben Sie „Claude Code" ein und wählen Sie eine Option wie „In neuem Tab öffnen"

61 * **Statusleiste**: Wenn Sie [`preferredLocation`](#extension-settings) auf `sidebar` gesetzt haben oder Claude mit **Claude Code: In Seitenleiste öffnen** geöffnet haben, klicken Sie auf **✻ Claude Code** in der unteren rechten Ecke des Fensters. Dies funktioniert auch, wenn keine Datei geöffnet ist.61 * **Statusleiste**: Klicken Sie auf **✻ Claude Code** in der unteren rechten Ecke des Fensters. Dies funktioniert auch, wenn keine Datei geöffnet ist.

62 62 

63 Sie können das Claude-Panel ziehen, um es überall in VS Code zu repositionieren. Weitere Informationen finden Sie unter [Passen Sie Ihren Arbeitsablauf an](#customize-your-workflow).63 Sie können das Claude-Panel ziehen, um es überall in VS Code zu repositionieren. Weitere Informationen finden Sie unter [Passen Sie Ihren Arbeitsablauf an](#customize-your-workflow).

64 </Step>64 </Step>


362 362 

363Auf der Registerkarte Plugins:363Auf der Registerkarte Plugins:

364 364 

365* **Installierte Plugins** werden oben mit Umschaltern angezeigt, um sie zu aktivieren oder zu deaktivieren365* **Installierte Plugins** werden oben mit Umschaltern angezeigt, um sie zu aktivieren oder zu deaktivieren.

366 * Wenn Sie ein Plugin deaktivieren, das die gemeinsame `.claude/settings.json` Ihres Projekts aktiviert, fragt die Erweiterung zuerst: **Für mich deaktivieren** deaktiviert es nur für Sie, während **Für alle deaktivieren** die gemeinsame Datei ändert.

366* **Verfügbare Plugins** aus Ihren konfigurierten Marketplaces werden darunter angezeigt367* **Verfügbare Plugins** aus Ihren konfigurierten Marketplaces werden darunter angezeigt

367* Suchen Sie, um Plugins nach Name oder Beschreibung zu filtern368* Suchen Sie, um Plugins nach Name oder Beschreibung zu filtern

368* Klicken Sie auf **Installieren** für jedes verfügbare Plugin369* Klicken Sie auf **Installieren** für jedes verfügbare Plugin


373* **Für dieses Projekt installieren**: geteilt mit Projektmitarbeitern (Projektbereich)374* **Für dieses Projekt installieren**: geteilt mit Projektmitarbeitern (Projektbereich)

374* **Lokal installieren**: nur für Sie, nur in diesem Repository (lokaler Bereich)375* **Lokal installieren**: nur für Sie, nur in diesem Repository (lokaler Bereich)

375 376 

377Nachdem die Installation abgeschlossen ist, fragt ein Formular nach allen [Konfigurationsoptionen](/docs/de/plugins/components#user-configuration) des Plugins, die noch nicht festgelegt sind. Um die Optionen später zu überprüfen oder zu ändern, klicken Sie auf das Zahnradsymbol in der Zeile des Plugins.

378 

379Sensible Textfelder sind maskiert, und ein Geheimnis, das Sie zuvor gespeichert haben, zeigt **(unverändert)**. Lassen Sie das Feld leer, um den gespeicherten Wert beizubehalten.

380 

381Nachdem Sie Änderungen speichern, laden die offenen Sitzungen ihre Plugins neu und der Dialog zeigt **Claude neu starten, um Plugin-Änderungen anzuwenden**.

382 

383<h3 id="uninstall-plugins">

384 Plugins deinstallieren

385</h3>

386 

387Jede installierte Zeile nennt den [Bereich](/docs/de/plugins/install#choose-an-install-scope), in dem sie installiert ist. Um diese Installation zu deinstallieren, klicken Sie auf das Papierkorbsymbol der Zeile. Ein abgeblendetes Papierkorbsymbol markiert eine Zeile, die Sie nicht aus diesem Arbeitsbereich deinstallieren können, z. B. ein Plugin, das Ihre Organisation verwaltet, oder eines, das für ein anderes Projekt installiert ist.

388 

389Die Erweiterung fragt zuerst in zwei Fällen:

390 

391* **Ein Plugin, das die gemeinsame `.claude/settings.json` Ihres Projekts aktiviert**: Wählen Sie **Für mich deaktivieren**, was das Plugin für Ihre Mitarbeiter installiert hält, oder **Für alle deinstallieren**, was die Installation des Projekts mit [`--keep-data`](/docs/de/plugins/cli-reference#what-an-uninstall-deletes-and-keeps) entfernt, sodass das Datenverzeichnis des Plugins erhalten bleibt. Wenn Sie das Plugin bereits für sich selbst deaktiviert haben, entfernt das Papierkorbsymbol Ihre eigene Installation ohne die Frage.

392* **Andernfalls die letzte Installation eines Plugins mit gespeicherten Daten**: Wählen Sie, ob Sie die Daten behalten oder löschen möchten; **Behalten** ist die Standardeinstellung

393 

376<h3 id="share-a-plugin-install-link">394<h3 id="share-a-plugin-install-link">

377 Plugin-Installationslink teilen395 Plugin-Installationslink teilen

378</h3>396</h3>


407 425 

408* Geben Sie ein GitHub-Repository, eine URL oder einen lokalen Pfad ein, um einen neuen Marketplace hinzuzufügen426* Geben Sie ein GitHub-Repository, eine URL oder einen lokalen Pfad ein, um einen neuen Marketplace hinzuzufügen

409* Klicken Sie auf das Aktualisierungssymbol, um die Plugin-Liste eines Marketplace zu aktualisieren427* Klicken Sie auf das Aktualisierungssymbol, um die Plugin-Liste eines Marketplace zu aktualisieren

410* Klicken Sie auf das Papierkorbsymbol, um einen Marketplace zu entfernen428* Klicken Sie auf das Papierkorbsymbol, um einen Marketplace zu entfernen. Das Entfernen [deinstalliert jedes Plugin, das Sie von ihm installiert haben](/docs/de/plugins/install#manage-marketplaces), daher nennt eine Bestätigung diese Plugins zuerst

429 

430Plugin-Änderungen, die Sie im Dialog vornehmen, werden sofort auf die Claude Code-Sitzungen angewendet, die in diesem VS Code-Fenster geöffnet sind.

411 431 

412Plugin-Änderungen, die Sie im Dialog vornehmen, werden sofort auf die Claude Code-Sitzungen angewendet, die in diesem VS Code-Fenster geöffnet sind. Wenn die Sitzung, aus der Sie den Dialog geöffnet haben, ihre Plugins nicht neu laden kann, bietet der Dialog an, es erneut zu versuchen oder Claude in dieser Sitzung neu zu starten.432Wenn die Sitzung, aus der Sie den Dialog geöffnet haben, ihre Plugins nicht neu laden kann, bietet der Dialog an, es erneut zu versuchen oder Claude in dieser Sitzung neu zu starten.

413 433 

414<Note>434<Note>

415 Die Plugin-Verwaltung in VS Code verwendet unter der Haube die gleichen CLI-Befehle. Plugins und Marketplaces, die Sie in der Erweiterung konfigurieren, sind auch in der CLI verfügbar, und umgekehrt.435 Die Plugin-Verwaltung in VS Code verwendet unter der Haube die gleichen CLI-Befehle. Plugins und Marketplaces, die Sie in der Erweiterung konfigurieren, sind auch in der CLI verfügbar, und umgekehrt.


7904. **Deaktivieren Sie in Konflikt stehende Erweiterungen**: Deaktivieren Sie vorübergehend andere KI-Erweiterungen (Cline, Continue, usw.)8104. **Deaktivieren Sie in Konflikt stehende Erweiterungen**: Deaktivieren Sie vorübergehend andere KI-Erweiterungen (Cline, Continue, usw.)

7915. **Überprüfen Sie die Workspace-Vertrauenswürdigkeit**: Die Erweiterung funktioniert nicht im eingeschränkten Modus8115. **Überprüfen Sie die Workspace-Vertrauenswürdigkeit**: Die Erweiterung funktioniert nicht im eingeschränkten Modus

792 812 

793Alternativ können Sie, wenn Sie [`preferredLocation`](#extension-settings) auf `sidebar` gesetzt haben oder Claude mit **Claude Code: Open in Side Bar** geöffnet haben, auf „✻ Claude Code" in der **Statusleiste** (unten rechts) klicken. Dies funktioniert auch ohne geöffnete Datei. Sie können auch die **Befehlspalette** (`Cmd+Shift+P` / `Ctrl+Shift+P`) verwenden und „Claude Code" eingeben.813Alternativ können Sie auf **✻ Claude Code** in der **Statusleiste** (unten rechts) klicken. Dies funktioniert auch ohne geöffnete Datei. Sie können auch die **Befehlspalette** (`Cmd+Shift+P` / `Ctrl+Shift+P`) verwenden und „Claude Code" eingeben.

794 814 

795<h3 id="cmd-esc-does-nothing-on-macos">815<h3 id="cmd-esc-does-nothing-on-macos">

796 Cmd+Esc funktioniert auf macOS nicht816 Cmd+Esc funktioniert auf macOS nicht

worktrees.md +1 −1

Details

145* Der Worktree gehört zu einer `--worktree`-Sitzung, die Sie nicht in den Hintergrund verschoben haben, unabhängig von seinem Alter.145* Der Worktree gehört zu einer `--worktree`-Sitzung, die Sie nicht in den Hintergrund verschoben haben, unabhängig von seinem Alter.

146* Sie haben den Worktree selbst mit `git worktree add` erstellt, auch wenn Sie dann eine `--worktree <name>`-Sitzung darin ausgeführt und diese Sitzung in den Hintergrund verschoben haben.146* Sie haben den Worktree selbst mit `git worktree add` erstellt, auch wenn Sie dann eine `--worktree <name>`-Sitzung darin ausgeführt und diese Sitzung in den Hintergrund verschoben haben.

147 147 

148Claude Code schreibt einen Marker in die Git-Metadaten jedes Worktrees, den es mit Git erstellt, und die Bereinigung behält jeden Worktree ohne einen, einschließlich eines, den ein [`WorktreeCreate`-Hook](#non-git-version-control) erstellt hat. Vor v2.1.246 prüfte die Bereinigung nicht auf den Marker und konnte einen Worktree entfernen, den Sie selbst erstellt haben, wenn ein alter Hintergrund-Sitzungs-Datensatz darauf verweist.148Claude Code schreibt einen Marker in die Git-Metadaten jedes Worktrees, den es mit Git erstellt, und die Bereinigung behält jeden Worktree ohne einen, einschließlich eines, den ein [`WorktreeCreate`-Hook](#non-git-version-control) erstellt hat.

149 149 

150Während ein Agent läuft, hält Claude Code eine `git worktree lock` auf seinem Worktree, sodass gleichzeitige Bereinigung ihn nicht entfernen kann, und gibt die Sperre frei, wenn der Agent beendet wird. Claude Code hält die gleiche Sperre auf dem Worktree, den es für eine Hintergrund-Sitzung erstellt hat, während die Sitzung läuft, sodass die Bereinigung den Worktree an Ort und Stelle hinterlässt und `git worktree remove` sich weigert, ihn zu entfernen.150Während ein Agent läuft, hält Claude Code eine `git worktree lock` auf seinem Worktree, sodass gleichzeitige Bereinigung ihn nicht entfernen kann, und gibt die Sperre frei, wenn der Agent beendet wird. Claude Code hält die gleiche Sperre auf dem Worktree, den es für eine Hintergrund-Sitzung erstellt hat, während die Sitzung läuft, sodass die Bereinigung den Worktree an Ort und Stelle hinterlässt und `git worktree remove` sich weigert, ihn zu entfernen.

151 151