Pular para o conteúdo principal
Esta página de referência lista cada chave que Claude Code lê de um arquivo de configurações, além do pequeno grupo de chaves que mantém em ~/.claude.json. Para escolher um arquivo ou verificar a precedência, comece com Arquivos de configurações e precedência.

Índice de configurações

Cada chave abaixo está vinculada à sua entrada. O escopo lista os arquivos em que pode estar: User é ~/.claude/settings.json, Project é .claude/settings.json, Local é .claude/settings.local.json, e Managed é o que sua organização implanta. Any file significa todos os quatro, e Global config significa ~/.claude.json.

Modelo e respostas

Escolha quais modelos o Claude Code usa e como ele responde. Para saber como essas configurações interagem com o comando /model e com variáveis de ambiente, consulte Configuração de modelo.

advisorModel

Escolha qual modelo responde quando o Claude chama a ferramenta advisor do lado do servidor. Remova a configuração para desativar o advisor. O advisor deve ser pelo menos tão capaz quanto o seu modelo principal. Consulte Escolher um modelo advisor para ver as combinações aceitas e o que acontece quando você escolhe uma que não é aceita. Normalmente, você não edita esta chave manualmente. Execute /advisor para abrir um seletor que mostra a escolha atual, os modelos que podem atuar como advisor e No advisor. O Claude Code salva sua escolha nesta chave em ~/.claude/settings.json. Se você fizer a escolha a partir de um cliente Remote Control ou em uma sessão conectada a um worker remoto, a escolha se aplica apenas àquela sessão e não altera esta chave. Se a sua conta exigir o consentimento de créditos de uso, aceite-o primeiro executando /model fable. Até que você faça isso, escolher Fable em /advisor não salva nada e o Claude Code informa que você deve executar /model fable primeiro.
  • Escopo: Any file
  • Tipo: string, um dos aliases "fable", "opus" ou "sonnet", que correspondem à versão padrão atual do Claude Code daquela família de modelos, ou um ID de modelo completo, como "claude-opus-5-5"
  • Padrão: não definido, então o advisor fica desativado
  • Substituições por sessão: --advisor tem precedência sobre esta chave para uma sessão. CLAUDE_CODE_DISABLE_ADVISOR_TOOL desativa o advisor, e esta chave não pode reativá-lo
settings.json
A chave não tem efeito em provedores onde o advisor não está disponível, como o Amazon Bedrock. No Claude Platform on AWS, a chave requer Claude Code v2.1.300 ou posterior. "fable" requer acesso ao Fable.

alwaysThinkingEnabled

Desative o pensamento estendido em todas as sessões definindo esta chave como false. O pensamento fica ativado por padrão, então true não altera nada. A maioria das pessoas define isso por meio de /config em vez de editar o arquivo. Em modelos que sempre pensam, como Opus 5.5, Sonnet 5.5, Haiku 5.5 e os modelos Fable, false não tem efeito. Em provedores de terceiros, o Claude Code omite o parâmetro thinking em vez de desativar o pensamento, então modelos com raciocínio adaptativo ainda podem pensar. Com o pensamento desativado na API da Anthropic, o Claude Code envia o esforço high em vez de um nível mais alto para modelos que ele sabe que não aceitam essa combinação, como o Opus 5.
  • Escopo: Any file
  • Tipo: Boolean
    • true: sem efeito; o pensamento já está ativado
    • false: o Claude Code desativa o pensamento estendido em todas as sessões
  • Padrão: não definido, então o pensamento fica ativado para modelos que o suportam
  • Substituições por sessão: MAX_THINKING_TOKENS tem precedência sobre esta chave para uma sessão: 0 desativa o pensamento, sob os mesmos limites de modelo e provedor que false, e um valor positivo ativa o pensamento mesmo quando esta chave é false. Em modelos com raciocínio adaptativo, o número em si é ignorado
settings.json

availableModels

Restrinja quais modelos as pessoas podem selecionar para a sessão principal, subagentes, skills e o advisor. Uma lista gerenciada restringe /model, --model e a chave model nos arquivos do próprio desenvolvedor; um modelo fora dela não pode ser selecionado. Com a correspondência por prefixo padrão, isso por si só não afeta a opção Default; combine com enforceAvailableModels para isso.
  • Escopo: Any file. Implante-a em configurações gerenciadas para aplicá-la a uma organização.
  • Tipo: array de aliases ou IDs de modelo
  • Padrão: não definido, então todos os modelos estão disponíveis
Este exemplo permite que as pessoas selecionem apenas modelos Sonnet e Haiku:
settings.json
Uma entrada de ID de modelo como "claude-opus-5" também permite versões posteriores que a estendem, como o Opus 5.5. Para bloquear uma dessas versões, use deniedModels. Para fazer com que cada entrada de ID de modelo permita apenas a versão que ela nomeia, use availableModelsMatch. Consulte Restringir a seleção de modelos. Para IDs de provedores de terceiros, consulte Fixar modelos para implantações de terceiros.

availableModelsMatch

Escolha como as entradas de availableModels correspondem a IDs de modelo. Por padrão, uma entrada de ID de modelo também permite versões posteriores que a estendem, então "claude-opus-5" permite o Opus 5.5. Com "exact", cada entrada de ID de modelo permite apenas a versão que ela nomeia, então uma versão mais nova desse modelo permanece bloqueada até que você a liste. Requer Claude Code v2.1.283 ou posterior.
  • Escopo: Managed. O Claude Code ignora a chave nas configurações de usuário, de projeto e locais e em --settings, com um aviso
  • Tipo: string, um de:
    • "prefix": uma entrada de ID de modelo permite sua versão e qualquer ID de modelo que a estenda com outro segmento
    • "exact": uma entrada de ID de modelo permite apenas a versão que ela nomeia, então "claude-opus-5" permite o Opus 5, mas não claude-opus-5-5. Uma entrada como "claude-opus-4-5" também permite seu ID de modelo datado da Anthropic claude-opus-4-5-20251101. Um alias de família como "opus" ainda permite a família inteira, e as entradas best, opusplan e default são ignoradas
  • Padrão: "prefix"
Este exemplo permite o Opus 5 e o Sonnet 5 e nenhuma versão posterior de nenhum deles:
managed-settings.json
Com "exact", a opção Default também fica limitada aos modelos listados sempre que a lista nomeia pelo menos um modelo ou família. Consulte Bloquear modelos ou versões específicos.

deniedModels

Bloqueie modelos específicos, com ou sem uma allowlist de availableModels e mesmo quando essa lista os permite. O Claude Code oculta um modelo bloqueado do seletor /model, e o modelo não pode ser selecionado em nenhum lugar onde availableModels é aplicado. Uma sessão na opção Default também não executa um modelo bloqueado, conforme descrito em Bloquear modelos ou versões específicos. Requer Claude Code v2.1.283 ou posterior.
  • Escopo: Managed. O Claude Code ignora a chave nas configurações de usuário, de projeto e locais e em --settings, com um aviso
  • Tipo: array de aliases ou IDs de modelo
    • Um alias de família como "opus" bloqueia todos os modelos daquela família
    • Um ID de modelo como "claude-opus-5-5" bloqueia essa versão em todas as grafias, incluindo IDs datados e específicos de provedores
    • Um ID de modelo sem versão secundária, como "claude-opus-5", também bloqueia versões secundárias posteriores, como o Opus 5.5. Escreva "claude-opus-5-0" para bloquear apenas o Opus 5
    • As entradas best, opusplan e default são ignoradas
  • Padrão: não definido, então nenhum modelo é bloqueado
Este exemplo permite modelos Opus e Sonnet e bloqueia o Opus 5.5:
managed-settings.json
Consulte Bloquear modelos ou versões específicos.

effortLevel

Defina um nível de esforço padrão para modelos para os quais você não salvou um nível. Níveis mais baixos são mais rápidos e mais baratos em tarefas simples, e níveis mais altos raciocinam com mais profundidade em problemas complexos. Quando você executa /effort low, medium, high ou xhigh em uma sessão interativa na sua máquina, o Claude Code salva o nível para o modelo ativo em modelSettings em vez de gravar esta chave. Antes da v2.1.251, /effort gravava esta chave. Dentro do mesmo arquivo de configurações, o Claude Code usa o nível salvo de um modelo em vez desta chave. modelSettings descreve a precedência entre arquivos. Em uma sessão conectada a um worker remoto, em uma execução -p e no Agent SDK, /effort se aplica apenas àquela sessão. Ajustar o nível de esforço lista as escolhas interativas que também se aplicam apenas àquela sessão. A mensagem que /effort exibe informa o que aconteceu.
  • Escopo: Any file
  • Tipo: string, um de:
    • "low": o mínimo de raciocínio, para tarefas curtas, delimitadas e sensíveis à latência que não dependem de inteligência
    • "medium": reduz o uso de tokens para trabalhos sensíveis a custo que podem abrir mão de alguma inteligência
    • "high": equilibra uso de tokens e inteligência
    • "xhigh": raciocínio mais profundo com maior gasto de tokens
  • Padrão: não definido
  • Substituições por sessão: --effort tem precedência sobre esta chave para uma sessão, e CLAUDE_CODE_EFFORT_LEVEL tem precedência sobre ambos
