Aller au contenu
Verbumia

CLI

v0.2.1 · npm · MIT

@verbumia/cli

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.

Rupture · 0.1 → 0.2

Toute la CLI passe désormais par la surface MCP : il lui faut une clé API au scope mcp:* — les clés limitées au projet renvoient 403. Générez-en une dans le dashboard sous Org Settings → API Keys et ré-émettez toute clé utilisée avec la 0.1.

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

terminal
1# installer une fois, globalement2npm i -g @verbumia/cli 4# ou exécuter sans installer5npx @verbumia/cli <command>

S'authentifier

Chaque appel envoie Authorization: ApiKey <prefix>.<secret> au scope mcp:*. Connectez-vous une fois pour stocker la clé dans ~/.verbumia/credentials, ou définissez VERBUMIA_TOKEN en CI.

terminal
1# interactif — stocke la clé par hôte dans ~/.verbumia/credentials (0600)2verbumia login --host https://api.verbumia.dev3API key: vrb_live_••••••••.••••••••••••••••4✓ enregistré pour https://api.verbumia.dev 6# CI — sans invite, la clé est lue depuis l'environnement7export VERBUMIA_TOKEN=vrb_live_<prefix>.<secret>8verbumia push

Ordre de résolution, le premier l'emporte : la variable d'environnement VERBUMIA_TOKEN, puis ~/.verbumia/credentials pour l'hôte actif. Générez la clé sous Org Settings → API Keys au scope mcp:*.

Configurer

verbumia init écrit un verbumia.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.

verbumia.config.json
1# committé dans votre dépôt — aucun secret ici2{3  "host": "https://api.verbumia.dev",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.verbumia/credentials
1# ~/.verbumia/credentials — mode 0600, par utilisateur, ne jamais committer2{ "default": "https://api.verbumia.dev",3  "hosts": {4    "https://api.verbumia.dev": { "api_key": "vrb_live_..." }5  } }

version_slug vaut main par défaut. Gardez la clé API hors du verbumia.config.json — elle n'a sa place que dans le fichier d'identifiants ou dans VERBUMIA_TOKEN.

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 verbumia.config.json.

Auth & config

verbumia login Stocker une clé API pour un hôte.

Options

  • --host <url> Hôte API contre lequel s'authentifier.
  • --token <key> Passer la clé sans invite plutôt qu'au prompt.

Exemple

verbumia login --host https://api.verbumia.dev
verbumia logout Supprimer les identifiants stockés d'un hôte.

Options

Aucune option.

Exemple

verbumia logout
verbumia whoami Afficher l'hôte actif et une clé masquée.

Options

Aucune option.

Exemple

verbumia whoami
verbumia init Générer verbumia.config.json pour un projet.

Options

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

Exemple

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

Inspecter

verbumia projects list Lister les projets accessibles à votre clé.

Options

Aucune option.

Exemple

verbumia projects list
verbumia keys list Lister les clés sous la forme namespace_slug/key_name.

Options

  • --namespace <slug> Restreindre à un namespace.

Exemple

verbumia keys list --namespace common
verbumia status Comparer votre locales/ local au distant.

Options

  • --language <code> Limiter la comparaison à une langue.
  • --namespace <slug> Limiter la comparaison à un namespace.
  • --src <dir> Répertoire source (défaut locales).

Exemple

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

Options

  • --language <code> Filtrer par langue.
  • --namespace <slug> Filtrer par namespace.
  • --limit <n> Plafonner le nombre de lignes.

Exemple

verbumia missing --limit 50

Import & synchronisation

verbumia import <files...> Import i18next en une passe — imbriqué ou plat ; crée les clés, met à jour les traductions, idempotent.

Options

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

Exemple

verbumia import locales/fr/common.json
verbumia push Pousser tout l'arbre locales/ local en un seul appel d'import.

Options

  • --src <dir> Répertoire source (défaut locales).
  • --dry-run Prévisualisation seule ; n'envoie rien.
  • --status <state> Statut entrant (défaut translated).

Exemple

verbumia push --dry-run
verbumia pull Écrire les traductions distantes dans locales/<lang>/<namespace>.json (plat).

Options

  • --language <code> Limiter à une langue.
  • --namespace <slug> Limiter à un namespace.
  • --dest <dir> Répertoire de destination (défaut locales).

Exemple

verbumia pull --language fr
verbumia export Exporter en JSON i18next — plat par défaut, --nested pour des arbres.

Options

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

Exemple

verbumia export --nested --out ./dump
verbumia releases publish Déclencher une release CDN ; les SDK abonnés se rafraîchissent en direct.

Options

  • --version <slug> Version à publier (défaut main).
  • --dry-run Prévisualisation seule ; ne publie rien.

Exemple

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

Options

  • --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.verbumia.ca).

Exemple

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

Chaque commande accepte aussi --host <url> pour surcharger l'hôte API configuré le temps d'une exécution.

Ruptures 0.1 → 0.2

Vous montez depuis la 0.1 ? Deux changements demandent une action.

Ensuite