Log a workout session
log_workout_sessionRecord detailed workout sessions—activity, timing, intensity, and heart rate—so analytics can explain exactly what you did, not just total minutes.
Instructions
Record one workout as a structured event — activity, timing, intensity, and heart-rate response — rather than folding it into the day's workout_minutes total. Use this alongside (not instead of) log_daily_metric/log_measurement for workout_minutes: this is what lets explain_metric_change say what the workout was, not just how long it ran. A day can have more than one session; each call adds a new row.
Use this tool when:
the user describes an actual workout/exercise session (e.g. "I went running for 40 minutes", "log today's strength workout").
Do not use this tool when:
the user only wants to record the day's total exercise minutes as a single number, with no activity type/timing/intensity -> use
log_daily_metric(workout_minutes) orlog_measurementinstead.
Privacy note: this server and its SQLite file are entirely local, but the data returned by this tool becomes part of the conversation sent to whatever model the calling client is configured with. If that model runs in the cloud rather than on your machine, treat this the same as pasting the data into a chat with that provider.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The day the workout happened, YYYY-MM-DD. | |
| notes | No | Free-text notes, e.g. route or how it felt. Optional. | |
| source | No | Where this came from, e.g. "Apple Watch", "manual". Optional. | |
| intensity | No | One of "low", "moderate", "high". Optional. | |
| start_time | No | When it started, HH:MM (24-hour) or a full ISO timestamp. Optional. | |
| activity_type | Yes | What kind of workout, e.g. "running", "cycling", "strength". Free-form. | |
| avg_heart_rate | No | Average heart rate during the workout, bpm. Optional. | |
| max_heart_rate | No | Peak heart rate during the workout, bpm. Optional. | |
| duration_minutes | Yes | How long it lasted, in minutes. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| session | Yes |