settings.json
No seu arquivo de configurações de usuário, ~/.claude/settings.json, esta chave é a forma antiga que /effort gravava antes de salvar níveis por modelo, e ela continua se aplicando onde se aplicava antes: no Opus 5, no Fable 5.1 e em modelos anteriores. O Opus 5.5 e os modelos lançados depois dele a ignoram e começam no próprio padrão até que você salve um nível para eles, que /effort grava em modelSettings. Nas configurações de projeto, locais e gerenciadas, e com --settings, esta chave se aplica a todos os modelos.

enforceAvailableModels

O seletor /model tem uma opção Default, e configuração de modelo default descreve o modelo para o qual ela é resolvida. Uma allowlist de availableModels limita os modelos que você pode nomear, mas com a correspondência por prefixo padrão ela não remapeia o padrão do seu tipo de conta, então Default ainda pode ser resolvida para um modelo fora da lista. Esta chave fecha essa lacuna. Requer Claude Code v2.1.175 ou posterior. Quando sua organização implanta quaisquer configurações gerenciadas, o Claude Code lê esta chave apenas da fonte gerenciada e a ignora nos seus outros arquivos. Para saber como esta chave se aplica às verificações de modelo na inicialização, consulte Amazon Bedrock e Agent Platform do Google Cloud.
  • Escopo: Any file
  • Tipo: Boolean
    • true: quando Default seria resolvida para um modelo fora de availableModels, o Claude Code a resolve para o primeiro modelo disponível na lista
    • false: esta chave não altera como Default é resolvida
  • Padrão: false
Este exemplo restringe as seleções nomeadas a modelos Sonnet e Haiku e faz Default ser resolvida para o primeiro deles que estiver disponível:
settings.json
Esta chave não tem efeito quando availableModels não está definida ou está vazia. Consulte Aplicar a allowlist ao modelo Default. Requer Claude Code v2.1.175 ou posterior.

fallbackModel

Nomeie modelos reserva para o Claude Code tentar, em ordem, quando seu modelo principal estiver sobrecarregado ou indisponível. O Claude Code muda para o próximo modelo disponível na cadeia pelo restante do turno e exibe um aviso. Sem uma cadeia, o Claude Code tenta novamente o mesmo modelo e depois exibe o erro do servidor, e você mesmo tenta novamente ou troca de modelo. Uma troca significa um turno com o cache de prompt frio no modelo de fallback; sua próxima mensagem tenta primeiro o modelo principal novamente.
  • Escopo: Any file
  • Tipo: array de aliases ou IDs de modelo; "default" se expande para o modelo padrão
  • Padrão: não definido, então uma requisição com falha não é tentada novamente em outro modelo
  • Substituições por sessão: --fallback-model tem precedência sobre esta chave para uma sessão
Este exemplo tenta primeiro o Sonnet 5 e depois o Haiku 4.5 quando seu modelo principal falha:
settings.json
Ao contrário da maioria das configurações de array, esta chave não é mesclada entre arquivos de configurações: o arquivo de maior precedência que a define fornece a cadeia inteira. Se o seu arquivo de projeto define ["claude-sonnet-5"] e o seu arquivo de usuário define ["claude-haiku-4-5"], a cadeia é apenas ["claude-sonnet-5"]. O Claude Code mantém no máximo três modelos permitidos distintos da lista e ignora o restante. Consulte Cadeias de modelos de fallback.

fastMode

Ative o modo rápido em sessões onde ele está disponível, para trabalho interativo como iteração rápida ou depuração ao vivo, em que você quer velocidade a um custo maior por token. Normalmente, você não edita esta chave manualmente. Executar /fast grava fastMode: true em ~/.claude/settings.json, e executá-lo novamente para desativar o modo rápido remove a chave. Na API da Anthropic, apenas o Fable 5.2, o Opus 5.5, o Opus 5 e o Opus 4.8 suportam o modo rápido. Executar /fast a partir de outro modelo muda você para o Opus, e mudar para um modelo não suportado desativa o modo rápido. Consulte Trocar de modelo com o modo rápido ativado. No Agent Platform do Google Cloud, /fast muda você para o Fable 5.2 em vez disso e não grava esta chave, e o Claude Code ignora um true salvo.
  • Escopo: Any file
  • Tipo: Boolean
    • true: o Claude Code ativa o modo rápido em sessões onde ele está disponível. No Fable 5.2, você também precisa executar /fast enquanto usa o Fable 5.2
    • false: o modo rápido permanece desativado
  • Padrão: não definido, então o modo rápido fica desativado
  • Substituições por sessão: CLAUDE_CODE_DISABLE_FAST_MODE desativa o modo rápido para uma sessão, e esta chave não pode reativá-lo
settings.json

fastModePerSessionOptIn

Normalmente, executar /fast salva fastMode nas configurações de usuário da pessoa, então novas sessões em um modelo suportado começam com o modo rápido ativado. No Fable 5.2, isso acontece apenas se a pessoa o ativou enquanto usava o Fable 5.2. Para fazer com que cada pessoa execute /fast em cada sessão em que quiser usá-lo, defina esta chave como true. O Claude Code mantém a chave fastMode no arquivo, então desativar esta chave restaura o comportamento anterior. Owners em planos Team ou Enterprise podem implantá-la em toda a organização por meio de configurações gerenciadas pelo servidor. Quando as configurações gerenciadas definem a chave, /fast on é recusado fora de sessões interativas no terminal e informa que sua organização desativou o modo rápido. Isso abrange o modo não interativo, a extensão do VS Code e as sessões na nuvem.
  • Escopo: Any file
  • Tipo: Boolean
    • true: um fastMode: true salvo não ativa mais o modo rápido no início da sessão, então cada pessoa executa /fast em cada sessão em que quiser usá-lo; um fastMode: true passado com --settings ainda vale para aquela sessão, a menos que as configurações gerenciadas definam esta chave
    • false: um fastMode: true salvo funciona conforme descrito em fastMode
  • Padrão: false
settings.json
Consulte Exigir ativação por sessão.

language

Faça o Claude responder por padrão em um idioma diferente do inglês. Não há uma lista fixa para respostas: o Claude Code passa o valor literalmente ao Claude como uma instrução para sempre responder naquele idioma, então qualquer nome de idioma que o Claude consiga ler funciona. O Claude Code não verifica o valor, então um nome com erro de digitação chega ao Claude como foi escrito em vez de gerar um erro. O mesmo valor define o idioma do ditado por voz, que tem uma lista fixa de idiomas de ditado suportados, e dos títulos de sessão gerados automaticamente.
  • Escopo: Any file
  • Tipo: string, qualquer nome de idioma, como "japanese", "spanish" ou "french"; o Claude Code não o valida
  • Padrão: não definido; os títulos de sessão então seguem o idioma da sua conversa
settings.json

maxEffortLevel

Limite o nível de esforço que uma sessão pode usar, mantendo os níveis mais baixos disponíveis. Qualquer nível mais alto é executado no limite, incluindo um vindo de /effort, do seletor /model, de --effort, de CLAUDE_CODE_EFFORT_LEVEL, do effort no frontmatter de uma skill ou de um subagente, ou do próprio padrão do modelo. O próprio Claude Code aplica o limite antes de cada requisição, então ele vale em todos os provedores, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry. Requer Claude Code v2.1.267 ou posterior.
  • Escopo: Any file. Implante-a em configurações gerenciadas para aplicá-la a uma organização. Quando vários escopos definem um limite, o mais baixo se aplica, então um limite definido em um escopo não pode ser aumentado a partir de outro
  • Tipo: string, um de "low", "medium", "high", "xhigh" ou "max". Um valor "max" não define limite
  • Padrão: não definido, então nenhum limite se aplica
  • Limites por modelo: adicione maxEffortLevel à entrada de um modelo em modelSettings. Essa entrada substitui esta chave para o modelo apenas dentro da fonte de configurações que define ambas, como suas configurações de usuário ou uma fonte gerenciada. Defina "max" ali para isentar o modelo do limite daquela fonte; o Claude Code ainda aplica limites de outras fontes
Este exemplo limita todos os modelos a medium e isenta o Sonnet 4.6:
settings.json
Quando sua organização também define um limite de esforço para um modelo, o menor dos dois limites se aplica.

