Helios
A personal cycling coach that
actually reads your data.
Strava on the left, Oura on the right, Claude in the middle. Helios watches your training and prescribes the next workout — not from a template, from your numbers.
What you see when you wake up
A coach that knows what you did yesterday
Helios pulls Strava, Oura, and HealthKit on a schedule. The dashboard collapses three apps into one — readiness, today's prescribed effort, and where you sit on your training plan.
- Sleep
- 7h 41m · 92%
- HRV avg
- 62 ms
- Resting HR
- 48 bpm
- Body temp Δ
- +0.04 °C
60 min · target 215–220 W · IF 0.93. Long-ride yesterday was 65 TSS; readiness supports a quality day.
Numbers, with context
Where your fitness actually is
A Kalman-smoothed FTP estimator that doesn't flinch on a bad day. A power-duration curve drawn from every Strava ride with a power meter. Body composition, training load, recovery — all in one view.
Best mean-maximal Watts across every Strava ride with a power meter.
Kalman state-space estimator with reactive process noise. Reads honest, not noisy.
The party trick
Paste any Strava route, see your time
A real physics model (grade-aware power policy, Newton-Raphson solver for v at every segment) projects your completion time on any route you can paste. What-if sliders for FTP, weight, position, and headwind. Up to three friends saved as comparison riders.
The coach itself
Built around Claude
Helios exposes an MCP server. Your conversations with Claude reach into the same data the dashboard renders — past sessions, current zones, recent adjustments. The coach writes back too: prescribed workouts, decisions, and audit notes the next session can read.
Current focus
Sweet-spot block (week 2 of 4). Target: hold 220 W avg
on Wednesday's 3×15 set without RPE creeping past 7.
Recent observations
- Sun ride solid (NP 198 W, IF 0.88) — recovery on Mon
was strong, executing the build.
- HRV slid -8% on Tue → moved VO2 from Wed → Fri.
Decisions
- 2026-05-21: bumped Thursday's z2 to 75 min after
SS day landed lighter than prescribed.
Auto-imported (pending coach review)
- 2026-05-24 · cycling · 50 min · TSS 47 · NP 197 W
- get_athlete_context — profile, zones, goals, plan, recent sessions
- get_ftp_estimate — Kalman posterior + 14-day projection
- estimate_route_time — what time would I do on this Strava route
- prescribe_workout — write tomorrow's session into the plan
- log_coach_note — leave a breadcrumb the next chat will read