JSON と自動化
CLI はスクリプト化できるように作られています。機械可読な出力には --json を渡し、CI からはトークンで操作し、任意のコマンドのスキーマをランタイム時に検出できます。
この出力のもう 1 つの読み手は AI コーディングエージェントです — Claude Code からのデプロイ では、ビルド失敗時の JSON をどう扱うかを示しています。
どこでも --json
構造化出力のために、任意のコマンドに --json を追加します。stdout が TTY でない場合、CLI は自動的に JSON に切り替わります。
lizard ps --json
lizard secrets list --json
lizard metrics --jsonストリーミングコマンド
ストリーミングコマンドでは(--detach を付けない lizard up)、--json は 1 行につき 1 つの JSON オブジェクト を出力します:
{ "event": "log", "line": "Step 1/8 : FROM node:20" }
{ "event": "log", "line": "..." }
{ "event": "deployed", "status": "running", "url": "https://app.onlizard.com" }ストリームは done、または error / failed で終了します。lizard up はさらに、status と url(null の場合があります)を含む最終的な deployed / failed / deploying イベントを出力します。
logs --json はストリームではなくスナップショットです
lizard logs --json は 直近 200 行 を返し(--tail N で上書き可能、最大 1000)、終了します。さらに出力があることを期待して待機しないでください。特定のインシデントについては、--restart latest または --restart <id> を使用します。
スキーマ検出
任意のコマンドの正確な引数、オプション、終了コードを出力します:
lizard --help --json # whole tree + global flags + exit codes
lizard service set --help --json # one commandレスポンスの形式は { cli, version, command: { arguments, options, subcommands }, globalOptions, exitCodes } です。これはインストール済みのバイナリから生成されるため、常に使用中のバージョンと一致します — フラグをハードコードするよりこちらを優先してください。
CI / ヘッドレス利用
トークンで認証し、プロジェクトを明示的にリンクします(ヘッドレスな up ではプロジェクトは自動作成されません):
# Set LIZARD_TOKEN through your CI secret store.
lizard init --name my-project
lizard up --ci --service api --detach終了コードを確認してパイプラインを分岐してください:
| コード | 意味 |
|---|---|
0 | 成功 |
1 | 一般的なエラー |
2 | 認証 — トークンがない / 期限切れ |
3 | 見つからない |
4 | タイムアウト |
5 | キャンセル済み |
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