Modalità headless
Esegui Claude Code programmaticamente senza interfaccia utente interattiva
Panoramica
La modalità headless ti consente 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 comando claude
. Usa il flag --print
(o -p
) per eseguire in modalità non interattiva e stampare il risultato finale:
Opzioni di configurazione
L’SDK sfrutta tutte le opzioni CLI disponibili in Claude Code. Ecco quelle principali per l’utilizzo dell’SDK:
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 autorizzazione (solo con --print ) | claude --permission-prompt-tool mcp__auth__prompt |
Per un elenco completo delle opzioni CLI e delle funzionalità, consulta la documentazione di riferimento CLI.
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:
Formato della risposta:
Output JSON in streaming
Trasmette ogni messaggio man mano che viene ricevuto:
Ogni conversazione inizia con un messaggio di sistema init
iniziale, seguito da un elenco 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 tramite stdin
dove ogni messaggio rappresenta un turno utente. Questo consente più turni 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 utilizzando 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 di lunga durata:
-
Rispetta i limiti di velocità quando fai più richieste 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