Claude Code offre una varietà di impostazioni per configurare il suo comportamento in base alle tue esigenze. Puoi configurare Claude Code eseguendo il comando /config quando utilizzi il REPL interattivo, che apre un’interfaccia Impostazioni con schede dove puoi visualizzare informazioni di stato e modificare le opzioni di configurazione.

File di impostazioni

Il file settings.json è il nostro meccanismo ufficiale per configurare Claude Code attraverso impostazioni gerarchiche:
  • Impostazioni utente sono definite in ~/.claude/settings.json e si applicano a tutti i progetti.
  • Impostazioni di progetto sono salvate nella directory del tuo progetto:
    • .claude/settings.json per le impostazioni che vengono controllate nel controllo del codice sorgente e condivise con il tuo team
    • .claude/settings.local.json per le impostazioni che non vengono controllate, utili per preferenze personali e sperimentazione. Claude Code configurerà git per ignorare .claude/settings.local.json quando viene creato.
  • Per le distribuzioni enterprise di Claude Code, supportiamo anche impostazioni di policy gestite dall’enterprise. Queste hanno la precedenza sulle impostazioni utente e di progetto. Gli amministratori di sistema possono distribuire policy a:
    • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
    • Linux e WSL: /etc/claude-code/managed-settings.json
    • Windows: C:\ProgramData\ClaudeCode\managed-settings.json
  • Le distribuzioni enterprise possono anche configurare server MCP gestiti che sostituiscono i server configurati dall’utente. Vedi Configurazione MCP Enterprise:
    • macOS: /Library/Application Support/ClaudeCode/managed-mcp.json
    • Linux e WSL: /etc/claude-code/managed-mcp.json
    • Windows: C:\ProgramData\ClaudeCode\managed-mcp.json
Esempio settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Impostazioni disponibili

settings.json supporta un numero di opzioni:
ChiaveDescrizioneEsempio
apiKeyHelperScript personalizzato, da eseguire in /bin/sh, per generare un valore di autenticazione. Questo valore verrà inviato come header X-Api-Key e Authorization: Bearer per le richieste di modello/bin/generate_temp_api_key.sh
cleanupPeriodDaysQuanto tempo conservare localmente i trascritti della chat in base alla data dell’ultima attività (predefinito: 30 giorni)20
envVariabili di ambiente che verranno applicate a ogni sessione{"FOO": "bar"}
includeCoAuthoredBySe includere la riga co-authored-by Claude nei commit git e nelle pull request (predefinito: true)false
permissionsVedi la tabella sottostante per la struttura dei permessi.
hooksConfigura comandi personalizzati da eseguire prima o dopo l’esecuzione degli strumenti. Vedi documentazione hooks{"PreToolUse": {"Bash": "echo 'Running command...'"}}
disableAllHooksDisabilita tutti gli hookstrue
modelSostituisci il modello predefinito da utilizzare per Claude Code"claude-sonnet-4-5-20250929"
statusLineConfigura una riga di stato personalizzata per visualizzare il contesto. Vedi documentazione statusLine{"type": "command", "command": "~/.claude/statusline.sh"}
outputStyleConfigura uno stile di output per regolare il prompt di sistema. Vedi documentazione output styles"Explanatory"
forceLoginMethodUsa claudeai per limitare il login agli account Claude.ai, console per limitare il login agli account Claude Console (fatturazione per utilizzo API)claudeai
forceLoginOrgUUIDSpecifica l’UUID di un’organizzazione per selezionarla automaticamente durante il login, bypassando il passaggio di selezione dell’organizzazione. Richiede che forceLoginMethod sia impostato"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
enableAllProjectMcpServersApprova automaticamente tutti i server MCP definiti nei file .mcp.json del progettotrue
enabledMcpjsonServersElenco di server MCP specifici dai file .mcp.json da approvare["memory", "github"]
disabledMcpjsonServersElenco di server MCP specifici dai file .mcp.json da rifiutare["filesystem"]
useEnterpriseMcpConfigOnlyQuando impostato in managed-settings.json, limita i server MCP solo a quelli definiti in managed-mcp.json. Vedi Configurazione MCP Enterprisetrue
allowedMcpServersQuando impostato in managed-settings.json, elenco di server MCP che gli utenti possono configurare. Non definito = nessuna restrizione, array vuoto = blocco totale. Si applica a tutti gli ambiti. La denylist ha la precedenza. Vedi Configurazione MCP Enterprise[{ "serverName": "github" }]
deniedMcpServersQuando impostato in managed-settings.json, denylist di server MCP che sono esplicitamente bloccati. Si applica a tutti gli ambiti inclusi i server enterprise. La denylist ha la precedenza sulla allowlist. Vedi Configurazione MCP Enterprise[{ "serverName": "filesystem" }]
awsAuthRefreshScript personalizzato che modifica la directory .aws (vedi configurazione credenziali avanzata)aws sso login --profile myprofile
awsCredentialExportScript personalizzato che restituisce JSON con credenziali AWS (vedi configurazione credenziali avanzata)/bin/generate_aws_grant.sh

Impostazioni di permesso

ChiaviDescrizioneEsempio
allowArray di regole di permesso per consentire l’uso dello strumento. Nota: Le regole Bash utilizzano la corrispondenza di prefisso, non regex[ "Bash(git diff:*)" ]
askArray di regole di permesso per chiedere conferma all’uso dello strumento.[ "Bash(git push:*)" ]
denyArray di regole di permesso per negare l’uso dello strumento. Usa questo anche per escludere file sensibili dall’accesso di Claude Code. Nota: I pattern Bash sono corrispondenze di prefisso e possono essere bypassati (vedi limitazioni di permesso Bash)[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]
additionalDirectoriesDirectory di lavoro aggiuntive a cui Claude ha accesso[ "../docs/" ]
defaultModeModalità di permesso predefinita quando si apre Claude Code"acceptEdits"
disableBypassPermissionsModeImpostato su "disable" per impedire l’attivazione della modalità bypassPermissions. Questo disabilita il flag della riga di comando --dangerously-skip-permissions. Vedi impostazioni di policy gestite"disable"

Impostazioni sandbox

Configura il comportamento avanzato della sandbox. La sandbox isola i comandi bash dal tuo filesystem e dalla rete. Vedi Sandboxing per i dettagli. Le restrizioni di filesystem e rete sono configurate tramite regole di permesso Read, Edit e WebFetch, non tramite queste impostazioni di sandbox.
ChiaviDescrizioneEsempio
enabledAbilita la sandbox bash (solo macOS/Linux). Predefinito: falsetrue
autoAllowBashIfSandboxedApprova automaticamente i comandi bash quando in sandbox. Predefinito: truetrue
excludedCommandsComandi che dovrebbero essere eseguiti al di fuori della sandbox["git", "docker"]
network.allowUnixSocketsPercorsi socket Unix accessibili nella sandbox (per agenti SSH, ecc.)["~/.ssh/agent-socket"]
network.allowLocalBindingConsenti il binding alle porte localhost (solo MacOS). Predefinito: falsetrue
network.httpProxyPortPorta proxy HTTP utilizzata se desideri portare il tuo proxy. Se non specificato, Claude eseguirà il suo proxy.8080
network.socksProxyPortPorta proxy SOCKS5 utilizzata se desideri portare il tuo proxy. Se non specificato, Claude eseguirà il suo proxy.8081
enableWeakerNestedSandboxAbilita sandbox più debole per ambienti Docker senza privilegi (solo Linux). Riduce la sicurezza. Predefinito: falsetrue
Esempio di configurazione:
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker"],
    "network": {
      "allowUnixSockets": [
        "/var/run/docker.sock"
      ],
      "allowLocalBinding": true
    }
  },
  "permissions": {
    "deny": [
      "Read(.envrc)",
      "Read(~/.aws/**)"
    ]
  }
}
L’accesso al filesystem è controllato tramite permessi Read/Edit:
  • Le regole di negazione Read bloccano le letture di file nella sandbox
  • Le regole di consentimento Edit permettono le scritture di file (in aggiunta ai valori predefiniti, ad es. la directory di lavoro corrente)
  • Le regole di negazione Edit bloccano le scritture all’interno dei percorsi consentiti
L’accesso alla rete è controllato tramite permessi WebFetch:
  • Le regole di consentimento WebFetch permettono i domini di rete
  • Le regole di negazione WebFetch bloccano i domini di rete

Precedenza delle impostazioni

