技能详情(站内镜像,无评论)
作者:Alex @alxsharuk
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 2 · 521 · 1 current installs · 1 all-time installs
⭐ 2
安装量(当前) 1
🛡 VirusTotal :可疑 · OpenClaw :良性
Package:alxsharuk/harpa-ai
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :良性
OpenClaw 评估
The skill's requirements and runtime instructions coherently match its stated purpose (remote browser automation via HARPA Grid); there are no signs of mismatched or unexplained privileges — but the capability to scrape pages (including behind-login) and to forward results to arbitrary webhooks carries obvious privacy/exfiltration risk that users should understand before enabling it.
目的
Name/description describe browser automation and scraping via HARPA Grid. Declared requirement (HARPA_API_KEY) and optional tools (curl/wget) are exactly what this integration needs. No unrelated credentials, binaries, or config paths are requested.
说明范围
SKILL.md gives concrete curl examples that only use the HARPA API and the HARPA_API_KEY. However, the API explicitly supports scraping pages using the user's browser session (cookies) and sending async results to arbitrary webhooks — both of which enable exfiltration of sensitive page content if misused. The instructions do not instruct the agent to read local files or other unrelated environment variables.
安装机制
Instruction-only skill with no install spec or code. This is low-risk from an install perspective (nothing is written to disk by the skill itself).
证书
Only a single credential (HARPA_API_KEY) is required and declared as the primary credential; that aligns with the documented API usage. No unrelated secrets or system paths are requested.
持久
always:false (default) and agent-autonomy not disabled. The skill does not request permanent/always-on presence or modification of other skills. No elevated system privileges are requested.
综合结论
This skill appears to do what it says: call the HARPA Grid REST API using a HARPA_API_KEY to control browser nodes and scrape pages. Before installing, consider the following in plain terms: - HARPA_API_KEY gives the service the ability to run actions in your browser nodes and access pages those nodes can reach, including pages behind your login cookies — treat it like a powerful secret. Don't reuse the key elsewhere. - The API supports result…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「HARPA AI」。简介:Automate web browsers, scrape pages, search the web, and run AI prompts on live…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/alxsharuk/harpa-ai/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: harpa-grid
description: Automate web browsers, scrape pages, search the web, and run AI prompts on live websites via HARPA AI Grid REST API
user-invocable: true
homepage: https://harpa.ai/grid/web-automation
metadata: {"openclaw":{"emoji":"🌐","requires":{"anyBins":["curl","wget"],"env":["HARPA_API_KEY"]},"primaryEnv":"HARPA_API_KEY","homepage":"https://harpa.ai/grid/web-automation","skillKey":"harpa-grid"}}
---
# HARPA Grid — Browser Automation API
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.
## Prerequisites
The user **must** have:
1. **HARPA AI Chrome Extension** installed from https://harpa.ai
2. **At least one active Node** — a browser with HARPA running (configured in the extension's AUTOMATE tab)
3. **A HARPA API key** — obtained from the HARPA extension AUTOMATE tab. The key is provided as the `HARPA_API_KEY` environment variable.
If the user hasn't set up HARPA yet, direct them to: https://harpa.ai/grid/browser-automation-node-setup
## API Reference
**Endpoint:** `POST https://api.harpa.ai/api/v1/grid`
**Auth:** `Authorization: Bearer $HARPA_API_KEY`
**Content-Type:** `application/json`
Full reference: https://harpa.ai/grid/grid-rest-api-reference
---
## Actions
### 1. Scrape a Web Page
Extract full page content (as markdown) or specific elements via CSS/XPath/text selectors.
**Full page scrape:**
```bash
curl -s -X POST https://api.harpa.ai/api/v1/grid
-H "Authorization: Bearer $HARPA_API_KEY"
-H "Content-Type: application/json"
-d '{
"action": "scrape",
"url": "https://example.com",
"timeout": 15000
}'
```
**Targeted element scrape (grab):**
```bash
curl -s -X POST https://api.harpa.ai/api/v1/grid
-H "Authorization: Bearer $HARPA_API_KEY"
-H "Content-Type: application/json"
-d '{
"action": "scrape",
"url": "https://example.com/products",
"grab": [
{
"selector": ".product-title",
"selectorType": "css",
"at": "all",
"take": "innerText",
"label": "titles"
},
{
"selector": ".product-price",
"selectorType": "css",
"at": "all",
"take": "innerText",
"label": "prices"
}
],
"timeout": 15000
}'
```
**Grab fields:**
| Field | Required | Default | Values |
|-------|----------|---------|--------|
| selector | yes | — | CSS (`.class`, `#id`), XPath (`//h2`), or text content |
| selectorType | no | auto | `auto`, `css`, `xpath`, `text` |
| at | no | first | `all`, `first`, `last`, or a number |
| take | no | innerText | `innerText`, `textContent`, `innerHTML`, `outerHTML`, `href`, `value`, `id`, `className`, `attributes`, `styles`, `[attrName]`, `(styleName)` |
| label | no | data | Custom label for extracted data |
### 2. Search the Web (SERP)
Perform a web search. Supports operators like `site:`, `intitle:`.
```bash
curl -s -X POST https://api.harpa.ai/api/v1/grid
-H "Authorization: Bearer $HARPA_API_KEY"
-H "Content-Type: application/json"
-d '{
"action": "serp",
"query": "OpenClaw AI agent framework",
"timeout": 15000
}'
```
### 3. Run an AI Command
Execute one of 100+ built-in HARPA commands or a custom automation on a target page.
```bash
curl -s -X POST https://api.harpa.ai/api/v1/grid
-H "Authorization: Bearer $HARPA_API_KEY"
-H "Content-Type: application/json"
-d '{
"action": "command",
"url": "https://example.com/article",
"name": "Extract data",
"inputs": "List all headings with their word counts",
"connection": "HARPA AI",
"resultParam": "message",
"timeout": 30000
}'
```
- `name` — command name (e.g. `"Summary"`, `"Extract data"`, or any custom command)
- `inputs` — pre-filled user inputs for multi-step commands
- `resultParam` — HARPA parameter to return as result (default: `"message"`)
- `connection` — AI model to use (e.g. `"HARPA AI"`, `"gpt-4o"`, `"claude-3.5-sonnet"`)
### 4. Run an AI Prompt
Send a custom AI prompt with page context. Use `{{page}}` to inject the page content.
```bash
curl -s -X POST https://api.harpa.ai/api/v1/grid
-H "Authorization: Bearer $HARPA_API_KEY"
-H "Content-Type: application/json"
-d '{
"action": "prompt",
"url": "https://example.com",
"prompt": "Analyze the current page and extract all contact information. Webpage: {{page}}",
"connection": "CHAT AUTO",
"timeout": 30000
}'
```
---
## Common Parameters
| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| action | yes | — | `scrape`, `serp`, `command`, or `prompt` |
| url | no | — | Target page URL (ignored by `serp`) |
| node | no | — | Node ID (`"r2d2"`), multiple (`"r2d2 c3po"`), first N (`"5"`), or all (`"*"`) |
| timeout | no | 300000 | Max wait time in ms (max 5 minutes) |
| resultsWebhook | no | — | URL to POST results to asynchronously (retained 30 days) |
| connection | no | — | AI model for `command`/`prompt` actions |
## Node Targeting
- Omit `node` to use the default node
- `"node": "mynode"` — target a specific node by ID
- `"node": "node1 node2"` — target multiple nodes
- `"node": "3"` — use first 3 available nodes
- `"node": "*"` — broadcast to all nodes
## Async Results via Webhook
Set `resultsWebhook` to receive results asynchronously. The action stays alive for up to 30 days, useful when target nodes are temporarily offline.
```json
{
"action": "scrape",
"url": "https://example.com",
"resultsWebhook": "https://your-server.com/webhook",
"timeout": 15000
}
```
## Tips
- Scraping behind-login pages works because HARPA runs inside a real browser session with the user's cookies and auth state.
- Use the `grab` array with multiple selectors to extract structured data in a single request.
- For long-running AI commands, increase `timeout` (max 300000ms / 5 min) or use `resultsWebhook`.
- The `{{page}}` variable in prompts injects the full page content — use it to give AI context about the current page.