Panoramica
La modalità headless ti consente di eseguire Claude Code a livello di programmazione da script da riga di comando e strumenti di automazione senza alcuna interfaccia utente interattiva.Utilizzo di base
L’interfaccia della riga di comando principale per Claude Code è il comandoclaude. Utilizza 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 le principali per l’automazione e lo 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 per ID sessione | claude --resume abc123 |
--continue, -c | Continua la conversazione più recente | claude --continue |
--verbose | Abilita la registrazione dettagliata | claude --verbose |
--append-system-prompt | Aggiungi al prompt di sistema (solo con --print) | claude --append-system-prompt "Custom instruction" |
--allowedTools | Elenco separato da spazi di strumenti consentiti, o stringa di elenco separato da virgole di strumenti consentiti | claude --allowedTools mcp__slack mcp__filesystemclaude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Elenco separato da spazi di strumenti negati, o stringa di elenco separato da virgole di strumenti negati | claude --disallowedTools mcp__splunk mcp__githubclaude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Carica i server MCP da un file JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Strumento MCP per la gestione dei prompt di autorizzazione (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 un elenco di messaggi utente e assistente, seguito da un messaggio di sistema result finale con statistiche. Ogni messaggio viene emesso come un 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. Ciò consente più turni di una conversazione senza riavviare il binario claude e consente di fornire indicazioni al modello mentre sta elaborando una richiesta.
Ogni messaggio è un oggetto JSON ‘User message’, 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 dell’agente
Bot di risposta agli incidenti SRE
Revisione della sicurezza automatizzata
Assistente legale multi-turno
Best practice
-
Utilizza il formato di output JSON per l’analisi programmatica delle risposte:
-
Gestisci gli errori con eleganza - controlla i codici di uscita e stderr:
- Utilizza la gestione della sessione per mantenere il contesto nelle conversazioni multi-turno
-
Considera i timeout per le operazioni a lunga esecuzione:
- Rispetta i limiti di velocità quando effettui più richieste aggiungendo ritardi tra le chiamate
Risorse correlate
- Utilizzo e controlli CLI - Documentazione CLI completa
- Flussi di lavoro comuni - Guide passo dopo passo per i casi d’uso comuni