Wireless ADB debugging shouldn't require Android Studio or a steady hand for typing IP addresses and ports. Developer kristjan just dropped adbqr, an all-bash utility that generates a QR code directly in your terminal to pair with your Android phone—no GUI required. The project installs via Homebrew with brew install kristjan/tap/adbqr and depends only on qrencode and adb itself.
How the Pairing Works
Run adbqr and the script waits for your phone to appear over mDNS. On your Android device, navigate to Developer options, then Wireless debugging, and hit "Pair device with QR code." Scan the terminal display and you're done—no typing adb pair 10.0.0.5:37755 314159 by hand ever again. The tool automatically detects when a phone joins the network via multicast DNS discovery, extracts the pairing info, and renders it for scanning.
Terminal Rendering Intelligence
What makes adbqr surprisingly clever is its runtime terminal detection. It queries your terminal at execution time to figure out what graphics capabilities are available—no hardcoded list of terminal names to maintain. Ghostty, kitty, WezTerm, and Konsole users get actual images via the Kitty graphics protocol. iTerm2 gets them through Apple's proprietary image protocol. Everyone else—macOS Terminal, VSCode, even piped output—gets a block-character QR from qrencode that scans perfectly fine on your phone.
The Public Wi-Fi Problem
Here's where things get tricky for road warriors. Pairing depends entirely on mDNS to locate the phone, but the QR itself only carries the pairing code, not the device address. That address arrives via mDNS broadcast—and lots of public and guest networks run client isolation, blocking multicast traffic between devices. Your phone spins forever waiting for a handshake that never comes.
No Fix From the Laptop
You can't work around network-level restrictions from your terminal. The README is upfront: use your phone as a hotspot instead, or fall back to USB with adb tcpip to enable wireless mode first. adbqr does warn you when it detects one of these isolation-prone networks and again if it's been waiting past the timeout threshold.
Key Takeaways
- Pure bash implementation—just qrencode and adb as dependencies
- mDNS-based auto-discovery, no manual IP entry required
- Smart terminal rendering with automatic protocol detection
- MIT licensed, tests use bats-core and zbar for verification
- Public Wi-Fi will break it; hotspot or USB fallback recommended
The Bottom Line
adbqr is the kind of tool that makes you wonder why this didn't exist years ago. It solves a real friction point—wireless ADB setup without the Android Studio bloat—and does it with clean, dependency-light shell scripting. If you're debugging on mobile or just hate reaching for your phone to copy six-digit codes, this belongs in your ~/bin.