@sonenta/cli
CLI · npm · MIT
Une ligne de commande légère et scriptable pour tout ce que vous feriez autrement dans le dashboard : importer un projet i18next existant, pousser et tirer des traductions, comparer la CI au distant, publier une release CDN, et faire un snapshot des bundles pour un build offline-first. MIT, sur npm.
Installation
Section intitulée « Installation »npm uniquement, il n'y a pas de formule Homebrew pour la CLI. Nécessite Node 18 ou plus récent, et installe la commande sonenta.
# installer une fois, globalementnpm i -g @sonenta/cli
# ou exécuter sans installernpx @sonenta/cli <command>S'authentifier
Section intitulée « S'authentifier »Chaque appel envoie Authorization: ApiKey <prefix>.<secret> au scope mcp:*. Connectez-vous une fois pour stocker la clé dans ~/.sonenta/credentials, ou définissez SONENTA_TOKEN en CI.
# interactif: stocke la clé par hôte dans ~/.sonenta/credentials (0600)sonenta login --host https://api.sonenta.comAPI key: snt_live_••••••••.••••••••••••••••✓ enregistré pour https://api.sonenta.com
# CI: sans invite, la clé est lue depuis l'environnementexport SONENTA_TOKEN=snt_live_<prefix>.<secret>sonenta pushConfigurer
Section intitulée « Configurer »sonenta init écrit un sonenta.config.json dans votre dépôt (résolu en remontant depuis le répertoire courant). Les identifiants vivent à part, par utilisateur, et ne sont jamais committés.
// sonenta.config.json, committé dans votre dépôt, aucun secret ici{ "host": "https://api.sonenta.com", "project_uuid": "<project_uuid>", "version_slug": "main"}// ~/.sonenta/credentials, mode 0600, par utilisateur, ne jamais committer{ "default": "https://api.sonenta.com", "hosts": { "https://api.sonenta.com": { "api_key": "snt_live_..." } } }Commandes
Section intitulée « Commandes »Regroupées par usage, configurer l'authentification et la config, inspecter un projet, ou synchroniser les traductions. Chaque commande passe par la surface MCP et respecte sonenta.config.json.
Auth & config
Section intitulée « Auth & config »sonenta login
Section intitulée « sonenta login »Stocker une clé API pour un hôte.
| Option | Description |
|---|---|
--host <url> | Hôte API contre lequel s'authentifier. |
--token <key> | Passer la clé sans invite plutôt qu'au prompt. |
sonenta login --host https://api.sonenta.comsonenta logout
Section intitulée « sonenta logout »Supprimer les identifiants stockés d'un hôte. Aucune option.
sonenta logoutsonenta whoami
Section intitulée « sonenta whoami »Afficher l'hôte actif et une clé masquée. Aucune option.
sonenta whoamisonenta init
Section intitulée « sonenta init »Générer sonenta.config.json pour un projet.
| Option | Description |
|---|---|
--project <uuid> | UUID du projet à écrire dans la config (obligatoire). |
--version <slug> | Slug de version à cibler (défaut main). |
--force | Écraser un fichier de config existant. |
sonenta init --project <uuid> --version mainInspecter
Section intitulée « Inspecter »sonenta projects list
Section intitulée « sonenta projects list »Lister les projets accessibles à votre clé. Aucune option.
sonenta projects listsonenta keys list
Section intitulée « sonenta keys list »Lister les clés sous la forme namespace_slug/key_name.
| Option | Description |
|---|---|
--namespace <slug> | Restreindre à un namespace. |
sonenta keys list --namespace commonsonenta status
Section intitulée « sonenta status »Comparer votre locales/ local au distant.
| Option | Description |
|---|---|
--language <code> | Limiter la comparaison à une langue. |
--namespace <slug> | Limiter la comparaison à un namespace. |
--src <dir> | Répertoire source (défaut locales). |
sonenta statussonenta missing
Section intitulée « sonenta missing »Lister les clés manquantes détectées à l'exécution.
| Option | Description |
|---|---|
--language <code> | Filtrer par langue. |
--namespace <slug> | Filtrer par namespace. |
--limit <n> | Plafonner le nombre de lignes. |
sonenta missing --limit 50Import & synchronisation
Section intitulée « Import & synchronisation »sonenta import <files...>
Section intitulée « sonenta import <files...> »Import i18next en une passe, imbriqué ou plat ; crée les clés, met à jour les traductions, idempotent.
| Option | Description |
|---|---|
--dry-run | Prévisualisation seule ; n'envoie rien. |
--status <draft|translated> | Statut entrant (défaut translated). |
--language <code> | Forcer la langue au lieu de la déduire du chemin. |
--namespace <slug> | Forcer le namespace (obligatoire pour un <lang>.json nu). |
--version <slug> | Cibler une version non par défaut. |
sonenta import locales/fr/common.jsonsonenta push
Section intitulée « sonenta push »Pousser tout l'arbre locales/ local en un seul appel d'import.
| Option | Description |
|---|---|
--src <dir> | Répertoire source (défaut locales). |
--dry-run | Prévisualisation seule ; n'envoie rien. |
--status <state> | Statut entrant (défaut translated). |
sonenta push --dry-runsonenta pull
Section intitulée « sonenta pull »Écrire les traductions distantes dans locales/<lang>/<namespace>.json (plat).
| Option | Description |
|---|---|
--language <code> | Limiter à une langue. |
--namespace <slug> | Limiter à un namespace. |
--dest <dir> | Répertoire de destination (défaut locales). |
sonenta pull --language frsonenta export
Section intitulée « sonenta export »Exporter en JSON i18next, plat par défaut, --nested pour des arbres.
| Option | Description |
|---|---|
--nested | Émettre des arbres imbriqués au lieu de clés plates. |
--out <dir> | Écrire des fichiers dans un répertoire plutôt que sur stdout. |
sonenta export --nested --out ./dumpsonenta releases publish
Section intitulée « sonenta releases publish »Déclencher une release CDN : le bundle publié devient la version de production.
| Option | Description |
|---|---|
--version <slug> | Version à publier (défaut main). |
--dry-run | Prévisualisation seule ; ne publie rien. |
sonenta releases publishsonenta snapshot
Section intitulée « sonenta snapshot »Récupérer les bundles CDN publics dans un module de build pour le fallback offline-first du SDK.
| Option | Description |
|---|---|
--format <ts|json> | Format de sortie : ts (défaut) ou json. |
--out <file> | Écrire dans un fichier plutôt que sur stdout. |
--cdn <base> | Base CDN (défaut https://cdn.sonenta.com). |
sonenta snapshot --out src/sonenta-bundles.ts- Guide · Migrer depuis i18next: Le parcours d'onboarding copiable de bout en bout.
- Guide · Clés plates ou imbriquées: Empêcher les clés à points de casser.
- Guide · Mettre à jour la valeur source: Modifier le texte source d'une clé après coup.
Référence complète
Section intitulée « Référence complète »Chaque commande, avec tous ses drapeaux et exemples : voir la référence CLI complète.