---
order: 9
section: reference
title: Referencia de la CLI
description: >-
  Todos los comandos y opciones de scribe: status, validate, translate, delete,
  history, studio, export-static.
noindex: false
canonicalPath: /es/docs/cli
---
El binario `scribe` viene incluido con el paquete y se añade a tu PATH tras la instalación. Todos los comandos aceptan `--config <path>` (por defecto busca `scribe.config.ts` en el directorio de trabajo) y leen los archivos `.env` y luego `.env.local` antes de ejecutarse (las variables de entorno existentes tienen prioridad).

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

Desglose por tipo de contenido: cantidad de documentos en inglés, cantidad de traducciones por idioma y ruta del almacén de datos (store). Es un resumen rápido de la cobertura.

## `scribe validate`

Valida todo el proyecto: esquemas, campos integrados, hooks `crossValidate`, compilación MDX de textos en inglés y traducciones almacenadas, relaciones, reglas de `_redirects.json`, sufijos de slugs localizados y archivos de imagen faltantes cuando se define `assetsDir`. Muestra una línea por cada problema encontrado y devuelve un código de error para que puedas detener tu proceso de compilación si es necesario. Consulta el [modelo de contenido](/docs/content-model) para ver la lista completa de validaciones.

## `scribe translate`

Traduce las páginas nuevas o desactualizadas utilizando Gemini (requiere `GEMINI_API_KEY`). Si lo ejecutas en la terminal sin opciones, te preguntará interactivamente el tipo de contenido, los idiomas predefinidos, la estrategia y el modo de traducción. En los scripts puedes usar las siguientes opciones:

| Flag | Default | Description |
| --- | --- | --- |
| `--type <id,id>` | todos los tipos | Uno o más tipos de contenido separados por comas. |
| `--locale <code>...` | todos los idiomas (excepto el predeterminado) | Idiomas de destino separados por espacios (anula `--preset`). |
| `--preset <name>` | - | Un grupo `localePresets` definido en la configuración. |
| `--slug <en-slug>` | - | Un único documento en inglés. |
| `--strategy <all\|missing-only>` | `all` | `all` incluye documentos desactualizados y faltantes. `missing-only` omite la retraducción de los desactualizados. |
| `--batch` / `--direct` | `batch` | Modo de traducción. `batch` envía todo a la API Batch de Gemini ahorrando la mitad de los tokens. `direct` hace llamadas a la API página por página con resultados inmediatos. |
| `--resume` | - | Revisa los trabajos por lotes pendientes, asimila los terminados y no envía nada nuevo. |
| `--concurrency <n>` | `3` | Peticiones de traducción en paralelo (solo para el modo directo). |
| `--model <id>` | `gemini-3.1-pro` | Permite usar otro modelo de Gemini. |
| `--dry-run` | - | Imprime la lista de tareas pendientes sin realizar peticiones a la API ni escribir datos. Muestra una estimación del consumo de tokens y del costo en dólares (USD) por archivo y en total. |
| `--force` | - | Vuelve a traducir aunque coincida el hash del contenido en inglés. |
| `--no-progress` | - | Muestra un registro de texto línea por línea en lugar de la barra de progreso interactiva. |

Las ejecuciones interactivas muestran una barra de progreso en tiempo real con el estado de los procesos por lotes, resultados por documento, recuento continuo de tokens de entrada y salida, así como un costo estimado en dólares (incluyendo tokens de razonamiento). Los trabajos por lotes se guardan en el almacén de datos antes de comenzar a consultar su estado. Esto hace que cancelar con Ctrl+C sea totalmente seguro, ya que la siguiente ejecución (o `--resume`) los retomará sin enviar peticiones duplicadas. Si algún documento falla, el comando devuelve un código de error. Tienes más detalles en la sección de [traducción](/docs/translation).

## `scribe delete`

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

Elimina una entrada y todos sus elementos dependientes siguiendo la cascada de referencias. Primero elabora un plan y lo muestra agrupado por secciones: eliminaciones en cascada, relaciones desvinculadas, archivos multimedia afectados, recuentos del almacén de datos (traducciones y capturas) y cualquier elemento de bloqueo. Después, pide confirmación `y/N` antes de ejecutarse. La ejecución sigue exactamente este plan (archivo de origen, filas del almacén de datos, archivos multimedia y reescrituras de desvinculación) sin hacer nada más.

| Flag | Description |
| --- | --- |
| `--dry-run` | Imprime el plan y finaliza correctamente (código 0) sin eliminar nada. |
| `--yes` | Omite la pregunta de confirmación (ideal para scripts). |

El plan se determina según el modo `onTargetDelete` de las relaciones (`restrict`, `detach`, `cascade`) y el modo `onDelete` de los campos multimedia (`delete`, `keep`). Consulta el [modelo de contenido](/docs/content-model) para ver las opciones de cada campo. Si un plan tiene bloqueos (una referencia `restrict` o una relación obligatoria que quedaría huérfana), muestra estos problemas y sale con código 1 sin eliminar nada. La interfaz del [studio](/docs/studio) presenta el mismo plan en un botón de borrado.

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

Muestra el historial de las capturas en inglés de un documento: cuándo se realizó cada captura, el hash de su contenido y qué traducciones se crearon a partir de ella. Puedes pasar un código de idioma para filtrar los resultados.

## `scribe studio`

Es una interfaz web local de solo lectura (por defecto `http://127.0.0.1:3600`, se puede cambiar con `--port`). Muestra la cobertura de traducción por tipo de contenido y por idioma, la lista de tareas pendientes y detalles de cada documento: frontmatter con los marcadores estructurales o traducibles, la traducción guardada, sus metadatos (modelo, fecha, hash) y la versión en inglés de la que procede. Nunca modifica los archivos (la edición se mantiene en tu editor y en git).

## `scribe export-static`

Escribe los archivos MDX en bruto (frontmatter y cuerpo, separados por idiomas) en un directorio estático. Resulta muy útil para servir versiones en texto plano optimizadas para rastreadores o herramientas LLM.

| Flag | Default | Description |
| --- | --- | --- |
| `--out <dir>` | `public` | Directorio de salida. |
| `--extension <ext>` | `mdx` | Extensión de los archivos exportados. |
| `--type <id,id>` | todos los tipos enrutables | Tipos de contenido separados por comas. |
| `--locale <code>...` | todos los idiomas | Idiomas que se exportarán. |

Los directorios de salida gestionados se vacían antes de escribir los archivos nuevos. Se omiten los documentos que actúan como origen de redirección en `_redirects.json`.

## `scribe version`

Muestra la versión instalada de scribe-cms (también sirve `--version` o `-V`).
