River
Loop, made to measure.
Overview
River is a fork of Loop, the open-source automated insulin delivery app for Type 1 diabetes. It puts two and a half years of observations to work on the everyday moments of living with T1D: how a meal usually goes, what a workout does to the night that follows, what changed this week, and what the Lock Screen shows at 3 a.m.
River is a working name and is likely to change. The code is closed today. It goes open source soon.
- Daily pickups for Type 1
- <10
- Standard deviation, cut by
- >50%
- HbA1c, for 2+ years
- ~4.9%
- Time in range, 2026
- 98.6%*
Get the highlights.
Meals
Meals that learn from last time.
Snap a photo or describe what’s on the plate, and River returns carbs, absorption time, and tags. Every saved meal keeps its five-hour glucose outcome, so the next estimate for the same food starts from what actually happened.
See the math
One row per item, like 3 × item, 2.3 g each = 6.9 g. Carbs are the rounded total, with the reasoning under absorption.
Saved when you say so
Apply to carb entry fills in the carb screen. Nothing is saved until you tap Save.
On-device backup
No network, a timeout, or a provider error? Apple Foundation Models take over, drawing on up to 10 recent meals as examples.
Your own history
Lines like Last 4 times: +68 mg/dL peak at 2 h 15 m. Carbs adjust only after three clean matches.
Meal History
Five-hour traces with a median and a 25th to 75th percentile band. Plus pre-bolus and absorption charts.
Honest outcomes
Other carbs, workouts, sensor gaps, and starts below 70 are all flagged. And any meal can be left out.
Chat
Just ask.
Chat reads Loop, Nightscout, and Apple Health through 42 tools. Anything that would change something shows up as a card for you to confirm.
Bolus cards
Tap Accept to open Loop’s bolus screen, prefilled and capped at your maximum bolus. Cards expire after 15 minutes.
Profiles and favorites
Review, then confirm. Proposals expire after 24 hours and are rechecked against current settings.
Keeps going
Replies finish even after you close Chat. If a stream drops, pick Continue, Retry, or Cancel.
Your choice of model
OpenRouter, Anthropic, or any OpenAI-compatible endpoint. Prompt caching is built in, with cache counts under each reply.
Reviews and Inbox
Your day, in review.
Morning and evening reviews measure the day against your last 7 to 14 days. They arrive in an Inbox that badges only what needs you.
Short and specific
Two to five items across pattern, change, meal, insulin, overnight, sleep, activity, and sensor. Each with one observation and one suggestion.
Hands off
The notification says it plainly: Nothing was changed automatically.
Daily Stats
Local, deterministic stats for every day, with insulin split into automatic, manual, temp, and scheduled.
Forecast accuracy
Loop’s forecasts, matched against real readings, with error at 30, 60, and 120 minutes.
Profile Draft
Settings that show their work.
Profile Draft reviews up to 90 days of history and proposes basal, carb ratio, and sensitivity schedules. Each one comes with a written rationale.
Side by side
Current and proposed values, entry by entry, with pump adjustments shown.
Two ways to save
Save inactive leaves therapy untouched. Save and load asks for a second confirmation.
Checkpoints
Progress saves after every step. Tap Continue to resume an interrupted run with a fresh time limit.
On a schedule
Set it to run every 1 to 90 days, delivered straight to the Inbox.
Workouts
Workouts. And the night after.
Exercise raises insulin sensitivity for hours. So River offers a preset when a workout starts, and that evening it checks your nights after similar workouts.
Workout Started
A shortcut asks Turn on Workout preset? One tap opens presets. Nothing turns on by itself.
Evening note
Arrives between 7 and 10 p.m., after 45 minutes or 400 kcal of exercise.
Your own nights
Lows and the lowest reading across 90 days of nights after similar workouts, compared with nights without one.
No model involved
The note is plain arithmetic, with an Open Presets action.
Home screen
One chart. The whole story.
A 112 pt reading. Lifecycle bars in the sensor and pump pills. And a chart where every dose and every meal shows how long it lasts.
Dose lines
Boluses of 0.75 U or more draw a labelled line that fades over the insulin duration.
Carb spans
Thickness shows grams. Colour shows absorption time.
Chart window
3, 6, or 12 hours, remembered between launches.
Themes
Five colour schemes that carry through to widgets, Live Activities, and Apple Watch.
Lock Screen and Apple Watch
Readable at 3 a.m.
Lock Screen widgets show how old each reading is. The Dynamic Island puts IOB and COB beside glucose. And Apple Watch fetches from Nightscout on its own when iPhone goes quiet.
Lock Screen widgets
Glucose with trend, delta, eventual, and age. Plus active insulin.
Stale at a glance
Entries arrive every 5 minutes. The last value dims until 35 minutes, then clears.
Live Activity
IOB, COB, both stacked, or the change since the last reading, right beside glucose.
Apple Watch
12 complication styles. When iPhone data is more than 5 minutes old, Watch fetches from Nightscout over cellular.
Even more
All the little things.
10 App Shortcuts
Log Meal, Open Bolus, Workout Started, Insulin on Board, and more.
Health Access
16 categories, Health Records, and medications, with a single Allow all.
Nightscout reports
Time in range, AGP percentiles, and more, from a 400-day local cache.
Editable prompts
14 prompts. View, edit, reset, or export any of them as Markdown.
Photo privacy
Photos are redrawn without EXIF data. Saving photos is off by default.
Usage
Provider, model, and cost or tokens for every run, across 30 days.
Sensor accuracy
When the sensor gets it wrong.
In daily use with River, about 1.6 in every 3 Dexcom sensors have read nearly 150 mg/dL high. A loop that trusts a high reading doses insulin for it. So River checks each new sensor against 400 days of past pods and sensors under similar conditions.
How River checks
It compares each new sensor with past pods and sensors in similar conditions: similar foods, similar weather, and more.
The warning signs
A brand-new sensor. Or a jump from 110 or 130 to 190 and up that doesn’t fit the usual pattern.
The confirmation
A fingerstick settles it. Most of the time, when the sensor reads 230, the real number is 130.
The asterisk
The 98.6% time in range for 2026 is calibrated against those fingersticks.
Next up: an Eversense sensor. Results to follow.
Safety
Insulin stays with Loop.
The AI features read data and make proposals. Bolus cards and shortcuts open Loop’s bolus screen with a draft capped at your maximum bolus. And no insulin is delivered until you confirm and authenticate there.
Bolus Advice is off by default. Turn it on, and it applies only when it’s no higher than Loop’s own fresh recommendation or the maximum bolus, and only with glucose and pump data under 15 minutes old.
Upstream
Built on Loop 3.14.8. Open source soon.
yannelli/loop is a plain fork of the upstream app. River brings every dependency into one repository, so a single clone builds everything. Build 111 is the one in daily use.
River runs on Omnipod 5, thanks to the Loop open-source community, who worked out its protocol. In daily use, its connection has proven more reliable than Dash.