
roamr v0.1.4
Trova la migliore rete WiFi per il posto in cui ti trovi — valuta ogni rete salvata in base alla qualità reale, non solo alle barre del segnale.
roamr
Trova la miglior rete WiFi per il luogo in cui ti trovi, senza perdere la connessione.
In un ufficio (o a casa) con più reti WiFi, la migliore cambia mentre ti sposti, e "migliore" non sono solo le barre del segnale. Una rete può mostrare tutte le barre e rimanere comunque lenta: 2.4 GHz affollati, uno standard WiFi vecchio, un canale congestionato. roamr legge ciò che il tuo sistema operativo già sa su ogni rete salvata nelle vicinanze, le valuta per la qualità nel mondo reale, spiega il perché e ti dice quale usare.

Stato: disponibile su macOS (brew install --cask sourabh-khot65/tap/roamr), con un'app complementare per la barra dei menu. Windows è verificato e funzionante; Linux è implementato e in anteprima (vedi Piattaforme). Niente Mac? Prova roamr --demo.
Installazione
macOS (consigliato). Installa con Homebrew. La cask rimuove l'attributo di quarantena durante l'installazione, così il binario viene eseguito senza l'avviso di Gatekeeper che un download dal browser comporterebbe:
brew install --cask sourabh-khot65/tap/roamr
Windows. Installa con Scoop:
scoop bucket add roamr https://github.com/sourabh-khot65/scoop-bucket
scoop install roamr
Qualsiasi piattaforma. Scarica un binario dall'ultima release, oppure compila dal sorgente con Go 1.26+:
go install github.com/sourabh-khot65/roamr/cmd/roamr@latest
I binari dalla pagina Releases (a differenza di Homebrew) non sono firmati, quindi Gatekeeper li mette in quarantena su macOS. Eliminala una volta con xattr -d com.apple.quarantine ./roamr. Le installazioni via Homebrew non sono interessate. La notarizzazione del binario di roamr è prevista ma fuori dall'ambito per v0.x.
Avvio rapido
Una volta installato, prova la demo integrata (nessun hardware WiFi necessario):
roamr --demo --why # or, from source: go run ./cmd/roamr --demo --why
→ Switch to Office-6E — clearly better here.
Office-6E ▀▀▀▀▁ 86% 6GHz ax score 95
- 6 GHz — fast, uncongested
- channel is clear
Office-5G ▀▀▀▀▀ 92% 5GHz ax score 93
- strong signal (-54 dBm)
- channel is clear
Office-Guest ▀▀▀▁▁ 68% 5GHz ac score 81
- channel is clear
▸ Office-2G ▀▀▀▀▀ 100% 2.4GHz n score 69
- strong signal (-47 dBm)
- 2.4 GHz — slower, more interference
- WiFi 4 — older, slower standard
Sei su Office-2G (il ▸) con segnale al 100%, ma roamr lo classifica all'ultimo posto, 2.4 GHz su vecchio WiFi 4, e ti indica Office-6E. Quel divario tra "tutte le barre" e "davvero buono" è il punto centrale di roamr.
Comandi
| Comando | Funzione |
|---|---|
roamr | consiglia la migliore rete conosciuta qui (predefinito) |
roamr current | diagnostica la rete a cui sei connesso (incl. latenza/jitter) |
roamr list | elenca le reti conosciute e i loro punteggi |
roamr watch | campiona continuamente; suggerisce un cambio solo quando una rete è stabilmente migliore |
roamr speedtest | misura la velocità di download reale della rete a cui sei connesso |
Flag: --why (spiega i punteggi), --json (leggibile dalla macchina), --demo (nessun hardware), --interval / --samples (per watch).
roamr è di sola consulenza: legge ciò che il tuo sistema operativo conosce e non modifica mai la tua connessione. Ti dice quale rete salvata è la migliore; passi tu dal menu Wi-Fi del tuo sistema operativo.
watch uniforma nel tempo il punteggio di ogni rete (EMA) e segnala un cambio solo quando una sfidante supera la tua rete attuale con un margine netto per diversi campioni consecutivi, così la raccomandazione non oscilla per il rumore del segnale o per il band-steering 2.4/5 GHz.
Come funziona
Il punteggio è passivo e non ti disconnette mai. Considera segnale, banda, congestione del canale, standard WiFi e (per la rete a cui sei connesso) latenza in tempo reale. I dettagli sono in docs/architecture.md; il supporto delle piattaforme si trova dietro un unico punto di estensione, descritto in docs/adding-a-platform.md.
App per la barra dei menu (macOS)
Un'app complementare per la barra dei menu mostra la classifica in tempo reale e il "perché" come menu a tendina: punteggi colorati per qualità, barre del segnale e un indicatore ambra quando una rete è stabilmente migliore. Legge roamr watch --json, quindi tutto il punteggio resta nella CLI; come la CLI, si limita a consigliare e non cambia mai rete al posto tuo.
make app # build macos/Roamr.app (Swift, no Xcode needed)
make install-app # build and install it to /Applications
Piattaforme
| Sistema operativo | Provider | Stato |
|---|---|---|
| macOS | helper CoreWLAN firmato tramite macwifi (ADR-0002) | funzionante (Apple Silicon, macOS 13+) |
| Windows | API WLAN nativa (wlanapi.dll, ADR-0004) | funzionante (verificato su dispositivo; richiede posizione attiva) |
| Linux | nmcli (NetworkManager) | implementato (testato con fixture; verifica su dispositivo in sospeso) |
macOS richiede il permesso di localizzazione per leggere i dettagli WiFi (concesso all'helper integrato al primo avvio); non è richiesto un account Apple a pagamento per compilare o eseguire roamr (vedi ADR-0002). La dipendenza macwifi richiede Go 1.26+ e ha come target Apple Silicon; macOS non riporta la modalità PHY, quindi quel segnale di punteggio viene saltato.
Sviluppo
go build ./... # build everything
go test ./... # run tests (no WiFi hardware needed)
go vet ./...
Licenza
MIT. Vedi LICENSE.