Vai al contenuto principale
Questa pagina di riferimento elenca ogni chiave che Claude Code legge da un file di impostazioni, più il breve gruppo di chiavi che mantiene in ~/.claude.json invece. Per scegliere un file, o controllare la precedenza, inizia con File di impostazioni e precedenza.

Indice delle impostazioni

Ogni chiave sottostante è collegata alla sua voce. L’ambito elenca i file in cui può trovarsi: User è ~/.claude/settings.json, Project è .claude/settings.json, Local è .claude/settings.local.json e Managed è quello che la tua organizzazione distribuisce. Any file significa tutti e quattro, e Global config significa ~/.claude.json.

Modello e risposte

Scegli quali modelli usa Claude Code e come risponde. Per sapere come queste impostazioni interagiscono con il comando /model e con le variabili d’ambiente, consulta Configurazione del modello.

advisorModel

Scegli quale modello risponde quando Claude chiama lo strumento advisor lato server. Rimuovi l’impostazione per disattivare l’advisor. L’advisor deve essere almeno altrettanto capace del tuo modello principale. Consulta Scegliere un modello advisor per gli abbinamenti accettati e per cosa succede quando ne scegli uno non accettato. Di solito non modifichi questa chiave a mano. Esegui /advisor per aprire un selettore che mostra la scelta attuale, i modelli che possono fare da advisor e No advisor. Claude Code salva la tua scelta in questa chiave in ~/.claude/settings.json. Se scegli da un client Remote Control o in una sessione collegata a un worker remoto, la scelta si applica solo a quella sessione e non modifica questa chiave. Se il tuo account richiede il consenso ai crediti di utilizzo, accettalo prima eseguendo /model fable. Finché non lo fai, scegliere Fable in /advisor non salva nulla e Claude Code ti dice di eseguire prima /model fable.
  • Ambito: Any file
  • Tipo: stringa, uno degli alias "fable", "opus" o "sonnet", che si risolvono nella versione predefinita attuale di Claude Code per quella famiglia di modelli, oppure un ID di modello completo come "claude-opus-5-5"
  • Predefinito: non impostato, quindi l’advisor è disattivato
  • Override per sessione: --advisor ha la precedenza su questa chiave per una sessione. CLAUDE_CODE_DISABLE_ADVISOR_TOOL disattiva l’advisor, e questa chiave non può riattivarlo
settings.json
La chiave non ha effetto sui provider in cui l’advisor non è disponibile, come Amazon Bedrock. Su Claude Platform on AWS, la chiave richiede Claude Code v2.1.300 o successivo. "fable" richiede l’accesso a Fable.

alwaysThinkingEnabled

Disattiva il ragionamento esteso per ogni sessione impostando questa chiave su false. Il ragionamento è attivo per impostazione predefinita, quindi true non cambia nulla. La maggior parte delle persone la imposta tramite /config invece di modificare il file. Sui modelli che ragionano sempre, come Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, false non ha effetto. Sui provider di terze parti Claude Code omette il parametro thinking invece di disattivare il ragionamento, quindi i modelli con ragionamento adattivo potrebbero comunque ragionare. Con il ragionamento disattivato sull’API Anthropic, Claude Code invia lo sforzo high invece di un livello superiore ai modelli che sa non accettare quella combinazione, come Opus 5.
  • Ambito: Any file
  • Tipo: Boolean
    • true: nessun effetto; il ragionamento è già attivo
    • false: Claude Code disattiva il ragionamento esteso per ogni sessione
  • Predefinito: non impostato, quindi il ragionamento è attivo per i modelli che lo supportano
  • Override per sessione: MAX_THINKING_TOKENS ha la precedenza su questa chiave per una sessione: 0 disattiva il ragionamento, con gli stessi limiti di modello e provider di false, e un valore positivo attiva il ragionamento anche quando questa chiave è false. Sui modelli con ragionamento adattivo il numero in sé viene ignorato
settings.json

availableModels

Limita quali modelli le persone possono selezionare per la sessione principale, i subagent, le skill e l’advisor. Un elenco gestito vincola /model, --model e la chiave model nei file dello sviluppatore; un modello al di fuori dell’elenco non può essere selezionato. Con la corrispondenza per prefisso predefinita, questa chiave da sola non interviene sull’opzione Default; per questo abbinala a enforceAvailableModels.
  • Ambito: Any file. Distribuiscila nelle impostazioni gestite per applicarla a un’organizzazione.
  • Tipo: array di alias o ID di modello
  • Predefinito: non impostato, quindi ogni modello è disponibile
Questo esempio consente alle persone di selezionare solo i modelli Sonnet e Haiku:
settings.json
Una voce con un ID di modello come "claude-opus-5" consente anche le versioni successive che lo estendono, come Opus 5.5. Per bloccare una di queste versioni, usa deniedModels. Per fare in modo che ogni voce con un ID di modello consenta solo la versione che nomina, usa availableModelsMatch. Consulta Limitare la selezione del modello. Per gli ID dei provider di terze parti, consulta Fissare i modelli per i deploy di terze parti.

availableModelsMatch

Scegli come le voci di availableModels corrispondono agli ID di modello. Per impostazione predefinita una voce con un ID di modello consente anche le versioni successive che lo estendono, quindi "claude-opus-5" consente Opus 5.5. Con "exact", ogni voce con un ID di modello consente solo la versione che nomina, quindi una versione più recente di quel modello resta bloccata finché non la aggiungi all’elenco. Richiede Claude Code v2.1.283 o successivo.
  • Ambito: Managed. Claude Code ignora la chiave nelle impostazioni utente, di progetto e locali e in --settings, mostrando un avviso
  • Tipo: stringa, uno tra:
    • "prefix": una voce con un ID di modello consente la sua versione e qualsiasi ID di modello che la estende con un altro segmento
    • "exact": una voce con un ID di modello consente solo la versione che nomina, quindi "claude-opus-5" consente Opus 5 ma non claude-opus-5-5. Una voce come "claude-opus-4-5" consente anche il relativo ID di modello Anthropic con data claude-opus-4-5-20251101. Un alias di famiglia come "opus" consente comunque l’intera famiglia, e le voci best, opusplan e default vengono ignorate
  • Predefinito: "prefix"
Questo esempio consente Opus 5 e Sonnet 5 e nessuna versione successiva di nessuno dei due:
managed-settings.json
Con "exact", anche l’opzione Default è limitata ai modelli elencati ogni volta che l’elenco nomina almeno un modello o una famiglia. Consulta Bloccare modelli o versioni specifici.

deniedModels

Blocca modelli specifici, con o senza un’allowlist availableModels e anche quando quell’elenco li consente. Claude Code nasconde un modello bloccato dal selettore /model, e il modello non può essere selezionato ovunque availableModels venga applicato. Nemmeno una sessione sull’opzione Default esegue un modello bloccato, come descritto in Bloccare modelli o versioni specifici. Richiede Claude Code v2.1.283 o successivo.
  • Ambito: Managed. Claude Code ignora la chiave nelle impostazioni utente, di progetto e locali e in --settings, mostrando un avviso
  • Tipo: array di alias o ID di modello
    • Un alias di famiglia come "opus" blocca ogni modello di quella famiglia
    • Un ID di modello come "claude-opus-5-5" blocca quella versione in ogni forma, inclusi gli ID con data e quelli specifici del provider
    • Un ID di modello senza versione minore, come "claude-opus-5", blocca anche le versioni minori successive come Opus 5.5. Scrivi "claude-opus-5-0" per bloccare solo Opus 5
    • Le voci best, opusplan e default vengono ignorate
  • Predefinito: non impostato, quindi nessun modello è bloccato
Questo esempio consente i modelli Opus e Sonnet e blocca Opus 5.5:
managed-settings.json
Consulta Bloccare modelli o versioni specifici.

effortLevel

Imposta un livello di sforzo predefinito per i modelli per cui non hai salvato un livello. I livelli più bassi sono più veloci ed economici sulle attività semplici, mentre quelli più alti ragionano più a fondo sui problemi complessi. Quando esegui /effort low, medium, high o xhigh in una sessione interattiva sulla tua macchina, Claude Code salva il livello per il modello attivo in modelSettings invece di scrivere questa chiave. Prima della v2.1.251, /effort scriveva questa chiave. All’interno dello stesso file di impostazioni, Claude Code usa il livello salvato di un modello invece di questa chiave. modelSettings indica la precedenza tra file diversi. In una sessione collegata a un worker remoto, in un’esecuzione -p e nell’Agent SDK, /effort si applica solo a quella sessione. Regolare il livello di sforzo elenca le scelte interattive che si applicano anch’esse solo a quella sessione. Il messaggio stampato da /effort indica cosa è successo.
  • Ambito: Any file
  • Tipo: stringa, uno tra:
    • "low": il ragionamento minimo, per attività brevi, circoscritte e sensibili alla latenza che non richiedono molta intelligenza
    • "medium": riduce l’uso di token per lavori attenti ai costi che possono rinunciare a un po’ di intelligenza
    • "high": bilancia uso di token e intelligenza
    • "xhigh": ragionamento più approfondito con una maggiore spesa di token
  • Predefinito: non impostato
  • Override per sessione: --effort ha la precedenza su questa chiave per una sessione, e CLAUDE_CODE_EFFORT_LEVEL ha la precedenza su entrambi
