vphone-guest-control SKILL.md skillA
vphone-guest-control from lakr233/vphone-cli is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add lakr233/vphone-cli/vphone-guest-control@git:20261105.9f3974ePins git:20261105.9f3974e in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- lakr233/vphone-cli
- Path
Skills/vphone-guest-control/SKILL.md- Versions recorded
- 5
- Latest version
- git:20261105.9f3974e, committed Nov 5, 2026
- First version recorded
- Oct 1, 2026
- Size
- 6,412 bytes
- Repository stars
- 16,572
- License
- MIT
Install vphone-launchpad and VPhone.bundle, create and run vphone virtual iPhones, and drive a running guest from the command line with vphone-launchpad-cli and the per-machine vphone.sock. Make sure to use this skill whenever the user mentions vphone, vphone-launchpad, vphone-launchpad-cli, VPhone.bundle, vphoned, vphone.sock, or a virtual iPhone on their Mac, even if they do not name the tool. That includes setting vphone up, creating/starting/stopping a machine…
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
# Driving vphone
vphone runs a virtual iPhone on an Apple Silicon Mac through
Virtualization.framework. Two pieces matter to you:
| Piece | Role |
| --- | --- |
| `vphone-launchpad` (Mac app) | Downloads and verifies `VPhone.bundle`, creates machines, runs them. Owns the only root helper. |
| `vphone-launchpad-cli` | A stateless client of the running app. Every command also appears in the app's window and history. |
Use `vphone-launchpad-cli` for everything. The app does the privileged and
signed work for you; a second route (sudo, a copy of `vphone-cli`, `devicectl`)
either lacks the entitlements, bypasses the checks the app records, or times out
against these guests.
## How a session should go
1. **Find out where the user is.** Run `vphone-launchpad-cli status`. If the
command does not exist, go to [install](references/install.md). Otherwise the
JSON tells you the next step:
- `canInstallBundles: false` or `helper` not `ready`: the user must finish
Host Setup in the app (administrator password, Developer Tools access).
You cannot do this for them; say exactly what is missing.
- `defaultBundle: null` or `bundleReady: false`: install or verify a bundle.
…Read the whole file at its exact version.
How to install
mdr add lakr233/vphone-cli/vphone-guest-control@sha256:739725de61067de3The line at the top of this page pins the label git:20261105.9f3974e, 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_z2foile2gwqnuto5)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between Oct 1, 2026 and Nov 5, 2026, about one every 9 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261105.9f3974e latest | 2026-11-05 | 9f3974e | 6,412 B | A | view · diff |
| git:20261020.6b8c6e0 | 2026-10-20 | 6b8c6e0 | 6,462 B | A | view · diff |
| git:20261005.58c069f | 2026-10-05 | 58c069f | 6,426 B | A | view · diff |
| git:20261003.9205fd2 | 2026-10-03 | 9205fd2 | 6,407 B | A | view · diff |
| git:20261001.66148f3 | 2026-10-01 | 66148f3 | 6,260 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 (6412 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
lakr233/vphone-cli · 16,572 stars · license MIT · pushed 2026-11-08 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_z2foile2gwqnuto5 GET https://markdownregistry.com/api/v1/resolve?ref=lakr233/vphone-cli/vphone-guest-control GET https://markdownregistry.com/api/v1/blob/739725de61067de34d1573523bebd6a2b37bd42184a791cf19521caef06e5a71
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.