Use your Oura ring without an Oura account.

Open Oura is a free, open-source iPhone app for Oura Ring 3, 4, and 5. It reads the ring over Bluetooth and computes your scores on the phone. Nothing goes to a cloud.

While you sleep, the ring keeps notes.

Awake
REM
Core
Deep

In the morning, it all goes to your iPhone, and nowhere else.

You wake up, and your scores are ready.

The night moves from the ring to the app over Bluetooth. Readiness, sleep, and activity are scored on the phone from your own nights, next to the vitals behind them: HRV, resting heart rate, breathing, blood oxygen, and temperature.

Today: readiness 92, sleep 97, activity 63
App screens show sample data.

Read the night, minute by minute.

Sleep stages with heart rate, HRV, temperature, blood oxygen, and movement on the same hours. Drag across the chart to read any minute.

A night: stages with heart rate, HRV, blood oxygen, temperature, and movement

Your scores are on the Lock Screen before you open the app.

Home Screen widgets in two sizes and Lock Screen widgets. Ask Siri for your readiness, your sleep score, or the ring battery.

Small widget: readiness 92, sleep 97, activity 63

See stress build up during the day, and see it go.

Time stressed, engaged, relaxed, and restored, a 48-hour timeline, and a resilience level from the last two weeks. These are open estimates from the ring's signals, not Oura's cloud scores, and the app says so.

Daytime stress: stressed, engaged, relaxed, restored, with a 48-hour timeline

Tag the late coffee. See what it does to the night.

Tag caffeine, alcohol, or a late meal. The app compares the nights after each tag with all your other nights, and shows only the differences that are clear.

Tags and insights: caffeine, alcohol, and a late meal against the other nights

A run, with your heart rate live from the ring.

Open Live and the ring sends every beat to your phone. Workouts from the ring, from Apple Health, and from your own entries go into one list, and none counts twice.

60bpm

This trace is an animation. In the app, the beats come from your ring.

Workouts from the ring and Apple Health in one list

Every Sunday, the week in plain words.

Weekly and monthly reports: averages, totals, and how each number moved against the week before.

Weekly report with scores and sleep against the week before

Your best nights start between 23:00 and 00:00.

The app finds the bedtime window of your best nights, and shows your sleep regularity and chronotype. It also says when to charge the ring, from the ring's own discharge rate. If the ring rolls under the bed, the finder shows its signal strength as you walk.

Ideal bedtime 23:00 to 00:00, sleep regularity 86, and the chronotype

While you sleep, your own server keeps a copy.

This part is optional. One command installs the hub on a home server, a Steam Deck, or a Mac, and one QR scan connects the phone. Claude, Cursor, or any MCP client can then read your status, and how old the data is.

The ring talks only to your iPhone. Data leaves the phone only when you connect your hub, and only your token opens it.

MCP tools: get_status_now, get_sleep, get_trends, get_activity, get_watch, get_health_samples

The hub's web app: a night with its stages and vitals
$ get_status_now: ok { "last_night": { "in_bed_h": 7.8, "hrv_ms": 47 }, "freshness": { "ring_last_sync_age_h": 0.7 } }

Also in the app

Apple Health
Writes measured data day by day with no duplicates, and reads Apple Watch workouts and VO₂ max.
Notifications
Low battery, morning scores, a bedtime reminder, and a missed-sync alert. The phone decides when.
Symptom Radar
Flags nights when temperature, HRV, and resting heart rate move together, like the early signs of getting sick.
Cycle and rest mode
Log a period for cycle days and phases. Rest mode pauses activity goals on sick days.
Trends
Any metric, from the last 7 days to all of your history, against your own baseline.
Export and restore
CSV or JSON of every day and metric. Restore a new phone from your hub.
Your key only
The ring pairs with a key made on your iPhone and kept in its Keychain. There is no Oura account.
Siri and Shortcuts
Ask for your readiness, your sleep score, or the ring battery.

The film, 49 seconds

Set it up in about 30 minutes

You need a Mac with Xcode, your iPhone and its cable, and the ring's charger. A free Apple ID works.

Read the full guide

  1. Install the app from your Mac

    Connect the iPhone and tap Trust. Turn on Developer Mode: the switch shows after the Mac connects once. Run the script, and keep the iPhone unlocked until the app opens.

    git clone https://github.com/KenWuqianghao/open_health.git && cd open_health && ./apps/ios/install.sh

    Then trust your Apple ID in Settings → General → VPN & Device Management. With a free Apple ID, run the script again every 7 days.

  2. Reset the ring on its charger, then pair

    Sync the official app one last time, delete it, and forget the ring in Bluetooth. Put the ring on the powered dock for 2 seconds, then turn the dock over and back until each light shows: blue, red, purple, yellow.

    Yellow starts the reset. Blinking blue means it is done. Do not set the ring up in the official app again. In Open Oura, tap Scan for Rings, then Pair.

  3. Optional: run your hub and scan to connect

    Run one script on your server, then scan the QR code on the hub's Connect page.

    git clone https://github.com/KenWuqianghao/oura-hub.git && cd oura-hub && ./deploy/install.sh

Before you reset your ring

Can I still use the official Oura app?

Not at the same time. A ring holds one key, so the reset removes Oura's key. To go back, reset the ring again and set it up in the official app. Sync the official app one last time before you switch.

Is anything sent to Oura or to you?

No. The app talks to the ring over Bluetooth and keeps everything on the iPhone. It sends data to one place only: a hub you run, after you connect it.

Which rings and phones work?

Oura Ring 3 (Gen3), Ring 4, and Ring 5, which use the same protocol. Pairing and sync were tested on a Ring 3 Horizon and a Ring 5. The app is iPhone only, iOS 17 or newer.

Why do I build it myself?

It is not on the App Store. The install script builds it with Xcode and your Apple ID. With a free Apple ID the app runs for 7 days per install; run the script again to renew it. Your data stays on the phone.

Can I set it up on someone else's iPhone?

Yes. Connect their iPhone to your Mac and run the same script. Your Apple ID signs the app, so they trust it once in Settings → General → VPN & Device Management. With a free Apple ID, connect their iPhone and run the script again every 7 days.

Are sleep stages included?

Yes. The app shows the stages that the ring computes itself: deep, light and REM sleep (confirmed on a Ring 3). Oura's own sleep model is Oura's property. Open Oura does not include it and does not use it. For the same reason there is no cardiovascular age, and workouts come from a simple activity rule. The setup guide lists how each result is computed.

Are stress, resilience, and the cycle the same as Oura's?

No. Oura computes those in its cloud. Open Oura has its own open estimates from the same ring signals, and says so in the app.

Is this made by Oura?

No. Open Oura is an independent open-source project. It is not made, supported, or approved by Oura.

Built on Thomas Marchand's work

open_oura by Thomas Marchand (@thomasmc) reverse-engineered the ring's Bluetooth protocol, its authentication, and its event format, and ported the metric algorithms. Open Oura builds the iPhone app, the hub, and the setup on top of it.