Headless-Modus
Claude Code programmatisch ohne interaktive Benutzeroberfläche ausführen
Überblick
Der Headless-Modus ermöglicht es Ihnen, Claude Code programmatisch über Kommandozeilen-Skripte und Automatisierungstools ohne interaktive Benutzeroberfläche auszuführen.
Grundlegende Verwendung
Die primäre Kommandozeilen-Schnittstelle zu Claude Code ist der claude
-Befehl. Verwenden Sie das --print
(oder -p
) Flag, um im nicht-interaktiven Modus zu laufen und das endgültige Ergebnis auszugeben:
Konfigurationsoptionen
Das SDK nutzt alle CLI-Optionen, die in Claude Code verfügbar sind. Hier sind die wichtigsten für die SDK-Verwendung:
Flag | Beschreibung | Beispiel |
---|---|---|
--print , -p | Im nicht-interaktiven Modus ausführen | claude -p "query" |
--output-format | Ausgabeformat spezifizieren (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Eine Unterhaltung nach Session-ID fortsetzen | claude --resume abc123 |
--continue , -c | Die neueste Unterhaltung fortsetzen | claude --continue |
--verbose | Ausführliche Protokollierung aktivieren | claude --verbose |
--append-system-prompt | An System-Prompt anhängen (nur mit --print ) | claude --append-system-prompt "Custom instruction" |
--allowedTools | Leerzeichen-getrennte Liste erlaubter Tools, oder String mit komma-getrennter Liste erlaubter Tools | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Leerzeichen-getrennte Liste verweigerter Tools, oder String mit komma-getrennter Liste verweigerter Tools | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | MCP-Server aus einer JSON-Datei laden | claude --mcp-config servers.json |
--permission-prompt-tool | MCP-Tool für die Behandlung von Berechtigungs-Prompts (nur mit --print ) | claude --permission-prompt-tool mcp__auth__prompt |
Für eine vollständige Liste der CLI-Optionen und Features siehe die CLI-Referenz Dokumentation.
Multi-Turn-Unterhaltungen
Für Multi-Turn-Unterhaltungen können Sie Unterhaltungen fortsetzen oder von der neuesten Session weitermachen:
Ausgabeformate
Textausgabe (Standard)
JSON-Ausgabe
Gibt strukturierte Daten einschließlich Metadaten zurück:
Antwortformat:
Streaming JSON-Ausgabe
Streamt jede Nachricht, sobald sie empfangen wird:
Jede Unterhaltung beginnt mit einer anfänglichen init
System-Nachricht, gefolgt von einer Liste von Benutzer- und Assistenten-Nachrichten, gefolgt von einer finalen result
System-Nachricht mit Statistiken. Jede Nachricht wird als separates JSON-Objekt ausgegeben.
Eingabeformate
Texteingabe (Standard)
Streaming JSON-Eingabe
Ein Stream von Nachrichten, die über stdin
bereitgestellt werden, wobei jede Nachricht einen Benutzer-Turn darstellt. Dies ermöglicht mehrere Turns einer Unterhaltung ohne Neustart der claude
-Binärdatei und ermöglicht es, dem Modell Anleitung zu geben, während es eine Anfrage verarbeitet.
Jede Nachricht ist ein JSON ‘User message’-Objekt, das dem gleichen Format wie das Ausgabe-Nachrichtenschema folgt. Nachrichten werden im jsonl-Format formatiert, wobei jede Eingabezeile ein vollständiges JSON-Objekt ist. Streaming JSON-Eingabe erfordert -p
und --output-format stream-json
.
Agent-Integrationsbeispiele
SRE-Incident-Response-Bot
Automatisierte Sicherheitsüberprüfung
Multi-Turn-Rechtsassistent
Best Practices
-
JSON-Ausgabeformat verwenden für programmatisches Parsen von Antworten:
-
Fehler elegant behandeln - Exit-Codes und stderr prüfen:
-
Session-Management verwenden für die Aufrechterhaltung des Kontexts in Multi-Turn-Unterhaltungen
-
Timeouts berücksichtigen für langwierige Operationen:
-
Rate-Limits respektieren bei mehreren Anfragen durch Hinzufügen von Verzögerungen zwischen Aufrufen
Verwandte Ressourcen
- CLI-Verwendung und -Steuerung - Vollständige CLI-Dokumentation
- Häufige Workflows - Schritt-für-Schritt-Anleitungen für häufige Anwendungsfälle