Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth.
Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Sync all your Garmin fitness data to Clawdbot: 🚶 Daily Activity: Steps, heart rate, calories, active minutes, distance 😴 Sleep: Duration, quality, deep/REM/light sleep breakdown 🏋️ Workouts: Recent activities with distance, duration, calories, heart rate ⏱️ Real-time sync: Every 5 minutes via cron
pip install -r requirements.txt
python3 scripts/garmin-auth.py your-email@gmail.com your-password This saves your OAuth session to ~/.garth/session.json — fully local and secure.
python3 scripts/garmin-sync.py You should see JSON output with today's stats.
Add to your crontab: */5 * * * * /home/user/garmin-connect-clawdbot/scripts/garmin-cron.sh Or manually: */5 * * * * python3 /home/user/garmin-connect-clawdbot/scripts/garmin-sync.py ~/.clawdbot/.garmin-cache.json
Import and use in your scripts: from scripts.garmin_formatter import format_all, get_as_dict # Get all formatted data print(format_all()) # Or get raw dict data = get_as_dict() print(f"Steps today: {data['summary']['steps']}")
✅ OAuth-based (secure, no password storage) ✅ All metrics: activity, sleep, workouts ✅ Local caching (fast access) ✅ Cron-friendly (5-minute intervals) ✅ Easy Clawdbot integration ✅ Multi-user support
steps: Daily step count heart_rate_resting: Resting heart rate (bpm) calories: Total calories burned active_minutes: Intensity minutes distance_km: Distance traveled
duration_hours: Total sleep time duration_minutes: Sleep in minutes quality_percent: Sleep quality score (0-100) deep_sleep_hours: Deep sleep duration rem_sleep_hours: REM sleep duration light_sleep_hours: Light sleep duration awake_minutes: Time awake during sleep
For each recent workout: type: Activity type (Running, Cycling, etc.) name: Activity name distance_km: Distance traveled duration_minutes: Duration of activity calories: Calories burned heart_rate_avg: Average heart rate heart_rate_max: Max heart rate
By default, data is cached at: ~/.clawdbot/.garmin-cache.json Customize with: python3 scripts/garmin-sync.py /custom/path/cache.json
FilePurposegarmin-auth.pyOAuth setup (run once)garmin-sync.pyMain sync logic (run every 5 min)garmin-formatter.pyFormat data for displaygarmin-cron.shCron wrapper scriptrequirements.txtPython dependencies
Check email/password Disable 2FA on Garmin account (or use app password) Garmin servers might be rate-limiting — wait 5 minutes
Sync your Garmin device with the Garmin Connect app Wait 2-3 minutes for data to sync Check that data appears in Garmin Connect web/app Then run garmin-sync.py again
chmod +x scripts/garmin-cron.sh chmod +x scripts/garmin-sync.py chmod +x scripts/garmin-auth.py
Run garmin-sync.py at least once to create cache: python3 scripts/garmin-sync.py
from scripts.garmin_formatter import format_all, get_as_dict # Get formatted output print(format_all()) # Get raw data data = get_as_dict() if data: print(f"Sleep: {data['sleep']['duration_hours']}h") print(f"Steps: {data['summary']['steps']:,}")
MIT — Use, fork, modify freely. Made for Clawdbot | Available on ClawdHub
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.