SpyBara
Go Premium

settings-example.md 2026-10-19 23:58 UTC to 2026-10-20 23:00 UTC

This page contains 45 additions and 57 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.

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
}

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
}

Configurações compartilhadas de uma equipe

As configurações compartilhadas de uma equipe, confirmadas no repositório para que todos que o clonem obtenham as mesmas permissões, hooks e marketplace de plugins. Salve um arquivo como este em .claude/settings.json no topo do repositório. O que você precisa saber antes de confirmar um:

  • Sessões em nuvem também o leem. Uma sessão em nuvem começa a partir de um clone do repositório, então o arquivo confirmado se aplica lá também.
  • Telemetria vai em configurações gerenciadas ou pessoais. 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 em configurações gerenciadas para sua organização, ou no ~/.claude/settings.json de cada pessoa.
  • Regras de permissão aguardam confiança. Regras de permissão e entradas extraKnownMarketplaces entram em vigor depois que cada pessoa confia nesta pasta em si, não apenas em uma pasta pai; regras de negação e pergunta se aplicam em cada sessão, confiável ou não.
  • O hook é um script no repositório. O hook deste arquivo executa .claude/hooks/block-rm.sh; How a hook resolves percorre como escrevê-lo.
  • Regras correspondem ao comando e caminho conforme escrito. Bash(git push *) não corresponde a git -C . push. Read(./.env) por si só impede as ferramentas de arquivo e 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 negação Read ao que todo comando em sandbox não pode ler.

Copyable settings file

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

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

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.

{
  "permissions": {
    // Execute scripts npm sem perguntar
    "allow": [
      "Bash(npm run *)"
    ],
    // Confirme antes de comandos git push
    "ask": [
      "Bash(git push *)"
    ],
    // Negue leituras de arquivos env e da pasta de segredos pelas ferramentas de arquivo e comandos que leem arquivos
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  // Antes de cada comando Bash, execute um script no repositório que pode bloqueá-lo
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
          }
        ]
      }
    ]
  },
  // Registre o marketplace de plugins da equipe em cada clone
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  },
  // Ative um plugin desse marketplace; um plugin de uma fonte externa como um repositório GitHub ainda precisa que cada pessoa o instale uma vez
  "enabledPlugins": {
    "code-formatter@acme-tools": true
  },
  // Comandos em sandbox: diretório de build gravável; npm e example.com pré-permitidos
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "allowWrite": [
        "/tmp/build"
      ]
    },
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "*.example.com"
      ]
    }
  },
  // Mantenha arquivos de plano dentro do repositório
  "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.

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

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