Open Triathlon Coach for ChatGPT - public beta

Hi everyone,

I’ve now made Open Triathlon Coach for ChatGPT available as a public beta.

It is an independent, open-source custom GPT that connects to each athlete’s own Intervals.icu account through OAuth and uses live training, wellness, threshold and calendar data to provide triathlon-focused analysis and coaching. Focus is for triathlon but there’s no reason it shouldn’t be able to handle bike, run and swim on their own or other sports, but it’s knowledge is triathlon focused. I’ve been using it for the last 5 months and I’m quite happy with it so I’ve decided to make it public.

The project is not affiliated with or endorsed by Intervals.icu or OpenAI.

What it can currently do

The coach can:

  • review recent swim, bike and run training;
  • analyse individual activities and interval structure;
  • read FTP, threshold pace, heart-rate thresholds and configured zones;
  • review training load, fitness, fatigue and form;
  • combine activity data with sleep, HRV, resting heart rate and wellness information where available;
  • review upcoming workouts, recovery days and races;
  • identify possible inconsistencies in a training plan;
  • help build or adjust a training week;
  • create planned calendar workouts after confirmation;
  • update selected wellness fields after explicit confirmation.

It also includes specific safeguards for Intervals.icu pace and unit handling. For example, numeric threshold pace values are treated as speed in metres per second and converted mathematically into min/km, min/mile, min/100 m or min/100 yd.

How the connection works

The connection uses Intervals.icu OAuth.

Users should never need to provide:

  • an athlete ID;
  • an API key;
  • a password;
  • an OAuth token;
  • an Authorization header.

All athlete-specific requests use /athlete/0, which Intervals.icu resolves to the athlete who authorised the connection.

The project does not operate a separate OAuth proxy, athlete database or intermediary API server.

Important ChatGPT plan limitation

The GPT itself and the Intervals.icu Action are separate capabilities.

Current testing shows:

  • ChatGPT Plus: validated end to end, including OAuth, authenticated reads and a controlled calendar write.
  • ChatGPT Free: the test account could open and use the GPT, but the Intervals.icu Action was unavailable, so OAuth could not start.
  • ChatGPT Go: not yet tested.
  • Managed Business, Enterprise or Education workspaces: not yet tested and may depend on workspace Action permissions.

This does not prove that every account on the same plan will behave identically. It means that the live Intervals.icu connection currently requires a ChatGPT account, model and session in which custom GPT Actions are available.

If the Action is unavailable, the coach should say so clearly. It should not ask for an athlete ID or API key as an alternative, because neither can replace the OAuth connection.

Data quality limitations

The coach can only analyse the data that reaches Intervals.icu.

Its conclusions therefore depend on the quality and completeness of data from devices and services such as:

  • Garmin, Wahoo, COROS, Polar and Suunto;
  • Zwift and smart trainers;
  • cycling power meters;
  • heart-rate sensors;
  • pool and open-water activity files;
  • sleep, HRV and wellness integrations.

Missing power, inaccurate GPS, incorrect pool length, duplicate activities, poor heart-rate data or incomplete wellness information can all affect the analysis.

The coach should acknowledge missing or questionable data rather than pretending that the dataset is complete.

Safety and write access

Write access is deliberately limited.

The GPT can currently:

  • create calendar events;
  • update selected wellness fields.

It cannot delete activities or calendar items.

Material changes require explicit user intent and confirmation. Retrieved text—such as activity titles, notes, calendar descriptions, uploaded files or workout-library content—is treated as untrusted data and cannot authorise a write or override the coach’s rules.

This remains an AI coaching and analysis tool, not a medical device. Thresholds, dates, units and important training decisions should still be checked.

Links

Open Triathlon Coach for ChatGPT

GitHub repository

Project page

Privacy policy

Feedback wanted

This is still a public beta, and I would particularly appreciate testing from athletes with:

  • different metric and imperial configurations;
  • unusual threshold or zone setups;
  • limited wellness data;
  • multiple sports and custom activity types;
  • duplicate or incomplete activities;
  • different Garmin, Zwift, Wahoo, COROS, Polar or Suunto workflows;
  • a non-builder ChatGPT Plus account;
  • ChatGPT Go or a managed workspace where custom Actions are permitted.

Please report issues through GitHub, but do not include API keys, OAuth tokens, passwords, private medical information or complete personal activity exports in public issues.

Feedback on coaching quality, missing use cases, API efficiency, documentation and incorrect interpretations would be very welcome.

Just had my first sprint tri last weekend and finished 15th overall with the 6th bike time out of 185. I only used this coach to create my training plans and review my sessions. My bike FTP went from 166W to 250W+ in 7 months. I think it works well for beginners like me at least, give it a try!