Skip to main content
Variáveis de ambiente podem controlar o comportamento do Claude Code, como seleção de modelo, autenticação, roteamento de requisições e alternâncias de recursos. Muitos dos mesmos comportamentos também podem ser configurados através de um campo de arquivo de configurações, um sinalizador CLI ou um comando em sessão como /model. Esta página aborda como:

Definir variáveis de ambiente

Uma variável que você define no seu shell dura para essa sessão de terminal, enquanto uma variável em um arquivo de configurações se aplica toda vez que claude é executado.

Definir variáveis no seu shell

Defina a variável antes de iniciar claude:
Para defini-la para cada sessão, adicione a linha export a ~/.bashrc, ~/.zshrc, ou ao arquivo de perfil do seu shell.
A linha de atribuição não imprime nada em caso de sucesso. Para confirmar que a variável está definida, imprima-a no mesmo shell:

Definir variáveis em arquivos de configurações

Adicione variáveis sob a chave env em um arquivo settings.json, criando o arquivo se ele não existir. Claude Code as lê diretamente do arquivo, então elas entram em vigor independentemente de como claude foi iniciado. Uma sessão em execução aplica valores novos e alterados ao seu ambiente quando você salva o arquivo, mas um recurso que lê suas variáveis uma vez na inicialização, como monitoramento OpenTelemetry, mantém seus valores de inicialização até que você reinicie. Remover uma variável do arquivo não a desativa em uma sessão em execução; a remoção entra em vigor na próxima vez que você iniciar claude.
~/.claude/settings.json
Claude Code copia esses valores para o seu ambiente exatamente como escritos. Nenhum shell os processa, então abreviações como ~ ou $HOME permanecem como digitadas. Para uma variável que recebe um caminho, como CLAUDE_CONFIG_DIR, escreva o caminho absoluto: "CLAUDE_CONFIG_DIR": "/home/you/.claude-work". O arquivo que você escolhe controla a quem as variáveis se aplicam: Veja Arquivos de configurações para saber onde cada arquivo fica e Precedência de configurações para saber como eles se combinam quando mais de um define a mesma variável.

Precedência

Alguns comportamentos têm tanto uma variável de ambiente quanto uma chave de configurações dedicada, e qual delas Claude Code lê primeiro difere por chave. Para ANTHROPIC_MODEL e CLAUDE_CODE_AUTO_CONNECT_IDE, Claude Code lê a variável primeiro e usa a configuração model ou autoConnectIde apenas quando a variável não está definida. Para o par que você está configurando, verifique a linha da variável abaixo e a entrada da chave na referência de configurações. Quando a mesma variável está definida tanto no seu shell quanto em um bloco env do arquivo de configurações, o valor do arquivo de configurações se aplica na maioria das sessões. Claude Code escreve cada entrada env no ambiente do processo, substituindo o valor herdado do shell. Como os valores env interagem com seu shell cobre as sessões que mantêm o valor herdado em vez disso, e a configuração env diz quando ela se aplica. Algumas variáveis são casos especiais; a configuração env lista as exceções. Em um arquivo de configurações você pode definir uma variável, mas não pode remover uma. Para substituir uma variável que você não pode desativar, como uma CLAUDE_CODE_USE_VERTEX obsoleta exportada por um perfil de shell que você não controla, defina-a como uma string vazia no bloco env: "CLAUDE_CODE_USE_VERTEX": "". Claude Code trata o valor vazio como não definido para seleção de provedor. Subprocessos ainda herdam o valor vazio. Entre arquivos de configurações, os valores env seguem a precedência de configurações, então uma entrada de configurações gerenciada substitui a mesma variável nas configurações de usuário ou projeto. Configurações de projeto e locais não podem definir algumas variáveis, como CLAUDE_CONFIG_DIR e as variáveis do exportador OpenTelemetry. Variáveis que Claude Code ignora em env lista-as, junto com os valores desativados do OpenTelemetry que ainda se aplicam. Como uma variável de ambiente interage com sinalizadores CLI e comandos em sessão varia por recurso: --model e /model substituem ANTHROPIC_MODEL, enquanto CLAUDE_CODE_EFFORT_LEVEL substitui --effort e /effort. Quando uma variável interage com outra fonte de configuração, sua linha na lista Variáveis declara a precedência ou vincula à página que a documenta. Claude Code lê variáveis de ambiente do shell na inicialização, então as alterações nelas entram em vigor na próxima vez que você inicia claude. As variáveis definidas sob a chave env em arquivos de configurações são reaplicadas a uma sessão em execução quando o arquivo muda, com a exceção somente na inicialização descrita em Definir variáveis em arquivos de configurações.

Variáveis

