← Projects

Coach Claude

Building an AI Coaching Layer on Top of My Apple Watch Training Stack

FastAPIClaudeMCPHealthKit

I've been a runner my whole life — Kids of Steel triathlons as a kid, cross country and track through high school and university, and road races scattered throughout — but chronic injury has been the dominant story for the past few years. This year I decided to stop waiting for it to sort itself out, signed up for a half marathon in September, and instead of downloading another training app, started thinking about what a coaching tool built around my actual data might look like.

After digging around Reddit for ways to set up Claude as an actual run coach, I came across a GitHub repo by a developer called Arden: a FastAPI backend that syncs workouts from Apple Watch, stores them with all their data intact, and delivers structured training sessions back to the Watch. It came with an iOS app called Somatic and an MCP server that let Claude talk to the whole thing. I cloned it and started building on top.

What I added: an AI coaching layer powered by Claude Haiku that generates a short note after every workout sync — one thing that went well, one to work on — and writes it back into the workout record via a new MCP tool. On the data side, expanded HealthKit sync brings in heart rate, power, and route data, and subjective effort scores are now part of the workout schema. A rebuilt dashboard gives the whole thing a cleaner interface — phase-coded weekly calendar, per-session coaching panel, mileage tracker. And I removed the six-month history cap baked into the iOS app. There was no good reason to throw away that context, and Claude is a better coach with more of it.

The most valuable thing that came out of it had nothing to do with the build itself. When I first fed Claude my health data, it flagged that my heart rate was consistently high — I'd been running too hard too often, which was almost certainly driving the injury cycle. It put me onto HR-based training, and two months in my paces are improving and I haven't had a major flare-up. Everything is grounded in my actual data, which is what makes it feel different from any third-party app. September is the real test, but for the first time in a while I'm looking forward to it.

Backend, iOS app, and MCP server by Arden (aderaaij). AI coaching layer, dashboard redesign, and HealthKit sync expansions by me.

Training API dashboard — plan overview and coaching panelTraining calendar — phase-coded weekly view