After a `--settle` command the ids in its diff are the valid ones; taking a fresh snapshot is the exception, not the habit. The other thing worth knowing before you rely on it: snapshots come from the app's accessibility tree, so apps with weak labels and missing test IDs will automate badly — screenshots and video are the fallback and the evidence, not the primary input.
Mobile app automation and verification built for coding agents, available as a CLI, a built-in MCP server and a typed Node.js API — all three over the same execution path. Agents read token-efficient accessibility snapshots rather than reasoning over screenshots, and act through refs and selectors.
- App state inspected through accessibility snapshots with element refs, selectors, and React Native component trees
- Actions on visible UI: tapping and pressing, filling fields, scrolling, gestures, waiting, asserting state and handling alerts
- Failure diagnosis with screenshots, video, logs, traces, network data, performance samples, crash details and React profiles
- Workflows saved as `.ad` scripts for local use or CI, exportable to strict Maestro YAML
- Coverage across iOS, Android and HarmonyOS on simulators, emulators and physical devices, plus tvOS, Android TV, Amazon Vega OS TV, web, macOS and Linux
- Device access coordinated across parallel agent worktrees, and connections to remote device clouds
- `--settle` diffs after each command, so the next step uses the refs from that diff instead of a fresh snapshot
- The same commands as MCP tools via `agent-device mcp`, or as a typed client through `createAgentDeviceClient()`
`npm install -g agent-device@latest`, then `agent-device doctor` — the README asks you to run that yourself before handing the CLI to an agent. Node.js 22.12 or newer; web automation needs Node.js 24 or newer. The MCP server is a stdio server started with `agent-device mcp`. Per-target requirements (simulators, devices, toolchains) are covered in the installation docs. MIT licensed; the published package is `agent-device`.
One command — npm install -g agent-device@latest
