{
  "schemaVersion": "1.0",
  "item": {
    "slug": "garmin-skill",
    "name": "Garmin Skill",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/nftechie/garmin-skill",
    "canonicalUrl": "https://clawhub.ai/nftechie/garmin-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/garmin-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=garmin-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/garmin-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/garmin-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/garmin-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/garmin-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/garmin-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Garmin Skill",
        "body": "Chat with your Garmin Connect data using AI. Ask about your runs, rides, swims, training load, VO2 Max, heart rate zones, and performance trends. Powered by Transition, which syncs with Garmin Connect to give AI agents access to your training data."
      },
      {
        "title": "Setup",
        "body": "Download Transition and connect your Garmin account\nGo to Settings > API Keys and tap Generate New Key\nSet the environment variable:\n\nexport TRANSITION_API_KEY=\"tr_live_xxxxxxxxxxxxxxxxxxxxx\""
      },
      {
        "title": "Workout of the Day",
        "body": "Generate a random structured workout — no account needed.\n\ncurl \"https://api.transition.fun/api/v1/wod?sport=run&duration=45\"\n\nParameters:\n\nsport — run, bike, swim, or strength (default: run)\nduration — minutes, 10-300 (default: 45)"
      },
      {
        "title": "Authenticated Endpoints",
        "body": "Base URL: https://api.transition.fun\nAuth: Pass X-API-Key header on every request."
      },
      {
        "title": "AI Coach Chat",
        "body": "Ask questions about your Garmin data. The AI coach has full context on your activities, training load, and performance.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"message\": \"How has my running volume changed this month compared to last?\"}' \\\n  \"https://api.transition.fun/api/v1/coach/chat\"\n\nExample questions:\n\n\"What was my longest run this week?\"\n\"How is my VO2 Max trending?\"\n\"Am I overtraining based on my recent Garmin data?\"\n\"Compare my cycling power this month vs last month\"\n\"What does my heart rate data say about my fitness?\""
      },
      {
        "title": "Get Workouts",
        "body": "Retrieve scheduled workouts for a date range.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts?start=2026-02-09&end=2026-02-15\"\n\nParameters:\n\nstart — Start date (YYYY-MM-DD, required)\nend — End date (YYYY-MM-DD, required)\nMaximum range between start and end is 90 days."
      },
      {
        "title": "Performance Management Chart (PMC)",
        "body": "Get CTL (fitness), ATL (fatigue), and TSB (form) calculated from your Garmin activities.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/pmc\""
      },
      {
        "title": "Performance Stats",
        "body": "Get FTP, threshold paces, heart rate zones, and other metrics derived from your Garmin data.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/stats\""
      },
      {
        "title": "Athlete Profile",
        "body": "curl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/profile\""
      },
      {
        "title": "Chat History",
        "body": "curl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/coach/history\""
      },
      {
        "title": "Push Workout to Garmin",
        "body": "Send a scheduled workout directly to your Garmin device.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123/push-garmin\""
      },
      {
        "title": "Rate Limits",
        "body": "TierRead EndpointsAI EndpointsFree100/day3/dayPaid10,000/day100/day"
      },
      {
        "title": "Tips for Agents",
        "body": "Use coach chat as the primary interface. It has full context on the user's Garmin activities, training load, and performance — just ask natural questions.\n\n\nCheck fatigue before recommending hard workouts. Call GET /api/v1/performance/pmc and look at TSB. If TSB is below -20, the athlete is fatigued.\n\n\nUse the free WOD endpoint for quick workouts. No auth needed — great for users who just want a workout suggestion.\n\n\nDate format is always YYYY-MM-DD for all date parameters."
      }
    ],
    "body": "Garmin Skill\n\nChat with your Garmin Connect data using AI. Ask about your runs, rides, swims, training load, VO2 Max, heart rate zones, and performance trends. Powered by Transition, which syncs with Garmin Connect to give AI agents access to your training data.\n\nSetup\nDownload Transition and connect your Garmin account\nGo to Settings > API Keys and tap Generate New Key\nSet the environment variable:\nexport TRANSITION_API_KEY=\"tr_live_xxxxxxxxxxxxxxxxxxxxx\"\n\nNo Auth Required\nWorkout of the Day\n\nGenerate a random structured workout — no account needed.\n\ncurl \"https://api.transition.fun/api/v1/wod?sport=run&duration=45\"\n\n\nParameters:\n\nsport — run, bike, swim, or strength (default: run)\nduration — minutes, 10-300 (default: 45)\nAuthenticated Endpoints\n\nBase URL: https://api.transition.fun Auth: Pass X-API-Key header on every request.\n\nAI Coach Chat\n\nAsk questions about your Garmin data. The AI coach has full context on your activities, training load, and performance.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"message\": \"How has my running volume changed this month compared to last?\"}' \\\n  \"https://api.transition.fun/api/v1/coach/chat\"\n\n\nExample questions:\n\n\"What was my longest run this week?\"\n\"How is my VO2 Max trending?\"\n\"Am I overtraining based on my recent Garmin data?\"\n\"Compare my cycling power this month vs last month\"\n\"What does my heart rate data say about my fitness?\"\nGet Workouts\n\nRetrieve scheduled workouts for a date range.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts?start=2026-02-09&end=2026-02-15\"\n\n\nParameters:\n\nstart — Start date (YYYY-MM-DD, required)\nend — End date (YYYY-MM-DD, required)\nMaximum range between start and end is 90 days.\nPerformance Management Chart (PMC)\n\nGet CTL (fitness), ATL (fatigue), and TSB (form) calculated from your Garmin activities.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/pmc\"\n\nPerformance Stats\n\nGet FTP, threshold paces, heart rate zones, and other metrics derived from your Garmin data.\n\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/performance/stats\"\n\nAthlete Profile\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/profile\"\n\nChat History\ncurl -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/coach/history\"\n\nPush Workout to Garmin\n\nSend a scheduled workout directly to your Garmin device.\n\ncurl -X POST -H \"X-API-Key: $TRANSITION_API_KEY\" \\\n  \"https://api.transition.fun/api/v1/workouts/123/push-garmin\"\n\nRate Limits\nTier\tRead Endpoints\tAI Endpoints\nFree\t100/day\t3/day\nPaid\t10,000/day\t100/day\nTips for Agents\n\nUse coach chat as the primary interface. It has full context on the user's Garmin activities, training load, and performance — just ask natural questions.\n\nCheck fatigue before recommending hard workouts. Call GET /api/v1/performance/pmc and look at TSB. If TSB is below -20, the athlete is fatigued.\n\nUse the free WOD endpoint for quick workouts. No auth needed — great for users who just want a workout suggestion.\n\nDate format is always YYYY-MM-DD for all date parameters."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nftechie/garmin-skill",
    "publisherUrl": "https://clawhub.ai/nftechie/garmin-skill",
    "owner": "nftechie",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/garmin-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/garmin-skill",
    "agentUrl": "https://openagent3.xyz/skills/garmin-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/garmin-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/garmin-skill/agent.md"
  }
}