Vai al contenuto principale
Claude Code offre una varietà di impostazioni per configurare il suo comportamento in base alle vostre esigenze. Potete configurare Claude Code eseguendo il comando /config, che apre un’interfaccia Impostazioni con schede dove potete visualizzare le informazioni di stato e modificare le opzioni di configurazione. A partire dalla versione 2.1.181, potete modificare una singola opzione senza aprire l’interfaccia passando key=value a /config, ad esempio /config verbose=true.

Ambiti di configurazione

Claude Code utilizza un sistema di ambiti per determinare dove si applicano le configurazioni e con chi vengono condivise. Comprendere gli ambiti ti aiuta a decidere come configurare Claude Code per uso personale, collaborazione di team o distribuzione aziendale.

Ambiti disponibili

Quando utilizzare ogni ambito

L’ambito Managed è per:
  • Politiche di sicurezza che devono essere applicate a livello organizzativo
  • Requisiti di conformità che non possono essere ignorati
  • Configurazioni standardizzate distribuite da IT/DevOps
L’ambito User è migliore per:
  • Preferenze personali che desideri ovunque (temi, impostazioni dell’editor)
  • Strumenti e plugin che utilizzi in tutti i progetti
  • Chiavi API e autenticazione (archiviate in modo sicuro)
L’ambito Project è migliore per:
  • Impostazioni condivise dal team (permessi, hooks, MCP servers)
  • Plugin che l’intero team dovrebbe avere
  • Standardizzazione degli strumenti tra i collaboratori
L’ambito Local è migliore per:
  • Override personali per un progetto specifico
  • Test delle configurazioni prima di condividerle con il team
  • Impostazioni specifiche della macchina che non funzioneranno per altri

Come interagiscono gli ambiti

Quando la stessa impostazione è configurata in più ambiti, Claude Code le applica in ordine di priorità:
  1. Managed (più alta): non può essere ignorata da nulla
  2. Argomenti della riga di comando: override temporanei della sessione
  3. Local: ignora le impostazioni di progetto e utente
  4. Project: ignora le impostazioni utente
  5. User (più bassa): si applica quando nient’altro specifica l’impostazione
Ad esempio, se le impostazioni utente impostano spinnerTipsEnabled su true e le impostazioni di progetto lo impostano su false, si applica il valore del progetto. Le regole di permesso si comportano diversamente perché si uniscono tra gli ambiti piuttosto che ignorarsi. Vedi Precedenza delle impostazioni.

Cosa utilizza gli ambiti

Gli ambiti si applicano a molte funzionalità di Claude Code: Su Windows, i percorsi mostrati come ~/.claude si risolvono in %USERPROFILE%\.claude.

File di impostazioni

Il file settings.json è il 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 vengono 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. Quando Claude Code crea .claude/settings.local.json, configura git per ignorare il file. Se crei il file tu stesso, aggiungilo al tuo gitignore manualmente. Poiché questo file è tuo piuttosto che del repository, le sue regole di permesso allow hanno effetto senza il passaggio di fiducia dell’area di lavoro che le regole allow di .claude/settings.json richiedono. Se il repository fornisce il file, ad esempio eseguendone il commit, la fiducia dell’area di lavoro si applica comunque.
  • Impostazioni gestite: Per le organizzazioni che necessitano di controllo centralizzato, Claude Code supporta più meccanismi di distribuzione per le impostazioni gestite. Tutti utilizzano lo stesso formato JSON e non possono essere ignorati dalle impostazioni utente o di progetto:
    • Impostazioni gestite dal server: consegnate da remoto al momento dell’accesso, sia dai server di Anthropic tramite la console di amministrazione claude.ai che da un gateway di app Claude auto-ospitato. Vedi impostazioni gestite dal server.
    • Politiche MDM/a livello di sistema operativo: consegnate tramite la gestione nativa dei dispositivi su macOS e Windows:
      • macOS: dominio delle preferenze gestite com.anthropic.claudecode. Le chiavi di primo livello del plist rispecchiano managed-settings.json, con impostazioni annidate come dizionari e array come array plist. Distribuisci tramite profili di configurazione in Jamf, Iru (Kandji) o strumenti MDM simili.
      • Windows: chiave di registro HKLM\SOFTWARE\Policies\ClaudeCode con un valore Settings (REG_SZ o REG_EXPAND_SZ) contenente JSON (distribuito tramite Criteri di gruppo o Intune)
      • Windows (a livello utente): HKCU\SOFTWARE\Policies\ClaudeCode (priorità di politica più bassa, utilizzata solo quando non esiste alcuna fonte a livello di amministratore)
    • Basate su file: managed-settings.json e managed-mcp.json distribuite alle directory di sistema:
      • macOS: /Library/Application Support/ClaudeCode/
      • Linux e WSL: /etc/claude-code/
      • Windows: C:\Program Files\ClaudeCode\
      Il percorso Windows legacy C:\ProgramData\ClaudeCode\managed-settings.json non è più supportato a partire da v2.1.75. Gli amministratori che hanno distribuito impostazioni in quella posizione devono migrare i file a C:\Program Files\ClaudeCode\managed-settings.json.
      Le impostazioni gestite basate su file supportano anche una directory drop-in in managed-settings.d/ nella stessa directory di sistema insieme a managed-settings.json. Questo consente ai team separati di distribuire frammenti di politica indipendenti senza coordinare le modifiche a un singolo file. Seguendo la convenzione systemd, managed-settings.json viene unito per primo come base, quindi tutti i file *.json nella directory drop-in vengono ordinati alfabeticamente e uniti in cima. I file successivi ignorano quelli precedenti per i valori scalari; gli array vengono concatenati e deduplicati; gli oggetti vengono uniti in profondità. I file nascosti che iniziano con . vengono ignorati. Usa prefissi numerici per controllare l’ordine di unione, ad esempio 10-telemetry.json e 20-security.json.
    Vedi impostazioni gestite e Configurazione MCP gestita per i dettagli. Questo repository include modelli di distribuzione iniziali per Jamf, Iru (Kandji), Intune e Criteri di gruppo. Usa questi come punti di partenza e adattali alle tue esigenze.
    Le distribuzioni gestite possono anche limitare le aggiunte del marketplace dei plugin utilizzando strictKnownMarketplaces. Per ulteriori informazioni, vedi Restrizioni del marketplace gestito.
  • Altra configurazione è archiviata in ~/.claude.json. Questo file contiene la tua sessione OAuth, configurazioni dei MCP server per gli ambiti utente e locale, stato per-progetto (strumenti consentiti, impostazioni di fiducia), e varie cache. I MCP server con ambito di progetto sono archiviati separatamente in .mcp.json.
Claude Code crea automaticamente backup con timestamp dei file di configurazione e conserva i cinque backup più recenti per prevenire la perdita di dati.
Esempio settings.json
La riga $schema nell’esempio sopra punta allo schema JSON ufficiale per le impostazioni di Claude Code. Aggiungerlo al tuo settings.json abilita l’autocompletamento e la convalida inline in VS Code, Cursor e qualsiasi altro editor che supporta la convalida dello schema JSON. Lo schema pubblicato viene aggiornato periodicamente e potrebbe non includere le impostazioni aggiunte nei rilasci CLI più recenti, quindi un avviso di convalida su un campo documentato di recente non significa necessariamente che la tua configurazione non sia valida.

Quando gli edits hanno effetto

Claude Code osserva i tuoi file di impostazioni e li ricarica quando cambiano, quindi gli edits alla maggior parte delle chiavi si applicano alla sessione in esecuzione senza un riavvio. Questo include permissions, hooks, e helper di credenziali come apiKeyHelper. Il ricaricamento copre le impostazioni utente, progetto, locale e gestite, e l’hook ConfigChange si attiva per ogni modifica rilevata. Alcune chiavi vengono lette una sola volta all’avvio della sessione e si applicano al riavvio successivo:
  • model: usa /model per cambiare durante la sessione
  • outputStyle: parte del prompt di sistema, che viene ricostruito su /clear o riavvio

Voci non valide nelle impostazioni gestite

Le impostazioni gestite analizzano in modo tollerante. Quando una configurazione gestita contiene una voce che non supera la convalida dello schema, Claude Code rimuove quella voce, registra un avviso e applica ogni politica valida rimanente. Un singolo errore di battitura non può disabilitare il resto della politica della tua organizzazione. Questo comportamento è coerente in tutti e tre i meccanismi di distribuzione: impostazioni gestite dal server, politiche plist e registro distribuite tramite MDM, e file managed-settings.json. Richiede Claude Code v2.1.169 o successivo. I campi di applicazione della sicurezza vengono gestiti per campo invece di essere rimossi all’ingrosso quando sono presenti ma non validi: requiredMinimumVersion e requiredMaximumVersion falliscono in modo aperto per progettazione: un valore non valido viene rimosso piuttosto che applicato, quindi una politica errata non può impedire l’avvio di Claude Code. Gli errori di convalida vengono visualizzati in tre posizioni:
  • Le sessioni interattive mostrano una finestra di dialogo all’avvio che elenca le voci non valide.
  • Le esecuzioni headless con -p stampano un riepilogo su stderr.
  • claude doctor elenca ogni voce non valida con la sua fonte e il campo.
