Quickstart
Your first sandbox. Run a web server in a sandbox on your machine, call it, then run the same code in the cloud.
Your first sandbox. Run a web server in a sandbox on your machine, call it, then run the same code in the cloud.
Run a web server in a sandbox on your machine and call it. The cloud variant
changes one line: local=False.
pip install cua-sandboxcua runtime doctor
cua runtime setupcua auth login
(credentials).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", "/"),
local=True,
) as sb:
print((await sb.service("web").request("GET", "/")).status_code)
print(await sb.service("web").url())
asyncio.run(main())200
http://127.0.0.1:53817In the cloud the URL is a short-lived signed https:// URL, and the first
start of an image can take a few minutes.
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).
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 | Cloud | cua-spacesd |
|---|---|---|---|---|
ghcr.io/trycua/linux:24.04 | Ubuntu 24.04 | Container (gVisor when installed) | gVisor container | Yes |
ghcr.io/trycua/linux:24.04-disk | Ubuntu 24.04 VM | QEMU VM | KubeVirt VM | Yes |
ghcr.io/trycua/linux:24.04-slim | Ubuntu 24.04 slim | Container (gVisor when installed) | gVisor container | Yes |
ghcr.io/trycua/linux:24.04-slim-disk | Ubuntu 24.04 slim VM | QEMU VM | KubeVirt VM | Yes |
ghcr.io/trycua/windows:2022 | Windows Server 2022 | QEMU VM | KubeVirt VM | Yes |
ghcr.io/trycua/macos:26 | macOS Tahoe 26 | Lume VM (Apple silicon) | Not available yet | Yes |
ghcr.io/trycua/macos:26-slim | macOS Tahoe 26 slim | Lume VM (Apple silicon) | Not available yet | Yes |
ghcr.io/trycua/macos:15 | macOS Sequoia 15 | Lume VM (Apple silicon) | Not available yet | No |
ghcr.io/trycua/omarchy:edge | Omarchy | QEMU VM | KubeVirt VM | Yes |
ghcr.io/trycua/omarchy:edge-disk | Omarchy disk | QEMU VM | KubeVirt 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.
Each has a container tag and a -disk VM tag, and runs locally or in the
cloud 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 |