Mirage

A virtual machine host for Apple Silicon. It runs Windows 11 on ARM at the CPU's real speed, and it installs the thing for you while you make coffee.

Mirage running a machine

The Mirage window: a Machines sidebar with one entry, Windows 11, marked Running; a masthead reading Windows 11 (ARM64) with Pause and Shut down buttons and a line reading Running, 6 cores, 8 GB; tabs for Overview, Hardware, Snapshots and Console; a Ready to install notice; and a Remote Desktop panel listening on a forwarded local port.
One machine, one folder. A real capture: a Windows 11 ARM64 guest running on six cores and 8 GB.
A QEMU window titled Windows 11 showing the Windows 11 Setup image picker, with Windows 11 Home selected from a list that also offers Home Single Language and Pro.
Setup, running for real. Windows' own installer on the virtual display, booted from the installer ISO.

What it does

Mirage is a machine list and a machine page. Make a machine, point it at an official Windows 11 ARM64 disc image, press start, and it boots โ€” no flags, no QEMU command line, no guesswork about which virtual disk controller the guest can actually see. A machine is one self-contained folder holding its configuration, its sparse disk with its snapshots, its own UEFI variable store and its generated answer disc, so backing one up is copying a folder.

Once Windows is up, the fast path is Remote Desktop over a forwarded local port rather than the virtual display โ€” sharper text, smoother pointer โ€” and Mirage turns RDP on during install so it is ready the moment Setup finishes.

How it's built

Not Apple's framework
Apple's Virtualization.framework has no TPM anywhere in its headers and offers Windows no display device it has a driver for. It is documented for macOS and Linux guests. So: QEMU, accelerated by Hypervisor.framework โ€” the same underlying hypervisor, so the CPU runs just as fast, plus UEFI firmware and devices a Windows guest can actually drive.
The TPM trade, stated plainly
QEMU's TPM device maps its registers as MMIO, and that region cannot be registered with Hypervisor.framework. A TPM or hardware acceleration โ€” not both. Acceleration wins, Express Install applies Microsoft's documented setup bypass, and the cost is written down: no BitLocker, and nothing that needs a real TPM measurement.
Devices the guest already knows
NVMe boot disk, USB installer media over xHCI, a UEFI framebuffer the Basic Display Driver picks up, and an Intel-compatible NIC โ€” every one an inbox driver on Windows for ARM. Argument order is load-bearing: the USB controller is emitted before anything that plugs into it, and a self-test locks that in.
Express Install
An answer file wrapped in a small ISO. Windows Setup scans every attached volume's root for it before its first screen, so the install runs hands-off: checks bypassed, a local account created, Remote Desktop enabled and the firewall opened before first login.
The key it presses for you
Windows install media asks you to press a key to boot from the disc and falls through to a UEFI shell if nothing does โ€” which looks exactly like a broken boot. Mirage taps a key for the first fourteen seconds. Deliberately short: keep tapping past that and the keystrokes land in Setup's first text field.
The look
macOS 26 Liquid Glass over the same process-ink halftone field these tool pages sit in โ€” glass panels floating in a printed ground. A self-test fails the build if a machine-state colour ever drifts toward a process ink, so atmosphere and data never speak the same language. It has already caught that once.

Where it stands

Version 0.1 and genuinely working: Windows 11 ARM64 installs unattended and runs at native CPU speed, with snapshots, USB passthrough and a console when you need one. It exists because testing a Windows build of a game on a Mac should not mean rebooting into another operating system.

Not distributed yet. It needs Homebrew's QEMU present, an official Windows disc image you supply yourself, and a notarised build before anyone else could reasonably run it.