Skip to content

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:

GARMIN_EMAIL=your@email.com
GARMIN_PASSWORD=your-garmin-password

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.