SpyBara
Go Premium

settings-example.md 2026-10-29 23:57 UTC to 2026-10-30 23:01 UTC

This page contains 325 additions and 325 deletions.

2026
Fri 2 22:59 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59 Fri 30 23:01

Arquivos de configuração de exemplo

Arquivos settings.json realistas para um desenvolvedor, uma equipe e uma organização: copie um, mantenha as chaves que deseja e altere os valores.

Esta página contém três arquivos settings.json de exemplo, um para cada lugar onde você salva uma configuração:

  • Um ~/.claude/settings.json de desenvolvedor
  • Um .claude/settings.json de equipe, confirmado no repositório
  • Um managed-settings.json de organização

Cada um é um arquivo plausível para esse leitor, para que você possa ver a forma e copiar as partes que deseja. Nenhum deles é uma linha de base recomendada. Cada valor vem da entrada da chave na referência de configurações, que tem seu tipo, padrão e onde pode ser definido.

Cada exemplo tem duas abas. Copyable settings file é o arquivo como você o salvaria. What each key does é o mesmo arquivo com um comentário acima de cada chave; Claude Code não aceita comentários em um arquivo de configurações, então copie da primeira aba.

Suas próprias configurações

As configurações pessoais de um desenvolvedor. Ele escolhe um modelo e esforço, ajusta o terminal e pré-aprova um comando somente leitura e uma leitura de arquivo. Tudo não listado mantém seu padrão. Um arquivo como este vai em ~/.claude/settings.json, onde se aplica a cada projeto que você abre.

[tab] Copyable settings file

Salve isto como ~/.claude/settings.json. É JSON válido sem comentários, então você pode colar como está e deletar as chaves que não deseja.

{
  "model": "claude-sonnet-5",
  "modelSettings": {
    "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
}

[tab] What each key does

O mesmo arquivo com um comentário acima de cada chave. Leia aqui; copie da outra aba, porque Claude Code não aceita comentários em um arquivo de configurações.

{
  // Inicie cada sessão no Sonnet 5
  "model": "claude-sonnet-5",
  // Execute Sonnet 5 acima de seu nível alto padrão; /effort salva um nível por modelo, e --effort define um para uma única sessão
  "modelSettings": {
    "claude-sonnet-5": { "effortLevel": "xhigh" }
  },
  // Atalhos de teclado Vim no prompt
  "editorMode": "vim",
  // O tema claro amigável para daltônicos
  "theme": "light-daltonized",
  // Uma linha de status abaixo do prompt: nome do modelo e contexto usado
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  },
  // Oculte as dicas que giram sob o spinner
  "spinnerTipsEnabled": false,
  // Toque o sino do terminal para notificações, como uma tarefa concluída ou um prompt de permissão aguardando
  "preferredNotifChannel": "terminal_bell",
  // Deixe Claude Code executar git diff e ler seu .zshrc sem perguntar
  "permissions": {
    "allow": [
      "Bash(git diff *)",
      "Read(~/.zshrc)"
    ]
  },
  // Pegue atualizações do canal estável
  "autoUpdatesChannel": "stable",
  // Exclua transcrições de sessão e outros dados de sessão local com mais de 20 dias
  "cleanupPeriodDays": 20
}

As configurações compartilhadas de uma equipe

As configurações compartilhadas de uma equipe, com commit no repositório para que todos que o clonarem recebam as mesmas permissões, hooks e marketplace de plugins. Salve um arquivo como este em .claude/settings.json na raiz do repositório. O que saber antes de fazer commit de um:

  • Sessões na nuvem fora das threads de um projeto também o leem. Uma sessão na nuvem com um repositório começa dentro do clone, então o arquivo com commit também se aplica lá.
  • A telemetria vai nas configurações gerenciadas ou pessoais. O Claude Code ignora as variáveis do exportador OpenTelemetry nos arquivos de configurações de um repositório, exceto alguns valores que desativam a telemetria. Defina-as nas configurações gerenciadas da sua organização ou no ~/.claude/settings.json de cada pessoa.
  • As regras de allow aguardam a confiança. As regras de allow (permitir) e as entradas de extraKnownMarketplaces entram em vigor depois que cada pessoa confia nesta própria pasta, e não apenas em uma pasta pai; as regras de deny e ask se aplicam em todas as sessões, confiáveis ou não.
  • O hook é um script no repositório. O hook deste arquivo executa .claude/hooks/block-rm.sh; Como um hook é resolvido explica como escrevê-lo.
  • As regras correspondem ao comando e ao caminho conforme escritos. Bash(git push *) não corresponde a git -C . push. Read(./.env) sozinho bloqueia as ferramentas de arquivo e os comandos que nomeiam o arquivo, como cat .env, mas não grep -r executado sobre o diretório; o bloco sandbox neste arquivo fecha essa lacuna, porque o sandbox adiciona seus caminhos de deny de Read ao que nenhum comando em sandbox pode ler.

[tab] Arquivo de configurações para copiar

Salve isto como .claude/settings.json na raiz do repositório e faça o commit. É um JSON válido sem comentários, então você pode colá-lo como está e excluir as chaves que não quiser.

