Visión general de la CLI
Previsualiza la documentación localmente, valida la configuración, revisa los enlaces rotos y migra plataformas con el CLI de código abierto de Jamdesk.
El CLI de Jamdesk te permite previsualizar la documentación localmente, validar la configuración, revisar enlaces rotos y migrar desde otras plataformas. Es de código abierto bajo la Apache License 2.0.
Instalación
Instala globalmente desde npm para usar jamdesk desde cualquier lugar:
npm install -g jamdeskDespués de instalar, verifica que funciona:
jamdesk --version
Requisitos
- Node.js v20.0.0 o superior
- npm v8 o superior (recomendado)
Inicio rápido
Crea un nuevo proyecto de documentación:
jamdesk init my-docs
cd my-docsEjecuta el servidor de desarrollo local con recarga en caliente:
jamdesk devTu documentación estará disponible en http://localhost:3000/docs
Revisa los errores de configuración, los enlaces rotos y la ortografía:
jamdesk validate
jamdesk broken-links
jamdesk fix --dry-run
jamdesk fix
jamdesk spellcheckComandos
Ejecuta jamdesk <command> --help para obtener información detallada sobre cualquier comando.
Desarrollo
Inicia el servidor de desarrollo local con recarga en caliente.
jamdesk dev
jamdesk dev --port 3001Funciones:
- Validación automática al iniciar (esquema de docs.json, sintaxis de MDX y especificaciones de OpenAPI referenciadas; una especificación no válida detiene el servidor para que la detectes antes de desplegar)
- Recarga en caliente al modificar archivos MDX
- Reconstrucción automática de la navegación al modificar docs.json
- CSS personalizado (
style.css) recargado al actualizar el navegador - Funcionalidad de búsqueda completa
- Todos los temas y componentes disponibles
Opciones:
| Opción | Descripción |
|---|---|
-p, --port <port> | Puerto de ejecución (predeterminado: 3000) |
-v, --verbose | Habilita la salida detallada |
Crea un nuevo proyecto de documentación.
jamdesk init # Interactive mode
jamdesk init my-docs # Create in new directoryEsto crea un nuevo proyecto con:
- Archivo de configuración
docs.json - Páginas MDX de ejemplo
- Estructura de carpetas recomendada
Autenticación
Inicia sesión en Jamdesk mediante tu navegador. Necesario antes de desplegar.
jamdesk loginAbre el dashboard de Jamdesk en tu navegador para la autenticación. Las credenciales se almacenan localmente en ~/.jamdeskrc.
Borra las credenciales almacenadas.
jamdesk logoutMuestra el usuario autenticado actual y verifica que tu sesión sea válida.
jamdesk whoamiValidación
Valida la configuración de tu docs.json, la sintaxis de MDX y las especificaciones de OpenAPI.
jamdesk validate
jamdesk validate --skip-mdxComprueba lo siguiente:
- Sintaxis JSON válida en docs.json
- Campos obligatorios (name, navigation)
- Valores de tema válidos
- Errores de sintaxis de MDX (por ejemplo, caracteres
<sin escapar) - Validación de especificaciones de OpenAPI (si está configurado)
- Cumplimiento del esquema
Opciones:
| Opción | Descripción |
|---|---|
--skip-mdx | Omite la validación de la sintaxis de MDX |
-v, --verbose | Muestra una salida de validación detallada |
Ejecuta este comando antes de desplegar para detectar errores a tiempo.
Analiza tu documentación en busca de enlaces internos rotos.
jamdesk broken-linksEjemplo de salida:
docs/getting-started.mdx:15 - /docs/quikstart
Did you mean: /docs/quickstart
Found 1 broken link in 45 files.Detecta enlaces a páginas faltantes y errores tipográficos. Consulta Enlaces y navegación para más detalles.
Corrige automáticamente las advertencias de enlaces internos rotos que tienen un destino inequívoco. Gestiona dos categorías:
- Anclas con errores tipográficos: un fragmento como
#instalationque claramente debería ser#installation - Desviación de anclas entre configuraciones regionales: una página traducida cambió el nombre de sus encabezados, pero los enlaces de esa configuración regional siguen apuntando al fragmento en inglés antiguo
# Preview what would change without touching any files
jamdesk fix --dry-run
# Apply fixes (prompts for confirmation)
jamdesk fixEjemplo de salida en modo dry-run:
Planned fixes:
fr/ai/overview.mdx:9
/fr/ai/selectors#ai-strategies → /fr/ai/selectors#stratégies-ia
(dry run — no files written)Una corrección solo se escribe cuando el ancla corregida corresponde a un encabezado real en la página de destino. Los casos ambiguos se dejan para revisión manual.
Opciones:
| Opción | Descripción |
|---|---|
--dry-run | Previsualiza las correcciones planificadas sin escribir archivos |
-y, --yes | Aplica las correcciones sin solicitar confirmación |
--types <list> | Tipos de advertencia a corregir, separados por comas (predeterminado: todos los admitidos) |
Revisa tu documentación en busca de errores ortográficos.
jamdesk spellcheckEjemplo de salida:
getting-started.mdx:14 - "recieve"
└─ Did you mean: receive
Found 3 misspellings across 24 pages.
Tip: Run "jamdesk spellcheck --fix" to interactively fix or ignore words.Utiliza un diccionario en inglés con más de 150 términos técnicos integrados (API, GraphQL, Kubernetes, React, etc.) para que la jerga habitual no se marque. Omite los bloques de código, el código en línea, el frontmatter, el JSX, las URL y las rutas de archivo. Actualmente solo en inglés; está prevista la compatibilidad con diccionarios multilingües.
Opciones:
| Opción | Descripción |
|---|---|
--fix | Corrige errores de forma interactiva o los añade a la lista de exclusión |
--json | Genera la salida en formato JSON (para pipelines de CI) |
-v, --verbose | Muestra cada archivo a medida que se verifica |
El modo de corrección interactivo (--fix) recorre cada palabra mal escrita única:
1/10 "recieve" — found in 3 files
intro.mdx:14, setup.mdx:7, guide.mdx:22
? What do you want to do?
❯ Fix → receive (recommended)
Fix → relieve
Ignore in the future (add to docs.json)
Skip- Fix reemplaza la palabra por una sugerencia en todos los archivos (seguro para la prosa, no modifica los bloques de código ni los atributos JSX). Se muestran hasta 3 sugerencias, con la mejor coincidencia marcada como recomendada.
- Ignore añade la palabra a
spellcheck.ignoreen tu docs.json para que no se vuelva a marcar - Skip no hace nada en esta ejecución
Los cambios se previsualizan y confirman antes de aplicarse.
Lista de exclusión personalizada: añade términos específicos del proyecto a tu docs.json:
{
"spellcheck": {
"ignore": ["YourProduct", "kubectl", "Terraform"]
}
}El nombre de tu proyecto de docs.json se excluye automáticamente.
Valida un único archivo de especificación de OpenAPI.
jamdesk openapi-check openapi.yaml
jamdesk openapi-check api/spec.jsonValida lo siguiente:
- Sintaxis YAML/JSON válida
- Cumplimiento del esquema OpenAPI 3.x
- Definiciones de endpoints
- Las referencias
$refse resuelven correctamente
Tus especificaciones de OpenAPI se validan en tres lugares. jamdesk dev se detiene al iniciar si una especificación referenciada no es válida, y jamdesk validate / jamdesk openapi-check verifican las especificaciones bajo demanda. Cuando despliegas, el build en la nube también valida tus especificaciones referenciadas, pero ahí es una advertencia no bloqueante: el resto de tu documentación se publica de todos modos, y se te informa exactamente qué está mal (un error de análisis con línea y columna, una $ref sin resolver o un operationId duplicado) por correo electrónico y en la lista de builds del dashboard. Corrige la especificación y vuelve a hacer push para resolverlo.
Gestión de archivos
Cambia el nombre de una página y actualiza automáticamente todas las referencias.
jamdesk rename docs/old-name.mdx docs/new-name.mdxEsto hará lo siguiente:
- Cambiar el nombre del archivo
- Actualizar la navegación en docs.json
- Actualizar los enlaces en todos los demás archivos MDX
- Actualizar las referencias de snippet
Usa este comando en lugar de renombrar manualmente para mantener todas las referencias sincronizadas.
Migración
Migra la documentación de Mintlify a Jamdesk.
jamdesk migrateDetecta tu configuración de Mintlify y la convierte al formato de Jamdesk. En el mismo paso, cambia el nombre de los componentes obsoletos (por ejemplo, CardGroup → Columns), traslada los archivos MDX de snippets huérfanos a /snippets/ y reescribe las importaciones relativas al padre, extrae los componentes en línea que usan hooks de React a /snippets/<name>.tsx con 'use client', y corrige automáticamente los problemas mecánicos de sintaxis MDX. Es idempotente, por lo que puedes volver a ejecutarla de forma segura.
Despliegue
Sube tu documentación y activa un build directamente desde la terminal.
jamdesk deploy
jamdesk deploy --detach
jamdesk deploy --full-rebuildEl progreso se muestra en directo a medida que se completa cada fase del build. También está disponible como jamdesk push.
| Opción | Descripción |
|---|---|
--detach | Encola y sale de inmediato |
--full-rebuild | Fuerza un build completo (sin caché) |
--project <id> | Despliega en un proyecto específico |
--allow-empty | Permite desplegar sin páginas de contenido .mdx (rechazado de forma predeterminada) |
Genera y despliega un Cloudflare Worker que redirige /docs en tu propio dominio hacia tu sitio de Jamdesk.
jamdesk deploy-proxy cloudflare
jamdesk deploy-proxy cloudflare --slug myproject --domain example.com --yesInteractivo de forma predeterminada: comprueba Wrangler, verifica tu cuenta de Cloudflare, detecta automáticamente tu slug a partir de docs.json, genera los archivos del Worker y despliega opcionalmente. Con --yes, genera los archivos y se detiene; despliega con npx wrangler deploy desde el directorio de salida.
| Opción | Descripción |
|---|---|
--slug <slug> | Slug del proyecto de Jamdesk |
--domain <domain> | Dominio de destino (por ejemplo, example.com) |
--path <path> | Prefijo de ruta (predeterminado: /docs) |
--output-dir <dir> | Directorio de salida (predeterminado: cloudflare-worker/) |
--skip-deploy | Omite el aviso "¿desplegar ahora?" en una ejecución interactiva |
--force | Sobrescribe el directorio de salida si ya existe |
--yes | Responde a cada aviso con su valor predeterminado (modo CI). Nunca despliega ni sobrescribe un directorio existente |
Mantenimiento
Verifica tu entorno y diagnostica problemas.
jamdesk doctorComprobaciones:
- Versión de Node.js (requiere v20+)
- Versión de npm
- docs.json existe y es válido
- Estado de la caché de ~/.jamdesk
- Permisos de escritura
Ejecuta este comando si tienes problemas con el CLI.
Borra el directorio de caché ~/.jamdesk.
jamdesk cleanEsto elimina las dependencias en caché y los artefactos del build. Úsalo para:
- Liberar espacio en disco
- Solucionar problemas de caché dañada
- Forzar una instalación limpia de dependencias
Las dependencias se reinstalarán en el próximo jamdesk dev.
Actualiza el CLI a la última versión.
jamdesk updateTambién puedes actualizar manualmente:
npm update -g jamdeskConfiguración
Crea ~/.jamdeskrc para establecer las opciones predeterminadas:
{
"defaultPort": 3001,
"verbose": false,
"checkUpdates": true
}
| Opción | Tipo | Predeterminado | Descripción |
|---|---|---|---|
defaultPort | number | 3000 | Puerto predeterminado para el servidor de desarrollo |
verbose | boolean | false | Habilita la salida detallada de forma predeterminada |
checkUpdates | boolean | true | Comprueba actualizaciones del CLI al iniciar |
Solución de problemas
Los archivos MDX se analizan como JSX, por lo que ciertos caracteres tienen un significado especial.
Problema común: el carácter < se interpreta como el inicio de una etiqueta JSX.
✗ Found 1 MDX syntax error(s)
getting-started.mdx:42
Unexpected character `5` (U+0035) before name
Fix: A < character is being parsed as JSX. Use < or rewriteSoluciones:
- Usa
<para un menor que literal:Values <50% are low - Reescribe para evitar el carácter:
"Below 50%"en lugar de"<50%" - Ejecuta
jamdesk validatepara obtener mensajes de error detallados con números de línea
Asegúrate de estar en un directorio con un archivo docs.json.
Soluciones:
- Ejecuta
jamdesk initpara crear un nuevo proyecto - Comprueba que estás en el directorio correcto
- Verifica que el archivo se llame exactamente
docs.json(nodoc.jsonni algo similar)
El servidor de desarrollo puede fallar al iniciar por varias razones.
Prueba estos pasos:
- Ejecuta
jamdesk doctorpara comprobar tu entorno - Ejecuta
jamdesk cleanpara borrar la caché - Usa
jamdesk dev --verbosepara obtener una salida de error detallada - Comprueba que Node.js v20+ está instalado:
node --version
La primera ejecución instala las dependencias en ~/.jamdesk/node_modules.
Esto es normal y solo ocurre una vez. Las ejecuciones posteriores serán mucho más rápidas.
Otro proceso está utilizando el puerto predeterminado.
Soluciones:
# Use a different port
jamdesk dev --port 3001
# Or set a default in ~/.jamdeskrc
{ "defaultPort": 3001 }Es posible que no tengas permisos de escritura en el directorio de caché.
Soluciones:
- Comprueba los permisos de
~/.jamdesk:ls -la ~/.jamdesk - Corrige la propiedad:
sudo chown -R $(whoami) ~/.jamdesk - Ejecuta
jamdesk cleany vuelve a intentarlo
¿Sigues teniendo problemas? Consulta la guía de solución de problemas del CLI o abre un issue en GitHub.
