SSD Nodes Learn 🎉 VPS da $5.50/mese
Guide Matt ConnorDi Matt Connor

Stili di output in Claude Code: guida e configurazione

Gli stili di output modificano il prompt di sistema di Claude Code. Scopri l'effetto dei 5 stili inclusi sul transcript e come crearne uno personalizzato.

Che cos'è uno stile di output in Claude Code

Uno stile di output in Claude Code è un blocco di istruzioni che Claude Code aggiunge al prompt di sistema. Modifica il modo in cui Claude risponde: il ruolo che assume e la struttura dell'output. Non insegna a Claude nulla sul tuo codebase e non può autorizzarlo a eseguire operazioni.

Claude Code include cinque stili predefiniti. La scelta viene memorizzata in una sola chiave delle impostazioni, outputStyle, che viene letta una volta all'avvio della sessione. Questo spiega gran parte della confusione relativa a questa funzione: se cambi stile durante una sessione, la modifica viene salvata ma resta ignorata finché non avvii una nuova sessione.

Su un VPS non si tratta soltanto di una preferenza estetica. Il transcript è ciò che leggi attraverso una connessione SSH (secure shell), di solito all'interno di una finestra tmux. Ogni riga descritta da Claude è quindi una riga che devi attendere e che occupa spazio in un buffer di scorrimento di dimensione fissa.

Dove si trova l'impostazione OutputStyle

Scegli uno stile dal menu /config, nella sezione Output style. Claude Code salva la scelta in .claude/settings.local.json all'interno del progetto su cui stai lavorando.

Il comando autonomo /output-style non esiste più. È stato deprecato nella v2.1.73 e rimosso nella v2.1.91, quindi nelle build attuali non esegue alcuna operazione. Controlla la versione in uso prima di seguire una guida precedente. Le versioni indicate in questa pagina sono state verificate ad agosto 2026.

claude --version

Puoi anche impostare la chiave manualmente. Può essere presente in quattro file di configurazione; il file con ambito più ristretto ha la precedenza su quello con ambito più ampio.

  • ~/.claude/settings.json è il file utente. Si applica a tutti i progetti presenti su quella macchina.
  • .claude/settings.json è il file del progetto. Viene salvato in git, quindi si applica a tutti gli utenti che clonano il repository.
  • .claude/settings.local.json è il file locale del progetto. Non viene salvato in git e ha la precedenza sui due file precedenti. È il file scritto dal menu /config.
  • Le impostazioni gestite, distribuite dal team IT a partire da un percorso di sistema come /etc/claude-code/ su Linux, hanno la precedenza su tutte le altre.

Il valore della chiave è il nome dello stile:

{
  "outputStyle": "Concise"
}

Per una sola sessione, passa la stessa chiave sulla riga di comando. Il flag --settings accetta un percorso o una stringa JSON inline; durante l'esecuzione, i relativi valori hanno la precedenza sulle stesse chiavi presenti nei file di configurazione:

claude --settings '{"outputStyle": "Concise"}'

Le etichette dei menu e i comandi slash sono cambiati almeno una volta nel corso dell'evoluzione di questa funzionalità. La chiave outputStyle non è cambiata. Se una schermata di una guida non corrisponde più a ciò che visualizzi, imposta direttamente la chiave e verifica il risultato con /status, che elenca le origini delle impostazioni attive.

Perché il nuovo stile di output non produce effetti finché non cancelli

Claude Code crea il prompt di sistema una volta sola, quando la sessione viene avviata, e lo stile di output fa parte di quel prompt. Quindi, se modifichi l'impostazione durante una sessione attiva, il valore viene memorizzato ma non cambia nulla di visibile, perché la sessione in esecuzione continua a inviare il prompt creato all'avvio. Il nuovo stile viene caricato al successivo /clear o al successivo avvio.

/clear
/context

/context mostra cosa sta occupando attualmente la finestra di contesto, suddiviso per categoria, incluso il prompt di sistema. Eseguilo in una sessione appena avviata con ogni stile e usa la riga del prompt di sistema come elemento di confronto. È anche il modo più rapido per verificare che uno stile personalizzato sia stato effettivamente caricato. Per una panoramica più ampia di ciò che riempie la finestra, consulta come si riempie il contesto in una sessione lunga di Claude Code.

