Stili di output
- Cos'è uno stile di output — e in cosa differisce dal cambiare ciò che Claude sa
- I cinque stili integrati: Default, Proactive, Concise, Explanatory, Learning
- Come cambiare stile con /config — e perché la modifica richiede una sessione nuova
- Come scrivere il tuo stile personalizzato come file Markdown (incluso il campo force-for-plugin, riservato ai plugin)
- Perché gli stili di output si applicano alla conversazione principale ma NON ai subagent — con fork come unica eccezione
- Quando usare uno stile di output invece di CLAUDE.md, di --append-system-prompt o delle istruzioni personalizzate di Claude.ai
Gli stili di output cambiano come Claude Code comunica — il suo ruolo, il tono, la prolissità e se spiega il proprio ragionamento — modificando direttamente il system prompt. Cambiano come Claude risponde, non cosa sa. Usane uno quando ti ritrovi a richiedere a ogni turno la stessa voce o lo stesso formato.
Perché usarli
- Adattarsi al tuo flusso di lavoro. Asciutto e orientato all'azione quando vai veloce; esplicativo quando stai imparando.
- Modalità didattica. Alcuni stili aggiungono commenti formativi — ottimo mentre prendi confidenza con una codebase o una tecnica.
- Coerenza. Imposta una volta lo stile preferito così ogni sessione si legge come piace a te.
Gli stili integrati
Claude Code ne include cinque:
| Stile | Cosa fa | Lunghezza della risposta rispetto a Default |
|---|---|---|
| Default | Il system prompt standard di ingegneria del software — efficiente, orientato all'azione. | — |
| Proactive | Esegue immediatamente e fa assunzioni ragionevoli invece di fermarsi per decisioni di routine. Indicazioni di esecuzione autonoma più forti della modalità auto, ma vedi comunque le richieste di permesso prima che gli strumenti vengano eseguiti. | Più o meno uguale |
| Concise | Apre con il risultato, salta preamboli e narrazione, tiene le risposte brevi per impostazione predefinita pur facendo il lavoro ingegneristico con la stessa accuratezza di Default. Chiedi una spiegazione e Claude risponde per esteso. Segnalazioni di errore, avvisi di sicurezza e conferme di azioni distruttive restano comunque complete. Richiede la v2.1.237+. | Più breve |
| Explanatory | Aggiunge "Insight" formativi tra un passaggio e l'altro, spiegando le scelte implementative e i pattern della codebase. | Più lunga |
| Learning | Collaborativo, si impara facendo: condivide Insight e ti chiede di scrivere tu stesso piccole parti, lasciando marcatori [TODO(human)] nel tuo codice. | La più lunga |
- Explanatory e Learning producono risposte più lunghe per scelta progettuale e costano più token di output rispetto a Default.
- Concise fa l'opposto — risposte più brevi per impostazione predefinita — ma non accorcia mai segnalazioni di errore, avvisi di sicurezza o conferme di azioni distruttive.
Come cambiarlo
Esegui /config e scegli uno stile sotto Output style. La tua scelta viene salvata in .claude/settings.local.json a livello di progetto. Per impostarlo senza il menu, modifica il campo outputStyle in qualsiasi file di impostazioni.
- Esegui /config nella tua sessione e trova l'opzione Output style.
- Seleziona uno tra Default, Proactive, Concise, Explanatory o Learning. La tua scelta viene salvata in .claude/settings.local.json a livello di progetto.
- Salta il menu modificando il campo outputStyle in qualsiasi file di impostazioni (vedi il JSON qui sotto).
- Lo stile fa parte del system prompt, letto una sola volta all'avvio della sessione — esegui /clear o apri una nuova sessione perché abbia effetto.
{
"outputStyle": "Explanatory"
}
Lo stile di output fa parte del system prompt, che Claude Code legge una sola volta all'avvio della sessione. Una modifica ha effetto solo dopo /clear o in una nuova sessione. (Il comando autonomo /output-style è stato rimosso nella v2.1.91 — usa /config o l'impostazione qui sopra.)
Dove gli stili di output si applicano — e dove no
Gli stili di output modificano il system prompt della conversazione principale. Questo ha un ambito preciso:
- I subagent hanno un proprio system prompt, quindi non ereditano il tuo stile di output. Se lanci un agente Explainer con stile Concise, il subagent usa comunque le proprie istruzioni.
/forkè l'unica eccezione. Una conversazione laterale forkata copia l'intero system prompt del genitore, quindi mantiene il tuo stile.- Gli stili personalizzati eliminano le istruzioni di coding integrate a meno che tu non imposti
keep-coding-instructions: true. È per questo che uno stile "puro assistente di scrittura" smette di comportarsi da ingegnere — e perché uno stile "prima i diagrammi" ha bisogno del flag per continuare a scrivere codice.
Creare uno stile personalizzato
Uno stile personalizzato è un file Markdown: frontmatter, poi le istruzioni da aggiungere al system prompt. Salvalo a uno dei tre livelli; il nome del file diventa il nome dello stile a meno che tu non imposti name:
- Utente —
~/.claude/output-styles/ - Progetto —
.claude/output-styles/(carica da ogni.claude/output-styles/compresa tra la tua directory di lavoro e la radice del repository; quando due livelli definiscono lo stesso nome di stile, vince quello più vicino alla tua directory di lavoro — ottimo nei monorepo dove un pacchetto sovrascrive il default del workspace) - Policy gestita —
.claude/output-styles/dentro la directory delle impostazioni gestite
Anche i plugin possono distribuire stili in una directory output-styles/.
Esempio di stile personalizzato — Prima i diagrammi
--- name: Diagrams first description: Lead every explanation with a diagram keep-coding-instructions: true --- When explaining code, architecture, or data flow, start with a Mermaid diagram showing the structure, then explain in prose.
- Imposta keep-coding-instructions: true quando stai cambiando solo COME Claude comunica ma vuoi che continui a scrivere codice normalmente.
- Omettilo (il comportamento predefinito) quando Claude non fa affatto ingegneria del software — per esempio un puro assistente di scrittura o di analisi dati — così le istruzioni di coding integrate vengono eliminate.
Campi del frontmatter
| Campo | Scopo | Predefinito |
|---|---|---|
name | Nome dello stile se non vuoi ereditarlo dal nome del file. | Nome del file |
description | Mostrato nel selettore di /config. | Nessuno |
keep-coding-instructions | Mantiene le istruzioni di ingegneria del software integrate in Claude Code. Imposta true quando stai cambiando solo la presentazione. | false |
force-for-plugin | Solo per stili di plugin. Applica automaticamente questo stile ogni volta che il plugin è attivo, sovrascrivendo l'impostazione outputStyle dell'utente. Se più plugin attivi lo impostano, vince il primo caricato. | false |
- force-for-plugin è potente e facile da usare male — sovrascrive in silenzio lo stile scelto dall'utente. Distribuiscilo solo quando il plugin davvero non può funzionare in Default (per esempio un cambio di ruolo completo come 'comportati da agente di assistenza clienti'), e documentalo in evidenza nel README del plugin.
Stili di output contro CLAUDE.md e le altre leve
Diverse funzionalità personalizzano il comportamento di Claude Code. Gli stili di output modificano direttamente il system prompt e si applicano a ogni risposta; le altre aggiungono istruzioni altrove o le circoscrivono a un singolo compito.
| Leva | Come funziona | Usala quando |
|---|---|---|
| Stile di output | Modifica il system prompt | Vuoi un ruolo, un tono o un formato di risposta predefinito diverso a ogni turno |
| CLAUDE.md | Aggiunge un messaggio utente dopo il system prompt | Claude deve conoscere sempre le convenzioni del tuo progetto e il contesto della codebase |
--append-system-prompt | Aggiunge in coda al system prompt senza rimuovere nulla | Aggiunta una tantum per una singola invocazione non interattiva |
| Subagent | Esegue un assistente con system prompt, modello e strumenti propri | Vuoi un assistente circoscritto separatamente per un compito mirato |
| Skill | Carica istruzioni specifiche del compito quando invocata o pertinente | Hai un flusso di lavoro riutilizzabile |
| Istruzioni personalizzate | La cugina dell'app consumer Claude.ai | Stai personalizzando l'app di chat, non la CLI |
Vuoi che Claude "esegua sempre i test prima di chiudere"? Quello è un guardrail di CLAUDE.md, non uno stile. Vuoi che "spieghi ogni passaggio man mano"? Quello è uno stile di output. Vuoi anteporre un'istruzione di sistema una tantum per una singola esecuzione -p? Quello è --append-system-prompt. Tieni le regole di comportamento in CLAUDE.md e la presentazione negli stili.
Mettiti alla prova
0/8- Gli stili di output cambiano COME Claude comunica (ruolo, tono, prolissità), non COSA sa — modificano il system prompt.
- Cinque integrati: Default (orientato all'azione), Proactive (esegue facendo assunzioni), Concise (breve per impostazione predefinita, v2.1.237+), Explanatory (Insight), Learning (Insight + marcatori [TODO(human)]).
- Concise accorcia le risposte ma non taglia mai segnalazioni di errore, avvisi di sicurezza o conferme di azioni distruttive; Explanatory e Learning costano più token di output perché le risposte sono più lunghe.
- Gli stili si applicano solo alla conversazione principale — i subagent usano un proprio system prompt. /fork è l'unica eccezione perché copia l'intero prompt del genitore.
- Cambia stile con /config (salvato in .claude/settings.local.json) o con l'impostazione outputStyle — le modifiche richiedono /clear o una nuova sessione.
- Gli stili personalizzati sono file Markdown con frontmatter (name, description, keep-coding-instructions e force-for-plugin, riservato ai plugin). Per gli stili di progetto annidati, vince il .claude/output-styles/ più vicino alla tua directory di lavoro.
- La leva giusta per il lavoro giusto: CLAUDE.md per le regole di comportamento, stili di output per la presentazione, --append-system-prompt per le invocazioni una tantum.