(Yet Another) AI ChatGPT Coach

hi
I have been using your app doing analysis for few times and I did like it, but since I can’t use ChatGPT anymore after canceling my account , I hope you’ll fully integrate Claude in your app in the future.
Thanks

1 Like

Hi Sandroc,

The Claude operating model is a little different and less flexible than OpenAI (which has a webstore). To keep is “Free” with your existing Claude subscription the only way right now is via the Claude Desktop version and MCP (modern context protocol), otherwise I would have to purchase API credits and integrate it that way through a dedicated Application Interface, then charge for usage (like other Intervals AI models have done).

I have successfully enabled Claude integration through the MCP node on the Claude Desktop client (Mobile is not supported by Anthropic). You can check out the how to here:

Claude Interoperabilty via MCP · Issue #24 · revo2wheels/intervalsicugptcoach-public

I’m afraid is a little technical to implement right now (needs two files), it’s frustrating that I cannot integrate in the same way but that’s down to Anthropic/Claude. I very much like the Anthropic/Claude reporting as well. An example Claude report:


:spiral_calendar: Weekly Training Report

Period: 2026-02-19 → 2026-02-25 | State: Productive training zone — high anaerobic stimulus with recovery critical.


:package: Volume Summary

Metric Value
Total Hours 11.67 h
Total TSS 650
Total Distance 256.6 km

:bar_chart: Key Metrics

Metric Value Status
ACWR 1.07 :green_circle: Productive
Monotony 1.56 :green_circle: Optimal
Strain 144.9 :green_circle: Optimal
Fatigue Trend +28.7% :red_circle: Accumulating
Zone Quality Index (ZQI) 5.4% :green_circle: Optimal
Fat Oxidation Index (FOxI) 73.1% :green_circle: Optimal
Metabolic Efficiency Score 22.5 :green_circle: Optimal
Polarisation Index (Fused) 1.206 :green_circle: Polarised
Polarisation Index (Combined) 0.724 :orange_circle: Pyramidal
Load Variability Index 0.688 :orange_circle: Moderate — monitor

FatigueTrend at +28.7% is elevated — ATL is running meaningfully above CTL, reflecting accumulated fatigue from the weekend block. ACWR at 1.07 remains in the productive zone, indicating load is still structured and controlled. ZQI has improved to 5.4% (from 4.3% last week), now just entering the optimal band.


:dna: Extended Metrics (Lactate & Zone 2)

  • Mean Lactate: 1.92 mmol/L | Latest: 1.80 mmol/L (30 samples, r = 0.983)
  • Personalised Z2 Band: 210–225 W (70–75% FTP, lactate-inferred)
  • LT1: ~210 W | LT2 (FTP): 300 W

:high_voltage: Performance Intelligence

Anaerobic Repeatability (WDRM)

Metric Value Status
Max W′ Depletion 105.6% Informational
Mean W′ Depletion 61.5% :orange_circle: Amber
High Depletion Sessions 1 :green_circle: Green
Total Joules Above FTP 195,767 J Informational

Mean W′ depletion has risen to 61.5% (amber), up from 41.4% last week — the two big outdoor rides (Jongny ROAD + Wednesday Jongny) have increased anaerobic reserve stress meaningfully. One high-depletion session remains within the green threshold.

Durability (ISDM)

Metric Value Status
Mean Decoupling 4.50% :green_circle: Green
Max Decoupling 23.4% Informational
High Drift Sessions 2 :green_circle: Green
Long Sessions (≥2h) 2

High neuromuscular + metabolic strain overlap present — 1 high depletion session and 2 high drift sessions in the same week. Mean decoupling holds at 4.50%, just inside the green threshold. Two long sessions confirm solid durability base but underline the cumulative stress of the week.

Neural Density (NDLI)

Metric Value Status
Rolling Joules Above FTP 195,767 J :orange_circle: Amber
High Intensity Days 3 :orange_circle: Amber
Mean Intensity Factor 0.813

NDLI has moved into amber — 195,767 J above FTP across 3 high-intensity days reflects a meaningful spike in neuromuscular demand compared to last week (131,333 J / 2 days). Recovery spacing between hard sessions warrants close attention.


:bullseye: Zone Distribution

Cycling Power Zones

Z1 (Recovery)   ███████████░░░░░░░░░  28.2%
Z2 (Endurance)  ████████░░░░░░░░░░░░  19.2%
Z3 (Tempo)      ███████░░░░░░░░░░░░░  18.1%
SS (Sweetspot)  █████░░░░░░░░░░░░░░░  12.3%
Z4 (Threshold)  █████░░░░░░░░░░░░░░░  12.5%
Z5 (VO2Max)     ███░░░░░░░░░░░░░░░░░   7.3%
Z6 (Anaerobic)  █░░░░░░░░░░░░░░░░░░░   2.3%
Z7 (Neuromusc.) ░░░░░░░░░░░░░░░░░░░░   0.2%

