OAuth
OpenClaw supporta la “subscription auth” tramite OAuth per i provider che la offrono (in particolare OpenAI Codex (ChatGPT OAuth)). Per Anthropic, la distinzione pratica ora è:- Chiave API Anthropic: normale fatturazione API Anthropic
- Autenticazione Anthropic Claude CLI / subscription auth dentro OpenClaw: lo staff di Anthropic ci ha detto che questo utilizzo è di nuovo consentito
- come funziona lo scambio dei token OAuth (PKCE)
- dove vengono archiviati i token (e perché)
- come gestire più account (profili + override per sessione)
Il sink dei token (perché esiste)
I provider OAuth spesso emettono un nuovo refresh token durante i flussi di login/refresh. Alcuni provider (o client OAuth) possono invalidare i refresh token meno recenti quando ne viene emesso uno nuovo per lo stesso utente/app. Sintomo pratico:- fai login tramite OpenClaw e tramite Claude Code / Codex CLI → uno dei due in seguito viene “disconnesso” in modo apparentemente casuale
auth-profiles.json come un sink dei token:
- il runtime legge le credenziali da un unico posto
- possiamo mantenere più profili e instradarli in modo deterministico
- quando le credenziali vengono riutilizzate da una CLI esterna come Codex CLI, OpenClaw le rispecchia con provenienza e rilegge quella sorgente esterna invece di ruotare direttamente il proprio refresh token
Archiviazione (dove vivono i token)
I segreti vengono archiviati per agente:- Profili di autenticazione (OAuth + chiavi API + ref opzionali a livello di valore):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - File di compatibilità legacy:
~/.openclaw/agents/<agentId>/agent/auth.json(le voci staticheapi_keyvengono ripulite quando rilevate)
~/.openclaw/credentials/oauth.json(importato inauth-profiles.jsonal primo utilizzo)
$OPENCLAW_STATE_DIR (override della directory di stato). Riferimento completo: /gateway/configuration
Per i ref statici dei segreti e il comportamento di attivazione degli snapshot a runtime, vedi Gestione dei segreti.
Compatibilità legacy dei token Anthropic
OpenClaw espone anche setup-token di Anthropic come percorso supportato di autenticazione tramite token, ma ora preferisce il riutilizzo di Claude CLI eclaude -p quando disponibili.
Migrazione ad Anthropic Claude CLI
OpenClaw supporta di nuovo il riutilizzo di Anthropic Claude CLI. Se hai già un login Claude locale sull’host, onboarding/configure può riutilizzarlo direttamente.Scambio OAuth (come funziona il login)
I flussi di login interattivi di OpenClaw sono implementati in@mariozechner/pi-ai e collegati ai wizard/comandi.
Anthropic setup-token
Forma del flusso:- avvia Anthropic setup-token o paste-token da OpenClaw
- OpenClaw archivia la credenziale Anthropic risultante in un profilo di autenticazione
- la selezione del modello rimane su
anthropic/... - i profili di autenticazione Anthropic esistenti restano disponibili per rollback/controllo dell’ordine
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth è esplicitamente supportato per l’uso al di fuori di Codex CLI, inclusi i workflow OpenClaw. Forma del flusso (PKCE):- genera verifier/challenge PKCE +
statecasuale - apri
https://auth.openai.com/oauth/authorize?... - prova a catturare il callback su
http://127.0.0.1:1455/auth/callback - se il callback non può fare bind (o sei in remoto/headless), incolla l’URL di redirect/il codice
- esegui lo scambio su
https://auth.openai.com/oauth/token - estrai
accountIddal token di accesso e archivia{ access, refresh, expires, accountId }
openclaw onboard → scelta di autenticazione openai-codex.
Refresh + scadenza
I profili archiviano un timestampexpires.
A runtime:
- se
expiresè nel futuro → usa il token di accesso archiviato - se è scaduto → esegui il refresh (sotto file lock) e sovrascrivi le credenziali archiviate
- eccezione: le credenziali riutilizzate da CLI esterne restano gestite esternamente; OpenClaw rilegge l’archivio di autenticazione della CLI e non usa mai direttamente il refresh token copiato
Più account (profili) + routing
Due modelli:1) Preferito: agenti separati
Se vuoi che “personale” e “lavoro” non interagiscano mai, usa agenti isolati (sessioni + credenziali + workspace separati):2) Avanzato: più profili in un agente
auth-profiles.json supporta più ID profilo per lo stesso provider.
Scegli quale profilo usare:
- globalmente tramite l’ordinamento di configurazione (
auth.order) - per sessione tramite
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(mostraauth[])
- /concepts/model-failover (regole di rotazione + cooldown)
- /tools/slash-commands (superficie dei comandi)
Correlati
- Autenticazione — panoramica dell’autenticazione dei provider di modelli
- Segreti — archiviazione delle credenziali e SecretRef
- Riferimento alla configurazione — chiavi di configurazione dell’autenticazione