Le impostazioni vengono applicate in ordine di precedenza (dal più alto al più basso):
  1. Policy gestite dall’enterprise (managed-settings.json)
    • Distribuite da IT/DevOps
    • Non possono essere sovrascritte
  2. Argomenti della riga di comando
    • Override temporanei per una sessione specifica
  3. Impostazioni di progetto locale (.claude/settings.local.json)
    • Impostazioni personali specifiche del progetto
  4. Impostazioni di progetto condivise (.claude/settings.json)
    • Impostazioni di progetto condivise dal team nel controllo del codice sorgente
  5. Impostazioni utente (~/.claude/settings.json)
    • Impostazioni globali personali
Questa gerarchia assicura che le policy di sicurezza dell’enterprise siano sempre applicate mentre consente ancora ai team e agli individui di personalizzare la loro esperienza.

Punti chiave sul sistema di configurazione

  • File di memoria (CLAUDE.md): Contengono istruzioni e contesto che Claude carica all’avvio
  • File di impostazioni (JSON): Configurano permessi, variabili di ambiente e comportamento degli strumenti
  • Comandi slash: Comandi personalizzati che possono essere invocati durante una sessione con /command-name
  • Server MCP: Estendono Claude Code con strumenti e integrazioni aggiuntivi
  • Precedenza: Le configurazioni di livello superiore (Enterprise) sostituiscono quelle di livello inferiore (User/Project)
  • Eredità: Le impostazioni vengono unite, con impostazioni più specifiche che si aggiungono o sostituiscono quelle più ampie

Disponibilità del prompt di sistema

A differenza di claude.ai, non pubblichiamo il prompt di sistema interno di Claude Code su questo sito web. Usa i file CLAUDE.md o --append-system-prompt per aggiungere istruzioni personalizzate al comportamento di Claude Code.

Esclusione di file sensibili

Per impedire a Claude Code di accedere a file contenenti informazioni sensibili (ad es. chiavi API, segreti, file di ambiente), usa l’impostazione permissions.deny nel tuo file .claude/settings.json:
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Read(./build)"
    ]
  }
}
Questo sostituisce la configurazione deprecata ignorePatterns. I file che corrispondono a questi pattern saranno completamente invisibili a Claude Code, prevenendo qualsiasi esposizione accidentale di dati sensibili.

Configurazione subagent

Claude Code supporta subagent AI personalizzati che possono essere configurati sia a livello utente che di progetto. Questi subagent sono archiviati come file Markdown con frontmatter YAML:
  • Subagent utente: ~/.claude/agents/ - Disponibili in tutti i tuoi progetti
  • Subagent di progetto: .claude/agents/ - Specifici del tuo progetto e possono essere condivisi con il tuo team
I file subagent definiscono assistenti AI specializzati con prompt personalizzati e permessi degli strumenti. Scopri di più sulla creazione e l’utilizzo di subagent nella documentazione subagent.

Configurazione plugin

Claude Code supporta un sistema di plugin che ti consente di estendere la funzionalità con comandi personalizzati, agenti, hook e server MCP. I plugin vengono distribuiti attraverso marketplace e possono essere configurati sia a livello utente che di repository.

Impostazioni plugin

Impostazioni relative ai plugin in settings.json:
{
  "enabledPlugins": {
    "formatter@company-tools": true,
    "deployer@company-tools": true,
    "analyzer@security-plugins": false
  },
  "extraKnownMarketplaces": {
    "company-tools": {
      "source": "github",
      "repo": "company/claude-plugins"
    }
  }
}

enabledPlugins

Controlla quali plugin sono abilitati. Formato: "plugin-name@marketplace-name": true/false Ambiti:
  • Impostazioni utente (~/.claude/settings.json): Preferenze personali dei plugin
  • Impostazioni di progetto (.claude/settings.json): Plugin specifici del progetto condivisi con il team
  • Impostazioni locali (.claude/settings.local.json): Override per macchina (non committati)
