package icon

Heart Rate Monitor

Monitor heart rate via BLE devices with real-time display, history, and alerts
New in version 4.8
- BLE optimization: use Kable's onServicesDiscovered callback to call requestMtu, negotiating a larger MTU (517) after connection — reduces heart rate data fragmentation and improves transfer reliability; automatically falls back to the default on negotiation failure without affecting the connection
- BLE optimization: call Kable's AndroidPeripheral.requestConnectionPriority once connected to request high connection priority (minimum connection interval), lowering heart rate notification latency
A lightweight heart rate monitoring app for Android, built with Jetpack Compose and Material 3. Connect to BLE heart rate monitors and track your heart rate in real time.

Features:

- Bluetooth LE heart rate monitoring: scan and connect to any BLE heart rate device
- Real-time heart rate display with animated heart icon
- Floating window overlay for always-on heart rate display
- Status bar heart rate indicator with auto color adaptation
- Heart rate history with chart analysis (powered by Vico)
- Heart rate alerts with posture detection (sitting/standing/exercising)
- HTTP server and WebSocket server for real-time data streaming
- Webhook support for pushing heart rate data to external services
- Favorite devices with auto-connect
- Fully customizable UI: colors, opacity, corner radius, size
- Material 3 design with dynamic color support (Android 12+)
- Fair memory management for Chinese OEM devices (vivo, Xiaomi, OPPO, Honor)
- Privacy-friendly: no tracking, no ads, no analytics

Open source under MIT License.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 4.8 (42) suggested Added on Aug 16, 2026

    arm64-v8a

    This version requires Android 7.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • run foreground service with the type "location"
      Allows the app to make use of foreground services with the type "location"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • This app can appear on top of other apps
      This app can appear on top of other apps or other parts of the screen. This may interfere with normal app usage and change the way that other apps appear.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.github.heartratemonitor_compose.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 5.3 MiB PGP Signature | Build Log

  • New in version 4.6
    - Fixed the issue where the liquid glass navigation bar drag indicator failed to switch pages due to expired Compose closures
    - Optimized the responsiveness of the drag indicator when the liquid glass navigation bar is enabled
    - Changed the top app bar to auto-hide mode (replaced pinnedScrollBehavior() with enterAlwaysScrollBehavior())
    - Added show/hide transition animations for setting cards
    - Stripped native symbols from libsgliteJni.so to reduce app package size
    - Redesigned the update check
  • Version 4.6 (40) - Added on Aug 12, 2026

    arm64-v8a

    This version requires Android 7.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • run foreground service with the type "location"
      Allows the app to make use of foreground services with the type "location"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • This app can appear on top of other apps
      This app can appear on top of other apps or other parts of the screen. This may interfere with normal app usage and change the way that other apps appear.
    • control vibration
      Allows the app to control the vibrator.
    • com.github.heartratemonitor_compose.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 5.1 MiB PGP Signature | Build Log

  • New in version 4.5
    - Fixed an issue where the heart rate card on the home screen still displayed old data from the last disconnection after Bluetooth was disconnected and quickly reconnected.
    - Fixed an issue where heart rate was not displayed after a successful connection. Previously, if heart rate subscription failed (e.g., the watch started broadcasting late, or some devices allowed searching and connecting before enabling heart rate broadcasting), the App would show "Connected" but the home screen/floating win
  • Version 4.5 (39) - Added on Aug 10, 2026

    arm64-v8a

    This version requires Android 7.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • run foreground service with the type "location"
      Allows the app to make use of foreground services with the type "location"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • This app can appear on top of other apps
      This app can appear on top of other apps or other parts of the screen. This may interfere with normal app usage and change the way that other apps appear.
    • control vibration
      Allows the app to control the vibrator.
    • com.github.heartratemonitor_compose.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 5 MiB PGP Signature | Build Log