settings.json
Nel tuo file di impostazioni utente, ~/.claude/settings.json, questa chiave è la forma precedente che /effort scriveva prima di salvare i livelli per modello, e continua ad applicarsi dove si applicava prima, su Opus 5, Fable 5.1 e i modelli precedenti. Opus 5.5 e i modelli rilasciati dopo di esso la ignorano e partono dal proprio valore predefinito finché non salvi un livello per loro, che /effort scrive in modelSettings. Nelle impostazioni di progetto, locali e gestite, e con --settings, questa chiave si applica a ogni modello.

enforceAvailableModels

Il selettore /model ha un’opzione Default, e impostazione del modello default descrive il modello in cui si risolve. Un’allowlist availableModels limita i modelli che puoi nominare, ma con la corrispondenza per prefisso predefinita non rimappa il modello predefinito del tuo tipo di account, quindi Default può ancora risolversi in un modello al di fuori dell’elenco. Questa chiave colma questa lacuna. Richiede Claude Code v2.1.175 o successivo. Quando la tua organizzazione distribuisce impostazioni gestite, Claude Code legge questa chiave solo dalla fonte gestita e la ignora negli altri tuoi file. Per sapere come questa chiave si applica ai controlli del modello all’avvio, consulta Amazon Bedrock e Agent Platform di Google Cloud.
  • Ambito: Any file
  • Tipo: Boolean
    • true: quando Default si risolverebbe in un modello al di fuori di availableModels, Claude Code lo risolve nel primo modello disponibile dell’elenco
    • false: questa chiave non cambia il modo in cui Default si risolve
  • Predefinito: false
Questo esempio limita le selezioni nominate ai modelli Sonnet e Haiku e fa sì che Default si risolva nel primo di essi disponibile:
settings.json
Questa chiave non ha effetto quando availableModels non è impostato o è vuoto. Consulta Applicare l’allowlist al modello Default. Richiede Claude Code v2.1.175 o successivo.

fallbackModel

Indica i modelli di riserva che Claude Code deve provare, in ordine, quando il tuo modello principale è sovraccarico o non disponibile. Claude Code passa al modello disponibile successivo della catena per il resto del turno e mostra un avviso. Senza una catena, Claude Code riprova con lo stesso modello e poi mostra l’errore del server, e sei tu a riprovare o a cambiare modello. Un cambio comporta un turno con la cache del prompt fredda sul modello di fallback; il tuo messaggio successivo prova di nuovo prima il modello principale.
  • Ambito: Any file
  • Tipo: array di alias o ID di modello; "default" si espande nel modello predefinito
  • Predefinito: non impostato, quindi una richiesta non riuscita non viene ritentata su un altro modello
  • Override per sessione: --fallback-model ha la precedenza su questa chiave per una sessione
Questo esempio prova prima Sonnet 5, poi Haiku 4.5, quando il tuo modello principale non riesce:
settings.json
A differenza della maggior parte delle impostazioni di tipo array, questa chiave non esegue il merge tra i file di impostazioni: il file con la precedenza più alta che la definisce fornisce l’intera catena. Se il tuo file di progetto imposta ["claude-sonnet-5"] e il tuo file utente imposta ["claude-haiku-4-5"], la catena è solo ["claude-sonnet-5"]. Claude Code mantiene al massimo tre modelli consentiti distinti dall’elenco e ignora il resto. Consulta Catene di modelli di fallback.

fastMode

Attiva la modalità veloce per le sessioni in cui è disponibile, per il lavoro interattivo come l’iterazione rapida o il debug dal vivo in cui vuoi velocità a un costo per token più alto. Di solito non modifichi questa chiave a mano. Eseguire /fast scrive fastMode: true in ~/.claude/settings.json, ed eseguirlo di nuovo per disattivare la modalità veloce rimuove la chiave. Sull’API Anthropic, solo Fable 5.2, Opus 5.5, Opus 5 e Opus 4.8 supportano la modalità veloce. Eseguire /fast da un altro modello ti fa passare a Opus, e passare a un modello non supportato disattiva la modalità veloce. Consulta Cambiare modello con la modalità veloce attiva. Su Agent Platform di Google Cloud, invece, /fast ti fa passare a Fable 5.2 e non scrive questa chiave, e Claude Code ignora un true salvato.
  • Ambito: Any file
  • Tipo: Boolean
    • true: Claude Code attiva la modalità veloce per le sessioni in cui è disponibile. Su Fable 5.2, devi anche eseguire /fast mentre usi Fable 5.2
    • false: la modalità veloce resta disattivata
  • Predefinito: non impostato, quindi la modalità veloce è disattivata
  • Override per sessione: CLAUDE_CODE_DISABLE_FAST_MODE disattiva la modalità veloce per una sessione, e questa chiave non può riattivarla
settings.json

fastModePerSessionOptIn

Normalmente, eseguire /fast salva fastMode nelle impostazioni utente di una persona, quindi le nuove sessioni su un modello supportato si avviano con la modalità veloce attiva. Su Fable 5.2, questo avviene solo se la persona l’ha attivata mentre usava Fable 5.2. Per fare in modo che ogni persona esegua /fast in ogni sessione in cui la vuole, imposta questa chiave su true. Claude Code lascia la chiave fastMode nel loro file, quindi disattivare questa chiave ripristina il comportamento precedente. Gli Owner dei piani Team o Enterprise possono distribuirla in tutta l’organizzazione tramite le impostazioni gestite dal server. Quando le impostazioni gestite impostano la chiave, /fast on viene rifiutato al di fuori delle sessioni interattive nel terminale e segnala che la tua organizzazione ha disabilitato la modalità veloce. Questo riguarda la modalità non interattiva, l’estensione VS Code e le sessioni cloud.
  • Ambito: Any file
  • Tipo: Boolean
    • true: un fastMode: true salvato non attiva più la modalità veloce all’avvio della sessione, quindi ogni persona esegue /fast in ogni sessione in cui la vuole; un fastMode: true passato con --settings vale comunque per quella sessione, a meno che le impostazioni gestite non impostino questa chiave
    • false: un fastMode: true salvato funziona come descritto in fastMode
  • Predefinito: false
settings.json
Consulta Richiedere l’attivazione per sessione.

language

Fai rispondere Claude in una lingua diversa dall’inglese per impostazione predefinita. Non esiste un elenco fisso per le risposte: Claude Code passa il valore così com’è a Claude come istruzione di rispondere sempre in quella lingua, quindi funziona qualsiasi nome di lingua che Claude sia in grado di leggere. Claude Code non controlla il valore, quindi un nome scritto in modo errato arriva a Claude così com’è invece di produrre un errore. Lo stesso valore imposta la lingua per la dettatura vocale, che invece ha un elenco fisso di lingue di dettatura supportate, e per i titoli delle sessioni generati automaticamente.
  • Ambito: Any file
  • Tipo: stringa, qualsiasi nome di lingua, come "japanese", "spanish" o "french"; Claude Code non la convalida
  • Predefinito: non impostato; i titoli delle sessioni seguono quindi la lingua della tua conversazione
settings.json

maxEffortLevel

Imposta un limite al livello di sforzo che una sessione può usare, lasciando disponibili i livelli inferiori. Qualsiasi livello superiore viene invece eseguito al limite, incluso uno proveniente da /effort, dal selettore /model, da --effort, da CLAUDE_CODE_EFFORT_LEVEL, dal frontmatter effort di una skill o di un subagent, o dal valore predefinito del modello stesso. Claude Code applica il limite autonomamente prima di ogni richiesta, quindi vale su ogni provider, inclusi Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry. Richiede Claude Code v2.1.267 o successivo.
  • Ambito: Any file. Distribuiscila nelle impostazioni gestite per applicarla a un’organizzazione. Quando più ambiti impostano un limite, si applica il più basso, quindi un limite impostato in un ambito non può essere alzato da un altro
  • Tipo: stringa, uno tra "low", "medium", "high", "xhigh" o "max". Un valore "max" non imposta alcun limite
  • Predefinito: non impostato, quindi non si applica alcun limite
  • Limiti per modello: aggiungi maxEffortLevel alla voce modelSettings di un modello. Quella voce sostituisce questa chiave per il modello solo all’interno della fonte di impostazioni che imposta entrambe, come le tue impostazioni utente o una fonte gestita. Imposta lì "max" per esentare il modello dal limite di quella fonte; Claude Code applica comunque i limiti delle altre fonti
Questo esempio limita ogni modello a medium ed esenta Sonnet 4.6:
settings.json
Quando la tua organizzazione imposta anche un limite di sforzo per un modello, si applica il più basso dei due limiti.

