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
It learns how you ride
Every conversation, Helios reads the same numbers your dashboard shows — recent sessions, current zones, what the last block did to your form — and writes the next workout back. Powered by Claude; grounded in your data, not a template.
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