No daemon · no stored credentials

Fly your WireGuard tunnel from the desktop.

WgPilot is a minimal GTK3 client that starts, restarts and stops a WireGuard tunnel from one small window.

Live status, traffic / speed / latency graphs, a kill switch, a connection watchdog, reconnect-on-network-change and dual-stack public-IP reporting — in a single Python script that talks to wg-quick through pkexec.

WgPilot main window: connected status, traffic counters, a live speed graph and toggle switches for the kill switch, auto-reconnect and notifications.

What it does

Everything you need to babysit a tunnel — nothing you don't.

One window, real numbers, and safety rails that keep your real IP off the wire when the link drops.

One-click control

Start, Restart and Stop any WireGuard interface, with a picker for multiple tunnels.

Live graphs

Cumulative traffic, current up/down speed and round-trip latency, plotted live in the window.

Kill switch

An nftables rule blocks all traffic outside the tunnel, so your real IP never leaks if it drops.

Watchdog

Detects a tunnel that is up but dead and can reconnect it automatically in the background.

Reconnect on change

Restarts the tunnel when the underlying network changes — Wi-Fi to Ethernet, roaming, resume.

Dual-stack public IP

Reports your exit IPv4 and IPv6 so you can confirm the tunnel is actually carrying you.

Get started

Up and running in under a minute.

Linux with a WireGuard tunnel already configured via wg-quick (e.g. /etc/wireguard/wg0.conf). WgPilot controls it — it never creates or edits your config.

1 Install the package

# Debian / Ubuntu / Mint
sudo apt install ./wgpilot_1.2.0_all.deb

2 …or from source

git clone https://github.com/TheJonaz/wgpilot.git
cd wgpilot
./install.sh

3 Launch it

wgpilot -i wg0
# or from your app menu

Under the hood

Small, honest, and boring in the best way.

ToolkitGTK 3 · PyGObject
Privilege escalationpkexec (polkit)
Tunnel backendwg-quick / wireguard-tools
Kill switchnftables
Background servicenone
Stored credentialsnone
Config~/.config/wgpilot/config.ini
LicenseMIT