> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool-Aufrufe aus Code mit Code Mode ausführen

> Probieren Sie Code Mode aus, eine experimentelle Funktion, bei der Claude JavaScript schreibt, das mehrere Tool-Aufrufe in einem Schritt ausführt.

Code Mode ändert, wie Claude seine [Tools](https://code.claude.com/docs/de/tools-reference.md) verwendet. Ohne Code Mode fordert Claude Tool-Aufrufe wie Bash, Read oder Edit direkt an und liest jedes Ergebnis, bevor es entscheidet, was als Nächstes zu tun ist. Mit Code Mode schreibt Claude ein Stück JavaScript, das die Tool-Aufrufe ausführt, und Claude Code führt diesen Code in Ihrer Sitzung aus.

> [!NOTE]
>
> Code Mode ist experimentell und standardmäßig ausgeschaltet. Die Funktion kann sich in jeder Version ändern oder entfernt werden. Um Feedback zu geben, führen Sie `/feedback` aus.

## So funktioniert Code Mode

In einer Code-Mode-Sitzung beschreiben Sie Ihre Aufgabe weiterhin in einem Prompt, und Claude schreibt JavaScript, um sie auszuführen. Ein Stück Code kann Befehle parallel ausführen, ein Ergebnis im nächsten Aufruf verwenden und den Teil der Ausgabe zurückgeben, den Claude lesen muss.

Wenn Sie Claude beispielsweise bitten, ein Limit für Wiederholungsversuche zu erhöhen, schreibt Claude möglicherweise diesen Code, um die Datei zu finden, sie zu bearbeiten und die Tests auszuführen. Die letzte Zeile gibt den Pfad der Datei und die Testausgabe an Claude zurück:

```javascript theme={null}
const files = await $`rg -l "function retryPolicy" src`.text();
const target = files.trim().split("\n")[0];
await edit(target, "maxAttempts: 3", "maxAttempts: 5");
({ edited: target, tests: $`npm test -- retryPolicy`.nothrow() });
```

In der Konversation sehen Sie die Tool-Aufrufe, etwa den Diff der Bearbeitung, aber nicht den Code. Um den Code zu lesen, drücken Sie `Ctrl+O`, um den [Transkript-Viewer](https://code.claude.com/docs/de/interactive-mode.md#transcript-viewer) zu öffnen. Jedes Stück Code erscheint dort als eingeklappte **Code**-Zeile mit einem Hinweis, wie Sie sie ausklappen.

### Wann Sie Code Mode verwenden sollten

Probieren Sie Code Mode bei Aufgaben aus, die viele zusammenhängende Tool-Aufrufe erfordern, etwa:

* Eine Änderung, die sich über viele Dateien wiederholt
* Eine Suche, deren Ergebnisse gefiltert werden müssen, bevor Claude sie liest
* Mehrere unabhängige Befehle, die gleichzeitig laufen können

### Einschränkungen von Code Mode

Bevor Sie Code Mode einschalten, prüfen Sie, ob Sie diese Einschränkungen akzeptieren können:

* **Fortsetzen**: Sie können eine Code-Mode-Sitzung nur im Terminal fortsetzen, und nur mit eingeschaltetem Code Mode
* **Auto-Modus**: Der Klassifikator des Auto-Modus [prüft den Code, nicht jeden einzelnen Tool-Aufruf](#permission-checks)
* **Lang laufender Code**: Außer wenn [Code im Hintergrund laufen kann](#long-running-code), warten Sie, bis er fertig ist, und er wird nach zehn Minuten beendet
* **Hooks**: Sie sehen möglicherweise [abgelehnte Tool-Aufrufe](#tool-call-refused-by-a-hook), wenn ein `PreToolUse`-Hook nicht ausgeführt werden kann oder in einen Timeout läuft, und [blockierte Code-Ausgaben](#code-output-withheld-by-a-hook) durch einen `UserPromptSubmit`-Hook
* **Nicht verfügbare Funktionen**: Sie können [Remote Control](https://code.claude.com/docs/de/remote-control.md), [Claude in Chrome](https://code.claude.com/docs/de/chrome.md) und [Computer Use](https://code.claude.com/docs/de/computer-use.md) nicht verwenden
* **Verschieben der Sitzung**: Sie können die Sitzung nicht in die Desktop-App verschieben oder in eine [Hintergrundsitzung](https://code.claude.com/docs/de/agent-view.md) umwandeln, und `/fork` kann keine Hintergrundkopie starten

## Voraussetzungen

* **Version**: Claude Code v2.1.323 oder neuer, auf einem der beiden [Release-Kanäle](https://code.claude.com/docs/de/setup.md#configure-release-channel). Eine ältere Version startet ohne Code Mode, mit oder ohne den Grund `it isn't open to your account yet`
* **Konto**: ein Claude-Abonnement oder ein Console-Konto. Sie können Code Mode nicht über ein Gateway, Amazon Bedrock, Claude Platform on AWS, Google Clouds Agent Platform oder Microsoft Foundry verwenden
* **Organisation**: Ihre Organisation verwendet weder die [HIPAA-Konfiguration](https://code.claude.com/docs/de/hipaa-setup.md) noch [Zero Data Retention](https://code.claude.com/docs/de/zero-data-retention.md)
* **Modell**: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 oder Fable 5.2
* **Oberfläche**: eine interaktive `claude`-Sitzung in einem Terminal. Code Mode funktioniert nicht mit `-p`, dem Agent SDK, dem VS Code-Panel, der Desktop-App oder Cloud-Sitzungen
* **Installation**: der [native Build](https://code.claude.com/docs/de/setup.md) von Claude Code
* **Windows**: [Git for Windows](https://git-scm.com/downloads/win) ist installiert

Sie können Code Mode außerdem nicht starten, wenn bestimmte Einstellungen aktiv sind, etwa ein API-Key-Helper, Agent-Teams, OpenTelemetry-Export oder `DISABLE_TELEMETRY`. Die jeweilige Lösung finden Sie unter [Code Mode startet nicht](#code-mode-doesnt-start).

## Code Mode ausprobieren

Schalten Sie Code Mode ein, geben Sie Claude eine Aufgabe und sehen Sie sich den Code an, den Claude geschrieben hat.

**1. Version prüfen**

Führen Sie `claude --version` aus. Wenn die Version älter als v2.1.323 ist, führen Sie `claude update` aus. Wenn Sie auf dem Kanal `stable` sind und das Update v2.1.323 nicht erreicht, warten Sie, bis `stable` aufholt, oder [wechseln Sie zu `latest`](https://code.claude.com/docs/de/setup#configure-release-channel).

**2. Claude Code mit eingeschaltetem Code Mode starten**

Setzen Sie die Umgebungsvariable [`CLAUDE_CODE_EXPERIMENTAL_CODE_MODE`](https://code.claude.com/docs/de/env-vars#variables) auf `1`. Um Code Mode auszuprobieren, setzen Sie sie in Ihrer Shell. Um Code Mode für jede neue Sitzung einzuschalten, setzen Sie sie in Ihren Benutzereinstellungen.

> [tab] macOS, Linux, WSL
>
> ```bash theme={null}
> CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude
> ```

> [tab] Windows PowerShell
>
> ```powershell theme={null}
> $env:CLAUDE_CODE_EXPERIMENTAL_CODE_MODE = "1"
> claude
> ```

> [tab] settings.json
>
> Speichern Sie diesen `env`-Block in `~/.claude/settings.json` und starten Sie `claude`:
>
> ```json theme={null}
> {
>   "env": {
>     "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "1"
>   }
> }
> ```
>
> Claude Code [ignoriert diese Variable in den Einstellungsdateien eines Projekts](https://code.claude.com/docs/de/settings-reference.md#variables-claude-code-ignores-in-env), sodass ein Repository, das Sie klonen, Code Mode nicht für Sie einschalten kann.

**3. Bestätigen, dass Sie Code Mode verwenden möchten**

Claude Code bittet Sie vor Ihrer ersten Code-Mode-Sitzung um Bestätigung. Wählen Sie **Yes, turn on Code Mode**. Claude Code startet neu und zeigt diese Zeile im oberen Bereich der Sitzung an:

```text theme={null}
Code Mode (experimental) is on · this session can be resumed only with Code Mode on
```

Wenn Sie eine andere Zeile oder gar keine sehen, lesen Sie [Code Mode startet nicht](#code-mode-doesnt-start).

**4. Claude eine Aufgabe mit vielen Tool-Aufrufen geben**

Senden Sie in einem Projekt, das Sie kennen, einen Prompt wie diesen:

```text theme={null}
Read every Markdown file in this project and list the links that point to local files that don't exist.
```

**5. Den von Claude geschriebenen Code lesen**

Drücken Sie `Ctrl+O` und klappen Sie eine **Code**-Zeile aus, um das JavaScript hinter den Tool-Aufrufen zu sehen. Drücken Sie erneut `Ctrl+O`, um zur Konversation zurückzukehren.

> [!WARNING]
>
> Um eine Code-Mode-Sitzung später fortzusetzen, lassen Sie `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` auf `1` gesetzt, wenn Sie `claude --continue` oder `claude --resume` ausführen. Bei ausgeschaltetem Code Mode verweigert Claude Code das Fortsetzen der Sitzung. Sitzungen, die Sie ohne Code Mode gestartet haben, werden ohne Code Mode fortgesetzt, auch wenn die Variable gesetzt ist.

### Code Mode ausschalten

Entfernen Sie `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` aus Ihrer Shell und aus `~/.claude/settings.json` und starten Sie dann eine neue Sitzung. Sie können die Variable auch beibehalten und ihren Wert an einer der beiden Stellen auf `0` ändern. Mit einer `0` an einer Stelle bleibt Code Mode ausgeschaltet, auch wenn Sie an der anderen `1` setzen.

### Code Mode für Ihre Organisation blockieren

Fügen Sie `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` mit dem Wert `0` zu Ihren [verwalteten Einstellungen](https://code.claude.com/docs/de/managed-settings.md) hinzu, damit niemand in Ihrer Organisation Code Mode verwenden kann:

```json theme={null}
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "0"
  }
}
```

Benutzer, die sich in einer Code-Mode-Sitzung befinden, bleiben darin, bis sie Claude Code beenden oder neu starten. Danach starten Ihre Benutzer ohne Code Mode und können ihre Code-Mode-Sitzungen nicht fortsetzen, solange die `0` gesetzt ist. Sie können Code Mode für Ihre Benutzer nicht über verwaltete Einstellungen einschalten.

## Berechtigungen und lang laufender Code

Ihr Berechtigungsmodus bestimmt, wie Claudes Code geprüft wird und ob Sie mit Claude sprechen können, während der Code läuft.

### Berechtigungsprüfungen

Jeder Tool-Aufruf, den Claudes Code ausführt, durchläuft Ihre `deny`- und `ask`-[Berechtigungsregeln](https://code.claude.com/docs/de/permissions.md) sowie Ihre [`PreToolUse`-Hooks](https://code.claude.com/docs/de/hooks#pretooluse). Sie müssen keine Regel und keinen Matcher für ein Tool wie `Bash` ändern. Über Regeln und Hooks hinaus prüft im Auto-Modus ein Klassifikator den Code, und in den Modi, die nachfragen, beantworten Sie Berechtigungsabfragen:

* **[Auto-Modus](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode)**: Der Klassifikator prüft jedes Stück Code, bevor es ausgeführt wird, nicht jeden einzelnen Tool-Aufruf. Er sieht keine zur Laufzeit berechneten Werte, etwa einen Pfad aus einer Suchausgabe. Behalten Sie daher Regeln oder Hooks für Aufrufe bei, die Sie kontrollieren müssen. Sie können weiterhin [Abfragen erhalten, wenn neuer Code startet, während früherer Code läuft](#permission-prompt-with-a-countdown)
* **Andere [Berechtigungsmodi](https://code.claude.com/docs/de/permission-modes.md)**: Der Code startet ohne Prüfung, und Sie werden bei jedem Tool-Aufruf gefragt, bei dem Sie in diesem Modus gefragt würden

Um den Code selbst zu prüfen, schreiben Sie einen `PreToolUse`-Hook, der auf `REPL` passt, das Tool, das Claudes Code ausführt, und lesen Sie das JavaScript aus `tool_input.code`.

> [!WARNING]
>
> Bash-Regeln gleichen Befehlstext ab, sodass Claude einen abgelehnten Befehl [in einer Form ausführen kann, auf die die Regel nicht passt](https://code.claude.com/docs/de/permissions.md#bash-rule-limits), mit oder ohne Code Mode. Für Einschränkungen, die nicht vom Befehlstext abhängen, siehe [Sandboxing](https://code.claude.com/docs/de/sandboxing.md).

### Lang laufender Code

Während Code einen langen Build oder Test ausführt, wartet Claude entweder darauf oder lässt ihn im Hintergrund weiterlaufen:

* **Warten**: Claude antwortet, nachdem der Code fertig ist, und der Code wird nach zehn Minuten beendet, einschließlich der Zeit, die Sie bei Berechtigungsabfragen verbringen
* **Hintergrund**: Sie können weiter mit Claude sprechen, und der Code kann bis zu zwei Stunden laufen

Für Code im Hintergrund starten Sie Ihre Sitzung im Auto-Modus oder im `bypassPermissions`-Modus. Wenn Claude trotzdem wartet, prüfen Sie Ihren aktuellen Modus und wie Sie die Sitzung gestartet haben:

* **Sie haben in einen anderen Modus gewechselt**: Drücken Sie `Shift+Tab`, bis Sie wieder in dem Modus sind, in dem Sie gestartet haben
* **Sie haben in einem anderen Modus gestartet oder die Sitzung aus der Liste von `claude --resume` ausgewählt**: Wenn [der Auto-Modus für Sie verfügbar ist](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode), beenden Sie die Sitzung und führen Sie dann `claude --continue --permission-mode auto` mit eingeschaltetem Code Mode aus
* **Sie haben Tool-Namen an `--tools` übergeben**: Starten Sie erneut im Auto-Modus ohne dieses Flag

## Fehlerbehebung

### Code Mode startet nicht

`Code Mode (experimental) isn't available` im oberen Bereich der Sitzung bedeutet, dass Claude Code ohne Code Mode gestartet ist. Der Grund folgt in derselben Zeile, und `/status` zeigt ihn ebenfalls an. Suchen Sie den Grund in dieser Tabelle, nehmen Sie die Änderung vor und starten Sie eine neue Sitzung. Bei einem Grund, der nicht aufgeführt ist, prüfen Sie die [Voraussetzungen](#requirements).

| Grund enthält | Vorgehen |
| :- | :- |
| `it isn't open to your account yet` | Wenn Ihre Version älter als v2.1.323 ist, [aktualisieren Sie](#try-code-mode). Andernfalls prüfen Sie Ihre Netzwerkverbindung und starten Sie erneut. Wenn der Grund bestehen bleibt, versuchen Sie es an einem anderen Tag erneut |
| `it only works with the Anthropic API` | Entfernen Sie die Einstellungen, die Anfragen über einen Cloud-Anbieter, ein Gateway oder eine benutzerdefinierte `ANTHROPIC_BASE_URL` leiten |
| `it doesn't work with an API key helper` | Entfernen Sie `apiKeyHelper`, `ANTHROPIC_AUTH_TOKEN` sowie jeden `Authorization`- oder `X-Api-Key`-Header in `ANTHROPIC_CUSTOM_HEADERS`. Melden Sie sich dann an oder setzen Sie `ANTHROPIC_API_KEY` |
| `it only works with Opus 5.5, Sonnet 5.5 and later models` | Starten Sie mit einem [unterstützten Modell](#requirements), zum Beispiel mit `--model opus`. Haiku 5.5 und Fable 5.2 funktionieren ebenfalls |
| `it doesn't work in background jobs` | Starten Sie im Vordergrund, ohne `--remote-control` |
| `it needs settings that Claude Code downloads from Anthropic` | Entfernen Sie die Variable, die [das Abrufen von Feature-Flags ausschaltet](https://code.claude.com/docs/de/env-vars.md#features-that-need-feature-flag-fetching), etwa `DISABLE_TELEMETRY` |
| `OpenTelemetry is on` | Entfernen Sie `CLAUDE_CODE_ENABLE_TELEMETRY` und `ENABLE_BETA_TRACING_DETAILED`, wenn Sie ohne [OpenTelemetry-Export](https://code.claude.com/docs/de/monitoring-usage.md) arbeiten können |
| `it doesn't yet work with an installed mod` | Schalten Sie den [Mod](https://code.claude.com/docs/de/plugins/mods/overview.md) aus, der Tool-Aufrufe prüft |
| `it can't be used together with agent teams yet` | Entfernen Sie `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` |
| `this launch's tool options` | Starten Sie ohne `--restricted`, fügen Sie `REPL` zu `--tools` hinzu und entfernen Sie `REPL` aus `--disallowedTools` und Ihren `deny`-Regeln |
| `couldn't save your answer` | Machen Sie `~/.claude.json` beschreibbar |
| `your organization's settings don't allow it` | Fragen Sie Ihren Administrator nach der [verwalteten Einstellung](#block-code-mode-for-your-organization) |

Wenn Sie keine Zeile zu Code Mode sehen, führen Sie `claude --version` aus. Wenn Ihre Version älter als v2.1.323 ist, aktualisieren Sie. Prüfen Sie dann, ob `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` in Ihrer Shell oder Ihren Benutzereinstellungen auf `1` gesetzt ist, und entfernen Sie jede `0` daraus sowie aus jeder `--settings`-Datei.

### Berechtigungsabfrage mit Countdown

Wenn Claude im Auto-Modus weiteren Code startet, während früherer Code noch läuft, verliert der frühere Code seine Prüfung durch den Klassifikator. Claude Code fragt Sie dann nach den verbleibenden Aufrufen des früheren Codes, die eine Prüfung benötigen würden. Wenn keine IDE verbunden ist, zeigt die Abfrage einen Countdown an:

```text theme={null}
Claude Code will automatically block this request in 1:59, to avoid holding up an unattended session
```

Antworten Sie, bevor der Countdown abläuft. Andernfalls wird dieser Aufruf abgelehnt, und spätere Aufrufe, die einen Countdown anzeigen würden, werden ohne Abfrage abgelehnt. Um die Abfragen wieder zu sehen, senden Sie Claude eine Nachricht.

### Tool-Aufruf durch einen Hook abgelehnt

Wenn Claude einen abgelehnten Tool-Aufruf meldet, fragen Sie nach dem Fehlertext. Diese Fehler bedeuten, dass ein `PreToolUse`-Hook keine Entscheidung geliefert hat, wodurch der Aufruf abgelehnt wird, auch wenn [`onFailure`](https://code.claude.com/docs/de/hooks#block-the-action-when-a-hook-fails) nicht gesetzt ist:

* **`the hook failed`**: Bei einem Aufruf aus Claudes Code konnte Ihr Hook nicht starten, wurde beendet, endete mit 126, 127 oder einem Code über 128 oder gab einen HTTP-Fehler oder eine ungültige Ausgabe zurück. Beheben Sie den Fehler im Hook
* **`the hook did not finish`**: Ihr Hook ist bei einem Aufruf aus Claudes Code in einen Timeout gelaufen, oder bei einem beliebigen anderen Tool-Aufruf, nachdem Claude in der Sitzung Code ausgeführt hat. Erhöhen Sie den [`timeout`](https://code.claude.com/docs/de/hooks#common-fields) des Hooks

Damit Aufrufe ausgeführt werden, wenn ein `command`- oder `http`-Hook fehlschlägt oder in einen Timeout läuft, setzen Sie `"onFailure": "continue"` für diesen Hook. Wenn ein `command`-Hook mit einem gewöhnlichen Code wie 1 endet, wird der Aufruf ausgeführt, außer Sie setzen `"onFailure": "block"`.

### Code-Ausgabe durch einen Hook zurückgehalten

Wenn Claude den Blockierungsgrund eines Hooks meldet, wo Sie eine Ausgabe von Claudes Code erwartet haben, prüfen Sie Ihre [`UserPromptSubmit`](https://code.claude.com/docs/de/hooks#userpromptsubmit)-Hooks. Wenn [Code im Hintergrund laufen kann](#long-running-code), werden `command`-, `http`- und `mcp_tool`-Hooks für dieses Ereignis auch bei Code-Ausgaben ausgeführt. Um die Ausgabe durchzulassen, ändern Sie den Hook so, dass er nicht blockiert, wenn `source` in seiner Eingabe `poll_event` ist.

## Verwandte Ressourcen

* [Berechtigungsmodi](https://code.claude.com/docs/de/permission-modes.md): Vergleichen Sie den Auto-Modus mit den Modi, die nachfragen
* [Hooks-Referenz](https://code.claude.com/docs/de/hooks.md): Schreiben Sie `PreToolUse`- und `UserPromptSubmit`-Hooks
* [Verwaltete Einstellungen](https://code.claude.com/docs/de/managed-settings.md): Wenden Sie eine Konfiguration in einer ganzen Organisation an
