phone-harness SKILL.md skillA
phone-harness from shawnpana/phone-harness is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add shawnpana/phone-harness/phone-harness@git:20261102.31a4331Pins git:20261102.31a4331 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- shawnpana/phone-harness
- Path
SKILL.md- Versions recorded
- 18
- Latest version
- git:20261102.31a4331, committed Nov 2, 2026
- First version recorded
- Sep 2, 2026
- Size
- 35,299 bytes
- Repository stars
- 4,586
- License
- MIT
Control the user's phone - an iPhone through the Mac's iPhone Mirroring window, an Android over adb, a rented cloud Android, or a cloud iPhone over HTTPS: open apps, tap, type, swipe, read the screen.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# phone-harness The main helpers are listed in [Helpers](#helpers). Direct control of a phone from Python scripts. The same helpers drive every kind of phone below; what differs is how each one sees and touches the screen, and that is what the per-phone sections below are for. Read **Which phone**, the shared **Working method**, and then only the section for the phone in front of you. ## Setup Check what this machine can do (OS, shell, install rights, network, attached phones; `phone-harness doctor` does the phone part), tell the user in a sentence or two which phone you can drive with what is here, and use the best one that actually runs. A phone on the desk wins; the cloud needs no hardware and is always the fallback. | Mode | Needs | | --- | --- | | Personal iPhone | macOS 15+, iPhone Mirroring paired to an iOS 18+ iPhone, Accessibility + Screen Recording for the app that runs Python | | Android on the desk | macOS, Linux or Windows; adb; USB debugging (or Wireless debugging, Android 11+) | | Cloud iPhone | HTTPS to phone-harness.com hosts; a signed-in account. No adb, any OS | | Cloud Android | the cloud iPhone list, plus adb and outbound TCP to the phone's adb port | …
Read the whole file at its exact version.
How to install
mdr add shawnpana/phone-harness/phone-harness@sha256:a8e7581875339239The line at the top of this page pins the label git:20261102.31a4331, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_eet6vc24fsf7qs6v)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 18 versions of this file, between Sep 2, 2026 and Nov 2, 2026, about one every 4 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261102.31a4331 latest | 2026-11-02 | 31a4331 | 35,299 B | A | view · diff |
| git:20261101.af85921 | 2026-11-01 | af85921 | 35,279 B | A | view · diff |
| git:20261101.ea487d3 | 2026-11-01 | ea487d3 | 35,253 B | A | view · diff |
| git:20261017.2539653 | 2026-10-17 | 2539653 | 35,164 B | A | view · diff |
| git:20261016.c39ad1e | 2026-10-16 | c39ad1e | 35,581 B | A | view · diff |
| git:20261016.b741e54 | 2026-10-16 | b741e54 | 37,431 B | A | view · diff |
| git:20261016.68d883f | 2026-10-16 | 68d883f | 36,276 B | A | view · diff |
| git:20261016.b962471 | 2026-10-16 | b962471 | 34,946 B | A | view · diff |
| git:20261012.927aca0 | 2026-10-12 | 927aca0 | 34,761 B | A | view · diff |
| git:20261012.5a119c7 | 2026-10-12 | 5a119c7 | 34,750 B | A | view · diff |
| git:20261012.58284a6 | 2026-10-12 | 58284a6 | 34,649 B | A | view · diff |
| git:20261011.d394a8e | 2026-10-11 | d394a8e | 31,361 B | A | view · diff |
| git:20261011.697cdd6 | 2026-10-11 | 697cdd6 | 30,766 B | A | view · diff |
| git:20260920.8596990 | 2026-09-20 | 8596990 | 17,081 B | A | view · diff |
| git:20260920.374f14d | 2026-09-20 | 374f14d | 18,010 B | A | view · diff |
| git:20260920.efab26a | 2026-09-20 | efab26a | 17,754 B | A | view · diff |
| git:20260920.183ad7e | 2026-09-20 | 183ad7e | 17,391 B | A | view · diff |
| git:20260902.edac832 | 2026-09-02 | edac832 | 13,515 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (35299 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
shawnpana/phone-harness · 4,586 stars · license MIT · pushed 2026-11-03 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_eet6vc24fsf7qs6v GET https://markdownregistry.com/api/v1/resolve?ref=shawnpana/phone-harness/phone-harness GET https://markdownregistry.com/api/v1/blob/a8e7581875339239a72f4a906525e3897454c0580b8ee60a0d4685e06d26690d
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.