How fast does a Cua Space start on a Linux server?
On an AWS c7g.2xlarge (Graviton3, 8 vCPU, 16 GB) running Ubuntu 24.04, a new headless gVisor Space ran its first command 350.9 ms after create (p50, n = 30), measured 2026-10-24 with the cua CLI from Cua Spaces 0.15.0.
Measured Build app 0.15.0, cua 0.9.0n = 30Raw data (CSV)
Results
Time from `cua sb create` until `cua sb exec` returns, one Space at a time. Lower is better.
| Measure | Value |
|---|---|
| Fastest | 340.4 ms |
| p50 | 350.9 ms |
| p90 | 399.4 ms |
| p99 | 408.3 ms |
| Slowest | 408.6 ms |
| Samples | 30 |
Method
Released cua CLI on the box, isolated CUA_HOME, daemon cua daemon start --foreground. Serial, n=30. Per sample: t0 before cua sb create linux --on local --headless --kind container --runtime gvisor --tier slim --name cb-lin-slim-<i> --json; value = when cua sb exec <name> -- echo ok has returned 'ok' (two CLI process launches included). Then cua sb rm --force (not timed). Image pulled by a warmup create (excluded). Warm pools off, so each sample is a cold container start.
Caveats
- Timed through the CLI: two CLI process starts (create, then exec) are included.
- The full desktop image, headless, took p50 363.4 ms (n = 30).
Environment and build
| Machine | AWS EC2 c7g.2xlarge, c7g.2xlarge |
|---|---|
| Chip | AWS Graviton3, 8 cores |
| Memory | 16 GB |
| OS | Ubuntu 24.04.5 LTS, kernel 7.0.0-1014-aws |
| Where | AWS us-west-2 (on-demand) |
| Kind | container |
| Runtime | gvisor (runsc release-20261019.0, Docker 29.1.3) |
| Image | ghcr.io/trycua/linux:24.04-slim (cached locally) |
| Headless | true |
| Load avg before | 0.29 |
| Other vms | 0 |
| Network | n/a (local create on the box) |
| Warm pools | off (CUA_POOL_AUTO=off, CUA_GVISOR_WARM=0) |
| Build | Cua Spaces 0.15.0 linux-arm64 .deb (GitHub release cua-spaces-v0.15.0, published 2026-10-24T19:42Z; sha256 736495d2...d845), binary opt/Cua Spaces/resources/native/cua, `cua --version` = cua 0.9.0 |
| App | 0.15.0 |
| cua | 0.9.0 |
Reproduce
# Ubuntu 24.04 arm64 with docker.io and gVisor runsc (`runsc install`)
curl -LO https://github.com/trycua/cua/releases/download/cua-spaces-v0.15.0/cua-spaces-0.15.0-linux-arm64.deb && dpkg -x cua-spaces-0.15.0-linux-arm64.deb rel
export PATH="$PWD/rel/opt/Cua Spaces/resources/native:$PATH" CUA_HOME=$PWD/home CUA_POOL_AUTO=off CUA_GVISOR_WARM=0
curl -fLO https://cua.ai/benchmarks/spaces-cold-start-linux/files/cloud_start.py
cua daemon start --foreground &
python3 cloud_start.py local 1 warm --headless --kind container --runtime gvisor --tier slim # excluded warm-up
python3 cloud_start.py local 30 lin-slim --headless --kind container --runtime gvisor --tier slimHelper scripts: cloud_start.py.
Cua commands use the published Cua Spaces 0.15.0 release and the public trycua/cua repository at the tag cua-spaces-v0.15.0. Downloads: samples (CSV), result (JSON), this page as Markdown.
Questions
Why is this slower than on a Mac?
It's a different machine and a different method: here each sample is timed through two CLI processes (create, then exec) on an 8-vCPU cloud server; the Mac numbers call the SDK directly. The two pages aren't a like-for-like race.
Can I run this myself?
Yes. The commands under Reproduce use the published Cua Spaces 0.15.0 release and the public trycua/cua repository at the tag cua-spaces-v0.15.0. A `cua bench run` command that wraps them is coming; it isn't in a release yet.
Checked 2026-10-24. Sources: the samples and result files above, measured by Cua. All benchmarks.