agent-device — Claude Code skill for app control
This skill lets an agent navigate apps on Apple platforms and Android, including TV devices. Use it to interact with screens, enter text, and inspect app state.
npx skills add callstack/agent-device --skill agent-device -a claude-codeWhat agent-device does
The skill starts an app with agent-device open <app> --foreground and receives an initial interactive snapshot with @refs. The agent can then press controls, enter text, scroll, or go back, verify an expected result, and close the app. Supported targets include iOS, tvOS, macOS, Android, Android TV, Fire TV on Fire OS, and Amazon Vega OS TV apps in Vega Virtual Devices.
For an off-screen element, scroll down --until <selector> moves to it; scroll bottom goes to the end of the content. If a snapshot reports sparse or unavailable accessibility data, its refs and selectors are invalid. Inspect agent-device screenshot and use coordinates instead. That is a reason to check the app’s accessibility before automating it. For specialized tasks or unclear command syntax, consult agent-device help <topic>.
What it helps with
- navigate to a specific app screen
- press a control and fill in a field
- scroll to an element by selector
- verify text or an element’s state
- capture a screenshot and inspect UI details
Example prompts for the agent
- Open `<app>` in the foreground and navigate to the sign-in screen.
- Find the control labelled `Continue`, press it, then verify that `Welcome` appears.
- If the UI snapshot has no usable refs, inspect a screenshot and locate the coordinates of the `Play` button.
How to install agent-device
1Skills CLI (Vercel)
npx skills add callstack/agent-device --skill agent-device -a claude-code2Manually: put the files in place
~/.claude/skills/agent-device/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/agent-device/
1Skills CLI (Vercel)
npx skills add callstack/agent-device --skill agent-device -a codex2Manually: put the files in place
.agents/skills/agent-device/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add callstack/agent-device --skill agent-device -a cursor2Manually: put the files in place
.cursor/skills/agent-device/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install callstack/agent-device agent-device2Manually: put the files in place
.github/skills/agent-device/SKILL.md1Skills CLI (Vercel)
npx skills add callstack/agent-device --skill agent-device -a gemini-cli2Platform CLI
gemini skills install https://github.com/callstack/agent-device --path skills/agent-deviceManually: put the files in place
.devin/skills/agent-device/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add callstack/agent-device --skill agent-device -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set2
The whole set →Similar
Questions about agent-device
How do I install agent-device in Claude Code?
Run npx skills add callstack/agent-device --skill agent-device -a claude-code. The skill file is at ~/.claude/skills/agent-device/SKILL.md.
What does agent-device do?
It lets an agent control apps on Apple platforms and Android devices, including TVs. The agent can interact with controls, enter text, scroll through screens, and check app state.
What should I do when a snapshot reports unavailable accessibility data?
Refs and selectors from that snapshot are invalid. Run agent-device screenshot, inspect the image, and use coordinates; after navigating, you can retry snapshot -i.
Source text
SKILL.md · MIT
--- name: agent-device description: Automates Apple-platform apps (iOS, tvOS, macOS), Android devices (including Android TV and Fire TV on Fire OS), and Amazon Vega OS TV apps in Vega Virtual Devices. Use when navigating apps, taking snapshots/screenshots where supported, driving TV remotes, tapping, typing, scrolling, extracting UI info, collecting evidence, or planning agent-device CLI commands. --- # agent-device For a normal app-driving task, start immediately. Do not probe first with `--help`, `--version`, `devices`, `appstate`, `snapshot`, or `screenshot`: ```bash 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.
© callstack · MIT · callstack/agent-device