eero-cli
ExperimentalManage an eero mesh network from the shell.
WHAT IT DOES
eero-cli is a tiny terminal CLI for managing devices on an eero mesh network from a real shell. It wraps eero-api (the most actively maintained reverse-engineered Python client) and adds a two-step, non-interactive SMS/email auth flow that survives across separate shell invocations, filtered device listing, profile and schedule management, and single or bulk device blocking. The two-step auth is deliberately non-interactive so it works in wrappers that cannot drive an interactive prompt, like a scripted setup or an agent's shell.
Status: experimental. eero has no public API; this rides on a reverse-engineered library, so behavior can change when eero changes their backend. It is a CLI, not an MCP server, so there is no AI-client config block.
INSTALL
Not published to a package index. Install straight from the GitHub repo with pipx, or from a local clone. Requires Python 3.12+ (inherited from eero-api).
FIRST-TIME AUTH
The eero API uses a two-step SMS/email login. Both halves are non-interactive so they work in any wrapper that cannot drive an interactive prompt.
Session token is written to ~/.config/eero/session.json (mode 0600). Re-run eero auth any time to start over.
COMMANDS
Auth
Devices
Profiles
Blocking
WHAT IT CANNOT DO
The eero REST and GraphQL APIs do not expose any mutating operation that removes an offline device. This was verified end-to-end: the documented delete and forget calls return 404 or silently no-op, and none of the 215 GraphQL mutations in the eero web admin match a forget/delete/remove-device shape. To actually forget a stale device, use the eero mobile app (or just wait, eero auto-culls truly stale entries after about 30 days). The README documents the full investigation so you do not have to repeat it.