mrkeyoor.com_
Sun 20 Sept 06:59 UTC
Dev Toolsevaluationupdated 20 Sept 2026

UTM review

UTM is an open-source virtual machine app for macOS, iPhone, and iPad. It puts an Apple-native interface around QEMU and Apple virtualization so you can create and run Windows, Linux, macOS, and older-system guests without assembling the emulator command line yourself.

Verdict

Our UTM run installed 35 Python packages in 6 seconds, but a 0-second successful build cannot establish that the Swift app compiles. Use the prebuilt app if you want broad guest support on a Mac, iPhone, or iPad behind a good native interface. Building and redistributing UTM belongs to teams prepared for Xcode, sysroot artifacts, code signing, and Apple entitlements.

We ran it

Lab card: what happened when we ran UTMScreenshot of UTM (getutm.app)
Install✓ · 6s35 packages · 37 MB
Build✓ · 0s
Testsn/ano test script
Known vulns0(pip-audit)
Repo719 files~60,179 lines of source · 18.2 MB · 2 CI workflows

Answers from our run

Does UTM build from source?

Dependencies installed in 6 seconds (35 packages), and the build succeeded in 0s. We cloned commit d67f4ba into a clean Debian container with 3 CPUs and no project-specific setup.

Does UTM have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does UTM have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use UTM?

Windows or Linux host users: UTM's front end starts at macOS 11 and iOS 11+, so they should use QEMU or another host-native manager.

What are the alternatives to UTM?

VirtualBuddy, Lima, QEMU. Our UTM run installed 35 Python packages in 6 seconds, but a 0-second successful build cannot establish that the Swift app compiles.

Setup2/5Prebuilt apps are simple; source builds require Xcode and signing
Docs4/5Platform build guides are detailed, though one runbook has stale paths
Community5/535,559 stars with code and issue activity on September 20, 2026
Maturity4/5Wide guest support, with active beta and graphics defects

Who it’s for

Mac users who want one visual library for guests spanning 30+ processor families.
Developers testing software across x86_64, ARM64, RISC-V, and older processor families.
iPhone and iPad users willing to handle sideloading, JIT, or jailbreak requirements for faster emulation.
Apple-platform tinkerers who need USB devices, shared directories, terminal guests, or custom QEMU settings.

Who it’s NOT for

Windows or Linux host users: UTM's front end starts at macOS 11 and iOS 11+, so they should use QEMU or another host-native manager.
iPhone and iPad owners who want fast emulation with ordinary App Store setup: the README says JIT needs a jailbreak or a version-specific workaround, while UTM SE is slower.
Developers expecting a fully capable unsigned macOS build: the development guide says unsigned packages lack USB and bridged networking, and full builds need Apple-approved Hypervisor entitlements.
Redistributors expecting an Apache-only dependency chain: UTM is Apache-2.0, but its README identifies LGPL and GPL components, including statically linked GStreamer plugins.
Anyone choosing it mainly for dependable experimental 3D gaming on iPad: open issue 7857 reports a UTM-HV 5.0.5 beta crash and black screen with Windows 11 ARM64.

Setup reality

Our commit d67f4ba sandbox run installed 35 Python packages in 6 seconds and used 37 MB. The 18.2 MB checkout returned a successful build in 0 seconds. There was no test script or target, so tests were skipped; pip-audit found 0 known vulnerabilities.

That run did not compile UTM's Swift app. The development docs require recursive submodules, current Xcode, and prebuilt sysroots from GitHub Actions or a list of Homebrew build tools. Full macOS packages need Apple signing and Hypervisor entitlements; unsigned builds lose USB and bridged networking.

iOS adds certificates, provisioning, sideloading, and JIT constraints. Free developer signing expires after 7 days, while UTM SE avoids JIT workarounds through a slower threaded interpreter. The 719-file checkout had no Dockerfile or tests directory, so it supplies no container route around the Apple toolchain.

UTM puts more than 30 processor families behind an Apple interface

UTM's README lists 30+ supported processors, including x86_64, ARM64, and RISC-V, inside one app for Mac, iPhone, and iPad. QEMU supplies full-system emulation, while the app handles disks, displays, networking, USB devices, and machine settings. On macOS, UTM can also use Apple's Hypervisor framework and can boot macOS guests through Virtualization.framework on macOS 12 or later.

That breadth is the reason to choose it. A developer can keep an ARM Linux test box beside an old x86 Windows machine without memorizing a different QEMU command for each one. SPICE and QXL provide a graphical display path, and text-only guests can use a terminal. The interface does not make every guest configuration automatic, but it turns a low-level emulator into something a normal Mac user can operate.

UTM SE trades JIT speed for easier iOS installation

