I got tired of pulling out my phone every time I wanted to check my network. eero only has a mobile app. So I made a Mac one.
The short version: most of what the eero mobile app does.
The long version: dashboard with health/speed/ISP info, network topology map, device list with pause and bulk actions, speed tests with animated gauges and a history chart, guest network controls, parental control profiles, full network settings (DNS, WPA3, UPnP, IPv6, SQM, Thread, firmware updates), eero Secure threat stats, device connect/disconnect timeline, a menu bar icon, keyboard shortcuts for every tab, CSV export, notifications, and auto-refresh every 30 seconds.
macOS 14+, Swift 5.9+, and an eero account with email/phone login.
If you sign into eero with Amazon -- and if you set up your eero after ~2022 you probably do -- the API won't accept your credentials. eero uses Amazon's internal device auth system (the same one Fire TVs use) and there's no way to get a token from outside their SDK. Nobody has figured this out, including the Home Assistant community.
The workaround takes 2 minutes:
- Open the eero app on your phone
- Settings > Invite another eero admin
- Enter a different email
- Accept the invite from that email inbox
- Log in here with that email
The second admin has full access to your network. You only do this once.
git clone https://github.com/raya-ac/eero-mac.git
cd eero-mac
swift build
swift runFor a proper .app bundle:
swift build
mkdir -p eero.app/Contents/MacOS
cp .build/debug/eero-mac eero.app/Contents/MacOS/eero
open eero.appTalks to eero's undocumented API at api-user.e2ro.com. Auth is a phone/email verification code flow, same as the mobile app used before Amazon took over. The API is reverse engineered from community projects -- mainly 343max/eero-client and schmittx/home-assistant-eero.
SwiftUI, zero dependencies, ~80 source files.
Core/Networking/ API client, endpoints, auth
Models/ Decodable structs matching the API
Services/ One per feature, wraps API calls
ViewModels/ @Observable, one per screen
Views/ Organized by feature
Async/await and the Observation framework throughout.
| Key | Tab |
|---|---|
| Cmd+1 | Home |
| Cmd+2 | Devices |
| Cmd+3 | Eero Nodes |
| Cmd+4 | Speed Test |
| Cmd+5 | Guest Network |
| Cmd+6 | Profiles |
| Cmd+7 | Settings |
| Cmd+8 | Insights |
| Cmd+9 | Topology |
| Cmd+0 | Activity |
- No Amazon SSO login. Use the second-admin workaround.
- Some eero Secure features need an active subscription.
- The API is unofficial and could break any time.
- The data usage endpoint 404s on some accounts.
MIT