> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth

> Die Social-media-studio-CLI mit deinem Konto authentifizieren

Die `auth:*`-Befehle verwalten die Zugangsdaten, mit denen die CLI mit der API kommuniziert. Die Zugangsdaten werden lokal in `~/.so-me/config.json` gespeichert (bzw. in `~/.so-me-dev/config.json` für das Binary `so-me-dev`).

> [!NOTE]
>
> Jeder Befehl akzeptiert die globalen Flags `--api-key <key>`, `--api-url <url>`, `--json` (Standard), `--table` und `--verbose`. Die Umgebungsvariablen `SOME_API_KEY` und `SOME_API_URL` haben Vorrang vor gespeicherten Zugangsdaten. Details findest du in der [CLI-Übersicht](/de/cli/overview.md).

## auth:login

Bei der API authentifizieren. Du kannst einen API-Schlüssel direkt angeben oder ihn weglassen, um die browserbestätigte Geräte-Einrichtung zu starten. Der [Auth.md-Leitfaden](https://so-me.studio/auth.md) dokumentiert die Device-Endpunkte und den separaten MCP-OAuth-Ablauf.

```bash theme={null}
so-me auth:login [options]
```

| Option | Beschreibung |
| - | - |
| `--api-key <key>` | API-Schlüssel, der lokal gespeichert wird. Wenn angegeben, wird der Device Flow übersprungen. |

### Anmeldung mit API-Schlüssel

Wenn du `--api-key` übergibst, speichert die CLI den Schlüssel in der lokalen Konfiguration (zusammen mit `--api-url`, falls du auch dieses globale Flag setzt) und beendet sich, ohne den Server zu kontaktieren.

```bash theme={null}
so-me auth:login --api-key sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
```

```bash Ausgabe theme={null}
Authentication settings saved successfully.
Run "so-me auth:status" to verify.
```

Du kannst beim Speichern des Schlüssels auch eine eigene API-URL angeben:

```bash theme={null}
so-me auth:login --api-key sk_live_xxxxxxxxxxxxxxxxxxxxxxxx --api-url https://api.so-me.studio
```

> [!TIP]
>
> Die Authentifizierung per API-Schlüssel wird für Skripte und CI/CD empfohlen. Statt den Schlüssel zu speichern, kannst du auch die Umgebungsvariable `SOME_API_KEY` setzen.

### Browserbestätigte Geräte-Einrichtung

Wenn `--api-key` fehlt, startet die CLI einen Device-Authorization-Ablauf über `/auth/device/code` und `/auth/device/token`. Diese JSON-Endpunkte richten nach der Bestätigung durch den Nutzer einen API-Schlüssel ein; sie sind vom MCP-OAuth-Token-Endpunkt getrennt:

```bash theme={null}
so-me auth:login
```

**1. Einen Device-Code anfordern**

Die CLI fordert bei der API einen Device-Code an und gibt eine Verifizierungs-URL sowie einen einmaligen Benutzercode aus. Außerdem zeigt sie an, wie viele Minuten der Code gültig bleibt.

**2. Die URL öffnen und den Code eingeben**

Die CLI versucht, deinen Browser automatisch zu öffnen (nach bestem Bemühen). Öffne die ausgegebene URL manuell, falls das nicht klappt, und gib dann den angezeigten Code ein.

**3. Auf die Autorisierung warten**

Die CLI fragt die API ab, während du im Browser autorisierst. Nach der Bestätigung zeigt sie die autorisierte E-Mail-Adresse an und speichert den erzeugten API-Schlüssel automatisch.

```bash Ausgabe theme={null}
  To authenticate, open this URL in your browser:

  https://app.so-me.studio/cli/authorize

  And enter this code:

  WDJB-MJHT

  Code expires in 10 minutes.
  Browser opened automatically.

✔ Device authorized!

  Logged in as jane@example.com
  API key generated and saved.
  Run "so-me auth:status" to verify.
```

> [!WARNING]
>
> Wenn der Device Flow gelingt, dein Tarif aber keinen API-Schlüssel erzeugen kann, gibt die CLI stattdessen eine Warnung aus. API-Zugriff erfordert den Tarif Standard, Advanced oder Lifetime. Erstelle einen Schlüssel manuell und führe `so-me auth:login --api-key <key>` aus, um die Einrichtung abzuschließen.

Der Device Flow beendet sich mit einem Exit-Code ungleich null, wenn der Code abläuft oder die Autorisierung ein Timeout erreicht, bevor du sie abschließt. Führe `so-me auth:login` erneut aus, um von vorn zu beginnen.

## auth:status

Zeigt den aktuellen Authentifizierungsstatus an, einschließlich des maskierten API-Schlüssels und der konfigurierten API-URL. Dies ist eine rein lokale Prüfung — sie liest die gespeicherte Konfiguration und kontaktiert den Server nicht.

```bash theme={null}
so-me auth:status
```

```bash Ausgabe theme={null}
Authenticated
  API Key: sk_live_xxxx...abcd
  API URL: https://api.so-me.studio
  Workspace: my-workspace
```

Die Zeile `Workspace` erscheint nur, wenn ein Standard-Workspace konfiguriert ist. Sind keine Zugangsdaten gespeichert, meldet der Befehl, dass du nicht authentifiziert bist, und verweist auf `auth:login`.

```bash Ausgabe (nicht angemeldet) theme={null}
Not authenticated.
Run "so-me auth:login --api-key <key>" to authenticate.
```

## auth:whoami

Verifiziert den aktuellen API-Schlüssel beim Server und gibt den authentifizierten Benutzer und die Organisation aus. Anders als `auth:status`, das nur die lokale Konfiguration liest, ruft dieser Befehl die API auf (`/v1/settings/profile` und `/v1/settings/organization`) und bricht sofort ab, wenn der Schlüssel widerrufen wurde.

```bash theme={null}
so-me auth:whoami
```

```bash Beispiele theme={null}
# Default JSON output
so-me auth:whoami

# Compact table
so-me auth:whoami --table

# Pipe to jq — just the email
so-me auth:whoami | jq -r '.user.email'

# Confirm the active organization
so-me auth:whoami | jq '{org: .organization.name, role: .user.tenantRole}'
```

Das Ergebnis ist ein Objekt, das beide Antworten unter den Schlüsseln `user` und `organization` vereint:

```json theme={null}
{
  "user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "email": "jane@example.com"
  },
  "organization": {
    "id": "6f9619ff-8b86-d011-b42d-00c04fc964ff",
    "name": "Acme Inc"
  }
}
```

## auth:logout

Entfernt gespeicherte Zugangsdaten, indem die lokale Konfigurationsdatei gelöscht wird.

```bash theme={null}
so-me auth:logout
```

```bash Ausgabe theme={null}
Logged out. Credentials removed.
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.