| name | whoop |
| description | WHOOP CLI for health data, trends, insights, and dashboards. Use when user asks about WHOOP data, health metrics, recovery, HRV, sleep, strain, workouts, or wants to fetch/analyze WHOOP API data. Also use when user says "whoop", "recovery score", "sleep score", "daily strain", "heart rate variability", "resting heart rate", "health dashboard", "health trends", or wants a daily health summary. Trigger on requests like "show my recovery", "how did I sleep", "fetch my WHOOP data", "health insights", "trend analysis".
|
whoop-cli
Fetch WHOOP health metrics via CLI: sleep, recovery, HRV, strain, workouts.
Install: npm install -g whoop-cli | GitHub
Quick start
whoop-cli auth login
whoop-cli summary --color
whoop-cli dashboard
whoop-cli trends --days 14
Commands
| Command | Description | Default output |
|---|
sleep | Sleep stages, efficiency, respiratory rate | JSON |
recovery | Recovery score, HRV, RHR, SpO2, skin temp | JSON |
workout | Workouts with strain, HR zones, calories | JSON |
cycle | Daily strain, calories | JSON |
profile | User info (name, email) | JSON |
body | Height, weight, max HR | JSON |
summary | One-liner health snapshot | Pretty |
dashboard | Full dashboard with 7-day trends | Pretty |
trends | Multi-day averages with trend arrows ↑↓→ | Pretty |
insights | Health recommendations | Pretty |
Flags
| Flag | Applies to | Description |
|---|
-d, --date <date> | data + analysis | Date (YYYY-MM-DD) |
-s, --start <date> | data | Range start |
-e, --end <date> | data | Range end |
-l, --limit <n> | data | Max results per page (default: 25) |
-a, --all | data | Fetch all pages |
-p, --pretty | data | Human-readable output |
-n, --days <number> | trends | 7, 14, or 30 only |
--json | dashboard, trends, insights | Raw JSON output |
-c, --color | summary | Color-coded status indicators |
--sleep/--recovery/--workout/--cycle/--profile/--body | global | Select data types |
Auth
whoop-cli auth login
whoop-cli auth status
whoop-cli auth refresh
whoop-cli auth logout
Key behaviors
- No args → fetches all data types for today (JSON)
- Data commands → JSON by default; add
--pretty for formatted
- Analysis commands → pretty by default; add
--json for raw
- WHOOP day boundary is 4:00 AM, not midnight
- Tokens:
~/.whoop-cli/tokens.json, auto-refresh 15 min before expiry
trends --days only accepts 7, 14, or 30
God mode: composite commands for deep insights
Run multiple commands to collect maximum data, then feed to LLM for analysis.
Best single command for LLM analysis:
whoop-cli dashboard --json
This is the most data-dense command: today's profile + recovery + sleep + cycle + workout, plus 7-day arrays of recovery, sleep, and cycle history — all in one JSON blob, no formatting.
Full daily snapshot (formatted for human reading):
whoop-cli --pretty
whoop-cli dashboard
whoop-cli insights
30-day deep dive (maximum historical context):
whoop-cli trends --days 30 --json
whoop-cli sleep -s 2025-12-31 -e 2026-01-30 --all
whoop-cli recovery -s 2025-12-31 -e 2026-01-30 --all
whoop-cli workout -s 2025-12-31 -e 2026-01-30 --all
whoop-cli cycle -s 2025-12-31 -e 2026-01-30 --all
Recovery vs strain correlation:
whoop-cli --recovery --workout --cycle -s 2025-12-31 -e 2026-01-30 --all
Sleep quality deep analysis:
whoop-cli --sleep --recovery -s 2025-12-31 -e 2026-01-30 --all
Recommended god mode workflow:
whoop-cli dashboard — get current state + 7-day context
whoop-cli trends --days 30 --json — get 30-day trend data
whoop-cli --sleep --recovery --workout --cycle -s <30d-ago> -e <today> --all — raw data for all key metrics
- Feed all JSON outputs to LLM for cross-metric analysis: HRV↔sleep, recovery↔strain, sleep duration↔workout performance
Example output
whoop-cli summary --color:
📅 2026-01-25
🟢 Recovery: 85% | HRV: 39ms | RHR: 63bpm
🟡 Sleep: 79% | 6.9h | Efficiency: 97%
🔴 Strain: 0.1 (optimal: ~14) | 579 cal
whoop-cli trends:
📊 7-Day Trends
💚 Recovery: 62.1% avg (34-86) →
💓 HRV: 33.8ms avg (26-42) →
😴 Sleep: 75.4% avg (69-79) →
🔥 Strain: 5.9 avg (0.1-9.0) ↓