lakr233/vphone-cli/vphone-guest-control

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

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, tapping/swiping/typing/taking screenshots in the guest, calling a vphoned method (apps, files, logs, processes, UI tree), installing an IPA into a guest, installing the roothide/rootless bootstrap (Irisin), ssh into a guest, installing a .deb, or debugging a guest that shows a black screen or will not boot to the UI.

Install

npx vskill@latest install lakr233/vphone-cli/vphone-guest-control

SKILL.md

Driving vphone

vphone runs a virtual iPhone on an Apple Silicon Mac through Virtualization.framework. Two pieces matter to you:

PieceRole
vphone-launchpad (Mac app)Downloads and verifies VPhone.bundle, creates machines, runs them. Owns the only root helper.
vphone-launchpad-cliA 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. 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.

Each machine runs with its own bundle (vm list → bundle); the default only decides what new machines get.

  • machines: 0: create one (machines).
  • Otherwise: list machines, start the one the user named, then control it.
  1. Pick the reference for the task, and read it before acting.
TaskRead
Install Launchpad or a bundle, host requirements, series matchingreferences/install.md
An install step failed: "damaged", Developer Tools access turns off, several macOS installations, zsh: killed, not Apple siliconreferences/install-faq.md
Create, start, stop, retry, update a machine, change its Core Bundlereferences/machines.md
Tap, swipe, key, screenshot, anything on vphone.sockreferences/guest-socket.md
Call a vphoned method: apps, files, logs, UI tree, processesreferences/rpc-methods.md
Installing an IPAreferences/rpc-methods.md
roothide vs rootless, installing the bootstrap, ssh, /rootfs, handing files to vphoned, .debreferences/guest-layout.md
Black screen, timeouts, AMFI, "客体代理未连接"references/troubleshooting.md
A symptom the above does not cover; which research note or source explains itreferences/finding-docs.md
  1. Verify with the guest, not with assumptions. After an input, take a

screenshot or read ui.describe; after a launch, check apps.foreground. The guest is a real device with timing, so a command that returned ok has not necessarily produced the visible result.

Output and errors

  • Progress lines go to stderr as they arrive. The result is **one JSON

document on stdout**. Exit 0 is success; exit 1 is failure with the reason on stderr. Parse stdout, and read stderr when the exit code is 1.

  • vphone-launchpad-cli help prints every command with its options and is

authoritative if this skill and the installed version disagree.

  • Quote JSON in single quotes: guest rpc myphone apps.launch '{"bundle_id":"com.apple.Preferences"}'.
  • Interrupting the CLI cancels exec, waits and CFW install. A bundle install

or a machine creation belongs to the app window and keeps going, so do not start a second one because the CLI went quiet; run vm log <name> --kind create.

  • Pass --root <library> only when two libraries hold a machine with the same

name; the error lists the libraries.

Rules that save the user's machine

These exist because each one has cost the user real time or disk before.

  • Use the machines the user named. Do not vm create to reproduce a

problem; diagnose on the existing guest. A creation takes tens of GB and several restarts, and a half-built machine is harder to clean up than the bug.

  • Creating is one at a time, after checking free disk. IPSWs plus the

restore tree are large, and a full disk fails halfway with confusing errors.

  • Never change host security settings (SIP, boot-args, AMFI, Research

Guests) and never run bundle accept, bundle remove, cfw install or a second vm create over existing work unless the user asked. Report what is needed; the Mac's owner decides.

  • `force` methods need the user's intent. processes.kill, services.stop,

services.kickstart with kill, apps.uninstall, system.respring, system.reboot, system.shutdown and similar refuse to run without "force":true. Passing it is the confirmation, so pass it only for an action the user asked for.

  • Do not edit a machine's folder (`~/.vphone/machines/<name>/`) while it runs.

Use RPC for guest files instead.

  • Keep the host API listener on loopback. --api-listen sends its token in

clear text.

  • Install apps through installd (ideviceinstaller) when the point is to

test installation; apps.install bypasses installd. Never use xcrun devicectl to install or launch (it times out); listing devices is fine.

  • When stuck, read before experimenting. The repository's guides and

Research/ notes quote real failures; see references/finding-docs.md.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/lakr233/vphone-cli/vphone-guest-control/badge)](https://verified-skill.com/skills/lakr233/vphone-cli/vphone-guest-control)

Something wrong with this skill or its page? Tell us.