Terminal e IA

El comando joppa

Instalar el comando joppa y controlar Joppa desde la terminal o un script: estado, procesos, servicios, registros, diagnóstico, bases de datos y proxy, en texto o en JSON.

joppa controla la app en ejecución. Hace lo mismo que la ventana, desde una terminal o un script.

Instalar

Ajustes › Línea de comandos › Instalar joppa. Joppa crea un enlace al comando incluido en la app, en /usr/local/bin si es posible o, si no, en ~/.local/bin. Si esa carpeta no está en tu PATH, los Ajustes te dan la línea que debes añadir a ~/.zshrc.

joppa version

Los comandos

joppa                         # la app a pantalla completa en la terminal (TUI)
joppa status                  # proxy, CA, proyectos y dominios, servicios
joppa services                # los servicios y su estado
joppa start postgres          # inicia un servicio
joppa stop redis              # detiene un servicio
joppa logs postgres -n 200 -f # el registro, en continuo con -f
joppa procs                   # los procesos de los proyectos
joppa start acme              # inicia todo el proyecto (Iniciar todo)
joppa restart acme web        # reinicia un proceso
joppa logs acme api --grep error # el registro de un proceso, filtrado
joppa diagnose api.acme.test  # por qué este dominio no responde
joppa share app.acme.test     # compartir en la red local, con un código QR
joppa dbs postgres            # las bases de datos y sus URL de conexión
joppa proxy start             # o stop
joppa open                    # muestra la ventana de Joppa
joppa mcp                     # el servidor MCP (ver más abajo)
joppa uninstall               # desinstala Joppa, incluido este comando
Comando Alias Función
joppa o joppa tui Abre el TUI
joppa status st Proxy, CA, proyectos, dominios y su salud, servicios
joppa services svc Los servicios y su estado
joppa start <service> Inicia un servicio
joppa stop <service> Detiene un servicio
joppa logs <service> log El registro: -n / --lines N (100 por defecto), -f / --follow, --grep
joppa procs [proyecto] ps, processes Los procesos de un proyecto, o de todos los que tienen: estado, puerto, dominios, duración, reinicios
joppa start <proyecto> [proceso] Inicia un proceso (y aquellos de los que depende), o todo el proyecto
joppa stop <proyecto> [proceso] Detiene un proceso, o todo el proyecto
joppa restart <proyecto> [proceso] Reinicia un proceso, o todos los que están en marcha o marcados
joppa logs <proyecto> [proceso] log La salida de un proceso, o de todos (precedida de su nombre): -n, -f, --grep
joppa diagnose <dominio|proyecto> doctor Por qué un dominio no responde: proxy, DNS, certificado, puerto, proceso, respuesta
joppa share [dominio|proyecto] partager Comparte un dominio en la red local; --public con un túnel (consulta Compartir un dominio). Sin argumento: los recursos compartidos abiertos
joppa share stop <dominio> Deja de compartir (--public: solo el túnel)
joppa dbs <service> databases Las bases de datos de un servidor y sus URL
joppa db <acción> <servicio> … Exportación, importación, copia e instantáneas de una base (consulta Los datos de las bases)
joppa proxy start|stop Inicia o detiene el proxy
joppa open Muestra la ventana
joppa mcp Inicia el servidor MCP en stdio
joppa uninstall Desinstala Joppa (ver Desinstalar)
joppa help, joppa version Ayuda y versión

Indicar un servicio

Puedes referirte a un servicio como quieras: postgres, pg18, "PostgreSQL 18", su puerto 5432 o su identificador.

Indicar un proyecto y sus procesos

Un proyecto se indica por su nombre, su identificador o uno de sus dominios; un proceso, por su nombre en la pestaña Procesos (web, api, queue…). joppa start, stop y logs aceptan un servicio o un proyecto: con una sola palabra, Joppa busca primero un servicio. Si la palabra designa a la vez un servicio y un proyecto, el comando lo dice: escribe el puerto del servicio o un dominio del proyecto.

joppa start y joppa restart esperan a que los procesos respondan o fallen (30 segundos como máximo) y luego muestran su estado; un proceso que falla va seguido de las últimas líneas de su registro, y el comando sale con 1.

joppa diagnose comprueba cada eslabón entre el navegador y el servidor de desarrollo y dice cómo reparar lo que falta (los detalles están en inglés, como en la herramienta MCP diagnose). Sale con 1 si un dominio no responde.

Las opciones

Opción Efecto
--json, -j Salida JSON, para los scripts (en todos los comandos)
--launch Inicia Joppa si no está en marcha, sin preguntar
--grep <texto>, -g joppa logs: solo las líneas que contienen este texto (sin distinguir mayúsculas y minúsculas)
--public joppa share: un enlace público con un túnel (Joppa Pro)
--tunnel <cliente> joppa share: cloudflared (por defecto), ngrok, localhost-run o pinggy; implica --public
--install joppa share --public: descarga cloudflared si falta (huella comprobada)
--theme nuit|jour|auto Tema del TUI
--no-motion Desactiva las animaciones (o JOPPA_NO_MOTION=1)
-h, -v Ayuda, versión

