Przejdź do treści
Sonenta

CLI

v0.48.4 · npm · MIT

@sonenta/cli

Lekka i skryptowalna linia poleceń do wszystkiego, co inaczej robiłbyś w panelu: importowanie istniejącego projektu i18next, wypychanie i pobieranie tłumaczeń, porównywanie CI ze zdalnym repozytorium, publikowanie wydania CDN oraz tworzenie migawek pakietów na potrzeby buildu offline-first. MIT, na npm.

Instalacja

Wyłącznie npm, nie ma formuły Homebrew dla CLI. Wymaga Node 18 lub nowszego i instaluje polecenie sonenta.

terminal
1# install once, globally2npm i -g @sonenta/cli 4# or run without installing5npx @sonenta/cli <command>

Uwierzytelnianie

Każde wywołanie wysyła Authorization: ApiKey <prefix>.<secret> o zakresie mcp:*. Zaloguj się raz, aby zapisać klucz w ~/.sonenta/credentials, lub ustaw SONENTA_TOKEN w CI.

terminal
1# interactive, stores the key per host in ~/.sonenta/credentials (0600)2sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret>3Logged in as user@example.com (Acme Inc) on https://api.sonenta.dev. 5# CI, no prompt, key read from the environment6export SONENTA_TOKEN=snt_live_<prefix>.<secret>7sonenta push

Kolejność rozstrzygania, wygrywa pierwsza wartość: zmienna środowiskowa SONENTA_TOKEN, następnie ~/.sonenta/credentials dla aktywnego hosta. Wygeneruj klucz w sekcji Org Settings → API Keys o zakresie mcp:*.

Konfiguracja

sonenta init zapisuje plik sonenta.config.json w Twoim repozytorium (rozwiązywany poprzez wędrówkę w górę od katalogu roboczego). Dane uwierzytelniające żyją osobno, dla każdego użytkownika, i nigdy nie są commitowane.

sonenta.config.json
1# committed to your repo, no secrets here2{3  "host": "https://api.sonenta.dev",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials, mode 0600, per user, never commit2{ "default": "https://api.sonenta.dev",3  "hosts": {4    "https://api.sonenta.dev": { "api_key": "snt_live_<prefix>.<secret>" }5  } }

version_slug domyślnie wynosi main. Trzymaj klucz API poza sonenta.config.json, jego miejsce jest wyłącznie w pliku z danymi uwierzytelniającymi lub w SONENTA_TOKEN.

Polecenia

Pogrupowane według tego, co robisz, konfiguracja uwierzytelniania i ustawień, inspekcja projektu lub synchronizacja tłumaczeń. Każde polecenie działa przez powierzchnię MCP i respektuje sonenta.config.json.

Uwierzytelnianie i konfiguracja

sonenta login Zapisz klucz API dla hosta.

Opcje

  • --host <url> Host API, względem którego następuje uwierzytelnianie.
  • --token <key> Przekaż klucz bezinteraktywnie zamiast wpisywać go w monicie.
  • --email <email> cmd_login_flag_email
  • --default cmd_login_flag_default

Przykład

sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret>
sonenta logout Usuń zapisane dane uwierzytelniające dla hosta.

Opcje

Brak opcji.

Przykład

sonenta logout
sonenta whoami Pokaż aktywny host i zamaskowany klucz.

Opcje

Brak opcji.

Przykład

sonenta whoami
sonenta init Wygeneruj szkielet sonenta.config.json dla projektu.

Opcje

  • --project <uuid> UUID projektu do zapisania w konfiguracji (wymagane).
  • --version <slug> Slug wersji, którą chcesz wskazać (domyślnie main).
  • --force Nadpisz istniejący plik konfiguracyjny.

Przykład

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

Inspekcja

sonenta projects list Wylistuj projekty, do których ma dostęp Twój klucz.

Opcje

Brak opcji.

Przykład

sonenta projects list
sonenta keys list Wylistuj klucze jako namespace_slug/key_name.

Opcje

  • --namespace <slug> Ogranicz do jednego namespace.

Przykład

sonenta keys list --namespace common
sonenta status Porównaj lokalny katalog locales/ ze zdalnym.

Opcje

  • --language <code> Ogranicz porównanie do jednego języka.
  • --namespace <slug> Ogranicz porównanie do jednego namespace.
  • --src <dir> Katalog źródłowy (domyślnie locales).

Przykład

sonenta status
sonenta missing Wylistuj brakujące klucze wykryte w czasie działania.

Opcje

  • --language <code> Filtruj według języka.
  • --namespace <slug> Filtruj według namespace.
  • --limit <n> Ogranicz liczbę wierszy.

Przykład

sonenta missing --limit 50

Import i synchronizacja

sonenta import <files...> Jednorazowy import i18next, zagnieżdżony lub płaski; tworzy klucze, aktualizuje tłumaczenia, idempotentny.

Opcje

  • --dry-run Tylko podgląd; nic nie wysyła.
  • --status <draft|translated> Status przychodzący (domyślnie translated).
  • --language <code> Wymuś język zamiast wnioskować go ze ścieżki.
  • --namespace <slug> Wymuś namespace (wymagane dla samego pliku <lang>.json).
  • --version <slug> Wskaż wersję inną niż domyślna.

Przykład

sonenta import locales/fr/common.json
sonenta push Wypchnij całe lokalne drzewo locales/ w jednym wywołaniu importu.

Opcje

  • --src <dir> Katalog źródłowy (domyślnie locales).
  • --dry-run Tylko podgląd; nic nie wysyła.
  • --status <state> Status przychodzący (domyślnie translated).

Przykład

sonenta push --dry-run
sonenta pull Zapisz zdalne tłumaczenia do locales/<lang>/<namespace>.json (płasko).

Opcje

  • --language <code> Ogranicz do jednego języka.
  • --namespace <slug> Ogranicz do jednego namespace.
  • --dest <dir> Katalog docelowy (domyślnie locales).

Przykład

sonenta pull --language fr
sonenta export Eksportuj jako JSON i18next, domyślnie płasko, --nested dla drzew.

Opcje

  • --nested Emituj zagnieżdżone drzewa zamiast płaskich kluczy.
  • --out <dir> Zapisz pliki do katalogu zamiast na stdout.

Przykład

sonenta export --nested --out ./dump
sonenta releases publish Wyzwól wydanie CDN; opublikowane paczki są serwowane Twoim aplikacjom z CDN.

Opcje

  • --version <slug> Wersja do opublikowania (domyślnie main).
  • --dry-run Tylko podgląd; nic nie publikuje.

Przykład

sonenta releases publish
sonenta snapshot Pobierz publiczne pakiety CDN do modułu build-time na potrzeby fallbacku offline-first SDK.

Opcje

  • --format <ts|json> Format wyjściowy: ts (domyślnie) lub json.
  • --out <file> Zapisz do pliku zamiast na stdout.
  • --cdn <base> Baza CDN (domyślnie https://cdn.sonenta.com).

Przykład

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

Każde polecenie akceptuje również --host <url>, aby nadpisać skonfigurowany host API na czas jednego uruchomienia.

Dalej