model

Defina o modelo que toda nova sessão usa, para que você não precise escolher um com /model a cada vez. Defini-lo aqui não impede que você troque no meio da sessão. Se o seu administrador definiu um modelo padrão da organização para sobrescrever a seleção do usuário, você recebe esse modelo mesmo quando define esta chave nas configurações de usuário, de projeto ou locais.
  • Escopo: Any file
  • Tipo: string, um alias de modelo ou ID de modelo completo
  • Padrão: não definido, então o Claude Code usa o modelo padrão da sua conta
  • Substituições por sessão: --model tem precedência sobre ANTHROPIC_MODEL, e ambos têm precedência sobre esta chave para uma sessão, inclusive sobre um model gerenciado; uma lista availableModels ainda se aplica à escolha
settings.json
Um valor aqui tem precedência sobre ANTHROPIC_DEFAULT_MODEL, que o Claude Code usa apenas quando nada mais seleciona um modelo.

modelOverrides

Mapeie IDs de modelo da Anthropic para IDs de modelo específicos do provedor, como ARNs de perfis de inferência do Amazon Bedrock. Cada entrada do seletor de modelos então usa seu valor mapeado ao chamar a API do provedor. Administradores usam isso no Amazon Bedrock, no Agent Platform do Google Cloud e no Microsoft Foundry para rotear cada versão de modelo para um perfil de inferência, nome de versão ou implantação específicos, para governança, alocação de custos ou roteamento regional.
  • Escopo: Any file
  • Tipo: objeto que mapeia ID de modelo para ID de modelo do provedor
  • Padrão: não definido
Este exemplo roteia todas as chamadas do Opus 4.6 para o perfil de inferência do Bedrock indicado:
settings.json
Consulte Sobrescrever IDs de modelo por versão.

modelPicker

Liste os modelos que o seletor /model oferece, na ordem em que você os escreve e com os rótulos que você escolher, para que o seletor liste os modelos que sua organização executa, depois da lista integrada ou no lugar dela. O model de cada linha é usado literalmente, então aceita qualquer coisa que --model aceita: um alias como opus, um ID de modelo da Anthropic ou um ID no formato do provedor para Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry ou um gateway de LLM. Requer Claude Code v2.1.242 ou posterior.
  • Escopo: User or managed. O Claude Code lê a chave das configurações gerenciadas, de --settings e das configurações de usuário, e a ignora nas configurações de projeto e locais para que um repositório que você clona não possa renomear o seletor. A fonte de maior precedência dentre essas três que define a chave fornece a lista inteira, e o Claude Code nunca combina listas de duas fontes.
  • Tipo: objeto com um array options de linhas e um Boolean opcional replaceBuiltInOptions
  • Padrão: não definido, então o seletor mostra a lista integrada
Este exemplo adiciona duas implantações do Bedrock depois da lista integrada, com nomes que sua equipe reconhece:
managed-settings.json

Campos de modelPicker

A chave aceita dois campos, um para as próprias linhas e outro para indicar se elas substituem a lista integrada ou são adicionadas a ela. Uma entrada em options também pode ter uma string opcional behavesAs ao lado do seu model, o que requer v2.1.257 ou posterior. Defina-a como o ID de um modelo que sua versão do Claude Code já conhece, como claude-opus-4-8, em uma entrada cujo model seja mais novo que sua versão. O Claude Code então aplica as capacidades e os padrões de esforço desse modelo conhecido à entrada, em vez de tratar seu modelo como desconhecido. O rótulo da entrada e o ID de modelo que o Claude Code envia nas requisições não mudam. Com replaceBuiltInOptions ativado, o Claude Code oculta todas as outras linhas: a lista integrada, as linhas que ele adiciona para entradas de availableModels, os modelos que a descoberta do gateway encontrou e ANTHROPIC_CUSTOM_MODEL_OPTION. Com ele desativado, o Claude Code pula um modelo listado que a lista integrada já abrange. Um rótulo altera o que o seletor mostra, não qual modelo o Claude Code executa. Uma allowlist de availableModels ainda se aplica a estas linhas. Antes de adicionar um modelo listado à allowlist, leia Comportamento de mesclagem: um ID de modelo específico restringe a entrada curinga da sua família. O Claude Code também verifica cada linha em relação à sessão antes de mostrar o seletor:
  • Removida: uma linha que o Claude Code não consegue atender, como um modelo descontinuado ou um modelo ao qual sua organização não tem acesso
  • Desabilitada: uma linha que você ainda não pode selecionar, mostrada com o motivo
  • Nenhuma linha restante: o Claude Code mantém a lista integrada, filtrada pela allowlist como de costume
O Claude Code descarta uma linha que não consegue interpretar e mantém o restante. Consulte Corrigir um arquivo de configurações com problemas.

modelPricing

Informe os gastos com as tarifas que sua organização paga em vez do preço de tabela. Defina esta chave quando sua organização tiver tarifas contratadas, para que os valores em dólar que os desenvolvedores veem correspondam à sua fatura. O Claude Code aplica as tarifas em /usage, na linha de status, no total_cost_usd do Agent SDK, no limite --max-budget-usd e na métrica e nos eventos de custo do OpenTelemetry. Você fornece as tarifas: o Claude Code não as lê do seu contrato nem do Claude Console. Requer Claude Code v2.1.242 ou posterior.
  • Escopo: Managed. Implante a chave por meio de configurações gerenciadas pelo servidor, uma política de MDM, um arquivo managed-settings.json ou um auxiliar de política. O Claude Code a ignora nas configurações de usuário, de projeto e locais, em --settings e, no Windows, no registro HKCU gravável pelo usuário. Com configurações gerenciadas pelo servidor, cada sessão informa custos pelo preço de tabela até que a busca de configurações daquela sessão tenha confirmado a configuração. Um aplicativo host que incorpora o Claude Code e define CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST pode fornecer sua própria tabela por meio da opção managedSettings do SDK, que o Claude Code usa apenas quando nenhuma fonte gerenciada define a chave e apenas no Claude Code v2.1.246 ou posterior.
  • Tipo: objeto com um multiplier opcional e um mapa overrides opcional
  • Padrão: não definido, então o Claude Code informa o preço de tabela, a menos que um aplicativo host forneça uma tabela
Defina apenas multiplier para um desconto ou acréscimo fixo, apenas overrides para tarifas por modelo, ou ambos. Este exemplo define tarifas contratadas para o Sonnet 4.6 e depois reduz todos os valores, incluindo a linha do Sonnet, em 15%:
managed-settings.json
Defina multiplier acima de 1, até 10, para aplicar um acréscimo a todos os valores. Um acréscimo requer Claude Code v2.1.271 ou posterior. Versões anteriores ignoram um multiplier acima de 1 com um aviso e mantêm o restante da configuração. Para os passos, incluindo como confirmar que as tarifas estão em vigor, consulte Informar gastos com suas tarifas contratadas.

Campos de modelPricing

O Claude Code usa as tarifas de uma linha exatamente como você as escreveu, sem adicionar a sobretaxa do modo rápido nem a tarifa de inferência apenas nos EUA. Se você também definir multiplier, o Claude Code o aplica sobre as tarifas da linha. O Claude Code descarta uma linha com uma tarifa que não consegue interpretar, ou um multiplier que não consegue interpretar, e mantém o restante; consulte Corrigir um arquivo de configurações com problemas.

A quais modelos uma linha de modelPricing se aplica

O Claude Code decide a quais modelos uma linha se aplica com base na chave da linha:
  • O ID de um modelo integrado: uma chave que o próprio Claude Code usa para um modelo integrado, seja o próprio ID do modelo, como claude-sonnet-4-6, ou seu ID no Bedrock, no Agent Platform ou no Foundry. O Claude Code aplica a linha a todos os IDs de snapshot datados e IDs específicos de provedores daquele modelo.
  • Qualquer outra chave: uma chave que não é o ID de um modelo integrado, como um alias de modelo de gateway. O Claude Code aplica a linha apenas àquele ID. Quando um ID de modelo corresponde exatamente a uma das suas chaves e também se enquadra em uma linha cuja chave é o ID de um modelo integrado, o Claude Code usa a correspondência exata.
  • Um perfil de inferência de aplicativo do Bedrock: depois que o Claude Code resolve o perfil para o modelo para o qual ele roteia, por meio do seu mapa modelOverrides ou da consulta bedrock:GetInferenceProfile, o Claude Code aplica a linha daquele modelo ao perfil.

modelSettings

