Skip to content

Roadmap

NoopApp edited this page Jun 10, 2026 · 2 revisions

Roadmap

NOOP is a single-person project built and maintained out of pocket. What ships next — and whether the project continues at all — depends on community support and donations. This roadmap outlines the direction the project is heading, what's in progress, and what's deferred. Everything here is shaped by the constraint that NOOP stays offline by design, free forever, and funded by optional donations.


Top priorities

1. WHOOP 5.0 / MG recovery, strain, and sleep (#1 blocking feature)

Status: Live heart rate works on real hardware. Deeper metrics still experimental.

WHOOP 5.0 / MG is the newest hardware, but NOOP still computes recovery, strain, and sleep only on WHOOP 4.0. The 5/MG protocol is more complex and requires dedicated reverse-engineering work to decode the biometric streams (the historical records that feed sleep staging and recovery scoring).

What's needed:

  • Real 5/MG owners to capture and contribute decoded frames (Settings → Experimental → "Record puffin frames"), sharing them via thenoopapp@gmail.com.
  • Hardware testing on actual 5/MG straps to validate each decode layer (gravity/motion for sleep, heart-rate variability for recovery, etc.).
  • Funding to purchase test hardware so reverse-engineering can move faster.

Blockers: This requires real WHOOP 5/MG hardware and willing contributors to capture frames. If you own one and want to help, turn on frame capture in Settings.


2. GPS-tracked workouts on Android

Status: Not started.

Android users can see imported workouts and manually-tracked workouts. The next step is to use the phone's GPS to capture workout routes and distance — filling in a gap the strap itself can't provide because it has no location hardware.

What's involved:

  • Android-native GPS collection (respecting background/location-permission constraints).
  • Integration with the live-workout session tracking so route/distance is available alongside HR strain.

Blockers: None — this is pure Android engineering. Contributions welcome.


3. Steps surfaced in the UI (Mac + Android)

Status: ✅ Shipped on Android (v1.82) — the Today screen now shows Steps, Calories and Weight tiles (Weight falls back to your profile figure). macOS surfacing to follow.

NOOP already decodes and stores step counts from the strap's accelerometer (WHOOP 5.0) and from imported Apple Health / Health Connect. The data lives in the database but isn't surfaced in the UI yet — the steps tile stays dark while the field is validated against the official app's readings.

What's next:

  • Validation that on-device step counts match the strap's own display.
  • Light UI surfacing (a steps tile on Today, a steps row in the Health screen).

Blockers: Needs real strap data + comparison against official app to confirm the decoder is right.


4. Gemini AI-Coach provider

Status: ✅ Shipped in v1.82 (macOS). OpenAI (GPT), Anthropic (Claude), and now Google Gemini are all available as bring-your-own-key AI Coach providers.

Today NOOP's optional AI Coach works with OpenAI (GPT) and Anthropic (Claude) — you bring your own API key, and NOOP sends only a short text summary of recent metrics plus your question (never raw streams or identifiers). Adding Google Gemini as a provider gives users another choice.

What's involved:

  • Wiring the Gemini API client (Google provides SDKs for macOS and Android).
  • Reusing the existing prompt/summary logic so UX stays identical.

Blockers: None. This is a straightforward third-party API integration.


5. Tighter sleep detection and clearer sync indicator

Status: Sleep detection works but uses approximations. Sync indicator landed in v1.68+.

NOOP's sleep stager is on-device and approximate — it runs a 4-class model (wake, light, deep, REM) on gravity + heart-rate variability, which is clever but not as accurate as the official app's (which has cloud data and calibration). Improving on-device sleep detection is ongoing work as more hardware captures validate the algorithm.

The sync indicator (showing "History synced N ago" or "Syncing..." pills) shipped in v1.68 and works on both platforms — users now see whether history is fresh or stalled.

What's next:

  • Contributor testing on diverse hardware to surface edge cases in the stager.
  • Incremental refinement to the stage-detection thresholds as real data patterns emerge.

Blockers: Needs real-world strap captures and feedback.


Planned, experimental, or deferred

Other platforms

Windows (planned)

A native Windows desktop client using the same core libraries. The protocol (whoop_protocol.json) and math (StrandAnalytics) are language-agnostic, so the work is a Windows BLE stack + UI implementation matching the macOS reference.

Blockers: Requires Windows BLE expertise and sustained work. Funding helps prioritize this.

Android (shipped)

A full native Kotlin/Gradle app lives under android/ — it pairs, offloads, persists, and scores on-device. Pre-built APKs are in Releases. Real-hardware testing across more devices is always welcome (emulators can't reach physical straps).

iOS (experimental community port, PR #42)

An experimental, build-from-source-only port with app + widgets + HealthKit. Not officially maintained or distributed — iOS has no anonymous distribution path (App Store / TestFlight both require a real Apple Developer identity), which conflicts with NOOP staying anonymous. Every core package already declares .iOS(.v16) and guards UI framework code, so the non-UI core compiles for iOS; contributors can build it for their own device. See docs/IOS.md for the detailed plan.


Deferred ideas

These are scoped but intentionally not built yet. They're listed so contributors know the direction before investing time:

Live PPG scope (optical waveform viewer)

Surface the strap's raw optical (PPG) stream as a live diagnostic view. The plumbing exists (startRawData, the type-43 realtime-raw flood), but a stable, useful live scope is deferred pending UI/UX clarity.

Steps via IMU (on-device step detection)

Derive step count on-device from the strap's accelerometer instead of relying on imported Apple Health. The IMU toggle exists, but a production-ready algorithm is deferred.

Live notification mirror (haptic cues for macOS notifications)

An opt-in, bounded watcher to mirror selected macOS notifications to a haptic cue on the strap — strictly local, no general-purpose notification scraping. Deferred for scope.

Local on-device AI coach

An offline, on-device assistant (not cloud-based) that reasons over your own series (recovery / strain / sleep / HRV trends) to produce plain-language guidance. Hard constraint: must stay fully offline and local. Deferred pending research into lightweight models that fit the privacy model.


How the roadmap is funded

NOOP is free forever. There are no paywalls, no features locked behind payment, no "pro" tier. That's not changing.

But honest reality: NOOP is built by one person, out of pocket. Reverse-engineering WHOOP hardware, keeping up as firmware changes, purchasing test hardware, and maintaining cross-platform support takes real time and money.

Donations fund:

  • Test hardware (new WHOOP 5/MG straps, Android devices, Windows machines for porting).
  • Time for priority work (WHOOP 5/MG full recovery/strain/sleep, Windows build, protocol maintenance).
  • Ongoing reverse-engineering and validation against real straps.

If donations don't cover costs, the project can't continue. If they do, it keeps going — and roadmap items move into development.

How to donate

Donations are optional, one-off, and crypto-only (for anonymity on both ends). Pick the address for a coin you already hold:

Coin Network Address
BTC Bitcoin bc1qn2gkl7wslwpws06mvazjn2uu689zlkv7kg3kf5
ETH Ethereum 0xd64D508b531c4b1297Ca4023C774e0E97aA67B7F
ADA Cardano addr1qxsju3y0mlke2h6h2g6qgnq4r3jstngtyjxs0nnp5zrv28zv8p5rgzruxyjz33j9k23pffta8z639e2snjdd4vcetfqsn4vwr3
XRP XRP Ledger rpvijHi2nVY9WWAJhojsAX5tJmHdmLtFhq

Each address also has a scan-to-donate QR code in the app under Support. See Donations for more detail.

Can't or would rather not? Also genuinely valued: star the repo, file good bug reports, share strap logs, test on your hardware, or tell another WHOOP user. That moves NOOP forward too.


What's blocked and why

WHOOP 5.0 / MG deeper metrics (recovery, strain, sleep)

The 5/MG protocol is still being reverse-engineered. Live HR works and is confirmed on real hardware, but the biometric streams that power recovery / strain / sleep scoring are not yet fully decoded. This is the #1 blocking feature because it affects the newest hardware.

Unblock: Real 5/MG owners capture frames (Settings → Experimental), and we validate the decodes. Donations fund dedicated test hardware.

Windows build

Requires a developer with Windows BLE + UI expertise willing to work without upfront payment. Donations make this feasible as part-time or full-time work.


What's in development (per release notes)

See Changelog for the full history. Recent work includes:

  • v1.69+: Cleaner sync status, health-connect parity, sleep figures display.
  • v1.68: Sleep figures, HR zones, charging indicator, recovery cold-start UI, sync status.
  • v1.65-67: Manual workout tracking, Android battery/sync, Android history fixes.

The CHANGELOG documents every fix, every feature, and every platform-specific limitation as it lands.


Contributing to the roadmap

NOOP is open to contributions. If you want to work on a roadmap item:

  1. Open an issue to discuss what you want to build (especially for BLE / protocol changes — safety rules apply).
  2. Follow Contributing — it covers ground rules, code conventions, the BLE safety contract, and how to add features safely.
  3. Test on real hardware where it matters (BLE changes, analytics, sleep detection).
  4. Credit upstream: The protocol work stands on community reverse-engineering (johnmiddleton12/my-whoop, b-nnett/goose).

Disclaimer

NOOP is an independent, unofficial, non-commercial interoperability project. It is not affiliated with, endorsed by, or connected to WHOOP, Inc. "WHOOP" is used only nominatively to identify the hardware. NOOP works only with a device you own.

NOOP is not a medical device. Every derived metric (HR, HRV, recovery, strain, sleep, SpO₂, respiration, skin temperature) is an approximation, not a clinical reading. Do not use them to diagnose, treat, or make health decisions. See Privacy and Security and Disclaimer for full detail.


Questions, feedback, or bug reports? thenoopapp@gmail.com

Clone this wiki locally