---
order: 9
section: reference
title: CLI-Referenz
description: >-
  Alle scribe-Befehle und -Flags: status, validate, translate, delete, history,
  studio, export-static.
noindex: false
canonicalPath: /de/docs/cli
---
Die `scribe`-Binärdatei ist im Paket enthalten und steht nach der Installation direkt im PATH zur Verfügung. Alle Befehle akzeptieren `--config <path>` (Standard ist `scribe.config.ts` im aktuellen Arbeitsverzeichnis). Vor der Ausführung werden zunächst `.env` und danach `.env.local` eingelesen (bestehende Umgebungsvariablen haben Vorrang).

```bash
scribe status
scribe validate
scribe translate [flags]
scribe delete <type> <en-slug> [--dry-run] [--yes]
scribe history <type> <en-slug> [locale]
scribe studio [--port 3600]
scribe export-static [flags]
scribe version
```

## `scribe status`

Pro Inhaltstyp: Anzahl der englischen Dokumente, gefolgt von der Anzahl der Übersetzungen pro Gebietsschema (Locale) sowie dem Speicherpfad. Ein schneller Überblick über die Abdeckung.

## `scribe validate`

Validiert das gesamte Projekt: Schemas, integrierte Felder, `crossValidate`-Hooks, die MDX-Kompilierung der englischen Texte und der gespeicherten Übersetzungen, Relationen, Regeln in `_redirects.json`, lokalisierte Slug-Suffixe und fehlende Bild-Assets (sofern `assetsDir` konfiguriert ist). Gibt pro Problem eine Zeile aus und bricht bei Fehlern mit einem Exit-Code ungleich null ab. So lässt sich der Befehl ideal als Gatekeeper für Ihren Build-Prozess nutzen. Die vollständige Liste der Prüfungen finden Sie unter [Content-Modell](/docs/content-model).

## `scribe translate`

Übersetzt fehlende und veraltete Seiten mit Gemini (erfordert `GEMINI_API_KEY`). Wenn Sie den Befehl ohne Flags im Terminal ausführen, fragt er interaktiv nach Inhaltstyp, Locale-Preset, Strategie und Übersetzungsmodus. Für Skripte können Sie folgende Flags übergeben:

| Flag | Standard | Beschreibung |
| --- | --- | --- |
| `--type <id,id>` | alle Typen | Einer oder mehrere Inhaltstypen (durch Kommas getrennt). |
| `--locale <code>...` | alle nicht-standard Locales | Ziel-Locales (durch Leerzeichen getrennt). Überschreibt `--preset`. |
| `--preset <name>` | - | Eine `localePresets`-Gruppe aus der Konfiguration. |
| `--slug <en-slug>` | - | Ein einzelnes englisches Dokument. |
| `--strategy <all\|missing-only>` | `all` | `all` = veraltet und fehlend; `missing-only` überspringt die Neuübersetzung veralteter Inhalte. |
| `--batch` / `--direct` | `batch` | Übersetzungsmodus. Batch schickt alles über die Gemini Batch API (halbiert die Token-Kosten); Direct macht pro Seite einen API-Aufruf für sofortige Ergebnisse. |
| `--resume` | - | Prüft anstehende Batch-Jobs, liest fertige ein und reicht keine neuen ein. |
| `--concurrency <n>` | `3` | Parallele Übersetzungsanfragen (nur im Direct-Modus). |
| `--model <id>` | `gemini-3.1-pro` | Überschreibt das Gemini-Modell. |
| `--dry-run` | - | Gibt die Arbeitsliste aus, ohne die API aufzurufen oder Daten zu schreiben. Zeigt geschätzte Token-Zahlen und USD-Kosten pro Element sowie als Gesamtsumme. |
| `--force` | - | Erzwingt die Übersetzung, selbst wenn der englische Hash übereinstimmt. |
| `--no-progress` | - | Einfache zeilenweise Logs statt der interaktiven Fortschrittsanzeige. |

