{
  "schemaVersion": "1.0",
  "item": {
    "slug": "withings-health",
    "name": "withings-health",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/hisxo/withings-health",
    "canonicalUrl": "https://clawhub.ai/hisxo/withings-health",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/withings-health",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=withings-health",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "wrapper.js",
      "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. 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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/withings-health"
    },
    "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/withings-health",
    "agentPageUrl": "https://openagent3.xyz/skills/withings-health/agent",
    "manifestUrl": "https://openagent3.xyz/skills/withings-health/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/withings-health/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when the user:\n\nAsks about their weight or weight history\nWants to see their body composition (fat %, muscle mass, bone mass, hydration)\nRequests their daily activity (steps, distance, calories burned)\nAsks about their sleep data (duration, quality, deep sleep, REM)\nMentions \"Withings\" or any Withings device (Body+, Sleep Analyzer, ScanWatch, etc.)\nWants to track their health progress over time"
      },
      {
        "title": "Setup: Creating a Withings Developer App",
        "body": "Before using this skill, you need to create a free Withings developer application to get your API credentials."
      },
      {
        "title": "Step 1: Create a Withings Developer Account",
        "body": "Go to Withings Developer Portal\nClick Sign Up or Log In if you already have a Withings account\nAccept the Developer Terms of Service"
      },
      {
        "title": "Step 2: Create Your Application",
        "body": "Navigate to My Apps → Create an Application\nFill in the application details:\n\nApplication Name: Choose a name (e.g., \"My Clawdbot Health\")\nDescription: Brief description of your use case\nContact Email: Your email address\nCallback URL: http://localhost:8080 (required for OAuth)\nApplication Type: Select \"Personal Use\" or appropriate type\n\n\nSubmit the application"
      },
      {
        "title": "Step 3: Get Your Credentials",
        "body": "Once your application is created:\n\nGo to My Apps and select your application\nYou'll find:\n\nClient ID → Set as WITHINGS_CLIENT_ID environment variable\nClient Secret → Set as WITHINGS_CLIENT_SECRET environment variable"
      },
      {
        "title": "Step 4: Configure Environment Variables",
        "body": "Add these to your Clawdbot environment:\n\nexport WITHINGS_CLIENT_ID=\"your_client_id_here\"\nexport WITHINGS_CLIENT_SECRET=\"your_client_secret_here\"\n\nOr create a .env file in the skill directory (this file will be ignored by git):\n\nWITHINGS_CLIENT_ID=your_client_id_here\nWITHINGS_CLIENT_SECRET=your_client_secret_here"
      },
      {
        "title": "Configuration",
        "body": "The skill uses a wrapper.js script located in {baseDir}.\n\nBefore any data retrieval, check if the user is authenticated. If an error mentions \"No token found\", guide the user through the initial authentication process."
      },
      {
        "title": "1. Authentication",
        "body": "First-time setup - generates the OAuth URL:\n\nnode {baseDir}/wrapper.js auth\n\nAfter the user visits the URL and gets the authorization code:\n\nnode {baseDir}/wrapper.js auth YOUR_CODE_HERE"
      },
      {
        "title": "2. Get Weight",
        "body": "Retrieve the latest weight measurements:\n\nnode {baseDir}/wrapper.js weight\n\nReturns the 5 most recent weight entries in JSON format.\n\nExample output:\n\n[\n  { \"date\": \"2026-01-17T08:30:00.000Z\", \"weight\": \"75.40 kg\" },\n  { \"date\": \"2026-01-16T08:15:00.000Z\", \"weight\": \"75.65 kg\" }\n]"
      },
      {
        "title": "3. Get Body Composition",
        "body": "Retrieve comprehensive body metrics (fat, muscle, bone, water, BMI):\n\nnode {baseDir}/wrapper.js body\n\nReturns the 5 most recent body composition measurements.\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17T08:30:00.000Z\",\n    \"weight\": \"75.40 kg\",\n    \"fat_percent\": \"18.5%\",\n    \"fat_mass\": \"13.95 kg\",\n    \"muscle_mass\": \"35.20 kg\",\n    \"bone_mass\": \"3.10 kg\",\n    \"hydration\": \"55.2%\"\n  }\n]"
      },
      {
        "title": "4. Get Activity",
        "body": "Retrieve daily activity data (steps, distance, calories):\n\nnode {baseDir}/wrapper.js activity\n\nOptionally specify the number of days (default: 7):\n\nnode {baseDir}/wrapper.js activity 30\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17\",\n    \"steps\": 8542,\n    \"distance\": \"6.23 km\",\n    \"calories\": 2150,\n    \"active_calories\": 450,\n    \"soft_activity\": \"45 min\",\n    \"moderate_activity\": \"22 min\",\n    \"intense_activity\": \"8 min\"\n  }\n]"
      },
      {
        "title": "5. Get Sleep",
        "body": "Retrieve sleep data and quality:\n\nnode {baseDir}/wrapper.js sleep\n\nOptionally specify the number of days (default: 7):\n\nnode {baseDir}/wrapper.js sleep 14\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17\",\n    \"start\": \"23:15\",\n    \"end\": \"07:30\",\n    \"duration\": \"8h 15min\",\n    \"deep_sleep\": \"1h 45min\",\n    \"light_sleep\": \"4h 30min\",\n    \"rem_sleep\": \"1h 30min\",\n    \"awake\": \"30min\",\n    \"sleep_score\": 82\n  }\n]"
      },
      {
        "title": "Error Handling",
        "body": "Common errors and how to resolve them:\n\nErrorCauseSolution\"No token found\"First time use, not authenticatedRun node wrapper.js auth and follow the OAuth flow\"Failed to refresh token\"Token expired and refresh failedRe-authenticate with node wrapper.js auth\"API Error Status: 401\"Invalid or expired credentialsCheck your CLIENT_ID and CLIENT_SECRET, re-authenticate\"API Error Status: 503\"Withings API temporarily unavailableWait and retry laterEmpty dataNo measurements in the requested periodUser needs to sync their Withings device"
      },
      {
        "title": "Notes",
        "body": "Tokens are automatically refreshed when they expire\nWithings API scopes used: user.metrics, user.activity\nData availability depends on which Withings devices the user owns\nSome metrics (like body composition) require a compatible smart scale"
      }
    ],
    "body": "This skill allows you to interact with the user's Withings account to retrieve comprehensive health metrics from Withings devices (smart scales, sleep analyzers, activity trackers, etc.).\n\nWhen to Use This Skill\n\nUse this skill when the user:\n\nAsks about their weight or weight history\nWants to see their body composition (fat %, muscle mass, bone mass, hydration)\nRequests their daily activity (steps, distance, calories burned)\nAsks about their sleep data (duration, quality, deep sleep, REM)\nMentions \"Withings\" or any Withings device (Body+, Sleep Analyzer, ScanWatch, etc.)\nWants to track their health progress over time\nSetup: Creating a Withings Developer App\n\nBefore using this skill, you need to create a free Withings developer application to get your API credentials.\n\nStep 1: Create a Withings Developer Account\nGo to Withings Developer Portal\nClick Sign Up or Log In if you already have a Withings account\nAccept the Developer Terms of Service\nStep 2: Create Your Application\nNavigate to My Apps → Create an Application\nFill in the application details:\nApplication Name: Choose a name (e.g., \"My Clawdbot Health\")\nDescription: Brief description of your use case\nContact Email: Your email address\nCallback URL: http://localhost:8080 (required for OAuth)\nApplication Type: Select \"Personal Use\" or appropriate type\nSubmit the application\nStep 3: Get Your Credentials\n\nOnce your application is created:\n\nGo to My Apps and select your application\nYou'll find:\nClient ID → Set as WITHINGS_CLIENT_ID environment variable\nClient Secret → Set as WITHINGS_CLIENT_SECRET environment variable\nStep 4: Configure Environment Variables\n\nAdd these to your Clawdbot environment:\n\nexport WITHINGS_CLIENT_ID=\"your_client_id_here\"\nexport WITHINGS_CLIENT_SECRET=\"your_client_secret_here\"\n\n\nOr create a .env file in the skill directory (this file will be ignored by git):\n\nWITHINGS_CLIENT_ID=your_client_id_here\nWITHINGS_CLIENT_SECRET=your_client_secret_here\n\nConfiguration\n\nThe skill uses a wrapper.js script located in {baseDir}.\n\nBefore any data retrieval, check if the user is authenticated. If an error mentions \"No token found\", guide the user through the initial authentication process.\n\nAvailable Commands\n1. Authentication\n\nFirst-time setup - generates the OAuth URL:\n\nnode {baseDir}/wrapper.js auth\n\n\nAfter the user visits the URL and gets the authorization code:\n\nnode {baseDir}/wrapper.js auth YOUR_CODE_HERE\n\n2. Get Weight\n\nRetrieve the latest weight measurements:\n\nnode {baseDir}/wrapper.js weight\n\n\nReturns the 5 most recent weight entries in JSON format.\n\nExample output:\n\n[\n  { \"date\": \"2026-01-17T08:30:00.000Z\", \"weight\": \"75.40 kg\" },\n  { \"date\": \"2026-01-16T08:15:00.000Z\", \"weight\": \"75.65 kg\" }\n]\n\n3. Get Body Composition\n\nRetrieve comprehensive body metrics (fat, muscle, bone, water, BMI):\n\nnode {baseDir}/wrapper.js body\n\n\nReturns the 5 most recent body composition measurements.\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17T08:30:00.000Z\",\n    \"weight\": \"75.40 kg\",\n    \"fat_percent\": \"18.5%\",\n    \"fat_mass\": \"13.95 kg\",\n    \"muscle_mass\": \"35.20 kg\",\n    \"bone_mass\": \"3.10 kg\",\n    \"hydration\": \"55.2%\"\n  }\n]\n\n4. Get Activity\n\nRetrieve daily activity data (steps, distance, calories):\n\nnode {baseDir}/wrapper.js activity\n\n\nOptionally specify the number of days (default: 7):\n\nnode {baseDir}/wrapper.js activity 30\n\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17\",\n    \"steps\": 8542,\n    \"distance\": \"6.23 km\",\n    \"calories\": 2150,\n    \"active_calories\": 450,\n    \"soft_activity\": \"45 min\",\n    \"moderate_activity\": \"22 min\",\n    \"intense_activity\": \"8 min\"\n  }\n]\n\n5. Get Sleep\n\nRetrieve sleep data and quality:\n\nnode {baseDir}/wrapper.js sleep\n\n\nOptionally specify the number of days (default: 7):\n\nnode {baseDir}/wrapper.js sleep 14\n\n\nExample output:\n\n[\n  {\n    \"date\": \"2026-01-17\",\n    \"start\": \"23:15\",\n    \"end\": \"07:30\",\n    \"duration\": \"8h 15min\",\n    \"deep_sleep\": \"1h 45min\",\n    \"light_sleep\": \"4h 30min\",\n    \"rem_sleep\": \"1h 30min\",\n    \"awake\": \"30min\",\n    \"sleep_score\": 82\n  }\n]\n\nError Handling\n\nCommon errors and how to resolve them:\n\nError\tCause\tSolution\n\"No token found\"\tFirst time use, not authenticated\tRun node wrapper.js auth and follow the OAuth flow\n\"Failed to refresh token\"\tToken expired and refresh failed\tRe-authenticate with node wrapper.js auth\n\"API Error Status: 401\"\tInvalid or expired credentials\tCheck your CLIENT_ID and CLIENT_SECRET, re-authenticate\n\"API Error Status: 503\"\tWithings API temporarily unavailable\tWait and retry later\nEmpty data\tNo measurements in the requested period\tUser needs to sync their Withings device\nNotes\nTokens are automatically refreshed when they expire\nWithings API scopes used: user.metrics, user.activity\nData availability depends on which Withings devices the user owns\nSome metrics (like body composition) require a compatible smart scale"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/hisxo/withings-health",
    "publisherUrl": "https://clawhub.ai/hisxo/withings-health",
    "owner": "hisxo",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/withings-health",
    "downloadUrl": "https://openagent3.xyz/downloads/withings-health",
    "agentUrl": "https://openagent3.xyz/skills/withings-health/agent",
    "manifestUrl": "https://openagent3.xyz/skills/withings-health/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/withings-health/agent.md"
  }
}