
Найдите лучшую сеть WiFi для вашего местоположения — оценивает каждую сохранённую сеть по реальному качеству, а не просто по полоскам сигнала.
Найдите лучшую WiFi-сеть для вашего местоположения, не разрывая соединение.
В офисе (или дома) с несколькими WiFi-сетями лучшая меняется по мере вашего перемещения, и «лучшая» — это не просто уровень сигнала. Сеть может показывать полные полоски сигнала и при этом быть медленной: перегруженный 2.4 ГГц, устаревший стандарт WiFi, загруженный канал. roamr считывает то, что ваша ОС уже знает о каждой ближайшей сохранённой сети, оценивает их по реальному качеству, объясняет почему и подсказывает, какую использовать.

Статус: работает на macOS (brew install --cask sourabh-khot65/tap/roamr), плюс сопутствующее приложение в строке меню. Windows проверена и работает; Linux реализован и находится в предварительной версии (см. Платформы). Нет Mac? Попробуйте roamr --demo.
macOS (рекомендуется). Установка через Homebrew. Cask снимает атрибут карантина при установке, поэтому бинарный файл запускается без предупреждения Gatekeeper, которое вызвала бы загрузка через браузер:
brew install --cask sourabh-khot65/tap/roamr
Windows. Установка через Scoop:
scoop bucket add roamr https://github.com/sourabh-khot65/scoop-bucket
scoop install roamr
Любая платформа. Скачайте бинарный файл из последнего релиза или соберите из исходников с Go 1.26+:
go install github.com/sourabh-khot65/roamr/cmd/roamr@latest
Бинарные файлы со страницы Releases (в отличие от Homebrew) не подписаны, поэтому Gatekeeper помещает их в карантин на macOS. Снимите его один раз с помощью xattr -d com.apple.quarantine ./roamr. Установки через Homebrew это не затрагивает. Нотаризация собственного бинарного файла roamr запланирована, но выходит за рамки v0.x.
После установки попробуйте встроенную демонстрацию (оборудование WiFi не требуется):
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
Вы находитесь в Office-2G (▸) со 100% сигналом, но roamr ставит его на последнее место — 2,4 ГГц на старом WiFi 4 — и указывает на Office-6E. Этот разрыв между «полными полосками» и «действительно хорошим» — и есть весь смысл roamr.
Флаги: --why (объяснение оценок), --json (машиночитаемый вывод), --demo (без оборудования), --interval / --samples (для watch).
roamr носит рекомендательный характер: он считывает то, что знает ваша ОС, и никогда не изменяет ваше подключение. Он сообщает, какая сохранённая сеть лучше; переключение вы выполняете из меню Wi-Fi вашей ОС.
watch сглаживает оценку каждой сети во времени (EMA) и сигнализирует о переключении, только когда конкурент стабильно превосходит вашу текущую сеть с заметным отрывом в течение нескольких последовательных измерений, поэтому рекомендация не «дёргается» из-за шума сигнала или перераспределения между диапазонами 2,4/5 ГГц.
Оценка пассивна и никогда не разрывает соединение. Учитываются сигнал, диапазон, загруженность канала, стандарт WiFi и (для текущей сети) задержка в реальном времени. Подробности — в docs/architecture.md; поддержка платформ реализована за одним подключаемым интерфейсом, описанным в docs/adding-a-platform.md.
Сопутствующее приложение в строке меню показывает актуальный ранжированный список и «почему» в виде выпадающего меню — оценки, окрашенные по качеству, полоски сигнала и янтарная подсказка, когда сеть устойчиво лучше. Оно считывает roamr watch --json, поэтому вся оценка остаётся в CLI; как и CLI, оно только советует и никогда не переключает за вас.
make app # build macos/Roamr.app (Swift, no Xcode needed)
make install-app # build and install it to /Applications
macOS требует разрешения на геолокацию для чтения данных WiFi (выдаётся встроенному помощнику при первом запуске); для сборки или запуска roamr не требуется платная учётная запись Apple (см. ADR-0002). Зависимость macwifi требует Go 1.26+ и рассчитана на Apple Silicon; macOS не сообщает режим PHY, поэтому этот сигнал оценки там пропускается.
go build ./... # build everything
go test ./... # run tests (no WiFi hardware needed)
go vet ./...
MIT. См. LICENSE.
| Команда | Что делает |
|---|
roamr | рекомендует лучшую известную сеть здесь (по умолчанию) |
roamr current | диагностирует сеть, к которой вы подключены (включая задержку/джиттер) |
roamr list | выводит список известных сетей и их оценки |
roamr watch | выполняет непрерывную выборку; предлагает переключение, только когда одна сеть устойчиво лучше |
roamr speedtest | измеряет реальную скорость загрузки сети, к которой вы подключены |
| ОС | Провайдер | Статус |
|---|
| macOS | подписанный помощник CoreWLAN через macwifi (ADR-0002) | работает (Apple Silicon, macOS 13+) |
| Windows | нативный WLAN API (wlanapi.dll, ADR-0004) | работает (проверено на устройстве; требуется включённая геолокация) |
| Linux | nmcli (NetworkManager) | реализовано (проверено на фикстурах; ожидается проверка на устройстве) |