Convalida i cambiamenti di politica eseguendo claude doctor su una macchina di test prima di distribuirli su tutta la flotta. Questa tolleranza si applica solo alle impostazioni gestite. I file di impostazioni utente, progetto e locale rimangono rigorosi: un file che non supera la convalida viene rifiutato nel complesso e segnalato.

Impostazioni disponibili

settings.json supporta un numero di opzioni:

Impostazioni di configurazione globale

Queste impostazioni sono archiviate in ~/.claude.json piuttosto che in settings.json. Aggiungerle a settings.json attiverà un errore di convalida dello schema.
Le versioni precedenti a v2.1.119 archiviano anche un numero di chiavi di preferenza /config qui invece che in settings.json, inclusi theme, verbose, editorMode, autoCompactEnabled, e preferredNotifChannel.

Impostazioni worktree

Configura come --worktree crea e gestisce i git worktrees. Per copiare file gitignored come .env nei nuovi worktrees, usa un file .worktreeinclude nella radice del tuo progetto invece di un’impostazione.

Impostazioni di permesso

Sintassi della regola di permesso

Le regole di permesso seguono il formato Tool o Tool(specifier). Le regole vengono valutate in ordine: prima le regole di negazione, poi di richiesta, poi di autorizzazione. La prima regola corrispondente determina il risultato indipendentemente dalla specificità della regola. Vedi l’ordine di valutazione della regola di permesso per i dettagli. Esempi rapidi: Per il riferimento completo della sintassi delle regole, incluso il comportamento dei caratteri jolly, i modelli specifici dello strumento per Read, Edit, WebFetch, MCP e Agent, e le limitazioni di sicurezza dei modelli Bash, vedi Sintassi della regola di permesso.

Impostazioni sandbox

Configura il comportamento avanzato del sandboxing. Il sandboxing isola i comandi bash dal tuo filesystem e dalla rete. Vedi Sandboxing per i dettagli.

Prefissi di percorso sandbox

I percorsi in filesystem.allowWrite, filesystem.denyWrite, filesystem.denyRead, filesystem.allowRead, e credentials.files supportano questi prefissi: Il prefisso più vecchio //path per i percorsi assoluti funziona ancora. Se in precedenza hai utilizzato il singolo slash /path aspettandoti una risoluzione relativa al progetto, passa a ./path. Questa sintassi differisce dalle regole di permesso Read e Edit, che utilizzano //path per assoluto e /path per relativo al progetto. I percorsi del filesystem sandbox utilizzano convenzioni standard: /tmp/build è un percorso assoluto. Esempio di configurazione:
Le restrizioni del filesystem e della rete possono essere configurate in due modi che vengono uniti insieme:
  • Impostazioni sandbox.filesystem (mostrate sopra): Controllano i percorsi al confine della sandbox a livello di sistema operativo. Queste restrizioni si applicano a tutti i comandi dei sottoprocessi (ad es., kubectl, terraform, npm), non solo agli strumenti di file di Claude.
  • Regole di permesso: Usa le regole allow/deny Edit per controllare l’accesso dello strumento di file di Claude, le regole deny Read per bloccare le letture, e le regole allow/deny WebFetch per controllare i domini di rete. I percorsi da queste regole vengono anche uniti nella configurazione della sandbox.

Impostazioni di attribuzione

Claude Code aggiunge attribuzione ai commit git e alle pull request. Questi vengono configurati separatamente:
  • I commit utilizzano i git trailers (come Co-Authored-By) per impostazione predefinita, che possono essere personalizzati o disabilitati
  • Le descrizioni delle pull request sono testo semplice
Attribuzione predefinita del commit:
Il nome del modello nel trailer riflette il modello attivo per la sessione. Attribuzione predefinita della pull request:
Esempio:
L’impostazione attribution ha la precedenza sull’impostazione deprecata includeCoAuthoredBy. Per nascondere tutta l’attribuzione, imposta commit e pr a stringhe vuote e sessionUrl a false.

Impostazioni di suggerimento file

