Skip to main content
You need a Zode account and a Linux or macOS machine (amd64 or arm64).
Your Personal workspace starts with $10 of free credit, no card needed: about 440 hours of a `small` sandbox. When it runs out, sandboxes stop until you add a card in **Billing**. A team workspace starts with $0 and gets its $10 when its first card is saved. See Pricing.

With the CLI

1

Install the CLI

The script checks the SHA-256 of the download and installs zode to /usr/local/bin if it can write there, otherwise to ~/.local/bin. Set ZODE_INSTALL_DIR to choose another directory.
2

Sign in

zode login opens your browser and prints a code. Confirm the code in the browser, and the CLI saves an API key for that workspace. zode whoami shows who and where you are signed in.
3

Make a sandbox

Without --size you get a small sandbox: 2 vCPU, 4 GB RAM, 50 GB disk. The command returns once the sandbox is running and prints its size, region and how long the create took.
4

Run a command

zode exec streams the output and exits with the command’s exit code.
5

Open a shell

You get a login shell in the sandbox. Type exit to leave; the sandbox keeps running.
6

Fork it

demo-2 is a new running sandbox with a copy of demo’s memory and disk. Processes running in demo are running in demo-2 too.
7

Stop one, delete the other

zode stop hibernates demo: its disk and memory are kept and compute billing stops. zode start demo wakes it. zode rm deletes demo-2 and its disk for good.
The Free plan runs at most 2 sandboxes at once. After the fork step, demo and demo-2 use both slots. A third create, fork or start fails with “Your free plan runs at most 2 sandboxes at once. Stop one first.” Stopped sandboxes do not count.

From TypeScript or curl

Both need an API key. Create one in the console under API keys (console.zode.dev/tokens), then export it:
The TypeScript SDK needs Node 22 or later:
These examples do the same steps as the CLI. If demo from the CLI steps still exists, run zode rm demo first or pick another name: names do not have to be unique, but the CLI then asks you for the id.
In the API and SDK you pick a size by vcpus: 2, 4, 8 or 16. RAM and disk follow the size, and leaving vcpus out gives small. A string command runs under bash -lc. The buffered exec route stops a command after 30 seconds by default and 55 seconds at most; for longer or interactive work, see Sandboxes. Errors come back as JSON with a stable code, for example:

Next