
roamr v0.1.4
Encontre a melhor rede WiFi para onde você está — avalia cada rede salva pela qualidade no mundo real, não apenas pelas barras de sinal.
roamr
Encontre a melhor rede WiFi para onde você está, sem perder sua conexão.
Em um escritório (ou casa) com várias redes WiFi, a melhor muda conforme você
se move, e "melhor" não é só barras de sinal. Uma rede pode mostrar barras cheias e ainda assim
ser lenta: 2.4 GHz congestionado, um padrão WiFi antigo, um canal saturado. O roamr
lê o que seu sistema operacional já sabe sobre cada rede salva próxima, atribui
pontuações para a qualidade no mundo real, explica o porquê e diz qual usar.

Status: disponível para macOS (brew install --cask sourabh-khot65/tap/roamr), além de um
aplicativo complementar de barra de menus. O Windows está verificado e funcionando; o Linux está implementado e em
pré-visualização (veja Plataformas). Sem Mac? Experimente roamr --demo.
Instalação
macOS (recomendado). Instale com o Homebrew. O cask remove o atributo de quarentena na instalação, então o binário executa sem o aviso do Gatekeeper que um download pelo navegador dispararia:
brew install --cask sourabh-khot65/tap/roamr
Windows. Instale com o Scoop:
scoop bucket add roamr https://github.com/sourabh-khot65/scoop-bucket
scoop install roamr
Qualquer plataforma. Baixe um binário da última versão, ou compile a partir do código-fonte com Go 1.26+:
go install github.com/sourabh-khot65/roamr/cmd/roamr@latest
Os binários da página Releases (ao contrário dos do Homebrew) não são assinados, então
o Gatekeeper os coloca em quarentena no macOS. Limpe isso uma vez com
xattr -d com.apple.quarantine ./roamr. As instalações via Homebrew não são afetadas.
Notarizar o binário do próprio roamr está planejado, mas está fora do escopo da v0.x.
Início rápido
Depois de instalado, experimente a demo integrada (nenhum hardware WiFi é necessário):
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
Você está em Office-2G (o ▸) com 100% de sinal, mas o roamr o classifica em último, 2.4 GHz em WiFi 4 antigo, e aponta para Office-6E em vez disso. Essa diferença entre "barras cheias" e "realmente bom" é o objetivo principal do roamr.
Comandos
| Comando | O que faz |
|---|---|
roamr | recomenda a melhor rede conhecida aqui (padrão) |
roamr current | diagnostica a rede em que você está (incl. latência/jitter) |
roamr list | lista as redes conhecidas e suas pontuações |
roamr watch | amostra continuamente; sugere uma troca somente quando uma é duravelmente melhor |
roamr speedtest | mede a taxa de transferência real de download da rede em que você está |
Flags: --why (explica as pontuações), --json (legível por máquina), --demo (sem hardware),
--interval / --samples (para watch).
O roamr é apenas consultivo: ele lê o que seu sistema operacional sabe e nunca altera sua conexão. Ele informa qual rede salva é a melhor; você faz a troca pelo menu de Wi-Fi do seu sistema operacional.
O watch suaviza a pontuação de cada rede ao longo do tempo (EMA) e só sinaliza uma troca
quando um desafiante supera sua rede atual por uma margem clara em várias
amostras consecutivas, para que a recomendação não fique oscilando por ruído de sinal ou
2.4/5 GHz band-steering.
Como funciona
A pontuação é passiva e nunca desconecta você. Ela pondera sinal, banda, congestionamento de canal, padrão WiFi e (para a rede em que você está) latência em tempo real. Os detalhes estão em docs/architecture.md; o suporte a plataformas fica atrás de um ponto de extensão plugável, descrito em docs/adding-a-platform.md.
Aplicativo de barra de menus (macOS)
Um aplicativo complementar de barra de menus mostra a lista classificada em tempo real e o "porquê" em um menu suspenso —
pontuações coloridas por qualidade, barras de sinal e um aviso âmbar quando uma rede é duravelmente
melhor. Ele lê a saída de roamr watch --json, então toda a pontuação permanece no CLI; como
o CLI, ele apenas aconselha e nunca troca por você.
make app # build macos/Roamr.app (Swift, no Xcode needed)
make install-app # build and install it to /Applications
Plataformas
| SO | Provedor | Status |
|---|---|---|
| macOS | helper CoreWLAN assinado via macwifi (ADR-0002) | funcionando (Apple Silicon, macOS 13+) |
| Windows | API WLAN nativa (wlanapi.dll, ADR-0004) | funcionando (verificado em dispositivo; requer Localização ativada) |
| Linux | nmcli (NetworkManager) | implementado (testado com fixtures; verificação em dispositivo pendente) |
O macOS precisa da permissão de Localização para ler os detalhes do WiFi (concedida ao helper
incorporado na primeira execução); nenhuma conta Apple paga é necessária para compilar ou executar
o roamr (veja ADR-0002). A dependência macwifi exige Go 1.26+ e tem como alvo
Apple Silicon; o macOS não informa o modo PHY, então esse sinal de pontuação
é ignorado nele.
Desenvolvimento
go build ./... # build everything
go test ./... # run tests (no WiFi hardware needed)
go vet ./...
Licença
MIT. Veja LICENSE.