A minimal keyboard-driven TUI to manage WireGuard VPN connections, heavily inspired by bluetui and impala.
You will need to use a Linux based operating system using the NetworkManager.
- list all imported connections
- activate a connection
- deactivate a connection
- import a new connection from a config file
- remove an existing connection
- search connection list (#13)
Currently the only option to install is building from source, but it is planned to add pre-built binaries that you can download from releases (#3).
git clone https://github.com/robin-thoene/wiretui.git
cd wiretui
cargo install --path ./crates/tui/wiretuij: move down
k: move up
SPACE: toggle the selected connection
?: open the help menu
ESC: close a menu
q: quit application
i: open the menu to import a new connection
CTRL+d: delete the selected connection
Run the application
cargo run --bin wiretui-binRun the tests
cargo testCheck if you violated the hexagonal architecture dependency rules
./scripts/lint_architecture.shCheck the workspace rules (using cargo-deny)
cargo deny checkThis project contains a debugger configuration using .vscode files.
This application uses the log crate in combination with the env_logger crate to set the log level. By default the logs are written to a file, which is overridden every time you run the application.
You can see it's current content with
cat ~/.local/state/wiretui/log.txtTo override the log level when running the application use
RUST_LOG=debug cargo runValid log level are trace, debug, info, warn and error.
As of now this project is publicly available but not actively asking for or accepting pull requests until I finished my desired MVP state. This is due to the fact that the project is part of a university module as well as a learning opportunity for myself.
For the moment you can contribute best by:
- submitting bug reports
- reviewing code to be idiomatic, secure and performant
See the LICENSE