model

Imposta il modello usato da ogni nuova sessione, così non devi sceglierne uno con /model ogni volta. Impostarlo qui non ti impedisce di cambiare modello durante la sessione. Se il tuo amministratore ha impostato un modello predefinito dell’organizzazione che sovrascrive la selezione dell’utente, ottieni quel modello anche quando imposti questa chiave nelle impostazioni utente, di progetto o locali.
  • Ambito: Any file
  • Tipo: stringa, un alias di modello o un ID di modello completo
  • Predefinito: non impostato, quindi Claude Code usa il modello predefinito del tuo account
  • Override per sessione: --model ha la precedenza su ANTHROPIC_MODEL, ed entrambi hanno la precedenza su questa chiave per una sessione, anche su un model gestito; un elenco availableModels si applica comunque alla scelta
settings.json
Un valore qui ha la precedenza su ANTHROPIC_DEFAULT_MODEL, che Claude Code usa solo quando nient’altro seleziona un modello.

modelOverrides

Mappa gli ID di modello Anthropic su ID di modello specifici del provider, come gli ARN dei profili di inferenza di Amazon Bedrock. Ogni voce del selettore di modello usa quindi il valore mappato quando chiama l’API del provider. Gli amministratori la usano su Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry per instradare ogni versione del modello verso uno specifico profilo di inferenza, nome di versione o deploy, per governance, ripartizione dei costi o instradamento regionale.
  • Ambito: Any file
  • Tipo: oggetto che mappa un ID di modello su un ID di modello del provider
  • Predefinito: non impostato
Questo esempio instrada ogni chiamata per Opus 4.6 verso il profilo di inferenza Bedrock indicato:
settings.json
Consulta Sovrascrivere gli ID di modello per versione.

modelPicker

Elenca i modelli offerti dal selettore /model, nell’ordine in cui li scrivi e con le etichette che scegli, così il selettore elenca i modelli che la tua organizzazione utilizza, dopo la selezione integrata o al suo posto. Il model di ogni riga viene preso così com’è, quindi accetta tutto ciò che accetta --model: un alias come opus, un ID di modello Anthropic o un ID nel formato del provider per Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o un gateway LLM. Richiede Claude Code v2.1.242 o successivo.
  • Ambito: User or managed. Claude Code legge la chiave dalle impostazioni gestite, da --settings e dalle impostazioni utente, e la ignora nelle impostazioni di progetto e locali, così un repository che cloni non può rinominare le voci del selettore. La fonte con la precedenza più alta tra queste tre che imposta la chiave fornisce l’intera selezione, e Claude Code non combina mai le selezioni di due fonti.
  • Tipo: oggetto con un array options di righe e un Boolean opzionale replaceBuiltInOptions
  • Predefinito: non impostato, quindi il selettore mostra la selezione integrata
Questo esempio aggiunge due deploy Bedrock dopo la selezione integrata, con nomi che il tuo team riconosce:
managed-settings.json

Campi per modelPicker

La chiave accetta due campi, uno per le righe stesse e uno per stabilire se sostituiscono la selezione integrata o si aggiungono a essa. Una voce in options può anche avere una stringa opzionale behavesAs accanto al suo model, che richiede la v2.1.257 o successiva. Impostala sull’ID di un modello che la tua versione di Claude Code conosce già, come claude-opus-4-8, su una voce il cui model è più recente della tua versione. Claude Code applica quindi alla voce le capacità e i valori di sforzo predefiniti di quel modello noto invece di trattare il suo modello come sconosciuto. L’etichetta della voce e l’ID del modello che Claude Code invia nelle richieste non cambiano. Con replaceBuiltInOptions attivo, Claude Code nasconde ogni altra riga: la selezione integrata, le righe che aggiunge per le voci di availableModels, i modelli trovati dalla scoperta del gateway e ANTHROPIC_CUSTOM_MODEL_OPTION. Con l’opzione disattivata, Claude Code salta un modello elencato che la selezione integrata copre già. Un’etichetta cambia ciò che mostra il selettore, non il modello che Claude Code esegue. Un’allowlist availableModels si applica comunque a queste righe. Prima di aggiungere un modello elencato all’allowlist, leggi Comportamento del merge: un ID di modello specifico restringe la voce jolly della sua famiglia. Claude Code controlla anche ogni riga rispetto alla sessione prima di mostrare il selettore:
  • Scartata: una riga che Claude Code non può servire, come un modello ritirato o un modello a cui la tua organizzazione non ha accesso
  • Disattivata: una riga che non puoi ancora selezionare, mostrata con il motivo
  • Nessuna riga rimane: Claude Code mantiene la selezione integrata, filtrata dall’allowlist come di consueto
Claude Code scarta una riga che non riesce ad analizzare e mantiene il resto. Consulta Correggere un file di impostazioni danneggiato.

modelPricing

Riporta la spesa alle tariffe che la tua organizzazione paga invece che al prezzo di listino. Impostala quando la tua organizzazione ha tariffe contrattuali, così gli importi in dollari che vedono gli sviluppatori corrispondono alla tua fattura. Claude Code applica le tariffe in /usage, nella riga di stato, nel total_cost_usd dell’Agent SDK, nel limite --max-budget-usd e nella metrica e negli eventi di costo OpenTelemetry. Sei tu a fornire le tariffe: Claude Code non le legge dal tuo contratto né dalla Claude Console. Richiede Claude Code v2.1.242 o successivo.
  • Ambito: Managed. Distribuisci la chiave tramite le impostazioni gestite dal server, una policy MDM, un file managed-settings.json o un helper di policy. Claude Code la ignora nelle impostazioni utente, di progetto e locali, in --settings e, su Windows, nel registro HKCU scrivibile dall’utente. Con le impostazioni gestite dal server, ogni sessione riporta i costi al prezzo di listino finché il recupero delle impostazioni di quella sessione non ha confermato l’impostazione. Un’applicazione host che incorpora Claude Code e imposta CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST può fornire una propria tabella tramite l’opzione managedSettings dell’SDK, che Claude Code usa solo quando nessuna fonte gestita imposta la chiave e solo in Claude Code v2.1.246 o successivo.
  • Tipo: oggetto con un multiplier opzionale e una mappa overrides opzionale
  • Predefinito: non impostato, quindi Claude Code riporta il prezzo di listino, a meno che un’applicazione host non fornisca una tabella
Imposta solo multiplier per uno sconto o un ricarico fisso, solo overrides per tariffe per modello, oppure entrambi. Questo esempio imposta tariffe contrattuali per Sonnet 4.6 e poi riduce ogni importo, inclusa la riga Sonnet, del 15%:
managed-settings.json
Imposta multiplier sopra 1, fino a 10, per applicare un ricarico a ogni importo. Un ricarico richiede Claude Code v2.1.271 o successivo. Le versioni precedenti ignorano un multiplier superiore a 1 mostrando un avviso e mantengono il resto dell’impostazione. Per i passaggi, incluso come verificare che le tariffe siano in vigore, consulta Riportare la spesa alle tariffe contrattuali.

Campi per modelPricing

Claude Code usa le tariffe di una riga esattamente come le hai scritte, senza aggiungere il supplemento della modalità veloce o la tariffa per l’inferenza solo negli Stati Uniti. Se imposti anche multiplier, Claude Code lo applica sopra le tariffe della riga. Claude Code scarta una riga con una tariffa che non riesce ad analizzare, o un multiplier che non riesce ad analizzare, e mantiene il resto; consulta Correggere un file di impostazioni danneggiato.

A quali modelli si applica una riga di modelPricing

Claude Code decide a quali modelli si applica una riga in base alla chiave della riga:
  • L’ID di un modello integrato: una chiave che Claude Code stesso usa per un modello integrato, che si tratti dell’ID del modello stesso, come claude-sonnet-4-6, o del suo ID Bedrock, Agent Platform o Foundry. Claude Code applica la riga a ogni ID di snapshot con data e a ogni ID specifico del provider di quel modello.
  • Qualsiasi altra chiave: una chiave che non è l’ID di un modello integrato, come l’alias di un modello del gateway. Claude Code applica la riga solo a quell’ID. Quando un ID di modello corrisponde esattamente a una delle tue chiavi e rientra anche in una riga con chiave l’ID di un modello integrato, Claude Code usa la corrispondenza esatta.
  • Un profilo di inferenza applicativo di Bedrock: una volta che Claude Code ha risolto il profilo nel modello verso cui instrada, tramite la tua mappa modelOverrides o la ricerca bedrock:GetInferenceProfile, Claude Code applica al profilo la riga di quel modello.

modelSettings

