Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Access WHOOP fitness tracker data via API, including recovery scores, sleep metrics, workout stats, daily strain, and body measurements. Use when the user asks about their WHOOP data, fitness metrics, recovery status, sleep quality, workout performance, or wants to track health trends.
Access WHOOP fitness tracker data via API, including recovery scores, sleep metrics, workout stats, daily strain, and body measurements. Use when the user asks about their WHOOP data, fitness metrics, recovery status, sleep quality, workout performance, or wants to track health trends.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Retrieve and analyze fitness data from WHOOP wearables via the official REST API.
# Install (if using Clawdhub) clawdhub install whoop-tracker # From the skill root: python3 scripts/get_recovery.py --today python3 scripts/get_sleep.py --last python3 scripts/get_workouts.py --days 7 python3 scripts/get_profile.py
Python 3.7+ requests library: pip3 install requests (or run bash scripts/install.sh)
Go to https://developer.whoop.com Create a new app and note your client_id and client_secret Set redirect URI (e.g., http://localhost:8080/callback)
mkdir -p ~/.whoop cat > ~/.whoop/credentials.json <<EOF { "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET" } EOF chmod 600 ~/.whoop/credentials.json
Open the authorization URL in browser User grants permissions โ redirected with code Exchange code for tokens via WhoopClient.authenticate(code, redirect_uri)
All scripts are run from the skill root directory: # Today's recovery python3 scripts/get_recovery.py --today # Last night's sleep python3 scripts/get_sleep.py --last # Recent workouts python3 scripts/get_workouts.py --days 7 # User profile python3 scripts/get_profile.py
Recovery Score (0-100): Readiness for strain HRV (RMSSD): Heart rate variability in milliseconds Resting Heart Rate: Morning baseline HR SPO2: Blood oxygen percentage Skin Temperature: Deviation from baseline in ยฐC
Performance %: How well you slept vs. your sleep need Duration: Total time in bed and per stage (REM, SWS, light, awake) Efficiency %: Time asleep / time in bed Consistency %: How consistent your sleep schedule is Respiratory Rate: Breaths per minute Sleep Needed/Debt: Baseline need and accumulated debt
Strain Score: Cardiovascular load (0-21 scale) Kilojoules: Energy expenditure Average/Max Heart Rate: Daily HR metrics
Strain: Activity-specific strain score Sport: Activity type (running, cycling, etc.) Heart Rate Zones: Time spent in each of 6 zones Distance/Altitude: GPS metrics (if available)
Base URL: https://api.prod.whoop.com See references/api-reference.md for full endpoint documentation with response schemas. User Profile: GET /v1/user/profile/basic โ Name, email GET /v1/user/body_measurement โ Height, weight, max HR Recovery: GET /v1/recovery โ All recovery data (paginated) GET /v1/cycle/{cycleId}/recovery โ Recovery for specific cycle Sleep: GET /v1/sleep โ All sleep records (paginated) GET /v1/sleep/{sleepId} โ Specific sleep by ID GET /v1/cycle/{cycleId}/sleep โ Sleep for specific cycle Cycle: GET /v1/cycle โ All physiological cycles (paginated) GET /v1/cycle/{cycleId} โ Specific cycle by ID Workout: GET /v1/workout โ All workouts (paginated) GET /v1/workout/{workoutId} โ Specific workout by ID All collection endpoints support start, end (ISO 8601), limit (max 25), and nextToken (pagination cursor).
read:profile โ User name and email read:body_measurement โ Height, weight, max HR read:recovery โ Recovery scores and HRV read:sleep โ Sleep metrics and stages read:cycles โ Daily strain data read:workout โ Activity and workout data
Core API client. Features: OAuth token storage and auto-refresh Token expiry tracking (proactive refresh) Rate limit handling (429 with retry) Automatic pagination iterators (iter_recovery, iter_sleep, iter_cycles, iter_workouts)
python3 scripts/get_recovery.py --today # Today's recovery python3 scripts/get_recovery.py --days 7 # Past week python3 scripts/get_recovery.py --start 2026-01-20 # From date python3 scripts/get_recovery.py --json # Raw JSON output
python3 scripts/get_sleep.py --last # Last night python3 scripts/get_sleep.py --days 7 # Past week python3 scripts/get_sleep.py --json # Raw JSON output
python3 scripts/get_workouts.py --days 7 # Past week python3 scripts/get_workouts.py --sport running # Filter by sport python3 scripts/get_workouts.py --json # Raw JSON output
python3 scripts/get_profile.py # Profile + body measurements python3 scripts/get_profile.py --json # Raw JSON output
bash scripts/install.sh # Install pip dependencies + setup guide
Install dependencies: pip3 install requests or bash scripts/install.sh
Create the file with your OAuth client_id and client_secret (see Quick Start step 2).
Complete the OAuth authorization flow (see references/oauth.md).
Your refresh token has expired. Re-authorize from the authorization URL.
Rate limit hit. The client automatically retries after the Retry-After period.
Check your date range โ use --days 7 or wider range. Ensure your OAuth scopes include the data type you're requesting.
references/oauth.md โ OAuth setup, token management, authorization flow references/api-reference.md โ Complete API endpoint documentation with response schemas
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.