Check WHOOP recovery/sleep/strain each morning and send suggestions.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill whoop-morning --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Whoop Morning?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-whoop-morning)More formats (shields.io, HTML) on the badges page.
---
name: whoop-morning
description: "Check WHOOP recovery/sleep/strain each morning and send suggestions."
---
# whoop-morning
Morning WHOOP check-in:
- fetches your latest WHOOP data (Recovery, Sleep, Cycle/Strain)
- generates a short set of suggestions for the day
## Setup
### 1) Create WHOOP OAuth credentials
You already have:
- `WHOOP_CLIENT_ID`
- `WHOOP_CLIENT_SECRET`
Store these in `~/.clawdbot/.env`.
### 2) Authorize once (get refresh token)
Run:
```bash
/home/claw/clawd/skills/whoop-morning/bin/whoop-auth --scopes offline read:recovery read:sleep read:cycles read:profile
```
This prints an authorization URL.
Open it in your browser, approve, and paste the `code` back into the terminal.
The script will exchange it for tokens and write `WHOOP_REFRESH_TOKEN=...` to `~/.clawdbot/.env`.
### 3) Run the morning report
```bash
/home/claw/clawd/skills/whoop-morning/bin/whoop-morning
```
## Automation
Recommended: schedule with Gateway cron (daily, morning).
The cron job should run `whoop-morning` and send its output as a message.
## Notes
- This skill uses WHOOP OAuth2:
- auth URL: `https://api.prod.whoop.com/oauth/oauth2/auth`
- token URL: `https://api.prod.whoop.com/oauth/oauth2/token`
- WHOOP rotates refresh tokens; avoid running multiple refreshes in parallel.
- API availability/fields can change; if WHOOP returns 401/400 during token refresh, re-run `whoop-auth`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!