SpyBara
Go Premium

Documentation 2026-05-11 23:00 UTC to 2026-05-12 22:57 UTC

33 files changed +1,763 −339. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

agent-sdk/hooks.md +10 −10

Details

24 </Step>24 </Step>

25 25 

26 <Step title="Das SDK sammelt registrierte Hooks">26 <Step title="Das SDK sammelt registrierte Hooks">

27 Das SDK prüft auf Hooks, die für diesen Ereignistyp registriert sind. Dies umfasst Callback-Hooks, die Sie in `options.hooks` übergeben, und Shell-Befehls-Hooks aus Einstellungsdateien, wenn der entsprechende [`settingSources`](/de/agent-sdk/typescript#setting-source) oder [`setting_sources`](/de/agent-sdk/python#setting-source) Eintrag aktiviert ist, was für Standard-`query()`-Optionen der Fall ist.27 Das SDK prüft auf Hooks, die für diesen Ereignistyp registriert sind. Dies umfasst Callback-Hooks, die Sie in `options.hooks` übergeben, und Shell-Befehls-Hooks aus Einstellungsdateien, wenn der entsprechende [`settingSources`](/de/agent-sdk/typescript#settingsource) oder [`setting_sources`](/de/agent-sdk/python#settingsource) Eintrag aktiviert ist, was für Standard-`query()`-Optionen der Fall ist.

28 </Step>28 </Step>

29 29 

30 <Step title="Matcher filtern, welche Hooks ausgeführt werden">30 <Step title="Matcher filtern, welche Hooks ausgeführt werden">


225 225 

226Jeder Hook-Callback erhält drei Argumente:226Jeder Hook-Callback erhält drei Argumente:

227 227 

228* **Eingabedaten:** ein typisiertes Objekt mit Ereignisdetails. Jeder Hook-Typ hat seine eigene Eingabeform (z. B. `PreToolUseHookInput` enthält `tool_name` und `tool_input`, während `NotificationHookInput` `message` enthält). Siehe die vollständigen Typdefinitionen in den [TypeScript](/de/agent-sdk/typescript#hook-input) und [Python](/de/agent-sdk/python#hook-input) SDK-Referenzen.228* **Eingabedaten:** ein typisiertes Objekt mit Ereignisdetails. Jeder Hook-Typ hat seine eigene Eingabeform (z. B. `PreToolUseHookInput` enthält `tool_name` und `tool_input`, während `NotificationHookInput` `message` enthält). Siehe die vollständigen Typdefinitionen in den [TypeScript](/de/agent-sdk/typescript#hookinput) und [Python](/de/agent-sdk/python#hookinput) SDK-Referenzen.

229 * Alle Hook-Eingaben teilen `session_id`, `cwd` und `hook_event_name`.229 * Alle Hook-Eingaben teilen `session_id`, `cwd` und `hook_event_name`.

230 * `agent_id` und `agent_type` werden ausgefüllt, wenn der Hook in einem Subagent ausgelöst wird. In TypeScript befinden sich diese in der Basis-Hook-Eingabe und sind für alle Hook-Typen verfügbar. In Python sind sie nur auf `PreToolUse`, `PostToolUse` und `PostToolUseFailure` vorhanden.230 * `agent_id` und `agent_type` werden ausgefüllt, wenn der Hook in einem Subagent ausgelöst wird. In TypeScript befinden sich diese in der Basis-Hook-Eingabe und sind für alle Hook-Typen verfügbar. In Python sind sie nur auf `PreToolUse`, `PostToolUse` und `PostToolUseFailure` vorhanden.

231* **Tool-Verwendungs-ID** (`str | None` / `string | undefined`): korreliert `PreToolUse` und `PostToolUse` Ereignisse für denselben Tool-Aufruf.231* **Tool-Verwendungs-ID** (`str | None` / `string | undefined`): korreliert `PreToolUse` und `PostToolUse` Ereignisse für denselben Tool-Aufruf.


236Ihr Callback gibt ein Objekt mit zwei Kategorien von Feldern zurück:236Ihr Callback gibt ein Objekt mit zwei Kategorien von Feldern zurück:

237 237 

238* **Top-Level-Felder** steuern das Gespräch: `systemMessage` fügt eine Nachricht in das Gespräch ein, die für das Modell sichtbar ist, und `continue` (`continue_` in Python) bestimmt, ob der Agent nach diesem Hook weiterläuft.238* **Top-Level-Felder** steuern das Gespräch: `systemMessage` fügt eine Nachricht in das Gespräch ein, die für das Modell sichtbar ist, und `continue` (`continue_` in Python) bestimmt, ob der Agent nach diesem Hook weiterläuft.

239* **`hookSpecificOutput`** steuert die aktuelle Operation. Die Felder darin hängen vom Hook-Ereignistyp ab. Für `PreToolUse` Hooks ist dies der Ort, an dem Sie `permissionDecision` (`"allow"`, `"deny"` oder `"ask"`), `permissionDecisionReason` und `updatedInput` setzen. Im TypeScript SDK akzeptiert `permissionDecision` auch `"defer"`, um die Abfrage zu beenden und [später fortzufahren](/de/hooks#defer-a-tool-call-for-later); dieser Wert ist im Python SDK nicht verfügbar. Für `PostToolUse` Hooks können Sie `additionalContext` setzen, um Informationen zum Tool-Ergebnis anzuhängen, oder `updatedToolOutput`, um die Ausgabe des Tools vollständig zu ersetzen, bevor Claude sie sieht.239* **`hookSpecificOutput`** steuert die aktuelle Operation. Die Felder darin hängen vom Hook-Ereignistyp ab. Für `PreToolUse` Hooks ist dies der Ort, an dem Sie `permissionDecision` (`"allow"`, `"deny"`, `"ask"` oder `"defer"`), `permissionDecisionReason` und `updatedInput` setzen. Wenn Sie `"defer"` zurückgeben, endet die Abfrage, damit Sie sie [später fortsetzen](/de/hooks#defer-a-tool-call-for-later) können. Für `PostToolUse` Hooks können Sie `additionalContext` setzen, um Informationen zum Tool-Ergebnis anzuhängen, oder `updatedToolOutput`, um die Ausgabe des Tools vollständig zu ersetzen, bevor Claude sie sieht.

240 240 

241Geben Sie `{}` zurück, um die Operation ohne Änderungen zuzulassen. SDK-Callback-Hooks verwenden das gleiche JSON-Ausgabeformat wie [Claude Code Shell-Befehls-Hooks](/de/hooks#json-output), das jedes Feld und ereignisspezifische Option dokumentiert. Für die SDK-Typdefinitionen siehe die [TypeScript](/de/agent-sdk/typescript#sync-hook-json-output) und [Python](/de/agent-sdk/python#sync-hook-json-output) SDK-Referenzen.241Geben Sie `{}` zurück, um die Operation ohne Änderungen zuzulassen. SDK-Callback-Hooks verwenden das gleiche JSON-Ausgabeformat wie [Claude Code Shell-Befehls-Hooks](/de/hooks#json-output), das jedes Feld und ereignisspezifische Option dokumentiert. Für die SDK-Typdefinitionen siehe die [TypeScript](/de/agent-sdk/typescript#synchookjsonoutput) und [Python](/de/agent-sdk/python#synchookjsonoutput) SDK-Referenzen.

242 242 

243<Note>243<Note>

244 Wenn mehrere Hooks oder Berechtigungsregeln gelten, hat **deny** Vorrang vor **defer**, was Vorrang vor **ask** hat, was Vorrang vor **allow** hat. Wenn ein Hook `deny` zurückgibt, wird die Operation blockiert, unabhängig von anderen Hooks.244 Wenn mehrere Hooks oder Berechtigungsregeln gelten, hat **deny** Vorrang vor **defer**, was Vorrang vor **ask** hat, was Vorrang vor **allow** hat. Wenn ein Hook `deny` zurückgibt, wird die Operation blockiert, unabhängig von anderen Hooks.


326</CodeGroup>326</CodeGroup>

327 327 

328<Note>328<Note>

329 Wenn Sie `updatedInput` verwenden, müssen Sie auch `permissionDecision: 'allow'` einschließen. Geben Sie immer ein neues Objekt zurück, anstatt das ursprüngliche `tool_input` zu mutieren.329 Wenn Sie `updatedInput` verwenden, müssen Sie auch `permissionDecision: 'allow'` einschließen, um die geänderte Eingabe automatisch zu genehmigen, oder `permissionDecision: 'ask'`, um sie dem Benutzer anzuzeigen. Mit `'defer'` wird `updatedInput` ignoriert. Geben Sie immer ein neues Objekt zurück, anstatt das ursprüngliche `tool_input` zu mutieren.

330</Note>330</Note>

331 331 

332### Kontext hinzufügen und ein Tool blockieren332### Kontext hinzufügen und ein Tool blockieren


489 489 

490### Subagent-Aktivität verfolgen490### Subagent-Aktivität verfolgen

491 491 

492Verwenden Sie `SubagentStop` Hooks, um zu überwachen, wenn Subagents ihre Arbeit beenden. Siehe den vollständigen Eingabetyp in den [TypeScript](/de/agent-sdk/typescript#hook-input) und [Python](/de/agent-sdk/python#hook-input) SDK-Referenzen. Dieses Beispiel protokolliert eine Zusammenfassung jedes Mal, wenn ein Subagent abgeschlossen wird:492Verwenden Sie `SubagentStop` Hooks, um zu überwachen, wenn Subagents ihre Arbeit beenden. Siehe den vollständigen Eingabetyp in den [TypeScript](/de/agent-sdk/typescript#hookinput) und [Python](/de/agent-sdk/python#hookinput) SDK-Referenzen. Dieses Beispiel protokolliert eine Zusammenfassung jedes Mal, wenn ein Subagent abgeschlossen wird:

493 493 

494<CodeGroup>494<CodeGroup>

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


621 621 

622### Benachrichtigungen an Slack weiterleiten622### Benachrichtigungen an Slack weiterleiten

623 623 

624Verwenden Sie `Notification` Hooks, um Systembenachrichtigungen vom Agent zu empfangen und sie an externe Dienste weiterzuleiten. Benachrichtigungen werden für bestimmte Ereignistypen ausgelöst: `permission_prompt` (Claude benötigt Genehmigung), `idle_prompt` (Claude wartet auf Eingabe), `auth_success` (Authentifizierung abgeschlossen) und `elicitation_dialog` (Claude fordert den Benutzer auf). Jede Benachrichtigung enthält ein `message` Feld mit einer für Menschen lesbaren Beschreibung und optional einen `title`.624Verwenden Sie `Notification` Hooks, um Systembenachrichtigungen vom Agent zu empfangen und sie an externe Dienste weiterzuleiten. Benachrichtigungen werden für bestimmte Ereignistypen ausgelöst: `permission_prompt` (Claude benötigt Genehmigung), `idle_prompt` (Claude wartet auf Eingabe), `auth_success` (Authentifizierung abgeschlossen), `elicitation_dialog` (Claude fordert den Benutzer auf), `elicitation_response` (der Benutzer hat auf eine Elicitation geantwortet) und `elicitation_complete` (eine Elicitation wurde geschlossen). Jede Benachrichtigung enthält ein `message` Feld mit einer für Menschen lesbaren Beschreibung und optional einen `title`.

625 625 

626Dieses Beispiel leitet jede Benachrichtigung an einen Slack-Kanal weiter. Es erfordert eine [Slack Incoming Webhook URL](https://api.slack.com/messaging/webhooks), die Sie erstellen, indem Sie eine App zu Ihrem Slack-Workspace hinzufügen und Incoming Webhooks aktivieren:626Dieses Beispiel leitet jede Benachrichtigung an einen Slack-Kanal weiter. Es erfordert eine [Slack Incoming Webhook URL](https://api.slack.com/messaging/webhooks), die Sie erstellen, indem Sie eine App zu Ihrem Slack-Workspace hinzufügen und Incoming Webhooks aktivieren:

627 627 


727* Überprüfen Sie, ob Ihr Matcher-Muster den Tool-Namen genau abgleicht727* Überprüfen Sie, ob Ihr Matcher-Muster den Tool-Namen genau abgleicht

728* Stellen Sie sicher, dass der Hook unter dem richtigen Ereignistyp in `options.hooks` ist728* Stellen Sie sicher, dass der Hook unter dem richtigen Ereignistyp in `options.hooks` ist

729* Für Nicht-Tool-Hooks wie `Stop` und `SubagentStop` gleichen Matcher gegen verschiedene Felder ab (siehe [Matcher-Muster](/de/hooks#matcher-patterns))729* Für Nicht-Tool-Hooks wie `Stop` und `SubagentStop` gleichen Matcher gegen verschiedene Felder ab (siehe [Matcher-Muster](/de/hooks#matcher-patterns))

730* Hooks werden möglicherweise nicht ausgelöst, wenn der Agent das [`max_turns`](/de/agent-sdk/python#claude-agent-options) Limit erreicht, da die Sitzung endet, bevor Hooks ausgeführt werden können730* Hooks werden möglicherweise nicht ausgelöst, wenn der Agent das [`max_turns`](/de/agent-sdk/python#claudeagentoptions) Limit erreicht, da die Sitzung endet, bevor Hooks ausgeführt werden können

731 731 

732### Matcher filtert nicht wie erwartet732### Matcher filtert nicht wie erwartet

733 733 


769 };769 };

770 ```770 ```

771 771 

772* Sie müssen auch `permissionDecision: 'allow'` zurückgeben, damit die Eingabeänderung wirksam wird772* Sie müssen auch `permissionDecision: 'allow'` oder `'ask'` zurückgeben, damit die Eingabeänderung wirksam wird

773 773 

774* Schließen Sie `hookEventName` in `hookSpecificOutput` ein, um zu identifizieren, für welchen Hook-Typ die Ausgabe bestimmt ist774* Schließen Sie `hookEventName` in `hookSpecificOutput` ein, um zu identifizieren, für welchen Hook-Typ die Ausgabe bestimmt ist

775 775 

776### Sitzungs-Hooks nicht in Python verfügbar776### Sitzungs-Hooks nicht in Python verfügbar

777 777 

778`SessionStart` und `SessionEnd` können als SDK-Callback-Hooks in TypeScript registriert werden, sind aber im Python SDK nicht verfügbar (`HookEvent` lässt sie weg). In Python sind sie nur als [Shell-Befehls-Hooks](/de/hooks#hook-events) verfügbar, die in Einstellungsdateien definiert sind (z. B. `.claude/settings.json`). Um Shell-Befehls-Hooks aus Ihrer SDK-Anwendung zu laden, schließen Sie die entsprechende Einstellungsquelle mit [`setting_sources`](/de/agent-sdk/python#setting-source) oder [`settingSources`](/de/agent-sdk/typescript#setting-source) ein:778`SessionStart` und `SessionEnd` können als SDK-Callback-Hooks in TypeScript registriert werden, sind aber im Python SDK nicht verfügbar (`HookEvent` lässt sie weg). In Python sind sie nur als [Shell-Befehls-Hooks](/de/hooks#hook-events) verfügbar, die in Einstellungsdateien definiert sind (z. B. `.claude/settings.json`). Um Shell-Befehls-Hooks aus Ihrer SDK-Anwendung zu laden, schließen Sie die entsprechende Einstellungsquelle mit [`setting_sources`](/de/agent-sdk/python#settingsource) oder [`settingSources`](/de/agent-sdk/typescript#settingsource) ein:

779 779 

780<CodeGroup>780<CodeGroup>

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

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# Ändern von Systemaufforderungen

6 

7> Wählen Sie zwischen der `claude_code`-Voreinstellung und einer benutzerdefinierten Systemaufforderung, und passen Sie das Verhalten mit CLAUDE.md, Ausgabestilen, Append oder einer vollständig benutzerdefinierten Aufforderung an.

8 

9Systemaufforderungen definieren Claudes Verhalten, Fähigkeiten und Antwortstil. Beginnen Sie mit der `claude_code`-Voreinstellung für CLI- oder IDE-ähnliche Codierungswerkzeuge, bei denen ein Mensch die Arbeit beobachtet und steuert. Schreiben Sie Ihre eigene Aufforderung für Agenten mit einer anderen Oberfläche, Identität oder einem anderen Berechtigungsmodell.

10 

11Diese Seite behandelt:

12 

13* [Wie Systemaufforderungen funktionieren](#how-system-prompts-work), mit einer Entscheidungstabelle zur Wahl zwischen der Voreinstellung, der Voreinstellung mit `append` und einer benutzerdefinierten Aufforderung

14* [Passen Sie das Verhalten des Agenten an](#customize-agent-behavior) mit CLAUDE.md-Dateien, Ausgabestilen, `append` oder einer benutzerdefinierten Zeichenkette

15* [Vergleichen Sie die vier Ansätze](#compare-the-four-approaches) nach Persistenz, Umfang und was sie bewahren

16* [Kombinieren Sie Ansätze](#combine-approaches), um Anpassungsmethoden übereinander zu schichten

17 

18## Wie Systemaufforderungen funktionieren

19 

20Eine Systemaufforderung ist der anfängliche Anweisungssatz, der definiert, wie sich Claude während eines Gesprächs verhält. Das Agent SDK hat drei Ausgangspunkte dafür:

21 

22* **Minimale Standardeinstellung**: Wenn Sie `systemPrompt` in TypeScript oder `system_prompt` in Python nicht festlegen, verwendet das SDK eine minimale Aufforderung, die Werkzeugaufrufe abdeckt, aber Claude Code's Codierungsrichtlinien, Antwortstil und Projektkontext auslässt. Dies unterscheidet sich von `claude -p`, das standardmäßig die vollständige Claude Code-Aufforderung verwendet. Wenn Sie von der CLI migrieren und ein übereinstimmendes Verhalten wünschen, legen Sie die `claude_code`-Voreinstellung fest.

23* **`claude_code`-Voreinstellung**: die vollständige Systemaufforderung, die die Claude Code CLI verwendet, mit Werkzeugnutzungsanweisungen, Code-Stil- und Formatierungsrichtlinien, Antworttone und Ausführlichkeitsregeln, Sicherheits- und Sicherheitsanweisungen sowie Kontext zum Arbeitsverzeichnis und zur Umgebung. Legen Sie `systemPrompt: { type: "preset", preset: "claude_code" }` in TypeScript oder `system_prompt={"type": "preset", "preset": "claude_code"}` in Python fest, optional mit `append`, um Ihre eigenen Anweisungen am Ende hinzuzufügen.

24* **Benutzerdefinierte Zeichenkette**: eine Aufforderung, die Sie selbst schreiben. Das SDK sendet nur das, was Sie bereitstellen.

25 

26### Entscheiden Sie sich für einen Ausgangspunkt

27 

28Der entscheidende Faktor ist, wie sehr Ihr Agent Claude Code ähnelt: ein Codierungs-Agent, der in einem Repository arbeitet, mit einem Menschen, der die Streaming-Ausgabe beobachtet und die Arbeit lenkt. Je weiter Ihr Produkt davon entfernt ist, desto mehr werden Sie Ihre eigene Aufforderung schreiben wollen.

29 

30| Sie bauen | Verwenden Sie | Was Sie erhalten |

31| :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

32| Ein CLI- oder IDE-ähnliches Codierungswerkzeug, bei dem ein Mensch beobachtet und lenkt, und Claude Code's Standardeinstellungen sind das, was Sie wünschen | `claude_code`-Voreinstellung | Die vollständige Claude Code-Aufforderung: Werkzeuganleitung, Sicherheitsregeln, terminalfreundliche Antworten, Bewusstsein für Repository-Konventionen |

33| Das gleiche Werkzeug plus produktspezifische Regeln wie Codierungsstandards, Ausgabeformat oder Domänenkontext | `claude_code`-Voreinstellung mit `append` | Alles oben Genannte, mit Ihren Anweisungen nach der Voreinstellung hinzugefügt. Nichts wird entfernt, daher ist dies die Anpassung mit dem niedrigsten Risiko |

34| Ein Agent mit einer anderen Oberfläche, Identität oder Berechtigungsmodell, oder ein Nicht-Codierungs-Agent | Benutzerdefinierte Aufforderungszeichenkette | Nur das, was Sie schreiben. Sie tragen die Verantwortung für das Ersetzen der Werkzeuganleitung und Sicherheitsanweisungen, die Ihr Agent noch benötigt |

35| Eine dünne Werkzeugaufrufs-Schleife ohne Agent-Persona, bei der Sie alles Verhalten in der Benutzeraufforderung bereitstellen | Keine `systemPrompt`-Option | Die minimale Standardeinstellung: Werkzeugaufrufs-Unterstützung und nichts anderes |

36 

37„Unterschiedlich von Claude Code" bedeutet normalerweise eines der folgenden:

38 

39* **Andere Oberfläche**: Die Ausgabe wird nicht in einem Terminal von der Person gelesen, die sie ausgelöst hat. Chat-UIs, Strukturierte-Ausgabe-Consumer und Nicht-Codierungs-Automatisierung benötigen jeweils eine Aufforderung, die damit übereinstimmt, wie ihre Ausgabe gerendert und überprüft wird. Unbeaufsichtigte Codierungs-Automatisierung, wie ein CI-Job, der Lint-Fehler behebt oder Diffs überprüft, passt immer noch zur Voreinstellung, da die Arbeit selbst das ist, wofür die Voreinstellung geschrieben wurde.

40* **Andere Identität**: Der Agent sollte sich nicht als Claude Code präsentieren. Ein Support-Bot, ein Datenanalyse-Assistent oder ein domänenspezifischer Agent benötigt seinen eigenen Namen, Umfang und eine eigene Persona.

41* **Anderes Berechtigungsmodell**: Der Agent läuft autonom ohne menschliche Genehmigung bei jedem Schritt, oder arbeitet mit einem engen Satz von Ressourcen. Claude Code's Aufforderung geht davon aus, dass ein Mensch in der Schleife ist und Zugriff auf einen vollständigen Werkzeugsatz hat.

42* **Nicht-Codierungs-Aufgaben**: Der Großteil von Claude Code's Aufforderung ist Codierungs-Anleitung. Für Forschungs-, Inhalts- oder Operations-Agenten konkurriert diese Anleitung mit den Anweisungen, die Sie tatsächlich benötigen.

43 

44Die [Vergleichstabelle](#compare-the-four-approaches) zeigt, was jede Anpassungsmethode bewahrt.

45 

46## Verhalten des Agenten anpassen

47 

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

49 

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

51 

52CLAUDE.md-Dateien geben Claude persistenten Projektkontext und Anweisungen. Das SDK injiziert ihren Inhalt in die Konversation, nicht in die Systemaufforderung, sodass sie mit jeder Systemaufforderungskonfiguration funktionieren. Informationen darüber, was in CLAUDE.md eingefügt werden soll, wo es platziert werden soll und wie effektive Anweisungen geschrieben werden, finden Sie unter [How Claude remembers your project](/de/memory). Dieser Abschnitt behandelt, was für das SDK spezifisch ist: wie CLAUDE.md geladen wird.

53 

54Das SDK liest CLAUDE.md, wenn die entsprechende Einstellungsquelle aktiviert ist: `'project'` lädt `CLAUDE.md` oder `.claude/CLAUDE.md` aus dem Arbeitsverzeichnis, und `'user'` lädt `~/.claude/CLAUDE.md`. Standard-`query()`-Optionen aktivieren beide Quellen, sodass CLAUDE.md automatisch geladen wird. Wenn Sie `settingSources` in TypeScript oder `setting_sources` in Python explizit festlegen, beziehen Sie die benötigten Quellen ein. Das Laden von CLAUDE.md wird durch Einstellungsquellen gesteuert, nicht durch die `claude_code`-Voreinstellung.

55 

56#### CLAUDE.md mit dem SDK laden

57 

58Um CLAUDE.md zu laden, setzen Sie `settingSources` so, dass es die Ebene einschließt, auf der sich Ihre CLAUDE.md befindet. Das folgende Beispiel lädt eine projektspezifische CLAUDE.md zusammen mit der `claude_code`-Voreinstellung, sodass Claude sowohl die vollständige Coding-Agent-Eingabeaufforderung als auch die Konventionen Ihres Projekts hat:

59 

60<CodeGroup>

61 ```typescript TypeScript theme={null}

62 import { query } from "@anthropic-ai/claude-agent-sdk";

63 

64 const messages = [];

65 

66 for await (const message of query({

67 prompt: "Add a new React component for user profiles",

68 options: {

69 systemPrompt: {

70 type: "preset",

71 preset: "claude_code" // Use Claude Code's system prompt

72 },

73 settingSources: ["project"] // Loads CLAUDE.md from project

74 }

75 })) {

76 messages.push(message);

77 }

78 

79 // Now Claude has access to your project guidelines from CLAUDE.md

80 ```

81 

82 ```python Python theme={null}

83 from claude_agent_sdk import query, ClaudeAgentOptions

84 

85 messages = []

86 

87 async for message in query(

88 prompt="Add a new React component for user profiles",

89 options=ClaudeAgentOptions(

90 system_prompt={

91 "type": "preset",

92 "preset": "claude_code", # Use Claude Code's system prompt

93 },

94 setting_sources=["project"], # Loads CLAUDE.md from project

95 ),

96 ):

97 messages.append(message)

98 

99 # Now Claude has access to your project guidelines from CLAUDE.md

100 ```

101</CodeGroup>

102 

103CLAUDE.md ist persistent über alle Sitzungen in einem Projekt, wird mit Ihrem Team über Git geteilt und wird automatisch erkannt, ohne dass Codeänderungen erforderlich sind. Sie wird nicht geladen, wenn Sie ein leeres `settingSources`-Array übergeben.

104 

105### Ausgabestile für persistente Konfigurationen

106 

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

108 

109#### Einen Ausgabestil erstellen

110 

111Ein Ausgabestil ist eine Markdown-Datei mit einem `name` und einer `description` in ihrem Frontmatter, gefolgt vom Eingabeaufforderungsinhalt. Speichern Sie ihn unter `~/.claude/output-styles/` für einen Stil auf Benutzerebene, der in jedem Projekt verfügbar ist, oder `.claude/output-styles/` in Ihrem Repository für einen Stil auf Projektebene, den Sie committen und mit Ihrem Team teilen können.

112 

113Das folgende Beispiel definiert eine Code-Review-Persona. Speichern Sie es als `~/.claude/output-styles/code-reviewer.md`, um es über Projekte hinweg verfügbar zu machen:

114 

115```markdown ~/.claude/output-styles/code-reviewer.md theme={null}

116---

117name: Code Reviewer

118description: Thorough code review assistant

119---

120 

121You are an expert code reviewer.

122 

123For every code submission:

1241. Check for bugs and security issues

1252. Evaluate performance

1263. Suggest improvements

1274. Rate code quality (1-10)

128```

129 

130#### Einen Ausgabestil aktivieren

131 

132Nach der Erstellung aktivieren Sie Ausgabestile über:

133 

134* **CLI**: Führen Sie `/config` aus und wählen Sie einen Ausgabestil

135* **Einstellungen**: Setzen Sie `outputStyle` in `.claude/settings.local.json`

136* **TypeScript SDK**: Setzen Sie `options.outputStyle` auf den Namen des Stils

137 

138Das Python SDK hat keine Option, einen Ausgabestil programmgesteuert auszuwählen. Verwenden Sie für Code-only-Bereitstellungen, bei denen Sie nicht in `.claude/settings.local.json` schreiben können, stattdessen `append` oder eine benutzerdefinierte Eingabeaufforderungszeichenkette.

139 

140**Hinweis für SDK-Benutzer:** Ausgabestile werden geladen, wenn Sie `settingSources: ['user']` oder `settingSources: ['project']` (TypeScript) / `setting_sources=["user"]` oder `setting_sources=["project"]` (Python) in Ihren Optionen einbeziehen.

141 

142### An die `claude_code`-Voreinstellung anhängen

143 

144Sie können die Claude Code-Voreinstellung mit einer `append`-Eigenschaft verwenden, um Ihre benutzerdefinierten Anweisungen hinzuzufügen und gleichzeitig alle integrierten Funktionen zu bewahren.

145 

146<CodeGroup>

147 ```typescript TypeScript theme={null}

148 import { query } from "@anthropic-ai/claude-agent-sdk";

149 

150 const messages = [];

151 

152 for await (const message of query({

153 prompt: "Help me write a Python function to calculate fibonacci numbers",

154 options: {

155 systemPrompt: {

156 type: "preset",

157 preset: "claude_code",

158 append: "Always include detailed docstrings and type hints in Python code."

159 }

160 }

161 })) {

162 messages.push(message);

163 if (message.type === "assistant") {

164 console.log(message.message.content);

165 }

166 }

167 ```

168 

169 ```python Python theme={null}

170 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

171 

172 messages = []

173 

174 async for message in query(

175 prompt="Help me write a Python function to calculate fibonacci numbers",

176 options=ClaudeAgentOptions(

177 system_prompt={

178 "type": "preset",

179 "preset": "claude_code",

180 "append": "Always include detailed docstrings and type hints in Python code.",

181 }

182 ),

183 ):

184 messages.append(message)

185 if isinstance(message, AssistantMessage):

186 print(message.content)

187 ```

188</CodeGroup>

189 

190#### Prompt-Caching über Benutzer und Maschinen verbessern

191 

192Standardmäßig können zwei Sitzungen, die die gleiche `claude_code`-Voreinstellung und den gleichen `append`-Text verwenden, keinen Prompt-Cache-Eintrag teilen, wenn sie von verschiedenen Arbeitsverzeichnissen aus ausgeführt werden. Dies liegt daran, dass die Voreinstellung sitzungsspezifischen Kontext in die Systemaufforderung vor Ihrem `append`-Text einbettet: das Arbeitsverzeichnis, ob es sich um ein Git-Repository handelt, die Plattform, die aktive Shell, die Betriebssystemversion und Auto-Memory-Pfade. Jeder Unterschied in diesem Kontext erzeugt eine andere Systemaufforderung und einen Cache-Miss. CLAUDE.md-Inhalt beeinflusst den Systemaufforderungs-Cache nicht, da das SDK ihn in die Konversation injiziert, nicht in die Systemaufforderung.

193 

194Um die Systemaufforderung über Sitzungen hinweg identisch zu machen, setzen Sie `excludeDynamicSections: true` in TypeScript oder `"exclude_dynamic_sections": True` in Python. Der sitzungsspezifische Kontext wird in die erste Benutzernachricht verschoben, sodass nur die statische Voreinstellung und Ihr `append`-Text in der Systemaufforderung verbleiben, damit identische Konfigurationen einen Cache-Eintrag über Benutzer und Maschinen hinweg teilen können.

195 

196<Note>

197 `excludeDynamicSections` erfordert `@anthropic-ai/claude-agent-sdk` v0.2.98 oder später oder `claude-agent-sdk` v0.1.58 oder später für Python. Es gilt nur für die Voreinstellungsobjektform und hat keine Auswirkung, wenn `systemPrompt` eine Zeichenkette ist.

198</Note>

199 

200Das folgende Beispiel kombiniert einen gemeinsamen `append`-Block mit `excludeDynamicSections`, sodass eine Flotte von Agenten, die von verschiedenen Verzeichnissen aus ausgeführt werden, die gleiche zwischengespeicherte Systemaufforderung wiederverwenden können:

201 

202<CodeGroup>

203 ```typescript TypeScript theme={null}

204 import { query } from "@anthropic-ai/claude-agent-sdk";

205 

206 for await (const message of query({

207 prompt: "Triage the open issues in this repo",

208 options: {

209 systemPrompt: {

210 type: "preset",

211 preset: "claude_code",

212 append: "You operate Acme's internal triage workflow. Label issues by component and severity.",

213 excludeDynamicSections: true

214 }

215 }

216 })) {

217 // ...

218 }

219 ```

220 

221 ```python Python theme={null}

222 from claude_agent_sdk import query, ClaudeAgentOptions

223 

224 async for message in query(

225 prompt="Triage the open issues in this repo",

226 options=ClaudeAgentOptions(

227 system_prompt={

228 "type": "preset",

229 "preset": "claude_code",

230 "append": "You operate Acme's internal triage workflow. Label issues by component and severity.",

231 "exclude_dynamic_sections": True,

232 },

233 ),

234 ):

235 ...

236 ```

237</CodeGroup>

238 

239**Kompromisse:** Das Arbeitsverzeichnis, das Git-Repo-Flag, die Plattform, die aktive Shell, die Betriebssystemversion und Auto-Memory-Pfade erreichen Claude immer noch, aber als Teil der ersten Benutzernachricht statt der Systemaufforderung. Anweisungen in der Benutzernachricht haben etwas weniger Gewicht als der gleiche Text in der Systemaufforderung, daher kann Claude sich bei der Überlegung zum aktuellen Verzeichnis oder zu Auto-Memory-Pfaden weniger stark auf sie verlassen. Aktivieren Sie diese Option, wenn die Wiederverwendung des Cross-Session-Cache wichtiger ist als maximal autoritative Umgebungskontexte.

240 

241Für das entsprechende Flag im nicht-interaktiven CLI-Modus siehe [`--exclude-dynamic-system-prompt-sections`](/de/cli-reference).

242 

243### Benutzerdefinierte Systemaufforderungen

244 

245Sie können eine benutzerdefinierte Zeichenkette als `systemPrompt` bereitstellen, um die Standardeinstellung vollständig durch Ihre eigenen Anweisungen zu ersetzen.

246 

247<CodeGroup>

248 ```typescript TypeScript theme={null}

249 import { query } from "@anthropic-ai/claude-agent-sdk";

250 

251 const customPrompt = `You are a Python coding specialist.

252 Follow these guidelines:

253 - Write clean, well-documented code

254 - Use type hints for all functions

255 - Include comprehensive docstrings

256 - Prefer functional programming patterns when appropriate

257 - Always explain your code choices`;

258 

259 const messages = [];

260 

261 for await (const message of query({

262 prompt: "Create a data processing pipeline",

263 options: {

264 systemPrompt: customPrompt

265 }

266 })) {

267 messages.push(message);

268 if (message.type === "assistant") {

269 console.log(message.message.content);

270 }

271 }

272 ```

273 

274 ```python Python theme={null}

275 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

276 

277 custom_prompt = """You are a Python coding specialist.

278 Follow these guidelines:

279 - Write clean, well-documented code

280 - Use type hints for all functions

281 - Include comprehensive docstrings

282 - Prefer functional programming patterns when appropriate

283 - Always explain your code choices"""

284 

285 messages = []

286 

287 async for message in query(

288 prompt="Create a data processing pipeline",

289 options=ClaudeAgentOptions(system_prompt=custom_prompt),

290 ):

291 messages.append(message)

292 if isinstance(message, AssistantMessage):

293 print(message.content)

294 ```

295</CodeGroup>

296 

297## Vergleich der vier Ansätze

298 

299Die vier Anpassungsmethoden unterscheiden sich darin, wo sie sich befinden, wie sie gemeinsam genutzt werden und was sie aus der `claude_code`-Voreinstellung beibehalten.

300 

301| Funktion | CLAUDE.md | Ausgabestile | `systemPrompt` mit Append | Benutzerdefinierte `systemPrompt` |

302| -------------------------- | ----------------- | ----------------------- | ------------------------- | --------------------------------- |

303| **Persistenz** | Pro-Projekt-Datei | Als Dateien gespeichert | Nur Sitzung | Nur Sitzung |

304| **Wiederverwendbarkeit** | Pro-Projekt | Über Projekte hinweg | Code-Duplizierung | Code-Duplizierung |

305| **Verwaltung** | Im Dateisystem | CLI + Dateien | Im Code | Im Code |

306| **Standard-Werkzeuge** | Bewahrt | Bewahrt | Bewahrt | Verloren (sofern nicht enthalten) |

307| **Integrierte Sicherheit** | Beibehalten | Beibehalten | Beibehalten | Muss hinzugefügt werden |

308| **Umgebungskontext** | Automatisch | Automatisch | Automatisch | Muss bereitgestellt werden |

309| **Anpassungsebene** | Nur Ergänzungen | Standard ersetzen | Nur Ergänzungen | Vollständige Kontrolle |

310| **Versionskontrolle** | Mit Projekt | Ja | Mit Code | Mit Code |

311| **Umfang** | Projektspezifisch | Benutzer oder Projekt | Code-Sitzung | Code-Sitzung |

312 

313„Mit Append" bedeutet die Verwendung von `systemPrompt: { type: "preset", preset: "claude_code", append: "..." }` in TypeScript oder `system_prompt={"type": "preset", "preset": "claude_code", "append": "..."}` in Python. CLAUDE.md ändert den System-Prompt selbst nicht: Das SDK injiziert seinen Inhalt als Projektkontext in die Konversation.

314 

315## Anwendungsfälle und Best Practices

316 

317### Wann CLAUDE.md verwenden

318 

319Verwenden Sie CLAUDE.md für Anweisungen, die für jede Sitzung in einem Projekt gelten sollten, unabhängig davon, welche Systemaufforderung die Sitzung verwendet: Codierungsstandards, häufige Befehle, Architekturkontext und Team-Konventionen. CLAUDE.md wird in Ihr Repository übernommen, sodass es mit dem Code, den es beschreibt, synchron bleibt. Siehe [Wann zu CLAUDE.md hinzufügen](/de/memory#when-to-add-to-claude-md) für vollständige Anleitung.

320 

321CLAUDE.md-Dateien werden geladen, wenn die `project`-Einstellungsquelle aktiviert ist, was sie für Standard-`query()`-Optionen ist. Wenn Sie `settingSources` in TypeScript oder `setting_sources` in Python explizit festlegen, beziehen Sie `'project'` ein, um das Laden von projektspezifischen CLAUDE.md-Dateien beizubehalten.

322 

323### Wann Ausgabestile verwenden

324 

325Ausgabestile sind für Personas, die Sie über die CLI und das SDK hinweg wiederverwenden möchten, ohne den Anwendungscode zu ändern. Da sie als Dateien in `.claude/output-styles` vorhanden sind, ist dieselbe Persona über `/config` in der CLI und aus jeder SDK-Sitzung verfügbar, die die entsprechende Einstellungsquelle lädt.

326 

327**Am besten für:**

328 

329* Persistente Verhaltensänderungen über Sitzungen hinweg

330* Team-gemeinsame Konfigurationen

331* Spezialisierte Assistenten wie ein Code-Reviewer, Datenwissenschaftler oder DevOps-Assistent

332* Komplexe Aufforderungsänderungen, die Versionierung benötigen

333 

334**Beispiele:**

335 

336* Erstellen eines dedizierten SQL-Optimierungsassistenten

337* Aufbau eines sicherheitsorientierten Code-Reviewers

338* Entwicklung eines Lehrers mit spezifischer Pädagogik

339 

340### Wann `systemPrompt` mit Append verwenden

341 

342Verwenden Sie `append`, wenn die `claude_code`-Voreinstellung bereits zu Ihrem Produkt passt und Sie nur zusätzliche Anweisungen hinzufügen müssen. Sie behalten die Werkzeuganleitung, Sicherheitsregeln und Codierungskonventionen der Voreinstellung, ohne sie neu zu implementieren.

343 

344**Am besten für:**

345 

346* Hinzufügen spezifischer Codierungsstandards oder Vorlieben

347* Anpassung der Ausgabeformatierung

348* Hinzufügen domänenspezifischen Wissens

349* Änderung der Antwortausführlichkeit

350* Verbesserung des Standardverhaltens von Claude Code ohne Verlust von Werkzeuganweisungen

351 

352### Wann benutzerdefinierte `systemPrompt` verwenden

353 

354Verwenden Sie eine benutzerdefinierte Aufforderung, wenn sich die Oberfläche, Identität oder das Berechtigungsmodell Ihres Agenten von Claude Code unterscheidet, wie in [Entscheiden Sie sich für einen Startpunkt](#decide-on-a-starting-point) beschrieben. Sie definieren den vollständigen Anweisungssatz, einschließlich aller Werkzeuganleitung und Sicherheitsregeln, die Ihr Agent benötigt.

355 

356**Am besten für:**

357 

358* Vollständige Kontrolle über Claudes Verhalten

359* Spezialisierte Aufgaben mit einer Sitzung

360* Testen neuer Aufforderungsstrategien

361* Situationen, in denen Standard-Werkzeuge nicht benötigt werden

362* Aufbau spezialisierter Agenten mit einzigartigem Verhalten

363 

364## Ansätze kombinieren

365 

366Diese Methoden lassen sich kombinieren. Ein persistenter Ausgabestil oder CLAUDE.md legt das langfristige Verhalten fest, und `append` lagert sitzungsspezifische Anweisungen darauf, ohne die gespeicherte Konfiguration zu ändern.

367 

368### Einen Ausgabestil mit sitzungsspezifischen Ergänzungen kombinieren

369 

370Das folgende Beispiel setzt voraus, dass ein Ausgabestil „Code Reviewer" bereits aktiv ist. Der `append`-Block lagert sitzungsspezifische Schwerpunkte auf die Persona, sodass eine einzelne Review-Sitzung OAuth und Token-Speicherung priorisieren kann, ohne den gespeicherten Ausgabestil zu ändern:

371 

372<CodeGroup>

373 ```typescript TypeScript theme={null}

374 import { query } from "@anthropic-ai/claude-agent-sdk";

375 

376 // Assuming "Code Reviewer" output style is active (via /config or settings)

377 // Add session-specific focus areas

378 const messages = [];

379 

380 for await (const message of query({

381 prompt: "Review this authentication module",

382 options: {

383 systemPrompt: {

384 type: "preset",

385 preset: "claude_code",

386 append: `

387 For this review, prioritize:

388 - OAuth 2.0 compliance

389 - Token storage security

390 - Session management

391 `

392 }

393 }

394 })) {

395 messages.push(message);

396 }

397 ```

398 

399 ```python Python theme={null}

400 from claude_agent_sdk import query, ClaudeAgentOptions

401 

402 # Assuming "Code Reviewer" output style is active (via /config or settings)

403 # Add session-specific focus areas

404 messages = []

405 

406 async for message in query(

407 prompt="Review this authentication module",

408 options=ClaudeAgentOptions(

409 system_prompt={

410 "type": "preset",

411 "preset": "claude_code",

412 "append": """

413 For this review, prioritize:

414 - OAuth 2.0 compliance

415 - Token storage security

416 - Session management

417 """,

418 }

419 ),

420 ):

421 messages.append(message)

422 ```

423</CodeGroup>

424 

425## Siehe auch

426 

427* [Ausgabestile](/de/output-styles): Erstellen, verwalten und teilen Sie Ausgabestile für die CLI, einschließlich des Dateiformats und der Speicherorte

428* [Wie Claude sich Ihr Projekt merkt](/de/memory): Was in CLAUDE.md gehört, wo Sie es platzieren, und wie Sie effektive Projektanweisungen schreiben

429* [TypeScript SDK-Referenz](/de/agent-sdk/typescript): Der vollständige `Options`-Typ, einschließlich `systemPrompt`, `settingSources` und `outputStyle`

430* [Python SDK-Referenz](/de/agent-sdk/python): Der vollständige `ClaudeAgentOptions`-Typ, einschließlich `system_prompt` und `setting_sources`

431* [Einstellungen](/de/settings): Die `settings.json`-Referenz, einschließlich des Speicherorts von Ausgabestilen und anderen Konfigurationen

Details

396| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP-Server-Konfigurationen |396| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP-Server-Konfigurationen |

397| `model` | `string` | Standard aus CLI | Claude-Modell zum Verwenden |397| `model` | `string` | Standard aus CLI | Claude-Modell zum Verwenden |

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

399| `outputStyle` | `string` | `undefined` | Name eines [Ausgabestils](/de/output-styles) zum Aktivieren für die Sitzung. Der Stil muss an einem geladenen `settingSources`-Ort vorhanden sein, z. B. `.claude/output-styles/`. Siehe [Aktivieren Sie einen Ausgabestil](/de/agent-sdk/modifying-system-prompts#activate-an-output-style) |

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

400| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Berechtigungsmodus für die Sitzung |401| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Berechtigungsmodus für die Sitzung |

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

Details

12 12 

13Bei Klärungsfragen generiert Claude die Fragen und Optionen. Ihre Aufgabe besteht darin, sie den Benutzern zu präsentieren und ihre Auswahl zurückzugeben. Sie können diesem Ablauf keine eigenen Fragen hinzufügen; wenn Sie Benutzer selbst etwas fragen müssen, tun Sie dies separat in Ihrer Anwendungslogik.13Bei Klärungsfragen generiert Claude die Fragen und Optionen. Ihre Aufgabe besteht darin, sie den Benutzern zu präsentieren und ihre Auswahl zurückzugeben. Sie können diesem Ablauf keine eigenen Fragen hinzufügen; wenn Sie Benutzer selbst etwas fragen müssen, tun Sie dies separat in Ihrer Anwendungslogik.

14 14 

15Der Callback kann unbegrenzt ausstehend bleiben. Die Ausführung bleibt pausiert, bis Ihr Callback zurückkommt, und das SDK bricht das Warten nur ab, wenn die Abfrage selbst abgebrochen wird. Wenn ein Benutzer länger braucht, um zu antworten, als Ihr Prozess vernünftigerweise laufen kann, unterstützt das TypeScript SDK den [`defer`-Hook-Entscheidung](/de/hooks#defer-a-tool-call-for-later), mit dem der Prozess beendet und später aus der persistierten Sitzung fortgesetzt werden kann; diese Option ist im Python SDK nicht verfügbar.15Der Callback kann unbegrenzt ausstehend bleiben. Die Ausführung bleibt pausiert, bis Ihr Callback zurückkommt, und das SDK bricht das Warten nur ab, wenn die Abfrage selbst abgebrochen wird. Wenn ein Benutzer länger braucht, um zu antworten, als Ihr Prozess vernünftigerweise laufen kann, geben Sie die [`defer`-Hook-Entscheidung](/de/hooks#defer-a-tool-call-for-later) zurück, mit der der Prozess beendet und später aus der persistierten Sitzung fortgesetzt werden kann.

16 16 

17Diese Anleitung zeigt Ihnen, wie Sie jeden Anforderungstyp erkennen und angemessen reagieren.17Diese Anleitung zeigt Ihnen, wie Sie jeden Anforderungstyp erkennen und angemessen reagieren.

18 18 


232 232 

233* **Genehmigen**: Lassen Sie das Tool genau wie von Claude angefordert ausführen233* **Genehmigen**: Lassen Sie das Tool genau wie von Claude angefordert ausführen

234* **Mit Änderungen genehmigen**: Ändern Sie die Eingabe vor der Ausführung (z. B. Pfade bereinigen, Einschränkungen hinzufügen)234* **Mit Änderungen genehmigen**: Ändern Sie die Eingabe vor der Ausführung (z. B. Pfade bereinigen, Einschränkungen hinzufügen)

235* **Genehmigen und merken**: Geben Sie eine vorgeschlagene Berechtigungsregel zurück, damit übereinstimmende Aufrufe das nächste Mal die Aufforderung überspringen

235* **Ablehnen**: Blockieren Sie das Tool und teilen Sie Claude mit, warum236* **Ablehnen**: Blockieren Sie das Tool und teilen Sie Claude mit, warum

236* **Alternative vorschlagen**: Blockieren Sie, aber leiten Sie Claude zu dem hin, was der Benutzer stattdessen möchte237* **Alternative vorschlagen**: Blockieren Sie, aber leiten Sie Claude zu dem hin, was der Benutzer stattdessen möchte

237* **Vollständig umleiten**: Verwenden Sie [Streaming-Eingabe](/de/agent-sdk/streaming-vs-single-mode), um Claude eine völlig neue Anweisung zu senden238* **Vollständig umleiten**: Verwenden Sie [Streaming-Eingabe](/de/agent-sdk/streaming-vs-single-mode), um Claude eine völlig neue Anweisung zu senden


297 </CodeGroup>298 </CodeGroup>

298 </Tab>299 </Tab>

299 300 

301 <Tab title="Genehmigen und merken">

302 Der Benutzer genehmigt und möchte nicht erneut gefragt werden für diese Art von Aufruf. Das dritte Callback-Argument enthält `suggestions`, ein Array von vorgefertigten [`PermissionUpdate`](/de/agent-sdk/typescript#permissionupdate)-Einträgen. Geben Sie einen in `updatedPermissions` zurück, um ihn anzuwenden. Ein Vorschlag mit dem `localSettings`-Ziel schreibt die Regel in `.claude/settings.local.json`, damit zukünftige Sitzungen die Aufforderung für übereinstimmende Aufrufe überspringen.

303 

304 Das Python-Beispiel erfordert `claude-agent-sdk` 0.1.80 oder später.

305 

306 <CodeGroup>

307 ```python Python theme={null}

308 async def can_use_tool(tool_name, input_data, context):

309 choice = await ask_user(f"Allow {tool_name}?", ["once", "always", "no"])

310 

311 if choice == "always":

312 persist = [

313 s for s in context.suggestions if s.destination == "localSettings"

314 ]

315 return PermissionResultAllow(

316 updated_input=input_data, updated_permissions=persist

317 )

318 if choice == "once":

319 return PermissionResultAllow(updated_input=input_data)

320 return PermissionResultDeny(message="User declined")

321 ```

322 

323 ```typescript TypeScript theme={null}

324 canUseTool: async (toolName, input, { suggestions = [] }) => {

325 const choice = await askUser(`Allow ${toolName}?`, ["once", "always", "no"]);

326 

327 if (choice === "always") {

328 const persist = suggestions.filter(

329 (s) => s.destination === "localSettings"

330 );

331 return {

332 behavior: "allow",

333 updatedInput: input,

334 updatedPermissions: persist

335 };

336 }

337 if (choice === "once") {

338 return { behavior: "allow", updatedInput: input };

339 }

340 return { behavior: "deny", message: "User declined" };

341 };

342 ```

343 </CodeGroup>

344 </Tab>

345 

300 <Tab title="Ablehnen">346 <Tab title="Ablehnen">

301 Der Benutzer möchte nicht, dass diese Aktion stattfindet. Blockieren Sie das Tool und geben Sie eine Nachricht an, die erklärt, warum. Claude sieht diese Nachricht und kann einen anderen Ansatz versuchen.347 Der Benutzer möchte nicht, dass diese Aktion stattfindet. Blockieren Sie das Tool und geben Sie eine Nachricht an, die erklärt, warum. Claude sieht diese Nachricht und kann einen anderen Ansatz versuchen.

302 348 

agent-teams.md +2 −0

Details

129Use Sonnet for each teammate.129Use Sonnet for each teammate.

130```130```

131 131 

132Teammates erben standardmäßig nicht die `/model`-Auswahl des Leads. Um das Modell zu ändern, das verwendet wird, wenn der Prompt keines angibt, setzen Sie **Standard-Teammate-Modell** in `/config`. Wählen Sie **Standard (Modell des Leaders)**, damit Teammates dem aktuellen Modell des Leads folgen.

133 

132### Genehmigung von Plänen für Teammates erforderlich134### Genehmigung von Plänen für Teammates erforderlich

133 135 

134Für komplexe oder riskante Aufgaben können Sie verlangen, dass Teammates planen, bevor sie implementieren. Der Teammate arbeitet im schreibgeschützten Plan-Modus, bis der Lead seinen Ansatz genehmigt:136Für komplexe oder riskante Aufgaben können Sie verlangen, dass Teammates planen, bevor sie implementieren. Der Teammate arbeitet im schreibgeschützten Plan-Modus, bis der Lead seinen Ansatz genehmigt:

agent-view.md +34 −15

Details

40 </Step>40 </Step>

41 41 

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

43 Geben Sie eine Eingabeaufforderung in die Eingabe ein und drücken Sie `Enter`. Eine neue Sitzung startet und wird als Zeile angezeigt, die zeigt, ob sie funktioniert, auf Sie wartet oder erledigt ist. Wiederholen Sie dies, um so viele Sitzungen parallel auszuführen, wie Sie möchten.43 Geben Sie eine Eingabeaufforderung in die Eingabe ein und drücken Sie `Enter`. Eine neue Sitzung startet und wird als Zeile angezeigt, die zeigt, ob sie funktioniert, auf Sie wartet oder erledigt ist. Wiederholen Sie dies, um mehrere Sitzungen parallel auszuführen. Jede nutzt Ihr Abonnementkontingent unabhängig, daher lesen Sie [Einschränkungen](#limitations), bevor Sie viele auf einmal versenden.

44 </Step>44 </Step>

45 45 

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


60 60 

61Führen Sie `claude agents` aus, um die Agenten-Ansicht zu öffnen. Sie übernimmt das gesamte Terminal und listet jede Sitzung nach Status gruppiert auf, mit angehefteten Sitzungen und denjenigen, die Sie benötigen, oben. Jede Zeile zeigt den Namen der Sitzung, die aktuelle Aktivität und wie lange die letzte Änderung her ist.61Führen Sie `claude agents` aus, um die Agenten-Ansicht zu öffnen. Sie übernimmt das gesamte Terminal und listet jede Sitzung nach Status gruppiert auf, mit angehefteten Sitzungen und denjenigen, die Sie benötigen, oben. Jede Zeile zeigt den Namen der Sitzung, die aktuelle Aktivität und wie lange die letzte Änderung her ist.

62 62 

63Die Liste ist global für Ihren Computer und umfasst jede Hintergrund-Sitzung, unabhängig davon, in welchem Projekt oder Worktree sie funktioniert. Interaktive Sitzungen, die Sie in anderen Terminals offen haben, werden nicht angezeigt, bis Sie sie [in den Hintergrund verschieben](#from-inside-a-session), und [Subagenten](/de/sub-agents), die in einer Sitzung laufen, werden nicht als separate Zeilen aufgelistet.63Die Liste umfasst jede Hintergrund-Sitzung unter Ihrem [Konfigurationsverzeichnis](#how-background-sessions-are-hosted), unabhängig davon, in welchem Projekt oder Worktree sie funktioniert, sodass eine Sitzung, die in einem Repository gestartet wurde, und eine andere, die in einem anderen Worktree gestartet wurde, zusammen angezeigt werden. Interaktive Sitzungen, die Sie in anderen Terminals offen haben, werden nicht angezeigt, bis Sie sie [in den Hintergrund verschieben](#from-inside-a-session), und [Subagenten](/de/sub-agents), die in einer Sitzung laufen, werden nicht als separate Zeilen aufgelistet.

64 64 

65```text theme={null}65```text theme={null}

66Angeheftet66Angeheftet

67 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m67 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

68 68 

69Bereit zur Überprüfung69Bereit zur Überprüfung

70 ∙ jump physics github.com/anthropics/example/pull/2048 2h70 ∙ jump physics github.com/anthropics/example/pull/20482h

71 71 

72Benötigt Eingabe72Benötigt Eingabe

73 ✻ power-up design needs input: double jump or wall climb? 1m73 ✻ power-up design needs input: double jump or wall climb? 1m


82 … 6 more82 … 6 more

83```83```

84 84 

85Das Symbol zeigt den Status der Sitzung:85Das Symbol jeder Zeile trägt zwei Signale. Der Indikator zeigt Ihnen den Status der Sitzung, und die Form des Symbols zeigt Ihnen, ob der zugrunde liegende Prozess noch läuft. Die Status sind:

86 86 

87| Symbol | Status | Was es bedeutet |87| Indikator | Status | Was es bedeutet |

88| :------- | :--------------- | :-------------------------------------------------------------------------------------------- |88| :-------- | :--------------- | :-------------------------------------------------------------------------------------------- |

89| Animiert | Funktioniert | Claude führt aktiv Tools aus oder generiert eine Antwort |89| Animiert | Funktioniert | Claude führt aktiv Tools aus oder generiert eine Antwort |

90| Gelb | Benötigt Eingabe | Claude wartet auf Ihre Eingabe, normalerweise eine Genehmigungsentscheidung oder eine Antwort |90| Gelb | Benötigt Eingabe | Claude wartet auf Ihre Eingabe, normalerweise eine Genehmigungsentscheidung oder eine Antwort |

91| Gedimmt | Untätig | Die Sitzung wartet auf Eingabe, ist aber nicht an einer bestimmten Frage blockiert |91| Gedimmt | Untätig | Die Sitzung wartet auf Eingabe, ist aber nicht an einer bestimmten Frage blockiert |


99 99 

100Sitzungen werden auf der Festplatte beibehalten: Das Schließen Ihres Terminals oder ein automatisches Update verliert sie nicht, und das erneute Öffnen von `claude agents` zeigt sie alle. Wenn Ihr Computer in den Ruhezustand wechselt oder heruntergefahren wird, werden laufende Sitzungen gestoppt; starten Sie sie mit `claude respawn --all` neu.100Sitzungen werden auf der Festplatte beibehalten: Das Schließen Ihres Terminals oder ein automatisches Update verliert sie nicht, und das erneute Öffnen von `claude agents` zeigt sie alle. Wenn Ihr Computer in den Ruhezustand wechselt oder heruntergefahren wird, werden laufende Sitzungen gestoppt; starten Sie sie mit `claude respawn --all` neu.

101 101 

102Die einzeilige Zusammenfassung in jeder Zeile wird von Ihrem konfigurierten [Haiku-Klasse-Modell](/de/model-config) generiert, sodass die Zeile Ihnen zeigen kann, was die Sitzung tut, was sie benötigt oder was sie produziert hat, ohne das Transkript zu öffnen. Jede Zusammenfassung ist eine kurze Haiku-Klasse-Anfrage durch Ihren normalen Anbieter, abgerechnet und behandelt unter denselben [Datennutzungsbedingungen](/de/data-usage) wie die Sitzung selbst.102Die einzeilige Zusammenfassung in jeder Zeile wird von Ihrem konfigurierten [Haiku-Klasse-Modell](/de/model-config) generiert, sodass die Zeile Ihnen zeigen kann, was die Sitzung tut, was sie benötigt oder was sie produziert hat, ohne das Transkript zu öffnen. Während eine Sitzung aktiv funktioniert, wird die Zusammenfassung höchstens alle 15 Sekunden aktualisiert, plus einmal, wenn jede Runde endet. Jede Aktualisierung ist eine kurze Haiku-Klasse-Anfrage durch Ihren normalen Anbieter, abgerechnet und behandelt unter denselben [Datennutzungsbedingungen](/de/data-usage) wie die Sitzung selbst.

103 103 

104Wenn eine Sitzung einen Pull Request öffnet, zeigt die Zeile den PR-Link und einen Statusindikator für ihre CI-Überprüfungen. Für die meisten Aufgaben ist diese Zeile, wie Sie die Arbeit sammeln: überprüfen und führen Sie den Pull Request zusammen, wenn seine Überprüfungen bestanden sind.104Wenn eine Sitzung einen Pull Request öffnet, wird ein Statusindikator am rechten Rand der Zeile angezeigt, verlinkt zum Pull Request in Terminals, die Hyperlinks unterstützen. Wenn die Sitzung mehr als einen Pull Request geöffnet hat, wird die Anzahl vor dem Indikator angezeigt und die Farbe spiegelt denjenigen wider, der am meisten Aufmerksamkeit benötigt.

105 

106| Indikator-Farbe | Pull-Request-Status |

107| :-------------- | :--------------------------------------------------------------------------- |

108| Gelb | Wartet auf Überprüfungen oder Überprüfung, oder Überprüfungen fehlgeschlagen |

109| Grün | Überprüfungen bestanden und keine Überprüfung blockiert |

110| Lila | Zusammengeführt |

111| Grau | Entwurf oder geschlossen |

112 

113Für die meisten Aufgaben ist diese Zeile, wo Sie das Ergebnis aufgreifen: überprüfen und führen Sie den Pull Request zusammen, wenn der Indikator grün wird.

105 114 

106### Vorschau und Antwort115### Vorschau und Antwort

107 116 


121 130 

122Das Abhängen stoppt niemals eine Hintergrund-Sitzung: `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z` und `/exit` lassen sie alle laufen. Um eine Sitzung von innen zu beenden, führen Sie `/stop` aus.131Das Abhängen stoppt niemals eine Hintergrund-Sitzung: `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z` und `/exit` lassen sie alle laufen. Um eine Sitzung von innen zu beenden, führen Sie `/stop` aus.

123 132 

124Nachdem Sie die Agenten-Ansicht verwendet haben, funktioniert das Drücken von `←` auf einer leeren Eingabeaufforderung aus jeder Claude Code-Sitzung, nicht nur aus denjenigen, an denen Sie angehängt sind. Es öffnet die Agenten-Ansicht mit Ihrer aktuellen Sitzung vorausgewählt, sodass Sie zwischen Sitzungen wechseln können, ohne das Terminal zu verlassen.133Nachdem Sie eine Sitzung versandt oder in den Hintergrund verschoben haben, funktioniert das Drücken von `←` auf einer leeren Eingabeaufforderung aus jeder Claude Code-Sitzung, nicht nur aus denjenigen, an denen Sie angehängt sind. Es verschiebt die aktuelle Sitzung in den Hintergrund und öffnet die Agenten-Ansicht mit dieser Sitzung vorausgewählt, sodass Sie zwischen Sitzungen wechseln können, ohne das Terminal zu verlassen. Sie können diesen Tastaturkürzel in `/config` ausschalten.

125 134 

126### Die Liste organisieren135### Die Liste organisieren

127 136 


183 192 

184Geben Sie `/` ein, um einen [Skill](/de/skills) zu versenden. Das Verpacken einer wiederkehrenden Aufgabe als Skill ermöglicht es Ihnen, denselben Workflow viele Male aus der Agenten-Ansicht zu starten, ohne die Eingabeaufforderung erneut einzugeben. Drücken Sie `Tab` auf einer leeren Eingabe, um jeden versandbaren Subagenten zu durchsuchen, oder um den hervorgehobenen Vorschlag anzuwenden, wenn Vorschläge angezeigt werden.193Geben Sie `/` ein, um einen [Skill](/de/skills) zu versenden. Das Verpacken einer wiederkehrenden Aufgabe als Skill ermöglicht es Ihnen, denselben Workflow viele Male aus der Agenten-Ansicht zu starten, ohne die Eingabeaufforderung erneut einzugeben. Drücken Sie `Tab` auf einer leeren Eingabe, um jeden versandbaren Subagenten zu durchsuchen, oder um den hervorgehobenen Vorschlag anzuwenden, wenn Vorschläge angezeigt werden.

185 194 

195Wenn derselbe `@name` sowohl einem Subagenten als auch einem gleichgeordneten Repository entspricht, hat der Subagent Vorrang. Die Form ohne `@` am Anfang gilt auch für jeden Subagenten-Namen, sodass eine Eingabeaufforderung, die mit einem Wort beginnt, das einem Ihrer Subagenten-Namen entspricht, diesen Subagenten versendet. Verwenden Sie die `@`-Form, wenn Sie explizit sein möchten.

196 

186#### In ein bestimmtes Verzeichnis versenden197#### In ein bestimmtes Verzeichnis versenden

187 198 

188Eine neue Sitzung läuft in dem Verzeichnis, in dem Sie die Agenten-Ansicht geöffnet haben. Um ein anderes Verzeichnis anzusteuern:199Eine neue Sitzung läuft in dem Verzeichnis, in dem Sie die Agenten-Ansicht geöffnet haben. Um ein anderes Verzeichnis anzusteuern:


193 204 

194Wenn die Agenten-Ansicht nach Verzeichnis gruppiert ist, wird das Verzeichnis der hervorgehobenen Zeile zum Versand-Ziel, sodass Sie zu einer Gruppe scrollen und darin versenden können, ohne den Pfad erneut einzugeben.205Wenn die Agenten-Ansicht nach Verzeichnis gruppiert ist, wird das Verzeichnis der hervorgehobenen Zeile zum Versand-Ziel, sodass Sie zu einer Gruppe scrollen und darin versenden können, ohne den Pfad erneut einzugeben.

195 206 

196#### Dateibearbeitungen in einem Worktree isolieren

197 

198Sitzungen, die aus der Agenten-Ansicht versendet werden, teilen standardmäßig Ihr Arbeitsverzeichnis, sodass zwei Agenten, die dieselben Dateien bearbeiten, in Konflikt geraten können. Um dies zu verhindern, blockiert Claude Code eine Sitzung, die aus der Agenten-Ansicht versendet wird, vom Schreiben von Dateien, bis sie sich in einen isolierten [Git-Worktree](/de/worktrees) bewegt. Claude handhabt dies automatisch, wenn es Dateien bearbeiten muss. Der Worktree wird unter `.claude/worktrees/` im Projektverzeichnis erstellt und entfernt, wenn Sie die Sitzung löschen. Das Löschen einer Sitzung löscht auch ihren Worktree, daher führen Sie die Änderungen zusammen oder pushen Sie sie, die Sie behalten möchten, bevor Sie die Sitzung löschen.

199 

200Um einen Subagenten immer in seinem eigenen Worktree auszuführen, unabhängig davon, wie er gestartet wurde, setzen Sie [`isolation: worktree`](/de/sub-agents#supported-frontmatter-fields) in seinem Frontmatter.

201 

202### Aus einer Sitzung heraus207### Aus einer Sitzung heraus

203 208 

204Führen Sie `/background` oder seinen Alias `/bg` aus, um das aktuelle Gespräch zu trennen und es weiter laufen zu lassen. Übergeben Sie eine Eingabeaufforderung wie `/bg run the test suite and fix any failures`, um eine weitere Anweisung zu senden, bevor Sie sich trennen.209Führen Sie `/background` oder seinen Alias `/bg` aus, um das aktuelle Gespräch zu trennen und es weiter laufen zu lassen. Übergeben Sie eine Eingabeaufforderung wie `/bg run the test suite and fix any failures`, um eine weitere Anweisung zu senden, bevor Sie sich trennen.


227 claude stop 7c5dcf5d stop this session232 claude stop 7c5dcf5d stop this session

228```233```

229 234 

235### Wie Dateibearbeitungen isoliert werden

236 

237Jede Hintergrund-Sitzung, ob aus der Agenten-Ansicht, `/bg` oder `claude --bg` gestartet, beginnt in Ihrem Arbeitsverzeichnis, wird aber vom Schreiben von Dateien dort blockiert. Wenn die Sitzung Dateien bearbeiten muss, verschiebt Claude sie automatisch in einen isolierten [Git-Worktree](/de/worktrees) unter `.claude/worktrees/`, sodass parallele Sitzungen denselben Checkout lesen können, aber jede in ihren eigenen schreibt. Die Blockade gilt nicht, wenn sich die Sitzung bereits in einem Worktree befindet, wenn das Arbeitsverzeichnis kein Git-Repository ist, oder für Schreibvorgänge außerhalb des Arbeitsverzeichnisses.

238 

239Der Worktree wird entfernt, wenn Sie die Sitzung löschen, daher führen Sie die Änderungen zusammen oder pushen Sie sie, die Sie behalten möchten, bevor Sie die Sitzung löschen. Um den Worktree-Pfad einer Sitzung zu finden, schauen Sie sich die Sitzung an oder hängen Sie an und überprüfen Sie ihr Arbeitsverzeichnis.

240 

241Um einen Subagenten immer in seinem eigenen Worktree auszuführen, unabhängig davon, wie er gestartet wurde, setzen Sie [`isolation: worktree`](/de/sub-agents#supported-frontmatter-fields) in seinem Frontmatter.

242 

243### Berechtigungsmodus und Einstellungen

244 

245Eine versendete Sitzung liest ihre [Einstellungen](/de/settings) und ihren [Berechtigungsmodus](/de/permissions) aus dem Verzeichnis, in dem sie läuft, genauso wie wenn Sie `claude` dort gestartet hätten. Das Versenden aus der Agenten-Ansicht-Eingabe übergibt keinen Berechtigungsmodus, daher verwendet die Sitzung den `defaultMode` aus den Einstellungen dieses Verzeichnisses oder den `permissionMode` aus dem Frontmatter des versendeten [Subagenten](/de/sub-agents#supported-frontmatter-fields).

246 

247Um den Modus aus der Shell zu setzen, übergeben Sie `--permission-mode` mit `claude --bg`. Die Verwendung von `bypassPermissions` oder `auto` auf diese Weise wird abgelehnt, bis Sie diesen Modus akzeptiert haben, indem Sie `claude` einmal interaktiv damit ausführen, da diese Modi eine Sitzung, die Sie nicht beobachten, ohne Genehmigung handeln lassen.

248 

230## Sitzungen aus der Shell verwalten249## Sitzungen aus der Shell verwalten

231 250 

232Jede Hintergrund-Sitzung hat eine kurze ID, die Sie aus der Shell verwenden können. Diese Befehle sind nützlich zum Scripting oder wenn Sie die Agenten-Ansicht nicht öffnen möchten.251Jede Hintergrund-Sitzung hat eine kurze ID, die Sie aus der Shell verwenden können. Diese Befehle sind nützlich zum Scripting oder wenn Sie die Agenten-Ansicht nicht öffnen möchten.

Details

1471| [`settings.json`](#ce-settings-json) | Projekt und global | ✓ | Berechtigungen, Hooks, Umgebungsvariablen, Modellstandards | [Einstellungen](/de/settings) |1471| [`settings.json`](#ce-settings-json) | Projekt und global | ✓ | Berechtigungen, Hooks, Umgebungsvariablen, Modellstandards | [Einstellungen](/de/settings) |

1472| [`settings.local.json`](#ce-settings-local-json) | Nur Projekt | | Ihre persönlichen Überschreibungen, automatisch gitignoriert | [Einstellungsbereiche](/de/settings#settings-files) |1472| [`settings.local.json`](#ce-settings-local-json) | Nur Projekt | | Ihre persönlichen Überschreibungen, automatisch gitignoriert | [Einstellungsbereiche](/de/settings#settings-files) |

1473| [`.mcp.json`](#ce-mcp-json) | Nur Projekt | ✓ | Team-gemeinsame MCP-Server | [MCP-Bereiche](/de/mcp#mcp-installation-scopes) |1473| [`.mcp.json`](#ce-mcp-json) | Nur Projekt | ✓ | Team-gemeinsame MCP-Server | [MCP-Bereiche](/de/mcp#mcp-installation-scopes) |

1474| [`.worktreeinclude`](#ce-worktreeinclude) | Nur Projekt | ✓ | Gitignorierte Dateien zum Kopieren in neue Worktrees | [Worktrees](/de/common-workflows#copy-gitignored-files-to-worktrees) |1474| [`.worktreeinclude`](#ce-worktreeinclude) | Nur Projekt | ✓ | Gitignorierte Dateien zum Kopieren in neue Worktrees | [Worktrees](/de/worktrees#copy-gitignored-files-into-worktrees) |

1475| [`skills/<name>/SKILL.md`](#ce-skills) | Projekt und global | ✓ | Wiederverwendbare Prompts, aufgerufen mit `/name` oder automatisch aufgerufen | [Skills](/de/skills) |1475| [`skills/<name>/SKILL.md`](#ce-skills) | Projekt und global | ✓ | Wiederverwendbare Prompts, aufgerufen mit `/name` oder automatisch aufgerufen | [Skills](/de/skills) |

1476| [`commands/*.md`](#ce-commands) | Projekt und global | ✓ | Einzeldatei-Prompts; gleicher Mechanismus wie Skills | [Skills](/de/skills) |1476| [`commands/*.md`](#ce-commands) | Projekt und global | ✓ | Einzeldatei-Prompts; gleicher Mechanismus wie Skills | [Skills](/de/skills) |

1477| [`output-styles/*.md`](#ce-output-styles) | Projekt und global | ✓ | Benutzerdefinierte System-Prompt-Abschnitte | [Ausgabestile](/de/output-styles) |1477| [`output-styles/*.md`](#ce-output-styles) | Projekt und global | ✓ | Benutzerdefinierte System-Prompt-Abschnitte | [Ausgabestile](/de/output-styles) |


1497| Pfad unter `~/.claude/` | Inhalte |1497| Pfad unter `~/.claude/` | Inhalte |

1498| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1498| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1499| `projects/<project>/<session>.jsonl` | Vollständiges Gesprächstranskript: jede Nachricht, jeder Tool-Aufruf und jedes Tool-Ergebnis |1499| `projects/<project>/<session>.jsonl` | Vollständiges Gesprächstranskript: jede Nachricht, jeder Tool-Aufruf und jedes Tool-Ergebnis |

1500| `projects/<project>/<session>/subagents/` | [Subagent](/de/sub-agents) Gesprächstranskripte, entfernt mit dem übergeordneten Sitzungstranskript, wenn es veraltet |

1500| `projects/<project>/<session>/tool-results/` | Große Tool-Ausgaben, die in separate Dateien verschoben werden |1501| `projects/<project>/<session>/tool-results/` | Große Tool-Ausgaben, die in separate Dateien verschoben werden |

1501| `file-history/<session>/` | Vor-Bearbeitungs-Snapshots von Dateien, die Claude geändert hat, verwendet für [Checkpoint-Wiederherstellung](/de/checkpointing) |1502| `file-history/<session>/` | Vor-Bearbeitungs-Snapshots von Dateien, die Claude geändert hat, verwendet für [Checkpoint-Wiederherstellung](/de/checkpointing) |

1502| `plans/` | Plan-Dateien, die während des [Plan-Modus](/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben werden |1503| `plans/` | Plan-Dateien, die während des [Plan-Modus](/de/permission-modes#analyze-before-you-edit-with-plan-mode) geschrieben werden |


1512Die folgenden Pfade sind nicht durch automatische Bereinigung abgedeckt und bleiben auf unbestimmte Zeit bestehen.1513Die folgenden Pfade sind nicht durch automatische Bereinigung abgedeckt und bleiben auf unbestimmte Zeit bestehen.

1513 1514 

1514| Pfad unter `~/.claude/` | Inhalte |1515| Pfad unter `~/.claude/` | Inhalte |

1515| ----------------------- | ------------------------------------------------------------------------------------------------------ |1516| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1516| `history.jsonl` | Jeder Prompt, den Sie eingegeben haben, mit Zeitstempel und Projektpfad. Verwendet für Up-Arrow-Abruf. |1517| `history.jsonl` | Jeder Prompt, den Sie eingegeben haben, mit Zeitstempel und Projektpfad. Verwendet für Up-Arrow-Abruf. |

1517| `stats-cache.json` | Aggregierte Token- und Kostenzählungen, die von `/usage` angezeigt werden |1518| `stats-cache.json` | Aggregierte Token- und Kostenzählungen, die von `/usage` angezeigt werden |

1519| `remote-settings.json` | Zwischengespeicherte Kopie von [servergesteuerten Einstellungen](/de/server-managed-settings) für Ihre Organisation. Nur vorhanden, wenn Ihre Organisation diese konfiguriert hat. Wird bei jedem Start aktualisiert. |

1518| `todos/` | Legacy-Pro-Sitzungs-Aufgabenlisten. Nicht mehr von aktuellen Versionen geschrieben; sicher zu löschen. |1520| `todos/` | Legacy-Pro-Sitzungs-Aufgabenlisten. Nicht mehr von aktuellen Versionen geschrieben; sicher zu löschen. |

1519 1521 

1520Andere kleine Cache- und Lock-Dateien erscheinen je nachdem, welche Funktionen Sie verwenden, und können sicher gelöscht werden.1522Andere kleine Cache- und Lock-Dateien erscheinen je nachdem, welche Funktionen Sie verwenden, und können sicher gelöscht werden.


1570| `~/.claude/history.jsonl` | Up-Arrow-Prompt-Abruf |1572| `~/.claude/history.jsonl` | Up-Arrow-Prompt-Abruf |

1571| `~/.claude/file-history/` | Checkpoint-Wiederherstellung für vergangene Sitzungen |1573| `~/.claude/file-history/` | Checkpoint-Wiederherstellung für vergangene Sitzungen |

1572| `~/.claude/stats-cache.json` | Historische Gesamtwerte, die von `/usage` angezeigt werden |1574| `~/.claude/stats-cache.json` | Historische Gesamtwerte, die von `/usage` angezeigt werden |

1575| `~/.claude/remote-settings.json` | Nichts. Wird beim nächsten Start erneut abgerufen. |

1573| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nichts für Benutzer sichtbar |1576| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nichts für Benutzer sichtbar |

1574| `~/.claude/todos/` | Nichts. Legacy-Verzeichnis nicht von aktuellen Versionen geschrieben. |1577| `~/.claude/todos/` | Nichts. Legacy-Verzeichnis nicht von aktuellen Versionen geschrieben. |

1575 1578 

Details

67| `--disallowedTools` | Tools, die aus dem Kontext des Modells entfernt werden und nicht verwendet werden können | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |67| `--disallowedTools` | Tools, die aus dem Kontext des Modells entfernt werden und nicht verwendet werden können | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

68| `--effort` | Legen Sie die [Aufwandsstufe](/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. Überschreibt die [`effortLevel`](/de/settings#available-settings) Einstellung für diese Sitzung und wird nicht beibehalten | `claude --effort high` |68| `--effort` | Legen Sie die [Aufwandsstufe](/de/model-config#adjust-effort-level) für die aktuelle Sitzung fest. Optionen: `low`, `medium`, `high`, `xhigh`, `max`; verfügbare Stufen hängen vom Modell ab. Überschreibt die [`effortLevel`](/de/settings#available-settings) Einstellung für diese Sitzung und wird nicht beibehalten | `claude --effort high` |

69| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Entfernt in v2.1.111. Auto-Modus ist jetzt standardmäßig im `Shift+Tab` Zyklus; verwenden Sie `--permission-mode auto`, um darin zu starten | `claude --permission-mode auto` |69| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Entfernt in v2.1.111. Auto-Modus ist jetzt standardmäßig im `Shift+Tab` Zyklus; verwenden Sie `--permission-mode auto`, um darin zu starten | `claude --permission-mode auto` |

70| `--exclude-dynamic-system-prompt-sections` | Verschieben Sie maschinenspezifische Abschnitte aus dem Systemprompt (Arbeitsverzeichnis, Umgebungsinformationen, Speicherpfade, Git-Status) in die erste Benutzernachricht. Verbessert die Prompt-Cache-Wiederverwendung über verschiedene Benutzer und Maschinen hinweg, die die gleiche Aufgabe ausführen. Gilt nur mit dem Standard-Systemprompt; wird ignoriert, wenn `--system-prompt` oder `--system-prompt-file` gesetzt ist. Verwenden Sie mit `-p` für Skript-, Multi-Benutzer-Workloads | `claude -p --exclude-dynamic-system-prompt-sections "query"` |70| `--exclude-dynamic-system-prompt-sections` | Verschieben Sie maschinenspezifische Abschnitte aus dem Systemprompt (Arbeitsverzeichnis, Umgebungsinformationen, Speicherpfade, Git-Repo-Flag) in die erste Benutzernachricht. Verbessert die Prompt-Cache-Wiederverwendung über verschiedene Benutzer und Maschinen hinweg, die die gleiche Aufgabe ausführen. Gilt nur mit dem Standard-Systemprompt; wird ignoriert, wenn `--system-prompt` oder `--system-prompt-file` gesetzt ist. Verwenden Sie mit `-p` für Skript-, Multi-Benutzer-Workloads | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

71| `--fallback-model` | Aktivieren Sie automatisches Fallback auf das angegebene Modell, wenn das Standardmodell überlastet ist (nur Print-Modus) | `claude -p --fallback-model sonnet "query"` |71| `--fallback-model` | Aktivieren Sie automatisches Fallback auf das angegebene Modell, wenn das Standardmodell überlastet ist (nur Print-Modus) | `claude -p --fallback-model sonnet "query"` |

72| `--fork-session` | Erstellen Sie beim Fortsetzen eine neue Sitzungs-ID, anstatt die ursprüngliche wiederzuverwenden (verwenden Sie mit `--resume` oder `--continue`) | `claude --resume abc123 --fork-session` |72| `--fork-session` | Erstellen Sie beim Fortsetzen eine neue Sitzungs-ID, anstatt die ursprüngliche wiederzuverwenden (verwenden Sie mit `--resume` oder `--continue`) | `claude --resume abc123 --fork-session` |

73| `--from-pr` | Setzen Sie Sitzungen fort, die mit einem bestimmten Pull Request verknüpft sind. Akzeptiert eine PR-Nummer, eine GitHub oder GitHub Enterprise PR URL, eine GitLab Merge Request URL oder eine Bitbucket Pull Request URL. Sitzungen werden automatisch verknüpft, wenn Claude den Pull Request erstellt | `claude --from-pr 123` |73| `--from-pr` | Setzen Sie Sitzungen fort, die mit einem bestimmten Pull Request verknüpft sind. Akzeptiert eine PR-Nummer, eine GitHub oder GitHub Enterprise PR URL, eine GitLab Merge Request URL oder eine Bitbucket Pull Request URL. Sitzungen werden automatisch verknüpft, wenn Claude den Pull Request erstellt | `claude --from-pr 123` |


124 124 

125`--system-prompt` und `--system-prompt-file` schließen sich gegenseitig aus. Die Append-Flags können mit einem der Ersetzungs-Flags kombiniert werden.125`--system-prompt` und `--system-prompt-file` schließen sich gegenseitig aus. Die Append-Flags können mit einem der Ersetzungs-Flags kombiniert werden.

126 126 

127Verwenden Sie für die meisten Anwendungsfälle ein Append-Flag. Das Anhängen bewahrt die integrierten Funktionen von Claude Code, während Ihre Anforderungen hinzugefügt werden. Verwenden Sie ein Ersetzungs-Flag nur, wenn Sie vollständige Kontrolle über den Systemprompt benötigen.127Wählen Sie basierend darauf, ob Claude Codes Standard-Identität noch zu Ihrer Aufgabe passt. Verwenden Sie ein Append-Flag, wenn Claude ein Coding-Assistent bleiben sollte, der auch Ihre zusätzlichen Regeln befolgt: Pro-Aufruf-Anweisungen, Ausgabeformatierung oder Domänenkontext für ein `-p` Skript. Das Anhängen bewahrt die Standard-Tool-Anleitung, Sicherheitsanweisungen und Coding-Konventionen, sodass Sie nur das liefern, was sich unterscheidet. Verwenden Sie ein Ersetzungs-Flag, wenn sich die Oberfläche, Identität oder das Berechtigungsmodell von Claude Code unterscheidet, wie ein Nicht-Coding-Agent in einer Pipeline, die kein Mensch überwacht. Das Ersetzen verwirft den gesamten Standard-Prompt, einschließlich Tool-Anleitung und Sicherheitsanweisungen, sodass Sie die Verantwortung für das übernehmen, was Ihre Aufgabe noch benötigt.

128 

129Diese Flags gelten nur für den aktuellen Aufruf. Für persistente Personas, die Sie zwischen verschiedenen Projekten wechseln und teilen können, verwenden Sie [Ausgabestile](/de/output-styles). Für Projektkonventionen, die Claude immer befolgen sollte, verwenden Sie [CLAUDE.md](/de/memory). Der [Agent SDK-Leitfaden zu Systemprompts](/de/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) behandelt die gleiche Entscheidung ausführlicher.

128 130 

129## Siehe auch131## Siehe auch

130 132 

commands.md +1 −0

Details

104| `/rewind` | Spulen Sie das Gespräch und/oder den Code zu einem früheren Punkt zurück, oder fassen Sie ab einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/de/checkpointing). Aliase: `/checkpoint`, `/undo` |104| `/rewind` | Spulen Sie das Gespräch und/oder den Code zu einem früheren Punkt zurück, oder fassen Sie ab einer ausgewählten Nachricht zusammen. Siehe [Checkpointing](/de/checkpointing). Aliase: `/checkpoint`, `/undo` |

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

106| `/schedule [description]` | Erstellen, aktualisieren, listen oder führen Sie [Routinen](/de/routines) aus, die auf von Anthropic verwalteter Cloud-Infrastruktur ausgeführt werden. Claude führt Sie conversational durch die Einrichtung. Alias: `/routines` |106| `/schedule [description]` | Erstellen, aktualisieren, listen oder führen Sie [Routinen](/de/routines) aus, die auf von Anthropic verwalteter Cloud-Infrastruktur ausgeführt werden. Claude führt Sie conversational durch die Einrichtung. Alias: `/routines` |

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

107| `/security-review` | Analysieren Sie ausstehende Änderungen im aktuellen Branch auf Sicherheitslücken. Überprüft den Git-Diff und identifiziert Risiken wie Injection, Authentifizierungsprobleme und Datenverlust |108| `/security-review` | Analysieren Sie ausstehende Änderungen im aktuellen Branch auf Sicherheitslücken. Überprüft den Git-Diff und identifiziert Risiken wie Injection, Authentifizierungsprobleme und Datenverlust |

108| `/setup-bedrock` | Konfigurieren Sie [Amazon Bedrock](/de/amazon-bedrock)-Authentifizierung, Region und Modell-Pins durch einen interaktiven Wizard. Nur sichtbar, wenn `CLAUDE_CODE_USE_BEDROCK=1` gesetzt ist. Erstbenutzer von Bedrock können auch auf diesen Wizard vom Login-Bildschirm zugreifen |109| `/setup-bedrock` | Konfigurieren Sie [Amazon Bedrock](/de/amazon-bedrock)-Authentifizierung, Region und Modell-Pins durch einen interaktiven Wizard. Nur sichtbar, wenn `CLAUDE_CODE_USE_BEDROCK=1` gesetzt ist. Erstbenutzer von Bedrock können auch auf diesen Wizard vom Login-Bildschirm zugreifen |

109| `/setup-vertex` | Konfigurieren Sie [Google Vertex AI](/de/google-vertex-ai)-Authentifizierung, Projekt, Region und Modell-Pins durch einen interaktiven Wizard. Nur sichtbar, wenn `CLAUDE_CODE_USE_VERTEX=1` gesetzt ist. Erstbenutzer von Vertex AI können auch auf diesen Wizard vom Login-Bildschirm zugreifen |110| `/setup-vertex` | Konfigurieren Sie [Google Vertex AI](/de/google-vertex-ai)-Authentifizierung, Projekt, Region und Modell-Pins durch einen interaktiven Wizard. Nur sichtbar, wenn `CLAUDE_CODE_USE_VERTEX=1` gesetzt ist. Erstbenutzer von Vertex AI können auch auf diesen Wizard vom Login-Bildschirm zugreifen |

data-usage.md +4 −4

Details

13**Verbrauchernutzer (Free-, Pro- und Max-Pläne)**:13**Verbrauchernutzer (Free-, Pro- und Max-Pläne)**:

14Wir geben Ihnen die Möglichkeit, Ihre Daten zur Verbesserung zukünftiger Claude-Modelle zu nutzen. Wir trainieren neue Modelle mit Daten aus Free-, Pro- und Max-Konten, wenn diese Einstellung aktiviert ist (auch wenn Sie Claude Code aus diesen Konten verwenden).14Wir geben Ihnen die Möglichkeit, Ihre Daten zur Verbesserung zukünftiger Claude-Modelle zu nutzen. Wir trainieren neue Modelle mit Daten aus Free-, Pro- und Max-Konten, wenn diese Einstellung aktiviert ist (auch wenn Sie Claude Code aus diesen Konten verwenden).

15 15 

16**Kommerzielle Nutzer**: (Team- und Enterprise-Pläne, API, Plattformen von Drittanbietern und Claude Gov) behalten bestehende Richtlinien bei: Anthropic trainiert keine generativen Modelle mit Code oder Eingabeaufforderungen, die unter kommerziellen Bedingungen an Claude Code gesendet werden, es sei denn, der Kunde hat sich dafür entschieden, seine Daten für die Modellverbesserung bereitzustellen (zum Beispiel das [Developer Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program)).16**Kommerzielle Nutzer**: (Team- und Enterprise-Pläne, API, Plattformen von Drittanbietern und Claude Gov) behalten bestehende Richtlinien bei: Anthropic trainiert keine generativen Modelle mit Code oder Eingabeaufforderungen, die unter kommerziellen Bedingungen an Claude Code gesendet werden, es sei denn, der Kunde hat sich dafür entschieden, seine Daten für die Modellverbesserung bereitzustellen (zum Beispiel das [Developer Partner Program](https://support.claude.com/de/articles/11174108-about-the-development-partner-program)).

17 17 

18### Development Partner Program18### Development Partner Program

19 19 

20Wenn Sie sich explizit dafür entscheiden, uns Materialien zum Trainieren bereitzustellen, z. B. über das [Development Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program), können wir diese Materialien zum Trainieren unserer Modelle verwenden. Ein Organisationsadministrator kann sich explizit für das Development Partner Program für seine Organisation anmelden. Beachten Sie, dass dieses Programm nur für die Anthropic-API von Erstanbietern verfügbar ist und nicht für Bedrock- oder Vertex-Nutzer.20Wenn Sie sich explizit dafür entscheiden, uns Materialien zum Trainieren bereitzustellen, z. B. über das [Development Partner Program](https://support.claude.com/de/articles/11174108-about-the-development-partner-program), können wir diese Materialien zum Trainieren unserer Modelle verwenden. Ein Organisationsadministrator kann sich explizit für das Development Partner Program für seine Organisation anmelden. Beachten Sie, dass dieses Programm nur für die Anthropic-API von Erstanbietern verfügbar ist und nicht für Bedrock- oder Vertex-Nutzer.

21 21 

22### Feedback mit dem `/feedback`-Befehl22### Feedback mit dem `/feedback`-Befehl

23 23 


33* **Nein**: lehnt ab, ohne etwas zu senden33* **Nein**: lehnt ab, ohne etwas zu senden

34* **Nicht erneut fragen**: lehnt ab und verhindert, dass diese Folgefrage in zukünftigen Sitzungen angezeigt wird34* **Nicht erneut fragen**: lehnt ab und verhindert, dass diese Folgefrage in zukünftigen Sitzungen angezeigt wird

35 35 

36Nichts wird hochgeladen, es sei denn, Sie wählen explizit **Ja**. Organisationen mit [Zero Data Retention](/de/zero-data-retention) oder bei denen Produktfeedback durch Organisationsrichtlinie deaktiviert ist, sehen diese Folgefrage nie. Ihre Antworten auf diese Umfrage, einschließlich Sitzungstranskripte, die nach der Bewertungsaufforderung eingereicht werden, beeinflussen nicht Ihre Datentrainingseinstellungen und können nicht zum Trainieren unserer KI-Modelle verwendet werden.36Nichts wird hochgeladen, es sei denn, Sie wählen explizit **Ja**. Organisationen mit [Zero Data Retention](/de/zero-data-retention) oder bei denen Produktfeedback durch Organisationsrichtlinie deaktiviert ist, oder bei denen `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist, sehen diese Folgefrage nie. Ihre Antworten auf diese Umfrage, einschließlich Sitzungstranskripte, die nach der Bewertungsaufforderung eingereicht werden, beeinflussen nicht Ihre Datentrainingseinstellungen und können nicht zum Trainieren unserer KI-Modelle verwendet werden.

37 37 

38Um diese Umfragen zu deaktivieren, setzen Sie `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Die Umfrage wird auch deaktiviert, wenn `DISABLE_TELEMETRY` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist. Um die Häufigkeit zu steuern, anstatt zu deaktivieren, setzen Sie [`feedbackSurveyRate`](/de/settings#available-settings) in Ihrer Einstellungsdatei auf eine Wahrscheinlichkeit zwischen `0` und `1`.38Um diese Umfragen zu deaktivieren, setzen Sie `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Die Umfrage wird auch deaktiviert, wenn `DISABLE_TELEMETRY`, `DO_NOT_TRACK` oder `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` gesetzt ist. Organisationen, die nicht wesentlichen Datenverkehr blockieren, aber Umfrageantworten über ihren eigenen [OpenTelemetry-Collector](/de/monitoring-usage) erfassen, können die Umfrage wieder aktivieren, indem sie `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1` setzen. Die Umfrage protokolliert dann Bewertungen nur zum konfigurierten Collector. Die Transkript-Freigabe-Folgefrage und der gesamte andere Anthropic-gebundene Feedback-Datenverkehr bleiben deaktiviert. Um die Häufigkeit zu steuern, anstatt zu deaktivieren, setzen Sie [`feedbackSurveyRate`](/de/settings#available-settings) in Ihrer Einstellungsdatei auf eine Wahrscheinlichkeit zwischen `0` und `1`.

39 39 

40### Datenspeicherung40### Datenspeicherung

41 41 

env-vars.md +4 −1

Details

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

82| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Setzen Sie auf `1`, um Anthropic-spezifische `anthropic-beta`-Request-Header und Beta-Tool-Schema-Felder (wie `defer_loading` und `eager_input_streaming`) aus API-Anfragen zu entfernen. Verwenden Sie dies, wenn ein Proxy-Gateway Anfragen mit Fehlern wie „Unexpected value(s) for the `anthropic-beta` header" oder „Extra inputs are not permitted" ablehnt. Standard-Felder (`name`, `description`, `input_schema`, `cache_control`) werden beibehalten. |82| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Setzen Sie auf `1`, um Anthropic-spezifische `anthropic-beta`-Request-Header und Beta-Tool-Schema-Felder (wie `defer_loading` und `eager_input_streaming`) aus API-Anfragen zu entfernen. Verwenden Sie dies, wenn ein Proxy-Gateway Anfragen mit Fehlern wie „Unexpected value(s) for the `anthropic-beta` header" oder „Extra inputs are not permitted" ablehnt. Standard-Felder (`name`, `description`, `input_schema`, `cache_control`) werden beibehalten. |

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

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

85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie auf `1`, um Datei-[Checkpointing](/de/checkpointing) zu deaktivieren. Der `/rewind`-Befehl kann keine Code-Änderungen wiederherstellen |85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Setzen Sie auf `1`, um Datei-[Checkpointing](/de/checkpointing) zu deaktivieren. Der `/rewind`-Befehl kann keine Code-Änderungen wiederherstellen |

86| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie auf `1`, um integrierte Commit- und PR-Workflow-Anweisungen und den Git-Status-Snapshot aus Claudes System-Prompt zu entfernen. Nützlich bei Verwendung eigener Git-Workflow-Skills. Hat Vorrang vor der Einstellung [`includeGitInstructions`](/de/settings#available-settings), wenn gesetzt |86| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Setzen Sie auf `1`, um integrierte Commit- und PR-Workflow-Anweisungen und den Git-Status-Snapshot aus Claudes System-Prompt zu entfernen. Nützlich bei Verwendung eigener Git-Workflow-Skills. Hat Vorrang vor der Einstellung [`includeGitInstructions`](/de/settings#available-settings), wenn gesetzt |

87| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie auf `1`, um die automatische Umleitung von Opus 4.0 und 4.1 zur aktuellen Opus-Version auf der Anthropic API zu verhindern. Verwenden Sie, wenn Sie absichtlich ein älteres Modell fixieren möchten. Die Umleitung wird nicht auf Bedrock, Vertex oder Foundry ausgeführt |87| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Setzen Sie auf `1`, um die automatische Umleitung von Opus 4.0 und 4.1 zur aktuellen Opus-Version auf der Anthropic API zu verhindern. Verwenden Sie, wenn Sie absichtlich ein älteres Modell fixieren möchten. Die Umleitung wird nicht auf Bedrock, Vertex oder Foundry ausgeführt |


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

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

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

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

99| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Steuert, ob Tool-Call-Eingaben von der API streamen, während Claude sie generiert. Wenn dies aus ist, kommt eine große Tool-Eingabe wie ein langer Datei-Schreibvorgang erst an, nachdem Claude die Generierung abgeschlossen hat, was aussehen kann, als würde es hängen. Standardmäßig für direkte Anthropic API-Verbindungen aktiviert. Auf Bedrock und Vertex, aktiviert pro Modell, wo der bereitgestellte Container es unterstützt. Setzen Sie auf `0`, um sich abzumelden. Setzen Sie auf `1`, um zu erzwingen, wenn Sie durch einen Proxy über `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` oder `ANTHROPIC_BEDROCK_BASE_URL` routen. Standardmäßig aus auf Foundry und [Gateway](/de/llm-gateway)-Verbindungen |100| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Steuert, ob Tool-Call-Eingaben von der API streamen, während Claude sie generiert. Wenn dies aus ist, kommt eine große Tool-Eingabe wie ein langer Datei-Schreibvorgang erst an, nachdem Claude die Generierung abgeschlossen hat, was aussehen kann, als würde es hängen. Standardmäßig für direkte Anthropic API-Verbindungen aktiviert. Auf Bedrock und Vertex, aktiviert pro Modell, wo der bereitgestellte Container es unterstützt. Setzen Sie auf `0`, um sich abzumelden. Setzen Sie auf `1`, um zu erzwingen, wenn Sie durch einen Proxy über `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` oder `ANTHROPIC_BEDROCK_BASE_URL` routen. Standardmäßig aus auf Foundry und [Gateway](/de/llm-gateway)-Verbindungen |

100| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Setzen Sie auf `1`, um die `/model`-Auswahl aus dem `/v1/models`-Endpunkt Ihres Gateways zu füllen, wenn `ANTHROPIC_BASE_URL` auf ein Anthropic-kompatibles Gateway wie LiteLLM, Kong oder einen internen Proxy verweist. Standardmäßig aus, da Gateways, die von einem gemeinsamen API-Schlüssel unterstützt werden, ansonsten jedem Benutzer jedes Modell anzeigen würden, auf das der Schlüssel zugreifen kann. Erkannte Modelle werden weiterhin durch die [`availableModels`](/de/settings#available-settings)-Zulassungsliste gefiltert |101| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Setzen Sie auf `1`, um die `/model`-Auswahl aus dem `/v1/models`-Endpunkt Ihres Gateways zu füllen, wenn `ANTHROPIC_BASE_URL` auf ein Anthropic-kompatibles Gateway wie LiteLLM, Kong oder einen internen Proxy verweist. Standardmäßig aus, da Gateways, die von einem gemeinsamen API-Schlüssel unterstützt werden, ansonsten jedem Benutzer jedes Modell anzeigen würden, auf das der Schlüssel zugreifen kann. Erkannte Modelle werden weiterhin durch die [`availableModels`](/de/settings#available-settings)-Zulassungsliste gefiltert |

102| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Setzen Sie auf `1`, um [Schnellmodus](/de/fast-mode) auf Claude Opus 4.7 anstelle von Opus 4.6 auszuführen. Mit der Variablen gesetzt, wechselt `/fast` zu Opus 4.7; ohne sie setzt `/fast` weiterhin Opus 4.6 ein |

101| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Setzen Sie auf `false`, um Prompt-Vorschläge zu deaktivieren (der Umschalter „Prompt-Vorschläge" in `/config`). Dies sind die ausgegraut angezeigten Vorhersagen, die in Ihrer Prompt-Eingabe nach Claudes Antwort erscheinen. Siehe [Prompt-Vorschläge](/de/interactive-mode#prompt-suggestions) |103| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Setzen Sie auf `false`, um Prompt-Vorschläge zu deaktivieren (der Umschalter „Prompt-Vorschläge" in `/config`). Dies sind die ausgegraut angezeigten Vorhersagen, die in Ihrer Prompt-Eingabe nach Claudes Antwort erscheinen. Siehe [Prompt-Vorschläge](/de/interactive-mode#prompt-suggestions) |

102| `CLAUDE_CODE_ENABLE_TASKS` | Setzen Sie auf `1`, um das Task-Tracking-System im nicht-interaktiven Modus (das Flag `-p`) zu aktivieren. Tasks sind standardmäßig im interaktiven Modus aktiviert. Siehe [Aufgabenliste](/de/interactive-mode#task-list) |104| `CLAUDE_CODE_ENABLE_TASKS` | Setzen Sie auf `1`, um das Task-Tracking-System im nicht-interaktiven Modus (das Flag `-p`) zu aktivieren. Tasks sind standardmäßig im interaktiven Modus aktiviert. Siehe [Aufgabenliste](/de/interactive-mode#task-list) |

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


119| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Legen Sie die maximale Anzahl von Ausgabe-Token für die meisten Anfragen fest. Standard und Obergrenzen variieren je nach Modell; siehe [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Das Erhöhen dieses Wertes reduziert das verfügbare effektive Kontextfenster, bevor die [automatische Komprimierung](/de/costs#reduce-token-usage) ausgelöst wird. |121| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Legen Sie die maximale Anzahl von Ausgabe-Token für die meisten Anfragen fest. Standard und Obergrenzen variieren je nach Modell; siehe [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Das Erhöhen dieses Wertes reduziert das verfügbare effektive Kontextfenster, bevor die [automatische Komprimierung](/de/costs#reduce-token-usage) ausgelöst wird. |

120| `CLAUDE_CODE_MAX_RETRIES` | Überschreiben Sie die Anzahl der Wiederholungen fehlgeschlagener API-Anfragen (Standard: 10) |122| `CLAUDE_CODE_MAX_RETRIES` | Überschreiben Sie die Anzahl der Wiederholungen fehlgeschlagener API-Anfragen (Standard: 10) |

121| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Maximale Anzahl von schreibgeschützten Tools und Subagenten, die parallel ausgeführt werden können (Standard: 10). Höhere Werte erhöhen die Parallelität, verbrauchen aber mehr Ressourcen |123| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Maximale Anzahl von schreibgeschützten Tools und Subagenten, die parallel ausgeführt werden können (Standard: 10). Höhere Werte erhöhen die Parallelität, verbrauchen aber mehr Ressourcen |

124| `CLAUDE_CODE_MAX_TURNS` | Begrenzen Sie die Anzahl der agentic Turns, wenn kein explizites Limit übergeben wird. Äquivalent zum Übergeben von [`--max-turns`](/de/cli-reference#cli-flags), das Vorrang hat, wenn beide gesetzt sind. Ein Wert, der keine positive Ganzzahl ist, wird beim Start mit einem Fehler abgelehnt, anstatt als kein Limit behandelt zu werden |

122| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Setzen Sie auf `1`, um stdio MCP-Server nur mit einer sicheren Baseline-Umgebung plus der konfigurierten `env` des Servers zu spawnen, anstatt Ihre Shell-Umgebung zu erben |125| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Setzen Sie auf `1`, um stdio MCP-Server nur mit einer sicheren Baseline-Umgebung plus der konfigurierten `env` des Servers zu spawnen, anstatt Ihre Shell-Umgebung zu erben |

123| `CLAUDE_CODE_NATIVE_CURSOR` | Setzen Sie auf `1`, um den eigenen Cursor des Terminals an der Eingabeeinfügemarke anzuzeigen, anstatt eines gezeichneten Blocks. Der Cursor respektiert die Blink-, Form- und Fokuseinstellungen des Terminals |126| `CLAUDE_CODE_NATIVE_CURSOR` | Setzen Sie auf `1`, um den eigenen Cursor des Terminals an der Eingabeeinfügemarke anzuzeigen, anstatt eines gezeichneten Blocks. Der Cursor respektiert die Blink-, Form- und Fokuseinstellungen des Terminals |

124| `CLAUDE_CODE_NEW_INIT` | Setzen Sie auf `1`, um `/init` einen interaktiven Setup-Flow ausführen zu lassen. Der Flow fragt, welche Dateien generiert werden sollen, einschließlich CLAUDE.md, Skills und Hooks, bevor die Codebasis erkundet und geschrieben wird. Ohne diese Variable generiert `/init` automatisch eine CLAUDE.md ohne Aufforderung. |127| `CLAUDE_CODE_NEW_INIT` | Setzen Sie auf `1`, um `/init` einen interaktiven Setup-Flow ausführen zu lassen. Der Flow fragt, welche Dateien generiert werden sollen, einschließlich CLAUDE.md, Skills und Hooks, bevor die Codebasis erkundet und geschrieben wird. Ohne diese Variable generiert `/init` automatisch eine CLAUDE.md ohne Aufforderung. |

fast-mode.md +47 −14

Details

4 4 

5# Beschleunigen Sie Antworten mit dem Schnellmodus5# Beschleunigen Sie Antworten mit dem Schnellmodus

6 6 

7> Erhalten Sie schnellere Opus 4.6-Antworten in Claude Code durch Aktivierung des Schnellmodus.7> Erhalten Sie schnellere Opus-Antworten in Claude Code durch Aktivierung des Schnellmodus.

8 8 

9<Note>9<Note>

10 Der Schnellmodus befindet sich in [Forschungsvorschau](#research-preview). Die Funktion, Preisgestaltung und Verfügbarkeit können sich basierend auf Feedback ändern.10 Der Schnellmodus befindet sich in [Forschungsvorschau](#research-preview). Die Funktion, Preisgestaltung und Verfügbarkeit können sich basierend auf Feedback ändern.

11</Note>11</Note>

12 12 

13Der Schnellmodus ist eine Hochgeschwindigkeitskonfiguration für Claude Opus 4.6, die das Modell 2,5x schneller macht, allerdings zu höheren Kosten pro Token. Aktivieren Sie ihn mit `/fast`, wenn Sie Geschwindigkeit für interaktive Arbeiten wie schnelle Iteration oder Live-Debugging benötigen, und deaktivieren Sie ihn, wenn Kosten wichtiger sind als Latenz.13Der Schnellmodus ist eine Hochgeschwindigkeitskonfiguration für Claude Opus, die das Modell 2,5x schneller macht, allerdings zu höheren Kosten pro Token. Aktivieren Sie ihn mit `/fast`, wenn Sie Geschwindigkeit für interaktive Arbeiten wie schnelle Iteration oder Live-Debugging benötigen, und deaktivieren Sie ihn, wenn Kosten wichtiger sind als Latenz.

14 14 

15Der Schnellmodus ist kein anderes Modell. Er verwendet denselben Opus 4.6 mit einer anderen API-Konfiguration, die Geschwindigkeit über Kosteneffizienz priorisiert. Sie erhalten identische Qualität und Funktionen, nur schnellere Antworten.15Der Schnellmodus ist kein anderes Modell. Er verwendet Claude Opus mit einer anderen API-Konfiguration, die Geschwindigkeit über Kosteneffizienz priorisiert. Sie erhalten identische Qualität und Funktionen, nur schnellere Antworten. Der Schnellmodus wird auf Opus 4.6 und Opus 4.7 unterstützt. Er ist nicht auf Sonnet, Haiku oder anderen Modellen verfügbar.

16 16 

17<Note>17<Note>

18 Der Schnellmodus erfordert Claude Code v2.1.36 oder später. Überprüfen Sie Ihre Version mit `claude --version`.18 Der Schnellmodus erfordert Claude Code v2.1.36 oder später. Überprüfen Sie Ihre Version mit `claude --version`.


21Was Sie wissen sollten:21Was Sie wissen sollten:

22 22 

23* Verwenden Sie `/fast`, um den Schnellmodus in Claude Code CLI ein- oder auszuschalten. Auch über `/fast` in der Claude Code VS Code Extension verfügbar.23* Verwenden Sie `/fast`, um den Schnellmodus in Claude Code CLI ein- oder auszuschalten. Auch über `/fast` in der Claude Code VS Code Extension verfügbar.

24* Die Preisgestaltung für den Schnellmodus auf Opus 4.6 beginnt bei \$30/150 MTok. Der Schnellmodus ist bis 23:59 Uhr PT am 16. Februar mit 50 % Rabatt für alle Pläne verfügbar.24* Standardmäßig wird `/fast` auf Opus 4.6 ausgeführt. Um den Schnellmodus stattdessen auf Opus 4.7 auszuführen, setzen Sie die Umgebungsvariable [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7).

25* Die Preisgestaltung für den Schnellmodus beträgt \$30/150 MTok auf Opus 4.6 und Opus 4.7.

25* Verfügbar für alle Claude Code-Benutzer mit Abonnementplänen (Pro/Max/Team/Enterprise) und Claude Console.26* Verfügbar für alle Claude Code-Benutzer mit Abonnementplänen (Pro/Max/Team/Enterprise) und Claude Console.

26* Für Claude Code-Benutzer mit Abonnementplänen (Pro/Max/Team/Enterprise) ist der Schnellmodus nur über zusätzliche Nutzung verfügbar und nicht in den Abonnement-Ratenlimits enthalten.27* Für Claude Code-Benutzer mit Abonnementplänen (Pro/Max/Team/Enterprise) ist der Schnellmodus nur über zusätzliche Nutzung verfügbar und nicht in den Abonnement-Ratenlimits enthalten.

27 28 

28Diese Seite behandelt, wie Sie [den Schnellmodus aktivieren](#toggle-fast-mode), seine [Kostenabwägung](#understand-the-cost-tradeoff), [wann Sie ihn verwenden](#decide-when-to-use-fast-mode), [Anforderungen](#requirements), [Opt-in pro Sitzung](#require-per-session-opt-in) und [Ratenlimit-Verhalten](#handle-rate-limits).29Diese Seite behandelt, wie Sie [den Schnellmodus aktivieren](#toggle-fast-mode), [den Schnellmodus auf Opus 4.7 verwenden](#use-fast-mode-on-opus-4-7), die [Kostenabwägung](#understand-the-cost-tradeoff), [wann Sie ihn verwenden](#decide-when-to-use-fast-mode), [Anforderungen](#requirements), [Opt-in pro Sitzung](#require-per-session-opt-in) und [Ratenlimit-Verhalten](#handle-rate-limits).

29 30 

30## Schnellmodus aktivieren31## Schnellmodus aktivieren

31 32 


40 41 

41Wenn Sie den Schnellmodus aktivieren:42Wenn Sie den Schnellmodus aktivieren:

42 43 

43* Wenn Sie sich auf einem anderen Modell befinden, wechselt Claude Code automatisch zu Opus 4.644* Wenn Sie sich auf einem anderen Modell befinden, wechselt Claude Code automatisch zum Schnellmodus-Modell: Opus 4.6 standardmäßig oder Opus 4.7, wenn [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7) gesetzt ist.

44* Sie sehen eine Bestätigungsmeldung: „Fast mode ON"45* Sie sehen eine Bestätigungsmeldung: „Fast mode ON"

45* Ein kleines `↯`-Symbol wird neben der Eingabeaufforderung angezeigt, während der Schnellmodus aktiv ist46* Ein kleines `↯`-Symbol wird neben der Eingabeaufforderung angezeigt, während der Schnellmodus aktiv ist

46* Führen Sie `/fast` jederzeit erneut aus, um zu überprüfen, ob der Schnellmodus aktiviert oder deaktiviert ist47* Führen Sie `/fast` jederzeit erneut aus, um zu überprüfen, ob der Schnellmodus aktiviert oder deaktiviert ist

47 48 

48Wenn Sie den Schnellmodus mit `/fast` erneut deaktivieren, bleiben Sie auf Opus 4.6. Das Modell wird nicht auf Ihr vorheriges Modell zurückgesetzt. Um zu einem anderen Modell zu wechseln, verwenden Sie `/model`.49Wenn Sie den Schnellmodus mit `/fast` erneut deaktivieren, bleiben Sie auf der gleichen Opus-Version, auf der der Schnellmodus ausgeführt wurde. Das Modell wird nicht auf Ihr vorheriges Modell zurückgesetzt. Um zu einem anderen Modell zu wechseln, verwenden Sie `/model`.

50 

51## Schnellmodus auf Opus 4.7 verwenden

52 

53<Note>

54 Der Schnellmodus auf Opus 4.7 erfordert Claude Code v2.1.139 oder später.

55</Note>

56 

57Der Schnellmodus für Claude Opus 4.7 befindet sich in Forschungsvorschau. Er wird mit der gleichen 2,5x-Geschwindigkeit und zum gleichen Preis wie der Schnellmodus für Opus 4.6 ausgeführt, ohne weitere Verhaltensänderungen.

58 

59<Note>

60 Am 14. Mai 2026 wird Opus 4.7 zum Standard-Schnellmodus-Modell. Bis dahin können Sie sich anmelden, indem Sie `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1` setzen.

61</Note>

62 

63Um sich anzumelden, setzen Sie `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1`, bevor Sie Claude Code starten. Mit der gesetzten Variablen wird `/fast` auf Opus 4.7 ausgeführt. Ohne sie wird `/fast` weiterhin auf Opus 4.6 ausgeführt.

64 

65Sie können die Variable als Shell-Export setzen:

66 

67```bash theme={null}

68export CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1

69```

70 

71Oder in einer beliebigen Claude Code [Einstellungsdatei](/de/settings#settings-files), einschließlich Benutzer-, Projekt- und verwalteten Einstellungen, um die Anmeldung zu begrenzen:

72 

73```json theme={null}

74{

75 "env": {

76 "CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE": "1"

77 }

78}

79```

80 

81Der Schnellmodus für Opus 4.6 bleibt neben Opus 4.7 verfügbar. Die beiden teilen sich den gleichen Schnellmodus-Ratenlimit-Pool: Die Nutzung auf beiden Modellen wird von den gleichen Limits abgezogen.

49 82 

50## Kostenabwägung verstehen83## Kostenabwägung verstehen

51 84 

52Der Schnellmodus hat höhere Pro-Token-Preise als Standard-Opus 4.6:85Der Schnellmodus hat höhere Pro-Token-Preise als Standard-Opus:

53 86 

54| Modus | Eingabe (MTok) | Ausgabe (MTok) |87| Modus | Eingabe (MTok) | Ausgabe (MTok) |

55| ---------------------------------- | -------------- | -------------- |88| ------------------------- | -------------- | -------------- |

56| Schnellmodus auf Opus 4.6 (\<200K) | \$30 | \$150 |89| Schnellmodus auf Opus 4.6 | \$30 | \$150 |

57| Schnellmodus auf Opus 4.6 (>200K) | \$60 | \$225 |90| Schnellmodus auf Opus 4.7 | \$30 | \$150 |

58 91 

59Der Schnellmodus ist mit dem erweiterten Kontextfenster mit 1M Token kompatibel.92Die Preisgestaltung für den Schnellmodus ist über das gesamte 1M-Token-Kontextfenster einheitlich.

60 93 

61Wenn Sie mitten in einem Gespräch in den Schnellmodus wechseln, zahlen Sie den vollständigen Schnellmodus-Preis für nicht zwischengespeicherte Eingabe-Token für den gesamten Gesprächskontext. Dies kostet mehr, als wenn Sie den Schnellmodus von Anfang an aktiviert hätten.94Wenn Sie mitten in einem Gespräch in den Schnellmodus wechseln, zahlen Sie den vollständigen Schnellmodus-Preis für nicht zwischengespeicherte Eingabe-Token für den gesamten Gesprächskontext. Dies kostet mehr, als wenn Sie den Schnellmodus von Anfang an aktiviert hätten.

62 95 


125 158 

126## Ratenlimits handhaben159## Ratenlimits handhaben

127 160 

128Der Schnellmodus hat separate Ratenlimits vom Standard-Opus 4.6. Wenn Sie das Ratenlimit des Schnellmodus erreichen oder keine zusätzlichen Nutzungsguthaben mehr haben:161Der Schnellmodus hat separate Ratenlimits vom Standard-Opus. Der Schnellmodus für Opus 4.6 und Opus 4.7 teilen sich den gleichen Ratenlimit-Pool: Die Nutzung auf beiden Modellen wird von den gleichen Limits abgezogen. Wenn Sie das Ratenlimit des Schnellmodus erreichen oder keine zusätzlichen Nutzungsguthaben mehr haben:

129 162 

1301. Der Schnellmodus fällt automatisch auf Standard-Opus 4.6 zurück1631. Der Schnellmodus fällt automatisch auf Standard-Geschwindigkeit auf der gleichen Opus-Version zurück

1312. Das `↯`-Symbol wird grau, um die Abkühlung anzuzeigen1642. Das `↯`-Symbol wird grau, um die Abkühlung anzuzeigen

1323. Sie arbeiten weiterhin mit Standard-Geschwindigkeit und -Preisen1653. Sie arbeiten weiterhin mit Standard-Geschwindigkeit und -Preisen

1334. Wenn die Abkühlung abläuft, wird der Schnellmodus automatisch wieder aktiviert1664. Wenn die Abkühlung abläuft, wird der Schnellmodus automatisch wieder aktiviert

fullscreen.md +2 −0

Details

93 93 

94Ein Wert von `3` entspricht dem Standard in `vim` und ähnlichen Anwendungen. Die Einstellung akzeptiert Werte von 1 bis 20.94Ein Wert von `3` entspricht dem Standard in `vim` und ähnlichen Anwendungen. Die Einstellung akzeptiert Werte von 1 bis 20.

95 95 

96Um die Scroll-Geschwindigkeit interaktiv anzupassen, führen Sie `/scroll-speed` aus. Der Dialog zeigt ein Lineal an, das Sie scrollen können, während er offen ist, sodass Sie die Änderung sofort spüren können. Drücken Sie `←` und `→` zum Anpassen, `r` zum Zurücksetzen auf den automatisch erkannten Standard und `Enter` zum Speichern. Der Befehl schreibt denselben Wert, den die Umgebungsvariable `CLAUDE_CODE_SCROLL_SPEED` setzt, persistent in `~/.claude/settings.json`. Der Befehl ist im JetBrains IDE-Terminal nicht verfügbar.

97 

96### Scrollen im JetBrains IDE-Terminal98### Scrollen im JetBrains IDE-Terminal

97 99 

98Im JetBrains IDE-Terminal wendet Claude Code seine eigene Scroll-Verarbeitung an und ignoriert `CLAUDE_CODE_SCROLL_SPEED`. Das Terminal sendet Scroll-Ereignisse mit einer viel höheren Rate als andere Emulatoren, sodass ein anderswo abgestimmter Multiplikator hier zu weit geht.100Im JetBrains IDE-Terminal wendet Claude Code seine eigene Scroll-Verarbeitung an und ignoriert `CLAUDE_CODE_SCROLL_SPEED`. Das Terminal sendet Scroll-Ereignisse mit einer viel höheren Rate als andere Emulatoren, sodass ein anderswo abgestimmter Multiplikator hier zu weit geht.

glossary.md +1 −1

Details

174 174 

175### Output Style175### Output Style

176 176 

177Eine Konfiguration, die Claudes System-Prompt ändert, um Antwortverhalten, Ton oder Format zu ändern. Output Styles schalten die Software-Engineering-spezifischen Teile des Standard-System-Prompts aus, im Gegensatz zu [CLAUDE.md](#claude-md), das als Benutzernachricht nach dem System-Prompt bereitgestellt wird. Integrierte Styles umfassen Default, Explanatory und Learning.177Eine Konfiguration, die Claudes System-Prompt ändert, um Antwortverhalten, Ton oder Format zu ändern. Output Styles schalten die Software-Engineering-spezifischen Teile des Standard-System-Prompts aus, im Gegensatz zu [CLAUDE.md](#claude-md), das als Benutzernachricht nach dem System-Prompt bereitgestellt wird. Integrierte Styles umfassen Default, Proactive, Explanatory und Learning.

178 178 

179Weitere Informationen: [Output Styles](/de/output-styles)179Weitere Informationen: [Output Styles](/de/output-styles)

180 180 

hooks.md +86 −23

Details

70 {70 {

71 "type": "command",71 "type": "command",

72 "if": "Bash(rm *)",72 "if": "Bash(rm *)",

73 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-rm.sh"73 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",

74 "args": []

74 }75 }

75 ]76 ]

76 }77 }


307Zusätzlich zu den [gemeinsamen Feldern](#common-fields) akzeptieren Command-Hooks diese Felder:308Zusätzlich zu den [gemeinsamen Feldern](#common-fields) akzeptieren Command-Hooks diese Felder:

308 309 

309| Feld | Erforderlich | Beschreibung |310| Feld | Erforderlich | Beschreibung |

310| :------------ | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |311| :------------ | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `command` | ja | Shell-Befehl zum Ausführen |312| `command` | ja | Shell-Befehl zum Ausführen. Mit `args` die ausführbare Datei zum direkten Spawnen. Siehe [Exec-Form und Shell-Form](#exec-form-and-shell-form) |

313| `args` | nein | Argumentliste. Wenn vorhanden, wird `command` als ausführbare Datei aufgelöst und direkt mit `args` als Argumentvektor gespawnt, ohne Shell. Siehe [Exec-Form und Shell-Form](#exec-form-and-shell-form) |

312| `async` | nein | Wenn `true`, wird im Hintergrund ausgeführt, ohne zu blockieren. Siehe [Hooks im Hintergrund ausführen](#run-hooks-in-the-background) |314| `async` | nein | Wenn `true`, wird im Hintergrund ausgeführt, ohne zu blockieren. Siehe [Hooks im Hintergrund ausführen](#run-hooks-in-the-background) |

313| `asyncRewake` | nein | Wenn `true`, wird im Hintergrund ausgeführt und weckt Claude bei Exit-Code 2 auf. Impliziert `async`. Der stderr des Hooks oder stdout, wenn stderr leer ist, wird Claude als Systemerinnerung angezeigt, damit es auf einen lang laufenden Hintergrund-Fehler reagieren kann |315| `asyncRewake` | nein | Wenn `true`, wird im Hintergrund ausgeführt und weckt Claude bei Exit-Code 2 auf. Impliziert `async`. Der stderr des Hooks oder stdout, wenn stderr leer ist, wird Claude als Systemerinnerung angezeigt, damit es auf einen lang laufenden Hintergrund-Fehler reagieren kann |

314| `shell` | nein | Shell zum Verwenden für diesen Hook. Akzeptiert `"bash"` (Standard) oder `"powershell"`. Das Setzen von `"powershell"` führt den Befehl über PowerShell unter Windows aus. Erfordert nicht `CLAUDE_CODE_USE_POWERSHELL_TOOL`, da Hooks PowerShell direkt spawnen |316| `shell` | nein | Shell zum Verwenden für diesen Hook. Akzeptiert `"bash"` (Standard) oder `"powershell"`. Das Setzen von `"powershell"` führt den Befehl über PowerShell unter Windows aus. Erfordert nicht `CLAUDE_CODE_USE_POWERSHELL_TOOL`, da Hooks PowerShell direkt spawnen. Wird ignoriert, wenn `args` gesetzt ist |

317 

318<a id="exec-form-and-shell-form" />

319 

320##### Exec-Form und Shell-Form

321 

322Ein Command-Hook wird als Exec-Form ausgeführt, wenn `args` gesetzt ist, und als Shell-Form, wenn `args` weggelassen ist. Setzen Sie `args`, wenn der Hook auf einen [Pfad-Platzhalter](#reference-scripts-by-path) verweist, da jedes Element als ein Argument ohne Anführungszeichen übergeben wird. Lassen Sie `args` weg, wenn Sie Shell-Funktionen wie Pipes oder `&&` benötigen, oder wenn keine dieser Bedenken zutrifft.

323 

324**Exec-Form** wird ausgeführt, wenn `args` vorhanden ist. Claude Code löst `command` als ausführbare Datei auf `PATH` auf und spawnt sie direkt mit `args` als Argumentvektor. Es gibt keine Shell, daher ist jedes `args`-Element genau ein Argument, wie geschrieben, und Pfad-Platzhalter wie `${CLAUDE_PLUGIN_ROOT}` werden als einfache Zeichenketten in `command` und in jedes `args`-Element ersetzt. Sonderzeichen wie Apostrophe, `$` und Backticks werden wörtlich durchgeleitet, da es keine Shell gibt, die sie interpretiert. Auf keiner Plattform findet Shell-Tokenisierung statt.

325 

326**Shell-Form** wird ausgeführt, wenn `args` fehlt. Die `command`-Zeichenkette wird an eine Shell übergeben: `sh -c` auf macOS und Linux, Git Bash unter Windows oder PowerShell, wenn Git Bash nicht installiert ist. Setzen Sie das Feld `shell`, um explizit zu wählen. Die Shell tokenisiert die Zeichenkette, erweitert Variablen und interpretiert Pipes, `&&`, Umleitungen und Globs.

327 

328<Note>

329 Unter Windows erfordert die Exec-Form, dass `command` zu einer echten ausführbaren Datei wie `.exe` aufgelöst wird. Die `.cmd` und `.bat` Shims, die npm, npx, eslint und andere Tools in `node_modules/.bin` installieren, sind keine ausführbaren Dateien und können ohne Shell nicht gespawnt werden. Um sie in Exec-Form auszuführen, rufen Sie das zugrunde liegende Skript direkt mit `node` auf, zum Beispiel `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. Das `node` plus Skript-Pfad-Muster funktioniert auf jeder Plattform, da `node.exe` eine echte Binärdatei ist. Um einen `.cmd` oder `.bat` Shim nach Name auszuführen, verwenden Sie Shell-Form.

330</Note>

331 

332Dieses Beispiel führt ein Node-Skript aus, das mit einem Plugin gebündelt ist. Exec-Form übergibt den aufgelösten Skript-Pfad als ein Argument ohne Anführungszeichen:

333 

334```json theme={null}

335{

336 "type": "command",

337 "command": "node",

338 "args": ["${CLAUDE_PLUGIN_ROOT}/scripts/format.js", "--fix"]

339}

340```

341 

342Die äquivalente Shell-Form benötigt Anführungszeichen, um Pfade mit Leerzeichen oder Sonderzeichen zu handhaben:

343 

344```json theme={null}

345{

346 "type": "command",

347 "command": "node \"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.js --fix"

348}

349```

350 

351Beide Formen unterstützen die gleichen [Pfad-Platzhalter](#reference-scripts-by-path), und beide exportieren sie als Umgebungsvariablen `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` und `CLAUDE_PLUGIN_DATA` auf dem gespawnten Prozess, daher kann ein Skript `process.env.CLAUDE_PLUGIN_ROOT` lesen, unabhängig davon, wie es gestartet wurde. Plugin-Hooks ersetzen zusätzlich `${user_config.*}` Werte; siehe [Benutzerkonfiguration](/de/plugins-reference#user-configuration).

352 

353<Note>

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

355</Note>

315 356 

316#### HTTP-Hook-Felder357#### HTTP-Hook-Felder

317 358 


397| `prompt` | ja | Prompt-Text zum Senden an das Modell. Verwenden Sie `$ARGUMENTS` als Platzhalter für die Hook-Eingabe JSON |438| `prompt` | ja | Prompt-Text zum Senden an das Modell. Verwenden Sie `$ARGUMENTS` als Platzhalter für die Hook-Eingabe JSON |

398| `model` | nein | Modell zur Verwendung für die Evaluierung. Standardwert ist ein schnelles Modell |439| `model` | nein | Modell zur Verwendung für die Evaluierung. Standardwert ist ein schnelles Modell |

399 440 

400Alle passenden Hooks werden parallel ausgeführt, und identische Handler werden automatisch dedupliziert. Command-Hooks werden nach Befehlszeichenkette dedupliziert, und HTTP-Hooks werden nach URL dedupliziert. Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` wird in Remote-Web-Umgebungen auf `"true"` gesetzt und ist in der lokalen CLI nicht gesetzt.441Alle passenden Hooks werden parallel ausgeführt, und identische Handler werden automatisch dedupliziert. Command-Hooks werden nach Befehlszeichenkette und `args` dedupliziert, und HTTP-Hooks werden nach URL dedupliziert. Handler werden im aktuellen Verzeichnis mit der Umgebung von Claude Code ausgeführt. Die Umgebungsvariable `$CLAUDE_CODE_REMOTE` wird in Remote-Web-Umgebungen auf `"true"` gesetzt und ist in der lokalen CLI nicht gesetzt.

401 442 

402### Hooks nach Pfad referenzieren443### Skripte nach Pfad referenzieren

403 444 

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

405 446 

406* `$CLAUDE_PROJECT_DIR`: das Projekt-Root. In Anführungszeichen setzen, um Pfade mit Leerzeichen zu handhaben.447* `${CLAUDE_PROJECT_DIR}`: das Projekt-Root.

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

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

409 450 

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

452 

410<Tabs>453<Tabs>

411 <Tab title="Projekt-Skripte">454 <Tab title="Projekt-Skripte">

412 Dieses Beispiel verwendet `$CLAUDE_PROJECT_DIR`, um einen Style-Checker aus dem `.claude/hooks/`-Verzeichnis des Projekts nach jedem `Write`- oder `Edit`-Tool-Aufruf auszuführen:455 Dieses Beispiel verwendet `${CLAUDE_PROJECT_DIR}`, um einen Style-Checker aus dem `.claude/hooks/`-Verzeichnis des Projekts nach jedem `Write`- oder `Edit`-Tool-Aufruf auszuführen:

413 456 

414 ```json theme={null}457 ```json theme={null}

415 {458 {


420 "hooks": [463 "hooks": [

421 {464 {

422 "type": "command",465 "type": "command",

423 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh"466 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh",

467 "args": []

424 }468 }

425 ]469 ]

426 }470 }


446 {490 {

447 "type": "command",491 "type": "command",

448 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",492 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",

493 "args": [],

449 "timeout": 30494 "timeout": 30

450 }495 }

451 ]496 ]


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

530 575 

531| Feld | Beschreibung |576| Feld | Beschreibung |

532| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |577| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

534| `agent_type` | Agent-Name (zum Beispiel `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Sitzung `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Sitzung. |579| `agent_type` | Agent-Name (zum Beispiel `"Explore"` oder `"security-reviewer"`). Vorhanden, wenn die Sitzung `--agent` verwendet oder der Hook innerhalb eines Subagenten ausgelöst wird. Für Subagenten hat der Typ des Subagenten Vorrang vor dem `--agent`-Wert der Sitzung. Für [benutzerdefinierte Subagenten](/de/sub-agents) ist dies das `name`-Feld aus dem Frontmatter des Agenten, nicht der Dateiname. |

580 

581Nur [`SessionStart`](#sessionstart)-Hooks erhalten ein `model`-Feld. Es gibt keine `$CLAUDE_MODEL`-Umgebungsvariable. Ein Hook-Prozess erbt die übergeordnete Umgebung, sodass er `$ANTHROPIC_MODEL` lesen kann, wenn Sie sie in Ihrer Shell setzen, aber dieser Wert ändert sich nicht, wenn Sie während einer Sitzung mit `/model` Modelle wechseln.

535 582 

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

537 584 


1153| `questions` | Array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Fragen zum Präsentieren, jeweils mit einer `question`-Zeichenkette, kurzem `header`, `options`-Array und optionalem `multiSelect`-Flag |1200| `questions` | Array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Fragen zum Präsentieren, jeweils mit einer `question`-Zeichenkette, kurzem `header`, `options`-Array und optionalem `multiSelect`-Flag |

1154| `answers` | Objekt | `{"Which framework?": "React"}` | Optional. Ordnet Fragetext der ausgewählten Option-Bezeichnung zu. Multi-Select-Antworten verbinden Bezeichnungen mit Kommas. Claude setzt dieses Feld nicht; geben Sie es über `updatedInput` an, um programmatisch zu antworten |1201| `answers` | Objekt | `{"Which framework?": "React"}` | Optional. Ordnet Fragetext der ausgewählten Option-Bezeichnung zu. Multi-Select-Antworten verbinden Bezeichnungen mit Kommas. Claude setzt dieses Feld nicht; geben Sie es über `updatedInput` an, um programmatisch zu antworten |

1155 1202 

1203##### ExitPlanMode

1204 

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

1206 

1207| Feld | Typ | Beispiel | Beschreibung |

1208| :--------------- | :----------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1209| `plan` | Zeichenkette | `"## Refactor auth\n1. Extract..."` | Plan-Inhalt in Markdown. Injiziert aus der Plan-Datei auf der Festplatte |

1210| `planFilePath` | Zeichenkette | `"/Users/.../plans/refactor-auth.md"` | Pfad zur Plan-Datei. Injiziert |

1211| `allowedPrompts` | Array | `[{"tool": "Bash", "prompt": "run tests"}]` | Optional. Prompt-basierte Berechtigungen, die Claude anfordert, um den Plan zu implementieren, jeweils mit einem `tool`-Namen und einem `prompt`, der die Kategorie der Aktion beschreibt |

1212 

1213In `PostToolUse` ist `tool_response` ein Objekt mit `plan`- und `filePath`-Feldern, die den genehmigten Plan enthalten, plus interne Status-Flags. Lesen Sie `tool_response.plan` für den Plan-Inhalt, anstatt die Datei von der Festplatte neu zu lesen.

1214 

1156#### PreToolUse-Entscheidungskontrolle1215#### PreToolUse-Entscheidungskontrolle

1157 1216 

1158`PreToolUse`-Hooks können steuern, ob ein Tool-Aufruf fortgesetzt wird. Im Gegensatz zu anderen Hooks, die ein Top-Level-Feld `decision` verwenden, gibt PreToolUse seine Entscheidung in einem `hookSpecificOutput`-Objekt zurück. Dies gibt ihm reichere Kontrolle: vier Ergebnisse (zulassen, verweigern, fragen oder verschieben) plus die Möglichkeit, die Tool-Eingabe vor der Ausführung zu ändern.1217`PreToolUse`-Hooks können steuern, ob ein Tool-Aufruf fortgesetzt wird. Im Gegensatz zu anderen Hooks, die ein Top-Level-Feld `decision` verwenden, gibt PreToolUse seine Entscheidung in einem `hookSpecificOutput`-Objekt zurück. Dies gibt ihm reichere Kontrolle: vier Ergebnisse (zulassen, verweigern, fragen oder verschieben) plus die Möglichkeit, die Tool-Eingabe vor der Ausführung zu ändern.


1596 1655 

1597### SubagentStart1656### SubagentStart

1598 1657 

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

1600 1659 

1601#### SubagentStart-Eingabe1660#### SubagentStart-Eingabe

1602 1661 


1651}1710}

1652```1711```

1653 1712 

1654SubagentStop-Hooks verwenden das gleiche Entscheidungskontrollformat wie [Stop-Hooks](#stop-decision-control).1713SubagentStop-Hooks verwenden das gleiche Entscheidungskontrollformat wie [Stop-Hooks](#stop-decision-control). Sie unterstützen keine `additionalContext`. Das Zurückgeben von `decision: "block"` mit einem `reason` hält den Subagenten am Laufen und liefert `reason` an den Subagenten als nächste Anweisung. Um Kontext in die übergeordnete Sitzung nach der Rückkehr eines Subagenten einzufügen, verwenden Sie stattdessen einen [`PostToolUse`](#posttooluse)-Hook auf dem `Agent`-Tool.

1655 1714 

1656### TaskCreated1715### TaskCreated

1657 1716 


1905 "hooks": [1964 "hooks": [

1906 {1965 {

1907 "type": "command",1966 "type": "command",

1908 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/audit-config-change.sh"1967 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/audit-config-change.sh",

1968 "args": []

1909 }1969 }

1910 ]1970 ]

1911 }1971 }


2394```2454```

2395 2455 

2396| Feld | Erforderlich | Beschreibung |2456| Feld | Erforderlich | Beschreibung |

2397| :-------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2457| :---------------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2398| `type` | ja | Muss `"prompt"` sein |2458| `type` | ja | Muss `"prompt"` sein |

2399| `prompt` | ja | Der Prompt-Text zum Senden an das LLM. Verwenden Sie `$ARGUMENTS` als Platzhalter für die Hook-Eingabe JSON. Wenn `$ARGUMENTS` nicht vorhanden ist, wird die Eingabe JSON an den Prompt angehängt |2459| `prompt` | ja | Der Prompt-Text zum Senden an das LLM. Verwenden Sie `$ARGUMENTS` als Platzhalter für die Hook-Eingabe JSON. Wenn `$ARGUMENTS` nicht vorhanden ist, wird die Eingabe JSON an den Prompt angehängt |

2400| `model` | nein | Modell zur Verwendung für die Evaluierung. Standardwert ist ein schnelles Modell |2460| `model` | nein | Modell zur Verwendung für die Evaluierung. Standardwert ist ein schnelles Modell |

2401| `timeout` | nein | Timeout in Sekunden. Standard: 30 |2461| `timeout` | nein | Timeout in Sekunden. Standard: 30 |

2462| `continueOnBlock` | nein | Wenn der Prompt `ok: false` zurückgibt, wird der Grund an Claude zurückgegeben und der Turn wird fortgesetzt, anstatt zu stoppen. Standard: `false`. Implementiert als `continue: true` auf der resultierenden `decision: "block"`. Siehe [Response-Schema](#response-schema) für ereignisspezifisches Verhalten |

2402 2463 

2403### Response-Schema2464### Response-Schema

2404 2465 


2412```2473```

2413 2474 

2414| Feld | Beschreibung |2475| Feld | Beschreibung |

2415| :------- | :----------------------------------------------------------------------------------------------- |2476| :------- | :----------------------------------------------------------------------------------------------------------------- |

2416| `ok` | `true` erlaubt die Aktion, `false` verhindert sie. Siehe das ereignisspezifische Verhalten unten |2477| `ok` | `true` erlaubt die Aktion. `false` erzeugt eine `decision: "block"`. Siehe das ereignisspezifische Verhalten unten |

2417| `reason` | Erforderlich, wenn `ok` `false` ist. Erklärung für die Entscheidung |2478| `reason` | Erforderlich, wenn `ok` `false` ist. Wird als Blockierungsgrund verwendet |

2418 2479 

2419Was bei `ok: false` passiert, hängt vom Ereignis ab:2480Was bei `ok: false` passiert, hängt vom Ereignis ab:

2420 2481 

2421* `Stop` und `SubagentStop`: der Grund wird an Claude als nächste Anweisung zurückgegeben und der Turn wird fortgesetzt2482* `Stop` und `SubagentStop`: der Grund wird an Claude als nächste Anweisung zurückgegeben und der Turn wird fortgesetzt

2422* `PreToolUse`: der Tool-Aufruf wird verweigert und der Grund wird an Claude als Tool-Fehler zurückgegeben, gleichbedeutend mit einem Command-Hook mit `permissionDecision: "deny"`2483* `PreToolUse`: der Tool-Aufruf wird verweigert und der Grund wird an Claude als Tool-Fehler zurückgegeben, gleichbedeutend mit einem Command-Hook mit `permissionDecision: "deny"`

2423* `PostToolUse`, `PostToolBatch`, `UserPromptSubmit` und `UserPromptExpansion`: der Turn endet und der Grund wird im Chat als Warnzeile angezeigt, gleichbedeutend mit der Rückgabe von `"continue": false` aus einem Command-Hook2484* `PostToolUse`: standardmäßig endet der Turn und der Grund wird im Chat als Warnzeile angezeigt. Setzen Sie `continueOnBlock: true`, um den Grund an Claude zurückzugeben und den Turn stattdessen fortzusetzen

2485* `PostToolBatch`, `UserPromptSubmit` und `UserPromptExpansion`: der Turn endet und der Grund wird als Warnzeile angezeigt. Diese Ereignisse beenden den Turn bei `decision: "block"` unabhängig von `continue`

2424* `PostToolUseFailure`, `TaskCreated` und `TaskCompleted`: der Grund wird an Claude als Tool-Fehler zurückgegeben, ähnlich wie `PreToolUse`2486* `PostToolUseFailure`, `TaskCreated` und `TaskCompleted`: der Grund wird an Claude als Tool-Fehler zurückgegeben, ähnlich wie `PreToolUse`

2425* `PermissionRequest`: `ok: false` hat keine Auswirkung. Um eine Genehmigung von einem Hook zu verweigern, verwenden Sie einen [Command-Hook](#command-hook-fields) mit `hookSpecificOutput.decision.behavior: "deny"`2487* `PermissionRequest`: `ok: false` hat keine Auswirkung. Um eine Genehmigung von einem Hook zu verweigern, verwenden Sie einen [Command-Hook](#command-hook-fields) mit `hookSpecificOutput.decision.behavior: "deny"`

2426 2488 


2579 "hooks": [2641 "hooks": [

2580 {2642 {

2581 "type": "command",2643 "type": "command",

2582 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run-tests-async.sh",2644 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",

2645 "args": [],

2583 "async": true,2646 "async": true,

2584 "timeout": 3002647 "timeout": 300

2585 }2648 }


2616* **Validieren und bereinigen Sie Eingaben**: Vertrauen Sie niemals blind auf Eingabedaten2679* **Validieren und bereinigen Sie Eingaben**: Vertrauen Sie niemals blind auf Eingabedaten

2617* **Zitieren Sie immer Shell-Variablen**: Verwenden Sie `"$VAR"` nicht `$VAR`2680* **Zitieren Sie immer Shell-Variablen**: Verwenden Sie `"$VAR"` nicht `$VAR`

2618* **Blockieren Sie Pfad-Traversal**: Prüfen Sie auf `..` in Dateipfaden2681* **Blockieren Sie Pfad-Traversal**: Prüfen Sie auf `..` in Dateipfaden

2619* **Verwenden Sie absolute Pfade**: Geben Sie vollständige Pfade für Skripte an, verwenden Sie `"$CLAUDE_PROJECT_DIR"` für das Projekt-Root2682* **Verwenden Sie absolute Pfade**: Geben Sie vollständige Pfade für Skripte an. In der Exec-Form verwenden Sie `${CLAUDE_PROJECT_DIR}` und der Pfad benötigt keine Anführungszeichen. In der Shell-Form wickeln Sie ihn in doppelte Anführungszeichen ein

2620* **Überspringen Sie sensible Dateien**: Vermeiden Sie `.env`, `.git/`, Schlüssel, etc.2683* **Überspringen Sie sensible Dateien**: Vermeiden Sie `.env`, `.git/`, Schlüssel, etc.

2621 2684 

2622## Windows PowerShell-Tool2685## Windows PowerShell-Tool

hooks-guide.md +4 −4

Details

864 864 

865### Einschränkungen865### Einschränkungen

866 866 

867* Command-Hooks kommunizieren nur über stdout, stderr und Exit-Codes. Sie können `/`-Befehle oder Tool-Aufrufe nicht direkt auslösen. Text, der über `additionalContext` zurückgegeben wird, wird als Systemerinnerung injiziert, die Claude als Klartext liest. HTTP-Hooks kommunizieren stattdessen über den Response-Body.867* Command-Hooks kommunizieren nur über stdout, stderr und Exit-Codes. Sie können `/`-Befehle oder Tool-Aufrufe nicht auslösen. Text, der über `additionalContext` zurückgegeben wird, wird als Systemerinnerung injiziert, die Claude als Klartext liest. HTTP-Hooks kommunizieren stattdessen über den Response-Body.

868* Hook-Timeout beträgt standardmäßig 10 Minuten, konfigurierbar pro Hook mit dem Feld `timeout` (in Sekunden).868* Hook-Timeout beträgt standardmäßig 10 Minuten, konfigurierbar pro Hook mit dem Feld `timeout` (in Sekunden).

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

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

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

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

873 873 


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

896 echo $? # Überprüfen Sie den Exit-Code896 echo $? # Überprüfen Sie den Exit-Code

897 ```897 ```

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

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

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

901 901 


926 926 

927Claude Code zeigt einen JSON-Parsing-Fehler an, obwohl Ihr Hook-Skript gültiges JSON ausgibt.927Claude Code zeigt einen JSON-Parsing-Fehler an, obwohl Ihr Hook-Skript gültiges JSON ausgibt.

928 928 

929Wenn Claude Code einen Hook ausführt, spawnt es eine Shell, die Ihr Profil sourced (`~/.zshrc` oder `~/.bashrc`). Wenn Ihr Profil bedingungslose `echo`-Anweisungen enthält, wird diese Ausgabe Ihrem Hook-JSON vorangestellt:929Wenn Claude Code einen Shell-Form-Command-Hook ausführt (einen ohne `args`), spawnt es `sh -c` auf macOS und Linux oder Git Bash auf Windows standardmäßig. Diese Shell ist nicht-interaktiv, aber Git Bash und einige Konfigurationen (wie `BASH_ENV`, das auf `~/.bashrc` zeigt) sourced trotzdem Ihr Profil. Wenn dieses Profil bedingungslose `echo`-Anweisungen enthält, wird die Ausgabe Ihrem Hook-JSON vorangestellt:

930 930 

931```text theme={null}931```text theme={null}

932Shell ready on arm64932Shell ready on arm64

Details

9## Tastaturkürzel9## Tastaturkürzel

10 10 

11<Note>11<Note>

12 Tastaturkürzel können je nach Plattform und Terminal variieren. Drücken Sie `?`, um die verfügbaren Kürzel für Ihre Umgebung anzuzeigen.12 Tastaturkürzel können je nach Plattform und Terminal variieren. Im [Vollbildrendering](/de/fullscreen) drücken Sie `?` im Transkript-Viewer, um die verfügbaren Kürzel dort anzuzeigen.

13 13 

14 **macOS-Benutzer**: Option/Alt-Tastenkürzel (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) erfordern die Konfiguration von Option als Meta in Ihrem Terminal:14 **macOS-Benutzer**: Option/Alt-Tastenkürzel (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) erfordern die Konfiguration von Option als Meta in Ihrem Terminal:

15 15 


36| `Ctrl+T` | Task-Liste umschalten | Zeigen oder verbergen Sie die [Task-Liste](#task-list) im Terminal-Statusbereich |36| `Ctrl+T` | Task-Liste umschalten | Zeigen oder verbergen Sie die [Task-Liste](#task-list) im Terminal-Statusbereich |

37| `Left/Right arrows` | Durch Dialog-Registerkarten navigieren | Navigieren Sie zwischen Registerkarten in Berechtigungsdialogen und Menüs |37| `Left/Right arrows` | Durch Dialog-Registerkarten navigieren | Navigieren Sie zwischen Registerkarten in Berechtigungsdialogen und Menüs |

38| `Up/Down arrows` oder `Ctrl+P`/`Ctrl+N` | Cursor bewegen oder Befehlsverlauf navigieren | Bei mehrzeiliger Eingabe bewegt sich der Cursor zunächst innerhalb der Eingabeaufforderung. Sobald sich der Cursor bereits am oberen oder unteren Rand befindet, navigiert das erneute Drücken durch den Befehlsverlauf |38| `Up/Down arrows` oder `Ctrl+P`/`Ctrl+N` | Cursor bewegen oder Befehlsverlauf navigieren | Bei mehrzeiliger Eingabe bewegt sich der Cursor zunächst innerhalb der Eingabeaufforderung. Sobald sich der Cursor bereits am oberen oder unteren Rand befindet, navigiert das erneute Drücken durch den Befehlsverlauf |

39| `Esc` | Claude unterbrechen | Stoppen Sie die aktuelle Antwort oder den Tool-Aufruf in der Mitte des Zuges, um umzuleiten. Claude behält die bisherige Arbeit bei |

39| `Esc` + `Esc` | Zurückspulen oder zusammenfassen | Stellen Sie Code und/oder Gespräch auf einen vorherigen Punkt wieder her, oder fassen Sie ab einer ausgewählten Nachricht zusammen |40| `Esc` + `Esc` | Zurückspulen oder zusammenfassen | Stellen Sie Code und/oder Gespräch auf einen vorherigen Punkt wieder her, oder fassen Sie ab einer ausgewählten Nachricht zusammen |

40| `Shift+Tab` oder `Alt+M` (einige Konfigurationen) | Berechtigungsmodi umschalten | Wechseln Sie zwischen `default`, `acceptEdits`, `plan` und allen Modi, die Sie aktiviert haben, z. B. `auto` oder `bypassPermissions`. Siehe [Berechtigungsmodi](/de/permission-modes). |41| `Shift+Tab` oder `Alt+M` (einige Konfigurationen) | Berechtigungsmodi umschalten | Wechseln Sie zwischen `default`, `acceptEdits`, `plan` und allen Modi, die Sie aktiviert haben, z. B. `auto` oder `bypassPermissions`. Siehe [Berechtigungsmodi](/de/permission-modes). |

41| `Option+P` (macOS) oder `Alt+P` (Windows/Linux) | Modell wechseln | Wechseln Sie Modelle, ohne Ihren Prompt zu löschen |42| `Option+P` (macOS) oder `Alt+P` (Windows/Linux) | Modell wechseln | Wechseln Sie Modelle, ohne Ihren Prompt zu löschen |


86 87 

87### Transkript-Viewer88### Transkript-Viewer

88 89 

89Wenn der Transkript-Viewer offen ist (umgeschaltet mit `Ctrl+O`), sind diese Kürzel verfügbar. `Ctrl+E` kann über [`transcript:toggleShowAll`](/de/keybindings) neu zugewiesen werden.90Wenn der Transkript-Viewer offen ist (umgeschaltet mit `Ctrl+O`), sind diese Kürzel verfügbar. Im [Vollbildrendering](/de/fullscreen) drücken Sie `?`, um das vollständige Kürzel-Referenzpanel im Viewer anzuzeigen. `Ctrl+E` kann über [`transcript:toggleShowAll`](/de/keybindings) neu zugewiesen werden.

90 91 

91| Kürzel | Beschreibung |92| Kürzel | Beschreibung |

92| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

94| `?` | Tastaturkürzel-Hilfepanel umschalten. Erfordert [Vollbildrendering](/de/fullscreen) |

95| `{` / `}` | Zur vorherigen oder nächsten Benutzereingabe springen, wie vim-Absatzbewegung. Erfordert [Vollbildrendering](/de/fullscreen) |

93| `Ctrl+E` | Alle Inhalte anzeigen umschalten |96| `Ctrl+E` | Alle Inhalte anzeigen umschalten |

94| `[` | Schreiben Sie das vollständige Gespräch in den nativen Scrollback Ihres Terminals, sodass `Cmd+F`, tmux-Kopiermodus und andere native Tools es durchsuchen können. Erfordert [Vollbildrendering](/de/fullscreen#search-and-review-the-conversation) |97| `[` | Schreiben Sie das vollständige Gespräch in den nativen Scrollback Ihres Terminals, sodass `Cmd+F`, tmux-Kopiermodus und andere native Tools es durchsuchen können. Erfordert [Vollbildrendering](/de/fullscreen#search-and-review-the-conversation) |

95| `v` | Schreiben Sie das Gespräch in eine temporäre Datei und öffnen Sie es in `$VISUAL` oder `$EDITOR`. Erfordert [Vollbildrendering](/de/fullscreen) |98| `v` | Schreiben Sie das Gespräch in eine temporäre Datei und öffnen Sie es in `$VISUAL` oder `$EDITOR`. Erfordert [Vollbildrendering](/de/fullscreen) |

llm-gateway.md +6 −2

Details

39 39 

40**Request-Header**40**Request-Header**

41 41 

42Claude Code enthält die folgenden Header bei jeder API-Anfrage:42Claude Code enthält die folgenden Header bei API-Anfragen:

43 43 

44| Header | Beschreibung |44| Header | Beschreibung |

45| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |45| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

46| `X-Claude-Code-Session-Id` | Ein eindeutiger Bezeichner für die aktuelle Claude Code-Sitzung. Proxies können dies verwenden, um alle API-Anfragen aus einer einzelnen Sitzung zu aggregieren, ohne den Request-Body zu analysieren. |46| `X-Claude-Code-Session-Id` | Ein eindeutiger Bezeichner für die aktuelle Claude Code-Sitzung. Proxies können dies verwenden, um alle API-Anfragen aus einer einzelnen Sitzung zu aggregieren, ohne den Request-Body zu analysieren. |

47| `X-Claude-Code-Agent-Id` | Bezeichner des Subagenten oder Teamkollegen, der die Anfrage gestellt hat. Ihr Proxy kann dies verwenden, um API-Kosten einzelnen parallelen Subagenten innerhalb einer Sitzung zuzuordnen, ohne den Request-Body zu analysieren. Nur für Anfragen vorhanden, die von einem In-Process-Subagenten oder Teamkollegen gestellt werden. |

48| `X-Claude-Code-Parent-Agent-Id` | Bezeichner des Agenten, der den Agent spawnte, der die Anfrage stellt. Verwenden Sie dies zusammen mit `X-Claude-Code-Agent-Id`, um API-Kosten über verschachtelte Agenten in Ihrem Proxy zuzuordnen. Nur vorhanden, wenn der anfragende Agent selbst von einem anderen Agenten gespawnt wurde. |

49 

50Beide Agent-ID-Header sind ephemere Pro-Spawn-Bezeichner, keine persistenten Benutzer- oder Geräte-IDs.

47 51 

48Claude Code stellt auch einen kurzen Attributionsblock dem System-Prompt voran, der die Client-Version und einen Fingerabdruck aus dem Gespräch enthält. Die Anthropic API entfernt diesen Block vor der Verarbeitung, sodass er sich nicht auf First-Party-Prompt-Caching auswirkt. Wenn Ihr Gateway seinen eigenen Prompt-Cache mit dem vollständigen Request-Body als Schlüssel implementiert, setzen Sie [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/de/env-vars), um ihn auszulassen.52Claude Code stellt auch einen kurzen Attributionsblock dem System-Prompt voran, der die Client-Version und einen Fingerabdruck aus dem Gespräch enthält. Die Anthropic API entfernt diesen Block vor der Verarbeitung, sodass er sich nicht auf First-Party-Prompt-Caching auswirkt. Wenn Ihr Gateway seinen eigenen Prompt-Cache mit dem vollständigen Request-Body als Schlüssel implementiert, setzen Sie [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/de/env-vars), um ihn auszulassen.

49 53 

mcp.md +35 −221

Details

6 6 

7> Erfahren Sie, wie Sie Claude Code mit Ihren Tools über das Model Context Protocol verbinden.7> Erfahren Sie, wie Sie Claude Code mit Ihren Tools über das Model Context Protocol verbinden.

8 8 

9export const MCPServersTable = ({platform = "all"}) => {

10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';

11 const [servers, setServers] = useState([]);

12 const [loading, setLoading] = useState(true);

13 const [error, setError] = useState(null);

14 useEffect(() => {

15 const fetchServers = async () => {

16 try {

17 setLoading(true);

18 const allServers = [];

19 let cursor = null;

20 do {

21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');

22 url.searchParams.set('version', 'latest');

23 url.searchParams.set('visibility', 'commercial');

24 url.searchParams.set('limit', '100');

25 if (cursor) {

26 url.searchParams.set('cursor', cursor);

27 }

28 const response = await fetch(url);

29 if (!response.ok) {

30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);

31 }

32 const data = await response.json();

33 allServers.push(...data.servers);

34 cursor = data.metadata?.nextCursor || null;

35 } while (cursor);

36 const transformedServers = allServers.map(item => {

37 const server = item.server;

38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});

39 const worksWith = meta.worksWith || [];

40 const availability = {

41 claudeCode: worksWith.includes('claude-code'),

42 mcpConnector: worksWith.includes('claude-api'),

43 claudeDesktop: worksWith.includes('claude-desktop')

44 };

45 const remotes = server.remotes || [];

46 const httpRemote = remotes.find(r => r.type === 'streamable-http');

47 const sseRemote = remotes.find(r => r.type === 'sse');

48 const preferredRemote = httpRemote || sseRemote;

49 const remoteUrl = preferredRemote?.url || meta.url;

50 const remoteType = preferredRemote?.type;

51 const isTemplatedUrl = remoteUrl?.includes('{');

52 let setupUrl;

53 if (isTemplatedUrl && meta.requiredFields) {

54 const urlField = meta.requiredFields.find(f => f.field === 'url');

55 setupUrl = urlField?.sourceUrl || meta.documentation;

56 }

57 const urls = {};

58 if (!isTemplatedUrl) {

59 if (remoteType === 'streamable-http') {

60 urls.http = remoteUrl;

61 } else if (remoteType === 'sse') {

62 urls.sse = remoteUrl;

63 }

64 }

65 let envVars = [];

66 if (server.packages && server.packages.length > 0) {

67 const npmPackage = server.packages.find(p => p.registryType === 'npm');

68 if (npmPackage) {

69 urls.stdio = `npx -y ${npmPackage.identifier}`;

70 if (npmPackage.environmentVariables) {

71 envVars = npmPackage.environmentVariables;

72 }

73 }

74 }

75 return {

76 name: meta.displayName || server.title || server.name,

77 description: meta.oneLiner || server.description,

78 documentation: meta.documentation,

79 urls: urls,

80 envVars: envVars,

81 availability: availability,

82 customCommands: meta.claudeCodeCopyText ? {

83 claudeCode: meta.claudeCodeCopyText

84 } : undefined,

85 setupUrl: setupUrl

86 };

87 });

88 setServers(transformedServers);

89 setError(null);

90 } catch (err) {

91 setError(err.message);

92 console.error('Error fetching MCP registry:', err);

93 } finally {

94 setLoading(false);

95 }

96 };

97 fetchServers();

98 }, []);

99 const generateClaudeCodeCommand = server => {

100 if (server.customCommands && server.customCommands.claudeCode) {

101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');

102 }

103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');

104 if (server.urls.http) {

105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;

106 }

107 if (server.urls.sse) {

108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;

109 }

110 if (server.urls.stdio) {

111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';

112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;

113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;

114 }

115 return null;

116 };

117 if (loading) {

118 return <div>Loading MCP servers...</div>;

119 }

120 if (error) {

121 return <div>Error loading MCP servers: {error}</div>;

122 }

123 const filteredServers = servers.filter(server => {

124 if (platform === "claudeCode") {

125 return server.availability.claudeCode;

126 } else if (platform === "mcpConnector") {

127 return server.availability.mcpConnector;

128 } else if (platform === "claudeDesktop") {

129 return server.availability.claudeDesktop;

130 } else if (platform === "all") {

131 return true;

132 } else {

133 throw new Error(`Unknown platform: ${platform}`);

134 }

135 });

136 return <>

137 <style jsx>{`

138 .cards-container {

139 display: grid;

140 gap: 1rem;

141 margin-bottom: 2rem;

142 }

143 .server-card {

144 border: 1px solid var(--border-color, #e5e7eb);

145 border-radius: 6px;

146 padding: 1rem;

147 }

148 .command-row {

149 display: flex;

150 align-items: center;

151 gap: 0.25rem;

152 }

153 .command-row code {

154 font-size: 0.75rem;

155 overflow-x: auto;

156 }

157 `}</style>

158 

159 <div className="cards-container">

160 {filteredServers.map(server => {

161 const claudeCodeCommand = generateClaudeCodeCommand(server);

162 const mcpUrl = server.urls.http || server.urls.sse;

163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;

164 return <div key={server.name} className="server-card">

165 <div>

166 {server.documentation ? <a href={server.documentation}>

167 <strong>{server.name}</strong>

168 </a> : <strong>{server.name}</strong>}

169 </div>

170 

171 <p style={{

172 margin: '0.5rem 0',

173 fontSize: '0.9rem'

174 }}>

175 {server.description}

176 </p>

177 

178 {server.setupUrl && <p style={{

179 margin: '0.25rem 0',

180 fontSize: '0.8rem',

181 fontStyle: 'italic',

182 opacity: 0.7

183 }}>

184 Requires user-specific URL.{' '}

185 <a href={server.setupUrl} style={{

186 textDecoration: 'underline'

187 }}>

188 Get your URL here

189 </a>.

190 </p>}

191 

192 {commandToShow && !server.setupUrl && <>

193 <p style={{

194 display: 'block',

195 fontSize: '0.75rem',

196 fontWeight: 500,

197 minWidth: 'fit-content',

198 marginTop: '0.5rem',

199 marginBottom: 0

200 }}>

201 {platform === "claudeCode" ? "Command" : "URL"}

202 </p>

203 <div className="command-row">

204 <code>

205 {commandToShow}

206 </code>

207 </div>

208 </>}

209 </div>;

210 })}

211 </div>

212 </>;

213};

214 

215Claude Code kann sich über das [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), einen offenen Standard für KI-Tool-Integrationen, mit Hunderten von externen Tools und Datenquellen verbinden. MCP-Server geben Claude Code Zugriff auf Ihre Tools, Datenbanken und APIs.9Claude Code kann sich über das [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), einen offenen Standard für KI-Tool-Integrationen, mit Hunderten von externen Tools und Datenquellen verbinden. MCP-Server geben Claude Code Zugriff auf Ihre Tools, Datenbanken und APIs.

216 10 

217Verbinden Sie einen Server, wenn Sie feststellen, dass Sie Daten aus einem anderen Tool wie einem Issue-Tracker oder einem Überwachungs-Dashboard in den Chat kopieren. Nach der Verbindung kann Claude direkt auf dieses System zugreifen und handeln, anstatt mit dem zu arbeiten, was Sie einfügen.11Verbinden Sie einen Server, wenn Sie feststellen, dass Sie Daten aus einem anderen Tool wie einem Issue-Tracker oder einem Überwachungs-Dashboard in den Chat kopieren. Nach der Verbindung kann Claude direkt auf dieses System zugreifen und handeln, anstatt mit dem zu arbeiten, was Sie einfügen.


227* **Workflows automatisieren**: „Erstelle Gmail-Entwürfe, die diese 10 Benutzer zu einer Feedback-Sitzung zur neuen Funktion einladen."21* **Workflows automatisieren**: „Erstelle Gmail-Entwürfe, die diese 10 Benutzer zu einer Feedback-Sitzung zur neuen Funktion einladen."

228* **Auf externe Ereignisse reagieren**: Ein MCP-Server kann auch als [Kanal](/de/channels) fungieren, der Nachrichten in Ihre Sitzung pusht, sodass Claude auf Telegram-Nachrichten, Discord-Chats oder Webhook-Ereignisse reagiert, während Sie weg sind.22* **Auf externe Ereignisse reagieren**: Ein MCP-Server kann auch als [Kanal](/de/channels) fungieren, der Nachrichten in Ihre Sitzung pusht, sodass Claude auf Telegram-Nachrichten, Discord-Chats oder Webhook-Ereignisse reagiert, während Sie weg sind.

229 23 

230## Beliebte MCP-Server24## MCP-Server finden und erstellen

231 25 

232Hier sind einige häufig verwendete MCP-Server, die Sie mit Claude Code verbinden können:26Durchsuchen Sie überprüfte Konnektoren im [Anthropic Directory](https://claude.ai/directory). Directory-Konnektoren verwenden die gleiche MCP-Infrastruktur wie Claude Code, sodass Sie jeden dort aufgelisteten Remote-Server mit `claude mcp add` hinzufügen können.

233 27 

234<Warning>28<Warning>

235 Verwenden Sie MCP-Server von Drittanbietern auf eigenes Risiko Anthropic hat29 Überprüfen Sie, dass Sie jedem Server vertrauen, bevor Sie ihn verbinden. Server, die externe Inhalte abrufen, können Sie dem [Risiko von Prompt-Injection aussetzen](/de/security#protect-against-prompt-injection).

236 die Korrektheit oder Sicherheit aller dieser Server nicht überprüft.

237 Stellen Sie sicher, dass Sie den MCP-Servern vertrauen, die Sie installieren.

238 Seien Sie besonders vorsichtig bei der Verwendung von MCP-Servern, die nicht vertrauenswürdige

239 Inhalte abrufen könnten, da diese Sie dem Risiko von Prompt-Injection aussetzen können.

240</Warning>30</Warning>

241 31 

242<MCPServersTable platform="claudeCode" />32Um Ihren eigenen Server zu erstellen, lesen Sie das [MCP-Server-Handbuch](https://modelcontextprotocol.io/docs/develop/build-server) für Protokoll-Grundlagen und die [Claude-Konnektoren-Dokumentation zum Erstellen](https://claude.com/docs/connectors/building) für Authentifizierung, Tests und Directory-Einreichung.

243 33 

244<Note>34Sie können Claude auch einen Server für Sie mit dem offiziellen [`mcp-server-dev` Plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev) erstellen lassen.

245 **Benötigen Sie eine spezifische Integration?** [Finden Sie Hunderte weitere MCP-Server auf GitHub](https://github.com/modelcontextprotocol/servers), oder erstellen Sie Ihren eigenen mit dem [MCP SDK](https://modelcontextprotocol.io/quickstart/server).35 

246</Note>36<Steps>

37 <Step title="Installieren Sie das Plugin">

38 Führen Sie in einer Claude Code-Sitzung Folgendes aus:

39 

40 ```

41 /plugin install mcp-server-dev@claude-plugins-official

42 ```

43 

44 Führen Sie dann `/reload-plugins` aus, um es in der aktuellen Sitzung zu aktivieren.

45 </Step>

46 

47 <Step title="Führen Sie die Build-Skill aus">

48 ```

49 /mcp-server-dev:build-mcp-server

50 ```

51 

52 Claude fragt nach Ihrem Anwendungsfall und erstellt einen Remote-HTTP- oder lokalen Stdio-Server.

53 </Step>

54</Steps>

247 55 

248## MCP-Server installieren56## MCP-Server installieren

249 57 


289 97 

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

291 99 

100Claude 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. Ihr Server kann auch die MCP-Anfrage `roots/list` aufrufen, die das Verzeichnis zurückgibt, aus dem Claude Code gestartet wurde.

101 

102Diese Variable wird in der Umgebung des Servers gesetzt, nicht in der Umgebung von Claude Code selbst, daher erfordert das Referenzieren über `${VAR}`-Erweiterung in einer projekt- oder benutzergesteuerten `.mcp.json` `command` oder `args` einen Standard wie `${CLAUDE_PROJECT_DIR:-.}`. Von Plugins bereitgestellte MCP-Konfigurationen ersetzen `${CLAUDE_PROJECT_DIR}` direkt und benötigen keinen Standard.

103 

292```bash theme={null}104```bash theme={null}

293# Grundlegende Syntax105# Grundlegende Syntax

294claude mcp add [options] <name> -- <command> [args...]106claude mcp add [options] <name> -- <command> [args...]


406**Plugin-MCP-Funktionen**:218**Plugin-MCP-Funktionen**:

407 219 

408* **Automatischer Lebenszyklus**: Bei Sitzungsstart verbinden sich Server für aktivierte Plugins automatisch. Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, führen Sie `/reload-plugins` aus, um seine MCP-Server zu verbinden oder zu trennen220* **Automatischer Lebenszyklus**: Bei Sitzungsstart verbinden sich Server für aktivierte Plugins automatisch. Wenn Sie ein Plugin während einer Sitzung aktivieren oder deaktivieren, führen Sie `/reload-plugins` aus, um seine MCP-Server zu verbinden oder zu trennen

409* **Umgebungsvariablen**: Verwenden Sie `${CLAUDE_PLUGIN_ROOT}` für gebündelte Plugin-Dateien und `${CLAUDE_PLUGIN_DATA}` für [persistente Daten](/de/plugins-reference#persistent-data-directory), die Plugin-Updates überstehen221* **Umgebungsvariablen**: Verwenden Sie `${CLAUDE_PLUGIN_ROOT}` für gebündelte Plugin-Dateien, `${CLAUDE_PLUGIN_DATA}` für [persistente Daten](/de/plugins-reference#persistent-data-directory), die Plugin-Updates überstehen, und `${CLAUDE_PROJECT_DIR}` für das stabile Projektstammverzeichnis

410* **Zugriff auf Benutzerumgebung**: Zugriff auf die gleichen Umgebungsvariablen wie manuell konfigurierte Server222* **Zugriff auf Benutzerumgebung**: Zugriff auf die gleichen Umgebungsvariablen wie manuell konfigurierte Server

411* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE- und HTTP-Transporte (die Transportunterstützung kann je nach Server variieren)223* **Mehrere Transporttypen**: Unterstützung für Stdio-, SSE- und HTTP-Transporte (die Transportunterstützung kann je nach Server variieren)

412 224 


646 458 

647Viele Cloud-basierte MCP-Server erfordern Authentifizierung. Claude Code unterstützt OAuth 2.0 für sichere Verbindungen.459Viele Cloud-basierte MCP-Server erfordern Authentifizierung. Claude Code unterstützt OAuth 2.0 für sichere Verbindungen.

648 460 

461Claude Code markiert einen Remote-Server als authentifizierungsbedürftig, wenn der Server mit `401 Unauthorized` und einem `WWW-Authenticate`-Header antwortet, der auf seinen Autorisierungsserver verweist. Jeder benutzerdefinierte Server, der diese Antwort zurückgibt, erhält denselben `/mcp`-Authentifizierungsfluss wie jeder andere Remote-Server.

462 

649<Steps>463<Steps>

650 <Step title="Fügen Sie den Server hinzu, der Authentifizierung erfordert">464 <Step title="Fügen Sie den Server hinzu, der Authentifizierung erfordert">

651 Zum Beispiel:465 Zum Beispiel:


1139 953 

1140### Tool-Suche konfigurieren954### Tool-Suche konfigurieren

1141 955 

1142Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf entdeckt. Sie ist standardmäßig auf Vertex AI deaktiviert, das den Tool-Search-Beta-Header nicht akzeptiert, und wenn `ANTHROPIC_BASE_URL` auf einen Host von Drittanbietern verweist, da die meisten Proxys `tool_reference`-Blöcke nicht weiterleiten. Legen Sie `ENABLE_TOOL_SEARCH` explizit fest, um sich anzumelden. Diese Funktion erfordert Modelle, die `tool_reference`-Blöcke unterstützen: Sonnet 4 und später oder Opus 4 und später. Haiku-Modelle unterstützen die Tool-Suche nicht.956Die Tool-Suche ist standardmäßig aktiviert: MCP-Tools werden aufgeschoben und bei Bedarf entdeckt. Sie ist standardmäßig auf Vertex AI deaktiviert, das den Tool-Search-Beta-Header nicht akzeptiert, und wenn `ANTHROPIC_BASE_URL` auf einen Host von Drittanbietern verweist, da die meisten Proxys `tool_reference`-Blöcke nicht weiterleiten. Wenn Ihr Proxy `tool_reference`-Blöcke weiterleitet, setzen Sie `ENABLE_TOOL_SEARCH` explizit fest, um die Fallback-Einstellung zu überschreiben. Diese Funktion erfordert Modelle, die `tool_reference`-Blöcke unterstützen: Sonnet 4 und später oder Opus 4 und später. Haiku-Modelle unterstützen die Tool-Suche nicht.

1143 957 

1144Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen `ENABLE_TOOL_SEARCH`:958Steuern Sie das Verhalten der Tool-Suche mit der Umgebungsvariablen `ENABLE_TOOL_SEARCH`:

1145 959 

1146| Wert | Verhalten |960| Wert | Verhalten |

1147| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |961| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1148| (nicht gesetzt) | Alle MCP-Tools werden aufgeschoben und bei Bedarf geladen. Fällt auf das Laden vorab zurück auf Vertex AI oder wenn `ANTHROPIC_BASE_URL` ein Host von Drittanbietern ist |962| (nicht gesetzt) | Alle MCP-Tools werden aufgeschoben und bei Bedarf geladen. Fällt auf das Laden vorab zurück auf Vertex AI oder wenn `ANTHROPIC_BASE_URL` ein Host von Drittanbietern ist |

1149| `true` | Alle MCP-Tools werden aufgeschoben, auch auf Vertex AI und für `ANTHROPIC_BASE_URL` von Drittanbietern |963| `true` | Alle MCP-Tools werden aufgeschoben. Claude Code sendet den Beta-Header auch auf Vertex AI und durch Proxys. Anfragen schlagen fehl, wenn das Backend `tool_reference`-Blöcke nicht unterstützt |

1150| `auto` | Schwellenmodus: Tools werden vorab geladen, wenn sie in 10 % des Kontextfensters passen, andernfalls aufgeschoben |964| `auto` | Schwellenmodus: Tools werden vorab geladen, wenn sie in 10 % des Kontextfensters passen, andernfalls aufgeschoben |

1151| `auto:<N>` | Schwellenmodus mit benutzerdefiniertem Prozentsatz, wobei `<N>` 0-100 ist (z. B. `auto:5` für 5 %) |965| `auto:<N>` | Schwellenmodus mit benutzerdefiniertem Prozentsatz, wobei `<N>` 0-100 ist (z. B. `auto:5` für 5 %) |

1152| `false` | Alle MCP-Tools werden vorab geladen, keine Verschiebung |966| `false` | Alle MCP-Tools werden vorab geladen, keine Verschiebung |

memory.md +17 −1

Details

26| :------------------ | :---------------------------------------------- | :-------------------------------------------------------------------- |26| :------------------ | :---------------------------------------------- | :-------------------------------------------------------------------- |

27| **Wer schreibt es** | Sie | Claude |27| **Wer schreibt es** | Sie | Claude |

28| **Was es enthält** | Anweisungen und Regeln | Erkenntnisse und Muster |28| **Was es enthält** | Anweisungen und Regeln | Erkenntnisse und Muster |

29| **Umfang** | Projekt, Benutzer oder Organisation | Pro Worktree |29| **Umfang** | Projekt, Benutzer oder Organisation | Pro Repository, gemeinsam über Worktrees hinweg |

30| **Geladen in** | Jede Sitzung | Jede Sitzung (erste 200 Zeilen oder 25 KB) |30| **Geladen in** | Jede Sitzung | Jede Sitzung (erste 200 Zeilen oder 25 KB) |

31| **Verwenden für** | Coding-Standards, Workflows, Projektarchitektur | Build-Befehle, Debugging-Erkenntnisse, Vorlieben, die Claude entdeckt |31| **Verwenden für** | Coding-Standards, Workflows, Projektarchitektur | Build-Befehle, Debugging-Erkenntnisse, Vorlieben, die Claude entdeckt |

32 32 


272 </Step>272 </Step>

273</Steps>273</Steps>

274 274 

275Der Schlüssel `claudeMd` ermöglicht es Ihnen, verwaltete CLAUDE.md-Inhalte direkt in `managed-settings.json` zu platzieren, statt eine separate Datei bereitzustellen.

276 

277**Umfang**: jede Claude Code-Sitzung auf dem Computer, in jedem Repository. Für Repository-spezifische Anleitung committen Sie stattdessen eine Projekt-CLAUDE.md.

278 

279**Vorrang**: gleich wie eine verwaltete CLAUDE.md-Datei. Wird vor Benutzer- und Projekt-CLAUDE.md geladen.

280 

281**Wo es berücksichtigt wird**: nur verwaltete und Richtlinien-Einstellungen. Das Setzen von `claudeMd` in Benutzer-, Projekt- oder lokalen Einstellungen hat keine Auswirkung.

282 

283Das folgende Beispiel fügt Verhaltensanweisungen direkt in eine verwaltete Einstellungsdatei ein:

284 

285```json theme={null}

286{

287 "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."

288}

289```

290 

275Eine verwaltete CLAUDE.md und [verwaltete Einstellungen](/de/settings#settings-files) dienen unterschiedlichen Zwecken. Verwenden Sie Einstellungen für technische Durchsetzung und CLAUDE.md für Verhaltensanleitung:291Eine verwaltete CLAUDE.md und [verwaltete Einstellungen](/de/settings#settings-files) dienen unterschiedlichen Zwecken. Verwenden Sie Einstellungen für technische Durchsetzung und CLAUDE.md für Verhaltensanleitung:

276 292 

277| Anliegen | Konfigurieren in |293| Anliegen | Konfigurieren in |

model-config.md +3 −1

Details

34| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |34| **`haiku`** | Verwendet das schnelle und effiziente Haiku-Modell für einfache Aufgaben |

35| **`sonnet[1m]`** | Verwendet Sonnet mit einem [1-Million-Token-Kontextfenster](https://platform.claude.com/docs/de/build-with-claude/context-windows#1m-token-context-window) für lange Sitzungen |35| **`sonnet[1m]`** | Verwendet Sonnet mit einem [1-Million-Token-Kontextfenster](https://platform.claude.com/docs/de/build-with-claude/context-windows#1m-token-context-window) für lange Sitzungen |

36| **`opus[1m]`** | Verwendet Opus mit einem [1-Million-Token-Kontextfenster](https://platform.claude.com/docs/de/build-with-claude/context-windows#1m-token-context-window) für lange Sitzungen |36| **`opus[1m]`** | Verwendet Opus mit einem [1-Million-Token-Kontextfenster](https://platform.claude.com/docs/de/build-with-claude/context-windows#1m-token-context-window) für lange Sitzungen |

37| **`opusplan`** | Spezieller Modus, der `opus` während des Plan-Modus verwendet und dann zu `sonnet` für die Ausführung wechselt |37| **`opusplan`** | Spezieller Modus, der `opus` während des Plan Mode verwendet und dann zu `sonnet` für die Ausführung wechselt |

38 38 

39Bei der Anthropic API und [Claude Platform on AWS](/de/claude-platform-on-aws) wird `opus` zu Opus 4.7 und `sonnet` zu Sonnet 4.6 aufgelöst. Bei Bedrock, Vertex und Foundry wird `opus` zu Opus 4.6 und `sonnet` zu Sonnet 4.5 aufgelöst; neuere Modelle sind bei diesen Anbietern verfügbar, indem Sie den vollständigen Modellnamen explizit auswählen oder `ANTHROPIC_DEFAULT_OPUS_MODEL` oder `ANTHROPIC_DEFAULT_SONNET_MODEL` setzen.39Bei der Anthropic API und [Claude Platform on AWS](/de/claude-platform-on-aws) wird `opus` zu Opus 4.7 und `sonnet` zu Sonnet 4.6 aufgelöst. Bei Bedrock, Vertex und Foundry wird `opus` zu Opus 4.6 und `sonnet` zu Sonnet 4.5 aufgelöst; neuere Modelle sind bei diesen Anbietern verfügbar, indem Sie den vollständigen Modellnamen explizit auswählen oder `ANTHROPIC_DEFAULT_OPUS_MODEL` oder `ANTHROPIC_DEFAULT_SONNET_MODEL` setzen.

40 40 


55 55 

56Ihre `/model`-Auswahl wird in den Benutzereinstellungen gespeichert und bleibt über Neustarts hinweg erhalten. Ab v2.1.117 schreibt Claude Code Ihre Auswahl auch in `.claude/settings.local.json`, wenn die `.claude/settings.json` des Projekts ein anderes Modell festlegt, damit sie nach einem Neustart in diesem Projekt weiterhin gilt. Verwaltete Einstellungen haben Vorrang und werden beim nächsten Start erneut angewendet.56Ihre `/model`-Auswahl wird in den Benutzereinstellungen gespeichert und bleibt über Neustarts hinweg erhalten. Ab v2.1.117 schreibt Claude Code Ihre Auswahl auch in `.claude/settings.local.json`, wenn die `.claude/settings.json` des Projekts ein anderes Modell festlegt, damit sie nach einem Neustart in diesem Projekt weiterhin gilt. Verwaltete Einstellungen haben Vorrang und werden beim nächsten Start erneut angewendet.

57 57 

58Das `--model`-Flag und die `ANTHROPIC_MODEL`-Umgebungsvariable gelten nur für die Sitzung, mit der Sie sie starten, und werden nicht gespeichert. Um verschiedene Modelle in verschiedenen Terminals gleichzeitig auszuführen, starten Sie jedes mit seinem eigenen `--model`-Flag, anstatt mit `/model` zu wechseln.

59 

58Wenn das aktive Modell beim Start aus Projekt- oder verwalteten Einstellungen stammt und nicht aus Ihrer eigenen Auswahl, zeigt der Startheader an, welche Einstellungsdatei es festgelegt hat. Führen Sie `/model` aus, um es für die aktuelle Sitzung zu überschreiben.60Wenn das aktive Modell beim Start aus Projekt- oder verwalteten Einstellungen stammt und nicht aus Ihrer eigenen Auswahl, zeigt der Startheader an, welche Einstellungsdatei es festgelegt hat. Führen Sie `/model` aus, um es für die aktuelle Sitzung zu überschreiben.

59 61 

60Beispielverwendung:62Beispielverwendung:

Details

166**`claude_code.llm_request`**166**`claude_code.llm_request`**

167 167 

168| Attribut | Beschreibung | Gated durch |168| Attribut | Beschreibung | Gated durch |

169| -------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------- |169| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------- |

170| `model` | Modellkennung | |170| `model` | Modellkennung | |

171| `gen_ai.system` | Immer `anthropic`. OpenTelemetry GenAI semantische Konvention | |171| `gen_ai.system` | Immer `anthropic`. OpenTelemetry GenAI semantische Konvention | |

172| `gen_ai.request.model` | Gleicher Wert wie `model`. OpenTelemetry GenAI semantische Konvention | |172| `gen_ai.request.model` | Gleicher Wert wie `model`. OpenTelemetry GenAI semantische Konvention | |

173| `query_source` | Subsystem, das die Anfrage gestellt hat, wie `repl_main_thread` oder ein Subagent-Name | |173| `query_source` | Subsystem, das die Anfrage gestellt hat, wie `repl_main_thread` oder ein Subagent-Name | |

174| `agent_id` | Kennung des Subagenten oder Teamkollegen, der die Anfrage gestellt hat. Fehlt in der Hauptsitzung | |

175| `parent_agent_id` | Kennung des Agenten, der diesen erzeugt hat. Fehlt für die Hauptsitzung und für Agenten, die direkt von ihr erzeugt wurden | |

174| `speed` | `fast` oder `normal` | |176| `speed` | `fast` oder `normal` | |

175| `llm_request.context` | `interaction`, `tool` oder `standalone` je nach übergeordnetem Span | |177| `llm_request.context` | `interaction`, `tool` oder `standalone` je nach übergeordnetem Span | |

176| `duration_ms` | Wanduhr-Dauer einschließlich Wiederholungen | |178| `duration_ms` | Wanduhr-Dauer einschließlich Wiederholungen | |


421 423 

422#### Pull-Request-Zähler424#### Pull-Request-Zähler

423 425 

424Wird erhöht, wenn Pull Requests über Claude Code erstellt werden.426Wird erhöht, wenn Claude Code einen Pull Request oder Merge Request über einen Shell-Befehl oder ein MCP-Tool erstellt.

425 427 

426**Attribute**:428**Attribute**:

427 429 


446* `query_source`: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von `"main"`, `"subagent"` oder `"auxiliary"`448* `query_source`: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von `"main"`, `"subagent"` oder `"auxiliary"`

447* `speed`: `"fast"`, wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhanden449* `speed`: `"fast"`, wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhanden

448* `effort`: [Anstrengungsstufe](/de/model-config#adjust-effort-level), die auf die Anfrage angewendet wird: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.450* `effort`: [Anstrengungsstufe](/de/model-config#adjust-effort-level), die auf die Anfrage angewendet wird: `"low"`, `"medium"`, `"high"`, `"xhigh"` oder `"max"`. Nicht vorhanden, wenn das Modell Anstrengung nicht unterstützt.

451* `agent.name`: Subagent-Typ, der die Anfrage gestellt hat. Integrierte Agent-Namen und Agents aus offiziellen Marketplace-Plugins werden wörtlich angezeigt. Andere benutzerdefinierte Agent-Namen werden durch `"custom"` ersetzt. Nicht vorhanden, wenn die Anfrage nicht von einem benannten Subagent-Typ gestellt wurde.

452* `skill.name`: Skill, der für die Anfrage aktiv ist, gesetzt durch das Skill-Tool, einen `/` Befehl oder geerbt von einem erzeugten Subagent. Integrierte, gebündelte, benutzerdefinierte und offizielle Marketplace-Plugin-Skill-Namen werden wörtlich angezeigt. Drittanbieter-Plugin-Skill-Namen werden durch `"third-party"` ersetzt. Nicht vorhanden, wenn kein Skill aktiv ist.

453* `plugin.name`: Besitzendes Plugin, wenn der aktive Skill oder Subagent von einem Plugin bereitgestellt wird. Offizielle Marketplace-Plugin-Namen werden wörtlich angezeigt. Drittanbieter-Plugin-Namen werden durch `"third-party"` ersetzt. Nicht vorhanden, wenn weder der Skill noch der Subagent ein besitzendes Plugin hat.

454* `marketplace.name`: Marketplace, von dem das besitzende Plugin installiert wurde. Nur für offizielle Marketplace-Plugins ausgegeben. Andernfalls nicht vorhanden.

449 455 

450#### Token-Zähler456#### Token-Zähler

451 457 


459* `query_source`: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von `"main"`, `"subagent"` oder `"auxiliary"`465* `query_source`: Kategorie des Subsystems, das die Anfrage gestellt hat. Einer von `"main"`, `"subagent"` oder `"auxiliary"`

460* `speed`: `"fast"`, wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhanden466* `speed`: `"fast"`, wenn die Anfrage den schnellen Modus verwendet hat. Andernfalls nicht vorhanden

461* `effort`: [Anstrengungsstufe](/de/model-config#adjust-effort-level), die auf die Anfrage angewendet wird. Siehe [Kostenzähler](#kostenzähler) für Details.467* `effort`: [Anstrengungsstufe](/de/model-config#adjust-effort-level), die auf die Anfrage angewendet wird. Siehe [Kostenzähler](#kostenzähler) für Details.

468* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`: Skill-, Plugin- und Agent-Zuordnung für die Anfrage. Siehe [Kostenzähler](#kostenzähler) für Definitionen und Schwärzungsverhalten.

462 469 

463#### Code-Edit-Tool-Entscheidungszähler470#### Code-Edit-Tool-Entscheidungszähler

464 471 


647* `tool_use_id`: Eindeutige Kennung für diese Tool-Invokation. Entspricht der `tool_use_id`, die an Hooks übergeben wird, und ermöglicht die Korrelation zwischen OTel-Ereignissen und Hook-erfassten Daten.654* `tool_use_id`: Eindeutige Kennung für diese Tool-Invokation. Entspricht der `tool_use_id`, die an Hooks übergeben wird, und ermöglicht die Korrelation zwischen OTel-Ereignissen und Hook-erfassten Daten.

648* `decision`: Entweder `"accept"` oder `"reject"`655* `decision`: Entweder `"accept"` oder `"reject"`

649* `source`: Entscheidungsquelle:656* `source`: Entscheidungsquelle:

650 * `"config"`: Automatisch entschieden, ohne Aufforderung, basierend auf Projekteinstellungen, verwalteter Unternehmensrichtlinie, `--allowedTools` oder `--disallowedTools` Flags, dem aktiven Berechtigungsmodus oder weil das Tool inhärent sicher ist.657 * `"config"`: Automatisch entschieden, ohne Aufforderung, basierend auf Projekteinstellungen, Zulassungsregeln in den persönlichen Einstellungen des Benutzers, verwalteter Unternehmensrichtlinie, `--allowedTools` oder `--disallowedTools` Flags, dem aktiven Berechtigungsmodus, einer sitzungsbegrenzten Zulassung aus einem früheren Prompt in der gleichen interaktiven CLI-Sitzung oder weil das Tool inhärent sicher ist. Das Ereignis gibt nicht an, welche dieser Quellen übereinstimmte.

651 * `"hook"`: Ein `PreToolUse` oder `PermissionRequest` Hook hat die Entscheidung zurückgegeben.658 * `"hook"`: Ein `PreToolUse` oder `PermissionRequest` Hook hat die Entscheidung zurückgegeben.

652 * `"user_permanent"`: Wird ausgegeben, wenn der Benutzer "Immer zulassen" wählte, wenn aufgefordert, und eine Regel in seinen persönlichen Einstellungen speichert. Auch für spätere Aufrufe ausgegeben, die dieser gespeicherten Regel entsprechen. Wird als Akzeptanz behandelt.659 * `"user_permanent"`: Wird ausgegeben, wenn der Benutzer "Ja, und nicht mehr fragen für ..." bei einer Berechtigungsaufforderung wählte, was eine Zulassungsregel in seinen persönlichen Einstellungen speichert. In der interaktiven CLI wird dies nur für diese Wahl selbst ausgegeben; spätere Aufrufe, die der gespeicherten Regel entsprechen, geben stattdessen `"config"` aus. In Agent SDK oder nicht-interaktiven `-p` Sitzungen geben sowohl die ursprüngliche Wahl als auch spätere Regelübereinstimmungen `"user_permanent"` aus. Wird als Akzeptanz behandelt.

653 * `"user_temporary"`: Wird ausgegeben, wenn der Benutzer "Ja" oder "Ja, für diese Sitzung" wählte, wenn aufgefordert, ohne eine Regel zu speichern. Auch für spätere Aufrufe in der gleichen Sitzung ausgegeben, die dieser sitzungsbegrenzten Zulassung entsprechen. Wird als Akzeptanz behandelt.660 * `"user_temporary"`: Wird ausgegeben, wenn der Benutzer "Ja" bei einer Berechtigungsaufforderung wählte, oder eine der Optionen "... während dieser Sitzung" bei einer Dateibearbeitungs- oder Leseanforderung wählte. In der interaktiven CLI wird dies nur für die Wahl selbst ausgegeben; spätere Aufrufe, die durch diese sitzungsbegrenzte Zulassung zulässig sind, geben stattdessen `"config"` aus. In Agent SDK oder nicht-interaktiven `-p` Sitzungen geben sowohl die Wahl als auch spätere Übereinstimmungen `"user_temporary"` aus. Wird als Akzeptanz behandelt.

654 * `"user_abort"`: Wird ausgegeben, wenn der Benutzer die Berechtigungsaufforderung geschlossen hat, ohne zu antworten. Wird als Ablehnung behandelt.661 * `"user_abort"`: Wird ausgegeben, wenn der Benutzer die Berechtigungsaufforderung geschlossen hat, ohne zu antworten. Wird als Ablehnung behandelt.

655 * `"user_reject"`: Wird ausgegeben, wenn der Benutzer "Nein" wählte, wenn aufgefordert, oder ein Aufruf einer Ablehnungsregel in seinen persönlichen Einstellungen entsprach. Wird als Ablehnung behandelt.662 * `"user_reject"`: Wird ausgegeben, wenn der Benutzer "Nein" wählte, wenn aufgefordert, oder ein Aufruf einer Ablehnungsregel in seinen persönlichen Einstellungen entsprach. Wird als Ablehnung behandelt.

656 663 


741* `plugin.version`: Plugin-Version, wenn in der Marketplace-Eintrag deklariert. Für Drittanbieter-Marketplaces ist dies nur enthalten, wenn `OTEL_LOG_TOOL_DETAILS=1`748* `plugin.version`: Plugin-Version, wenn in der Marketplace-Eintrag deklariert. Für Drittanbieter-Marketplaces ist dies nur enthalten, wenn `OTEL_LOG_TOOL_DETAILS=1`

742* `marketplace.name`: Marketplace, von dem das Plugin installiert wurde. Für Drittanbieter-Marketplaces ist dies nur enthalten, wenn `OTEL_LOG_TOOL_DETAILS=1`749* `marketplace.name`: Marketplace, von dem das Plugin installiert wurde. Für Drittanbieter-Marketplaces ist dies nur enthalten, wenn `OTEL_LOG_TOOL_DETAILS=1`

743 750 

751#### Plugin-Geladen-Ereignis

752 

753Protokolliert einmal pro aktiviertem Plugin beim Sitzungsstart. Verwenden Sie dieses Ereignis, um zu inventarisieren, welche Plugins über Ihre gesamte Flotte hinweg aktiv sind, als Ergänzung zu `plugin_installed`, das die Installationsaktion selbst aufzeichnet.

754 

755**Ereignisname**: `claude_code.plugin_loaded`

756 

757**Attribute**:

758 

759* Alle [Standardattribute](#standardattribute)

760* `event.name`: `"plugin_loaded"`

761* `event.timestamp`: ISO 8601-Zeitstempel

762* `event.sequence`: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung

763* `plugin.name`: Name des Plugins. Für Plugins außerhalb des offiziellen Marketplace und des integrierten Bundles ist der Wert `"third-party"`, es sei denn, `OTEL_LOG_TOOL_DETAILS=1`

764* `marketplace.name`: Marketplace, von dem das Plugin installiert wurde, wenn bekannt. Auf `"third-party"` unter der gleichen Bedingung wie `plugin.name` geschwärzt

765* `plugin.version`: Version aus dem Plugin-Manifest. Nur enthalten, wenn der Name nicht geschwärzt ist und das Manifest eine Version deklariert

766* `plugin.scope`: Herkunftskategorie für das Plugin: `"official"`, `"org"`, `"user-local"` oder `"default-bundle"`

767* `enabled_via`: Wie das Plugin aktiviert wurde: `"default-enable"`, `"org-policy"`, `"seed-mount"` oder `"user-install"`

768* `plugin_id_hash`: Deterministische Hash des Plugin-Namens und des Marketplace, nur an Ihren konfigurierten Exporter gesendet. Ermöglicht es Ihnen, zu zählen, wie viele unterschiedliche Drittanbieter-Plugins über Ihre gesamte Flotte hinweg geladen sind, ohne ihre Namen aufzuzeichnen

769* `has_hooks`: Ob das Plugin Hooks beiträgt

770* `has_mcp`: Ob das Plugin MCP-Server beiträgt

771* `skill_path_count`: Anzahl der Skill-Verzeichnisse, die das Plugin deklariert

772* `command_path_count`: Anzahl der Befehlsverzeichnisse, die das Plugin deklariert

773* `agent_path_count`: Anzahl der Agent-Verzeichnisse, die das Plugin deklariert

774 

744#### Skill-Aktiviert-Ereignis775#### Skill-Aktiviert-Ereignis

745 776 

746Protokolliert, wenn ein Skill aufgerufen wird, ob Claude ihn über das Skill-Tool aufruft oder Sie ihn als `/` Befehl ausführen.777Protokolliert, wenn ein Skill aufgerufen wird, ob Claude ihn über das Skill-Tool aufruft oder Sie ihn als `/` Befehl ausführen.


793* `total_retry_duration_ms`: Gesamte Wanduhr-Zeit über alle Versuche824* `total_retry_duration_ms`: Gesamte Wanduhr-Zeit über alle Versuche

794* `speed`: `"fast"` oder `"normal"`825* `speed`: `"fast"` oder `"normal"`

795 826 

827#### Hook-Registriert-Ereignis

828 

829Protokolliert einmal pro konfiguriertem Hook beim Sitzungsstart. Verwenden Sie dieses Ereignis, um zu inventarisieren, welche Hooks über Ihre gesamte Flotte hinweg aktiv sind, als Ergänzung zu den Pro-Ausführungs-Ereignissen `hook_execution_start` und `hook_execution_complete`.

830 

831**Ereignisname**: `claude_code.hook_registered`

832 

833**Attribute**:

834 

835* Alle [Standardattribute](#standardattribute)

836* `event.name`: `"hook_registered"`

837* `event.timestamp`: ISO 8601-Zeitstempel

838* `event.sequence`: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung

839* `hook_event`: Hook-Ereignistyp, wie `"PreToolUse"` oder `"PostToolUse"`

840* `hook_type`: Hook-Implementierungstyp: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"` oder `"agent"`

841* `hook_source`: Wo der Hook definiert ist: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"` oder `"pluginHook"`

842* `hook_matcher` (wenn `OTEL_LOG_TOOL_DETAILS=1`): Die Matcher-Zeichenkette aus der Hook-Konfiguration, wenn eine gesetzt ist

843* `plugin.name` (wenn `hook_source` `"pluginHook"` ist): Name des beitragenden Plugins. Für Plugins außerhalb des offiziellen Marketplace und des integrierten Bundles ist der Wert `"third-party"`, es sei denn, `OTEL_LOG_TOOL_DETAILS=1`

844* `plugin_id_hash` (wenn `hook_source` `"pluginHook"` ist): Deterministische Hash des Plugin-Namens und des Marketplace, nur an Ihren konfigurierten Exporter gesendet. Ermöglicht es Ihnen, unterschiedliche beitragende Plugins zu zählen, ohne ihre Namen aufzuzeichnen

845 

796#### Hook-Ausführungs-Start-Ereignis846#### Hook-Ausführungs-Start-Ereignis

797 847 

798Protokolliert, wenn ein oder mehrere Hooks für ein Hook-Ereignis beginnen auszuführen.848Protokolliert, wenn ein oder mehrere Hooks für ein Hook-Ereignis beginnen auszuführen.


855* `post_tokens`: Ungefähre Token-Anzahl nach Kompaktierung905* `post_tokens`: Ungefähre Token-Anzahl nach Kompaktierung

856* `error`: Fehlermeldung, wenn Kompaktierung fehlgeschlagen ist906* `error`: Fehlermeldung, wenn Kompaktierung fehlgeschlagen ist

857 907 

908#### Feedback-Umfrage-Ereignis

909 

910Protokolliert, wenn eine Sitzungsqualitäts-Umfrage angezeigt oder beantwortet wird. Siehe [Sitzungsqualitäts-Umfragen](/de/data-usage#session-quality-surveys) für das, was die Umfragen erfassen und wie Sie sie steuern.

911 

912**Ereignisname**: `claude_code.feedback_survey`

913 

914**Attribute**:

915 

916* Alle [Standardattribute](#standardattribute)

917* `event.name`: `"feedback_survey"`

918* `event.timestamp`: ISO 8601-Zeitstempel

919* `event.sequence`: monoton steigende Zähler zur Sortierung von Ereignissen innerhalb einer Sitzung

920* `event_type`: Umfrage-Lebenszyklusereignis, zum Beispiel `"appeared"`, `"responded"` oder `"transcript_prompt_appeared"`

921* `appearance_id`: Eindeutige ID, die die Ereignisse verknüpft, die für eine Umfrage-Instanz ausgegeben werden

922* `survey_type`: Welche Umfrage das Ereignis erzeugt hat. `"session"` ist die Aufforderung "Wie macht sich Claude?" Bewertung

923* `response`: Die Auswahl des Benutzers bei `responded` Ereignissen

924* `enabled_via_override`: `true`, wenn [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/de/env-vars) gesetzt ist. Wird als boolescher Wert ausgegeben, nicht als Zeichenkette. Vorhanden bei `session` Umfrage-Ereignissen. Filtern Sie nach diesem Attribut, um zu bestätigen, dass die Überschreibung über eine Flotte angewendet wird

925 

858## Interpretation von Metriken- und Ereignisdaten926## Interpretation von Metriken- und Ereignisdaten

859 927 

860Die exportierten Metriken und Ereignisse unterstützen eine Reihe von Analysen:928Die exportierten Metriken und Ereignisse unterstützen eine Reihe von Analysen:


862### Nutzungsüberwachung930### Nutzungsüberwachung

863 931 

864| Metrik | Analysemöglichkeit |932| Metrik | Analysemöglichkeit |

865| ------------------------------------------------------------- | ------------------------------------------------------------------------------ |933| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |

866| `claude_code.token.usage` | Aufschlüsselung nach `type` (input/output), Benutzer, Team oder Modell |934| `claude_code.token.usage` | Aufschlüsselung nach `type` (input/output), Benutzer, Team, Modell, `skill.name`, `plugin.name` oder `agent.name` |

867| `claude_code.session.count` | Verfolgung der Akzeptanz und des Engagements im Laufe der Zeit |935| `claude_code.session.count` | Verfolgung der Akzeptanz und des Engagements im Laufe der Zeit |

868| `claude_code.lines_of_code.count` | Messung der Produktivität durch Verfolgung von Code-Hinzufügungen/Entfernungen |936| `claude_code.lines_of_code.count` | Messung der Produktivität durch Verfolgung von Code-Hinzufügungen/Entfernungen |

869| `claude_code.commit.count` & `claude_code.pull_request.count` | Verständnis der Auswirkungen auf Entwicklungs-Workflows |937| `claude_code.commit.count` & `claude_code.pull_request.count` | Verständnis der Auswirkungen auf Entwicklungs-Workflows |


874 942 

875* Verfolgung von Nutzungstrends über Teams oder Einzelpersonen hinweg943* Verfolgung von Nutzungstrends über Teams oder Einzelpersonen hinweg

876* Identifikation von Sitzungen mit hoher Nutzung zur Optimierung944* Identifikation von Sitzungen mit hoher Nutzung zur Optimierung

945* Zuordnung von Ausgaben zu spezifischen Skills, Plugins oder Subagent-Typen über die Attribute `skill.name`, `plugin.name` und `agent.name`

877 946 

878<Note>947<Note>

879 Kostenmetriken sind Näherungswerte. Für offizielle Abrechnungsdaten konsultieren Sie Ihren API-Anbieter (Claude Console, Amazon Bedrock oder Google Cloud Vertex).948 Kostenmetriken sind Näherungswerte. Für offizielle Abrechnungsdaten konsultieren Sie Ihren API-Anbieter (Claude Console, Amazon Bedrock oder Google Cloud Vertex).

Details

14 14 

15Der **Standard**-Ausgabestil von Claude Code ist die vorhandene Systemaufforderung, die Ihnen helfen soll, Softwareentwicklungsaufgaben effizient zu bewältigen.15Der **Standard**-Ausgabestil von Claude Code ist die vorhandene Systemaufforderung, die Ihnen helfen soll, Softwareentwicklungsaufgaben effizient zu bewältigen.

16 16 

17Es gibt zwei zusätzliche integrierte Ausgabestile, die sich auf das Unterrichten der Codebasis und der Funktionsweise von Claude konzentrieren:17Es gibt drei zusätzliche integrierte Ausgabestile:

18 

19* **Proaktiv**: Claude führt sofort aus, trifft vernünftige Annahmen statt bei Routineentscheidungen zu pausieren, und bevorzugt Handeln gegenüber Planung. Dies wendet die gleiche Anleitung wie [Auto-Modus](/de/permission-modes#eliminate-prompts-with-auto-mode) an, ohne Ihren Berechtigungsmodus zu ändern, sodass Sie vor der Ausführung von Tools weiterhin Berechtigungsaufforderungen sehen.

18 20 

19* **Explanatory**: Bietet pädagogische „Insights" zwischen der Unterstützung bei Softwareentwicklungsaufgaben. Hilft Ihnen, Implementierungsentscheidungen und Codebase-Muster zu verstehen.21* **Explanatory**: Bietet pädagogische „Insights" zwischen der Unterstützung bei Softwareentwicklungsaufgaben. Hilft Ihnen, Implementierungsentscheidungen und Codebase-Muster zu verstehen.

20 22 


88 90 

89### Ausgabestile vs. CLAUDE.md vs. --append-system-prompt91### Ausgabestile vs. CLAUDE.md vs. --append-system-prompt

90 92 

91Ausgabestile schalten die Teile der Standard-Systemaufforderung von Claude Code, die spezifisch für Softwareentwicklung sind, vollständig aus. Weder CLAUDE.md noch `--append-system-prompt` bearbeiten die Standard-Systemaufforderung von Claude Code. CLAUDE.md fügt den Inhalt als Benutzernachricht *nach* der Standard-Systemaufforderung von Claude Code hinzu. `--append-system-prompt` hängt den Inhalt an die Systemaufforderung an.93Wählen Sie basierend darauf, ob Claude seine Rolle als Coding-Assistent aufgeben oder seine Standardrolle behalten und mehr lernen soll. Ausgabestile ersetzen die Softwareentwicklungsteile von Claude Codes Systemaufforderung durch Ihre eigene Rolle und Stimme, verwenden Sie also einen, wenn Claude eine andere Identität annehmen soll, wie ein Schreib-Editor oder ein Datenanalyse-Assistent. CLAUDE.md und `--append-system-prompt` behalten beide Claude Codes Standardidentität bei und ergänzen sie, verwenden Sie sie also, wenn Claude ein Coding-Assistent bleiben soll, der auch Ihre Projektkonventionen oder zusätzliche Anweisungen befolgt.

94 

95Die Mechanismen unterscheiden sich ebenfalls. Ausgabestile bearbeiten die Systemaufforderung direkt. CLAUDE.md fügt seinen Inhalt als Benutzernachricht nach der Systemaufforderung hinzu. `--append-system-prompt` hängt Inhalte an das Ende der Systemaufforderung an, ohne etwas zu entfernen.

92 96 

93### Ausgabestile vs. [Agents](/de/sub-agents)97### Ausgabestile vs. [Agents](/de/sub-agents)

94 98 

95Ausgabestile beeinflussen direkt die Hauptagentenschleife und beeinflussen nur die Systemaufforderung. Agents werden aufgerufen, um bestimmte Aufgaben zu bewältigen, und können zusätzliche Einstellungen wie das zu verwendende Modell, die verfügbaren Tools und einen Kontext darüber enthalten, wann der Agent verwendet werden soll.99Verwenden Sie einen Ausgabestil, um zu ändern, wie die Hauptkonversation in jeder Sitzung antwortet. Verwenden Sie einen [Subagent](/de/sub-agents), wenn Sie einen separat definierten Helper möchten, an den die Hauptkonversation delegiert. Ausgabestile beeinflussen nur die Systemaufforderung der Hauptagentenschleife. Agents bewältigen spezifische Aufgaben und können ihr eigenes Modell, Tools und einen Kontext darüber haben, wann sie aufgerufen werden sollen.

96 100 

97### Ausgabestile vs. [Skills](/de/skills)101### Ausgabestile vs. [Skills](/de/skills)

98 102 

Details

128 128 

129Drücken Sie `Shift+Tab` erneut, um den Planungsmodus zu verlassen, ohne einen Plan zu genehmigen.129Drücken Sie `Shift+Tab` erneut, um den Planungsmodus zu verlassen, ohne einen Plan zu genehmigen.

130 130 

131### Überprüfen und genehmigen Sie einen Plan

132 

131Wenn der Plan fertig ist, präsentiert Claude ihn und fragt, wie es weitergehen soll. Von dieser Aufforderung aus können Sie:133Wenn der Plan fertig ist, präsentiert Claude ihn und fragt, wie es weitergehen soll. Von dieser Aufforderung aus können Sie:

132 134 

133* Genehmigen und im Auto-Modus starten135* Genehmigen und im Auto-Modus starten


136* Mit Feedback weiterplanen138* Mit Feedback weiterplanen

137* Mit [Ultraplan](/de/ultraplan) für browsergestützte Überprüfung verfeinern139* Mit [Ultraplan](/de/ultraplan) für browsergestützte Überprüfung verfeinern

138 140 

139Jede Genehmigungsoption bietet auch an, den Planungskontext zuerst zu löschen.141Das Genehmigen eines Plans beendet den Planungsmodus und wechselt die Sitzung in den Berechtigungsmodus, den jede Genehmigungsoption beschreibt, sodass Claude mit der Bearbeitung beginnt. Um erneut zu planen, kehren Sie mit `Shift+Tab` zum Planungsmodus zurück oder stellen Sie Ihrer nächsten Aufforderung `/plan` voran.

142 

143Drücken Sie `Ctrl+G`, um den vorgeschlagenen Plan in Ihrem Standard-Texteditor zu öffnen und ihn direkt zu bearbeiten, bevor Claude fortfährt. Wenn [`showClearContextOnPlanAccept`](/de/settings#available-settings) aktiviert ist, bietet jede Genehmigungsoption auch an, den Planungskontext zuerst zu löschen.

144 

145Das Akzeptieren eines Plans benennt die Sitzung automatisch aus dem Planinhalt, es sei denn, Sie haben bereits einen Namen mit `--name` oder `/rename` festgelegt.

146 

147### Legen Sie den Planungsmodus als Standard fest

148 

149Um den Planungsmodus als Standard für ein Projekt festzulegen, setzen Sie `defaultMode` in `.claude/settings.json`:

150 

151```json theme={null}

152{

153 "permissions": {

154 "defaultMode": "plan"

155 }

156}

157```

140 158 

141## Aufforderungen mit Auto-Modus eliminieren159## Aufforderungen mit Auto-Modus eliminieren

142 160 


146 164 

147Auto-Modus lässt Claude ohne Berechtigungsaufforderungen ausführen. Ein separates Klassifizierer-Modell ü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.165Auto-Modus lässt Claude ohne Berechtigungsaufforderungen ausführen. Ein separates Klassifizierer-Modell ü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.

148 166 

167Auto-Modus weist Claude auch an, sofort auszuführen und Klarstellungsfragen zu minimieren. Um dieses Verhalten zu erhalten und gleichzeitig Berechtigungsaufforderungen beizubehalten, stellen Sie stattdessen den [Proaktiven Ausgabestil](/de/output-styles) ein.

168 

149<Warning>169<Warning>

150 Auto-Modus ist eine Forschungsvorschau. Er reduziert Aufforderungen, garantiert aber keine Sicherheit. Verwenden Sie ihn für Aufgaben, bei denen Sie der allgemeinen Richtung vertrauen, nicht als Ersatz für Überprüfung bei sensiblen Operationen.170 Auto-Modus ist eine Forschungsvorschau. Er reduziert Aufforderungen, garantiert aber keine Sicherheit. Verwenden Sie ihn für Aufgaben, bei denen Sie der allgemeinen Richtung vertrauen, nicht als Ersatz für Überprüfung bei sensiblen Operationen.

151</Warning>171</Warning>


256 276 

257Das `--dangerously-skip-permissions`-Flag ist gleichbedeutend.277Das `--dangerously-skip-permissions`-Flag ist gleichbedeutend.

258 278 

279Unter Linux und macOS weigert sich Claude Code, in diesem Modus zu starten, wenn es als Root oder unter `sudo` ausgeführt wird:

280 

281```text theme={null}

282--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

283```

284 

285Die Prüfung wird automatisch in einer erkannten Sandbox übersprungen. Um autonom in einem Container zu laufen, verwenden Sie die [Dev-Container](/de/devcontainer)-Konfiguration, die Claude Code als Nicht-Root-Benutzer ausführt.

286 

259<Warning>287<Warning>

260 `bypassPermissions` bietet keinen Schutz vor Prompt-Injection oder unbeabsichtigten Aktionen. Verwenden Sie für Hintergrund-Sicherheitsprüfungen ohne Aufforderungen stattdessen [Auto-Modus](#eliminate-prompts-with-auto-mode). Administratoren können diesen Modus blockieren, indem sie `permissions.disableBypassPermissionsMode` auf `"disable"` in [verwalteten Einstellungen](/de/permissions#managed-settings) setzen.288 `bypassPermissions` bietet keinen Schutz vor Prompt-Injection oder unbeabsichtigten Aktionen. Verwenden Sie für Hintergrund-Sicherheitsprüfungen ohne Aufforderungen stattdessen [Auto-Modus](#eliminate-prompts-with-auto-mode). Administratoren können diesen Modus blockieren, indem sie `permissions.disableBypassPermissionsMode` auf `"disable"` in [verwalteten Einstellungen](/de/permissions#managed-settings) setzen.

261</Warning>289</Warning>

permissions.md +5 −1

Details

28 28 

29Regeln werden in dieser Reihenfolge ausgewertet: **deny -> ask -> allow**. Die erste übereinstimmende Regel gewinnt, daher haben Deny-Regeln immer Vorrang.29Regeln werden in dieser Reihenfolge ausgewertet: **deny -> ask -> allow**. Die erste übereinstimmende Regel gewinnt, daher haben Deny-Regeln immer Vorrang.

30 30 

31<Note>

32 Berechtigungsregeln werden von Claude Code durchgesetzt, nicht vom Modell. Anweisungen in Ihrem Prompt oder `CLAUDE.md` bestimmen, was Claude versucht zu tun, aber sie ändern nicht, was Claude Code erlaubt. Um Zugriff zu gewähren oder zu widerrufen, verwenden Sie `/permissions`, die hier beschriebenen Regeln, einen [Berechtigungsmodus](/de/permission-modes) oder einen [PreToolUse-Hook](#extend-permissions-with-hooks).

33</Note>

34 

31## Berechtigungsmodi35## Berechtigungsmodi

32 36 

33Claude Code unterstützt mehrere Berechtigungsmodi, die steuern, wie Werkzeuge genehmigt werden. Siehe [Berechtigungsmodi](/de/permission-modes) für den Zeitpunkt der Verwendung jedes Modus. Legen Sie den `defaultMode` in Ihren [Einstellungsdateien](/de/settings#settings-files) fest:37Claude Code unterstützt mehrere Berechtigungsmodi, die steuern, wie Werkzeuge genehmigt werden. Siehe [Berechtigungsmodi](/de/permission-modes) für den Zeitpunkt der Verwendung jedes Modus. Legen Sie den `defaultMode` in Ihren [Einstellungsdateien](/de/settings#settings-files) fest:


153 157 

154 * **Bash-Netzwerkwerkzeuge einschränken**: Verwenden Sie Deny-Regeln, um `curl`, `wget` und ähnliche Befehle zu blockieren, verwenden Sie dann das WebFetch-Werkzeug mit `WebFetch(domain:github.com)`-Berechtigung für zulässige Domänen158 * **Bash-Netzwerkwerkzeuge einschränken**: Verwenden Sie Deny-Regeln, um `curl`, `wget` und ähnliche Befehle zu blockieren, verwenden Sie dann das WebFetch-Werkzeug mit `WebFetch(domain:github.com)`-Berechtigung für zulässige Domänen

155 * **PreToolUse-Hooks verwenden**: Implementieren Sie einen Hook, der URLs in Bash-Befehlen validiert und nicht zulässige Domänen blockiert159 * **PreToolUse-Hooks verwenden**: Implementieren Sie einen Hook, der URLs in Bash-Befehlen validiert und nicht zulässige Domänen blockiert

156 * Claude Code über Ihre zulässigen curl-Muster über CLAUDE.md informieren160 * **CLAUDE.md-Anleitung hinzufügen**: Beschreiben Sie Ihre zulässigen curl-Muster in `CLAUDE.md`. Dies beeinflusst, was Claude versucht, erzwingt aber keine Grenze, daher kombinieren Sie es mit einer der obigen Optionen

157 161 

158 Beachten Sie, dass die alleinige Verwendung von WebFetch keinen Netzwerkzugriff verhindert. Wenn Bash zulässig ist, kann Claude immer noch `curl`, `wget` oder andere Werkzeuge verwenden, um auf jede URL zuzugreifen.162 Beachten Sie, dass die alleinige Verwendung von WebFetch keinen Netzwerkzugriff verhindert. Wenn Bash zulässig ist, kann Claude immer noch `curl`, `wget` oder andere Werkzeuge verwenden, um auf jede URL zuzugreifen.

159</Warning>163</Warning>

plugins.md +6 −0

Details

299claude --plugin-dir ./my-plugin299claude --plugin-dir ./my-plugin

300```300```

301 301 

302Das Flag akzeptiert auch ein `.zip`-Archiv des Plugin-Verzeichnisses, das Claude Code v2.1.128 oder später erfordert.

303 

304```bash theme={null}

305claude --plugin-dir ./my-plugin.zip

306```

307 

302Wenn ein `--plugin-dir`-Plugin denselben Namen wie ein installiertes Marketplace-Plugin hat, hat die lokale Kopie in dieser Sitzung Vorrang. Dies ermöglicht es Ihnen, Änderungen an einem Plugin zu testen, das Sie bereits installiert haben, ohne es zuerst zu deinstallieren. Marketplace-Plugins, die durch verwaltete Einstellungen erzwungen aktiviert sind, sind die einzige Ausnahme und können nicht überschrieben werden.308Wenn ein `--plugin-dir`-Plugin denselben Namen wie ein installiertes Marketplace-Plugin hat, hat die lokale Kopie in dieser Sitzung Vorrang. Dies ermöglicht es Ihnen, Änderungen an einem Plugin zu testen, das Sie bereits installiert haben, ohne es zuerst zu deinstallieren. Marketplace-Plugins, die durch verwaltete Einstellungen erzwungen aktiviert sind, sind die einzige Ausnahme und können nicht überschrieben werden.

303 309 

304Wenn Sie Änderungen an Ihrem Plugin vornehmen, führen Sie `/reload-plugins` aus, um die Updates zu übernehmen, ohne neu zu starten. Dies lädt Plugins, Skills, Agents, Hooks, Plugin-MCP-Server und Plugin-LSP-Server neu. Testen Sie Ihre Plugin-Komponenten:310Wenn Sie Änderungen an Ihrem Plugin vornehmen, führen Sie `/reload-plugins` aus, um die Updates zu übernehmen, ohne neu zu starten. Dies lädt Plugins, Skills, Agents, Hooks, Plugin-MCP-Server und Plugin-LSP-Server neu. Testen Sie Ihre Plugin-Komponenten:

Details

97 "hooks": [97 "hooks": [

98 {98 {

99 "type": "command",99 "type": "command",

100 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"100 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

101 }101 }

102 ]102 ]

103 }103 }


289[289[

290 {290 {

291 "name": "deploy-status",291 "name": "deploy-status",

292 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",292 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh ${user_config.api_endpoint}",

293 "description": "Deployment status changes"293 "description": "Deployment status changes"

294 },294 },

295 {295 {


317| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |317| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

318| `when` | Steuert, wann der Monitor startet. `"always"` startet ihn beim Session-Start und beim Plugin-Reload und ist der Standard. `"on-skill-invoke:<skill-name>"` startet ihn beim ersten Mal, wenn der benannte Skill in diesem Plugin versendet wird |318| `when` | Steuert, wann der Monitor startet. `"always"` startet ihn beim Session-Start und beim Plugin-Reload und ist der Standard. `"on-skill-invoke:<skill-name>"` startet ihn beim ersten Mal, wenn der benannte Skill in diesem Plugin versendet wird |

319 319 

320Der `command` Wert unterstützt die gleichen [Variablenersetzungen](#environment-variables) wie MCP- und LSP-Server-Konfigurationen: `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${user_config.*}` und alle `${ENV_VAR}` aus der Umgebung. Stellen Sie dem Befehl `cd "${CLAUDE_PLUGIN_ROOT}" && ` voran, wenn das Skript aus dem Plugin-eigenen Verzeichnis ausgeführt werden muss.320Der `command` Wert unterstützt die gleichen [Variablenersetzungen](#environment-variables) wie MCP- und LSP-Server-Konfigurationen: `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${CLAUDE_PROJECT_DIR}`, `${user_config.*}` und alle `${ENV_VAR}` aus der Umgebung. Stellen Sie dem Befehl `cd "${CLAUDE_PLUGIN_ROOT}" && ` voran, wenn das Skript aus dem Plugin-eigenen Verzeichnis ausgeführt werden muss.

321 321 

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

323 323 


540 540 

541### Umgebungsvariablen541### Umgebungsvariablen

542 542 

543Claude Code bietet zwei Variablen zum Referenzieren von Plugin-Pfaden. Beide werden überall dort inline ersetzt, wo sie in Skill-Inhalten, Agent-Inhalten, Hook-Befehlen, Monitor-Befehlen und MCP- oder LSP-Server-Konfigurationen erscheinen. Beide werden auch als Umgebungsvariablen an Hook-Prozesse und MCP- oder LSP-Server-Subprozesse exportiert.543Claude Code bietet drei Variablen zum Referenzieren von Pfaden. Alle werden überall dort inline ersetzt, wo sie in Skill-Inhalten, Agent-Inhalten, Hook-Befehlen, Monitor-Befehlen und MCP- oder LSP-Server-Konfigurationen erscheinen. Alle werden auch als Umgebungsvariablen an Hook-Prozesse und MCP- oder LSP-Server-Subprozesse exportiert.

544 544 

545**`${CLAUDE_PLUGIN_ROOT}`**: Der absolute Pfad zum Installationsverzeichnis Ihres Plugins. Verwenden Sie dies, um auf Skripte, Binärdateien und Konfigurationsdateien zu verweisen, die mit dem Plugin gebündelt sind. Dieser Pfad ändert sich, wenn das Plugin aktualisiert wird. Das Verzeichnis der vorherigen Version bleibt etwa sieben Tage nach einem Update auf der Festplatte, bevor es bereinigt wird, aber behandeln Sie es als kurzlebig und schreiben Sie keinen Status hier.545**`${CLAUDE_PLUGIN_ROOT}`**: Der absolute Pfad zum Installationsverzeichnis Ihres Plugins. Verwenden Sie dies, um auf Skripte, Binärdateien und Konfigurationsdateien zu verweisen, die mit dem Plugin gebündelt sind. In Hook-Befehlen verwenden Sie [Exec-Form](/de/hooks#exec-form-and-shell-form) mit `args`, damit der Pfad als ein Argument ohne Anführungszeichen übergeben wird. In Shell-Form-Hooks und Monitor-Befehlen wickeln Sie ihn in doppelte Anführungszeichen ein, wie in `"${CLAUDE_PLUGIN_ROOT}"`. Dieser Pfad ändert sich, wenn das Plugin aktualisiert wird. Das Verzeichnis der vorherigen Version bleibt etwa sieben Tage nach einem Update auf der Festplatte, bevor es bereinigt wird, aber behandeln Sie es als kurzlebig und schreiben Sie keinen Status hier.

546 546 

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

548 548 

549**`${CLAUDE_PLUGIN_DATA}`**: Ein persistentes Verzeichnis für Plugin-Status, das Updates überlebt. Verwenden Sie dies für installierte Abhängigkeiten wie `node_modules` oder Python-Umgebungen, generierte Code, Caches und alle anderen Dateien, die über Plugin-Versionen hinweg bestehen bleiben sollten. Das Verzeichnis wird automatisch erstellt, wenn diese Variable zum ersten Mal referenziert wird.549**`${CLAUDE_PLUGIN_DATA}`**: Ein persistentes Verzeichnis für Plugin-Status, das Updates überlebt. Verwenden Sie dies für installierte Abhängigkeiten wie `node_modules` oder Python-Umgebungen, generierte Code, Caches und alle anderen Dateien, die über Plugin-Versionen hinweg bestehen bleiben sollten. Das Verzeichnis wird automatisch erstellt, wenn diese Variable zum ersten Mal referenziert wird.

550 550 

551**`${CLAUDE_PROJECT_DIR}`**: Das Projekt-Root-Verzeichnis. Dies ist das gleiche Verzeichnis, das Hooks in ihrer `CLAUDE_PROJECT_DIR` Variable erhalten. Verwenden Sie dies, um auf projektlokale Skripte oder Konfigurationsdateien zu verweisen. Wickeln Sie es in Anführungszeichen ein, um Pfade mit Leerzeichen zu handhaben, beispielsweise `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. MCP-Server können auch die MCP `roots/list` Anfrage aufrufen, die das Verzeichnis zurückgibt, aus dem Claude Code gestartet wurde.

552 

551```json theme={null}553```json theme={null}

552{554{

553 "hooks": {555 "hooks": {


556 "hooks": [558 "hooks": [

557 {559 {

558 "type": "command",560 "type": "command",

559 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"561 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

560 }562 }

561 ]563 ]

562 }564 }


629 631 

630Installierte Plugins können nicht auf Dateien außerhalb ihres Verzeichnisses verweisen. Pfade, die außerhalb des Plugin-Root traversieren (wie `../shared-utils`), funktionieren nach der Installation nicht, da diese externen Dateien nicht in den Cache kopiert werden.632Installierte Plugins können nicht auf Dateien außerhalb ihres Verzeichnisses verweisen. Pfade, die außerhalb des Plugin-Root traversieren (wie `../shared-utils`), funktionieren nach der Installation nicht, da diese externen Dateien nicht in den Cache kopiert werden.

631 633 

632### Arbeiten mit externen Abhängigkeiten634### Dateien innerhalb eines Marktplatzes mit Symlinks freigeben

635 

636Wenn Ihr Plugin Dateien mit anderen Teilen desselben Marktplatzes freigeben muss, können Sie symbolische Links in Ihrem Plugin-Verzeichnis erstellen. Wie ein Symlink behandelt wird, wenn das Plugin in den Cache kopiert wird, hängt davon ab, wo sein Ziel aufgelöst wird:

637 

638* **Innerhalb des eigenen Verzeichnisses des Plugins:** Der Symlink wird als relativer Symlink im Cache beibehalten, sodass er zur Laufzeit weiterhin zum kopierten Ziel aufgelöst wird.

639* **Anderswo innerhalb desselben Marktplatzes:** Der Symlink wird dereferenziert. Der Inhalt des Ziels wird stattdessen in den Cache kopiert. Dies ermöglicht es einem Meta-Plugin, sein `skills/`-Verzeichnis mit Skills zu verknüpfen, die von anderen Plugins im Marktplatz definiert werden.

640* **Außerhalb des Marktplatzes:** Der Symlink wird aus Sicherheitsgründen übersprungen. Dies verhindert, dass Plugins beliebige Host-Dateien wie Systempfade in den Cache ziehen.

633 641 

634Wenn Ihr Plugin auf Dateien außerhalb seines Verzeichnisses zugreifen muss, können Sie symbolische Links zu externen Dateien in Ihrem Plugin-Verzeichnis erstellen. Symlinks werden im Cache beibehalten, anstatt dereferenziert zu werden, und sie werden zur Laufzeit zu ihrem Ziel aufgelöst. Der folgende Befehl erstellt einen Link von innerhalb Ihres Plugin-Verzeichnisses zu einem gemeinsamen Utilities-Speicherort:642Für Plugins, die mit `--plugin-dir` installiert oder aus einem lokalen Pfad installiert werden, werden nur Symlinks beibehalten, die sich innerhalb des eigenen Verzeichnisses des Plugins auflösen. Alle anderen werden übersprungen.

643 

644Der folgende Befehl erstellt einen Link von innerhalb eines Marktplatz-Plugins zu einem gemeinsamen Skill, der von einem Geschwister-Plugin definiert wird. Verwenden Sie unter Windows `mklink /D` von einer erhöhten Eingabeaufforderung oder aktivieren Sie den Entwicklermodus:

635 645 

636```bash theme={null}646```bash theme={null}

637ln -s /path/to/shared-utils ./shared-utils647ln -s ../../shared-plugin/skills/foo ./skills/foo

638```648```

639 649 

640Dies bietet Flexibilität bei Beibehaltung der Sicherheitsvorteile des Caching-Systems.650Dies bietet Flexibilität bei Beibehaltung der Sicherheitsvorteile des Caching-Systems.


875| `--available` | Verfügbare Plugins von Marktplätzen einschließen. Erfordert `--json` | |885| `--available` | Verfügbare Plugins von Marktplätzen einschließen. Erfordert `--json` | |

876| `-h, --help` | Hilfe für Befehl anzeigen | |886| `-h, --help` | Hilfe für Befehl anzeigen | |

877 887 

888### plugin details

889 

890Zeigen Sie das Komponenten-Inventar eines Plugins und die geschätzten Token-Kosten an. Die Ausgabe listet alle Komponenten auf, die das Plugin bereitstellt, gruppiert als Skills (Fähigkeiten und Befehle), Agents, Hooks und MCP-Server, zusammen mit einer Schätzung, wie viele Token es jeder Sitzung hinzufügt.

891 

892```bash theme={null}

893claude plugin details <name>

894```

895 

896**Argumente:**

897 

898* `<name>`: Plugin-Name oder `plugin-name@marketplace-name`

899 

900**Optionen:**

901 

902| Option | Beschreibung | Standard |

903| :----------- | :------------------------ | :------- |

904| `-h, --help` | Hilfe für Befehl anzeigen | |

905 

906Die Ausgabe zeigt zwei Kostenzahlen für jede Komponente:

907 

908* **Always-on:** Token, die jeder Sitzung durch den Auflistungstext des Plugins hinzugefügt werden, wie Skill-Beschreibungen, Agent-Beschreibungen und Befehlsnamen, unabhängig davon, ob eine Komponente ausgelöst wird.

909* **On-invoke:** Token, die eine Komponente kostet, wenn sie ausgelöst wird. Wird pro Komponente angezeigt, nicht als Plugin-Gesamtsumme, da eine typische Sitzung nur eine Teilmenge von Komponenten aufruft.

910 

911Dieses Beispiel zeigt, wie die Ausgabe für ein Plugin mit zwei Skills aussieht:

912 

913```

914security-guidance 1.2.0

915 Real-time security analysis for Claude Code sessions

916 Source: security-guidance@claude-code-marketplace

917 

918Component inventory

919 Skills (2) scan-dependencies, review-changes

920 Agents (0)

921 Hooks (1) (harness-only — no model context cost)

922 MCP servers (0)

923 

924Projected token cost

925 Always-on: ~180 tok added to every session

926 

927Per-component (rounded)

928 component always-on on-invoke

929 scan-dependencies ~100 ~2400

930 review-changes ~80 ~1800

931 

932 On-invoke cost is paid each time a skill or agent fires.

933 Token counts are estimates and may differ from actual usage.

934```

935 

936Die Always-on-Gesamtsumme wird über die `count_tokens` API für Ihr aktives Modell berechnet. Pro-Komponenten-Zahlen werden proportional von dieser Gesamtsumme skaliert. Wenn die API nicht erreichbar ist, greift der Befehl auf eine zeichenbasierte Schätzung zurück.

937 

878### plugin tag938### plugin tag

879 939 

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

quickstart.md +2 −2

Details

307 </Accordion>307 </Accordion>

308 308 

309 <Accordion title="Sparen Sie Zeit mit Verknüpfungen">309 <Accordion title="Sparen Sie Zeit mit Verknüpfungen">

310 * Drücken Sie `?`, um alle verfügbaren Tastaturkürzel anzuzeigen310 * Geben Sie `/` ein, um alle Befehle und Skills anzuzeigen

311 * Verwenden Sie Tab für Befehlsvervollständigung311 * Verwenden Sie Tab für Befehlsvervollständigung

312 * Drücken Sie ↑ für Befehlsverlauf312 * Drücken Sie ↑ für Befehlsverlauf

313 * Geben Sie `/` ein, um alle Befehle und skills anzuzeigen313 * Drücken Sie `Shift+Tab`, um zwischen Berechtigungsmodi zu wechseln

314 </Accordion>314 </Accordion>

315</AccordionGroup>315</AccordionGroup>

316 316 

routines.md +10 −8

Details

285 285 

286Jedes passende GitHub-Ereignis startet eine neue Sitzung. Sitzungswiederverwendung über Ereignisse hinweg ist nicht für GitHub-ausgelöste Routinen verfügbar, daher produzieren zwei PR-Updates zwei unabhängige Sitzungen.286Jedes passende GitHub-Ereignis startet eine neue Sitzung. Sitzungswiederverwendung über Ereignisse hinweg ist nicht für GitHub-ausgelöste Routinen verfügbar, daher produzieren zwei PR-Updates zwei unabhängige Sitzungen.

287 287 

288## Verwalten Sie Routinen288## Routinen verwalten

289 289 

290Klicken Sie auf eine Routine in der Liste, um ihre Detail-Seite zu öffnen. Die Detail-Seite zeigt die Repositories der Routine, Konnektoren, Prompt, Schedule, API-Tokens, GitHub-Trigger und eine Liste vergangener Ausführungen.290Klicken Sie auf eine Routine in der Liste, um ihre Detailseite zu öffnen. Die Detailseite zeigt die Repositories der Routine, Konnektoren, Prompt, Schedule, API-Tokens, GitHub-Trigger und eine Liste vergangener Ausführungen.

291 291 

292### Zeigen Sie Ausführungen an und interagieren Sie mit ihnen292### Ausführungen anzeigen und mit ihnen interagieren

293 293 

294Klicken Sie auf eine beliebige Ausführung, um sie als vollständige Sitzung zu öffnen. Von dort aus können Sie sehen, was Claude getan hat, Änderungen überprüfen, einen Pull Request erstellen oder das Gespräch fortsetzen. Jede Ausführungs-Sitzung funktioniert wie jede andere Sitzung: Verwenden Sie das Dropdown-Menü neben dem Sitzungstitel, um sie umzubenennen, zu archivieren oder zu löschen.294Klicken Sie auf eine beliebige Ausführung, um sie als vollständige Sitzung zu öffnen. Von dort aus können Sie sehen, was Claude getan hat, Änderungen überprüfen, einen Pull Request erstellen oder das Gespräch fortsetzen. Jede Ausführungssitzung funktioniert wie jede andere Sitzung: Verwenden Sie das Dropdown-Menü neben dem Sitzungstitel, um sie umzubenennen, zu archivieren oder zu löschen.

295 295 

296<Note>296<Note>

297 Ein grüner Status in der Ausführungsliste bedeutet, dass die Sitzung gestartet und beendet wurde, ohne dass ein Infrastruktur-Fehler auftrat. Dies bedeutet nicht, dass die Aufgabe in Ihrem Prompt erfolgreich war. Öffnen Sie die Ausführung, um das Transkript zu lesen und zu bestätigen, was Claude tatsächlich getan hat. Blockierte Netzwerkanfragen, fehlende Konnektoren-Tools und Fehler auf Aufgabenebene werden dort angezeigt, anstatt im Status-Indikator.297 Ein grüner Status in der Ausführungsliste bedeutet, dass die Sitzung gestartet und beendet wurde, ohne dass ein Infrastrukturfehler auftrat. Dies bedeutet nicht, dass die Aufgabe in Ihrem Prompt erfolgreich war. Öffnen Sie die Ausführung, um das Transkript zu lesen und zu bestätigen, was Claude tatsächlich getan hat. Blockierte Netzwerkanfragen, fehlende Konnektoren-Tools und Fehler auf Aufgabenebene werden dort angezeigt, anstatt im Status-Indikator.

298</Note>298</Note>

299 299 

300### Bearbeiten und steuern Sie Routinen300### Routinen bearbeiten und steuern

301 301 

302Von der Routine-Detail-Seite können Sie:302Von der Routine-Detailseite können Sie:

303 303 

304* Auf **Jetzt ausführen** klicken, um eine Ausführung sofort zu starten, ohne auf die nächste geplante Zeit zu warten.304* Auf **Jetzt ausführen** klicken, um eine Ausführung sofort zu starten, ohne auf die nächste geplante Zeit zu warten.

305* Den Toggle im Abschnitt **Wiederholt** verwenden, um den Schedule zu pausieren oder fortzusetzen. Pausierte Routinen behalten ihre Konfiguration, werden aber nicht ausgeführt, bis Sie sie erneut aktivieren.305* Den Toggle im Abschnitt **Wiederholt** verwenden, um den Schedule zu pausieren oder fortzusetzen. Pausierte Routinen behalten ihre Konfiguration, werden aber nicht ausgeführt, bis Sie sie erneut aktivieren.


318 318 

319Routinen können Ihre verbundenen MCP-Konnektoren verwenden, um während jeder Ausführung von externen Diensten zu lesen und zu schreiben. Beispielsweise könnte eine Routine, die Support-Anfragen triagiert, aus einem Slack-Channel lesen und Issues in Linear erstellen.319Routinen können Ihre verbundenen MCP-Konnektoren verwenden, um während jeder Ausführung von externen Diensten zu lesen und zu schreiben. Beispielsweise könnte eine Routine, die Support-Anfragen triagiert, aus einem Slack-Channel lesen und Issues in Linear erstellen.

320 320 

321Konnektoren sind die [claude.ai-Integrationen](/de/mcp#use-mcp-servers-from-claude-ai) auf Ihrem Konto. MCP-Server, die Sie lokal in der CLI mit `claude mcp add` hinzugefügt haben, werden auf Ihrem Computer gespeichert, anstatt auf Ihrem claude.ai-Konto, daher werden sie nicht in der Konnektoren-Liste angezeigt. Um einen dieser Server in einer Routine zu verwenden, fügen Sie ihn als Konnektoren unter [claude.ai/customize/connectors](https://claude.ai/customize/connectors) hinzu, oder deklarieren Sie ihn in einer committed [`.mcp.json`](/de/mcp#project-scope), damit er Teil des geklonten Repositories ist.

322 

321Wenn Sie eine Routine erstellen, sind alle Ihre derzeit verbundenen Konnektoren standardmäßig enthalten. Entfernen Sie alle, die nicht benötigt werden, um zu begrenzen, auf welche Tools Claude während der Ausführung Zugriff hat. Sie können auch Konnektoren direkt aus dem Routine-Formular hinzufügen.323Wenn Sie eine Routine erstellen, sind alle Ihre derzeit verbundenen Konnektoren standardmäßig enthalten. Entfernen Sie alle, die nicht benötigt werden, um zu begrenzen, auf welche Tools Claude während der Ausführung Zugriff hat. Sie können auch Konnektoren direkt aus dem Routine-Formular hinzufügen.

322 324 

323Um Konnektoren außerhalb des Routine-Formulars zu verwalten oder hinzuzufügen, besuchen Sie **Einstellungen > Konnektoren** auf claude.ai oder verwenden Sie `/schedule update` in der CLI.325Um Konnektoren außerhalb des Routine-Formulars zu verwalten oder hinzuzufügen, besuchen Sie **Einstellungen > Konnektoren** auf claude.ai oder verwenden Sie `/schedule update` in der CLI.


332 334 

333<Steps>335<Steps>

334 <Step title="Öffnen Sie die Routine zur Bearbeitung">336 <Step title="Öffnen Sie die Routine zur Bearbeitung">

335 Klicken Sie auf der Detail-Seite der Routine auf das Stiftsymbol, um **Routine bearbeiten** zu öffnen.337 Klicken Sie auf der Detailseite der Routine auf das Stiftsymbol, um **Routine bearbeiten** zu öffnen.

336 </Step>338 </Step>

337 339 

338 <Step title="Öffnen Sie die Umgebungsauswahl">340 <Step title="Öffnen Sie die Umgebungsauswahl">

security.md +1 −1

Details

87 87 

88Claude Code ermöglicht es Benutzern, Model Context Protocol (MCP)-Server zu konfigurieren. Die Liste der zulässigen MCP-Server wird in Ihrem Quellcode konfiguriert, als Teil der Claude Code-Einstellungen, die Ingenieure in die Versionskontrolle einchecken.88Claude Code ermöglicht es Benutzern, Model Context Protocol (MCP)-Server zu konfigurieren. Die Liste der zulässigen MCP-Server wird in Ihrem Quellcode konfiguriert, als Teil der Claude Code-Einstellungen, die Ingenieure in die Versionskontrolle einchecken.

89 89 

90Wir ermutigen Sie, entweder Ihre eigenen MCP-Server zu schreiben oder MCP-Server von Anbietern zu verwenden, denen Sie vertrauen. Sie können Claude Code-Berechtigungen für MCP-Server konfigurieren. Anthropic verwaltet oder prüft keine MCP-Server.90Wir ermutigen Sie, entweder Ihre eigenen MCP-Server zu schreiben oder MCP-Server von Anbietern zu verwenden, denen Sie vertrauen. Sie können Claude Code-Berechtigungen für MCP-Server konfigurieren. Anthropic überprüft Konnektoren anhand seiner [Auflistungskriterien](https://claude.com/docs/connectors/building/review-criteria), bevor sie zum [Anthropic-Verzeichnis](https://claude.ai/directory) hinzugefügt werden, führt jedoch keine Sicherheitsprüfung durch und verwaltet keinen MCP-Server.

91 91 

92## IDE-Sicherheit92## IDE-Sicherheit

93 93 

settings.md +3 −1

Details

178| `awsCredentialExport` | Benutzerdefiniertes Skript, das JSON mit AWS-Anmeldedaten ausgibt (siehe [erweiterte Anmeldedatenkonfiguration](/de/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |178| `awsCredentialExport` | Benutzerdefiniertes Skript, das JSON mit AWS-Anmeldedaten ausgibt (siehe [erweiterte Anmeldedatenkonfiguration](/de/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |

179| `blockedMarketplaces` | (Nur verwaltete Einstellungen) Blocklist von Marketplace-Quellen. Erzwungen bei Marketplace-Hinzufügung und bei Plugin-Installation, Update, Aktualisierung und Auto-Update, sodass ein Marketplace, der vor dem Setzen der Richtlinie hinzugefügt wurde, nicht zum Abrufen von Plugins verwendet werden kann. Blockierte Quellen werden vor dem Download überprüft, sodass sie das Dateisystem nie berühren. Siehe [Verwaltete Marketplace-Einschränkungen](/de/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |179| `blockedMarketplaces` | (Nur verwaltete Einstellungen) Blocklist von Marketplace-Quellen. Erzwungen bei Marketplace-Hinzufügung und bei Plugin-Installation, Update, Aktualisierung und Auto-Update, sodass ein Marketplace, der vor dem Setzen der Richtlinie hinzugefügt wurde, nicht zum Abrufen von Plugins verwendet werden kann. Blockierte Quellen werden vor dem Download überprüft, sodass sie das Dateisystem nie berühren. Siehe [Verwaltete Marketplace-Einschränkungen](/de/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

180| `channelsEnabled` | (Nur verwaltete Einstellungen) Erlauben Sie [Kanäle](/de/channels) für die Organisation. Bei Claude.ai Team- und Enterprise-Plänen werden Kanäle blockiert, wenn dies nicht gesetzt oder `false` ist. Für [Anthropic Console](/de/authentication#claude-console-authentication)-Konten mit API-Schlüssel-Authentifizierung sind Kanäle standardmäßig zulässig, es sei denn, Ihre Organisation stellt verwaltete Einstellungen bereit. In diesem Fall muss dieser Schlüssel auf `true` gesetzt werden | `true` |180| `channelsEnabled` | (Nur verwaltete Einstellungen) Erlauben Sie [Kanäle](/de/channels) für die Organisation. Bei Claude.ai Team- und Enterprise-Plänen werden Kanäle blockiert, wenn dies nicht gesetzt oder `false` ist. Für [Anthropic Console](/de/authentication#claude-console-authentication)-Konten mit API-Schlüssel-Authentifizierung sind Kanäle standardmäßig zulässig, es sei denn, Ihre Organisation stellt verwaltete Einstellungen bereit. In diesem Fall muss dieser Schlüssel auf `true` gesetzt werden | `true` |

181| `claudeMd` | (Nur verwaltete Einstellungen) CLAUDE.md-ähnliche Anweisungen, die als organisationsverwalteter Speicher eingespritzt werden. Wird nur berücksichtigt, wenn in verwalteten oder Richtlinieneinstellungen gesetzt, und ignoriert in Benutzer-, Projekt- und lokalen Einstellungen. Siehe [organisationsweite CLAUDE.md](/de/memory#deploy-organization-wide-claude-md) | `"Always run make lint before committing."` |

181| `claudeMdExcludes` | Glob-Muster oder absolute Pfade von `CLAUDE.md`-Dateien, die beim Laden von [Speicher](/de/memory) übersprungen werden sollen. Muster werden gegen absolute Dateipfade abgeglichen. Gilt nur für Benutzer-, Projekt- und lokalen Speicher; verwaltete Richtliniendateien können nicht ausgeschlossen werden | `["**/vendor/**/CLAUDE.md"]` |182| `claudeMdExcludes` | Glob-Muster oder absolute Pfade von `CLAUDE.md`-Dateien, die beim Laden von [Speicher](/de/memory) übersprungen werden sollen. Muster werden gegen absolute Dateipfade abgeglichen. Gilt nur für Benutzer-, Projekt- und lokalen Speicher; verwaltete Richtliniendateien können nicht ausgeschlossen werden | `["**/vendor/**/CLAUDE.md"]` |

182| `cleanupPeriodDays` | Sitzungsdateien, die älter als dieser Zeitraum sind, werden beim Start gelöscht (Standard: 30 Tage, Minimum 1). Das Setzen auf `0` wird mit einem Validierungsfehler abgelehnt. Steuert auch den Altersgrenzwert für die automatische Entfernung von [verwaisten Subagent-Worktrees](/de/worktrees#clean-up-worktrees) beim Start. Um Transkriptschreibvorgänge vollständig zu deaktivieren, setzen Sie die Umgebungsvariable [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/de/env-vars) oder verwenden Sie im nicht-interaktiven Modus (`-p`) das Flag `--no-session-persistence` oder die SDK-Option `persistSession: false`. | `20` |183| `cleanupPeriodDays` | Sitzungsdateien, die älter als dieser Zeitraum sind, werden beim Start gelöscht (Standard: 30 Tage, Minimum 1). Das Setzen auf `0` wird mit einem Validierungsfehler abgelehnt. Steuert auch den Altersgrenzwert für die automatische Entfernung von [verwaisten Subagent-Worktrees](/de/worktrees#clean-up-worktrees) beim Start. Um Transkriptschreibvorgänge vollständig zu deaktivieren, setzen Sie die Umgebungsvariable [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/de/env-vars) oder verwenden Sie im nicht-interaktiven Modus (`-p`) das Flag `--no-session-persistence` oder die SDK-Option `persistSession: false`. | `20` |

183| `companyAnnouncements` | Ankündigung, die Benutzern beim Start angezeigt werden soll. Wenn mehrere Ankündigungen bereitgestellt werden, werden sie zufällig durchlaufen. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |184| `companyAnnouncements` | Ankündigung, die Benutzern beim Start angezeigt werden soll. Wenn mehrere Ankündigungen bereitgestellt werden, werden sie zufällig durchlaufen. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |


253</Note>254</Note>

254 255 

255| Schlüssel | Beschreibung | Beispiel |256| Schlüssel | Beschreibung | Beispiel |

256| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- |257| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

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

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

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

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

260 262 

261### Worktree-Einstellungen263### Worktree-Einstellungen

262 264 

troubleshoot-install.md +803 −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# Installationsfehler und Anmeldungsprobleme beheben

6 

7> Beheben Sie Fehler wie „Befehl nicht gefunden“, PATH, Berechtigungen, Netzwerk und Authentifizierungsfehler bei der Installation oder Anmeldung bei Claude Code.

8 

9Wenn die Installation fehlschlägt oder Sie sich nicht anmelden können, finden Sie Ihren Fehler unten. Für Laufzeitprobleme nach der Installation von Claude Code siehe [Fehlerbehebung](/de/troubleshooting). Für Konfigurationsprobleme wie nicht angewendete Einstellungen oder nicht ausgelöste Hooks siehe [Konfiguration debuggen](/de/debug-your-config).

10 

11## Finden Sie Ihren Fehler

12 

13Ordnen Sie die Fehlermeldung oder das Symptom, das Sie sehen, einer Lösung zu:

14 

15| Was Sie sehen | Lösung |

16| :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------- |

17| `command not found: claude` oder `'claude' is not recognized` | [Beheben Sie Ihren PATH](#command-not-found-claude-after-installation) |

18| `syntax error near unexpected token '<'` | [Installationsskript gibt HTML zurück](#install-script-returns-html-instead-of-a-shell-script) |

19| `curl: (56) Failure writing output to destination` | [Überprüfen Sie die Konnektivität oder verwenden Sie ein alternatives Installationsprogramm](#curl-56-failure-writing-output-to-destination) |

20| `Killed` während der Installation unter Linux | [Fügen Sie Swap-Speicher für Server mit wenig Speicher hinzu](#install-killed-on-low-memory-linux-servers) |

21| `TLS connect error` oder `SSL/TLS secure channel` | [Aktualisieren Sie CA-Zertifikate](#tls-or-ssl-connection-errors) |

22| `Failed to fetch version` oder kann den Download-Server nicht erreichen | [Überprüfen Sie Netzwerk- und Proxy-Einstellungen](#check-network-connectivity) |

23| `irm is not recognized` oder `&& is not valid` | [Verwenden Sie den richtigen Befehl für Ihre Shell](#wrong-install-command-on-windows) |

24| `'bash' is not recognized as the name of a cmdlet` | [Verwenden Sie den Windows-Installationsbefehl](#wrong-install-command-on-windows) |

25| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Installieren Sie eine Shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

26| `Claude Code does not support 32-bit Windows` | [Öffnen Sie Windows PowerShell, nicht den x86-Eintrag](#claude-code-does-not-support-32-bit-windows) |

27| `The process cannot access the file ... because it is being used by another process` | [Leeren Sie den Downloads-Ordner und versuchen Sie es erneut](#the-process-cannot-access-the-file-during-windows-install) |

28| `Error loading shared library` | [Falsche Binärvariante für Ihr System](#linux-musl-or-glibc-binary-mismatch) |

29| `Illegal instruction` | [Architektur- oder CPU-Befehlssatz-Nichtübereinstimmung](#illegal-instruction) |

30| `cannot execute binary file: Exec format error` in WSL | [WSL1 native-binary Regression](#exec-format-error-on-wsl1) |

31| PowerShell-Installationsprogramm wird abgeschlossen, aber `claude` wird nicht gefunden oder zeigt eine alte Version | [Starten Sie Ihr Terminal neu und überprüfen Sie PATH](#verify-your-path) |

32| `dyld: cannot load`, `dyld: Symbol not found` oder `Abort trap` unter macOS | [Binärinkompatibilität](#dyld-cannot-load-on-macos) |

33| `Invoke-Expression: Missing argument in parameter list` | [Installationsskript gibt HTML zurück](#install-script-returns-html-instead-of-a-shell-script) |

34| `App unavailable in region` | Claude Code ist in Ihrem Land nicht verfügbar. Siehe [unterstützte Länder](https://www.anthropic.com/supported-countries). |

35| `unable to get local issuer certificate` | [Konfigurieren Sie Unternehmens-CA-Zertifikate](#tls-or-ssl-connection-errors) |

36| `OAuth error` oder `403 Forbidden` | [Beheben Sie die Authentifizierung](#login-and-authentication) |

37| `Could not load the default credentials` oder `Could not load credentials from any providers` | [Bedrock-, Vertex- oder Foundry-Anmeldedaten](#bedrock-vertex-or-foundry-credentials-not-loading) |

38| `ChainedTokenCredential authentication failed` oder `CredentialUnavailableError` | [Bedrock-, Vertex- oder Foundry-Anmeldedaten](#bedrock-vertex-or-foundry-credentials-not-loading) |

39| `API Error: 500`, `529 Overloaded`, `429` oder andere 4xx und 5xx Fehler, die oben nicht aufgeführt sind | Siehe die [Fehlerreferenz](/de/errors) |

40 

41Wenn Ihr Problem nicht aufgeführt ist, führen Sie die Diagnoseprüfungen unten durch, um die Ursache einzugrenzen.

42 

43<Tip>

44 Wenn Sie das Terminal lieber ganz vermeiden möchten, können Sie mit der [Claude Code Desktop-App](/de/desktop-quickstart) Claude Code über eine grafische Benutzeroberfläche installieren und verwenden. Laden Sie sie für [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) oder [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) herunter und beginnen Sie zu programmieren, ohne dass Sie eine Befehlszeileneinrichtung benötigen.

45</Tip>

46 

47## Führen Sie Diagnoseprüfungen durch

48 

49### Überprüfen Sie die Netzwerkkonnektivität

50 

51Das Installationsprogramm lädt von `downloads.claude.ai` herunter. Überprüfen Sie, ob Sie es erreichen können:

52 

53```bash theme={null}

54curl -sI https://downloads.claude.ai/claude-code-releases/latest

55```

56 

57Eine `HTTP/2 200` Zeile bedeutet, dass Sie den Server erreicht haben. Wenn Sie keine Ausgabe, `Could not resolve host` oder ein Verbindungs-Timeout sehen, blockiert Ihr Netzwerk die Verbindung. Häufige Ursachen:

58 

59* Unternehmens-Firewalls oder Proxys, die `downloads.claude.ai` blockieren

60* Regionale Netzwerkbeschränkungen: Versuchen Sie ein VPN oder ein alternatives Netzwerk

61* TLS/SSL-Probleme: Aktualisieren Sie die CA-Zertifikate Ihres Systems, oder überprüfen Sie, ob `HTTPS_PROXY` konfiguriert ist

62 

63Wenn Sie sich hinter einem Unternehmens-Proxy befinden, setzen Sie `HTTPS_PROXY` und `HTTP_PROXY` auf die Adresse Ihres Proxys, bevor Sie installieren. Fragen Sie Ihr IT-Team nach der Proxy-URL, wenn Sie diese nicht kennen, oder überprüfen Sie die Proxy-Einstellungen Ihres Browsers.

64 

65Dieses Beispiel setzt beide Proxy-Variablen und führt dann das Installationsprogramm über Ihren Proxy aus:

66 

67<Tabs>

68 <Tab title="macOS/Linux">

69 ```bash theme={null}

70 export HTTP_PROXY=http://proxy.example.com:8080

71 export HTTPS_PROXY=http://proxy.example.com:8080

72 curl -fsSL https://claude.ai/install.sh | bash

73 ```

74 </Tab>

75 

76 <Tab title="Windows PowerShell">

77 ```powershell theme={null}

78 $env:HTTP_PROXY = 'http://proxy.example.com:8080'

79 $env:HTTPS_PROXY = 'http://proxy.example.com:8080'

80 irm https://claude.ai/install.ps1 | iex

81 ```

82 </Tab>

83</Tabs>

84 

85### Überprüfen Sie Ihren PATH

86 

87Wenn die Installation erfolgreich war, aber Sie einen `command not found` oder `not recognized` Fehler beim Ausführen von `claude` erhalten, befindet sich das Installationsverzeichnis nicht in Ihrem PATH. Ihre Shell sucht nach Programmen in Verzeichnissen, die in PATH aufgeführt sind, und das Installationsprogramm platziert `claude` unter `~/.local/bin/claude` auf macOS/Linux oder `%USERPROFILE%\.local\bin\claude.exe` unter Windows.

88 

89Überprüfen Sie, ob sich das Installationsverzeichnis in Ihrem PATH befindet, indem Sie Ihre PATH-Einträge auflisten und nach `local/bin` filtern:

90 

91<Tabs>

92 <Tab title="macOS/Linux">

93 ```bash theme={null}

94 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

95 ```

96 

97 Wenn dies `/Users/you/.local/bin` oder `/home/you/.local/bin` ausgibt, befindet sich das Verzeichnis in Ihrem PATH und Sie können zu [Überprüfen Sie auf konfliktfreie Installationen](#check-for-conflicting-installations) springen. Wenn es keine Ausgabe gibt, fügen Sie es zu Ihrer Shell-Konfiguration hinzu.

98 

99 Für Zsh, das Standard auf macOS:

100 

101 ```bash theme={null}

102 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

103 source ~/.zshrc

104 ```

105 

106 Für Bash, das Standard auf den meisten Linux-Distributionen:

107 

108 ```bash theme={null}

109 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

110 source ~/.bashrc

111 ```

112 

113 Alternativ können Sie Ihr Terminal schließen und erneut öffnen.

114 

115 Für andere Shells wie fish oder Nushell fügen Sie `~/.local/bin` zu Ihrem PATH mit der eigenen Konfigurationssyntax Ihrer Shell hinzu und starten Sie dann Ihr Terminal neu.

116 

117 Überprüfen Sie, ob die Behebung funktioniert hat:

118 

119 ```bash theme={null}

120 claude --version

121 ```

122 </Tab>

123 

124 <Tab title="Windows PowerShell">

125 ```powershell theme={null}

126 $env:PATH -split ';' | Select-String '\.local\\bin'

127 ```

128 

129 Wenn es keine Ausgabe gibt, fügen Sie das Installationsverzeichnis zu Ihrem Benutzer-PATH hinzu:

130 

131 ```powershell theme={null}

132 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')

133 [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

134 ```

135 

136 Starten Sie Ihr Terminal neu, damit die Änderung wirksam wird.

137 

138 Überprüfen Sie, ob die Behebung funktioniert hat:

139 

140 ```powershell theme={null}

141 claude --version

142 ```

143 </Tab>

144 

145 <Tab title="Windows CMD">

146 ```batch theme={null}

147 echo %PATH% | findstr /i "local\bin"

148 ```

149 

150 Wenn es keine Ausgabe gibt, öffnen Sie Systemeinstellungen, gehen Sie zu Umgebungsvariablen und fügen Sie `%USERPROFILE%\.local\bin` zu Ihrer Benutzer-PATH-Variable hinzu. Starten Sie Ihr Terminal neu.

151 

152 Überprüfen Sie, ob die Behebung funktioniert hat:

153 

154 ```batch theme={null}

155 claude --version

156 ```

157 </Tab>

158</Tabs>

159 

160### Überprüfen Sie auf konfliktfreie Installationen

161 

162Mehrere Claude Code-Installationen können zu Versionskonflikten oder unerwartetem Verhalten führen. Überprüfen Sie, was installiert ist:

163 

164<Tabs>

165 <Tab title="macOS/Linux">

166 Listet alle `claude` Binärdateien auf, die in Ihrem PATH gefunden werden:

167 

168 ```bash theme={null}

169 which -a claude

170 ```

171 

172 Wenn dies nichts ausgibt, befindet sich noch kein `claude` in Ihrem PATH. Gehen Sie zurück zu [Überprüfen Sie Ihren PATH](#verify-your-path).

173 

174 Überprüfen Sie die drei Orte, von denen eine `claude` Binärdatei stammen kann. `~/.local/bin/claude` ist das native Installationsprogramm, `~/.claude/local/` ist eine ältere lokale npm-Installation, die von älteren Versionen von Claude Code erstellt wurde, und die npm-globale Liste zeigt eine `-g` Installation:

175 

176 ```bash theme={null}

177 ls -la ~/.local/bin/claude

178 ```

179 

180 ```bash theme={null}

181 ls -la ~/.claude/local/

182 ```

183 

184 ```bash theme={null}

185 npm -g ls @anthropic-ai/claude-code 2>/dev/null

186 ```

187 </Tab>

188 

189 <Tab title="Windows PowerShell">

190 Listet alle `claude` Binärdateien auf, die in Ihrem PATH gefunden werden:

191 

192 ```powershell theme={null}

193 where.exe claude

194 ```

195 

196 Überprüfen Sie, ob das native Installationsprogramm eine Binärdatei platziert hat:

197 

198 ```powershell theme={null}

199 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

200 ```

201 </Tab>

202</Tabs>

203 

204Wenn Sie mehrere Installationen finden, behalten Sie nur eine. Die native Installation unter `~/.local/bin/claude` auf macOS/Linux oder `%USERPROFILE%\.local\bin\claude.exe` unter Windows wird empfohlen. Entfernen Sie die zusätzlichen:

205 

206Deinstallieren Sie eine globale npm-Installation:

207 

208```bash theme={null}

209npm uninstall -g @anthropic-ai/claude-code

210```

211 

212Entfernen Sie die ältere lokale npm-Installation:

213 

214```bash theme={null}

215rm -rf ~/.claude/local

216```

217 

218Unter Windows verwenden Sie PowerShell:

219 

220```powershell theme={null}

221Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"

222```

223 

224Entfernen Sie eine Homebrew-Installation auf macOS. Wenn Sie das `claude-code@latest` Cask installiert haben, ersetzen Sie diesen Namen:

225 

226```bash theme={null}

227brew uninstall --cask claude-code

228```

229 

230Entfernen Sie eine WinGet-Installation unter Windows:

231 

232```powershell theme={null}

233winget uninstall Anthropic.ClaudeCode

234```

235 

236### Überprüfen Sie Verzeichnisberechtigungen

237 

238Das Installationsprogramm benötigt Schreibzugriff auf `~/.local/bin/` und `~/.claude/` auf macOS und Linux. Unter Windows befindet sich der Installationsort unter `%USERPROFILE%`, das standardmäßig von Ihrem Benutzer beschreibbar ist, daher gilt dieser Abschnitt dort selten.

239 

240Überprüfen Sie, ob die Verzeichnisse beschreibbar sind:

241 

242```bash theme={null}

243test -w ~/.local/bin && echo "writable" || echo "not writable"

244test -w ~/.claude && echo "writable" || echo "not writable"

245```

246 

247Wenn eines der Verzeichnisse nicht beschreibbar ist, erstellen Sie das Installationsverzeichnis und setzen Sie Ihren Benutzer als Eigentümer:

248 

249```bash theme={null}

250sudo mkdir -p ~/.local/bin

251sudo chown -R $(whoami) ~/.local

252```

253 

254### Überprüfen Sie, ob die Binärdatei funktioniert

255 

256Wenn `claude --version` eine Version ausgibt, aber `claude` beim Start abstürzt oder hängt, führen Sie diese Prüfungen durch, um die Ursache einzugrenzen. Wenn `claude --version` sagt, dass der Befehl nicht gefunden wurde, gehen Sie zuerst zu [Überprüfen Sie Ihren PATH](#verify-your-path); die folgenden Befehle gehen davon aus, dass `claude` in Ihrem PATH ist.

257 

258Bestätigen Sie, dass die Binärdatei existiert und ausführbar ist:

259 

260```bash theme={null}

261ls -la "$(command -v claude)"

262```

263 

264Unter Windows verwenden Sie PowerShell:

265 

266```powershell theme={null}

267Get-Command claude | Select-Object Source

268```

269 

270Überprüfen Sie unter Linux auf fehlende gemeinsame Bibliotheken. Wenn `ldd` fehlende Bibliotheken anzeigt, müssen Sie möglicherweise Systempakete installieren. Auf Alpine Linux und anderen musl-basierten Distributionen siehe [Alpine Linux-Setup](/de/setup#alpine-linux-and-musl-based-distributions).

271 

272```bash theme={null}

273ldd "$(command -v claude)" | grep "not found"

274```

275 

276Bestätigen Sie, dass die Binärdatei ausgeführt werden kann:

277 

278```bash theme={null}

279claude --version

280```

281 

282## Häufige Installationsprobleme

283 

284Dies sind die am häufigsten auftretenden Installationsprobleme und deren Lösungen.

285 

286### Installationsskript gibt HTML statt eines Shell-Skripts zurück

287 

288Beim Ausführen des Installationsbefehls können Sie einen dieser Fehler sehen:

289 

290```text theme={null}

291bash: line 1: syntax error near unexpected token `<'

292bash: line 1: `<!DOCTYPE html>'

293```

294 

295In PowerShell erscheint das gleiche Problem als:

296 

297```text theme={null}

298Invoke-Expression: Missing argument in parameter list.

299```

300 

301Dies bedeutet, dass die Installations-URL eine HTML-Seite statt des Installationsskripts zurückgegeben hat. Wenn die HTML-Seite „App unavailable in region" sagt, ist Claude Code in Ihrem Land nicht verfügbar. Siehe [unterstützte Länder](https://www.anthropic.com/supported-countries).

302 

303Andernfalls kann dies aufgrund von Netzwerkproblemen, regionalen Routing-Problemen oder einer vorübergehenden Dienstunterbrechung geschehen.

304 

305**Lösungen:**

306 

3071. **Verwenden Sie eine alternative Installationsmethode**:

308 

309 Auf macOS installieren Sie über Homebrew:

310 

311 ```bash theme={null}

312 brew install --cask claude-code

313 ```

314 

315 Unter Windows installieren Sie über WinGet:

316 

317 ```powershell theme={null}

318 winget install Anthropic.ClaudeCode

319 ```

320 

3212. **Versuchen Sie es nach einigen Minuten erneut**: Das Problem ist oft vorübergehend. Warten Sie und versuchen Sie den ursprünglichen Befehl erneut.

322 

323### `command not found: claude` nach der Installation

324 

325Die Installation ist abgeschlossen, aber `claude` funktioniert nicht. Die genaue Fehlermeldung variiert je nach Plattform:

326 

327| Plattform | Fehlermeldung |

328| :---------- | :--------------------------------------------------------------------- |

329| macOS | `zsh: command not found: claude` |

330| Linux | `bash: claude: command not found` |

331| Windows CMD | `'claude' is not recognized as an internal or external command` |

332| PowerShell | `claude : The term 'claude' is not recognized as the name of a cmdlet` |

333 

334Dies bedeutet, dass sich das Installationsverzeichnis nicht im Suchpfad Ihrer Shell befindet. Siehe [Überprüfen Sie Ihren PATH](#verify-your-path) für die Behebung auf jeder Plattform.

335 

336### `curl: (56) Failure writing output to destination`

337 

338Der Befehl `curl ... | bash` lädt das Skript herunter und leitet es an Bash zur Ausführung weiter. Dieser Fehler bedeutet, dass die Verbindung unterbrochen wurde, bevor das Skript vollständig heruntergeladen wurde. Häufige Ursachen sind Netzwerkunterbrechungen, der Download wird mitten im Strom blockiert oder Systemressourcenlimits.

339 

340**Lösungen:**

341 

3421. **Überprüfen Sie die Netzwerkstabilität**: Claude Code-Binärdateien werden unter `downloads.claude.ai` gehostet. Testen Sie, ob Sie es erreichen können:

343 ```bash theme={null}

344 curl -sI https://downloads.claude.ai/claude-code-releases/latest

345 ```

346 Eine `HTTP/2 200` Zeile bedeutet, dass Sie den Server erreicht haben und der ursprüngliche Fehler wahrscheinlich vorübergehend war; versuchen Sie den Installationsbefehl erneut. Wenn Sie `Could not resolve host` oder ein Verbindungs-Timeout sehen, blockiert Ihr Netzwerk den Download.

347 

3482. **Versuchen Sie eine alternative Installationsmethode**:

349 

350 Auf macOS:

351 

352 ```bash theme={null}

353 brew install --cask claude-code

354 ```

355 

356 Unter Windows:

357 

358 ```powershell theme={null}

359 winget install Anthropic.ClaudeCode

360 ```

361 

362### TLS- oder SSL-Verbindungsfehler

363 

364Fehler wie `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed` oder PowerShells `Could not establish trust relationship for the SSL/TLS secure channel` deuten auf TLS-Handshake-Fehler hin.

365 

366**Lösungen:**

367 

3681. **Aktualisieren Sie Ihre System-CA-Zertifikate**:

369 

370 Auf Ubuntu/Debian:

371 

372 ```bash theme={null}

373 sudo apt-get update && sudo apt-get install ca-certificates

374 ```

375 

376 Auf macOS verwendet das System-curl den Keychain-Vertrauensspeicher; das Aktualisieren von macOS selbst aktualisiert die Root-Zertifikate.

377 

3782. **Aktivieren Sie unter Windows TLS 1.2** in PowerShell, bevor Sie das Installationsprogramm ausführen:

379 ```powershell theme={null}

380 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

381 irm https://claude.ai/install.ps1 | iex

382 ```

383 

3843. **Überprüfen Sie auf Proxy- oder Firewall-Interferenz**: Unternehmens-Proxys, die TLS-Inspektion durchführen, können diese Fehler verursachen, einschließlich `unable to get local issuer certificate` und `SELF_SIGNED_CERT_IN_CHAIN`. Für den Installationsschritt zeigen Sie curl auf Ihr Unternehmens-CA-Bundle mit `--cacert`:

385 ```bash theme={null}

386 curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash

387 ```

388 Für Claude Code selbst nach der Installation setzen Sie `NODE_EXTRA_CA_CERTS`, damit API-Anfragen dem gleichen Bundle vertrauen:

389 ```bash theme={null}

390 export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

391 ```

392 Fragen Sie Ihr IT-Team nach der Zertifikatsdatei, wenn Sie diese nicht haben. Sie können auch auf einer direkten Verbindung versuchen, um zu bestätigen, dass der Proxy die Ursache ist.

393 

3944. **Unter Windows Zertifikatssperrprüfungen umgehen**, wenn Sie `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` oder `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` sehen. Diese bedeuten, dass curl den Server erreicht hat, aber Ihr Netzwerk die Zertifikatssperrprüfung blockiert, was hinter Unternehmens-Firewalls häufig vorkommt. Fügen Sie `--ssl-revoke-best-effort` zum Installationsbefehl hinzu:

395 ```batch theme={null}

396 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

397 ```

398 Alternativ installieren Sie mit `winget install Anthropic.ClaudeCode`, was curl ganz vermeidet.

399 

400### `Failed to fetch version from downloads.claude.ai`

401 

402Das Installationsprogramm konnte den Download-Server nicht erreichen. Dies bedeutet normalerweise, dass `downloads.claude.ai` in Ihrem Netzwerk blockiert ist.

403 

404**Lösungen:**

405 

4061. **Testen Sie die Konnektivität direkt**:

407 ```bash theme={null}

408 curl -sI https://downloads.claude.ai/claude-code-releases/latest

409 ```

410 

4112. **Wenn Sie sich hinter einem Proxy befinden**, setzen Sie `HTTPS_PROXY`, damit das Installationsprogramm es durchleiten kann. Siehe [Proxy-Konfiguration](/de/network-config#proxy-configuration) für Details.

412 ```bash theme={null}

413 export HTTPS_PROXY=http://proxy.example.com:8080

414 curl -fsSL https://claude.ai/install.sh | bash

415 ```

416 

4173. **Wenn Sie sich in einem eingeschränkten Netzwerk befinden**, versuchen Sie ein anderes Netzwerk oder VPN, oder verwenden Sie eine alternative Installationsmethode:

418 

419 Auf macOS:

420 

421 ```bash theme={null}

422 brew install --cask claude-code

423 ```

424 

425 Unter Windows:

426 

427 ```powershell theme={null}

428 winget install Anthropic.ClaudeCode

429 ```

430 

431### Falscher Installationsbefehl unter Windows

432 

433Wenn Sie `'irm' is not recognized`, `The token '&&' is not valid` oder `'bash' is not recognized as the name of a cmdlet` sehen, haben Sie den Installationsbefehl für eine andere Shell oder ein anderes Betriebssystem kopiert.

434 

435* **`irm` nicht erkannt**: Sie befinden sich in CMD, nicht in PowerShell. Sie haben zwei Optionen:

436 

437 Öffnen Sie PowerShell, indem Sie im Startmenü nach „PowerShell" suchen, und führen Sie dann den ursprünglichen Installationsbefehl aus:

438 

439 ```powershell theme={null}

440 irm https://claude.ai/install.ps1 | iex

441 ```

442 

443 Oder bleiben Sie in CMD und verwenden Sie stattdessen das CMD-Installationsprogramm:

444 

445 ```batch theme={null}

446 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

447 ```

448 

449* **`&&` nicht gültig**: Sie befinden sich in PowerShell, haben aber den CMD-Installationsbefehl ausgeführt. Verwenden Sie das PowerShell-Installationsprogramm:

450 ```powershell theme={null}

451 irm https://claude.ai/install.ps1 | iex

452 ```

453 

454* **`bash` nicht erkannt**: Sie haben das macOS/Linux-Installationsprogramm unter Windows ausgeführt. Verwenden Sie stattdessen das PowerShell-Installationsprogramm:

455 ```powershell theme={null}

456 irm https://claude.ai/install.ps1 | iex

457 ```

458 

459### `The process cannot access the file` während der Windows-Installation

460 

461Wenn das PowerShell-Installationsprogramm mit `Failed to download binary: The process cannot access the file ... because it is being used by another process` fehlschlägt, konnte das Installationsprogramm nicht in `%USERPROFILE%\.claude\downloads` schreiben. Dies bedeutet normalerweise, dass ein vorheriger Installationsversuch noch läuft, oder Antivirus-Software scannt eine teilweise heruntergeladene Binärdatei in diesem Ordner.

462 

463Schließen Sie alle anderen PowerShell-Fenster, die das Installationsprogramm ausführen, und warten Sie, bis Antivirus-Scans die Datei freigeben. Löschen Sie dann den Downloads-Ordner und führen Sie das Installationsprogramm erneut aus:

464 

465```powershell theme={null}

466Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"

467irm https://claude.ai/install.ps1 | iex

468```

469 

470### Installation auf Linux-Servern mit wenig Speicher beendet

471 

472Wenn Sie während der Installation auf einem VPS oder einer Cloud-Instanz `Killed` sehen:

473 

474```text theme={null}

475Setting up Claude Code...

476Installing Claude Code native build latest...

477bash: line 142: 34803 Killed "$binary_path" install ${TARGET:+"$TARGET"}

478```

479 

480Der Linux OOM-Killer hat den Prozess beendet, weil dem System der Speicher ausgegangen ist. Claude Code benötigt mindestens 4 GB verfügbaren RAM.

481 

482**Lösungen:**

483 

4841. **Fügen Sie Swap-Speicher hinzu**, wenn Ihr Server über begrenzte RAM verfügt. Swap verwendet Festplattenspeicher als Überlauf-Speicher, sodass die Installation auch bei wenig physischem RAM abgeschlossen werden kann.

485 

486 Erstellen Sie eine 2-GB-Swap-Datei und aktivieren Sie sie:

487 

488 ```bash theme={null}

489 sudo fallocate -l 2G /swapfile

490 sudo chmod 600 /swapfile

491 sudo mkswap /swapfile

492 sudo swapon /swapfile

493 ```

494 

495 Versuchen Sie dann die Installation erneut:

496 

497 ```bash theme={null}

498 curl -fsSL https://claude.ai/install.sh | bash

499 ```

500 

5012. **Schließen Sie andere Prozesse**, um Speicher vor der Installation freizugeben.

502 

5033. **Verwenden Sie eine größere Instanz**, wenn möglich. Claude Code benötigt mindestens 4 GB RAM.

504 

505### Installation hängt in Docker

506 

507Beim Installieren von Claude Code in einem Docker-Container kann die Installation als Root in `/` zu Hängern führen.

508 

509**Lösungen:**

510 

5111. **Setzen Sie ein Arbeitsverzeichnis**, bevor Sie das Installationsprogramm ausführen. Wenn es von `/` aus ausgeführt wird, scannt das Installationsprogramm das gesamte Dateisystem, was zu übermäßiger Speichernutzung führt. Das Setzen von `WORKDIR` begrenzt den Scan auf ein kleines Verzeichnis:

512 ```dockerfile theme={null}

513 WORKDIR /tmp

514 RUN curl -fsSL https://claude.ai/install.sh | bash

515 ```

516 

5172. **Erhöhen Sie die Docker-Speicherlimits**, wenn Sie Docker Desktop verwenden:

518 ```bash theme={null}

519 docker build --memory=4g .

520 ```

521 

522### Claude Desktop überschreibt den `claude` Befehl unter Windows

523 

524Wenn Sie eine ältere Version von Claude Desktop installiert haben, kann sie eine `Claude.exe` im `WindowsApps` Verzeichnis registrieren, die PATH-Priorität über Claude Code CLI hat. Das Ausführen von `claude` öffnet die Desktop-App statt der CLI.

525 

526Aktualisieren Sie Claude Desktop auf die neueste Version, um dieses Problem zu beheben.

527 

528### Claude Code unter Windows benötigt entweder Git für Windows (für Bash) oder PowerShell

529 

530Claude Code unter nativem Windows benötigt mindestens eine Shell: entweder [Git für Windows](https://git-scm.com/downloads/win) für Bash oder PowerShell. Wenn keine gefunden wird, erscheint dieser Fehler beim Start. Wenn nur PowerShell gefunden wird, verwendet Claude Code das PowerShell-Tool statt Bash.

531 

532**Wenn keines installiert ist**, installieren Sie eines:

533 

534* Git für Windows: Laden Sie es von [git-scm.com/downloads/win](https://git-scm.com/downloads/win) herunter. Wählen Sie während der Einrichtung „Add to PATH" aus. Starten Sie Ihr Terminal nach der Installation neu.

535* PowerShell 7: Laden Sie es von [aka.ms/powershell](https://aka.ms/powershell) herunter.

536 

537**Wenn Git bereits installiert ist**, aber Claude Code kann es nicht finden, setzen Sie den Pfad in Ihrer [settings.json Datei](/de/settings):

538 

539```json theme={null}

540{

541 "env": {

542 "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"

543 }

544}

545```

546 

547Wenn Ihr Git an einem anderen Ort installiert ist, finden Sie den Pfad, indem Sie `where.exe git` in PowerShell ausführen, und verwenden Sie den `bin\bash.exe` Pfad aus diesem Verzeichnis.

548 

549### Claude Code unterstützt 32-Bit Windows nicht

550 

551Windows enthält zwei PowerShell-Einträge im Startmenü: `Windows PowerShell` und `Windows PowerShell (x86)`. Der x86-Eintrag wird als 32-Bit-Prozess ausgeführt und löst diesen Fehler auch auf einer 64-Bit-Maschine aus. Um zu überprüfen, welcher Fall vorliegt, führen Sie dies im gleichen Fenster aus, das den Fehler verursacht hat:

552 

553```powershell theme={null}

554[Environment]::Is64BitOperatingSystem

555```

556 

557Wenn dies `True` ausgibt, ist Ihr Betriebssystem in Ordnung. Schließen Sie das Fenster, öffnen Sie `Windows PowerShell` ohne das x86-Suffix und führen Sie den Installationsbefehl erneut aus.

558 

559Wenn dies `False` ausgibt, befinden Sie sich auf einer 32-Bit-Edition von Windows. Claude Code benötigt ein 64-Bit-Betriebssystem. Siehe die [Systemanforderungen](/de/setup#system-requirements).

560 

561### Linux musl oder glibc Binärvarianten-Nichtübereinstimmung

562 

563Wenn Sie nach der Installation Fehler über fehlende gemeinsame Bibliotheken wie `libstdc++.so.6` oder `libgcc_s.so.1` sehen, hat das Installationsprogramm möglicherweise die falsche Binärvariante für Ihr System heruntergeladen.

564 

565```text theme={null}

566Error loading shared library libstdc++.so.6: No such file or directory

567```

568 

569Dies kann auf glibc-basierten Systemen geschehen, auf denen musl-Cross-Compilation-Pakete installiert sind, was das Installationsprogramm dazu veranlasst, das System fälschlicherweise als musl zu erkennen.

570 

571**Lösungen:**

572 

5731. **Überprüfen Sie, welche libc Ihr System verwendet**:

574 ```bash theme={null}

575 ldd --version 2>&1 | head -1

576 ```

577 Die Ausgabe, die `GNU libc` oder `GLIBC` erwähnt, bedeutet glibc. Die Ausgabe, die `musl` erwähnt, bedeutet musl.

578 

5792. **Wenn Sie auf glibc sind, aber die musl-Binärdatei erhalten haben**, entfernen Sie die Installation und installieren Sie erneut. Sie können die richtige Binärdatei auch manuell mit dem Manifest unter `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json` herunterladen. Melden Sie ein [GitHub-Problem](https://github.com/anthropics/claude-code/issues) mit der Ausgabe von `ldd --version` und `ls /lib/libc.musl*`.

580 

5813. **Wenn Sie sich tatsächlich auf musl befinden**, wie Alpine Linux, installieren Sie die erforderlichen Pakete:

582 ```bash theme={null}

583 apk add libgcc libstdc++ ripgrep

584 ```

585 

586### `Illegal instruction`

587 

588Wenn das Ausführen von `claude` oder dem Installationsprogramm `Illegal instruction` ausgibt, verwendet die native Binärdatei CPU-Befehle, die Ihr Prozessor nicht unterstützt. Es gibt zwei unterschiedliche Ursachen.

589 

590**Architektur-Nichtübereinstimmung.** Das Installationsprogramm hat die falsche Binärdatei heruntergeladen, zum Beispiel x86 auf einem ARM-Server. Überprüfen Sie mit `uname -m` auf macOS oder Linux oder `$env:PROCESSOR_ARCHITECTURE` in PowerShell. Wenn das Ergebnis nicht mit der Binärdatei übereinstimmt, die Sie erhalten haben, [melden Sie ein GitHub-Problem](https://github.com/anthropics/claude-code/issues) mit der Ausgabe.

591 

592**Fehlender AVX-Befehlssatz.** Wenn Ihre Architektur korrekt ist, aber Sie immer noch `Illegal instruction` sehen, fehlt Ihrer CPU wahrscheinlich AVX oder ein anderer Befehl, den die Binärdatei benötigt. Dies betrifft ungefähr Intel- und AMD-Prozessoren vor 2013 und virtuelle Maschinen, bei denen der Hypervisor AVX nicht an den Gast durchleitet.

593 

594Auf einem VPS oder einer VM führen Sie `grep -m1 -ow avx /proc/cpuinfo` aus; ein leeres Ergebnis bedeutet, dass AVX für den Gast nicht verfügbar ist.

595 

596Es gibt keine native-binary Umgehung; verfolgen Sie [Problem #50384](https://github.com/anthropics/claude-code/issues/50384) für den Status und geben Sie Ihr CPU-Modell von `grep -m1 "model name" /proc/cpuinfo` unter Linux oder `sysctl -n machdep.cpu.brand_string` auf macOS an, wenn Sie es melden.

597 

598Alternative Installationsmethoden laden die gleiche native Binärdatei herunter und werden keine der beiden Ursachen beheben.

599 

600### `dyld: cannot load` auf macOS

601 

602Wenn Sie während der Installation `dyld: cannot load`, `dyld: Symbol not found` oder `Abort trap: 6` sehen, ist die Binärdatei mit Ihrer macOS-Version oder Hardware nicht kompatibel.

603 

604```text theme={null}

605dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)

606Abort trap: 6

607```

608 

609Ein `Symbol not found` Fehler, der auf `libicucore` verweist, zeigt auch an, dass Ihre macOS-Version älter ist als die Binärdatei unterstützt:

610 

611```text theme={null}

612dyld: Symbol not found: _ubrk_clone

613 Referenced from: claude-darwin-x64 (which was built for Mac OS X 13.0)

614 Expected in: /usr/lib/libicucore.A.dylib

615```

616 

617**Lösungen:**

618 

6191. **Überprüfen Sie Ihre macOS-Version**: Claude Code benötigt macOS 13.0 oder später. Öffnen Sie das Apple-Menü und wählen Sie „Über diesen Mac", um Ihre Version zu überprüfen.

620 

6212. **Aktualisieren Sie macOS**, wenn Sie eine ältere Version verwenden. Die Binärdatei verwendet Befehle und Systembibliotheken, die ältere macOS-Versionen nicht unterstützen. Alternative Installationsmethoden wie Homebrew laden die gleiche Binärdatei herunter und werden diesen Fehler nicht beheben.

622 

623### `Exec format error` auf WSL1

624 

625Wenn das Ausführen von `claude` in WSL `cannot execute binary file: Exec format error` ausgibt, befinden Sie sich auf WSL1 und treffen auf eine bekannte native-binary Regression, die in [Problem #38788](https://github.com/anthropics/claude-code/issues/38788) verfolgt wird. Die Programm-Header der Binärdatei haben sich auf eine Weise geändert, die der WSL1-Loader nicht verarbeiten kann.

626 

627Die sauberste Behebung ist die Konvertierung Ihrer Distribution zu WSL2 von PowerShell:

628 

629```powershell theme={null}

630wsl --set-version <DistroName> 2

631```

632 

633Wenn Sie auf WSL1 bleiben müssen, rufen Sie die Binärdatei über den dynamischen Linker auf. Fügen Sie diese Funktion zu `~/.bashrc` in WSL hinzu, ersetzen Sie den Pfad, wenn sich Ihr Home-Verzeichnis unterscheidet:

634 

635```bash theme={null}

636claude() {

637 /lib64/ld-linux-x86-64.so.2 "$(readlink -f "$HOME/.local/bin/claude")" "$@"

638}

639```

640 

641Führen Sie dann `source ~/.bashrc` aus und versuchen Sie `claude` erneut.

642 

643### npm-Installationsfehler in WSL

644 

645Diese Probleme gelten, wenn Sie Claude Code mit `npm install -g` in WSL installiert haben. Wenn Sie das [native Installationsprogramm](/de/setup) verwendet haben, überspringen Sie diesen Abschnitt.

646 

647**Betriebssystem- oder Plattformerkennung Probleme.** Wenn npm während der Installation einen Plattform-Nichtübereinstimmung meldet, verwendet WSL wahrscheinlich das Windows `npm`. Führen Sie zuerst `npm config set os linux` aus, dann installieren Sie mit `npm install -g @anthropic-ai/claude-code --force`. Verwenden Sie nicht `sudo`.

648 

649**`exec: node: not found` beim Ausführen von `claude`.** Ihre WSL-Umgebung verwendet wahrscheinlich die Windows-Installation von Node.js. Bestätigen Sie mit `which npm` und `which node`: Pfade, die mit `/mnt/c/` beginnen, sind Windows-Binärdateien, während Linux-Pfade mit `/usr/` beginnen. Um dies zu beheben, installieren Sie Node über den Paketmanager Ihrer Linux-Distribution oder über [`nvm`](https://github.com/nvm-sh/nvm).

650 

651**nvm Versionskonflikte.** Wenn Sie nvm sowohl in WSL als auch in Windows installiert haben, kann das Wechseln von Node-Versionen in WSL fehlschlagen, da WSL standardmäßig den Windows-PATH importiert und das Windows-nvm Priorität hat. Die häufigste Ursache ist, dass nvm nicht in Ihrer Shell geladen wird. Fügen Sie den nvm-Loader zu `~/.bashrc` oder `~/.zshrc` hinzu:

652 

653```bash theme={null}

654export NVM_DIR="$HOME/.nvm"

655[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

656[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

657```

658 

659Oder laden Sie es in Ihrer aktuellen Sitzung:

660 

661```bash theme={null}

662source ~/.nvm/nvm.sh

663```

664 

665Wenn nvm geladen ist, aber Windows-Pfade immer noch Priorität haben, stellen Sie Ihren Linux-Node-Pfad explizit voran:

666 

667```bash theme={null}

668export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

669```

670 

671<Warning>

672 Vermeiden Sie das Deaktivieren des Windows-PATH-Imports über `appendWindowsPath = false`, da dies die Möglichkeit bricht, Windows-Ausführbare aus WSL aufzurufen. Vermeiden Sie auch das Deinstallieren von Node.js von Windows, wenn Sie es für Windows-Entwicklung verwenden.

673</Warning>

674 

675### Berechtigungsfehler während der Installation

676 

677Wenn das native Installationsprogramm mit Berechtigungsfehlern fehlschlägt, ist das Zielverzeichnis möglicherweise nicht beschreibbar. Siehe [Überprüfen Sie Verzeichnisberechtigungen](#check-directory-permissions).

678 

679Wenn Sie zuvor mit npm installiert haben und npm-spezifische Berechtigungsfehler erhalten, wechseln Sie zum nativen Installationsprogramm:

680 

681```bash theme={null}

682curl -fsSL https://claude.ai/install.sh | bash

683```

684 

685### Native Binärdatei nicht gefunden nach npm-Installation

686 

687Das `@anthropic-ai/claude-code` npm-Paket zieht die native Binärdatei durch eine pro-Plattform optionale Abhängigkeit wie `@anthropic-ai/claude-code-darwin-arm64` ein. Wenn das Ausführen von `claude` nach der Installation `Could not find native binary package "@anthropic-ai/claude-code-<platform>"` ausgibt, überprüfen Sie die folgenden Ursachen:

688 

689* **Optionale Abhängigkeiten sind deaktiviert.** Entfernen Sie `--omit=optional` aus Ihrem npm-Installationsbefehl, `--no-optional` von pnpm oder `--ignore-optional` von yarn, und überprüfen Sie, dass `.npmrc` nicht `optional=false` setzt. Dann installieren Sie erneut. Die native Binärdatei wird nur als optionale Abhängigkeit bereitgestellt, daher gibt es keinen JavaScript-Fallback, wenn sie übersprungen wird.

690* **Nicht unterstützte Plattform.** Vorkompilierte Binärdateien werden für `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64` und `win32-arm64` veröffentlicht. Claude Code liefert keine Binärdatei für andere Plattformen; siehe die [Systemanforderungen](/de/setup#system-requirements).

691* **Unternehmens-npm-Spiegel fehlen die Plattform-Pakete.** Stellen Sie sicher, dass Ihr Registry alle acht `@anthropic-ai/claude-code-*` Plattform-Pakete zusätzlich zum Meta-Paket spiegelt.

692 

693Die Installation mit `--ignore-scripts` löst diesen Fehler nicht aus. Der Postinstall-Schritt, der die Binärdatei verknüpft, wird übersprungen, daher fällt Claude Code auf einen Wrapper zurück, der die Plattform-Binärdatei bei jedem Start findet und startet. Dies funktioniert, aber startet langsamer; installieren Sie mit aktivierten Skripten für direkte Ausführung erneut.

694 

695## Anmeldung und Authentifizierung

696 

697Diese Abschnitte behandeln Anmeldungsfehler, OAuth-Fehler und Token-Probleme.

698 

699### Setzen Sie Ihre Anmeldung zurück

700 

701Wenn die Anmeldung fehlschlägt und die Ursache nicht offensichtlich ist, löst eine saubere Neuer-Authentifizierung die meisten Fälle:

702 

7031. Führen Sie `/logout` aus, um sich vollständig abzumelden

7042. Schließen Sie Claude Code

7053. Starten Sie mit `claude` neu und schließen Sie den Authentifizierungsprozess ab

706 

707Wenn der Browser während der Anmeldung nicht automatisch geöffnet wird, drücken Sie `c`, um die OAuth-URL in Ihre Zwischenablage zu kopieren, und fügen Sie sie dann manuell in einen Browser ein. Dies funktioniert auch, wenn die URL in einem schmalen oder SSH-Terminal über mehrere Zeilen verläuft und nicht direkt angeklickt werden kann.

708 

709### OAuth-Fehler: Ungültiger Code

710 

711Wenn Sie `OAuth error: Invalid code. Please make sure the full code was copied` sehen, ist der Anmeldecode abgelaufen oder wurde beim Kopieren und Einfügen gekürzt.

712 

713**Lösungen:**

714 

715* Drücken Sie Enter, um zu wiederholen und die Anmeldung schnell nach dem Öffnen des Browsers abzuschließen

716* Geben Sie `c` ein, um die vollständige URL zu kopieren, wenn der Browser nicht automatisch geöffnet wird

717* Wenn Sie eine Remote-/SSH-Sitzung verwenden, kann der Browser auf der falschen Maschine geöffnet werden. Kopieren Sie die im Terminal angezeigte URL und öffnen Sie sie stattdessen in Ihrem lokalen Browser.

718 

719### 403 Forbidden nach der Anmeldung

720 

721Wenn Sie `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` nach der Anmeldung sehen:

722 

723* **Claude Pro/Max-Benutzer**: Überprüfen Sie, dass Ihr Abonnement unter [claude.ai/settings](https://claude.ai/settings) aktiv ist

724* **Anthropic Console-Benutzer**: Bestätigen Sie, dass Ihr Konto die Rolle „Claude Code" oder „Developer" hat. Admins weisen dies in der Anthropic Console unter Einstellungen → Mitglieder zu.

725* **Hinter einem Proxy**: Unternehmens-Proxys können API-Anfragen beeinträchtigen. Siehe [Netzwerkkonfiguration](/de/network-config) für Proxy-Einrichtung.

726 

727### Diese Organisation wurde mit einem aktiven Abonnement deaktiviert

728 

729Wenn Sie `API Error: 400 ... "This organization has been disabled"` sehen, obwohl Sie ein aktives Claude-Abonnement haben, überschreibt eine `ANTHROPIC_API_KEY` Umgebungsvariable Ihr Abonnement. Dies geschieht häufig, wenn ein alter API-Schlüssel von einem früheren Arbeitgeber oder Projekt noch in Ihrem Shell-Profil gesetzt ist.

730 

731Wenn `ANTHROPIC_API_KEY` vorhanden ist und Sie es genehmigt haben, verwendet Claude Code diesen Schlüssel statt der OAuth-Anmeldedaten Ihres Abonnements. Im nicht-interaktiven Modus mit dem `-p` Flag wird der Schlüssel immer verwendet, wenn er vorhanden ist. Siehe [Authentifizierungs-Priorität](/de/authentication#authentication-precedence) für die vollständige Auflösungsreihenfolge.

732 

733Um stattdessen Ihr Abonnement zu verwenden, heben Sie die Umgebungsvariable auf und entfernen Sie sie aus Ihrem Shell-Profil:

734 

735```bash theme={null}

736unset ANTHROPIC_API_KEY

737claude

738```

739 

740Überprüfen Sie `~/.zshrc`, `~/.bashrc` oder `~/.profile` auf `export ANTHROPIC_API_KEY=...` Zeilen und entfernen Sie sie, um die Änderung dauerhaft zu machen. Unter Windows überprüfen Sie Ihr PowerShell-Profil unter `$PROFILE` und Ihre Benutzer-Umgebungsvariablen auf `ANTHROPIC_API_KEY`. Führen Sie `/status` in Claude Code aus, um zu bestätigen, welche Authentifizierungsmethode aktiv ist.

741 

742### OAuth-Anmeldung schlägt in WSL2, SSH oder Containern fehl

743 

744Wenn Claude Code in WSL2, auf einem Remote-Rechner über SSH oder in einem Container ausgeführt wird, öffnet sich der Browser normalerweise auf einem anderen Host und seine Umleitung kann Claude Code's lokalen Callback-Server nicht erreichen. Nachdem Sie sich anmelden, zeigt der Browser einen Anmeldecode statt einer automatischen Umleitung an. Fügen Sie diesen Code in das Terminal bei der Aufforderung `Paste code here if prompted` ein, um die Anmeldung abzuschließen.

745 

746Wenn der Browser überhaupt nicht aus WSL2 geöffnet wird, setzen Sie die `BROWSER` Umgebungsvariable auf Ihren Windows-Browser-Pfad:

747 

748```bash theme={null}

749export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

750claude

751```

752 

753Alternativ drücken Sie `c` bei der interaktiven Anmeldungsaufforderung, um die OAuth-URL zu kopieren, oder kopieren Sie die URL, die `claude auth login` ausgibt, und öffnen Sie sie in einem Browser auf Ihrem lokalen Rechner.

754 

755Wenn das Einfügen des Codes in die interaktive Aufforderung nichts bewirkt, erreicht die Paste-Bindung Ihres Terminals wahrscheinlich nicht das Eingabefeld. Versuchen Sie die alternative Paste-Verknüpfung Ihres Terminals, oft Rechtsklick oder Shift+Insert in Windows Terminal, oder verwenden Sie stattdessen `claude auth login`, das den eingefügten Code aus der Standardeingabe liest:

756 

757```bash theme={null}

758claude auth login

759```

760 

761Dieser Fallback gilt auch auf nativem Windows oder jedem Terminal, bei dem das Einfügen in die interaktive Aufforderung fehlschlägt.

762 

763### Nicht angemeldet oder Token abgelaufen

764 

765Wenn Claude Code Sie nach einer Sitzung erneut zur Anmeldung auffordert, ist Ihr OAuth-Token möglicherweise abgelaufen.

766 

767Führen Sie `/login` aus, um sich erneut zu authentifizieren. Wenn dies häufig geschieht, überprüfen Sie, dass Ihre Systemuhr genau ist, da die Token-Validierung von korrekten Zeitstempeln abhängt.

768 

769Auf macOS kann die Anmeldung auch fehlschlagen, wenn der Keychain gesperrt ist oder sein Passwort nicht mit Ihrem Kontopasswort synchronisiert ist, was Claude Code daran hindert, Anmeldedaten zu speichern. Führen Sie `claude doctor` aus, um den Keychain-Zugriff zu überprüfen. Um den Keychain manuell zu entsperren, führen Sie `security unlock-keychain ~/Library/Keychains/login.keychain-db` aus. Wenn das Entsperren nicht hilft, öffnen Sie Keychain Access, wählen Sie den `login` Keychain und wählen Sie Bearbeiten > Passwort für Keychain „login" ändern, um es mit Ihrem Kontopasswort zu resynchronisieren.

770 

771### Bedrock-, Vertex- oder Foundry-Anmeldedaten werden nicht geladen

772 

773Wenn Sie Claude Code für die Verwendung eines Cloud-Anbieters konfiguriert haben und `Could not load credentials from any providers` auf Bedrock, `Could not load the default credentials` auf Vertex oder `ChainedTokenCredential authentication failed` auf Foundry sehen, ist Ihre Cloud-Anbieter-CLI wahrscheinlich nicht in der aktuellen Shell authentifiziert.

774 

775Für Bedrock bestätigen Sie, dass Ihre AWS-Anmeldedaten gültig sind:

776 

777```bash theme={null}

778aws sts get-caller-identity

779```

780 

781Für Vertex AI bestätigen Sie, dass `ANTHROPIC_VERTEX_PROJECT_ID` und `CLOUD_ML_REGION` in Ihrer Shell gesetzt sind, dann setzen Sie Anwendungs-Standard-Anmeldedaten:

782 

783```bash theme={null}

784gcloud auth application-default login

785```

786 

787Für Microsoft Foundry bestätigen Sie, dass `ANTHROPIC_FOUNDRY_API_KEY` gesetzt ist, oder melden Sie sich mit der Azure CLI an, damit die Standard-Anmeldedaten-Kette Ihr Konto finden kann:

788 

789```bash theme={null}

790az login

791```

792 

793Wenn Anmeldedaten in Ihrem Terminal funktionieren, aber nicht in der VS Code oder JetBrains-Erweiterung, hat der IDE-Prozess wahrscheinlich Ihre Shell-Umgebung nicht geerbt. Setzen Sie die Anbieter-Umgebungsvariablen in den IDE-eigenen Einstellungen, oder starten Sie die IDE von einem Terminal aus, in dem sie bereits exportiert sind.

794 

795Siehe [Amazon Bedrock](/de/amazon-bedrock), [Google Vertex AI](/de/google-vertex-ai) oder [Microsoft Foundry](/de/microsoft-foundry) für die vollständige Anbieter-Einrichtung.

796 

797## Immer noch festgefahren

798 

799Wenn keine der obigen Lösungen Ihr Problem behebt:

800 

8011. Überprüfen Sie das [GitHub-Repository](https://github.com/anthropics/claude-code/issues) auf bekannte Probleme, oder öffnen Sie ein neues mit Ihrem Betriebssystem, dem Installationsbefehl, den Sie ausgeführt haben, und der vollständigen Fehlerausgabe

8022. Wenn `claude --version` funktioniert, aber etwas anderes ist falsch, führen Sie `claude doctor` aus, um einen automatisierten Diagnosebericht zu erhalten

8033. Wenn Sie eine Sitzung starten können, verwenden Sie `/feedback` in Claude Code, um das Problem zu melden

vs-code.md +3 −2

Details

293 293 

294Um stattdessen eine Terminal-Sitzung zu starten, verwenden Sie den CLI-Handler `claude-cli://`. Siehe [Sitzungen von Links aus starten](/de/deep-links).294Um stattdessen eine Terminal-Sitzung zu starten, verwenden Sie den CLI-Handler `claude-cli://`. Siehe [Sitzungen von Links aus starten](/de/deep-links).

295 295 

296## Konfigurieren Sie Einstellungen296## Einstellungen konfigurieren

297 297 

298Die Erweiterung hat zwei Arten von Einstellungen:298Die Erweiterung hat zwei Arten von Einstellungen:

299 299 


307### Erweiterungseinstellungen307### Erweiterungseinstellungen

308 308 

309| Einstellung | Standard | Beschreibung |309| Einstellung | Standard | Beschreibung |

310| --------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |310| ----------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `useTerminal` | `false` | Starten Sie Claude im Terminal-Modus statt im grafischen Panel |311| `useTerminal` | `false` | Starten Sie Claude im Terminal-Modus statt im grafischen Panel |

312| `initialPermissionMode` | `default` | Steuert Genehmigungsaufforderungen für neue Gespräche: `default`, `plan`, `acceptEdits` oder `bypassPermissions`. Siehe [Genehmigungsmodi](/de/permission-modes). |312| `initialPermissionMode` | `default` | Steuert Genehmigungsaufforderungen für neue Gespräche: `default`, `plan`, `acceptEdits` oder `bypassPermissions`. Siehe [Genehmigungsmodi](/de/permission-modes). |

313| `preferredLocation` | `panel` | Wo Claude öffnet: `sidebar` (rechts) oder `panel` (neue Registerkarte) |313| `preferredLocation` | `panel` | Wo Claude öffnet: `sidebar` (rechts) oder `panel` (neue Registerkarte) |

314| `autosave` | `true` | Speichern Sie Dateien automatisch, bevor Claude sie liest oder schreibt |314| `autosave` | `true` | Speichern Sie Dateien automatisch, bevor Claude sie liest oder schreibt |

315| `useCtrlEnterToSend` | `false` | Verwenden Sie Ctrl/Cmd+Enter statt Enter, um Eingabeaufforderungen zu senden |315| `useCtrlEnterToSend` | `false` | Verwenden Sie Ctrl/Cmd+Enter statt Enter, um Eingabeaufforderungen zu senden |

316| `enableNewConversationShortcut` | `false` | Aktivieren Sie Cmd/Ctrl+N, um ein neues Gespräch zu starten |316| `enableNewConversationShortcut` | `false` | Aktivieren Sie Cmd/Ctrl+N, um ein neues Gespräch zu starten |

317| `enableReopenClosedSessionShortcut` | `true` | Verwenden Sie Cmd/Ctrl+Shift+T, um die zuletzt geschlossene Claude-Sitzungsregisterkarte erneut zu öffnen. Wenn die zuletzt geschlossene Registerkarte keine Claude-Sitzung war, führt die Tastenkombination stattdessen den normalen Befehl zum erneuten Öffnen des geschlossenen Editors von VS Code aus. |

317| `hideOnboarding` | `false` | Blenden Sie die Onboarding-Checkliste aus (Abschlusskappe-Symbol) |318| `hideOnboarding` | `false` | Blenden Sie die Onboarding-Checkliste aus (Abschlusskappe-Symbol) |

318| `respectGitIgnore` | `true` | Schließen Sie .gitignore-Muster aus Dateisuchvorgängen aus |319| `respectGitIgnore` | `true` | Schließen Sie .gitignore-Muster aus Dateisuchvorgängen aus |

319| `usePythonEnvironment` | `true` | Aktivieren Sie die Python-Umgebung des Arbeitsbereichs beim Ausführen von Claude. Erfordert die Python-Erweiterung. |320| `usePythonEnvironment` | `true` | Aktivieren Sie die Python-Umgebung des Arbeitsbereichs beim Ausführen von Claude. Erfordert die Python-Erweiterung. |