Salva un livello di sforzo per ogni modello che usi. Richiede Claude Code v2.1.251 o successivo. In una sessione interattiva sulla tua macchina, quando salvi low, medium, high o xhigh come predefinito con /effort o con il cursore dello sforzo del selettore /model, Claude Code scrive qui quel livello sotto il modello che stai usando, quindi raramente modifichi questa chiave tu stesso. Quando scegli uno di questi livelli nel selettore di modello dell’estensione VS Code, Claude Code lo salva qui allo stesso modo. La voce effortLevel elenca le sessioni in cui /effort si applica solo a quella sessione. Modifica la chiave a mano per cambiare o rimuovere un livello che hai salvato. L’effortLevel di un modello qui ha la precedenza sull’effortLevel di primo livello nello stesso file di impostazioni. Tra file diversi, Claude Code risolve ogni modello separatamente: decide il file di impostazioni con la precedenza più alta che imposta un effortLevel per quel modello o un effortLevel di primo livello che si applica a quel modello, quindi un effortLevel nelle impostazioni gestite ha la precedenza su un livello che hai salvato nelle impostazioni utente. Regolare il livello di sforzo elenca cos’altro può sovrascrivere un livello salvato, come --effort all’avvio. Per limitare lo sforzo di un modello invece di impostarne il livello, aggiungi un campo maxEffortLevel alla voce di quel modello. Il campo richiede Claude Code v2.1.267 o successivo.
  • Ambito: Any file
  • Tipo: oggetto che mappa il nome di un modello su un oggetto con uno qualsiasi di questi campi:
    • effortLevel: uno tra "low", "medium", "high" o "xhigh"
    • maxEffortLevel: il livello di sforzo più alto a cui il modello può essere eseguito
    • autoCompactWindow: un numero di token da 100000 a 1000000, oppure "auto" per la finestra ottimizzata per il modello. /autocompact salva qui. Per quel modello, il valore ha la precedenza su un autoCompactWindow di primo livello nello stesso file di impostazioni. Richiede Claude Code v2.1.288 o successivo
  • Predefinito: non impostato
Claude Code scrive ogni voce sotto il nome canonico del modello, come claude-opus-5-5, e fa corrispondere alla stessa voce l’alias di quel modello, gli ID con suffisso di data, quelli [1m] e quelli specifici del provider riconosciuti. Questo esempio mantiene Opus 5.5 su high mentre gli altri modelli usano i propri livelli salvati o predefiniti:
settings.json
Esegui /effort auto per cancellare il livello salvato per il modello che stai usando. Claude Code lascia invariate le altre voci e qualsiasi effortLevel di primo livello.

outputStyle

Seleziona uno stile di output per nome. Uno stile di output è un insieme salvato di istruzioni che cambia il ruolo, il tono e il formato di output di Claude, come gli stili integrati Explanatory e Learning o uno che hai scritto tu. Se cambi questa chiave durante una sessione, Claude usa il nuovo stile a partire dal tuo messaggio successivo. Per sapere quanto costa quel messaggio in termini di prompt caching, consulta Cambiare lo stile di output. Prima della v2.1.251, la modifica si applicava solo dopo aver eseguito /clear o aver avviato una nuova sessione.
  • Ambito: Any file
  • Tipo: stringa, il nome di uno stile di output integrato o personalizzato
  • Predefinito: non impostato, quindi Claude Code usa lo stile predefinito
Questo esempio seleziona lo stile integrato Explanatory, che aggiunge approfondimenti didattici tra un’attività e l’altra:
settings.json

promptCacheTtl

Scegli per quanto tempo la cache del prompt conserva la conversazione principale. Questa chiave si applica ai tuoi turni interattivi, -p e dell’Agent SDK, insieme agli helper che Claude Code esegue in linea con essi. La durata di un’ora mantiene la cache calda durante le pause più lunghe, e l’API fattura ogni scrittura in cache a una tariffa più alta rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo. Questo esempio mantiene la conversazione principale sulla durata di un’ora e lascia i subagent su cinque minuti:
settings.json
Per sapere quanto costa ciascuna durata, consulta Durata della cache.

showThinkingSummaries

Visualizza i riepiloghi del ragionamento esteso di Claude nelle sessioni interattive. Impostala se vuoi i riepiloghi completi quando espandi il ragionamento con Ctrl+O. Quando non è impostata o è false, l’API Anthropic oscura i blocchi di ragionamento e Claude Code mostra un segnaposto compresso.
  • Ambito: Any file
  • Tipo: Boolean
    • true: vedi i riepiloghi completi del ragionamento quando lo espandi con Ctrl+O
    • false: l’API Anthropic oscura i blocchi di ragionamento e Claude Code mostra un segnaposto compresso
  • Predefinito: false
settings.json
L’oscuramento cambia solo ciò che vedi, non ciò che il modello genera. Per ridurre la spesa per il ragionamento, abbassa il budget o disabilita il ragionamento.

subagentPromptCacheTtl

Scegli per quanto tempo la cache del prompt conserva le richieste che Claude Code effettua al di fuori della conversazione principale. Questa chiave si applica ai subagent, ai workflow e alle richieste in background e di supporto di Claude Code stesso, come la compattazione e i titoli delle sessioni. La durata di un’ora mantiene la cache calda durante le pause più lunghe, e l’API fattura ogni scrittura in cache a una tariffa più alta rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo. Questo esempio assegna la durata di un’ora ai subagent e alle altre richieste al di fuori della conversazione principale:
settings.json
Questa chiave copre le richieste che promptCacheTtl non copre, quindi imposta entrambe per scegliere una durata per ogni richiesta effettuata da Claude Code. Per sapere in cosa la cache di un subagent differisce da quella della conversazione principale, consulta I subagent e la cache.

switchModelsOnFlag

Scegli cosa succede quando un classificatore di sicurezza segnala una richiesta: passare al modello di fallback e continuare, oppure mettere in pausa per permetterti di scegliere tra cambiare modello e modificare il prompt.
  • Ambito: Any file. Compare in /config come Switch models when a message is flagged, con le opzioni Switch automatically e Ask each time.
  • Tipo: Boolean
    • true: Claude Code passa al modello di fallback e continua
    • false: in una sessione interattiva Claude Code si mette in pausa per permetterti di scegliere tra cambiare modello e modificare il prompt; dove non può essere mostrata alcuna finestra di dialogo, come in un’esecuzione -p, la richiesta segnalata termina con un errore
  • Predefinito: non impostato. Claude Code cambia modello automaticamente, anche se in una sessione interattiva potrebbe chiedere prima
settings.json
Consulta Chiedere prima di cambiare modello.

ultracode

Avvia le sessioni con ultracode attivo. Quando è attivo, Claude pianifica un workflow per ogni attività sostanziale invece di aspettare che tu lo chieda. Claude pianifica i workflow solo quando i workflow dinamici sono abilitati per te e il tuo modello supporta lo sforzo xhigh. La chiave non cambia il livello di sforzo della sessione: ultracode viene eseguito al livello usato dalla sessione. Claude Code legge questa chiave ma non la scrive mai: /effort ultracode attiva ultracode solo per la sessione corrente.
  • Ambito: Any file
  • Tipo: Boolean
    • true: le sessioni si avviano con ultracode attivo quando i workflow dinamici sono abilitati per te e il tuo modello supporta xhigh
    • false: le sessioni si avviano con ultracode disattivato
  • Predefinito: non impostato, quindi ultracode è disattivato
  • Override per sessione: /effort ultracode attiva ultracode per una sessione senza questa chiave, e /effort ultracode off lo disattiva per una sessione quando questa chiave è true. Anche il flag --effort ultracode lo attiva per una sessione, con sforzo xhigh
settings.json
Il livello di sforzo della sessione proviene da effortLevel, modelSettings e dalle altre fonti dello sforzo, e un limite di sforzo come maxEffortLevel abbassa quel livello senza disattivare ultracode. Questo comportamento e la forma /effort ultracode off richiedono Claude Code v2.1.284 o successivo. Prima della v2.1.284, ultracode: true eseguiva la sessione con sforzo xhigh, e un limite di sforzo inferiore a xhigh manteneva ultracode disattivato. Anche una richiesta di controllo apply_flag_settings dell’Agent SDK accetta la chiave.

Impostazioni dei permessi

Decidi cosa Claude può fare senza chiedere, la modalità di permesso predefinita per le nuove sessioni e cosa consente il classificatore della modalità auto. Per la sintassi delle regole e il modello dei permessi, consulta Configurare i permessi.

allowManagedPermissionRulesOnly

Rendi le impostazioni gestite l’unica fonte di impostazioni delle regole di permesso. Claude Code ignora quindi le regole allow, ask e deny nei file utente, progetto, locale e --settings, ignora --allowedTools, nasconde le opzioni consenti-sempre nelle richieste di permesso e smette di salvare nuove regole. Quando si applicano le impostazioni padre da un host di incorporamento, Claude Code le tratta come parte del livello gestito. Scarta le loro regole allow e additionalDirectories e mantiene le loro regole deny e ask, eccetto le regole Read e Edit il cui modello inizia con !. Un host non può escludere percorsi dalle regole gestite con una regola !, indipendentemente dal fatto che tu imposti questa chiave. Le regole --disallowedTools e le regole deny e ask della sessione corrente si applicano ancora, anche dopo che Claude Code ricarica le impostazioni a metà sessione. Poiché si limitano a restringere, non possono ampliare ciò che le regole gestite concedono. Prima della v2.1.257, Claude Code scartava quelle regole da riga di comando e di sessione al primo ricaricamento delle impostazioni. Per cosa può escludere un modello ! in una regola --disallowedTools o di sessione, consulta Regole Read e Edit. Quando imposti questa chiave, Claude Code v2.1.282 o successivo ignora anche il frontmatter allowed-tools nelle skill e nei file .claude/commands/ provenienti da queste fonti:
  • La directory .claude/ di un repository
  • Le tue directory ~/.claude/skills/ e ~/.claude/commands/, incluse le skill sincronizzate da claude.ai
  • Una directory --add-dir
  • I plugin dichiarati con un manifest .claude-plugin all’interno di ~/.claude/skills/ o di .claude/skills/ del progetto
  • I plugin caricati per una sola sessione, i cui id terminano con @inline, quando valgono tutte queste condizioni:
    • La sessione è una sessione Code o una sessione Cowork, diversa da una sessione cloud, per cui è l’app Claude Desktop stessa ad avviare Claude Code
    • Le tue impostazioni gestite impostano la chiave, non solo le impostazioni padre di un host di incorporamento
    • La sessione esegue Claude Code v2.1.305 o successivo
Le skill provenienti dalle impostazioni gestite e le skill incluse mantengono il loro allowed-tools. Anche i plugin @inline al di fuori di quelle sessioni Desktop mantengono il loro, eccetto uno denominato anthropic-skills. Il disallowed-tools di una skill si applica comunque. Per cosa vede uno sviluppatore quando Claude Code ignora il campo, consulta Quando si applicano solo le regole di permesso gestite.
  • Ambito: Managed
  • Tipo: Booleano
    • true: le impostazioni gestite diventano l’unica fonte di impostazioni delle regole di permesso
    • false: Claude Code applica le regole di permesso dai file utente, progetto, locale e --settings oltre a quelle gestite
  • Predefinito: non impostato, quindi Claude Code applica le regole di permesso dalle impostazioni utente, progetto e locale e da --settings, oltre a quelle gestite
managed-settings.json
Questa chiave non blocca l’allowlist dei server MCP; per farlo, imposta allowManagedMcpServersOnly. Consulta Impostazioni solo gestite.

autoMode

Aggiungi le tue regole a ciò che il classificatore della modalità auto blocca e consente. Usalo per dire al classificatore quali repository, bucket e domini la tua organizzazione ritiene affidabili, in modo che smetta di bloccare le operazioni interne di routine. Il classificatore viene fornito con regole di consenso e di negazione integrate. Includi la stringa letterale "$defaults" in un array per mantenere quelle regole integrate in quella posizione e aggiungere le tue intorno; omettila per sostituirle con le tue.
  • Ambito: User or managed
  • Tipo: oggetto con array environment, allow, soft_deny e hard_deny di regole in prosa, più il Booleano classifyAllShell
  • Predefinito: non impostato, quindi il classificatore utilizza solo le sue regole integrate
Questo esempio mantiene le regole soft_deny integrate, tramite "$defaults", e ne aggiunge un’altra che blocca terraform apply:
settings.json
Quando più di uno di questi file imposta lo stesso array, Claude Code concatena le voci. Per il formato della regola e come viene applicato ogni array, consulta Configurare la modalità auto.

autoMode.classifyAllShell

Invia ogni comando Bash e PowerShell attraverso il classificatore della modalità auto mentre la modalità auto è attiva. Per impostazione predefinita, la modalità auto sospende solo le regole di consenso che potrebbero eseguire codice arbitrario: regole a livello di strumento e wildcard come Bash(*) e prefissi di interprete o shell-wrapper come Bash(python *). Un comando che corrisponde a qualsiasi altra regola di consenso, come Bash(npm test), salta il classificatore a meno che non porti con sé domini consentiti per comando. Quando lo salta, un argomento distruttivo che il prefisso della regola non aveva previsto può passare inosservato. L’impostazione di questa chiave sospende ogni regola di consenso della shell per la sessione, in modo che il classificatore veda ogni comando. Richiede Claude Code v2.1.193 o successivo.
  • Ambito: User or managed. Viene letta ovunque venga letto autoMode.
  • Tipo: Booleano
    • true: mentre la modalità auto è attiva, Claude Code invia ogni comando Bash e PowerShell attraverso il classificatore e sospende le tue regole di consenso della shell; al di fuori della modalità auto le regole si applicano ancora
    • false: la modalità auto sospende solo le regole di consenso che potrebbero eseguire codice arbitrario, come Bash(*) e Bash(python *); un comando che corrisponde a qualsiasi altra regola di consenso salta il classificatore a meno che non porti con sé domini consentiti per comando, e ogni altro comando shell passa attraverso di esso
  • Predefinito: false
settings.json
Questa chiave funziona diversamente in una sessione Code Mode. Consulta Instradare tutti i comandi shell attraverso il classificatore.

disableAutoMode

Rimuovi la modalità auto dal ciclo Shift+Tab. Qualsiasi sessione che altrimenti inizierebbe in modalità auto, sia da --permission-mode auto, da un file di impostazioni o dal predefinito integrato, inizia invece in default. Gli amministratori la impostano nelle impostazioni gestite per impedire agli sviluppatori della loro organizzazione di utilizzare la modalità auto.
  • Ambito: Any file. Più utile nelle impostazioni gestite, dove gli utenti non possono sovrascriverla. Accettata anche sotto permissions come permissions.disableAutoMode.
  • Tipo: la stringa "disable"
  • Predefinito: non impostato
settings.json

permissions

Controlla quali strumenti Claude può utilizzare senza chiedere, per quali chiede conferma e quali sono bloccati. Imposta anche la modalità di permesso predefinita per le nuove sessioni. Ogni chiave permissions.* di seguito si annida sotto questo oggetto.
  • Ambito: Any file
  • Tipo: oggetto con allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, blockWritesOutsideWorkingDirectories, defaultMode, denyInsteadOfPrompting, disableBypassPermissionsMode e disableAutoMode
  • Predefinito: non impostato
Questo esempio approva i comandi npm run senza chiedere, chiede conferma prima di git push, blocca le letture di .env e avvia le sessioni in acceptEdits:
settings.json
I tre array di regole condividono una sintassi; consulta Sintassi delle regole di permesso sotto permissions.allow. Per come si combinano le regole di permesso da file diversi, consulta come viene eseguito il merge delle regole di permesso tra gli ambiti; per come si combinano in generale le chiavi delle impostazioni, consulta Precedenza delle impostazioni nella guida alle impostazioni.

useAutoModeDuringPlan

Scegli se Claude Code utilizza il classificatore della modalità auto per esaminare i comandi shell in plan mode. Con il valore predefinito true, il classificatore esamina ogni comando durante la pianificazione quando la modalità auto è disponibile e non vedi alcuna richiesta di conferma, eccetto per le rimozioni di percorsi critici. Imposta false per ottenere una richiesta di permesso per ogni comando al di fuori dell’insieme integrato di sola lettura. Appare in /config come Use auto mode during plan.
  • Ambito: User, local, or managed. Un repository non può disattivarla per te.
    • Un false in uno qualsiasi di questi file o in --settings la disattiva, a meno che tu non escluda quel file utente o locale con un’opzione come --setting-sources. Ignorare un file escluso richiede Claude Code v2.1.314 o successivo
  • Tipo: Booleano
    • true: equivale a non impostato; quando la modalità auto è disponibile, il classificatore esamina i comandi shell durante la pianificazione
    • false: ricevi una richiesta di permesso per ogni comando al di fuori dell’insieme integrato di sola lettura
  • Predefinito: true
settings.json

permissions.allow

Elenca gli usi degli strumenti che Claude Code approva senza chiederti. In una regola MCP, * può apparire solo nel nome dello strumento dopo il prefisso mcp__<server>__, come mcp__github__get_*; non può apparire nel nome del server.
  • Ambito: Any file
  • Tipo: array di stringhe di regole di permesso
  • Predefinito: non impostato
  • Override per sessione: --allowedTools aggiunge regole di consenso per una sessione, e una regola di negazione da qualsiasi file di impostazioni blocca comunque uno strumento che nomina
Questo esempio approva git diff e consente a Claude Code di leggere il tuo .zshrc senza chiedere:
settings.json
Claude Code applica le regole allow dal .claude/settings.json di un progetto solo dopo che accetti la finestra di dialogo di fiducia del workspace per quella cartella.

Sintassi delle regole di permesso

Le regole di permesso seguono il formato Tool o Tool(specifier). Claude Code valuta prima le regole deny, poi ask, poi allow, e la prima corrispondenza decide indipendentemente da quanto sia specifica ogni regola; consulta l’ordine di valutazione delle regole di permesso. Ogni riga mostra una forma di regola e a cosa corrisponde. Per la sintassi completa delle regole, incluso il comportamento dei wildcard, i modelli specifici dello strumento per le regole Read, Edit, WebFetch, MCP e Agent e i limiti di sicurezza dei modelli Bash, consulta Sintassi delle regole di permesso.

