URL Extraction
SkillWeb & browsingLets your agent fetch webpage content via a command-line tool and save it as JSON files.
Use URL Extraction in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add URL Extraction and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the URL Extraction skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
CLI-backed URL extraction. Use when the user explicitly invokes this skill, needs CLI-only controls or saved JSON output, or no Parallel web_fetch MCP tool is available. When the bundled Parallel Search MCP is available, prefer its web_fetch tool for ordinary webpages, articles, PDFs, and JavaScript
What this skill tells your AI
The instructions your AI receives, as published by parallel-web/parallel-agent-skills in skills/parallel-web-extract/SKILL.md and read by Ahel’s review.
Extract content from: $ARGUMENTS
Command
Choose a short, descriptive filename based on the URL or content (e.g., vespa-docs, react-hooks-api). Use lowercase with hyphens, no spaces. Substitute it into the command inline — $FILENAME is a placeholder, not a shell variable.
Pass each requested URL as a separate quoted positional argument, up to 20 per call. Do not collapse multiple URLs into one quoted $ARGUMENTS string or use eval to split them. Construct arguments directly from the requested URLs. For example:
parallel-cli extract "https://docs.parallel.ai/integrations/cli" "https://docs.parallel.ai/integrations/cursor-marketplace" --json -o "/tmp/parallel-docs.json"
-o saves JSON. Use a .json extension and inspect an existing path before use because Extract overwrites it. Read the saved file as authoritative; stdout may truncate and human-readable output previews only part of the content. Do not treat a stale file as a successful response after a failed call.
Options if needed:
--objective "focus area"to focus extraction on a specific goal (also silences the "neither objective nor search_queries" warning that V1 emits when neither is set)-q "keyword"(repeatable) to prioritize keywords in excerpts--full-contentto include the complete page body (for long articles, PDFs, or when excerpts may not capture what you need)--full-content-max-chars Nto cap full-content size per result--no-excerptsto strip excerpts when you only want full content--session-id "<returned-session-id>"to group related Search/Extract calls. A session ID is not a Task interaction ID or run ID; never use it with research status/poll or--previous-interaction-id
Handling failed extractions
Inspect the exit status, API error, results, per-URL errors and any warnings. errors: [] is normal success. Nonempty errors can coexist with successful results: retain and present successful content, then name each failed URL and its returned reason. Empty results or missing content are not a successful extraction. Do not fabricate content. For affected URLs, suggest:
- Verifying the URL (the page may have moved)
- Requesting
--full-contentif excerpts are empty but the returned metadata supports that the page was fetched - Using
parallel-cli searchto locate the current URL if the page was renamed
Response format
Return content as:
Use returned full_content for full-page requests; excerpts alone are selected passages and must be labelled as such. Even full content may be capped by --full-content-max-chars or upstream limits; do not promise completeness when capped. Preserve retrieved content verbatim, with these rules:
- Keep content verbatim - do not paraphrase or summarize
- Preserve every numbered/bulleted item in the retrieved content; do not claim an excerpt contains the whole page
- Strip only obvious noise: nav menus, footers, ads
- Preserve all facts, names, numbers, dates, quotes
After the response, mention the output file path (/tmp/$FILENAME.json) so the user knows it's available for follow-up questions.
For large content, keep the full verbatim text in the saved file and provide a brief labelled preview plus its path. Never silently truncate content while claiming it is the complete extraction.
Setup
If parallel-cli is not found, install and authenticate:
/parallel:parallel-cli-setup
If a documented command or option is missing, check the installed version and upgrade through its installation method: standalone parallel-cli update, pipx pipx upgrade parallel-web-tools, uv uv tool upgrade parallel-web-tools, Homebrew brew upgrade parallel-web/tap/parallel-cli, or npm npm update -g parallel-web-cli. Verify help in the same terminal before retrying.
For authentication errors, inspect parallel-cli auth --json and its authenticated boolean; exit zero alone does not prove authentication. A 403 can indicate permissions, policy or billing. Report the actual error; check balance only for a billing-specific failure and never add funds without explicit confirmation.
Signals
- GitHub stars
- 77
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
parallel-web-extract- Source
- github.com/parallel-web/parallel-agent-skills
github.com/parallel-web/parallel-agent-skills
Related picks
Skill · firecrawl
The pick for Scrapescrape
Skill · davila7
The pick for Scrapesummarize
Skill · zhouguoqing
The pick for Summarizebrowser-use
Skill · browser-use
More in Web & browsingwebapp-testing
Skill · anthropics
More in Web & browsingplaywright-cli
Skill · microsoft
More in Web & browsing