A WireGuard and AmneziaWG client for desktop with a kill switch. https://wgtunnel.com
  • Kotlin 70.2%
  • Go 26.6%
  • Shell 1.5%
  • Makefile 1.5%
  • PowerShell 0.2%
Find a file
2026-04-16 08:20:05 -04:00
.github ci: add notifications action 2026-03-28 02:41:52 -04:00
assets/screenshots chore: add readme app screenshot 2026-03-26 01:28:50 -04:00
buildSrc fix: IPC key bug on systems of various languages 2026-03-06 01:43:36 -05:00
cli feat: add kill switch and tunnel restore on boot 2026-02-15 14:44:03 -05:00
client fix: default to gpu rendering with optional user config override 2026-03-28 01:29:52 -04:00
composeApp chore: publish parser to maven 2026-04-04 04:32:33 -04:00
daemon fix: daemon gui tunnel state sync issues 2026-03-27 04:41:29 -04:00
gradle chore: publish parser to maven 2026-04-04 04:32:33 -04:00
keyring feat: add ui and live tunnel config integration 2026-02-14 08:44:48 -05:00
packaging chore: bump pkgbuild 2026-03-28 16:43:08 -04:00
parser fix: parser multiline scripts 2026-04-16 08:20:05 -04:00
scripts/linux fix: installer script for SELinux 2026-02-28 20:31:51 -05:00
shared fix: daemon gui tunnel state sync issues 2026-03-27 04:41:29 -04:00
tunnel fix: mitigate windows daemon bypass fw crashes with appID cache 2026-03-28 05:25:06 -04:00
.gitignore chore: update .gitignore 2026-03-03 16:48:55 -05:00
.gitmodules initial commit 2026-02-03 06:40:04 -05:00
build.gradle.kts ci: improve conveyor setup 2026-02-27 11:26:46 -05:00
conveyor-local.conf feat: add tray tunnel/lockdown status indicator 2026-03-13 02:12:40 -04:00
conveyor-release.conf ci: fix conveyor 2026-02-27 15:01:17 -05:00
conveyor.conf refactor: remove script bundling 2026-03-27 00:45:52 -04:00
gradle.properties initial commit 2026-02-03 06:40:04 -05:00
gradlew initial commit 2026-02-03 06:40:04 -05:00
gradlew.bat initial commit 2026-02-03 06:40:04 -05:00
icon.png initial commit 2026-02-03 06:40:04 -05:00
LICENSE chore: add license 2026-02-03 06:46:20 -05:00
README.md refactor: remove script bundling 2026-03-27 00:45:52 -04:00
settings.gradle.kts chore: publish parser to maven 2026-04-04 04:32:33 -04:00

WG Tunnel - Desktop

A WireGuard and AmneziaWG client for desktop.

Main Screen Screenshot

Supported Platforms

  • macOS (Planned)
  • Windows
  • Linux

Features

  • Support for WireGuard and AmneziaWG tunnel configurations
  • Independent lockdown mode (kill switch)
  • Lockdown and previous tunnel restoration on boot
  • Tunnel runs as a system service (daemon) independent of the application GUI
  • Encrypted storage of tunnel configs with system keychain integration
  • Tunnel import, export, editing, live statistics, and sorting

Installation

Windows

Note: Only Windows 11 and 10 patch 10.0.19041.0 and greater are supported.

  1. Download the .msix file from latest release.
  2. Launch the installer by double-clicking on the download.
  3. Proceed through the installation prompts (will require relaunching the installer as administrator).

Linux

Note: Only systemd-based Linux systems are currently supported. Also, the firewall must use nftables or iptables with the nft backend (iptables-nft).

Debian Install

This is the easiest method and gives you automatic updates for the app and daemon through your normal system package manager.

  1. Download the .deb file from the latest release.
  2. From the directory where you downloaded the file:

Install

sudo apt install ./wgtunnel*.deb

Arch Linux

For Arch, the app is available on the AUR.
You can install it using an AUR helper such as yay:

Install

yay -S wgtunnel-bin

Start Daemon

sudo systemctl enable --now wgtunnel-daemon.service

Linux Tarball Installation (Manual updates only)

For users on immutable distros, NixOS, or who prefer zero repository footprint.

  1. Download the tar.gz file from the latest release.
  2. From the directory where you downloaded the file:

Install

# Download and extract the tarball, download install script, and execute
tar -xzf wgtunnel-*.tar.gz && \
cd wgtunnel-*/ && \
curl -LO https://raw.githubusercontent.com/wgtunnel/desktop/master/scripts/linux/install.sh && \
chmod +x install.sh && \
./install.sh

Uninstall (Optional)

curl -LO https://raw.githubusercontent.com/wgtunnel/desktop/master/scripts/linux/uninstall.sh && \
chmod +x uninstall.sh && \
./uninstall.sh

Known issues

On Windows, switching the active network interface (like switching Ethernet → Wi-Fi or Wi-Fi → Ethernet) while a tunnel is active may cause the connection to drop.

Workaround: Restart the tunnel after changing network interfaces.