Configura un comando personalizzato per l’autocompletamento del percorso del file @. Il suggerimento di file incorporato utilizza l’attraversamento veloce del filesystem, ma i grandi monorepo potrebbero beneficiare dell’indicizzazione specifica del progetto come un indice di file pre-costruito o strumenti personalizzati.
Il comando viene eseguito con le stesse variabili di ambiente degli hooks, incluso CLAUDE_PROJECT_DIR. Riceve JSON tramite stdin con un campo query:
Restituisci i percorsi dei file separati da newline a stdout (attualmente limitati a 15):
Esempio:
L’impostazione footerLinksRegexes renderizza badge cliccabili extra nel footer sotto la casella di input. Usalo per trasformare gli ID stampati dai CLI del progetto, come strumenti di revisione e tracker di problemi, in link di sessione. Ogni voce del pattern regex viene confrontata con l’output del turno: risultati degli strumenti, inclusi contenuti di file e pagine recuperate, e le risposte di Claude stesso. I placeholder {name} in url e label vengono riempiti dai gruppi di cattura denominati nel pattern. L’esempio seguente renderizza un badge ogni volta che appare una chiave di problema come PROJ-1234 nell’output del turno. Il gruppo denominato (?<key>...) cattura la chiave, e {key} la sostituisce nell’URL e nell’etichetta:
~/.claude/settings.json
Con questo configurato, quando PROJ-1234 appare in un risultato dello strumento o nella risposta di Claude, un chip PROJ-1234 appare nel footer collegato a https://issues.example.com/browse/PROJ-1234. I seguenti vincoli si applicano a ogni voce: Quando un turno si completa, Claude Code confronta ogni voce del pattern regex con l’output del turno sul thread principale, quindi un regex lento blocca l’interfaccia utente fino al completamento. I quantificatori annidati come (a+)+$ possono richiedere un tempo esponenziale rispetto a certi input e bloccare la sessione, quindi mantieni ogni pattern lineare ed evita di annidare + o *. I badge del footer vengono renderizzati insieme a una status line personalizzata quando una è configurata; nessuno sostituisce l’altro. Usa una status line per una riga guidata da script che calcola il suo contenuto dai dati della sessione, e i badge del footer per trasformare gli ID dalla conversazione in link senza uno script.

Configurazione hook

Queste impostazioni controllano quali hook possono essere eseguiti e a cosa possono accedere gli hook HTTP. L’impostazione allowManagedHooksOnly può essere configurata solo nelle impostazioni gestite. Gli elenchi di autorizzazione degli URL e delle variabili di ambiente possono essere impostati a qualsiasi livello di impostazioni e si uniscono tra le fonti. Comportamento quando allowManagedHooksOnly è true:
  • Gli hook gestiti e gli hook SDK vengono caricati
  • Gli hook dai plugin forzatamente abilitati nelle impostazioni gestite enabledPlugins vengono caricati. Questo consente agli amministratori di distribuire hook controllati tramite un marketplace organizzativo mentre blocca tutto il resto. La fiducia viene concessa dall’ID completo plugin@marketplace, quindi un plugin con lo stesso nome da un marketplace diverso rimane bloccato
  • Gli hook utente, di progetto e di tutti gli altri plugin vengono bloccati
Limita gli URL degli hook HTTP: Limita quali URL gli hook HTTP possono indirizzare. Supporta * come carattere jolly per la corrispondenza. Quando l’array è definito, gli hook HTTP che indirizzano URL non corrispondenti vengono silenziosamente bloccati. La corrispondenza del nome host non distingue tra maiuscole e minuscole e ignora un punto FQDN finale, corrispondendo alla semantica DNS.
Limita le variabili di ambiente degli hook HTTP: Limita quali nomi di variabili di ambiente gli hook HTTP possono interpolare nei valori delle intestazioni. L’allowedEnvVars effettivo di ogni hook è l’intersezione del suo elenco e di questa impostazione.

Calcola le impostazioni gestite con un policy helper

L’impostazione policyHelper punta a un eseguibile che calcola le impostazioni gestite all’avvio, in modo che gli amministratori possano derivare la politica dalla postura del dispositivo, dall’identità o da un servizio remoto invece di un file statico. Configuralo da MDM o da un file managed-settings.json di sistema. Claude Code ignora policyHelper quando appare in qualsiasi altro ambito, incluse le impostazioni utente, le impostazioni di progetto, l’hive di registro HKCU, e le impostazioni gestite dal server. L’impostazione accetta queste chiavi: L’helper scrive un envelope JSON a stdout. Metti le impostazioni sotto una chiave managedSettings piuttosto che al livello superiore, poiché un oggetto di impostazioni nudo analizza con managedSettings non definito e non applica nulla:
Quando l’helper emette managedSettings, quell’oggetto diventa l’unica fonte di impostazioni gestite per l’esecuzione, prendendo la precedenza su fonti remote, MDM e basate su file. Quando l’helper esce con codice non zero all’avvio, Claude Code stampa l’errore e rifiuta di avviarsi, quindi un helper che ha bisogno di resilienza di interruzione dovrebbe servire dalla sua cache e uscire con 0.

