Open source ยท Apache-2.0

loupe

One binary that streams Android phones, emulators and iOS simulators to a browser, and gives coding agents the device: the UI tree, input, screenshots, logs and installs. Handset is built on it.

Install

brew install bmcreations/tap/loupe
brew services start loupe
open "http://localhost:18456/?token=$(cat ~/Library/Caches/loupe/token)"

iOS simulators also need simcap, built with your own Xcode:

brew install --HEAD bmcreations/tap/simcap && brew services restart loupe

Handset installs both for you, so skip this if you're using the app.

Streams devices

Android phones over adb, every installed AVD (booted on open, paused when idle), iOS simulators through simcap, and the devices on your other machines as peers.

Feels like the device

WebTransport with a WebSocket fallback and adaptive bitrate. Multi-touch, hardware buttons, the clipboard both ways. Add it to your Home Screen and it runs full screen.

Gives agents the device

The accessibility tree with a tap point per node, tap by text or id, swipes, keys, deep links, screenshots, APK install, logs and crashes. On a debuggable Compose app, each node names its composable and source line.

Shares it with you

Claims, the human hold and flags let you and an agent work on the same device without stepping on each other.

Fits CI

A GitHub Action installs a pull request's APK on a device and comments on the PR with a link that opens it.

Records

Writes the encoder's output to an MP4, with no re-encode.

Want it as a Mac app?

Handset adds native panes, agent cursors with take-over and hand-back, the Mac's camera, and the tool window.

See Handset