Skip to content

shazow/wifitui

Repository files navigation

wifitui 🛜✨

wifitui is a fast, featureful, and friendly replacement for nmtui.

image

Features

  • Works with NetworkManager over dbus
  • Show all saved and visible networks
  • Fast fuzzy search (/ to start filtering)
  • Show passphrases of known networks
  • QR code for sharing a known network with your phone
  • Join new and hidden networks (c and n keys)
  • Initiate a scan (s key)
  • Multiple backends (experimental iwd and darwin support, untested)
  • Non-interactive modes (list show connect commands)
  • Bring your own color scheme and theme (--theme=./theme.toml or set WIFITUI_THEME=./theme.toml)

Getting Started

Install the latest release on your fav distro (wifitui is not in all package managers yet), here's a handy script for convenience:

# Fetch the latest release version
TAG=$(curl -s https://api.github.com/repos/shazow/wifitui/releases/latest | grep "tag_name" | cut -d '"' -f4)
OS="linux-$(uname -m)" # x86_64 or arm64
LATEST_RELEASE="https://github.com/shazow/wifitui/releases/download/${TAG}/wifitui-${TAG:1}-${OS}"

# Just the binary (any distro)
wget -q -O- "${LATEST_RELEASE}.tar.gz" | tar xzv

# Debian
sudo apt install "${LATEST_RELEASE}.deb"

# Arch Linux (from AUR)
yay -S wifitui-bin

# Arch Linux (latest release from this repo)
sudo pacman-key --recv-keys 065D66BF7EFEB02BCDC75FF6227578D96B6A5E4C
sudo pacman-key --lsign-key 065D66BF7EFEB02BCDC75FF6227578D96B6A5E4C
sudo pacman -U "${LATEST_RELEASE}.pkg.tar.zst"

If you have nix, you can run the latest code in one command:

nix run github:shazow/wifitui

Run the TUI:

$ wifitui

Or run it in non-interactive mode:

$ ./wifitui --help
USAGE
  wifitui [flags] <subcommand> [args...]

SUBCOMMANDS
  list     List wifi networks
  show     Show a wifi network
  connect  Connect to a wifi network

FLAGS
  -version=false  display version

$ ./wifitui show --json "GET off my LAN"
{
  "SSID": "GET off my LAN",
  "IsActive": false,
  "IsKnown": false,
  "IsSecure": false,
  "IsVisible": false,
  "IsHidden": false,
  "Strength": 0,
  "Security": 3,
  "LastConnected": null,
  "AutoConnect": false
}

Why not nmtui or impala?

Each has features the other lacks: nmtui can reveal passphrases but can't trigger a rescan, impala can rescan but can't manage saved networks (partly due to being iwd-exclusive), etc. I used both for a while, but I just wanted one tool that does everything, plus sort by recency, fuzzy filtering, QR code for sharing the network, support multiple backends (nm and iwd), and more.

Acknowledgement

  • TUI powered by bubbletea.
  • Inspired by impala.
  • Early versions made possible by Neovim, LSP, Gemini 2.5 Pro, Jules, Github code search, Google, Go, water, oxygen, my Framework laptop running NixOS, the public goods built by socialism, the economies scaled by capitalism, the lands stolen by imperialism, and everything else.

License

MIT

About

Fast featureful friendly wifi terminal UI. 🛜✨

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages