# Whoop

> Fetches your latest WHOOP recovery, sleep, and strain data and generates a short set of suggestions for the day.

- Skill: `johnalbertini14-glitch/whoop` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add johnalbertini14-glitch/whoop`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnalbertini14-glitch/whoop/raw
- Safety review: CAUTION (external: skill-scanner WARNING, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity, Data & Analytics, Data Analysis, Personal Automation
- Tags: Health Data, Oauth, Recovery, Sleep, Strain, Whoop
- Author: johnalbertini14-glitch (https://skillmd.com/u/johnalbertini14-glitch)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/johnalbertini14-glitch/whoop

---


# whoop

WHOOP morning check-in:
- fetches your latest WHOOP data (Recovery, Sleep, Cycle/Strain)
- generates a short set of suggestions for the day

## Quick Start (User + Bot)

### What the user does (one-time)

1) Create a WHOOP app and get credentials:
- `WHOOP_CLIENT_ID`
- `WHOOP_CLIENT_SECRET`

2) In the WHOOP developer dashboard, set Redirect URL:
- `https://localhost:3000/callback`

3) Put secrets into `~/.clawdbot/.env`:

```bash
WHOOP_CLIENT_ID=...
WHOOP_CLIENT_SECRET=...
```

4) Authorize once (get refresh token):

```bash
node /home/claw/clawd/skills/whoop/bin/whoop-auth --redirect-uri https://localhost:3000/callback
```

- Open the printed URL on your phone/browser
- Tap Allow/Authorize
- Copy the `code` from the callback URL and paste it back

This writes `WHOOP_REFRESH_TOKEN=...` into `~/.clawdbot/.env`.

### What the bot does (each run)

Run:

```bash
node /home/claw/clawd/skills/whoop/bin/whoop-morning
```

Then send the output back to the user.

## Automation (daily)

Recommended: schedule with Gateway cron (daily morning).
- Command: `node /home/claw/clawd/skills/whoop/bin/whoop-morning`
- Bot should send the output as a message.

## Notes

- OAuth endpoints:
  - auth: `https://api.prod.whoop.com/oauth/oauth2/auth`
  - token: `https://api.prod.whoop.com/oauth/oauth2/token`
- Requires `offline` scope to receive refresh tokens.
- WHOOP rotates refresh tokens; the newest refresh token must be saved.

