{"skill":{"slug":"whoop-health","displayName":"WHOOP Health","summary":"Fetch, analyze, and visualize WHOOP wearable health data via the WHOOP Developer API v2. Use when the user wants to connect their WHOOP band, retrieve recove...","description":"---\nname: whoop-health\ndescription: Fetch, analyze, and visualize WHOOP wearable health data via the WHOOP Developer API v2. Use when the user wants to connect their WHOOP band, retrieve recovery scores, HRV, sleep performance, strain, or workout data, analyze health trends, or integrate WHOOP data into a broader workflow. Triggers on phrases like \"WHOOP data\", \"WHOOP API\", \"WHOOP health\", \"connect WHOOP\", \"whoop recovery\", \"whoop sleep\", \"whoop strain\", or any request to analyze wearable data from a WHOOP device.\n---\n\n# WHOOP Health Skill\n\nIntegrates with the WHOOP Developer API v2 to retrieve and analyze health/fitness data from a WHOOP band.\n\n## Setup\n\n### 1. Create a Developer App\n\n1. Go to [developer.whoop.com](https://developer.whoop.com) and sign in with your WHOOP account\n2. Create a new application; set Redirect URI to `http://localhost:8080/callback`\n3. Save **Client ID** and **Client Secret**\n\n### 2. Authenticate\n\nRun the OAuth helper script to get an access token:\n\n```bash\npython3 scripts/whoop_auth.py --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET\n```\n\nThis opens a browser for authorization and saves tokens to `~/.whoop_tokens.json`.\n\n### 3. Fetch Data\n\n```bash\n# Fetch all data types (last 7 days)\npython3 scripts/whoop_fetch.py --days 7\n\n# Fetch specific data types\npython3 scripts/whoop_fetch.py --days 30 --types recovery,sleep,workout,cycle\n\n# Output as JSON\npython3 scripts/whoop_fetch.py --days 7 --format json --output whoop_data.json\n\n# Output as CSV (one file per data type)\npython3 scripts/whoop_fetch.py --days 7 --format csv --output ./whoop_export/\n```\n\n## Available Data Types\n\n| Type | Key Metrics |\n|------|-------------|\n| `recovery` | Recovery score (0–100%), HRV (ms), resting heart rate |\n| `sleep` | Sleep performance %, duration, REM/SWS/light/awake stages |\n| `workout` | Activity Strain (0–21), avg/max heart rate, calories, sport type |\n| `cycle` | Day Strain (0–21), avg heart rate, kilojoules |\n| `profile` | Name, email |\n| `body_measurement` | Height, weight, max heart rate |\n\n## Analysis Workflows\n\n### Trend Analysis\n\n```bash\npython3 scripts/whoop_fetch.py --days 30 --types recovery,sleep --format json --output data.json\n```\n\nThen ask: \"Analyze my HRV trend and sleep performance over the last 30 days. Identify patterns.\"\n\n### Recovery vs. Strain Correlation\n\nFetch `recovery` + `cycle` for 30+ days, then ask for correlation analysis between day Strain and next-day Recovery score.\n\n### Sleep Stage Breakdown\n\nFetch `sleep` data, request a breakdown of avg time in each stage (REM, SWS, Light, Awake) and flag nights below recommended thresholds.\n\n## Token Management\n\nTokens are stored at `~/.whoop_tokens.json`. The fetch script auto-refreshes using the refresh token when the access token expires (24h lifetime).\n\nTo revoke access: `python3 scripts/whoop_auth.py --revoke`\n\n## API Reference\n\nSee `references/api_endpoints.md` for full endpoint list, parameters, and response schemas.\n\n## Environment Variables (alternative to flags)\n\n```bash\nexport WHOOP_CLIENT_ID=your_client_id\nexport WHOOP_CLIENT_SECRET=your_client_secret\n```\n","topics":["Health","Workout","Developer"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":559,"installsAllTime":21,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1773467841354,"updatedAt":1778491898098},"latestVersion":{"version":"1.0.0","createdAt":1773467841354,"changelog":"Initial release: OAuth auth flow, data fetcher for recovery/sleep/workout/cycle, WHOOP API v1 reference","license":"MIT-0"},"metadata":null,"owner":{"handle":"jarviyin","userId":"s173fnv3r87mjsdgksqtn8k66183wcx9","displayName":"JIAWEI YIN","image":"https://avatars.githubusercontent.com/u/38063596?v=4"},"moderation":null}