Billing
- Your Personal workspace now starts with the $10 of free credit at sign-up, no card needed. A team workspace still gets its $10 when its first card is saved, and nothing is granted twice. When credit runs out without a card, sandboxes stop as before. See Pricing.
- A three-step welcome on your first visit: run a sandbox on your credit, connect your agent, add a card. Open it again from Get started on an empty Sandboxes list, from the command palette, or at
console.zode.dev/?welcome. - Images is in tabs, like the other pages: Your images, Official and Base images.
Billing
- Storage is free for the first 48 hours of every sandbox, forks included. After that it is billed on the provisioned disk as before. Compute prices are unchanged.
- Running sandboxes needs a card on file or credit left. A workspace with neither gets 402
credit_exhaustedon create, fork and start, and its running sandboxes are stopped (hibernated, never deleted) within about 15 minutes. New workspaces start with $0 of credit; saving the first card adds the $10 signup credit. Workspaces with a card keep running and are invoiced monthly. Enterprise is exempt. See Pricing. - A Pro trial now gets Pro’s limits: 15 sandboxes running at once, 20 custom images kept and 2 building at once, and the desktop.
- Enterprise keeps flight recorder data for 90 days.
- The
balance.low,invoice.created,invoice.paidandinvoice.payment_failedwebhooks and alerts are now sent. See Webhooks.
plan_requiredis now always HTTP 402. It was 403 for the desktop on create, fork andPATCH /v1/sandboxes/{id}/features, and for workspace defaults inPATCH /v1/org.- 429
rate_limitedanswers carryX-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Resetnext toRetry-After. - The OpenAPI spec lists every error
codethe API returns, validates cleanly, and documents the four sandbox sizes and the one region,eu-central. Codes stay an open set: handle unknown ones by HTTP status. - A sandbox created without a size is
small(2 vCPU, 4 GB, 50 GB) in the API, CLI and MCP. The size nameddefaultis not the default. - Exec
envis merged into the default environment, with your entries winning; it never replaced it, and the spec now says so. - Deleting a workspace answers
key_destroyed: false: destroying the workspace key has not shipped yet. - Loop breaker alerts say the breaker “flagged a possible loop” unless the host enforces it.
zode execandzode sshrun a single command argument throughbash -lc, sozode exec demo -- 'npm ci && npm test'works. Several arguments still run as argv. A missing program readscommand not found: X.zode newtakes--environment,--prand--max-cost.zode forktakes--branch,--prand--max-cost.zode desktopexits 1 when the desktop is off.zode image build -frefuses a Dockerfile over 64 KB before uploading it.- The CLI says “API key” instead of “token”, and
zode verifyfailures no longer show host file paths. - The MCP
sandbox_createtool takesimage,browser,desktop,git_repo,git_branchandpr_number.
@zodedev/sdk 0.2.0)Sandbox.create({ image })boots from a custom image.sbx.featureErrorsays why a browser or desktop asked for at create or fork did not start.sbx.restore(snap)refuses another sandbox’s snapshot withwrong_sandbox.- The missing-key error points to the console’s API keys page.
- Zode now builds official images for every workspace, in every size, on every host. CI jobs (
runs-on: zode-*) useci-ubuntu-24.04. Sandboxes can ask forzode/basewithzode new --image zode/baseor"image": "zode/base". - A new version goes live on every host at once when all its builds are ready. The previous version is kept for 24 hours.
GET /v1/official-imageslists each published line with its version, sizes and installed software. It needs no API key. The Dockerfiles are in zodeops/runner-images.
- A second host in
eu-centraladds room for more sandboxes.
@zodedev/sdkis on npm under the Apache-2.0 licence. The current version is 0.1.1. See TypeScript SDK.- The desktop’s live view is now a page you embed in an iframe (
POST /v1/sandboxes/{id}/desktop/session,desktop.viewUrl()in the SDK). It is watch-only unless you ask forcontrol, and it replaces the earlier WebRTC stream. - Chrome and the desktop run as the
zodeuser. Chrome keeps its own sandbox and no longer shows the--no-sandboxwarning bar. - Chrome starts with sign-in, sync, password saving and translate prompts turned off.
- The desktop has accessibility (AT-SPI) on, CJK fonts, and the agent-browser and agent-desktop tools installed.
- Switching the browser and the desktop on at the same time no longer leaves Chrome headless.
- Sandboxes can run Chrome, driven over CDP, and a Linux desktop. Each is a switch:
browseranddesktopon create and fork, orPATCH /v1/sandboxes/{id}/features. The desktop needs Pro, Team or Enterprise. - CDP URLs now connect straight to the sandbox’s host.
- Custom images:
zode image buildfrom a Dockerfile or a list of commands, then boot sandboxes from the image. - First version of the TypeScript SDK.
zode verifychecks a host’s signed release against the Rekor transparency log. Hosts do not have signed releases installed yet, so it reports them as not verified.- Plans now limit sandboxes running at once: Free 2, Pro 15, Team 50. Over the limit, create, fork and start fail with
concurrency_limit. - Sandbox creates and forks are rate-limited per person and per workspace (
rate_limited). - Sign-up refuses throwaway email domains.
- Spend caps live in one place, Billing. The daily cap and the per-sandbox default set there apply everywhere.
- Free workspaces can start a 7-day Pro trial with no card. Promo codes can be redeemed in Billing.
- New agent harnesses: pi and Kimi Code. Amazon Bedrock, Vertex AI and DeepSeek work through the AI proxy.
GET /v1/concurrencyshows how many sandboxes count against the plan limit.- Console: a running-sandbox counter, Cmd+K search, a status page backed by
GET /v1/status, a Support link, a new sign-in page and a theme switcher. - AI agents can sign in to Zode as themselves with AgentID.
- Fixed: Claude subscription sign-in hung after a refused code.
- Fixed: a subscription sign-in in progress was lost when the API restarted.
- Sandboxes run as Cloud Hypervisor microVMs in four sizes, with
POST /v1/sandboxes/{id}/execand a Shell tab in the console. - The
zodeCLI:login,new,ls,ssh,exec,fork,stop,startandrm, with real interactive shells. zode mcpruns an MCP server on stdio for Claude Code, Codex and other agents.- Every sandbox has a full dev stack: PostgreSQL and Redis running, Docker, Node 22 with pnpm and yarn, Bun, Python, Go, Rust, SQLite,
gh, Chrome, Claude Code and Codex. zode execandzode sshtake-e KEY=VALUEand--env-file.- A sandbox created without a name gets one such as
brave-hopper. - Secrets are swapped in on the way out by the host’s egress proxy, so sandboxes never see their values.
- Snapshots save disk and memory together; the console can take, restore and delete them.
- Use your Claude or ChatGPT subscription for Claude Code and Codex in sandboxes.
- Workspaces with roles, team members and invites.
- Console pages for account, environments, agents, CI, webhooks and OpenTelemetry export, alerts, billing and usage.
GET /v1/sandboxesfilters bystatus,regionandcreated_by, and every sandbox records who created it.- Flight recorder routes:
GET /v1/sandboxes/{id}/timelineand/stats. - Console sign-in with email and password, email links and Google, plus privacy and terms pages.
- Fixed:
zode execsometimes printed a read error instead of the command’s exit code. - Fixed: an out-of-memory kill ended the whole session. The CLI now reports
killed: out of memoryand the sandbox keeps working.
- The API is live at
https://api.zode.dev, with an audit event for every change and a published OpenAPI spec. - The console is live at
console.zode.dev, with GitHub sign-in and device approval for CLI sign-in. - Usage is metered in micro-dollars against versioned prices, with plans and prepaid credit.
- Spend caps, a loop breaker for stuck agents, and alerts for out-of-memory kills.
- The flight recorder samples each sandbox’s CPU and memory every second and records its processes.
- The AI proxy tries workspace keys in order when one is rate-limited.