---
order: 9
section: reference
title: Riferimento della CLI
description: >-
  Tutti i comandi e i flag di scribe: status, validate, translate, delete,
  history, studio ed export-static.
noindex: false
canonicalPath: /it/docs/cli
---
L'eseguibile `scribe` è incluso nel pacchetto ed è disponibile nel tuo PATH dopo l'installazione. Tutti i comandi accettano il flag `--config <path>` (di default cerca `scribe.config.ts` nella directory di lavoro) e leggono `.env` seguito da `.env.local` prima di avviare l'esecuzione (le variabili d'ambiente preesistenti hanno 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`

Mostra per ogni content type il numero di documenti in inglese, il numero di traduzioni per lingua e il percorso dello store. È utile per avere una panoramica rapida della copertura.

## `scribe validate`

Valida l'intero progetto in tutte le sue parti: schemi, campi integrati, hook `crossValidate`, compilazione MDX dei testi in inglese e delle traduzioni salvate, relazioni, regole di `_redirects.json`, suffissi degli slug localizzati e asset immagine mancanti (quando è impostato `assetsDir`). Stampa una riga per ogni problema rilevato e termina con un codice di errore in caso di fallimento, in modo da poter bloccare la build se necessario. Per l'elenco completo dei controlli puoi consultare la sezione [content model](/docs/content-model).

## `scribe translate`

Traduce le pagine mancanti e obsolete usando Gemini (richiede `GEMINI_API_KEY`). Se eseguito senza flag nel terminale, avvia una procedura interattiva per richiedere il content type, il preset della lingua, la strategia e la modalità di traduzione. Negli script è possibile passare i seguenti flag:

| Flag | Default | Descrizione |
| --- | --- | --- |
| `--type <id,id>` | tutti i tipi | Uno o più content type (separati da virgola). |
| `--locale <code>...` | tutte le lingue non di default | Lingue di destinazione (separate da spazio). Sovrascrive `--preset`. |
| `--preset <name>` | - | Un gruppo `localePresets` definito nella configurazione. |
| `--slug <en-slug>` | - | Un singolo documento in inglese. |
| `--strategy <all\|missing-only>` | `all` | `all` include le pagine obsolete e quelle mancanti. `missing-only` salta le traduzioni obsolete. |
| `--batch` / `--direct` | `batch` | Modalità di traduzione. Batch invia tutto tramite l'API Batch di Gemini dimezzando il costo dei token. Direct effettua chiamate API per ogni pagina garantendo risultati immediati. |
| `--resume` | - | Controlla i job batch in sospeso, acquisisce quelli completati e non invia nulla di nuovo. |
| `--concurrency <n>` | `3` | Numero di richieste di traduzione in parallelo (solo per la modalità direct). |
| `--model <id>` | `gemini-3.1-pro` | Sostituisce il modello Gemini predefinito. |
| `--dry-run` | - | Stampa l'elenco dei lavori senza chiamare l'API o scrivere file. Include una stima dei token e dei costi in dollari (USD) per ogni elemento e nei totali. |
| `--force` | - | Forza la traduzione anche se l'hash del file in inglese corrisponde. |
| `--no-progress` | - | Mostra log testuali riga per riga al posto dell'interfaccia di avanzamento in tempo reale. |

Le esecuzioni interattive mostrano una barra di avanzamento in tempo reale con lo stato dei job batch, i risultati dei singoli elementi, il conteggio dinamico dei token in ingresso e in uscita e una stima del costo in dollari (inclusi i token di ragionamento). I job batch vengono salvati nello store prima dell'inizio del polling. Per questo motivo interrompere il processo con Ctrl+C è assolutamente sicuro (l'esecuzione successiva o il flag `--resume` riprenderanno il lavoro senza inviare richieste doppie). Se anche un solo elemento fallisce, il comando termina con un codice di errore. Maggiori dettagli nella sezione [translation](/docs/translation).

## `scribe delete`

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

Elimina una voce e tutto ciò che ne dipende seguendo la cascata delle relazioni. Elabora preventivamente un piano e lo stampa suddiviso per sezioni (eliminazioni a cascata, relazioni scollegate, file di asset coinvolti, conteggi dello store per ogni lingua tra traduzioni e snapshot) indicando eventuali ostacoli bloccanti. Prima di procedere richiede una conferma tramite `y/N`. L'esecuzione applica esattamente il piano previsto (file sorgente, righe dello store, asset e riscritture per lo scollegamento) senza toccare nient'altro.

| Flag | Descrizione |
| --- | --- |
| `--dry-run` | Stampa il piano di eliminazione e termina con codice 0 senza cancellare nulla. |
| `--yes` | Salta la richiesta di conferma (utile negli script). |

Le azioni del piano sono determinate dalla modalità `onTargetDelete` di una relazione (`restrict`, `detach`, `cascade`) e dalla modalità `onDelete` di un campo asset (`delete`, `keep`). Per le opzioni dei campi puoi consultare [content model](/docs/content-model). Un piano che contiene ostacoli (un riferimento `restrict` o una relazione singola obbligatoria che resterebbe orfana) mostrerà gli elementi bloccanti e terminerà con codice 1 senza eseguire alcuna cancellazione. Lo [studio](/docs/studio) espone questo stesso piano d'azione dietro l'apposito pulsante di eliminazione.

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

Mostra la cronologia degli snapshot in inglese per un singolo documento. Indica quando è stato acquisito ogni snapshot, il relativo hash del contenuto e quali traduzioni sono state generate a partire da esso. Passando una lingua specifica è possibile filtrare i risultati.

## `scribe studio`

Un'interfaccia web locale in sola lettura (di default all'indirizzo `http://127.0.0.1:3600`, modificabile con `--port`). Mostra la copertura delle traduzioni per content type e lingua, l'elenco dei lavori attualmente mancanti o obsoleti e i dettagli per singolo documento. Tra questi figurano il frontmatter con i marcatori strutturali o traducibili, la traduzione salvata nello store, i suoi metadati (modello, data, hash) e lo snapshot in inglese dal quale è stata creata. Non effettua mai operazioni di scrittura (le modifiche avvengono sempre nel tuo editor e su git).

## `scribe export-static`

Scrive file MDX non elaborati (frontmatter e corpo del testo per ogni lingua) in una directory statica. È una soluzione ideale per distribuire versioni in solo testo delle tue pagine, ottimizzate per i crawler e per i modelli linguistici (LLM):

| Flag | Default | Descrizione |
| --- | --- | --- |
| `--out <dir>` | `public` | Directory di output. |
| `--extension <ext>` | `mdx` | Estensione per i file esportati. |
| `--type <id,id>` | tutti i tipi instradabili | Content type separati da virgola. |
| `--locale <code>...` | tutte le lingue | Lingue da esportare. |

Le radici di output gestite vengono ripulite prima della scrittura. I documenti che fungono da sorgenti di reindirizzamento nel file `_redirects.json` vengono ignorati.

## `scribe version`

Stampa la versione installata di scribe-cms (funziona anche con `--version` o `-V`).
