SteamOS on Mac is now possible with FX Steam Launcher, an open-source app that runs Valve’s real ARM64 SteamOS image in a virtual machine on Apple silicon. Windows games run through Proton and FEX, with the graphics translated to Metal.
The app downloads the SteamOS image Valve built for its Steam Frame headset and boots it in a lightweight VM, so the full Steam gamepad interface runs inside a Mac window on any Apple silicon Mac with macOS 15 or later. ETA Prime tested it in a video, and the app’s source code on GitHub is released under an Apache 2.0 license.
SteamOS on Mac runs Windows games through Proton and FEX
Steam and its interface run as native ARM64 software inside the VM, and only the game is emulated. Steam installs Proton 11 for ARM64 and the FEX translator, which converts x86 game code to ARM64 as the game runs.
Graphics are translated from DirectX to Vulkan inside SteamOS, then sent out of the VM to a Vulkan driver on the Mac that converts them to Metal. You pick that driver in Settings → Advanced → Vulkan driver. KosmicKrisp is the default on macOS 26 and later, and MoltenVK is the driver on macOS 15.
The developer reports Stellar Blade Demo at 60 FPS at 1280×800 on an M4 Max with MoltenVK. On an M1 Max, KosmicKrisp runs the same demo at about 29 FPS against about 18 FPS on MoltenVK. Death’s Door, Heroes of Might and Magic: Olden Era, Diplomacy is Not an Option and Resident Evil 2 are also compatible.
DXMT is faster for DirectX 11 games but trusts the guest
An experimental DXMT option sends DirectX 11 games straight to Metal and skips the Vulkan layers. On an M1 Max, the title screen of Death’s Door ran at about 117 FPS with it against about 41 on the default path, and the 120 Hz display caps the result.
DXMT is off by default, and it applies per game through the profiles in Settings. Those games run on Proton 10.0, and while the option is on, programs in SteamOS can run code on the Mac with your user’s rights. The developer advises turning it on only for games you trust.
Controllers, sound and suspend work like a Mac app
Any controller macOS supports shows up in SteamOS as the same type, whether it is an Xbox, DualSense or DualShock 4 pad, and rumble from games plays on it. A DualSense can also be passed through as itself, which gives Steam Input the touchpad, gyro, lightbar and adaptive triggers.
Sound goes straight to CoreAudio and follows your Mac’s output device when it changes. When the output device has a configured speaker layout, SteamOS gets layouts from 5.1 up to 7.1.4 across as many as 12 channels, and the output is multichannel PCM without Dolby Atmos.
Closing the window shuts SteamOS down cleanly in about 2 to 4 seconds, or suspends it in memory so the game waits where you left it. The suspended state is not saved to disk, so quitting the app or shutting down the Mac ends the session.
Anti-cheat, DirectX 12 and shader compiling limit what runs
Games whose anti-cheat blocks virtual machines will not run. DirectX 12 runs at feature level 12_0 on KosmicKrisp and 11_0 on MoltenVK, so games that need 12_1 or shader model 6.6, such as Unreal Engine 5 titles, do not start.
New effects stutter for about 50 to 100 ms the first time Metal compiles them, and the result is cached afterward. Switching drivers rebuilds the shader caches, and the first run of a large DirectX 12 game compiles for a long time, with Stellar Blade Demo taking about 28 minutes on an M1 Max with KosmicKrisp.
Setup needs a 4.5 GB download and about 20 GB of free space
Download the DMG from the latest release, drag FX Steam Launcher to Applications, and choose Create New Disk on first launch. The app is signed with a Developer ID and notarized by Apple.
You pick the SteamOS branch, the size of the games partition and the Steam client, then accept Valve’s SteamOS license and the Steam Subscriber Agreement. The launcher downloads Valve’s signed image of about 4.5 GB, checks its signature and writes the disk without needing Docker. The Steam Deck client is the default, and the Steam Frame client can be chosen instead.
The disk is sparse and grows as you install games, and Grow Disk in Settings adds room later without recreating it. Crash reports go to the developer’s own server by default and can be turned off at first run or in Settings. Version 1.9.8, the latest release, also fixes a VM that stayed at “Starting Steam client” after SteamOS 0.6.0 arrived on Valve’s preview channel.
NotProton enables Steam Play inside the macOS Steam client and runs Windows games through CrossOver, so there is no separate SteamOS install. UTM 5 added DirectX 11 and 12 acceleration to Windows 11 virtual machines, which run Windows itself instead of SteamOS.