CLI-ReferenzJSON & Automatisierung

JSON & Automatisierung

Die CLI ist dafür gemacht, per Skript gesteuert zu werden. Übergebe --json für maschinenlesbare Ausgabe, nutze sie in CI mit einem Token und ermittle das Schema jedes Befehls zur Laufzeit.

Der andere Empfänger dieser Ausgabe ist ein KI-Coding-Agent — Deployment aus Claude Code zeigt, was er mit dem JSON eines fehlgeschlagenen Builds macht.

--json überall

Füge --json zu jedem Befehl hinzu, um strukturierte Ausgabe zu erhalten. Die CLI schaltet auch automatisch auf JSON um, wenn stdout kein TTY ist.

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

Streaming-Befehle

Bei Streaming-Befehlen (lizard up ohne --detach) gibt --json pro Zeile genau ein JSON-Objekt aus:

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

Der Stream endet mit done oder error / failed. lizard up gibt zusätzlich ein abschließendes Ereignis deployed / failed / deploying mit status und url aus (dies kann null sein).

logs --json ist eine Momentaufnahme, kein Stream

lizard logs --json gibt die letzten 200 Zeilen zurück (überschreibbar mit --tail N, maximal 1000) und beendet sich dann. Warte nicht darauf, wenn du weitere Ausgabe erwartest. Für einen bestimmten Vorfall verwende --restart latest oder --restart <id>.

Schema-Erkennung

Gib die exakten Argumente, Optionen und Exit-Codes eines beliebigen Befehls aus:

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

Die Form der Antwort ist { cli, version, command: { arguments, options, subcommands }, globalOptions, exitCodes }. Da sie aus deiner installierten Binärdatei erzeugt wird, passt sie immer zu deiner Version — ziehe sie fest codierten Flags vor.

CI / Headless-Nutzung

Authentifiziere dich mit einem Token und verknüpfe das Projekt explizit (headless up erstellt kein Projekt automatisch):

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

Prüfe Exit-Codes, um deine Pipeline zu verzweigen:

CodeBedeutung
0erfolgreich
1allgemeiner Fehler
2Authentifizierung — Token fehlt/abgelaufen
3nicht gefunden
4Zeitüberschreitung
5abgebrochen
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