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

Cloud coding-agent sandboxes and Android, checked November 6, 2026
SandboxEmulator with KVMNetwork by defaultTo reach phonebox.dev
Codex cloudNot documented; Android isn't mentionedSet per environmentAdd it under Additional allowed domains, or enable all public internet access
Codex cloud, legacy environmentsNot documentedAgent phase offline; setup script onlineTurn on agent internet access and add the domain; leave the GET/HEAD/OPTIONS-only option off
Claude Code on the webNot documented; no Android SDK preinstalledTrusted: package registries, GitHub, cloud SDKsChoose Custom network access and list phonebox.dev, or Full
GitHub Copilot cloud agent, Actions modeYes, on GitHub-hosted Linux runners with the KVM udev ruleFirewall on, recommended allowlistSettings, Copilot, Internet access: add phonebox.dev
GitHub Copilot cloud sandbox (default)Not documentedSame firewallSame allowlist
Cursor cloud agentsNot documented; users report nested virtualization failingInternet onNothing, unless you chose an allowlist mode
DevinYes, through a blueprint snapshotNot documentedNot 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:

.mcp.json
{
  "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:

Setup script
# 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 ls

Then ask for the check as you would locally; the agent installs the build on the phone, walks the screens and reports what it saw:

Smoke check
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.json connects 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

← All guides