Claude Code offre una varietà di impostazioni per configurare il suo comportamento in base alle tue esigenze. Puoi configurare Claude Code eseguendo claude config nel tuo terminale, o il comando /config quando usi il REPL interattivo.

Gerarchia della configurazione

Il nuovo file settings.json è il nostro meccanismo ufficiale per configurare Claude Code attraverso impostazioni gerarchiche.

Le impostazioni utente sono definite in ~/.claude/settings.json e si applicano a tutti i progetti.

Le impostazioni di progetto sono salvate nella directory del tuo progetto sotto .claude/settings.json per le impostazioni condivise, e .claude/settings.local.json per le impostazioni locali del progetto. Claude Code configurerà git per ignorare .claude/settings.local.json quando viene creato.

Per le distribuzioni aziendali di Claude Code, supportiamo anche le impostazioni dei criteri gestiti dall’azienda. Queste hanno la precedenza sulle impostazioni utente e di progetto. Gli amministratori di sistema possono distribuire i criteri in /Library/Application Support/ClaudeCode/policies.json su macOS e /etc/claude-code/policies.json su Linux e Windows tramite WSL.

Example 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"
  }
}

Precedenza delle impostazioni

Le impostazioni vengono applicate in ordine di precedenza, con le fonti successive che sovrascrivono le fonti precedenti:

  • Impostazioni utente
  • Impostazioni di progetto condivise
  • Impostazioni di progetto locali
  • Argomenti della riga di comando
  • Criteri aziendali

Opzioni di configurazione

Claude Code supporta la configurazione globale e a livello di progetto.

Per gestire le tue configurazioni, usa i seguenti comandi:

  • Elencare le impostazioni: claude config list
  • Vedere un’impostazione: claude config get <key>
  • Modificare un’impostazione: claude config set <key> <value>
  • Aggiungere a un’impostazione (per le liste): claude config add <key> <value>
  • Rimuovere da un’impostazione (per le liste): claude config remove <key> <value>

Per impostazione predefinita config modifica 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>:

ChiaveValoreDescrizione
autoUpdaterStatusdisabled o enabledAbilita o disabilita l’aggiornamento automatico (predefinito: enabled)
envJSON (es. '{"FOO": "bar"}')Variabili d’ambiente che verranno applicate a ogni sessione
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, o notifications_disabledDove vuoi ricevere le notifiche (predefinito: iterm2)
themedark, light, light-daltonized, o dark-daltonizedTema colore
verbosetrue o falseSe mostrare gli output completi di bash e dei comandi (predefinito: false)

Configurazione del progetto

Gestisci la configurazione del progetto con claude config set <key> <value> (senza il flag -g):

ChiaveValoreDescrizione
allowedToolsarray di strumentiQuali strumenti possono essere eseguiti senza approvazione manuale
ignorePatternsarray di stringhe globQuali file/directory vengono ignorati quando si usano gli strumenti

Per esempio:

# Permetti a npm test di essere eseguito senza approvazione
claude config add allowedTools "Bash(npm test)"

# Permetti a npm test e a tutti i suoi sotto-comandi di essere eseguiti senza approvazione
claude config add allowedTools "Bash(npm test:*)"

# Istruisci Claude di ignorare node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

Permessi

Puoi gestire i permessi degli strumenti di Claude Code con /allowed-tools. Questa UI elenca tutte le regole dei permessi e il file settings.json da cui provengono.

  • Le regole Allow permetteranno a Claude Code di utilizzare lo strumento specificato senza ulteriore approvazione manuale.
  • Le regole Deny impediranno a Claude Code di utilizzare lo strumento specificato. Le regole Deny hanno la precedenza sulle regole Allow.

Le regole dei permessi utilizzano il formato: Tool(optional-specifier).

Per esempio, aggiungere WebFetch alla lista delle regole allow permetterebbe qualsiasi uso dello strumento web fetch senza richiedere l’approvazione dell’utente. Vedi la lista degli strumenti disponibili per Claude (usa il nome tra parentesi quando fornito.)

Alcuni strumenti utilizzano lo specificatore opzionale per controlli dei permessi più dettagliati. Per esempio, una regola allow con WebFetch(domain:example.com) permetterebbe i fetch a example.com ma non ad altri URL.

Le regole Bash possono essere corrispondenze esatte come Bash(npm run build), o corrispondenze di prefisso quando terminano con :* come Bash(npm run test:*)

Le regole Read() ed Edit() seguono la specifica gitignore. I pattern vengono risolti relativamente alla directory contenente .claude/settings.json. Per riferirsi a un percorso assoluto, usa //. Per un percorso relativo alla tua directory home, usa ~/. Per esempio Read(//tmp/build_cache) o Edit(~/.zshrc). Claude farà anche un tentativo di applicare le regole Read ed Edit ad altri strumenti relativi ai file come Grep, Glob e LS.

I nomi degli strumenti MCP seguono il formato: mcp__server_name__tool_name dove:

  • server_name è il nome del server MCP come configurato in Claude Code
  • tool_name è lo strumento specifico fornito da quel server

Altri esempi:

