核心用法
WHOOP Central 是一个基于 Node.js 的命令行工具,用于通过 WHOOP Developer API v2 获取用户的健身和健康数据。主要功能包括:
1. 数据获取:支持获取恢复分数(0-100%)、HRV、静息心率、血氧、睡眠阶段(REM/深睡/浅睡)、睡眠效率、日常压力(0-21)、卡路里消耗、锻炼详情等
2. 快速命令:提供 today.js(当日快照)、summary.js(每日汇总)、recovery.js、sleep.js、strain.js、workouts.js 等独立脚本
3. 历史数据导入:支持批量导入到本地日志目录
4. JSON 输出:支持 --json 和 --jsonl 格式,便于与其他工具集成
认证流程
采用 OAuth 2.0 认证,推荐通过 Postman 完成首次授权:
- 在 WHOOP Developer Dashboard 创建应用
- 配置 Redirect URI(推荐
https://oauth.pstmn.io/v1/browser-callback) - 请求 scope 需包含
offline以获取 refresh_token - 保存 access_token 和 refresh_token 到
~/.clawdbot/whoop/token.json - 支持自动刷新令牌
显著优点
- 数据维度丰富:涵盖恢复、睡眠、压力、锻炼四大核心维度,数据粒度细(含睡眠阶段、心率区间等)
- 自动化友好:支持 JSON/JSONL 输出,便于脚本化和数据管道集成
- 令牌自动管理:内置自动刷新机制,无需手动维护
- 灵活的时间过滤:支持
--days、--since、--start/--end等多种时间范围指定 - 官方 API 支持:基于 WHOOP 官方 Developer API v2,数据来源可靠
潜在缺点与局限性
- 认证复杂度高:WHOOP OAuth 端点对浏览器 User-Agent 敏感,可能阻断请求;需要熟悉 OAuth 2.0 流程
- 依赖外部工具:推荐依赖 Postman 完成首次认证,纯本地流程(
auth.js)可能对部分账户失效 - 自托管 HTTPS 限制:本地回调需处理自签名证书 TLS 警告
- Scope 限制:部分账户可能因会员状态或测试用户限制无法授权特定 scope
- 无实时数据:API 数据存在延迟,非实时流式数据
- 需自建应用:不预置客户端凭证,每个用户/团队需自行创建 WHOOP Developer 应用
适合人群
- 量化自我(Quantified Self)爱好者:希望自动化追踪和分析 WHOOP 数据
- 开发者和数据工程师:需要将 WHOOP 数据集成到个人数据管道或健康分析系统
- 健身教练和运动员:需要批量导出历史数据进行分析或报告生成
- WHOOP 重度用户:已习惯 WHOOP 生态系统,希望突破官方 App 的数据查看限制
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| **OAuth 令牌泄露** | token.json 包含 access_token 和 refresh_token,泄露可导致账户数据被访问 | 确保 `~/.clawdbot/whoop/` 目录权限严格(600),勿提交到版本控制 |
| **API 限流** | 高频调用可能触发 WHOOP 速率限制 | 合理使用 `--limit` 和缓存机制,避免循环高频调用 |
| **数据隐私** | 健康数据(睡眠、HRV、锻炼)属敏感个人信息 | 确保本地存储加密,传输使用 HTTPS |
| **令牌失效** | WHOOP refresh_token 轮换机制可能导致意外失效 | 保留备用认证流程,定期检查 `verify.js` |
| **第三方依赖** | 依赖 WHOOP API 可用性和策略变更 | 关注 WHOOP Developer 公告,做好数据本地备份 |
技术依赖
- Node.js 18+(ESM 模块)
openssl(仅本地 HTTPS 认证流程需要)