Interaktive Durchläufe zeigen einen Live-Fortschrittsbalken mit dem Status der Batch-Jobs, Ergebnissen pro Element, fortlaufenden Input/Output-Token-Zahlen und den geschätzten Kosten in USD (inklusive Thinking-Tokens). Batch-Jobs werden im Store gespeichert, bevor das Polling beginnt. Ein Abbruch mit Strg+C ist daher absolut sicher. Beim nächsten Durchlauf (oder mit `--resume`) werden sie einfach wieder aufgenommen, ohne dass etwas doppelt eingereicht wird. Der Befehl gibt einen Exit-Code ungleich null zurück, falls ein Element fehlschlägt. Weitere Details finden Sie unter [Übersetzung](/docs/translation).

## `scribe delete`

```bash
scribe delete <type> <en-slug> [--dry-run] [--yes]
```

Löscht einen Eintrag samt allem, was daran hängt, gesteuert durch die Referenz-Kaskade. Der Befehl berechnet vorab einen Plan und gibt diesen nach Bereichen gruppiert aus: kaskadierte Löschungen, getrennte Relationen, betroffene Asset-Dateien, Store-Einträge pro Locale (Übersetzungen und Snapshots) sowie eventuelle Blockaden. Vor der Ausführung wird mit `y/N` um Bestätigung gebeten. Die eigentliche Ausführung führt dann exakt diesen Plan durch (Quelldatei, Store-Zeilen, Asset-Dateien und Rewrite-Operationen für getrennte Relationen) und absolut nichts anderes.

| Flag | Beschreibung |
| --- | --- |
| `--dry-run` | Gibt den Plan aus und beendet sich mit Code 0, ohne etwas zu löschen. |
| `--yes` | Überspringt die Bestätigungsabfrage (nützlich für Skripte). |

Der `onTargetDelete`-Modus einer Relation (`restrict`, `detach`, `cascade`) und der `onDelete`-Modus eines Asset-Feldes (`delete`, `keep`) entscheiden darüber, wie der Plan aussieht. Die Feldoptionen sind unter [Content-Modell](/docs/content-model) dokumentiert. Wenn ein Plan auf Blockaden stößt (zum Beispiel eine `restrict`-Referenz oder eine erforderliche Einzelrelation, die ins Leere laufen würde), werden diese ausgegeben. Der Befehl bricht dann mit Exit-Code 1 ab, ohne etwas zu löschen. Das [Studio](/docs/studio) bietet denselben Plan über einen Lösch-Button an.

## `scribe history <type> <en-slug> [locale]`

Die englische Snapshot-Timeline für ein bestimmtes Dokument. Sie zeigt an, wann jeder Snapshot erfasst wurde, wie sein Content-Hash lautet und welche Locale-Übersetzungen daraus erstellt wurden. Übergeben Sie ein Locale, um die Ergebnisse zu filtern.

## `scribe studio`

Eine lokale, schreibgeschützte Web-Benutzeroberfläche (Standard ist `http://127.0.0.1:3600`, änderbar mit `--port`). Sie zeigt die Übersetzungsabdeckung pro Typ und Locale sowie die aktuelle Arbeitsliste für fehlende oder veraltete Inhalte. Zudem gibt es Details pro Dokument: Frontmatter mit übersetzbaren oder strukturellen Markierungen, die gespeicherte Übersetzung inklusive Metadaten (Modell, Datum, Hash) und den englischen Snapshot, auf dem sie basiert. Die UI schreibt niemals Daten. Die Bearbeitung bleibt komplett Ihrem Editor und Git überlassen.

## `scribe export-static`

Schreibt rohe MDX-Dateien (Frontmatter und Body, pro Locale) in ein statisches Verzeichnis. Dies ist ideal, um Crawler- oder LLM-freundliche Klartextversionen Ihrer Seiten bereitzustellen:

| Flag | Standard | Beschreibung |
| --- | --- | --- |
| `--out <dir>` | `public` | Ausgabeverzeichnis. |
| `--extension <ext>` | `mdx` | Dateiendung für die exportierten Dateien. |
| `--type <id,id>` | alle routingfähigen Typen | Inhaltstypen (durch Kommas getrennt). |
| `--locale <code>...` | alle Locales | Locales, die exportiert werden sollen. |

Verwaltete Ausgabe-Stammverzeichnisse werden vor dem Schreiben geleert. Dokumente, die in der Datei `_redirects.json` als Redirect-Quellen dienen, werden übersprungen.

## `scribe version`

Gibt die installierte Version von scribe-cms aus (alternativ `--version` oder `-V`).
