Panoramica
La modalità headless ti permette di eseguire Claude Code programmaticamente da script da riga di comando e strumenti di automazione senza alcuna interfaccia utente interattiva.Utilizzo di base
L’interfaccia principale da riga di comando per Claude Code è il comandoclaude
. Usa il flag --print
(o -p
) per eseguire in modalità non interattiva e stampare il risultato finale:
Opzioni di configurazione
La modalità headless sfrutta tutte le opzioni CLI disponibili in Claude Code. Ecco quelle principali per automazione e scripting:Flag | Descrizione | Esempio |
---|---|---|
--print , -p | Esegui in modalità non interattiva | claude -p "query" |
--output-format | Specifica il formato di output (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Riprendi una conversazione tramite ID sessione | claude --resume abc123 |
--continue , -c | Continua la conversazione più recente | claude --continue |
--verbose | Abilita il logging verboso | claude --verbose |
--append-system-prompt | Aggiungi al prompt di sistema (solo con --print ) | claude --append-system-prompt "Custom instruction" |
--allowedTools | Lista separata da spazi di strumenti consentiti, o stringa di lista separata da virgole di strumenti consentiti | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separata da spazi di strumenti negati, o stringa di lista separata da virgole di strumenti negati | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Carica server MCP da un file JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Strumento MCP per gestire i prompt di permesso (solo con --print ) | claude --permission-prompt-tool mcp__auth__prompt |
Conversazioni multi-turno
Per conversazioni multi-turno, puoi riprendere conversazioni o continuare dalla sessione più recente:Formati di output
Output di testo (Predefinito)
Output JSON
Restituisce dati strutturati inclusi i metadati:Output JSON in streaming
Trasmette ogni messaggio mentre viene ricevuto:init
iniziale, seguito da una lista di messaggi utente e assistente, seguito da un messaggio di sistema result
finale con le statistiche. Ogni messaggio viene emesso come oggetto JSON separato.
Formati di input
Input di testo (Predefinito)
Input JSON in streaming
Un flusso di messaggi fornito tramitestdin
dove ogni messaggio rappresenta un turno utente. Questo permette turni multipli di una conversazione senza rilanciare il binario claude
e consente di fornire indicazioni al modello mentre sta elaborando una richiesta.
Ogni messaggio è un oggetto JSON ‘Messaggio utente’, seguendo lo stesso formato dello schema del messaggio di output. I messaggi sono formattati usando il formato jsonl dove ogni riga di input è un oggetto JSON completo. L’input JSON in streaming richiede -p
e --output-format stream-json
.
Esempi di integrazione agente
Bot di risposta agli incidenti SRE
Revisione di sicurezza automatizzata
Assistente legale multi-turno
Migliori pratiche
-
Usa il formato di output JSON per l’analisi programmatica delle risposte:
-
Gestisci gli errori con grazia - controlla i codici di uscita e stderr:
- Usa la gestione delle sessioni per mantenere il contesto nelle conversazioni multi-turno
-
Considera i timeout per operazioni a lunga durata:
- Rispetta i limiti di velocità quando fai richieste multiple aggiungendo ritardi tra le chiamate
Risorse correlate
- Utilizzo e controlli CLI - Documentazione CLI completa
- Flussi di lavoro comuni - Guide passo-passo per casi d’uso comuni