Skip to content

raya-ac/eero-mac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

eero for Mac

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.

macOS 14+ Swift 5.9 License

What's in it

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.

Setup

macOS 14+, Swift 5.9+, and an eero account with email/phone login.

Amazon login (read this first)

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:

  1. Open the eero app on your phone
  2. Settings > Invite another eero admin
  3. Enter a different email
  4. Accept the invite from that email inbox
  5. Log in here with that email

The second admin has full access to your network. You only do this once.

Build

git clone https://github.com/raya-ac/eero-mac.git
cd eero-mac
swift build
swift run

For a proper .app bundle:

swift build
mkdir -p eero.app/Contents/MacOS
cp .build/debug/eero-mac eero.app/Contents/MacOS/eero
open eero.app

How it works

Talks 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.

Code

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.

Shortcuts

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

Known issues

  • 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.

License

MIT

About

Native macOS app for managing eero WiFi networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages