← 返回 Skills 市场
wangzhiming1999

Felo Web Fetch

作者 wangzhiming · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
581
总下载
0
收藏
5
当前安装
1
版本数
在 OpenClaw 中安装
/install felo-web-fetch
功能描述
Fetch web page content from a URL using Felo Web Extract API. Use when users ask to scrape/capture/fetch webpage content, get article text from URL, convert...
使用说明 (SKILL.md)

\r \r

Felo Web Fetch Skill\r

\r

When to Use\r

\r Trigger this skill when the user wants to:\r \r

  • Fetch or scrape content from a webpage URL\r
  • Get article/main text from a link\r
  • Convert a webpage to Markdown or plain text\r
  • Capture readable content from a URL for summarization or processing\r \r Trigger keywords (examples):\r \r
  • fetch webpage, scrape URL, fetch page content, web fetch, url to markdown\r
  • Explicit: /felo-web-fetch, "use felo web fetch"\r
  • Same intent in other languages (e.g. 网页抓取, 提取网页内容) also triggers this skill\r \r Do NOT use for:\r \r
  • Real-time search or Q&A (use felo-search)\r
  • Generating slides (use felo-slides)\r
  • Local file content (read files directly)\r \r

Setup\r

\r

1. Get API key\r

\r

  1. Visit felo.ai\r
  2. Open Settings -> API Keys\r
  3. Create and copy your API key\r \r

2. Configure environment variable\r

\r Linux/macOS:\r \r

