You need the noqa macOS app running and the CLI installed. To drive it with an AI agent, see CLI & MCP for setup and Device CLI for the screen-and-action loop. To have your agent write the test cases for you and run them, see Generate test cases with AI.
Setup
1
Install and open the app
Download noqa and install it. Keep the app running — the CLI talks to it locally, so it must be open for any command to work. Sign in for account features (test management, running the agent); base commands work without an account.
2
Install the CLI
In the app, open Settings → CLI & Agents and click Install on CLI Tool. This links the
noqa command into ~/.local/bin and adds it to your PATH — no sudo required. Restart your terminal afterward.3
Install the skill (for AI agents)
In the same Settings → CLI & Agents, click Install globally on Mobile Testing Skill to add the
noqa-testing skill to your agent directories, so your agent knows the commands and workflows. Skip it if you only use the CLI by hand. See CLI & MCP.4
Verify
Base commands
No account and no app prefix needed. Connect a device first withnoqa devices connect — screen and action run against the connected device.
Devices
Inspect the screen
Actions
Gestures (tap, swipe, drag, pinch, input) target an element two ways: by coordinates, or by description.
By coordinates — 0–1000, relative to the screen; read them from the relative_bbox_2d of the target in noqa screen (element center = ((xmin+xmax)/2, (ymin+ymax)/2)):
noqa screen returns no usable target — a game, a canvas, a WebView, an ad overlay — or when the coordinates from the tree didn’t work. Requires being signed in, and each call draws on the grounding quota:
Test management
Author and maintain your test suite from the terminal — free, with an account. Every command here takes your app prefix as its first argument (shown asAPP); find it with noqa apps list. See Test Cases for how cases and flows fit together.
Apps & context
app_context is a shared description injected into every run — credentials, screen names, and rules the agent should always follow. update overwrites, so read the current value first, then send the full replacement.
Test cases
A test case has a title, optional tags, and a list of flows (steps + expected results).{"instructions": "...", "result": "..."}) or a reference to a reusable flow ({"id": "..."}) — never both. Tags are created automatically when named.
Reusable flows & tags
A reusable flow is a named step shared across cases (e.g. “Go through onboarding”). Update it once and every case that references it updates too.Builds & test runs
Register builds and run test cases with the noqa agent on a connected device. Each run uses credits.Builds
Build paths must be absolute (e.g.
/Users/me/build/App.ipa, not build/App.ipa).Run tests
Hand saved cases (by number) or ad-hoc cases (inline JSON) to the noqa agent, which runs them autonomously on the connected device.--build-path and --build-id are mutually exclusive; connect a device first with noqa devices connect.
Output & scripting
Most read commands accept--json for raw output you can pipe into jq or a script:
Test cases
How cases and flows work
CLI & MCP
Let an AI agent drive the CLI
