android-remote-control
Use this skill when controlling an Android device through the Android Remote Control MCP server — reading the screen, navigating apps and home screen, opening…
Skill by jason-riddle
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jason-riddle-android-remote-control
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/android-remote-control
What's inside
- Skill name
android-remote-control- Description
- Use this skill when controlling an Android device through the Android Remote Control MCP server — reading the screen, navigating apps and home screen, opening URLs in Chrome, tapping/typing/scrolling, managing files in device storage, checking device settings (including ADB / wireless debugging state), taking photos, reading notifications, or any task that requires interacting with a physical Android phone or tablet from the host. Triggers on requests like "check my Android phone", "open a website on the device", "read what's on the screen", "go to developer options", "enable USB debugging", "check if ADB is enabled", "take a photo from the phone", "list files on the device", or any task involving an Android device managed via the android-remote-control MCP tools.
- License
- MIT
- Instructions
- 1,385 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- body: 1385 lines (spec recommends under 500)
Files (1)
- SKILL.md
SKILL.md (first lines)
# Android Remote Control Control a physical Android device via the Android Remote Control MCP server. The device runs an accessibility-service-based MCP app — it does NOT require ADB or root. All interaction happens through MCP tool calls that map to accessibility actions, gestures, intents, and file/storage APIs. ## Orientation Run the following before proceeding to confirm the MCP server is connected and discover available storage and apps: ``` android_list_storage_locations android_list_apps filter=user android_get_screen_state ``` ## How to read a page (screen state) Call `android_get_screen_state`. This returns: - `screen: <w>x<h> density:<n> orientation:<landscape|portrait>` - One block per window, each with `pkg`, `title`, `activity`, `focused` - A flat node table: `node_id | class | text | desc | res_id | bounds | flags` - A `hierarchy:` section showing node nesting via indentation Flags: `on`=onscreen, `off`=offscreen, `clk`=clickable, `lclk`=longClickable, `foc`=focusable, `scr`=scrollable, `edt`=editable, `ena`=enabled. ### Pagination Large screens split into pages of 200 nodes. The response includes a `page:N/total` line and a `cursor`. Call again with that `cursor` to fetch the next page. Stop as soon as the needed node is found — do not fetch every page. ### Screenshots `include_screenshot=true` can ONLY be requested on page 1 (no cursor). The screenshot is a low-resolution image attachment. Use it when the node tree is insufficient (custom views, Canvas, game UI, Samsung One UI preferences). ### Find a specific element ``` android_find_nodes by="text" value="Settings" android_find_nodes by="resource_id" value="com.android.chrome:id/url_bar" android_find_nodes by="content_desc" value="Chrome" android_find_nodes by="class_name" value="android.widget.EditText" ``` `exact_match=false` (default) matches contains, case-insensitive. `exact_match=true` matches exactly. ### Retrieve full text `android_get_node_details` with one or more `node_ids` returns full untruncated text and description — use when the node table shows `...truncated`. ### Wait for an element ``` android_wait_for_node by="text" value="Example Domain" timeout=10000 ``` ### Wait for UI to settle ``` android_wait_for_idle timeout=5000 ``` Returns when the screen stops changing (similarity-based). Some pages never go fully idle (animations, feeds); use a lower `match_percentage` (e.g. 95) or rely on `wait_for_node` instead. Action tools already wait for their gesture to complete before returning — only call `wait_for_idle` when confirming a transition. ## Go to home screen ``` android_press_home ``` Then call `android_get_screen_state` to see launcher icons. Tap an icon with `android_tap_node` (uses node_id from the tree). ## Go to Chrome Two approaches: **Via `open_app` (preferred — launches the app directly):** ``` android_open_app package_id="com.android.chrome" ``` **Via home screen tap (if the app icon is visible on the launcher):** ``` android_press_home android_get_screen_state # Find the Chrome icon node, then: android_tap_node node_id="<chrome_icon_node_id>" ``` After launching, call `android_get_screen_state` to see Chrome's UI. On a new tab the URL bar has `res_id=com.android.chrome:id/url_bar` (toolbar) or `com.android.chrome:id/search_box_text` (large centered search box on the new tab page). ### Chrome toolbar resource IDs | Element | resource_id | content_desc | |---------|-------------|--------------| | URL bar | `com.android.chrome:id/url_bar` | - | | Home button | `com.android.chrome:id/home_button` | "Open the home page" | | New tab button | `com.android.chrome:id/optional_toolbar_button` | "New tab" | | Tab switcher | `com.android.chrome:id/tab_switcher_button` | "See N tabs" | | 3-dot menu | `com.android.chrome:id/menu_button` | "Customize and control Google Chrome" | | Voice search | `com.android.chrome:id/mic_button` | "Start voice search" | | Google Lens | `com.android.chrome:id/lens_camera_button` | "Search with your camera using Google Lens" |
From jason-riddle/agent-skills, MIT.
More from jason-riddle/agent-skills
- 0.565score
adb
jason-riddle
Use this skill when working with the Android Debug Bridge (`adb`) — connecting to devices, enabling USB or wireless debugging, pushing/pulling files, running…
SkillAFreshness: AClaude Code +9 - 0.565score
deno
jason-riddle
Use this skill when running, testing, or managing JavaScript/TypeScript projects with `deno`.
SkillAFreshness: AClaude Code +9 - 0.539score
fastmail-jmap
jason-riddle
Use this skill when the user wants to access Fastmail mail, contacts, or Masked Email through Fastmail's JMAP API using a credential-safe VM helper or curl…
SkillAFreshness: AClaude Code +9 - 0.539score
bttf
jason-riddle
Use this skill whenever the user wants to run the `bttf` command or work with date/time parsing, arithmetic, formatting, recurrence, or time-zone conversion…
SkillAFreshness: AClaude Code +9 - 0.539score
parking-passport
jason-riddle
Use this skill when the user wants to start, extend, or check a parking session through Passport Parking using a browser, including requests to pay for…
SkillAFreshness: AClaude Code +9 - 0.524score
paperless-postgres-mcp-query
jason-riddle
Use this skill when querying the Paperless-ngx PostgreSQL database via the `postgres` MCP server's `postgres_query` tool — discovering document IDs…
SkillBFreshness: BClaude Code +9 - 0.524score
nix
jason-riddle
Use this skill when working with the Nix package manager — installing packages, managing profiles, building derivations, or using nix flakes.
SkillBFreshness: BClaude Code +9 - 0.524score
mcp-remote
jason-riddle
Use this skill when connecting an stdio-only MCP client to a remote MCP server using `mcp-remote` via `npx`.
SkillBFreshness: BClaude Code +9 - 0.474score
opencode
jason-riddle
Use this skill when working with the OpenCode AI coding agent CLI.
SkillCFreshness: CClaude Code +9 - 0.474score
flatpak
jason-riddle
Use this skill when installing, removing, or managing applications with `flatpak`.
SkillCFreshness: CClaude Code +9 - 0.474score
age
jason-riddle
Use this skill when encrypting or decrypting files with `age` — generating key pairs, encrypting to one or more recipients, decrypting with an identity file…
SkillCFreshness: CClaude Code +9 - 0.474score
ollama
jason-riddle
Use this skill when running, managing, or interacting with LLM models via `ollama` — locally or on a remote machine.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Aug 23, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jason-riddle/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jason-riddle
- 0.565score
adb
jason-riddle
Use this skill when working with the Android Debug Bridge (`adb`) — connecting to devices, enabling USB or wireless debugging, pushing/pulling files, running…
SkillAFreshness: AClaude Code +9 - 0.565score
deno
jason-riddle
Use this skill when running, testing, or managing JavaScript/TypeScript projects with `deno`.
SkillAFreshness: AClaude Code +9 - 0.539score
parking-passport
jason-riddle
Use this skill when the user wants to start, extend, or check a parking session through Passport Parking using a browser, including requests to pay for…
SkillAFreshness: AClaude Code +9 - 0.539score
fastmail-jmap
jason-riddle
Use this skill when the user wants to access Fastmail mail, contacts, or Masked Email through Fastmail's JMAP API using a credential-safe VM helper or curl…
SkillAFreshness: AClaude Code +9 - 0.539score
bttf
jason-riddle
Use this skill whenever the user wants to run the `bttf` command or work with date/time parsing, arithmetic, formatting, recurrence, or time-zone conversion…
SkillAFreshness: AClaude Code +9 - 0.524score
paperless-postgres-mcp-query
jason-riddle
Use this skill when querying the Paperless-ngx PostgreSQL database via the `postgres` MCP server's `postgres_query` tool — discovering document IDs…
SkillBFreshness: BClaude Code +9
Cite this page
android-remote-control skill. Agent Mart. https://agentmart.dev/skills/jason-riddle-android-remote-control (last updated 2026-10-24)