Connect a device
Read the screen
noqa screen --fullis the raw accessibility tree straight from Appium — every wrapper, container, and duplicated label. Complete, but noisy and heavy, and it balloons on complex screens.- A screenshot is cheap in tokens, but it’s pixels only: the model has to infer where elements are and read small text visually, which hurts tap precision and misses anything off-screen.
noqa screenis our cleaned element tree — the redundant nodes stripped, the meaningful elements kept with their exact bounding boxes. Here that’s ~7× fewer tokens than the raw tree, and lighter than a screenshot — while still giving precise, structured positions to act on.
Act by description
Working out pixel coordinates from a screenshot is where agents lose their footing: a tap lands 40 pixels off and the run is wrong from there. So the CLI takes the target in plain language and noqa grounds it — finds that element on the current screen and places the touch itself.noqa screen (0–1000 on both axes):
Control the app and the system
restart-app is how your agent gets back to a known state without touching the device by hand.
The loop
Put together, it’s inspect → act → verify, one step at a time and never an action fired blind:- Inspect —
noqa screento confirm the target is there and the UI is in the expected state. - Act — one
noqa action …, by description. - Verify —
noqa screenagain, ornoqa screenshotfor a visual check.
Full-cycle testing
From a build to passing tests
CLI reference
Every command and option
