Scribe

Referência da CLI

Todos os comandos e flags do scribe: status, validate, translate, delete, history, studio, export-static.

View as Markdown

O executável scribe vem com o pacote e fica disponível no PATH após a instalação. Todos os comandos aceitam --config <caminho> (padrão: scribe.config.ts no diretório de trabalho) e leem o .env seguido do .env.local antes da execução (as variáveis de ambiente existentes têm precedência).

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

Por tipo de conteúdo: contagem de documentos em inglês, contagem de traduções por localidade e o caminho de armazenamento. Uma visão rápida da cobertura.

scribe validate

Valida todo o projeto: esquemas, campos integrados, hooks crossValidate, compilação MDX dos corpos em inglês e traduções armazenadas, relações, regras do _redirects.json, sufixos de slug localizados e ativos de imagem ausentes quando assetsDir está configurado. Imprime uma linha por problema e sai com código diferente de zero em caso de erros, o que pode bloquear seu build. Consulte o modelo de conteúdo para ver a lista completa de verificações.

scribe translate

Traduz páginas ausentes e desatualizadas usando o Gemini (requer GEMINI_API_KEY). Ao rodar sem flags no terminal, o comando pergunta interativamente o tipo de conteúdo, a predefinição de localidade, a estratégia e o modo de tradução. Em scripts, passe as flags:

FlagPadrãoDescrição
--type <id,id>todos os tiposUm ou mais tipos de conteúdo (separados por vírgula).
--locale <code>...todas não padrãoLocalidades de destino (separadas por espaço). Substitui a --preset.
--preset <nome>-Um grupo localePresets da configuração.
--slug <en-slug>-Um documento em inglês.
--strategy <all|missing-only>allall = desatualizadas + ausentes; missing-only ignora retraduções de conteúdo desatualizado.
--batch / --directbatchModo de tradução. O modo Batch envia tudo através da API Gemini Batch por 50% do custo de tokens; o modo direto faz chamadas de API por página para resultados imediatos.
--resume-Verifica jobs em lote pendentes, processa os finalizados, não envia novos.
--concurrency <n>3Solicitações de tradução paralelas (somente modo direto).
--model <id>gemini-3.1-proSubstituição do modelo Gemini.
--dry-run-Imprime a lista de trabalho sem chamar a API ou gravar, com uma estimativa de contagem de tokens e custo em dólares (USD) por item e no total.
--force-Retraduz mesmo quando o hash em inglês for igual.
--no-progress-Logs simples linha por linha em vez da interface de progresso ao vivo.

As execuções interativas exibem uma barra de progresso em tempo real com o status do job em lote, resultados por item, contagens de tokens de entrada/saída em execução e um custo estimado em dólares (USD) que inclui os tokens de "pensamento". Os jobs em lote são persistidos no armazenamento antes do início da verificação (polling), portanto, é seguro interromper com Ctrl+C (a próxima execução ou o --resume retoma de onde parou sem reenviar nada em duplicidade). O comando sai com um erro (não zero) caso algum item falhe. Detalhes em tradução.

scribe delete

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

Exclui uma entrada e tudo o que depende dela, seguindo o efeito cascata de referência. Ele calcula um plano antecipadamente e o imprime agrupado por seção: exclusões em cascata, relações desconectadas, arquivos de ativos afetados, contagens de armazenamento por localidade (traduções e instantâneos) e possíveis bloqueadores. Em seguida, solicita confirmação com y/N antes de prosseguir. A execução realiza exatamente o planejado (arquivo de origem, linhas de armazenamento, arquivos de ativos e reescritas de desconexão) e nada mais.

FlagDescrição
--dry-runImprime o plano e sai com código 0 sem excluir nada.
--yesPula o prompt de confirmação (para uso em scripts).

O modo onTargetDelete de uma relação (restrict, detach, cascade) e o modo onDelete de um campo de ativo (delete, keep) determinam o que o plano faz (consulte o modelo de conteúdo para ver as opções do campo). Um plano com bloqueadores (como uma referência restrict ou uma relação única obrigatória que ficaria solta) exibe esses bloqueadores e sai com código 1 sem excluir nada. O estúdio disponibiliza esse mesmo plano por meio do botão Delete.

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

A linha do tempo dos instantâneos (snapshots) em inglês de um documento: quando cada instantâneo foi capturado, seu hash de conteúdo e quais traduções de localidade foram feitas a partir dele. Passe uma localidade para filtrar.

scribe studio

Uma interface da web local apenas para leitura (padrão http://127.0.0.1:3600, altere usando --port). Mostra a cobertura de tradução por tipo e por localidade, a lista atual de trabalho (ausentes/desatualizadas) e os detalhes por documento: frontmatter com marcadores estruturais ou traduzíveis, a tradução armazenada, seus metadados (modelo, data, hash) e o instantâneo em inglês do qual ela se originou. O estúdio não grava nada (a edição continua sendo feita no seu editor e pelo git).

scribe export-static

Grava os arquivos MDX não processados (frontmatter + corpo, por localidade) num diretório estático. Isso é ideal para disponibilizar versões de texto simples das suas páginas que sejam amigáveis a rastreadores (crawlers) e LLMs:

FlagPadrãoDescrição
--out <dir>publicDiretório de saída.
--extension <ext>mdxExtensão de arquivo para os itens exportados.
--type <id,id>todos os roteáveisTipos de conteúdo separados por vírgula.
--locale <code>...todasLocalidades a exportar.

As raízes de saída gerenciadas são limpas antes da gravação. Os documentos que são fontes de redirecionamento em _redirects.json são ignorados.

scribe version

Imprime a versão instalada do scribe-cms (o mesmo que --version / -V).

Referência da CLI · Scribe