There’s been quite some talk and experiments around integrating AI coaching. I first reached out to David in January 2025 about adding AI training plans to Intervals and in recent months finally found the time to build LeCoach.app.
Why? Well I’ve had human coaches in the past and they have been great but also (understandably) costly and limited in time/attention. So in recent years I switched to training apps like Join or The Breakaway and for me, they lacked depth in analysis and in some cases were too static so that they kept suggesting workouts that were not executable for me (I’m not a very explosive rider haha).
So I’ve been coaching myself with AI in the last year and this has helped me tremendously. Training plans were personalized to me, ride analysis was deep and it could also analyse my wellness/recovery data and make suggestions based on that.
So I’ve now turned this into a product with its own interface which acts as a full-grown cycling coach. Some of the features:
Two-way sync (wellness, activities, workouts) with Intervals.icu
Create training plans based on your data and inputs. You can create a plan in a few clicks but also get really specific in your briefing (think ramp rates, training structure, picking easy and hard days, favorite workouts etc etc).
LeCoach calculated readiness score and daily wellness check-in via chat with options to change today’s workout (I’ve chosen for now to keep the user in the lead to decide to change or not).
LeCoach calculated workout workout execution score after each ride, based on zone adherence, duration, load and intensity.
Agentic chat with LeCoach, ask any question and get deep analysis about your schedule, activities, workouts, wellness etc.
Open chat with LeCoach, discuss any cycling related question with LeCoach and store them into topics such as nutrition, race plans or whatever you want.
All of this is visible and editable in a clear agenda to make it easy to see your plan, activities and wellness in one overview.
For now this is completely free and I will take the AI costs on me.
I would love to get some feedback from the Intervals community. There is so much more I’m considering to add and there’s a bunch of stuff I think needs improvement but would rather do this based on real users giving input. So feel free to share all your questions, bug reports etc here!
Thanks for giving LeCoach a try and would love to hear your feedback!
Hi, this is coming up at a great time. I’ve been using AI Endurance recently but looking at alternatives. Have signed up and will give it a try!
How do you think this system is suited for mountain bikers?
Can the training plan adapt to my compliance automatically or will i need to prompt changes by talking to the agent? I tend to do a lot of big outdoor rides which dont always work perfectly into what might get typically scheduled. I have found AIEndurance will cope quite well if for example one week this means i end up with way more threshold work than intended.
Thanks for signing up Ben! It will work well for mountain bikers. What it can’t do currently is true multisport (so running, swimming etc), only bikes for now. But we intend to also add other sports in the near future.
Regarding having the training plan adapt automatically to actual activities/compliance to plan, this is currently not in there and this is exactly something we’d like to get feedback on. Why? Cause for me personally I actually often did not like it when training apps constantly shuffled my agenda/plan whenever i changed something. I like knowing that wednesday is vo2max day, thursday is endurance etc. At the same time I also get the need to stay within the plan in terms of load/zones etc. So we are considering how to best add this.
One thing we are considering is a setting where you can set ‘when’ Lecoach should give change suggestions (how much deviation etc) and also if it should apply them automatically (autopilot) or suggest them (so user can accept).
What would be your preference regarding this?
ps. for wellness we do already have something like this in place. Each morning when your wellness data comes in we do our own wellness scoring and assess if that could cause an effect on your workout for that day. LeCoach sends this to you via chat and then you can decide to ‘keep’, ‘change’ or ‘remove’ the workout. Also here we have for now set it to ‘user decides’ but adding an autopilot setting would def be possible.
I think im probably a lot less structured than you for workout sessions! I tend to mix longer outdoor mtb rides with shorter indoor sessions. The indoor sessions have to be interesting to keep me motivated so i often end up doing virtual races or similar which can impact how i rearrange planned workouts during the week!
A lot of the time this could be managed by simply asking AI to bump the sessions around within the week as I decide to rearrange things. But if I end up having slightly too much focus in one area then i like to have an “intervention” to re-adjust subsequent workouts. I think user notification is my preference here. I’d like to still make the ultimate decision but don’t want to have to track my compliance to polarisation targets in detail if the AI can do that for me. I think a similar chat prompt to the wellness implemenation would work well for this. As for the threshold where this prompt might happen, not sure. Having it all the time would be annoying, but i would want it to try and correct a trend away from good compliance pretty early.
I’m going to play with the plan generation a bit and bring the results across to intervals to see what it looks like!
Quick update: signing up with an icloud email address could cause the confirmation email to bounce. We have now fixed that. thanks @TheBlackKite for reporting this.
@Rutger Thanks for doing this and making it available. It’s an interesting project, the uses of which I have yet to discover. [This is not a negative comment, rather a statement of my ignorance of the state of AI.]
A couple of bugs / issues that I’ve noticed.
First: the calendar page, with todays journal, does not seem to be adapted to my time zone [Australian eastern summer time]. At 11 pm my time, it does not recognise that I have completed a ride already, even though intervals.icu has the data.
LeCoach does not recognise that Gym is not a ride. I understand the comment that you made in response to another use, that non-riding activities are not [yet] analysed. That’s fine, but it would be nice to at least exclude non-ride activities from ride-type analysis. Eg, LeCoach calls my gym work an endurance ride. Just leave it out or simple count a few metrics like TSS or kJ.
But the biggest problem I had was with the planner. My last week was about 10 hours riding and another 2.5 hours in the gym. I asked LeCoach to generate a plan for an 125km event in 7 weeks, starting now and with a moderate loading progression. I stated my daily ride availability, about 20 hours per week.
The plan started me off with weeks of 15.5 hours, 12 hours and 18.5 hours, followed by a deload week [which I asked for]. This is just not a sensible load progression to my mind. Perhaps LeCoach was not reading my previous few weeks’ data?
I also asked for 25 December to have no rides, but the plan made 24 December a rest day.
LeCoad produced a plan of 7 weeks, of which 4 were provided in the first instance, with a link to load two more weeks. But pressing the link did not cause the additional pages to load. So I have no idea what the remainder of the plan looks like [I don’t want to load the plan into my calendar while there are still these issues with it.]
I will continue to play with LeCoach to see how I might use it, but look forward to you explaining or resolving these issues. Thank you again!
Thanks for the elaborate feedback Michael! Regarding your points:
Calendar page timezones. Sounds like a bug, will get this fixed. Somewhat related: Also acknowledge that currently everything on LeCoach is meters and kg, will also add a setting to switch this to other feet/pounds etc.
Regarding unsupported sports actibities. Very good point, will get this fixed asap
Regarding load progression. I think it actually tried to ensure proper/realistic load progression coming from 10hrs last week. So it did not want to jump straight to 20 hours. However the 12h is unusual and not something i have seen before. I will look into this further, two possible reasons: in the week where it planned 12hrs you already had other workouts scheduled (in intervals) so it planned around it. OR something in your ‘recurring rides’ field in training plan inputs confused it. Could any of these 2 be the case perhaps? If not, I’ll look into it further and find an explanation.
Regarding the 25dec / 24dec thing, I expect this to also be caused by the timezone bug. Will get it fixed.
That the link does not load additional weeks is a bug. Thanks for reporting. Will be fixed tonight. However you can safely add the workouts to your agenda. There is a button ‘clear scheduled workouts’ under your profile avatar. When you click on it you can select to ‘Delete LeCoach workouts only’. This will delete all LeCoach workouts from your agenda but keep all that were originally created in Intervals.icu. Also when you have submitted your plan to the agenda you can fine-tune it by selecting one or more workouts and edit them with an ai prompt. This is an easy way to for example make a workout easier, harder or switch things around. You can also drag and drop workouts to other days.
Thanks for fixing the email confirmation, one thing I wanted to do and not sure its possible unless I missed it.
Can you define max hours per week? It asks availability so I said every day 1 hour but didn’t mean I want to train everyday 1 hour. I basically want to tell it 4 hours a week but up to the coach to choose the days.
Edit: even if i say max 2 consecutive days of training it schedules one for each day
I’ve struggled a bit with exactly this cause the tricky thing with ai is that you should be pretty descriptive to it. In past testing versions we had exactly the setting you mentioned but then ai started ignoring the daily max availability. So now how it works is: what you input in daily availability is what ai tries to utilize if historic volume allows. However in training plan creation you can also set max consecutive days. So you could work around this by setting max consecutive days to 3 or 4 and then 1hr availability on each day.
I acknowledge that this is not ideal so I will work on doing this smarter. I can imagine we would allow you to set the max availability per day but also set the total availability you have per week. AI then sees the daily availabiliy not as an exact target to match but rather room it has to spread out the total availability for that week. Most likely also with a starting availability (close to your recent actual hrs/week) and a ending availability (closer to your goal for example.
Edit to your edit Thanks for catching this, this is a bug where if you set max consecutive days but do not set max hard days it would ignore the config completely. This is already fixed in testing and will be released tonight. For now you can set max hard days to the same value as max consecutive days.
Ok did a plan for 2 weeks asking to increase 5min power.
Did a mistake and started it today so tried to chat:
Me: Today i did a run can you remove the workout for today and adapt the plan
Chatbot: I can see that you did a run today. To remove the scheduled workout, please select the workout in your agenda and press ‘delete’. For adapting your plan, you can drag and drop workouts in the agenda to reschedule them.
Thats interesting so i deleted it manually in intervals and it was gone. Surprised it didn’t adapt though but lets see now how the sessions work in zwift
Big improvement in load progression. Now when making a training plan LeCoach will:
Detect your last two weeks weekly average hours of training
Suggest this as the starting amount of training hours per week (can be overruled)
Ask for target weekly hours
Build the plan to logically progress from start to target hours, taking into account request deload weeks/settings and progression
Big improvement in how availability works. The hours per day are now how much time you have available. LeCoach will plan in the best way possible, spreading your total weekly training hours from the weekly target across your days. In schedule preferences you can now also select on which day’s you prefer your long rides to be.
Working on
Better timezone handling
Support for Imperial system (currently all is Metric)
Better handling of non-ride activities / workouts coming from Intervals
Amazing, was thinking it would be nice to create training plan for the winter months to get fitter for next season. Scrolled through some existing ones in Zwift of MyWhoosh, but decided to check if intervals.icu may have something more tailored based on the data already there.. And, woala, 10 hours ago post about AI coach. This has to be sign to try it out, so will do it.
Until new year will probably just freeroll it with single workouts - holidays and stuff, unpredictable time, but afterwards will try to generate training plan and see how it goes.
And here’s the first kind of idea - allow generating .zwo files straight away. I’m lazy, so I threw the proposed workout structure into ChatGPT and it spew out .zwo file which could be imported into Zwift/MyWhoosh right away without any manual labor. Would be nice to do it right away from LeCoach, but at the same time - that means more AI resources, more expenses, so of course it is up to you to evaluate if that is actually worth it at this stage.
Anyway, as for now nothing much else to say - we’ll see how it goes, but thank you for the effort right away!
Obviously not lazy enough
Just use the Zwift/MyWHoosh integration from intervals and it will upload the workout from your calendar to the training platform
Thanks for checking this our Vieplis. And yes indeed, one of the big benefits of Intervals is that you can connect to Zwift, MyWhoosh etc. So if you go to Intervals.icu and connect zwift and mywhoosh then any workout that LeCoach makes will automatically sync to those platforms!
Ah, riiiight, thanks guys! My bad, I hadn’t used intervals to create workouts and upload stuff. Workout is in the calendar, integrations should be there, so will check if that happens automagically, but anyway - looking good.
Hello Rutget!
Thank you for creating this AI platform for us! I’ve already signed up, I’ll ask you to create detailed training plans for my mountain biking races and I’ll give you feedback! If it’s fantastic, don’t raise the prices too much
Thanks for checking it out Gomes. Hope you like your training plan! Let me know here if you have any feedback. Note that you can easily ask LeCoach to make changes to one or more workouts of your plan at the same time by selecting them and then prompting LeCoach what to change.
We just pushed another update:
Multi-sport awareness like Michael_Webber requested. Lecoach can still only generate cycling workouts and cycling training plans. But if you have other sports workouts in intervals they will now be correctly handled by LeCoach (not interpreted as rides, not matched to ride activities). As before, you can already ask LeCoach questions about non-ride activities or workouts in chat.
Improvements in training plan creation
Now we’re off to bed. Will follow up all comments in this thread personally tomorrow!
Miscalculation in prescribing training after an intense FTP test. You should have prescribed endurance training. I think that initially, when you made a plan with a race objective, you asked too many questions that sometimes leave us confused, and those who don’t understand anything about training forget it, they won’t get there suddenly and might give up right away. I like the explanation of each workout you prescribe. They have a clear and objective image. I’m going to do the workouts you sent and I’ll give you feedback.