Fundamentals
OAuth
OpenClaw oferece suporte a "autenticação por assinatura" via OAuth para provedores que a disponibilizam (em especial OpenAI Codex (ChatGPT OAuth)). Para a Anthropic, a divisão prática agora é:
- Chave de API da Anthropic: cobrança normal da API da Anthropic
- Anthropic Claude CLI / autenticação por assinatura dentro do OpenClaw: a equipe da Anthropic nos informou que esse uso voltou a ser permitido
O OAuth do OpenAI Codex é explicitamente compatível com uso em ferramentas externas como OpenClaw. Esta página explica:
Para a Anthropic em produção, autenticação por chave de API é o caminho recomendado mais seguro.
- como a troca de tokens OAuth funciona (PKCE)
- onde os tokens são armazenados (e por quê)
- como lidar com várias contas (perfis + substituições por sessão)
O OpenClaw também oferece suporte a Plugins de provedor que trazem seus próprios fluxos de OAuth ou chave de API. Execute-os com:
openclaw models auth login --provider <id>
O coletor de tokens (por que existe)
Provedores OAuth normalmente emitem um novo token de atualização durante fluxos de login/atualização. Alguns provedores (ou clientes OAuth) podem invalidar tokens de atualização antigos quando um novo é emitido para o mesmo usuário/app.
Sintoma prático:
- você faz login pelo OpenClaw e pelo Claude Code / Codex CLI → um deles acaba "deslogado" aleatoriamente depois
Para reduzir isso, o OpenClaw trata auth-profiles.json como um coletor de tokens:
- o runtime lê credenciais de um único lugar
- podemos manter vários perfis e roteá-los de forma determinística
- a reutilização de CLI externa é específica por provedor: o Codex CLI pode inicializar um perfil
openai-codex:defaultvazio, mas depois que o OpenClaw tem um perfil OAuth local, o token de atualização local é canônico; outras integrações podem permanecer gerenciadas externamente e reler o armazenamento de autenticação da CLI - caminhos de status e inicialização que já conhecem o conjunto de provedores configurado limitam a descoberta de CLI externa a esse conjunto, para que um armazenamento de login de CLI não relacionado não seja consultado em uma configuração de provedor único
Armazenamento (onde os tokens ficam)
Segredos são armazenados nos armazenamentos de autenticação do agente:
- Perfis de autenticação (OAuth + chaves de API + referências opcionais em nível de valor):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Arquivo de compatibilidade legado:
~/.openclaw/agents/<agentId>/agent/auth.json(entradas estáticas deapi_keysão limpas quando descobertas)
Arquivo legado somente para importação (ainda compatível, mas não é o armazenamento principal):
~/.openclaw/credentials/oauth.json(importado paraauth-profiles.jsonno primeiro uso)
Tudo acima também respeita $OPENCLAW_STATE_DIR (substituição do diretório de estado). Referência completa: /gateway/configuration
Para referências estáticas de segredos e o comportamento de ativação de snapshot em runtime, consulte Gerenciamento de Segredos.
Quando um agente secundário não tem perfil de autenticação local, o OpenClaw usa herança
com leitura indireta a partir do armazenamento do agente padrão/principal. Ele não clona o
auth-profiles.json do agente principal na leitura. Tokens de atualização OAuth são especialmente
sensíveis: fluxos normais de cópia os ignoram por padrão porque alguns provedores rotacionam
ou invalidam tokens de atualização após o uso. Configure um login OAuth separado para um
agente quando ele precisar de uma conta independente.
Compatibilidade com tokens legados da Anthropic
O OpenClaw também expõe o token de configuração da Anthropic como um caminho de autenticação por token compatível, mas agora prefere a reutilização da Claude CLI e claude -p quando disponíveis.
Migração da Anthropic Claude CLI
O OpenClaw voltou a oferecer suporte à reutilização da Anthropic Claude CLI. Se você já tem um login Claude local no host, o onboarding/configure pode reutilizá-lo diretamente.
Troca OAuth (como o login funciona)
Os fluxos de login interativo do OpenClaw são implementados em @mariozechner/pi-ai e conectados aos assistentes/comandos.
Token de configuração da Anthropic
Formato do fluxo:
- inicie o token de configuração ou cole o token da Anthropic pelo OpenClaw
- o OpenClaw armazena a credencial da Anthropic resultante em um perfil de autenticação
- a seleção de modelo permanece em
anthropic/... - perfis de autenticação existentes da Anthropic continuam disponíveis para rollback/controle de ordem
OpenAI Codex (ChatGPT OAuth)
O OAuth do OpenAI Codex é explicitamente compatível com uso fora do Codex CLI, incluindo fluxos de trabalho do OpenClaw.
Formato do fluxo (PKCE):
- gere verificador/desafio PKCE +
statealeatório - abra
https://auth.openai.com/oauth/authorize?... - tente capturar o callback em
http://127.0.0.1:1455/auth/callback - se o callback não conseguir vincular (ou você estiver remoto/headless), cole a URL/código de redirecionamento
- faça a troca em
https://auth.openai.com/oauth/token - extraia
accountIddo token de acesso e armazene{ access, refresh, expires, accountId }
O caminho do assistente é openclaw onboard → opção de autenticação openai-codex.
Atualização + expiração
Os perfis armazenam um timestamp expires.
Em runtime:
- se
expiresestiver no futuro → use o token de acesso armazenado - se expirado → atualize (sob um bloqueio de arquivo) e sobrescreva as credenciais armazenadas
- se um agente secundário ler um perfil OAuth herdado do agente principal, a atualização grava de volta no armazenamento do agente principal em vez de copiar o token de atualização para o armazenamento do agente secundário
- exceção: algumas credenciais de CLI externa permanecem gerenciadas externamente; o OpenClaw
relê esses armazenamentos de autenticação de CLI em vez de gastar tokens de atualização copiados.
A inicialização pelo Codex CLI é intencionalmente mais restrita: ela semeia um perfil
openai-codex:defaultvazio, e então atualizações pertencentes ao OpenClaw mantêm o perfil local como canônico.
O fluxo de atualização é automático; em geral, você não precisa gerenciar tokens manualmente.
Várias contas (perfis) + roteamento
Dois padrões:
1) Preferido: agentes separados
Se você quiser que "pessoal" e "trabalho" nunca interajam, use agentes isolados (sessões + credenciais + workspace separados):
openclaw agents add work
openclaw agents add personal
Depois configure a autenticação por agente (assistente) e roteie conversas para o agente correto.
2) Avançado: vários perfis em um agente
auth-profiles.json aceita vários IDs de perfil para o mesmo provedor.
Escolha qual perfil é usado:
- globalmente via ordenação de configuração (
auth.order) - por sessão via
/model ...@<profileId>
Exemplo (substituição de sessão):
/model Opus@anthropic:work
Como ver quais IDs de perfil existem:
openclaw channels list --json(mostraauth[])
Documentação relacionada:
- Failover de modelo (regras de rotação + cooldown)
- Comandos slash (superfície de comandos)
Relacionados
- Autenticação - visão geral de autenticação do provedor de modelo
- Segredos - armazenamento de credenciais e SecretRef
- Referência de Configuração - chaves de configuração de autenticação