コンテンツへスキップ
Sonenta

CLI

v0.2.1 · npm · MIT

@sonenta/cli

ダッシュボードで操作するすべてを、軽量でスクリプト可能なコマンドラインで実行できます。既存の i18next プロジェクトのインポート、翻訳の push と pull、CI と remote の差分比較、CDN リリースの公開、offline-first ビルド向けのバンドルのスナップショット作成まで対応します。MIT ライセンス、npm で配布しています。

破壊的変更 · 0.1 → 0.2

CLI 全体が MCP サーフェス経由で動作するようになり、mcp:* スコープの API キーが必要です。プロジェクトに限定されたキーは 403 を返します。ダッシュボードの Org Settings → API Keys で新しいキーを生成し、0.1 で使用していたキーはすべて再発行してください。

インストール

npm のみで、CLI 用の Homebrew フォーミュラはありません。Node 18 以降が必要で、sonenta コマンドをインストールします。

terminal
1# グローバルに一度だけインストール2npm i -g @sonenta/cli 4# またはインストールせずに実行5npx @sonenta/cli <command>

認証する

各呼び出しは mcp:* スコープで Authorization: ApiKey <prefix>.<secret> を送信します。一度ログインしてキーを ~/.sonenta/credentials に保存するか、CI では SONENTA_TOKEN を設定してください。

terminal
1# インタラクティブ — ホストごとにキーを ~/.sonenta/credentials (0600) に保存2sonenta login --host https://api.sonenta.com3API key: snt_live_••••••••.••••••••••••••••4✓ https://api.sonenta.com 用に保存しました 6# CI — プロンプトなし、キーは環境変数から読み込まれます7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta push

解決順序(先に見つかったものが優先されます):環境変数 SONENTA_TOKEN、次にアクティブなホストの ~/.sonenta/credentials です。キーは Org Settings → API Keysmcp:* スコープで発行してください。

設定する

sonenta init はリポジトリに sonenta.config.json を書き込みます(作業ディレクトリから上へたどって解決されます)。認証情報はユーザーごとに別途管理され、コミットされることはありません。

sonenta.config.json
1# リポジトリにコミットされます — ここにシークレットは含めません2{3  "host": "https://api.sonenta.com",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials — モード 0600、ユーザーごと、コミット厳禁2{ "default": "https://api.sonenta.com",3  "hosts": {4    "https://api.sonenta.com": { "api_key": "snt_live_..." }5  } }

version_slug のデフォルトは main です。API キーは sonenta.config.json に含めないでください。認証情報ファイルまたは SONENTA_TOKEN にのみ置くべきものです。

コマンド

用途別にグループ化されています。認証と設定のセットアップ、プロジェクトの調査、翻訳の同期などです。すべてのコマンドは MCP サーフェス経由で動作し、sonenta.config.json を尊重します。

認証とセットアップ

sonenta login ホスト用の API キーを保存します。

オプション

  • --host <url> 認証先の API ホストです。
  • --token <key> プロンプトの代わりに、対話なしでキーを渡します。

sonenta login --host https://api.sonenta.com
sonenta logout ホストの保存済み認証情報を削除します。

オプション

オプションはありません。

sonenta logout
sonenta whoami アクティブなホストとマスクされたキーを表示します。

オプション

オプションはありません。

sonenta whoami
sonenta init プロジェクト用に sonenta.config.json を生成します。

オプション

  • --project <uuid> 設定に書き込むプロジェクトの UUID です(必須)。
  • --version <slug> 対象とするバージョンの slug です(デフォルトは main)。
  • --force 既存の設定ファイルを上書きします。

sonenta init --project <uuid> --version main

調査

sonenta projects list お使いのキーでアクセスできるプロジェクトを一覧表示します。

オプション

オプションはありません。

sonenta projects list
sonenta keys list キーを namespace_slug/key_name の形式で一覧表示します。

オプション

  • --namespace <slug> 1 つの namespace に限定します。

sonenta keys list --namespace common
sonenta status ローカルの locales/ を remote と比較します。

オプション

  • --language <code> 差分比較を 1 つの言語に限定します。
  • --namespace <slug> 差分比較を 1 つの namespace に限定します。
  • --src <dir> ソースディレクトリです(デフォルトは locales)。

sonenta status
sonenta missing 実行時に検出された欠落キーを一覧表示します。

オプション

  • --language <code> 言語でフィルタリングします。
  • --namespace <slug> namespace でフィルタリングします。
  • --limit <n> 行数の上限を設定します。

sonenta missing --limit 50

インポートと同期

sonenta import <files...> i18next を一括インポートします。ネスト形式でもフラット形式でも対応し、キーを作成し、翻訳を upsert します。冪等です。

オプション

  • --dry-run プレビューのみで、何も送信しません。
  • --status <draft|translated> 受信ステータスです(デフォルトは translated)。
  • --language <code> パスから推測する代わりに、言語を強制指定します。
  • --namespace <slug> namespace を強制指定します(単独の <lang>.json には必須)。
  • --version <slug> デフォルト以外のバージョンを対象とします。

sonenta import locales/fr/common.json
sonenta push ローカルの locales/ ツリー全体を 1 回のインポート呼び出しで push します。

オプション

  • --src <dir> ソースディレクトリです(デフォルトは locales)。
  • --dry-run プレビューのみで、何も送信しません。
  • --status <state> 受信ステータスです(デフォルトは translated)。

sonenta push --dry-run
sonenta pull remote の翻訳を locales/<lang>/<namespace>.json(フラット形式)に書き出します。

オプション

  • --language <code> 1 つの言語に限定します。
  • --namespace <slug> 1 つの namespace に限定します。
  • --dest <dir> 出力先ディレクトリです(デフォルトは locales)。

sonenta pull --language fr
sonenta export i18next JSON としてエクスポートします。デフォルトはフラット形式で、--nested でツリー形式になります。

オプション

  • --nested フラットなキーの代わりにネストされたツリーを出力します。
  • --out <dir> stdout の代わりにディレクトリへファイルを書き出します。

sonenta export --nested --out ./dump
sonenta releases publish CDN リリースをトリガーします。購読中の SDK はライブで更新されます。

オプション

  • --version <slug> 公開するバージョンです(デフォルトは main)。
  • --dry-run プレビューのみで、何も公開しません。

sonenta releases publish
sonenta snapshot 公開 CDN バンドルを取得し、SDK の offline-first フォールバック用にビルド時モジュールへ取り込みます。

オプション

  • --format <ts|json> 出力フォーマット:ts(デフォルト)または json です。
  • --out <file> stdout の代わりにファイルへ書き出します。
  • --cdn <base> CDN ベースです(デフォルトは https://cdn.sonenta.com)。

sonenta snapshot --out src/sonenta-bundles.ts

すべてのコマンドは --host <url> も受け付け、設定済みの API ホストを 1 回の実行に限り上書きできます。

0.1 → 0.2 の破壊的変更

0.1 からアップグレードしますか? 2 つの変更について対応が必要です。

次のステップ