Skip to main content
skill CX Codex

parallel-web-extract — Claude Code skill: pull page content by URL

Fetches the content behind URLs through parallel-cli and can save it as JSON. Useful when you need the actual page text rather than a summary.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add parallel-web/parallel-agent-skills --skill parallel-web-extract -a claude-code
Open on GitHub

What parallel-web-extract does

One call takes up to 20 links, each passed as its own quoted argument, and runs them through parallel-cli extract. Add -o with a .json path to keep the result on disk — read that file, since terminal output is truncated and shows only part of what came back. Excerpts are the default; long articles and PDFs usually need --full-content, optionally bounded with --full-content-max-chars.

--objective narrows extraction to a goal, and a repeatable -q boosts chosen keywords. Related Search and Extract calls can share a --session-id. Failures arrive per URL and often sit alongside working results, so hand over whatever was fetched and name each link that failed with its reason. An empty result is not a success.

The skill depends on parallel-cli and an internet connection, so neither is optional. When the command is missing, /parallel:parallel-cli-setup installs and authenticates it. A zero exit code proves nothing about auth — check parallel-cli auth --json and its authenticated field instead. A 403 can point to permissions, policy or billing; look at the balance only when the failure is clearly about payment.

What it helps with

  • pull the full text of an article from a link
  • save extracted content to a JSON file
  • process several URLs in a single call
  • get the body of a long PDF instead of excerpts
  • report which links failed and why

Example prompts for the agent

  • Extract https://docs.parallel.ai/integrations/cli and save it to /tmp/parallel-docs.json
  • Get the full content of this page, excerpts are not enough
  • Run all three links at once and tell me which one failed

How to install parallel-web-extract

1Skills CLI (Vercel)

npx skills add parallel-web/parallel-agent-skills --skill parallel-web-extract -a claude-code

2Manually: put the files in place

~/.claude/skills/parallel-web-extract/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/parallel-web-extract/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about parallel-web-extract

How do I install parallel-web-extract in Claude Code?

Run npx skills add parallel-web/parallel-agent-skills --skill parallel-web-extract -a claude-code. The skill lands at ~/.claude/skills/parallel-web-extract/SKILL.md.

What does parallel-web-extract do?

It extracts page content from URLs with parallel-cli and can write the result to a JSON file. For ordinary pages and articles, the Parallel webfetch tool is the better pick when it is available.

What does the skill need to run?

parallel-cli and internet access. If the command is not found, install and authenticate it with /parallel:parallel-cli-setup.

Source text

SKILL.md · MIT
---
name: parallel-web-extract
description: "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-heavy sites."
user-invocable: true
argument-hint: <url> [url2] [url3]
context: fork
agent: parallel:parallel-subagent
compatibility: Requires parallel-cli and internet access.
allowed-tools: Bash(parallel-cli:*)
metadata:
  author: parallel
---

# URL Extraction

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:

```bash
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-content` to include the complete page body (for long articles, PDFs, or when excerpts may not capture what you need)
- `--full-content-max-chars N` to cap full-content size per result
- `--no-excerpts` to 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-content` if excerpts are empty but the returned metadata supports that the page was fetched
- Using `parallel-cli search` to locate the current URL if the page was renamed

## Response format

Return content as:

**[Page Title](URL)**

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:

```bash
/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.

© parallel · MIT · parallel-web/parallel-agent-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set10

parallel-deep-research Runs multi-step deep research jobs using parallel-cli. Use it when you need an exhaustive markdown report with citations rather than a quick web search. CX Codex +1 15,600installs parallel-web-search A skill that runs web searches through parallel-cli and saves the full result set to JSON. Useful when you need keyword flags, domain filters, or a file to follow up on. CX Codex +1 14,400installs parallel-data-enrichment Adds web-sourced fields like CEO names, funding and contact info to lists of companies, people or products. Handles CSV files and inline data. CX Codex +1 13,500installs parallel-monitor This skill sets up server-side monitors that re-check web pages on a schedule and emit events when something changes. CX Codex +1 12,300installs parallel-findall Discovers companies, people, and products matching a natural-language description into a structured list. Useful when you need concrete entities rather than web pages or reports. CX Codex +1 12,300installs parallel-cli-setup A skill that walks the agent through installing parallel-cli, signing in, checking balance and installing the rest of the Parallel skills. CX Codex +1 6,000installs migrate-to-parallel Moves web-data integrations from Exa, Tavily, Perplexity or Firecrawl onto Parallel products while keeping app behavior intact. Handy when you swap search and scraping providers. CX Codex +1 3,200installs parallel-memory A skill that pulls past Parallel Task, Monitor and FindAll runs out of memory when they can help, and removes them on request. CX Codex +1 2,300installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor