@sonenta/cli
Et lett, skriptbart kommandolinjeverktøy for alt du ellers ville gjort i dashbordet: importere et eksisterende i18next-prosjekt, pushe og pulle oversettelser, sammenligne CI mot fjerntjeneren, publisere en CDN-release, og ta et snapshot av bundlene for et offline-first-bygg. MIT, på npm.
Installer
Kun npm, det finnes ingen Homebrew-formel for CLI-en. Krever Node 18 eller nyere, og installerer kommandoen sonenta.
terminal
1# installer én gang, globalt2npm i -g @sonenta/cli 4# eller kjør uten å installere5npx @sonenta/cli <command>
Autentiser
Hvert kall sender Authorization: ApiKey <prefix>.<secret> med mcp:*-scope. Logg inn én gang for å lagre nøkkelen i ~/.sonenta/credentials, eller sett SONENTA_TOKEN i CI.
terminal
1# interaktiv, lagrer nøkkelen per host 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 ledetekst, nøkkelen leses fra miljøet6export SONENTA_TOKEN=snt_live_<prefix>.<secret>7sonenta push
Oppløsningsrekkefølge, den første vinner: miljøvariabelen SONENTA_TOKEN, deretter ~/.sonenta/credentials for aktiv host. Generer nøkkelen under Org Settings → API Keys med mcp:*-scope.
Konfigurer
sonenta init skriver en sonenta.config.json i repoet ditt (løses ved å gå oppover fra arbeidskatalogen). Legitimasjonen ligger separat, per bruker, og committes aldri.
sonenta.config.json
1# committet til repoet ditt, ingen hemmeligheter her2{3 "host": "https://api.sonenta.dev",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials, modus 0600, per bruker, commit aldri2{ "default": "https://api.sonenta.dev",3 "hosts": {4 "https://api.sonenta.dev": { "api_key": "snt_live_<prefix>.<secret>" }5 } }
version_slug er main som standard. Hold API-nøkkelen utenfor sonenta.config.json, den hører kun hjemme i legitimasjonsfilen eller i SONENTA_TOKEN.
Kommandoer
Gruppert etter hva du gjør, sette opp auth og config, inspisere et prosjekt, eller synkronisere oversettelser. Hver kommando går mot MCP-flaten og respekterer sonenta.config.json.
Auth og oppsett
sonenta login Lagre en API-nøkkel for en host. Flagg
-
--host <url> API-host å autentisere mot. -
--token <key> Send nøkkelen ikke-interaktivt i stedet for ledeteksten. -
--email <email> cmd_login_flag_email -
--default cmd_login_flag_default
Eksempel
sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret> sonenta logout Fjern lagret legitimasjon for en host. sonenta whoami Vis aktiv host og en maskert nøkkel. sonenta init Generer sonenta.config.json for et prosjekt. Flagg
-
--project <uuid> Prosjekt-UUID som skrives inn i config (obligatorisk). -
--version <slug> Versjon-slug å sikte mot (standard main). -
--force Overskriv en eksisterende config-fil.
Eksempel
sonenta init --project <uuid> --version main Inspiser
sonenta projects list List opp prosjektene nøkkelen din når frem til.
Eksempel
sonenta projects list sonenta keys list List nøkler som namespace_slug/key_name. Flagg
-
--namespace <slug> Begrens til ett namespace.
Eksempel
sonenta keys list --namespace common sonenta status Sammenlign din lokale locales/ mot fjerntjeneren. Flagg
-
--language <code> Begrens sammenligningen til ett språk. -
--namespace <slug> Begrens sammenligningen til ett namespace. -
--src <dir> Kildekatalog (standard locales).
Eksempel
sonenta status sonenta missing List opp manglende nøkler oppdaget under kjøring. Flagg
-
--language <code> Filtrer etter språk. -
--namespace <slug> Filtrer etter namespace. -
--limit <n> Begrens antall rader.
Eksempel
sonenta missing --limit 50 Import og synkronisering
sonenta import <files...> Engangs i18next-import, nestet eller flat; oppretter nøkler, upserter oversettelser, idempotent. Flagg
-
--dry-run Kun forhåndsvisning; sender ingenting. -
--status <draft|translated> Innkommende status (standard translated). -
--language <code> Tving språket i stedet for å utlede det fra stien. -
--namespace <slug> Tving namespace (obligatorisk for en naken <lang>.json). -
--version <slug> Sikt mot en ikke-standard versjon.
Eksempel
sonenta import locales/fr/common.json sonenta push Push hele det lokale locales/-treet i ett enkelt import-kall. Flagg
-
--src <dir> Kildekatalog (standard locales). -
--dry-run Kun forhåndsvisning; sender ingenting. -
--status <state> Innkommende status (standard translated).
Eksempel
sonenta push --dry-run sonenta pull Skriv fjernoversettelser til locales/<lang>/<namespace>.json (flat). Flagg
-
--language <code> Begrens til ett språk. -
--namespace <slug> Begrens til ett namespace. -
--dest <dir> Målkatalog (standard locales).
Eksempel
sonenta pull --language fr sonenta export Eksporter som i18next-JSON, flat som standard, --nested for trær. Flagg
-
--nested Skriv ut nestede trær i stedet for flate nøkler. -
--out <dir> Skriv filer til en katalog i stedet for stdout.
Eksempel
sonenta export --nested --out ./dump sonenta releases publish Utløs en CDN-release; de publiserte pakkene serveres til appene dine fra CDN-et. Flagg
-
--version <slug> Versjon å publisere (standard main). -
--dry-run Kun forhåndsvisning; publiserer ingenting.
Eksempel
sonenta releases publish sonenta snapshot Hent de offentlige CDN-bundlene inn i en byggetidsmodul for offline-first SDK-fallback. Flagg
-
--format <ts|json> Utdataformat: ts (standard) eller json. -
--out <file> Skriv til en fil i stedet for stdout. -
--cdn <base> CDN-base (standard https://cdn.sonenta.com).
Eksempel
sonenta snapshot --out src/sonenta-bundles.ts Hver kommando godtar også --host <url> for å overstyre den konfigurerte API-hosten for én enkelt kjøring.