---
order: 9
section: reference
title: Référence CLI
description: >-
  La liste complète des commandes et options scribe : status, validate,
  translate, delete, history, studio, export-static.
noindex: false
canonicalPath: /fr/docs/cli
---
L'exécutable `scribe` est inclus dans le paquet et s'ajoute à votre variable PATH après l'installation. Toutes les commandes acceptent l'option `--config <path>` (par défaut : `scribe.config.ts` situé dans le dossier de travail). Elles lisent les fichiers `.env` puis `.env.local` avant de s'exécuter (les variables d'environnement existantes ont la priorité).

```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`

Affiche un bilan rapide de l'état des traductions. Pour chaque type de contenu, vous obtenez le nombre de documents en anglais, le nombre de traductions par langue, ainsi que le chemin d'accès au stockage.

## `scribe validate`

Vérifie l'intégrité de tout le projet : schémas, champs intégrés, hooks `crossValidate`, compilation MDX des textes anglais et des traductions enregistrées, relations, règles du fichier `_redirects.json`, suffixes des slugs localisés, et images manquantes (si `assetsDir` est configuré). La commande affiche une ligne par problème détecté et renvoie un code d'erreur non nul en cas d'échec. Elle peut donc bloquer votre processus de build si nécessaire. Consultez la section [modèle de contenu](/docs/content-model) pour découvrir la liste complète des vérifications.

## `scribe translate`

Traduit les pages manquantes ou obsolètes à l'aide de Gemini (nécessite `GEMINI_API_KEY`). Si vous lancez la commande sans aucune option dans le terminal, elle vous demande de manière interactive le type de contenu, les paramètres régionaux, la stratégie voulue et le mode de traduction. Dans vos scripts, utilisez ces options :

| Option | Par défaut | Description |
| --- | --- | --- |
| `--type <id,id>` | tous les types | Un ou plusieurs types de contenus (séparés par des virgules). |
| `--locale <code>...` | toutes les langues cibles | Les langues à traduire (séparées par des espaces). Écrase l'option `--preset`. |
| `--preset <name>` | - | Un groupe issu de `localePresets` défini dans la configuration. |
| `--slug <en-slug>` | - | Un document spécifique en anglais. |
| `--strategy <all\|missing-only>` | `all` | `all` traite tout ce qui manque ou n'est plus à jour. `missing-only` ignore les traductions devenues obsolètes. |
| `--batch` / `--direct` | `batch` | Mode de traduction. Le mode `batch` envoie tout via l'API Batch de Gemini pour réduire le coût des jetons de 50 %. Le mode `direct` effectue des requêtes page par page pour des résultats immédiats. |
| `--resume` | - | Vérifie les tâches `batch` en attente, intègre celles qui sont terminées et n'envoie rien de nouveau. |
| `--concurrency <n>` | `3` | Nombre de requêtes de traduction en parallèle (uniquement en mode `direct`). |
| `--model <id>` | `gemini-3.1-pro` | Remplacer le modèle Gemini utilisé. |
| `--dry-run` | - | Affiche la liste des tâches à accomplir sans contacter l'API ni modifier les fichiers. Fournit également une estimation du nombre de jetons et du coût en dollars, par élément et au global. |
| `--force` | - | Force la retraduction, même si le hachage du texte anglais est identique. |
| `--no-progress` | - | Affiche un simple journal ligne par ligne au lieu de l'interface de progression en direct. |

Les exécutions interactives affichent une barre de progression en temps réel avec le statut des tâches en lot, les résultats élément par élément, le décompte des jetons (entrants et sortants) et le coût estimé en dollars (jetons de réflexion inclus). Les tâches en mode `batch` sont sauvegardées avant que la vérification ne commence. Une interruption avec Ctrl+C est donc sans danger : la prochaine exécution (ou l'utilisation de `--resume`) reprendra le travail là où il s'est arrêté sans envoyer de doublons. La commande renvoie une erreur si au moins un élément échoue. Plus de détails dans la section [traduction](/docs/translation).

## `scribe delete`

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

Supprime une entrée ainsi que tous ses éléments dépendants en suivant les règles de cascade. Le système prépare d'abord un plan d'action et l'affiche par catégories : suppressions en cascade, relations détachées, fichiers multimédias impactés, totaux de la base de données par langue (traductions et instantanés), ainsi que tout point de blocage éventuel. Il demande ensuite confirmation par `y/N` avant d'agir. L'exécution applique très précisément ce plan (fichier source, lignes de la base, ressources et réécriture des détachements) sans rien modifier d'autre.

| Option | Description |
| --- | --- |
| `--dry-run` | Affiche le plan d'action puis s'arrête (sans rien supprimer). |
| `--yes` | Ignore la demande de confirmation (pratique pour les scripts). |

Le mode `onTargetDelete` d'une relation (`restrict`, `detach`, `cascade`) ainsi que le mode `onDelete` d'un champ média (`delete`, `keep`) déterminent la façon dont le plan se déroule. Consultez le [modèle de contenu](/docs/content-model) pour connaître les options disponibles. Si un plan rencontre un obstacle (comme une référence de type `restrict` ou une relation unique obligatoire qui se retrouverait orpheline), il affiche le problème et s'arrête sur une erreur 1, sans rien supprimer. Le [studio](/docs/studio) propose exactement la même logique d'analyse via son bouton de suppression.

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

Affiche l'historique des instantanés anglais d'un document. Vous y verrez la date de capture de chaque version, l'empreinte de son contenu (hachage) et les langues vers lesquelles elle a été traduite. Ajoutez une langue en argument pour filtrer les résultats.

## `scribe studio`

Lance une interface web locale en lecture seule (par défaut sur `http://127.0.0.1:3600`, modifiable avec `--port`). L'outil affiche l'état de la traduction par type et par langue, la liste du travail en attente (manquant ou obsolète) ainsi que les détails de chaque document. Vous y retrouverez le frontmatter avec ses balises de traduction ou de structure, le texte traduit enregistré, ses métadonnées (modèle, date, hachage) et la version anglaise d'origine. Cette interface n'écrit jamais de données. Les modifications continuent de se faire dans votre éditeur de code et via git.

## `scribe export-static`

Génère des fichiers MDX bruts (frontmatter et corps du texte, pour chaque langue) dans un répertoire statique. C'est la solution idéale pour fournir des versions textuelles de vos pages adaptées aux robots d'indexation et aux LLM.

| Option | Par défaut | Description |
| --- | --- | --- |
| `--out <dir>` | `public` | Dossier de destination. |
| `--extension <ext>` | `mdx` | L'extension des fichiers exportés. |
| `--type <id,id>` | tous les types routables | Types de contenus séparés par des virgules. |
| `--locale <code>...` | toutes les langues | Langues cibles de l'exportation. |

Les dossiers de destination gérés par cet outil sont vidés avant l'écriture. Les documents qui servent de source de redirection dans `_redirects.json` sont ignorés.

## `scribe version`

Affiche la version actuelle de scribe-cms (équivalent à `--version` ou `-V`).
