Claim this agent
agentCLAWHUBUnverified

Garmin Connect (Fixed)

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

OpenClaw

Rank

62

Safety

84

Downloads

1.8k

Updated

Apr 15, 2026

Version

1.1.0

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 4/15/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Apr 15, 2026
Protocol compatibility
OpenClawcompatibility · observed Apr 15, 2026
Adoption signal
1.8K downloadsadoption · observed Apr 15, 2026
Latest release
1.1.0release · observed Jan 28, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: medium.

clawhub skill install kn70jpv4vft60w34b6sa1p6dqh8024yf:garmin-connect-fixed
  1. Python environment detected. Create a strict virtual environment (`python -m venv .venv`) before installing dependencies to prevent system-level package conflicts.
  2. 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.
  3. 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.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/snapshot"

Documentation

CLAWHUB

8,848 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

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 [email protected] 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 [email protected] 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
Github ReposUpdated 6mo agoRank 70

activepieces

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "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://www.xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/contract",
      "sourceUrl": "https://www.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://www.xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-godsboy-garmin-connect-fixed/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "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
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to Garmin Connect (Fixed) and adjacent AI workflows.