Variáveis numéricas, como timeouts, orçamentos de tokens e contagens de novas tentativas, aceitam notação científica e grafias com separador de dígitos, além de dígitos simples, exceto quando a linha da variável indicar que ela aceita apenas dígitos simples. Por exemplo, o Claude Code lê 2e3 como 2000 e 64_000 como 64000. Antes da v2.1.211, essas grafias podiam definir silenciosamente um valor muito menor, como 1e6 definindo um timeout como 1.
Para variáveis que ativam ou desativam um comportamento, defina 1, true, yes ou on para ativá-lo e 0, false, no ou off para desativá-lo, com qualquer combinação de maiúsculas e minúsculas.Algumas variáveis verificam apenas se você as definiu, de modo que qualquer valor não vazio, incluindo 0, ativa o comportamento, e você desativa o comportamento removendo a variável ou definindo-a com um valor vazio. Estas variáveis funcionam dessa forma:
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • DISABLE_TELEMETRY
  • DISABLE_ERROR_REPORTING
  • CLAUDE_CODE_TMUX_TRUECOLOR
  • FALLBACK_FOR_ALL_PRIMARY_MODELS
  • IS_DEMO
Uma outra variável tem sua própria regra: FORCE_HYPERLINK lê um número, então apenas 0 a desativa. A linha de cada variável também informa sua própria regra.
As variáveis padrão de exportador do OpenTelemetry (OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_HEADERS, OTEL_METRIC_EXPORT_INTERVAL, OTEL_RESOURCE_ATTRIBUTES e variantes específicas de sinal) também são suportadas. Consulte Monitoramento para detalhes de configuração. Defina CLAUDE_CODE_ENABLE_TELEMETRY e as variáveis do OpenTelemetry que ativam a exportação, escolhem seu destino ou capturam conteúdo no seu shell, nas configurações de usuário ou nas configurações gerenciadas. O Claude Code as ignora nas configurações de projeto e locais, exceto pelos valores de desativação descritos nessa seção. OTEL_RESOURCE_ATTRIBUTES e as variáveis de intervalo, timeout e compressão da exportação, como OTEL_METRIC_EXPORT_INTERVAL, ainda se aplicam a partir das configurações de projeto e locais.

O que a limpeza do ambiente de subprocessos remove

Quando você define CLAUDE_CODE_SUBPROCESS_ENV_SCRUB como 1, o Claude Code remove credenciais dos ambientes dos subprocessos que ele inicia, como comandos Bash, hooks e servidores MCP stdio. Isso reduz o que um ataque de injeção de prompt pode ler. O processo do Claude Code mantém as credenciais para suas próprias chamadas de API. A limpeza reconhece uma credencial pelo nome da variável ou pelo formato do seu valor, portanto use-a como uma camada junto com regras de permissão restritas, e não como o único controle. A tabela mostra o que a limpeza faz com variáveis de exemplo: Como a limpeza mantém o GITHUB_TOKEN, conceda a um job do GitHub Actions as permissions mais restritas de que ele precisa. Para remover um token do GitHub de comandos Bash executados em sandbox, adicione uma entrada deny em sandbox.credentials. Deixe a limpeza desativada se um subprocesso precisar de uma das variáveis removidas. No Linux, a limpeza também executa subprocessos Bash em um namespace de PID isolado, para que eles não possam ler os ambientes dos processos do host por meio de /proc. Como efeito colateral, ps, pgrep e kill não conseguem ver nem enviar sinais para processos do host. Antes da v2.1.251, a limpeza removia ANTHROPIC_API_KEY e AWS_SECRET_ACCESS_KEY e deixava inalteradas as demais variáveis de exemplo da tabela.

Recursos que precisam da busca de feature flags

O Claude Code ativa alguns recursos por meio de feature flags que ele busca na Anthropic. O Claude Code ignora essa busca nestas sessões:
  • Uma sessão em que você define DISABLE_GROWTHBOOK, DISABLE_TELEMETRY, DO_NOT_TRACK ou CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC; a linha de cada variável na tabela de variáveis informa quais valores desativam a busca
  • Uma sessão em um provedor de terceiros, como Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud ou Microsoft Foundry, a menos que uma plataforma host que incorpora o Claude Code defina CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST
  • Uma sessão do Claude apps gateway
Com a busca desativada, você não pode:

Primeira sessão após uma instalação ou atualização

Na sua primeira sessão após instalar o Claude Code, ou atualizar para uma versão que adiciona um recurso, um recurso controlado por flag pode estar ausente. Essa sessão também pode iniciar em um modo de permissão diferente do das suas sessões posteriores. Quando o Claude Code busca as flags durante essa sessão, ele as salva na máquina, de modo que sua próxima sessão nessa máquina tenha o recurso e o modo de permissão inicial habitual. Após uma instalação nova, em uma sessão não interativa, como claude -p, o Agent SDK ou a extensão do VS Code, o Claude Code pode obter as flags antes de escolher o modo de permissão inicial, mas nem sempre espera por elas. Em configurações como estas, as sessões após a primeira também iniciam sem flags buscadas recentemente:
  • Um ambiente limpo a cada execução: se cada execução começa em um contêiner de CI, ou em qualquer outro ambiente sem as flags que uma sessão anterior salvou, cada execução é uma primeira sessão
  • Um token de gateway sem chave de API: se você se autentica com ANTHROPIC_AUTH_TOKEN e sem chave de API, e ANTHROPIC_BASE_URL aponta para um host diferente do da Anthropic, como um gateway de LLM, o Claude Code não tem nenhuma credencial com a qual buscar as flags
Para escolher o modo de permissão em que as sessões nessas configurações iniciam, consulte Iniciar em um modo de permissão diferente.

Veja também