Phone Harness
ShawnPana/phone-harness
Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.
Direct Android device control through ADB. An agent skill from yang1ming/android-harness.
$ npx skills add yang1ming/android-harness --skill android -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yang1ming/android-harness android --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .claude/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yang1ming/android-harness --skill android -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yang1ming/android-harness android --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .agents/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yang1ming/android-harness --skill android -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yang1ming/android-harness android --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .cursor/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yang1ming/android-harness --skill android -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yang1ming/android-harness android --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .gemini/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yang1ming/android-harness androidInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yang1ming/android-harness --skill android -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .github/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yang1ming/android-harness --skill android -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yang1ming/android-harness android --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "android" agent skill from https://github.com/yang1ming/android-harness/tree/main into .opencode/skills/android/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
androidDirect Android device control through ADB. An agent skill from yang1ming/android-harness.
Android is an agent skill from yang1ming/android-harness. Direct Android device control through ADB. Use for authorized device automation, testing, screenshots, UI inspection, and app interaction.
Its SKILL.md is about 260 tokens, which your agent loads only when the skill is triggered. The skill folder holds 91 other files (for example `.github/ISSUE_TEMPLATE/bug_report.yml`, `.github/ISSUE_TEMPLATE/feature_request.yml` and `.github/ISSUE_TEMPLATE/safety_boundary.yml`).
It sits in Mobile, covering Mobile testing and debugging. It works with Android. The repository describes itself as: A lightweight, ADB-first Android harness for agents, exposing stable primitives for authorized device automation, screenshots, UI inspection, input events, diagnostics, and… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fe4a40f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Android loads about 259 tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 103 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yang1ming/android-harness at commit fe4a40f, republished under its MIT licence (© yang1ming). 103 words, ~259 tokens.
.claude/skills/android/SKILL.md (or your agent's skills folder). This skill also uses 87 other files; get the full folder from GitHub.Direct Android device control through ADB. For task-specific edits, use
agent-workspace/agent_helpers.py. For app-specific knowledge, use
agent-workspace/app-skills/<package>/.
android-harness <<'PY'
print(device_info())
print(current_app())
print(page_info())
PYHelpers are pre-imported. Prefer this loop:
Screenshots are the primary observation source. uiautomator XML is an auxiliary
source and may be incomplete for WebView, games, canvas, or custom-rendered UI.
Use this harness only on devices and apps where automation is authorized. The core does not hide ADB, root, accessibility, emulator, or automation signals.
© yang1ming, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 87 other files in the repository root of yang1ming/android-harness.
Open the folder on GitHubat commit fe4a40f
Android next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Android this skillyang1ming/android-harness | 175 | — | ~259 | Automated safety check: Pass | MIT | |
| Phone HarnessShawnPana/phone-harness | 3.2k | — | ~4.3k | Automated safety check: Pass | MIT | |
| Mobile QAtloncorp/tlon-apps | 107 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Debug Receiverstimusus/Shuttle2 | 229 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Debug Bridgegetknit/knit | 130 | — | ~2.2k | Automated safety check: Pass | GPL-3.0 | |
| Capturing Screenshots And Screenrecordskydoves/android-testing-skills | 333 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 |
ShawnPana/phone-harness
Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.
tloncorp/tlon-apps
Run a mobile QA checklist on a physical Android device over adb for tlon-apps, then triage what fails into fixes.
timusus/Shuttle2
Drive the S2 debug build's playback and queue over ADB broadcasts — play the whole library, play/pause, skip, seek, remove a queue item, toggle shuffle/repeat, dump playback state as JSON, reimport…
getknit/knit
Drive and verify Knit on a device or emulator through the headless debug bridge (am broadcast to app.getknit.knit.debug.<ACTION, replies as JSON) — send a message on one phone and confirm it landed…
skydoves/android-testing-skills
A skill your agent uses to capture visual artefacts from a device for test failures, golden image generation, QA repro, and demo videos.
Moustachauve/WLED-Android
Production-ready scripts for Android app testing, building, and automation.
Works with
Categories
Direct Android device control through ADB. An agent skill from yang1ming/android-harness. Android is an agent skill from yang1ming/android-harness. Direct Android device control through ADB.
Android fits situations like: authorized device automation; app interaction.
Run `npx skills add yang1ming/android-harness --skill android -a claude-code`. Or copy the skill folder (the yang1ming/android-harness repository) into .claude/skills/android in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yang1ming/android-harness --skill android -a codex`. Or copy the skill folder (the yang1ming/android-harness repository) into .agents/skills/android in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yang1ming/android-harness --skill android -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/android, .gemini/skills/android, .github/skills/android and .opencode/skills/android in your project.
Going by SKILL.md and its folder, Android needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Android is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 259 tokens (SKILL.md is roughly 1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Android: Phone Harness (ShawnPana/phone-harness, 3.2k stars), Mobile QA (tloncorp/tlon-apps, 107 stars), Debug Receivers (timusus/Shuttle2, 229 stars) and Debug Bridge (getknit/knit, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yang1ming (a GitHub user) maintains it in yang1ming/android-harness, which has 175 GitHub stars. The repository was last updated on July 21, 2026.
Source: yang1ming/android-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.