Übersicht
Der Headless-Modus ermöglicht es Ihnen, Claude Code programmgesteuert aus Befehlszeilenskripten und Automatisierungstools ohne interaktive Benutzeroberfläche auszuführen.Grundlegende Verwendung
Die primäre Befehlszeilenschnittstelle zu Claude Code ist der Befehlclaude. Verwenden Sie das Flag --print (oder -p), um im nicht-interaktiven Modus zu laufen und das Endergebnis auszudrucken:
Konfigurationsoptionen
Der Headless-Modus nutzt alle CLI-Optionen, die in Claude Code verfügbar sind. Hier sind die wichtigsten für Automatisierung und Scripting:| Flag | Beschreibung | Beispiel |
|---|---|---|
--print, -p | Im nicht-interaktiven Modus ausführen | claude -p "query" |
--output-format | Ausgabeformat angeben (text, json, stream-json) | claude -p --output-format json |
--resume, -r | Konversation nach Sitzungs-ID fortsetzen | claude --resume abc123 |
--continue, -c | Die neueste Konversation fortsetzen | claude --continue |
--verbose | Ausführliches Logging aktivieren | claude --verbose |
--append-system-prompt | An System-Prompt anhängen (nur mit --print) | claude --append-system-prompt "Custom instruction" |
--allowedTools | Durch Leerzeichen getrennte Liste zulässiger Tools oder Zeichenkette mit durch Kommas getrennter Liste zulässiger Tools | claude --allowedTools mcp__slack mcp__filesystemclaude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Durch Leerzeichen getrennte Liste verbotener Tools oder Zeichenkette mit durch Kommas getrennter Liste verbotener Tools | claude --disallowedTools mcp__splunk mcp__githubclaude --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 zur Behandlung von Berechtigungsaufforderungen (nur mit --print) | claude --permission-prompt-tool mcp__auth__prompt |
Mehrteilige Konversationen
Für mehrteilige Konversationen können Sie Konversationen fortsetzen oder von der neuesten Sitzung aus fortfahren:Ausgabeformate
Textausgabe (Standard)
JSON-Ausgabe
Gibt strukturierte Daten einschließlich Metadaten zurück:Streaming-JSON-Ausgabe
Streamt jede Nachricht, während sie empfangen wird:init-Systemnachricht, gefolgt von einer Liste von Benutzer- und Assistentennachrichten, gefolgt von einer abschließenden result-Systemnachricht mit Statistiken. Jede Nachricht wird als separates JSON-Objekt ausgegeben.
Eingabeformate
Texteingabe (Standard)
Streaming-JSON-Eingabe
Ein Stream von Nachrichten, die überstdin bereitgestellt werden, wobei jede Nachricht eine Benutzerrunde darstellt. Dies ermöglicht mehrere Runden einer Konversation, ohne die claude-Binärdatei neu zu starten, und ermöglicht es, dem Modell Anleitung zu geben, während es eine Anfrage verarbeitet.
Jede Nachricht ist ein JSON-Objekt vom Typ „Benutzernachricht”, das dem gleichen Format wie das Ausgabenachrichtenschema folgt. Nachrichten werden im jsonl-Format formatiert, wobei jede Eingabezeile ein vollständiges JSON-Objekt ist. Die Streaming-JSON-Eingabe erfordert -p und --output-format stream-json.
Beispiele für Agent-Integration
SRE-Incident-Response-Bot
Automatisierte Sicherheitsüberprüfung
Mehrteiliger Legal Assistant
Best Practices
-
Verwenden Sie das JSON-Ausgabeformat für programmgesteuerte Analyse von Antworten:
-
Fehler elegant behandeln - Überprüfen Sie Exit-Codes und stderr:
- Verwenden Sie Sitzungsverwaltung zur Aufrechterhaltung des Kontexts in mehrteiligen Konversationen
-
Berücksichtigen Sie Timeouts für lang laufende Operationen:
- Beachten Sie Ratenlimits beim Erstellen mehrerer Anfragen, indem Sie Verzögerungen zwischen Aufrufen hinzufügen
Verwandte Ressourcen
- CLI-Verwendung und Steuerelemente - Vollständige CLI-Dokumentation
- Häufige Workflows - Schritt-für-Schritt-Anleitungen für häufige Anwendungsfälle