> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zode.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> User-facing changes to Zode: the API, CLI, SDK, console and sandboxes, newest first.

**2026-11-13**

Free credit with no card; console welcome

**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](https://docs.zode.dev/pricing.md#when-credit-runs-out).

**Console**

* 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.

**2026-11-11**

Billing, API, CLI and SDK updates; capacity

**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_exhausted` on 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](https://docs.zode.dev/pricing.md#when-credit-runs-out).
* 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.paid` and `invoice.payment_failed` webhooks and alerts are now sent. See [Webhooks](https://docs.zode.dev/concepts/webhooks-and-telemetry.md#event-types).

**API**

* `plan_required` is now always HTTP 402. It was 403 for the desktop on create, fork and `PATCH /v1/sandboxes/{id}/features`, and for workspace defaults in `PATCH /v1/org`.
* 429 `rate_limited` answers carry `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` next to `Retry-After`.
* The OpenAPI spec lists every error `code` the 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 named `default` is not the default.
* Exec `env` is 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.

**CLI and MCP**

* `zode exec` and `zode ssh` run a single command argument through `bash -lc`, so `zode exec demo -- 'npm ci && npm test'` works. Several arguments still run as argv. A missing program reads `command not found: X`.
* `zode new` takes `--environment`, `--pr` and `--max-cost`. `zode fork` takes `--branch`, `--pr` and `--max-cost`.
* `zode desktop` exits 1 when the desktop is off.
* `zode image build -f` refuses a Dockerfile over 64 KB before uploading it.
* The CLI says "API key" instead of "token", and `zode verify` failures no longer show host file paths.
* The MCP `sandbox_create` tool takes `image`, `browser`, `desktop`, `git_repo`, `git_branch` and `pr_number`.

**TypeScript SDK** (`@zodedev/sdk` 0.2.0)

* `Sandbox.create({ image })` boots from a custom image.
* `sbx.featureError` says why a browser or desktop asked for at create or fork did not start.
* `sbx.restore(snap)` refuses another sandbox's snapshot with `wrong_sandbox`.
* The missing-key error points to the console's API keys page.

**Official images**

* Zode now builds [official images](https://docs.zode.dev/concepts/official-images.md) for every workspace, in every size, on every host. CI jobs (`runs-on: zode-*`) use `ci-ubuntu-24.04`. Sandboxes can ask for `zode/base` with `zode new --image zode/base` or `"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-images` lists each published line with its version, sizes and installed software. It needs no API key. The Dockerfiles are in [zodeops/runner-images](https://github.com/zodeops/runner-images).

**Capacity**

* A second host in `eu-central` adds room for more sandboxes.

**2026-11-10**

SDK on npm, new desktop view

* `@zodedev/sdk` is on npm under the Apache-2.0 licence. The current version is 0.1.1. See [TypeScript SDK](https://docs.zode.dev/sdk/overview.md).
* 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 for `control`, and it replaces the earlier WebRTC stream.
* Chrome and the desktop run as the `zode` user. Chrome keeps its own sandbox and no longer shows the `--no-sandbox` warning 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.

**2026-11-09**

Browser, desktop, custom images, plan limits

* Sandboxes can run Chrome, driven over CDP, and a Linux desktop. Each is a switch: `browser` and `desktop` on create and fork, or `PATCH /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 build` from a Dockerfile or a list of commands, then boot sandboxes from the image.
* First version of the TypeScript SDK.
* `zode verify` checks 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/concurrency` shows 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.

**2026-11-08**

Real sandboxes, CLI, MCP, workspaces

* Sandboxes run as Cloud Hypervisor microVMs in four sizes, with `POST /v1/sandboxes/{id}/exec` and a **Shell** tab in the console.
* The `zode` CLI: `login`, `new`, `ls`, `ssh`, `exec`, `fork`, `stop`, `start` and `rm`, with real interactive shells.
* `zode mcp` runs 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 exec` and `zode ssh` take `-e KEY=VALUE` and `--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/sandboxes` filters by `status`, `region` and `created_by`, and every sandbox records who created it.
* Flight recorder routes: `GET /v1/sandboxes/{id}/timeline` and `/stats`.
* Console sign-in with email and password, email links and Google, plus privacy and terms pages.
* Fixed: `zode exec` sometimes 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 memory` and the sandbox keeps working.

**2026-11-07**

First API and console

* 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.