Android emulator in Codex cloud, Claude Code on the web and other cloud agent sandboxes: what works.
Sandbox facts from each vendor's docs, checked November 6, 2026: Android emulator acceleration, emulator command line, Codex cloud environments, Codex internet access, Claude Code cloud environments, GitHub-hosted runners, Copilot firewall, Devin Android emulation, Cursor cloud agents, Cursor forum on KVM.
Why the emulator doesn't start
The Android emulator runs a virtual machine, and on Linux it accelerates it with KVM. Android's docs say a VM-accelerated emulator can't run inside another VM unless that VM passes hardware virtualization through, and a container only gets it when the host shares /dev/kvm. Cloud agent sandboxes are VMs or containers, so it depends on what the provider exposes.
Without KVM you're left with -accel off, which Android describes as "not supported and very slow"; the emulator refuses to start unless you set ANDROID_I_WANT_MY_TCG=yes. A passing kvm-ok isn't proof either: Cursor users report /dev/kvm present but nested virtualization failing when the emulator starts. Boot an AVD to know.
What each sandbox documents
| Sandbox | Emulator with KVM | Network by default | To reach phonebox.dev |
|---|---|---|---|
| Codex cloud | Not documented; Android isn't mentioned | Set per environment | Add it under Additional allowed domains, or enable all public internet access |
| Codex cloud, legacy environments | Not documented | Agent phase offline; setup script online | Turn on agent internet access and add the domain; leave the GET/HEAD/OPTIONS-only option off |
| Claude Code on the web | Not documented; no Android SDK preinstalled | Trusted: package registries, GitHub, cloud SDKs | Choose Custom network access and list phonebox.dev, or Full |
| GitHub Copilot cloud agent, Actions mode | Yes, on GitHub-hosted Linux runners with the KVM udev rule | Firewall on, recommended allowlist | Settings, Copilot, Internet access: add phonebox.dev |
| GitHub Copilot cloud sandbox (default) | Not documented | Same firewall | Same allowlist |
| Cursor cloud agents | Not documented; users report nested virtualization failing | Internet on | Nothing, unless you chose an allowlist mode |
| Devin | Yes, through a blueprint snapshot | Not documented | Not documented |
Give the cloud agent a phone instead
A Phonebox phone runs on our side, so the sandbox only needs outbound HTTPS to phonebox.dev. Allow the domain, give the session a Phonebox API key, and add the hosted MCP server to the repository so every session gets it:
{
"mcpServers": {
"phonebox": {
"type": "http",
"url": "https://phonebox.dev/mcp",
"headers": { "Authorization": "Bearer ${PHONEBOX_API_KEY}" }
}
}
}For the CLI, which is handy in setup scripts and checks, install it from phonebox.dev during setup:
# Needs phonebox.dev on the sandbox's network allowlist
npm install -g https://phonebox.dev/downloads/phonebox-0.1.0.tgz
# PHONEBOX_API_KEY comes from the environment's settings
phonebox lsThen ask for the check as you would locally; the agent installs the build on the phone, walks the screens and reports what it saw:
Install the debug APK on my Phonebox phone and open it.
Sign in with the test account from TEST_ACCOUNTS.md, open each tab
in the bottom bar once, then sign out. Read the screen before every
action. Report any crash, error message or empty screen, quoting the
screen text. Park the phone when you finish.Keep the key narrow
- Limit it to the phone. A key can be limited to between 1 and 20 phones; it can use only those and can never create new ones. Create the phone once, then give sandboxes a key for that phone alone.
- Set an expiry and a spending limit. Keys can expire, and each project has a monthly spending limit, $100 by default, that no session can pass.
- Mind where secrets go. Codex's legacy environments remove secrets before the agent phase, so a key stored only as a secret won't reach the agent. Claude Code on the web runs MCP connectors through Anthropic's servers, but a server defined in the repository's
.mcp.jsonconnects from the session, so its domain must be allowed.
Questions
Can Codex cloud run an Android emulator?
OpenAI's Codex cloud docs don't mention KVM, nested virtualization or Android as of November 2026, and computer and browser use are listed as not yet supported in cloud environments. Without KVM the emulator only runs in unsupported, very slow software mode. A cloud Android phone such as Phonebox works instead: allow phonebox.dev in the environment's network settings and add its MCP server.
Can Claude Code on the web use an Android emulator?
Anthropic's docs describe each session as an Ubuntu 24.04 VM with 4 vCPUs and 16 GB of RAM, with Docker and Gradle but no Android SDK, and don't mention KVM. The default Trusted network level doesn't include dl.google.com, where system images come from. To give the session a phone, choose Custom network access, allow phonebox.dev, and add the Phonebox MCP server in the repository's .mcp.json.
Which cloud agent sandbox can run the Android emulator?
GitHub-hosted Linux runners document hardware acceleration for the Android emulator, including 2-vCPU runners since April 2024, so GitHub Copilot's cloud agent in Actions mode can run one after enabling KVM in its setup steps. Devin documents Android emulation through a blueprint. Codex cloud, Claude Code on the web and Cursor's cloud agents don't document it.
Get started with Phonebox. New accounts start with a free 7-day trial, card required.
The Phonebox team