Skip to content

OpenStrap

OpenStrap

Your wearable doesn't stop working when the subscription does — the app just goes dark. OpenStrap is what I built so a strap that would otherwise sit in a drawer keeps doing something: read your own data off it over Bluetooth, keep the raw bytes, and turn them into the numbers you actually look at.

Everything runs on your phone. The band talks to the app over Bluetooth, the app decodes the bytes, computes the metrics, and stores the results locally. There's no account, and no server sees your health data unless you opt in to send it somewhere yourself. That isn't a privacy setting you switch on; it's the architecture. Anonymous crash and performance diagnostics are the one optional extra: off by default, and they never include health data.

Is it a replacement for WHOOP? No, and I'm not going to pretend it is. They've got years of research and a whole team; this is one person and textbook methods. But it's a real second life for hardware you already own, and your data stays yours.

Supports

  • WHOOP 4, WHOOP 5, MG — full support: sleep, recovery, strain, everything computed on-device. 4.0 gets the most daily wear-testing since that's what's on my wrist.
  • Any standard Bluetooth heart-rate strap — pairs for workout tracking today. Full metrics from it are on the roadmap, not shipped yet.
  • Oura Ring — experimental. Pairs using the key the ring already holds (no factory reset, the Oura app keeps working) and syncs its history. Not feeding any scores yet.

A few other watches and rings show up in the app as Experimental: decoded, never tested on real hardware, and kept out of every metric until someone confirms them on a real device. More wearables are in development.

WHOOP is the one with a subscription to route around, so once you start using this on a WHOOP band, don't reconnect it to the official WHOOP app — a firmware update could change or break the events this relies on.

Get the app

The pieces

  • edge — the phone app, and where everything actually happens: Bluetooth, local storage, the compute pipeline, every screen.
  • protocol — the decoders. Raw record bytes from WHOOP bands, Bluetooth HR straps and the Oura ring into named fields. Pure Dart, zero dependencies, runs on-device.
  • analytics — the math. Published, peer-reviewed methods (Banister TRIMP, Cole-Kripke, Lomb-Scargle and friends) turn heart rate and motion into metrics — each carrying its own confidence and tier, and returning nothing rather than guessing when the data isn't there.
  • icons — the illustrated icon set the app ships with, as a standalone Flutter package.
  • research — the lab notebook. The protocol written down, plus a one-file Python client so you can talk to a band from a terminal.
  • backend — optional, and not required. A small self-hostable companion for importing an old cloud account and for opt-in telemetry. The app doesn't need it and doesn't use it by default.

Talk to us

Discord — questions, bug reports, band-specific weirdness, protocol reverse-engineering discussion.

A few honest notes

There are bugs. Please open issues as you find them and I'll work through them. A lot of the protocol — the events especially — is empirical guesswork, and no one person can confirm it to 100%. The more people poke at it, the closer we get to nailing every field down with real confidence.

The metrics are approximations built from published research, not medical-grade measurements. Nothing here is a diagnosis.

The people who built it

Contributors

Mostly by wearing it on a real wrist and reporting what came out wrong — which is genuinely the most useful thing anyone can do here, since there's one person's physiology in the test data otherwise.


☕ Like it? Help keep it going.

No subscription, no paywall, no company behind this.
If OpenStrap gave your band a second life, a small tip genuinely helps.

Bitcoin

bc1qvtcch38dcwp967ar764uu6eetw7tf907844wfq

EVM — Ethereum · Base · Arbitrum · Optimism · Polygon

0x8310C89393366b7eBCD47ABa82e1dfB5ECeFFbD9

What donations actually pay for →

Nothing is gated behind paying, and nothing ever will be.


Not affiliated with, endorsed by, or connected to WHOOP. "WHOOP" is their trademark, used only to say which device this talks to. MIT licensed.

Pinned Loading

  1. edge edge Public

    App which allows you to use your health devices beyond subscriptions. Supports Workout Tracking, Nutrition Tracking, Wellness Excercise, Sleep, Recovery, Strain, and Many more.

    Dart 679 123

Repositories

Showing 7 of 7 repositories
  • protocol Public

    Pure Dart wearable protocol decoder — WHOOP 4.0/5/MG, generic Bluetooth HR straps, and the Oura ring. Bytes off the device in, named records out. Zero deps, runs on-device.

    OpenStrap/protocol's past year of commit activity
    Dart 19 MIT 18 0 1 Updated Oct 10, 2026
  • analytics Public

    Recovery, strain, sleep and more — computed from a WHOOP band's raw sensor stream using published, cited methods only. Pure Dart, deterministic, nothing invented.

    OpenStrap/analytics's past year of commit activity
    Dart 11 MIT 24 0 1 Updated Oct 10, 2026
  • edge Public

    App which allows you to use your health devices beyond subscriptions. Supports Workout Tracking, Nutrition Tracking, Wellness Excercise, Sleep, Recovery, Strain, and Many more.

    OpenStrap/edge's past year of commit activity
    Dart 679 MIT 123 16 6 Updated Oct 10, 2026
  • .github Public

    OpenStrap: read your own wearable's data and compute recovery, strain, and sleep on-device, no subscription required. WHOOP today, more devices on the way.

    OpenStrap/.github's past year of commit activity
    1 1 0 0 Updated Oct 9, 2026
  • backend Public

    Optional companion worker for OpenStrap — legacy import, an update pointer, and opt-in telemetry. The app computes everything on-device and does not need this.

    OpenStrap/backend's past year of commit activity
    TypeScript 6 MIT 8 0 1 Updated Aug 30, 2026
  • research Public

    WHOOP 4.0 BLE protocol reference + a single-file reference client. Give a post-subscription strap a second life.

    OpenStrap/research's past year of commit activity
    Python 4 MIT 6 0 2 Updated Aug 29, 2026
  • icons Public

    Theme-aware soft-3D WebP icon set for OpenStrap, with a drop-in widget that resolves light/dark variants automatically. Standalone Flutter package.

    OpenStrap/icons's past year of commit activity
    Dart 2 0 0 0 Updated Aug 30, 2026

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Sponsors

  • Private Sponsor