Releases: NoopApp/noop
v2.6.4 — Tidier workout names, correct Rest duration
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
TraditionalStrengthTrainingnow 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— orbrew 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
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
.zipwhen 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:
Reimplemented from @RazvanRex. (#178)
https://raw.githubusercontent.com/NoopApp/noop/main/altstore-source.json
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. Orbrew 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
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
- macOS —
NOOP-v2.6.2-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.6.2-ios.ipa - Android —
NOOP-v2.6.2-full.apk/NOOP-v2.6.2-demo.apk
v2.6.1 — Effort scale fix for imported data
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
- macOS —
NOOP-v2.6.1-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.6.1-ios.ipa - Android —
NOOP-v2.6.1-full.apk/NOOP-v2.6.1-demo.apk
v2.6.0 — Charge, Effort & Rest: NOOP's own scores, out of 100
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
- macOS —
NOOP-v2.6.0-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.6.0-ios.ipa(sideload via AltStore/SideStore) - Android —
NOOP-v2.6.0-full.apk/NOOP-v2.6.0-demo.apk
v2.5.0 — experimental WHOOP 5.0/MG deep-data unlock
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
- macOS —
NOOP-v2.5.0-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.5.0-ios.ipa(sideload via AltStore/SideStore) - Android —
NOOP-v2.5.0-full.apk/NOOP-v2.5.0-demo.apk
v2.4.0 — a small, honest ask
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
- macOS —
NOOP-v2.4.0-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.4.0-ios.ipa(sideload via AltStore/SideStore) - Android —
NOOP-v2.4.0-full.apk/NOOP-v2.4.0-demo.apk
v2.3.2 — split sleep: every block counted, one night per day
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
- macOS —
NOOP-v2.3.2-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.3.2-ios.ipa(sideload via AltStore/SideStore) - Android —
NOOP-v2.3.2-full.apk/NOOP-v2.3.2-demo.apk
v2.3.1 — skin temperature unblocked on Mac/iOS, export fixes
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
- macOS —
NOOP-v2.3.1-macos.zip, orbrew upgrade --cask noop - iOS —
NOOP-v2.3.1-ios.ipa(sideload via AltStore/SideStore) - Android —
NOOP-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
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
- macOS —
NOOP-v2.3.0-macos.zip(unsigned; see the Troubleshooting wiki for the one-time Gatekeeper step), orbrew install --cask noopapp/noop/noop - iOS —
NOOP-v2.3.0-ios.ipa(unsigned; sideload with AltStore/SideStore — see the wiki) - Android —
NOOP-v2.3.0-full.apk(full) orNOOP-v2.3.0-demo.apk(demo data, no strap needed)
Full notes: CHANGELOG.md