CLI Reference
Lizard CLI (lizard) deploys and manages apps, databases and Sandboxes on Lizard from a terminal, a CI job or a coding agent. This page covers installation, global flags, exit codes, and runtime discovery. Each command has a reference page in the sidebar. See lizard up, lizard service, lizard secrets, lizard pause and lizard resume, lizard sleep, and the rest. For an overview of what the CLI does, see the Lizard CLI page.
Reference written for Lizard CLI v4.0.65. Run
lizard <cmd> --help --jsonfor the exact, version-matched schema of any command.
Install & upgrade
curl -fsSL https://lizard.build/install.sh | bash # macOS and Linux
lizard --version
lizard upgrade # update to the latest version
lizard upgrade --check # check without installingSee lizard upgrade for the flags.
On Windows, run irm https://lizard.build/api/cli/install.ps1 | iex in PowerShell. With Node.js you can install from npm instead: npm install -g @lizard-build/cli.
On macOS and Linux, the binary from the install script also updates itself in the background, at most once every 6 hours, but only when it runs in an interactive terminal. It skips the check when CI or LIZARD_NO_UPDATE=1 is set. Agents, scripts and CI jobs never update in the background, so run lizard upgrade there yourself. The Windows binary does not update itself: run the installer again. For an npm install, lizard upgrade runs npm for you and prints the npm command only if that fails.
Use the globally installed lizard binary rather than npx. See Quickstart for permission-error fixes.
Authentication
lizard login # GitHub or Google in the browser, then the Pro trial offer
lizard login --token liz_xxx # API key auth
lizard logout
lizard whoami # current user, workspace, linked projectReference pages: lizard login, lizard logout, lizard whoami, and lizard workspace to list and create workspaces.
API keys start with liz_. Create one with lizard keys create <name>. In CI, set LIZARD_TOKEN (or LIZARD_API_KEY) in the environment instead of running login.
Global flags
| Flag | Description |
|---|---|
-V, --version | Print the CLI version |
--json | Machine-readable output. Combine with --help to dump a command’s schema |
Most commands also accept -p, --project and -s, --service to target a specific resource instead of the linked one. In a folder that is not linked, they use your default project. init, link, and project also take -w, --workspace. lizard add has no --project: it uses the linked project or the default one.
Exit codes
| Code | Meaning | What to do |
|---|---|---|
0 | success | continue |
1 | generic error | read the message |
2 | auth (401/403) | run lizard login |
3 | not found (404): the API has nothing with that ID | check the ID with lizard ps / lizard project list |
4 | timeout (408/504) | retry |
5 | cancelled by user | stop |
A project or service name that matches nothing exits 1, not 3. lizard run, lizard sandbox exec and lizard sandbox ssh exit with the command’s own code (127 when run can’t find the command), so a 2 from them may come from your command, not from auth.
Runtime discovery
The CLI is self-documenting. To see the full command tree, global flags, and exit codes:
lizard --help --jsonFor any command or subcommand’s exact arguments and options:
lizard <cmd> --help --json
lizard <cmd> <sub> --help --json # e.g. lizard service set --help --jsonThe output lists the arguments and flags your installed version accepts. It is also how an agent learns the CLI without being trained on it: see deploying from Claude Code.
Configuration & state
- The CLI stores auth and each folder’s project link in
~/.lizard/config.json. A link covers that exact folder, not its subfolders. In a folder with no link, project commands use your account’s default project: the oldest project in your personal workspace. lizard statusshows the cwd’s workspace/project/service link (no auth required).lizard linksets that link,lizard unlinkremoves it, andlizard projectlists, creates, pauses, resumes, and deletes projects.lizard config applyapplies alizard-config.jsonfile to a project (use--dry-runto preview).lizard openopens the linked project in the dashboard, andlizard docsopens these docs.
Environment variables
| Variable | Effect |
|---|---|
LIZARD_TOKEN | API key or token to use instead of the stored login |
LIZARD_API_KEY | Same as LIZARD_TOKEN |
LIZARD_API_URL | API base URL (default https://lizard.build) |
LIZARD_HOME | Keep CLI state in $LIZARD_HOME/.lizard instead of ~/.lizard |
LIZARD_NO_UPDATE | Turn off background self-update |
CI | Also turns off background self-update |
LIZARD_SKILLS_DIR | Read skills from this directory instead of the ones built into the CLI |
Sandbox volumes
Use names to manage Persistent Volumes within a project. Full reference: lizard volume and lizard sandbox.
lizard volume create agent-workdir --size 10 --project proj_123
lizard volume list --project proj_123
lizard volume resize agent-workdir --size 20 --project proj_123
lizard sandbox create --volume agent-workdir --project proj_123Names are unique per project: lowercase letters, digits and dashes, starting and ending with a letter or digit, up to 64 characters. New volumes allow whole GB from 1 to 50, default 5. The CLI reads the server’s current limits before creating a volume, so it follows config changes. Existing larger volumes keep their size.
After detaching a volume, lizard volume rm agent-workdir --project proj_123 deletes it and its data. volume list shows names; --json includes generated IDs.
Updated