FreePublished on GitHub
whoopskill
WHOOP CLI with health insights, trends analysis, and data fetching (sleep, recovery, HRV, strain).
The English summary is being prepared. Showing the original description.
See how to installFiles included (23)
- SKILL.md6.0 KB
- .env.example102 B
- .gitignore41 B
- examples/monitor/cron/README-cron.txt447 B
- examples/monitor/systemd/whoopskill-monitor.service296 B
- examples/monitor/systemd/whoopskill-monitor.timer168 B
- examples/monitor/whoop-refresh-monitor.sh1.7 KB
- package-lock.json23.1 KB
- package.json797 B
- README.md4.4 KB
- src/api/client.ts3.9 KB
- src/api/endpoints.ts279 B
- src/auth/oauth.ts4.8 KB
- src/auth/server.ts1.9 KB
- src/auth/tokens.ts3.3 KB
- src/cli.ts7.2 KB
- src/index.ts119 B
- src/types/whoop.ts3.6 KB
- src/utils/analysis.ts10.5 KB
- src/utils/date.ts1.0 KB
- src/utils/errors.ts981 B
- src/utils/format.ts4.0 KB
- tsconfig.json458 B
SKILL.md (original)
Review the instructions the agent will receive before you install.
whoopskill
Use whoopskill to fetch WHOOP health metrics (sleep, recovery, HRV, strain, workouts).
Install: npm install -g whoopskill | GitHub
Quick start
whoopskill summary— one-liner: Recovery: 52% | HRV: 39ms | Sleep: 40% | Strain: 6.7whoopskill summary --color— color-coded summary with 🟢🟡🔴 status indicatorswhoopskill trends— 7-day trends with averages and direction arrowswhoopskill trends --days 30 --pretty— 30-day trend analysiswhoopskill insights --pretty— AI-style health recommendationswhoopskill --pretty— human-readable output with emojiswhoopskill recovery— recovery score, HRV, RHRwhoopskill sleep— sleep performance, stageswhoopskill workout— workouts with strainwhoopskill --date 2025-01-03— specific date
Analysis commands
summary— quick health snapshot (add--colorfor status indicators)trends— multi-day averages with trend arrows (↑↓→)insights— personalized recommendations based on your data
Data types
profile— user info (name, email)body— height, weight, max HRsleep— sleep stages, efficiency, respiratory raterecovery— recovery %, HRV, RHR, SpO2, skin tempworkout— strain, HR zones, caloriescycle— daily strain, calories
Combine types
whoopskill --sleep --recovery --body
Auth
whoopskill auth login— OAuth flow (opens browser)whoopskill auth status— check token statuswhoopskill auth logout— clear tokens
Notes
- Output is JSON to stdout (use
--prettyfor human-readable) - Tokens stored in
~/.whoop-cli/tokens.json(auto-refresh) - Uses WHOOP API v2
- Date follows WHOOP day boundary (4am cutoff)
- WHOOP apps with <10 users don't need review (immediate use)
Sample: whoopskill summary --color
📅 2026-01-25
🟢 Recovery: 85% | HRV: 39ms | RHR: 63bpm
🟡 Sleep: 79% | 6.9h | Efficiency: 97%
🔴 Strain: 0.1 (optimal: ~14) | 579 cal
Sample: whoopskill trends
📊 7-Day Trends
💚 Recovery: 62.1% avg (34-86) →
💓 HRV: 33.8ms avg (26-42) →
❤️ RHR: 63.8bpm avg (60-68) →
😴 Sleep: 75.4% avg (69-79) →
🛏️ Hours: 6.5h avg (5.7-7.8) ↓
🔥 Strain: 5.9 avg (0.1-9.0) ↓
Sample: whoopskill insights
💡 Insights & Recommendations
✅ Green Recovery
Recovery at 85% — body is primed for high strain.
→ Great day for intense training or competition.
✅ HRV Above Baseline
Today's HRV (39ms) is 21% above your 7-day average.
→ Excellent recovery. Good day for peak performance.
⚠️ Mild Sleep Debt
You have 2.0 hours of sleep debt.
→ Consider an earlier bedtime tonight.
✅ Strain Capacity Available
Current strain: 0.1. Optimal target: ~14.
→ Room for 13.9 more strain today.
Sample: whoopskill --sleep --recovery (JSON)
{
"date": "2026-01-05",
"fetched_at": "2026-01-05T13:49:22.782Z",
"body": {
"height_meter": 1.83,
"weight_kilogram": 82.5,
"max_heart_rate": 182
},
"sleep": [
{
"id": "4c311bd4-370f-49ff-b58c-0578d543e9d2",
"cycle_id": 1236731435,
"user_id": 245199,
"created_at": "2026-01-05T00:23:34.264Z",
"updated_at": "2026-01-05T02:23:54.686Z",
"start": "2026-01-04T19:51:57.280Z",
"end": "2026-01-05T01:30:48.660Z",
"timezone_offset": "+04:00",
"nap": false,
"score_state": "SCORED",
"score": {
"stage_summary": {
"total_in_bed_time_milli": 20331380,
"total_awake_time_milli": 4416000,
"total_light_sleep_time_milli": 6968320,
"total_slow_wave_sleep_time_milli": 4953060,
"total_rem_sleep_time_milli": 3994000,
"sleep_cycle_count": 4,
"disturbance_count": 4
},
"sleep_needed": {
"baseline_milli": 26783239,
"need_from_sleep_debt_milli": 6637715,
"need_from_recent_strain_milli": 148919
},
"respiratory_rate": 14.12,
"sleep_performance_percentage": 40,
"sleep_consistency_percentage": 60,
"sleep_efficiency_percentage": 78.28
}
}
],
"workout": [
{
"id": "4279883e-3d23-45cd-848c-3afa28dca3f8",
"user_id": 245199,
"start": "2026-01-05T03:14:13.417Z",
"end": "2026-01-05T04:06:45.532Z",
"sport_name": "hiit",
"score_state": "SCORED",
"score": {
"strain": 6.19,
"average_heart_rate": 108,
"max_heart_rate": 144,
"kilojoule": 819.38,
"zone_durations": {
"zone_zero_milli": 167000,
"zone_one_milli": 1420000,
"zone_two_milli": 1234980,
"zone_three_milli": 330000,
"zone_four_milli": 0,
"zone_five_milli": 0
}
}
}
],
"profile": {
"user_id": 245199,
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe"
},
"recovery": [
{
"cycle_id": 1236731435,
"sleep_id": "4c311bd4-370f-49ff-b58c-0578d543e9d2",
"user_id": 245199,
"score_state": "SCORED",
"score": {
"recovery_score": 52,
"resting_heart_rate": 60,
"hrv_rmssd_milli": 38.87,
"spo2_percentage": 96.4,
"skin_temp_celsius": 33.19
}
}
],
"cycle": [
{
"id": 1236731435,
"user_id": 245199,
"start": "2026-01-04T19:51:57.280Z",
"end": null,
"score_state": "SCORED",
"score": {
"strain": 6.66,
"kilojoule": 6172.94,
"average_heart_rate": 71,
"max_heart_rate": 144
}
}
]
}
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.