UTM targets iOS 11+, where Apple's mobile restrictions divide the app into distinct experiences. Regular UTM uses QEMU's just-in-time code generation for speed. The README says JIT needs a jailbroken device or a workaround suited to that iOS version. UTM SE uses a threaded interpreter instead, so it can be sideloaded without JIT workarounds, but the project plainly describes it as slower. SE includes ARM, PPC, RISC-V, and x86 targets in both 32-bit and 64-bit forms.

That choice matters more than the feature checklist. Someone who wants a Windows guest on an iPad must decide how much device setup they will tolerate before importing a disk image. UTM-HV adds another route on supported hardware, while USB and hypervisor availability vary by package. The release table is worth reading before download because the DMG, IPA, SE, HV, and remote-client builds do not have the same capabilities.

What happened when we ran it

In our sandbox, we measured a 6-second install for 35 Python packages, which occupied 37 MB at commit d67f4ba. The automated build step succeeded in 0 seconds. There was no test script or target, so the harness skipped tests. Pip-audit found 0 known vulnerabilities in the installed Python environment. The checkout contained 719 files, about 60,179 lines of source, and 2 CI workflow files.

Our measurement setup was an unprivileged Debian container with 3 CPUs and 8 GB of RAM. UTM is primarily a Swift application with a large native dependency chain. A 0-second build result does not show that Xcode compiled the app, that QEMU dependencies linked, or that a VM booted. The container found no Dockerfile and no tests directory. Treat the run as evidence about the detected Python setup, not as an end-to-end check of UTM.

A source build requires macOS, Xcode, sysroots, and signing choices

Our 719-file checkout's macOS development guide starts with a recursive clone because UTM depends on submodules. Builders then need current Xcode and either prebuilt sysroot artifacts from GitHub Actions or Homebrew packages such as bison, pkg-config, gettext, libgpg-error, nasm, and meson. The guide recommends a fresh macOS VM when compiling dependencies because packages already installed under /usr/local/lib can conflict across architectures.

Packaging adds the sharper constraint. An unsigned build can run, but it lacks USB and bridged networking. A fully signed macOS package requires a paid Apple Developer account, a Developer ID certificate, and 3 provisioning profiles with Hypervisor entitlements approved by Apple. The iOS guide has its own signing path, and a free developer profile expires after 7 days. Downloading a release is easy; reproducing the complete app is specialist work.

Current commits and old release tags tell different parts of its health

GitHub recorded UTM's last push on September 20, 2026, and an open graphics issue was updated the same day. The repository showed 35,559 stars and 1,105 combined open issues and pull requests when fetched. That is a busy project with a large support surface. The combined count should not be read as 1,105 confirmed bugs, but it does warn you to search for your exact host, guest, and display setup before migrating an important VM.

The latest stable GitHub release was v4.7.5, published January 3, 2026 with QEMU 10.0.2. Its notes say an earlier v4.7.5 build prevented VMs from starting and direct users to build 118. Open issue 7857 describes UTM-HV 5.0.5 beta crashing on an M2 iPad when experimental 3D acceleration is enabled for Windows 11 ARM64, followed by a black display. Active work is visible, and experimental graphics still deserves its label.

Narrower VM tools win when the guest requirement is narrow

VirtualBuddy focuses on macOS 12+ guests on Apple silicon. Lima targets Linux virtual machines and container work from the command line. Either can be easier to reason about when that single workload is all you need. QEMU is the direct alternative for non-Apple hosts or engineers who want the emulator controls without UTM's front end.

UTM earns its place when one Apple device needs several kinds of machine. The 30-plus processor list, Apple virtualization path, and QEMU controls cover more ground than the narrower options. Start with the official binary unless modifying UTM is the point. If you do build it, the meaningful proof is an Xcode archive and a booted guest, neither of which the 6-second Python install supplied.

Alternatives

ProjectWhat it isPick it when
VirtualBuddyA focused app for virtualizing macOS 12+ on Apple silicon.pick this instead when your only job is running macOS 12 or later on an M-series Mac.
Lima gh↗Command-line Linux virtual machines for macOS, with container workflows as a main use case.pick this instead when you need disposable Linux environments for containers and prefer terminal configuration.
QEMUThe lower-level machine emulator that supplies UTM's broad guest architecture support.pick this instead when you need a non-Apple host or direct control over emulator options.

What people are saying

  1. [velocity-scout] utmapp/UTM

Sources

  1. UTM repository and README
  2. UTM macOS development guide
  3. UTM iOS development guide
  4. UTM v4.7.5 release notes
  5. UTM issue 7857: experimental 3D crash on iPad
  6. VirtualBuddy repository
  7. Lima repository
  8. QEMU repository mirror

More dev tools reviews

Apktool · x64dbg · QtScrcpy · gcx · mold · blockbench · the whole board →