mullvad-tui
May 30, 2026 ยท View on GitHub
mullvad-tui is a terminal user interface for Mullvad VPN that implements most of the GUI features for headless servers or l33t h4x0rs who just don't want to use a GUI. It includes mouse support.
The mullvad daemon protocol may drift across versions, and the mullvad Rust API is very strict. mullvad-tui has a compatibility shim, but it is still recommended to update mullvad-tui and the mullvad app/daemon around the same time.
Installation
Download the latest release from the releases page.
Currently published packages:
rpmfile for Fedora/RHELdebfile for Debian/Ubuntutar.gzfile with a statically-linked binary for any other Linux distro
For Arch Linux, there are AUR packages:
mullvad-vpnmullvad-vpn-bin
Compiling from Source
Clone
git clone --recurse-submodules https://github.com/d10n/mullvad-tui.git
cd mullvad-tui
The mullvadvpn-app/ submodule is used for the daemon RPC client and types. If you cloned without --recurse-submodules, run git submodule update --init --recursive.
Build
cargo build
The binary output is at target/debug/mullvad-tui.
Static build
make static
The static binary output is at target/crt-static/x86_64-unknown-linux-gnu/release/mullvad-tui.
Development
Quality gate:
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets
To run a focused test:
cargo test -p mullvad-tui maps_navigation_keys -- --nocapture
License
- Copyright d10n
and any potential future contributors (see AUTHORS). - Licensed under
GPL-3.0-or-later. See./LICENSES/GPL-3.0-or-later.txt.