agent-device

Lets coding agents see and drive apps on iOS simulators and real devices (Android too) through accessibility snapshots, taps, typing and screenshots. Comes as a CLI, MCP server and Node API.

View on GitHub ↗
Stars
★ 5,075
Last commit
19 Oct 2026
Maintenance
Active
Licence
MIT
Category
MCP Servers
GitHub
callstack/agent-device

Overview

agent-device is a command-line tool and MCP server from Callstack that lets AI coding agents inspect, control and verify mobile apps. Agents read the screen through accessibility snapshots, act on what they see and save evidence such as screenshots and logs for review. It's aimed at developers who want an agent to run and check its own work on iOS simulators, Android emulators and physical devices.

Features

  • Reads app state through accessibility snapshots, refs and selectors
  • Taps, fills fields, scrolls, makes gestures, waits for the UI to settle and handles alerts
  • Captures screenshots, video, logs, traces, network data and crash details
  • Saves working steps as .ad replay scripts for local use or CI, with optional Maestro YAML export
  • Available as a CLI, a stdio MCP server (agent-device mcp) and a typed Node.js API
  • Supports native iOS and Android apps plus React Native, Expo and Flutter apps on supported targets

Requirements

  • Node.js 22.12 or newer (Node.js 24 or newer for web automation)

Install

  1. Install the CLI globally and check your setup

    npm install -g agent-device@latest
    agent-device doctor
  2. To use it as an MCP server, add it to your client's MCP config

    {
      "mcpServers": {
        "agent-device": {
          "command": "agent-device",
          "args": ["mcp"]
        }
      }
    }

Example

Ask your agent: "Implement the onboarding screen, run it on the iOS simulator and Android emulator, and attach screenshots."

Works with

Claude CodeCodexCursorWindsurfAny MCP client

Listed in

swiftskills.dev

Read the code before you install anything. SwiftAgents doesn't review or endorse the tools listed here. Active: a commit in the last 90 days. Slowing: last commit within the past year. Stale: older than a year, or archived.

More in this category