MacVisor Beta

Changelog

MacVisor beta release notes.

MacVisor is beta software. Features and formats can change before GA; keep an independent VM backup and review destructive confirmations carefully.

Notes and limitations:

  • MacVisor is mainly developed and tested for single-user Apple-Silicon Macs.
  • MacVisor is specially designed for hosted Mac minis and Mac Studios.
  • Requires macOS 27. The guest agent supports macOS 14 and later inside a VM.
  • During the beta, suspended VMs and live snapshots are a convenience for the build they were made on: shut VMs down before updating MacVisor.

27.0.0 (public betas)

The public betas, for macOS 27 on Apple Silicon, in brief it ships:

  • Linux and macOS guests on Apple's Virtualization framework, each VM in its own process, owned by a background service that keeps VMs running when the app is closed.
  • Cloud images: a bundled catalogue of Ubuntu, Debian, Fedora, Rocky Linux, AlmaLinux, Oracle Linux, CentOS Stream, openSUSE Leap, and Alpine. cloud-init sets up your account, SSH keys, and the guest agent, plus a container runtime (containerd, Docker, Podman, or k3s) and a read-only share of your home folder when you ask for them; every VM is a linked clone of its template.
  • macOS guests from Apple's installers (macOS 27, 26, 15, 14, or the newest this Mac supports). macOS 27 guests skip Setup Assistant, sign in, and install the guest agent themselves.
  • Snapshots (disk-only and live), templates, linked and full clones, export and import (imported bundles are made safe to run), and ASIF disks that resize and convert in place.
  • Networking: NAT, bridging, named shared and host-only networks with DHCP, DNS, NAT, reservations and port forwards, VLAN interfaces, a firewall the background service enforces whether or not the app is open, <vm>.mvz and <vm>.macvisor names, and automatic port forwards.
  • Guest tools: mvz shell and exec over the agent, a clipboard shared both ways, one way, or not at all per VM, file transfer, port tunnels, live guest information, and Docker contexts and kubeconfigs on the Mac.
  • The mvz CLI (also installed as macvisor) for everything the app does, with JSON output, shell completion, and documented exit codes.
  • An always-on host: VMs that start at login, Open at Login for the app, headless VMs, menu-bar control, a dashboard of host resources and tasks, and a choice of shutting down (the default) or suspending running VMs when the Mac logs out or restarts.
  • Setup and licensing: a first-run assistant for the background service, network helper, and Local Network consent; a free 30-day trial that starts in the app or with mvz license trial (one per Mac, no key or checkout); one-time MacVisor 27 Pro licenses and annual Enterprise licenses, sold through Polar and checked with ScaleNinja's licensing server, which replaced activation through Polar during the beta (activations move over by themselves, and Macs on a beta trial get the new trial). One license covers every account on a Mac, and Move to This Mac moves it from another. The license is re-checked weekly with a 30-day offline allowance whether or not the app is open, and mvz license manages it on a Mac you only reach over SSH.
  • Updates through Sparkle, signed and verified; running VMs are not interrupted, and MacVisor asks first when VMs are suspended.

What new in latest beta

  • Licensing on ScaleNinja's own licensing server. The free trial starts in the app (or mvz license trial) with no sign-up or email; one license or trial covers the whole Mac, for every macOS account on it; Move to This Mac moves a license from another Mac; license checks are signed and checked on the Mac, and work offline for 30 days. Beta licenses and trials move over by themselves.
  • VM Settings, reorganised. Pages grouped as Machine, Devices and Integration, with new System (CPU, memory, ballooning, nested virtualization, Secure Boot, Rosetta), Keyboard & Pointer, Sound, Clipboard and Guest Tools pages. Shared folders are a table with Read Only or Read & Write per folder and a switch to turn sharing off without losing the list. Network adapters expand in place and show their mode, interface or network, address, and, while the VM runs, Connected and Reconnect. Display has a choice of what happens when the window resizes, and device rows show a status dot.
  • Custom networks keep their subnets. A network stays reserved while MacVisor runs and gets the same subnet every session (the Default network first), so stopping VMs or adding a network no longer moves another network's addresses. mvz networks shows each subnet, and if another app takes one, MacVisor says so and offers to move DHCP reservations to the new subnet. Reach VMs by name (<vm>.mvz).
  • MacVisor in 11 languages. The app, the VM window and the permission prompts are available in English, German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, Romanian, Swedish and Simplified Chinese, following your Mac's language (or per app in System Settings -> General -> Language & Region). The mvz CLI and log messages stay in English.
  • Shell completion for zsh and fish is set up with the mvz command; the bundled tool is now Contents/Helpers/macvisor-cli (the mvz and macvisor commands are unchanged).
  • Safer storage. Free-space checks before copies, exports, snapshots and flattens; moves and clones can't split a VM's disk across drives; leftovers from an interrupted operation are cleaned up; Private Size counts only what deleting would free.
  • Updated EULA and privacy policy: asked to accept the EULA on first launch.
  • Several number of fixes and improvements across the background service, the VM runner, networking (bridged adapters follow their own interface), the guest agents (the clock after the Mac sleeps, clipboard, file transfers), uninstall and the CLI (shell completion, clearer errors).

Testing notes for betas

  • Unit tests: about 490, covering the wire format, settings migrations, licensing (signed leases, clock rollback, device limits) and start/restore checks, plus the Linux guest agent's tests.
  • End to end: a scripted run of about 210 checks through mvz on a real Mac: an Ubuntu VM from a cloud image (lifecycle, snapshots, clones, templates, export and import, shared folders, nested virtualization, the memory balloon, port forwards, Docker, custom and host-only networks with reservations, the firewall), VMs with your own cloud-init, and a macOS 27 VM with automatic setup and the guest agent. Final runs on the release build: 213 of 213 checks passed, and again with the screen locked (217 passed, the one check that needs an unlocked screen skipped). For beta4, about 220 checks including a file sent to a macOS guest: 220 passed, the one check that needs an unlocked screen skipped; plus checks on a real Mac of stable subnets across a restart of the network process, a macOS shutdown without the agent, and Oracle Linux guest tools before its kernel module arrives.
  • Reviews: every change set was reviewed independently, with a separate security review of licensing and the privileged helper.

Thanks and Credits

  • Sparkle Project for providing an update framework for MacVisor
  • Apple DTS/VZ team for reviewing and granting us the private networking and usb-accessory entitlement