{
  "schemaVersion": "1.0",
  "item": {
    "slug": "iqair",
    "name": "IQAir Air Quality",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/atesluks/iqair",
    "canonicalUrl": "https://clawhub.ai/atesluks/iqair",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/iqair",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=iqair",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api.md",
      "scripts/get_aqi.py"
    ],
    "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-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/iqair"
    },
    "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/iqair",
    "agentPageUrl": "https://openagent3.xyz/skills/iqair/agent",
    "manifestUrl": "https://openagent3.xyz/skills/iqair/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/iqair/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": "IQAir Air Quality Checker",
        "body": "Get real-time air quality data from the IQAir API with formatted output including AQI score, emoji indicator, and quality level."
      },
      {
        "title": "Prerequisites",
        "body": "API Key Required: User must have a free IQAir API key stored in the IQAIR_API_KEY environment variable.\n\nIf the key is not set, guide the user:\n\nVisit https://dashboard.iqair.com/personal/api-keys\nSign up/sign in and subscribe to the free Community plan\nCopy the API key\nSet it: export IQAIR_API_KEY=\"your_key_here\""
      },
      {
        "title": "Quick Usage",
        "body": "By city name:\n\npython scripts/get_aqi.py Riga Latvia\npython scripts/get_aqi.py London \"United Kingdom\"\npython scripts/get_aqi.py Budapest Hungary\n\nBy coordinates (most reliable):\n\npython scripts/get_aqi.py --lat 56.9496 --lon 24.1052\n\nNearest city (based on IP):\n\npython scripts/get_aqi.py --nearest"
      },
      {
        "title": "How to Respond to User Queries",
        "body": "When a user asks about air quality:\n\nDetermine the location - Extract city/country from their query\nRun the script - Use scripts/get_aqi.py with appropriate arguments\nReturn formatted output - The script provides emoji, AQI value, level, and location\n\nExample interaction:\n\nUser: \"How good is air in Riga?\"\n\nResponse process:\n\nLocation: Riga, Latvia\nRun: python scripts/get_aqi.py Riga Latvia\nOutput: 🟢 19 - Good\\nRiga, Latvia\nReply: \"Air quality in Riga is currently excellent! 🟢 19 (Good)\""
      },
      {
        "title": "Handling Location Names",
        "body": "City/country names:\n\nUse exact names as they appear in IQAir's database\nCapital cities: Often the state/province matches the city name\nIf city lookup fails, try coordinates instead\n\nCommon location patterns:\n\nRiga, Latvia → Riga Latvia (state defaults to city)\nLondon, UK → London \"United Kingdom\" (quote if spaces)\nNew York, USA → \"New York\" \"United States\" \"New York\" (city, country, state)\n\nWhen in doubt: Use coordinate-based lookup with --lat and --lon (more reliable)."
      },
      {
        "title": "Output Format",
        "body": "The script returns a concise, formatted string:\n\n🟢 45 - Good\nRiga, Latvia\n\nCustomize your response based on the AQI level:\n\n0-50 (🟢 Good): \"Excellent\", \"Perfect for outdoor activities\"\n51-100 (🟡 Moderate): \"Acceptable\", \"Sensitive people should limit prolonged outdoor exertion\"\n101-150 (🟠 USG): \"Unhealthy for sensitive groups\", \"Children and people with respiratory issues should reduce outdoor exertion\"\n151-200 (🔴 Unhealthy): \"Everyone may experience health effects\", \"Reduce outdoor activities\"\n201-300 (🟣 Very Unhealthy): \"Health alert\", \"Avoid outdoor activities\"\n301+ (🟤 Hazardous): \"Emergency conditions\", \"Stay indoors\""
      },
      {
        "title": "Technical Details",
        "body": "For API specifications, endpoints, and error handling, see references/api.md."
      },
      {
        "title": "Rate Limits",
        "body": "Free Community plan limits:\n\n5 calls/minute\n500 calls/day\n10,000 calls/month\n\nAvoid making repeated calls for the same location within short time periods."
      }
    ],
    "body": "IQAir Air Quality Checker\n\nGet real-time air quality data from the IQAir API with formatted output including AQI score, emoji indicator, and quality level.\n\nPrerequisites\n\nAPI Key Required: User must have a free IQAir API key stored in the IQAIR_API_KEY environment variable.\n\nIf the key is not set, guide the user:\n\nVisit https://dashboard.iqair.com/personal/api-keys\nSign up/sign in and subscribe to the free Community plan\nCopy the API key\nSet it: export IQAIR_API_KEY=\"your_key_here\"\nQuick Usage\n\nBy city name:\n\npython scripts/get_aqi.py Riga Latvia\npython scripts/get_aqi.py London \"United Kingdom\"\npython scripts/get_aqi.py Budapest Hungary\n\n\nBy coordinates (most reliable):\n\npython scripts/get_aqi.py --lat 56.9496 --lon 24.1052\n\n\nNearest city (based on IP):\n\npython scripts/get_aqi.py --nearest\n\nHow to Respond to User Queries\n\nWhen a user asks about air quality:\n\nDetermine the location - Extract city/country from their query\nRun the script - Use scripts/get_aqi.py with appropriate arguments\nReturn formatted output - The script provides emoji, AQI value, level, and location\n\nExample interaction:\n\nUser: \"How good is air in Riga?\"\n\nResponse process:\n\nLocation: Riga, Latvia\nRun: python scripts/get_aqi.py Riga Latvia\nOutput: 🟢 19 - Good\\nRiga, Latvia\nReply: \"Air quality in Riga is currently excellent! 🟢 19 (Good)\"\nHandling Location Names\n\nCity/country names:\n\nUse exact names as they appear in IQAir's database\nCapital cities: Often the state/province matches the city name\nIf city lookup fails, try coordinates instead\n\nCommon location patterns:\n\nRiga, Latvia → Riga Latvia (state defaults to city)\nLondon, UK → London \"United Kingdom\" (quote if spaces)\nNew York, USA → \"New York\" \"United States\" \"New York\" (city, country, state)\n\nWhen in doubt: Use coordinate-based lookup with --lat and --lon (more reliable).\n\nOutput Format\n\nThe script returns a concise, formatted string:\n\n🟢 45 - Good\nRiga, Latvia\n\n\nCustomize your response based on the AQI level:\n\n0-50 (🟢 Good): \"Excellent\", \"Perfect for outdoor activities\"\n51-100 (🟡 Moderate): \"Acceptable\", \"Sensitive people should limit prolonged outdoor exertion\"\n101-150 (🟠 USG): \"Unhealthy for sensitive groups\", \"Children and people with respiratory issues should reduce outdoor exertion\"\n151-200 (🔴 Unhealthy): \"Everyone may experience health effects\", \"Reduce outdoor activities\"\n201-300 (🟣 Very Unhealthy): \"Health alert\", \"Avoid outdoor activities\"\n301+ (🟤 Hazardous): \"Emergency conditions\", \"Stay indoors\"\nTechnical Details\n\nFor API specifications, endpoints, and error handling, see references/api.md.\n\nRate Limits\n\nFree Community plan limits:\n\n5 calls/minute\n500 calls/day\n10,000 calls/month\n\nAvoid making repeated calls for the same location within short time periods."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/atesluks/iqair",
    "publisherUrl": "https://clawhub.ai/atesluks/iqair",
    "owner": "atesluks",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/iqair",
    "downloadUrl": "https://openagent3.xyz/downloads/iqair",
    "agentUrl": "https://openagent3.xyz/skills/iqair/agent",
    "manifestUrl": "https://openagent3.xyz/skills/iqair/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/iqair/agent.md"
  }
}