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)
OpenClaw unterstützt außerdem Anbieter-Plugins, die ihre eigenen OAuth- oder API‑Schlüssel- Flows mitbringen. Führen Sie diese aus über:
openclaw models auth login --provider <id>
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“
Um dies zu reduzieren, behandelt OpenClaw 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
Legacy-Datei nur zum Import (weiterhin unterstützt, aber nicht der Hauptspeicher):
~/.openclaw/credentials/oauth.json(bei der ersten Verwendung inauth-profiles.jsonimportiert)
All dies berücksichtigt außerdem $OPENCLAW_STATE_DIR (Override des State-Verzeichnisses). Vollständige Referenz: /gateway/configuration
Anthropic Setup-Token (Abonnement-Authentifizierung)¶
Führen Sie claude setup-token auf einem beliebigen Rechner aus und fügen Sie es anschließend in OpenClaw ein:
openclaw models auth setup-token --provider anthropic
Wenn Sie das Token anderswo generiert haben, fügen Sie es manuell ein:
openclaw models auth paste-token --provider anthropic
Verifizieren:
openclaw models status
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)
Der Assistentenpfad ist 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
Der Assistentenpfad ist openclaw onboard → Auth-Auswahl openai-codex.
Aktualisierung + Ablauf¶
Profile speichern einen expires-Zeitstempel.
Zur Laufzeit:
- wenn
expiresin der Zukunft liegt → gespeichertes Access-Token verwenden - wenn abgelaufen → Refresh (unter Dateisperre) und Überschreiben der gespeicherten Anmeldedaten
Der Refresh-Flow ist automatisch; in der Regel müssen Sie Tokens nicht manuell verwalten.
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):
openclaw agents add work
openclaw agents add personal
Konfigurieren Sie dann die Authentifizierung pro Agent (Assistent) und routen Sie Chats an den richtigen Agenten.
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>
Beispiel (Sitzungs-Override):
/model Opus@anthropic:work
So sehen Sie, welche Profil-IDs existieren:
openclaw channels list --json(zeigtauth[])
Verwandte Dokumente:
- /concepts/model-failover (Rotation + Cooldown-Regeln)
- /tools/slash-commands (Befehlsschnittstelle)