github utmapp/UTM v3.1.2
v3.1.2 (Beta)

latest releases: v4.2.2, v4.2.1, v4.2.0...
pre-release13 months ago


Visit for the most up to date installation instructions.


  • Wizard redesign (thanks @js-john)
  • Store .utm bundles anywhere on disk (including on external drives) and import them as a shortcut. See notes below for some limitations.


  • (iOS) UTM v3.1.x will be the last update to support iOS 11 and iOS 12. If you are still running those versions, please make sure you report any issues now so they can be fixed by the final release of v3.1.x. After that, iOS 13+ will be required to run future versions of UTM.
  • This update makes significant changes to the backend of UTM which may have introduced more issues than usual. As a precaution, please make sure you back up your VMs before running this beta in case there are bugs that cause data loss.
  • You can now run .utm files stored anywhere. There are a few caveats: First, all newly created VMs will still be created in the default storage (app sandbox). You can move the VM after creation with the new button on the toolbar or by right clicking (or force touch) on the VM entry and selecting "Move..." Second, when VM shortcuts are deleted, the underlying data is unaffected, and shortcuts are automatically deleted when they are no longer valid (for example, the .utm was moved). You can re-import the .utm by either double clicking it from Finder, or using "File -> Import Virtual Machine..." Finally, Apple VMs do not support persistent shortcuts, which means the shortcut is always deleted after UTM quits. This means you must re-import Apple VMs every time UTM is launched.

Changes (v3.1.2)

  • Fixed leaking of location data in debug.log (#3667)
  • Console mode settings for colours are slightly off from the picker values. This has been fixed by using P3 space hex values.
  • Retain ordering of VM list when using move, clone, and edit operations
  • Show "unavailable" VMs when a shortcut is unaccessible due to the VM being deleted or an external drive not being mounted. No longer deletes these shortcuts by default (#3686)
  • Support importing multiple .utm at once (#3685)
  • Rename "import" menu to "open" to reflect the new behaviour of creating a shortcut by default. Add the "open" option to the first page of the wizard as well so iOS users can access it
  • New context menu option "New from template..." can be called to duplicate the settings of an existing QEMU VM without the data (#2339)
  • Fixed a UI issue where an error message makes the VM stuck in "busy" state
  • Disable PS/2 keyboard/mouse when "legacy input" is off. Renamed "legacy input" to USB mode to make more explicit that when it is off, a USB bus is emulated with the input controls there (#3674)
  • Moved USB sharing options to Input tab to consolidate USB settings
  • (iOS) Fixed launching on < iOS 15 (except with taurine, which is still broken for different reasons)
  • (iOS) Fix saving last display origin and scale (#3669)
  • Option to use UTC vs localtime (previous default) in a new option (QEMU -> Tweaks). This resolves clock issues on some Linux distros (#3104)
  • (iOS) Ability to fine tune cursor speed (in Settings) (#2522)
  • (iOS) Various improvements to scaling including fixing pinch to zoom on iOS 15
  • (iOS) Fixed a random crash due to iOS 15 dyld changes (#3672)
  • (macOS) Ability to turn off auto QCOW2 conversion when importing an image as well as the ability to create a raw disk image (#3637)

Changes (v3.1.1)

  • Automatically delete broken bookmarks for removable drives and shared directories after showing the error once (#3575)
  • Refactored backend QEMU VM manager to support Swift concurrency and also fix some rare race issues
  • Added picker for console background and text colour (thanks @ktprograms)
  • Added font style (bold/italics) for console font as well as font chooser for macOS (thanks @ktprograms)
  • Fixed crash/freeze when using UTM URL actions (#3642)
  • (iOS) Wizard: style was incorrect on iOS 14
  • (iOS) Keyboard visibility state is now stored globally instead of per-VM
  • (iOS) Fixed an issue where the keyboard always pops up when an alert shows
  • (iOS) On iOS 13.4, old cursor functionality is restored when it was broken by the iOS 14 cursor implementation
  • (iOS) iOS 15 introduced a kernel race that leads to a panic and sometimes a purple screen and device reboot whenever GL is used. This has been fixed by reducing the possibility of the race (while we wait for Apple to fix it in iOS kernel) (#2743)
  • (iOS) Better error message when attempting to launch an unsupported architecture in UTM SE (#3635)
  • (macOS) Added descriptions to screen resolutions and notch-hiding resolutions (thanks @pointum)

Changes (v3.1.0)

  • Improved design of wizard on iOS (thanks @js-john)
  • Updated zh-Hans translation (thanks @ty-yqs)
  • Refactored backend renderer into CocoaSpice
  • Updated backend code to use Swift 5.5 concurrency features
  • In Apple VM configs, do not discard non-persistent settings (shared directories) when canceling out of settings window
  • Add option to run VM as a shortcut (see notes above) (#132, #1205)
  • Added icon for Pop! OS to picker (thanks @conath)
  • Fixed QEMU custom argument parsing when there is quoted space in middle of the argument (#3579)
  • Update the VM screenshot on a timer (#3499)
  • Added new global setting to disable saving screenshot to disk
  • Improved synchronization of state from the VM window and the main window (play button visible when stopped, busy spinner visible when starting, etc)
  • (iOS) Fix crash while installing on older versions of jailbroken iOS (#3543)
  • (macOS) Fix an issue where Apple VM aux storage was not created when switching from Linux to macOS boot option
  • (macOS) Ability to move a .utm VM to external storage
  • (macOS) Toolbar option to delete VM should be disabled when VM is running
  • (macOS) Support taking screenshots of Apple VMs


Please check the full list on Github and help report any bug you find that is not listed.

Known Issues

  • iOS 14 and below: There is a known issue crashing while running under taurine but not unc0ver. (#3628)

Don't miss a new UTM release

NewReleases is sending notifications on new releases.