permissions.ask

Elenca gli usi degli strumenti per cui ti viene chiesta conferma anche in una modalità di permesso che altrimenti li approverebbe, come acceptEdits o bypassPermissions. In modalità dontAsk Claude Code nega un uso dello strumento corrispondente invece di chiedere.
  • Ambito: Any file
  • Tipo: array di stringhe di regole di permesso
  • Predefinito: non impostato
settings.json

permissions.deny

Elenca gli usi degli strumenti che Claude Code blocca. Usalo per file che contengono chiavi API, segreti o valori di ambiente: Claude Code esclude i file corrispondenti dalla scoperta dei file e dai risultati della ricerca, ne nega le letture e blocca gli strumenti Edit e Write sui percorsi corrispondenti. Le regole di negazione Read e Edit si applicano agli strumenti di file integrati di Claude, ai comandi di file che Claude Code riconosce in Bash, come cat, head, tail, sed e tee, e ai target dei reindirizzamenti Bash come > file e < file; non si applicano a un comando che legge file senza nominarli, come grep -r pattern ., o a sottoprocessi arbitrari, quindi per l’applicazione a livello di sistema operativo abilita la sandbox.
  • Ambito: Any file
  • Tipo: array di stringhe di regole di permesso
  • Predefinito: non impostato
  • Override per sessione: --disallowedTools aggiunge regole di negazione per una sessione insieme a questa chiave
Questo esempio nega le letture dei file .env, della directory secrets e di un file di credenziali e blocca i comandi curl:
settings.json
I nomi degli strumenti accettano modelli glob, quindi "*" nega ogni strumento e "mcp__*" nega ogni strumento MCP. Claude Code ignora una regola di negazione per lo strumento EndConversation finché qualsiasi altro strumento è ancora disponibile per Claude. Una regola di negazione Bash corrisponde al comando così come Claude lo scrive, quindi Bash(curl *) non ferma /usr/bin/curl o sh -c 'curl …'; consulta a cosa non corrisponde una regola Bash. Questa chiave sostituisce la configurazione deprecata ignorePatterns.

permissions.additionalDirectories

Dai a Claude l’accesso ai file nelle directory al di fuori di quella in cui hai iniziato, come directory di lavoro aggiuntive. La maggior parte della configurazione .claude/ non viene rilevata da queste directory.
  • Ambito: Any file, con limiti sull’accesso in scrittura della sandbox concesso dalle voci di progetto e locali
  • Tipo: array di percorsi di directory
  • Predefinito: non impostato
  • Override per sessione: --add-dir e /add-dir aggiungono directory per una sessione insieme a questa chiave
settings.json
Come le regole allow, le voci nel .claude/settings.json di un progetto hanno effetto solo dopo che accetti la finestra di dialogo di fiducia del workspace per quella cartella.

permissions.blockReadsOutsideWorkingDirectories

Fai sì che gli strumenti di file di Claude rifiutino le letture al di fuori delle tue directory di lavoro in ogni modalità di permesso, inclusa bypassPermissions. Claude Code nega le chiamate Read, Grep, Glob e LSP su quei percorsi e dice a Claude di chiederti di aggiungere la directory con /add-dir. I file di cui Claude Code stesso ha bisogno rimangono leggibili, come le tue skill, i plugin, le regole, gli agenti, i comandi e il file di memoria CLAUDE.md sotto ~/.claude/. Richiede Claude Code v2.1.257 o successivo. Claude Code non rifiuta i comandi shell allo stesso modo: Un comando Bash che il parser della shell non riesce a tracciare, come uno che cambia directory più di una volta o esegue una subshell, ti chiede conferma anche in modalità auto e in modalità bypassPermissions. La richiesta appare anche quando il comando non nomina alcun percorso al di fuori delle directory di lavoro. Questa richiesta non si applica quando il comando viene eseguito nella sandbox e la sandbox applica il blocco. Claude Code scrive true qui anche quando scegli di bloccare tali letture nella richiesta della modalità auto prima della prima lettura al di fuori delle directory di lavoro.
  • Ambito: Any file. Un true in qualsiasi file si applica, quindi un repository può attivare il blocco per se stesso ma non può rimuovere il tuo.
  • Tipo: Booleano
    • true: gli strumenti di file di Claude rifiutano le letture al di fuori delle directory di lavoro
    • false: equivale a non impostato; il blocco si applica comunque se un altro file imposta true
  • Predefinito: non impostato, quindi le letture al di fuori delle directory di lavoro seguono la tua modalità di permesso
settings.json
Per rimuovere il blocco, elimina la chiave da ogni file di impostazioni che la imposta, quindi riavvia ogni sessione in esecuzione. Le directory che aggiungi con --add-dir, /add-dir o additionalDirectories nelle tue impostazioni utente o gestite contano come directory di lavoro per il blocco. Le directory aggiunte solo nelle impostazioni del repository non contano: quelle in .claude/settings.json e quelle in .claude/settings.local.json, a meno che git non segnali quel file come non tracciato. In una directory che non è un repository git, o quando git traccia il file, Claude Code tratta .claude/settings.local.json come impostazioni del repository, quindi metti invece le directory che vuoi mantenere leggibili nelle tue impostazioni utente. Quando autoMemoryDirectory proviene dal .claude/settings.json del progetto, o da un .claude/settings.local.json trattato come fornito dal repository, Claude Code non carica alcuna memoria automatica da quella directory e non vi salva nulla.

Comandi in sandbox sotto il blocco

Quando il sandboxing è attivo, il blocco copre anche i comandi in sandbox. Claude Code nega loro l’accesso in lettura alla tua directory home e alle altre radici che contengono file utente: /Users, /home, /root, /Volumes, /mnt, /media, /run/media e /srv. Quindi riapre le directory di lavoro, i worktree che Claude Code crea nella sessione, la directory temporanea della sessione e le parti di ~/.claude di cui i comandi hanno bisogno, come skill e plugin. Mentre il blocco è in vigore, le voci allowRead e allowWrite dalle impostazioni del repository non contano. Quando la directory di lavoro della sessione è un worktree git collegato, incluso uno in cui Claude Code è entrato a metà sessione, la directory .git comune del repository rimane leggibile e scrivibile per i comandi in sandbox, in modo che git continui a funzionare lì. In questi casi il blocco non raggiunge i comandi in sandbox, mentre gli strumenti di file di Claude continuano ad applicarlo: Sotto il blocco, Claude Code riapre i tuoi file di configurazione git globali ai comandi in sandbox in modo che git mantenga la tua identità e le tue impostazioni:
  • ~/.gitconfig
  • I file config, ignore e attributes sotto $XDG_CONFIG_HOME/git, che per impostazione predefinita è ~/.config/git
  • I file che la tua configurazione git globale nomina tramite [include], [includeIf], core.excludesFile o core.attributesFile
Claude Code valuta ogni file separatamente. Quando un file si trova dove un comando in sandbox può scrivere, direttamente o tramite un collegamento simbolico, Claude Code non riapre i file che esso nomina. Su Linux e WSL2, un file di configurazione che è un collegamento simbolico può rimanere illeggibile nel proprio percorso, e git viene quindi eseguito senza di esso. ~/.git-credentials e $XDG_CONFIG_HOME/git/credentials rimangono bloccati. Se un file riaperto contiene un segreto, come un token http.extraHeader, aggiungi il suo percorso a sandbox.filesystem.denyRead. Una voce denyRead che copre un file ha sempre la precedenza su questa riapertura.

permissions.blockWritesOutsideWorkingDirectories

Fai sì che gli strumenti Write, Edit e NotebookEdit rifiutino i percorsi al di fuori delle tue directory di lavoro in ogni modalità di permesso, inclusa bypassPermissions, a parte alcuni file di Claude Code stesso. La chiave non limita i comandi shell, gli strumenti MCP o i programmi eseguiti dagli hook. Per limitare dove scrivono i comandi shell, attiva il sandboxing. Richiede Claude Code v2.1.314 o successivo. Una volta attivata la chiave, Claude Code rimuove anche gli strumenti EnterWorktree e ExitWorktree o rifiuta le chiamate a essi. Per continuare a lavorare nei worktree, segui Claude non ha lo strumento EnterWorktree.
  • Ambito: Any file. Un true in qualsiasi file caricato dalla sessione si applica, quindi un repository può attivare il blocco per se stesso ma non può rimuovere il tuo. In una sessione cloud, Claude Code potrebbe non applicare la chiave, perché gli strumenti di file vengono eseguiti in un container che costituisce esso stesso il confine.
  • Tipo: Booleano
    • true: attiva il blocco
    • false: equivale a non impostato; il blocco si applica comunque se un altro file imposta true
  • Predefinito: non impostato, quindi le scritture al di fuori delle directory di lavoro seguono la tua modalità di permesso. Il blocco è attivo anche finché Claude Code non riesce a leggere l’oggetto permissions nelle tue impostazioni gestite.
settings.json
Per testare il blocco, chiedi a Claude di usare lo strumento Write per creare un file al di fuori delle tue directory di lavoro, come ~/block-test.txt se la tua directory home non è una di esse. Claude Code rifiuta la chiamata, e il rifiuto indica che l’impostazione blocca le scritture al di fuori delle directory di lavoro. Per rimuovere il blocco, elimina la chiave da ogni file di impostazioni che la imposta, quindi riavvia Claude Code.

Cosa rifiuta il blocco delle scritture e cosa rimane scrivibile

Alcuni file di Claude Code stesso rimangono scrivibili, come i file di piano, lo scratchpad, la directory tmp di una sessione in background e i file .md nella memoria automatica di questo progetto. Oltre ai tuoi file al di fuori delle directory di lavoro, il blocco rifiuta le scritture in:
  • File di impostazioni di Claude Code: Claude Code rifiuta queste scritture anche all’interno delle directory di lavoro, perché un file di impostazioni può rimuovere il blocco. Modifica tu stesso i file di impostazioni.
  • Una directory aggiunta solo dalle impostazioni del repository: una che additionalDirectories elenca solo in .claude/settings.json, o in .claude/settings.local.json a meno che git non segnali quel file come non tracciato
  • Il worktree di un subagent: le modifiche ai file di un subagent isolation: worktree vengono rifiutate quando il suo worktree si trova al di fuori delle directory di lavoro
  • Memoria automatica in una directory scelta dal repository: una directory che autoMemoryDirectory nomina nelle impostazioni del repository
I file di impostazioni restano rifiutati qualunque cosa tu aggiunga. Per far passare una scrittura in uno qualsiasi degli altri casi, aggiungi una directory di lavoro. /add-dir richiede una directory esistente, quindi per i worktree dei subagent indica la directory .claude/worktrees nella radice del repository.

Far passare una directory attraverso il blocco delle letture o delle scritture

Per consentire a Claude di raggiungere una directory al di fuori del progetto mentre blockReadsOutsideWorkingDirectories o blockWritesOutsideWorkingDirectories è true, aggiungila come directory di lavoro. Esegui /add-dir <directory> nella sessione, passa --add-dir <directory> quando avvii Claude Code, oppure elencala sotto additionalDirectories nelle tue impostazioni utente o gestite. Nessuna regola di consenso permette agli strumenti di file di Claude di superare l’uno o l’altro blocco.

permissions.defaultMode

Imposta la modalità di permesso predefinita per le nuove sessioni. Quando la lasci non impostata, si applica il predefinito integrato per la tua superficie.
  • Ambito: Any file. auto e bypassPermissions non hanno effetto dalle impostazioni di progetto o locali, quindi impostali invece in ~/.claude/settings.json. Prima della v2.1.257, bypassPermissions aveva effetto da qualsiasi file. Per le conversazioni avviate dall’estensione VS Code, Claude Code legge solo i valori utente, gestiti e --settings.
  • Tipo: stringa, uno di:
    • "default": Claude Code esegue senza chiedere solo le letture
    • "acceptEdits": Claude Code esegue senza chiedere anche modifiche ai file e comandi comuni del file system come mkdir e mv
    • "plan": Claude Code legge e pianifica ma blocca le modifiche finché non approvi un piano
    • "auto": Claude Code procede senza richieste di conferma di routine; prima che vengano eseguite azioni come comandi shell e richieste di rete, un classificatore in background verifica che siano in linea con la tua richiesta
    • "dontAsk": Claude Code nega automaticamente ogni chiamata per cui altrimenti chiederebbe conferma, anche se un mod che hai installato può comunque approvare alcune di queste chiamate. Le letture di file all’interno delle tue directory di lavoro, le altre azioni che non richiedono approvazione e gli strumenti pre-approvati vengono comunque eseguiti, eccetto le letture da percorsi di rete
    • "bypassPermissions": Claude Code esegue tutto senza chiedere
    • "manual": un alias per "default"
  • Predefinito: non impostato
  • Override per sessione: --permission-mode e il suo equivalente --dangerously-skip-permissions per bypassPermissions hanno la precedenza su questa chiave per una sessione
settings.json
Le regole di permesso si sovrappongono a ogni modalità: le regole deny bloccano in ogni modalità, inclusa bypassPermissions. Consulta Modalità di permesso. Nelle sessioni cloud, Claude Code rispetta solo acceptEdits, plan, default e auto da questa chiave. Per le conversazioni avviate dall’estensione VS Code, consulta quale impostazione legge l’estensione per la modalità di permesso iniziale.

permissions.denyInsteadOfPrompting

Imposta questa chiave su true per mantenere in esecuzione una sessione quando non c’è nessuno a rispondere a una richiesta di permesso. Claude Code nega una chiamata a uno strumento che altrimenti resterebbe in attesa di una richiesta di conferma, e il turno continua. Richiede Claude Code v2.1.319 o successivo. Una chiamata procede se una regola di consenso, la tua modalità di permesso o il classificatore della modalità auto la approva. Per consentire la maggior parte delle chiamate per cui altrimenti verrebbe chiesta conferma, rispondi da un hook PermissionRequest.
  • Ambito: User or managed, e --settings. Un repository non può impostarla per te.
  • Tipo: Booleano
    • true: Claude Code nega le chiamate per cui altrimenti chiederebbe conferma
    • false: equivale a non impostato; le chiamate vengono comunque negate se un’altra di queste fonti imposta true
  • Predefinito: non impostato, quindi una chiamata che richiede approvazione ti chiede conferma
In ~/.claude/settings.json, questo esempio avvia le sessioni in modalità auto e nega tutto ciò che ricadrebbe comunque su una richiesta di conferma:
settings.json
La chiave si applica nelle esecuzioni -p, nelle sessioni interattive del terminale, nell’estensione VS Code, nelle sessioni locali nell’app Desktop, nei subagent e nei team di agenti. Per negare invece ciò che chiederebbe conferma in una singola esecuzione non interattiva, passa --permission-prompts none con -p.

Cos’altro blocca denyInsteadOfPrompting

Con l’impostazione attiva, Claude Code blocca anche queste richieste di risposta:
  • Strumenti di domanda e di piano: Claude Code esclude AskUserQuestion, EnterPlanMode e ExitPlanMode, quindi una sessione in plan mode non può uscirne da sola. Un membro di un team di agenti mantiene EnterPlanMode e ExitPlanMode
  • Elicitation MCP: Claude Code annulla una richiesta di elicitation a meno che un hook Elicitation non vi risponda
  • Host dei permessi: Claude Code non interpella la tua callback canUseTool né --permission-prompt-tool. Per approvare le chiamate da codice, rispondi da un hook PermissionRequest. Alcune chiamate vengono negate prima che venga interpellato qualsiasi hook, come una rimozione di percorsi critici in modalità auto non coperta da alcuna regola ask.
  • Avviso di fatturazione del classificatore: dove l’avviso sulle richieste del classificatore fatturate aprirebbe una finestra di dialogo, Claude Code non lo mostra e nega le azioni che richiedono quelle richieste
Una sessione può comunque restare in attesa della finestra di dialogo di fiducia del workspace e dell’approvazione dei server MCP di progetto. Rispondi a entrambe prima di lasciare la sessione in esecuzione.

Messaggi da denyInsteadOfPrompting

Questi messaggi segnalano chiamate rifiutate. Non sono richieste di conferma, quindi nulla attende la tua risposta. Il diniego che Claude legge può iniziare con questo testo:
Nell’output stream-json, le esecuzioni che emettono un messaggio permission_denied riportano questo decision_reason:
In modalità auto con l’impostazione attiva, il turno termina dopo 20 chiamate consecutive che il classificatore ha bloccato o che un controllo di sicurezza ha rifiutato, e vedi questo messaggio:
Un’esecuzione -p segnala quel turno come error_during_execution.

permissions.disableBypassPermissionsMode

Impedisci a chiunque di entrare in modalità bypassPermissions. Claude Code rifiuta quindi il flag --dangerously-skip-permissions e ignora il permissionMode: bypassPermissions della definizione di un agente, quindi il subagent viene eseguito con la modalità di permesso della sessione padre.
  • Ambito: Any file. Tipicamente impostata nelle impostazioni gestite per applicare la policy dell’organizzazione.
  • Tipo: la stringa "disable"
  • Predefinito: non impostato
  • Override per sessione: questa chiave ha la precedenza su --dangerously-skip-permissions, che Claude Code rifiuta finché la chiave è impostata
settings.json
Prima della v2.1.223, Claude Code applicava la modalità di permesso del frontmatter anche con il bypass disabilitato.

skipAutoPermissionPrompt

