GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com โ€” GitHub - saksham2001/PulseLoopiOS: A privacy-first, subscription-free health tracker for affordable wearables.

BranchesTags
Open more actions menu

Latest commit

 

History

443 Commits
443 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
PulseLoop.xcodeproj
PulseLoop.xcodeproj
 
 
PulseLoop
PulseLoop
 
 
PulseLoopLiveActivity
PulseLoopLiveActivity
 
 
PulseLoopTests
PulseLoopTests
 
 
PulseLoopWidgets
PulseLoopWidgets
 
 
docs
docs
 
 
screenshots
screenshots
 
 
scripts
scripts
 
 
tasks
tasks
 
 
.gitignore
.gitignore
 
 
.swiftlint.yml
.swiftlint.yml
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
PulseLoopLiveActivityExtension.entitlements
PulseLoopLiveActivityExtension.entitlements
 
 
PulseLoopWidgetsExtension.entitlements
PulseLoopWidgetsExtension.entitlements
 
 
README.md
README.md
 
 
icon-source.svg
icon-source.svg
 
 
mkdocs.yml
mkdocs.yml
 
 
requirements-docs.txt
requirements-docs.txt
 
 

Repository files navigation

PulseLoop

Stars Forks Issues PRs CI Platform Swift License Docs Discord

PulseLoop

๐Ÿ“š Documentation ยท ๐Ÿ“ฑ Now on Android ยท ๐Ÿ’ฌ Join the Discord ยท ๐Ÿ“– Read the writeup

Featured on communities:

r/ReverseEngineering r/hardwarehacking r/selfhosted r/degoogle X post

An LLM-native health app for iOS that turns a cheap Bluetooth "smart ring" into a real, conversational health tracker. It currently supports the generic Chinese Jring and the Colmi / Yawell ring family (R02/R0x/R1x/H59), behind a device-agnostic driver layer so adding more wearables is straightforward.

PulseLoop talks to the ring directly over Bluetooth LE (no vendor cloud, no account) and layers an optional AI Coach on top of your own data. Instead of static charts, you get a coach that can read your metrics, run its own analysis, draw charts, remember context about you, and answer questions about your sleep, heart rate, activity, and recovery.

Goal: prove that a $20 ring + an LLM can replace a $300 subscription wearable, and that the "intelligence" should live on the phone, not behind a paywall.

Documentation

๐Ÿ“š Full docs: saksham2001.github.io/PulseLoopiOS

  • Getting started โ€” iOS
  • Getting started โ€” Android
  • Supported hardware
  • iOS vs Android
  • Architecture ยท Roadmap ยท Contributing

