- Anthropic API-sleutel: normale facturering voor de Anthropic API
- Anthropic Claude CLI / abonnementsauthenticatie binnen OpenClaw: Anthropic-medewerkers hebben ons verteld dat dit gebruik weer is toegestaan
openai. Oudere openai-codex:*-profiel-id’s en
auth.order.openai-codex-items zijn legacy-status die wordt gerepareerd door
openclaw doctor --fix; gebruik openai:*-profiel-id’s en auth.order.openai voor
nieuwe configuratie.
Voor Anthropic in productie is API-sleutel-authenticatie het veiliger aanbevolen pad.
Deze pagina legt uit:
- hoe de OAuth-tokenuitwisseling werkt (PKCE)
- waar tokens worden opgeslagen (en waarom)
- hoe je meerdere accounts beheert (profielen + overrides per sessie)
De tokenopvang (waarom die bestaat)
OAuth-providers geven vaak een nieuw refresh token uit tijdens login-/refresh-flows. Sommige providers (of OAuth-clients) kunnen oudere refresh tokens ongeldig maken wanneer er een nieuwe wordt uitgegeven voor dezelfde gebruiker/app. Praktisch symptoom:- je logt in via OpenClaw en via Claude Code / Codex CLI → een van beide wordt later willekeurig “uitgelogd”
auth-profiles.json als een tokenopvang:
- de runtime leest credentials uit één plek
- we kunnen meerdere profielen behouden en ze deterministisch routeren
- hergebruik van externe CLI is providerspecifiek: Codex CLI kan een leeg
openai:default-profiel initialiseren, maar zodra OpenClaw een lokaal OAuth-profiel heeft, is het lokale refresh token canoniek. Als dat lokale refresh token wordt geweigerd, meldt OpenClaw het beheerde profiel voor herauthenticatie in plaats van Codex CLI-tokenmateriaal te gebruiken als sibling-runtime-fallback. Andere integraties kunnen extern beheerd blijven en hun CLI-auth-store opnieuw inlezen - status- en opstartpaden die de geconfigureerde providerset al kennen, beperken externe CLI-detectie tot die set, zodat een niet-gerelateerde CLI-login-store niet wordt onderzocht voor een setup met één provider
Opslag (waar tokens staan)
Geheimen worden opgeslagen in auth-stores van agents:- Auth-profielen (OAuth + API-sleutels + optionele refs op waardeniveau):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Legacy-compatibiliteitsbestand:
~/.openclaw/agents/<agentId>/agent/auth.json(statischeapi_key-items worden verwijderd wanneer ze worden ontdekt)
~/.openclaw/credentials/oauth.json(bij eerste gebruik geïmporteerd inauth-profiles.json)
$OPENCLAW_STATE_DIR (override voor state-dir). Volledige referentie: /gateway/configuration
Voor statische secret-refs en het gedrag voor runtime-snapshotactivatie, zie Geheimenbeheer.
Wanneer een secundaire agent geen lokaal auth-profiel heeft, gebruikt OpenClaw read-through-
overerving vanuit de standaard-/hoofd-agent-store. Het kloont de
auth-profiles.json van de hoofd-agent niet bij het lezen. OAuth-refresh tokens zijn extra
gevoelig: normale kopieerflows slaan ze standaard over omdat sommige providers refresh tokens
na gebruik roteren of ongeldig maken. Configureer een aparte OAuth-login voor een
agent wanneer die een onafhankelijk account nodig heeft.
Compatibiliteit met legacy Anthropic-tokens
OpenClaw stelt Anthropic setup-token ook beschikbaar als ondersteund token-authenticatiepad, maar geeft nu de voorkeur aan hergebruik van Claude CLI enclaude -p wanneer beschikbaar.
Migratie van Anthropic Claude CLI
OpenClaw ondersteunt hergebruik van Anthropic Claude CLI weer. Als je al een lokale Claude-login op de host hebt, kan onboarding/configure die direct hergebruiken.OAuth-uitwisseling (hoe login werkt)
De interactieve login-flows van OpenClaw zijn geïmplementeerd inopenclaw/plugin-sdk/llm en gekoppeld aan de wizards/commands.
Anthropic setup-token
Flowvorm:- start Anthropic setup-token of paste-token vanuit OpenClaw
- OpenClaw slaat de resulterende Anthropic-credential op in een auth-profiel
- modelselectie blijft op
anthropic/... - bestaande Anthropic-auth-profielen blijven beschikbaar voor rollback-/volgordebeheer
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth wordt expliciet ondersteund voor gebruik buiten de Codex CLI, inclusief OpenClaw-workflows. De login-command gebruikt nog steeds de canonieke OpenAI-provider-id:--profile-id openai:<name> voor meerdere ChatGPT/Codex OAuth-accounts in
één agent. Gebruik geen openai-codex:<name> voor nieuwe profielen. Doctor migreert
dat oudere prefix naar een botsingsvrije openai:*-profiel-id; voer
openclaw models auth list --provider openai uit na reparatie voordat je
profiel-id’s kopieert naar auth.order of /model ...@<profileId>.
Flowvorm (PKCE):
- genereer PKCE-verifier/challenge + willekeurige
state - open
https://auth.openai.com/oauth/authorize?... - probeer de callback op te vangen op
http://127.0.0.1:1455/auth/callback - als de callback niet kan binden (of je werkt remote/headless), plak dan de redirect-URL/code
- wissel uit bij
https://auth.openai.com/oauth/token - haal
accountIduit het access token en sla{ access, refresh, expires, accountId }op
openclaw onboard → auth-keuze openai.
Refresh + verlopen
Profielen slaan eenexpires-timestamp op.
Tijdens runtime:
- als
expiresin de toekomst ligt → gebruik het opgeslagen access token - als het is verlopen → refresh (onder een file lock) en overschrijf de opgeslagen credentials
- als een secundaire agent een overgeërfd OAuth-profiel van de hoofd-agent leest, schrijft refresh terug naar de hoofd-agent-store in plaats van het refresh token te kopiëren naar de store van de secundaire agent
- uitzondering: sommige externe CLI-credentials blijven extern beheerd; OpenClaw
leest die CLI-auth-stores opnieuw in in plaats van gekopieerde refresh tokens te gebruiken.
Codex CLI-bootstrap is bewust nauwer: het kan alleen een leeg
openai:defaultof expliciet aangevraagd OpenAI-profiel seed-en voordat OpenClaw eigenaar is van OAuth voor de provider. Daarna houden door OpenClaw beheerde refreshes lokale profielen canoniek en voegt detectie geen Codex CLI-auth toe in een sibling- slot. Als een beheerde refresh mislukt, meldt OpenClaw het getroffen profiel voor herauthenticatie in plaats van extern CLI-tokenmateriaal terug te geven.
Meerdere accounts (profielen) + routering
Twee patronen:1) Voorkeur: aparte agents
Als je wilt dat “persoonlijk” en “werk” nooit met elkaar interageren, gebruik dan geïsoleerde agents (aparte sessies + credentials + workspace):2) Geavanceerd: meerdere profielen in één agent
auth-profiles.json ondersteunt meerdere profiel-ID’s voor dezelfde provider.
Kies welk profiel wordt gebruikt:
- globaal via configuratievolgorde (
auth.order) - per sessie via
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(toontauth[])
- Model-failover (rotatie- + cooldownregels)
- Slash commands (command-oppervlak)
Gerelateerd
- Authenticatie - overzicht van authenticatie voor modelproviders
- Geheimen - credentialopslag en SecretRef
- Configuratiereferentie - auth-configuratiesleutels