核心用法
whoopskill 是一款基于 Node.js 的命令行工具,用于从 WHOOP 智能穿戴设备获取健康数据。它通过 WHOOP API v2 提供结构化的 JSON 数据输出,覆盖睡眠、恢复、运动、身体指标等六大维度。
主要功能模块
- 数据获取:
summary一键概览、--date指定日期、--pretty美化输出 - 专项指标:
recovery(恢复分数、HRV、静息心率)、sleep(睡眠阶段、效率)、workout(运动负荷、心率区间) - 组合查询:支持
--sleep --recovery --body多维度同时拉取 - 身份认证:内置 OAuth 2.0 流程,自动管理 token 刷新与本地存储
显著优点
1. 数据主权归属清晰:用户主动授权,token 本地存储于 ~/.whoop-cli/tokens.json,无云端中转
2. 输出标准化:纯 JSON 格式便于管道处理,兼容数据分析工作流
3. API 覆盖完整:涵盖 WHOOP 官方 v2 接口的全部核心指标,包括 SpO2、皮肤温度等进阶数据
4. 开发者友好:npm 全局安装,Node.js 生态无缝集成
潜在局限
- 依赖 WHOOP 生态:需持有 WHOOP 硬件及有效订阅,无设备即无数据源
- OAuth 配置门槛:需自行注册 WHOOP 开发者应用,配置
CLIENT_ID/CLIENT_SECRET/REDIRECT_URI - 日期边界特殊:采用 WHOOP 4am 日界,跨时区用户需注意数据对齐
- <10 用户限制:开发者应用用户少于 10 人时可免审核立即使用,但存在未来合规风险
适合人群
- WHOOP 用户中的开发者、数据分析师、量化健康爱好者
- 希望将健康数据导入自建 BI 系统或自动化工作流的技术用户
- 对隐私敏感、偏好本地化处理可穿戴数据的用户
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| Token 泄露 | 本地文件存储的 refresh token 若被窃取可续期访问 | 设置 `~/.whoop-cli` 目录权限为 700,定期 `auth logout` 重置 |
| OAuth 钓鱼 | 非官方渠道分发可能植入恶意 redirect_uri | 仅从 npm 官方源或 GitHub 源码安装,验证包哈希 |
| 数据误用 | 健康 JSON 含敏感生理指标,管道输出可能入日志 | 避免在 CI/CD 或共享环境打印 `--pretty` 输出 |
| API 限流 | WHOOP 未公开速率限制,高频调用可能触发封禁 | 单日数据单次拉取,避免轮询,合理设置 cron 间隔 |