Documentation
How to install SwiftVM, what it does, and how it is built.
User guide
Features
- Virtual MachinesA virtual machine is a computer that runs in a window on your Mac. SwiftVM runs macOS and Linux guests with Apple's Virtualization framework.
- macOS GuestsSwiftVM installs macOS from Apple and, from macOS 27 on, sets it up for you: no setup assistant to click through.
- Linux GuestsThere are two ways to create a Linux machine: Quick Create, from a ready-made image, and Installer Disc, from an ISO.
- Setup ScriptsA setup script sets a new Linux machine up the first time it starts. It can install a desktop, Docker, your tools: anything a program can do as root. A machine can have several, which run one after the other.
- NetworkingEvery machine is on one shared network that SwiftVM manages. Guests reach the internet through your Mac, and your Mac and the guests reach each other directly.
- SSHEvery machine gets an SSH name made from its name: Web Server becomes web-server. Use it to connect from your Mac without looking up addresses.
- Guest ToolsThe guest tools are a small agent that runs inside a virtual machine. It talks to SwiftVM over the machine's own socket device, so it works even when the guest has no network.
- Shared Folders and ClipboardShared folders · Clipboard
- Disks and ImagesThe disk · Growing the disk · Disc and disk images · Copies and snapshots
- USB DevicesSwiftVM can hand a USB device of your Mac to a running guest: a drive, a security key, a serial adapter. The guest sees the real device and uses its own driver for it.
- SnapshotsA snapshot keeps a machine exactly as it is, so you can come back to it later: before an upgrade, or before trying something risky.
- Command Lineswiftvm does from a terminal what the app does from the menu bar. It drives the running app, so SwiftVM must be open.
- Automationswiftvm can work inside a running guest: run commands in it, copy files, see its screen, and use its mouse and keyboard. It is made for scripts and for AI agents, which get a machine of their own to work in instead of your Mac.
Technical design
- Technical designHow SwiftVM is built.
- ArchitectureThe programs, the modules, and how they work together.
- DecisionsThe key technical choices, why they were made, and what was turned down.
- ConstraintsSupported platforms, and lessons that shape the code.
- BuildingBuilding the app, running a development copy, and signing.
- ReleasingHow a release is made, and how updates reach people.