How to use ChatGPT for training without screenshots and manual context

It’s been really great to see how many of you started using STAS after my previous post here.

Also, the original title of that post is a little less accurate now: STAS no longer works only with ChatGPT. It now works with Claude.ai too.

Thank you to everyone who commented, sent feedback, and wrote to support. That feedback helped shape a lot of the improvements we made over the past weeks.

One of the biggest changes is that setup is now much simpler. Earlier versions had extra layers around sign-in and linking accounts. We removed that complexity, and now Intervals.icu is the main connection point.

Other recent improvements:

  • support for Claude.ai alongside ChatGPT
  • better handling of mixed training load, especially with cycling and swimming
  • Telegram workout reports can now be saved directly into the workout description in Intervals.icu
  • more reliable calendar plan sync
  • cleaner Telegram UX with less noise
  • clearer help and onboarding

A lot of this came directly from real usage and real feedback from people who found STAS through this forum, so thank you again.

I’m still improving it based on how people actually use it, so feedback is always welcome.

Hi everyone,

Small update, and a slightly funny one.

A user recently wrote to me that it would be great if STAS could save interval sessions as proper structured workouts, so they could sync to the watch through Intervals.icu.

And I thought: damn, yes. Of course.

I had spent a lot of time making STAS read Intervals.icu data properly, work with ChatGPT/Claude, analyze training history, and compare plan vs actual training before giving advice.

But this very practical piece was missing :open_mouth:.

Now STAS can write key sessions to the Intervals.icu calendar with proper workout steps: warmup, intervals, recoveries, cooldown, pace/HR/power targets, etc. Intervals.icu can parse this, and if planned-workout sync is enabled and the device supports it, the session may sync to the watch.

It was not even the hardest part. I just somehow did not think about it early enough.

A few other recent updates:

  • STAS reads the current plan and compares it with actual completed training before making recommendations.
  • Cycling and mixed-load data are handled better, including power/FTP context and cycling intervals where available.
  • Training reports can be saved back to the Intervals.icu activity.
  • Telegram notifications are now quieter and more useful. We also added route/track images there, which is mostly a fun detail, but I like it.

The idea is still the same: Intervals.icu stays the source of truth, and STAS adds an AI coaching layer on top.

I’d be curious whether structured workout writing / watch sync is something other Intervals users would find useful too.

It turned out to be a cool thing! I wrote the text of the intervals inside intervals.icu with my hands, now GPT does it quite well. Wish - is it possible to edit training sessions inside the STAS profile? At least be able to change the name of the workout and remove them from the list of workouts in the STAS profile. An example is writing a race with a bicycle computer and a watch at the same time. Two workouts are saved in garmin connect, I remove the extra one from intervals, and in STAS it hangs and gives a curve metric of fatigue-form…

1 Like

Hi, I am trying to run STAS on a local LLM (llama 3.1). And I’ve been able to connect the MCP server, but I get an error stating that authentication is missing. How do I add that using a local LLM?

1 Like

i was wonder if you can integrate the api into the ChatGPT app, so you can interact with GPT in its own interface, keeping also data from other projects such as nutrition. This would enable GPT to get more context about yourself and adjust your traning plan to your (i) goals, (ii) historical data from intervals, and (iii) nutrition plan

1 Like

Hey there. I am trying to use your tool, but here are the issues I am experiencing.

  1. STAS is only reading Zwift sessions from my intervals account and does not fetch running, swimming, and lifting data. Has anyone had this issue?

  2. My Telegram bot only talks in Russian to me. How to fix that? And would it be possible to have more choices as far as the profile picture of the bot is concerned ;-)? It’s not meant in a disrespectful way at all but would be nice to choose an avatar of a coach that one is happy with and personalise this more.

  3. Is there a way to pin the bot in ChatGPT or do I always have to open it through the STAS website?

Looking forward to hearing from you.

Freddy

1 Like

Regarding 1: do the other sessions come from Strava? If so that would explain it. Intervals.icu does not forward that data because of Strava imposed limitations.

1 Like

Oleg, thank you, this is a very useful case.

Yes, the logic should work exactly like that: you manage workouts in Intervals.icu, and STAS should pick up those changes on our side. If you delete an extra workout in Intervals, it should disappear from STAS as well, so it does not affect fatigue/form and other metrics.

From your example, it looks like this did not work correctly on our side. Could you please send us the link to the workout in STAS that was already deleted in Intervals but is still visible in STAS? With that example, we can check why the deletion was not synced and fix this scenario.

