SSD Nodes Learn Hosting plans →
Guide Matt ConnorDi Matt Connor · Aggiornato 2026-08-28

Claude Code: guida agli stili di output

Scopri come gli stili modificano il prompt di sistema, cosa cambia nel transcript e perché la chiave outputStyle viene letta solo all’avvio.

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 del testo che stampa. Non fornisce a Claude informazioni sulla codebase e non gli concede autorizzazioni per eseguire operazioni.

Claude Code include cinque stili integrati. La scelta viene memorizzata nella chiave di configurazione outputStyle, che viene letta una sola volta all’avvio della sessione. Questo spiega gran parte della confusione relativa a questa funzionalità: se cambi stile durante una sessione, la modifica viene salvata ma resta ignorata finché non azzeri la configurazione.

Su un VPS non si tratta soltanto di una preferenza estetica. Il transcript è ciò che leggi attraverso una connessione SSH (secure shell), generalmente 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 scrollback 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 del progetto su cui stai lavorando.

Il comando autonomo /output-style non esiste più. È stato deprecato nella versione v2.1.73 e rimosso nella versione v2.1.91, quindi nelle versioni attuali non produce alcun effetto. Controlla quale versione stai eseguendo prima di seguire una guida meno recente. Le versioni indicate in questa pagina sono state verificate nell'agosto 2026.

claude --version

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

  • ~/.claude/settings.json è il file dell'utente. Si applica a ogni progetto su quel computer.
  • .claude/settings.json è il file del progetto. Viene incluso nel repository git, quindi si applica a chiunque cloni il repository.
  • .claude/settings.local.json è il file locale del progetto. Non viene incluso nel repository e prevale sui due file precedenti. È il file in cui scrive il menu /config.
  • Le impostazioni gestite, distribuite dal team IT in un percorso di sistema come /etc/claude-code/ su Linux, prevalgono 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 oppure una stringa JSON inline. I relativi valori prevalgono sulle stesse chiavi nei file di configurazione per quella sessione:

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. Quando uno screenshot di una guida non corrisponde più a ciò che vedi, imposta direttamente la chiave e verificala con /status, che elenca le origini delle impostazioni effettive.

Perché il nuovo stile di output non produce effetti finché non si esegue un clear

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

/clear
/context

/context mostra ciò che occupa attualmente la finestra di contesto, suddiviso per categoria, incluso il prompt di sistema. Eseguilo in una nuova sessione con ciascuno stile: la riga del prompt di sistema costituisce il lato di input del confronto. È anche il modo più rapido per verificare che uno stile personalizzato sia stato caricato. Per una visione più ampia di ciò che riempie la finestra, consulta come si riempie il contesto in una sessione Claude Code lunga.

L'impostazione attende invece di essere applicata in tempo reale per un motivo preciso. L'API riutilizza le richieste ripetute tramite una cache dei prompt che confronta 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. Passare da uno stile all'altro è rapido. È sufficiente eseguire un clear.

Modifiche apportate da ogni stile di output integrato alla trascrizione

  • Default usa il prompt di sistema normale di Claude Code, scritto per le attività di sviluppo software.
  • Concise presenta subito il risultato. Elimina il preambolo e la descrizione dettagliata delle operazioni, mantenendo brevi le risposte finché non chiedi maggiori dettagli. Il lavoro tecnico eseguito resta invariato. Non accorcia mai un report di errore o un avviso di sicurezza e chiede comunque una 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à, spiegando perché è stata adottata una determinata scelta implementativa e quale pattern utilizza già la codebase. La trascrizione è intenzionalmente più lunga.
  • Learning si spinge oltre. Claude condivide questi Insights e poi ti chiede di scrivere autonomamente piccole parti del codice, contrassegnando ogni punto con un commento TODO(human) nel file.
  • Proactive porta Claude ad agire invece di fare domande. Per le decisioni di routine, formula assunzioni ragionevoli invece di interrompersi per chiedere conferma.

Leggi con attenzione l'ultimo punto, perché è quello che viene frainteso più spesso. Proactive è un'indicazione contenuta nel prompt di sistema. Modifica le operazioni che Claude tenta di eseguire. È comunque la modalità delle autorizzazioni a decidere cosa può essere eseguito senza chiederti conferma. Questa è l'impostazione che conta su un server lasciato in esecuzione senza supervisione. L'argomento è trattato nella sezione 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

Questi meccanismi servono tutti 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 sul codebase.
  • --append-system-prompt aggiunge testo al prompt di sistema per una singola invocazione, senza rimuovere altro contenuto. È la versione occasionale 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 le prime due opzioni. I dati relativi al progetto vanno inseriti in CLAUDE.md, perché Claude deve conoscerli. La formulazione va definita in uno stile di output, perché riguarda il modo in cui viene scritto il testo. Tutto ciò che deve avvenire ogni volta, indipendentemente dalla decisione del modello, è un hook. Il livello in cui si colloca ciascuna di queste superfici dipende da il programma che esegue il modello, non dal modello stesso. Per questo uno stile può soltanto influenzare l’output, mentre un hook può imporre un comportamento.

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 costituisce un'eccezione, perché eredita esattamente il prompt di sistema del processo padre. Se un subagent scrive in un modo che non ti piace, modifica il file di quell'agente anziché il tuo stile. Una seconda sessione di Claude Code sullo stesso host segue lo stesso confine e legge autonomamente i file di configurazione all'avvio; quindi, quando affidi il lavoro a un'altra sessione eseguita insieme alla tua, le risposte vengono restituite con lo stile caricato da quella sessione, non con il tuo.

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 nel repository per conservarlo 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 viene visualizzato 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 frontmatter --- sia la prima parte del file. Il nome del file diventa il nome dello stile, a meno che il frontmatter non imposti name. In questo caso, lo stile si chiama Terse ops e non terse-ops.

