Zum Inhalt springen
Sonenta

CLI

v0.48.4 · npm · MIT

@sonenta/cli

Eine schlanke, skriptfähige Kommandozeile für alles, was Sie sonst im Dashboard erledigen würden: ein bestehendes i18next-Projekt importieren, Übersetzungen pushen und pullen, die CI gegen das Remote vergleichen, ein CDN-Release veröffentlichen und Bundles für einen Offline-First-Build snapshotten. MIT, auf npm.

Installation

Nur npm, es gibt keine Homebrew-Formel für die CLI. Erfordert Node 18 oder neuer und installiert den Befehl sonenta.

terminal
1# einmal global installieren2npm i -g @sonenta/cli 4# oder ohne Installation ausführen5npx @sonenta/cli <command>

Authentifizieren

Jeder Aufruf sendet Authorization: ApiKey <prefix>.<secret> mit dem Scope mcp:*. Melden Sie sich einmal an, um den Schlüssel in ~/.sonenta/credentials zu speichern, oder setzen Sie SONENTA_TOKEN in der CI.

terminal
1# interaktiv, speichert den Schlüssel pro 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, ohne Eingabeaufforderung, Schlüssel wird aus der Umgebung gelesen6export SONENTA_TOKEN=snt_live_<prefix>.<secret>7sonenta push

Auflösungsreihenfolge, der erste gewinnt: die Umgebungsvariable SONENTA_TOKEN, dann ~/.sonenta/credentials für den aktiven Host. Erstellen Sie den Schlüssel unter Org Settings → API Keys mit dem Scope mcp:*.

Konfigurieren

sonenta init schreibt eine sonenta.config.json in Ihr Repository (aufgelöst durch Hochlaufen vom aktuellen Verzeichnis). Anmeldedaten liegen separat, pro Benutzer, und werden niemals committet.

sonenta.config.json
1# in Ihr Repository committet, keine Geheimnisse hier2{3  "host": "https://api.sonenta.dev",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.sonenta/credentials
1# ~/.sonenta/credentials, Modus 0600, pro Benutzer, niemals committen2{ "default": "https://api.sonenta.dev",3  "hosts": {4    "https://api.sonenta.dev": { "api_key": "snt_live_<prefix>.<secret>" }5  } }

version_slug ist standardmäßig main. Halten Sie den API-Schlüssel aus der sonenta.config.json heraus, er gehört ausschließlich in die Anmeldedaten-Datei oder in SONENTA_TOKEN.

Befehle

Gruppiert nach Verwendungszweck, Authentifizierung und Konfiguration einrichten, ein Projekt inspizieren oder Übersetzungen synchronisieren. Jeder Befehl läuft über die MCP-Oberfläche und beachtet sonenta.config.json.

Auth & Konfiguration

sonenta login Einen API-Schlüssel für einen Host speichern.

Optionen

  • --host <url> API-Host, gegen den authentifiziert wird.
  • --token <key> Den Schlüssel ohne Eingabeaufforderung übergeben statt am Prompt.
  • --email <email> cmd_login_flag_email
  • --default cmd_login_flag_default

Beispiel

sonenta login --host https://api.sonenta.dev --token snt_live_<prefix>.<secret>
sonenta logout Die gespeicherten Anmeldedaten eines Hosts entfernen.

Optionen

Keine Optionen.

Beispiel

sonenta logout
sonenta whoami Den aktiven Host und einen maskierten Schlüssel anzeigen.

Optionen

Keine Optionen.

Beispiel

sonenta whoami
sonenta init sonenta.config.json für ein Projekt generieren.

Optionen

  • --project <uuid> UUID des Projekts, die in die Konfiguration geschrieben wird (erforderlich).
  • --version <slug> Version-Slug als Ziel (Standard main).
  • --force Eine bestehende Konfigurationsdatei überschreiben.

Beispiel

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

Inspizieren

sonenta projects list Die für Ihren Schlüssel erreichbaren Projekte auflisten.

Optionen

Keine Optionen.

Beispiel

sonenta projects list
sonenta keys list Schlüssel in der Form namespace_slug/key_name auflisten.

Optionen

  • --namespace <slug> Auf einen Namespace beschränken.

Beispiel

sonenta keys list --namespace common
sonenta status Ihr lokales locales/ gegen das Remote vergleichen.

Optionen

  • --language <code> Den Vergleich auf eine Sprache beschränken.
  • --namespace <slug> Den Vergleich auf einen Namespace beschränken.
  • --src <dir> Quellverzeichnis (Standard locales).

Beispiel

sonenta status
sonenta missing Zur Laufzeit erkannte fehlende Schlüssel auflisten.

Optionen

  • --language <code> Nach Sprache filtern.
  • --namespace <slug> Nach Namespace filtern.
  • --limit <n> Die Anzahl der Zeilen begrenzen.

Beispiel

sonenta missing --limit 50

Import & Synchronisierung

sonenta import <files...> i18next-Import in einem Durchlauf, verschachtelt oder flach; erstellt Schlüssel, aktualisiert Übersetzungen, idempotent.

Optionen

  • --dry-run Nur Vorschau; sendet nichts.
  • --status <draft|translated> Eingehender Status (Standard translated).
  • --language <code> Die Sprache erzwingen, statt sie aus dem Pfad abzuleiten.
  • --namespace <slug> Den Namespace erzwingen (erforderlich für eine nackte <lang>.json).
  • --version <slug> Eine nicht standardmäßige Version als Ziel.

Beispiel

sonenta import locales/fr/common.json
sonenta push Den gesamten lokalen locales/-Baum in einem einzigen Import-Aufruf pushen.

Optionen

  • --src <dir> Quellverzeichnis (Standard locales).
  • --dry-run Nur Vorschau; sendet nichts.
  • --status <state> Eingehender Status (Standard translated).

Beispiel

sonenta push --dry-run
sonenta pull Remote-Übersetzungen nach locales/<lang>/<namespace>.json (flach) schreiben.

Optionen

  • --language <code> Auf eine Sprache beschränken.
  • --namespace <slug> Auf einen Namespace beschränken.
  • --dest <dir> Zielverzeichnis (Standard locales).

Beispiel

sonenta pull --language fr
sonenta export Als i18next-JSON exportieren, standardmäßig flach, --nested für Bäume.

Optionen

  • --nested Verschachtelte Bäume statt flacher Schlüssel ausgeben.
  • --out <dir> Dateien in ein Verzeichnis schreiben statt auf stdout.

Beispiel

sonenta export --nested --out ./dump
sonenta releases publish Ein CDN-Release auslösen; die veröffentlichten Bundles werden Ihren Apps über das CDN ausgeliefert.

Optionen

  • --version <slug> Zu veröffentlichende Version (Standard main).
  • --dry-run Nur Vorschau; veröffentlicht nichts.

Beispiel

sonenta releases publish
sonenta snapshot Die öffentlichen CDN-Bundles in ein Build-Modul holen für das Offline-First-Fallback des SDK.

Optionen

  • --format <ts|json> Ausgabeformat: ts (Standard) oder json.
  • --out <file> In eine Datei schreiben statt auf stdout.
  • --cdn <base> CDN-Basis (Standard https://cdn.sonenta.com).

Beispiel

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

Jeder Befehl akzeptiert außerdem --host <url>, um den konfigurierten API-Host für einen einzelnen Lauf zu überschreiben.

Weiter