Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@
"pages": [
"features/sandbox/overview",
"features/projects",
"features/sandbox/computer",
"features/sandbox/keep-alive",
"features/sandbox/custom-dependencies",
"features/sandbox/environment-variables"
]
Expand Down
65 changes: 65 additions & 0 deletions features/sandbox/computer.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: 'Computer'
description: 'Watch and control the sandbox desktop while a session runs.'
---

The **Computer** tab streams the Linux desktop running inside your session's [sandbox](/features/sandbox/overview) into the Tembo dashboard. Use it to watch what an agent is doing in a browser or editor, and to take over with your own mouse and keyboard when you want to drive the environment yourself.

The desktop runs in the same VM as the agent, so both see the same `/workspace`, the same installed [dependencies](/features/sandbox/custom-dependencies), and the same [environment variables](/features/sandbox/environment-variables).

## Prerequisites

- The session runs in a VM sandbox.
- The VM is running. If it has stopped, send a message in the session to start it again.

## Open the Computer tab

1. Open a session in the [dashboard](https://app.tembo.io).
2. In the session's right sidebar, select **Computer**.

The sidebar also holds **Changes**, **Artifacts**, **Files**, **Terminal**, and **VM logs**. In the expanded view these open as tabs, so you can keep the desktop next to a diff or a terminal.

## What's on the desktop

A dock at the bottom of the desktop launches the tools bundled into the sandbox image:

| Dock item | Application | Opens |
|-----------|-------------|-------|
| Menu | Ulauncher | Application search |
| Browser | Chromium | `about:blank` |
| Files | PCManFM | `/workspace` |
| Code | Visual Studio Code | `/workspace` |
| Terminal | Ghostty | `/workspace` |

Because agents drive this same desktop, browser automation and other GUI work show up live in the preview.

## Copy and paste

The stream carries the clipboard in both directions, so you can copy text out of the sandbox desktop and paste your own text into it using your normal keyboard shortcuts.

## Copy or refresh the preview URL

While the **Computer** tab is open, two buttons appear in the sidebar header:

- **Copy computer URL** copies the preview URL so you can open the desktop in its own browser tab.
- **Refresh computer URL** re-establishes the tunnel to the desktop. Use it if the stream looks stale or blank.

<Note>
The preview URL changes whenever the tunnel restarts. A URL you copied earlier stops working after a refresh or after the VM restarts — copy it again.
</Note>

## Preview states

| State | What it means |
|-------|---------------|
| **Computer is booting up** | The VM is still starting. The message names the current boot phase. |
| **Refreshing computer URL** | A refresh is in flight. The preview reloads when the new URL is ready. |
| **Computer unavailable** | The session has no running VM. The preview appears once a VM is running. |

After the VM reports as running, the desktop stream can take up to about a minute to become available. Tembo keeps polling for it in the background and reloads the preview automatically.

## Constraints

- The desktop is streamed at 60 FPS from inside the sandbox. Throughput depends on your network connection to the tunnel.
- Docker-based sandboxes do not run a desktop, so the **Computer** tab stays unavailable for them.
- The desktop is part of the sandbox, so the stream ends when the VM stops. Extend the session's [keep-alive window](/features/sandbox/keep-alive) if you want the desktop to stay up after the agent finishes.
79 changes: 79 additions & 0 deletions features/sandbox/keep-alive.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
title: 'Keep Alive'
description: 'Control how long a session sandbox keeps running after the agent finishes.'
---

A session's [sandbox](/features/sandbox/overview) VM does not stop the moment an agent finishes. Tembo holds it open for a short keep-alive window so you can read the diff, run commands in the terminal, or drive the [Computer](/features/sandbox/computer) desktop. When the window expires, Tembo stops the VM.

Keep-alive is what you extend when you want more time in a live sandbox — and what to watch when a sandbox disappears sooner than you expected.

## Default windows

Each time work completes in a session, Tembo pushes the stop time out based on where the work came from:

| Where the work came from | Keep-alive after it finishes |
|--------------------------|------------------------------|
| Dashboard session or chat message | 10 minutes |
| Slack message or reply | 5 minutes |
| Scheduled or triggered [agent](/features/agents) | 1 minute |

These automatic extensions only ever move the stop time later. They never shorten a longer window you set yourself.

<Note>
Self-hosted deployments can change the dashboard and Slack windows with the `SANDBOX_KEEP_ALIVE_APP_MINUTES` and `SANDBOX_KEEP_ALIVE_SLACK_MINUTES` environment variables. See [Self-hosted](/features/self-hosted/overview).
</Note>

## An open session tab holds the VM open

While a session is the active tab and your browser window is focused, the dashboard sends a keep-alive heartbeat every 4 minutes that pushes the stop time 10 minutes out. You do not need to do anything to keep a sandbox alive while you are actively looking at it.

Switching tabs, backgrounding the window, or closing the session stops the heartbeat, so the VM stops roughly 10 minutes later.

## Extend from the composer

To hold a sandbox open for longer than the default window:

1. Type `/` in the session composer.
2. Select **Keep alive**.
3. Choose **10 minutes**, **1 day**, or **1 week**.

A checkmark marks the window that is currently in effect. If the session has no running VM, the option reads **No active VM** and cannot be selected.

<Warning>
Choosing a duration sets the window from now, so it can shorten an existing one. Selecting **10 minutes** while a 1 week window is active leaves 10 minutes, not a week and 10 minutes.
</Warning>

## Extend from inside the sandbox

Run the `tembo` CLI from a session terminal, a [hook](/features/hooks), or a script:

```bash
tembo set-vm-keep-alive 3600
```

The argument is a positive whole number of seconds. The command prints the new window:

```json
{
"vmId": "3f8a1c52-9d4e-4b7a-8f21-6c0b5d2e7a94",
"seconds": 3600,
"keepAliveUntil": "2026-01-01T12:00:00.000Z"
}
```

The command fails if the session has no VM or if its VM is no longer running.

Agents running in a session can do the same thing through Tembo's own MCP server, which exposes a `setVmKeepAlive` tool taking the same `seconds` argument. That is what an agent reaches for when you ask it to keep the sandbox up while you take a look.

## When the window expires

Tembo does not discard the sandbox outright. It suspends the VM, captures a session snapshot, then stops it. When the session needs a VM again — for example because you send another message — Tembo resumes from that snapshot instead of cloning and installing from scratch, falling back to the [project](/features/projects) environment and then to a cold boot if the snapshot cannot be restored.

Tembo also skips stopping a VM that still has active agent work, even if the window has technically expired.

## Constraints

- Keep-alive applies to VM sandboxes and requires the VM to be running.
- A VM that stays alive keeps consuming compute for the whole window, billed at the hourly rate for its [sandbox size](/resources/pricing#cloud-vm-compute-rates). A 1 week keep-alive on a large sandbox is expensive — prefer the shortest window that covers what you need.
- Only one window is in effect at a time. Setting a new one replaces the previous value rather than adding to it.
- The keep-alive window controls how long the VM stays up, not how long the session lasts. Sessions and their history remain available after the sandbox stops.
8 changes: 6 additions & 2 deletions features/sandbox/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: 'Secure, isolated environments where coding agents execute sessions

Every session runs in its own isolated sandbox. Sandboxes are ephemeral: spun up for the session, destroyed when it's done. No code or state persists after execution.

While a sandbox is running you can watch and control its desktop from the [Computer](/features/sandbox/computer) tab, and use [keep alive](/features/sandbox/keep-alive) to hold it open after the agent finishes.

## Data handling

Your repository is cloned into the sandbox for the duration of a session and torn down when the session ends — no repository contents or working state persist afterward.
Expand All @@ -15,7 +17,7 @@ Model providers handle prompt data according to their own retention policies —

## Sandbox sizes

Tembo offers five sandbox sizes. Each session runs in a dedicated Linux VM, and no two sessions share the same VM.
Each session runs in a dedicated Linux VM, and no two sessions share the same VM.

| Size | vCPU | Memory | Disk |
|------|------|--------|------|
Expand All @@ -24,10 +26,12 @@ Tembo offers five sandbox sizes. Each session runs in a dedicated Linux VM, and
| Medium | 4 | 8 GB | 50 GB |
| Large | 8 | 16 GB | 100 GB |
| XL | 16 | 32 GB | 200 GB |
| XXL | 16 | 64 GB | 200 GB |
| Ultra | 32 | 128 GB | 200 GB |

Micro and Medium are best for routine code analysis, fixes, features, and reviews. Large and XL are best for heavier builds, integration tests, Docker workloads, large repositories, or multi-container setups.

Need more than 32 GB of RAM? Contact [support@tembo.io](mailto:support@tembo.io) to request access.
Your plan sets the largest size you can select — see [Plans](/resources/pricing#plans). XXL and Ultra are not included in a standard plan; contact [support@tembo.io](mailto:support@tembo.io) to request access.

VM sandboxes include full nested virtualization for Docker-in-Docker and provide a stronger isolation boundary.

Expand Down