export FELO_API_KEY="your-api-key-here"\r
```\r
\r
Windows PowerShell:\r
\r
```powershell\r
$env:FELO_API_KEY="your-api-key-here"\r
```\r
\r
## How to Execute\r
\r
### Option A: Use the bundled script or packaged CLI\r
\r
**Script** (from repo):\r
\r
```bash\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" [options]\r
```\r
\r
**Packaged CLI** (after `npm install -g felo-ai`): same options, with short forms allowed:\r
\r
```bash\r
felo web-fetch -u "https://example.com" [options]\r
# Short forms: -u (url), -f (format), -t (timeout, seconds), -j (json)\r
```\r
\r
Options:\r
\r
| Option | Default | Description |\r
|--------|---------|-------------|\r
| `--url` | (required) | Webpage URL to fetch |\r
| `--format` | markdown | Output format: `html`, `text`, `markdown` |\r
| `--target-selector` | - | CSS selector: fetch only this element (e.g. `article.main`, `#content`) |\r
| `--wait-for-selector` | - | Wait for this selector before fetching (e.g. dynamic content) |\r
| `--readability` | false | Enable readability processing (main content only) |\r
| `--crawl-mode` | fast | `fast` or `fine` |\r
| `--timeout` | 60000 (script) / 60 (CLI) | Request timeout: script uses **milliseconds**, CLI uses **seconds** (e.g. `-t 90`) |\r
| `--json` / `-j` | false | Print full API response as JSON |\r
\r
### How to write instructions (target_selector + output_format)\r
\r
When the user wants a **specific part** of the page or a **specific output format**, phrase the command like this:\r
\r
- **Output format**: "Fetch as **text**" / "Get **markdown**" / "Return **html**" → use `--format text`, `--format markdown`, or `--format html`.\r
- **Target one element**: "Only the **main article**" / "Just the **content inside** `#main`" / "Fetch only **article.main-content**" → use `--target-selector "article.main"` or the selector they give (e.g. `#main`, `.main-content`, `article .post`).\r
\r
Examples of user intents and equivalent commands:\r
\r
| User intent | Command |\r
|-------------|---------|\r
| "Fetch this page as plain text" | `--url "..." --format text` |\r
| "Get only the main content area" | `--url "..." --target-selector "main"` or `article` |\r
| "Fetch the div with id=content as markdown" | `--url "..." --target-selector "#content" --format markdown` |\r
| "Just the article body, as HTML" | `--url "..." --target-selector "article .body" --format html` |\r
\r
Examples:\r
\r
```bash\r
# Basic: fetch as Markdown\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com"\r
\r
# Article-style with readability\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --readability --format markdown\r
\r
# Raw HTML\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --format html --json\r
\r
# Only the element matching a CSS selector (e.g. main article)\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --format markdown\r
\r
# Specific output format + target selector\r
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "#content" --format text\r
```\r
\r
### Option B: Call API with curl\r
\r
```bash\r
curl -X POST "https://openapi.felo.ai/v2/web/extract" \\r
  -H "Authorization: Bearer $FELO_API_KEY" \\r
  -H "Content-Type: application/json" \\r
  -d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}'\r
```\r
\r
## API Reference (summary)\r
\r
- **Endpoint**: `POST /v2/web/extract`\r
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed.\r
- **Auth**: `Authorization: Bearer YOUR_API_KEY`\r
\r
### Request body (JSON)\r
\r
| Parameter | Type | Required | Default | Description |\r
|-----------|------|----------|---------|-------------|\r
| url | string | Yes | - | Webpage URL to fetch |\r
| crawl_mode | string | No | fast | `fast` or `fine` |\r
| output_format | string | No | html | `html`, `text`, `markdown` |\r
| with_readability | boolean | No | - | Use readability (main content) |\r
| with_links_summary | boolean | No | - | Include links summary |\r
| with_images_summary | boolean | No | - | Include images summary |\r
| target_selector | string | No | - | CSS selector for target element |\r
| wait_for_selector | string | No | - | Wait for selector before fetch |\r
| timeout | integer | No | - | Timeout in milliseconds |\r
| with_cache | boolean | No | true | Use cache |\r
\r
### Response\r
\r
Success (200):\r
\r
```json\r
{\r
  "code": 0,\r
  "message": "success",\r
  "data": {\r
    "content": { ... }\r
  }\r
}\r
```\r
\r
Fetched content is in `data.content`; structure depends on `output_format`.\r
\r
### Error codes\r
\r
| HTTP | Code | Description |\r
|------|------|-------------|\r
| 400 | - | Parameter validation failed |\r
| 401 | INVALID_API_KEY | API key invalid or revoked |\r
| 500/502 | WEB_EXTRACT_FAILED | Fetch failed (server or page error) |\r
\r
## Output Format\r
\r
On success (script without `--json`):\r
\r
- Print the fetched content only (for direct use or piping).\r
\r
With `--json`:\r
\r
- Print full API response including `code`, `message`, `data`.\r
\r
Error response to user:\r
\r
```markdown\r
## Web Fetch Failed\r
\r
- Error: \x3Ccode or message>\r
- URL: \x3Crequested url>\r
- Suggestion: \x3Ce.g. check URL, retry, or use --timeout>\r
```\r
\r
## Important Notes\r
\r
- Always check `FELO_API_KEY` before calling; if missing, return setup instructions.\r
- For long articles or slow sites, consider `--timeout` or `timeout` in request body.\r
- Use `output_format: "markdown"` and `with_readability: true` for clean article text.\r
- API may cache results; use `with_cache: false` in body only when fresh content is required (script does not expose this by default).\r
\r
## References\r
\r
- [Felo Web Extract API](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html)\r
- [Felo Open Platform](https://openapi.felo.ai/docs/)\r
安全使用建议
This skill's code is small and does what its description says (posts URLs to Felo's web-extract API and prints the returned content). However: 1) The skill requires FELO_API_KEY (and can optionally use FELO_API_BASE) at runtime, but the registry metadata does not list these — ask the publisher to correct the declared requirements before installing. 2) Using the skill sends the target URL and its fetched content to an external service (openapi.felo.ai); avoid sending private, authenticated, or sensitive URLs/content unless you trust the Felo service and its API key scope. 3) Confirm the owner/publisher (source is 'unknown') and review the npm/binary packaging if you plan to install a 'felo-ai' CLI (the repo doesn't include a packaged installer). If you need to be cautious, run the included script locally with a limited/test API key or inspect/modify the script to log less, or prefer an alternative with explicit metadata and a known publisher.
功能分析
Type: OpenClaw Skill Name: felo-web-fetch Version: 1.0.1 The skill is a legitimate utility for fetching and converting webpage content via the Felo Web Extract API. The implementation in `scripts/run_web_fetch.mjs` is clean, using standard Node.js fetch calls to the official API endpoint (openapi.felo.ai) without any suspicious dependencies, shell execution, or data exfiltration logic.
能力评估
Purpose & Capability
Name/description match the implementation: the script posts a URL to Felo's /v2/web/extract endpoint and returns the returned content. However, the registry metadata lists no required environment variables while the runtime script and SKILL.md clearly require FELO_API_KEY (and optionally FELO_API_BASE). The omission in metadata is a coherence issue.
Instruction Scope
SKILL.md and the script instruct the agent to call the remote Felo API with the provided URL and options. The instructions do not ask the agent to read unrelated files, system credentials, or other services. They do, however, advise installing a packaged CLI (felo-ai) that is not included here — a mild documentation inconsistency. Sending arbitrary URLs/content to an external API is expected for this skill but is a privacy consideration.
Install Mechanism
There is no install spec (instruction-only with a bundled Node script). The single script is readable and small; no downloads, archives, or opaque installers are used by the skill itself. This is low install risk.
Credentials
The code requires FELO_API_KEY (and optionally FELO_API_BASE) to function — a single API key is proportional to the skill's purpose. The problem is the registry declares no required env vars, which is inconsistent and could mislead users into not providing or checking credentials. The script does not access other secrets or system credentials.
Persistence & Privilege
The skill is not always-enabled, is user-invocable, and does not request to modify other skills or system settings. It does not persist credentials or alter global agent configuration.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install felo-web-fetch
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /felo-web-fetch 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Re-publish
元数据
Slug felo-web-fetch
版本 1.0.1
许可证
累计安装 5
当前安装数 5
历史版本数 1
常见问题

Felo Web Fetch 是什么?

Fetch web page content from a URL using Felo Web Extract API. Use when users ask to scrape/capture/fetch webpage content, get article text from URL, convert... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 581 次。

如何安装 Felo Web Fetch?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install felo-web-fetch」即可一键安装,无需额外配置。

Felo Web Fetch 是免费的吗?

是的,Felo Web Fetch 完全免费(开源免费),可自由下载、安装和使用。

Felo Web Fetch 支持哪些平台?

Felo Web Fetch 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Felo Web Fetch?

由 wangzhiming(@wangzhiming1999)开发并维护,当前版本 v1.0.1。

💬 留言讨论