Rank
70
AI Agents & MCPs & AI Workflow Automation โข (~400 MCP servers for AI agents) โข AI Automation / AI Agent with MCPs โข AI Workflows & AI Agents โข MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Xpersona Agent
Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Skill: Garmin Connect (Fixed) Owner: GodsBoy Summary: Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Tags: latest:1.1.0 Version history: v1.1.0 | 2026-01-28T07:43:19.022Z | user Fork of garmin-connect v1.0.0 with fixes: Fixed daily summary 403 error (display_name was None - now fetches from socialProfile endpoint). Fixed requirements.txt
clawhub skill install kn70jpv4vft60w34b6sa1p6dqh8024yf:garmin-connect-fixedOverall rank
#62
Adoption
1.8K downloads
Trust
Unknown
Freshness
Feb 28, 2026
Freshness
Last checked Feb 28, 2026
Best For
Garmin Connect (Fixed) is best for general automation workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, CLAWHUB, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Skill: Garmin Connect (Fixed) Owner: GodsBoy Summary: Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Tags: latest:1.1.0 Version history: v1.1.0 | 2026-01-28T07:43:19.022Z | user Fork of garmin-connect v1.0.0 with fixes: Fixed daily summary 403 error (display_name was None - now fetches from socialProfile endpoint). Fixed requirements.txt Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Feb 28, 2026
Vendor
Clawhub
Artifacts
0
Benchmarks
0
Last release
1.1.0
Install & run
clawhub skill install kn70jpv4vft60w34b6sa1p6dqh8024yf:garmin-connect-fixedPython environment detected. Create a strict virtual environment (`python -m venv .venv`) before installing dependencies to prevent system-level package conflicts.
Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Clawhub
Protocol compatibility
OpenClaw
Latest release
1.1.0
Adoption signal
1.8K downloads
Handshake status
UNKNOWN
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
4
Examples
6
Snippets
0
Languages
Unknown
bash
pip install -r requirements.txt
bash
python3 scripts/garmin-auth.py your-email@gmail.com your-password
bash
python3 scripts/garmin-sync.py
bash
*/5 * * * * /home/user/garmin-connect-clawdbot/scripts/garmin-cron.sh
bash
*/5 * * * * python3 /home/user/garmin-connect-clawdbot/scripts/garmin-sync.py ~/.clawdbot/.garmin-cache.json
python
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']}")SKILL.md
---
name: garmin-connect
description: "Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth."
---
# Garmin Connect Skill
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
## Quick Start
### 1. Install Dependencies
```bash
pip install -r requirements.txt
```
### 2. OAuth Authentication (One-time)
```bash
python3 scripts/garmin-auth.py your-email@gmail.com your-password
```
This saves your OAuth session to `~/.garth/session.json` โ fully local and secure.
### 3. Test Sync
```bash
python3 scripts/garmin-sync.py
```
You should see JSON output with today's stats.
### 4. Set Up 5-Minute Cron
Add to your crontab:
```bash
*/5 * * * * /home/user/garmin-connect-clawdbot/scripts/garmin-cron.sh
```
Or manually:
```bash
*/5 * * * * python3 /home/user/garmin-connect-clawdbot/scripts/garmin-sync.py ~/.clawdbot/.garmin-cache.json
```
### 5. Use in Clawdbot
Import and use in your scripts:
```python
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']}")
```
## Features
โ
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
## Data Captured
### Daily Activity (`summary`)
- `steps`: Daily step count
- `heart_rate_resting`: Resting heart rate (bpm)
- `calories`: Total calories burned
- `active_minutes`: Intensity minutes
- `distance_km`: Distance traveled
### Sleep (`sleep`)
- `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
### Workouts (`workouts`)
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
## Cache Location
By default, data is cached at: `~/.clawdbot/.garmin-cache.json`
Customize with:
```bash
python3 scripts/garmin-sync.py /custom/path/cache.json
```
## Files
| File | Purpose |
|------|---------|
| `garmin-auth.py` | OAuth setup (run once) |
| `garmin-sync.py` | Main sync logic (run every 5 min) |
| `garmin-formatter.py` | Format data for display |
| `garmin-cron.sh` | Cron wrapper script |
| `requirements.txt` | Python dependencies |
##README.md
# Garmin Connect Integration for Clawdbot
Sync your Garmin fitness data (steps, HR, calories, workouts, sleep) automatically to Clawdbot every 5 minutes.
## Quick Start
### 1. Install Dependencies
```bash
pip install -r requirements.txt
```
### 2. Authenticate with OAuth
Run the authentication script:
```bash
python3 scripts/garmin-auth.py your-email@gmail.com your-password
```
This saves your OAuth session to `~/.garth/session.json` (local, secure).
โ ๏ธ **Keep this file safe** โ it contains your Garmin OAuth token.
### 3. Test
```bash
python3 scripts/garmin-sync.py
```
You should see JSON output with your current Garmin data.
### 4. Set Up Cron (5-minute sync)
Add to your crontab:
```bash
*/5 * * * * python3 /path/to/scripts/garmin-sync.py
```
### 5. Use in Your Scripts
Import Garmin data in any Clawdbot script:
```python
from garmin_connect_clawdbot.scripts.garmin_formatter import format_all, get_as_dict
# Get all formatted data
all_data = format_all()
print(all_data)
# Or get raw dictionary
data = get_as_dict()
steps = data['summary']['steps']
sleep_hours = data['sleep']['duration_hours']
```
## Features
- โ
OAuth-based authentication (secure)
- โ
Real-time sync every 5 minutes
- โ
Sleep quality tracking (duration, deep/REM/light sleep)
- โ
Daily activity metrics (steps, HR, calories, distance)
- โ
Workout tracking (all activity types)
- โ
Body battery monitoring
- โ
Local caching (JSON)
- โ
Easy Clawdbot integration
## Scripts
| Script | Purpose |
|--------|---------|
| `garmin-auth.py` | OAuth authentication (run once) |
| `garmin-sync.py` | Sync all data from Garmin |
| `garmin-formatter.py` | Format data for display |
| `garmin-cron.sh` | Wrapper for cron jobs |
## Data Caching
Data is cached locally in JSON format for quick access without constant API calls.
### Data Structure
The cached data contains:
- **summary**: Daily activity (steps, heart rate, calories, active minutes, distance)
- **sleep**: Sleep metrics (duration, quality, deep/REM/light sleep breakdown)
- **workouts**: Recent activities (type, distance, duration, calories, heart rate)
## Usage Examples
### Format All Data
```python
from scripts.garmin_formatter import format_all
output = format_all() # Returns formatted string
print(output)
```
### Access Raw Data
```python
from scripts.garmin_formatter import get_as_dict
data = get_as_dict()
if data:
print(f"Sleep: {data['sleep']['duration_hours']}h")
print(f"Steps: {data['summary']['steps']:,}")
print(f"Workouts: {len(data['workouts'])} activities")
```
### Format Specific Metrics
```python
from scripts.garmin_formatter import format_daily_summary, format_sleep, format_workouts
# Use individually
print(format_daily_summary())
print(format_sleep())
print(format_workouts())
```
## Troubleshooting
### Authentication Failed
- Check email/password
- Ensure 2FA is **OFF** on Garmin (or use app-specific password)
- Garmin servers might rate-limit โ wait 5 minutes
### No Sleep Da_meta.json
{
"ownerId": "kn70jpv4vft60w34b6sa1p6dqh8024yf",
"slug": "garmin-connect-fixed",
"version": "1.1.0",
"publishedAt": 1769586199022
}requirements.txt
garminconnect>=0.2.38 requests>=2.28.0 python-dateutil>=2.8.2
Editorial read
Docs source
CLAWHUB
Editorial quality
ready
Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Skill: Garmin Connect (Fixed) Owner: GodsBoy Summary: Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth. Tags: latest:1.1.0 Version history: v1.1.0 | 2026-01-28T07:43:19.022Z | user Fork of garmin-connect v1.0.0 with fixes: Fixed daily summary 403 error (display_name was None - now fetches from socialProfile endpoint). Fixed requirements.txt
Skill: Garmin Connect (Fixed)
Owner: GodsBoy
Summary: Garmin Connect integration for Clawdbot: sync fitness data (steps, HR, calories, workouts, sleep) every 5 minutes using OAuth.
Tags: latest:1.1.0
Version history:
v1.1.0 | 2026-01-28T07:43:19.022Z | user
Fork of garmin-connect v1.0.0 with fixes: Fixed daily summary 403 error (display_name was None - now fetches from socialProfile endpoint). Fixed requirements.txt (garminconnect>=0.3.2 doesn't exist, corrected to >=0.2.38). All data (steps, HR, calories, sleep, workouts) now works. Contributed by @GodsBoy7777.
Archive index:
Archive v1.1.0: 10 files, 10838 bytes
Files: README.md (3570b), requirements.txt (62b), scripts/garmin-auth-oauth.py (2066b), scripts/garmin-auth.py (1548b), scripts/garmin-cron.sh (434b), scripts/garmin-formatter.py (3112b), scripts/garmin-sync-oauth.py (4453b), scripts/garmin-sync.py (5563b), SKILL.md (4107b), _meta.json (139b)
File v1.1.0:SKILL.md
Sync all your Garmin fitness data to Clawdbot:
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
summary)steps: Daily step countheart_rate_resting: Resting heart rate (bpm)calories: Total calories burnedactive_minutes: Intensity minutesdistance_km: Distance traveledsleep)duration_hours: Total sleep timeduration_minutes: Sleep in minutesquality_percent: Sleep quality score (0-100)deep_sleep_hours: Deep sleep durationrem_sleep_hours: REM sleep durationlight_sleep_hours: Light sleep durationawake_minutes: Time awake during sleepworkouts)For each recent workout:
type: Activity type (Running, Cycling, etc.)name: Activity namedistance_km: Distance traveledduration_minutes: Duration of activitycalories: Calories burnedheart_rate_avg: Average heart rateheart_rate_max: Max heart rateBy default, data is cached at: ~/.clawdbot/.garmin-cache.json
Customize with:
python3 scripts/garmin-sync.py /custom/path/cache.json
| File | Purpose |
|------|---------|
| garmin-auth.py | OAuth setup (run once) |
| garmin-sync.py | Main sync logic (run every 5 min) |
| garmin-formatter.py | Format data for display |
| garmin-cron.sh | Cron wrapper script |
| requirements.txt | Python dependencies |
garmin-sync.py againchmod +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
File v1.1.0:README.md
Sync your Garmin fitness data (steps, HR, calories, workouts, sleep) automatically to Clawdbot every 5 minutes.
pip install -r requirements.txt
Run the authentication script:
python3 scripts/garmin-auth.py your-email@gmail.com your-password
This saves your OAuth session to ~/.garth/session.json (local, secure).
โ ๏ธ Keep this file safe โ it contains your Garmin OAuth token.
python3 scripts/garmin-sync.py
You should see JSON output with your current Garmin data.
Add to your crontab:
*/5 * * * * python3 /path/to/scripts/garmin-sync.py
Import Garmin data in any Clawdbot script:
from garmin_connect_clawdbot.scripts.garmin_formatter import format_all, get_as_dict
# Get all formatted data
all_data = format_all()
print(all_data)
# Or get raw dictionary
data = get_as_dict()
steps = data['summary']['steps']
sleep_hours = data['sleep']['duration_hours']
| Script | Purpose |
|--------|---------|
| garmin-auth.py | OAuth authentication (run once) |
| garmin-sync.py | Sync all data from Garmin |
| garmin-formatter.py | Format data for display |
| garmin-cron.sh | Wrapper for cron jobs |
Data is cached locally in JSON format for quick access without constant API calls.
The cached data contains:
from scripts.garmin_formatter import format_all
output = format_all() # Returns formatted string
print(output)
from scripts.garmin_formatter import get_as_dict
data = get_as_dict()
if data:
print(f"Sleep: {data['sleep']['duration_hours']}h")
print(f"Steps: {data['summary']['steps']:,}")
print(f"Workouts: {len(data['workouts'])} activities")
from scripts.garmin_formatter import format_daily_summary, format_sleep, format_workouts
# Use individually
print(format_daily_summary())
print(format_sleep())
print(format_workouts())
garmin-sync.py logsRun the sync script manually:
python3 scripts/garmin-sync.py
Check the output for errors.
MIT โ Use freely, fork, modify as needed.
Made for Clawdbot | Available on ClawdHub
File v1.1.0:_meta.json
{ "ownerId": "kn70jpv4vft60w34b6sa1p6dqh8024yf", "slug": "garmin-connect-fixed", "version": "1.1.0", "publishedAt": 1769586199022 }
File v1.1.0:requirements.txt
garminconnect>=0.2.38 requests>=2.28.0 python-dateutil>=2.8.2
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "CLAWHUB",
"generatedAt": "2026-04-17T05:12:54.780Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceUrl": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.8K downloads",
"href": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceUrl": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.1.0",
"href": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceUrl": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-01-28T07:43:19.022Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "release",
"title": "Release 1.1.0",
"description": "Fork of garmin-connect v1.0.0 with fixes: Fixed daily summary 403 error (display_name was None - now fetches from socialProfile endpoint). Fixed requirements.txt (garminconnect>=0.3.2 doesn't exist, corrected to >=0.2.38). All data (steps, HR, calories, sleep, workouts) now works. Contributed by @GodsBoy7777.",
"href": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceUrl": "https://clawhub.ai/GodsBoy/garmin-connect-fixed",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-01-28T07:43:19.022Z",
"isPublic": true
}
]Sponsored
Ads related to Garmin Connect (Fixed) and adjacent AI workflows.