Skip to main content
At the end of this page, your app runs on Android 14 in a machine, and you can drive it with adb and see the phone in the dashboard. The android template is for testing Android apps and for agents that drive a phone. Android runs as a container on the machine’s own Linux kernel, with no emulator and no nested VM. The machine also has everything agent-browser has: Docker, Node.js, Python, and the desktop.
1

Create an Android machine

Android is up about 20 seconds after the machine starts. Use the default size or larger. Android uses 1 to 2 GiB of memory while it runs.
2

Wait for Android to boot

The command returns once Android reports sys.boot_completed. Right after a create or a fork, adb devices is empty until Android has booted.
3

Install your app

app-debug.apk stands for your own app’s APK. push puts it in the machine’s home, and adb install prints its result when the install ends.
4

Drive and test the app

adb devices lists the phone. screencap saves a screenshot of the phone to screen.png in the machine.
5

See the phone

Open the machine in the dashboard and choose the Computer tab. The phone is the Android window on the desktop, and it takes clicks and typing. An agent drives it the same way, with the desktop API or with adb shell input. See Computer use.
The free plan creates from , so android works on every plan.

Limits of the android template

  • No Google Play or Google services. Install apps with adb install. Apps that need Google services for sign-in, maps or push do not fully work.
  • x86_64 only. Apps that ship only ARM native code do not run (no ARM translation). Apps with no native code, or with x86_64 libraries, run.
  • Software rendering. It is fine for app testing and UI automation, and slow for games and heavy 3D.
If adb devices still lists nothing after boot, run adb connect 127.0.0.1:5555 once. Do not connect while emulator-5554 is listed. With the same phone listed twice, adb shell asks which one to use.
Pause and resume, and idle pause and wake, keep the same running Android. Apps, their state, and the clock carry on. A fork copies Android’s data (installed apps and their data) and boots its own Android from it about 20 seconds later. Apps that were running are not carried over.
To stop Android, run sudo systemctl stop instabox-android. To keep it off across restarts, also run sudo systemctl disable instabox-android.

Computer use

Screenshots, clicks and keys from your code.

Parallel forks

Copy a set-up phone into several machines.