Przejdź do treści
Verbumia

CLI

v0.2.1 · npm · MIT

@verbumia/cli

Mała, skryptowalna CLI do wszystkiego, co inaczej klikałbyś w panelu: bootstrap projektu, push i pull tłumaczeń, blokada CI na dryfie remote, podgląd kolejki brakujących kluczy. Licencja MIT, dystrybucja przez npm i Homebrew.

Breaking · 0.1 → 0.2

The whole CLI now runs on the MCP surface, so it needs an API key with the mcp:* scope — project-scoped keys return 403. Generate one in the dashboard under Org Settings → API Keys and re-issue any key you used with 0.1.

Instalacja

Wymaga Node 20 LTS lub nowszego. Instalowane są dwa binarne: verbumia i krótszy alias vrb — wymienne.

terminal
1# instalacja raz globalnie — bin "verbumia" plus krótszy alias "vrb"2npm i -g @verbumia/cli 4# albo użyj bez instalacji5npx @verbumia/cli <command>

Uwierzytelnij

Pobierz klucz API z Org Settings → API Keys → Create w panelu (sekret pokazuje się raz; skopiuj cały vrb_live_<prefix>.<secret>). Użyj scope project:read dla status / pull / missing / projects, project:write dla push.

terminal
1# interactive — stores the key per host in ~/.verbumia/credentials (0600)2verbumia login --host https://api.verbumia.dev3API key: vrb_live_••••••••.••••••••••••••••4✓ saved for https://api.verbumia.dev 6# CI — no prompt, key read from the environment7export VERBUMIA_TOKEN=vrb_live_<prefix>.<secret>8verbumia push

Resolution order, first wins: the VERBUMIA_TOKEN environment variable, then ~/.verbumia/credentials for the active host. Mint the key under Org Settings → API Keys with the mcp:* scope.

Konfiguruj projekt

Uruchom verbumia init w repo, by wygenerować verbumia.config.json w roocie, albo napisz go ręcznie. CLI auto-wykrywa też verbumia.config.{ts,js,toml,yml}, jeśli wolisz jeden z tych formatów.

verbumia.config.json
1# committed to your repo — no secrets here2{3  "host": "https://api.verbumia.dev",4  "project_uuid": "<project_uuid>",5  "version_slug": "main"6}
~/.verbumia/credentials
1# ~/.verbumia/credentials — mode 0600, per user, never commit2{ "default": "https://api.verbumia.dev",3  "hosts": {4    "https://api.verbumia.dev": { "api_key": "vrb_live_..." }5  } }

version_slug defaults to main. Keep the API key out of verbumia.config.json — it belongs in the credentials file or VERBUMIA_TOKEN only.

Komendy

Każda komenda przyjmuje --config <path> do wskazania niestandardowego pliku config, --token <vrb_live_…> do nadpisania rozwiązanej autoryzacji oraz --json do wyjścia w formacie maszynowym.

Auth & setup

verbumia login Interaktywny prompt klucza API. CLI waliduje klucz przez GET /v1/auth/me, potem zapisuje go w ~/.verbumia/credentials z trybem 600.

Flagi

  • --host <url> API host to authenticate against.
  • --token <key> podaj klucz inline (pomija prompt; przydatne dla skryptów)

Przykład

verbumia login --host https://api.verbumia.dev
verbumia logout Usuwa ~/.verbumia/credentials. Nie unieważnia klucza po stronie serwera — do tego użyj panelu.

Flagi

Brak flag specyficznych dla komendy. Użyj globalnych flag opisanych powyżej.

Przykład

verbumia logout
verbumia whoami Wypisuje organizację aktywnego klucza, powiązanie z projektem i nadane scope'y. Szybki sposób na debug niespodzianek typu „złe konto".

Flagi

Brak flag specyficznych dla komendy. Użyj globalnych flag opisanych powyżej.

Przykład

