← 返回 Skills 市场
lovefromio

Lovefromio Garmin Health Analysis

作者 AI · GitHub ↗ · v1.2.4 · MIT-0
cross-platform ⚠ suspicious
138
总下载
0
收藏
1
当前安装
2
版本数
在 OpenClaw 中安装
/install lovefromio-garmin-health-analysis
功能描述
Talk to your Garmin data naturally - "what was my fastest speed snowboarding?", "how did I sleep last night?", "what was my heart rate at 3pm?". Access 20+ m...
使用说明 (SKILL.md)

Garmin Health Analysis

Query health metrics from Garmin Connect and generate interactive HTML charts.

Two Installation Paths

This skill supports two different setups:

  1. Clawdbot Skill (this guide) - Use with Clawdbot for automation and proactive health monitoring
  2. MCP Server (see MCP setup guide) - Use with standard Claude Desktop as an MCP server

Choose the path that matches your use case. You can also use both simultaneously!


Clawdbot Skill Setup (first time only)

1. Install Dependencies

pip3 install garminconnect

2. Configure Credentials

You have three options to provide your Garmin Connect credentials:

Option A: Clawdbot Config (Recommended - UI configurable)

Add credentials to ~/.clawdbot/clawdbot.json:

{
  "skills": {
    "entries": {
      "garmin-health-analysis": {
        "enabled": true,
        "env": {
          "GARMIN_EMAIL": "[email protected]",
          "GARMIN_PASSWORD": "your-password"
        }
      }
    }
  }
}

Tip: You can also set these through the Clawdbot UI in the Skills settings panel.

Option B: Local Config File

Create a config file in the skill directory:

cd ~/.clawdbot/skills/garmin-health-analysis
# or: cd \x3Cworkspace>/skills/garmin-health-analysis
cp config.example.json config.json
# Edit config.json and add your email and password

config.json:

{
  "email": "[email protected]",
  "password": "your-password"
}

Note: config.json is gitignored to keep your credentials secure.

Option C: Command Line

Pass credentials directly when authenticating:

python3 scripts/garmin_auth.py login \
  --email [email protected] \
  --password YOUR_PASSWORD

3. Authenticate

Login to Garmin Connect and save session tokens:

python3 scripts/garmin_auth.py login

This uses credentials from (in priority order):

  1. Command line arguments (--email, --password)
  2. Local config file (config.json)
  3. Environment variables (GARMIN_EMAIL, GARMIN_PASSWORD)
  4. Clawdbot config (skills.entries.garmin-health-analysis.env)

Session tokens are stored in ~/.clawdbot/garmin-tokens.json and auto-refresh.

Check authentication status:

python3 scripts/garmin_auth.py status

Fetching Data

Use scripts/garmin_data.py to get JSON data:

# Sleep (last 7 days default)
python3 scripts/garmin_data.py sleep --days 14

# Body Battery (Garmin's recovery metric)
python3 scripts/garmin_data.py body_battery --days 30

# HRV data
python3 scripts/garmin_data.py hrv --days 30

# Heart rate (resting, max, min)
python3 scripts/garmin_data.py heart_rate --days 7

# Activities/workouts
python3 scripts/garmin_data.py activities --days 30

# Stress levels
python3 scripts/garmin_data.py stress --days 7

# Combined summary with averages
python3 scripts/garmin_data.py summary --days 7

# Custom date range
python3 scripts/garmin_data.py sleep --start 2026-01-01 --end 2026-01-15

# User profile
python3 scripts/garmin_data.py profile

Output is JSON to stdout. Parse it to answer user questions.

Generating Charts

Use scripts/garmin_chart.py for interactive HTML visualizations:

# Sleep analysis (hours + scores)
python3 scripts/garmin_chart.py sleep --days 30

# Body Battery recovery chart (color-coded)
python3 scripts/garmin_chart.py body_battery --days 30

# HRV & resting heart rate trends
python3 scripts/garmin_chart.py hrv --days 90

# Activities summary (by type, calories)
python3 scripts/garmin_chart.py activities --days 30

# Full dashboard (all 4 charts)
python3 scripts/garmin_chart.py dashboard --days 30

# Save to specific file
python3 scripts/garmin_chart.py dashboard --days 90 --output ~/Desktop/garmin-health.html

Charts open automatically in the default browser. They use Chart.js with a modern gradient design, stat cards, and interactive tooltips.

