Open source · Windows Steam games on Apple Silicon

Silo

A native macOS launcher for your Windows Steam library — run games through Wine on two Metal backends, Apple's GPTK/D3DMetal and DXMT, co-resident with a real Steam client so Steamworks and DRM just work.

Silo library window — a grid of installed Steam games (Bloons TD 6, Bloons TD Battles 2, It Takes Two, Overcooked 2, Split Fiction, Victoria 3), each with cover art, install size, a per-game GPTK or DXMT graphics-backend badge, and a Play button
GPTK + DXMT two Metal backends, selectable per game
One prefix Steam + its games co-resident, so Steamworks works
Isolated each non-Steam game in its own Wine bottle
Self-contained downloads its own Wine and self-updates — no Homebrew

Built for the Mac

Your Windows Steam library, in a native launcher

Your real Steam library

Silo discovers the games installed in its Steam bottle and launches each one on its backend — co-resident with a logged-in Steam client, so Steamworks and DRM titles run. No emulator, no fakery.

Two Metal backends, per game

GPTK / D3DMetal (Apple's) maps DirectX 10/11/12 to Metal; DXMT translates DirectX 10/11 directly — the per-game fallback for titles GPTK can't run. DirectX 9/8 and OpenGL use Wine's own renderer. No DXVK, no Homebrew.

Non-Steam games too

Add any Windows .exe — an installer or a portable build — and Silo provisions a dedicated, isolated Wine bottle for it, with its own backend and launch options, plus an optional Desktop shortcut. Relocate every bottle to an external drive anytime.

Self-contained & updating

Silo fetches its own Wine runtime (built only from CrossOver's FOSS source) and updates itself from GitHub Releases. No package manager, no external dependencies.

How a launch works

One Steam per backend, games co-resident

Each backend gets one shared Steam bottle. A Steam game launches co-resident with that logged-in client — so Steamworks and DRM work — with the graphics backend and environment injected at launch. Non-Steam .exes each get their own isolated bottle instead.

Discover

Parse each bottle's appmanifest_*.acf for installed games — a game's backend is the bottle it's in — skipping Steam's redistributables.

Provision

Seed the target prefix — the backend's shared Steam bottle, or a manual game's own bottle — with an idempotent wineboot.

Link graphics

Overlay the chosen backend (GPTK/D3DMetal or DXMT) into the runtime's own lib/wine, forced builtin so nothing can shadow it.

Launch

Spawn the game detached — co-resident with its Steam client for Steam titles, or in its own bottle for non-Steam .exes.

What runs, and how

Modern DirectX on Metal, the rest on Wine

DirectX 12 GPTK · D3DMetal → Metal
DirectX 11 / 10 + DXGI GPTK · D3DMetal — or DXMT → Metal
DirectX 9 / 8 / DirectDraw Wine's wined3d → OpenGL
OpenGL Wine → macOS OpenGL
Vulkan (native) not supported

GPTK / D3DMetal is the default; DXMT is the per-game fallback for DirectX 10/11 titles GPTK's device creation can't run. Wine's own stack covers DirectX 9 and OpenGL. The game drives the API — you pick the backend per game.

Get Silo

Install the current release

Silo runs on macOS 15 or newer on Apple Silicon, outside the App Sandbox so it can drive Wine. It is not yet notarized, so a manual install needs the quarantine step shown in the README.