Precedenza delle impostazioni

Le impostazioni si applicano in ordine di precedenza. Dal più alto al più basso:
  1. Impostazioni gestite (gestite dal server, politiche MDM/a livello di sistema operativo, o impostazioni gestite)
    • Politiche distribuite da IT tramite consegna dal server, profili di configurazione MDM, politiche di registro, o file di impostazioni gestite
    • Non possono essere ignorate da nessun altro livello, inclusi gli argomenti della riga di comando
    • All’interno del livello gestito, viene utilizzata una sola fonte gestita e le altre vengono ignorate piuttosto che unite. Precedenza, dal più alto al più basso:
      • Output policyHelper: quando configurato, questa è l’unica fonte gestita utilizzata
      • Remoto (impostazioni gestite dal server di claude.ai o gateway di app Claude-consegnate)
      • Politiche MDM/a livello di sistema operativo
      • Basate su file (managed-settings.d/*.json e managed-settings.json, unite insieme)
      • Registro HKCU (solo Windows)
    • Alcuni tasti sono eccezioni, onorati quando qualsiasi fonte gestita controllata dall’amministratore li imposta piuttosto che solo la fonte vincente. La fonte del registro HKCU scrivibile dall’utente è esclusa. I tasti di eccezione sono:
      • i tasti di blocco sandbox sandbox.network.allowManagedDomainsOnly e sandbox.filesystem.allowManagedReadPathsOnly, con i loro elenchi di autorizzazione associati
      • allowAllClaudeAiMcps
      • i percorsi binari sandbox sandbox.bwrapPath e sandbox.socatPath
      • forceRemoteSettingsRefresh
    • Gli host di incorporamento come Claude Desktop possono fornire politica tramite l’opzione SDK managedSettings. Per impostazione predefinita, questo viene ignorato quando è presente una fonte gestita distribuita da un amministratore: impostazioni gestite dal server, una politica MDM o a livello di sistema operativo, o un file di impostazioni gestite. Il fallback del registro HKCU scrivibile dall’utente non conta come una fonte gestita distribuita da un amministratore. Gli amministratori possono acconsentire impostando parentSettingsBehavior a "merge". I valori dell’embedder vengono filtrati in modo che possano stringere la politica gestita ma non allentarla.
  2. Argomenti della riga di comando
    • Override temporanei per una sessione specifica. JSON passato tramite --settings <file-or-json> si unisce con le impostazioni basate su file utilizzando le stesse regole degli altri livelli: una chiave impostata qui ignora la stessa chiave nelle impostazioni locale, di progetto o utente, e omettere una chiave lascia il valore del livello inferiore in posizione
  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 garantisce che le politiche organizzative siano sempre applicate mentre consente comunque ai team e agli individui di personalizzare la loro esperienza. La stessa precedenza si applica se esegui Claude Code dalla CLI, dall’estensione VS Code, o da un IDE JetBrains. Ad esempio, se le tue impostazioni utente impostano permissions.defaultMode a acceptEdits e le impostazioni condivise di un progetto lo impostano a default, il valore del progetto si applica. L’esempio sottostante copre come le impostazioni con valore di array come le regole di permesso si combinano invece.
Le impostazioni di array si uniscono tra gli ambiti. Quando la stessa impostazione con valore di array (come sandbox.filesystem.allowWrite o permissions.allow) appare in più ambiti, gli array vengono concatenati e deduplicati, non sostituiti. Ciò significa che gli ambiti con priorità inferiore possono aggiungere voci senza ignorare quelle impostate da ambiti con priorità più alta, e viceversa. Ad esempio, se le impostazioni gestite impostano allowWrite a ["/opt/company-tools"] e un utente aggiunge ["~/.kube"], entrambi i percorsi sono inclusi nella configurazione finale.Due impostazioni di array non si uniscono in questo modo:

Verifica le impostazioni attive

Esegui /status dentro Claude Code per vedere quali fonti di impostazioni sono attive. All’interno del menu, la scheda Status include una riga Setting sources che elenca ogni livello Claude Code ha caricato per la sessione corrente, come User settings o Project local settings. Quando le impostazioni gestite sono in vigore, la voce mostra il canale di distribuzione tra parentesi, ad esempio Enterprise managed settings (remote), (plist), (HKLM), (HKCU), o (file). Un livello appare nell’elenco solo quando quella fonte viene caricata con almeno una chiave, quindi un elenco vuoto significa che non sono state trovate fonti di impostazioni. La riga Setting sources conferma quali fonti vengono lette. Non mostra quale livello ha fornito ogni singola chiave. La scheda Config nello stesso dialogo è un editor per un insieme fisso di interruttori come tema e output dettagliato, non una visualizzazione dei contenuti del tuo settings.json. Se un file di impostazioni contiene errori, come JSON non valido o un valore che non supera la convalida, /status elenca i file interessati. Esegui /doctor per i dettagli di ogni errore.

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 dello strumento
  • Skills: Prompt personalizzati che possono essere invocati con /skill-name o caricati automaticamente da Claude
  • MCP server: Estendono Claude Code con strumenti e integrazioni aggiuntivi
  • Precedenza: Le configurazioni di livello superiore (Managed) ignorano quelle di livello inferiore (User/Project)
  • Ereditarietà: Le impostazioni vengono unite tra gli ambiti; i valori scalari da ambiti con priorità più alta ignorano, e gli array si concatenano, con due eccezioni descritte nella Nota di unione di array

Prompt di sistema

Il prompt di sistema interno di Claude Code non è pubblicato. Per aggiungere istruzioni personalizzate, usa i file CLAUDE.md o il flag --append-system-prompt.

Esclusione di file sensibili

Per prevenire che Claude Code acceda a file contenenti informazioni sensibili come chiavi API, segreti e file di ambiente, usa l’impostazione permissions.deny nel tuo file .claude/settings.json:
Questo sostituisce la configurazione deprecata ignorePatterns. I file che corrispondono a questi modelli vengono esclusi dalla scoperta dei file e dai risultati della ricerca, e le operazioni di lettura su questi file vengono negate.

Configurazione subagent

Claude Code supporta subagent AI personalizzati che possono essere configurati sia a livello utente che di progetto. Questi subagent vengono 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 condivisibili 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 dei subagent nella documentazione dei subagent.

Configurazione plugin

Claude Code supporta un sistema di plugin che ti consente di estendere la funzionalità con skills, agenti, hooks e MCP servers. I plugin vengono distribuiti tramite marketplace e possono essere configurati sia a livello utente che di repository.

Impostazioni plugin

Impostazioni relative ai plugin in settings.json:

enabledPlugins

Controlla quali plugin sono abilitati. Formato: "plugin-name@marketplace-name": true/false. Un plugin senza voce in nessun ambito ricade al suo valore defaultEnabled. 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, gitignored quando Claude Code lo crea
  • Impostazioni gestite (managed-settings.json): Override della politica a livello organizzativo che blocca l’installazione in tutti gli ambiti e nasconde il plugin dal marketplace
Le impostazioni di progetto hanno la precedenza sulle impostazioni utente, quindi impostare un plugin su false in ~/.claude/settings.json non disabilita un plugin che le impostazioni .claude/settings.json del progetto abilitano. Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, impostalo su false in .claude/settings.local.json invece.I plugin forzatamente abilitati dalle impostazioni gestite non possono essere disabilitati in questo modo, poiché le impostazioni gestite ignorano le impostazioni locali.L’abilitazione di un plugin da una fonte esterna come un repository GitHub o un pacchetto npm nelle impostazioni .claude/settings.json di un progetto non lo installa per altre persone. A partire da Claude Code v2.1.195, ogni percorso che carica i plugin chiede a ogni utente di installare e fidarsi del plugin prima che venga eseguito.
Esempio:

extraKnownMarketplaces

Definisce marketplace aggiuntivi che dovrebbero essere resi disponibili per il repository. Tipicamente utilizzato nelle impostazioni a livello di repository per garantire 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 fidano della cartella
  2. I membri del team vengono quindi invitati a installare i plugin da quel marketplace
  3. Gli utenti possono saltare i marketplace o i plugin indesiderati (archiviati nelle impostazioni utente)
  4. L’installazione rispetta i confini di fiducia e richiede il consenso esplicito
Esempio:
Tipi di fonte del marketplace:
  • github: Repository GitHub (utilizza repo)
  • git: Qualsiasi URL git (utilizza url)
  • directory: Percorso del filesystem locale (utilizza path, solo per lo sviluppo)
  • hostPattern: Modello regex per abbinare gli host del marketplace (utilizza hostPattern)
  • settings: marketplace inline dichiarato direttamente in settings.json senza un repository ospitato separato (utilizza name e plugins)
Il tipo di fonte git funziona con qualsiasi servizio di hosting git, inclusi GitLab e Bitbucket self-hosted. Claude Code clona il repository con la stessa autenticazione che git clone utilizzerebbe su quella macchina: helper di credenziali configurati o chiavi SSH. Un token di provider come GITHUB_TOKEN ha effetto solo tramite un helper di credenziali che lo legge. Vedi Repository privati per i dettagli di configurazione. Per le fonti github e git, imposta "skipLfs": true all’interno dell’oggetto source (insieme a repo o url) per saltare i download di Git LFS quando Claude Code clona o aggiorna il repository del marketplace. I file puntatore LFS rimangono come puntatori invece di scaricare il loro contenuto. Utilizza questa opzione quando il repository contiene grandi oggetti LFS non correlati al contenuto del plugin. Richiede Claude Code v2.1.153 o successivo. Ogni voce del marketplace accetta anche un Boolean autoUpdate facoltativo. Imposta "autoUpdate": true insieme a source per fare in modo che Claude Code aggiorni quel marketplace e aggiorni i suoi plugin installati in background dopo l’avvio. Se omesso, i marketplace ufficiali di Anthropic predefiniti a true e tutti gli altri marketplace predefiniti a false. Vedi Configura gli aggiornamenti automatici. Usa source: 'settings' per dichiarare un piccolo set di plugin inline senza configurare un repository marketplace ospitato. I plugin elencati qui devono fare riferimento a fonti esterne come GitHub o npm. Devi comunque abilitare ogni plugin separatamente in enabledPlugins.

strictKnownMarketplaces

Solo impostazioni gestite: Controlla quali marketplace dei plugin gli utenti possono aggiungere e installare plugin da. Questa impostazione può essere configurata solo nelle impostazioni gestite e fornisce agli amministratori un controllo rigoroso sulle fonti del marketplace. Posizioni dei file di impostazioni gestite:
  • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
  • Linux e WSL: /etc/claude-code/managed-settings.json
  • Windows: C:\Program Files\ClaudeCode\managed-settings.json
Caratteristiche chiave:
  • Disponibile solo nelle impostazioni gestite (managed-settings.json)
  • Non può essere ignorato da impostazioni utente o di progetto (precedenza più alta)
  • Applicato prima delle operazioni di rete e filesystem, quindi le fonti bloccate non vengono mai eseguite
  • Utilizza la corrispondenza esatta per le specifiche della fonte (incluso ref, path per le fonti git), tranne hostPattern e pathPattern, che utilizzano la corrispondenza regex
Comportamento dell’elenco di autorizzazione:
  • undefined (predefinito): nessuna restrizione, quindi gli utenti possono aggiungere qualsiasi marketplace
  • Array vuoto []: blocco completo, quindi gli utenti non possono aggiungere nuovi marketplace
  • Elenco di fonti: gli utenti possono aggiungere solo i marketplace che corrispondono esattamente
Tutti i tipi di fonte supportati: L’elenco di autorizzazione supporta più tipi di fonte del marketplace. La maggior parte delle fonti utilizza la corrispondenza esatta, mentre hostPattern e pathPattern utilizzano la corrispondenza regex rispetto all’host del marketplace e al percorso del filesystem rispettivamente.
  1. Repository GitHub:
Campi: repo (obbligatorio), ref (facoltativo: ramo o tag), path (facoltativo: sottodirectory)
  1. Repository Git:
Campi: url (obbligatorio), ref (facoltativo: ramo o tag), path (facoltativo: sottodirectory)
  1. Marketplace basati su URL:
Campi: url (obbligatorio), headers (facoltativo: intestazioni HTTP per l’accesso autenticato)
I marketplace basati su URL scaricano solo il file marketplace.json. Non scaricano i file dei plugin dal server. I plugin nei marketplace basati su URL devono utilizzare fonti esterne (URL GitHub, npm o git) piuttosto che percorsi relativi. Per i plugin con percorsi relativi, utilizza un marketplace basato su Git. Vedi Troubleshooting per i dettagli.
  1. Pacchetti NPM:
Campi: package (obbligatorio, supporta pacchetti con scope)
  1. Percorsi di file:
Campi: path (obbligatorio: percorso assoluto al file marketplace.json)
  1. Percorsi di directory:
Campi: path (obbligatorio: percorso assoluto alla directory contenente .claude-plugin/marketplace.json)
  1. Corrispondenza del modello host:
Campi: hostPattern (obbligatorio: modello regex per abbinare l’host del marketplace) Utilizza la corrispondenza del modello host quando desideri consentire tutti i marketplace da un host specifico senza enumerare ogni repository individualmente. Questo è utile per le organizzazioni con server GitHub Enterprise o GitLab interni dove gli sviluppatori creano i loro marketplace. Estrazione dell’host per tipo di fonte:
  • github: corrisponde sempre a github.com
  • git: estrae il nome host dall’URL (supporta sia i formati HTTPS che SSH)
  • url: estrae il nome host dall’URL
  • npm, file, directory: non supportati per la corrispondenza del modello host
  1. Corrispondenza del modello di percorso:
Campi: pathPattern (obbligatorio: modello regex abbinato al campo path delle fonti file e directory) Utilizza la corrispondenza del modello di percorso per consentire marketplace basati su filesystem insieme alle restrizioni hostPattern per le fonti di rete. Imposta ".*" per consentire tutti i percorsi locali, o un modello più ristretto per limitare a directory specifiche. Esempi di configurazione: Esempio: consenti solo marketplace specifici:
Esempio: disabilita tutte le aggiunte del marketplace:
Esempio: consenti tutti i marketplace da un server git interno:
Requisiti di corrispondenza esatta: Le fonti del marketplace devono corrispondere esattamente affinché l’aggiunta di un utente sia consentita. Per le fonti basate su git (github e git), questo include tutti i campi facoltativi:
  • Il repo o url deve corrispondere esattamente
  • Il campo ref deve corrispondere esattamente (o entrambi non essere definiti)
  • Il campo path deve corrispondere esattamente (o entrambi non essere definiti)
Esempi di fonti che non corrispondono:
Confronto con extraKnownMarketplaces: Differenza di formato: strictKnownMarketplaces utilizza oggetti fonte diretti:
extraKnownMarketplaces richiede marketplace denominati:
Utilizzo di entrambi insieme: strictKnownMarketplaces è un gate di politica: controlla cosa gli utenti possono aggiungere ma non registra alcun marketplace. Per limitare e pre-registrare un marketplace per tutti gli utenti, imposta entrambi in managed-settings.json:
Con solo strictKnownMarketplaces impostato, gli utenti possono comunque aggiungere il marketplace consentito manualmente tramite /plugin marketplace add, ma non è disponibile automaticamente. Note importanti:
  • Le restrizioni vengono controllate prima di qualsiasi richiesta di rete o operazione del filesystem
  • Quando bloccato, gli utenti vedono messaggi di errore chiari che indicano che la fonte è bloccata dalla politica gestita
  • La restrizione si applica all’aggiunta del marketplace e all’installazione, aggiornamento, aggiornamento e auto-aggiornamento dei plugin. Un marketplace aggiunto prima che la politica fosse impostata non può essere utilizzato per installare o aggiornare plugin una volta che la sua fonte non corrisponde più all’elenco di autorizzazione
  • Le impostazioni gestite hanno la precedenza più alta e non possono essere ignorate
Vedi Restrizioni del marketplace gestito per la documentazione rivolta agli utenti.

strictPluginOnlyCustomization

Solo impostazioni gestite: blocca skills, agenti, hooks e MCP servers da fonti utente e di progetto, in modo che possano provenire solo da plugin o impostazioni gestite. Combinalo con strictKnownMarketplaces per controllare l’intera catena di approvvigionamento della personalizzazione: l’elenco di autorizzazione del marketplace controlla quali plugin gli utenti possono installare, e questa impostazione blocca tutto ciò che non proviene da un plugin o dalle impostazioni gestite. Il valore è true per bloccare tutte e quattro le superfici, oppure un array che nomina le superfici da bloccare:
Per ogni superficie bloccata, Claude Code salta le fonti a livello utente e di progetto e carica solo le fonti fornite da plugin e gestite: I nomi di superficie che una versione di Claude Code non riconosce vengono ignorati piuttosto che causare un errore nel file di impostazioni, quindi puoi aggiungere nuovi nomi di superficie prima che tutti i client si aggiornino.

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 (skills, agenti, hooks forniti)
  • Aggiungi/rimuovi marketplace
Scopri di più sul sistema di plugin nella documentazione dei plugin.

Variabili di ambiente

Le variabili di ambiente consentono di controllare il comportamento di Claude Code senza modificare i file di impostazioni. Qualsiasi variabile può anche essere configurata in settings.json sotto la chiave env per applicarla a ogni sessione o distribuirla al vostro team. Consultare il riferimento delle variabili di ambiente per l’elenco completo.

Strumenti disponibili per Claude

Claude Code ha accesso a un set di strumenti per leggere, modificare, cercare, eseguire comandi e orchestrare subagent. I nomi degli strumenti sono le stringhe esatte che utilizzi nelle regole di permesso e nei matcher degli hook. Vedi il riferimento degli strumenti per l’elenco completo e i dettagli del comportamento dello strumento Bash.

Vedi anche