L'impostazione non viene applicata immediatamente per un motivo preciso. L'API gestisce le richieste ripetute tramite una cache dei prompt che verifica l'inizio di ogni richiesta, e il prompt di sistema si trova proprio all'inizio. Riscriverlo durante la conversazione invaliderebbe tutto ciò che segue, quindi il turno successivo dovrebbe rielaborare l'intera cronologia come nuovo input. Fissare lo stile all'avvio della sessione evita questo costo. Cambiare stile è semplice. È sufficiente cancellare.

Cosa cambia ciascuno stile di output integrato nella trascrizione

  • Default è il prompt di sistema normale di Claude Code, scritto per le attività di ingegneria del software.
  • Concise presenta subito il risultato. Elimina il preambolo e la narrazione passo per passo e mantiene brevi le risposte finché non chiedi ulteriori dettagli. Il lavoro di ingegneria eseguito resta invariato. Non abbrevia mai una segnalazione di errore o un avviso di sicurezza e continua a chiedere conferma completa prima di un'azione distruttiva. Questo stile richiede Claude Code v2.1.237 o versioni successive.
  • Explanatory aggiunge "Insights" didattici tra i passaggi di un'attività e spiega perché è stata adottata una determinata scelta implementativa e quale pattern utilizza già il tuo codebase. Per progettazione, la trascrizione diventa più lunga.
  • Learning va oltre. Claude condivide questi approfondimenti e poi ti chiede di scrivere autonomamente piccole parti del codice, contrassegnando ogni punto con un commento TODO(human) nel file.
  • Proactive fa agire Claude invece di chiedere conferma. Per le decisioni di routine, formula ipotesi ragionevoli invece di interrompersi per chiedere conferma.

Leggi attentamente l'ultimo punto, perché è quello che viene interpretato più spesso in modo errato. Proactive è un'indicazione contenuta nel prompt di sistema. Cambia ciò che Claude tenta di fare. La modalità delle autorizzazioni determina comunque ciò che viene eseguito senza chiedertelo: è questa l'impostazione importante su un server che lasci in esecuzione senza supervisione. L'argomento è trattato in modalità automatica e modalità delle autorizzazioni di Claude Code.

In che modo uno stile di output differisce da CLAUDE.md, da un hook e da un subagent

Tutti questi meccanismi servono a indicare a Claude come comportarsi, ma operano a livelli diversi.

  • Uno stile di output viene aggiunto al prompt di sistema. Si applica a ogni risposta nella conversazione principale.
  • CLAUDE.md viene aggiunto come messaggio dell'utente dopo il prompt di sistema. Contiene le convenzioni del progetto e le informazioni sulla codebase.
  • --append-system-prompt aggiunge testo al prompt di sistema per una singola esecuzione, senza rimuovere altro contenuto. È la versione temporanea di uno stile di output.
  • Un hook è un comando shell eseguito direttamente da Claude Code quando si verifica un evento. Viene applicato dall'harness, quindi viene eseguito indipendentemente dal fatto che Claude lo avrebbe scelto o meno. Vedere cosa può e non può fare un hook di Claude Code.
  • Un subagent viene eseguito con un proprio prompt di sistema e un proprio set di strumenti.

Un breve test consente di scegliere tra i primi due meccanismi. Le informazioni sul progetto vanno in CLAUDE.md, perché Claude deve conoscerle. La formulazione va in uno stile di output, perché riguarda il modo in cui viene scritta la risposta. Qualsiasi operazione che deve essere eseguita ogni volta, indipendentemente dalla decisione del modello, va definita come hook.

Gli stili di output si applicano soltanto alla conversazione principale. Un subagent non eredita il tuo stile, perché avvia una propria conversazione con un proprio prompt di sistema. Un fork della conversazione corrente è l'eccezione, perché eredita esattamente il prompt di sistema della conversazione principale. Se il modo in cui un subagent scrive non è di tuo gradimento, modifica il file di quell'agente anziché il tuo stile.

Come scrivere il proprio stile di output

Uno stile di output personalizzato è un file Markdown con frontmatter. Salvalo nella directory home per usarlo in ogni progetto oppure all'interno del repository per mantenerlo insieme al codice. La directory dell'utente è ~/.claude/output-styles/ e la directory del progetto è .claude/output-styles/.

mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---

Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.

Do not narrate what you are about to do. Report what you did.

When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOF

Avvia una sessione e apri /config. Il tuo stile compare nell'elenco Stile di output, con la descrizione che hai scritto. Se non compare, il file non viene letto: controlla il percorso e verifica che il blocco di frontmatter --- sia la prima cosa presente nel file. Il nome del file diventa il nome dello stile, a meno che il frontmatter non imposti name; per questo motivo questo stile si chiama Terse ops e non terse-ops.

Selezionalo oppure imposta la chiave su quel nome esatto e cancella:

{
  "outputStyle": "Terse ops"
}

Un campo determina se il file è un'estensione o una sostituzione. Per impostazione predefinita, keep-coding-instructions è false: ciò significa che uno stile personalizzato rimuove le istruzioni integrate di Claude Code per l'ingegneria del software e utilizza soltanto il testo fornito. Queste istruzioni integrate spiegano a Claude come definire l'ambito di una modifica e come verificarne il risultato. Lascia il campo omesso per un assistente di scrittura o un analista di dati, se tali istruzioni non sono pertinenti. Impostalo su true per qualsiasi attività che coinvolga ancora del codice; in caso contrario ti chiederai perché un tecnico scrupoloso abbia improvvisamente smesso di verificare il proprio lavoro.

description è la riga che il selettore /config mostra accanto al nome. Scrivila pensando al momento in cui, tra sei mesi, dovrai scegliere tra due dei tuoi stili.

Perché uno stile conciso è diverso via SSH

Su un VPS leggi il transcript attraverso livelli che un terminale locale non ha. Ogni livello aumenta il costo della verbosità.

Il primo è lo scrollback. In tmux, ogni riquadro conserva un numero fisso di righe, impostato da history-limit, che per impostazione predefinita è 2000. Un transcript descrittivo riempie il buffer più rapidamente. La parte iniziale della sessione viene quindi eliminata prima e l'output che volevi rivedere scorrendo non è più disponibile. Aumenta il limite se ti serve più spazio:

echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

I riquadri creati dopo la modifica conservano ciascuno 20000 righe, al costo di una maggiore quantità di memoria per riquadro. I riquadri già aperti mantengono il vecchio limite, perché la dimensione del buffer viene fissata quando il riquadro viene creato. Se stai ancora definendo la struttura della sessione, eseguire Claude Code dentro tmux su un VPS spiega la procedura.

Il secondo è la latenza. La risposta viene trasmessa al terminale mentre viene generata. Su una connessione con un tempo di andata e ritorno elevato, un lungo preambolo è tempo trascorso a osservare il testo comparire prima che arrivi la risposta.

Il terzo sono i token di output. Ogni riga descrittiva viene conteggiata come output. Gli stili Explanatory e Learning sono più lunghi per progettazione. Concise è più breve per progettazione, perché indica a Claude di mantenere brevi le risposte per impostazione predefinita.

Non fidarti delle percentuali dichiarate da altri, nemmeno di quelle riportate in questa pagina. L'entità della differenza dipende dai prompt, dal modello e dal lavoro richiesto. Misura quindi il risultato prima e dopo nel tuo ambiente. Esegui la stessa attività reale in due sessioni nuove: una con Default e una con Concise, quindi confronta i risultati. Una statusline è il contatore più semplice, perché Claude Code passa allo script un oggetto JSON su stdin che contiene già sia il nome dello stile sia il conteggio dei token:

cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.sh

Imposta il valore di statusLine in modo che punti allo script:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

La barra nella parte inferiore della sessione mostra ora lo stile attivo accanto ai token prodotti. Questo fornisce esattamente il confronto prima/dopo che ti serve. Lo script richiede jq, il parser JSON da riga di comando. Installalo prima con sudo apt install -y jq. Se la barra rimane vuota, esegui manualmente lo script e passagli alcuni dati JSON tramite pipe, perché una statusline che termina con un codice diverso da zero non stampa né restituisce informazioni. Una statusline personalizzata per Claude Code elenca gli altri campi presenti nell'oggetto. Per la parte relativa alla fatturazione, invece di quella relativa alla sessione, consulta dove finiscono realmente i token di Claude Code e gli strumenti che monitorano la spesa di Claude Code.