{
  "permissions": {
    "allow": [
      "Bash(npm run *)"
    ],
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "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"
}

[tab] O que cada chave faz

O mesmo arquivo com um comentário acima de cada chave. Leia-o aqui; copie da outra aba, porque o Claude Code não aceita comentários em um arquivo de configurações.

{
  "permissions": {
    // Run npm scripts without asking
    "allow": [
      "Bash(npm run *)"
    ],
    // Confirm before git push commands
    "ask": [
      "Bash(git push *)"
    ],
    // Deny reads of env files and the secrets folder by the file tools and file-reading commands
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  // Before every Bash command, run a script in the repo that can block it
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
          }
        ]
      }
    ]
  },
  // Register the team's plugin marketplace on every clone
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  },
  // Enable one plugin from that marketplace; a plugin from an external source such as a GitHub repository still needs each person to install it once
  "enabledPlugins": {
    "code-formatter@acme-tools": true
  },
  // Sandbox commands: writable build dir; npm and example.com pre-allowed
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "allowWrite": [
        "/tmp/build"
      ]
    },
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "*.example.com"
      ]
    }
  },
  // Keep plan files inside the repo
  "plansDirectory": "./plans"
}

Configurações gerenciadas de uma organização

Um arquivo managed-settings.json que mostra a forma das chaves gerenciadas, com um valor plausível para cada uma. Não é uma política recomendada: escolha as chaves que correspondem aos seus próprios requisitos e defina seus próprios valores. O exemplo define estas chaves:

  • forceLoginMethod e forceLoginOrgUUID fixam o método de login e a organização
  • availableModels e enforceAvailableModels restringem quais modelos as sessões podem usar
  • permissions.deny bloqueia duas leituras de arquivo e comandos curl conforme Claude os escreve, e disableBypassPermissionsMode remove o modo de permissão de bypass
  • allowManagedPermissionRulesOnly e allowManagedMcpServersOnly fazem as listas de permissão gerenciadas e MCP as únicas que se aplicam
  • allowedMcpServers fixa o servidor MCP pela URL
  • strictKnownMarketplaces permite um marketplace de plugins
  • sandbox coloca comandos em sandbox com uma allowlist de rede fixa e sem nova tentativa fora do sandbox. Sua chave failIfUnavailable impede que Claude Code seja iniciado onde o sandbox não pode ser executado
  • requiredMinimumVersion define uma versão mínima de Claude Code
  • cleanupPeriodDays encurta a retenção de transcrições de sessão e outros dados locais para sete dias
  • companyAnnouncements mostra uma mensagem na inicialização

Os administradores implantam um arquivo como este como managed-settings.json, ou o mesmo JSON através de MDM ou configurações gerenciadas pelo servidor. Um arquivo implantado se aplica a cada máquina ou conta que alcança. Para dar a um grupo valores diferentes, implante um arquivo ou perfil diferente para esse grupo, já que as configurações gerenciadas pelo servidor não suportam política por grupo ainda.

[tab] Arquivo de configurações copiável

Implante isto como managed-settings.json, ou o mesmo JSON através de MDM ou do console claude.ai. É JSON válido sem comentários; substitua o UUID da organização de exemplo, URL do servidor e marketplace pelos seus próprios e delete as chaves que não deseja.

{
  "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"
  ]
}

[tab] O que cada chave faz

O mesmo arquivo com um comentário acima de cada chave. Leia aqui; copie da outra aba, porque Claude Code não aceita comentários em um arquivo de configurações.

{
  // Apenas logins claude.ai, e apenas nesta organização
  "forceLoginMethod": "claudeai",
  "forceLoginOrgUUID": [
    "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  ],
  // Apenas modelos Opus e Sonnet; com enforceAvailableModels, a opção Padrão obedece à lista também
  "availableModels": [
    "opus",
    "sonnet"
  ],
  "enforceAvailableModels": true,
  "permissions": {
    // Bloqueie curl, o arquivo .env do projeto e sua pasta de segredos em cada máquina
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ],
    // Remova o modo de bypass de permissões de cada sessão
    "disableBypassPermissionsMode": "disable"
  },
  // Ignore regras de permissão de configurações de usuário, projeto e local
  "allowManagedPermissionRulesOnly": true,
  // Apenas o servidor MCP do GitHub, correspondido pela URL em vez de por nome, já que um usuário pode
  // nomear qualquer servidor "github". Servidores adicionados pelo usuário que não correspondem não carregam, incluindo
  // cada servidor stdio quando a lista tem apenas entradas de URL. A chave allowManagedMcpServersOnly
  // abaixo faz desta lista gerenciada a única lista de permissão que se aplica
  "allowedMcpServers": [
    {
      "serverUrl": "https://api.githubcopilot.com/*"
    }
  ],
  "allowManagedMcpServersOnly": true,
  // Plugins podem vir apenas deste marketplace
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "acme-corp/approved-plugins"
    }
  ],
  // Coloque cada comando que Claude executa em sandbox, recuse iniciar se o sandbox não puder ser
  // configurado, e nunca deixe um comando bloqueado tentar novamente fora do sandbox; rede
  // limitada a npm e GitHub, e usuários não podem adicionar domínios
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false,
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "github.com"
      ],
      "allowManagedDomainsOnly": true
    }
  },
  // Recuse iniciar em versões mais antigas que 2.1.150
  "requiredMinimumVersion": "2.1.150",
  // Exclua transcrições de sessão e outros dados de sessão local após 7 dias
  "cleanupPeriodDays": 7,
  // Uma mensagem que cada usuário vê na inicialização
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}