GTK4 · D-Bus Integration · Open Source

OpenVPN 3
Linux Client

A native GTK4 GUI and companion CLI for OpenVPN 3 Linux — full D-Bus integration, no vendor lock-in.

install.sh
$ curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash

Everything you need

Built on top of OpenVPN 3 Linux D-Bus services — no wrappers, no workarounds.

Profile Management

Import from .ovpn file, HTTPS URL, or openvpn:// token URL. Search, rename, and delete profiles with ease.

Connection Lifecycle

Connect, pause, resume, restart with a formal state machine. Credentials and MFA prompts handled automatically.

Live Telemetry

Real-time bytes transferred, packet counts, latency, and a live throughput rate graph per active session.

Diagnostics

Service reachability checks, guided recovery workflows, and one-click redacted support bundle export.

Proxy Management

Save and manage HTTP/SOCKS proxies, assign them per profile, or override at connect time.

Companion CLI

Full automation surface for profiles, sessions, settings, proxies, and diagnostics. JSON output supported.

Desktop Integration

.ovpn file association, openvpn:// URI handler, StatusNotifier system tray, XDG autostart, and AppStream metadata.

System Mode

Optional systemd user service and polkit policy for boot-time, unattended VPN connections.

Install

Get up and running in under a minute on your Linux distribution of choice.

Fastest path for regular users. Installs the latest packaged release with DNF.

# Install the latest stable package
$curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
+ Uses the published RPM release asset.
+ Keeps desktop launcher, icon, MIME, and URI integration in the native package flow.

Recommended for Debian-family desktops. The installer handles OpenVPN 3 repo bootstrapping when needed.

# Install the latest stable package
$curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
+ Installs the DEB through APT, so runtime dependencies come from package metadata.
+ Includes the Cairo bridge needed for the throughput graph on Debian-family systems.

Best for development and UI work. Use system site packages so GTK bindings stay visible to the virtualenv.

# Clone and set up dev environment
$git clone https://github.com/hassan-mehedi/openvpn-linux-client-gui.git
cd openvpn3-client-linux
uv venv --system-site-packages
uv sync --dev
uv run ovpn3-linux-gui
+ Recommended when working on GTK, tray, and telemetry features locally.
+ On Debian and Ubuntu, system packages such as python3-gi and python3-gi-cairo remain the source of GTK bindings.