Regarding renaming: yes, we also think STAS should pick up the updated workout name from Intervals. Editing the name directly inside STAS is possible to consider, but it is better to keep Intervals as the main place for managing workouts, so the data does not diverge.

Hi, you started correctly by connecting the MCP server.

The error means that the MCP server is reachable, but the authenticated part is still missing. STAS MCP uses OAuth through Intervals.icu. Claude handles this automatically, but with a local LLM you need to implement that auth step in your own local MCP setup.

In practice, your local MCP client/host needs to run the Intervals.icu OAuth flow, receive the Bearer token, and then include it when calling STAS tools:

Authorization: Bearer …

So yes, this can work from your side, but the local LLM setup needs an authentication layer. Without it, STAS will keep returning the “authentication missing” error.

Let me know if I can help with it

Hi Freddy, thanks for the detailed message.

  1. STAS should not be limited to Zwift sessions. If your running, swimming, and lifting activities are visible in Intervals.icu, STAS should normally read them too. However, as @Duppie already noted, there is one important limitation: if the missing activities came into Intervals via Strava, STAS may not be able to process them correctly. For best results, activities should come into Intervals directly from the original source, not through Strava. If the missing activities did not come from Strava, then it looks like a sync issue we need to check. Please send one example of an activity that is visible in Intervals but missing in STAS to our Telegram support bot: @stas_support_bot. You can also email us at [email protected].

  2. For Telegram: please switch the STAS web interface to the language you want, and then start the Telegram bot for that language. For English, use @stas_run_bot. About the bot profile picture: Telegram bot avatars are global, so they cannot be personalized per user. But we are open to improving it, so feel free to suggest an avatar style you would like.

  3. Yes, you can pin the STAS chat in ChatGPT. In the chat list, click the three dots next to the STAS chat and choose “Pin”. Then you can keep using that chat from the sidebar. Over time, if the chat becomes too long or overloaded, you can start a new STAS chat and pin the new one instead.

Thanks! STAS is actually designed exactly around this idea: the chat is the main interface, and it already uses your goals and training history from Intervals.icu to adjust the plan.

It can also send planned workouts back to Intervals.icu and to your watch.

I’m not fully sure what you mean by “integrate the API into the ChatGPT app.” Do you mean using the official ChatGPT app instead of the STAS chat, or mainly connecting extra context like nutrition data?

Hi Yury, thanks for your nice app.

I just started to use it, but I’m not able to get the structured workouts written back to intervals.icu. What I only get is the description of the workout itself. Are there any specific steps that I need to follow?

This is what ChatGPT suggesto to write to you:

Structured workouts created via STAS are not being serialized correctly to Intervals.

They appear in the calendar, but the resulting workout JSON is:
“target”: “POWER”,
“steps”:

instead of structured HR steps (workout_doc.steps).

Because of this, Intervals does not recognize them as structured workouts and Garmin cannot sync them as guided workouts.

Could you please check whether the ChatGPT → STAS → Intervals writer is creating only calendar events instead of full structured workouts?

EDIT: Nevermind, I instructed ChatGPT on how to format the workouts, now they are inported correctly into Intervals!

1 Like

Thanks for reporting this!
We found the issue: HR-only structured workouts were being written without an explicit HR target, so Intervals could treat them as non-HR structured workouts.

We shipped a fix and tested it. STAS now detects HR-only workout builder steps and writes the workout with target=HR.

Please try creating the workout again. It should now appear in Intervals as a structured HR workout and be eligible for Garmin guided workout sync, assuming planned workout sync is enabled in your Intervals/Garmin setup.

1 Like

:rocket: STAS: what’s new

Over the past few weeks, we’ve improved the profile, workout analysis, Intervals.icu sync, and the training context STAS gives to ChatGPT and Claude.

:mobile_phone: 1. Faster access from your phone

You can now add STAS to your phone’s Home Screen, so your profile is always one tap away and opens like a regular app.

:bullseye: 2. Better focus on your goals

ChatGPT and Claude can now stay better aligned with your goals, especially when you have more than one: an upcoming race, a long-term target, consistency, recovery, or another training priority. If you haven’t filled in your goals yet, now is a good time to do it. After that, ask ChatGPT or Claude to refresh your strategy and near-term plan with those goals in mind.

:magnifying_glass_tilted_left: 3. Deeper single-workout analysis

We added a more detailed workout request for ChatGPT and Claude. Instead of passing along raw Intervals.icu data, STAS prepares a clearer picture of the session: what happened inside key sections, how pace, heart rate, and power changed, where terrain may have mattered, where intensity dropped, and which data looks reliable or questionable.

:brain: 4. Smarter workout interpretation

