介绍
# Whoop
从 Whoop API 查询健康指标并生成交互式 HTML 图表。
## 设置(仅需一次)
### 1. 创建 Whoop 开发者应用
1. 前往 [developer-dashboard.whoop.com](https://developer-dashboard.whoop.com) 2. 使用您的 Whoop 账户凭据登录 3. 如果提示,创建一个 Team(任意名称均可) 4. 点击 **Create App**(或前往 [apps/create](https://developer-dashboard.whoop.com/apps/create)) 5. 填写信息: - **App name**:任意名称(例如,“Clawdbot”) - **Scopes**:选择全部:`read:recovery`、`read:cycles`、`read:workout`、`read:sleep`、`read:profile`、`read:body_measurement` - **Redirect URI**:`http://localhost:9876/callback` 6. 点击 **Create** — 您将获得 **Client ID** 和 **Client Secret**
### 2. 身份验证
使用您的凭据运行 OAuth 登录流程:
```bash python3 scripts/whoop_auth.py login \ --client-id YOUR_CLIENT_ID \ --client-secret YOUR_CLIENT_SECRET ```
这将打开一个浏览器进行 Whoop 授权。登录并批准访问。令牌将存储在 `~/.clawdbot/whoop-tokens.json` 中并自动刷新。
检查状态:`python3 scripts/whoop_auth.py status`
## 获取数据
使用 `scripts/whoop_data.py` 获取 JSON 数据:
```bash # Sleep (last 7 days default) python3 scripts/whoop_data.py sleep --days 14
# Recovery scores python3 scripts/whoop_data.py recovery --days 30
# Strain/cycles python3 scripts/whoop_data.py cycles --days 7
# Workouts python3 scripts/whoop_data.py workouts --days 30
# Combined summary with averages python3 scripts/whoop_data.py summary --days 7
# Custom date range python3 scripts/whoop_data.py sleep --start 2026-01-01 --end 2026-01-15
# User profile / body measurements python3 scripts/whoop_data.py profile python3 scripts/whoop_data.py body ```
输出为 JSON 到 stdout。解析它以回答用户问题。
## 生成图表
使用 `scripts/whoop_chart.py` 进行交互式 HTML 可视化:
```bash # Sleep analysis (performance + stages) python3 scripts/whoop_chart.py sleep --days 30
# Recovery bars (color-coded green/yellow/red) python3 scripts/whoop_chart.py recovery --days 30
# Strain & calories trend python3 scripts/whoop_chart.py strain --days 90
# HRV & resting heart rate trend python3 scripts/whoop_chart.py hrv --days 90
# Full dashboard (all 4 charts) python3 scripts/whoop_chart.py dashboard --days 30
# Save to specific file python3 scripts/whoop_chart.py dashboard --days 90 --output ~/Desktop/whoop.html ```
图表将在默认浏览器中自动打开。它们使用带有深色主题、统计卡片和工具提示的 Chart.js。
## 回答问题
| 用户询问 | 操作 | |-----------|--------| | "我睡得怎么样?" | `whoop_data.py summary --days 7`,汇报睡眠表现 + 小时数 | | "我的恢复情况如何?" | `whoop_data.py recovery --days 7`,汇报评分 + 趋势 | | "给我看上个月的图表" | `whoop_chart.py dashboard --days 30` | | "我的 HRV 有改善吗?" | `whoop_data.py recovery --days 30`,分析趋势 | | "我这周训练了多少?" | `whoop_data.py workouts --days 7`,列出活动 |
## 关键指标
- **恢复** (0-100%):绿色 ≥67%,黄色 34-66%,红色 <34% - **压力** (0-21):基于心率 (HR) 的每日消耗评分 - **睡眠表现**:实际睡眠与所需睡眠的对比 - **HRV** (ms):数值越高 = 恢复越好,追踪随时间变化的趋势 - **RHR** (bpm):数值越低 = 心血管健康状况越好
## 健康分析
当用户询问其健康状况、趋势或希望获得见解时,请使用 `references/health_analysis.md` 来: - 对 HRV、RHR、睡眠阶段、恢复、压力、SpO2 进行科学解读 - 按年龄和健身水平划分的正常范围 - 模式检测(星期几的影响、睡眠债、过度训练信号) - 基于数据的可行建议 - 提示需要就医咨询的危险信号
### 分析工作流程 1. 获取数据:`python3 scripts/whoop_data.py summary --days N` 2. 阅读 `references/health_analysis.md` 以了解解读框架 3. 应用 5 步分析法:状态 → 趋势 → 模式 → 见解 → 标志 4. 始终包含免责声明,说明这并非医疗建议
## 参考资料
- `references/api.md` — 端点详细信息、响应架构、分页 - `references/health_analysis.md` — 科学支持的健康数据解读指南