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 work
one question, the tools it calls, the answer
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.
Capabilities
11 commands across four groups
Set it up
No env vars. Session token is stored at ~/.config/eero/session.json (mode 0600); re-run eero auth to reset. Requires Python 3.12+.
Destructive commands refuse to guess when a name or MAC matches more than one device, so a fuzzy match never blocks the wrong host. block-cleanup defaults to offline-only, skips already-blocked devices, and prompts before acting unless you pass -y. eero status and every --json read are strictly read-only. The README documents, verified end-to-end, that eero's backend exposes no working way to delete an offline device, so the CLI never pretends to.