Pular para o conteúdo principal
O Claude Code oferece uma variedade de configurações para personalizar seu comportamento de acordo com suas necessidades. Você pode configurar o Claude Code executando o comando /config ao usar o REPL interativo, que abre uma interface de Configurações com abas onde você pode visualizar informações de status e modificar opções de configuração.

Escopos de configuração

O Claude Code usa um sistema de escopo para determinar onde as configurações se aplicam e com quem são compartilhadas. Compreender os escopos ajuda você a decidir como configurar o Claude Code para uso pessoal, colaboração em equipe ou implantação empresarial.

Escopos disponíveis

EscopoLocalizaçãoQuem afetaCompartilhado com a equipe?
Gerenciadomanaged-settings.json em nível de sistemaTodos os usuários na máquinaSim (implantado por TI)
UsuárioDiretório ~/.claude/Você, em todos os projetosNão
Projeto.claude/ no repositórioTodos os colaboradores neste repositórioSim (confirmado no git)
LocalArquivos .claude/*.local.*Você, apenas neste repositórioNão (ignorado pelo git)

Quando usar cada escopo

O escopo Gerenciado é para:
  • Políticas de segurança que devem ser aplicadas em toda a organização
  • Requisitos de conformidade que não podem ser substituídos
  • Configurações padronizadas implantadas por TI/DevOps
O escopo Usuário é melhor para:
  • Preferências pessoais que você deseja em todos os lugares (temas, configurações do editor)
  • Ferramentas e plugins que você usa em todos os projetos
  • Chaves de API e autenticação (armazenadas com segurança)
O escopo Projeto é melhor para:
  • Configurações compartilhadas com a equipe (permissões, hooks, servidores MCP)
  • Plugins que toda a equipe deve ter
  • Padronização de ferramentas entre colaboradores
O escopo Local é melhor para:
  • Substituições pessoais para um projeto específico
  • Testar configurações antes de compartilhar com a equipe
  • Configurações específicas da máquina que não funcionarão para outros

Como os escopos interagem

Quando a mesma configuração é definida em vários escopos, escopos mais específicos têm precedência:
  1. Gerenciado (mais alto) - não pode ser substituído por nada
  2. Argumentos de linha de comando - substituições de sessão temporárias
  3. Local - substitui configurações de projeto e usuário
  4. Projeto - substitui configurações de usuário
  5. Usuário (mais baixo) - se aplica quando nada mais especifica a configuração
Por exemplo, se uma permissão é permitida nas configurações do usuário, mas negada nas configurações do projeto, a configuração do projeto tem precedência e a permissão é bloqueada.

O que usa escopos

Os escopos se aplicam a muitos recursos do Claude Code:
RecursoLocalização do usuárioLocalização do projetoLocalização local
Configurações~/.claude/settings.json.claude/settings.json.claude/settings.local.json
Subagentos~/.claude/agents/.claude/agents/
Servidores MCP~/.claude.json.mcp.json~/.claude.json (por projeto)
Plugins~/.claude/settings.json.claude/settings.json.claude/settings.local.json
CLAUDE.md~/.claude/CLAUDE.mdCLAUDE.md ou .claude/CLAUDE.mdCLAUDE.local.md

Arquivos de configuração

O arquivo settings.json é nosso mecanismo oficial para configurar o Claude Code através de configurações hierárquicas:
  • Configurações do usuário são definidas em ~/.claude/settings.json e se aplicam a todos os projetos.
  • Configurações do projeto são salvas no diretório do seu projeto:
    • .claude/settings.json para configurações que são verificadas no controle de origem e compartilhadas com sua equipe
    • .claude/settings.local.json para configurações que não são verificadas, úteis para preferências pessoais e experimentação. O Claude Code configurará o git para ignorar .claude/settings.local.json quando for criado.
  • Configurações gerenciadas: Para organizações que precisam de controle centralizado, o Claude Code suporta arquivos managed-settings.json e managed-mcp.json que podem ser implantados em diretórios do sistema:
    • macOS: /Library/Application Support/ClaudeCode/
    • Linux e WSL: /etc/claude-code/
    • Windows: C:\Program Files\ClaudeCode\
    Estes são caminhos em nível de sistema (não diretórios home do usuário como ~/Library/...) que requerem privilégios de administrador. Eles são projetados para serem implantados por administradores de TI.
    Veja Configurações gerenciadas e Configuração MCP gerenciada para detalhes.
    As implantações gerenciadas também podem restringir adições do marketplace de plugins usando strictKnownMarketplaces. Para mais informações, veja Restrições de marketplace gerenciado.
  • Outra configuração é armazenada em ~/.claude.json. Este arquivo contém suas preferências (tema, configurações de notificação, modo do editor), sessão OAuth, configurações de servidor MCP para escopos de usuário e local, estado por projeto (ferramentas permitidas, configurações de confiança) e vários caches. Servidores MCP com escopo de projeto são armazenados separadamente em .mcp.json.
Exemplo 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"
  ]
}

Configurações disponíveis

settings.json suporta várias opções:
ChaveDescriçãoExemplo
apiKeyHelperScript personalizado, a ser executado em /bin/sh, para gerar um valor de autenticação. Este valor será enviado como cabeçalhos X-Api-Key e Authorization: Bearer para solicitações de modelo/bin/generate_temp_api_key.sh
cleanupPeriodDaysSessões inativas por mais tempo que este período são deletadas na inicialização. Configurar para 0 deleta imediatamente todas as sessões. (padrão: 30 dias)20
companyAnnouncementsAnúncio a ser exibido aos usuários na inicialização. Se vários anúncios forem fornecidos, eles serão alternados aleatoriamente.["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]
envVariáveis de ambiente que serão aplicadas a cada sessão{"FOO": "bar"}
attributionPersonalize a atribuição para commits git e pull requests. Veja Configurações de atribuição{"commit": "🤖 Generated with Claude Code", "pr": ""}
includeCoAuthoredByDescontinuado: Use attribution em vez disso. Se deve incluir a linha co-authored-by Claude em commits git e pull requests (padrão: true)false
permissionsVeja a tabela abaixo para a estrutura de permissões.
hooksConfigure comandos personalizados para executar antes ou depois de execuções de ferramentas. Veja documentação de hooks{"PreToolUse": {"Bash": "echo 'Running command...'"}}
disableAllHooksDesabilite todos os hookstrue
allowManagedHooksOnly(Apenas configurações gerenciadas) Impeça o carregamento de hooks de usuário, projeto e plugin. Permite apenas hooks gerenciados e hooks SDK. Veja Configuração de hookstrue
modelSubstitua o modelo padrão a usar para Claude Code"claude-sonnet-4-5-20250929"
otelHeadersHelperScript para gerar cabeçalhos OpenTelemetry dinâmicos. Executa na inicialização e periodicamente (veja Cabeçalhos dinâmicos)/bin/generate_otel_headers.sh
statusLineConfigure uma linha de status personalizada para exibir contexto. Veja documentação de statusLine{"type": "command", "command": "~/.claude/statusline.sh"}
fileSuggestionConfigure um script personalizado para autocompletar arquivo @. Veja Configurações de sugestão de arquivo{"type": "command", "command": "~/.claude/file-suggestion.sh"}
respectGitignoreControle se o seletor de arquivo @ respeita padrões .gitignore. Quando true (padrão), arquivos que correspondem aos padrões .gitignore são excluídos das sugestõesfalse
outputStyleConfigure um estilo de saída para ajustar o prompt do sistema. Veja documentação de estilos de saída"Explanatory"
forceLoginMethodUse claudeai para restringir login a contas Claude.ai, console para restringir login a contas Claude Console (faturamento de uso de API)claudeai
forceLoginOrgUUIDEspecifique o UUID de uma organização para selecioná-la automaticamente durante o login, ignorando a etapa de seleção de organização. Requer que forceLoginMethod seja definido"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
enableAllProjectMcpServersAprove automaticamente todos os servidores MCP definidos em arquivos .mcp.json do projetotrue
enabledMcpjsonServersLista de servidores MCP específicos de arquivos .mcp.json para aprovar["memory", "github"]
disabledMcpjsonServersLista de servidores MCP específicos de arquivos .mcp.json para rejeitar["filesystem"]
allowedMcpServersQuando definido em managed-settings.json, lista de permissão de servidores MCP que os usuários podem configurar. Indefinido = sem restrições, array vazio = bloqueio. Aplica-se a todos os escopos. A lista de negação tem precedência. Veja Configuração MCP gerenciada[{ "serverName": "github" }]
deniedMcpServersQuando definido em managed-settings.json, lista de negação de servidores MCP que são explicitamente bloqueados. Aplica-se a todos os escopos, incluindo servidores gerenciados. A lista de negação tem precedência sobre a lista de permissão. Veja Configuração MCP gerenciada[{ "serverName": "filesystem" }]
strictKnownMarketplacesQuando definido em managed-settings.json, lista de permissão de marketplaces de plugins que os usuários podem adicionar. Indefinido = sem restrições, array vazio = bloqueio. Aplica-se apenas a adições de marketplace. Veja Restrições de marketplace gerenciado[{ "source": "github", "repo": "acme-corp/plugins" }]
awsAuthRefreshScript personalizado que modifica o diretório .aws (veja configuração avançada de credenciais)aws sso login --profile myprofile
awsCredentialExportScript personalizado que gera JSON com credenciais AWS (veja configuração avançada de credenciais)/bin/generate_aws_grant.sh
alwaysThinkingEnabledHabilite pensamento estendido por padrão para todas as sessões. Normalmente configurado via comando /config em vez de editar diretamentetrue
plansDirectoryPersonalize onde os arquivos de plano são armazenados. O caminho é relativo à raiz do projeto. Padrão: ~/.claude/plans"./plans"
showTurnDurationMostre mensagens de duração de turno após respostas (por exemplo, “Cooked for 1m 6s”). Defina como false para ocultar essas mensagenstrue
languageConfigure o idioma de resposta preferido do Claude (por exemplo, "japanese", "spanish", "french"). Claude responderá neste idioma por padrão"japanese"
autoUpdatesChannelCanal de lançamento a seguir para atualizações. Use "stable" para uma versão que é tipicamente cerca de uma semana antiga e pula versões com regressões principais, ou "latest" (padrão) para o lançamento mais recente"stable"
spinnerTipsEnabledMostre dicas no spinner enquanto Claude está trabalhando. Defina como false para desabilitar dicas (padrão: true)false
terminalProgressBarEnabledHabilite a barra de progresso do terminal que mostra progresso em terminais suportados como Windows Terminal e iTerm2 (padrão: true)false

Configurações de permissão

ChavesDescriçãoExemplo
allowArray de regras de permissão para permitir uso de ferramentas. Veja Sintaxe de regra de permissão abaixo para detalhes de correspondência de padrão[ "Bash(git diff:*)" ]
askArray de regras de permissão para pedir confirmação ao usar ferramentas. Veja Sintaxe de regra de permissão abaixo[ "Bash(git push:*)" ]
denyArray de regras de permissão para negar uso de ferramentas. Use isto para excluir arquivos sensíveis do acesso do Claude Code. Veja Sintaxe de regra de permissão e Limitações de permissão Bash[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]
additionalDirectoriesDiretórios de trabalho adicionais aos quais Claude tem acesso[ "../docs/" ]
defaultModeModo de permissão padrão ao abrir Claude Code"acceptEdits"
disableBypassPermissionsModeDefina como "disable" para impedir que o modo bypassPermissions seja ativado. Isto desabilita a flag de linha de comando --dangerously-skip-permissions. Veja configurações gerenciadas"disable"

Sintaxe de regra de permissão

As regras de permissão seguem o formato Tool ou Tool(specifier). Compreender a sintaxe ajuda você a escrever regras que correspondem exatamente ao que você pretende.

Ordem de avaliação de regra

Quando várias regras podem corresponder ao mesmo uso de ferramenta, as regras são avaliadas nesta ordem:
  1. Regras de negação são verificadas primeiro
  2. Regras de pergunta são verificadas segundo
  3. Regras de permissão são verificadas por último
A primeira regra correspondente determina o comportamento. Isto significa que as regras de negação sempre têm precedência sobre as regras de permissão, mesmo que ambas correspondam ao mesmo comando.

Correspondência de todos os usos de uma ferramenta

Para corresponder a todos os usos de uma ferramenta, use apenas o nome da ferramenta sem parênteses:
RegraEfeito
BashCorresponde a todos os comandos Bash
WebFetchCorresponde a todas as solicitações de busca web
ReadCorresponde a todas as leituras de arquivo
Bash(*) não corresponde a todos os comandos Bash. O wildcard * só corresponde dentro do contexto do especificador. Para permitir ou negar todos os usos de uma ferramenta, use apenas o nome da ferramenta: Bash, não Bash(*).

Usando especificadores para controle refinado

Adicione um especificador entre parênteses para corresponder a usos específicos de ferramentas:
RegraEfeito
Bash(npm run build)Corresponde ao comando exato npm run build
Read(./.env)Corresponde à leitura do arquivo .env no diretório atual
WebFetch(domain:example.com)Corresponde a solicitações de busca para example.com

Padrões de wildcard

Duas sintaxes de wildcard estão disponíveis para regras Bash:
WildcardPosiçãoComportamentoExemplo
:*Apenas no final do padrãoCorrespondência de prefixo com limite de palavra. O prefixo deve ser seguido por um espaço ou fim de string.Bash(ls:*) corresponde a ls -la mas não a lsof
*Em qualquer lugar no padrãoCorrespondência glob sem limite de palavra. Corresponde a qualquer sequência de caracteres naquela posição.Bash(ls*) corresponde tanto a ls -la quanto a lsof
Correspondência de prefixo com :* O sufixo :* corresponde a qualquer comando que comece com o prefixo especificado. Isto funciona com comandos de múltiplas palavras. A seguinte configuração permite comandos npm e git commit enquanto bloqueia git push e rm -rf:
{
  "permissions": {
    "allow": [
      "Bash(npm run:*)",
      "Bash(git commit:*)",
      "Bash(docker compose:*)"
    ],
    "deny": [
      "Bash(git push:*)",
      "Bash(rm -rf:*)"
    ]
  }
}
Correspondência glob com * O wildcard * pode aparecer no início, meio ou fim de um padrão. A seguinte configuração permite qualquer comando git direcionado a main (como git checkout main, git merge main) e qualquer comando de verificação de versão (como node --version, npm --version):
{
  "permissions": {
    "allow": [
      "Bash(git * main)",
      "Bash(* --version)"
    ]
  }
}
Padrões de permissão Bash que tentam restringir argumentos de comando são frágeis. Por exemplo, Bash(curl http://github.com/:*) pretende restringir curl a URLs do GitHub, mas não corresponderá a curl -X GET http://github.com/... (flags antes da URL), curl https://github.com/... (protocolo diferente), ou comandos usando variáveis de shell. Não confie em padrões de restrição de argumentos como limite de segurança. Veja Limitações de permissão Bash para alternativas.
Para informações detalhadas sobre padrões de permissão específicos de ferramentas—incluindo regras Read, Edit, WebFetch, MCP, Task e limitações de permissão Bash—veja Regras de permissão específicas de ferramentas.

Configurações de sandbox

Configure comportamento avançado de sandboxing. O sandboxing isola comandos bash do seu sistema de arquivos e rede. Veja Sandboxing para detalhes. Restrições de sistema de arquivos e rede são configuradas via regras de permissão Read, Edit e WebFetch, não via estas configurações de sandbox.
ChavesDescriçãoExemplo
enabledHabilite bash sandboxing (apenas macOS/Linux). Padrão: falsetrue
autoAllowBashIfSandboxedAprove automaticamente comandos bash quando sandboxed. Padrão: truetrue
excludedCommandsComandos que devem executar fora do sandbox["git", "docker"]
allowUnsandboxedCommandsPermita comandos executarem fora do sandbox via parâmetro dangerouslyDisableSandbox. Quando definido como false, a escotilha de escape dangerouslyDisableSandbox é completamente desabilitada e todos os comandos devem executar sandboxed (ou estar em excludedCommands). Útil para políticas empresariais que requerem sandboxing rigoroso. Padrão: truefalse
network.allowUnixSocketsCaminhos de socket Unix acessíveis no sandbox (para agentes SSH, etc.)["~/.ssh/agent-socket"]
network.allowLocalBindingPermita vinculação a portas localhost (apenas macOS). Padrão: falsetrue
network.httpProxyPortPorta de proxy HTTP usada se você deseja trazer seu próprio proxy. Se não especificado, Claude executará seu próprio proxy.8080
network.socksProxyPortPorta de proxy SOCKS5 usada se você deseja trazer seu próprio proxy. Se não especificado, Claude executará seu próprio proxy.8081
enableWeakerNestedSandboxHabilite sandbox mais fraco para ambientes Docker sem privilégios (apenas Linux). Reduz segurança. Padrão: falsetrue
Exemplo de configuração:
{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker"],
    "network": {
      "allowUnixSockets": [
        "/var/run/docker.sock"
      ],
      "allowLocalBinding": true
    }
  },
  "permissions": {
    "deny": [
      "Read(.envrc)",
      "Read(~/.aws/**)"
    ]
  }
}
Restrições de sistema de arquivos e rede usam regras de permissão padrão:
  • Use regras de negação Read para bloquear Claude de ler arquivos ou diretórios específicos
  • Use regras de permissão Edit para permitir que Claude escreva em diretórios além do diretório de trabalho atual
  • Use regras de negação Edit para bloquear escritas em caminhos específicos
  • Use regras de permissão/negação WebFetch para controlar quais domínios de rede Claude pode acessar

Configurações de atribuição

O Claude Code adiciona atribuição a commits git e pull requests. Estes são configurados separadamente:
  • Commits usam git trailers (como Co-Authored-By) por padrão, que podem ser personalizados ou desabilitados
  • Descrições de pull request são texto simples
ChavesDescrição
commitAtribuição para commits git, incluindo quaisquer trailers. String vazia oculta atribuição de commit
prAtribuição para descrições de pull request. String vazia oculta atribuição de pull request
Atribuição de commit padrão:
🤖 Generated with [Claude Code](https://claude.com/claude-code)

   Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Atribuição de pull request padrão:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Exemplo:
{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <[email protected]>",
    "pr": ""
  }
}
A configuração attribution tem precedência sobre a configuração descontinuada includeCoAuthoredBy. Para ocultar toda atribuição, defina commit e pr como strings vazias.

Configurações de sugestão de arquivo

Configure um comando personalizado para autocompletar de caminho de arquivo @. A sugestão de arquivo integrada usa travessia rápida do sistema de arquivos, mas grandes monorepos podem se beneficiar de indexação específica do projeto, como um índice de arquivo pré-construído ou ferramentas personalizadas.
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}
O comando executa com as mesmas variáveis de ambiente que hooks, incluindo CLAUDE_PROJECT_DIR. Ele recebe JSON via stdin com um campo query:
{"query": "src/comp"}
Gere caminhos de arquivo separados por nova linha para stdout (atualmente limitado a 15):
src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx
Exemplo:
#!/bin/bash
query=$(cat | jq -r '.query')
your-repo-file-index --query "$query" | head -20

Configuração de hooks

Apenas configurações gerenciadas: Controla quais hooks são permitidos executar. Esta configuração só pode ser configurada em configurações gerenciadas e fornece aos administradores controle rigoroso sobre execução de hooks. Comportamento quando allowManagedHooksOnly é true:
  • Hooks gerenciados e hooks SDK são carregados
  • Hooks de usuário, projeto e plugin são bloqueados
Configuração:
{
  "allowManagedHooksOnly": true
}

Precedência de configurações

As configurações se aplicam em ordem de precedência. Do mais alto para o mais baixo:
  1. Configurações gerenciadas (managed-settings.json)
    • Políticas implantadas por TI/DevOps em diretórios do sistema
    • Não podem ser substituídas por configurações de usuário ou projeto
  2. Argumentos de linha de comando
    • Substituições temporárias para uma sessão específica
  3. Configurações de projeto local (.claude/settings.local.json)
    • Configurações pessoais específicas do projeto
  4. Configurações de projeto compartilhadas (.claude/settings.json)
    • Configurações de projeto compartilhadas com a equipe no controle de origem
  5. Configurações do usuário (~/.claude/settings.json)
    • Configurações globais pessoais
Esta hierarquia garante que as políticas organizacionais sejam sempre aplicadas enquanto ainda permite que equipes e indivíduos personalizem sua experiência. Por exemplo, se suas configurações de usuário permitem Bash(npm run:*) mas as configurações compartilhadas de um projeto negam, a configuração do projeto tem precedência e o comando é bloqueado.

Pontos-chave sobre o sistema de configuração

  • Arquivos de memória (CLAUDE.md): Contêm instruções e contexto que Claude carrega na inicialização
  • Arquivos de configuração (JSON): Configuram permissões, variáveis de ambiente e comportamento de ferramentas
  • Skills: Prompts personalizados que podem ser invocados com /skill-name ou carregados por Claude automaticamente
  • Servidores MCP: Estendem Claude Code com ferramentas e integrações adicionais
  • Precedência: Configurações de nível superior (Gerenciado) substituem as de nível inferior (Usuário/Projeto)
  • Herança: As configurações são mescladas, com configurações mais específicas adicionando ou substituindo as mais amplas

Prompt do sistema

O prompt do sistema interno do Claude Code não é publicado. Para adicionar instruções personalizadas, use arquivos CLAUDE.md ou a flag --append-system-prompt.

Excluindo arquivos sensíveis

Para impedir que Claude Code acesse arquivos contendo informações sensíveis como chaves de API, segredos e arquivos de ambiente, use a configuração permissions.deny em seu arquivo .claude/settings.json:
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Read(./build)"
    ]
  }
}
Isto substitui a configuração descontinuada ignorePatterns. Arquivos que correspondem a estes padrões serão completamente invisíveis para Claude Code, prevenindo qualquer exposição acidental de dados sensíveis.

Configuração de subagentos

O Claude Code suporta subagentos de IA personalizados que podem ser configurados em níveis de usuário e projeto. Estes subagentos são armazenados como arquivos Markdown com frontmatter YAML:
  • Subagentos de usuário: ~/.claude/agents/ - Disponíveis em todos os seus projetos
  • Subagentos de projeto: .claude/agents/ - Específicos do seu projeto e podem ser compartilhados com sua equipe
Arquivos de subagentos definem assistentes de IA especializados com prompts personalizados e permissões de ferramentas. Saiba mais sobre criação e uso de subagentos na documentação de subagentos.

Configuração de plugins

O Claude Code suporta um sistema de plugins que permite estender funcionalidade com skills, agentes, hooks e servidores MCP. Plugins são distribuídos através de marketplaces e podem ser configurados em níveis de usuário e repositório.

Configurações de plugin

Configurações relacionadas a plugins em 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

Controla quais plugins estão habilitados. Formato: "plugin-name@marketplace-name": true/false Escopos:
  • Configurações de usuário (~/.claude/settings.json): Preferências de plugin pessoais
  • Configurações de projeto (.claude/settings.json): Plugins específicos do projeto compartilhados com a equipe
  • Configurações locais (.claude/settings.local.json): Substituições por máquina (não confirmadas)
Exemplo:
{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

extraKnownMarketplaces

Define marketplaces adicionais que devem estar disponíveis para o repositório. Normalmente usado em configurações em nível de repositório para garantir que membros da equipe tenham acesso a fontes de plugin necessárias. Quando um repositório inclui extraKnownMarketplaces:
  1. Membros da equipe são solicitados a instalar o marketplace quando confiam na pasta
  2. Membros da equipe são então solicitados a instalar plugins daquele marketplace
  3. Os usuários podem pular marketplaces ou plugins indesejados (armazenados em configurações de usuário)
  4. A instalação respeita limites de confiança e requer consentimento explícito
Exemplo:
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}
Tipos de fonte de marketplace:
  • github: Repositório GitHub (usa repo)
  • git: Qualquer URL git (usa url)
  • directory: Caminho do sistema de arquivos local (usa path, apenas para desenvolvimento)

strictKnownMarketplaces

Apenas configurações gerenciadas: Controla quais marketplaces de plugin os usuários podem adicionar. Esta configuração só pode ser configurada em managed-settings.json e fornece aos administradores controle rigoroso sobre fontes de marketplace. Localizações de arquivo de configurações gerenciadas:
  • 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
Características principais:
  • Disponível apenas em configurações gerenciadas (managed-settings.json)
  • Não pode ser substituído por configurações de usuário ou projeto (precedência mais alta)
  • Aplicado ANTES de operações de rede/sistema de arquivos (fontes bloqueadas nunca executam)
  • Usa correspondência exata para especificações de fonte (incluindo ref, path para fontes git)
Comportamento de lista de permissão:
  • undefined (padrão): Sem restrições - usuários podem adicionar qualquer marketplace
  • Array vazio []: Bloqueio completo - usuários não podem adicionar novos marketplaces
  • Lista de fontes: Usuários podem apenas adicionar marketplaces que correspondem exatamente
Todos os tipos de fonte suportados: A lista de permissão suporta seis tipos de fonte de marketplace. Cada fonte deve corresponder exatamente para que a adição de marketplace de um usuário seja permitida.
  1. Repositórios 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" }
Campos: repo (obrigatório), ref (opcional: branch/tag/SHA), path (opcional: subdiretório)
  1. Repositórios 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" }
Campos: url (obrigatório), ref (opcional: branch/tag/SHA), path (opcional: subdiretório)
  1. Marketplaces baseados em URL:
{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }
{ "source": "url", "url": "https://cdn.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }
Campos: url (obrigatório), headers (opcional: cabeçalhos HTTP para acesso autenticado)
Marketplaces baseados em URL apenas baixam o arquivo marketplace.json. Eles não baixam arquivos de plugin do servidor. Plugins em marketplaces baseados em URL devem usar fontes externas (URLs GitHub, npm ou git) em vez de caminhos relativos. Para plugins com caminhos relativos, use um marketplace baseado em Git. Veja Solução de problemas para detalhes.
  1. Pacotes NPM:
{ "source": "npm", "package": "@acme-corp/claude-plugins" }
{ "source": "npm", "package": "@acme-corp/approved-marketplace" }
Campos: package (obrigatório, suporta pacotes com escopo)
  1. Caminhos de arquivo:
{ "source": "file", "path": "/usr/local/share/claude/acme-marketplace.json" }
{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }
Campos: path (obrigatório: caminho absoluto para arquivo marketplace.json)
  1. Caminhos de diretório:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }
{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }
Campos: path (obrigatório: caminho absoluto para diretório contendo .claude-plugin/marketplace.json) Exemplos de configuração: Exemplo - Permitir apenas marketplaces específicos:
{
  "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"
    }
  ]
}
Exemplo - Desabilitar todas as adições de marketplace:
{
  "strictKnownMarketplaces": []
}
Requisitos de correspondência exata: Fontes de marketplace devem corresponder exatamente para que a adição de um usuário seja permitida. Para fontes baseadas em git (github e git), isto inclui todos os campos opcionais:
  • O repo ou url deve corresponder exatamente
  • O campo ref deve corresponder exatamente (ou ambos serem indefinidos)
  • O campo path deve corresponder exatamente (ou ambos serem indefinidos)
Exemplos de fontes que NÃO correspondem:
// Estas são DIFERENTES fontes:
{ "source": "github", "repo": "acme-corp/plugins" }
{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }

// Estas também são DIFERENTES:
{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }
{ "source": "github", "repo": "acme-corp/plugins" }
Comparação com extraKnownMarketplaces:
AspectostrictKnownMarketplacesextraKnownMarketplaces
PropósitoAplicação de política organizacionalConveniência da equipe
Arquivo de configuraçãoApenas managed-settings.jsonQualquer arquivo de configuração
ComportamentoBloqueia adições não permitidasAuto-instala marketplaces ausentes
Quando aplicadoAntes de operações de rede/sistema de arquivosApós prompt de confiança do usuário
Pode ser substituídoNão (precedência mais alta)Sim (por configurações de precedência mais alta)
Formato de fonteObjeto de fonte diretoMarketplace nomeado com fonte aninhada
Caso de usoConformidade, restrições de segurançaOnboarding, padronização
Diferença de formato: strictKnownMarketplaces usa objetos de fonte diretos:
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ]
}
extraKnownMarketplaces requer marketplaces nomeados:
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}
Notas importantes:
  • Restrições são verificadas ANTES de qualquer solicitação de rede ou operação de sistema de arquivos
  • Quando bloqueado, usuários veem mensagens de erro claras indicando que a fonte é bloqueada por política gerenciada
  • A restrição se aplica apenas a adicionar NOVOS marketplaces; marketplaces previamente instalados permanecem acessíveis
  • Configurações gerenciadas têm a precedência mais alta e não podem ser substituídas
Veja Restrições de marketplace gerenciado para documentação voltada para o usuário.

Gerenciando plugins

Use o comando /plugin para gerenciar plugins interativamente:
  • Procure plugins disponíveis de marketplaces
  • Instale/desinstale plugins
  • Habilite/desabilite plugins
  • Visualize detalhes de plugin (comandos, agentes, hooks fornecidos)
  • Adicione/remova marketplaces
Saiba mais sobre o sistema de plugins na documentação de plugins.

Variáveis de ambiente

O Claude Code suporta as seguintes variáveis de ambiente para controlar seu comportamento:
Todas as variáveis de ambiente também podem ser configuradas em settings.json. Isto é útil como forma de definir automaticamente variáveis de ambiente para cada sessão, ou para distribuir um conjunto de variáveis de ambiente para toda sua equipe ou organização.
VariávelPropósito
ANTHROPIC_API_KEYChave de API enviada como cabeçalho X-Api-Key, normalmente para o SDK Claude (para uso interativo, execute /login)
ANTHROPIC_AUTH_TOKENValor personalizado para o cabeçalho Authorization (o valor que você definir aqui será prefixado com Bearer )
ANTHROPIC_CUSTOM_HEADERSCabeçalhos personalizados que você deseja adicionar à solicitação (em formato Name: Value)
ANTHROPIC_DEFAULT_HAIKU_MODELVeja Configuração de modelo
ANTHROPIC_DEFAULT_OPUS_MODELVeja Configuração de modelo
ANTHROPIC_DEFAULT_SONNET_MODELVeja Configuração de modelo
ANTHROPIC_FOUNDRY_API_KEYChave de API para autenticação Microsoft Foundry (veja Microsoft Foundry)
ANTHROPIC_MODELNome da configuração de modelo a usar (veja Configuração de modelo)
ANTHROPIC_SMALL_FAST_MODEL[DESCONTINUADO] Nome de modelo classe Haiku para tarefas em background
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGIONSubstitua a região AWS para o modelo classe Haiku ao usar Bedrock
AWS_BEARER_TOKEN_BEDROCKChave de API Bedrock para autenticação (veja Chaves de API Bedrock)
BASH_DEFAULT_TIMEOUT_MSTimeout padrão para comandos bash de longa duração
BASH_MAX_OUTPUT_LENGTHNúmero máximo de caracteres em saídas bash antes de serem truncadas no meio
BASH_MAX_TIMEOUT_MSTimeout máximo que o modelo pode definir para comandos bash de longa duração
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEDefina a porcentagem de capacidade de contexto (1-100) em que auto-compactação é acionada. Por padrão, auto-compactação é acionada em aproximadamente 95% de capacidade. Use valores mais baixos como 50 para compactar mais cedo. Valores acima do limiar padrão não têm efeito. Aplica-se a conversas principais e subagentos. Esta porcentagem se alinha com o campo context_window.used_percentage disponível em linha de status
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIRRetorne ao diretório de trabalho original após cada comando Bash
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervalo em milissegundos em que credenciais devem ser atualizadas (ao usar apiKeyHelper)
CLAUDE_CODE_CLIENT_CERTCaminho para arquivo de certificado de cliente para autenticação mTLS
CLAUDE_CODE_CLIENT_KEY_PASSPHRASEFrase de acesso para CLAUDE_CODE_CLIENT_KEY criptografado (opcional)
CLAUDE_CODE_CLIENT_KEYCaminho para arquivo de chave privada de cliente para autenticação mTLS
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASDefina como 1 para desabilitar cabeçalhos anthropic-beta específicos da API Anthropic. Use isto se experimentar problemas como “Unexpected value(s) for the anthropic-beta header” ao usar um gateway LLM com provedores de terceiros
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSDefina como 1 para desabilitar toda funcionalidade de tarefa em background, incluindo o parâmetro run_in_background em ferramentas Bash e subagentos, auto-backgrounding e o atalho Ctrl+B
CLAUDE_CODE_EXIT_AFTER_STOP_DELAYTempo em milissegundos a esperar após o loop de consulta ficar ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts usando modo SDK
CLAUDE_CODE_PROXY_RESOLVES_HOSTSDefina como true para permitir que o proxy execute resolução DNS em vez do chamador. Opt-in para ambientes onde o proxy deve lidar com resolução de nome de host
CLAUDE_CODE_TMPDIRSubstitua o diretório temporário usado para arquivos temporários internos. Claude Code acrescenta /claude/ a este caminho. Padrão: /tmp em Unix/macOS, os.tmpdir() no Windows
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICEquivalente a definir DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING e DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLEDefina como 1 para desabilitar atualizações automáticas de título de terminal baseadas em contexto de conversa
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENSSubstitua o limite de token padrão para leituras de arquivo. Útil quando você precisa ler arquivos maiores na íntegra
CLAUDE_CODE_HIDE_ACCOUNT_INFODefina como 1 para ocultar seu endereço de email e nome da organização da interface do Claude Code. Útil ao fazer streaming ou gravação
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALLPule auto-instalação de extensões IDE
CLAUDE_CODE_MAX_OUTPUT_TOKENSDefina o número máximo de tokens de saída para a maioria das solicitações. Padrão: 32.000. Máximo: 64.000. Aumentar este valor reduz a janela de contexto efetiva disponível antes que auto-compactação seja acionada.
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MSIntervalo para atualizar cabeçalhos OpenTelemetry dinâmicos em milissegundos (padrão: 1740000 / 29 minutos). Veja Cabeçalhos dinâmicos
CLAUDE_CODE_SHELLSubstitua detecção automática de shell. Útil quando seu shell de login difere do seu shell de trabalho preferido (por exemplo, bash vs zsh)
CLAUDE_CODE_SHELL_PREFIXPrefixo de comando para envolver todos os comandos bash (por exemplo, para logging ou auditoria). Exemplo: /path/to/logger.sh executará /path/to/logger.sh <command>
CLAUDE_CODE_SKIP_BEDROCK_AUTHPule autenticação AWS para Bedrock (por exemplo, ao usar um gateway LLM)
CLAUDE_CODE_SKIP_FOUNDRY_AUTHPule autenticação Azure para Microsoft Foundry (por exemplo, ao usar um gateway LLM)
CLAUDE_CODE_SKIP_VERTEX_AUTHPule autenticação Google para Vertex (por exemplo, ao usar um gateway LLM)
CLAUDE_CODE_SUBAGENT_MODELVeja Configuração de modelo
CLAUDE_CODE_USE_BEDROCKUse Bedrock
CLAUDE_CODE_USE_FOUNDRYUse Microsoft Foundry
CLAUDE_CODE_USE_VERTEXUse Vertex
CLAUDE_CONFIG_DIRPersonalize onde Claude Code armazena seus arquivos de configuração e dados
DISABLE_AUTOUPDATERDefina como 1 para desabilitar atualizações automáticas.
DISABLE_BUG_COMMANDDefina como 1 para desabilitar o comando /bug
DISABLE_COST_WARNINGSDefina como 1 para desabilitar mensagens de aviso de custo
DISABLE_ERROR_REPORTINGDefina como 1 para optar por não participar de relatório de erro Sentry
DISABLE_NON_ESSENTIAL_MODEL_CALLSDefina como 1 para desabilitar chamadas de modelo para caminhos não críticos como texto de sabor
DISABLE_PROMPT_CACHINGDefina como 1 para desabilitar cache de prompt para todos os modelos (tem precedência sobre configurações por modelo)
DISABLE_PROMPT_CACHING_HAIKUDefina como 1 para desabilitar cache de prompt para modelos Haiku
DISABLE_PROMPT_CACHING_OPUSDefina como 1 para desabilitar cache de prompt para modelos Opus
DISABLE_PROMPT_CACHING_SONNETDefina como 1 para desabilitar cache de prompt para modelos Sonnet
DISABLE_TELEMETRYDefina como 1 para optar por não participar de telemetria Statsig (note que eventos Statsig não incluem dados do usuário como código, caminhos de arquivo ou comandos bash)
ENABLE_TOOL_SEARCHControla busca de ferramenta MCP. Valores: auto (padrão, habilita em 10% de contexto), auto:N (limiar personalizado, por exemplo, auto:5 para 5%), true (sempre ativado), false (desabilitado)
FORCE_AUTOUPDATE_PLUGINSDefina como true para forçar auto-atualizações de plugin mesmo quando o auto-atualizador principal é desabilitado via DISABLE_AUTOUPDATER
HTTP_PROXYEspecifique servidor proxy HTTP para conexões de rede
HTTPS_PROXYEspecifique servidor proxy HTTPS para conexões de rede
IS_DEMODefina como true para habilitar modo demo: oculta email e organização da interface, pula onboarding e oculta comandos internos. Útil para streaming ou gravação de sessões
MAX_MCP_OUTPUT_TOKENSNúmero máximo de tokens permitidos em respostas de ferramenta MCP. Claude Code exibe um aviso quando a saída excede 10.000 tokens (padrão: 25000)
MAX_THINKING_TOKENSSubstitua o orçamento de token de pensamento estendido. Pensamento é habilitado em orçamento máximo (31.999 tokens) por padrão. Use isto para limitar o orçamento (por exemplo, MAX_THINKING_TOKENS=10000) ou desabilitar pensamento completamente (MAX_THINKING_TOKENS=0). Pensamento estendido melhora o desempenho em tarefas de raciocínio complexo e codificação, mas impacta eficiência de cache de prompt.
MCP_TIMEOUTTimeout em milissegundos para inicialização de servidor MCP
MCP_TOOL_TIMEOUTTimeout em milissegundos para execução de ferramenta MCP
NO_PROXYLista de domínios e IPs para os quais solicitações serão emitidas diretamente, ignorando proxy
SLASH_COMMAND_TOOL_CHAR_BUDGETNúmero máximo de caracteres para metadados de skill mostrados à ferramenta Skill (padrão: 15000). Nome legado mantido para compatibilidade com versões anteriores.
USE_BUILTIN_RIPGREPDefina como 0 para usar rg instalado no sistema em vez de rg incluído com Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKUSubstitua região para Claude 3.5 Haiku ao usar Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNETSubstitua região para Claude 3.7 Sonnet ao usar Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUSSubstitua região para Claude 4.0 Opus ao usar Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNETSubstitua região para Claude 4.0 Sonnet ao usar Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUSSubstitua região para Claude 4.1 Opus ao usar Vertex AI

Ferramentas disponíveis para Claude

Claude Code tem acesso a um conjunto de ferramentas poderosas que ajudam a entender e modificar sua base de código:
FerramentaDescriçãoPermissão Necessária
AskUserQuestionFaz perguntas de múltipla escolha para reunir requisitos ou esclarecer ambiguidadeNão
BashExecuta comandos de shell em seu ambiente (veja Comportamento da ferramenta Bash abaixo)Sim
TaskOutputRecupera saída de uma tarefa em background (shell bash ou subagentos)Não
EditFaz edições direcionadas em arquivos específicosSim
ExitPlanModeSolicita ao usuário sair do modo plano e começar a codificarSim
GlobEncontra arquivos baseado em correspondência de padrãoNão
GrepProcura por padrões no conteúdo de arquivosNão
KillShellMata um shell bash em background em execução por seu IDNão
MCPSearchProcura e carrega ferramentas MCP quando busca de ferramenta está habilitadaNão
NotebookEditModifica células de notebook JupyterSim
ReadLê o conteúdo de arquivosNão
SkillExecuta uma skill dentro da conversa principalSim
TaskExecuta um sub-agente para lidar com tarefas complexas e multi-etapasNão
TodoWriteCria e gerencia listas de tarefas estruturadasNão
WebFetchBusca conteúdo de uma URL especificadaSim
WebSearchRealiza buscas web com filtragem de domínioSim
WriteCria ou sobrescreve arquivosSim
Regras de permissão podem ser configuradas usando /allowed-tools ou em configurações de permissão. Veja também Regras de permissão específicas de ferramentas.

Comportamento da ferramenta Bash

A ferramenta Bash executa comandos de shell com o seguinte comportamento de persistência:
  • Diretório de trabalho persiste: Quando Claude muda o diretório de trabalho (por exemplo, cd /path/to/dir), comandos Bash subsequentes executarão naquele diretório. Você pode usar CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 para resetar ao diretório do projeto após cada comando.
  • Variáveis de ambiente NÃO persistem: Variáveis de ambiente definidas em um comando Bash (por exemplo, export MY_VAR=value) não estão disponíveis em comandos Bash subsequentes. Cada comando Bash executa em um ambiente de shell fresco.
Para tornar variáveis de ambiente disponíveis em comandos Bash, você tem três opções: Opção 1: Ative o ambiente antes de iniciar Claude Code (abordagem mais simples) Ative seu ambiente virtual em seu terminal antes de lançar Claude Code:
conda activate myenv
# ou: source /path/to/venv/bin/activate
claude
Isto funciona para ambientes de shell, mas variáveis de ambiente definidas dentro dos comandos Bash do Claude não persistirão entre comandos. Opção 2: Defina CLAUDE_ENV_FILE antes de iniciar Claude Code (configuração de ambiente persistente) Exporte o caminho para um script de shell contendo sua configuração de ambiente:
export CLAUDE_ENV_FILE=/path/to/env-setup.sh
claude
Onde /path/to/env-setup.sh contém:
conda activate myenv
# ou: source /path/to/venv/bin/activate
# ou: export MY_VAR=value
Claude Code fornecerá este arquivo antes de cada comando Bash, tornando o ambiente persistente em todos os comandos. Opção 3: Use um hook SessionStart (configuração específica do projeto) Configure em .claude/settings.json:
{
  "hooks": {
    "SessionStart": [{
      "matcher": "startup",
      "hooks": [{
        "type": "command",
        "command": "echo 'conda activate myenv' >> \"$CLAUDE_ENV_FILE\""
      }]
    }]
  }
}
O hook escreve para $CLAUDE_ENV_FILE, que é então fornecido antes de cada comando Bash. Isto é ideal para configurações de projeto compartilhadas com a equipe. Veja Hooks SessionStart para mais detalhes sobre a Opção 3.

Estendendo ferramentas com hooks

Você pode executar comandos personalizados antes ou depois de qualquer ferramenta executar usando hooks do Claude Code. Por exemplo, você poderia executar automaticamente um formatador Python após Claude modificar arquivos Python, ou impedir modificações em arquivos de configuração de produção bloqueando operações Write para certos caminhos.

Veja também