Tutorial sobre el paquete npm @devspeak/cli: instalación global, autenticación con clave de API mediante devspeak login, traducción de texto desde argumentos o stdin, adjuntar contexto local en PDF y Markdown con --file, y cómo integrar la CLI en un pipeline de CI usando la variable de entorno DEVSPEAK_API_KEY.
Automatiza Especificaciones con la CLI de DevSpeak
La CLI de DevSpeak expone el mismo motor de traducción que la aplicación web, lo que la hace utilizable desde una terminal, un script de shell o un trabajo de CI. Este tutorial cubre desde la instalación hasta un paso de CI funcionando.
Lo que Aprenderás
Requisitos Previos
Tiempo Estimado
~8 minutos
Paso 1 — Instala
`` npm install -g @devspeak/clibash
`
Verifica la instalación:
`bash
devspeak --version
`Paso 2 — Autentícate
`bash
devspeak login
`
La clave se escribe en $XDG_CONFIG_HOME/devspeak/config.json con permisos 600. Confirma que quedó registrada:
`bash
devspeak whoami
`
La salida enmascara la clave. Nunca se imprime completa, lo que hace que whoami sea seguro de ejecutar en una terminal compartida.Punto de Control
En este punto deberías tener:
mostrando un número de versión reportando una clave enmascarada y un endpointSi whoami falla, ejecuta devspeak doctor para una auditoría completa del entorno.Paso 3 — Traduce
Hay tres vías de entrada disponibles. Las tres llegan a POST /api/v1/translate.
` devspeak translate "Users should be able to export their data as CSV"bash
Argumento posicional
Canalizado desde stdin
cat notes.txt | devspeak translate --format "Jira Tickets"
Con contexto de archivo local
devspeak translate "Implement the auth flow" --file ./docs/prd.pdf
`
--file acepta PDF, Markdown y texto plano. Cada archivo puede pesar hasta 10 MiB, pero una petición lleva como máximo unos 3,1 MB de adjuntos en total, y ese total es el límite con el que realmente te vas a topar. Desde la versión 1.5.2, la CLI comprueba localmente, antes de cualquier llamada de red, que el archivo no esté vacío, sea de un tipo admitido y no supere ese total de 3,1 MB, así que esos fallos son inmediatos. Las versiones anteriores solo comprobaban 10 MB, así que un archivo más grande pasaba y después la API lo rechazaba. Si devspeak --version muestra una versión anterior a la 1.5.2, actualiza con npm install -g @devspeak/cli.
Paso 4 — Ejecútala en CI
devspeak login es interactivo y se quedará colgado en un runner de CI. Usa la variable de entorno en su lugar: tiene precedencia sobre cualquier clave almacenada.
`yaml
env:
DEVSPEAK_API_KEY: ${{ secrets.DEVSPEAK_API_KEY }}
run: |
devspeak translate "$(cat request.txt)" \
--audience "Senior Dev" \
--format "Technical Spec" > spec.md
`
Como los documentos van a stdout y los diagnósticos a stderr, la redirección anterior captura únicamente la especificación.Solución de Problemas
command not found: devspeak
El directorio bin global de npm no está en tu PATH. Ejecuta npm prefix -g, agrega su subdirectorio bin a tu PATH, o invoca la CLI con npx @devspeak/cli. command -v devspeak muestra qué binario resuelve tu shell.
401 Unauthorized en CI pero no en local
El runner está leyendo una clave distinta. DEVSPEAK_API_KEY tiene precedencia sobre el archivo de configuración, así que verifica que el secreto esté expuesto al paso y no solo al workflow.
Valor inválido para --audience
La audiencia, el contexto, el formato y el tono se validan localmente contra los mismos enums que aplica la API. Ejecuta devspeak translate --help para ver los valores aceptados.Resumen
Has aprendido a: