O Claude Code não sabe que a Atlasberg existe. Ele só acha que a API da Anthropic mora em outro endereço. O mesmo truque vale para Cursor, Codex, Gemini CLI e todos os SDKs oficiais.
Sua ferramenta (Continua falando o protocolo nativo dela.) -> Base URL (Aponta para a rota drop-in correspondente no gateway.) -> Chave virtual (Entra onde ia a chave do provedor. Ou um token pessoal, com SSO.). Duas configurações por ferramenta. Nada mais muda: mesmos comandos, mesmos modelos, mesmo streaming.
Você precisa de uma chave virtual (começa com sk-atlas-) ou, se a sua empresa habilitou o login único para o terminal, de um token pessoal emitido pelo comando atlasberg login. Pergunte ao administrador qual dos dois vale; o Tutorial 3 cobre o caminho do SSO.
Na primeira execução o Claude Code pergunta se quer usar a chave da variável em vez de fazer login na Anthropic. Confirme uma vez. A alternativa ANTHROPIC_AUTH_TOKEN também funciona, porque o gateway aceita Authorization: Bearer sk-atlas-....
Modelo: Se a empresa quiser fixar o modelo, use a regra global de roteamento do Tutorial 1. A variável ANTHROPIC_MODEL no bloco env também funciona, mas a regra no gateway vale para todos os clientes de uma vez e não depende de ninguém respeitar a variável.
O Claude Code monta ANTHROPIC_BASE_URL + /v1/messages, que cai em /anthropic/v1/messages. Essa rota já responde messages com streaming, count_tokens e models, que é tudo que ele usa. A chave vai no header x-api-key e o gateway a reconhece como virtual pelo prefixo. O modelo claude-sonnet-5 sem prefixo é resolvido pelo catálogo.
O Claude Code lê um arquivo de configuração gerenciada que a organização controla e o usuário não consegue sobrescrever. O MDM ou o script de onboarding grava este arquivo:
A opção A lê a chave virtual que o provisionamento deixou na máquina. A opção B, para empresas com SSO no terminal, pede o token pessoal à CLI atlasberg. As duas imprimem uma linha e saem.
Abre o terminal, roda claude, funciona. Se tentar usar a chave pessoal ou apontar para a Anthropic direto, o firewall corta. Se estourar o orçamento, o corte suave degrada para o modelo mais barato permitido em vez de negar.
# base URL aponta para a rota drop-in Anthropic do gateway
export ANTHROPIC_BASE_URL=https://llm.empresa.com/anthropic
# a chave virtual entra no lugar da chave da Anthropic
export ANTHROPIC_API_KEY=sk-atlas-...$ claude
Detected a custom API key in your environment (ANTHROPIC_API_KEY).
Do you want to use this API key? › Yes
✓ Connected. Model: claude-sonnet-5{
"env": {
"ANTHROPIC_BASE_URL": "https://llm.empresa.com/anthropic",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"apiKeyHelper": "/usr/local/bin/atlasberg-credential"
}#!/bin/sh
# Linux: arquivo gravado pelo onboarding, dono = usuário, modo 0400
if [ -r "$HOME/.config/atlasberg/virtual-key" ]; then
cat "$HOME/.config/atlasberg/virtual-key"
exit 0
fi
# macOS: item no Keychain gravado pelo MDM
security find-generic-password -s atlasberg-virtual-key -w 2>/dev/null{
"env": { "ANTHROPIC_BASE_URL": "https://llm.empresa.com/anthropic" },
"apiKeyHelper": "atlasberg key-helper"
}Em Settings > Models, cole a chave virtual no campo de API key da OpenAI e marque Override OpenAI Base URL com:
A rota /cursor existe porque o Cursor envia um payload híbrido de Responses API para o endpoint de chat completions. O gateway converte nos dois sentidos. Adicione os modelos que o time pode usar na lista de modelos customizados, com o mesmo nome que está no catálogo.
Atenção: Em várias configurações o Cursor faz a chamada a partir dos servidores dele, não da máquina do usuário. Nesse caso llm.empresa.com precisa ser alcançável da internet, e a chave virtual passa a ser a única proteção. Confirme o comportamento na documentação da versão em uso antes de expor o gateway.
https://llm.empresa.com/cursor/v1Para pedir um modelo de outro provedor pela rota OpenAI, use o prefixo: anthropic/claude-sonnet-5.
export OPENAI_BASE_URL=https://llm.empresa.com/openai/v1
export OPENAI_API_KEY=sk-atlas-...from anthropic import Anthropic
client = Anthropic(
base_url="https://llm.empresa.com/anthropic",
api_key="sk-atlas-...",
)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://llm.empresa.com/anthropic",
apiKey: "sk-atlas-...",
});export GOOGLE_GEMINI_BASE_URL=https://llm.empresa.com/genai
export GEMINI_API_KEY=sk-atlas-...Aplicações internas podem usar o formato OpenAI na raiz e escolher o provedor pelo prefixo do modelo. Um único cliente, todos os provedores:
curl -s https://llm.empresa.com/v1/chat/completions \
-H "Authorization: Bearer sk-atlas-..." \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-sonnet-5","messages":[{"role":"user","content":"Olá"}]}'Se preferir delegar, cole o prompt abaixo no Claude Code ou em outro agente de IA com acesso ao terminal. Ele foi escrito para perguntar tudo o que precisa antes de mexer em qualquer coisa, mostrar um plano, esperar a sua confirmação e só então executar. Ele nunca pede o valor de uma chave de provedor e nunca grava segredo em arquivo do repositório.
Troque a chave virtual por um token pessoal emitido depois do login corporativo. Nenhuma chave no laptop.
Como a infraestrutura publica o gateway, bloqueia a saída direta e cria times e chaves.
Você vai configurar a minha estação de trabalho para que as minhas ferramentas de IA passem pelo gateway Atlasberg da empresa, seguindo https://atlasberg.com/docs/tutoriais/conectar-claude-code. Não invente nada: pergunte o que falta.
Antes de mexer em qualquer arquivo, me pergunte, uma pergunta por vez:
1. A URL do gateway (exemplo: https://llm.empresa.com).
2. Como eu me autentico: (a) tenho uma chave virtual que começa com sk-atlas-, ou (b) a empresa usa login único pelo terminal com a CLI atlasberg. Se for (b), pare aqui e me mande para o tutorial https://atlasberg.com/docs/tutoriais/login-por-dispositivo, que tem o prompt certo.
3. Se for chave: onde ela está. Num arquivo, no Keychain, ou vou colar agora. Se eu colar, grave em ~/.config/atlasberg/virtual-key com permissão 0400, não mostre a chave de volta e não a coloque em nenhum outro arquivo.
4. Quais ferramentas eu uso: Claude Code, Cursor, Codex CLI, Continue, Cline, Aider, Gemini CLI, SDK da Anthropic, SDK da OpenAI, SDK do Google.
5. Meu sistema (macOS, Linux, WSL ou Windows) e meu shell (bash, zsh, fish, PowerShell).
6. Se esta é a minha máquina pessoal de trabalho (configurar no meu perfil de shell) ou se estou preparando uma configuração gerenciada pela empresa para todas as estações (arquivo managed-settings.json do Claude Code, que exige privilégio de administrador).
7. Se o gateway usa certificado de CA corporativa e, se sim, o caminho do PEM da CA.
Depois, mostre o que vai escrever e onde, e peça confirmação. Só então faça:
a) Claude Code: exporte ANTHROPIC_BASE_URL=<gateway>/anthropic. Para a chave, crie o script /usr/local/bin/atlasberg-credential (ou ~/.local/bin/atlasberg-credential sem sudo) que imprime a chave lendo ~/.config/atlasberg/virtual-key ou o Keychain, e aponte apiKeyHelper para ele. Na configuração gerenciada, grave o arquivo no caminho do sistema (macOS: /Library/Application Support/ClaudeCode/managed-settings.json; Linux e WSL: /etc/claude-code/managed-settings.json; Windows: C:\ProgramData\ClaudeCode\managed-settings.json) com o bloco env contendo ANTHROPIC_BASE_URL e CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 e o apiKeyHelper. Na máquina pessoal, ponha as variáveis no meu perfil de shell e o apiKeyHelper em ~/.claude/settings.json.
b) Cursor: me diga exatamente o que colar em Settings > Models: a chave no campo OpenAI API Key e <gateway>/cursor/v1 em Override OpenAI Base URL. Isso é manual, não tente automatizar.
c) Codex, Continue, Cline, Aider e SDK OpenAI: OPENAI_BASE_URL=<gateway>/openai/v1 e OPENAI_API_KEY=<chave>.
d) Gemini CLI e SDK Google: GOOGLE_GEMINI_BASE_URL=<gateway>/genai e GEMINI_API_KEY=<chave>.
e) SDK Anthropic: mostre o trecho de código com base_url=<gateway>/anthropic.
f) Se a CA for corporativa: NODE_EXTRA_CA_CERTS apontando para o PEM, no mesmo lugar das outras variáveis.
g) Teste, mostrando só o resumo: GET <gateway>/health; POST <gateway>/anthropic/v1/messages com a chave no header x-api-key, anthropic-version 2023-06-01, modelo claude-sonnet-5 e max_tokens 32; GET <gateway>/api/governance/virtual-keys/quota com x-atlasberg-vk. Se der 401 virtual_key_required, 401 virtual_key_not_found, 403 de modelo, 400 de provedor ou erro de certificado, explique o que significa segundo a tabela do tutorial e o que eu preciso pedir ao administrador.
h) Abra uma nova sessão de shell e confirme que as variáveis estão carregadas. Diga que na primeira execução do Claude Code ele vai perguntar se quer usar a chave da variável, e que a resposta é sim.
Regras: nunca imprima a chave completa; ao citá-la, use sk-atlas-... Não configure chave direta de provedor. Não desabilite a verificação de certificado.A Atlasberg Platform é a camada de controle entre uma empresa e todos os modelos de IA: cada requisição é autenticada com uma chave virtual, filtrada por política e DLP, roteada para o provedor certo e gravada numa trilha de auditoria encadeada por hash. Expõe uma API compatível com a OpenAI, então as aplicações só trocam a URL base.
O mesmo artefato roda na Atlasberg Cloud, na sua VPC, on-premises ou totalmente air-gapped, e é cobrado por capacidade e módulos, nunca por assento.
Esta página faz parte da documentação oficial. Para falar com o time de engenharia, escreva para [email protected] ou use https://atlasberg.com/pt-br/contato. A resposta vem em até um dia útil.
Agentes: esta página também está disponível em Markdown em /pt-br/docs/tutoriais/conectar-claude-code.md, ou pedindo esta URL com o cabeçalho Accept: text/markdown. Índice de tudo: /llms.txt.