create_exercise
ChatGPTCreate a new exercise in your own private library when none of the existing ones fit the movement you need — never visible to other users, only to you and in any workout you build.
create_food
ChatGPTAdd a new food to the catalog, for yourself or for a trainee you coach. Use this when a food you want in a meal (see create_saved_meal) doesn't already exist — look it up first with the app's search if unsure. Requires nutrition access (yours, or the combined coach/trainee rule for traineeId — same as get_trainee_nutrition_target).
create_program
ChatGPTCreate a new program for this user: a name, optional start/end dates, and zero or more workouts placed in it (each either an existing workoutId or a brand new inline workout). Use this instead of create_workout when you want to schedule a workout on specific weekdays, or group several workouts (e.g. a Push/Pull/Legs split) under one dated plan. Creating a program notifies this user's app and devices.
create_program_for_trainee
ChatGPTCreate a new program directly in a trainee's account (same shape as create_program). This writes into the trainee's account and notifies them.
create_saved_meal
ChatGPTCreate a reusable named meal (a composition of existing catalog foods at fixed portions), for yourself or for a trainee. Every item must reference an existing foodId — call create_food first for anything missing from the catalog.
create_workout
ChatGPTCreate a new workout (a single session) for this user, made of one or more blocks. A block with a single item is a normal exercise; a block with 2+ items is a superset (done back to back, sharing the same number of sets). Creating a workout notifies this user's app and devices. estimatedDurationSeconds is computed automatically from the blocks, not settable here. A workout always lives inside a program: this call automatically creates a small undated program to hold it, so it shows up in the app right away — use create_program instead if you want to schedule it or group it with other workouts up front.
create_workout_for_trainee
ChatGPTCreate a new workout directly in a trainee's account (same shape as create_workout, including the automatic wrapping program). This writes into the trainee's account and notifies them.
delete_program
ChatGPTPermanently delete a program owned by this user. Any workout that only existed in this program is deleted with it; a workout also placed in another program is kept there. This notifies the user's app and devices.
delete_program_for_trainee
ChatGPTPermanently delete one of a trainee's programs (same orphan-cleanup rule as delete_program). This notifies the trainee.
delete_workout
ChatGPTPermanently delete a workout owned by this user, including its blocks. If this was the only workout in its program, that program is deleted too. This notifies the user's app and devices.
delete_workout_for_trainee
ChatGPTPermanently delete one of a trainee's workouts, including its blocks. This notifies the trainee.
duplicate_saved_meal
ChatGPTClone an existing meal you can see (your own, one assigned to you, or a shared-catalog one) into a new copy assigned to yourself or to a trainee — e.g. the "pizza diet" meal you made for one trainee, duplicated for another. You become the author of the copy; the original is untouched.
get_nutrition_target
ChatGPTGet this user's current daily nutrition target (calories + protein/carbs/fat in grams), or null if none is set yet. Requires an active Plus/Coach plan, or being within the account’s first free month — fails otherwise.
get_program
ChatGPTGet the full detail of one program: its dates and the ordered list of workouts placed in it, each with its own scheduled days.
get_trainee_nutrition_target
ChatGPTGet a trainee's current daily nutrition target — same data as get_nutrition_target. Requires BOTH sides to have nutrition unlocked: you on a Coach plan (or on the free plan with exactly one trainee, if that trainee has their own Plus access), AND the trainee on their own Plus-or-better plan. If the trainee is the one missing it, the error explains that so you can relay it to them.
get_trainee_program
ChatGPTGet the full detail of one of a trainee's programs.
get_trainee_workout
ChatGPTGet the full detail of one of a trainee's workouts.
get_trainee_workout_log
ChatGPTGet the full detail of one of a trainee's workout sessions.
get_workout
ChatGPTGet the full detail of one workout, including its blocks and exercises.
get_workout_log
ChatGPTGet the full detail of one workout session: every set logged, with the exercise name and both the planned and actual reps/weight/duration/distance — what actually happened, not just what was prescribed.
list_exercises
ChatGPTList exercises you can use: the shared catalog plus your own private exercises. Optionally filtered by category and/or tracking type.
list_messaging_contacts
ChatGPTList the people you're allowed to message — your coach(es) and/or trainee(s) with an accepted coaching relationship.
list_my_trainees
ChatGPTList the trainees this user coaches (accepted coaching relationships only).
list_nutrition_logs
ChatGPTList this user's logged meals, most recent first — one summary per meal (meal type, logged items, and totals for calories/protein/carbs/fat). Use this to see actual nutrition adherence before adjusting a target. Requires an active Plus/Coach plan, or being within the account’s first free month — fails otherwise.
list_programs
ChatGPTList this user's programs — a program is a named, optionally dated collection of one or more workouts (a multi-week split, or just a single standalone workout wrapped on its own).
list_saved_meals
ChatGPTList the meals you've authored — omit traineeId to see all of them, or pass one to narrow to what you created for that specific trainee.
list_trainee_nutrition_logs
ChatGPTList a trainee's logged meals, most recent first — same data as list_nutrition_logs. Requires BOTH sides to have nutrition unlocked: you on a Coach plan (or on the free plan with exactly one trainee, if that trainee has their own Plus access), AND the trainee on their own Plus-or-better plan. If the trainee is the one missing it, the error explains that so you can relay it to them.
list_trainee_programs
ChatGPTList a trainee's programs — same data as list_programs, for a trainee you coach.
list_trainee_workout_logs
ChatGPTList a trainee's workout session history — same data as list_workout_logs.
list_trainee_workouts
ChatGPTList a trainee's workouts — same data as list_workouts, for a trainee you coach.
list_workout_logs
ChatGPTList this user's completed/abandoned workout sessions, most recent first — one summary per session (status, RPE rating 1-5, free-text feedback notes, and completed/skipped/failed set counts). Use this to see how training has actually gone before adjusting a workout: RPE trending low with everything COMPLETED suggests it is time to progress the load; frequent SKIPPED/FAILED sets or high RPE suggests a deload or an exercise swap. Call get_workout_log for the planned-vs-actual detail of one session.
list_workouts
ChatGPTList this user's workouts (each workout is a single session, e.g. "Push day").
send_message
ChatGPTSend a chat message to one of your coaches or trainees (see list_messaging_contacts). To message several people, call this once per recipient — each conversation is always 1:1.
set_nutrition_favorite
ChatGPTFavorite or unfavorite a food or a meal, for yourself or for a trainee — drives that account's quick-add favorites row in the app.
set_nutrition_target
ChatGPTSet this user's daily nutrition target. Replaces the previous target entirely (all four fields required) — call get_nutrition_target first if you need the current values to compute an adjustment (e.g. +20g protein) rather than setting a target from scratch. Requires an active Plus/Coach plan, or being within the account’s first free month — fails otherwise.
set_nutrition_target_for_trainee
ChatGPTSet a trainee's daily nutrition target (same replace-entirely semantics as set_nutrition_target — call get_trainee_nutrition_target first for the current values). Requires BOTH sides to have nutrition unlocked: you on a Coach plan (or on the free plan with exactly one trainee, if that trainee has their own Plus access), AND the trainee on their own Plus-or-better plan. If the trainee is the one missing it, the error explains that so you can relay it to them.
set_program_favorite
ChatGPTStar or unstar a program as the one featured at the top of the Programs list / Home hero, for yourself or for a trainee. Starring one automatically un-stars whatever that account had favorited before (only one at a time) — this is unrelated to nutrition access, no plan required.
update_food
ChatGPTEdit a food you authored or are assigned — fails on the shared catalog or anyone else’s food. traineeId only affects which nutrition-access rule is checked (pass the trainee this food belongs to); the edit itself is still only allowed if you authored it or it is assigned to you.
update_my_exercise
ChatGPTEdit an exercise YOU created in your own private library (see list_exercises' createdByName) — fails on any exercise you don't own, including the shared built-in catalog ones. Provide just the fields to change; everything else stays as-is.
update_program
ChatGPTUpdate an existing program owned by this user. If workouts is provided, it fully replaces (removes and recreates) the previous placements — reordering, rescheduling, adding, or removing a workout from the program all go through this one field. Removing a workout that only exists in this program is refused — delete_workout it directly instead, or place it in another program first. Updating a program notifies this user's app and devices.
update_program_for_trainee
ChatGPTUpdate one of a trainee's existing programs (same shape as update_program; workouts fully replaces the previous placements). This writes into the trainee's account and notifies them.
update_saved_meal
ChatGPTReplace the name and full item list of a meal you authored or are assigned — fails otherwise. items fully replaces the previous ones.
update_workout
ChatGPTUpdate an existing workout owned by this user. If blocks is provided, it fully replaces (deletes and recreates) the previous blocks, and estimatedDurationSeconds is recomputed from them automatically (not settable here). Updating a workout notifies this user's app and devices.
update_workout_for_trainee
ChatGPTUpdate one of a trainee's existing workouts (same shape as update_workout; blocks fully replaces the previous blocks). This writes into the trainee's account and notifies them.
create_exercise
Claudecreate_food
Claudecreate_program
Claudecreate_program_for_trainee
Claudecreate_saved_meal
Claudecreate_workout
Claudecreate_workout_for_trainee
Claudedelete_program
Claudedelete_program_for_trainee
Claudedelete_workout
Claudedelete_workout_for_trainee
Claudeduplicate_saved_meal
Claudeget_nutrition_target
Claudeget_program
Claudeget_trainee_nutrition_target
Claudeget_trainee_program
Claudeget_trainee_workout
Claudeget_trainee_workout_log
Claudeget_workout
Claudeget_workout_log
Claudelist_exercises
Claudelist_messaging_contacts
Claudelist_my_trainees
Claudelist_nutrition_logs
Claudelist_programs
Claudelist_saved_meals
Claudelist_trainee_nutrition_logs
Claudelist_trainee_programs
Claudelist_trainee_workout_logs
Claudelist_trainee_workouts
Claudelist_workout_logs
Claudelist_workouts
Claudesend_message
Claudeset_nutrition_favorite
Claudeset_nutrition_target
Claudeset_nutrition_target_for_trainee
Claudeset_program_favorite
Claudeupdate_food
Claudeupdate_my_exercise
Claudeupdate_program
Claudeupdate_program_for_trainee
Claudeupdate_saved_meal
Claudeupdate_workout
Claudeupdate_workout_for_trainee
Claude