Salve um nível de esforço para cada modelo que você usa. Requer Claude Code v2.1.251 ou posterior. Em uma sessão interativa na sua máquina, quando você salva low, medium, high ou xhigh como padrão com /effort ou com o controle deslizante de esforço do seletor /model, o Claude Code grava esse nível aqui sob o modelo que você está usando, então raramente você mesmo edita esta chave. Quando você escolhe um desses níveis no seletor de modelos da extensão do VS Code, o Claude Code o salva aqui da mesma forma. A entrada effortLevel lista as sessões em que /effort se aplica apenas àquela sessão. Edite a chave manualmente para alterar ou remover um nível que você salvou. O effortLevel de um modelo aqui tem precedência sobre o effortLevel de nível superior no mesmo arquivo de configurações. Entre arquivos, o Claude Code resolve cada modelo separadamente: decide o arquivo de configurações de maior precedência que define um effortLevel para aquele modelo ou um effortLevel de nível superior que se aplica àquele modelo, então um effortLevel em configurações gerenciadas tem precedência sobre um nível que você salvou nas configurações de usuário. Ajustar o nível de esforço lista o que mais pode sobrescrever um nível salvo, como --effort na inicialização. Para limitar o esforço de um modelo em vez de definir seu nível, adicione um campo maxEffortLevel à entrada daquele modelo. O campo requer Claude Code v2.1.267 ou posterior.
  • Escopo: Any file
  • Tipo: objeto que mapeia um nome de modelo para um objeto com qualquer um destes campos:
    • effortLevel: um de "low", "medium", "high" ou "xhigh"
    • maxEffortLevel: o nível de esforço mais alto com que o modelo pode ser executado
    • autoCompactWindow: um número de tokens de 100000 a 1000000, ou "auto" para a janela ajustada para o modelo. /autocompact salva aqui. Para aquele modelo, o valor tem precedência sobre um autoCompactWindow de nível superior no mesmo arquivo de configurações. Requer Claude Code v2.1.288 ou posterior
  • Padrão: não definido
O Claude Code grava cada entrada sob o nome canônico do modelo, como claude-opus-5-5, e associa à mesma entrada o alias desse modelo, os IDs com sufixo de data, [1m] e os IDs específicos de provedores reconhecidos. Este exemplo mantém o Opus 5.5 em high enquanto os outros modelos usam seus próprios níveis salvos ou padrão:
settings.json
Execute /effort auto para limpar o nível salvo para o modelo que você está usando. O Claude Code mantém as outras entradas e qualquer effortLevel de nível superior.

outputStyle

Selecione um estilo de saída pelo nome. Um estilo de saída é um conjunto salvo de instruções que altera o papel, o tom e o formato de saída do Claude, como os estilos integrados Explanatory e Learning ou um que você mesmo escreveu. Se você alterar esta chave durante uma sessão, o Claude usa o novo estilo a partir da sua próxima mensagem. Para saber quanto essa mensagem custa em cache de prompt, consulte Alterar o estilo de saída. Antes da v2.1.251, a alteração só se aplicava depois que você executava /clear ou iniciava uma nova sessão.
  • Escopo: Any file
  • Tipo: string, o nome de um estilo de saída integrado ou personalizado
  • Padrão: não definido, então o Claude Code usa o estilo padrão
Este exemplo seleciona o estilo integrado Explanatory, que adiciona insights educacionais entre as tarefas:
settings.json

promptCacheTtl

Escolha por quanto tempo o cache de prompt mantém a conversa principal. Esta chave se aplica aos seus turnos interativos, -p e do Agent SDK, junto com os auxiliares que o Claude Code executa em linha com eles. A duração de uma hora mantém o cache aquecido durante pausas mais longas, e a API cobra cada gravação de cache a uma tarifa mais alta do que na duração de cinco minutos. Requer Claude Code v2.1.242 ou posterior. Este exemplo mantém a conversa principal na duração de uma hora e deixa os subagentes em cinco minutos:
settings.json
Para saber quanto custa cada duração, consulte Duração do cache.

showThinkingSummaries

Veja resumos do pensamento estendido do Claude em sessões interativas. Defina esta chave se quiser os resumos completos ao expandir o pensamento com Ctrl+O. Quando não definida ou false, a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um stub recolhido.
  • Escopo: Any file
  • Tipo: Boolean
    • true: você vê os resumos completos de pensamento ao expandir o pensamento com Ctrl+O
    • false: a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um stub recolhido
  • Padrão: false
settings.json
A ocultação altera apenas o que você vê, não o que o modelo gera. Para reduzir o gasto com pensamento, reduza o orçamento ou desative o pensamento.

subagentPromptCacheTtl

Escolha por quanto tempo o cache de prompt mantém as requisições que o Claude Code faz fora da conversa principal. Esta chave se aplica a subagentes, fluxos de trabalho e às próprias requisições em segundo plano e auxiliares do Claude Code, como compactação e títulos de sessão. A duração de uma hora mantém o cache aquecido durante pausas mais longas, e a API cobra cada gravação de cache a uma tarifa mais alta do que na duração de cinco minutos. Requer Claude Code v2.1.242 ou posterior. Este exemplo dá aos subagentes e às outras requisições fora da conversa principal a duração de uma hora:
settings.json
Esta chave abrange as requisições que promptCacheTtl não abrange, então defina ambas para escolher uma duração para todas as requisições que o Claude Code faz. Para saber como o cache de um subagente difere do da conversa principal, consulte Subagentes e o cache.

switchModelsOnFlag

Escolha o que acontece quando um classificador de segurança sinaliza uma requisição: mudar para o modelo de fallback e continuar, ou pausar para que você possa escolher entre mudar e editar o prompt.
  • Escopo: Any file. Aparece em /config como Switch models when a message is flagged, com as opções Switch automatically e Ask each time.
  • Tipo: Boolean
    • true: o Claude Code muda para o modelo de fallback e continua
    • false: em uma sessão interativa, o Claude Code pausa para que você possa escolher entre mudar e editar o prompt; onde nenhuma caixa de diálogo pode ser exibida, como em uma execução -p, a requisição sinalizada termina com um erro
  • Padrão: não definido. O Claude Code muda automaticamente, embora possa perguntar primeiro em uma sessão interativa
settings.json
Consulte Perguntar antes de mudar.

ultracode

Inicie sessões com o ultracode ativado. Com ele ativado, o Claude planeja um fluxo de trabalho para cada tarefa substancial em vez de esperar que você peça. O Claude planeja fluxos de trabalho apenas quando os fluxos de trabalho dinâmicos estão habilitados para você e seu modelo suporta o esforço xhigh. A chave não altera o nível de esforço da sessão: o ultracode é executado no nível que a sessão usa. O Claude Code lê esta chave, mas nunca a grava: /effort ultracode ativa o ultracode apenas para a sessão atual.
  • Escopo: Any file
  • Tipo: Boolean
    • true: as sessões começam com o ultracode ativado quando os fluxos de trabalho dinâmicos estão habilitados para você e seu modelo suporta xhigh
    • false: as sessões começam com o ultracode desativado
  • Padrão: não definido, então o ultracode fica desativado
  • Substituições por sessão: /effort ultracode ativa o ultracode para uma sessão sem esta chave, e /effort ultracode off o desativa para uma sessão quando esta chave é true. A flag --effort ultracode também o ativa para uma sessão, com esforço xhigh
settings.json
O nível de esforço da sessão vem de effortLevel, modelSettings e das outras fontes de esforço, e um limite de esforço como maxEffortLevel reduz esse nível sem desativar o ultracode. Isso e a forma /effort ultracode off requerem Claude Code v2.1.284 ou posterior. Antes da v2.1.284, ultracode: true executava a sessão com esforço xhigh, e um limite de esforço abaixo de xhigh mantinha o ultracode desativado. Uma requisição de controle apply_flag_settings do Agent SDK também aceita a chave.

Configurações de permissão

Decida o que Claude pode fazer sem perguntar, o modo de permissão padrão para novas sessões e o que o classificador do modo automático permite. Para a sintaxe de regras e o modelo de permissão, consulte Configurar permissões.

allowManagedPermissionRulesOnly