Cycling HR Zones

Z1   ████████████████████████  60.6%
Z2   ███████░░░░░░░░░░░░░░░░░  18.4%
Z3   ███░░░░░░░░░░░░░░░░░░░░░   7.8%
Z4   ████░░░░░░░░░░░░░░░░░░░░  10.9%
Z5   ░░░░░░░░░░░░░░░░░░░░░░░░   1.6%
Z6   ░░░░░░░░░░░░░░░░░░░░░░░░   0.6%

:date: Daily Load Timeline

       Thu     Fri     Sat     Sun     Mon     Tue     Wed
       Feb19   Feb20   Feb21   Feb22   Feb23   Feb24   Feb25
Load    ▃       ▂       ▇       ▅       —       ▃       ▆
TSS    71      31     177     134      —       88     149
Press   ↑       ↑       ↑       ↑       —       ↑       ↑

:person_running: Events

Signal legend: :high_voltage: Efficient | :green_circle: Aerobic | :collision: Anaerobic | :repeat_button: Repeated | :chart_increasing: Progressive | :person_in_lotus_position: Recovery

Signals Date Activity Type Dur (min) TSS IF Avg W NP Avg HR Decoupling
:high_voltage::collision::chart_increasing: Feb 19 Zwift – Short Stage 1 TdZ VirtualRide 62 71 0.83 224 255 128 +23.4%
:person_in_lotus_position: Feb 20 Pralet Ski Tour BackcountrySki 65 31 106
:high_voltage::collision::chart_increasing: Feb 21 Zwift – Adz ×2 VirtualRide 141 159 0.82 223 251 124 +2.1%
:person_in_lotus_position: Feb 21 Otto Walk Hike 50 18 96
:high_voltage::collision: Feb 22 Jongny ROAD Ride 125 134 0.80 196 241 120 +2.0%
:high_voltage::repeat_button: Feb 24 Lavaux Ride 87 88 0.78 195 233 124 -15.2%
:high_voltage::collision: Feb 25 Jongny ROAD Ride 97 112 0.83 198 249 119 +10.2%
:person_in_lotus_position: Feb 25 Otto Walk Hike 73 37 103

Two new outdoor rides this week — Lavaux (Feb 24, 88 TSS) showed excellent cardiovascular response (-15.2% negative decoupling, indicating improving efficiency as the session progressed). Jongny ROAD on Feb 25 (112 TSS, IF 0.83) added significant cumulative load with 47.9% W′ depletion. The week’s EF of 2.09 on the Wednesday ride is the highest of the period.


:battery: W′ Balance Summary

Metric Value
Mean W′ Depletion 42.2%
Mean Anaerobic Contribution 180.9%
Sessions with W′ Data 5
Dominant Pattern Clustered Weekend

Anaerobic Load Timeline:

Thu ▇ | Fri — | Sat ▇ | Sun ▇ | Mon — | Tue ▂ | Wed ▇

:zzz: Wellness

Metric Value
CTL (Fitness) 78.4
ATL (Fatigue) 89.4
TSB (Form) -11.0
HRV Mean (42d) 50
HRV Latest 46
HRV 7d Trend +6.9 (improving)
Resting HR 41 bpm

TSB at -11.0 reflects persistent accumulated fatigue — ATL has remained above CTL throughout the reporting window. HRV trend is strongly positive (+6.9) despite the load, suggesting the autonomic system is adapting well. Resting HR of 41 bpm is consistent with good baseline recovery.


:light_bulb: Insights

Insight Value Status
Fatigue Trend +14% (ATL vs CTL) :orange_circle: Amber
Fat Oxidation Index 73.1% :green_circle: Green
ACWR Phase 1.07 :green_circle: Productive
Fatigue Resistance 0.95 :green_circle: Strong
Efficiency Factor 1.9 :green_circle: Green

:white_check_mark: Actions

  • :red_circle: FatigueTrend 28.70% — rising fatigue, monitor intensity.
  • :white_check_mark: Durability improving (1.00) — maintain current long-ride structure.
  • :white_check_mark: IF Drift stable (0.00%) — aerobic durability solid.
  • :orange_circle: Load Variability Index moderate (0.69) — load manageable but monitor fatigue accumulation and ACWR trend.

:clipboard: Planned Workouts (Upcoming)

Date Day Name Duration (min) Load Description
Feb 26 Thu Aerobic Endurance 120 94 10m ramp + 100m @ 70% FTP + 10m easy
Feb 27 Fri Threshold 3×15 80 108 3×15m @ 100% FTP
Feb 28 Sat Aerobic Endurance 120 99 10m ramp + 100m @ 72% FTP + 10m easy
Mar 1 Sun Long Endurance 240 200 200m @ 72% FTP + 25m @ 65% FTP
Mar 2 Mon Recovery Ride 60 30 60m @ 55% FTP
Mar 3 Tue Aerobic Endurance 120 94 10m ramp + 100m @ 70% FTP + 10m easy
Mar 4 Wed VO2 Max 6×4 68 95 6×4m @ 115% FTP
Mar 5 Thu Aerobic Endurance 150 125 130m @ 72% FTP
Mar 6 Fri Over Under 2×12 55 69 2×12m over/under @ 95–105% FTP
Mar 7 Sat Long Endurance 270 229 220m @ 72% FTP + 35m @ 70% FTP
Mar 8 Sun Recovery Ride 60 30 60m @ 55% FTP
Mar 9 Mon Aerobic Endurance 120 99 100m @ 72% FTP
Mar 10 Tue Threshold 4×12 92 120 4×12m @ 100% FTP
Mar 11 Wed VO2 Max 5×5 70 99 5×5m @ 115% FTP
Mar 12 Thu Aerobic Endurance 150 125 130m @ 72% FTP

A substantial build block is planned — the Sunday Long Endurance (200 TSS, 4h) and the following Saturday Long Endurance (229 TSS, 4.5h) represent the two biggest load events. The VO2 Max sessions on March 4 and 11 introduce structured high-intensity work alongside the aerobic base.


:date: Planned Load by Date

Date Events Duration (min) Load
Feb 26 1 120 94
Feb 27 1 80 108
Feb 28 1 120 99
Mar 1 1 240 200
Mar 2 1 60 30
Mar 3 1 120 94
Mar 4 1 68 95
Mar 5 1 150 125
Mar 6 1 55 69
Mar 7 1 270 229
Mar 8 1 60 30
Mar 9 1 120 99
Mar 10 1 92 120
Mar 11 1 70 99
Mar 12 1 150 125

:crystal_ball: 15-Day Forecast (Feb 26 – Mar 13)

Metric Current Forecast
CTL (Fitness) 78.4 91.8
ATL (Fatigue) 89.4 97.0
TSB (Form) -11.0 -5.2
Load Trend Increasing
Phase Optimal

If the planned block is executed, CTL is projected to climb from 78.4 to 91.8 — a significant fitness gain of +13 points over 15 days. TSB improves modestly to -5.2, keeping form in the productive range.


:chequered_flag: Closing Note

Handled Appropriately. ACWR at 1.07 confirms last week’s load was absorbed within the productive training band, and training state is classified as Productive with stable adaptation signals. FatigueTrend at +28.7% is elevated and warrants monitoring — ATL is persistently above CTL — but the positive HRV trend (+6.9) indicates autonomic recovery is tracking well. NDLI has entered amber (195,767 J, 3 high-intensity days), so today’s Aerobic Endurance session at 70% FTP is appropriately calibrated to reduce neuromuscular density before Friday’s Threshold 3×15. Durability remains stable at mean decoupling of 4.50%.

I hope that helps

Clive

1 Like

Hi Clive,

thank you for the outstanding work you’re doing — I really appreciate it.

Just one small point: chats created through CoachV5 can’t be kept at the top of the list or pinned in ChatGPT. They don’t seem to be fixable in place.

Do you know why this is happening?

Thanks again,
Gigi

Oh I love it.
I’ll try to setup Claude Desktop and MCP.
Thank you !

1 Like

Sadly at the moment you currently cannot pin GPT chats inside the ChatGPT mobile or web app because OpenAI has not implemented a pin feature for community GPTs.

What you can do instead

  1. Rename important chats
    Give it a structured name like:
    Coaching App
    Montis.icu Coach
    Etc.
    Chats are sorted by recent activity.

  2. Use Search
    Use the search bar at the top.
    It indexes titles and message content.

(I use Search mostly on Keywords after renaming the chat)

Clive

1 Like

I found your agent in GPT and I see it’s asking quite a few permissions where could I find more details? What is the minimum permission level for features to work?
Right now I’m only copy/pasting some specific data from Intervals into GPT to get advice on particular points. I’m relying on Garmin for Wellness stats/advice, Stryd for running load (road+trail my primary sports) and I keep a loop at Load on Intervals as well as in Nolio. What I’m actually after with a custom agent is more a “weekly report” that would be almost like a coach would be able to do, using all the different data. I believe Intervals would have the capability to capture the various data feeds and then provide that to an AI.

