Referencia de CLIJSON y automatización

JSON y automatización

La CLI está hecha para automatizarse con scripts. Pasa --json para obtener salida legible por máquinas, contrólala desde CI con un token y descubre el esquema de cualquier comando en tiempo de ejecución.

El otro lector de esta salida es un agente de programación con IA: despliegue desde Claude Code muestra qué hace con el JSON de una compilación fallida.

--json en todas partes

Añade --json a cualquier comando para obtener salida estructurada. La CLI también cambia a JSON automáticamente cuando stdout no es un TTY.

lizard ps --json
lizard secrets list --json
lizard metrics --json

Comandos en streaming

Para los comandos en streaming (lizard up sin --detach), --json emite un objeto JSON por línea:

{ "event": "log", "line": "Step 1/8 : FROM node:20" }
{ "event": "log", "line": "..." }
{ "event": "deployed", "status": "running", "url": "https://app.onlizard.com" }

El stream termina con done, o error / failed. lizard up además emite un evento final deployed / failed / deploying con status y url (que puede ser null).

logs --json es una instantánea, no un stream

lizard logs --json devuelve las últimas 200 líneas (se puede cambiar con --tail N, máximo 1000) y sale. No esperes más salida de él.

Para un incidente específico, usa --restart latest o --restart <id>.

Descubrimiento de esquemas

Muestra los argumentos, opciones y códigos de salida exactos de cualquier comando:

lizard --help --json                 # whole tree + global flags + exit codes
lizard service set --help --json     # one command

La forma de la respuesta es { cli, version, command: { arguments, options, subcommands }, globalOptions, exitCodes }. Como se genera a partir del binario instalado, siempre coincide con tu versión; úsala de preferencia en lugar de fijar flags manualmente.

Uso en CI / sin interfaz

Autentícate con un token y vincula el proyecto explícitamente (up sin interfaz no creará un proyecto automáticamente):

# Set LIZARD_TOKEN through your CI secret store.
lizard init --name my-project
lizard up --ci --service api --detach

Comprueba los códigos de salida para decidir el flujo de tu pipeline:

CódigoSignificado
0éxito
1error genérico
2auth — token ausente/caducado
3no encontrado
4tiempo de espera agotado
5cancelado
if lizard redeploy --service api --json; then
  echo "Deploy succeeded"
else
  status=$?
  echo "Deploy failed with code $status" >&2
  lizard logs --build --json || true
  exit "$status"
fi