~/.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:
--advisorha la precedenza su questa chiave per una sessione.CLAUDE_CODE_DISABLE_ADVISOR_TOOLdisattiva l’advisor, e questa chiave non può riattivarlo
settings.json
"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à attivofalse: 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_TOKENSha la precedenza su questa chiave per una sessione:0disattiva il ragionamento, con gli stessi limiti di modello e provider difalse, 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
settings.json
"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 nonclaude-opus-5-5. Una voce come"claude-opus-4-5"consente anche il relativo ID di modello Anthropic con dataclaude-opus-4-5-20251101. Un alias di famiglia come"opus"consente comunque l’intera famiglia, e le vocibest,opusplanedefaultvengono ignorate
- Predefinito:
"prefix"
managed-settings.json
"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,opusplanedefaultvengono ignorate
- Un alias di famiglia come
- Predefinito: non impostato, quindi nessun modello è bloccato
managed-settings.json
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:
--effortha la precedenza su questa chiave per una sessione, eCLAUDE_CODE_EFFORT_LEVELha la precedenza su entrambi
settings.json
~/.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 diavailableModels, Claude Code lo risolve nel primo modello disponibile dell’elencofalse: questa chiave non cambia il modo in cui Default si risolve
- Predefinito:
false
settings.json
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-modelha la precedenza su questa chiave per una sessione
settings.json
["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/fastmentre usi Fable 5.2false: la modalità veloce resta disattivata
- Predefinito: non impostato, quindi la modalità veloce è disattivata
- Override per sessione:
CLAUDE_CODE_DISABLE_FAST_MODEdisattiva 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: unfastMode: truesalvato non attiva più la modalità veloce all’avvio della sessione, quindi ogni persona esegue/fastin ogni sessione in cui la vuole; unfastMode: truepassato con--settingsvale comunque per quella sessione, a meno che le impostazioni gestite non impostino questa chiavefalse: unfastMode: truesalvato funziona come descritto infastMode
- Predefinito:
false
settings.json
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
maxEffortLevelalla vocemodelSettingsdi 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
medium ed esenta Sonnet 4.6:
settings.json
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:
--modelha la precedenza suANTHROPIC_MODEL, ed entrambi hanno la precedenza su questa chiave per una sessione, anche su unmodelgestito; un elencoavailableModelssi applica comunque alla scelta
settings.json
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
settings.json
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--settingse 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
optionsdi righe e un Boolean opzionalereplaceBuiltInOptions - Predefinito: non impostato, quindi il selettore mostra la selezione integrata
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
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 filemanaged-settings.jsono un helper di policy. Claude Code la ignora nelle impostazioni utente, di progetto e locali, in--settingse, 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 impostaCLAUDE_CODE_PROVIDER_MANAGED_BY_HOSTpuò fornire una propria tabella tramite l’opzionemanagedSettingsdell’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
multiplieropzionale e una mappaoverridesopzionale - Predefinito: non impostato, quindi Claude Code riporta il prezzo di listino, a meno che un’applicazione host non fornisca una tabella
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
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
modelOverrideso la ricercabedrock: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 eseguitoautoCompactWindow: un numero di token da100000a1000000, oppure"auto"per la finestra ottimizzata per il modello./autocompactsalva qui. Per quel modello, il valore ha la precedenza su unautoCompactWindowdi primo livello nello stesso file di impostazioni. Richiede Claude Code v2.1.288 o successivo
- Predefinito: non impostato
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
/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
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.
- Ambito:
Any file - Tipo: stringa, uno tra:
"5m": la cache dura cinque minuti"1h": la cache dura un’ora
- Predefinito: non impostato, quindi ogni richiesta della conversazione principale ottiene la sua durata predefinita
- Override per sessione:
FORCE_PROMPT_CACHING_5Mha la precedenza su tutto il resto, poiCLAUDE_CODE_PROMPT_CACHE_TTL, poi questa chiave e infineENABLE_PROMPT_CACHING_1H
settings.json
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 conCtrl+Ofalse: l’API Anthropic oscura i blocchi di ragionamento e Claude Code mostra un segnaposto compresso
- Predefinito:
false
settings.json
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.
- Ambito:
Any file - Tipo: stringa, uno tra:
"5m": la cache dura cinque minuti"1h": la cache dura un’ora
- Predefinito: non impostato, quindi ciascuna di queste richieste ottiene la sua durata predefinita
- Override per sessione:
FORCE_PROMPT_CACHING_5Mha la precedenza su tutto il resto, poiCLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL, poi questa chiave, poiENABLE_PROMPT_CACHING_1H, che richiede la durata di un’ora per ogni richiesta. Per sapere dove si colloca il valore nel frontmatter di un subagent, consulta Scegliere il TTL autonomamente
settings.json
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/configcome 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 continuafalse: 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
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 supportaxhighfalse: le sessioni si avviano con ultracode disattivato
- Predefinito: non impostato, quindi ultracode è disattivato
- Override per sessione:
/effort ultracodeattiva ultracode per una sessione senza questa chiave, e/effort ultracode offlo disattiva per una sessione quando questa chiave ètrue. Anche il flag--effort ultracodelo attiva per una sessione, con sforzoxhigh
settings.json
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-pluginall’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
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 permessofalse: Claude Code applica le regole di permesso dai file utente, progetto, locale e--settingsoltre 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
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_denyehard_denydi regole in prosa, più il BooleanoclassifyAllShell - Predefinito: non impostato, quindi il classificatore utilizza solo le sue regole integrate
soft_deny integrate, tramite "$defaults", e ne aggiunge un’altra che blocca terraform apply:
settings.json
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 lettoautoMode. - 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 ancorafalse: la modalità auto sospende solo le regole di consenso che potrebbero eseguire codice arbitrario, comeBash(*)eBash(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
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 sottopermissionscomepermissions.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,disableBypassPermissionsModeedisableAutoMode - Predefinito: non impostato
npm run senza chiedere, chiede conferma prima di git push, blocca le letture di .env e avvia le sessioni in acceptEdits:
settings.json
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
falsein uno qualsiasi di questi file o in--settingsla 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
- Un
- Tipo: Booleano
true: equivale a non impostato; quando la modalità auto è disponibile, il classificatore esamina i comandi shell durante la pianificazionefalse: 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:
--allowedToolsaggiunge regole di consenso per una sessione, e una regola di negazione da qualsiasi file di impostazioni blocca comunque uno strumento che nomina
git diff e consente a Claude Code di leggere il tuo .zshrc senza chiedere:
settings.json
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 formatoTool 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:
--disallowedToolsaggiunge regole di negazione per una sessione insieme a questa chiave
.env, della directory secrets e di un file di credenziali e blocca i comandi curl:
settings.json
"*" 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-dire/add-diraggiungono directory per una sessione insieme a questa chiave
settings.json
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:
- Azioni che nessuna modalità approva automaticamente spiega quando un comando shell che legge un tale percorso ti chiede conferma
- Comandi in sandbox sotto il blocco spiega cosa può leggere un comando in sandbox
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. Untruein 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 lavorofalse: equivale a non impostato; il blocco si applica comunque se un altro file impostatrue
- Predefinito: non impostato, quindi le letture al di fuori delle directory di lavoro seguono la tua modalità di permesso
settings.json
--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:
- L’isolamento del file system è disattivato tramite
sandbox.filesystem.disabled allowManagedReadPathsOnlyè impostato- Il percorso della directory in cui hai avviato Claude Code contiene un carattere glob come
*,?o[
git mantenga la tua identità e le tue impostazioni:
~/.gitconfig- I file
config,ignoreeattributessotto$XDG_CONFIG_HOME/git, che per impostazione predefinita è~/.config/git - I file che la tua configurazione git globale nomina tramite
[include],[includeIf],core.excludesFileocore.attributesFile
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. Untruein 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 bloccofalse: equivale a non impostato; il blocco si applica comunque se un altro file impostatrue
- 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
permissionsnelle tue impostazioni gestite.
settings.json
~/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 directorytmp 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
additionalDirectorieselenca solo in.claude/settings.json, o in.claude/settings.local.jsona meno che git non segnali quel file come non tracciato - Il worktree di un subagent: le modifiche ai file di un subagent
isolation: worktreevengono 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
autoMemoryDirectorynomina nelle impostazioni del repository
/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 mentreblockReadsOutsideWorkingDirectories 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.autoebypassPermissionsnon hanno effetto dalle impostazioni di progetto o locali, quindi impostali invece in~/.claude/settings.json. Prima della v2.1.257,bypassPermissionsaveva 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 comemkdiremv"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-modee il suo equivalente--dangerously-skip-permissionsperbypassPermissionshanno la precedenza su questa chiave per una sessione
settings.json
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 confermafalse: equivale a non impostato; le chiamate vengono comunque negate se un’altra di queste fonti impostatrue
- Predefinito: non impostato, quindi una chiamata che richiede approvazione ti chiede conferma
~/.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
-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,EnterPlanModeeExitPlanMode, quindi una sessione in plan mode non può uscirne da sola. Un membro di un team di agenti mantieneEnterPlanModeeExitPlanMode - Elicitation MCP: Claude Code annulla una richiesta di elicitation a meno che un hook
Elicitationnon vi risponda - Host dei permessi: Claude Code non interpella la tua callback
canUseToolné--permission-prompt-tool. Per approvare le chiamate da codice, rispondi da un hookPermissionRequest. Alcune chiamate vengono negate prima che venga interpellato qualsiasi hook, come una rimozione di percorsi critici in modalitàautonon 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
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:
stream-json, le esecuzioni che emettono un messaggio permission_denied riportano questo decision_reason:
-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
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’avvisofalse: equivale a non impostato; l’avviso appare una volta a meno che un altro di questi file non impostitrue
- 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àbypassPermissionsfalse: equivale a non impostato; la finestra di dialogo appare a meno che un altro di questi file non impostitrue
- 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,ignoreViolationseripgrep, più gli oggettifilesystem,networkecredentials - Default: non impostato, quindi Claude Code esegue i comandi senza sandbox
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
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.
- Scope:
Any file, con limiti sulle impostazioni di progetto e locali - Type: Boolean
true: Claude Code mette in sandbox i comandi Bashfalse: i comandi Bash vengono eseguiti senza sandbox
- Default:
false
settings.json
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 quandosandbox.enabledètruema 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 sandboxfalse: Claude Code esegue i comandi fuori dalla sandbox quando la sandbox non riesce ad avviarsi
- Default:
false
failIfUnavailable su true:
managed-settings.json
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_SCRUBdisattiva l’auto-consentimentofalse: 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/sandboxchiama questa modalità di permessi regolari
- Default:
true
settings.json
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.
- Scope:
Any file, con limiti sulle impostazioni di progetto e locali - Type: array di pattern di comando
- Default: non impostato, quindi nessun comando è escluso
settings.json
- Un comando che inizia con
sudo,evaloxargs - Un
cd,pushdopopd, ovunque appaia nella chiamata - Una sostituzione di comando, una subshell o un blocco di controllo di flusso come
ifofor - Un reindirizzamento, come
docker build . > build.logo un heredoc<<EOF, diverso da uno che si limita a duplicare un descrittore di file, come fa2>&1 - Un nome di comando che proviene da una variabile
- Un
git clone,git init,git worktree add,git worktree moveogit bundle createcon un argomento di percorso che è assoluto, inizia con~o contiene un segmento..
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