About this project

agent-device is an open-source tool from Callstack that gives AI coding agents a live feedback loop into running applications. It is distributed as a CLI, a built-in stdio MCP server, and a typed Node.js client, all sharing the same runtime. Supported targets include iOS, Android and HarmonyOS simulators, emulators and physical devices, plus tvOS, Android TV, Amazon Vega OS TV, web, macOS and Linux. It works with agents such as Claude Code, Codex, Cursor, Windsurf, Cline and Goose, or as the runtime beneath agents built with the AI SDK or Eve. Core capabilities described in the README: - Inspect app state through accessibility snapshots, refs, selectors and React Native component trees, rather than relying on screenshots alone. - Act on visible UI: tapping, pressing, filling fields, scrolling, gestures, waiting, asserting state and handling alerts. - Diagnose failures with screenshots, video, logs, traces, network data, performance samples, crash details and React profiles. - Repeat workflows by saving steps as .ad scripts for local or CI use, with optional export to strict Maestro YAML. Installation is via npm (Node.js 22.12+, or 24+ for web automation), followed by a doctor command to check setup. Sessions are scoped to the caller's git worktree, and host-local device claims prevent parallel agents from taking over each other's simulators and emulators. Device ownership can be inspected and stale owners released without a daemon. The same commands can drive hosted devices on BrowserStack, AWS Device Farm and Limrun. Platform backends differ: a local accessibility bridge and XCTest for iOS, ADB for Android, HDC and ArkUI uitest for HarmonyOS, Vega CLI/VDA for the Vega Virtual Device, a local helper on macOS, and AT-SPI on Linux. Support depth varies, and a capabilities command reports what each target supports. The project positions itself as complementary to Appium, Detox and Maestro: those are used to write and maintain test suites, while agent-device lets an agent read app state and choose commands at run time, optionally exporting runs into those formats. It is MIT licensed.