dev-tools 3 min read

vphone-cli: A Virtual iPhone on Apple Silicon

vphone-cli boots a virtualized iPhone on Apple Silicon Macs so coding agents can drive UI flows for testing. MIT Swift project with 13k stars trending this week.

By
Share: X in
GitHub social preview card for Lakr233/vphone-cli

TL;DR: Lakr233/vphone-cli is a Swift CLI that boots a virtualized iPhone on Apple Silicon Macs. It is MIT-licensed, sitting at 13,368 stars, and is most useful when you need an automated agent to drive real iOS UI flows.

What it is

Lakr233/vphone-cli lives in the Lakr233 GitHub account, the language is Swift, the license is MIT, and the repository has 13,368 stars and 1,590 forks. It is not archived, ships no homepage, and the GitHub API description field is empty for the upstream. The repository itself documents the project’s purpose in its README rather than the description string.

The project targets one specific scenario: a sandboxed, scriptable iPhone image that runs on macOS Apple Silicon, exposed as a CLI.

What it does well

Most iOS automation either requires a real device tethered over USB, or a slow simulator harness. vphone-cli takes a third path: a fully virtualized iPhone image that runs alongside macOS.

  • Virtualized iPhone. The instance boots inside macOS without needing a USB-attached device, which makes it scriptable from a headless machine.
  • CLI surface. Everything that matters for automation — start, stop, capture state — is a subcommand, so a coding agent or CI job can drive it without an Xcode UI.
  • Swift-native. A Swift CLI on Apple Silicon is the cheapest path for the host loop, which means faster cold starts and lower idle CPU than wrapping a Python or Node orchestrator.
  • Agent-friendly. When a coding agent needs to “test this flow on iOS,” it can invoke the CLI in place of a human tester.

How to try it

The README is the canonical install reference. A typical setup looks like:

git clone https://github.com/Lakr233/vphone-cli.git
cd vphone-cli
swift build -c release
# then follow the README's image acquisition steps to provide the iOS root
./vphone-cli boot

Once booted, the tool exposes its control surface to whatever scripting environment wraps the CLI.

When it fits, and when it doesn’t

vphone-cli fits teams shipping iOS apps who need automated UI flows without paying for a device farm, and individual developers who want to script agent-driven iOS interactions. It is less attractive if you only target the iOS simulator and do not need the virtualization layer, or if your fleet is Intel-only — Apple Silicon is the supported hardware path.

The 13k star count and 1,590 forks suggest a real community of users integrating it into their testing pipelines.

Source and Accuracy Notes

  • Project page: https://github.com/Lakr233/vphone-cli
  • Source repository: Lakr233/vphone-cli (verified via GitHub API html_url)
  • License: MIT (verified via GitHub API license.spdx_id)
  • Stars at time of writing: 13,368
  • Language: Swift
  • Homepage: none provided in repository metadata