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 impostazioni che sono incluse nel controllo del codice sorgente e condivise con il tuo team
    • .claude/settings.local.json per impostazioni che non sono incluse, 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 /Library/Application Support/ClaudeCode/policies.json su macOS e /etc/claude-code/policies.json su Linux e Windows tramite WSL.
Esempio settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Impostazioni disponibili

settings.json supporta diverse opzioni:

ChiaveDescrizioneEsempio
apiKeyHelperScript personalizzato, da eseguire in /bin/sh, per generare un valore di autenticazione. Questo valore sarà generalmente inviato come header X-Api-Key, Authorization: Bearer, e Proxy-Authorization: Bearer per le richieste del modello/bin/generate_temp_api_key.sh
cleanupPeriodDaysPer quanto tempo mantenere localmente le trascrizioni delle chat (predefinito: 30 giorni)20
envVariabili d’ambiente che saranno applicate a ogni sessione{"FOO": "bar"}
includeCoAuthoredBySe includere la riga co-authored-by Claude nei commit git e nelle pull request (predefinito: true)false
permissionsLe chiavi allow e deny sono una lista di regole di permesso{"allow": [ "Bash(npm run lint)" ]}

Precedenza delle impostazioni

Le impostazioni sono applicate in ordine di precedenza:

  1. Policy aziendali (vedi documentazione IAM)
  2. Argomenti della riga di comando
  3. Impostazioni progetto locali
  4. Impostazioni progetto condivise
  5. Impostazioni utente

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 il Claude SDK (per uso interattivo, esegui /login)
ANTHROPIC_AUTH_TOKENValore personalizzato per gli header Authorization e Proxy-Authorization (il valore che imposti qui sarà preceduto da Bearer )
ANTHROPIC_CUSTOM_HEADERSHeader personalizzati che vuoi aggiungere alla richiesta (in 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
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 nel mezzo
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIRRitorna alla directory di lavoro originale dopo ogni comando Bash
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervallo in millisecondi al quale le credenziali dovrebbero essere aggiornate (quando si usa apiKeyHelper)
CLAUDE_CODE_MAX_OUTPUT_TOKENSImposta il numero massimo di token di output per la maggior parte delle richieste
CLAUDE_CODE_USE_BEDROCKUsa Bedrock (vedi Bedrock & Vertex)
CLAUDE_CODE_USE_VERTEXUsa Vertex (vedi Bedrock & 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 di impostare DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING, e DISABLE_TELEMETRY
DISABLE_AUTOUPDATERImposta a 1 per disabilitare l’aggiornatore automatico
DISABLE_BUG_COMMANDImposta a 1 per disabilitare il comando /bug
DISABLE_COST_WARNINGSImposta a 1 per disabilitare i messaggi di avviso sui costi
DISABLE_ERROR_REPORTINGImposta a 1 per escludersi dalla segnalazione errori Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSImposta a 1 per disabilitare le chiamate del modello per percorsi non critici come il testo di sapore
DISABLE_TELEMETRYImposta a 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)

Opzioni di configurazione

Siamo nel processo di migrazione della configurazione globale a settings.json.

claude config sarà deprecato al posto di settings.json

Per gestire le tue configurazioni, usa i seguenti comandi:

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

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 <key> <value>:

ChiaveDescrizioneEsempio
autoUpdaterStatusAbilita o disabilita l’aggiornatore automatico (predefinito: enabled)disabled
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
AgentEsegue un sotto-agente per gestire attività complesse e multi-stepNo
BashEsegue comandi shell nel tuo ambiente
EditEffettua modifiche mirate a file specifici
GlobTrova file basati su 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
TodoReadLegge la lista delle attività della sessione correnteNo
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.

Vedi anche