Vai al contenuto principale
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.

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

AmbitoPosizioneChi interessaCondiviso con il team?
Gestitomanaged-settings.json a livello di sistemaTutti gli utenti sulla macchinaSì (distribuito da IT)
UtenteDirectory ~/.claude/Tu, su tutti i progettiNo
Progetto.claude/ nel repositoryTutti i collaboratori su questo repositorySì (committato su git)
LocaleFile .claude/*.local.*Tu, solo in questo repositoryNo (ignorato da git)

Quando utilizzare ogni ambito

L’ambito Gestito è 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 Utente è migliore per:
  • Preferenze personali che desideri ovunque (temi, impostazioni dell’editor)
  • Strumenti e plugin che utilizzi su tutti i progetti
  • Chiavi API e autenticazione (archiviate in modo sicuro)
L’ambito Progetto è migliore per:
  • Impostazioni condivise dal team (permessi, hook, server MCP)
  • Plugin che l’intero team dovrebbe avere
  • Standardizzazione degli strumenti tra i collaboratori
L’ambito Locale è 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, gli ambiti più specifici hanno la precedenza:
  1. Gestito (massima) - non può essere ignorato da nulla
  2. Argomenti della riga di comando - override temporanei della sessione
  3. Locale - ignora le impostazioni di progetto e utente
  4. Progetto - ignora le impostazioni utente
  5. Utente (minima) - si applica quando nient’altro specifica l’impostazione
Ad esempio, se un permesso è consentito nelle impostazioni utente ma negato nelle impostazioni di progetto, l’impostazione di progetto ha la precedenza e il permesso è bloccato.

Cosa utilizza gli ambiti

Gli ambiti si applicano a molte funzionalità di Claude Code:
FunzionalitàPosizione utentePosizione progettoPosizione locale
Impostazioni~/.claude/settings.json.claude/settings.json.claude/settings.local.json
Subagenti~/.claude/agents/.claude/agents/
Server MCP~/.claude.json.mcp.json~/.claude.json (per progetto)
Plugin~/.claude/settings.json.claude/settings.json.claude/settings.local.json
CLAUDE.md~/.claude/CLAUDE.mdCLAUDE.md o .claude/CLAUDE.mdCLAUDE.local.md

File di impostazioni

Il 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 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. Claude Code configurerà git per ignorare .claude/settings.local.json quando viene creato.
  • Impostazioni gestite: Per le organizzazioni che necessitano di controllo centralizzato, Claude Code supporta file managed-settings.json e managed-mcp.json che possono essere distribuiti alle directory di sistema:
    • macOS: /Library/Application Support/ClaudeCode/
    • Linux e WSL: /etc/claude-code/
    • Windows: C:\Program Files\ClaudeCode\
    Questi sono percorsi a livello di sistema (non directory home dell’utente come ~/Library/...) che richiedono privilegi di amministratore. Sono progettati per essere distribuiti da amministratori IT.
    Vedi Impostazioni gestite e Configurazione MCP gestita per i dettagli.
    Le distribuzioni gestite possono anche limitare aggiunte al marketplace dei plugin utilizzando strictKnownMarketplaces. Per ulteriori informazioni, vedi Restrizioni del marketplace gestito.
  • Altra configurazione è archiviata in ~/.claude.json. Questo file contiene le tue preferenze (tema, impostazioni di notifica, modalità editor), sessione OAuth, configurazioni del server MCP per ambiti utente e locale, stato per progetto (strumenti consentiti, impostazioni di fiducia) e varie cache. I server MCP con ambito di progetto sono archiviati separatamente in .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"
  },
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.acme.com",
    "Reminder: Code reviews required for all PRs",
    "New security policy in effect"
  ]
}

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 intestazioni X-Api-Key e Authorization: Bearer per le richieste del modello/bin/generate_temp_api_key.sh
cleanupPeriodDaysLe sessioni inattive per più di questo periodo vengono eliminate all’avvio. L’impostazione a 0 elimina immediatamente tutte le sessioni. (predefinito: 30 giorni)20
companyAnnouncementsAnnuncio da visualizzare agli utenti all’avvio. Se vengono forniti più annunci, verranno alternati casualmente.["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]
envVariabili d’ambiente che verranno applicate a ogni sessione{"FOO": "bar"}
attributionPersonalizza l’attribuzione per i commit git e le pull request. Vedi Impostazioni di attribuzione{"commit": "🤖 Generated with Claude Code", "pr": ""}
includeCoAuthoredByDeprecato: Utilizza attribution invece. Se 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 degli hook{"PreToolUse": {"Bash": "echo 'Running command...'"}}
disableAllHooksDisabilita tutti gli hooktrue
allowManagedHooksOnly(Solo impostazioni gestite) Impedisci il caricamento di hook utente, progetto e plugin. Consenti solo hook gestiti e hook SDK. Vedi Configurazione degli hooktrue
modelIgnora il modello predefinito da utilizzare per Claude Code"claude-sonnet-4-5-20250929"
otelHeadersHelperScript per generare intestazioni OpenTelemetry dinamiche. Viene eseguito all’avvio e periodicamente (vedi Intestazioni dinamiche)/bin/generate_otel_headers.sh
statusLineConfigura una riga di stato personalizzata per visualizzare il contesto. Vedi documentazione di statusLine{"type": "command", "command": "~/.claude/statusline.sh"}
fileSuggestionConfigura uno script personalizzato per l’autocompletamento dei file @. Vedi Impostazioni di suggerimento file{"type": "command", "command": "~/.claude/file-suggestion.sh"}
respectGitignoreControlla se il selettore di file @ rispetta i pattern .gitignore. Quando true (predefinito), i file che corrispondono ai pattern .gitignore sono esclusi dai suggerimentifalse
outputStyleConfigura uno stile di output per regolare il prompt di sistema. Vedi documentazione degli stili di output"Explanatory"
forceLoginMethodUtilizza claudeai per limitare l’accesso agli account Claude.ai, console per limitare l’accesso agli account Claude Console (fatturazione per utilizzo API)claudeai
forceLoginOrgUUIDSpecifica l’UUID di un’organizzazione per selezionarla automaticamente durante l’accesso, ignorando 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"]
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 lista di rifiuto ha la precedenza. Vedi Configurazione MCP gestita[{ "serverName": "github" }]
deniedMcpServersQuando impostato in managed-settings.json, elenco di server MCP che sono esplicitamente bloccati. Si applica a tutti gli ambiti inclusi i server gestiti. La lista di rifiuto ha la precedenza sulla lista di consentiti. Vedi Configurazione MCP gestita[{ "serverName": "filesystem" }]
strictKnownMarketplacesQuando impostato in managed-settings.json, elenco di marketplace di plugin che gli utenti possono aggiungere. Non definito = nessuna restrizione, array vuoto = blocco totale. Si applica solo alle aggiunte del marketplace. Vedi Restrizioni del marketplace gestito[{ "source": "github", "repo": "acme-corp/plugins" }]
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
alwaysThinkingEnabledAbilita il pensiero esteso per impostazione predefinita per tutte le sessioni. Tipicamente configurato tramite il comando /config piuttosto che modificato direttamentetrue
plansDirectoryPersonalizza dove vengono archiviati i file di piano. Il percorso è relativo alla radice del progetto. Predefinito: ~/.claude/plans"./plans"
showTurnDurationMostra messaggi di durata del turno dopo le risposte (ad es., “Cooked for 1m 6s”). Impostare su false per nascondere questi messaggitrue
languageConfigura la lingua di risposta preferita di Claude (ad es., "japanese", "spanish", "french"). Claude risponderà in questa lingua per impostazione predefinita"japanese"
autoUpdatesChannelCanale di rilascio da seguire per gli aggiornamenti. Utilizza "stable" per una versione che è tipicamente circa una settimana vecchia e salta versioni con regressioni importanti, o "latest" (predefinito) per il rilascio più recente"stable"
spinnerTipsEnabledMostra suggerimenti nello spinner mentre Claude sta lavorando. Impostare su false per disabilitare i suggerimenti (predefinito: true)false
terminalProgressBarEnabledAbilita la barra di avanzamento del terminale che mostra l’avanzamento nei terminali supportati come Windows Terminal e iTerm2 (predefinito: true)false

Impostazioni dei permessi

ChiaviDescrizioneEsempio
allowArray di regole di permesso per consentire l’uso dello strumento. Vedi Sintassi della regola di permesso sottostante per i dettagli della corrispondenza dei pattern[ "Bash(git diff:*)" ]
askArray di regole di permesso per chiedere conferma all’uso dello strumento. Vedi Sintassi della regola di permesso sottostante[ "Bash(git push:*)" ]
denyArray di regole di permesso per negare l’uso dello strumento. Utilizza questo per escludere file sensibili dall’accesso di Claude Code. Vedi Sintassi della regola di permesso e Limitazioni dei permessi Bash[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]
additionalDirectoriesDirectory di lavoro aggiuntive a cui Claude ha accesso[ "../docs/" ]
defaultModeModalità di permesso predefinita all’apertura di Claude Code"acceptEdits"
disableBypassPermissionsModeImpostare su "disable" per impedire l’attivazione della modalità bypassPermissions. Questo disabilita il flag della riga di comando --dangerously-skip-permissions. Vedi impostazioni gestite"disable"

Sintassi della regola di permesso

Le regole di permesso seguono il formato Tool o Tool(specifier). Comprendere la sintassi ti aiuta a scrivere regole che corrispondono esattamente a quello che intendi.

Ordine di valutazione delle regole

Quando più regole potrebbero corrispondere allo stesso uso dello strumento, le regole vengono valutate in questo ordine:
  1. Regole Deny vengono controllate per prime
  2. Regole Ask vengono controllate per seconde
  3. Regole Allow vengono controllate per ultime
La prima regola corrispondente determina il comportamento. Ciò significa che le regole di negazione hanno sempre la precedenza sulle regole di consentimento, anche se entrambe corrispondono allo stesso comando.

Corrispondenza di tutti gli usi di uno strumento

Per corrispondere a tutti gli usi di uno strumento, utilizza solo il nome dello strumento senza parentesi:
RegolaEffetto
BashCorrisponde a tutti i comandi Bash
WebFetchCorrisponde a tutte le richieste di recupero web
ReadCorrisponde a tutte le letture di file
Bash(*) non corrisponde a tutti i comandi Bash. Il wildcard * corrisponde solo all’interno del contesto dello specifier. Per consentire o negare tutti gli usi di uno strumento, utilizza solo il nome dello strumento: Bash, non Bash(*).

Utilizzo di specifier per il controllo granulare

Aggiungi uno specifier tra parentesi per corrispondere a usi specifici dello strumento:
RegolaEffetto
Bash(npm run build)Corrisponde al comando esatto npm run build
Read(./.env)Corrisponde alla lettura del file .env nella directory corrente
WebFetch(domain:example.com)Corrisponde alle richieste di recupero a example.com

Pattern con wildcard

Due sintassi di wildcard sono disponibili per le regole Bash:
WildcardPosizioneComportamentoEsempio
:*Solo alla fine del patternCorrispondenza del prefisso con confine di parola. Il prefisso deve essere seguito da uno spazio o fine stringa.Bash(ls:*) corrisponde a ls -la ma non a lsof
*Ovunque nel patternCorrispondenza glob senza confine di parola. Corrisponde a qualsiasi sequenza di caratteri in quella posizione.Bash(ls*) corrisponde sia a ls -la che a lsof
Corrispondenza del prefisso con :* Il suffisso :* corrisponde a qualsiasi comando che inizia con il prefisso specificato. Funziona con comandi multi-parola. La seguente configurazione consente comandi npm e git commit mentre blocca git push e rm -rf:
{
  "permissions": {
    "allow": [
      "Bash(npm run:*)",
      "Bash(git commit:*)",
      "Bash(docker compose:*)"
    ],
    "deny": [
      "Bash(git push:*)",
      "Bash(rm -rf:*)"
    ]
  }
}
Corrispondenza glob con * Il wildcard * può apparire all’inizio, nel mezzo o alla fine di un pattern. La seguente configurazione consente qualsiasi comando git che ha come target main (come git checkout main, git merge main) e qualsiasi comando di controllo della versione (come node --version, npm --version):
{
  "permissions": {
    "allow": [
      "Bash(git * main)",
      "Bash(* --version)"
    ]
  }
}
I pattern di permesso Bash che tentano di vincolare gli argomenti del comando sono fragili. Ad esempio, Bash(curl http://github.com/:*) intende limitare curl agli URL di GitHub, ma non corrisponderà a curl -X GET http://github.com/... (flag prima dell’URL), curl https://github.com/... (protocollo diverso) o comandi che utilizzano variabili di shell. Non fare affidamento sui pattern di vincolo degli argomenti come confine di sicurezza. Vedi Limitazioni dei permessi Bash per alternative.
Per informazioni dettagliate sui pattern di permesso specifici dello strumento, inclusi Read, Edit, WebFetch, MCP, Task e limitazioni dei permessi Bash, vedi Regole di permesso specifiche dello strumento.

Impostazioni della 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 del filesystem e della rete sono configurate tramite regole di permesso Read, Edit e WebFetch, non tramite queste impostazioni della 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"]
allowUnsandboxedCommandsConsenti ai comandi di essere eseguiti al di fuori della sandbox tramite il parametro dangerouslyDisableSandbox. Quando impostato su false, la scappatoia dangerouslyDisableSandbox è completamente disabilitata e tutti i comandi devono essere eseguiti in sandbox (o essere in excludedCommands). Utile per le politiche aziendali che richiedono una sandbox rigorosa. Predefinito: truefalse
network.allowUnixSocketsPercorsi di 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 del proxy HTTP utilizzata se desideri portare il tuo proxy. Se non specificato, Claude eseguirà il suo proxy.8080
network.socksProxyPortPorta del proxy SOCKS5 utilizzata se desideri portare il tuo proxy. Se non specificato, Claude eseguirà il suo proxy.8081
enableWeakerNestedSandboxAbilita una 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/**)"
    ]
  }
}
Le restrizioni del filesystem e della rete utilizzano regole di permesso standard:
  • Utilizza le regole di negazione Read per bloccare Claude dalla lettura di file o directory specifici
  • Utilizza le regole di consentimento Edit per consentire a Claude di scrivere in directory oltre la directory di lavoro corrente
  • Utilizza le regole di negazione Edit per bloccare le scritture in percorsi specifici
  • Utilizza le regole di consentimento/negazione WebFetch per controllare quali domini di rete Claude può accedere

Impostazioni di attribuzione

Claude Code aggiunge attribuzione ai commit git e alle pull request. Questi sono configurati separatamente:
  • I commit utilizzano git trailer (come Co-Authored-By) per impostazione predefinita, che possono essere personalizzati o disabilitati
  • Le descrizioni delle pull request sono testo semplice
ChiaviDescrizione
commitAttribuzione per i commit git, inclusi eventuali trailer. La stringa vuota nasconde l’attribuzione del commit
prAttribuzione per le descrizioni delle pull request. La stringa vuota nasconde l’attribuzione della pull request
Attribuzione predefinita del commit:
🤖 Generated with [Claude Code](https://claude.com/claude-code)

   Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Attribuzione predefinita della pull request:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Esempio:
{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <[email protected]>",
    "pr": ""
  }
}
L’impostazione attribution ha la precedenza sull’impostazione deprecata includeCoAuthoredBy. Per nascondere tutta l’attribuzione, imposta commit e pr su stringhe vuote.

Impostazioni di suggerimento file

Configura un comando personalizzato per l’autocompletamento del percorso del file @. Il suggerimento di file integrato utilizza l’attraversamento veloce del filesystem, ma i monorepo di grandi dimensioni potrebbero beneficiare dell’indicizzazione specifica del progetto come un indice di file pre-costruito o strumenti personalizzati.
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}
Il comando viene eseguito con le stesse variabili d’ambiente degli hook, incluso CLAUDE_PROJECT_DIR. Riceve JSON tramite stdin con un campo query:
{"query": "src/comp"}
Restituisci i percorsi dei file separati da newline a stdout (attualmente limitati a 15):
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx
Esempio:
#!/bin/bash
query=$(cat | jq -r '.query')
your-repo-file-index --query "$query" | head -20

Configurazione degli hook

Solo impostazioni gestite: Controlla quali hook sono autorizzati a essere eseguiti. Questa impostazione può essere configurata solo nelle impostazioni gestite e fornisce agli amministratori un controllo rigoroso sull’esecuzione degli hook. Comportamento quando allowManagedHooksOnly è true:
  • Gli hook gestiti e gli hook SDK vengono caricati
  • Gli hook utente, gli hook di progetto e gli hook di plugin vengono bloccati
Configurazione:
{
  "allowManagedHooksOnly": true
}

Precedenza delle impostazioni

Le impostazioni si applicano in ordine di precedenza. Dal più alto al più basso:
  1. Impostazioni gestite (managed-settings.json)
    • Politiche distribuite da IT/DevOps alle directory di sistema
    • Non possono essere ignorate dalle impostazioni utente o di progetto
  2. Argomenti della riga di comando
    • Override temporanei per una sessione specifica
  3. Impostazioni di progetto locale (.claude/settings.local.json)
    • Impostazioni di progetto personali specifiche
  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 politiche organizzative siano sempre applicate mentre consente ancora ai team e agli individui di personalizzare la loro esperienza. Ad esempio, se le tue impostazioni utente consentono Bash(npm run:*) ma le impostazioni condivise di un progetto lo negano, l’impostazione di progetto ha la precedenza e il comando è bloccato.

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 d’ambiente e comportamento dello strumento
  • Skill: Prompt personalizzati che possono essere invocati con /skill-name o caricati automaticamente da Claude
  • Server MCP: Estendono Claude Code con strumenti e integrazioni aggiuntivi
  • Precedenza: Le configurazioni di livello superiore (Gestite) ignorano quelle di livello inferiore (Utente/Progetto)
  • Eredità: Le impostazioni vengono unite, con impostazioni più specifiche che aggiungono o ignorano quelle più ampie

Prompt di sistema

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

Esclusione di file sensibili

Per impedire a Claude Code di accedere a file contenenti informazioni sensibili come chiavi API, segreti e file di ambiente, utilizza 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 archiviati come file Markdown con frontmatter YAML:
  • Subagenti utente: ~/.claude/agents/ - Disponibili su tutti i tuoi progetti
  • Subagenti di 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’utilizzo dei subagenti nella documentazione dei subagenti.

Configurazione dei plugin

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

Impostazioni dei plugin

Impostazioni relative ai plugin in settings.json:
{
  "enabledPlugins": {
    "formatter@acme-tools": true,
    "deployer@acme-tools": true,
    "analyzer@security-plugins": false
  },
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": "github",
      "repo": "acme-corp/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 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:
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}
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)

strictKnownMarketplaces

Solo impostazioni gestite: Controlla quali marketplace di plugin gli utenti sono autorizzati ad aggiungere. Questa impostazione può essere configurata solo in managed-settings.json 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 dalle impostazioni utente o di progetto (massima precedenza)
  • Applicato PRIMA delle operazioni di rete/filesystem (le fonti bloccate non vengono mai eseguite)
  • Utilizza la corrispondenza esatta per le specifiche della fonte (incluso ref, path per le fonti git)
Comportamento della lista di consentiti:
  • undefined (predefinito): Nessuna restrizione - gli utenti possono aggiungere qualsiasi marketplace
  • Array vuoto []: Blocco completo - gli utenti non possono aggiungere nuovi marketplace
  • Elenco di fonti: Gli utenti possono aggiungere solo marketplace che corrispondono esattamente
Tutti i tipi di fonte supportati: La lista di consentiti supporta sei tipi di fonte del marketplace. Ogni fonte deve corrispondere esattamente affinché l’aggiunta del marketplace di un utente sia consentita.
  1. Repository GitHub:
{ "source": "github", "repo": "acme-corp/approved-plugins" }
{ "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }
Campi: repo (obbligatorio), ref (facoltativo: branch/tag/SHA), path (facoltativo: sottodirectory)
  1. Repository Git:
{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }
{ "source": "git", "url": "https://bitbucket.org/acme-corp/plugins.git", "ref": "production" }
{ "source": "git", "url": "ssh://[email protected]/plugins.git", "ref": "v3.1", "path": "approved" }
Campi: url (obbligatorio), ref (facoltativo: branch/tag/SHA), path (facoltativo: sottodirectory)
  1. Marketplace basati su URL:
{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }
{ "source": "url", "url": "https://cdn.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }
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 Risoluzione dei problemi per i dettagli.
  1. Pacchetti NPM:
{ "source": "npm", "package": "@acme-corp/claude-plugins" }
{ "source": "npm", "package": "@acme-corp/approved-marketplace" }
Campi: package (obbligatorio, supporta pacchetti con scope)
  1. Percorsi di file:
{ "source": "file", "path": "/usr/local/share/claude/acme-marketplace.json" }
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }
Campi: path (obbligatorio: percorso assoluto al file marketplace.json)
  1. Percorsi di directory:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }
Campi: path (obbligatorio: percorso assoluto alla directory contenente .claude-plugin/marketplace.json) Esempi di configurazione: Esempio - Consenti solo marketplace specifici:
{
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "acme-corp/approved-plugins"
    },
    {
      "source": "github",
      "repo": "acme-corp/security-tools",
      "ref": "v2.0"
    },
    {
      "source": "url",
      "url": "https://plugins.example.com/marketplace.json"
    },
    {
      "source": "npm",
      "package": "@acme-corp/compliance-plugins"
    }
  ]
}
Esempio - Disabilita tutte le aggiunte del marketplace:
{
  "strictKnownMarketplaces": []
}
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 essere non definiti)
  • Il campo path deve corrispondere esattamente (o entrambi essere non definiti)
Esempi di fonti che NON corrispondono:
// Queste sono DIVERSE fonti:
{ "source": "github", "repo": "acme-corp/plugins" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }

// Anche queste sono DIVERSE:
{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }
{ "source": "github", "repo": "acme-corp/plugins" }
Confronto con extraKnownMarketplaces:
AspettostrictKnownMarketplacesextraKnownMarketplaces
ScopoApplicazione della politica organizzativaComodità del team
File di impostazioniSolo managed-settings.jsonQualsiasi file di impostazioni
ComportamentoBlocca le aggiunte non nella lista di consentitiInstalla automaticamente i marketplace mancanti
Quando applicatoPrima delle operazioni di rete/filesystemDopo il prompt di fiducia dell’utente
Può essere ignoratoNo (massima precedenza)Sì (dalle impostazioni di precedenza superiore)
Formato della fonteOggetto fonte direttoMarketplace denominato con fonte nidificata
Caso d’usoConformità, restrizioni di sicurezzaOnboarding, standardizzazione
Differenza di formato: strictKnownMarketplaces utilizza oggetti fonte diretti:
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ]
}
extraKnownMarketplaces richiede marketplace denominati:
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}
Note importanti:
  • Le restrizioni vengono controllate PRIMA di qualsiasi richiesta di rete o operazione di filesystem
  • Quando bloccate, gli utenti vedono messaggi di errore chiari che indicano che la fonte è bloccata dalla politica gestita
  • La restrizione si applica solo all’aggiunta di NUOVI marketplace; i marketplace precedentemente installati rimangono accessibili
  • Le impostazioni gestite hanno la massima precedenza e non possono essere ignorate
Vedi Restrizioni del marketplace gestito per la documentazione rivolta agli utenti.

Gestione dei plugin

Utilizza 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 dei plugin.

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 insieme di variabili d’ambiente per tutto il tuo team o organizzazione.
VariabileScopo
ANTHROPIC_API_KEYChiave API inviata come intestazione X-Api-Key, tipicamente per Claude SDK (per l’utilizzo interattivo, esegui /login)
ANTHROPIC_AUTH_TOKENValore personalizzato per l’intestazione Authorization (il valore che imposti qui sarà preceduto da Bearer )
ANTHROPIC_CUSTOM_HEADERSIntestazioni personalizzate che desideri aggiungere alla richiesta (in formato Name: Value)
ANTHROPIC_DEFAULT_HAIKU_MODELVedi Configurazione del modello
ANTHROPIC_DEFAULT_OPUS_MODELVedi Configurazione del modello
ANTHROPIC_DEFAULT_SONNET_MODELVedi Configurazione del modello
ANTHROPIC_FOUNDRY_API_KEYChiave API per l’autenticazione Microsoft Foundry (vedi Microsoft Foundry)
ANTHROPIC_MODELNome dell’impostazione del modello da utilizzare (vedi Configurazione del modello)
ANTHROPIC_SMALL_FAST_MODEL[DEPRECATO] Nome del modello di classe Haiku per attività in background
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONIgnora la regione AWS per il modello di classe Haiku quando si utilizza 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 nel mezzo
BASH_MAX_TIMEOUT_MSTimeout massimo che il modello può impostare per i comandi bash a lunga esecuzione
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEImposta la percentuale della capacità del contesto (1-100) a cui si attiva la compattazione automatica. Per impostazione predefinita, la compattazione automatica si attiva a circa il 95% della capacità. Utilizza valori inferiori come 50 per compattare prima. I valori superiori alla soglia predefinita non hanno effetto. Si applica sia alle conversazioni principali che ai subagenti. Questa percentuale si allinea con il campo context_window.used_percentage disponibile nella riga di stato
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 utilizza apiKeyHelper)
CLAUDE_CODE_CLIENT_CERTPercorso al file del certificato client per l’autenticazione mTLS
CLAUDE_CODE_CLIENT_KEY_PASSPHRASEPassphrase per la chiave privata CLAUDE_CODE_CLIENT_KEY crittografata (facoltativo)
CLAUDE_CODE_CLIENT_KEYPercorso al file della chiave privata client per l’autenticazione mTLS
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASImpostare su 1 per disabilitare le intestazioni anthropic-beta specifiche dell’API Anthropic. Utilizza questo se riscontri problemi come “Unexpected value(s) for the anthropic-beta header” quando utilizzi un gateway LLM con provider di terze parti
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSImpostare su 1 per disabilitare tutta la funzionalità di attività in background, incluso il parametro run_in_background su strumenti Bash e subagenti, auto-backgrounding e il collegamento Ctrl+B
CLAUDE_CODE_EXIT_AFTER_STOP_DELAYTempo in millisecondi da attendere dopo che il ciclo di query diventa inattivo prima di uscire automaticamente. Utile per flussi di lavoro automatizzati e script che utilizzano la modalità SDK
CLAUDE_CODE_PROXY_RESOLVES_HOSTSImpostare su true per consentire al proxy di eseguire la risoluzione DNS invece del chiamante. Opt-in per gli ambienti in cui il proxy dovrebbe gestire la risoluzione del nome host
CLAUDE_CODE_TMPDIRIgnora la directory temporanea utilizzata per i file temporanei interni. Claude Code aggiunge /claude/ a questo percorso. Predefinito: /tmp su Unix/macOS, os.tmpdir() su Windows
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICEquivalente all’impostazione di DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING e DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLEImpostare su 1 per disabilitare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENSIgnora il limite di token predefinito per le letture di file. Utile quando è necessario leggere file più grandi per intero
CLAUDE_CODE_HIDE_ACCOUNT_INFOImpostare su 1 per nascondere il tuo indirizzo email e il nome dell’organizzazione dall’interfaccia utente di Claude Code. Utile quando si trasmette in streaming o si registra
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. Predefinito: 32.000. Massimo: 64.000. L’aumento di questo valore riduce la finestra di contesto effettiva disponibile prima che si attivi la compattazione automatica.
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MSIntervallo per l’aggiornamento delle intestazioni OpenTelemetry dinamiche in millisecondi (predefinito: 1740000 / 29 minuti). Vedi Intestazioni dinamiche
CLAUDE_CODE_SHELLIgnora il rilevamento automatico della shell. Utile quando la tua shell di accesso differisce dalla tua shell di lavoro preferita (ad esempio, bash vs zsh)
CLAUDE_CODE_SHELL_PREFIXPrefisso del comando per avvolgere tutti i comandi bash (ad esempio, per la registrazione o il controllo). Esempio: /path/to/logger.sh eseguirà /path/to/logger.sh <command>
CLAUDE_CODE_SKIP_BEDROCK_AUTHSalta l’autenticazione AWS per Bedrock (ad esempio, quando si utilizza un gateway LLM)
CLAUDE_CODE_SKIP_FOUNDRY_AUTHSalta l’autenticazione Azure per Microsoft Foundry (ad esempio, quando si utilizza un gateway LLM)
CLAUDE_CODE_SKIP_VERTEX_AUTHSalta l’autenticazione Google per Vertex (ad esempio, quando si utilizza un gateway LLM)
CLAUDE_CODE_SUBAGENT_MODELVedi Configurazione del modello
CLAUDE_CODE_USE_BEDROCKUtilizza Bedrock
CLAUDE_CODE_USE_FOUNDRYUtilizza Microsoft Foundry
CLAUDE_CODE_USE_VERTEXUtilizza Vertex
CLAUDE_CONFIG_DIRPersonalizza dove Claude Code archivia i suoi file di configurazione e dati
DISABLE_AUTOUPDATERImpostare su 1 per disabilitare gli aggiornamenti automatici.
DISABLE_BUG_COMMANDImpostare su 1 per disabilitare il comando /bug
DISABLE_COST_WARNINGSImpostare su 1 per disabilitare i messaggi di avvertimento sui costi
DISABLE_ERROR_REPORTINGImpostare su 1 per rinunciare alla segnalazione degli errori di Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSImpostare su 1 per disabilitare le chiamate del modello per percorsi non critici come il testo di sapore
DISABLE_PROMPT_CACHINGImpostare su 1 per disabilitare la memorizzazione nella cache del prompt per tutti i modelli (ha la precedenza sulle impostazioni per modello)
DISABLE_PROMPT_CACHING_HAIKUImpostare su 1 per disabilitare la memorizzazione nella cache del prompt per i modelli Haiku
DISABLE_PROMPT_CACHING_OPUSImpostare su 1 per disabilitare la memorizzazione nella cache del prompt per i modelli Opus
DISABLE_PROMPT_CACHING_SONNETImpostare su 1 per disabilitare la memorizzazione nella cache del prompt per i modelli Sonnet
DISABLE_TELEMETRYImpostare su 1 per rinunciare alla telemetria Statsig (nota che gli eventi Statsig non includono dati utente come codice, percorsi di file o comandi bash)
ENABLE_TOOL_SEARCHControlla la ricerca degli strumenti MCP. Valori: auto (predefinito, abilita al 10% del contesto), auto:N (soglia personalizzata, ad es. auto:5 per il 5%), true (sempre attivo), false (disabilitato)
FORCE_AUTOUPDATE_PLUGINSImpostare su true per forzare gli aggiornamenti automatici dei plugin anche quando l’aggiornamento automatico principale è disabilitato tramite DISABLE_AUTOUPDATER
HTTP_PROXYSpecifica il server proxy HTTP per le connessioni di rete
HTTPS_PROXYSpecifica il server proxy HTTPS per le connessioni di rete
IS_DEMOImpostare su true per abilitare la modalità demo: nasconde l’email e l’organizzazione dall’interfaccia utente, salta l’onboarding e nasconde i comandi interni. Utile per la trasmissione in streaming o la registrazione di sessioni
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_TOKENSIgnora il budget del pensiero esteso. Il pensiero è abilitato al budget massimo (31.999 token) per impostazione predefinita. Utilizza questo per limitare il budget (ad esempio, MAX_THINKING_TOKENS=10000) o disabilitare completamente il pensiero (MAX_THINKING_TOKENS=0). Il pensiero esteso migliora le prestazioni su attività di ragionamento e codifica complesse ma influisce sull’efficienza della memorizzazione nella cache del prompt.
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, ignorando il proxy
SLASH_COMMAND_TOOL_CHAR_BUDGETNumero massimo di caratteri per i metadati delle skill mostrati allo strumento Skill (predefinito: 15000). Nome legacy mantenuto per la compatibilità all’indietro.
USE_BUILTIN_RIPGREPImpostare su 0 per utilizzare il rg installato dal sistema invece del rg incluso con Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKUIgnora la regione per Claude 3.5 Haiku quando si utilizza Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNETIgnora la regione per Claude 3.7 Sonnet quando si utilizza Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUSIgnora la regione per Claude 4.0 Opus quando si utilizza Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNETIgnora la regione per Claude 4.0 Sonnet quando si utilizza Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUSIgnora la regione per Claude 4.1 Opus quando si utilizza Vertex AI

Strumenti disponibili per Claude

Claude Code ha accesso a un insieme di strumenti potenti che lo aiutano a comprendere e modificare il tuo codebase:
StrumentoDescrizionePermesso richiesto
AskUserQuestionPone domande a scelta multipla per raccogliere requisiti o chiarire ambiguitàNo
BashEsegue comandi shell nel tuo ambiente (vedi Comportamento dello strumento Bash sottostante)
TaskOutputRecupera l’output da un’attività in background (shell bash o subagente)No
EditEffettua modifiche mirate a file specifici
ExitPlanModeInvita l’utente a uscire dalla modalità di piano e iniziare a codificare
GlobTrova file in base alla corrispondenza dei patternNo
GrepCerca pattern nei contenuti dei fileNo
KillShellUccide una shell bash in background in esecuzione per il suo IDNo
MCPSearchCerca e carica gli strumenti MCP quando la ricerca degli strumenti è abilitataNo
NotebookEditModifica le celle del notebook Jupyter
ReadLegge i contenuti dei fileNo
SkillEsegue una skill all’interno della conversazione principale
TaskEsegue un sub-agente per gestire attività complesse e multi-stepNo
TodoWriteCrea e gestisce elenchi di attività strutturateNo
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.

Comportamento dello strumento Bash

Lo strumento Bash esegue comandi shell con il seguente comportamento di persistenza:
  • La directory di lavoro persiste: Quando Claude cambia la directory di lavoro (ad esempio, cd /path/to/dir), i successivi comandi Bash verranno eseguiti in quella directory. Puoi utilizzare CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 per ripristinare la directory del progetto dopo ogni comando.
  • Le variabili d’ambiente NON persistono: Le variabili d’ambiente impostate in un comando Bash (ad esempio, export MY_VAR=value) non sono disponibili nei successivi comandi Bash. Ogni comando Bash viene eseguito in un ambiente shell fresco.
Per rendere disponibili le variabili d’ambiente nei comandi Bash, hai tre opzioni: Opzione 1: Attiva l’ambiente prima di avviare Claude Code (approccio più semplice) Attiva il tuo ambiente virtuale nel tuo terminale prima di lanciare Claude Code:
conda activate myenv
# o: source /path/to/venv/bin/activate
claude
Questo funziona per gli ambienti shell ma le variabili d’ambiente impostate all’interno dei comandi Bash di Claude non persisteranno tra i comandi. Opzione 2: Imposta CLAUDE_ENV_FILE prima di avviare Claude Code (configurazione dell’ambiente persistente) Esporta il percorso a uno script shell contenente la configurazione dell’ambiente:
export CLAUDE_ENV_FILE=/path/to/env-setup.sh
claude
Dove /path/to/env-setup.sh contiene:
conda activate myenv
# o: source /path/to/venv/bin/activate
# o: export MY_VAR=value
Claude Code fornirà questo file prima di ogni comando Bash, rendendo l’ambiente persistente su tutti i comandi. Opzione 3: Utilizza un hook SessionStart (configurazione specifica del progetto) Configura in .claude/settings.json:
{
  "hooks": {
    "SessionStart": [{
      "matcher": "startup",
      "hooks": [{
        "type": "command",
        "command": "echo 'conda activate myenv' >> \"$CLAUDE_ENV_FILE\""
      }]
    }]
  }
}
L’hook scrive in $CLAUDE_ENV_FILE, che viene quindi fornito prima di ogni comando Bash. Questo è ideale per le configurazioni di progetto condivise dal team. Vedi Hook SessionStart per ulteriori dettagli sull’Opzione 3.

Estensione degli strumenti con hook

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

Vedi anche