A native GTK4 GUI and companion CLI for OpenVPN 3 Linux — full D-Bus integration, no vendor lock-in.
curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
Import from .ovpn file, HTTPS URL, or openvpn:// token URL. Search, rename, and delete profiles.
Connect, disconnect, pause, resume, and restart with a formal state machine. Credential and MFA prompts handled automatically.
Real-time bytes transferred, packet counts, latency, and a live throughput rate graph per active session.
Service reachability checks, guided recovery workflows, and one-click redacted support bundle export.
Save and manage HTTP/SOCKS proxies, assign them per profile, or override at connect time.
Full automation surface for profiles, sessions, settings, proxies, and diagnostics. JSON output supported.
.ovpn file association, openvpn:// URI handler, StatusNotifier system tray, XDG autostart, and AppStream metadata.
Optional systemd user service and polkit policy for boot-time, unattended VPN connections.
# Install system dependencies
sudo dnf install python3-gobject gtk4 libadwaita python3-dbus libsecret openvpn3-client# Install the GUI
curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash # Install system dependencies
sudo apt install gir1.2-gtk-4.0 gir1.2-adw-1 gir1.2-secret-1 python3-gi python3-dbus openvpn3# Install the GUI
curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash # Clone and install dev dependencies
git clone https://github.com/hassan-mehedi/openvpn-linux-client-gui.git
cd openvpn3-client-linux
uv sync --dev