A macOS WireGuard VPN client with a clean card-based UI, kill switch, and auto-reconnect.
Signed, notarized, and distributed via Homebrew.
![]() Tunnel overview |
![]() Expanded tunnel — config details |
![]() Connected — live stats & speed graph |
![]() DNS leak test |
![]() Connection history |
![]() Settings |
| Feature | Description |
|---|---|
| Card-based UI | Each tunnel is an expandable card — connect, view live stats, edit config, and manage in one place |
| Live Speed Graph | Real-time RX/TX bandwidth chart updates every second while connected |
| Latency Monitor | Per-tunnel ping latency displayed live in the card header |
| Connection History | Per-tunnel session log with timestamp, duration, and bytes transferred |
| Wi-Fi Auto-Connect | Automatically connect or disconnect tunnels when joining specific Wi-Fi networks |
| Multi-Tunnel | Connect multiple WireGuard tunnels simultaneously with independent per-tunnel state |
| Auto-Reconnect | Per-tunnel reconnect on sleep/wake and network changes |
| System Tray | Connection status in the menu bar, 1-click connect/disconnect without opening the window |
| Kill Switch | Blocks all non-VPN traffic via macOS pf when the tunnel drops (optional) |
| DNS Protection | Locks DNS to the active tunnel's servers to prevent leaks (optional) |
| Config Editor | Create, edit, import, and export .conf files — drag-and-drop and QR code import supported |
| Per-tunnel Notes | Attach a freeform note to any tunnel — visible in the expanded card |
| First-Run Wizard | Automatically discovers existing WireGuard configs from the Mac App Store app |
| Conflict Detection | Warns about route conflicts when multiple tunnels have overlapping subnets |
| Diagnostics | Built-in ping test, DNS leak test, and route table visualization |
| Log Viewer | Live log stream from both GUI and helper, filterable by level (Debug / Info / Warn / Error) |
| Auto-Update | Checks GitHub Releases on launch; one-click update or brew upgrade --cask wireguide-plus |
| Dark / Light / System | Follows macOS appearance — navy/teal theme optimized for both modes |
| Signed & Notarized | Developer ID signed and Apple-notarized — no Gatekeeper warnings, no quarantine |
Apple Silicon (M1 or later) only. Intel Macs are not supported.
brew tap steiale/tap
brew install --cask wireguide-plusTo update:
brew upgrade --cask wireguide-plusDownload the latest .dmg from Releases, open it, and drag WireGuide+.app to /Applications. The app is signed and notarized — no Gatekeeper warnings.
Download the latest .zip from Releases, unzip, and move WireGuide+.app to /Applications.
brew install go node
go install github.com/go-task/task/v3/cmd/task@latest
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
wails3 task darwin:package
open bin/wireguide-plus.appgraph LR
subgraph GUI["GUI Process (unprivileged)"]
A1[Wails + Svelte]
A2[Config editor]
A3[System tray]
A4[Diagnostics]
end
subgraph Helper["Helper Process (root)"]
B1[wireguard-go + wgctrl]
B2[TUN / routing / DNS]
B3[Kill switch / firewall]
B4[Reconnect monitor]
B5[Route monitor]
end
GUI <-->|"JSON-RPC over Unix socket"| Helper
- Two binaries —
wireguide-plus(GUI, Wails/AppKit) andwireguide-plus-helper(daemon, IOKit only); the helper runs as a root LaunchDaemon without a window server - Privilege separation — GUI is unprivileged; helper runs as root LaunchDaemon
- IPC — JSON-RPC over Unix domain socket
| Component | Technology |
|---|---|
| Language | Go 1.24+ |
| GUI | Wails v3 |
| Frontend | Svelte + Vite |
| WireGuard | wireguard-go + wgctrl-go |
| Firewall | macOS pf |
WireGuide+ is a fork of WireGuide by korjwl1, extended with a redesigned UI, additional features, and macOS notarization.