Answering Questions

User asks Action
"How did I sleep last night?" garmin_data.py summary --days 1, report sleep hours + score
"How's my recovery this week?" garmin_data.py body_battery --days 7, report average + trend
"Show me my health for the last month" garmin_chart.py dashboard --days 30
"Is my HRV improving?" garmin_data.py hrv --days 30, analyze trend
"What workouts did I do this week?" garmin_data.py activities --days 7, list activities with details
"How's my resting heart rate?" garmin_data.py heart_rate --days 7, report average + trend

Key Metrics

Body Battery (0-100)

Garmin's proprietary recovery metric based on HRV, stress, sleep, and activity:

  • High (75-100): Fully recharged, ready for high intensity
  • Medium (50-74): Moderate energy, good for regular activity
  • Low (25-49): Limited energy, recovery needed
  • Very Low (0-24): Depleted, prioritize rest

Sleep Scores (0-100)

Overall sleep quality based on duration, stages, and disturbances:

  • Excellent (90-100): Optimal restorative sleep
  • Good (80-89): Quality sleep with minor issues
  • Fair (60-79): Adequate but could improve
  • Poor (0-59): Significant sleep deficiencies

HRV (Heart Rate Variability)

Measured in milliseconds, higher is generally better:

  • Indicates nervous system balance and recovery capacity
  • Track trends over time (increasing = improving recovery)
  • Affected by sleep, stress, training load, illness
  • Normal range varies by individual (20-200+ ms)

Resting Heart Rate (bpm)

Lower generally indicates better cardiovascular fitness:

  • Athletes: 40-60 bpm
  • Fit adults: 60-70 bpm
  • Average adults: 70-80 bpm
  • Sudden increases may indicate stress, illness, or overtraining

Stress Levels

Based on HRV analysis throughout the day:

  • Low stress: Rest and recovery periods
  • Medium stress: Normal daily activities
  • High stress: Physical activity or mental pressure

Health Analysis

When users ask for insights or want to understand their trends, use references/health_analysis.md for:

  • Science-backed interpretation of all metrics
  • Normal ranges by age and fitness level
  • Pattern detection (weekly trends, recovery cycles, training load balance)
  • Actionable recommendations based on data
  • Warning signs that suggest rest or medical consultation

Analysis workflow

  1. Fetch data: python3 scripts/garmin_data.py summary --days N
  2. Read references/health_analysis.md for interpretation framework
  3. Apply the analysis framework: Status → Trends → Patterns → Insights → Recommendations
  4. Always include disclaimer that this is informational, not medical advice

Troubleshooting

Authentication Issues

  • "Invalid credentials": Double-check email/password, try logging into Garmin Connect web
  • "Tokens expired": Run login again: python3 scripts/garmin_auth.py login ...
  • "Too many requests": Garmin rate-limits; wait a few minutes and try again

Missing Data

  • Some metrics require specific Garmin devices (Body Battery needs HRV-capable devices)
  • Historical data may have gaps if device wasn't worn
  • New accounts may have limited history

Library Issues

  • If garminconnect import fails: pip3 install --upgrade garminconnect
  • Garmin occasionally changes their API; update the library if requests fail

Privacy Note

  • Credentials are stored locally in ~/.clawdbot/garmin-tokens.json
  • Session tokens refresh automatically
  • No data is sent anywhere except to Garmin's official servers
  • You can revoke access anytime by deleting the tokens file

Comparison: Garmin vs Whoop

Feature Garmin Whoop
Recovery metric Body Battery (0-100) Recovery Score (0-100%)
HRV tracking Yes (nightly average) Yes (detailed)
Sleep stages Light, Deep, REM, Awake Light, SWS, REM, Awake
Activity tracking Built-in GPS, many sport modes Strain score (0-21)
Stress All-day stress levels Not directly tracked
API Unofficial (garminconnect) Official OAuth
Device types Watches, fitness trackers Wearable band only

References

  • references/api.md — Garmin Connect API details (unofficial)
  • references/health_analysis.md — Science-backed health data interpretation
  • garminconnect library — Python API wrapper
  • Garmin Connect — Official web interface

Version Info

  • Created: 2026-01-25
  • Author: EversonL & Claude
  • Version: 1.2.0
  • Dependencies: garminconnect, fitparse, gpxpy (Python libraries)
  • License: MIT
