BETA · EARLY DAYS One person, active development. Expect bugs and changes. Please report errors or wishes.
Screens on this page are pulled from earlier builds. The live app may look a little different.

Live heart rate & HRV for streams and self.

Pair a chest strap. Stream it to OBS, or track your heart data over weeks and months. Android for 24/7 background sessions, Chromium browsers on the desktop. Offline or signed in, free, no subscription.

Browsers may throttle background tabs depending on settings. See the FAQ if you hit disconnects.

BPM
Heart rate high
78
HRV
42
MS RMSSD

Why this exists

This started as a personal project.

I was dealing with heart rate swings, high and low, that nobody seemed to take seriously. I wanted a quiet 24/7 way to record HR and HRV, then look back at the patterns myself over weeks and months.

I also stream and play games. I'd been using Pulsoid for the OBS widget and realised I wanted one app that did both. A streaming overlay and a long-term tracker off the same strap, free.

Two ways to use it

Stream it. Or study it.

Stream overlay

Drop the live widget into OBS two ways. Use a relay link as a browser source (nothing on your desktop), or capture a cropped window with chroma key if you'd rather keep everything local. Same visual either way.

Open monitor →

Session viewer

Review every past recording with autonomic interpretation, palpitation clusters, posture overlays, and month, week, or day timelines.

Open viewer →

Not a medical tool. Interpretations are estimated.

Signing in

Why sign in with Google?

Broadcasting and CSV export both work in either mode. Signing in is only about Drive sync. You can switch any time; existing sessions aren't tied to sign-in state.

Session viewer

Every session, together.

Each recording shows up in the viewer with the raw HR and RMSSD trace, autonomic interpretation, palpitation clusters, sympathetic flushes, posture and sleep windows. Multiple sessions from the same day stitch into a single day timeline so gaps, peaks, and warm-ups are all in one picture. Sync to Drive to see it across devices, or keep it all local.

Full session view with HR trace, RMSSD overlay, palpitation clusters, and a sympathetic flush tooltip
A full day of recording. Hover any spike for a tooltip, scrub the timeline, drill into any range.
Open viewer →

Zoom out

From months down to individual beats.

The viewer stacks the same data at multiple zoom levels so you can spot a pattern and then investigate it without losing the thread. Swap between session, day, week, month, or an all-time report with interpretive summary graphs whenever it helps.

Setup

Three steps.

01

Pair a chest strap

Any Bluetooth HR monitor that advertises service 0x180D. Works with Coospo, Polar, Wahoo, Garmin.

02

Open the app

Any Chromium browser on desktop for streaming and review. Android APK for background recording with the screen off.

03

Stream or review

Drop the widget into OBS as a browser source, or come back any time to analyse past sessions in the viewer.

Compatible straps

Bring your own strap.

Confirmed on the one we daily drive. The rest use the same standard BLE profile, so they should work. We haven't tested each one.

Coospo H808S
Tested · daily driver
Polar H10
Theoretical. Should work.
Wahoo TICKR
Theoretical. Should work.
Garmin HRM-Dual
Theoretical. Should work.
Apple Watch / Garmin Fenix / Fitbit
Not supported. No BLE HR service.
Tested Presumed Not supported

What's new

Recent updates

Loading updates…

On the phone

Pocket sized, fully live.

The mobile build keeps the same widget, same data, same broadcast, with its own compact UI and one-tap posture logging. Runs a foreground service so it doesn't sleep when the screen does. Meant for 24/7 recording.

Android app

Keeps streaming with the screen off, locked, or backgrounded. Native BLE, foreground service, Drive sync.

Not on the Play Store yet. You'll need to allow install from unknown sources and open the APK manually. Release-signed, so Google Drive works.

FAQ

Commonly faced issues.

What does HRV actually measure?

RMSSD, the beat-to-beat variation in the intervals between heartbeats. It tracks how the autonomic nervous system is balancing sympathetic and parasympathetic tone. Higher usually means more recovery and rest; lower usually means stress or fatigue.

For most people, resting RMSSD sits somewhere between 25 and 60 ms. Context matters more than the absolute number.

Which strap should I buy?

Any chest strap that advertises the standard Bluetooth heart rate service 0x180D. That covers every major brand. Coospo H808S is the one we use daily; Polar H10, Wahoo TICKR, and Garmin HRM-Dual follow the same profile.

Wrist watches like Apple Watch, Garmin Fenix, and Fitbit do not expose the BLE heart rate service to third-party apps. They won't work here.

Does it work without internet?

Yes, in offline mode. Once the page has loaded, recording works without a connection. Sessions stay on the device until you choose to export them.

Without internet, Drive sync pauses and the relay won't broadcast. Recording itself keeps going.

What's the most reliable setup for 24/7 recording?

The Android app. It runs a foreground service that keeps the BLE link, the CSV writer, and the Drive upload alive with the screen off, the app backgrounded, and the phone locked.

The web app works too, but different browsers have more aggressive throttling behaviour when a tab is backgrounded, which can pause the live stream. Keep the tab visible and the display awake for long desktop sessions.

Heads up: this is still in beta. Unexpected battery drain is possible while we stabilise the native pipeline, so toggle it off when you're done.

How do I install the Android app?

The app isn't on the Play Store yet. Tap the Android download card, accept the APK, and when Android asks, allow install from unknown sources just for your browser. The APK is release-signed, so Google Sign-In inside the app works normally.

A Play Store listing is planned once the product hits wider beta.

Why does Chrome go quiet if I leave the tab alone?

Chrome throttles background tabs to save battery. After a few minutes in the background, timers slow down and BLE delivery gets choppy. This is the browser doing its job, not a bug in the app.

If you need the tab to keep working while backgrounded, keep it focused, use a second monitor so it stays visible, or switch to the Android app which isn't subject to browser throttling.

Is my data private?

CSVs stay on your device, or in your own Google Drive when signed in. No server stores your data. The broadcast relay passes live ticks through to viewers and holds nothing.

Does the Android app drain the battery?

Streaming 24/7 with the screen off is possible. It holds a foreground-service notification and a partial wake lock so Android keeps the process alive.

Expect noticeably more battery use than idle, similar to any fitness tracking app. And because this is still in beta, the pipeline may occasionally get into a bad state and burn more than it should. Toggle off when you're done.

Is this a medical device?

No. It shows heart rate and a derived HRV estimate for personal and creative use. It is not a diagnostic tool and it does not replace clinical equipment or advice.

Can two people share one broadcast?

Each session has a unique broadcast key. Anyone you give the key to can watch the overlay in real time, but only one sender at a time publishes to a given key.

Free, built by one person.

No subscription, no ads. If this is useful and you want to help keep it that way, a tip makes a real difference.

Scan to tip via PayPal
Scan to tip

Get in touch

Bug, request, thought?

Drop a note. Goes straight to my inbox, no public tracker.