Building mullguard in Zig — TUI WireGuard frontend for Mullvad because fuck Electron
I'm fucking tired of the bloated Mullvad Electron GUI shitting itself on my Void musl setup.
I'm also tired of manually fucking around with wg-quick in the terminal and scripting my own killswitch for every distro I hop to (OpenRC, runit, whatever), especially since I nuke and reinstall the whole system every few months just to keep shit interesting.
So I'm diving into Zig to build mullguard (name still up for debate) — an open-source, unbloated WireGuard TUI specifically for Mullvad users who want to own the tunnel without the maintenance nightmare.
Core goals (no compromises, no corpo slop):
- Single static musl binary — drop it in
/usr/local/binand it runs on Void, Alpine, Arch minimal, Debian minimal, anywhere sane - Zero extra dependencies beyond
wireguard-tools+nftables(stuff that's already there) mullguard up whatever-wg/downfrom CLI, plus a clean TUI for browsing/switching configs, status, and one-key killswitch toggle- Strict nftables killswitch that drops everything except the WireGuard tunnel (no more "oops leaked on reconnect" bullshit)
- No daemon, no background crap, no telemetry, no systemd requirement The dream: one tiny tool that survives distro-hopping and reinstall sprees. Terminal-first with a proper TUI so you don't have to remember commands or maintain separate scripts.
If this sounds like something you'd actually use on your minimal setups, hit me with feedback:
- Would you run it?
- What would make it dangerous? (auto-fetch configs from account number? split tunneling? quick server list? runit/OpenRC templates?)
- Name ideas better than "mullguard"?
Planning to open-source it on git once it's not embarrassing. Especially want input from other Void/musl/WireGuard minimalists.