Skip to content

cnsta/byt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

byt

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.

Features

  • 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

Requirements

  • Linux with systemd
  • NetworkManager
  • For OpenVPN: the NetworkManager-openvpn plugin
  • For Tailscale (optional): tailscale and tailscaled
  • A running polkit authentication agent (most desktops include one)

Usage

byt                  # open the GUI
byt status           # print current VPN state
byt import foo.conf
byt --help

Keys

Key Action
or k j move selection
x disconnect
i import config
d delete config
r refresh
q or Esc quit

Install

Nix

nix run github:cnsta/byt

NixOS module:

# flake inputs
byt.url = "github:cnsta/byt";

# system config
imports = [ inputs.byt.nixosModules.default ];
programs.byt.enable = true;

From source

cargo build --release

Sample configs in doc/examples/ if you want to try the import flow without real provider files.

Showcase

showcase

How it looks as of v0.4.0.

About

Simple VPN switcher for Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors