Claude Code pedindo login: como fazer ele usar só a chave de API
Com ANTHROPIC_BASE_URL e ANTHROPIC_API_KEY configuradas, o Claude Code não precisa de login na conta da Anthropic: ele usa a sua chave de API. Se ele abre a tela de login mesmo assim, uma das causas abaixo explica quase todos os casos.
As soluções seguem a documentação oficial do Claude Code, conferida na data de atualização deste guia. Se você ainda não configurou nada, comece pelo guia Claude Code em reais.
Primeiro, veja o que o Claude Code recebe
No mesmo terminal onde você vai abrir o claude, confira as duas variáveis. Os comandos abaixo mostram a URL, mas não mostram a chave na tela, o que é bom se você grava a tela ou divide o terminal com alguém.
macOS, Linux e WSL:
echo "$ANTHROPIC_BASE_URL"
[ -n "$ANTHROPIC_API_KEY" ] && echo "chave definida" || echo "chave vazia"
Windows (PowerShell):
$env:ANTHROPIC_BASE_URL
if ($env:ANTHROPIC_API_KEY) { "chave definida" } else { "chave vazia" }
O certo é aparecer https://api.open33.tech e chave definida. Se as variáveis estão no settings.json do Claude Code, e não no terminal, os comandos acima mostram vazio, e está tudo bem: nesse caso, confira pelo /status.
Dentro do Claude Code, o comando /status mostra a URL base em uso e de onde vem a chave. Se ali aparece o login de uma conta do claude.ai em vez da chave, siga as causas abaixo, na ordem.
Causa 1: as variáveis não chegaram ao terminal
Um programa recebe as variáveis de ambiente no momento em que abre. Se você editou a configuração depois de abrir o terminal, ele continua sem elas.
- Editou o
~/.zshrcou o~/.bashrc? Abra um terminal novo. - Usou o
setxno Windows? Ele só vale para janelas abertas depois. Feche o terminal e abra outro. - Usa o terminal integrado do VS Code? Feche o VS Code inteiro e abra de novo. Abrir outra aba do terminal não basta, porque ela herda o ambiente do VS Code.
- Usa bash no macOS? O Terminal do macOS abre o bash como shell de login, que lê o
~/.bash_profilee ignora o~/.bashrc. Coloque osexportno~/.bash_profile. Se o seu shell é o zsh, o padrão do macOS, o arquivo certo é o~/.zshrc.
Para não depender do terminal, coloque as variáveis no arquivo de configuração do seu usuário, ~/.claude/settings.json (no Windows, %USERPROFILE%\.claude\settings.json):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.open33.tech",
"ANTHROPIC_API_KEY": "SUA_CHAVE"
}
}
Se a mesma variável estiver no terminal e no settings.json, vale a do settings.json.
Causa 2: a chave está só no settings.json do projeto
O Claude Code só aplica o bloco env do .claude/settings.json ou do .claude/settings.local.json de um projeto depois da configuração inicial e da pergunta sobre confiar na pasta. Na primeira vez, ele ainda não leu a chave e mostra a tela de login.
A solução é colocar a chave onde o Claude Code lê antes disso: no terminal ou no ~/.claude/settings.json do seu usuário, como na causa 1.
Evite a chave no .claude/settings.json do projeto de qualquer jeito: esse arquivo vai para o Git, e chave em repositório é chave vazada.
Causa 3: você recusou a chave na primeira vez
Quando encontra a ANTHROPIC_API_KEY, o Claude Code pergunta uma vez se deve usar essa chave e guarda a resposta. Se você recusou, ele ignora a chave dali em diante, sem perguntar de novo.
Para voltar atrás:
- Abra o Claude Code com a
ANTHROPIC_API_KEYdefinida. - Digite
/config. - Ative a opção Use custom API key.
Essa opção só aparece quando a variável ANTHROPIC_API_KEY está definida.
Causa 4: existe um login antigo salvo
Se você já entrou com uma conta do claude.ai ou do Console da Anthropic nesse computador, o login fica salvo. Quando a chave não está em uso, por uma das causas acima, o Claude Code volta para esse login e, se ele expirou, pede para você entrar de novo. Com a chave e o login ativos ao mesmo tempo, ele pode avisar na abertura que encontrou duas credenciais e que a autenticação pode não funcionar como esperado.
Para ficar só com a chave, apague o login salvo:
- Dentro do Claude Code, rode
/logout. - Feche o Claude Code.
- Abra de novo com
claudee confirme o uso da chave, se ele perguntar.
O /logout também apaga outras credenciais salvas, como os logins de servidores MCP. Se você usa algum, vai precisar entrar de novo nele.
Causa 5: você usa a extensão do VS Code
A extensão do Claude Code para o VS Code confere as credenciais antes de abrir, e essa conferência não lê o ~/.claude/settings.json. Por isso ela pode pedir login mesmo com o terminal funcionando.
Coloque as variáveis nas configurações do próprio VS Code:
- Abra a paleta de comandos com
Ctrl+Shift+P(Cmd+Shift+Pno macOS). - Escolha Preferences: Open User Settings (JSON).
- Acrescente o bloco abaixo, troque
SUA_CHAVEe salve:
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.open33.tech" },
{ "name": "ANTHROPIC_API_KEY", "value": "SUA_CHAVE" }
]
}
Se o arquivo já tem outras configurações, coloque só a linha "claudeCode.environmentVariables": [...] dentro das chaves que já existem, separada das outras por vírgula. Depois, feche o VS Code e abra de novo.
Causa 6: o computador é da empresa
Empresas podem instalar uma política que obriga o login com a conta da organização. Nesse caso, o Claude Code mostra uma mensagem como "This machine's managed settings require a first-party login" e não aceita chave de API.
Essa política não pode ser desfeita por você, e não vale tentar contornar: fale com a equipe de TI ou use o Claude Code num computador pessoal.
E o app Claude Desktop?
O app Claude Desktop não lê o ANTHROPIC_BASE_URL nem o settings.json do Claude Code. Para usar a sua chave, use o Claude Code no terminal ou na extensão do VS Code.
Teste sem a tela de login
O modo -p responde uma vez e sai, e ele sempre usa a ANTHROPIC_API_KEY quando ela existe, sem pedir confirmação. É um bom jeito de separar os problemas:
claude -p "Responda só com: funcionando"
- Respondeu "funcionando"? A chave e a URL estão certas. O problema é só a sessão interativa: veja as causas 3 e 4.
- Deu erro 401? A chave está errada, vazia ou foi revogada. Copie de novo do painel.
- Deu outro erro? Veja o guia de erros da API do Claude.
Recomece do zero
Se nada acima resolveu, este caminho elimina quase todas as causas de uma vez:
- Dentro do Claude Code, rode
/logoute feche o programa. - Coloque
ANTHROPIC_BASE_URLeANTHROPIC_API_KEYno~/.claude/settings.json, como na causa 1. - Abra um terminal novo e rode
claude. - Se ele perguntar se deve usar a chave, confirme.
- Rode
/statuse confira a URL base e a chave.
No Windows, o passo a passo completo, com os comandos do PowerShell, está no guia Claude Code no Windows.
O que precisa da conta do claude.ai
Alguns recursos do Claude Code dependem de uma conta do claude.ai e ficam indisponíveis com chave de API, como o controle remoto e o ditado por voz. Para programar no terminal, nada disso faz falta. O guia de comandos do Claude Code mostra o que você usa no dia a dia.
Perguntas frequentes
Preciso de conta na Anthropic para usar o Claude Code?
Não, se você usa uma chave de API. Com ANTHROPIC_BASE_URL e ANTHROPIC_API_KEY configuradas, o Claude Code manda as requisições para a URL base com a sua chave, sem login na conta da Anthropic.
Como faço o Claude Code parar de pedir login?
Coloque as duas variáveis no ~/.claude/settings.json do seu usuário, abra um terminal novo e confirme o uso da chave quando o Claude Code perguntar. Se já existe um login salvo, rode /logout antes.
Recusei a chave sem querer. E agora?
Com a ANTHROPIC_API_KEY definida, abra o Claude Code, digite /config e ative a opção Use custom API key.
Como sei se o Claude Code está usando a minha chave?
Rode /status dentro do Claude Code. Ele mostra a URL base em uso e de onde vem a chave. Se aparecer o login de uma conta do claude.ai no lugar, a chave não está sendo usada.
Por que a extensão do VS Code pede login e o terminal não?
Porque a extensão confere as credenciais antes de abrir e não lê o ~/.claude/settings.json. Coloque as variáveis em claudeCode.environmentVariables, nas configurações do VS Code, e reinicie o VS Code.