callstack/agent-device
CLI to control iOS and Android devices for AI agents
What it solves
agent-device provides a way for AI coding agents to interact with and verify applications across multiple platforms. It solves the problem of agents being unable to "see" or control the actual running app to verify if their code changes actually work in a real environment, bridging the gap between writing code and end-to-end verification.
How it works
The tool operates as a CLI that agents can use to inspect the app state and perform actions. It uses an "inspect-act-verify" loop: agents read token-efficient accessibility snapshots of the UI (using the app's accessibility tree), identify elements via references (refs) or selectors, and execute commands to interact with the UI (e.g., tapping, filling fields, scrolling).
It integrates with various platform-specific backends: XCTest for iOS/tvOS, ADB for Android, Vega CLI/VDA for Vega Virtual Device, and AT-SPI for Linux, as well as a local helper for macOS and agent-browser for web automation.
Who it’s for
- AI Coding Agents: Developers using tools like Cursor, Codex, Claude Code, or Windsurf who want their agents to verify changes in a running app.
- QA Engineers: Teams building AI-driven QA agents to automate the discovery and bug reporting of bugs.
- Developers: Those working with native iOS/Android, React Native, Expo, and Flutter apps.
Highlights
- Multi-platform support: Works across iOS, Android, tvOS, Android TV, Amazon Vega OS TV, web, macOS, and Linux.
- Token-efficient snapshots: Uses accessibility trees to provide agents agents with a compact representation of the UI.
- Evidence capture: Ability to save screenshots, videos, logs, traces, and React profiles for review.
- Workflow replay: Saves working steps as
.adscripts or exports them to Maestro YAML for repeatable tests. - Broad framework support: Compatible with native apps, React Native, Expo, and Flutter.