Come verificare quale stile di output è effettivamente caricato

Usa questi controlli invece di procedere per ipotesi.

  • /status elenca le origini delle impostazioni effettive per questa sessione, indicando anche se sono applicate impostazioni gestite da un'organizzazione.
  • /context mostra il prompt di sistema caricato come categoria nella suddivisione della finestra di contesto.
  • claude doctor, eseguito dalla shell senza avviare una sessione, stampa le informazioni diagnostiche sull'installazione e sulle impostazioni e segnala i file di impostazioni non validi.

Quando uno stile non viene applicato, la causa è quasi sempre una di due. La prima è che lo hai modificato durante la sessione; in questo caso esegui /clear. La seconda è la precedenza: .claude/settings.local.json ha la precedenza su .claude/settings.json, e entrambe hanno la precedenza su ~/.claude/settings.json. Poiché il selettore /config scrive nel file locale, uno stile salvato dal team in .claude/settings.json viene sostituito silenziosamente su qualsiasi macchina in cui qualcuno abbia usato almeno una volta il menu. /status indica quale origine ha prevalso.

Un errore di sintassi JSON produce lo stesso sintomo, ma richiede una correzione diversa. claude doctor indica il file che non è stato possibile analizzare; conviene eseguirlo prima di cercare cause più complesse.

FAQ

Perché il comando /output-style ha smesso di funzionare?

È stato deprecato nella v2.1.73 e rimosso nella v2.1.91, quindi in una build della metà del 2026 il comando non esiste più. Esegui claude --version per verificare la versione disponibile. Scegli lo stile da /config nella sezione Output style oppure imposta la chiave outputStyle in un file di configurazione. La chiave è rimasta disponibile più a lungo del comando, quindi impostarla direttamente è l'istruzione utile da annotare.

Ho cambiato lo stile di output, ma non è successo nulla. Perché?

Lo stile di output fa parte del prompt di sistema e Claude Code crea il prompt di sistema una sola volta, all'avvio della sessione. Una modifica effettuata durante la sessione viene salvata, ma non applicata, perché la sessione in esecuzione continua a inviare il prompt creato all'avvio. Esegui /clear oppure avvia una nuova sessione. Se lo stile non viene ancora applicato, esegui /status per verificare quale origine delle impostazioni ha avuto la precedenza, poiché .claude/settings.local.json sovrascrive .claude/settings.json ed entrambe sovrascrivono ~/.claude/settings.json.

Lo stile di output Concise consente di risparmiare?

Riduce i token di output nella misura prevista, perché indica a Claude di mantenere brevi le risposte per impostazione predefinita. L'entità della riduzione dipende dai prompt e dal modello utilizzati, quindi considera qualsiasi percentuale pubblicata come una misurazione riferita al lavoro di qualcun altro. Esegui le tue misurazioni: in una sessione nuova, esegui /context con ogni stile per il lato input, quindi esegui la stessa attività con ogni stile e confronta il numero di token di output. Concise non abbrevia mai un rapporto di errore o un avviso di sicurezza, quindi le parti più importanti da leggere restano complete.

Uno stile di output modifica il modo in cui scrivono i miei subagent?

No. Gli stili di output si applicano solo alla conversazione principale, perché un subagent avvia una propria conversazione con un proprio prompt di sistema e un proprio set di strumenti. Fa eccezione un fork della conversazione corrente, perché eredita esattamente il prompt di sistema della conversazione principale. Per modificare il modo in cui risponde un subagent, modifica il file specifico di quell'agente.

Uno stile di output può consentire a Claude di eseguire comandi senza chiedere conferma?

No. Uno stile di output è testo inserito nel prompt di sistema, quindi può solo influenzare le azioni che Claude tenta di eseguire. Lo stile Proactive induce Claude ad assumere e agire invece di fermarsi sulle decisioni di routine, ma non può comunque approvare un comando. È la modalità di autorizzazione a determinare quali operazioni vengono eseguite senza richiesta di conferma. È questa l'impostazione da controllare prima di lasciare una sessione in esecuzione su un server.