Aller au contenu

@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.

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.

Fenêtre de terminal
# installer une fois, globalement
npm i -g @sonenta/cli
# ou exécuter sans installer
npx @sonenta/cli <command>

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.

Fenêtre de terminal
# interactif: stocke la clé par hôte dans ~/.sonenta/credentials (0600)
sonenta login --host https://api.sonenta.com
API key: snt_live_••••••••.••••••••••••••••
enregistré pour https://api.sonenta.com
# CI: sans invite, la clé est lue depuis l'environnement
export SONENTA_TOKEN=snt_live_<prefix>.<secret>
sonenta push

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_..." }
} }

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.

Stocker une clé API pour un hôte.

OptionDescription
--host <url>Hôte API contre lequel s'authentifier.
--token <key>Passer la clé sans invite plutôt qu'au prompt.
Fenêtre de terminal
sonenta login --host https://api.sonenta.com

Supprimer les identifiants stockés d'un hôte. Aucune option.

Fenêtre de terminal
sonenta logout

Afficher l'hôte actif et une clé masquée. Aucune option.

Fenêtre de terminal
sonenta whoami

Générer sonenta.config.json pour un projet.

OptionDescription
--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.
Fenêtre de terminal
sonenta init --project <uuid> --version main

Lister les projets accessibles à votre clé. Aucune option.

Fenêtre de terminal
sonenta projects list

Lister les clés sous la forme namespace_slug/key_name.

OptionDescription
--namespace <slug>Restreindre à un namespace.
Fenêtre de terminal
sonenta keys list --namespace common

Comparer votre locales/ local au distant.

OptionDescription
--language <code>Limiter la comparaison à une langue.
--namespace <slug>Limiter la comparaison à un namespace.
--src <dir>Répertoire source (défaut locales).
Fenêtre de terminal
sonenta status

Lister les clés manquantes détectées à l'exécution.

OptionDescription
--language <code>Filtrer par langue.
--namespace <slug>Filtrer par namespace.
--limit <n>Plafonner le nombre de lignes.
Fenêtre de terminal
sonenta missing --limit 50

Import i18next en une passe, imbriqué ou plat ; crée les clés, met à jour les traductions, idempotent.

OptionDescription
--dry-runPré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.
Fenêtre de terminal
sonenta import locales/fr/common.json

Pousser tout l'arbre locales/ local en un seul appel d'import.

OptionDescription
--src <dir>Répertoire source (défaut locales).
--dry-runPrévisualisation seule ; n'envoie rien.
--status <state>Statut entrant (défaut translated).
Fenêtre de terminal
sonenta push --dry-run

Écrire les traductions distantes dans locales/<lang>/<namespace>.json (plat).

OptionDescription
--language <code>Limiter à une langue.
--namespace <slug>Limiter à un namespace.
--dest <dir>Répertoire de destination (défaut locales).
Fenêtre de terminal
sonenta pull --language fr

Exporter en JSON i18next, plat par défaut, --nested pour des arbres.

OptionDescription
--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.
Fenêtre de terminal
sonenta export --nested --out ./dump

Déclencher une release CDN : le bundle publié devient la version de production.

OptionDescription
--version <slug>Version à publier (défaut main).
--dry-runPrévisualisation seule ; ne publie rien.
Fenêtre de terminal
sonenta releases publish

Récupérer les bundles CDN publics dans un module de build pour le fallback offline-first du SDK.

OptionDescription
--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).
Fenêtre de terminal
sonenta snapshot --out src/sonenta-bundles.ts

Chaque commande, avec tous ses drapeaux et exemples : voir la référence CLI complète.