> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth

# 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:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
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 in `auth-profiles.json` importiert)

All dies berücksichtigt außerdem `$OPENCLAW_STATE_DIR` (Override des State-Verzeichnisses). Vollständige Referenz: [/gateway/configuration](/gateway/configuration#auth-storage-oauth--api-keys)

## 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:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models auth setup-token --provider anthropic
```

Wenn Sie das Token anderswo generiert haben, fügen Sie es manuell ein:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw models auth paste-token --provider anthropic
```

Verifizieren:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
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:

1. führen Sie `claude setup-token` aus
2. fügen Sie das Token in OpenClaw ein
3. als Token-Auth-Profil speichern (kein Refresh)

Der Assistentenpfad ist `openclaw onboard` → Auth-Auswahl `setup-token` (Anthropic).

### OpenAI Codex (ChatGPT OAuth)

Ablauf (PKCE):

1. PKCE-Verifier/Challenge + zufälligen `state` erzeugen
2. `https://auth.openai.com/oauth/authorize?...` öffnen
3. versuchen, den Callback auf `http://127.0.0.1:1455/auth/callback` abzufangen
4. falls der Callback nicht binden kann (oder Sie remote/headless sind), fügen Sie die Redirect-URL/den Code ein
5. Austausch bei `https://auth.openai.com/oauth/token`
6. `accountId` aus 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 `expires` in 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):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
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` (zeigt `auth[]`)

Verwandte Dokumente:

* [/concepts/model-failover](/concepts/model-failover) (Rotation + Cooldown-Regeln)
* [/tools/slash-commands](/tools/slash-commands) (Befehlsschnittstelle)
