razzant/ouroboroshub/whoop-health
- community
Checking that the SKILL.md file is still in the repository.
Сбор данных со смарт-браслета WHOOP через официальный API v2: сон, recovery, strain, тренировки, HRV, пульс покоя, SpO2. Полный OAuth2 Authorization Code flow для первичной авторизации и автоматическое обновление токенов.
Install
npx vskill@latest install razzant/ouroboroshub/whoop-healthSKILL.md
WHOOP Health v0.3.1
Extension skill для Ouroboros — собирает данные со смарт-браслета WHOOP через официальный API v2 (https://api.prod.whoop.com/developer/v2; API v1 больше не поддерживается WHOOP).
Аутентификация — OAuth2 Authorization Code Flow
Первичная настройка
- Зарегистрируйте приложение на developer.whoop.com
и укажите в нём redirect URI (по умолчанию http://localhost:8080/callback)
- Получите
client_idиclient_secret - Положите их в секреты Ouroboros:
WHOOP_CLIENT_ID,WHOOP_CLIENT_SECRET - Вызовите
whoop_auth_url— получите URL для авторизации в браузере - Откройте URL, авторизуйтесь, скопируйте
codeиз redirect - Вызовите
whoop_exchange_codeс полученным кодом - Готово — токены сохранены, все data-инструменты работают автоматически
Обновление токенов
Access token обновляется автоматически через refresh token при получении 401/403 от API (scope offline запрашивается по умолчанию, без него WHOOP не выдаёт refresh token). Токены сохраняются в файл whoop_tokens.json в state-директории навыка (права 0600) и переживают рестарты.
Инструменты
| Tool | Описание | |
|---|---|---|
whoop_auth_url | Генерирует OAuth2 URL для авторизации в браузере | |
whoop_exchange_code | Обменивает authorization code на access + refresh tokens | |
whoop_check | Проверка подключения (GET /v2/user/profile/basic) | |
whoop_summary | Сводка за последние N дней: recovery, сон, strain. | |
whoop_fetch | Детальные данные по типу: RECOVERY, SLEEP, WORKOUT, CYCLE. |
Зоны восстановления
whoop_fetch(RECOVERY) добавляет score.recovery_zone к записи с оценкой; whoop_summary возвращает ту же зону в recovery.recovery_zone. Исходный recovery_score и остальные измерения сохраняются. Для числового процента 0–100: red ≤33, yellow >33 и ≤66, green >66, без округления. WHOOP описывает зоны как 0–33%, 34–66% и 67–100%; API задаёт число типа float, но не уточняет округление между целыми границами. Поэтому для дробных значений здесь явно указано правило этого навыка. Отсутствующее, нечисловое, бесконечное, NaN или выходящее за 0–100 значение даёт null, а не предполагаемый цвет. Записи без оценки сохраняют отсутствующий или null score; в сводке такие измерения равны null, пустая коллекция по-прежнему не добавляет раздел. Флаг recovery.user_calibrating в сводке сохраняет предупреждение WHOOP о недостаточных данных при калибровке; null означает, что флаг не получен. Зона — категория данных, не медицинский совет.
Данные и права
- Запросы идут только к
api.prod.whoop.com; данные никуда, кроме ответа
инструмента, не отправляются.
- Права:
tool,read_settings(только два ключа выше),net. - Зависимостей нет — только стандартная библиотека Python.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/whoop-health/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/razzant/ouroboroshub/whoop-health)