@sonenta/cli
En liten, skriptbar kommandorad för allt du annars skulle klicka dig igenom i dashboarden: importera ett befintligt i18next-projekt, pusha och hämta översättningar, jämför CI mot fjärrservern, publicera en CDN-release och ta en snapshot av buntarna för en offline-first-build. MIT, på npm.
Installera
Endast npm, det finns ingen Homebrew-formel för CLI:t. Kräver Node 18 eller senare och installerar kommandot sonenta.
terminal
1# installera en gång, globalt2npm i -g @sonenta/cli 4# eller kör utan att installera5npx @sonenta/cli <command>
Autentisera
Varje anrop skickar Authorization: ApiKey <prefix>.<secret> med scopet mcp:*. Logga in en gång för att lagra nyckeln i ~/.sonenta/credentials, eller sätt SONENTA_TOKEN i CI.
terminal
1# interaktivt, lagrar nyckeln per värd i ~/.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, ingen prompt, nyckeln läses från miljön6export SONENTA_TOKEN=snt_live_<prefix>.<secret>7sonenta push
Upplösningsordning, den första vinner: miljövariabeln SONENTA_TOKEN, sedan ~/.sonenta/credentials för den aktiva värden. Skapa nyckeln under Org Settings → API Keys med scopet mcp:*.
Konfigurera
sonenta init skriver en sonenta.config.json i ditt repo (löses ut genom att gå uppåt från arbetskatalogen). Autentiseringsuppgifter lagras separat, per användare, och checkas aldrig in.
sonenta.config.json
1# incheckad i ditt repo, inga hemligheter här2{3 "host": "https://api.sonenta.dev",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials, läge 0600, per användare, checka aldrig in2{ "default": "https://api.sonenta.dev",3 "hosts": {4 "https://api.sonenta.dev": { "api_key": "snt_live_<prefix>.<secret>" }5 } }
version_slug är som standard main. Håll API-nyckeln utanför sonenta.config.json, den hör enbart hemma i autentiseringsfilen eller i SONENTA_TOKEN.
Kommandon
Grupperade efter vad du gör, ställa in autentisering och konfiguration, inspektera ett projekt eller synka översättningar. Varje kommando körs mot MCP-ytan och respekterar sonenta.config.json.
Autentisering & konfiguration
sonenta login Lagra en API-nyckel för en värd. Flaggor
-
--host <url> API-värd att autentisera mot. -
--token <key> Skicka nyckeln icke-interaktivt i stället för via prompten. -
--email <email> cmd_login_flag_email -
--default cmd_login_flag_default
Exempel
sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret> sonenta logout Ta bort lagrade autentiseringsuppgifter för en värd. sonenta whoami Visa den aktiva värden och en maskerad nyckel. sonenta init Skapa en grund-sonenta.config.json för ett projekt. Flaggor
-
--project <uuid> Projektets UUID att skriva in i konfigurationen (obligatoriskt). -
--version <slug> Versions-slug att rikta in sig på (standard main). -
--force Skriv över en befintlig konfigurationsfil.
Exempel
sonenta init --project <uuid> --version main Inspektera
sonenta projects list Lista de projekt din nyckel kan nå.
Exempel
sonenta projects list sonenta keys list Lista nycklar som namespace_slug/key_name. Flaggor
-
--namespace <slug> Begränsa till ett namespace.
Exempel
sonenta keys list --namespace common sonenta status Jämför din lokala locales/ mot fjärrservern. Flaggor
-
--language <code> Begränsa jämförelsen till ett språk. -
--namespace <slug> Begränsa jämförelsen till ett namespace. -
--src <dir> Källkatalog (standard locales).
Exempel
sonenta status sonenta missing Lista nycklar som saknas och upptäckts vid körning. Flaggor
-
--language <code> Filtrera efter språk. -
--namespace <slug> Filtrera efter namespace. -
--limit <n> Sätt ett tak för antalet rader.
Exempel
sonenta missing --limit 50 Import & synk
sonenta import <files...> Engångsimport av i18next, nästlad eller platt; skapar nycklar, upsertar översättningar, idempotent. Flaggor
-
--dry-run Endast förhandsgranskning; skickar ingenting. -
--status <draft|translated> Inkommande status (standard translated). -
--language <code> Tvinga fram språket i stället för att härleda det från sökvägen. -
--namespace <slug> Tvinga fram namespace (obligatoriskt för en naken <lang>.json). -
--version <slug> Rikta in sig på en icke-standardversion.
Exempel
sonenta import locales/fr/common.json sonenta push Pusha hela det lokala locales/-trädet i ett enda importanrop. Flaggor
-
--src <dir> Källkatalog (standard locales). -
--dry-run Endast förhandsgranskning; skickar ingenting. -
--status <state> Inkommande status (standard translated).
Exempel
sonenta push --dry-run sonenta pull Skriv fjärröversättningar till locales/<lang>/<namespace>.json (platt). Flaggor
-
--language <code> Begränsa till ett språk. -
--namespace <slug> Begränsa till ett namespace. -
--dest <dir> Målkatalog (standard locales).
Exempel
sonenta pull --language fr sonenta export Exportera som i18next-JSON, platt som standard, --nested för träd. Flaggor
-
--nested Producera nästlade träd i stället för platta nycklar. -
--out <dir> Skriv filer till en katalog i stället för till stdout.
Exempel
sonenta export --nested --out ./dump sonenta releases publish Utlös en CDN-release; de publicerade paketen levereras till dina appar från CDN:et. Flaggor
-
--version <slug> Version att publicera (standard main). -
--dry-run Endast förhandsgranskning; publicerar ingenting.
Exempel
sonenta releases publish sonenta snapshot Hämta de publika CDN-buntarna till en build-tids-modul för SDK:ns offline-first-fallback. Flaggor
-
--format <ts|json> Utdataformat: ts (standard) eller json. -
--out <file> Skriv till en fil i stället för till stdout. -
--cdn <base> CDN-bas (standard https://cdn.sonenta.com).
Exempel
sonenta snapshot --out src/sonenta-bundles.ts Varje kommando accepterar även --host <url> för att åsidosätta den konfigurerade API-värden under en enda körning.