Salta l’avviso una tantum che descrive la modalità auto che Claude Code mostra quando entri per la prima volta in modalità auto di tua iniziativa, ad esempio tramite le tue impostazioni o il selettore di modalità, anziché quando è il predefinito integrato ad avviare una sessione in quella modalità. Claude Code mostra quell’avviso una volta e poi registra che è stato mostrato, quindi questa chiave conta solo dove l’avviso non è ancora apparso.
  • Ambito: User or managed. Un repository non può impostarla per te.
  • Tipo: Booleano
    • true: Claude Code salta l’avviso
    • false: equivale a non impostato; l’avviso appare una volta a meno che un altro di questi file non imposti true
  • Predefinito: non impostato, quindi l’avviso appare una volta
settings.json

skipDangerousModePermissionPrompt

Salta la finestra di dialogo di conferma che Claude Code mostra prima che una sessione entri in modalità bypassPermissions, sia da --dangerously-skip-permissions sia da defaultMode: "bypassPermissions". Claude Code scrive true qui nelle tue impostazioni utente quando accetti quella finestra di dialogo una volta.
  • Ambito: User, local, or managed, e i file passati con --settings. Le sessioni in background considerano solo le impostazioni utente e gestite. Un repository non attendibile non può saltare la finestra di dialogo per te.
  • Tipo: Booleano
    • true: Claude Code salta la finestra di dialogo di conferma prima che una sessione entri in modalità bypassPermissions
    • false: equivale a non impostato; la finestra di dialogo appare a meno che un altro di questi file non imposti true
  • Predefinito: non impostato, quindi la finestra di dialogo appare
settings.json

Impostazioni sandbox

Isola i comandi che Claude esegue dal tuo filesystem, dalla tua rete e dalle tue credenziali. Per informazioni su come funziona il sandboxing e sui requisiti della piattaforma, vedi Sandboxing.

sandbox

Isola i comandi Bash che Claude esegue dal tuo filesystem e dalla rete con il sandboxing. Attiva la sandbox con enabled, quindi restringi o amplia ciò che i comandi in sandbox possono toccare con i sotto-oggetti filesystem, network e credentials. La sandbox funziona su macOS, Linux e WSL2.
  • Scope: Any file
  • Tipo: oggetto con enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, allowNestedUserNamespaces, bwrapPath, socatPath, ignoreViolations e ripgrep, più gli oggetti filesystem, network e credentials
  • Default: non impostato, quindi Claude Code esegue i comandi senza sandbox
Questo attiva la sandbox, salta le richieste di permesso per i comandi in sandbox, esegue docker al di fuori della sandbox, apre due percorsi di scrittura aggiuntivi, nasconde il tuo file di credenziali AWS e pre-consente GitHub e npm:
settings.json
Quando le impostazioni gestite impostano una chiave booleana come enabled o failIfUnavailable, quel valore sovrascrive qualsiasi cosa imposti uno sviluppatore. Claude Code esegue il merge delle chiavi array negli ambiti di impostazioni che la sessione carica, quindi uno sviluppatore può aggiungere voci; vedi Keep developers from widening the policy per i blocchi solo gestiti. Per richiedere la sandbox per un’organizzazione, vedi Enforce sandboxing with managed settings.

sandbox.enabled

Attiva il sandboxing per i comandi Bash. Quando scegli una modalità nel pannello /sandbox, Claude Code scrive questa chiave in .claude/settings.local.json per il progetto corrente; impostala in ~/.claude/settings.json per mettere in sandbox ogni progetto.
settings.json
Su Linux e WSL2 la sandbox ha bisogno di bubblewrap e socat; vedi Set up Linux and WSL2. Quando la sandbox non può avviarsi, Claude Code esegue i comandi senza sandbox a meno che tu non imposti anche failIfUnavailable.

sandbox.failIfUnavailable

Fa terminare Claude Code con un errore all’avvio quando sandbox.enabled è true ma la sandbox non può avviarsi perché la piattaforma non la supporta o il controllo delle dipendenze fallisce. Senza questa chiave, Claude Code esegue i comandi senza sandbox. Le distribuzioni gestite che richiedono il sandboxing come barriera di sicurezza possono usare questa impostazione. Su una piattaforma che la sandbox non supporta, Claude Code non si avvia con questa chiave attiva. Vedi Enforce sandboxing with managed settings.
  • Scope: Any file, con limiti sulle impostazioni di progetto e locali
  • Tipo: booleano
    • true: Claude Code termina con un errore all’avvio quando sandbox.enabled è true ma la sandbox non riesce ad avviarsi. Se la sandbox supera quel controllo e poi non riesce a inizializzarsi, la sessione continua e Claude Code rifiuta ogni comando in sandbox
    • false: Claude Code esegue i comandi fuori dalla sandbox quando la sandbox non riesce ad avviarsi
  • Default: false
Questo attiva la sandbox per le macchine gestite e imposta failIfUnavailable su true:
managed-settings.json
Vedi Enforce sandboxing with managed settings.

sandbox.autoAllowBashIfSandboxed

Consente a Claude Code di eseguire i comandi Bash in sandbox senza una richiesta di permesso. I comandi che non possono essere eseguiti nella sandbox passano comunque per il normale flusso dei permessi, e le regole deny e le regole ask limitate al contenuto come Bash(git push *) continuano ad applicarsi; una regola ask Bash generica viene saltata per i comandi in sandbox. Impostala su false per far passare anche i comandi in sandbox per il normale flusso dei permessi, che la scheda Mode di /sandbox chiama modalità dei permessi normali.
  • Scope: Any file
  • Type: Boolean
    • true: Claude Code esegue i comandi Bash in sandbox senza una richiesta di permesso, tranne nei casi descritti in Auto-allow mode; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB disattiva l’auto-consentimento
    • false: i comandi in sandbox seguono il flusso di permessi regolare, quindi decidono le tue regole allow e la modalità di permesso. La scheda Mode di /sandbox chiama questa modalità di permessi regolari
  • Default: true
Questo mantiene la sandbox attiva e invia i comandi in sandbox attraverso il flusso di permessi regolare:
settings.json
Vedi Auto-allow mode per ciò per cui la modalità auto-consentimento chiede ancora conferma e come si comporta in plan mode.

sandbox.excludedCommands

Nomina i comandi che Claude Code esegue al di fuori della sandbox, come gli strumenti che non funzionano sotto di essa. Ogni voce utilizza la stessa sintassi del contenuto di una regola di permesso Bash(...): un comando esatto, un prefisso come docker * o un pattern con wildcard. Un pattern senza wildcard è una corrispondenza esatta, quindi docker corrisponde solo a docker senza argomenti. Le tue voci tolgono una chiamata Bash dalla sandbox solo quando coprono ogni comando in essa, e alcune forme di chiamata rimangono in sandbox anche allora. Una voce docker * da sola non toglie npm ci && docker build . dalla sandbox.
settings.json
Claude Code mantiene una chiamata Bash in sandbox quando ha una di queste forme, tra le altre:
  • Un comando che inizia con sudo, eval o xargs
  • Un cd, pushd o popd, ovunque appaia nella chiamata
  • Una sostituzione di comando, una subshell o un blocco di controllo di flusso come if o for
  • Un reindirizzamento, come docker build . > build.log o un heredoc <<EOF, diverso da uno che si limita a duplicare un descrittore di file, come fa 2>&1
  • Un nome di comando che proviene da una variabile
  • Un git clone, git init, git worktree add, git worktree move o git bundle create con un argomento di percorso che è assoluto, inizia con ~ o contiene un segmento ..
Ad esempio, cd build && docker compose up rimane in sandbox sotto una voce docker *, e aggiungere una voce cd non cambia questo. Sotto una voce git *, git clone <url> vendor/lib viene eseguito al di fuori della sandbox, ma git clone <url> ~/tools rimane in sandbox. Un clone scrive un intero albero di file, possibilmente eseguibili, ovunque punti il suo percorso di destinazione. I comandi esclusi seguono comunque il flusso di permessi regolare. L’esclusione è una comodità, non un confine di sicurezza: quando uno strumento ha solo bisogno di scrivere in un punto specifico, filesystem.allowWrite lo mantiene in sandbox. Le voci degli ambiti di impostazioni che la sessione carica si combinano in un unico elenco, a meno che la sandbox non sia richiesta dall’amministratore. In quel caso, Claude Code ignora le voci in .claude/settings.json e .claude/settings.local.json, quindi un repository clonato non può togliere comandi dalla sandbox. Le voci nelle impostazioni gestite, in --settings e nel tuo ~/.claude/settings.json si applicano comunque, e nessun blocco solo gestito copre questo elenco.

sandbox.allowUnsandboxedCommands

Consenti a Claude di riprovare un comando al di fuori della sandbox con il parametro dangerouslyDisableSandbox dopo che la sandbox lo blocca. Quando è false, Claude Code ignora quel parametro. Mentre la sandbox è in esecuzione, i comandi che Claude esegue sono quindi in sandbox a meno che non corrispondano a una voce di excludedCommands. L