zode CLI makes sandboxes, opens shells in them, runs commands, and reports cost. It is a single binary.
Install
/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:
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.
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.