agent-device
iOSおよびAndroidアプリの操作を自動化し、スナップショットベースのUI探索とセレクタ駆動のリプレイを実現。iOSシミュレータ/実機およびAndroidエミュレータ/実機に対応し、セッション単位の自動化、マルチテナント対応のリモートデーモンモード、QAワークフロー向けのデバイススコープ分離を提供。コアコマンド:UI探索用のスナップショット(参照付き)、操作(press/fill/scroll)、アプリライフサイクル(open/close)、バイナリデプロイ(install/reinstall)。ログ、ネットワークインスペクションなどのユーティリティを含む。
npx skills add https://github.com/callstackincubator/agent-device --skill agent-deviceagent-device
For a normal app-driving task, start immediately. Do not probe first with --help, --version, devices, appstate, snapshot, or screenshot:
agent-device open <app> --foreground
That starts the session and returns the initial interactive snapshot with @refs.
Loop: act with press|click|fill|longpress <target> ... --settle, scroll <direction> --settle, or back --settle; continue from the printed diff, verify the named expectation (wait text "...", is, get, or find), then run agent-device close.
Reaching an off-screen target is one command, not a scroll-and-check loop: scroll down --until <selector> scrolls until that element is on screen, and scroll bottom runs to the end of the content. Repeated bare scroll down calls are the slow way to find something.
Copy refs byte-for-byte: @e12, @e12~s4 — keep the @ and any ~sN. Prefer current refs, then id/label/role selectors; coordinates are a last resort. If snapshot reports sparse/AX-unavailable, its refs and selectors are invalid: run agent-device screenshot, inspect the image, use coordinates, then retry snapshot -i after navigating. Otherwise run snapshot -i only when the diff lacks the next target.
Error output includes corrective hints; follow them instead of re-planning. Only when the task is specialized (for example gestures, scripting, TV, macOS, remote, or debugging) or a command shape is unclear, run agent-device help <topic>. agent-device --help lists topics, but is not a startup step.