Unofficial Eight Sleep CLI for pod control, schedules, alarms, sleep metrics, and device data.
$GO111MODULE=on go install github.com/steipete/eightctl/cmd/eightctl@latest
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis
eightctl is an unofficial Go CLI for controlling Eight Sleep pods and pulling sleep or device data through the same cloud endpoints the mobile app uses. It covers direct controls like temperature and power plus higher-level automations such as schedules, alarms, and a local daemon.
What It Enables
- Turn the pod on or off, set temperature levels, inspect current status, and manage cloud schedules or alarms without using the mobile app.
- Export sleep days, date ranges, presence, metrics, autopilot history, and household or device details for reporting and follow-up automation.
- Control extra product features exposed by the service, including base positions, audio playback, temperature modes, and YAML-driven recurring routines.
Agent Fit
- Global
--output table|json|csvand--fieldsfiltering make status, schedule, sleep, and metrics commands easy to parse in scripts. - Most commands are single-shot Cobra subcommands with flags, env-based auth, and clear exit behavior, so they fit inspect, change, and verify loops once credentials are configured.
- The weak point is upstream stability: the CLI depends on undocumented, rate-limited cloud APIs, and the repo does not ship built-in MCP or skill support beyond the raw command surface.
Caveats
- Everything depends on private Eight Sleep cloud endpoints and baked-in app credentials, so vendor-side API changes can break workflows without notice.
- The README labels the project WIP and notes that live verification is currently hampered by Eight Sleep API throttling on the maintainer's test account.