Skip to content
ArekkazuPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wirfi

A terminal UI (TUI) WiFi manager for Linux that talks directly to NetworkManager over D-Bus.

╭─ wirfi — wlan0 ──────────────────────────────────────────────────────────────╮
│ ▌ ▂▄▆█  MyHomeNetwork          ●  2.4G  WPA2 │   MyHomeNetwork              │
│   ▂▄▆█  OfficeWifi             ●   5G   WPA2 │                               │
│   ▂▄    NeighborNet               2.4G  WPA2 │   Signal     ▂▄▆█  95%        │
│   ▂     GuestNetwork              2.4G  Open │   Band       2.4 GHz — 2412 M │
│                                              │   Security   WPA2 (RSN)        │
│                                              │   BSSID      AA:BB:CC:DD:EE:FF│
│                                              │   Max rate   300 Mb/s          │
│                                              │                                │
│                                              │   ● Connected                  │
│                                              │   IP         192.168.1.73/24   │
│                                              │   Gateway    192.168.1.1       │
│                                              │   DNS        8.8.8.8           │
│                                              │                                │
│                                              │   Enter edit password  · Tab QR│
│ ↑↓/jk nav  · Enter connect · d disconnect · f forget · Tab QR · i ifaces · q │
╰──────────────────────────────────────────────────────────────────────────────╯

Features

  • Scan for nearby WiFi access points sorted by signal strength
  • Connect to new networks with password entry
  • Reconnect to previously saved networks with a single keypress
  • Disconnect or Forget any saved network
  • QR code — generate a scannable WiFi QR code from the stored password so phones can join instantly
  • Interface browser — list all network devices (WiFi, Ethernet, Bluetooth…) with state and IP info
  • Multi-adapter support — pick which WiFi interface to use when more than one is present
  • Credential cache — passwords are saved locally so saved networks reconnect without retyping
  • Signal strength bars (▂▄▆█), band (2.4 GHz / 5 GHz), and security type (WPA2 / WPA / Open) shown inline

Requirements

  • Linux
  • NetworkManager running and managing your WiFi device
  • A terminal emulator (any modern one works)
  • Rust 1.85+ (edition 2024) — only needed if building from source

Installation

From crates.io

cargo install wirfi

From source

git clone https://github.com/Arekkazu/wirfi.git
cd wirfi
cargo build --release
# binary is at ./target/release/wirfi

Usage

wirfi

If you have multiple WiFi adapters an interface selector appears first. Otherwise wirfi goes straight to the network list and starts scanning.

Logs are written to /tmp/wirfi.log.

Keybindings

Network list (main screen)

Key Action
↑ / k Move up
↓ / j Move down
Enter Connect (or edit password for saved networks)
d Disconnect from selected network
f Forget saved profile for selected network
Tab Show WiFi QR code for selected network
i Open interface browser
r Refresh / re-scan
q / Ctrl-c Quit

Password prompt

Key Action
Type Enter password
Enter Confirm and connect
Esc Cancel, back to list

QR code view

Key Action
Esc / q Back to network list

Interface browser

Key Action
↑ / k Move up
↓ / j Move down
Enter Switch to selected WiFi adapter
r Reload interface list
Esc / q Back to network list

Credential cache

Passwords entered through wirfi are cached locally so that saved networks can be reconnected without re-entering the password. The cache is stored at:

$XDG_DATA_HOME/wirfi/cache.json
# defaults to ~/.local/share/wirfi/cache.json

The file is created with permissions 0600 (owner-readable only). wirfi also reads the password directly from NetworkManager's stored connection profiles when available, so a freshly connected network will have its QR code available immediately.

How it works

wirfi communicates with NetworkManager entirely through its D-Bus API using the zbus crate. No root privileges are required beyond what NetworkManager already grants to the active user session (typically managed by polkit).

The TUI is built with ratatui and runs on the async tokio runtime. Scans and connection attempts run in a background worker so the UI stays responsive.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages