Garmin Integration¶
Cadence connects to Garmin Connect to pull running activities, health metrics, sleep data, and more.
Setup¶
Set your Garmin Connect credentials in .env:
No developer app registration is needed — Cadence uses the garminconnect library to authenticate directly with your account.
Token Storage
Garmin OAuth tokens are stored in an ephemeral temp directory for security. The encrypted database is the source of truth — tokens are refreshed automatically.
Available Data¶
Activities & Running¶
| Data | Tool | Description |
|---|---|---|
| Recent runs | garmin_get_recent_runs |
Running activities with distance, pace, duration, HR |
| Run details | garmin_get_run_details |
Per-km splits, HR zones, elevation, cadence |
| All activities | garmin_get_activities |
All activity types (cycling, swimming, etc.) |
| Weekly volume | garmin_get_weekly_running_volume |
Total km/week with 10% spike detection |
| Activity weather | garmin_get_activity_weather |
Temperature, humidity, wind during activity |
Fitness Metrics¶
| Data | Tool | Description |
|---|---|---|
| VO2max | garmin_get_vo2_max |
Current VO2max estimate and fitness age |
| VO2max trend | garmin_get_vo2_max_trend |
Weekly VO2max readings over time |
| Training status | garmin_get_training_status |
Productive/Recovery/Peaking/etc. with load |
| Race predictions | garmin_get_race_predictions |
Predicted 5K, 10K, half, marathon times |
| Fitness age | garmin_get_fitness_age |
Chronological vs. biological age |
| Endurance score | garmin_get_endurance_score |
Endurance classification |
Health & Recovery¶
| Data | Tool | Description |
|---|---|---|
| Sleep | garmin_get_sleep |
Stages (deep, light, REM, awake), SpO2, respiration |
| HRV | garmin_get_hrv |
Heart rate variability with weekly avg and baseline |
| Body Battery | garmin_get_body_battery |
Current level, high, low, charged during sleep |
| Stress | garmin_get_stress |
Average/max stress, time in stress zones |
| Resting HR | garmin_get_resting_hr |
Daily resting heart rate history |
| Body composition | garmin_get_body_composition |
Weight, body fat, muscle mass, BMI |
| Respiration | garmin_get_respiration |
Average/high/low respiration rates |
| SpO2 | garmin_get_spo2 |
Blood oxygen saturation |
Cross-Platform Tools¶
When Garmin is connected, the cross-platform coaching tools (coach_*) will automatically pull Garmin data where it's the best source. For example, coach_get_readiness uses Garmin's training readiness score, and get_sleep will use Garmin sleep data if WHOOP isn't connected.