Skip to main content
The zode CLI makes sandboxes, opens shells in them, runs commands, and reports cost. It is a single binary.

Install

The script supports Linux and macOS on amd64 and arm64. It downloads the binary for your system, checks it against the published SHA-256 sums, and refuses to install on a mismatch. It installs to /usr/local/bin when that directory is writable, otherwise to ~/.local/bin. If the directory is not on your PATH, the script prints the export line to add. Set ZODE_INSTALL_DIR to pick the directory yourself:
Check the install:

Sign in

zode login uses a device flow. It prints a URL and a code, opens the browser when it can, and waits while you confirm the code in the console.
The code is good for 15 minutes. On a Linux machine with no display, the CLI does not open a browser; open the URL on any other device. zode login --api URL signs in against a different API origin and saves it. Sign-in creates an API key for your member in that workspace. The CLI saves it, with the API origin and workspace name, in zode/config.json under your user config directory, with file mode 0600: zode whoami shows who you are signed in as:
zode logout removes the API key from this machine. The key itself stays valid until you revoke it in the console under API keys (console.zode.dev/tokens).

Environment variables

Naming a sandbox

Every command that takes <sandbox> accepts its name or its sbx_ id. If two sandboxes share a name, the CLI refuses and asks for the id. zode ls lists both.

Exit codes

A revoked or missing key prints zode: not signed in, or the API key was revoked: run zode login.

Commands

Some commands have aliases: list for ls, create for new, shell for ssh, run for exec, delete for rm, images for image. zode help prints the full usage.