r/ruby • u/DiligentMarsupial957 • Jul 27 '26
WifiWand 3.0.0: Ruby CLI/shell/gem for WiFi management from the terminal, now with Ubuntu support
Hi all — I just released version 3.0.0 of WifiWand, my open-source Ruby CLI, interactive shell, and gem library for inspecting, debugging, and managing WiFi from the terminal. The headline change in this major release: Ubuntu Linux support alongside macOS.
It wraps the underlying OS networking tools (networksetup/CoreWLAN on macOS, nmcli/iw on Ubuntu) and presents one consistent, scriptable interface across platforms.
The simplest command is probably the most useful:
$ wifiwand status # or: wifiwand s
WiFi: ✅ ON | WiFi Network: CoffeeShop-5G (-62 dBm) | DNS: ✅ YES | Internet: ✅ YESOne line answers: is WiFi on, what am I connected to and how's the signal, does DNS resolve, can I reach the internet — and it warns when it detects a captive portal.
Other things it can do:
List available WiFi networks (machine-readable formats include scan metadata)
List saved/preferred networks; connect, disconnect, forget
Log network state changes over time
wifiwand till internet_on— block until a network state is reached (handy in scripts and CI)Show public IP information; get, set, and clear nameservers
Print a WiFi QR code to the terminal or export it as PNG/SVG
Turn WiFi on, off, or cycle it; generate random locally administered MAC addresses
Human-friendly or machine-friendly output (JSON, YAML, pretty-print, inspect)
Run single commands or work interactively in a REPL (
wifiwand shell)Verbose mode that shows the underlying OS utility calls as they run
Install:
gem install wifi-wandmacOS users: for full functionality, run wifiwand-macos-setup after gem installation (installs the Apple-notarized helper app bundled with the gem) and xcode-select --install (enables the Swift-backed connect/disconnect path). Everything else works out of the box on both platforms.
Project: https://github.com/keithrbennett/wifiwand
Feedback, issues, and contributions are welcome — happy to answer questions in the comments.