Torne as configurações gerenciadas a única fonte de regras de permissão. Claude Code então ignora as regras allow, ask e deny em arquivos de usuário, projeto, local e --settings, ignora --allowedTools, oculta as opções de sempre permitir nos prompts de permissão e para de salvar novas regras. Quando configurações pai de um host de incorporação se aplicam, Claude Code as trata como parte da camada gerenciada. Ele descarta suas regras allow e additionalDirectories, e mantém suas regras deny e ask exceto regras Read e Edit cujo padrão começa com !. Um host não pode esculpir caminhos fora das regras gerenciadas com uma regra !, independentemente de você definir esta chave. As regras --disallowedTools e as regras deny e ask da sessão atual ainda se aplicam, inclusive após Claude Code recarregar as configurações no meio da sessão. Elas apenas restringem, portanto não podem ampliar o que as regras gerenciadas concedem. Antes da v2.1.257, Claude Code descartava essas regras de linha de comando e de sessão no primeiro recarregamento de configurações. Para o que um padrão ! em uma regra --disallowedTools ou de sessão pode esculpir, consulte Regras Read e Edit. Quando você define esta chave, Claude Code v2.1.282 ou posterior também ignora o frontmatter allowed-tools em skills e arquivos .claude/commands/ destas fontes:
  • O diretório .claude/ de um repositório
  • Seus diretórios ~/.claude/skills/ e ~/.claude/commands/, incluindo skills sincronizadas do claude.ai
  • Um diretório --add-dir
  • Plugins declarados com um manifesto .claude-plugin dentro de ~/.claude/skills/ ou do .claude/skills/ do projeto
  • Plugins carregados para apenas uma sessão, cujos ids terminam em @inline, quando todas estas condições se aplicam:
    • A sessão é uma sessão Code ou sessão Cowork, exceto uma sessão na nuvem, para a qual o próprio aplicativo Claude Desktop inicia Claude Code
    • Suas configurações gerenciadas definem a chave, não apenas as configurações pai de um host de incorporação
    • A sessão executa Claude Code v2.1.305 ou posterior
As skills de configurações gerenciadas e as skills incluídas mantêm seu allowed-tools. Plugins @inline fora dessas sessões do Desktop também mantêm o seu, exceto um chamado anthropic-skills. O disallowed-tools de uma skill ainda se aplica. Para o que um desenvolvedor vê quando Claude Code ignora o campo, consulte Quando apenas regras de permissão gerenciadas se aplicam.
  • Escopo: Managed
  • Tipo: Booleano
    • true: as configurações gerenciadas se tornam a única fonte de regras de permissão
    • false: Claude Code aplica regras de permissão de arquivos de usuário, projeto, local e --settings além das gerenciadas
  • Padrão: não definido, portanto Claude Code aplica regras de permissão de configurações de usuário, projeto e local e de --settings, além das gerenciadas
managed-settings.json
Esta chave não bloqueia a allowlist de servidores MCP; para isso, defina allowManagedMcpServersOnly. Consulte Configurações apenas gerenciadas.

autoMode

Adicione suas próprias regras ao que o classificador do modo automático bloqueia e permite. Use-o para informar ao classificador quais repositórios, buckets e domínios sua organização confia, para que ele pare de bloquear operações internas rotineiras. O classificador é fornecido com regras de permissão e bloqueio integradas. Inclua a string literal "$defaults" em um array para manter essas regras integradas nessa posição e adicione as suas ao redor; deixe-a de fora para substituí-las pelas suas. Este exemplo mantém as regras soft_deny integradas, através de "$defaults", e adiciona uma mais que bloqueia terraform apply:
settings.json
Quando mais de um desses arquivos define o mesmo array, Claude Code concatena as entradas. Para o formato de regra e como cada array é aplicado, consulte Configurar modo automático.

autoMode.classifyAllShell

Envie cada comando Bash e PowerShell através do classificador do modo automático enquanto o modo automático está ativo. Por padrão, o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário: regras de ferramenta inteira e curinga como Bash(*), e prefixos de interpretador ou wrapper de shell como Bash(python *). Um comando que qualquer outra regra de permissão corresponde, como Bash(npm test), pula o classificador a menos que ele carregue domínios permitidos por comando. Quando pula, um argumento destrutivo que o prefixo da regra não antecipou pode passar despercebido. Definir esta chave suspende cada regra de shell de permissão para a sessão para que o classificador veja cada comando. Requer Claude Code v2.1.193 ou posterior.
  • Escopo: User or managed. Leia onde autoMode é lido.
  • Tipo: Booleano
    • true: enquanto o modo automático está ativo, Claude Code envia cada comando Bash e PowerShell através do classificador e suspende suas regras de shell de permissão; fora do modo automático as regras ainda se aplicam
    • false: o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário, como Bash(*) e Bash(python *); um comando que qualquer outra regra de permissão corresponde pula o classificador a menos que ele carregue domínios permitidos por comando, e cada outro comando de shell passa por ele
  • Padrão: false
settings.json
Esta chave funciona de forma diferente em uma sessão do Code Mode. Consulte Rotear todos os comandos de shell através do classificador.

disableAutoMode

Remova o modo automático do ciclo Shift+Tab. Qualquer sessão que de outra forma começaria em modo automático, seja de --permission-mode auto, um arquivo de configurações ou o padrão integrado, começa em default em vez disso. Administradores o definem em configurações gerenciadas para impedir que desenvolvedores em sua organização usem o modo automático.
  • Escopo: Any file. Mais útil em configurações gerenciadas, onde os usuários não podem substituí-lo. Também aceito sob permissions como permissions.disableAutoMode.
  • Tipo: a string "disable"
  • Padrão: não definido
settings.json

permissions

Controle quais ferramentas Claude pode usar sem perguntar, quais solicitam confirmação e quais são bloqueadas. Também defina o modo de permissão padrão para novas sessões. Cada chave permissions.* abaixo se aninha sob este objeto.
  • Escopo: Any file
  • Tipo: objeto com allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, blockWritesOutsideWorkingDirectories, defaultMode, denyInsteadOfPrompting, disableBypassPermissionsMode e disableAutoMode
  • Padrão: não definido
Este exemplo aprova comandos npm run sem perguntar, solicita antes de git push, bloqueia leituras de .env e inicia sessões em acceptEdits:
settings.json
Os três arrays de regras compartilham uma sintaxe; consulte Sintaxe de regra de permissão sob permissions.allow. Para como as regras de permissão de diferentes arquivos se combinam, consulte como as regras de permissão se mesclam entre escopos; para como as chaves de configurações em geral se combinam, consulte Precedência de configurações no guia de configurações.

useAutoModeDuringPlan

Escolha se Claude Code usa o classificador do modo automático para revisar comandos de shell no modo de planejamento. Com o padrão true, o classificador revisa cada comando durante o planejamento quando o modo automático está disponível e você não vê nenhum prompt, exceto para remoções de caminho crítico. Defina false para obter um prompt de permissão para cada comando fora do conjunto integrado somente leitura. Aparece em /config como Use auto mode during plan.
  • Escopo: User, local, or managed. Um repositório não pode desativá-lo para você.
    • Um false em qualquer um desses arquivos ou em --settings o desativa, a menos que você deixe esse arquivo de usuário ou local de fora com uma opção como --setting-sources. Ignorar um arquivo deixado de fora requer Claude Code v2.1.314 ou posterior
  • Tipo: Booleano
    • true: o mesmo que não definido; quando o modo auto está disponível, o classificador revisa comandos de shell durante o planejamento
    • false: você obtém um prompt de permissão para cada comando fora do conjunto integrado somente leitura
  • Padrão: true
settings.json

permissions.allow

Liste os usos de ferramentas que Claude Code aprova sem perguntar a você. Em uma regra MCP, * pode aparecer apenas no nome da ferramenta após o prefixo mcp__<server>__, como mcp__github__get_*; não pode aparecer no nome do servidor.
  • Escopo: Any file
  • Tipo: array de strings de regra de permissão
  • Padrão: não definido
  • Substituições por sessão: --allowedTools adiciona regras de permissão para uma sessão, e uma regra de bloqueio de qualquer arquivo de configurações ainda bloqueia uma ferramenta que ela nomeia
Este exemplo aprova git diff e permite que Claude Code leia seu .zshrc sem perguntar:
settings.json
Claude Code aplica regras allow do .claude/settings.json de um projeto apenas depois que você aceita o diálogo de confiança do workspace para essa pasta.

Sintaxe de regra de permissão

As regras de permissão seguem o formato Tool ou Tool(specifier). Claude Code avalia as regras deny primeiro, depois ask, depois allow, e a primeira correspondência decide independentemente de quão específica cada regra é; consulte a ordem de avaliação de regra de permissão. Cada linha mostra uma forma de regra e o que ela corresponde. Para a sintaxe de regra completa, incluindo comportamento de curinga, padrões específicos de ferramenta para Read, Edit, WebFetch, MCP e regras de Agent, e as limitações de segurança de padrões Bash, consulte Sintaxe de regra de permissão.

permissions.ask

Liste os usos de ferramentas que solicitam sua confirmação mesmo em um modo de permissão que de outra forma os aprovaria, como acceptEdits ou bypassPermissions. No modo dontAsk, Claude Code nega um uso de ferramenta correspondente em vez de solicitar.
  • Escopo: Any file
  • Tipo: array de strings de regra de permissão
  • Padrão: não definido
settings.json

permissions.deny

Liste os usos de ferramentas que Claude Code bloqueia. Use-o para arquivos que contêm chaves de API, segredos ou valores de ambiente: Claude Code exclui arquivos correspondentes da descoberta de arquivos e resultados de pesquisa, nega leituras deles e bloqueia as ferramentas Edit e Write nos caminhos correspondentes. As regras de bloqueio Read e Edit se aplicam às ferramentas de arquivo integradas de Claude, aos comandos de arquivo que Claude Code reconhece em Bash, como cat, head, tail, sed e tee, e aos destinos de redirecionamentos de Bash como > file e < file; elas não se aplicam a um comando que lê arquivos sem nomeá-los, como grep -r pattern ., ou a subprocessos arbitrários, portanto para aplicação em nível de SO ative o sandbox.
  • Escopo: Any file
  • Tipo: array de strings de regra de permissão
  • Padrão: não definido
  • Substituições por sessão: --disallowedTools adiciona regras de bloqueio para uma sessão ao lado desta chave
Este exemplo nega leituras de arquivos .env, o diretório secrets e um arquivo de credenciais, e bloqueia comandos curl:
settings.json
Os nomes de ferramentas aceitam padrões glob, portanto "*" nega cada ferramenta e "mcp__*" nega cada ferramenta MCP. Claude Code ignora uma regra de bloqueio para a ferramenta EndConversation enquanto qualquer outra ferramenta ainda estiver disponível para Claude. Uma regra de bloqueio Bash corresponde ao comando como Claude o escreve, portanto Bash(curl *) não para /usr/bin/curl ou sh -c 'curl …'; consulte o que uma regra Bash não corresponde. Esta chave substitui a configuração ignorePatterns descontinuada.

permissions.additionalDirectories

Dê a Claude acesso a arquivos em diretórios fora do que você começou, como diretórios de trabalho adicionais. A maioria da configuração .claude/ não é descoberta desses diretórios.
  • Escopo: Any file, com limites no acesso de gravação do sandbox que as entradas de projeto e local concedem
  • Tipo: array de caminhos de diretório
  • Padrão: não definido
  • Substituições por sessão: --add-dir e /add-dir adicionam diretórios para uma sessão ao lado desta chave
settings.json
Como as regras allow, as entradas no .claude/settings.json de um projeto entram em vigor apenas depois que você aceita o diálogo de confiança do workspace para essa pasta.

permissions.blockReadsOutsideWorkingDirectories

Faça as ferramentas de arquivo de Claude recusarem leituras fora dos diretórios de trabalho em cada modo de permissão, incluindo bypassPermissions. Claude Code nega chamadas Read, Grep, Glob e LSP nesses caminhos e diz a Claude para pedir que você adicione o diretório com /add-dir. Arquivos que Claude Code em si precisa permanecem legíveis, como suas skills, plugins, regras, agentes, comandos e o arquivo de memória CLAUDE.md sob ~/.claude/. Requer Claude Code v2.1.257 ou posterior. Claude Code não recusa comandos de shell da mesma forma: Um comando Bash que o analisador de shell não consegue rastrear, como um que muda de diretório mais de uma vez ou executa um subshell, solicita a você mesmo no modo automático e no modo bypassPermissions. O prompt aparece mesmo quando o comando não nomeia nenhum caminho fora dos diretórios de trabalho. Este prompt não se aplica quando o comando é executado no sandbox e o sandbox aplica o bloqueio. Claude Code também escreve true aqui quando você escolhe bloquear tais leituras no prompt do modo automático antes da primeira leitura fora dos diretórios de trabalho.
  • Escopo: Any file. Um true em qualquer arquivo se aplica, portanto um repositório pode ativar o bloqueio para si mesmo, mas não pode levantar o seu.
  • Tipo: Booleano
    • true: as ferramentas de arquivo de Claude recusam leituras fora dos diretórios de trabalho
    • false: o mesmo que não definido; o bloqueio ainda se aplica se outro arquivo definir true
  • Padrão: não definido, portanto leituras fora dos diretórios de trabalho seguem seu modo de permissão
settings.json
Para levantar o bloqueio, remova a chave de cada arquivo de configurações que a define e depois reinicie cada sessão em execução. Diretórios que você adiciona com --add-dir, /add-dir ou additionalDirectories em suas configurações de usuário ou gerenciadas contam como diretórios de trabalho para o bloqueio. Diretórios adicionados apenas em configurações de repositório não contam: aqueles em .claude/settings.json e aqueles em .claude/settings.local.json a menos que git relate esse arquivo como não rastreado. Em um diretório que não é um repositório git, ou quando git rastreia o arquivo, Claude Code trata .claude/settings.local.json como configurações de repositório, portanto coloque diretórios que você quer manter legíveis em suas configurações de usuário em vez disso. Quando autoMemoryDirectory vem do .claude/settings.json do projeto, ou de um .claude/settings.local.json tratado como fornecido pelo repositório, Claude Code não carrega nenhuma memória automática desse diretório e não salva nenhuma nele.

Comandos em sandbox sob o bloqueio

Quando sandboxing está ativado, o bloqueio também cobre comandos em sandbox. Claude Code nega a eles acesso de leitura ao seu diretório pessoal e às outras raízes que contêm arquivos de usuário: /Users, /home, /root, /Volumes, /mnt, /media, /run/media e /srv. Ele então reabre os diretórios de trabalho, worktrees que Claude Code cria na sessão, o diretório temporário da sessão e as partes de ~/.claude que os comandos precisam, como skills e plugins. Enquanto o bloqueio está em vigor, entradas allowRead e allowWrite de configurações de repositório não contam. Quando o diretório de trabalho da sessão é um git worktree vinculado, incluindo um que Claude Code entrou no meio da sessão, o diretório .git comum do repositório permanece legível e gravável para comandos em sandbox, para que o git continue funcionando lá. Nestes casos o bloqueio não alcança comandos em sandbox, enquanto as ferramentas de arquivo de Claude continuam aplicando-o: Sob o bloqueio, Claude Code reabre seus arquivos de configuração git global para comandos em sandbox para que git mantenha sua identidade e configurações:
  • ~/.gitconfig
  • Os arquivos config, ignore e attributes sob $XDG_CONFIG_HOME/git, que padrão para ~/.config/git
  • Arquivos que sua configuração git global nomeia através de [include], [includeIf], core.excludesFile ou core.attributesFile
Claude Code julga cada arquivo separadamente. Quando um arquivo fica onde um comando em sandbox pode escrever, diretamente ou através de um symlink, Claude Code não reabre os arquivos que ele nomeia. No Linux e WSL2, um arquivo de configuração que é um symlink pode permanecer ilegível em seu próprio caminho, e git então é executado sem ele. ~/.git-credentials e $XDG_CONFIG_HOME/git/credentials permanecem bloqueados. Se um arquivo reaberto contém um segredo, como um token http.extraHeader, adicione seu caminho a sandbox.filesystem.denyRead. Uma entrada denyRead que cobre um arquivo sempre tem precedência sobre esta reabertura.

permissions.blockWritesOutsideWorkingDirectories

Faça as ferramentas Write, Edit e NotebookEdit recusarem caminhos fora dos seus diretórios de trabalho em cada modo de permissão, incluindo bypassPermissions, exceto alguns dos próprios arquivos de Claude Code. A chave não limita comandos de shell, ferramentas MCP ou os programas que os hooks executam. Para limitar onde os comandos de shell gravam, ative o sandboxing. Requer Claude Code v2.1.314 ou posterior. Depois que a chave é ativada, Claude Code também remove as ferramentas EnterWorktree e ExitWorktree ou recusa chamadas a elas. Para continuar trabalhando em worktrees, siga Claude não tem a ferramenta EnterWorktree.
  • Escopo: Any file. Um true em qualquer arquivo que a sessão carrega se aplica, portanto um repositório pode ativar o bloqueio para si mesmo, mas não pode levantar o seu. Em uma sessão na nuvem, Claude Code pode não aplicar a chave, porque as ferramentas de arquivo são executadas em um contêiner que é ele próprio o limite.
  • Tipo: Booleano
    • true: ativa o bloqueio
    • false: o mesmo que não definido; o bloqueio ainda se aplica se outro arquivo definir true
  • Padrão: não definido, portanto gravações fora dos diretórios de trabalho seguem seu modo de permissão. O bloqueio também fica ativo enquanto Claude Code não consegue ler o objeto permissions nas suas configurações gerenciadas.
settings.json
Para testar o bloqueio, peça a Claude para usar a ferramenta Write para criar um arquivo fora dos seus diretórios de trabalho, como ~/block-test.txt se o seu diretório pessoal não for um deles. Claude Code recusa a chamada, e a recusa informa que a configuração bloqueia gravações fora dos diretórios de trabalho. Para levantar o bloqueio, remova a chave de cada arquivo de configurações que a define e depois reinicie Claude Code.

O que o bloqueio de gravação recusa e o que permanece gravável

Alguns dos próprios arquivos de Claude Code permanecem graváveis, como arquivos de plano, o scratchpad, o diretório tmp de uma sessão em segundo plano e arquivos .md na memória automática deste projeto. Além dos seus próprios arquivos fora dos diretórios de trabalho, o bloqueio recusa gravações em:
  • Arquivos de configurações do Claude Code: Claude Code recusa essas gravações também dentro dos diretórios de trabalho, porque um arquivo de configurações pode levantar o bloqueio. Edite os arquivos de configurações você mesmo.
  • Um diretório que apenas as configurações de repositório adicionam: um que additionalDirectories lista apenas em .claude/settings.json, ou em .claude/settings.local.json a menos que git relate esse arquivo como não rastreado
  • O worktree de um subagente: as edições de arquivo de um subagente isolation: worktree são recusadas quando o seu worktree fica fora dos diretórios de trabalho
  • Memória automática em um diretório que o repositório escolheu: um diretório que autoMemoryDirectory nomeia nas configurações de repositório
Os arquivos de configurações permanecem recusados independentemente do que você adicionar. Para permitir uma gravação em qualquer um dos outros casos, adicione um diretório de trabalho. /add-dir precisa de um diretório que exista, portanto nomeie o diretório .claude/worktrees na raiz do repositório para worktrees de subagentes.

Permitir um diretório através do bloqueio de leitura ou gravação

Para permitir que Claude alcance um diretório fora do projeto enquanto blockReadsOutsideWorkingDirectories ou blockWritesOutsideWorkingDirectories é true, adicione-o como diretório de trabalho. Execute /add-dir <directory> na sessão, passe --add-dir <directory> ao iniciar Claude Code ou liste-o em additionalDirectories nas suas configurações de usuário ou gerenciadas. Nenhuma regra de permissão deixa as ferramentas de arquivo de Claude passarem por nenhum dos bloqueios.

permissions.defaultMode

Defina o modo de permissão padrão para novas sessões. Quando você o deixa não definido, aplica-se o padrão integrado para sua superfície.
  • Escopo: Any file. auto e bypassPermissions não entram em vigor a partir de configurações de projeto ou local, portanto defina-os em ~/.claude/settings.json em vez disso. Antes da v2.1.257, bypassPermissions entrava em vigor a partir de qualquer arquivo. Para conversas que a extensão VS Code inicia, Claude Code lê apenas valores de usuário, gerenciados e --settings.
  • Tipo: string, uma de:
    • "default": Claude Code executa apenas leituras sem perguntar
    • "acceptEdits": Claude Code também executa edições de arquivo e comandos comuns do sistema de arquivos como mkdir e mv sem perguntar
    • "plan": Claude Code lê e planeja, mas bloqueia edições até que você aprove um plano
    • "auto": Claude Code executa sem prompts rotineiros; antes de ações como comandos de shell e requisições de rede serem executadas, um classificador em segundo plano verifica se elas se alinham com sua solicitação
    • "dontAsk": Claude Code nega automaticamente cada chamada que de outra forma solicitaria, embora um mod que você instalou ainda possa aprovar algumas dessas chamadas. Leituras de arquivos dentro dos seus diretórios de trabalho, outras ações que não precisam de aprovação e ferramentas pré-aprovadas ainda são executadas, exceto leituras de caminhos de rede
    • "bypassPermissions": Claude Code executa tudo sem perguntar
    • "manual": um alias para "default"
  • Padrão: não definido
  • Substituições por sessão: --permission-mode e seu equivalente --dangerously-skip-permissions para bypassPermissions têm precedência sobre esta chave para uma sessão
settings.json
As regras de permissão se sobrepõem a cada modo: as regras deny bloqueiam em cada modo, incluindo bypassPermissions. Consulte Modos de permissão. Em sessões na nuvem, Claude Code honra apenas acceptEdits, plan, default e auto desta chave. Para conversas que a extensão VS Code inicia, consulte qual configuração a extensão lê para o modo de permissão inicial.

permissions.denyInsteadOfPrompting

Defina isto como true para manter uma sessão em execução quando não houver ninguém para responder a um prompt de permissão. Claude Code nega uma chamada de ferramenta que, de outra forma, aguardaria um prompt, e o turno continua. Requer Claude Code v2.1.319 ou posterior. Uma chamada prossegue se uma regra de permissão, seu modo de permissão ou o classificador do modo auto a aprovar. Para permitir a maioria das chamadas que de outra forma solicitariam confirmação, responda a partir de um hook PermissionRequest.
  • Escopo: User or managed, e --settings. Um repositório não pode defini-lo para você.
  • Tipo: Booleano
    • true: Claude Code nega chamadas que de outra forma solicitariam confirmação
    • false: o mesmo que não definido; as chamadas ainda são negadas se outra dessas fontes definir true
  • Padrão: não definido, portanto uma chamada que precisa de aprovação solicita sua confirmação
Em ~/.claude/settings.json, este exemplo inicia sessões no modo auto e nega o que ainda recairia em um prompt:
settings.json
A chave se aplica em execuções -p, sessões interativas de terminal, na extensão VS Code, em sessões locais no aplicativo Desktop, em subagentes e em equipes de agentes. Para negar o que solicitaria confirmação em uma única execução não interativa, passe --permission-prompts none com -p.

O que mais denyInsteadOfPrompting interrompe

Com a configuração ativada, Claude Code também interrompe estas solicitações de resposta:
  • Ferramentas de pergunta e de plano: Claude Code deixa de fora AskUserQuestion, EnterPlanMode e ExitPlanMode, portanto uma sessão no modo de planejamento não pode sair dele por conta própria. Um colega de equipe em uma equipe de agentes mantém EnterPlanMode e ExitPlanMode
  • Elicitação MCP: Claude Code cancela uma requisição de elicitação a menos que um hook Elicitation a responda
  • Hosts de permissão: Claude Code não consulta seu callback canUseTool nem --permission-prompt-tool. Para aprovar chamadas a partir de código, responda a partir de um hook PermissionRequest. Algumas chamadas são negadas antes que qualquer hook seja consultado, como uma remoção de caminho crítico no modo auto que nenhuma regra ask cobre.
  • Aviso de cobrança do classificador: onde o aviso sobre requisições cobradas do classificador abriria um diálogo, Claude Code não o mostra e nega as ações que precisam dessas requisições
Uma sessão ainda pode aguardar o diálogo de confiança do workspace e a aprovação de servidores MCP do projeto. Responda a ambos antes de deixar a sessão em execução.

Mensagens de denyInsteadOfPrompting

Estas mensagens relatam chamadas recusadas. Elas não são prompts, portanto nada aguarda sua resposta. A negação que Claude lê pode começar com este texto:
Na saída stream-json, as execuções que emitem uma mensagem permission_denied relatam este decision_reason:
No modo auto com a configuração ativada, o turno termina após 20 chamadas seguidas que o classificador bloqueou ou que uma verificação de segurança recusou, e você vê esta mensagem:
Uma execução -p relata esse turno como error_during_execution.

permissions.disableBypassPermissionsMode

Impeça que qualquer pessoa entre no modo bypassPermissions. Claude Code então rejeita a flag --dangerously-skip-permissions e ignora uma definição de agente permissionMode: bypassPermissions, portanto o subagente é executado com o modo de permissão da sessão pai.
  • Escopo: Any file. Normalmente definido em configurações gerenciadas para aplicar a política organizacional.
  • Tipo: a string "disable"
  • Padrão: não definido
  • Substituições por sessão: esta chave tem precedência sobre --dangerously-skip-permissions, que Claude Code rejeita enquanto a chave está definida
settings.json
Antes da v2.1.223, Claude Code aplicava o modo de permissão do frontmatter mesmo com bypass desativado.

skipAutoPermissionPrompt

Pule o aviso único descrevendo o modo automático que Claude Code mostra quando você entra no modo automático pela primeira vez, por exemplo através de suas próprias configurações ou do seletor de modo, em vez de quando o padrão integrado inicia uma sessão nele. Claude Code mostra esse aviso uma vez e depois registra que foi mostrado, portanto esta chave só importa onde o aviso ainda não apareceu.
  • Escopo: User or managed. Um repositório não pode defini-lo para você.
  • Tipo: Booleano
    • true: Claude Code pula o aviso
    • false: o mesmo que não definido; o aviso aparece uma vez a menos que outro desses arquivos defina true
  • Padrão: não definido, portanto o aviso aparece uma vez
settings.json