RegolaDescrizione
Bash(npm run build)Corrisponde al comando Bash esatto npm run build.
Bash(npm run test:*)Corrisponde ai comandi Bash che iniziano con npm run test. Vedi nota sotto sulla gestione dei separatori di comando.
Edit(~/.zshrc)Corrisponde al file ~/.zshrc.
Read(node_modules/**)Corrisponde a qualsiasi directory node_modules.
mcp__puppeteer__puppeteer_navigateCorrisponde allo strumento puppeteer_navigate dal server MCP puppeteer.
WebFetch(domain:example.com)Corrisponde alle richieste fetch a example.com

Claude Code è consapevole dei separatori di comando (come &&) quindi una regola di corrispondenza prefisso come Bash(safe-cmd:*) non gli darà il permesso di eseguire il comando safe-cmd && other-cmd

Opzioni dei permessi dell’auto-updater

Quando Claude Code rileva che non ha permessi sufficienti per scrivere nella tua directory npm prefix globale (richiesta per gli aggiornamenti automatici), vedrai un avviso che punta a questa pagina di documentazione. Per soluzioni dettagliate ai problemi dell’auto-updater, vedi la guida alla risoluzione dei problemi.

Raccomandato: Creare un nuovo npm prefix scrivibile dall’utente

# Prima, salva una lista dei tuoi pacchetti globali esistenti per la migrazione successiva
npm list -g --depth=0 > ~/npm-global-packages.txt

# Crea una directory per i tuoi pacchetti globali
mkdir -p ~/.npm-global

# Configura npm per usare il nuovo percorso della directory
npm config set prefix ~/.npm-global

# Nota: Sostituisci ~/.bashrc con ~/.zshrc, ~/.profile, o altro file appropriato per la tua shell
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# Applica la nuova impostazione PATH
source ~/.bashrc

# Ora reinstalla Claude Code nella nuova posizione
npm install -g @anthropic-ai/claude-code

# Opzionale: Reinstalla i tuoi precedenti pacchetti globali nella nuova posizione
# Guarda ~/npm-global-packages.txt e installa i pacchetti che vuoi mantenere
# npm install -g package1 package2 package3...

Perché raccomandiamo questa opzione:

  • Evita di modificare i permessi delle directory di sistema
  • Crea una posizione pulita e dedicata per i tuoi pacchetti npm globali
  • Segue le migliori pratiche di sicurezza

Dato che Claude Code è in sviluppo attivo, raccomandiamo di configurare gli aggiornamenti automatici usando l’opzione raccomandata sopra.

Disabilitare l’auto-updater

Se preferisci disabilitare l’auto-updater invece di sistemare i permessi, puoi usare:

claude config set -g autoUpdaterStatus disabled

Ottimizza la configurazione del tuo terminale

Claude Code funziona meglio quando il tuo terminale è configurato correttamente. Segui queste linee guida per ottimizzare la tua esperienza.

Shell supportate:

  • Bash
  • Zsh
  • Fish

Temi e aspetto

Claude non può controllare il tema del tuo terminale. Quello è gestito dalla tua applicazione terminale. Puoi far corrispondere il tema di Claude Code al tuo terminale durante l’onboarding o in qualsiasi momento tramite il comando /config

Interruzioni di riga

Hai diverse opzioni per inserire interruzioni di riga in Claude Code:

  • Escape rapido: Digita \ seguito da Invio per creare una nuova riga
  • Scorciatoia da tastiera: Premi Option+Invio (Meta+Invio) con la configurazione appropriata

Per configurare Option+Invio nel tuo terminale:

Per Mac Terminal.app:

  1. Apri Impostazioni → Profili → Tastiera
  2. Seleziona “Usa Option come tasto Meta”

Per iTerm2 e terminale VSCode:

  1. Apri Impostazioni → Profili → Tasti
  2. Sotto Generale, imposta il tasto Option sinistro/destro su “Esc+”

Suggerimento per gli utenti iTerm2 e VSCode: Esegui /terminal-setup all’interno di Claude Code per configurare automaticamente Shift+Invio come alternativa più intuitiva.

Configurazione delle notifiche

Non perdere mai quando Claude completa un’attività con la configurazione appropriata delle notifiche:

Notifiche del campanello del terminale

Abilita gli avvisi sonori quando le attività sono completate:

claude config set --global preferredNotifChannel terminal_bell

Per gli utenti macOS: Non dimenticare di abilitare i permessi delle notifiche in Impostazioni di Sistema → Notifiche → [La tua App Terminale].

Notifiche di sistema iTerm 2

Per gli avvisi iTerm 2 quando le attività sono completate:

  1. Apri le Preferenze di iTerm 2
  2. Naviga a Profili → Terminale
  3. Abilita “Silenzia campanello” e “Invia notifica quando inattivo”
  4. Imposta il ritardo di notifica preferito

Nota che queste notifiche sono specifiche per iTerm 2 e non disponibili nel Terminale macOS predefinito.

Gestione di input lunghi

Quando lavori con codice esteso o istruzioni lunghe:

  • Evita l’incollaggio diretto: Claude Code potrebbe avere difficoltà con contenuti incollati molto lunghi
  • Usa flussi di lavoro basati su file: Scrivi il contenuto in un file e chiedi a Claude di leggerlo
  • Sii consapevole delle limitazioni di VS Code: Il terminale VS Code è particolarmente soggetto a troncare gli incollamenti lunghi

Modalità Vim

Claude Code supporta un sottoinsieme di associazioni di tasti Vim che possono essere abilitate con /vim o configurate tramite /config.

Il sottoinsieme supportato include:

  • Cambio modalità: Esc (a NORMAL), i/I, a/A, o/O (a INSERT)
  • Navigazione: h/j/k/l, w/e/b, 0/$/^, gg/G
  • Modifica: x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (ripeti)

Variabili d’ambiente

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

VariabileScopo
DISABLE_AUTOUPDATERImposta a 1 per disabilitare l’aggiornamento 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 rinunciare alla segnalazione degli errori Sentry
DISABLE_TELEMETRYImposta a 1 per rinunciare alla 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
MCP_TIMEOUTTimeout in millisecondi per l’avvio del server MCP
MCP_TOOL_TIMEOUTTimeout in millisecondi per l’esecuzione dello strumento MCP

Was this page helpful?