I have see other threads in this forum about other AI agents or applications, which sometimes are not free. It is really difficult to compare them and see which one is the best. It’s great to see developers being active and try to improve, on the other hand I’d like to be sure what’s being done with my data and if there’s a way to delete/remove them from the app once I do not use it anymore.

I’ve updated how this works, improved security model and updated the instructions.

Br

Clive

Hi Ohmax

Permissions needed are for accessing intervals.icu API from the application. This is normal.

Setup is outlined here First-Time Setup — Montis.icu Coach App

The application needs Read access to most endpoints and write to calendar should you wish to create workouts in intervals to follow.

I prepopulate what’s needed, just click OK when prompted.

Once the weekly report is loaded you can ask it many questions about your data. The report presents a coaching outlook, however many other questions can be asked: e.g

Montis.icu Coach App — Training Intelligence Questions

I’m sure others have some great questions also!

You can easily remove access by going to your intervals.icu account settings/applications, click on permissions provided, uncheck them all and it will disappear.

The app is stateless and does not store any data anywhere, intervals.icu is the source.

Clive

1 Like

Many thanks for your feedback. I’ve completed the setup, left the default except chats that I unticked I guess no big issue? I didn’t have Garmin Wellness synchronized before, so I’ve also enabled it just before and downloaded data from when I started my trail prep work 27Oct.

Because I’m currently updating Intervals activities manually with FIT files, the data quality check detected that in last days there were no activities. But I asked a report for the previous week and this worked. I also asked analysis of a specific workout (I did a 6h trail run last week) and it’s really interesting insights I love it. I really like the ‘scientific’ approach and feel of the report.

Are there any ultra trail runners here using your AI agent? I’m interested on use cases and sample prompts to get the best of it :wink:

1 Like

In a report this morning I spotted the following output in the Meta section:

" Primary Sport: Ride"

I asked the agent where to change that but can’t find it in Intervals :frowning:
Not sure if this has an influence on the output?

Right now I use HRV data from Garmin but this is not ideal I understood it’s best to take morning measurement using HRV4TRAINING (I did that for one year but this takes some discipline). If there would be two differences sources (night HRV + morning measure with HRV4TRAINING) could this be taken as context all together?

Hi Clive,
I’ve been getting this error since yesterday. Is there any way to fix it?

1 Like

Hi FranzS, Nice find. Proper Python bug. Hopefully now fixed. Let me know.

Clive

Unfortunately, the error is still there :pensive_face:

Hello again Clive,

I use Montis to create workout files that I can run on Zwift or follow on my garmin which is amazing but I often have to be really specific about adding fuelling targets based on my weight and load etc - the sort of normal stuff a coach would do - so what I wondered was if Montis could add those automaticall when it generates workouts? Not sure how easy that is to code in but much like you’ve written the code to follow the coaching principles mentioned on your site, it would be great if it could automatically add fuelling targets based on nutrition principles so that when a workout is automatically added to the calendar, fuelling targets are already there without prompt. I’m sure more people would find this useful too. If you really wanted to geek out you could mention fuelling related to weight and planned weekly load so that recovery for follow on sessions is also prioritised.

Still loving it. Brilliant stuff and I’ll send you a few coffees too.

1 Like

Hi FranzS, certainly odd. I’ve identified a code issue and fixed this by removing duplicates (the issue), but it’s odd that it only occurring for you (looking at my error logs). Have you added any custom fields recently in intervals.icu ? Clive

Hi Alan, great idea. Let me see what is possible. Indeed, I love the fact the workouts also appear in Zwift and Garmin as well ready to go. Although my legs didn’t thank my 6x4 outside last week :wink:

Clive

I didn’t add any new data fields. I tried reconnecting the account, but to no avail.

Hi Franz,

I cannot replicate your error. However, I have put some safeguards in place. It is to do with the subjective markers entered for daily wellness. Let me know.

Clive

Hi Clive,
Thank you for your help, the query is working fine.

1 Like

Morning Clive,

I’m using Plan Builder (with Base/Build/Peak phases and CTL projection visible in the UI), but when querying the API endpoint:

getAthleteTrainingPlanV1

it returns:

training_plan: null

So although Plan Builder is clearly active, the API indicates no plan exists.

It appears the endpoint only returns the legacy Training Plan object and does not expose Plan Builder configuration (phases, CTL targets, ramp logic, etc.).

Is there currently any API support for accessing active Plan Builder architecture? Or is this intentionally not exposed?

Thanks!