安全使用建议
This skill appears to do what it says (uses the unofficial python-garminconnect library to fetch and analyze Garmin data). Before installing: 1) Don't commit or reuse real credentials—remove or overwrite the included config.json with your own or rely on environment variables; the repository currently contains a config.json with an email/password value which you should delete. 2) Understand tokens are stored locally (~/.clawdbot/garmin-tokens.json) and may be shared with other local tools (MCP server) if you use both; restrict file permissions if needed. 3) Verify and review the garminconnect, fitparse, and gpxpy packages you install (supply-chain risk). 4) Using the unofficial API may violate Garmin's Terms of Service and can break if Garmin changes their site; consider creating a dedicated/test Garmin account if you want to reduce risk to a primary account. 5) Two-factor auth is likely unsupported; expect authentication limitations. If you want higher assurance, inspect garmin_auth.py and related scripts yourself (they are included) or run them in an isolated environment (container or separate account) first.
功能分析
Type: OpenClaw Skill Name: lovefromio-garmin-health-analysis Version: 1.2.4 The skill bundle is classified as suspicious primarily due to the inclusion of a 'config.json' file containing plaintext credentials (email: [email protected], password: [REDACTED]), which constitutes a significant security leak and contradicts the documentation in 'SKILL.md' stating that this file should be gitignored. While the core functionality across scripts like 'garmin_auth.py' and 'garmin_data.py' appears to be a legitimate implementation for fetching Garmin health metrics using the 'garminconnect' library, the presence of hardcoded credentials in a distributable package is highly irregular. The skill handles sensitive health data and session tokens stored in '~/.clawdbot/garmin', and while no evidence of intentional data exfiltration to third parties was found, the credential leak poses a high risk to the account owner.
能力标签
cryptocan-make-purchasesrequires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
Name/description ask to read Garmin Connect data and the repo contains scripts (authentication, data fetch, parsing, charting) and declares the expected Python libraries. Requesting GARMIN_EMAIL and GARMIN_PASSWORD matches the unofficial garminconnect library's email/password flow.
Instruction Scope
SKILL.md and scripts instruct the agent to read credentials from env vars, local config.json, command-line args, or Clawdbot config and to store session tokens in ~/.clawdbot/garmin-tokens.json. That behavior is expected for this type of skill, but the instructions grant the skill direct read/write access to local credential/config files and token storage—review that these paths are acceptable for your environment.
Install Mechanism
No download-from-arbitrary-URL installs. Dependencies are typical Python packages (garminconnect, fitparse, gpxpy) installed via pip per install.sh and SKILL.md. These are traceable PyPI packages; standard caution about verifying third-party packages applies.
Credentials
Only GARMIN_EMAIL and GARMIN_PASSWORD are requested which fits the unofficial API. However, the repo includes a committed config.json with an email/password value — this suggests credentials are stored in-repo and contradicts the 'config.json is gitignored' note. Presence of a credentials file in the published manifest is a privacy/operational concern and should be removed before use.
Persistence & Privilege
always:false (normal). The skill writes session tokens to a local path (~/.clawdbot/garmin-tokens.json) and the README mentions token sharing with a separate MCP server repo; this persistent token sharing is expected for usability but increases the scope of access if multiple tools read that token file—confirm you are comfortable with that shared token location.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install lovefromio-garmin-health-analysis
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /lovefromio-garmin-health-analysis 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.2.4
lovefromio-garmin-health-analysis v1.2.4 - Metadata updated in _meta.json; no functional or documentation changes made. - Version number in SKILL.md remains at 1.2.2.
v1.2.3
Fork and update to 1.2.3
元数据
Slug lovefromio-garmin-health-analysis
版本 1.2.4
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 2
常见问题

Lovefromio Garmin Health Analysis 是什么?

Talk to your Garmin data naturally - "what was my fastest speed snowboarding?", "how did I sleep last night?", "what was my heart rate at 3pm?". Access 20+ m... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 138 次。

如何安装 Lovefromio Garmin Health Analysis?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install lovefromio-garmin-health-analysis」即可一键安装,无需额外配置。

Lovefromio Garmin Health Analysis 是免费的吗?

是的,Lovefromio Garmin Health Analysis 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Lovefromio Garmin Health Analysis 支持哪些平台?

Lovefromio Garmin Health Analysis 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Lovefromio Garmin Health Analysis?

由 AI(@lovefromio)开发并维护,当前版本 v1.2.4。

💬 留言讨论