Get started
Phone Remote: Android Capture, Demo & QA

Phone Remote: Android Capture, Demo & QA

Drive real Android phones from your desktop over wireless ADB. Capture screens, record demos with a virtual cursor that shows exactly where each tap landed, annotate screenshots with numbered callouts, smoke-test builds on real hardware, read notifications, and automate app-only flows that have no public API. Replaces the manual capture-crop-annotate-reshoot loop with scripts.
#Productivity
Rating
More ratings needed
Sold
0
How to use
Download

Your phone becomes a device your scripts can drive

Making a phone tutorial normally costs an afternoon: screen-record by hand, dig the file off the device, crop it, draw arrows in an image editor, re-shoot the step you fumbled. Automating an app-only chore is worse — most mobile apps have no API at all.

This skill collapses both into scripts. The phone is driven over Wi-Fi, every tap is logged as it happens, and the recording is annotated from that same log — so the cursor in the finished video sits exactly where the tap actually went.

What it does

Capture and annotate
Screenshot any screen, then turn it into an instruction graphic with numbered badges, highlight boxes, and labels placed at real coordinates. Labels flip above or below their mark and pull inward at the frame edge, so nothing clips.

Record demos with a visible cursor
Record the screen, drive the phone with a script, and composite a cursor that glides between actions with a ripple on every tap. Speed it up 2× or 4× afterwards. Works on every device — unlike the OS touch indicator, which several vendor skins draw only for a physical finger.

Drive apps that have no API
Find elements by their text rather than hardcoded coordinates, so flows survive layout changes and different screen sizes. Includes non-ASCII text input for languages adb can't type on its own.

Test builds on real hardware
Install an APK, walk it through the screens you list, capture each one, and collect crashes into a dated report folder. The old phone that can't run your newest tooling is exactly the device your users complain from.

Read notifications
Some events surface only as a push notification. Watch for matching ones and act on them. Read-only — it never taps anything.

Run a fleet
Register several devices and fan one command across all of them. A mixed fleet of phones and tablets covers your store's screenshot sizes in a single pass.

Included

scripts/
  doctor.mjs           verify prerequisites before anything fails mysteriously
  devices.mjs          device registry (model, Android version, resolution)
  capture.mjs          screenshot
  annotate.mjs         numbered callouts, boxes, arrows, labels
  record.mjs           screen recording + speed-up
  pointer-overlay.mjs  virtual cursor composited from the action log
  ui.mjs               find/tap elements by text, ASCII and UTF-8 input
  qa.mjs               install, walk, capture, collect crashes
  notifications.mjs    read notifications (read-only)
  fanout.mjs           run one command across the fleet
  lib/driver.mjs       drive the phone while logging every action

references/
  connecting.md        pairing, port pinning, reboot recovery, driver-free setup
  automation.md        element lookup, non-ASCII input, resilient flows
  tutorials.md         turning a capture into a finished guide or video
  troubleshooting.md   every failure this skill has already hit

Requirements

  • Android platform-tools (adb) and ffmpeg — both free, installed locally
  • Node 18+ — the scripts use only Node built-ins, nothing to npm install
  • An Android phone with developer options enabled

No cloud service, no paid API, no subscription. Android 11+ pairs wirelessly; Android 10 and older need one cable connection to switch over, and references/connecting.md walks through both.

Notes

The reference docs record the decisions behind the design — why wireless beats USB, why the port gets pinned, why the cursor is derived from a log instead of the OS setting. Each one came from something that broke.

This is ADB, so Android only — no iOS. No root required. It won't defeat app-level automation detection, and it shouldn't: if an app forbids automated use, honor that. Anything that publishes, sends, pays, or signs in should stop and ask a human first.


External APIs

Android platform-tools (adb) + ffmpeg