Settings & Permissões
Configure o comportamento do Claude Code globalmente e por projeto. Controle permissões, modelos, temas e variáveis de ambiente.
O settings.json é o painel de controle do Claude Code. Você pode ter configurações globais que se aplicam a todos os projetos, e configurações por projeto que sobrescrevem as globais.
Onde ficam os arquivos de configuração
| Caminho | Escopo | Descrição |
|---|---|---|
~/.claude/settings.json |
Global | Aplica-se a todos os projetos. Suas preferências pessoais. |
<projeto>/.claude/settings.json |
Projeto | Aplica-se apenas a este projeto. Pode ser commitado no repositório. |
Estrutura completa do settings.json
Todas as opções disponíveis em um único arquivo de referência:
{
"model": "claude-sonnet-4-6",
"theme": "dark",
"autoApprove": false,
"permissions": {
"allow": [
"Read(*)",
"Write(src/**)",
"Bash(npm run *)",
"Bash(git *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)",
"WebFetch(*)"
]
},
"env": {
"NODE_ENV": "development"
},
"hooks": {
"PreToolUse": [],
"PostToolUse": [],
"SessionStart": [],
"UserPromptSubmit": []
}
}Modos de permissão
Padrões de permissão com wildcards
O sistema de permissões usa padrões glob para controle granular. Quanto mais específico o padrão, mais seguro:
"Bash(*)" — qualquer comando bash
"Bash(git *)" — qualquer comando git
"Read(*)" — ler qualquer arquivo
"Write(src/**)" — escrever apenas em src/
"Bash(npm run *)" — qualquer npm run script
Atenção: Cuidado com permissões muito amplas em projetos de produção. Use allow/deny granular para evitar que o Claude execute operações destrutivas acidentalmente.
Exercício: configurar permissões do projeto
Objetivo
Criar .claude/settings.json com permissões que:
- Permitam git, npm run scripts e leitura total
- Bloqueiem
rm,curlesudo
Solução
{
"permissions": {
"allow": [
"Read(*)",
"Bash(git *)",
"Bash(npm run *)"
],
"deny": [
"Bash(rm *)",
"Bash(curl *)",
"Bash(sudo *)"
]
}
}