mtnlabs

Your coach is your AI subscription. Your data is the evidence.

Two years of Apple Health, read by the AI assistant you already pay for. Ask it anything and it answers in your numbers. The session it writes goes to your Apple Watch.

Download HealthBridge on the App Store

See how it works → · See a Monday's conversation →

Free while it is small · iPhone, iOS 17 or later · your data stays in the EU · delete everything in one tap

A session in the app: its shape drawn as bars — warm-up, six 800-metre efforts and their recoveries, cool-down — labelled underneath, above the step list with each step's pace band, and an Add to Watch button.
Six efforts and their pace band, drawn as a shape. One tap puts the structured workout onto your watch.
Reads2 years HRV, sleep, every workout, second by second
Writesto your watch structured intervals with heart-rate or pace targets
Runs onyour subscription Claude or ChatGPT, so nobody rations your questions

Monday morning, for real

Three exchanges, one day. Watch what it refuses to do: for this Apple Health example it throws out today's SDNN HRV average because there is an impossible reading inside it, verifies the session expanded correctly before claiming it is on the watch, and calls the evening “done and overcooked” rather than “missed”. The monospace lines are the tools it actually calls.

Monday, 07:41

should I do the intervals today?
health_brief · 60-day baseline
One thing first: today's Apple SDNN HRV average is 96.4 ms, and it should be ignored. There is a 248 ms reading in there, which is not a human heart: a dropped beat or a motion artefact.

The median is 54.2 ms: +0.2σ against your own baseline, an ordinary morning. Resting heart rate 49 (−1.3σ, low for you), 7h 10m asleep at 96% efficiency.

Do the session.
go on then, put it on the watch
health_set_training_plan · 6 × 3 min, 166–174 bpm
health_plan_preview · verifying the expansion
On your watch: warmup 15 min, then six times three minutes at 166–174 with 2:30 jog-down, cooldown 10. 1,080 seconds of work.

Monday, 21:30

done. felt harder than it should have
health_day_detail · 27 July
It was harder. You spent 470 s above the target band and only 320 s inside it: 73% of the work at or above target, 30% in the range.

A session done and overcooked, not a session missed. Your jog-downs were fine: 890 s sat in the 110–140 band the plan asked for.

Why HRV is a median here

Heart-rate variability, 60 days

daily mean daily median, what HealthBridge uses a day containing an impossible reading
406080100one 272.5 ms artefact → mean 107.8, median 44.1day 1day 60

Eleven of these sixty days carry a reading no resting heart produces. A dropped beat reads as one huge interval, and the day's mean jumps with it; the median does not. That is why every noisy metric here is a median.

One sensor artefact can move a day's mean HRV from the fifties to over a hundred.

Training theory, checked against your sessions

Your assistant reads the research, then checks it against your own sessions and zones.

Sunday, 19:12

everyone keeps saying polarised training. am I actually doing it?
web_search · what the polarised model asks for
The model people mean is Seiler's: roughly 80% of sessions easy, below the first ventilatory threshold, the remaining 20% hard, at or above threshold. The distinctive claim is that the middle should be nearly empty.
health_zone_analysis · 28 days, your configured zones
Your last 28 days, 36 hours of session time:

80% easy (Z1–Z2) · 15% tempo (Z3) · 5% threshold and above (Z4–Z5)

The 80/20 headline looks right, and it is misleading. Almost three quarters of your non-easy work sits in the band the polarised model wants empty: 326 minutes of tempo against 109 minutes of real intensity, mostly from two long runs.

That is not a mistake: the model was built on runners doing 10 km road blocks, not people who go up hills for six hours. If you want the polarised effect, let the long days run slower so the two hard days can be hard.
show me that as a picture

Where the 28 days went

Z1–Z2 · 1,740 minZ3 · 326 minZ4–Z5 · 109 min

Demo account. Computed the way the real tool computes it: from raw heart-rate samples across every session in the window, against the athlete's own saved zone boundaries, not a percentage of an age-estimated maximum.

No dashboard could have a "your polarised split is wrong in this specific way" feature: the question does not exist until someone asks it.

Your assistant can also hold several connectors, so a question needing heart rate from Apple Health and gradient from Strava is answered from both.

The app on your phone

Three screens. It syncs, shows what your assistant published, and puts the session on your watch. A daily check-in and a post-session RPE are there if you turn them on; your assistant reads both.

