SpyBara
Go Premium

settings-example.md 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

This page contains 1 addition and 1 deletion.

2026
Sat 12 03:02 Fri 18 23:58 Tue 22 23:59 Fri 25 23:58

File di impostazioni di esempio

File settings.json realistici per uno sviluppatore, un team e un'organizzazione: copia uno, mantieni le chiavi che desideri e modifica i valori.

Questa pagina contiene tre file settings.json di esempio, uno per ogni luogo in cui salvi un'impostazione:

  • Un file ~/.claude/settings.json di uno sviluppatore
  • Un file .claude/settings.json di un team, sottoposto a commit nel repository
  • Un file managed-settings.json di un'organizzazione

Ognuno è un file plausibile per quel lettore, quindi puoi vedere la struttura e copiare le parti che desideri. Nessuno di essi è una baseline consigliata. Ogni valore proviene dalla voce della chiave nel riferimento delle impostazioni, che contiene il suo tipo, il valore predefinito e dove può essere impostato.

Ogni esempio ha due schede. Copyable settings file è il file come lo salveresti. What each key does è lo stesso file con un commento sopra ogni chiave; Claude Code non accetta commenti in un file di impostazioni, quindi copia dalla prima scheda.

Le tue impostazioni personali

Le impostazioni personali di uno sviluppatore. Sceglie un modello e uno sforzo, regola il terminale e pre-approva un comando di sola lettura e una lettura di file. Tutto ciò che non è elencato mantiene il suo valore predefinito. Un file come questo va in ~/.claude/settings.json, dove si applica a ogni progetto che apri.

Salva questo come ~/.claude/settings.json. È JSON valido senza commenti, quindi puoi incollarlo così com'è ed eliminare le chiavi che non desideri.

{
"model": "claude-sonnet-5",
"effortLevel": "xhigh",
"editorMode": "vim",
"theme": "light-daltonized",
"statusLine": {
"type": "command",
"command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
"padding": 2
},
"spinnerTipsEnabled": false,
"preferredNotifChannel": "terminal_bell",
"permissions": {
"allow": [
"Bash(git diff *)",
"Read(~/.zshrc)"
]
},
"autoUpdatesChannel": "stable",
"cleanupPeriodDays": 20
}

Le impostazioni condivise di un team

Le impostazioni condivise di un team, sottoposte a commit nel repository in modo che tutti coloro che lo clonano ottengano le stesse autorizzazioni, hook, telemetria e marketplace di plugin. Salva un file come questo in .claude/settings.json nella parte superiore del repository. Cose da sapere prima di sottoporre a commit uno:

  • Le sessioni cloud lo leggono anche. Una sessione cloud inizia da un clone del repository, quindi il file sottoposto a commit si applica anche lì.
  • Le regole di autorizzazione attendono la fiducia. Le regole di autorizzazione e le voci extraKnownMarketplaces hanno effetto dopo che ogni persona si fida di questa cartella stessa, non solo di una cartella padre; le regole di negazione e richiesta si applicano in ogni sessione, fidata o meno.
  • L'hook è uno script nel repo. L'hook di questo file esegue .claude/hooks/block-rm.sh; How a hook resolves illustra come scriverlo.
  • Le regole corrispondono al comando e al percorso come scritti. Bash(git push *) non corrisponde a git -C . push. Read(./.env) da solo interrompe i file tool e i comandi che nominano il file, come cat .env, ma non grep -r eseguito sulla directory; il blocco sandbox in questo file colma questa lacuna, perché la sandbox aggiunge i tuoi percorsi di negazione Read a ciò che ogni comando in sandbox non può leggere.

Salva questo come .claude/settings.json nella parte superiore del repository e sottoponi a commit. È JSON valido senza commenti, quindi puoi incollarlo così com'è ed eliminare le chiavi che non desideri.

{
"permissions": {
"allow": [
"Bash(npm run *)"
],
"ask": [
"Bash(git push *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
"OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
}
]
}
]
},
"extraKnownMarketplaces": {
"acme-tools": {
"source": {
"source": "github",
"repo": "acme-corp/claude-plugins"
}
}
},
"enabledPlugins": {
"code-formatter@acme-tools": true
},
"sandbox": {
"enabled": true,
"filesystem": {
"allowWrite": [
"/tmp/build"
]
},
"network": {
"allowedDomains": [
"registry.npmjs.org",
"*.example.com"
]
}
},
"plansDirectory": "./plans"
}

Le impostazioni gestite di un'organizzazione

Un file managed-settings.json che mostra la forma delle chiavi gestite, con un valore plausibile per ognuna. Non è una politica consigliata: scegli le chiavi che corrispondono ai tuoi requisiti e imposta i tuoi valori. L'esempio imposta queste chiavi:

  • forceLoginMethod e forceLoginOrgUUID fissano il metodo di accesso e l'organizzazione
  • availableModels e enforceAvailableModels limitano quali modelli possono utilizzare le sessioni
  • permissions.deny blocca due letture di file e comandi curl come Claude li scrive, e disableBypassPermissionsMode rimuove la modalità di autorizzazione di bypass
  • allowManagedPermissionRulesOnly e allowManagedMcpServersOnly rendono le liste di autorizzazione di autorizzazione e MCP gestite le uniche che si applicano
  • allowedMcpServers fissa il server MCP per URL
  • strictKnownMarketplaces consente un marketplace di plugin
  • sandbox esegue il sandboxing dei comandi con una lista di autorizzazione di rete fissa e nessun retry non sandboxato
  • requiredMinimumVersion imposta una versione minima di Claude Code
  • cleanupPeriodDays accorcia la conservazione dei trascritti delle sessioni e altri dati locali a sette giorni
  • companyAnnouncements mostra un messaggio all'avvio

Gli amministratori distribuiscono un file come questo come managed-settings.json, o lo stesso JSON tramite MDM o impostazioni gestite dal server. Un file distribuito si applica a ogni macchina o account che raggiunge. Per dare a un gruppo valori diversi, distribuisci un file o profilo diverso a quel gruppo, poiché le impostazioni gestite dal server non supportano ancora la politica per gruppo.

Distribuisci questo come managed-settings.json, o lo stesso JSON tramite MDM o la console claude.ai. È JSON valido senza commenti; sostituisci l'UUID dell'organizzazione di esempio, l'URL del server e il marketplace con i tuoi e elimina le chiavi che non desideri.

{
"forceLoginMethod": "claudeai",
"forceLoginOrgUUID": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"availableModels": [
"opus",
"sonnet"
],
"enforceAvailableModels": true,
"permissions": {
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./secrets/**)"
],
"disableBypassPermissionsMode": "disable"
},
"allowManagedPermissionRulesOnly": true,
"allowedMcpServers": [
{
"serverUrl": "https://api.githubcopilot.com/*"
}
],
"allowManagedMcpServersOnly": true,
"strictKnownMarketplaces": [
{
"source": "github",
"repo": "acme-corp/approved-plugins"
}
],
"sandbox": {
"enabled": true,
"failIfUnavailable": true,
"allowUnsandboxedCommands": false,
"network": {
"allowedDomains": [
"registry.npmjs.org",
"github.com"
],
"allowManagedDomainsOnly": true
}
},
"requiredMinimumVersion": "2.1.150",
"cleanupPeriodDays": 7,
"companyAnnouncements": [
"Welcome to Acme Corp! Review our code guidelines at docs.example.com"
]
}