Compartir un dominio

joppa share hace desde el terminal lo mismo que la ventana Compartir (consulta Compartir un sitio). El recurso compartido vive en la app: sigue abierto después del comando, hasta joppa share stop o hasta que Joppa se cierre.

joppa share app.acme.test                    # http://192.168.1.20:41306 y su código QR
joppa share acme                             # el primer dominio activo del proyecto
joppa share app.acme.test --public           # https://….trycloudflare.com (Joppa Pro)
joppa share app.acme.test --public --install # descarga antes cloudflared si falta
joppa share app.acme.test --tunnel pinggy    # o ngrok, localhost-run
joppa share                                  # los dominios compartidos
joppa share stop app.acme.test               # cierra la red local y el túnel
joppa share stop app.acme.test --public      # solo el túnel

En un terminal, la dirección se muestra con un código QR para escanear. Con --public, el comando espera a que el túnel tenga su dirección (50 segundos como máximo); si se cierra antes, muestra sus últimos mensajes y sale con 1.

Los datos de las bases

joppa db hace desde la terminal lo que hacen Exportar…, Importar…, Duplicar… e Instantáneas… en la página de un servicio (consulta Bases de datos). El servidor debe estar en ejecución; las rutas relativas parten de la carpeta actual.

joppa db export postgres acme                       # ./acme-2026-10-23.sql.gz
joppa db export mysql tienda ~/tienda.sql           # .sql, .sql.gz o .dump (PostgreSQL)
joppa db import postgres ~/acme.sql.gz              # en la base acme (según el nombre del archivo)
joppa db import postgres ~/acme.dump --into acme_test
joppa db import postgres ~/joppa-postgres-17-2026-10-20.sql --replace   # un servidor entero
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "antes de la migración"
joppa db snapshots postgres acme                    # identificador, fecha, tamaño, nombre
joppa db restore postgres acme 20261023-142501
Comando Función
joppa db export <servicio> <base> [archivo] Exporta una base; el formato sigue la extensión (.sql.gz por defecto)
joppa db import <servicio> <archivo> Importa un .sql, .sql.gz, .dump o la exportación de un servidor entero; --into <base> elige la base, --replace reemplaza una que existe
joppa db clone <servicio> <base> <copia> Copia una base en el mismo servidor
joppa db snapshot <servicio> <base> Toma una instantánea (Joppa Pro); --name <nombre> le da nombre
joppa db snapshots <servicio> <base> Las instantáneas de una base, de la más reciente a la más antigua
joppa db restore <servicio> <base> <instantánea> Devuelve la base a una instantánea (Joppa Pro), tras una instantánea de lo que contiene ahora

Sin --replace, una importación que reemplazaría una base se detiene antes de tocar nada y propone otro nombre. Las extensiones de PostgreSQL que faltan en el servidor se señalan antes de la importación.

Desinstalar

joppa uninstall hace lo mismo que Ajustes › Desinstalar: muestra lo que Joppa instaló en el equipo y lo elimina tras tu confirmación. El propio comando joppa se va con el resto. Por defecto se elimina todo lo que hay salvo los datos de los servicios; la carpeta de Joppa y la app se eliminan una vez cerrado Joppa. Ver Archivos y carpetas › Quitarlo todo.

joppa uninstall --dry-run            # muestra lo que se eliminaría, sin eliminar nada
joppa uninstall                      # pide confirmación (o/N)
joppa uninstall --yes --volumes      # sin preguntar, datos de los servicios incluidos
joppa uninstall -y --keep license,app
Opción Efecto
--dry-run Muestra la lista, no elimina nada
--yes, -y No pide confirmación (obligatorio fuera de un terminal)
--volumes Elimina también los datos de los servicios (volúmenes) y sus contenedores
--keep <elementos> Conserva elementos: mcp, cli, shell, containers, volumes, ca, dns, license, data, app

Si un paso falla (contraseña cancelada, runtime detenido…), los demás continúan, pero la carpeta de Joppa y la app se conservan y el comando sale con 1: corrígelo y vuelve a ejecutar joppa uninstall.

En un script

# Iniciar Joppa si hace falta y luego arrancar PostgreSQL antes de los tests
joppa start postgres --launch
joppa services --json | jq .

# Iniciar el proyecto y fallar si un proceso falla
joppa start acme --json | jq '.processes[] | {name, status}'

Códigos de salida

Código Significado
0 Éxito
1 Error; también un proceso que falla al iniciarse, o un dominio que joppa diagnose encuentra averiado
2 Comando u opción incorrectos
3 Joppa no está en marcha

Cómo funciona

La app escribe en su carpeta de configuración un archivo control.json (un puerto y un token, legible solo por ti). El comando lo usa para hablar con la API local de la app. Si Joppa no está en marcha, joppa lo dice y propone iniciarlo.

getjoppa.com › support

Cargando

¿No funciona? Escribe a [email protected]. Una simple pregunta: [email protected].