Covid left my wife and I bereft of the gym. Locked in. Allowed out for one hour a day. Bouncing off the walls, we decided to start running laps of Victoria Park.
Let’s be clear. At this point I’m watching half a century on planet Earth approach and, aside from representing my school at county level in the 100/200m, I have avoided running like … well, like Covid.
Fast forward six years and it’s happened. I have developed a shoe problem.
“These ones are for speed work.”
“These are for racing.”
Special shorts. Calf compression socks. A little head torch for dark winter mornings. I understand what a tempo run is. I find myself trying to steer every conversation towards my last 10K, my placing, or my PB.
Christ, I’m boring.
The one saving grace is my wife continued as well. They have fewer shoes, but at least we can share our dull chat.
What’s interested me for a while, though, is AI/LLM use for training and programme creation and adaptation. Essentially: building a silicon coach.
The goal is simple enough. I want something that can look at what I actually did — pace, heart rate, biometrics — and then help plan and adjust training blocks. Not vibes. Data.
The hard part is not the AI.
It’s the plumbing.
I’m fairly locked into the Apple ecosystem. My primary run device is an Apple Watch Ultra 3 (big, which helps my half-century eyes). It’s mostly great. Setting up custom workouts is a bit of a PITA, but Workout Builder
https://apps.apple.com/us/app/workout-builder-send-to-watch/id6450721774
solved that for me.
Alerts are hit and miss. I’d really like pace and %HR max alerts — which it can’t do. But once I switched from Spotify to Apple Music, things mostly behaved.
Then there’s the real problem: data.
Getting Apple Health data into anything usable is… grim. The native export is horrible. One enormous ugly file, zero filtering, zero joy.
My first experiment was https://github.com/krumjahn/applehealth - a local LLM setup using Ollama. Credit where it’s due: well put together and genuinely fun to play with and setup.
The problem was always the export. Working repeatedly with that massive Apple Health dump was painful.
I tweaked the code.
By “I tweaked the code” I mean GitHub Copilot tweaked the code based on my prompts (humans are still in charge). I modified it to consume HealthFit (https://apps.apple.com/us/app/healthfit/id1202650514) exports directly. An iOS app that can sync HealthKit workouts out to other platforms while preserving far more detail. At this point it felt like I was collecting data plumbing tools rather than actually running, but still — progress.
Still bumpy. Export files to iCloud. Sync them down to a Mac. Rinse and repeat.
And after all that, I discovered the killer: Apple’s export is missing most of the interesting workout data. Pace per km, detailed splits — gone. It’s basically just summaries.
Then I stumbled across Fulcra Dynamics
https://site-origin.fulcradynamics.com/
This is a platform designed to consolidate health data across devices. I also own a few other wearables, so this was immediately interesting.
Fulcra works as a phone app with direct access to Apple HealthKit — no exporting required. They have a well-documented API and an MCP server.
Oooooh.
I wired Claude up as a desktop client. It was my first MCP config, so there were a few learning bumps, but once authenticated (which you need to do a lot — damn session timeouts), it worked well.
“Analyse my run on 29.12.2025. Pace, HR, biometrics.”
That felt like the future.
I also used this setup to generate a couple of 10K training blocks. Once I realised Claude is absolutely terrible at knowing what day of the week it is, it actually worked well. Varied sessions, sensible progression, goals achieved.
It did, however, try to get me to kill myself on race day until I pushed back.
So, still very much a coach, not a manager.
The problem with this is API timeouts & throttling. Trying to crunch a lot of data would just fail. Clause conversations lengths are also problematic. Equally Fulcra is £15 per month. And despite a wonderful UI that looks like it should surface all sorts of insights, it’s really just a very pretty gateway to the data I want.
Which led to a rethink.
I already use Strava, mainly for the “look at me and what I did” social side. So: should I switch up and lean on the Strava API instead?
Is there an MCP server?
Yes.
Excellent.
Enter: https://github.com/lyledean1/strava-mcp
After about half a day of fighting, I got it working. (strava-mcp/book/src/setup-developer-credentials.md is your friend.)
Claude is now plugged into my Strava data.
The remaining issue is familiar: data completeness.
While Apple Workouts do sync into Strava, they’re missing key metrics — cadence, stride length, and other biometrics. So I’m back at the same fork in the road.
At this point the options look like:
Record runs directly in the Strava app (better data, worse watch UX) and my custom runs all go away
Dual record (effective, annoying)
Use HealthFit as a bridge to get richer data into Strava
Given my eyes have finally adapted to the Apple Watch workout screens, I’m going to try the HealthFit bridge route next.
The silicon coach continues to wait patiently.
No comments:
Post a Comment