# Zode > Linux VMs for coding agents. Start a sandbox, run commands, fork it, and pay per vCPU-hour. - [Introduction](https://docs.zode.dev/index.md): Zode runs Linux microVMs for coding agents. Each sandbox has its own kernel, disk and memory. - [Quickstart](https://docs.zode.dev/quickstart.md): Install the zode CLI, make a sandbox, run a command in it, fork it, then do the same from TypeScript or curl. - [Sandboxes](https://docs.zode.dev/concepts/sandboxes.md): What a sandbox is, its statuses and sizes, how stop differs from delete, how commands run, and the limits that apply. - [Snapshots and fork](https://docs.zode.dev/concepts/snapshots-and-fork.md): Fork copies a sandbox into a new one, memory included. A snapshot saves a sandbox so you can roll that same sandbox back. - [Custom images](https://docs.zode.dev/concepts/images.md): Build an image from a Dockerfile or setup commands, then start sandboxes from it with your tools installed and your services running. - [Official images](https://docs.zode.dev/concepts/official-images.md): Images Zode builds and keeps up to date for every workspace: the CI image behind runs-on: zode, and a base image for sandboxes. - [Environments and secrets](https://docs.zode.dev/concepts/environments-and-secrets.md): Named sets of variables and secrets that sandboxes read. Secret values stay on the host and never enter the VM. - [Browser and desktop](https://docs.zode.dev/concepts/browser-and-desktop.md): Run Chrome in a sandbox and drive it over CDP, or run a Linux desktop you can screenshot, click, type into and watch live. - [Agents](https://docs.zode.dev/concepts/agents.md): Run coding agents in sandboxes on your Claude or ChatGPT subscription or your own provider keys, with key failover, spend caps and a loop breaker on the host. AI spend is shown, never billed. - [Spend and caps](https://docs.zode.dev/concepts/spend-and-caps.md): How compute and storage accrue, how to cap spend per sandbox and per day, and how to read usage by repo, branch, PR, member, sandbox or model. - [Webhooks and telemetry](https://docs.zode.dev/concepts/webhooks-and-telemetry.md): Receive signed webhooks for workspace events, export sandbox metrics, traces and logs over OpenTelemetry, and read each sandbox's flight recorder. - [Alerts](https://docs.zode.dev/concepts/alerts.md): Send workspace alerts to email, Slack, Discord, Telegram or a signed webhook, with per-event rules, quiet hours and a delivery log. - [Attestation](https://docs.zode.dev/concepts/attestation.md): Check for yourself which signed release a sandbox's host runs, using the public Sigstore Rekor log and, where present, a TPM quote. - [CI](https://docs.zode.dev/concepts/ci.md): Run GitHub Actions jobs on fresh Zode sandboxes with runs-on: zode, with a monthly spend cap and per-job cost. - [Move a workflow to Zode](https://docs.zode.dev/ci/move-a-workflow.md): Change one line, runs-on, and a GitHub Actions job runs on Zode. Wrap the test command in zode-ci test to record results, shard and select tests. - [zode-ci test](https://docs.zode.dev/ci/zode-ci-test.md): Wrap a test command to store each test's result and duration. It never changes what runs or the job's result. - [Shards](https://docs.zode.dev/ci/shards.md): Split one test step across copies of the job's machine, with no matrix in the workflow. - [Test selection](https://docs.zode.dev/ci/selection.md): Off, Shadow or Enforce per repository. Shadow runs everything and records what it would have skipped; the miss count is how you know whether to trust it. - [Warm snapshots](https://docs.zode.dev/ci/warm-snapshots.md): What a warm snapshot keeps, which jobs may write it, which may read it, and where Zode does less than the PRD asks. - [CLI overview](https://docs.zode.dev/cli/overview.md): Install the zode CLI, sign in through the browser, and find every command. - [Sandboxes](https://docs.zode.dev/cli/sandboxes.md): List, make, enter, run commands in, fork, stop, start and delete sandboxes from the zode CLI. - [Browser and desktop](https://docs.zode.dev/cli/browser-desktop.md): Get a CDP endpoint for Chrome in a sandbox, and screenshot or drive its Linux desktop from the zode CLI. - [Images](https://docs.zode.dev/cli/images.md): Build custom sandbox images from a Dockerfile or setup commands with zode image, and start sandboxes from them. - [Cost](https://docs.zode.dev/cli/cost.md): See what your workspace spent, by day range and grouped by repo, branch, PR, member, sandbox or model, with zode cost. - [Verify](https://docs.zode.dev/cli/verify.md): Check a host's signed release and its Rekor transparency-log entry yourself with zode verify. - [MCP server](https://docs.zode.dev/cli/mcp.md): Give Claude Code, Codex, Cursor or any MCP client tools to make sandboxes and work in them with zode mcp. - [TypeScript SDK](https://docs.zode.dev/sdk/overview.md): Install @zodedev/sdk, set an API key, and create, run and delete a sandbox from Node. - [Sandboxes](https://docs.zode.dev/sdk/sandboxes.md): Create, list, stop, start, fork and delete sandboxes with the TypeScript SDK. - [Run commands](https://docs.zode.dev/sdk/exec.md): Run commands in a sandbox with exec, stream output, and drive long or interactive processes with spawn. - [Files](https://docs.zode.dev/sdk/files.md): Read, write, list and remove files inside a sandbox with sbx.files. - [Snapshots](https://docs.zode.dev/sdk/snapshots.md): Save a sandbox's disk and memory, list snapshots, roll back to one, and delete them with the TypeScript SDK. - [Browser and desktop](https://docs.zode.dev/sdk/browser-desktop.md): Drive Chrome in a sandbox over CDP with Playwright or Puppeteer, and control its Linux desktop with screenshots, clicks and keys. - [Environments](https://docs.zode.dev/sdk/environments.md): Manage environments, variables and vault secrets with zode.environments, and start sandboxes in an environment. - [Errors](https://docs.zode.dev/sdk/errors.md): The TypeScript SDK's error classes, the API error codes you will meet, and how to retry when a region is out of capacity. - [Security](https://docs.zode.dev/security.md): How Zode isolates sandboxes, controls their network and secrets, scopes API keys and roles, and records what happens in a workspace. - [Pricing](https://docs.zode.dev/pricing.md): What Zode charges for compute and storage, what each plan includes, and how billing works per second. - [Changelog](https://docs.zode.dev/changelog.md): User-facing changes to Zode: the API, CLI, SDK, console and sandboxes, newest first. - [API overview](https://docs.zode.dev/api-reference/overview.md): Base URL, API keys, errors, rate limits, pagination, ids, timestamps and money in the Zode HTTP API. - [Attach WebSocket](https://docs.zode.dev/api-reference/attach.md): The attach WebSocket runs a process in a sandbox and streams stdin, stdout, stderr, resize, signals and the exit status. - [List sandboxes](https://docs.zode.dev/api-reference/sandboxes/list-sandboxes.md): List the org's sandboxes that are not deleted, oldest first. - [Create a sandbox](https://docs.zode.dev/api-reference/sandboxes/create-a-sandbox.md): Placed at random among active nodes in the region with enough free RAM (weighted by free RAM). Returns once the node reports the sandbox running. An empty body creates a `small` sandbox. The sandbox reads its variables from `?environment=` (an id or a name; the workspace's `default` when absent) at… - [Get a sandbox](https://docs.zode.dev/api-reference/sandboxes/get-a-sandbox.md): Get a sandbox (including deleted ones). - [Delete a sandbox](https://docs.zode.dev/api-reference/sandboxes/delete-a-sandbox.md): Delete a sandbox and its disk. - [Fork a sandbox](https://docs.zode.dev/api-reference/sandboxes/fork-a-sandbox.md): Fork a running or stopped sandbox. - [Stop a sandbox](https://docs.zode.dev/api-reference/sandboxes/stop-a-sandbox.md): Stop (hibernate) a running sandbox. - [Start a sandbox](https://docs.zode.dev/api-reference/sandboxes/start-a-sandbox.md): Start a stopped sandbox on its host. - [Running sandboxes](https://docs.zode.dev/api-reference/sandboxes/running-sandboxes.md): Sandboxes running now against the plan's limit (every role). - [Run a command](https://docs.zode.dev/api-reference/commands/run-a-command.md): Run one command in a running sandbox and return its output. - [Open a session (WebSocket)](https://docs.zode.dev/api-reference/commands/open-a-session-websocket.md): Open an interactive session (WebSocket) in a running sandbox. - [Switch browser or desktop](https://docs.zode.dev/api-reference/browser-and-desktop/switch-browser-or-desktop.md): Switch the browser or the desktop on or off in a running sandbox. - [Get a CDP endpoint](https://docs.zode.dev/api-reference/browser-and-desktop/get-a-cdp-endpoint.md): A CDP endpoint for the sandbox's Chrome. - [Get the desktop size](https://docs.zode.dev/api-reference/browser-and-desktop/get-the-desktop-size.md): The desktop's size. - [Take a screenshot](https://docs.zode.dev/api-reference/browser-and-desktop/take-a-screenshot.md): The desktop as a PNG (computer use). - [Click, type, press keys](https://docs.zode.dev/api-reference/browser-and-desktop/click-type-press-keys.md): Move, click, type, press keys or scroll on the desktop (computer use). - [Get a live view URL](https://docs.zode.dev/api-reference/browser-and-desktop/get-a-live-view-url.md): A page that shows the desktop (to embed), watch-only or in control. - [List snapshots](https://docs.zode.dev/api-reference/snapshots/list-snapshots.md): The workspace's named snapshots, newest first (owner, admin, member). - [Take a snapshot](https://docs.zode.dev/api-reference/snapshots/take-a-snapshot.md): Snapshot a running or stopped sandbox, disk and RAM (owner, admin, member). - [Restore a snapshot](https://docs.zode.dev/api-reference/snapshots/restore-a-snapshot.md): Roll the sandbox back to a snapshot, disk and RAM (owner, admin, member). - [Delete a snapshot](https://docs.zode.dev/api-reference/snapshots/delete-a-snapshot.md): Delete a snapshot (owner, admin, member). - [List images](https://docs.zode.dev/api-reference/images/list-images.md): Base images the fleet can boot, and the workspace's custom images (owner, admin, member). - [Build an image](https://docs.zode.dev/api-reference/images/build-an-image.md): Build a custom image (owner, admin, member). - [Get an image](https://docs.zode.dev/api-reference/images/get-an-image.md): A custom image with its Dockerfile or setup (owner, admin, member). - [Read a build log](https://docs.zode.dev/api-reference/images/read-a-build-log.md): The build log from a byte offset (owner, admin, member). - [Delete an image](https://docs.zode.dev/api-reference/images/delete-an-image.md): Cancel a build or delete an image (owner, admin, member). - [List environments](https://docs.zode.dev/api-reference/environments/list-environments.md): The workspace's environments, default first (created on first read). - [Create an environment](https://docs.zode.dev/api-reference/environments/create-an-environment.md): Create an environment (owner, admin). - [Delete an environment](https://docs.zode.dev/api-reference/environments/delete-an-environment.md): Delete an environment with its variables and secrets (owner, admin). - [List variables](https://docs.zode.dev/api-reference/environments/list-variables.md): The environment's plain variables with values, by name (owner, admin, member). - [Set a variable](https://docs.zode.dev/api-reference/environments/set-a-variable.md): Create (201) or replace (200) a variable (owner, admin). - [Delete a variable](https://docs.zode.dev/api-reference/environments/delete-a-variable.md): Delete a variable (owner, admin). - [List secrets](https://docs.zode.dev/api-reference/environments/list-secrets.md): The environment's secrets, by name, never their values (owner, admin, member). - [Set a secret](https://docs.zode.dev/api-reference/environments/set-a-secret.md): Create (201) or replace (200) a secret (owner, admin); the value is write-only. - [Delete a secret](https://docs.zode.dev/api-reference/environments/delete-a-secret.md): Delete a secret (owner, admin). - [Read the timeline](https://docs.zode.dev/api-reference/flight-recorder/read-the-timeline.md): Read a sandbox's flight recorder timeline. - [Summarize a window](https://docs.zode.dev/api-reference/flight-recorder/summarize-a-window.md): Summarize a sandbox's flight recorder over a window. - [Attest a sandbox's host](https://docs.zode.dev/api-reference/attestation/attest-a-sandboxs-host.md): Attestation of the host a sandbox runs on (owner, admin, member). - [Attest a region](https://docs.zode.dev/api-reference/attestation/attest-a-region.md): Attestation of every active host in a region (any role). - [List harnesses and keys](https://docs.zode.dev/api-reference/agents/list-harnesses-and-keys.md): The caller's harnesses, credentials and defaults. - [Connect a provider key](https://docs.zode.dev/api-reference/agents/connect-a-provider-key.md): Connect (or replace) the caller's key for a provider. - [Disconnect a provider key](https://docs.zode.dev/api-reference/agents/disconnect-a-provider-key.md): Disconnect the caller's key for a provider. - [Set default harness and models](https://docs.zode.dev/api-reference/agents/set-default-harness-and-models.md): Set the default harness and default models. - [Get keys, breaker and caps](https://docs.zode.dev/api-reference/proxying/get-keys-breaker-and-caps.md): Workspace AI key order, loop breaker and spend caps. - [Add a workspace key](https://docs.zode.dev/api-reference/proxying/add-a-workspace-key.md): Add a workspace key to the end of a provider's failover order (owner, admin). - [Remove a workspace key](https://docs.zode.dev/api-reference/proxying/remove-a-workspace-key.md): Remove a workspace key (owner, admin). - [Set failover order](https://docs.zode.dev/api-reference/proxying/set-failover-order.md): Set a provider's failover order (owner, admin). - [Change breaker and caps](https://docs.zode.dev/api-reference/proxying/change-breaker-and-caps.md): Change loop breaker thresholds and spend caps (owner, admin). - [List endpoints](https://docs.zode.dev/api-reference/webhooks/list-endpoints.md): The workspace's webhook endpoints, the event catalogue and the cap. - [Add an endpoint](https://docs.zode.dev/api-reference/webhooks/add-an-endpoint.md): Add an endpoint; the signing secret is in this response only. - [Get an endpoint](https://docs.zode.dev/api-reference/webhooks/get-an-endpoint.md): One endpoint. - [Change an endpoint](https://docs.zode.dev/api-reference/webhooks/change-an-endpoint.md): Change url, description, event_types or enabled (any subset). - [Remove an endpoint](https://docs.zode.dev/api-reference/webhooks/remove-an-endpoint.md): Remove an endpoint; queued deliveries fail. - [Rotate the signing secret](https://docs.zode.dev/api-reference/webhooks/rotate-the-signing-secret.md): Replace the signing secret at once; the new one is in this response only. - [Send a test event](https://docs.zode.dev/api-reference/webhooks/send-a-test-event.md): Send a webhook.test event now, once, and return the delivery. - [List deliveries](https://docs.zode.dev/api-reference/webhooks/list-deliveries.md): The endpoint's delivery log, newest first. - [Resend a delivery](https://docs.zode.dev/api-reference/webhooks/resend-a-delivery.md): Queue a copy of a delivery (same event id and body, new delivery id). - [Get export settings](https://docs.zode.dev/api-reference/opentelemetry/get-export-settings.md): OTLP export settings and last run (header values never come back). - [Change export settings](https://docs.zode.dev/api-reference/opentelemetry/change-export-settings.md): Create or change the settings (any subset). - [Stop export](https://docs.zode.dev/api-reference/opentelemetry/stop-export.md): Remove the settings and stop export. - [Send a test record](https://docs.zode.dev/api-reference/opentelemetry/send-a-test-record.md): Send one log record to the saved endpoint and report the answer. - [Get alert settings](https://docs.zode.dev/api-reference/alerts/get-alert-settings.md): Alert settings and the event types rules can route (every role). - [Set the time zone](https://docs.zode.dev/api-reference/alerts/set-the-time-zone.md): Set the alert time zone (owner, admin). - [List channels](https://docs.zode.dev/api-reference/alerts/list-channels.md): Alert channels, oldest first (every role); secrets are never returned. - [Add a channel](https://docs.zode.dev/api-reference/alerts/add-a-channel.md): Add a channel (owner, admin). - [Change a channel](https://docs.zode.dev/api-reference/alerts/change-a-channel.md): Change a channel's name, recipients or secret (owner, admin). - [Delete a channel](https://docs.zode.dev/api-reference/alerts/delete-a-channel.md): Delete a channel; it leaves every rule and its queued deliveries go (owner, admin). - [Test a channel](https://docs.zode.dev/api-reference/alerts/test-a-channel.md): Send a test alert now and show the provider's answer (owner, admin). - [List rules](https://docs.zode.dev/api-reference/alerts/list-rules.md): Alert rules, oldest first (every role). - [Add a rule](https://docs.zode.dev/api-reference/alerts/add-a-rule.md): Route an event type to channels (owner, admin). - [Change a rule](https://docs.zode.dev/api-reference/alerts/change-a-rule.md): Change a rule (owner, admin); `quiet_hours` null clears it. - [Delete a rule](https://docs.zode.dev/api-reference/alerts/delete-a-rule.md): Delete a rule and its queued deliveries (owner, admin). - [List deliveries](https://docs.zode.dev/api-reference/alerts/list-deliveries.md): The 50 newest alert deliveries (owner, admin). - [Get CI setup](https://docs.zode.dev/api-reference/ci/get-ci-setup.md): CI setup, runner sizes, linked GitHub installations, monthly cap and spend (any role). - [List CI jobs](https://docs.zode.dev/api-reference/ci/list-ci-jobs.md): GitHub Actions jobs that asked for a Zode runner, newest first (any role). - [Set the monthly cap](https://docs.zode.dev/api-reference/ci/set-the-monthly-cap.md): Set or clear the monthly CI cap (owner, admin). - [Get usage](https://docs.zode.dev/api-reference/usage-and-billing/get-usage.md): Workspace usage for a range of UTC days (every role). - [Export usage as CSV](https://docs.zode.dev/api-reference/usage-and-billing/export-usage-as-csv.md): The same range as CSV, one row per day and group (every role). - [Get billing](https://docs.zode.dev/api-reference/usage-and-billing/get-billing.md): Plan, this month's usage and invoice estimate, credit, caps, billing email (owner, admin, billing). - [Change caps and billing](https://docs.zode.dev/api-reference/usage-and-billing/change-caps-and-billing.md): Change caps, auto top-up, billing email or plan (owner, billing). - [List invoices](https://docs.zode.dev/api-reference/usage-and-billing/list-invoices.md): Provider invoices with PDF links (owner, admin, billing). - [Who am I](https://docs.zode.dev/api-reference/workspace/who-am-i.md): The org, member and token behind the bearer token. - [Get the workspace](https://docs.zode.dev/api-reference/workspace/get-the-workspace.md): The workspace (any role). - [Change the workspace](https://docs.zode.dev/api-reference/workspace/change-the-workspace.md): Change the display name, slug or billing email (owner, admin). - [List members](https://docs.zode.dev/api-reference/workspace/list-members.md): The workspace's members, owner first, then by joined time (any role). - [Change a member's role](https://docs.zode.dev/api-reference/workspace/change-a-members-role.md): Change a member's role (owner, admin). - [Remove a member](https://docs.zode.dev/api-reference/workspace/remove-a-member.md): Remove a member, or leave (your own id). - [List invites](https://docs.zode.dev/api-reference/workspace/list-invites.md): Pending invites (not accepted, revoked or expired), newest first (owner, admin). - [Invite someone](https://docs.zode.dev/api-reference/workspace/invite-someone.md): Invite an email address (owner, admin). - [Resend an invite](https://docs.zode.dev/api-reference/workspace/resend-an-invite.md): Mail a new token with a fresh 7-day expiry (owner, admin). - [Revoke an invite](https://docs.zode.dev/api-reference/workspace/revoke-an-invite.md): Revoke an open invite (owner, admin). - [List API keys](https://docs.zode.dev/api-reference/workspace/list-api-keys.md): The org's live API tokens, oldest first (never the secret). - [Create an API key](https://docs.zode.dev/api-reference/workspace/create-an-api-key.md): Create an API token for the caller's member. - [Revoke an API key](https://docs.zode.dev/api-reference/workspace/revoke-an-api-key.md): Revoke an API token. - [Read the audit log](https://docs.zode.dev/api-reference/workspace/read-the-audit-log.md): The org's audit events, newest first (owner, admin). - [Export the audit log](https://docs.zode.dev/api-reference/workspace/export-the-audit-log.md): The filtered audit log as CSV, newest first, at most 50,000 rows (owner, admin; Team and Enterprise plans). - [Service status](https://docs.zode.dev/api-reference/platform/service-status.md): Whether each part of Zode works (public, cached 15 s). ## OpenAPI Specs - [openapi](/api-reference/openapi.yaml) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.