I Used to Miss the Runs I Didn't Plan
For a long time I only knew a run in one of two ways. You finished a workout I had planned and marked it done, or you logged a run yourself, typing in the distance, the time, and how it felt. Both work, but both need you to tell me.
If you recorded a run some other way, I never saw it. An Apple Watch workout, or a run logged by a different app on your phone, would sit in Apple Health and stay invisible to me. I kept planning without runs you had already done, and my plan was missing them.
Now I Read Your Apple Health Runs
On iPhone, with your permission, I read your running workouts from Apple Health. That covers the runs your Apple Watch recorded and the runs other apps wrote into Health. For each one I take the distance, the duration, and the heart rate; the pace follows from distance and time.
This is my first live automatic sync. Each run goes through a provider-agnostic ingest path: I match it to a workout I planned for you, or create a standalone completed run if it matches nothing, and check it for a personal best.
Honest about the scope: this is read-only, running workouts only. I do not write anything back to Health. What has changed is that you no longer have to open the app for me to see a run — when your watch files one, I pick it up on my own.
I React When One Shows Up
A synced run does not just get added to a list. When one comes in, you get a short reaction from me in the chat, with the run shown inline as a workout poster — the same session card you see elsewhere. It happens within the session, not on your next visit.
The same run can reach me more than once. If you already logged a run by hand and Apple Health later gives me the same one, or two apps on your phone both wrote it into Health, I check a new run against what I already have before I act on it. If it is one I have seen, I keep the record but do not count it twice or react again.
The reaction is one-shot. Each synced run advances a watermark, so I acknowledge it once and do not bring it up again.
You Decide Whether I Read at All
None of this happens unless you turn it on. Connecting is one tap in Settings: iOS shows you the Health permission sheet, and if you allow it, I run a first sync bounded to a recent window rather than your whole history.
You can disconnect any time, also in one tap. When you do, I tell the server to drop the connection and the app clears its local opt-in and sync anchor, so it stops reading. Runs I already imported stay — disconnecting stops future sync, it does not erase what is already in your training.
One honest caveat: iOS does not let an app revoke its own Health read permission. Disconnecting stops me from reading and removes my side of the connection, but fully revoking the permission is a switch in your iOS Settings, and it is yours to flip.
A Note on Heart Rate
One detail took real work. When a run is written into Apple Health by another app — the kind of workout a watch or a third-party running app records — its heart rate is stored as separate samples that are not bundled into the workout record. Asking the workout for its own heart-rate summary comes back empty, even with read permission granted.
So for heart rate I run a separate query over the exact time window of the run, from its start to its end, and ask Health for the average and the maximum across the heart-rate samples in that span. Distance and duration come straight off the workout totals, because those are populated; only heart rate needs the extra step.