Claude Code offre una varietà di impostazioni per configurare il suo comportamento per soddisfare le tue esigenze. Puoi configurare Claude Code eseguendo il comando /config quando usi il REPL interattivo.

File delle 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 progetto sono salvate nella directory del tuo progetto:
    • .claude/settings.json per le impostazioni che vengono inserite nel controllo del codice sorgente e condivise con il tuo team
    • .claude/settings.local.json per le impostazioni che non vengono inserite, utili per preferenze personali e sperimentazione. Claude Code configurerà git per ignorare .claude/settings.local.json quando viene creato.
  • Per distribuzioni aziendali di Claude Code, supportiamo anche impostazioni di policy gestite dall’azienda. Queste hanno precedenza sulle impostazioni utente e 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
Example 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 una serie 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 del modello/bin/generate_temp_api_key.sh
cleanupPeriodDaysQuanto tempo mantenere localmente le trascrizioni delle chat basate sulla data dell’ultima attività (predefinito: 30 giorni)20
envVariabili d’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 tabella sotto per la struttura dei permessi.
hooksConfigura comandi personalizzati da eseguire prima o dopo le esecuzioni degli strumenti. Vedi documentazione hooks{"PreToolUse": {"Bash": "echo 'Running command...'"}}
modelSovrascrivi il modello predefinito da usare per Claude Code"claude-3-5-sonnet-20241022"
statusLineConfigura una linea di stato personalizzata per visualizzare il contesto. Vedi documentazione statusLine{"type": "command", "command": "~/.claude/statusline.sh"}
forceLoginMethodUsa claudeai per limitare il login agli account Claude.ai, console per limitare il login agli account Anthropic Console (fatturazione uso API)claudeai
enableAllProjectMcpServersApprova automaticamente tutti i server MCP definiti nei file .mcp.json del progettotrue
enabledMcpjsonServersLista di server MCP specifici dai file .mcp.json da approvare["memory", "github"]
disabledMcpjsonServersLista di server MCP specifici dai file .mcp.json da rifiutare["filesystem"]
awsAuthRefreshScript personalizzato che modifica la directory .aws (vedi configurazione avanzata delle credenziali)aws sso login --profile myprofile
awsCredentialExportScript personalizzato che restituisce JSON con credenziali AWS (vedi configurazione avanzata delle credenziali)/bin/generate_aws_grant.sh

Impostazioni dei permessi

