parallel-web-extract

URL content extraction. Use for fetching any URL - webpages, articles, PDFs, JavaScript-heavy sites. Token-efficient: runs in forked context. Prefer over…

npx skills add https://github.com/parallel-web/parallel-cursor-plugin --skill parallel-web-extract

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:

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

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.

If the parallel-cli binary is not installed

If the shell reports command not found: parallel-cli, stop and tell the user to run /parallel-setup, then retry their request. Do not substitute built-in search, another provider or an answer from memory.

Command and authentication failures

No such command, No such option or unrecognized arguments from an installed CLI indicate a stale or mismatched interface. Check its version and upgrade through its installation method using /parallel-setup; parallel-cli update is for standalone installs only. Verify the required command in the same Cursor terminal before retrying.

For authentication errors, run parallel-cli auth --json and inspect authenticated; exit zero alone does not prove authentication. Use /parallel-setup for terminal login or environment-key guidance, without requesting credentials in chat. A 403 can be an authorization or billing error: report the actual error and do not assume insufficient balance or add funds automatically.

For other API/input errors, report the error without calling it a version problem. Reuse saved run IDs to resume asynchronous work. After an ambiguous creation failure, resolve whether a job exists before retrying creation.

More skills from parallel-web

parallel-monitor
parallel-web
Continuously track the web for changes on a recurring cadence. Use when the user asks to 'monitor', 'track changes to', 'watch', or 'alert me when' something…
migrate-to-parallel
parallel-web
Migrate Exa, Tavily, Perplexity, or Firecrawl web-data integrations completely to the appropriate Parallel products while preserving application behavior. Use…
parallel-data-enrichment
parallel-web
Bulk enrichment of company, people, or product data with web-sourced fields like CEO names, funding, and contact info. Accepts inline JSON data or CSV files; outputs enriched results to CSV Runs asynchronously with progress tracking via monitoring URL and polling commands Requires parallel-cli tool and internet access; handles large datasets with configurable timeouts Supports flexible field requests through natural language intent descriptions (e.g., "CEO name and founding year")
parallel-deep-research
parallel-web
Exhaustive research with configurable depth, latency, and cost trade-offs for complex topics. Three processor tiers (pro-fast, ultra-fast, ultra) ranging from 30 seconds to 25 minutes, with cost scaling from 1x to 3x baseline Asynchronous execution with polling: kick off research instantly, monitor progress via URL, retrieve results when ready without blocking Outputs formatted markdown report and JSON metadata; executive summary printed to stdout for quick overview Designed for explicit...
parallel-findall
parallel-web
Discover entities (companies, people, products, etc.) matching a natural-language description. Use when the user asks to 'find all X' or 'list every Y that…' —…
parallel-memory
parallel-web
Recall past Parallel Task, Monitor, and FindAll runs when they may help; evict runs or clear memory when asked.
parallel-web-extract
parallel-web
Extract content from multiple URLs in parallel, token-efficiently. Handles webpages, articles, PDFs, and JavaScript-heavy sites with a single command Runs in a forked context to minimize token overhead compared to built-in WebFetch Supports batch extraction of multiple URLs with optional focus objectives Requires parallel-cli installation and authentication; outputs extracted content as markdown to a local file for follow-up queries
parallel-web-search
parallel-web
Fast web search for current information, research, and fact-finding across the internet. Executes single objective-based queries or multiple keyword searches in parallel, returning up to 10 results with excerpts and metadata Supports time-sensitive filtering via --after-date and domain-specific searches with --include-domains Outputs structured JSON with titles, URLs, publish dates, and excerpts for easy parsing and follow-up queries Requires inline citations for every claim using markdown...