Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add callstack/agent-device --skill agent-device -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/agent-device/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/agent-device/

From the same set2

The whole set →

Similar

design-mobile-apps designed-by-ai Designs mobile screens via the Sleek REST API and translates them into React Native or HTML code. Claude Code CX Codex Cursor +1 1,000,000installs mobile-ios-design Seth Hobson Guides native iOS interface work with Apple HIG and SwiftUI patterns. Use it when building views, navigation, or adaptive layouts. Claude Code CX Codex Cursor 23,659installs flutter-apply-architecture-best-practices flutter This skill structures Flutter apps around UI, Logic, and Data layers. Use it when starting a project or refactoring code for scale. Claude Code CX Codex Cursor +1 43,000installs flutter-build-responsive-layout flutter This skill guides coding agents to build adaptive Flutter UIs across mobile and desktop screens using LayoutBuilder and BoxConstraints. Claude Code CX Codex Cursor +1 42,300installs flutter-add-widget-test flutter A skill that teaches AI coders to write component-level Flutter tests using WidgetTester. Verifies how widgets render and respond to taps, scrolling, and text input. Claude Code CX Codex Cursor +1 39,000installs google-mobile-ads-android-migrate-to-next-gen official google Guides Android projects through a move from the legacy Google Mobile Ads SDK to GMA Next-Gen. Use it when updating an existing ad integration and checking the resulting code. Claude Code Gemini CLI CX Codex 5,969installs vercel-react-native-skills vercel A rules pack for React Native and Expo work: lists, animations, navigation, native modules. Load it so your agent makes mobile changes the same way every time. Claude Code CX Codex Cursor +1 253,900installs animate-expo emilkowalski Builds React Native and Expo animations using Reanimated and Gesture Handler. Helps keep motion on the UI thread and avoid dropped frames on physical devices. Claude Code CX Codex Cursor +1 135,900installs

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

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor