Introducing ZwiftFit: Personalized Zwift Workouts Powered by AI

Ever finish a Zwift workout and think, “That was good, but not quite what I needed today?” Or maybe you’ve scrolled endlessly through the workout library, wishing for something perfectly tailored to your current goal or how your legs are really feeling?

Zwift offers a strong library of workouts and flexible training plans, and many riders find real value in them. But sometimes you want a workout that reflects your current goals, recovery state, and fitness — something that adapts to you in the moment. That’s where ZwiftFit comes in.

Every ZwiftFit workout is dynamically generated based on your profile and inputs, meaning even if you request the same workout type twice, you’ll get a different version each time — always targeting the same goal, but never repeating exactly. It’s about keeping your training fresh and specific, every time you ride.

That’s the idea behind ZwiftFit, a new AI-powered web app that creates truly personalized ZWO-format workouts based on your profile, goals, and how you’re feeling today. As an avid Zwifter and independent developer, I built ZwiftFit to solve a problem I personally felt. Now I’m sharing it with the community.

Why ZwiftFit?

While there’s no shortage of workouts on Zwift, finding the right one to match your immediate goals and energy can feel like guesswork. And let’s be honest, repeating the same old sessions can quickly lead to boredom. We’ve all been there: scrolling through lists, picking a workout that looked good on paper, only to find it didn’t quite hit the mark for that specific day.

ZwiftFit solves this by generating workouts tailored to:

  • Your FTP, gender, age, and training load
  • Your training goals (e.g., improve climbing ability late in long rides, increase flatland power, sharpen race finish)
  • Strengths and weaknesses defined in your user profile
  • Physical limitations or injuries you’ve specified
  • An upcoming race or event
  • Daily readiness, HRV, and resting HR
  • Even how you feel that day — from “Very Tired” to “Excellent”

It’s not about scrolling through a library. It’s about telling ZwiftFit who you are and what you need — and letting it create the session.

A screenshot of an athlete profile setup page showing fields for training phase, weekly training hours, workout duration, intensity, cadence, and terrain preferences, with navigation buttons labeled Previous and Next Section.

Two Ways to Create a Workout

ZwiftFit supports two core paths:

1. Quick Workouts

Choose from 9 workout types including:

  • Endurance Ride
  • HIIT Session
  • Sprint Session
  • Climbing Challenge
  • Threshold Intervals
  • Race Warm-Up
  • Event Cooldown

With one click, you get a workout tailored to your current profile settings and duration preferences.

A cyclist rides up a road in a virtual training app, with stats displayed above and a welcome message on screen: Welcome Paul! Today’s plan reflects your good feeling, higher HRV, and recent 3-day load of 210...

2. Custom Workouts

Need more control? Go custom. Custom Workouts give you a much deeper level of customization than Quick Workouts. There are seven main workout categories — like Recovery & Endurance, High-Intensity Intervals, and Strength & Skill Development — and within those, over two dozen specific workout types to choose from.

Once you’ve selected a type, ZwiftFit adapts it further based on your current profile and the specific workout options shown on the Custom Workout screen. Unlike your profile settings — which tend to remain stable over time — these session-specific options allow you to adjust key variables for the ride you’re about to do. You can specify:

  • Workout duration (fixed or range) – so you can fit in the perfect session whether you have 30 minutes or two hours.
  • Current feeling (Very Tired to Excellent) – ensuring your workout matches your actual recovery state, not just a pre-set plan.
  • Resting heart rate and heart rate variability (HRV)
  • 3-day and 7-day training load
  • Warm-up and cool-down length (Short, Normal, Long)

You can even add custom instructions — whether you want motivational tips, fun cycling trivia, or a focus on specific aspects of execution like cadence, pacing, or technique. ZwiftFit incorporates this input to further personalize your session in real time.

Event Prep & AI Flexibility

Beyond crafting the core of your session, ZwiftFit offers some useful additions designed to seamlessly integrate with your Zwift life and give you even more control.

One of ZwiftFit’s standout practical features, especially for the racing Zwifter, is its event-specific warm-ups. These are invaluable not only for races (which often start hard right from the gun) but also for a variety of other Zwift activities. To meet these diverse needs, ZwiftFit provides a range of targeted warm-up types, including: Race Warm-Up, Climb Preparation, Group Ride Primer, TT Preparation, Sprint Activation, Long Ride Preparation, and Hard Start Readiness. Each is designed to address the specific physical demands you’ll encounter in those events.

To complement the warm-ups, ZwiftFit also offers targeted Zwift Event Cooldowns to enhance recovery immediately following your rides or competitive efforts. These short routines are carefully structured to gradually lower intensity, aiding in the removal of metabolic byproducts and easing muscle tension. Options include Race Recovery, Climbing Recovery, Sprint Recovery, and Endurance Ride Recovery.

You can also choose the duration of these warm-up and cooldown sessions based on your available time and personal preference. For the best experience, generate both the warm-up and cooldown sessions ahead of time. That way, you can smoothly transition from race prep to recovery without needing to leave Zwift or revisit the app. It’s a convenient and practical addition that supports readiness and recovery across a wide range of Zwift activities.

Multiple AI models are available, each offering a distinct style for generating workouts. Some models might emphasize structured intervals, while others introduce more variety or different types of challenges. You’ll also find variations in the verbosity of instructions—some are more concise, others more detailed—and subtle differences in tone. For example, one model might suggest a straightforward “2×20 at threshold,” while another adds pacing cues, motivational prompts, or mental focus tips throughout the session. This variety allows you to select a model that aligns with your personal preference for a particular session or to simply change models periodically to keep your training stimulating and engaging. Whether you want to stick with your favorite or switch it up to explore different approaches, having multiple models gives ZwiftFit a unique adaptability.

A cyclist in a yellow jersey rides on a virtual road in a cycling simulator. On-screen stats and text instruct the rider to focus on their left legs pedal stroke for an isolated leg training drill.

Simple and Affordable

There’s no subscription. Just a credit system:

  • New users get 30 free credits after signing up and verifying email.
  • Earn 30 more credits by generating one Quick Workout, one Custom Workout, and then downloading either of those workout files.
  • A 300-credit package costs just $2.99 — typically enough for 30–40 workouts (that’s less than 10 cents a session!)

For now, credit purchases are limited to the U.S., Australia, Japan and Switzerland due to international tax complexity, but other international users can still use the free credits and the FIT to CSV tool.

Bonus Tool: FIT to CSV Conversion

For data-driven riders who like digging into their workout files, ZwiftFit includes a free utility that converts your FIT files into CSV format. This makes it easy to import your Zwift workout data into spreadsheets or other analysis tools. There’s no cost and no credits required — just upload your FIT file and download the structured data. It’s a small but powerful addition for those who want more control over how they visualize and track performance.

Screenshot of a web page titled FIT to CSV Converter. It shows steps to upload FIT files, convert them to CSV, and download the results. Three FIT files are uploaded, and a blue Convert Files button is visible.

Try It + Promo Video

ZwiftFit is available now at zwiftfit.com. You can also watch a short 30-second promo video below:

ZwiftFit | Adaptive AI Workouts for Zwift® Riders – Try It Free

Final Thoughts

ZwiftFit is still evolving, but I hope it fills a real need in the Zwift training ecosystem — helping riders at every level get more out of their workouts with less friction.

If you give it a try, I’d love your feedback! Share your experiences or suggestions via my contact form or tag me @ZwiftFit on Instagram. Your feedback will help shape its future!

Paul Whitelock
Paul Whitelockhttps://zwiftfit.com
Paul, a Zwift user for ten years, balances his time between virtual miles, real-world road and gravel adventures, and exploring the capabilities of AI. This blend of passions led him to develop ZwiftFit, aiming to enhance the training experience for fellow cyclists.  Beyond coding and cycling, Paul is an avid music listener and follower of professional cycling.

68 COMMENTS

Subscribe
Notify of
guest

68 Comments
Oldest
Newest Most Voted
Bigf
Bigf
1 year ago

No one is paying more. Over their skis.

Jan
Jan
1 year ago

I find that sounds very interesting, and I’d love to try it out. I hope there’ll soon be a way to buy credits outside the US as well.

EDIT to add: I just registered on the website and created two workouts (1x quick, 1x custom). The previews for the workouts are really promising, and the website itself is clearly laid out and well-designed. I already know I’m going to love using this tool in the future, and that makes me hope even more that it’ll soon be possible to buy credits outside the US (Swiss here).

Thanks, Paul, this is a truly cool tool you’ve built!

Last edited 1 year ago by Jan
Diogo
Diogo
1 year ago

Is this a “private” project using zwift or a “zwift original”?

Mr Fister
Mr Fister
1 year ago
Reply to  Paul Whitelock

Sounds like someone is in bed with zwift staff

Andi
Andi
1 year ago

Well, wheres the difference vs chatgpt plans? i guess a lot of ppl didnt even know that gpt can do training plans at every level. it even makes the zwift zwo files to use it drag n drop for zwift. (serious question)

Johan
Johan
1 year ago

Hi,
I’m training for an Ultra Cycling event (LondonEdingburghLondon, 1540 km on August 3) en do a lot of cycling outside. Zwift is used mainly to do structured workouts en cycling outside for endurance. Does Zwiftfit take into account the outside rides?

Lukas
Lukas
1 year ago

For ethical reasons, I’d prefer to pay (more) for a human coach, instead of paying for AI. Although I like innovation, I am scared of the direction our world is heading.

Matthew
Matthew
1 year ago
Reply to  Lukas

I get your sentiment, and have no disagreement with it. But you should be aware that a lot of the coaches you’re probably familiar with are going to the model of using AI to enable a higher number of clients per paid human coach. Some of them are explicit about it (thinking FasCat or Carmichael Training Systems), but I have no doubt that more coaches than that are using AI to build your structured workout plan.

David Knutson
David Knutson
1 year ago

hopefully its better than the companion app training AI thing for training- I’ve ridden 400mi and 40k of climbing during one week – And all it ever says is Fresh I don’t or didn’t feel very fresh useless

bucfan
bucfan
1 year ago

You know what would make this even better?? If your server didn’t crash during the email verification process over and over.

Chris
Chris
1 year ago
Reply to  bucfan

There was a big Google cloud outage today. Many services on the internet were down. Let’s extend Paul a little grace on his IT issues today.

Andy R
Andy R
1 year ago
Reply to  bucfan

I love the people down voting us for pointing out the obvious issues signing up.

Mathis
Mathis
1 year ago
Reply to  Andy R

People don’t like it when someone posts a permanent negative comment for a temporary and fixable issue. All the login related comments are already off-topic as the login is now working. A better way would have been to use the contact form “just to make you aware sign-up/login is not working at the moment. Could you send an update once this is fixed”. Hope it’s a bit clearer why you have got down voted for this as well as how you can avoid it in the future.

Andy R
Andy R
1 year ago

This sounds a lot like xert. Does it automatically calculate your FTP and training readiness like xert does, and adapt the workout to said readiness?

Andy R
Andy R
1 year ago

Can’t even access the URL!

Aamer Khan
Aamer Khan
1 year ago

I signed up for the service, but there was no historical data in the application from Zwift to suggest how I should be working out today. Does it only use input from the workouts done through ZwiftFit? Can it pull in from Zwift my current training status and training score and the last few rides I did (eg.: I rode Alpe Du Zwift yesterday) to suggest a workout for today? Can it pull my FTP and weight from Zwift or do I need to keep that updated alongside Zwift?

Last edited 1 year ago by Aamer Khan
Aamer Khan
Aamer Khan
1 year ago
Reply to  Paul Whitelock

Thanks for clarifying. Looking forward to playing around with it.

GDL
GDL
1 year ago

Is Strava relative effort same as TSS or Stress Points?

Todd Tannenbaum
Todd Tannenbaum
1 year ago
Reply to  GDL

There is a free web app that links to your Strava account and can report your TSS score for the current week fast and easy. I’m not affiliated with this site, just a happy user. URL is http://stravatsscalculator.com/

douglass
douglass
1 year ago

I would pay a monthly subscription if the HRV, Readiness and so on would be pulled from Fitbit/Oura/Whoop/… and from this a personalized workout is generated each day, without me needing to input anything.

Alexandre
Alexandre
1 year ago

I would like to try your solution, the question is how many workouts I need to import into your system to create a custom workout.

Alexandre
Alexandre
1 year ago
Reply to  Paul Whitelock

Ah ok. And this training file that you will generate is for a single training session or will it be generated for example for a session of days/hours?

Alexandre
Alexandre
1 year ago
Reply to  Paul Whitelock

So to conclude and stop asking questions, hehehe
If you’re receiving a threshold or resistance training session… how will your system be able to create new training sessions based on the ones that have already been generated but without the data from the results of the training sessions I’ve already done?
For example, I did one of your resistance training sessions, but perhaps at first this training session was a bit hard to maintain a cadence or levels close to the required power. How will the next training session created in your tool be based on this? In theory, with each training session I can take into account that I’ve become “stronger” and can have a longer training session. Did you understand my point?

Alexandre
Alexandre
1 year ago
Reply to  Paul Whitelock

Thank you very much for the answers.

A feedback on the training done, could be my initial question, which would be to export the trainings in a FIT file from Zwift and import them into the tool in some way so that the system can identify whether it was possible to complete the training close to the established margins and thus indicate/ask what the “feeling” of the training was. Then, adding the raw data of the training result + “feeling” indicated by the user (examples: I felt good, I got tired but good, I didn’t like it, I got very tired and almost gave up) will give us an answer for the next generation of training.

I will test your tool as soon as possible. Great pedals.

Oliver Radermacher
Oliver Radermacher
1 year ago

That sounds very interesting. I will take a look at it and give it a go for tests. I will revert. Thanks for all the work you did on this

Grateful user!
Grateful user!
1 year ago

Thank you so much for creating this! Just finished my first Quick Workout and it was fantastic, perhaps one of the best non-race experiences I’ve had to date on Zwift. Looking forward to trying out the full Custom Workout for my next hard day, and anticipate being a VERY frequent user.

