whoop-cli
Simple WHOOP command-line tool for humans and agents.
Unofficial project. Not affiliated with or endorsed by Whoop, Inc.
$ whoop day-brief --json --pretty
{
"data": {
"recovery_score": 84,
"hrv_ms": 68,
"resting_hr": 52,
"sleep_quality": 86,
"strain": 12.4
},
"error": null
} Two ways to use whoop-cli.
For humans
Daily coaching commands like summary, day-brief, and health flags. See your recovery, sleep, and strain right in the terminal.
For agents
Machine-safe --json output on every command. Refresh-token flow for automation. Webhook verification and data export built in.
BYO WHOOP app credentials. Authenticate once, use everywhere.
Current integration is read-only for WHOOP data (fetch/analyze/export).
Set up your WHOOP app.
1. Create an app on WHOOP
Go to developer-dashboard.whoop.com and create an app.
Redirect URI (must match exactly in dashboard and CLI):
http://localhost:1234/callback
Required scopes:
The offline scope enables refresh tokens for unattended use.
2. Log in
Pass your client ID, secret, and redirect URI. The CLI opens your browser for WHOOP consent. After authorizing, paste the full redirect URL back into the terminal.
$ whoop auth login \
--client-id "your-client-id" \
--client-secret "your-client-secret" \
--redirect-uri "http://localhost:1234/callback"
Opening browser for WHOOP authorization...
Paste the full redirect URL here:
▸ http://localhost:1234/callback?code=abc123&state=xyz
✓ Authenticated successfully
Token saved to ~/.whoop-cli/profiles/default.json Redirect URI rule: The URI in WHOOP Dashboard and the --redirect-uri flag must match exactly. The CLI uses a manual paste flow — if the localhost page fails to load after consent, that's fine. Just copy the full URL from your browser address bar.
See whoop-cli in action.
Query your data
Every command supports --json and --pretty flags. Output always follows the same contract: { data, error }.
Daily coaching: summary, day-brief, strain-plan, health flags
Core data: recovery list, sleep list, cycle list, workout list
$ whoop summary --json --pretty
{
"data": {
"recovery": { "score": 84, "hrv": 68, "rhr": 52 },
"sleep": { "score": 86, "duration_hrs": 7.7 },
"strain": { "day_strain": 12.4 }
},
"error": null
}
$ whoop recovery list --days 3 --json --pretty
{
"data": [
{ "date": "2026-02-19", "score": 84, "hrv": 68 },
{ "date": "2026-02-18", "score": 71, "hrv": 55 },
{ "date": "2026-02-17", "score": 92, "hrv": 82 }
],
"error": null
} For agents & installers
Check auth, log in if needed, then validate with real data. For unattended systems, schedule the refresh monitor script.
scripts/whoop-refresh-monitor.sh
Install the OpenClaw skill for agent discovery:
whoop openclaw install-skill --force
Installs to ~/.openclaw/workspace/skills/whoop-cli/SKILL.md
# 1. Check auth status
$ whoop auth status --json
{ "data": { "authenticated": true }, "error": null }
# 2. If not authenticated, run login
$ whoop auth login --client-id ... --client-secret ... --redirect-uri ...
# 3. Validate with real data
$ whoop profile show --json
{ "data": { "user_id": "12345", "email": "..." }, "error": null }
$ whoop day-brief --json
{ "data": { "recovery_score": 84, "hrv_ms": 68 }, "error": null }
# 4. Install OpenClaw skill
$ whoop openclaw install-skill --force
✓ Skill installed to ~/.openclaw/workspace/skills/whoop-cli/SKILL.md Get started in three steps.
Install
npx -y @andreasnlarsen/whoop-cli \ summary --json --pretty
or install globally
npm i -g @andreasnlarsen/whoop-cli
Create WHOOP app
Get your client ID, secret, and redirect URI from the WHOOP developer dashboard.
Log in & go
whoop auth login \ --client-id "<CLIENT_ID>" \ --client-secret "<CLIENT_SECRET>" \ --redirect-uri "<REDIRECT_URI>"
verify
whoop auth status --json --pretty
then
whoop day-brief --json --pretty
Unofficial project. Not affiliated with or endorsed by Whoop, Inc. WHOOP is a trademark of Whoop, Inc., used for compatibility reference only.