Mobile Harness skill
A Markdown instruction set for agents driving Android and iOS phones, locally through ADB or in the cloud.
- 432 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- An agent controls a phone and can open apps and enter data in signed-in accounts.
- First setup installs Python packages and connects to the device over ADB.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/mobile-harnessDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- An agent controls a phone and can open apps and enter data in signed-in accounts.
- First setup installs Python packages and connects to the device over ADB.
This is third-party code. Review the repository files before installing.
What it does
Mobile Harness teaches an agent to work with an Android or iOS phone. The main control path is the Python package `mobilerun_core`: it connects to a device over local ADB, an HTTP portal or the cloud, reads the accessibility tree, takes screenshots, taps by text and node, and scrolls a list to the wanted element. The repository holds platform and recovery guides, rules for credentials and memory, and app cards `apps/*/CARD.md` for Chrome, Settings, Gmail and eBay. It is a set of Markdown files rather than an agent runtime.
Who it is for. Mobile developers and testers who hand an agent scenarios on a real phone, a simulator or a cloud device.
Good fit when
- An agent walks through an Android Settings flow and checks the result against the accessibility tree.
- A run goes on a cloud device with no physical phone at hand.
- An iOS flow is repeated on a simulator through the `ios-portal` app.
- The agent takes repeated steps from local memory and app cards instead of rediscovering them.
Not a fit when
- Deterministic UI tests without a model are needed, while the harness is written for an agent.
- The phone holds personal accounts that cannot be separated from test ones.
- No Python 3.11–3.13 is present and none can be installed.
Example request
Connect to the Android device over ADB, open Settings, find the Wi-Fi item and show a screenshot.Limitations
First setup needs Python 3.11–3.13 and the `mobilerun-core[local]` package per `install.md`, even when the skill is already installed through `npx skills add` or the plugin. The `execute_script` method works only on cloud devices, and local backends raise `UnsupportedOperation`. Cloud mode runs through the Mobilerun service. An agent with phone access opens apps and enters data on behalf of the owner: credentials live in the `local/` directory, which should stay out of a shared repository, and scenarios are best tried on a test device first.
How to disable. Remove the skill (`npx skills remove` or `/plugin uninstall mobile-harness`) and the `.venv/` and `local/` directories. Turn off USB debugging on the phone.
FAQ
Install with npx or the plugin?
Both work. Claude Code has `/plugin marketplace add droidrun/mobile-harness` and `/plugin install mobile-harness@mobile-harness`, other agents use `npx skills add droidrun/mobile-harness`.
Which devices fit?
Android over local ADB, Portal or cloud, and iOS through `mobilerun-ios`, cloud or a simulator with `ios-portal`.
Is it an agent runtime?
No. The README calls it a compact set of Markdown files, and the `mobilerun_core` package drives the device.
How do I update it?
`npx skills update` from the same project updates the skill. Python dependencies change only on request, per `UPDATE.md`.
Which apps are described?
`apps/` holds cards for Chrome, Settings, Gmail and eBay on Android, plus Safari and Settings on iOS.
Discussion
No questions or reviews yet.
Related
SkillsSkill and CLI for controlling an Android phone via ADB and vision models: the agent opens apps, searches, orders and verifies results
Skills and a CLI that let Claude Code, Codex and OpenCode operate an Android phone: open apps, tap, type and test workflows
An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots
mobilecli drives iOS and Android devices, emulators and apps from the terminal, and its skill teaches Claude Code how to use it
An MCP server that drives an Android device over ADB: app navigation, input and automated tests
Awesome Android Agent Skills
awesome-android-agent-skills
Skills for modern Android development for Copilot, Claude, Gemini and Cursor: Kotlin, Jetpack Compose, architecture, Hilt, Room
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Mobile Harness (this card) | no | 432 | ||
| claude-in-mobile | no | not required | 382 | an MCP server that performs device actions itself; Mobile Harness is instructions and app cards on top of `mobilerun_core` |
| Android MCP Server: control Android through ADB | no | not required | 811 | an Android-only MCP server; Mobile Harness also covers iOS and cloud devices |
README in short
Workflow: connect through `Mobilerun.connect`, then use helpers such as `find_nodes`, `tap_text`, `scroll_until`. Check `device.supports` before optional operations.