CheckOps home

Tools directory

A

CheckOps

agent-device

agent-device is Callstack's MIT-licensed device layer for AI coding agents: a CLI, MCP server and typed Node.js API that let agents inspect, drive, debug and verify apps on iOS, Android, TV, web and desktop targets.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

agent-device, from Callstack, is an open-source device layer for AI coding agents. It lets an agent verify its own changes in the running app by inspecting, controlling, debugging and testing apps on real targets, locally or in a device cloud.

Target coverage is unusually wide. The README lists iOS, Android and HarmonyOS (simulators, emulators and physical devices), plus tvOS, Android TV, Fire TV, Amazon Vega OS TV, web, macOS and Linux. Under the hood it uses an accessibility bridge and XCTest for Apple targets, ADB on Android-based targets, HDC and ArkUI uitest on HarmonyOS, a local helper on macOS (including Electron and other Chromium-based apps) and AT-SPI on Linux. Support depth varies, and agent-device capabilities --platform <name> shows what each target supports.

The key design choice is to feed agents token-efficient accessibility snapshots rather than making them reason over screenshots alone. Agents act through refs and selectors from those snapshots, which makes runs cheaper and more reliable, and the README notes that clear labels, roles and test IDs in your app make agent runs better. Screenshots and video are still captured as evidence.

There are three ways in. The CLI is what most coding agents call. agent-device mcp starts an official stdio MCP server that exposes the same commands as structured tools. And createAgentDeviceClient() gives Node.js code typed access, so you can use it as model tools inside your own agent built with the AI SDK or Eve. It works with Claude Code, Codex, Cursor, Windsurf, Cline, Goose and any agent that can run a CLI or connect over MCP. The README says developers at Expensify and Shopify use it.

For testing specifically, working steps can be saved as .ad replay scripts and run locally or in CI, and you can export strict Maestro YAML. Failures can be diagnosed with screenshots, video, logs, traces, network data, performance samples, crash details and React profiles, and it can profile React Native renders to find slow interactions. Sessions are scoped to the caller’s git worktree, and device claims stop parallel agents from grabbing each other’s simulators.

The source code is at callstack/agent-device on GitHub under the MIT licence, with about 5,300 stars; the most recent commit was on 11 November 2026.

Launch and background: There’s An AI For That lists the project (“One device per agent”) in its test automation repositories.

Features

  1. Many targets: iOS, Android, HarmonyOS, tvOS, Android TV, Fire TV, Vega OS, web, macOS and Linux.
  2. Accessibility snapshots: Token-efficient UI trees with refs for actions.
  3. CLI, MCP and Node API: Same commands through three interfaces.
  4. Interactions: Tap, fill, scroll, gestures, waits, assertions and alerts.
  5. Evidence capture: Screenshots, video, logs, traces, network and crash data.
  6. React Native profiling: Find unnecessary re-renders and slow interactions.
  7. Replay scripts: Save .ad scripts for CI; export Maestro YAML.
  8. Parallel agents: Worktree-scoped sessions and device claims.
  9. Device clouds: Connects to remote device providers.
  10. Doctor command: doctor checks setup before you hand it to an agent.

Pros

  1. Agent-native design: Built for coding agents rather than adapted from a test framework.
  2. Broad platform reach: Covers TV and HarmonyOS targets few tools support.
  3. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  4. Actively maintained: The repository had commits as recent as 11 November 2026.
  5. Community: About 5,300 GitHub stars.

Cons

  1. Uneven depth: Some backends support only a subset of commands.
  2. Node.js requirements: Needs Node.js 22.12+, and 24+ for web automation.
  3. Accessibility-dependent: Poor labels in your app reduce reliability.
  4. Fast-moving: Frequent 0.x releases.
npm install -g agent-device
agent-device doctor
agent-device mcp        # expose commands to an MCP client
const client = createAgentDeviceClient({ session: 'qa-run' });
await client.apps.open({ app: 'com.apple.Preferences', platform: 'ios' });
const snapshot = await client.capture.snapshot({ interactiveOnly: true });
const button = snapshot.nodes.find((node) => node.role === 'button');
if (button) await client.interactions.press({ ref: button.ref });

Example prompts from the README: “Explore the checkout flow once, save it as a replay script, and run it in CI” and “Verify this pull request on a physical device and attach reviewable evidence.”

Resources:

Pricing

agent-device is free and open source under the MIT licence.

  1. React Native and mobile teams using coding agents.
  2. Teams building their own QA agents that need a device runtime.
  3. TV and multi-platform app makers who lack tooling for those targets.

Conclusion

agent-device is one of the most complete open-source answers to letting coding agents test mobile and TV apps themselves.

Invest in accessibility labels in your app first; it pays off for both users and agents.

On CheckOps, agent-device is filed under the End-to-end & functional and Release & CI gates stages. Related tools listed here include Mobile MCP, Appium MCP, Maestro, Appium, Detox and Arbigent. When comparing them, weigh the licence, the languages and platforms each supports, whether it is self-hosted or managed, and how cleanly it slots into your existing CI pipeline. Details on this page were checked against the official website, documentation and repository on 11 November 2026.

Compare

CheckOps pages that put agent-device next to related tools. There is no paid placement on these lists.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with agent-device side by side.