Pre-release. HareBox is a working local build with no public service yet. Statuses on every feature say what runs today; speed and reliability figures are targets until measured. Status

Mobile apps and emulators

Boot an Android emulator, Firecracker or QEMU inside the sandbox through nested KVM, for tests and agents that use apps.

For Mobile QA and agents that operate apps

Why it pays

  • Hardware acceleration inside Nested /dev/kvm lets emulators run with KVM, not slow software emulation.
  • Watch or let an agent tap Stream the desktop to see the emulator, or drive it with computer use.
  • Snapshot a booted device Save a template with the emulator image ready, and start new devices from it.

Step by step

  1. Start a large sandbox and check KVM

    Nested virtualization is on for every sandbox.

    CLI

    harebox new --name android --size large
    harebox exec current -- ls -l /dev/kvm

    Python

    box = hb.create(name="android", size={"preset": "large"})
    print(box.run("ls -l /dev/kvm")["stdout"])

    TypeScript

    const box = await hb.create({ name: "android", size: { preset: "large" } });
    console.log((await box.run("ls -l /dev/kvm")).stdout);
  2. Boot the emulator

    Install the SDK's command-line tools, then start a device headless or on the desktop.

    CLI

    harebox exec current -- ./setup-android-sdk.sh
    harebox exec current --detach -- emulator -avd pixel -no-snapshot -gpu swiftshader_indirect
  3. See it and drive it

    Open the desktop, or let an agent tap through the app.

    CLI

    harebox desktop current
    harebox prompt current "Open the app, sign up with a test account, and report any crash" --harness claude --budget 2

Tips

  • Save a template after the first boot, so each new device skips the slow setup.
  • Memory snapshots and sleep are off while a nested guest runs. Stop and resume instead.
  • Firecracker microVMs work the same way, for tests of your own VM tooling.