-
Notifications
You must be signed in to change notification settings - Fork 694
Installation
NOOP is available for macOS (pre-built), Android (pre-built APK), and iOS (build-from-source). Everything runs fully offline on your device — nothing leaves your machine.
| Platform | OS Version | Notes |
|---|---|---|
| macOS | 13.0 (Ventura) or newer | Intel or Apple Silicon. Requires Bluetooth. |
| Android | 8.0 (API 26) or newer | Requires Bluetooth LE. Physical device recommended (emulators have no BLE radio). |
| iOS | 16.0 or newer | Build-from-source only — see iOS below. Requires Bluetooth. |
The quickest path is the Homebrew cask:
brew tap noopapp/noop
brew trust noopapp/noop # required since Homebrew 6.0 (June 2026) — non-official taps must be trusted
brew install --cask noopThe brew trust step is mandatory as of Homebrew 6.0: Homebrew now refuses to install casks from non-official taps unless you explicitly trust them. Once installed, NOOP lives in /Applications/ and updates with brew upgrade --cask noop.
If you'd rather not use Homebrew, download the app manually below.
Grab the pre-built NOOP.app from Releases.
NOOP is not notarized by Apple. Notarization requires a paid Apple Developer ID tied to a real identity, which doesn't fit an anonymous, free project. The app is sandboxed and code-signed, the full source is here to inspect, but because it isn't notarized, macOS Gatekeeper will block it on first open. You may see a message saying the app is "damaged" or from an "unverified developer" — that's just the download quarantine flag, not real damage.
To open NOOP, pick one of these once:
- Drag
NOOP.appto your Applications folder. - Run this in Terminal (it removes the quarantine flag):
xattr -dr com.apple.quarantine /Applications/NOOP.app
- Open NOOP normally (e.g., from Spotlight or Applications).
On macOS Sequoia (15.x) the old right-click → Open shortcut was removed — the only no-Terminal route is through System Settings:
- Try to open NOOP — it'll be blocked by Gatekeeper. (On Sequoia the dialog only offers Done / Move to Trash; that's expected — just click Done.)
- Open System Settings → Privacy & Security and scroll to the bottom (the Security section).
- You'll see a line about NOOP being blocked, with an "Open Anyway" button next to it. Click it.
- Authenticate with Touch ID or your password if prompted, then confirm Open Anyway in the follow-up dialog.
macOS 14 (Sonoma) and earlier: you can also just right-click (or Control-click) the app → Open, then confirm. Apple removed that right-click bypass in Sequoia, so on 15.x use the System Settings → Open Anyway steps above.
Once you've done this once, the app opens normally from then on.
You can run the app from anywhere, but it's conventional to keep it in /Applications/ for easy access.
Unlike typical installers, NOOP is a self-contained bundle — just download and run. There's no separate "installation" step, installer, or uninstaller. To remove it, drag NOOP.app to the Trash.
NOOP ships two APKs from Releases:
| File | Purpose | Notes |
|---|---|---|
NOOP-full.apk |
The main app. Install this. |
minSdk 26 (Android 8+); works with or without a strap for exploring your data. |
NOOP-demo.apk (optional) |
Demo APK with preloaded sample data. | Installs alongside the full app. Great for exploring the UI without a strap or importing data. Same app ID prefix, so they coexist. |
-
Enable "Install unknown apps" on your device:
- Settings → Apps & notifications → Advanced → Special app permissions → Install unknown apps (or similar, depending on your Android version).
- Grant your web browser or file manager permission to install apps.
-
Download and open the APK (or sideload it via
adb):# On your computer with ADB: adb install NOOP-full.apk -
Open the installed app from your app drawer (search for NOOP).
NOOP asks for Bluetooth permissions on first run (API 31+, i.e. Android 12+). On older versions, Bluetooth is install-time. The app declares no INTERNET permission by design — nothing ever leaves your device.
| Permission | Why |
|---|---|
BLUETOOTH_SCAN |
Scan for your strap over Bluetooth. |
BLUETOOTH_CONNECT |
Connect to and communicate with your strap. |
FOREGROUND_SERVICE |
Keep collecting data while the app is backgrounded. |
iOS does not have a download. There is no iOS app in Releases, and there never will be: iOS has no anonymous app distribution path — both the App Store and TestFlight require a real Apple Developer identity — so shipping an iOS binary would compromise NOOP's anonymity. iOS is therefore build-from-source only.
The iOS app is part of main — the NOOPiOS and NOOPiOSWidgets targets are already defined in project.yml, and it shares the same analytics code as macOS, so results match. It's newer and less battle-tested than the macOS and Android apps (live BLE on a real iPhone is still being validated), but it builds and runs today. Build instructions live in docs/IOS.md.
- Anonymity: No account tied to the app, no App Store / TestFlight identity.
- Full control: You build it yourself, inspect the source, and install it on your device.
-
Shared code: The core logic (
WhoopProtocol,WhoopStore,StrandAnalytics,StrandImport,StrandDesign) all declare.iOS(.v16)and compile unchanged, so iOS gets the same features as macOS.
-
Clone the repo:
git clone https://github.com/NoopApp/noop.git cd noop -
Generate the Xcode project with XcodeGen, then open it and build the
NOOPiOStarget for your device — seedocs/IOS.mdfor the detailed steps.
For full instructions, hardware notes, and how to set up HealthKit two-way sync (read from + write to Apple Health), see docs/IOS.md.
Prefer to build NOOP yourself instead of using the pre-built app? See docs/BUILD.md for:
- macOS: Generating the Xcode project with XcodeGen, building, and the ad-hoc signing process.
- Android: Prerequisites, Gradle setup, and APK assembly.
-
iOS: Generating the project with XcodeGen and building the
NOOPiOStarget (build-from-source only).
Once installed, here's what to expect:
NOOP reads data directly from your strap over Bluetooth Low Energy — no WHOOP account needed. To pair:
-
Live Heart Rate (works immediately) — this rides the standard Bluetooth heart-rate profile and streams even without a full bond.
-
Full bond (for deeper features like recovery, strain, sleep, history offload) — the strap holds an encrypted bond with only one device at a time. If it's bonded to the official WHOOP app on your phone, NOOP can't bond until you free it:
- Close or fully quit the official WHOOP app on your phone (or turn Bluetooth off on that phone).
- Put your strap in pairing mode.
- In NOOP, go to Live → Select your strap type → Scan & Connect.
You can explore NOOP's full UI without a strap:
- macOS, Android & iOS: Import a WHOOP CSV export or Apple Health export via Data Sources. Your full history loads in about a minute.
-
Android demo APK: The demo app (
NOOP-demo.apk) comes preloaded with sample data — no import needed, just explore.
- Live heart rate — shows the moment the strap connects.
- Strain & sleep — appear after you've worn the strap and it syncs (the last ~14 days offload automatically).
- Recovery — needs a few nights to learn your personal baseline, then refines each night.
- In a hurry? Import your WHOOP export or Apple Health data and your history fills in immediately.
The app is fully featured on macOS, Android, and iOS. See Features for the complete breakdown: Today, Live, Sleep, Trends, Workouts, Insights, Compare, Health, the AI Coach (optional, BYOK — Anthropic, OpenAI, or a local/self-hosted LLM that keeps everything on-device), and more.
For detailed information on WHOOP 4.0 vs. 5.0/MG support, pairing troubleshooting, and the bond-handling quirks (especially on 5.0), see Strap Support and Pairing.
Everything runs on your device, offline. The only feature that can ever use the network is the optional AI Coach, and only if you bring your own API key for Anthropic, OpenAI, or a local/self-hosted OpenAI-compatible LLM (e.g. Ollama / LM Studio). With a local endpoint, nothing leaves the device at all; with a cloud key, it sends only a brief text summary of your recent metrics, never raw data or identifiers.
See Privacy and Security for the full privacy story.
- Read the basics: See How NOOP Works to understand what NOOP computes and how.
- Troubleshoot connection issues: Check Strap Support and Pairing.
- Get in touch: Questions or bugs? Email thenoopapp@gmail.com.
- Support the project: Donations are optional but deeply appreciated. See Donations or the in-app Support screen for crypto addresses.
NOOP is an independent, unofficial, non-commercial interoperability project — not affiliated with, endorsed by, or sponsored by WHOOP, Inc. "WHOOP" is a trademark of WHOOP, Inc., used nominatively. Works only with a device you own; not a medical device; every metric is an approximation, not medical advice. · Privacy and Security · Donations · Releases