What it does

  • Connects to the ring over BLE and decodes its proprietary protocol (heart rate, SpOโ‚‚, steps, distance, calories, sleep stages, raw packets).
  • Today / Vitals / Sleep / Activity dashboards built natively in SwiftUI, backed by SwiftData for local persistence.
  • AI Coach โ€” an agentic loop (OpenAI, Google Gemini, OpenRouter, MiniMax, Apple's on-device Foundation Models, or any OpenAI-compatible server you run yourself โ€” Ollama, llama.cpp, vLLM, SGLang, LM Studio) with tools for data retrieval, on-the-fly analysis, chart generation, long-term memory, and web search. It also takes image input, so you can send a photo of a meal or a label. Every answer is grounded in your actual ring data.
  • Workout recording with live heart-rate zones, GPS route maps, a Live Activity, and a Dynamic Island widget.
  • Daily check-in notifications generated by the coach from your recent trends.

๐Ÿ“š Diagrams and a full walkthrough: Architecture docs.

Screenshots

Today AI Coach Sleep
Today Coach Sleep
Activity Vitals Workout Summary
Activity Vitals Workout Summary

Also on Android

PulseLoop has a sister project for Android: PulseLoopAndroid

The two ports are developed hand in hand and share the same BLE protocol work, so a fix or a newly decoded sensor on one platform usually lands on the other. iOS leads on the AI Coach (multiple providers, on-device model, image input), while Android still leads on a few vitals detail screens. See the iOS vs Android comparison for the current breakdown. Pick the build for your phone, both connect to the same rings.

Coordination, the shared roadmap, and cross-platform discussion all happen in the Discord.

Community

We run a Discord for roadmap planning, getting-started help, and coordinating the iOS + Android efforts. It's the fastest place to get unstuck, claim an issue, or propose a feature.

๐Ÿ‘‰ Join the PulseLoop Discord

New here? Good places to start:

  • Skim the open issues, especially any tagged good first issue.
  • Read CONTRIBUTING.md and the CODE_OF_CONDUCT.md.
  • Say hi in Discord and tell us what ring you have โ€” device reports are genuinely useful.

Supported Wearables

Disclaimer: We have no affiliation with the sellers or manufacturers of any of the wearables listed below. We do not endorse them and take no responsibility for their quality, accuracy, performance, durability, data security, or anything else that might go wrong with them. Listings are provided for convenience only โ€” links may break, sellers may swap hardware under the same name, change prices, and your unit may behave differently from mine. Buy at your own risk and treat any data the ring produces as approximate.

PulseLoop is built around a device-agnostic driver layer, so each supported ring declares exactly what it can do and the app shows only those features.

Ring BLE Family Advertised name Price
jring (generic smart ring) 56ff SMART_RING $7โ€“12
Colmi / Yawell ring family โ€” QRing app 6e40fff0 / de5bf728 R02_โ€ฆ, R0xโ€ฆ, COLMI R1xโ€ฆ, H59_โ€ฆ $15โ€“30
Colmi / Yawell ring family โ€” SmartHealth app be940 (Yucheng YCBT) R99 54DC and similar $15โ€“30
R10M (LittleMeatball) be940 (Yucheng YCBT) R10M โ€ฆ (e.g. R10M FCF4) $15โ€“30
TK5 ring โ€” ๐Ÿงช limited support be940 (Yucheng YCBT) TK5 โ€ฆ (e.g. TK5 24AA) โ“

โš ๏ธ A Colmi ring ships with either the QRing or the SmartHealth app โ€” two completely different BLE protocols โ€” and its Bluetooth name doesn't reliably say which. So PulseLoop asks you when you pair. Pick the wrong one and it simply won't connect; the app then offers a one-tap "try the other app" retry. Both are supported. See the Colmi page.

โœ… The R10M is the best-tested YCBT ring. It speaks the same protocol as the SmartHealth-app Colmi rings and the TK5, but it is a different vendor's ring, so it pairs on its own โ€” no app-type question โ€” and carries its own capability set. Pairing, sync, HR/SpOโ‚‚/BP, battery and sleep are all validated on firmware 2.32. See the R10M page.

๐Ÿงช The TK5 is still experimental. It shares its driver with the SmartHealth-app Colmi rings, and that driver is confirmed working on one โ€” but no TK5 has run it, and a few value scales still need a confirmed reading. The app labels it "Limited support" when you pair it. See the TK5 page.

๐Ÿ“š Full hardware specs, per-model capability matrix, and buying guidance: Supported hardware docs.

Install & try it

๐Ÿ“ฒ TestFlight beta

The public TestFlight beta is live. Sign up here to request an invite, or ask on the Discord. We also have plans for an IPA release soon!

๐Ÿ› ๏ธ Build from source (Xcode)

You'll need Xcode 16+, an iOS 18+ device, a compatible 56ff or Colmi/Yawell ring, and (optionally) an OpenAI or Gemini API key for the Coach. Open PulseLoop.xcodeproj, set your Team + a unique Bundle Identifier, then build & run on your device.

๐Ÿ“š Full step-by-step build, signing, and demo-data instructions: Getting started โ€” iOS. Building on Android? See the Android guide.

Contributing

PRs and issues are very welcome โ€” this project moves fast because people pitch in. Before you start:

  1. Read CONTRIBUTING.md and CODE_OF_CONDUCT.md.
  2. Open or comment on an issue so we don't duplicate work.
  3. CI runs automatically on every PR (build + SwiftLint): keep it green!
  4. Coordinate bigger changes in the Discord, especially anything that should land on Android too.

Adding a new ring? The device-agnostic driver layer in RingProtocol/ is the place to start โ€” ping us in Discord and we'll point you at the right files.

๐Ÿ“š The roadmap and architecture / project layout now live in the docs.

Acknowledgements

Contributors

Thanks to everyone who's contributed to the iOS app ๐Ÿ’œ

@saksham2001
@saksham2001
@rgvxsthi
@rgvxsthi
@hoveeman
@hoveeman
@radxp
@radxp

Everyone who's filed an issue, opened a PR, or reported a device shows up in the contributors graph.

License

This project is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).

You're free to share and adapt the work, including commercially, as long as you give appropriate credit. Please attribute:

PulseLoop by Saksham Bhutani โ€” https://github.com/saksham2001/PulseLoopiOS

About

A privacy-first, subscription-free health tracker for affordable wearables.

Topics

colmicolmi-ringhealthiosllmprivacyself-hostedsmart-ringswift-uiwearablewearables

Resources

Readme
CC-BY-4.0 license

Code of conduct

Code of conduct

Contributing

Contributing
Activity

Stars

335 stars

Watchers

6 watching

Forks

51 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 โ€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800ร—600. No cookies required.