MacVisor creates ARM64 macOS, Windows 11, Linux and FreeBSD VMs. It doesn't emulate x86, so x86 images won't boot. This page covers what all VMs share; each system's own page has the details: macOS, Windows 11, Linux and FreeBSD.
Press ⌘N, choose Linux, macOS, Windows or FreeBSD, pick a source and a name, and click Create. Everything else has a default. Until you type a name, the form names the VM for what you picked: mac27 for macOS 27, windows11, ubuntu-dev or debian-dev for a Linux image or ISO, ubuntu-desktop with Ubuntu Desktop, pfsense or openwrt for an appliance. A name that's taken, or being made, gets -2. When the VM is ready, MacVisor asks whether to start it: Start opens it in its own window, Open Settings… shows its settings, Not Now leaves it. Return starts the VM only when the question comes right after you made it; when it comes later, after an install or a download, Return is Not Now. A macOS or Windows VM is ready once its install has finished. VMs made from a template, clones and imports ask too; mvz doesn't.

| Guest | Sources | Defaults |
|---|---|---|
| macOS | A catalogue installer, a local .ipsw, or a template | 4 vCPUs, 8 GiB memory, 64 GiB disk |
| Windows | Microsoft's Windows 11 on ARM ISO | 4 vCPUs, 8 GiB memory, 64 GiB disk |
| Linux | A cloud image, an installer ISO, or a template | 4 vCPUs, 4 GiB memory, 64 GiB disk, nested virtualization on M3 or later |
| FreeBSD | A FreeBSD cloud image, a disk image file or URL, or a template | As for Linux |
macOS
Pick an installer from the catalogue, such as macos-27, or a local .ipsw, and click Create & Install. MacVisor downloads the installer from Apple once and installs it in 20 to 30 minutes. macOS 27 guests set themselves up with an account, Remote Login and the MacVisor Agent; earlier versions go through Setup Assistant.
mvz create macos-27 mac --ssh
mvz wait mac --ssh --start # follows the install, starts the VM, returns when SSH answers
See macOS guests for the installers, automatic setup, the setup account's password and installing again.
Windows 11
Choose Windows, pick Microsoft's Windows 11 on ARM ISO, and click Create & Install. Windows installs unattended in about 10 minutes, with an account, Remote Desktop, the MacVisor Agent, UEFI Secure Boot and a TPM 2.0. As the form says, the unattended setup accepts Microsoft's license terms on your behalf and leaves Windows unactivated, for you to activate with your own license.
mvz create ~/Downloads/Win11_26H2_English_Arm64.iso win11 --ssh
See Windows 11 guests for options and limits.
Linux
Choose Linux → Cloud Image for the usual way: a distribution from the catalogue, set up by cloud-init with your account, SSH keys and the MacVisor Agent, and optionally a container runtime, a share of your home folder or, on Ubuntu, a desktop. Choose Installer ISO to install any distribution from its ARM64 ISO.
mvz create ubuntu dev --runtime containerd --home
mvz create ~/Downloads/archlinux-aarch64.iso arch --os linux
See Linux guests for both, SSH keys and Ubuntu Desktop.
FreeBSD
Choose FreeBSD. Cloud Image lists FreeBSD 15.1 and a 16.0-CURRENT snapshot, and Image File or URL… for a FreeBSD-based image such as a pfSense-based or OPNsense-based one (turn off Set up with cloud-init for an appliance). Template appears once you have FreeBSD templates. There is no Installer ISO: MacVisor can't run FreeBSD's installer.
mvz create freebsd bsd
mvz create freebsd bsd2 --password-file ~/bsd-password.txt
mvz create ~/Downloads/pfSense-CE-2.8.0.img fw --no-cloud-init --os freebsd
Under Account, the Password field is for the account's login prompt on the VM's console. Leave it blank and MacVisor makes a random one, or type your own, which MacVisor deletes once the first boot's setup is done. SSH takes keys only. An appliance (cloud-init off) has no account and no field. From the CLI, use --password-file <file|->.
A file chosen under FreeBSD makes a FreeBSD VM whatever it's called, and one chosen under Linux a Linux VM. The VM is used over SSH and its console, and MacVisor installs its agent over SSH after the first boot. It has no container runtime, shared folders, Rosetta or automatic port forwarding, so the form hides those and says so. See FreeBSD guests for the first boot, the console, MacVisor's agent, shutting down and the limits.
Scrolling direction
New Windows 11, macOS 27 and Ubuntu Desktop VMs scroll the way your Mac does: with natural scrolling on in System Settings → Trackpad or Mouse, the guest gets it too, and with it off, the guest scrolls the traditional way. MacVisor reads the Mac's setting when it makes the VM, and the guest's setup applies it once:
- Windows 11: for the VM's mouse, from its first start. A mouse Windows sees later gets it from its next boot. A direction you change in Windows afterwards stays.
- macOS 27, with automatic setup and Remote Login: for the account, from its next sign-in or restart. The session signed in automatically at the first boot keeps the direction it signed in with.
- Ubuntu Desktop: as GNOME's default for every account. An account's own choice in Settings wins.
VMs that were already set up keep their own setting.
While a VM is being made
A new VM is in the list from the moment you click Create. While MacVisor downloads its macOS installer, Windows drivers or cloud image, or converts its disk image, its row shows its name and icon, a small progress circle and what it waits on, such as "Downloading the macOS Golden Gate 27.2 installer · 34%". Select it for a card in the middle of the pane: the system's logo, the VM's name, the step ("Downloading Ubuntu 24.04 LTS", "Converting the disk"), a progress bar with "3 GB of 15 GB · 40 MB/s · about 5 min left" and the percent under it, and Cancel. When the VM is made, it takes the row's place, still selected, and a macOS or Windows install shows on it as before.
The rows come from the background service's tasks, so they're there after you open the app again, and for VMs mvz create is making; mvz list shows those as downloading or preparing.
- A download already running is shared. A VM that needs an installer, drivers or an image that is already downloading, for another VM or a template pulled from the Templates list, waits for that download and shows its progress. Cancel on its row ends only that VM's wait; the download carries on.
- The name is taken from the moment you click Create. New VM, rename and import say "A VM called "mac27" is being created. Choose another name, such as "mac27-2".", and
mvz createwith the name is refused at once. - A create that fails keeps its row, with Couldn't be created in the list. Its card says why, such as "The download finished, but the VM couldn't be made." with the reason under it, and offers Remove and Try Again. Remove only takes the row out of the list: nothing is deleted. Try Again sends the same create again, also for one made with
mvz createor before the app was last opened. A password MacVisor made for the VM is made anew. MacVisor never keeps a password you chose yourself (for the macOS or Windows account, a desktop or a FreeBSD VM) or cloud-init user data of your own. A create made with either offers Remove alone, unless you made it in the app since it opened: create the VM again. If the background service restarted while a VM waited, the card says so: the download carries on by itself, and you try again once it's done. - A Linux VM installed from an ISO has no row of its own while it's made, so none of this applies to it.
Disks
MacVisor creates disks in ASIF, Apple's sparse format, unless you choose Raw for a Linux VM installed from an ISO. An ASIF disk grows as the guest writes and may give freed space back, and it is the only format that supports shrinking and linked clones. Raw disks, yours or from other tools, run as well, labelled Raw.
macOS and Windows VMs get disks with 4 KB sectors, and a VM made from a cloud image keeps its image's, usually 512 bytes. A Linux VM installed from an ISO, or made blank, gets 512 bytes unless you choose 4 KB. VM Settings → Storage and mvz show show each disk's format and sector size. See Disk formats and sector sizes for what each choice means, Add Disk, and converting a raw disk, and Storage and sharing for resizing.
Templates
A template is a stopped VM kept as a base for new ones. It can't run.
| In the app | CLI |
|---|---|
| Convert to Template on a stopped VM | mvz template <vm> on |
| Back to a normal VM | mvz template <vm> off |
| New VM from Template… (toolbar or right-click) | mvz create <template> <name> |
A VM made from a template is a full copy with a fresh identity and new MAC addresses. To build on a base without copying its disk, make a linked clone instead.
Missing networks
If a new, cloned or imported VM names a network this Mac doesn't have, it joins the Default MacVisor Network instead. Pick another in VM Settings → Network, or with mvz set <vm> --network.
DeltaSync