Scribe

CLIリファレンス

scribeの全コマンドとフラグの解説。status、validate、translate、delete、history、studio、export-staticに対応。

View as Markdown

scribeバイナリはパッケージに同梱されており、インストール後は自動でパスが通ります。すべてのコマンドで--config <path>(デフォルトは作業ディレクトリのscribe.config.ts)を指定でき、実行前に.env、続いて.env.localを読み込みます(既存の環境変数が優先されます)。

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

コンテンツタイプごとに、英語ドキュメントの数、各ロケールの翻訳数、ストアのパスを表示します。翻訳の網羅率をすばやく確認したいときに便利です。

scribe validate

プロジェクト全体を検証します。スキーマ、組み込みフィールド、crossValidateフック、英語の本文および保存済み翻訳のMDXコンパイル、リレーション、_redirects.jsonのルール、ローカライズ用スラグの接尾辞に加え、assetsDirが設定されている場合は画像アセットの欠落がないかもチェックします。問題点は1行に1件ずつ出力され、エラーがあった場合は非ゼロで終了するため、ビルド前の自動チェックとしても活用できます。検証項目の完全なリストについては、コンテンツモデルをご覧ください。

scribe translate

Geminiを使用して、未翻訳または古いページを翻訳します(GEMINI_API_KEYが必要です)。ターミナルでフラグなしで実行すると、コンテンツタイプ、ロケールプリセット、戦略、翻訳モードを対話形式で尋ねられます。スクリプト内で実行する場合は以下のフラグを指定してください。

フラグデフォルト説明
--type <id,id>すべてのタイプ1つ以上のコンテンツタイプ(カンマ区切り)。
--locale <code>...デフォルト以外の全ロケール対象となるロケール(スペース区切り)。--presetより優先されます。
--preset <name>-設定ファイル内のlocalePresetsグループ。
--slug <en-slug>-特定の英語ドキュメントを指定。
--strategy <all|missing-only>allallは古い翻訳と未翻訳の両方を対象にし、missing-onlyは古い翻訳の再翻訳をスキップします。
--batch / --directbatch翻訳モードの設定。batchはGemini Batch API経由ですべて送信してトークンコストを半額に抑え、directはページ単位でAPIを呼び出して即座に結果を取得します。
--resume-保留中のバッチジョブを確認し、完了したものをインポートします。新しいジョブは送信しません。
--concurrency <n>3並列処理する翻訳リクエスト数(directモード専用)。
--model <id>gemini-3.1-proGeminiのモデルを上書き指定。
--dry-run-API呼び出しや書き込みを行わず、処理の予定リストを出力します。アイテムごとの想定トークン数とUSDコスト、およびその合計額も確認できます。
--force-英語のハッシュ値が一致していても強制的に再翻訳します。
--no-progress-ライブ表示のプログレスUIを使わず、シンプルな行単位のログを出力します。

対話モードでは、バッチジョブのステータス、アイテムごとの結果、実行中の入出力トークン数、およびUSD換算の想定コスト(思考トークンを含む)がリアルタイムのプログレスバーで表示されます。バッチジョブはポーリング開始前にストアへ保存されるため、途中でCtrl+Cを押して中断しても安全です。次回の実行時(または--resume使用時)に、ジョブを二重送信することなく処理を再開できます。いずれかのアイテムで処理に失敗した場合、コマンドは非ゼロで終了します。詳細は翻訳機能をご覧ください。

scribe delete

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

リファレンスのカスケード処理に基づき、エントリとそれに関連づけられているすべてのデータを削除します。事前に削除プランを計算し、カスケード削除、関係が切れるリレーション、影響を受けるアセットファイル、ロケールごとのストア件数(翻訳およびスナップショット)、および削除の妨げとなる要因(ブロッカー)のセクションに分けて出力します。その後、y/Nの確認プロンプトが表示されてから実行に移ります。実行時は、提示されたプラン(ソースファイル、ストアの行、アセットファイル、リレーションの書き換え)に沿った処理のみが正確に行われます。

フラグ説明
--dry-run削除プランを出力するだけで、実際には何も削除せずに終了コード0で完了します。
--yes確認プロンプトをスキップします(スクリプト用)。

リレーションのonTargetDeleteモード(restrictdetachcascade)と、アセットフィールドのonDeleteモード(deletekeep)の設定がプランの内容を決定します。フィールドのオプションについてはコンテンツモデルをご確認ください。プランにブロッカー(restrict指定のリファレンスや、削除によって宙に浮いてしまう必須の単一リレーション)が含まれる場合、それを画面に出力し、何も削除せずに終了コード1で終了します。この削除プランは、Studio画面の削除ボタンからでも確認できます。

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

単一ドキュメントにおける英語スナップショットのタイムラインを表示します。各スナップショットの取得日時、コンテンツのハッシュ値、そしてどのロケールの翻訳がそのスナップショットから作成されたかを確認できます。ロケールを渡すことで結果の絞り込みも可能です。

scribe studio

読み取り専用のローカルWeb UIを起動します(デフォルトはhttp://127.0.0.1:3600--portで変更可能)。タイプやロケールごとの翻訳網羅率、未翻訳・古い翻訳の現在のワークリスト、およびドキュメント単位の詳細を確認できます。ドキュメント詳細には、翻訳可能か構造的かを示すマーカーが付いたフロントマター、保存済みの翻訳内容とメタデータ(モデル、日付、ハッシュ値)、そして翻訳の元となった英語スナップショットが表示されます。このUIからデータが書き込まれることはありません。編集作業は今まで通りエディタとGitで行ってください。

scribe export-static

ロケールごとにプレーンなMDXファイル(フロントマター+本文)を静的ディレクトリへ書き出します。クローラーやLLMが読み取りやすい、プレーンテキスト版のページを配信したい場合に最適です。

フラグデフォルト説明
--out <dir>public出力先のディレクトリ。
--extension <ext>mdxエクスポートするファイルの拡張子。
--type <id,id>ルーティング可能な全タイプコンテンツタイプをカンマ区切りで指定。
--locale <code>...すべてのロケールエクスポートするロケール。

管理下にある出力先のルートディレクトリは、書き込み前にクリーンアップされます。また、_redirects.jsonでリダイレクト元として指定されているドキュメントはスキップされます。

scribe version

インストールされているscribe-cmsのバージョンを表示します(--version-Vでも可)。

CLIリファレンス · Scribe