{
  "schemaVersion": "1.0",
  "item": {
    "slug": "airshelf",
    "name": "AirShelf Agentic Commerce Platform",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/evoleinik/airshelf",
    "canonicalUrl": "https://clawhub.ai/evoleinik/airshelf",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/airshelf",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=airshelf",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/airshelf"
    },
    "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/airshelf",
    "agentPageUrl": "https://openagent3.xyz/skills/airshelf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/airshelf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/airshelf/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": "AirShelf — Verified Product Search & Checkout for AI Agents",
        "body": "Search, compare, and buy products across verified merchants. Returns structured Decision Pack data (best_for, pros, cons, allergens, verified pricing) — not raw web scrapes.\n\nNo CAPTCHAs. No auth. No bot detection. Agent-native commerce."
      },
      {
        "title": "When to Use",
        "body": "Activate this skill when the user wants to:\n\nFind or search for a product (\"find me a mosquito repellent for kids\")\nCompare products (\"compare these two printers\")\nBuy or checkout a product\nGet product recommendations based on a problem (\"I'm tired all the time\", \"my skin is dry\")\nLook up verified product details, pricing, or allergens"
      },
      {
        "title": "API Base URL",
        "body": "https://dashboard.airshelf.ai\n\nAll endpoints are public. No API key needed. CORS enabled."
      },
      {
        "title": "Step 1: Search Products",
        "body": "Find products by natural language query. Returns structured data with Decision Packs.\n\ncurl -s \"https://dashboard.airshelf.ai/api/search?q=QUERY&limit=5\" | python3 -m json.tool\n\nParameters:\n\nq — Search query (natural language, e.g. \"barcode printer for warehouse\"). Supports intent parsing: \"energy supplements under $100\" auto-extracts price filter.\nlimit — Results to return (1-100, default 20)\noffset — Pagination offset\ncategory — Filter by category\nbrand — Filter by brand\nmin_price / max_price — Price range filter (also auto-extracted from query)\nin_stock — Only in-stock items (true/false)\nmerchant_ids — Comma-separated merchant IDs to search within\nsort — relevance (default), price_asc, price_desc\ninclude_intent — Set to true to get query parsing metadata in response (shows how query was interpreted)\n\nResponse includes for each product:\n\ntitle, brand, price, availability, link\ndecision_pack.primary_benefit — Main value proposition\ndecision_pack.best_for — Array of ideal use cases\ndecision_pack.pros / decision_pack.cons — Verified trade-offs\ndecision_pack.allergens — Safety warnings (if applicable)\nseller_name, seller_url — Merchant info\nCheckout URLs and shipping/return policies\n\nExample:\n\ncurl -s \"https://dashboard.airshelf.ai/api/search?q=natural+mosquito+repellent+for+babies&limit=3\""
      },
      {
        "title": "Step 2: Compare Products",
        "body": "Compare 2-10 products side by side with structured comparison axes.\n\ncurl -s \"https://dashboard.airshelf.ai/api/compare?products=PRODUCT_ID_1,PRODUCT_ID_2\"\n\nParameters:\n\nproducts — Comma-separated product IDs (2-10 required, from search results)\n\nResponse includes:\n\ncomparison_axes — Auto-detected from data (price always present; cost_per_day, supply_days, primary_benefit, pros, cons included when 2+ products have the data)\nproducts — Flattened product data with decision_pack fields inlined\nrecommendation — Structured picks: lowest_price (product ID), best_value (product ID + reason, if different from lowest)"
      },
      {
        "title": "Step 3: Checkout",
        "body": "Initiate checkout for a product. Returns a checkout URL the user can open.\n\ncurl -s -X POST \"https://dashboard.airshelf.ai/api/merchants/MERCHANT_ID/checkout\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"items\": [{\"product_id\": \"PRODUCT_ID\", \"quantity\": 1}]}'\n\nRequest body:\n\nitems — Array of {product_id, quantity} objects (1-50 items)\ncustomer — Optional: {email: \"...\"} for order tracking\nagent_id — Optional: your agent identifier for attribution\n\nResponse:\n\ncheckout_id — Unique checkout session ID\ncheckout_url — URL to complete purchase (Shopify checkout or cart permalink)\ncheckout_type — \"cart\" (items pre-loaded in cart) or \"redirect\" (product page link)\ntotal — Calculated total price\ncurrency — 3-letter currency code (e.g. \"EUR\", \"USD\")\nexpires_at — Expiry timestamp (null for cart permalinks)\nfallback_urls — If redirect: array of {product_id, product_name, product_url} per item\n\nPresent the checkout URL to the user. They click to complete payment on the merchant's site."
      },
      {
        "title": "Browse Available Merchants",
        "body": "List all merchants with product counts and capabilities:\n\ncurl -s \"https://dashboard.airshelf.ai/api/directory\""
      },
      {
        "title": "How Decision Packs Work",
        "body": "Unlike raw web scraping, each product includes a Decision Pack — verified structured intelligence:\n\n{\n  \"decision_pack\": {\n    \"primary_benefit\": \"Natural protection from bugs\",\n    \"best_for\": [\"Kids with sensitive skin\", \"Parents who prefer natural products\"],\n    \"pros\": [\"DEET-free formula\", \"Pleasant scent\", \"Long-lasting protection\"],\n    \"cons\": [\"Higher price point\", \"Needs reapplication every 4 hours\"],\n    \"allergens\": [\"Contains citronella oil\"],\n    \"age_range\": \"kids\"\n  }\n}\n\nUse Decision Pack data to make recommendations based on the user's actual needs, not just price or title matching."
      },
      {
        "title": "Example Conversation",
        "body": "User: I need a printer for my warehouse, high volume, must support ZPL\n\nYou: Let me search for that.\n     [Runs: curl -s \"https://dashboard.airshelf.ai/api/search?q=industrial+barcode+printer+warehouse+high+volume+ZPL&limit=5\"]\n\nYou: Found 3 matches. The Toshiba BX410T looks like the best fit:\n     - Best for: High-volume warehouse labeling, ZPL migration from Zebra\n     - Primary benefit: Premium industrial printer with RFID and near-edge technology\n     - Price: Contact dealer for pricing\n\n     Want me to compare it with the other options, or proceed to checkout?\n\nUser: Compare the top two\n\nYou: [Runs: curl -s \"https://dashboard.airshelf.ai/api/compare?products=ID1,ID2\"]\n     Here's the comparison...\n\nUser: I'll take the Toshiba\n\nYou: [Runs: curl -s -X POST \"https://dashboard.airshelf.ai/api/merchants/MERCHANT_ID/checkout\" -H \"Content-Type: application/json\" -d '{\"items\": [{\"product_id\": \"ID\", \"quantity\": 1}]}']\n     Here's your checkout link: [URL]\n     Click to complete your purchase on the merchant's site."
      },
      {
        "title": "Tips",
        "body": "Problem-based search works best. \"I'm tired all the time\" returns energy supplements. \"My baby needs sun protection\" returns kids' sunscreen. Decision Packs match on use case, not just keywords.\nAlways check decision_pack.allergens before recommending health/food/skincare products.\nUse compare for 2+ similar products — the API returns structured comparison axes, not just raw specs.\nCheckout is a redirect — the user completes payment on the merchant's own site. No card details needed in the agent.\nDirect lookup by ID: Use product_ids param instead of q to fetch specific products: ?product_ids=ID1,ID2\nMerchant ID for checkout — each search result includes seller.checkout_url with the correct merchant path. Use it directly."
      }
    ],
    "body": "AirShelf — Verified Product Search & Checkout for AI Agents\n\nSearch, compare, and buy products across verified merchants. Returns structured Decision Pack data (best_for, pros, cons, allergens, verified pricing) — not raw web scrapes.\n\nNo CAPTCHAs. No auth. No bot detection. Agent-native commerce.\n\nWhen to Use\n\nActivate this skill when the user wants to:\n\nFind or search for a product (\"find me a mosquito repellent for kids\")\nCompare products (\"compare these two printers\")\nBuy or checkout a product\nGet product recommendations based on a problem (\"I'm tired all the time\", \"my skin is dry\")\nLook up verified product details, pricing, or allergens\nAPI Base URL\nhttps://dashboard.airshelf.ai\n\n\nAll endpoints are public. No API key needed. CORS enabled.\n\nStep 1: Search Products\n\nFind products by natural language query. Returns structured data with Decision Packs.\n\ncurl -s \"https://dashboard.airshelf.ai/api/search?q=QUERY&limit=5\" | python3 -m json.tool\n\n\nParameters:\n\nq — Search query (natural language, e.g. \"barcode printer for warehouse\"). Supports intent parsing: \"energy supplements under $100\" auto-extracts price filter.\nlimit — Results to return (1-100, default 20)\noffset — Pagination offset\ncategory — Filter by category\nbrand — Filter by brand\nmin_price / max_price — Price range filter (also auto-extracted from query)\nin_stock — Only in-stock items (true/false)\nmerchant_ids — Comma-separated merchant IDs to search within\nsort — relevance (default), price_asc, price_desc\ninclude_intent — Set to true to get query parsing metadata in response (shows how query was interpreted)\n\nResponse includes for each product:\n\ntitle, brand, price, availability, link\ndecision_pack.primary_benefit — Main value proposition\ndecision_pack.best_for — Array of ideal use cases\ndecision_pack.pros / decision_pack.cons — Verified trade-offs\ndecision_pack.allergens — Safety warnings (if applicable)\nseller_name, seller_url — Merchant info\nCheckout URLs and shipping/return policies\n\nExample:\n\ncurl -s \"https://dashboard.airshelf.ai/api/search?q=natural+mosquito+repellent+for+babies&limit=3\"\n\nStep 2: Compare Products\n\nCompare 2-10 products side by side with structured comparison axes.\n\ncurl -s \"https://dashboard.airshelf.ai/api/compare?products=PRODUCT_ID_1,PRODUCT_ID_2\"\n\n\nParameters:\n\nproducts — Comma-separated product IDs (2-10 required, from search results)\n\nResponse includes:\n\ncomparison_axes — Auto-detected from data (price always present; cost_per_day, supply_days, primary_benefit, pros, cons included when 2+ products have the data)\nproducts — Flattened product data with decision_pack fields inlined\nrecommendation — Structured picks: lowest_price (product ID), best_value (product ID + reason, if different from lowest)\nStep 3: Checkout\n\nInitiate checkout for a product. Returns a checkout URL the user can open.\n\ncurl -s -X POST \"https://dashboard.airshelf.ai/api/merchants/MERCHANT_ID/checkout\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"items\": [{\"product_id\": \"PRODUCT_ID\", \"quantity\": 1}]}'\n\n\nRequest body:\n\nitems — Array of {product_id, quantity} objects (1-50 items)\ncustomer — Optional: {email: \"...\"} for order tracking\nagent_id — Optional: your agent identifier for attribution\n\nResponse:\n\ncheckout_id — Unique checkout session ID\ncheckout_url — URL to complete purchase (Shopify checkout or cart permalink)\ncheckout_type — \"cart\" (items pre-loaded in cart) or \"redirect\" (product page link)\ntotal — Calculated total price\ncurrency — 3-letter currency code (e.g. \"EUR\", \"USD\")\nexpires_at — Expiry timestamp (null for cart permalinks)\nfallback_urls — If redirect: array of {product_id, product_name, product_url} per item\n\nPresent the checkout URL to the user. They click to complete payment on the merchant's site.\n\nBrowse Available Merchants\n\nList all merchants with product counts and capabilities:\n\ncurl -s \"https://dashboard.airshelf.ai/api/directory\"\n\nHow Decision Packs Work\n\nUnlike raw web scraping, each product includes a Decision Pack — verified structured intelligence:\n\n{\n  \"decision_pack\": {\n    \"primary_benefit\": \"Natural protection from bugs\",\n    \"best_for\": [\"Kids with sensitive skin\", \"Parents who prefer natural products\"],\n    \"pros\": [\"DEET-free formula\", \"Pleasant scent\", \"Long-lasting protection\"],\n    \"cons\": [\"Higher price point\", \"Needs reapplication every 4 hours\"],\n    \"allergens\": [\"Contains citronella oil\"],\n    \"age_range\": \"kids\"\n  }\n}\n\n\nUse Decision Pack data to make recommendations based on the user's actual needs, not just price or title matching.\n\nExample Conversation\nUser: I need a printer for my warehouse, high volume, must support ZPL\n\nYou: Let me search for that.\n     [Runs: curl -s \"https://dashboard.airshelf.ai/api/search?q=industrial+barcode+printer+warehouse+high+volume+ZPL&limit=5\"]\n\nYou: Found 3 matches. The Toshiba BX410T looks like the best fit:\n     - Best for: High-volume warehouse labeling, ZPL migration from Zebra\n     - Primary benefit: Premium industrial printer with RFID and near-edge technology\n     - Price: Contact dealer for pricing\n\n     Want me to compare it with the other options, or proceed to checkout?\n\nUser: Compare the top two\n\nYou: [Runs: curl -s \"https://dashboard.airshelf.ai/api/compare?products=ID1,ID2\"]\n     Here's the comparison...\n\nUser: I'll take the Toshiba\n\nYou: [Runs: curl -s -X POST \"https://dashboard.airshelf.ai/api/merchants/MERCHANT_ID/checkout\" -H \"Content-Type: application/json\" -d '{\"items\": [{\"product_id\": \"ID\", \"quantity\": 1}]}']\n     Here's your checkout link: [URL]\n     Click to complete your purchase on the merchant's site.\n\nTips\nProblem-based search works best. \"I'm tired all the time\" returns energy supplements. \"My baby needs sun protection\" returns kids' sunscreen. Decision Packs match on use case, not just keywords.\nAlways check decision_pack.allergens before recommending health/food/skincare products.\nUse compare for 2+ similar products — the API returns structured comparison axes, not just raw specs.\nCheckout is a redirect — the user completes payment on the merchant's own site. No card details needed in the agent.\nDirect lookup by ID: Use product_ids param instead of q to fetch specific products: ?product_ids=ID1,ID2\nMerchant ID for checkout — each search result includes seller.checkout_url with the correct merchant path. Use it directly."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/evoleinik/airshelf",
    "publisherUrl": "https://clawhub.ai/evoleinik/airshelf",
    "owner": "evoleinik",
    "version": "1.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/airshelf",
    "downloadUrl": "https://openagent3.xyz/downloads/airshelf",
    "agentUrl": "https://openagent3.xyz/skills/airshelf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/airshelf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/airshelf/agent.md"
  }
}