callstack/agent-device

Open source device layer for AI coding agents: a CLI, MCP server, and typed Node.js API to control mobile, web, TV, and desktop apps on devices and simulators, locally or in the cloud.

功能介绍

agent-device 是一个命令行工具和 MCP 服务器,允许 AI 编码代理(Claude Code、Codex、Cursor、Windsurf、Cline、Goose)检查、控制、调试和验证在 iOS、Android、HarmonyOS、电视平台、Web、macOS 和 Linux 上运行的应用程序。它适用于模拟器、仿真器和物理设备。

核心思想是为代理提供一种令牌高效的视图:代理不通过截图进行推理,而是读取应用程序的无障碍树作为文本快照,并通过指向 UI 元素的引用(@e2、@e7…)进行交互。它保存屏幕截图、视频、日志、跟踪、网络数据、崩溃详情和 React Native 性能配置文件作为人工审查的证据。

重要性

在运行中的应用程序中验证代码更改历来是手动或脚本化断言的工作(Appium、Detox、Maestro)。agent-device 颠覆了这一点:代理本身读取应用状态,在运行时选择命令(点击、填充、滚动、手势、断言),并重复工作流程——因此编码代理可以实现功能,在两个平台上运行,并将可审查的证明附加到 PR 上。

它还解决了协调问题:会话限定在调用者的 git 工作树范围内,设备声明阻止并行代理窃取彼此的模拟器。记录的操作可以保存为 .ad 重放脚本用于 CI,或导出为 Maestro YAML。

工作原理

  • 三个入口,一个运行时: CLI、stdio MCP 服务器(agent-device mcp)和类型化的 Node.js 客户端(createAgentDeviceClient())——都共享会话、设备所有权、选择器、证据和重放。
  • 每个平台的后端: iOS 模拟器快照的本地无障碍桥;iOS 交互和物理设备的 XCTest;Android 上的 ADB;HarmonyOS 上的 HDC/ArkUI uitest;Vega 虚拟设备上的 Vega CLI;Linux 上的 AT-SPI。支持深度因目标而异,可通过 agent-device capabilities --platform <platform> 检查。
  • 检查-操作-验证循环 改编自 Vercel 的 agent-browser。MCP 将 CLI 命令暴露为结构化工具;某些客户端更倾向于纯 CLI。
  • 云/远程支持: 相同的命令可以驱动 BrowserStack、AWS Device Farm、TestMu AI 和 Limrun 上的托管设备。

成熟度

生产级工具质量:MIT 许可,npm 分发,CI 徽章,官方文档站点,Vercel AI SDK 和 Eve 的集成指南,Expo EAS CI 的工作流模板。知名采用者包括 Expensify、Shopify、JPMorgan Chase 等。需要 Node.js 22.12+(Web 自动化需要 24+)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目