WoWee: A Native Open-Source WoW Client for macOS, Linux, Windows and Android
WoWee takes the opposite approach from every Wine-based launcher: instead of translating a Windows client, it is a from-scratch C++ client with its own Vulkan 1.3 renderer that reads your game data and speaks the expansion's network protocol directly. It runs on Linux, macOS, Windows and — unusually — Android.
It is an educational and research project, ships no Blizzard assets, and is explicitly not a drop-in replacement for the official client. But it is far enough along to log in, build a character and play.
What it supports
| Expansion | Client | Status |
|---|---|---|
| Vanilla | 1.12 | Supported |
| The Burning Crusade | 2.4.3 | Supported |
| Wrath of the Lich King | 3.3.5a | Supported |
| Turtle WoW | 1.18 | Tested |
Server cores it has been tested against include AzerothCore/ChromieCraft, TrinityCore, MaNGOS and Turtle WoW. The current release is v3.1.39 (September 2026), and macOS DMGs are Developer ID signed, notarized and stapled — so no Gatekeeper workaround is needed, unlike most community launchers.
What works today covers the parts that decide whether a client is usable: terrain, WMO and M2 rendering, water, particles, lighting, shadows, weather and asynchronous world streaming; SRP6 authentication with RC4 header encryption; character creation and selection, movement, transports, combat, spells, talents, inventory, vendors, trainers, quests, loot, mail, the auction house, chat, parties, pets and taxi travel.
Notably, Blizzard's own FrameXML interface is loaded from your game data and drawn by the client, and addons in Interface\AddOns load too. If you care about your UI surviving the move to a new client, that matters more than any single rendering feature.
The one thing you must do first: extract your game data
WoWee does not read MPQ archives at runtime. It needs a loose-file tree plus a generated manifest.json, extracted from a client you already own legally.
The asset builder does this. Start the client with nothing extracted and it opens the builder instead of the login screen. Later you reach it from more options → add or rebuild assets..., or by running the standalone wowee_assets window. Point it at your World of Warcraft folder and it extracts into the per-user data directory:
- macOS:
~/Library/Application Support/Wowee/Data - Windows:
%LOCALAPPDATA%\Wowee\Data - Linux:
$XDG_DATA_HOME/wowee/Data(default~/.local/share/wowee/Data)
From a terminal, the equivalent is:
./extract_assets.sh /path/to/WoW/Data wotlk
Valid targets are classic, turtle, tbc and wotlk, and each is stored separately, so several expansions can coexist under Data/expansions/. Once more than one set is installed, an Assets selector appears on the login screen.
There is a real cost here: a full extraction is around 18 GB. That is the tradeoff for a native renderer — disk instead of a translation layer.
Getting started
- Download the release for your platform from the releases page.
- Launch the client and let the asset builder extract from your own game installation.
- Pick a server on the login screen. The Server list carries ChromieCraft plus every server you have logged into; Somewhere else... under more options opens address, port and expansion fields.
- Log in. Accounts are created on the realm's website, exactly as with any other client — see our realmlist.wtf guide if you are used to that workflow, though WoWee handles the address through its own server list.
If a MaNGOS realm advertises a world address unreachable from your LAN, override just the host with WOWEE_REALM_HOST_OVERRIDE, keeping the advertised port.
Controls and settings
Keyboard and mouse work as you would expect — WASD movement, Q/E strafe, Tab target cycling, 1–0/-/= for action bars, B/C/P/N for bags, character, spellbook and talents. /unstuck recovers you when terrain collision traps your character, which is worth memorising given the known issues below.
Controllers work everywhere, with Xbox, PlayStation, Nintendo and Steam Deck button names, and Back switches the right stick to a pointer for looting and vendors.
WoWee's own settings sit under a WoWee heading in the game's Video, Sound and Interface panels. View distance, shadow distance and MSAA carry the largest performance cost; FSR 1 or FSR 3 upscaling can buy frames on weaker hardware.
Android
The same tree builds for arm64 Android, needs Android 13 or newer, and reaches the login screen, character selection and the world. You extract on a desktop and push the result to the device — a full set is too big for a phone, so trim it first:
tools/android/make_minimal_data.py --source ~/Data --out ~/Data-phone --profile world --maps all
adb push ~/Data-phone/. /sdcard/Android/data/com.wowee.client/files/Data/
adb shell chmod -R a+rwX /sdcard/Android/data/com.wowee.client/files/Data
The trailing /. and the chmod are both load-bearing: push the contents rather than the directory, and fix ownership afterwards or the client stops with Permission denied on manifest.json. Profiles run from login at 787 MB to full at 18 GB.
Known limitations before you file a bug
- Shadows cannot be turned off — switching them off loses the GPU device, so the control is removed until fixed.
- Terrain and WMO transitions are a longstanding regression area; floor selection can pick the wrong surface. Use
/unstuck, thenF8to write floor data to the log for a report. - Long Northrend transport paths occasionally show spline glitches; world-map zone hover has edge cases near continent boundaries.
- Warden modules are checked against Blizzard's signing key — a realm signing its own module needs its
wardenRsaModulusin the expansion'sexpansion.json. - On Android, backgrounding the app drops the session after a few seconds, and the FrameXML interface draws at native size and reads small (Window scale goes to 3x).
Who this is for
Choose WoWee if you want a native renderer and are comfortable with an 18 GB extraction and a project that is visibly a work in progress. Choose a Wine-based launcher such as WoWSilicon if you want the original client, original behaviour and the least friction on macOS. Both need the same thing from you: a legally obtained client and a realm account you created yourself.
Sources and further reading
External references used to verify or expand this article.