ChiaviDescrizioneEsempio
allowArray di regole di permesso per consentire l’uso degli strumenti[ "Bash(git diff:*)" ]
askArray di regole di permesso per chiedere conferma all’uso degli strumenti.[ "Bash(git push:*)" ]
denyArray di regole di permesso per negare l’uso degli strumenti. Usa questo anche per escludere file sensibili dall’accesso di Claude Code.[ "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"
disableBypassPermissionsModeImposta su "disable" per impedire l’attivazione della modalità bypassPermissions. Vedi impostazioni di policy gestite"disable"

Precedenza delle impostazioni

Le impostazioni vengono applicate in ordine di precedenza (dal più alto al più basso):

  1. Policy gestite dall’azienda (managed-settings.json)

    • Distribuite da IT/DevOps
    • Non possono essere sovrascritte
  2. Argomenti della riga di comando

    • Sovrascritture temporanee per una sessione specifica
  3. Impostazioni locali del progetto (.claude/settings.local.json)

    • Impostazioni personali specifiche del progetto
  4. Impostazioni condivise del progetto (.claude/settings.json)

    • Impostazioni del 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 aziendali siano sempre applicate permettendo comunque ai team e agli individui di personalizzare la loro esperienza.

Punti chiave del sistema di configurazione

  • File di memoria (CLAUDE.md): Contengono istruzioni e contesto che Claude carica all’avvio
  • File delle impostazioni (JSON): Configurano permessi, variabili d’ambiente e comportamento degli strumenti
  • Comandi slash: Comandi personalizzati che possono essere invocati durante una sessione con /nome-comando
  • Server MCP: Estendono Claude Code con strumenti e integrazioni aggiuntive
  • Precedenza: Configurazioni di livello superiore (Azienda) sovrascrivono quelle di livello inferiore (Utente/Progetto)
  • Ereditarietà: Le impostazioni vengono unite, con impostazioni più specifiche che aggiungono o sovrascrivono 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.

Escludere file sensibili

Per impedire a Claude Code di accedere a file contenenti informazioni sensibili (ad es., chiavi API, segreti, file d’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 dei subagenti

Claude Code supporta subagenti AI personalizzati che possono essere configurati sia a livello utente che di progetto. Questi subagenti sono memorizzati come file Markdown con frontmatter YAML:

  • Subagenti utente: ~/.claude/agents/ - Disponibili in tutti i tuoi progetti
  • Subagenti progetto: .claude/agents/ - Specifici per il tuo progetto e possono essere condivisi con il tuo team

I file dei subagenti definiscono assistenti AI specializzati con prompt personalizzati e permessi degli strumenti. Scopri di più sulla creazione e l’uso dei subagenti nella documentazione dei subagenti.

Variabili d’ambiente

Claude Code supporta le seguenti variabili d’ambiente per controllare il suo comportamento:

Tutte le variabili d’ambiente possono anche essere configurate in settings.json. Questo è utile come modo per impostare automaticamente le variabili d’ambiente per ogni sessione, o per distribuire un set di variabili d’ambiente per tutto il tuo team o organizzazione.

VariabileScopo
ANTHROPIC_API_KEYChiave API inviata come header X-Api-Key, tipicamente per l’SDK Claude (per uso 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 vuoi aggiungere alla richiesta (nel formato Nome: Valore)
ANTHROPIC_MODELNome del modello personalizzato da usare (vedi Configurazione Modello)
ANTHROPIC_SMALL_FAST_MODELNome del modello classe Haiku per attività in background
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONSovrascrivi la regione AWS per il modello piccolo/veloce quando usi Bedrock
AWS_BEARER_TOKEN_BEDROCKChiave API Bedrock per l’autenticazione (vedi Chiavi API Bedrock)
BASH_DEFAULT_TIMEOUT_MSTimeout predefinito per comandi bash di lunga durata
BASH_MAX_TIMEOUT_MSTimeout massimo che il modello può impostare per comandi bash di lunga durata
BASH_MAX_OUTPUT_LENGTHNumero massimo di caratteri negli output bash prima che vengano troncati al centro
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIRRitorna alla directory di lavoro originale dopo ogni comando Bash
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervallo in millisecondi a cui le credenziali dovrebbero essere aggiornate (quando si usa apiKeyHelper)
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_USE_BEDROCKUsa Bedrock
CLAUDE_CODE_USE_VERTEXUsa Vertex
CLAUDE_CODE_SKIP_BEDROCK_AUTHSalta l’autenticazione AWS per Bedrock (ad es. quando si usa un gateway LLM)
CLAUDE_CODE_SKIP_VERTEX_AUTHSalta l’autenticazione Google per Vertex (ad es. quando si usa un gateway LLM)
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICEquivalente all’impostazione di DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING, e DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLEImposta su 1 per disabilitare gli aggiornamenti automatici del titolo del terminale basati sul contesto della conversazione
DISABLE_AUTOUPDATERImposta su 1 per disabilitare gli aggiornamenti automatici. Questo ha precedenza sull’impostazione di configurazione autoUpdates.
DISABLE_BUG_COMMANDImposta su 1 per disabilitare il comando /bug
DISABLE_COST_WARNINGSImposta su 1 per disabilitare i messaggi di avviso sui costi
DISABLE_ERROR_REPORTINGImposta su 1 per escludersi dalla segnalazione errori Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSImposta su 1 per disabilitare le chiamate del modello per percorsi non critici come il testo di sapore
DISABLE_TELEMETRYImposta su 1 per escludersi dalla telemetria Statsig (nota che gli eventi Statsig non includono dati utente come codice, percorsi 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_THINKING_TOKENSForza un budget di pensiero per il modello
MCP_TIMEOUTTimeout in millisecondi per l’avvio del server MCP
MCP_TOOL_TIMEOUTTimeout in millisecondi per l’esecuzione degli strumenti MCP
MAX_MCP_OUTPUT_TOKENSNumero massimo di token consentiti nelle risposte degli strumenti MCP (predefinito: 25000)
USE_BUILTIN_RIPGREPImposta su 0 per usare rg installato nel sistema invece di rg incluso con Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKUSovrascrivi la regione per Claude 3.5 Haiku quando usi Vertex AI
VERTEX_REGION_CLAUDE_3_5_SONNETSovrascrivi la regione per Claude Sonnet 3.5 quando usi Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNETSovrascrivi la regione per Claude 3.7 Sonnet quando usi Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUSSovrascrivi la regione per Claude 4.0 Opus quando usi Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNETSovrascrivi la regione per Claude 4.0 Sonnet quando usi Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUSSovrascrivi la regione per Claude 4.1 Opus quando usi Vertex AI

Opzioni di configurazione

Per gestire le tue configurazioni, usa i seguenti comandi:

  • Elenca impostazioni: claude config list
  • Vedi un’impostazione: claude config get <chiave>
  • Cambia un’impostazione: claude config set <chiave> <valore>
  • Aggiungi a un’impostazione (per liste): claude config add <chiave> <valore>
  • Rimuovi da un’impostazione (per liste): claude config remove <chiave> <valore>

Per impostazione predefinita config cambia la configurazione del tuo progetto. Per gestire la tua configurazione globale, usa il flag --global (o -g).

Configurazione globale

Per impostare una configurazione globale, usa claude config set -g <chiave> <valore>:

ChiaveDescrizioneEsempio
autoUpdatesSe abilitare gli aggiornamenti automatici (predefinito: true). Quando abilitato, Claude Code scarica e installa automaticamente gli aggiornamenti in background. Gli aggiornamenti vengono applicati quando riavvii Claude Code.false
preferredNotifChannelDove vuoi ricevere le notifiche (predefinito: iterm2)iterm2, iterm2_with_bell, terminal_bell, o notifications_disabled
themeTema coloredark, light, light-daltonized, o dark-daltonized
verboseSe mostrare output completi di bash e comandi (predefinito: false)true

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 basati sulla corrispondenza di patternNo
GrepCerca pattern nei contenuti dei fileNo
LSElenca file e directoryNo
MultiEditEsegue modifiche multiple su un singolo file atomicamente
NotebookEditModifica celle di notebook Jupyter
NotebookReadLegge e visualizza contenuti di notebook JupyterNo
ReadLegge i contenuti dei fileNo
TaskEsegue un subagente per gestire attività complesse e multi-stepNo
TodoWriteCrea e gestisce liste di attività strutturateNo
WebFetchRecupera contenuto da un URL specificato
WebSearchEsegue ricerche web con filtraggio del dominio
WriteCrea o sovrascrive file

Le regole di permesso possono essere configurate usando /allowed-tools o nelle impostazioni dei permessi.

Estendere gli strumenti con gli hook

Puoi eseguire comandi personalizzati prima o dopo l’esecuzione di qualsiasi strumento usando gli hook di Claude Code.

Ad esempio, potresti eseguire automaticamente un formattatore Python dopo che Claude modifica file Python, o impedire modifiche a file di configurazione di produzione bloccando operazioni Write su certi percorsi.

Vedi anche