Keyboard-driven VPN switcher for Linux.
byt swaps between NetworkManager-managed VPNs (WireGuard, OpenVPN) and
Tailscale from a small Iced GUI or the command line.
Note
This is a very new project, you might stumble upon some bugs. I rarely use OpenVPN for example, so it's minimally tested. Feel free to contribute if you find anything wrong.
- Iced GUI with keyboard navigation in mind
- WireGuard and OpenVPN via NetworkManager (D-Bus, polkit-authenticated)
- Tailscale via systemd
- Mutual exclusion: activating one VPN deactivates the others
- Import provider configs:
byt import path/to/provider.conf - Live state via NetworkManager D-Bus signals, no polling
- Single-instance lock
- Linux with systemd
- NetworkManager
- For OpenVPN: the
NetworkManager-openvpnplugin - For Tailscale (optional):
tailscaleandtailscaled - A running polkit authentication agent (most desktops include one)
byt # open the GUI
byt status # print current VPN state
byt import foo.conf
byt --help| Key | Action |
|---|---|
↑ ↓ or k j |
move selection |
x |
disconnect |
i |
import config |
d |
delete config |
r |
refresh |
q or Esc |
quit |
nix run github:cnsta/bytNixOS module:
# flake inputs
byt.url = "github:cnsta/byt";
# system config
imports = [ inputs.byt.nixosModules.default ];
programs.byt.enable = true;cargo build --releaseSample configs in doc/examples/ if you want to try the import flow without
real provider files.
How it looks as of v0.4.0.