One feature that would be awesome in the short-term using the current pricing and code would be an option to create a series of workouts in a training plan at the same time. This would lose the option to feed in training load and day to day HR/HRV/fatigue data of course but would enable users to have a ready-to-go tailored and goal-oriented stable of workouts to use on-demand.

Long-term, would be really interested in integration into Zwift to allow the app to auto-calculate training load, use recent activity data to help provide recommendations for the type of training to create, and import user height, weight, and other related data. Realize that may be too heavy of a lift for one dev, the current pricing model, AI data protection concerns, etc. though.

Thank you again!!

Matt
Matt
1 year ago

I’m super excited about this. Can’t wait to give it a go. I have young kids so I’m rarely feeling well rested for more than a few days in a row as well as being knocked out of my rhythm by semi-regular colds. I can totally imagine how this kind of approach could be a real value add by helping tailor my workout to where I’m at on any given day.

Also, kudos to you for being so positive about even quite ungenerous feedback! And what’s going on with the downvotes on every comment, that’s not the usual ZI vibe.

And, for the record, I’d pay for it if it works well, so I guess “No one” isn’t quite on the mark 😉

Oblivion
Oblivion
1 year ago

I haven’t read all of the comments, so apologies if it’s covered, but are there any plans to sync with something like Strava/Intervals.ICU to get an overall picture of what other efforts we have going on aside from cycling?

I’ll give this a shot when I have some spare brain cycles. For now, Friday evening calls! Cheers!

James Pickles
James Pickles
1 year ago

Paul are you real? Your replies sound pretty AI generated, too!?

James Pickles
James Pickles
1 year ago
Reply to  Paul Whitelock

You can hide it a bit better by replacing the em-dashes with hyphens 😉 (in the article and the replies)

TheStansMonster
TheStansMonster
1 year ago
Reply to  James Pickles

He could also give people the dignity of typing the responses himself and give better answers in 1/3rd the word count and not dump out a bottle of water and pump a kilo of emissions into the atmosphere with every answer.

TheStansMonster
TheStansMonster
1 year ago

JFC a slop workout creator is one thing but this guy is replying to every comment with a slop answer. Go ahead and tell me how this was a “great comment” that really “gets to the core of people’s concerns” and throw a “delves” in there. If you’re going to copy and paste vibe coded junk and then respond to comments about it with copy and pasted slop answers why should we bother reading, using, or paying? Why shouldn’t we just prompt chatgpt with the same information and skip the middleman?

Mr Fister
Mr Fister
1 year ago

Zwift, it’s full of selfish leaders who only think about themselves and their social status. They forgot about sports 😂

Mr Fister
Mr Fister
1 year ago

People cannot even update their weight everyday before riding to ensure the most accurate stats, I am sure they do not care about this silly project. You need to be honest with weight for true progress.

JLH
JLH
1 year ago

Hey Paul, Its really great you have taken the time to respond to all these comments by using CHatGPT – Its been invaluable in seeing how ChatGPT/AI will use a cookie cutter approach and not provide individual responses.

Whilst I presume you used AI to auto respond to all the queries as a time saver, its actually highlighted the failing of using a basic AI package which targets general engagement over the individual response.

You are offering a personalised service whilst providing cookie cutter responses. The training plans dont hold much hope if thats the way this works.

Bob
Bob
1 year ago
Reply to  JLH

I was going to say the same thing, but you said it much better.

Filipus
Filipus
1 year ago

I tested ZWIFTFIT and I MUST say, that this idea was really nice. The AI is generating nice workouts, but I don‘t like to pay. I am twelve years old and the AI is looking on my age, when it is generating the workout.

Philippus
Philippus
1 year ago
Reply to  Paul Whitelock

Thank you Paul Whitelock!

Matt Fowler
Matt Fowler
1 year ago

I would like to see in the screen during a workout is the sprint and KOM data information that is typically on the left side for the purpose of knowing where one is on the route. I know it is not relevant to the workout but…

SecondclasscitizenX
SecondclasscitizenX
11 months ago

Uuurgh. Looks like good option I’d gladly pay for, but apparently my money’s not good enough for them. It’s 2025 and developers are still foolishly geo-locking their software to exclude massive global markets?! Is it just following Zwift’s awful example of limiting their hardware sales to a handful of countries or what?

Alex
Alex
11 months ago

Hello!

I logged on your page, and I’m wondering how do you check my fittnes level? I cant see any connections to zwift to get any previous training data. Am I missing something?

TestDriver
TestDriver
3 months ago

Can you provide a summary of how the process of autophagy contributes to fibrosis in the liver?

Get Started on Zwift

Newest Featured Posts

Support This Site

Write a post, shop through us, donate or advertise. Learn more

NEWSLETTER SIGNUP

Zwift tips and news every 2 weeks! Click to subscribe.

More Posts