How fast do cloud Android phones for agents start?
Limrun handed our script a usable phone in under a second (0.98 s); Mobilebox took 19.4 seconds and Phone Harness 23 seconds at the median. A local emulator on a GitHub-hosted runner took 50 seconds with KVM; without KVM, one of two boots finished, after 13.5 minutes.
Measured · 10 sessions per cloud service, 5 per CI emulator · CSV · scripts
Results
Medians, with p90 after the slash. Select a column to sort.
| Parallel phones, entry plan | Park and resume | Agent access | |||||
|---|---|---|---|---|---|---|---|
| LimrunEU, 51 ms away | 0.98 s / 1.07 s | 0.38 s / 0.40 s | 0.85 s / 0.95 sURL | $0.40Entry, $0.04/min; trial overage $0.06 | Unlimited, “subject to quotas” (as published) | Not offered for Android instances (docs) | REST, SDKs, MCP |
| MobileboxEU, 8 ms away | 19.4 s / 19.5 s | 1.45 s / 1.49 s | 1.17 s / 1.54 sURL | $0.10$0.01/min, boot free | No published cap | Yes: resume 11.5 s / 11.8 sapp kept in 10 of 10 | REST, MCP |
| Phone HarnessUS West addresses, 170 ms away | 23.0 s / 70.0 s | 1.91 s / 2.35 s | 3.57 s / 29.32 sADB upload | $0.50$0.05/min, boot free | 8 per account (as published) | Saved profile phone (documented, not measured) | REST, ADB; MCP listed |
| Mobilebox, from a CI runnerGitHub Actions ubuntu-latest | 20.3 s / 20.6 s | 2.09 s / 2.19 s | 1.17 s / 2.04 sURL | $0.10 | No published cap | Yes: resume 12.7 s / 12.9 sapp kept in 5 of 5 | REST, MCP |
| Local emulator, KVMGitHub Actions ubuntu-latest, API 34 | 50.0 s / 50.3 s | 1.03 s / 3.52 s | 6.09 s / 7.31 sADB | $0 public repo, $0.06 privaterunner minutes, plus 75 s setup per job | One per runner | n/a | ADB |
| Local emulator, no KVMGitHub Actions ubuntu-latest, API 34 | 13.5 min / 13.5 minn=1: the 2nd boot didn’t finish in 15 min, so the job stopped | 18.7 s / 23.4 s | 2.1 min / 2.1 minADB | $0 public repo, $0.06 privaterunner minutes | One per runner | n/a | ADB |
Cloud rows: client in Nuremberg, Germany, TCP connect time to each API shown under the name. Tap to screenshot is one tap plus one full screenshot, so network distance counts twice. Prices are list prices on November 8, 2026; "as published" means the vendor's own page, not something we tested.
What the numbers say
Fair reading, including where we are slower.
- Limrun is the fastest on every speed metric. Its phones are ready before the create call returns, about 18 times faster than Mobilebox to a first screenshot and about 4 times faster from tap to screenshot.
- Mobilebox is the most consistent, and the cheapest of the three cloud services. All 10 cold starts landed between 18.9 and 19.5 seconds. A 10-minute session costs $0.10, against $0.40 to $0.50 for the other two. It is also the only service here where we measured park and resume: 11.5 seconds back to a screenshot, with the installed app still there in 10 of 10 runs.
- Phone Harness ran in two modes. Half the starts took about 21 seconds and half about 67, which is why its p90 is 70 seconds. Its servers answered from US West addresses, about 170 ms from our client, which adds to every ADB round trip. One of its 10 sessions lost Android’s input service after the first tap; that failure is in the CSV.
- An emulator on the runner costs a minute before it starts. With KVM it booted in 50 seconds after a 75-second image download and AVD creation per job. Without KVM: the first boot took 13.5 minutes to a screenshot, the second didn’t finish within our 15-minute limit, and one tap plus screenshot took 18.7 seconds.
What we couldn’t test, and why
Listed, not dropped. Each one can be added when the reason goes away.
| Service | Status | Reason |
|---|---|---|
| BrowserStack | not benchmarked (ToS) | Its terms §3.3(f) forbid publishing “information regarding the performance of the Services”. |
| Genymotion SaaS | not benchmarked (ToS) | The SaaS agreement §3(i) needs Genymobile’s prior written consent for a competitor to use the product. |
| LambdaTest (TestMu AI) | not benchmarked (ToS) | Use is internal-only, users must not be “competitors of TestMu”, and the service counts as confidential information. |
| Mobilerun | not measured | New accounts sign up with Google, GitHub or Discord only; we only use email sign-ups for benchmarks. Published: $0.03 a minute overage, 60 free minutes, stop keeps apps and data. |
| AWS Device Farm | not measured | An AWS account needs a payment card; this benchmark uses free tiers without payment details. Published: $0.17 a device-minute. |
| Firebase Test Lab | not measured | Needs a Google account sign-in, and it runs test matrices, not live sessions, so tap latency doesn’t apply. Published: $1 an hour virtual, $5 physical. |
| phonebox.dev | not measured | The free week needs a payment card. Published: $0.06 a minute, parked phones free. |
Context: agent sandboxes
Code and browser sandboxes start in about a second or less. Published, not measured by us.
| Source | ||||
|---|---|---|---|---|
| Vercel Sandbox | code | 0.53 s | $0.0014 idle, up to $0.0057 | ComputeSDK, Nov 6 |
| Daytona | code | 0.60 s | $0.0011 | ComputeSDK, Nov 6 |
| Cloudflare Sandbox | code | 0.67 s | from $0.00005, Workers Paid plan | ComputeSDK, Nov 6 |
| Modal Sandboxes | code | 0.80 s | from $0.00035 | ComputeSDK, Nov 6 |
| E2B | code | 1.13 s | $0.0018 to $0.0028 | ComputeSDK, Nov 6 |
| Kernel | browser | 0.25 s | $0.0010 headless | Browser Arena, Nov 8 |
| Browser Use Cloud | browser | 0.39 s | $0.00033 | Browser Arena, Nov 8 |
| Browserbase | browser | 0.79 s | $0.0020 | Browser Arena, Nov 8 |
| Steel | browser | 1.19 s | $0.0017 | Browser Arena, Nov 8 |
ComputeSDK starts 100 sandboxes at once and times create to first command. Browser Arena times 100 sessions per provider from a small AWS instance. Both publish their methods; both rankings move from run to run, and every browser benchmark we found is run by, or close to, a vendor. Prices are our arithmetic from each vendor’s list price; sources and math are in the CSV’s notes. More in Agent sandboxes compared: start time and price.
Method
One script per service, the same steps, every run kept.
- 1
Cold start
Clock starts before the create request and stops when the first screenshot’s bytes arrive. Waiting for the vendor’s “ready” is included; a phone the vendor keeps booted counts as fast, because that is what your agent sees.
- 2
Tap to screenshot
Ten taps per session at two fixed points on the home screen, each followed by a full screenshot, through the vendor’s own API or SDK. Phone Harness has no tap or on-demand screenshot endpoint, so its taps and screenshots go over ADB, its documented path.
- 3
Install
The same APK everywhere: Fossify Calculator 1.4.0 from F-Droid, about 4 MB, installed from its public URL where the API takes a URL (Limrun, Mobilebox) and uploaded over ADB where it doesn’t (Phone Harness, the emulator).
- 4
Clean up and report
Every phone deleted in a finally block, checked afterwards. Medians and p90 by nearest rank, no outliers removed, failed steps counted in the CSV. Android 14 everywhere we could choose it; EU region where the vendor lets us pick one.
Reproduce it
The scripts are in the public repo. Bring your own keys; each script deletes what it creates.
git clone https://github.com/fifteenA/mobilebox && cd mobilebox/benchmarks && npm install
MOBILESANDBOX_API_KEY=… CLIENT="your city" node mobilebox.mjs
LIM_API_KEY=… CLIENT="your city" node limrun.mjs
PHONE_HARNESS_API_KEY=… ADB=$(which adb) CLIENT="your city" node phoneharness.mjs
ACCEL=on ./emulator.sh # or run the "benchmarks" workflow on GitHub Actions
node summarize.mjs && node chart.mjsDownloads: summary CSV (medians and p90 per service and metric) · raw samples (one row per measurement, failures included) · chart. Vendors: if a number here is wrong or out of date, write to hello@mobilebox.dev and we’ll rerun it.
Read more
How fast do cloud Android phones for agents start? (Nov 2026 benchmark)
Measured on free tiers: Limrun 0.98 s, Mobilebox 19.4 s and Phone Harness 23 s from create to first screenshot, plus tap latency, APK install, 10-minute cost and park/resume.
Android emulator on CI without KVM vs a cloud phone: timings
One GitHub Actions run: the emulator with KVM, without KVM and a cloud phone from the same runner, timed from launch to first screenshot, tap and APK install.
Agent sandboxes compared: start time and price
Code and browser sandboxes start in about a second or less, cloud Android phones in 1 to 23 seconds. Published and measured start times with per-minute prices.