OAuth
OpenClaw unterstützt „Subscription-Auth“ via OAuth für Anbieter, die dies anbieten (insbesondere OpenAI Codex (ChatGPT OAuth)). Für Anthropic-Abonnements verwenden Sie den setup-token-Flow. Diese Seite erklärt:- wie der OAuth-Token-Austausch funktioniert (PKCE)
- wo Tokens gespeichert werden (und warum)
- wie mehrere Konten gehandhabt werden (Profile + sitzungsbezogene Overrides)
Die Token-Senke (warum sie existiert)
OAuth-Anbieter stellen während Login-/Refresh-Flows häufig ein neues Refresh-Token aus. Einige Anbieter (oder OAuth-Clients) können ältere Refresh-Tokens ungültig machen, wenn für denselben Benutzer/dieselbe App ein neues ausgegeben wird. Praktisches Symptom:- Sie melden sich über OpenClaw und über Claude Code / Codex CLI an → eines davon wird später zufällig „abgemeldet“
auth-profiles.json als Token-Senke:
- die Runtime liest Anmeldedaten aus einer einzigen Quelle
- wir können mehrere Profile vorhalten und deterministisch routen
Speicher (wo Tokens gespeichert werden)
Secrets werden pro Agent gespeichert:- Auth-Profile (OAuth + API-Schlüssel):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Runtime-Cache (automatisch verwaltet; nicht bearbeiten):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(bei der ersten Verwendung inauth-profiles.jsonimportiert)
$OPENCLAW_STATE_DIR (Override des State-Verzeichnisses). Vollständige Referenz: /gateway/configuration
Anthropic Setup-Token (Abonnement-Authentifizierung)
Führen Sieclaude setup-token auf einem beliebigen Rechner aus und fügen Sie es anschließend in OpenClaw ein:
OAuth-Austausch (wie die Anmeldung funktioniert)
Die interaktiven Login-Flows von OpenClaw sind in@mariozechner/pi-ai implementiert und in die Assistenten/Befehle eingebunden.
Anthropic (Claude Pro/Max) Setup-Token
Flussform:- führen Sie
claude setup-tokenaus - fügen Sie das Token in OpenClaw ein
- als Token-Auth-Profil speichern (kein Refresh)
openclaw onboard → Auth-Auswahl setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Ablauf (PKCE):- PKCE-Verifier/Challenge + zufälligen
stateerzeugen https://auth.openai.com/oauth/authorize?...öffnen- versuchen, den Callback auf
http://127.0.0.1:1455/auth/callbackabzufangen - falls der Callback nicht binden kann (oder Sie remote/headless sind), fügen Sie die Redirect-URL/den Code ein
- Austausch bei
https://auth.openai.com/oauth/token accountIdaus dem Access-Token extrahieren und{ access, refresh, expires, accountId }speichern
openclaw onboard → Auth-Auswahl openai-codex.
Aktualisierung + Ablauf
Profile speichern einenexpires-Zeitstempel.
Zur Laufzeit:
- wenn
expiresin der Zukunft liegt → gespeichertes Access-Token verwenden - wenn abgelaufen → Refresh (unter Dateisperre) und Überschreiben der gespeicherten Anmeldedaten
Mehrere Konten (Profile) + Routing
Zwei Muster:1. Bevorzugt: getrennte Agenten
Wenn „privat“ und „geschäftlich“ niemals interagieren sollen, verwenden Sie isolierte Agenten (separate Sitzungen + Anmeldedaten + Workspace):2. Erweitert: mehrere Profile in einem Agenten
auth-profiles.json unterstützt mehrere Profil-IDs für denselben Anbieter.
Wählen Sie, welches Profil verwendet wird:
- global über die Konfigurationsreihenfolge (
auth.order) - pro Sitzung über
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(zeigtauth[])
- /concepts/model-failover (Rotation + Cooldown-Regeln)
- /tools/slash-commands (Befehlsschnittstelle)