How to Uninstall vphone-cli: Complete Removal Guide

Run brew uninstall vphone-cli to remove the binary, then delete ~/.vphone to erase all virtual machine bundles, IPSW files, and Python environments.

vphone-cli is distributed as a Homebrew formula through the zqxwce/tap repository and maintains persistent data in a dedicated user directory. Complete uninstallation requires removing both the compiled executable and the runtime artefacts stored outside the Homebrew prefix.

Remove the Homebrew Package

The primary installation method places the vphone-cli binary and its associated .app bundle under your Homebrew prefix (typically /usr/local/bin or /opt/homebrew/bin). To remove these components, execute the standard Homebrew uninstall command:

brew uninstall vphone-cli

This command deletes the compiled Swift executable defined in sources/vphone-cli/VPhoneCLI.swift (the ArgumentParser entry point) and the application wrapper managed by sources/vphone-cli/VPhoneAppDelegate.swift. It also removes the host-side vsock client implementation found in sources/vphone-cli/VPhoneControl.swift, which handles IPA installation and file transfers between the host and virtual machines.

Delete the Runtime Data Directory

vphone-cli stores all mutable data—including VM bundles, downloaded IPSWs, tool caches, and an embedded Python virtual environment—under the ~/.vphone directory. As documented in the repository's README.md at line 108, this location acts as the data root for all runtime operations.

To completely purge these artefacts and reclaim disk space, run:

rm -rf ~/.vphone

Removing this directory is essential because Homebrew's uninstall process only targets files within its managed prefix. The ~/.vphone path is created dynamically by the application during first run and persists independently of the package manager.

Clean Up Homebrew Cache (Optional)

Homebrew retains the source tarball and compilation artefacts in its internal cache. If you do not plan to reinstall vphone-cli and want to free additional storage, clear the formula's cached files:

brew cleanup

Source Files Affected by Uninstallation

Understanding what gets removed helps verify a clean system state. The following core files from the Lakr233/vphone-cli repository define the functionality eliminated during the uninstall process:

If you built vphone-cli manually using the Makefile, substitute the brew uninstall step with make uninstall or manually delete the binary from your PATH.

Summary

  • Uninstall the package with brew uninstall vphone-cli to remove the binary and .app bundle from the Homebrew prefix.
  • Delete user data by running rm -rf ~/.vphone to remove VM images, IPSWs, caches, and the Python environment.
  • Clear the cache using brew cleanup to remove Homebrew's stored compilation artefacts (optional).
  • The process targets code defined in VPhoneCLI.swift, VPhoneAppDelegate.swift, and VPhoneControl.swift while preserving no residual state when the data directory is removed.

Frequently Asked Questions

Does uninstalling vphone-cli delete my virtual machines?

Yes, but only if you manually delete the ~/.vphone directory. Running brew uninstall vphone-cli removes the executable but preserves VM bundles and disk images stored in the data root. You must run rm -rf ~/.vphone to erase virtual machine files completely.

Can I reinstall vphone-cli after uninstalling?

Yes. Since the uninstall process removes all persistent state when you delete ~/.vphone, reinstalling via brew install zqxwce/tap/vphone-cli creates a fresh environment without conflicts from previous configurations or cached IPSW files.

What if I installed vphone-cli from source instead of Homebrew?

If you cloned the repository and ran make install, you should run make uninstall from the source directory to remove binaries, or manually delete the executable from your PATH (commonly /usr/local/bin/vphone-cli). You must still remove ~/.vphone separately to delete runtime data.

Where does vphone-cli store its configuration files?

All configuration and data files reside in the ~/.vphone directory, as defined in the repository's README.md Locations table. This includes Python virtual environments, downloaded IPSW firmware files, and VM bundle storage. No configuration files are stored in standard Unix locations like ~/.config or /etc.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →