Heart rate is the most underrated productivity metric. Not because a higher heart rate means better work — but because heart rate variability and resting heart rate are strong proxies for stress, recovery, and readiness to do deep work. If your resting HR is 10 BPM above normal, you are probably not going to have a great coding day.
How BLE Heart Rate Works
Most fitness wearables — Whoop, Polar, Garmin, Apple Watch — broadcast heart rate over Bluetooth Low Energy using a standard GATT profile (Heart Rate Service, UUID 0x180D). Any device that advertises this service can be read by any BLE client. No proprietary API needed.
The xeve Mac app uses CoreBluetooth to scan for nearby devices advertising the Heart Rate Service. When it finds one, it connects and subscribes to the Heart Rate Measurement characteristic. Readings arrive as a stream of BPM values, typically once per second.
The iOS app does the same via CoreBluetooth, with the added benefit of background BLE support. It can maintain a connection even when the app is not in the foreground.
What Gets Recorded
Each heart rate sample is stored with a timestamp and BPM value in the heart_rate_logs table. The Mac app also detects which application was in the foreground at the time of each reading, creating a direct mapping between heart rate and activity.
This means you can answer questions like:
- What is my average heart rate while coding vs. while in meetings?
- Does my heart rate spike when I switch between apps frequently?
- Is my resting HR lower on days I exercise?
The Health Dashboard
Heart rate data appears on the Health page alongside HealthKit data (if the iOS app is also connected). The page shows:
- Real-time BPM — current heart rate if a monitor is connected
- Daily HR timeline — a line chart of BPM throughout the day
- Resting HR trend — your resting heart rate over weeks, useful for tracking fitness and recovery
- HR by activity — average heart rate broken down by app category (coding, browsing, communication)
Whoop-Specific Notes
Whoop broadcasts BLE heart rate when the sensor is in "broadcast mode." This is a setting in the Whoop app — once enabled, the strap advertises standard BLE heart rate data that xeve can read. You get the same HR data without needing Whoop's proprietary API or OAuth integration.
For Whoop recovery scores, strain, and sleep analysis, xeve has a separate OAuth integration on the roadmap. The BLE connection handles real-time heart rate; the API handles the derived metrics that Whoop's algorithms compute.
Battery Considerations
BLE heart rate connections are low power — the standard was designed for always-on fitness sensors. On macOS, keeping a BLE connection open adds negligible CPU and power usage. On iOS, background BLE does consume some battery, but Apple's CoreBluetooth framework is optimized for exactly this use case.
The Mac menu bar app shows a small heart icon with your current BPM when a monitor is connected. It is a nice ambient signal — a glance at your menu bar tells you both the time and your heart rate.