STAS is now better at understanding what kind of session it was: true intervals, easy running, tempo work, repetitions, long endurance work, or another session type. If the source data includes your own effort rating from a device or platform, STAS keeps it as separate context.

:counterclockwise_arrows_button: 5. More reliable workout sync

STAS now checks recent Intervals.icu activities every day. If a workout did not arrive through the regular sync path, STAS can find it in recent history and pull it in. No workout should get lost on the way from Intervals.icu to STAS.

:warning: A note on recent stability

Some users may have noticed service instability while we were shipping these updates. Sorry about that. We hope the improvements are worth it, but we know interruptions are frustrating.

:ring_buoy: If something looks wrong

If a workout is missing, ChatGPT or Claude sees the wrong data, or your profile behaves unexpectedly, please reach out. We read these messages and usually help quickly.

1 Like

Your AI agents are welcome to train with you :smiling_face_with_sunglasses:

:rocket: STAS: what’s new

Over the past month, we’ve made STAS more international, easier to access, and more reliable in everyday use.

:globe_showing_europe_africa: 1. STAS now supports 15 more languages

We added support for 15 new languages and improved how STAS uses your selected language across the interface, reports, and Telegram messages.

:mobile_phone: 2. Faster access from your phone

You can now add STAS to your phone’s Home Screen, so your profile is always one tap away and opens more like a regular app.

:hammer_and_wrench: 3. Many improvements under the hood

We also fixed and improved many smaller things based on user feedback. Profile, goals, rules, and other important details are now saved more reliably, and STAS should feel smoother and more stable in daily use.

Thank you to everyone who reported issues, shared feedback, and helped us make STAS better.

:green_circle: https://stas.run

Sounds like a damn smart idea.

The most annoying thing about trying to use GPT for training is the constant context management: constantly explaining your zones, sending it screenshots from Intervals, and explaining why your heart rate was higher than usual yesterday. It constantly takes a ton of time just to “remember” who you are and what your database is.

The connection with Intervals.icu is a perfect fit here, because it’s arguably the best open hub for cyclic sports, and it would be a shame not to build a proper bridge on top of it.

By the way, how does this thing (STAS) technically connect to the chat? Through a custom GPT/plugin, or is it a separate wrapper that fetches the Intervals token and feeds the data into the prompt? And how flexible is it with plans? For example, if I get sick midweek or my schedule gets out of whack, how well does it restructure the entire structure back to Intervals?

Thanks, you described the problem exactly.

Technically, STAS is not just a wrapper that pastes an Intervals token into the prompt. In ChatGPT it works as a custom STAS GPT with Actions/OAuth; in Claude it works through a connector. The user authorizes with Intervals.icu, then STAS sits in the middle as a context layer.

Intervals provides the training data: completed workouts, details, load, condition metrics, calendar, planned workouts, etc. STAS adds the “coach memory” layer: goals, rules, profile context, reports, notes, strategy, and previous summaries. The chat model calls STAS when it needs data instead of asking the athlete for screenshots every time.

For plans: the intended workflow is draft first, save only after confirmation. STAS can read the live Intervals calendar, build or revise a week, write planned workouts or notes back to Intervals, and then read them back to check what was saved.

So if you get sick midweek, travel, miss sessions, or your schedule changes, the flow is: save that context as a note, inspect the current plan and recent load, propose a revised structure, then replace/move the affected STAS-created planned workouts in Intervals. Completed workout facts are not edited. If your watch syncs planned workouts from Intervals, the revised plan can flow from Intervals to the watch too, depending on the watch setup.

It’s not meant to be a magic black box coach. The quality still depends on the data and on useful athlete feedback. But the main goal is exactly to remove the annoying manual context management and make ChatGPT/Claude work with the real training database.

Intervals.icu shows swimming, riding, running activities from Mid-Feb through May 31, 2026, but STAS displays zero activities and zero weekly mileage for that entire period. More recent activities from June through August are syncing correctly.

Could you please check whether the missing historical activities can be re-synced or backfilled?

Hi Jaime,

Thank you for reporting this.

This issue usually happens when older activities in Intervals.icu were imported from Strava. Intervals.icu may still show those activities in its own interface, but Strava does not allow those activities to be shared further with third-party apps like STAS through the API.

To fix it, the best option is to import the original activity files into Intervals.icu directly, for example FIT/TCX files from Garmin, Coros, Suunto, Apple Watch, or another original source, instead of the Strava copies.

After that, please let us know and we can try re-syncing/backfilling the missing period again.

Sorry for the confusing experience, and thank you for flagging it.