Opcje
-
--host <url>Host API, względem którego następuje uwierzytelnianie. -
--token <key>Przekaż klucz bezinteraktywnie zamiast wpisywać go w monicie.
Przykład
sonenta login --host https://api.sonenta.com CLI
v0.2.1 · npm · MITLekka 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.
Zmiana łamiąca · 0.1 → 0.2
Całe CLI działa teraz przez powierzchnię MCP: wymaga klucza API o zakresie mcp:* — klucze ograniczone do projektu zwracają 403. Wygeneruj taki klucz w panelu w sekcji Org Settings → API Keys i ponownie wydaj każdy klucz używany w wersji 0.1.
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> 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.com3API key: snt_live_••••••••.••••••••••••••••4✓ saved for https://api.sonenta.com 6# CI — no prompt, key read from the environment7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta 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:*.
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.com",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.com",3 "hosts": {4 "https://api.sonenta.com": { "api_key": "snt_live_..." }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.
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.
--host <url> Host API, względem którego następuje uwierzytelnianie. --token <key> Przekaż klucz bezinteraktywnie zamiast wpisywać go w monicie. sonenta login --host https://api.sonenta.com Brak opcji.
sonenta logout Brak opcji.
sonenta whoami --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. sonenta init --project <uuid> --version main Brak opcji.
sonenta projects list --namespace <slug> Ogranicz do jednego namespace. sonenta keys list --namespace common --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). sonenta status --language <code> Filtruj według języka. --namespace <slug> Filtruj według namespace. --limit <n> Ogranicz liczbę wierszy. sonenta missing --limit 50 --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. sonenta import locales/fr/common.json --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). sonenta push --dry-run --language <code> Ogranicz do jednego języka. --namespace <slug> Ogranicz do jednego namespace. --dest <dir> Katalog docelowy (domyślnie locales). sonenta pull --language fr --nested Emituj zagnieżdżone drzewa zamiast płaskich kluczy. --out <dir> Zapisz pliki do katalogu zamiast na stdout. sonenta export --nested --out ./dump --version <slug> Wersja do opublikowania (domyślnie main). --dry-run Tylko podgląd; nic nie publikuje. sonenta releases publish --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). sonenta snapshot --out src/sonenta-bundles.ts Każde polecenie akceptuje również --host <url>, aby nadpisać skonfigurowany host API na czas jednego uruchomienia.
Aktualizujesz z wersji 0.1? Dwie zmiany wymagają działania.
mcp:* — klucze ograniczone do projektu zwracają teraz 403. push wysyła teraz całe Twoje drzewo locales/ w jednym wywołaniu importu (wcześniej było to tworzenie klucza plus PUT na każde tłumaczenie). Jest idempotentny i wypisuje utworzone / zaktualizowane / niezmienione. import, export, releases publish, snapshot i projects list są nowe w wersji 0.2.0.