{
  "schemaVersion": "1.0",
  "item": {
    "slug": "harpa-ai",
    "name": "HARPA AI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/alxsharuk/harpa-ai",
    "canonicalUrl": "https://clawhub.ai/alxsharuk/harpa-ai",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/harpa-ai",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=harpa-ai",
    "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-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/harpa-ai"
    },
    "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/harpa-ai",
    "agentPageUrl": "https://openagent3.xyz/skills/harpa-ai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/harpa-ai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/harpa-ai/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": "HARPA Grid — Browser Automation API",
        "body": "HARPA Grid lets you orchestrate real web browsers remotely. You can scrape pages, search the web, run built-in or custom AI commands, and send AI prompts with full page context — all through a single REST endpoint."
      },
      {
        "title": "Prerequisites",
        "body": "The user must have:\n\nHARPA AI Chrome Extension installed from https://harpa.ai\nAt least one active Node — a browser with HARPA running (configured in the extension's AUTOMATE tab)\nA HARPA API key — obtained from the HARPA extension AUTOMATE tab. The key is provided as the HARPA_API_KEY environment variable.\n\nIf the user hasn't set up HARPA yet, direct them to: https://harpa.ai/grid/browser-automation-node-setup"
      },
      {
        "title": "API Reference",
        "body": "Endpoint: POST https://api.harpa.ai/api/v1/grid\nAuth: Authorization: Bearer $HARPA_API_KEY\nContent-Type: application/json\n\nFull reference: https://harpa.ai/grid/grid-rest-api-reference"
      },
      {
        "title": "1. Scrape a Web Page",
        "body": "Extract full page content (as markdown) or specific elements via CSS/XPath/text selectors.\n\nFull page scrape:\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"scrape\",\n    \"url\": \"https://example.com\",\n    \"timeout\": 15000\n  }'\n\nTargeted element scrape (grab):\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"scrape\",\n    \"url\": \"https://example.com/products\",\n    \"grab\": [\n      {\n        \"selector\": \".product-title\",\n        \"selectorType\": \"css\",\n        \"at\": \"all\",\n        \"take\": \"innerText\",\n        \"label\": \"titles\"\n      },\n      {\n        \"selector\": \".product-price\",\n        \"selectorType\": \"css\",\n        \"at\": \"all\",\n        \"take\": \"innerText\",\n        \"label\": \"prices\"\n      }\n    ],\n    \"timeout\": 15000\n  }'\n\nGrab fields:\n\nFieldRequiredDefaultValuesselectoryes—CSS (.class, #id), XPath (//h2), or text contentselectorTypenoautoauto, css, xpath, textatnofirstall, first, last, or a numbertakenoinnerTextinnerText, textContent, innerHTML, outerHTML, href, value, id, className, attributes, styles, [attrName], (styleName)labelnodataCustom label for extracted data"
      },
      {
        "title": "2. Search the Web (SERP)",
        "body": "Perform a web search. Supports operators like site:, intitle:.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"serp\",\n    \"query\": \"OpenClaw AI agent framework\",\n    \"timeout\": 15000\n  }'"
      },
      {
        "title": "3. Run an AI Command",
        "body": "Execute one of 100+ built-in HARPA commands or a custom automation on a target page.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"command\",\n    \"url\": \"https://example.com/article\",\n    \"name\": \"Extract data\",\n    \"inputs\": \"List all headings with their word counts\",\n    \"connection\": \"HARPA AI\",\n    \"resultParam\": \"message\",\n    \"timeout\": 30000\n  }'\n\nname — command name (e.g. \"Summary\", \"Extract data\", or any custom command)\ninputs — pre-filled user inputs for multi-step commands\nresultParam — HARPA parameter to return as result (default: \"message\")\nconnection — AI model to use (e.g. \"HARPA AI\", \"gpt-4o\", \"claude-3.5-sonnet\")"
      },
      {
        "title": "4. Run an AI Prompt",
        "body": "Send a custom AI prompt with page context. Use {{page}} to inject the page content.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"prompt\",\n    \"url\": \"https://example.com\",\n    \"prompt\": \"Analyze the current page and extract all contact information. Webpage: {{page}}\",\n    \"connection\": \"CHAT AUTO\",\n    \"timeout\": 30000\n  }'"
      },
      {
        "title": "Common Parameters",
        "body": "ParameterRequiredDefaultDescriptionactionyes—scrape, serp, command, or prompturlno—Target page URL (ignored by serp)nodeno—Node ID (\"r2d2\"), multiple (\"r2d2 c3po\"), first N (\"5\"), or all (\"*\")timeoutno300000Max wait time in ms (max 5 minutes)resultsWebhookno—URL to POST results to asynchronously (retained 30 days)connectionno—AI model for command/prompt actions"
      },
      {
        "title": "Node Targeting",
        "body": "Omit node to use the default node\n\"node\": \"mynode\" — target a specific node by ID\n\"node\": \"node1 node2\" — target multiple nodes\n\"node\": \"3\" — use first 3 available nodes\n\"node\": \"*\" — broadcast to all nodes"
      },
      {
        "title": "Async Results via Webhook",
        "body": "Set resultsWebhook to receive results asynchronously. The action stays alive for up to 30 days, useful when target nodes are temporarily offline.\n\n{\n  \"action\": \"scrape\",\n  \"url\": \"https://example.com\",\n  \"resultsWebhook\": \"https://your-server.com/webhook\",\n  \"timeout\": 15000\n}"
      },
      {
        "title": "Tips",
        "body": "Scraping behind-login pages works because HARPA runs inside a real browser session with the user's cookies and auth state.\nUse the grab array with multiple selectors to extract structured data in a single request.\nFor long-running AI commands, increase timeout (max 300000ms / 5 min) or use resultsWebhook.\nThe {{page}} variable in prompts injects the full page content — use it to give AI context about the current page."
      }
    ],
    "body": "HARPA Grid — Browser Automation API\n\nHARPA Grid lets you orchestrate real web browsers remotely. You can scrape pages, search the web, run built-in or custom AI commands, and send AI prompts with full page context — all through a single REST endpoint.\n\nPrerequisites\n\nThe user must have:\n\nHARPA AI Chrome Extension installed from https://harpa.ai\nAt least one active Node — a browser with HARPA running (configured in the extension's AUTOMATE tab)\nA HARPA API key — obtained from the HARPA extension AUTOMATE tab. The key is provided as the HARPA_API_KEY environment variable.\n\nIf the user hasn't set up HARPA yet, direct them to: https://harpa.ai/grid/browser-automation-node-setup\n\nAPI Reference\n\nEndpoint: POST https://api.harpa.ai/api/v1/grid Auth: Authorization: Bearer $HARPA_API_KEY Content-Type: application/json\n\nFull reference: https://harpa.ai/grid/grid-rest-api-reference\n\nActions\n1. Scrape a Web Page\n\nExtract full page content (as markdown) or specific elements via CSS/XPath/text selectors.\n\nFull page scrape:\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"scrape\",\n    \"url\": \"https://example.com\",\n    \"timeout\": 15000\n  }'\n\n\nTargeted element scrape (grab):\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"scrape\",\n    \"url\": \"https://example.com/products\",\n    \"grab\": [\n      {\n        \"selector\": \".product-title\",\n        \"selectorType\": \"css\",\n        \"at\": \"all\",\n        \"take\": \"innerText\",\n        \"label\": \"titles\"\n      },\n      {\n        \"selector\": \".product-price\",\n        \"selectorType\": \"css\",\n        \"at\": \"all\",\n        \"take\": \"innerText\",\n        \"label\": \"prices\"\n      }\n    ],\n    \"timeout\": 15000\n  }'\n\n\nGrab fields:\n\nField\tRequired\tDefault\tValues\nselector\tyes\t—\tCSS (.class, #id), XPath (//h2), or text content\nselectorType\tno\tauto\tauto, css, xpath, text\nat\tno\tfirst\tall, first, last, or a number\ntake\tno\tinnerText\tinnerText, textContent, innerHTML, outerHTML, href, value, id, className, attributes, styles, [attrName], (styleName)\nlabel\tno\tdata\tCustom label for extracted data\n2. Search the Web (SERP)\n\nPerform a web search. Supports operators like site:, intitle:.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"serp\",\n    \"query\": \"OpenClaw AI agent framework\",\n    \"timeout\": 15000\n  }'\n\n3. Run an AI Command\n\nExecute one of 100+ built-in HARPA commands or a custom automation on a target page.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"command\",\n    \"url\": \"https://example.com/article\",\n    \"name\": \"Extract data\",\n    \"inputs\": \"List all headings with their word counts\",\n    \"connection\": \"HARPA AI\",\n    \"resultParam\": \"message\",\n    \"timeout\": 30000\n  }'\n\nname — command name (e.g. \"Summary\", \"Extract data\", or any custom command)\ninputs — pre-filled user inputs for multi-step commands\nresultParam — HARPA parameter to return as result (default: \"message\")\nconnection — AI model to use (e.g. \"HARPA AI\", \"gpt-4o\", \"claude-3.5-sonnet\")\n4. Run an AI Prompt\n\nSend a custom AI prompt with page context. Use {{page}} to inject the page content.\n\ncurl -s -X POST https://api.harpa.ai/api/v1/grid \\\n  -H \"Authorization: Bearer $HARPA_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"action\": \"prompt\",\n    \"url\": \"https://example.com\",\n    \"prompt\": \"Analyze the current page and extract all contact information. Webpage: {{page}}\",\n    \"connection\": \"CHAT AUTO\",\n    \"timeout\": 30000\n  }'\n\nCommon Parameters\nParameter\tRequired\tDefault\tDescription\naction\tyes\t—\tscrape, serp, command, or prompt\nurl\tno\t—\tTarget page URL (ignored by serp)\nnode\tno\t—\tNode ID (\"r2d2\"), multiple (\"r2d2 c3po\"), first N (\"5\"), or all (\"*\")\ntimeout\tno\t300000\tMax wait time in ms (max 5 minutes)\nresultsWebhook\tno\t—\tURL to POST results to asynchronously (retained 30 days)\nconnection\tno\t—\tAI model for command/prompt actions\nNode Targeting\nOmit node to use the default node\n\"node\": \"mynode\" — target a specific node by ID\n\"node\": \"node1 node2\" — target multiple nodes\n\"node\": \"3\" — use first 3 available nodes\n\"node\": \"*\" — broadcast to all nodes\nAsync Results via Webhook\n\nSet resultsWebhook to receive results asynchronously. The action stays alive for up to 30 days, useful when target nodes are temporarily offline.\n\n{\n  \"action\": \"scrape\",\n  \"url\": \"https://example.com\",\n  \"resultsWebhook\": \"https://your-server.com/webhook\",\n  \"timeout\": 15000\n}\n\nTips\nScraping behind-login pages works because HARPA runs inside a real browser session with the user's cookies and auth state.\nUse the grab array with multiple selectors to extract structured data in a single request.\nFor long-running AI commands, increase timeout (max 300000ms / 5 min) or use resultsWebhook.\nThe {{page}} variable in prompts injects the full page content — use it to give AI context about the current page."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/alxsharuk/harpa-ai",
    "publisherUrl": "https://clawhub.ai/alxsharuk/harpa-ai",
    "owner": "alxsharuk",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/harpa-ai",
    "downloadUrl": "https://openagent3.xyz/downloads/harpa-ai",
    "agentUrl": "https://openagent3.xyz/skills/harpa-ai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/harpa-ai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/harpa-ai/agent.md"
  }
}