skipDangerousModePermissionPrompt

Pule o diálogo de confirmação que Claude Code mostra antes de uma sessão entrar no modo bypassPermissions, seja de --dangerously-skip-permissions ou de defaultMode: "bypassPermissions". Claude Code escreve true aqui em suas configurações de usuário quando você aceita esse diálogo uma vez.
  • Escopo: User, local, or managed, e arquivos passados com --settings. Sessões em segundo plano consideram apenas configurações de usuário e gerenciadas. Um repositório não confiável não pode pular o diálogo para você.
  • Tipo: Booleano
    • true: Claude Code pula o diálogo de confirmação antes de uma sessão entrar no modo bypassPermissions
    • false: o mesmo que não definido; o diálogo aparece a menos que outro desses arquivos defina true
  • Padrão: não definido, portanto o diálogo aparece
settings.json

Configurações de sandbox

Isole os comandos que Claude executa do seu sistema de arquivos, da sua rede e das suas credenciais. Para saber como o sandboxing funciona e os requisitos de plataforma, consulte Sandboxing.

sandbox

Isole os comandos Bash que Claude executa do seu sistema de arquivos e rede com sandboxing. Ative o sandbox com enabled, depois restrinja ou amplie o que os comandos em sandbox podem acessar com os sub-objetos filesystem, network e credentials. O sandbox é executado em macOS, Linux e WSL2.
  • Scope: Any file
  • Tipo: objeto com enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, allowNestedUserNamespaces, bwrapPath, socatPath, ignoreViolations e ripgrep, além dos objetos filesystem, network e credentials
  • Default: não definido, então Claude Code executa comandos sem sandbox
Isso ativa o sandbox, ignora prompts de permissão para comandos em sandbox, executa docker fora do sandbox, abre dois caminhos de escrita extras, oculta seu arquivo de credenciais AWS e pré-autoriza GitHub e npm:
settings.json
Quando as configurações gerenciadas definem uma chave booleana como enabled ou failIfUnavailable, esse valor sobrescreve qualquer coisa que um desenvolvedor defina. Claude Code mescla chaves de array em todos os escopos de configurações que a sessão carrega, então um desenvolvedor pode anexar entradas; consulte Keep developers from widening the policy para os bloqueios somente gerenciados. Para exigir o sandbox para uma organização, consulte Enforce sandboxing with managed settings.

sandbox.enabled

Ative sandboxing para comandos Bash. Quando você escolhe um modo no painel /sandbox, Claude Code escreve essa chave em .claude/settings.local.json para o projeto atual; defina-a em ~/.claude/settings.json para fazer sandbox em todos os projetos.
settings.json
No Linux e WSL2, o sandbox precisa de bubblewrap e socat; consulte Set up Linux and WSL2. Quando o sandbox não consegue iniciar, Claude Code executa comandos sem sandbox, a menos que você também defina failIfUnavailable.

sandbox.failIfUnavailable

Faz o Claude Code encerrar com um erro na inicialização quando sandbox.enabled é true, mas o sandbox não consegue iniciar porque a plataforma não oferece suporte a ele ou a verificação de dependências falha. Sem esta chave, o Claude Code executa os comandos fora do sandbox. Implantações gerenciadas que exigem sandboxing como barreira de segurança podem usar esta configuração. Em uma plataforma que o sandbox não suporta, Claude Code não inicia com essa chave ativada. Consulte Enforce sandboxing with managed settings.
  • Scope: Any file, com limites em configurações de projeto e locais
  • Tipo: booleano
    • true: o Claude Code encerra com um erro na inicialização quando sandbox.enabled é true, mas o sandbox não consegue iniciar. Se o sandbox passar nessa verificação e depois falhar ao inicializar, a sessão continua em execução e o Claude Code recusa cada comando no sandbox
    • false: o Claude Code executa os comandos fora do sandbox quando o sandbox não consegue iniciar
  • Default: false
Isto ativa o sandbox nas máquinas gerenciadas e define failIfUnavailable como true:
managed-settings.json
Consulte Enforce sandboxing with managed settings.

sandbox.autoAllowBashIfSandboxed

Permite que o Claude Code execute comandos Bash em sandbox sem um prompt de permissão. Comandos que não podem ser executados no sandbox ainda passam pelo fluxo normal de permissões, e as regras deny e as regras ask com escopo de conteúdo, como Bash(git push *), continuam valendo; uma regra ask Bash simples é ignorada para comandos em sandbox. Defina como false para que os comandos em sandbox também passem pelo fluxo normal de permissões, o que a aba Mode do /sandbox chama de modo de permissões normais.
  • Scope: Any file
  • Type: Boolean
    • true: Claude Code executa comandos Bash em sandbox sem um prompt de permissão, exceto nos casos que Auto-allow mode descreve; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB desativa a auto-autorização
    • false: comandos em sandbox passam pelo fluxo de permissão regular, então suas regras de autorização e modo de permissão decidem. A aba Mode do /sandbox chama isso modo de permissões regular
  • Default: true
Isso mantém o sandbox ativado e envia comandos em sandbox pelo fluxo de permissão regular:
settings.json
Consulte Auto-allow mode para saber o que o modo auto-autorização ainda solicita e como se comporta em modo de planejamento.

sandbox.excludedCommands

Nomeie comandos que Claude Code executa fora do sandbox, como ferramentas que não funcionam sob ele. Cada entrada usa a mesma sintaxe do conteúdo de uma regra de permissão Bash(...): um comando exato, um prefixo como docker * ou um padrão curinga. Um padrão sem curinga é uma correspondência exata, então docker corresponde apenas a docker sem argumentos. Suas entradas tiram uma chamada Bash do sandbox apenas quando cobrem cada comando nela, e algumas formas de chamada permanecem em sandbox mesmo assim. Uma entrada docker * sozinha não tira npm ci && docker build . do sandbox.
settings.json
Claude Code mantém uma chamada Bash em sandbox quando ela tem uma destas formas, entre outras:
  • Um comando começando com sudo, eval ou xargs
  • Um cd, pushd ou popd, onde quer que apareça na chamada
  • Uma substituição de comando, um subshell ou um bloco de fluxo de controle como if ou for
  • Um redirecionamento, como docker build . > build.log ou um heredoc <<EOF, exceto um que apenas duplica um descritor de arquivo, como 2>&1 faz
  • Um nome de comando que vem de uma variável
  • Um git clone, git init, git worktree add, git worktree move ou git bundle create com um argumento de caminho que é absoluto, começa com ~ ou contém um segmento ..
Por exemplo, cd build && docker compose up permanece em sandbox sob uma entrada docker *, e adicionar uma entrada cd não muda isso. Sob uma entrada git *, git clone <url> vendor/lib é executado fora do sandbox, mas git clone <url> ~/tools permanece em sandbox. Um clone escreve uma árvore inteira de arquivos, possivelmente executáveis, onde quer que seu caminho de destino aponte. Comandos excluídos ainda passam pelo fluxo de permissão regular. Exclusão é uma conveniência, não uma barreira de segurança: quando uma ferramenta só precisa escrever em algum lugar específico, filesystem.allowWrite a mantém em sandbox. Entradas dos escopos de configurações que a sessão carrega se combinam em uma única lista, a menos que o sandbox seja exigido pelo administrador. Enquanto for, Claude Code ignora entradas em .claude/settings.json e .claude/settings.local.json, para que um repositório clonado não possa tirar comandos do sandbox. Entradas em configurações gerenciadas, --settings e seu ~/.claude/settings.json ainda se aplicam, e nenhum bloqueio somente gerenciado cobre essa lista.

sandbox.allowUnsandboxedCommands

Deixe Claude tentar novamente um comando fora do sandbox com o parâmetro dangerouslyDisableSandbox depois que o sandbox o bloqueia. Quando é false, Claude Code ignora esse parâmetro. Enquanto o sandbox está em execução, os comandos que Claude executa ficam então em sandbox, a menos que correspondam a uma entrada de excludedCommands. A aba Overrides do /sandbox mostra esse estado como Strict sandbox mode. Um false em configurações gerenciadas ativa o modo de sandbox rigoroso para os desenvolvedores que elas cobrem.
  • Scope: Any file, com um limite em configurações de projeto e locais
  • Type: Boolean
    • true: Claude pode tentar novamente um comando fora do sandbox com o parâmetro dangerouslyDisableSandbox depois que o sandbox o bloqueia
    • false: Claude Code ignora esse parâmetro, então, enquanto o sandbox está em execução, os comandos que Claude executa ficam em sandbox, a menos que correspondam a uma entrada de excludedCommands
  • Default: true
Isso impõe modo de sandbox rigoroso para todos que as configurações gerenciadas cobrem:
managed-settings.json