eero-cli
ActiveYour eero mesh only bends to a phone app, so blocking a device or fencing a kid's TV means tapping through screens you cannot script. eero-cli hands the network to your shell: non-interactive SMS auth, filtered device listing, profiles and schedules, and single or bulk blocking, all runnable from a terminal or an agent.
See it workrepresentative session
Representative session. Illustrative values, RFC 5737 addresses. Your session token stays on the box.
What it does
eero-cli is a small terminal CLI for managing devices on an eero mesh network from a real shell instead of the mobile app. It exists because eero ships no public API and no desktop control surface, so any scripted or agent-driven network task means tapping through a phone. It differs from the raw reverse-engineered libraries by adding a two-step, non-interactive SMS or email auth flow that survives across separate shell invocations, regex and MAC-prefix device filtering, profile and schedule management, single and bulk blocking, and honest documentation of the operations eero's backend silently refuses. It wraps eero-api, the most actively maintained reverse-engineered Python client, and every read command supports --json for scripting.
Capabilities11 commands across four groups
Auth
1 commandTwo-step non-interactive SMS or email login; token written to ~/.config/eero/session.json at mode 0600.
Devices
3 commandsList, rename, and filter devices by regex, MAC prefix, or online/offline state, with --json output.
Blocking
2 commandsBlock or unblock a single device, or bulk-block matching offline devices with block-cleanup.
Profiles
5 commandsCreate profiles, assign devices, set bedtime pause schedules, and block apps at the profile level.
Status
read-onlyeero status reports auth state, account, and visible networks; --json exits 1 when signed out.
Setup
pipx install git+https://github.com/lidless-labs/eero-cli
No env vars. Session token is stored at ~/.config/eero/session.json (mode 0600); re-run eero auth to reset. Requires Python 3.12+.