Start
Features
| Item | What you get |
|---|---|
| 👀 | Read the screen as text. ls lists what's visible, one row per element: @ref type x,y w×h label = value. It reads native screens, React Native screens and web content (Safari, in-app browsers, web views) |
| 👆 | Tap by label. Exact match first, then a prefix or substring that names exactly one label. An ambiguous match is an error, never a guess. Also by @ref from the last ls, or by x y coordinates |
| ⌨️ | Type and fill. type into the focused field, fill to clear a field and type, key return|escape|delete|tab|…, and hidekb, which never reports success while the keyboard is still up |
| 🧭 | Navigate and gesture. swipe, scrollto <label>, back, open <deep link>, launch <app>, longpress, and two-finger zoom in|out |
| ⏱️ | Wait instead of sleep. wait "Welcome", wait "Loading" --gone. Actions already wait up to 3 s for their target |
| 📸 | Screenshots. shot saves a PNG and prints its path, with --scale 0.5 for fewer image tokens. On Android emulators it also captures FLAG_SECURE screens |
| 🎞️ | Burst capture and video. burst saves a frame each time the screen changes, to catch spinners, toasts and transitions. record start … record stop saves an MP4 of everything in between |
| 🪵 | Logs. logs shows the app's log since your last look. --errors and --grep narrow it, and on iOS Apple-framework chatter is filtered out |
| 💥 | Crashes. crashes reads iOS crash reports (exception, reason, top frames) and Android crashes, ANRs and low-memory kills, so "the app vanished" always comes with a reason |
| | Biometrics. bio match|nomatch simulates Face ID or a fingerprint |
| 🌍 | Simulated conditions. location <lat> <lon>, appearance dark, textsize xxl (Dynamic Type / font scale), statusbar clean (9:41 for screenshots), rotate landscape (ls, taps and screenshots follow the turned screen), Android network offline, and iOS push notifications |
| 🧹 | App state for repros. install a build, reset an app to a fresh install, uninstall, and permission grant|revoke|reset camera|location|photos|…, with the same names on both platforms |
| 🤖 | Built for agents. --ls on any action, run to batch steps, --json, and a Claude Code skill you install with one command |
| 🧩 | Nothing to install on simulators, emulators or Android phones, no server to run, no npm dependencies. The helpers start on first use. A real iPhone gets a small test runner, built for you |
| ⚠️ | Honest failures. A tap that's covered by a toast prints a warning, a stale @ref is an error rather than a wrong tap, a system prompt over the app is reported as one, and an app that dies is named the moment looktap notices |
Generated from README.md. Edit it there.