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.
This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.
Use the source page and any available docs to guide the install because the item currently does not return a direct package file.
I tried to install a skill package from Yavira, but the item currently does not return a direct package file. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required. Then review README.md for any prerequisites, environment setup, or post-install checks.
I tried to upgrade a skill package from Yavira, but the item currently does not return a direct package file. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need. Then review README.md for any prerequisites, environment setup, or post-install checks.
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.