verbumia whoami
verbumia init Scaffolduje verbumia.config.json w bieżącym katalogu, prowadząc cię przez project_uuid, język źródłowy i format.

Flagi

  • --project <uuid> wstępnie wypełnij project_uuid
  • --version <slug> Version slug to target (defaults to main).
  • --force Overwrite an existing config file.

Przykład

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

Inspect

verbumia projects list Listuje projekty, do których aktywny klucz ma dostęp.

Flagi

Brak flag specyficznych dla komendy. Użyj globalnych flag opisanych powyżej.

Przykład

verbumia projects list
verbumia keys list List keys as namespace_slug/key_name.

Flagi

  • --namespace <slug> Restrict to one namespace.

Przykład

verbumia keys list --namespace common
verbumia status Diff tylko do odczytu między plikami lokalnymi a projektem remote — added / removed / changed per locale i namespace. Bez zapisów.

Flagi

  • --language <code> Limit the diff to one language.
  • --namespace <slug> Limit the diff to one namespace.
  • --src <dir> Source directory (defaults to locales).

Przykład

verbumia status
verbumia missing Listuje oczekujące zdarzenia brakujących kluczy zarejestrowane przez SDK runtime. Tylko do odczytu — przydatne do triage'u z terminala bez otwierania panelu.

Flagi

  • --language <code> Filter by language.
  • --namespace <slug> Filter by namespace.
  • --limit <n> maksymalna liczba wierszy (domyślnie 20)

Przykład

verbumia missing --limit 50

Import & sync

verbumia import <files...> One-shot i18next import — nested or flat; creates keys, upserts translations, idempotent.

Flagi

  • --dry-run Preview only; sends nothing.
  • --status <draft|translated> Incoming status (default translated).
  • --language <code> Force the language instead of inferring it from the path.
  • --namespace <slug> Force the namespace (required for a bare <lang>.json).
  • --version <slug> Target a non-default version.

Przykład

verbumia import locales/fr/common.json
verbumia push Wgrywa lokalne pliki i18n do Verbumia: tworzy nowe klucze, aktualizuje zmienione wartości i decyduje zgodnie z polityką on-missing-key, gdy klucz jest zreferowany, ale go brak.

Flagi

  • --src <dir> Source directory (defaults to locales).
  • --dry-run Preview only; sends nothing.
  • --status <state> Incoming status (default translated).

Przykład

verbumia push --dry-run
verbumia pull Pobiera tłumaczenia remote do skonfigurowanego pull.dest_dir — atomowo per plik. Działa też jako ścieżka „export": podaj --format, by konwertować na wyjściu.

Flagi

  • --language <code> Limit to one language.
  • --namespace <slug> Limit to one namespace.
  • --dest <dir> Destination directory (defaults to locales).

Przykład

verbumia pull --language fr
verbumia export Export as i18next JSON — flat by default, --nested for trees.

Flagi

  • --nested Emit nested trees instead of flat keys.
  • --out <dir> Write files to a directory instead of stdout.

Przykład

verbumia export --nested --out ./dump
verbumia releases publish Trigger a CDN release; subscribed SDKs refresh live.

Flagi

  • --version <slug> Version to publish (defaults to main).
  • --dry-run Preview only; publishes nothing.

Przykład

verbumia releases publish
verbumia snapshot Fetch the public CDN bundles into a build-time module for offline-first SDK fallback.

Flagi

  • --format <ts|json> Output format: ts (default) or json.
  • --out <file> Write to a file instead of stdout.
  • --cdn <base> CDN base (defaults to https://cdn.verbumia.ca).

Przykład

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

Every command also accepts --host <url> to override the configured API host for a single run.

Znane nadchodzące breaking changes

Przypięte dla transparentności. Każda zmiana ląduje w releasie minor z oknem deprecation jednej releasy — bądź na najnowszej @verbumia/cli, a zobaczysz ostrzeżenie przed breakiem.

Dalej