Quickstart
Your first sandbox. Run a web server in a sandbox on your machine and call it.
Run a web server in a sandbox on your machine and call it. Sandboxes run locally by default, so the code passes no location.
Prerequisites#
- Python 3.11 or newer:
pip install cua-sandbox- A container engine (Docker, Podman or Colima). Check the host and install what is missing:
cua runtime doctor
cua runtime setupRun#
import asyncio
from cua_sandbox import Image, Sandbox, http
async def main():
async with Sandbox.ephemeral(
Image.from_registry("python:3.12-slim"),
command=["python", "-m", "http.server", "8000"],
services={"web": 8000},
wait_for=http("web", "/"),
) as sb:
print((await sb.service("web").request("GET", "/")).status_code)
print(await sb.service("web").url())
asyncio.run(main())Result#
200
http://127.0.0.1:53817The first start of an image pulls it, which can take a few minutes.
Clean up#
Sandbox.ephemeral deletes the sandbox when the block exits. A CLI sandbox
stays until you remove it: cua sb rm web -f. cua cache du shows what images and sandboxes
take on disk (Disk usage).
Images#
Pass any registry reference. Each official tag resolves to the variant the
backend runs. Linux images run as user cua with passwordless sudo; open the desktop in
the browser with cua sb view NAME (Browser view). Full list:
image catalog details.
| Image | Name | Local | cua-spacesd |
|---|---|---|---|
ghcr.io/trycua/linux:24.04 | Ubuntu 24.04 | Container (gVisor when installed) | Yes |
ghcr.io/trycua/linux:24.04-disk | Ubuntu 24.04 VM | QEMU VM | Yes |
ghcr.io/trycua/linux:24.04-slim | Ubuntu 24.04 slim | Container (gVisor when installed) | Yes |
ghcr.io/trycua/linux:24.04-slim-disk | Ubuntu 24.04 slim VM | QEMU VM | Yes |
ghcr.io/trycua/windows:2022 | Windows Server 2022 | QEMU VM | Yes |
ghcr.io/trycua/macos:26 | macOS Tahoe 26 | Lume VM (Apple silicon) | Yes |
ghcr.io/trycua/macos:26-slim | macOS Tahoe 26 slim | Lume VM (Apple silicon) | Yes |
ghcr.io/trycua/macos:15 | macOS Sequoia 15 | Lume VM (Apple silicon) | No |
ghcr.io/trycua/omarchy:edge | Omarchy | QEMU VM | Yes |
ghcr.io/trycua/omarchy:edge-disk | Omarchy disk | QEMU VM | Yes |
Image.linux() is the Linux container and Image.linux(kind="vm") the same desktop as a VM.
Image.windows() is a Windows Server 2022 VM, amd64, no license included. Image.macos() is
Tahoe and Image.macos("15") Sequoia, both local only on Apple silicon.
Adapter benchmark images#
Each has a container tag and a -disk VM tag, and runs locally with cb run.
| Benchmark | What | Tasks | Image |
|---|---|---|---|
| MiniWoB++ | Synthetic web widgets | 130 | ghcr.io/trycua/bench-web:1.0 |
| WebVoyager | Live websites, LLM-judged | 643 | ghcr.io/trycua/bench-web:1.0 |
| Online-Mind2Web | Live websites, WebJudge-judged | 300 | ghcr.io/trycua/bench-web:1.0 |
| WebGym | Live web test split | 1,167 | ghcr.io/trycua/bench-web:1.0 |
| OSWorld-Verified | Ubuntu desktop apps | 369 | ghcr.io/trycua/bench-osworld:verified |