Opciones
-
--host <url>Host API contra el que autenticarse. -
--token <key>Pasar la clave sin prompt en lugar de pedirla.
Ejemplo
sonenta login --host https://api.sonenta.com CLI
v0.2.1 · npm · MITUna línea de comandos ligera y scriptable para todo lo que de otro modo harías en el dashboard: importar un proyecto i18next existente, hacer push y pull de traducciones, comparar la CI con el remoto, publicar una release de CDN y crear un snapshot de los bundles para un build offline-first. MIT, en npm.
Ruptura · 0.1 → 0.2
Toda la CLI pasa ahora por la superficie MCP: necesita una clave API con el scope mcp:* — las claves limitadas al proyecto devuelven 403. Genera una en el dashboard en Org Settings → API Keys y vuelve a emitir cualquier clave que usaras con la 0.1.
Solo npm — no hay fórmula de Homebrew para la CLI. Requiere Node 18 o más reciente, e instala el comando sonenta.
terminal 1# instalar una vez, globalmente2npm i -g @sonenta/cli 4# o ejecutar sin instalar5npx @sonenta/cli <command> Cada llamada envía Authorization: ApiKey <prefix>.<secret> con el scope mcp:*. Inicia sesión una vez para almacenar la clave en ~/.sonenta/credentials, o define SONENTA_TOKEN en la CI.
terminal 1# interactivo — almacena la clave por host en ~/.sonenta/credentials (0600)2sonenta login --host https://api.sonenta.com3API key: snt_live_••••••••.••••••••••••••••4✓ guardado para https://api.sonenta.com 6# CI — sin prompt, la clave se lee del entorno7export SONENTA_TOKEN=snt_live_<prefix>.<secret>8sonenta push Orden de resolución, gana el primero: la variable de entorno SONENTA_TOKEN, luego ~/.sonenta/credentials para el host activo. Genera la clave en Org Settings → API Keys con el scope mcp:*.
sonenta init escribe un sonenta.config.json en tu repositorio (resuelto subiendo desde el directorio actual). Las credenciales viven aparte, por usuario, y nunca se commitean.
sonenta.config.json 1# commiteado en tu repositorio — ningún secreto aquí2{3 "host": "https://api.sonenta.com",4 "project_uuid": "<project_uuid>",5 "version_slug": "main"6} ~/.sonenta/credentials 1# ~/.sonenta/credentials — modo 0600, por usuario, nunca commitear2{ "default": "https://api.sonenta.com",3 "hosts": {4 "https://api.sonenta.com": { "api_key": "snt_live_..." }5 } } version_slug vale main por defecto. Mantén la clave API fuera de sonenta.config.json — solo tiene su sitio en el archivo de credenciales o en SONENTA_TOKEN.
Agrupados según lo que estés haciendo — configurar la autenticación y la config, inspeccionar un proyecto o sincronizar traducciones. Cada comando pasa por la superficie MCP y respeta sonenta.config.json.
--host <url> Host API contra el que autenticarse. --token <key> Pasar la clave sin prompt en lugar de pedirla. sonenta login --host https://api.sonenta.com Sin opciones.
sonenta logout Sin opciones.
sonenta whoami --project <uuid> UUID del proyecto a escribir en la config (obligatorio). --version <slug> Slug de versión a apuntar (por defecto main). --force Sobrescribir un archivo de config existente. sonenta init --project <uuid> --version main Sin opciones.
sonenta projects list --namespace <slug> Restringir a un namespace. sonenta keys list --namespace common --language <code> Limitar la comparación a un idioma. --namespace <slug> Limitar la comparación a un namespace. --src <dir> Directorio de origen (por defecto locales). sonenta status --language <code> Filtrar por idioma. --namespace <slug> Filtrar por namespace. --limit <n> Limitar el número de filas. sonenta missing --limit 50 --dry-run Solo vista previa; no envía nada. --status <draft|translated> Estado entrante (por defecto translated). --language <code> Forzar el idioma en lugar de deducirlo de la ruta. --namespace <slug> Forzar el namespace (obligatorio para un <lang>.json simple). --version <slug> Apuntar a una versión no predeterminada. sonenta import locales/fr/common.json --src <dir> Directorio de origen (por defecto locales). --dry-run Solo vista previa; no envía nada. --status <state> Estado entrante (por defecto translated). sonenta push --dry-run --language <code> Limitar a un idioma. --namespace <slug> Limitar a un namespace. --dest <dir> Directorio de destino (por defecto locales). sonenta pull --language fr --nested Emitir árboles anidados en lugar de claves planas. --out <dir> Escribir archivos en un directorio en lugar de en stdout. sonenta export --nested --out ./dump --version <slug> Versión a publicar (por defecto main). --dry-run Solo vista previa; no publica nada. sonenta releases publish --format <ts|json> Formato de salida: ts (por defecto) o json. --out <file> Escribir en un archivo en lugar de en stdout. --cdn <base> Base del CDN (por defecto https://cdn.sonenta.com). sonenta snapshot --out src/sonenta-bundles.ts Cada comando también acepta --host <url> para sobrescribir el host API configurado durante una sola ejecución.
¿Subes desde la 0.1? Dos cambios requieren acción.
mcp:* — las claves limitadas al proyecto ahora devuelven 403. push ahora envía todo tu árbol locales/ en una sola llamada de import (antes era una creación de clave más un PUT por traducción). Es idempotente y muestra creadas / actualizadas / sin cambios. import, export, releases publish, snapshot y projects list son nuevos en la 0.2.0.