IPARR

Apps / Altmaker by RipeStore

Edge

OpenStrap, from Altmaker by RipeStore

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

Version
0.10.0
Released
Sep 25, 2026
Size
18.5 MB
Needs iOS
15.0 or later
Category
Lifestyle
Bundle ID
com.example.openstrapEdge

Screenshots

Screenshot 1 of EdgeScreenshot 2 of EdgeScreenshot 3 of EdgeScreenshot 4 of EdgeScreenshot 5 of Edge

What's new in 0.10.0

What's new:

Attempt at many-device support — a bunch of new bands/watches/rings can pair now, sync depth varies by device.

WHOOP MG heart screener — capture + history for the ECG reading, hook into AI coach analysis.

Alarms that actually work — weekly schedule, safety notification if it doesn't latch, smart wake window.

Misc bug fixes and other small stuff.

• readme: stop framing the whole app as WHOOP-only.
• i18n(es): translate the 29 strings missing from app_es.arb.
• fix ASK picker crash + iOS 17 launch crash.
• fix iOS 17 launch crash from AccessorySetupKit.
• feat(alarm): weekly schedule + latch-failure & 7pm no-alarm safety notifications.
• Any-wearable multi-device support.
• colmi ring: pairs-only support.
• fossil/skagen q hybrid: pair and bank raw bytes, pairs-only.
• pinetime: pairs and banks raw data.
• jyou band: pairs and banks raw data, decodes nothing yet.
• hplus generic hr band, pairs-only.
• lefun ring/band: pairs and connects, reports nothing yet.
• dt78/dt92/dt66: pairs-only support.
• ringconn: pair + drain, raw archive only.
• wearfit band support (howear hk8 ultra / hk8 pro max).
• mykronoz zetime: pairs and connects, battery only.
• o2ring: pair, connect, bank raw bytes.
• dafit/moyoung support: pairs and banks raw bytes, no decode.
• tlw64/no1 f1: pairs and banks raw data, decodes nothing yet.
• watch9: pairs and banks raw data, decodes nothing yet.
• xwatch: pairs and banks raw data, decodes nothing yet.
• smaq2oss: pairs and banks raw data, decodes nothing yet.
• id115: pairs and banks raw data, decodes nothing yet.
• makibeshr3: pairs and banks raw data, decodes nothing yet.
• pebble 2/2se: pairs-only support.
• mi band 2/3/4: pairs-only support.
• withings steel hr: pairs-only support.
• bangle.js: pairs-only support.
• ultrahuman ring air: pair + drain, raw archive only.
• garmin sports watch pairing.
• add coros sports watch support.
• add r11m/r10m smart ring support.
• polar pmd: pair + stream ppi from a verity sense or oh1.
• feat: show selected chart slot with a vertical cursor.
• fix: hold the beat axis non-decreasing (sleep staging threw on 6 of 8 days), bump kAlgoVersion to 88; quiesce ingest during a data reset.
• Improve AI coach reliability: configurable timeouts, Keychain recovery, and in-flight request survival.
• Live HR/IMU stream ownership reconciler (#287).
• Fix movement-floor DST bug and coach API-key reuse across endpoint changes.
• fix gen4-default ratchet count (drifted from retired sites).
• show band battery on home.
• gpx export for recorded routes (manual strava upload).
• make interval work/rest/rounds configurable.
• steps: phone confirmed-zero hours veto wrist false positives.
• add day switcher to home screen.
• add altstore source for ios sideload update checks.
• hr zone crossing buzz in live workouts.
• add lab-results csv import.
• respect imperial units for strength weight.
• fix oura link test's real-time flake under full-suite CI.
• smart wake window.
• gate the live event write behind resetgate.
• fix strain/calories/zone minutes resetting to 0 after a hard-kill relaunch mid-workout.
• sleep detail: link to naps, fix stale comment.
• add siri/shortcuts intent to enable tomorrow's alarm.
• let you set your own hr zones (#304).
• add an honest vo2max estimate.
• fix cold-launch race in the alarm siri intent (#392 follow-up).
• fix manual hr zone crash (double.infinity.round).
• gate _onEngineState behind resetgate too.
• fix Typed.of accepting Infinity/NaN as valid numbers.
• fix fabricated resting-hr note on manual zones.
• fix manual hr zone floor check.
• fix skin_temp_z missing quantum floor.
• smart wake: cover the armed alarm's own window, not just habitual wake.
• mirror the alarm-confirm self-heal in headless sync.
• fix exportWorkout/exportAll workout export race.
• fix: signal priority resolver drops devices paired after custom ranking.
• high freq wake window: fix DST-unsafe next-day arithmetic.
• fix: NaN lat/lng slip past healthkit route import guard.
• ios: stop re-arming forgotten bands on restore.
• coach: validate date in log_journal/log_period too.
• fix: whoop import stops clobbering same-day csv files.
• fix: workouts list distance ignores imperial unit setting.
• fix: theme toggle never synced to watch.
• fix: atomic db-backed slot allocation for notification ids.
• fix: widget push race can interleave two snapshots.
• fix: guard against NaN/out-of-range lat-lng in gpx export.
• fix: smart wake silently no-ops on null accel rows.
• coach: close recursive-CTE DoS in the SQL guard.
• fix: live workout invisible to overlap check, could double-book.
• fix: cycle-day math off by one across DST.
• fix: stopWorkout leaves stale workout suggestions behind.
• fix cloud importer overcounting already-measured days.
• fix controller leak in add-lab-result dialog.
• coach: reject calendar-invalid dates in day.
• stress index: gap-aware nnTimesMs wiring, kAlgoVersion 92.
• fix: metric detail preferred device caption misses coverage-only devices.
• gps: route zoneForHr through the shared HeartRateZoneSet.
• fix: workout import reports deleted workouts as brought in.
• repin analytics for hrv-freq welch gap guard, kAlgoVersion 92->93.
• ai reminders: cap/refuse evening and morning slots inside quiet hours.
• bump kAlgoVersion 93, repin analytics for overreaching rhr guard.
• fix telemetry flush dropping unsent records on outbox trim race.
• fix notif id mirror never pruned on healthy DB path.
• fix: oura_link_test flakes under CI load, use deterministic wait instead of wall-clock margin.
• fix torch state desync on failed hardware toggle.
• fix: keyless local endpoints were sending Bearer null.
• fix: route tracker can silently drop gps tail on stop.
• fix live activity restart race.

• crossday: guard glassbox SWC gate against quantized rhr/temp.
• fix medSlotInstant DST drift.
• fix: accel1Hz/ppgRedIr/skinTempRaw priority never applied at derive time.
• fix: BLE notify exceptions, cycle_screen mounted guards, O(n^2) baseline scan.
• Add a Home entry point to the AI briefing screen.
• WHOOP MG Heart Screener: ECG capture, store, history and coach reading.
• ios: wake on band prompts instead of holding a 1 Hz HR stream in background.
• repin analytics for temp_circadian zero-variance fix, kAlgoVersion 96->97.

New Contributors:

• @Nico-Ferrero made their first contribution.
• @RiffRaff4469 made their first contribution.
• @highdeftant made their first contribution.
• @gentbot made their first contribution.
• @OsamaMahmood made their first contribution.

• readme: stop framing the whole app as WHOOP-only.
• i18n(es): translate the 29 strings missing from app_es.arb.
• fix ASK picker crash + iOS 17 launch crash.
• fix iOS 17 launch crash from AccessorySetupKit.
• feat(alarm): weekly schedule + latch-failure & 7pm no-alarm safety notifications.
• Any-wearable multi-device support.
• colmi ring: pairs-only support.
• fossil/skagen q hybrid: pair and bank raw bytes, pairs-only.
• pinetime: pairs and banks raw data.
• jyou band: pairs and banks raw data, decodes nothing yet.
• hplus generic hr band, pairs-only.
• lefun ring/band: pairs and connects, reports nothing yet.
• dt78/dt92/dt66: pairs-only support.
• ringconn: pair + drain, raw archive only.
• wearfit band support (howear hk8 ultra / hk8 pro max).
• mykronoz zetime: pairs and connects, battery only.
• o2ring: pair, connect, bank raw bytes.
• dafit/moyoung support: pairs and banks raw bytes, no decode.
• tlw64/no1 f1: pairs and banks raw data, decodes nothing yet.
• watch9: pairs and banks raw data, decodes nothing yet.
• xwatch: pairs and banks raw data, decodes nothing yet.
• smaq2oss: pairs and banks raw data, decodes nothing yet.
• id115: pairs and banks raw data, decodes nothing yet.
• makibeshr3: pairs and banks raw data, decodes nothing yet.
• pebble 2/2se: pairs-only support.
• mi band 2/3/4: pairs-only support.
• withings steel hr: pairs-only support.
• bangle.js: pairs-only support.
• ultrahuman ring air: pair + drain, raw archive only.
• garmin sports watch pairing.
• add coros sports watch support.
• add r11m/r10m smart ring support.
• polar pmd: pair + stream ppi from a verity sense or oh1.
• feat: show selected chart slot with a vertical cursor.
• fix: hold the beat axis non-decreasing (sleep staging threw on 6 of 8 days), bump kAlgoVersion to 88; quiesce ingest during a data reset.
• Improve AI coach reliability: configurable timeouts, Keychain recovery, and in-flight request survival.
• Live HR/IMU stream ownership reconciler (#287).
• Fix movement-floor DST bug and coach API-key reuse across endpoint changes.
• fix gen4-default ratchet count (drifted from retired sites).
• show band battery on home.
• gpx export for recorded routes (manual strava upload).
• make interval work/rest/rounds configurable.
• steps: phone confirmed-zero hours veto wrist false positives.
• add day switcher to home screen.
• add altstore source for ios sideload update checks.
• hr zone crossing buzz in live workouts.
• add lab-results csv import.
• respect imperial units for strength weight.
• fix oura link test's real-time flake under full-suite CI.
• smart wake window.
• gate the live event write behind resetgate.
• fix strain/calories/zone minutes resetting to 0 after a hard-kill relaunch mid-workout.
• sleep detail: link to naps, fix stale comment.
• add siri/shortcuts intent to enable tomorrow's alarm.
• let you set your own hr zones (#304).
• add an honest vo2max estimate.
• fix cold-launch race in the alarm siri intent (#392 follow-up).
• fix manual hr zone crash (double.infinity.round).
• gate _onEngineState behind resetgate too.
• fix Typed.of accepting Infinity/NaN as valid numbers.
• fix fabricated resting-hr note on manual zones.
• fix manual hr zone floor check.
• fix skin_temp_z missing quantum floor.
• smart wake: cover the armed alarm's own window, not just habitual wake.
• mirror the alarm-confirm self-heal in headless sync.
• fix exportWorkout/exportAll workout export race.
• fix: signal priority resolver drops devices paired after custom ranking.
• high freq wake window: fix DST-unsafe next-day arithmetic.
• fix: NaN lat/lng slip past healthkit route import guard.
• ios: stop re-arming forgotten bands on restore.
• coach: validate date in log_journal/log_period too.
• fix: whoop import stops clobbering same-day csv files.
• fix: workouts list distance ignores imperial unit setting.
• fix: theme toggle never synced to watch.
• fix: atomic db-backed slot allocation for notification ids.
• fix: widget push race can interleave two snapshots.
• fix: guard against NaN/out-of-range lat-lng in gpx export.
• fix: smart wake silently no-ops on null accel rows.
• coach: close recursive-CTE DoS in the SQL guard.
• fix: live workout invisible to overlap check, could double-book.
• fix: cycle-day math off by one across DST.
• fix: stopWorkout leaves stale workout suggestions behind.
• fix cloud importer overcounting already-measured days.
• fix controller leak in add-lab-result dialog.
• coach: reject calendar-invalid dates in day.
• stress index: gap-aware nnTimesMs wiring, kAlgoVersion 92.
• fix: metric detail preferred device caption misses coverage-only devices.
• gps: route zoneForHr through the shared HeartRateZoneSet.
• fix: workout import reports deleted workouts as brought in.
• repin analytics for hrv-freq welch gap guard, kAlgoVersion 92->93.
• ai reminders: cap/refuse evening and morning slots inside quiet hours.
• bump kAlgoVersion 93, repin analytics for overreaching rhr guard.
• fix telemetry flush dropping unsent records on outbox trim race.
• fix notif id mirror never pruned on healthy DB path.
• fix: oura_link_test flakes under CI load, use deterministic wait instead of wall-clock margin.
• fix torch state desync on failed hardware toggle.
• fix: keyless local endpoints were sending Bearer null.
• fix: route tracker can silently drop gps tail on stop.
• fix live activity restart race.

• crossday: guard glassbox SWC gate against quantized rhr/temp.
• fix medSlotInstant DST drift.
• fix: accel1Hz/ppgRedIr/skinTempRaw priority never applied at derive time.
• fix: BLE notify exceptions, cycle_screen mounted guards, O(n^2) baseline scan.
• Add a Home entry point to the AI briefing screen.
• WHOOP MG Heart Screener: ECG capture, store, history and coach reading.
• ios: wake on band prompts instead of holding a 1 Hz HR stream in background.
• repin analytics for temp_circadian zero-variance fix, kAlgoVersion 96->97.

New Contributors:

• @Nico-Ferrero made their first contribution.
• @RiffRaff4469 made their first contribution.
• @highdeftant made their first contribution.
• @gentbot made their first contribution.
• @OsamaMahmood made their first contribution.

About

Openstrap Edge:

An app that makes your wearable useful without its subscription. Pairs over Bluetooth, computes everything on your phone, iOS and Android. WHOOP 4/5/MG get full support today; see Supports for what else it talks to.

Not affiliated with WHOOP. Not a clone of their app or their scores — see below.

As featured in:

"The goal of the so-called OpenStrap project is not to re-create the WHOOP app. Rather, the algorithms and processing methods are developed from scratch, based on public research… The health data collected from the watch never leaves the phone.".

— Hackaday, 15 July 2026.

Share or follow

Add Altmaker by RipeStore to AltStore SideStore Feather KSign LiveContainer