[log in]

« all threads

Building mullguard in Zig — TUI WireGuard frontend for Mullvad because fuck Electron

[creative] 46&2 @ 2026-03-31 02:52:33 [#3198] [0 replies]

[report]

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/bin` and 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` / `down` from 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.

Reply


formatting guide

max 5 MB; images get thumbnails.