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、TVプラットフォーム、Web、macOS、Linuxで実行中のアプリを検査、制御、デバッグ、検証できるようにします。シミュレーター、エミュレーター、実機で動作します。

核となるアイデアは、エージェントにトークン効率の良いビューを提供することです。スクリーンショットではなく、アプリのアクセシビリティツリーをテキストスナップショットとして読み取り、UI要素を指すrefs(@e2、@e7…)を介して操作します。スクリーンショット、ビデオ、ログ、トレース、ネットワークデータ、クラッシュ詳細、React Nativeパフォーマンスプロファイルを証拠として保存し、人間が確認できるようにします。

なぜ重要なのか

実行中のアプリでのコード変更の検証は、これまで手動またはスクリプト化されたアサーション(Appium、Detox、Maestro)の仕事でした。agent-device はこれを逆転させます。エージェント自身がアプリの状態を読み取り、実行時にコマンド(タップ、入力、スクロール、ジェスチャー、アサート)を選択し、ワークフローを繰り返します。そのため、コーディングエージェントは機能を実装し、2つのプラットフォームで実行し、レビュー可能な証拠をPRに添付できます。

また、調整の問題も解決します。セッションは呼び出し元のgitワークツリーにスコープされ、デバイスクレームにより並行エージェントが互いのシミュレーターを奪うのを防ぎます。記録された実行は、CI用の.adリプレイスクリプトとして保存したり、Maestro YAMLとしてエクスポートしたりできます。

仕組み

  • 3つのエントリポイント、1つのランタイム: 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+)が必要です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト