What is agent-device?
agent-device gives a coding agent hands and eyes on a running app. The agent takes a snapshot of the app's accessibility tree, gets back short references such as @e2 for each button and field, then taps, fills, scrolls and asserts against them, falling back to screenshots and coordinates when an app's accessibility data is poor. It covers iOS and Android simulators, emulators and physical devices, HarmonyOS, tvOS, Android TV, Fire TV, Amazon Vega OS, web, macOS and Linux, with depth varying by target.
The same runtime is exposed three ways: a CLI, a stdio MCP server started with agent-device mcp, and a typed Node.js client. Runs can be saved as .ad scripts, replayed in CI and exported as Maestro YAML, and sessions are tied to the caller's git worktree so parallel agents do not grab each other's simulators. Hosted devices on BrowserStack, AWS Device Farm, TestMu AI and Limrun use the same commands.
It is built by Callstack, the React Native consultancy, under the MIT licence. The repository was created in January 2026; v0.21.36 shipped on 2 November 2026.
Is agent-device worth it?
agent-device closes the loop that coding agents leave open on mobile: they can write a screen but cannot see it. It does this the way Vercel's agent-browser does for the web, by handing the agent a compact accessibility snapshot with stable references rather than asking a model to reason over screenshots. That keeps each step cheap in tokens and makes it deterministic enough to record, and there is no model inside the tool itself.
What separates it from the many small mobile MCP servers is the plumbing around the snapshot. Sessions are scoped to a git worktree and devices are claimed per host, so two agents in two worktrees do not fight over one simulator, and agent-device device release --stale clears claims whose owner has died. A run the agent works out once can be saved as an .ad script and replayed in CI or exported to Maestro. Expensify's write-up shows the result: an internal skill reads a bug's reproduction steps, works them out once, then replays the script to record before and after videos on each platform for the pull request, a job the team estimated at five minutes per platform by hand across hundreds of issues.
The security model is documented with care. The daemon listens only on 127.0.0.1 on ephemeral ports, every request needs a fresh 24-byte token kept in a 0600 file, and the MCP server never exposes a general shell. The docs are equally plain about the risks: the tool can drive every device and desktop app your user account can reach, and screenshots, logs and network captures can hold credentials, while typed text can leak into XCTest logs on iOS. Cloud artefact links should be treated as secrets.
The cost is breadth and churn. 108 open issues and pull requests, a 0.x version number and frequent releases mean commands still move, and support thins out on HarmonyOS and Vega OS, which cover only a subset of commands. MCP also lacks some CLI workflows, including connecting to device clouds and web setup, and the docs still recommend the CLI for long or manual runs in Claude Code. For a stable regression suite Callstack itself points to a conventional test framework; agent-device is for the exploratory checks an agent makes while it works, which it then lets you keep.
Where it earns its place
A React Native developer at a 10-person product team using Claude Code
Have the agent build a screen and prove it works on both platforms
Install the CLI, run agent-device doctor, then ask the agent to implement the screen, open it on the iOS simulator and Android emulator and attach screenshots. Free; the first iOS run is slower while the Apple runner builds.
A QA lead at a company with hundreds of open mobile bugs, like Expensify
Attach before and after recordings to every bug-fix pull request
An agent works through the reproduction steps once, saves them as an .ad script and replays it on each platform to record MP4s, which Expensify estimated replaces about five minutes of manual capture per platform.
A platform engineer running mobile checks in CI on Linux runners
Replay agent-recorded flows on real devices without a device lab
Set BrowserStack, AWS Device Farm or Limrun credentials as CI secrets and run the saved scripts against hosted devices; the provider bills device time, and artefact links should be handled as secrets.
Before you commit
- Setup
- npm install -g agent-device@latest on Node.js 22.12 or newer (24 for web), then agent-device doctor. iOS needs Xcode, Android needs the SDK and ADB; physical iOS devices need Developer Mode and a signed runner. Add the MCP server with the command agent-device and argument mcp.
- Integrations
- CLI, stdio MCP server that mirrors installed commands plus a help tool, and a typed Node.js client with AI SDK and Eve guides. Device clouds: BrowserStack, AWS Device Farm and Limrun built in, TestMu AI and Revyl as plugins. Exports Maestro YAML; an EAS workflow template covers Expo CI.
- Data and privacy
- Runs locally; the daemon binds to 127.0.0.1 with a per-start 24-byte token. The only outbound call by default is an npm update check, off with AGENT_DEVICE_NO_UPDATE_NOTIFIER=1. Screenshots, logs and network dumps can contain secrets; cloud providers keep their own artefacts.
- Cost at scale
- The tool is free; local use costs only a Mac for iOS. Hosted devices are billed by BrowserStack, AWS Device Farm, TestMu AI or Limrun at their own rates, which the docs do not list; Callstack offers team QA services on contact, price not published.
- Limits
- Remote sessions require a session name; only Limrun supports port reverse and live network dumps; Limrun and Revyl keep no artefacts after close; MCP cannot connect or disconnect cloud providers.
What’s good
- Accessibility snapshots with refs instead of screenshot reasoning
- Per-worktree sessions stop parallel agents sharing a simulator
- Record once as .ad scripts, replay in CI or export to Maestro
- Loopback-only daemon with per-start tokens; no shell over MCP
What’s not
- 0.x releases with 108 open issues and pull requests
- HarmonyOS and Vega OS cover only a subset of commands
- Some workflows, including cloud connect, are CLI-only
- Weak accessibility labels in an app mean flakier runs
Best for
Mobile and React Native teams that want coding agents to verify their own changes on simulators, devices or a device cloud and attach the evidence to pull requests.
agent-device: common questions
- Is agent-device worth it?
- If your agents write mobile code, agent-device is how they check it runs, and it already has the device juggling and CI replay that one-off mobile MCP servers lack. We rate it 4.3 out of 5.
- How much does agent-device cost?
- Free under the MIT licence; device clouds are billed by their providers, and Callstack sells team QA services on request.
- What are the downsides of agent-device?
- 0.x releases with 108 open issues and pull requests; harmonyOS and Vega OS cover only a subset of commands; some workflows, including cloud connect, are CLI-only; weak accessibility labels in an app mean flakier runs.
- Who is agent-device best for?
- Mobile and React Native teams that want coding agents to verify their own changes on simulators, devices or a device cloud and attach the evidence to pull requests.
- How much does agent-device cost for a team or in production?
- The tool is free; local use costs only a Mac for iOS. Hosted devices are billed by BrowserStack, AWS Device Farm, TestMu AI or Limrun at their own rates, which the docs do not list; Callstack offers team QA services on contact, price not published.
- Is agent-device safe for company data?
- Runs locally; the daemon binds to 127.0.0.1 with a per-start 24-byte token. The only outbound call by default is an npm update check, off with AGENT_DEVICE_NO_UPDATE_NOTIFIER=1. Screenshots, logs and network dumps can contain secrets; cloud providers keep their own artefacts.
Answers checked Nov 5, 2026.