Selezionalo oppure imposta la chiave sul nome esatto e cancella:

{
  "outputStyle": "Terse ops"
}

Un campo determina se il file è un'estensione o una sostituzione. keep-coding-instructions ha come valore predefinito false, quindi uno stile personalizzato rimuove le istruzioni integrate di Claude Code per l'ingegneria del software e utilizza soltanto il testo fornito. Queste istruzioni integrate indicano 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, quando queste indicazioni non sono pertinenti. Impostalo su true per qualsiasi attività che coinvolga ancora del codice; in caso contrario, potresti chiederti perché un tecnico scrupoloso abbia improvvisamente smesso di verificare il proprio lavoro. Se in realtà non vuoi una voce diversa, ma una definizione più precisa della quantità di lavoro richiesta da un'attività, questa configurazione appartiene alle istruzioni di ingegneria e non al file dello stile: la skill Ponytail è un esempio completo, con una singola regola che indirizza un agente verso la modifica più piccola che risolve il problema.

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

Perché lo stile Concise è diverso via SSH

Su un VPS leggi il transcript attraverso livelli che un terminale locale non ha, e ogni livello penalizza la verbosità.

Il primo è lo scrollback. In tmux ogni riquadro conserva un numero fisso di righe, impostato da history-limit, il cui valore predefinito è 2000. Un transcript narrato riempie il buffer più rapidamente. La parte iniziale della sessione viene quindi eliminata prima e l'output che volevi recuperare scorrendo non è più disponibile. Aumenta il valore se vuoi 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, con un maggiore consumo di memoria per riquadro. I riquadri già aperti mantengono il limite precedente, perché la dimensione del buffer viene fissata quando il riquadro viene creato. Se stai ancora definendo la disposizione della sessione, eseguire Claude Code dentro tmux su un VPS descrive 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 che trascorri osservando il testo arrivare prima che compaia la risposta.

Il terzo sono i token di output. Ogni riga narrata 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 fornite da altri, inclusa questa pagina. L'entità della differenza dipende dai prompt, dal modello e dal lavoro richiesto. Misura quindi il tuo caso prima e dopo. Esegui la stessa attività reale in due sessioni nuove, una con Default e una con Concise, poi confronta i risultati. Una statusline è il contatore più semplice, perché Claude Code passa il tuo script tramite stdin un oggetto JSON che contiene già sia il nome dello stile sia i conteggi 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 su questo script:

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

La barra nella parte inferiore della sessione mostra ora lo stile attivo accanto ai token prodotti, cioè esattamente il confronto prima e 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 resta 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 per monitorare la spesa di Claude Code.

Come verificare quale stile di output è effettivamente caricato

Usa questi controlli invece di procedere per supposizioni.

  • /status elenca le origini delle impostazioni effettive per la sessione, indicando anche se sono applicate impostazioni gestite dall'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 la diagnostica dell'installazione e delle impostazioni e segnala i file delle 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: esegui quindi /clear. La seconda è la precedenza: .claude/settings.local.json ha la precedenza su .claude/settings.json, ed entrambi hanno la precedenza su ~/.claude/settings.json. Poiché il selettore /config scrive nel file locale, uno stile inserito dal team in .claude/settings.json viene ignorato senza messaggi su qualsiasi macchina in cui qualcuno abbia usato il menu almeno una volta. /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 che vale la pena annotare.

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

Lo stile di output fa parte del prompt di sistema e Claude Code costruisce il prompt di sistema una sola volta, quando la sessione viene avviata. Una modifica effettuata durante la sessione viene salvata, ma non applicata, perché la sessione in esecuzione continua a inviare il prompt costruito all'avvio. Esegui /clear oppure avvia una nuova sessione. Se la modifica non viene ancora applicata, esegui /status per verificare quale origine delle impostazioni ha prevalso, perché .claude/settings.local.json ha priorità su .claude/settings.json ed entrambe hanno priorità su ~/.claude/settings.json.

Lo stile di output Concise consente di ridurre i costi?

Riduce i token di output nella direzione prevista, perché istruisce Claude a 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 relativa al lavoro di qualcun altro. Esegui le tue misurazioni: in una sessione nuova, esegui /context con ciascuno stile per valutare il lato di input, quindi esegui la stessa attività con ciascuno stile e confronta il numero di token di output. Concise non abbrevia mai un report di errore o un avviso di sicurezza, quindi le parti più importanti da leggere restano complete.

Una modifica dello stile di output cambia il modo in cui scrivono i miei subagent?

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

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

No. Uno stile di output è testo contenuto nel prompt di sistema, quindi può solo influire sulle azioni che Claude prova a eseguire. Lo stile Proactive porta Claude ad assumere e agire invece di interrompersi per le decisioni di routine, ma non può comunque autorizzare un comando. È la modalità di autorizzazione a determinare quali comandi vengono eseguiti senza richiesta di conferma. È questa l'impostazione da controllare prima di lasciare una sessione in esecuzione su un server.