WHOOP 4.0 无需订阅
摘要
OpenStrap/Edge 是一款开源应用,通过逆向工程 WHOOP 4.0 的蓝牙协议,提供健康追踪功能,无需官方订阅,所有计算均在设备本地完成,支持 iOS 和 Android。
查看缓存全文
缓存时间: 2026/07/16 13:56
OpenStrap/edge 源码:https://github.com/OpenStrap/edge
Openstrap Edge
一款让 WHOOP 4.0 在没有 WHOOP 订阅的情况下依然有用的应用。通过蓝牙连接手环,在手机上本地计算所有数据,支持 iOS 和 Android。
与 WHOOP 无关联。并非其应用或评分的克隆 — 详见下文。
为什么会构建这个应用
我的订阅到期了,一个本来好端端的传感器就变成了一条手镯。硬件从未停止工作,只是那个让它变得有用的应用停止了。于是,我逆向工程了手环的蓝牙协议,足以与它自行通信,基于已发表的研究从零编写了分析算法(而非猜测 WHOOP 的公式),并围绕结果构建了一个应用。现在,它无需 WHOOP 也能工作,任何遇到同样“抽屉手镯”问题的人都可以使用,或者自行深入钻研代码。
注意事项
- 仅限 WHOOP 4.0。 未接触过 WHOOP 5,不知道它是否使用相同协议。
- 与 WHOOP 无关联,不与他们的服务器通信。
- 不是他们算法的克隆 — 使用不同数学方法、已发表且引用了来源的研究,详见分析库。不要期望与应用显示的数字相同。
- 存在 Bug。有些我知道,可能更多我不知道。发现异常请提 issue。
- 不要在本应用与官方 WHOOP 应用之间来回切换。 官方应用的固件推送可能会更改本应用依赖的记录,且这里无法修复。选择其中一个并一直使用。
截图
| 今日 | 睡眠 | 心率 |
| 压力 | 呼吸 | 身体 |
| 步数 | 锻炼 | 记录 |
| 周报 | 个人资料 |
iOS 还提供主屏小组件、锁屏/灵动岛实时活动以及几个 Siri 快捷方式。
| 小组件 | 电池小组件 | 实时活动 |
以上每张截图均来自 WHOOP 4.0 的真实输出。
已支持功能
健康 — 心率、HRV、睡眠分期、恢复/准备度、应变、压力、HRV 快速检测、实时呼吸协调性。
活动 — 自动检测的锻炼、带 GPS 路径的实时锻炼追踪、心率区间。
其他所有 — 趋势/历史、带设备端相关洞察的日志(“什么真正影响了你的数据”)、周期追踪、确定性教练、可分享的每周回顾、自备密钥 AI 助手、主屏小组件、iOS 实时活动、Siri 快捷方式。
尚不支持功能(或可能永远不支持)
- iOS 后台同步为尽力而为。Apple 并未给予第三方应用真正的后台服务选项,因此长时间未打开应用时的同步是“通常”而非“总是”。
- 指标基于已发表研究的近似值 — 非医疗级,未在实验室验证,不要将其视为诊断。
- 目前仅支持侧载 — 不在 App Store 或 Play Store。您需要直接从 Releases 安装 APK 或未签名的 IPA。Android 只需“允许未知来源”即可。iOS 需要额外工具 — 如果您只想使用应用而不打算自行构建,请参阅
guides/IOS_SIDELOAD.md。
运行
git clone https://github.com/OpenStrap/edge.git
cd edge
cp .env.example .env
flutter pub get
flutter run --dart-define-from-file=.env
配对前退出官方 WHOOP 应用 — 蓝牙一次只允许一个应用连接手环。iOS 签名以及小组件/实时活动的 App Group 设置略为复杂 — 详见 guides/IOS_INSTALLATION.md。
工作原理
WHOOP 手环 → 蓝牙 → 协议解码器 → 本地存储 → 分析引擎 → UI
openstrap_protocol将手环的字节转换为记录。openstrap_analytics将这些记录转换为指标,每个指标附带置信度评分 — 当数据缺失时绝不伪造。- 本仓库是粘合剂:蓝牙可靠性、本地存储(有版本控制,算法更新不会静默覆盖旧结果)、后台同步、UI。
- 所有重要数据均保留在手机上。
复杂的蓝牙协议
手环没有标准的公开 API — 它是一个专有协议,让其稳定工作花了些时间。简而言之:时钟初始未设置(跳过设置会导致时间戳全乱);历史数据以批次形式获取,需要精确回传 8 字节令牌,否则手环会不断重复发送相同数据;本地保存必须在回传确认之前完成,这样同步过程中崩溃才不会丢失任何数据。完整的详细说明见协议库的 README(https://github.com/OpenStrap/protocol)— 如果您对此类内容感兴趣,那才是真正有趣的阅读。
您的数据保留在手机上
所有计算和存储均在本地完成。无需云账户,日常使用无需后端。该应用发出的网络调用仅限于三个可选且范围极窄的功能:一次性旧账户导入(如果您有旧云账户)、OTA/公告指针、以及用于 AI 助手的自备密钥 LLM 代理。这些都不是应用正常运行所必需的。
仓库结构
lib/ble/ 蓝牙 + 同步
lib/data/ 本地存储 + UI 读取的仓库层
lib/compute/ 运行分析管线,写入结果
lib/state/ 应用状态,唯一真相来源
lib/ui/ 所有界面
协议解码和分析引擎位于各自的仓库 — 协议(https://github.com/OpenStrap/protocol),分析引擎(https://github.com/OpenStrap/analytics)。
贡献
发现问题?提 issue。发现问题并修复了?更好,发送 PR。协议级别的内容(新记录类型、操作码)归属协议库,指标/公式更改归属分析库,任何与应用本身相关的内容 — 蓝牙、存储、UI — 归属此仓库。
相似文章
适用于 OpenClaw 的个人健康 MCP(支持 Oura、Ultrahuman、Polar、Suunto、Withings、Garmin、WHOOP、Intervals.icu 等)
一个个人健康 MCP 服务器,通过统一接口和 OAuth 设备码流程,让 OpenClaw 等 AI 代理能够访问来自可穿戴设备(Oura、Garmin、WHOOP 等)的真实健康和表现数据。
我构建了Body Vitals——一款以小组件为产品核心、以相关性分析为杀手锏的iPhone健康应用
Body Vitals是一款iPhone健康应用,它通过Apple Health聚合来自Garmin、Oura、Strava和MyFitnessPal等多个来源的数据,计算相关性并提供AI教练。它提供准备得分、恢复预测等功能,并以小组件优先的设计实现健康洞察一目了然。
Garmin CIRQA™ Smart Band
Garmin 推出 CIRQA Smart Band,一款无需订阅的无屏幕健康与健身追踪器。
@MaziyarPanahi:今天之前已有 110 多人申请早期访问,现已向所有人开放。它读取的指标包括寿命追踪、心脏、睡眠和恢复,并与你的基线进行比较……
一项健康追踪服务,可读取寿命、心率、睡眠和恢复等信号并与用户基线对比,现已向所有人开放。推理步骤可在 Hugging Face 上审计,并通过 OpenMed_AI 的 PII 模型保护隐私。
Garmin新款无屏幕健身追踪器无需订阅
Garmin发布了Cirqa智能手环,这是一款无屏幕健身追踪器,续航长达10天,可追踪健康指标且无需订阅,售价199.99美元。