Esempio:
{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

extraKnownMarketplaces

Definisce marketplace aggiuntivi che dovrebbero essere resi disponibili per il repository. Tipicamente utilizzato nelle impostazioni a livello di repository per assicurare che i membri del team abbiano accesso alle fonti di plugin richieste. Quando un repository include extraKnownMarketplaces:
  1. I membri del team vengono invitati a installare il marketplace quando si fidano della cartella
  2. I membri del team vengono quindi invitati a installare i plugin da quel marketplace
  3. Gli utenti possono saltare marketplace o plugin indesiderati (archiviati nelle impostazioni utente)
  4. L’installazione rispetta i confini di fiducia e richiede il consenso esplicito
Esempio:
{
  "extraKnownMarketplaces": {
    "company-tools": {
      "source": {
        "source": "github",
        "repo": "company-org/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.company.com/security/plugins.git"
      }
    }
  }
}
Tipi di fonte marketplace:
  • github: Repository GitHub (usa repo)
  • git: Qualsiasi URL git (usa url)
  • directory: Percorso del filesystem locale (usa path, solo per lo sviluppo)

Gestione dei plugin

Usa il comando /plugin per gestire i plugin in modo interattivo:
  • Sfoglia i plugin disponibili dai marketplace
  • Installa/disinstalla plugin
  • Abilita/disabilita plugin
  • Visualizza i dettagli del plugin (comandi, agenti, hook forniti)
  • Aggiungi/rimuovi marketplace
Scopri di più sul sistema di plugin nella documentazione plugin.

Variabili di ambiente

Claude Code supporta le seguenti variabili di ambiente per controllare il suo comportamento:
Tutte le variabili di ambiente possono anche essere configurate in settings.json. Questo è utile come modo per impostare automaticamente le variabili di ambiente per ogni sessione, o per distribuire un set di variabili di ambiente per tutto il tuo team o organizzazione.
VariabileScopo
ANTHROPIC_API_KEYChiave API inviata come header X-Api-Key, tipicamente per Claude SDK (per l’utilizzo interattivo, esegui /login)
ANTHROPIC_AUTH_TOKENValore personalizzato per l’header Authorization (il valore che imposti qui sarà prefissato con Bearer )
ANTHROPIC_CUSTOM_HEADERSHeader personalizzati che desideri aggiungere alla richiesta (in formato Name: Value)
ANTHROPIC_DEFAULT_HAIKU_MODELVedi Configurazione modello
ANTHROPIC_DEFAULT_OPUS_MODELVedi Configurazione modello
ANTHROPIC_DEFAULT_SONNET_MODELVedi Configurazione modello
ANTHROPIC_MODELNome dell’impostazione del modello da utilizzare (vedi Configurazione modello)
ANTHROPIC_SMALL_FAST_MODEL[DEPRECATO] Nome del modello di classe Haiku per attività in background
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONSostituisci la regione AWS per il modello di classe Haiku quando utilizzi Bedrock
AWS_BEARER_TOKEN_BEDROCKChiave API Bedrock per l’autenticazione (vedi Chiavi API Bedrock)
BASH_DEFAULT_TIMEOUT_MSTimeout predefinito per i comandi bash a lunga esecuzione
BASH_MAX_OUTPUT_LENGTHNumero massimo di caratteri negli output bash prima che vengano troncati al centro
BASH_MAX_TIMEOUT_MSTimeout massimo che il modello può impostare per i comandi bash a lunga esecuzione
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIRRitorna alla directory di lavoro originale dopo ogni comando Bash
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervallo in millisecondi in cui le credenziali dovrebbero essere aggiornate (quando si utilizza apiKeyHelper)
CLAUDE_CODE_CLIENT_CERTPercorso del file del certificato client per l’autenticazione mTLS
CLAUDE_CODE_CLIENT_KEY_PASSPHRASEPassphrase per la chiave CLAUDE_CODE_CLIENT_KEY crittografata (opzionale)
CLAUDE_CODE_CLIENT_KEYPercorso del file della chiave privata client per l’autenticazione mTLS
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICEquivalente all’impostazione di DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING e DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLEImpostato su 1 per disabilitare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALLSalta l’installazione automatica delle estensioni IDE
CLAUDE_CODE_MAX_OUTPUT_TOKENSImposta il numero massimo di token di output per la maggior parte delle richieste
CLAUDE_CODE_SKIP_BEDROCK_AUTHSalta l’autenticazione AWS per Bedrock (ad es. quando si utilizza un gateway LLM)
CLAUDE_CODE_SKIP_VERTEX_AUTHSalta l’autenticazione Google per Vertex (ad es. quando si utilizza un gateway LLM)
CLAUDE_CODE_SUBAGENT_MODELVedi Configurazione modello
CLAUDE_CODE_USE_BEDROCKUsa Bedrock
CLAUDE_CODE_USE_VERTEXUsa Vertex
DISABLE_AUTOUPDATERImpostato su 1 per disabilitare gli aggiornamenti automatici. Questo ha la precedenza sull’impostazione di configurazione autoUpdates.
DISABLE_BUG_COMMANDImpostato su 1 per disabilitare il comando /bug
DISABLE_COST_WARNINGSImpostato su 1 per disabilitare i messaggi di avvertimento sui costi
DISABLE_ERROR_REPORTINGImpostato su 1 per rinunciare alla segnalazione degli errori di Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSImpostato su 1 per disabilitare le chiamate al modello per percorsi non critici come il testo di sapore
DISABLE_PROMPT_CACHINGImpostato su 1 per disabilitare il caching dei prompt per tutti i modelli (ha la precedenza sulle impostazioni per modello)
DISABLE_PROMPT_CACHING_HAIKUImpostato su 1 per disabilitare il caching dei prompt per i modelli Haiku
DISABLE_PROMPT_CACHING_OPUSImpostato su 1 per disabilitare il caching dei prompt per i modelli Opus
DISABLE_PROMPT_CACHING_SONNETImpostato su 1 per disabilitare il caching dei prompt per i modelli Sonnet
DISABLE_TELEMETRYImpostato su 1 per rinunciare alla telemetria Statsig (nota che gli eventi Statsig non includono dati utente come codice, percorsi di file o comandi bash)
HTTP_PROXYSpecifica il server proxy HTTP per le connessioni di rete
HTTPS_PROXYSpecifica il server proxy HTTPS per le connessioni di rete
MAX_MCP_OUTPUT_TOKENSNumero massimo di token consentiti nelle risposte dello strumento MCP. Claude Code visualizza un avvertimento quando l’output supera 10.000 token (predefinito: 25000)
MAX_THINKING_TOKENSAbilita il pensiero esteso e imposta il budget di token per il processo di pensiero. Il pensiero esteso migliora le prestazioni su compiti di ragionamento e codifica complessi ma influisce sull’efficienza del caching dei prompt. Disabilitato per impostazione predefinita.
MCP_TIMEOUTTimeout in millisecondi per l’avvio del server MCP
MCP_TOOL_TIMEOUTTimeout in millisecondi per l’esecuzione dello strumento MCP
NO_PROXYElenco di domini e IP a cui le richieste verranno emesse direttamente, bypassando il proxy
SLASH_COMMAND_TOOL_CHAR_BUDGETNumero massimo di caratteri per i metadati del comando slash mostrati allo strumento SlashCommand (predefinito: 15000)
USE_BUILTIN_RIPGREPImpostato su 0 per utilizzare il rg installato dal sistema invece di rg incluso con Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKUSostituisci la regione per Claude 3.5 Haiku quando utilizzi Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNETSostituisci la regione per Claude 3.7 Sonnet quando utilizzi Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUSSostituisci la regione per Claude 4.0 Opus quando utilizzi Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNETSostituisci la regione per Claude 4.0 Sonnet quando utilizzi Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUSSostituisci la regione per Claude 4.1 Opus quando utilizzi Vertex AI

Strumenti disponibili per Claude

Claude Code ha accesso a un set di strumenti potenti che lo aiutano a comprendere e modificare la tua base di codice:
StrumentoDescrizionePermesso richiesto
BashEsegue comandi shell nel tuo ambiente
EditEffettua modifiche mirate a file specifici
GlobTrova file in base alla corrispondenza di patternNo
GrepCerca pattern nei contenuti dei fileNo
NotebookEditModifica le celle del notebook Jupyter
NotebookReadLegge e visualizza i contenuti del notebook JupyterNo
ReadLegge i contenuti dei fileNo
SlashCommandEsegue un comando slash personalizzato
TaskEsegue un sub-agent per gestire compiti complessi e multi-stepNo
TodoWriteCrea e gestisce elenchi di attività strutturatiNo
WebFetchRecupera il contenuto da un URL specificato
WebSearchEsegue ricerche web con filtro di dominio
WriteCrea o sovrascrivi file
Le regole di permesso possono essere configurate utilizzando /allowed-tools o nelle impostazioni di permesso. Vedi anche Regole di permesso specifiche dello strumento.

Estensione degli strumenti con hook

Puoi eseguire comandi personalizzati prima o dopo l’esecuzione di qualsiasi strumento utilizzando hook di Claude Code. Ad esempio, potresti eseguire automaticamente un formattatore Python dopo che Claude modifica file Python, o prevenire modifiche ai file di configurazione di produzione bloccando le operazioni Write su determinati percorsi.

Vedi anche