A browser is all you need
Deploy a template from the dashboard, paste your spec into the editor, hit Run, and watch the streaming logs — then open the preview URL for the live report and screen recording.
Playwright driving a real Chromium, and a real Android 14 emulator with adb and appium —
booted fresh, run in seconds, torn down after. From the portal, the CLI, or your CI.
One command in, a GREEN/RED verdict and full evidence out.
Validated live on the production fleet · Playwright 1.61.1 · chromium-1228 · Android 14 / SDK 34
$ pilldrops test ./suite.sh → booting sandbox … playwright · microVM → chromium-1228 baked · @playwright/test@1.61.1 → running 5 tests … ✓ auth + session persists ✓ search filters + live re-query ✓ long form · upload ×2 · iframe · download csv ✓ popup handled as separate page ✓ multiple tabs live simultaneously ✓ VERDICT: GREEN — 5/5 passed in 15s · 0 orphans
Every capability below was executed live on the production fleet — a real browser driving our own app, a real Android device, real coordination between sandboxes.
Here it is driving our own app, pilldrops.com. The playwright template ships
Playwright CLI 1.61.1 with chromium-1228 baked in — no browser download.
A five-test suite ran clean in ~15 seconds, no crashes.
window.open popups and target=_blank tabs, all handled
$ pilldrops test ./mobile.sh → AVD boot · Android 14 → adb + appium · rec ● ✓ launch + intent nav ✓ permission granted ✓ input · scroll ✓ GREEN · video saved
The android template boots a Galaxy S10 / Android 14 (SDK 34)
AVD with adb, appium and 223 packages — native app automation, plus your web app in a real mobile browser.
Through pilldrops test the emulator boots itself, records the whole session,
and returns a GREEN/RED verdict.
pilldrops.com, mobile layoutCAMERA: granted=true
browser → start login → phone approves → txn a3f9…c1 created status: pending → approved → LOGIN_COMPLETE ✓ both sandboxes torn down · 0 orphans
Drive two independent sandboxes at once — a microVM browser and a Docker
Android emulator — through a shared backend in a single task. In the validated run, Playwright started a
push-approval login, the Android sandbox approved it, and the web side polled
through to LOGIN_COMPLETE.
pending → approved → LOGIN_COMPLETEThe whole validation was planned and executed by an AI agent against high-level
objectives: it wrote the specs, drove browser and device across sandboxes, and
recovered from real failures mid-run — a port mismatch, a stale server's
EADDRINUSE, an expired approval wait.
The same path whether you start in the portal or the terminal. Each step produces something you can watch or keep.
playwright for browser, or android / mobile-test for the emulator. Chromium and the AVD are already baked.
Drop in a @playwright/test suite or an adb/appium script — or paste it into the portal editor. No local setup.
pilldrops test ./suite.sh boots a fresh sandbox, installs deps, and launches the browser or the emulator.
Exec output streams back in real time; the emulator run is screen-recorded, and the live report is served on a preview URL.
A clear verdict plus the evidence bundle: trace, video, screenshots, console logs and any files the test downloaded.
The same one-liner drops into GitHub Actions. Block the merge on the verdict; every sandbox tears itself down.
Same engine underneath. Pick the door that fits how you work — no CLI required to get a real run.
Deploy a template from the dashboard, paste your spec into the editor, hit Run, and watch the streaming logs — then open the preview URL for the live report and screen recording.
$ pilldrops test ./e2e/suite.sh # → boot · run · record · verdict ✓ VERDICT: GREEN — evidence bundled
Deploy a template, paste a spec, and watch a live browser or a real Android 14 device run it — then wire the exact same command into CI.