
Trouvez le meilleur réseau WiFi pour votre emplacement — évalue chaque réseau enregistré selon sa qualité réelle, pas seulement les barres de signal.
Trouvez le meilleur réseau WiFi pour votre emplacement, sans perdre votre connexion.
Dans un bureau (ou à la maison) avec plusieurs réseaux WiFi, le meilleur change à mesure que vous vous déplacez, et « meilleur » ne se résume pas aux barres de signal. Un réseau peut afficher des barres pleines et être pourtant lent : un 2,4 GHz encombré, une norme WiFi ancienne, un canal saturé. roamr lit ce que votre OS sait déjà sur chaque réseau enregistré à proximité, les note selon leur qualité réelle, explique pourquoi, et vous indique lequel utiliser.

Statut : disponible sur macOS (brew install --cask sourabh-khot65/tap/roamr), accompagné d'une application compagnon de barre de menus. Windows est vérifié et fonctionnel ; Linux est implémenté et en aperçu (voir Plateformes). Pas de Mac ? Essayez roamr --demo.
macOS (recommandé). Installation avec Homebrew. Le cask supprime l'attribut de quarantaine à l'installation, si bien que le binaire s'exécute sans l'avertissement Gatekeeper qu'un téléchargement via navigateur déclencherait :
brew install --cask sourabh-khot65/tap/roamr
Windows. Installation avec Scoop :
scoop bucket add roamr https://github.com/sourabh-khot65/scoop-bucket
scoop install roamr
Toute plateforme. Téléchargez un binaire depuis la dernière version, ou compilez à partir des sources avec Go 1.26+ :
go install github.com/sourabh-khot65/roamr/cmd/roamr@latest
Les binaires de la page Releases (contrairement à Homebrew) ne sont pas signés, aussi Gatekeeper les met en quarantaine sur macOS. Levez-la une fois avec xattr -d com.apple.quarantine ./roamr. Les installations via Homebrew ne sont pas concernées. La notarisation du binaire de roamr est prévue mais hors du périmètre de la v0.x.
Une fois installé, essayez la démo intégrée (aucun matériel WiFi requis) :
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
Vous êtes sur Office-2G (le ▸) avec 100 % de signal, mais roamr le classe en dernier, du 2,4 GHz en vieux WiFi 4, et vous dirige vers Office-6E à la place. Cet écart entre « barres pleines » et « réellement bon » est précisément l'intérêt de roamr.
Options : --why (expliquer les scores), --json (lisible par machine), --demo (sans matériel), --interval / --samples (pour watch).
roamr est un outil consultatif : il lit ce que votre OS sait et ne modifie jamais votre connexion. Il vous indique quel réseau enregistré est le meilleur ; c'est vous qui changez depuis le menu Wi-Fi de votre OS.
watch lisse le score de chaque réseau dans le temps (EMA) et ne signale un changement que lorsqu'un concurrent bat votre réseau actuel avec une marge nette sur plusieurs échantillons consécutifs, afin que la recommandation ne vacille pas au moindre bruit de signal ou à cause du band-steering 2,4/5 GHz.
Le scoring est passif et ne vous déconnecte jamais. Il prend en compte le signal, la bande, la congestion du canal, la norme WiFi et (pour le réseau auquel vous êtes connecté) la latence en direct. Les détails figurent dans docs/architecture.md ; le support des plateformes repose sur une seule interface enfichable, décrite dans docs/adding-a-platform.md.
Une application compagnon dans la barre de menus affiche le classement en direct et le « pourquoi » dans un menu déroulant — des scores colorés selon la qualité, des barres de signal, et un témoin ambre lorsqu'un réseau est durablement meilleur. Elle lit roamr watch --json, si bien que tout le scoring reste dans la CLI ; comme la CLI, elle ne fait que conseiller et ne change jamais de réseau à votre place.
make app # build macos/Roamr.app (Swift, no Xcode needed)
make install-app # build and install it to /Applications
macOS nécessite l'autorisation de localisation pour lire les détails WiFi (accordée au helper intégré au premier lancement) ; aucun compte Apple payant n'est requis pour compiler ou exécuter roamr (voir ADR-0002). La dépendance macwifi requiert Go 1.26+ et cible Apple Silicon ; macOS ne remonte pas le mode PHY, ce signal de scoring est donc ignoré sur cette plateforme.
go build ./... # build everything
go test ./... # run tests (no WiFi hardware needed)
go vet ./...
MIT. Voir LICENSE.
| Commande | Rôle |
|---|
roamr | recommande le meilleur réseau connu à cet endroit (défaut) |
roamr current | diagnostique le réseau auquel vous êtes connecté (y compris latence/gigue) |
roamr list | liste les réseaux connus et leurs scores |
roamr watch | échantillonne en continu ; ne suggère un changement que lorsqu'un réseau est durablement meilleur |
roamr speedtest | mesure le débit de téléchargement réel du réseau auquel vous êtes connecté |
| OS | Fournisseur | Statut |
|---|
| macOS | helper CoreWLAN signé via macwifi (ADR-0002) | fonctionnel (Apple Silicon, macOS 13+) |
| Windows | API WLAN native (wlanapi.dll, ADR-0004) | fonctionnel (vérifié sur appareil ; nécessite la localisation activée) |
| Linux | nmcli (NetworkManager) | implémenté (testé via fixtures ; vérification sur appareil en attente) |