Skip to content

Releases: NoopApp/noop

v2.6.4 — Tidier workout names, correct Rest duration

12 Jun 21:05

Choose a tag to compare

NOOP is an independent, offline WHOOP companion — not the WHOOP app, not affiliated with WHOOP.

Fixed

  • Workout names read as proper words. Names from your strap like TraditionalStrengthTraining now show as Traditional Strength Training — on the Today tiles, the Workouts breakdown cards and the session list, on Mac, iPhone and Android. Thanks @RichrdJ. (#175)
  • Intelligence "Rest" duration was an hour high. A 5h 39m night could show as 6h 39m because the hours were rounded up instead of truncated. It now matches the Sleep tab and dashboard exactly. Thanks @FrostDev7. (#180)

Downloads

  • macOS (universal, Intel + Apple Silicon, macOS 13+): NOOP-v2.6.4-macos.zip — or brew install --cask noopapp/noop/noop
  • iPhone (iOS 17+, sideload): NOOP-v2.6.4-ios.ipa — or add the AltStore source
  • Android (full): NOOP-v2.6.4-full.apk · (demo): NOOP-v2.6.4-demo.apk

v2.6.3 — Universal Mac build, iPhone import fix, AltStore source

12 Jun 20:44

Choose a tag to compare

NOOP is an independent, offline WHOOP companion — not the WHOOP app, not affiliated with WHOOP. It reads a strap you own, on your own device.

Fixed

  • Mac — runs on Intel again. The v2.6.x downloads were accidentally an Apple-Silicon-only build, so they couldn't launch on Intel Macs at all (Bad CPU type in executable). This release ships a true universal binary (x86_64 + arm64) that runs natively on both. Thanks @stnnnts. (#177, #165)
  • iPhone — data import works on sideloaded builds. The file picker was greying out the .zip when importing a WHOOP export or Apple Health export, so nothing could be selected. iOS now offers only the file types it can actually open. Thanks @adrnxq. (#179)

New

  • AltStore / SideStore source. Sideloaded iPhone installs can now get one-tap updates — add this as a source in AltStore or SideStore:
    https://raw.githubusercontent.com/NoopApp/noop/main/altstore-source.json
    
    Reimplemented from @RazvanRex. (#178)

Downloads

  • macOS (universal, Intel + Apple Silicon, macOS 13+): NOOP-v2.6.3-macos.zip — unsigned for anonymity; if Gatekeeper blocks it, see the install notes. Or brew install --cask noopapp/noop/noop.
  • iPhone (iOS 17+, sideload): NOOP-v2.6.3-ios.ipa — or add the AltStore source above.
  • Android (full): NOOP-v2.6.3-full.apk
  • Android (demo): NOOP-v2.6.3-demo.apk

v2.6.2 — iPhone button-label polish

12 Jun 18:56

Choose a tag to compare

NOOP v2.6.2 — a small iPhone UI fix.

Fixed (iPhone): action buttons that wrapped mid-word on a narrow screen — the Live screen's Re-scan / Buzz strap / Disconnect row and the Backup Export / Import / Export CSV row now keep each label on one line (shrinking to fit instead of breaking to one character per line). Thanks @marceauboul (#175).

Downloads

  • macOSNOOP-v2.6.2-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.6.2-ios.ipa
  • AndroidNOOP-v2.6.2-full.apk / NOOP-v2.6.2-demo.apk

v2.6.1 — Effort scale fix for imported data

12 Jun 18:48

Choose a tag to compare

NOOP v2.6.1 — a fix for v2.6.0's new Effort scale on imported data.

The 0–21 → 0–100 rescale that v2.6.0 introduced was defined but not actually wired up, so imported WHOOP Day Strain and workout strain stayed on the old 0–21 scale in storage while on-device Effort was 0–100. Now they share one 0–100 axis. NOOP's own CSV export writes Effort on WHOOP's 0–21 scale, so re-importing your own export round-trips losslessly.

Downloads

  • macOSNOOP-v2.6.1-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.6.1-ios.ipa
  • AndroidNOOP-v2.6.1-full.apk / NOOP-v2.6.1-demo.apk

v2.6.0 — Charge, Effort & Rest: NOOP's own scores, out of 100

12 Jun 18:21

Choose a tag to compare

NOOP v2.6.0 — Charge, Effort & Rest: NOOP's own daily scores, all out of 100.

NOOP now computes its own first-class daily scores on-device, across WHOOP 4.0 and 5.0/MG, from published sports-science methods — no WHOOP cloud:

  • Charge (was Recovery) — how recovered and ready you are. HRV-dominant, now folding in your resting heart rate, respiration, skin-temperature deviation, and your Rest score into one readiness number.
  • Effort (was Strain) — the day's cardiovascular + movement load. Same proven load curve, rescaled from 0–21 to 0–100.
  • Rest (was Sleep Performance) — last night's sleep quality, as a real composite: duration vs your need, efficiency, restorative (deep + REM) share, and consistency.

One consistent 0–100 axis, a clean energy-economy story (wake with Charge, spend it as Effort, rebuild it with Rest), imported WHOOP history rescaled to match. They're honest approximations from transparent methods — not WHOOP's scores.

Downloads

  • macOSNOOP-v2.6.0-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.6.0-ios.ipa (sideload via AltStore/SideStore)
  • AndroidNOOP-v2.6.0-full.apk / NOOP-v2.6.0-demo.apk

v2.5.0 — experimental WHOOP 5.0/MG deep-data unlock

12 Jun 17:23

Choose a tag to compare

NOOP v2.5.0 — experimental WHOOP 5.0/MG deep-data unlock.

New (experimental, opt-in)

A WHOOP 5.0/MG strap hands a fresh third-party app only live heart rate. The official app switches on the deeper streams (high-rate HR + motion + history) by writing a set of feature flags to the strap. NOOP can now send that exact, documented sequence — Settings → Experimental → "Unlock WHOOP 5/MG deep data (R22)", then one button when the strap is worn + bonded.

  • It writes to the strap (the only NOOP feature that does), but it's reversible — it only changes which data the strap emits — and it's the same thing the official app does on every connect.
  • iPhone / Android only — a Mac can't complete the bond needed to write to a 5/MG.
  • Experimental: it may do nothing on your firmware yet. If you own a 5/MG, turning it on and sharing your strap log on #174 is exactly what's needed to finish 5.0/MG support.

Built byte-for-byte on the public protocol work of judes.club, Asherlc/dofek and b-nnett/goose, and golden-tested on every platform.

Downloads

  • macOSNOOP-v2.5.0-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.5.0-ios.ipa (sideload via AltStore/SideStore)
  • AndroidNOOP-v2.5.0-full.apk / NOOP-v2.5.0-demo.apk

v2.4.0 — a small, honest ask

12 Jun 15:58

Choose a tag to compare

NOOP v2.4.0 — a small, honest ask.

New

  • A donation nudge, done politely (Mac, iOS, Android): a small card on the Today screen — at most once every 12 hours — with the honest numbers: a WHOOP membership runs $300–480 a year, for life; NOOP does this for free, built by one person; and 5,000+ downloads in, 7 people have donated. If NOOP is saving you a subscription, one month of it — or anything — genuinely keeps the project going. "Later" snoozes it 12 hours, "Don't ask again" turns it off permanently. It's a card in the flow, never a pop-over.
  • The stats in the card are baked in at release time — the app still makes zero network calls; the offline guarantee is unchanged.

Donations: https://github.com/NoopApp/noop/wiki/Donations 💚

Downloads

  • macOSNOOP-v2.4.0-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.4.0-ios.ipa (sideload via AltStore/SideStore)
  • AndroidNOOP-v2.4.0-full.apk / NOOP-v2.4.0-demo.apk

v2.3.2 — split sleep: every block counted, one night per day

12 Jun 15:48

Choose a tag to compare

NOOP v2.3.2 — split-sleep follow-up, implemented same-day from @FrostDev7's PR #173 (their third landed contribution).

Fixed

  • Every sleep block now counts (Mac/iOS) — on a Bluetooth-only setup (no import), a day recorded as multiple sleep blocks showed only one; the rest were silently hidden. All blocks are now read from both data sources.
  • One night per day — a split-sleep day (nap + main sleep, or a night the strap split into blocks) reads as a single ◀/▶ stop: totals summed, the real gap between blocks preserved in the hypnogram, and "N nights ago" counting days, not blocks. A night crossing midnight shows its span ("Fri 13 → Sat 14 Jun").
  • (Android already read both sources and resolved day totals correctly; its per-day grouping port follows.)

Downloads

  • macOSNOOP-v2.3.2-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.3.2-ios.ipa (sideload via AltStore/SideStore)
  • AndroidNOOP-v2.3.2-full.apk / NOOP-v2.3.2-demo.apk

v2.3.1 — skin temperature unblocked on Mac/iOS, export fixes

12 Jun 15:39

Choose a tag to compare

NOOP v2.3.1 — a patch release working through @tigercraft4's PR #97 code review (every finding actioned — it deserved a faster response than it got) and @sudden-break's logs on #156.

Fixed

  • Skin temperature unblocked on Mac and iOS — strap skin temp was read on the wrong scale (raw/128 instead of the firmware's centidegrees), which made every real night look impossibly cold and silently discarded it, so the nightly skin-temp deviation never appeared from strap data. Real nights now read correctly (matching Android, which always had it right), and your deviation builds after a few nights of wear. (#166)
  • Stale "layout v25/v26 … doesn't decode yet" warning (Mac/iOS strap log) no longer fires for layouts NOOP decodes. (#156)
  • CSV export hardening (all platforms): the "Awake duration (min)" column no longer carries the disturbance count (wrong unit); workouts present as both an import and an on-device detection export once; free-text fields are guarded against spreadsheet formula injection; and a failed export on macOS can no longer destroy your previous export file (atomic swap).

Downloads

  • macOSNOOP-v2.3.1-macos.zip, or brew upgrade --cask noop
  • iOSNOOP-v2.3.1-ios.ipa (sideload via AltStore/SideStore)
  • AndroidNOOP-v2.3.1-full.apk / NOOP-v2.3.1-demo.apk

Full notes: CHANGELOG.md

v2.3.0 — PPG-derived HR, ~4am day rollover, clearer terms

12 Jun 14:58

Choose a tag to compare

NOOP v2.3.0 — heart rate from the optical waveform, an early-morning day rollover, and clearer terms.

NOOP is an independent, offline, non-commercial interoperability project for a WHOOP strap you own. Not affiliated with WHOOP, Inc.

What's new

  • HR from the optical waveform (WHOOP 5.0/MG) — NOOP now derives a per-second heart rate from the strap's optical (PPG) waveform to fill gaps where a stored HR isn't available. Heart-rate continuity only — it does not reconstruct HRV — and a measured HR always takes priority over a derived one. (#156, thanks @j0b-dev)
  • Your day now rolls over at ~4am instead of midnight, so a late-night workout or a 1am glance counts toward the right day rather than resetting underneath you. (#144)
  • Split / nap sleep — nights with more than one sleep block are grouped by day, so each block shows and navigates correctly. (#160)
  • Android: "All other apps" notification toggle — under Notifications → Behaviour, buzz your wrist for any app that isn't in the curated list (e.g. BeReal). Opt-in, off by default; quiet hours and only-when-worn still apply. (#168)
  • Mac: chart fix — the Today heart-rate trend chart no longer bleeds its gradient down the page behind the cards beneath it.
  • Terms v1.1 — added plain-English, explicitly non-clinical notes for the Mind mood check-in, nutrition import, and the iOS "Export for Shortcuts" path. You'll be asked to re-acknowledge once on first launch.

Downloads

  • macOSNOOP-v2.3.0-macos.zip (unsigned; see the Troubleshooting wiki for the one-time Gatekeeper step), or brew install --cask noopapp/noop/noop
  • iOSNOOP-v2.3.0-ios.ipa (unsigned; sideload with AltStore/SideStore — see the wiki)
  • AndroidNOOP-v2.3.0-full.apk (full) or NOOP-v2.3.0-demo.apk (demo data, no strap needed)

Full notes: CHANGELOG.md