The Today screen: one line under the title says the sync is four minutes fresh with 312 new readings; then the next session as a tinted card with its shape drawn as bars and the coach's own line in quotes; then four tiles reading 116 ms HRV, 7:42 of sleep, a 48-minute workout and 8,214 steps.
Today: is the data flowing, what am I doing, how is my body, in that order.
The Plan screen: block 2, week 3 of 8; the week as a strip of seven days with today as a filled disc and a dot under each day that has a session; the coach's block note in quotes; this week's sessions as a list with an Add button; next week as one row.
Plan: the week as a strip, this week as a list, next week as one row.
Trends with a 7-day, 8-week, 6-month range control: weekly training load bars against a four-week average with this week in full colour, and nightly sleep where unrecorded nights leave visible breaks in the line.
Trends: 7 days, 8 weeks or 6 months. Where a night is missing the line breaks into separate runs, and it says how many.

Every figure on this page belongs to nobody. The phone screenshots, the chart and the conversations come from a seeded demo account built to contain a down week, unrecorded nights and the sensor artefact above. The watch captures come from a screenshot harness that supplies a plan and a sensor trace; every pixel after that is drawn by the shipping views.

The session on your wrist

HealthBridge runs the session on your Apple Watch: the band on screen, cues spoken and written, and each step recorded against the session that was published.

The first of six work reps on the watch: the heart rate large in the centre, the target 166 to 174 beneath it, and the band drawn as an arc along the edge of the screen with the marker sitting inside it. Below, the seconds accumulated in the band this rep.
Rep 1 of 6, inside the band. The arc is the 166–174 target, the marker is your heart rate, and the line beneath is time banked in the band.
The same rep running too hard: the heart rate in the over colour, the marker past the top of the arc with a chevron pointing back down, and the coach's own hint written on the face.
The same rep, over the top: the marker leaves the arc, a chevron points back down, and the cue appears, written and spoken. Colour is never the only signal.

A number needs its range

168 against 166–174 means something; 168 alone does not. So every step with a target draws its band as an arc along the edge of the screen.

Nothing is spoken into a hard rep

Every announcement lands in the step before the one it describes, and a step under 30 seconds hosts none.

Your assistant picks the cues

Per step, from a closed vocabulary: seconds in the band, time left, the next band. The app decides how they look.

Live coaching during the session

New in 1.2, off by default. Ask the coach mid-session and one adjustment comes back: hold, or ease the band. The watch speaks it, writes it and records it with the session.

It reads your context first

It can look up the rep you just ran, this morning's readiness and your recent load first.

Spoken between reps

The answer is spoken and written on the face; nothing is spoken into a hard rep.

Its own consent, off by default

Nothing leaves your watch for a coached answer until you turn on In-session AI coaching in Settings. Then heart rate, pace and gradient go to Anthropic's API on our account, processed in the US, nothing kept for training.

The evidence library

The server ships a library your assistant can read: 31 evidence-graded documents behind 230 cited sources, resolved against PubMed, Crossref or Open Library.

Every claim carries how good the evidence is and whom it was measured on. A skill ships with it too: healthbridge-coach, one markdown document, 23.9 KB to download.

Read the library →

01

Specific about you

Your own 60-day baseline, your own zones, your own two years.

02

It checks its inputs

Bad sensor data is caught and said out loud before it is used.

03

It writes back

A structured workout goes to your wrist and comes back as data, scored against the session that was published.

04

It says when it cannot answer

A missed session is reported as missed, never quietly repaid onto a later one.

Why it runs on your own subscription

Your coach is the model itself. An app paying for every token you consume has to ration: a capped chat, a fixed set of questions.

HealthBridge pays for none of it. The conversation runs on your own Claude or ChatGPT subscription, so nobody has a reason to cut you off. It is built on the Model Context Protocol, an open standard. No lock-in: your two years stay exactly where they are.

The catch: you pay for the assistant, and the conversation counts against your own usage limits.

The coaching skill →

What you need

Training guidance, not medical advice, and not diagnostic. Route and GPS are off by default and behind their own switch, separate from ordinary workout sync; turn it off again and the positions already stored are deleted.

Your data

Stored in Cloudflare's European region, scoped to your account, read by your assistant when you ask it something. Not sold, not pooled, not used to train anything. HealthBridge never sends it anywhere itself; the one exception is the live coach above, behind its own consent. You can delete all of it from inside the app, immediately and without asking anyone: samples, derived rollups, tokens, authorised clients and the account row. Export is available too. See the privacy notice.

Start here

Get the app and sign in with Apple, Google or GitHub. The account is yours the moment you sign in. Then add the connector to your assistant.

Get started Questions

Contact: hello@mtnlabs.ai. See support options and service limits; no response time is guaranteed.