parallel-web
Use Parallel CLI for web search, URL extraction, deep research, structured data enrichment, entity discovery, and recurring web monitoring. Best for requests that explicitly need current web evidence, academic-source discovery, repeated entity lookups, exhaustive reports, or ongoing change tracking.
Author
Category
Development ToolsInstall
Download and extract to your skills directory
Copy command and send to AI Agent for auto-install:
Parallel Web Toolkit
A unified skill for Parallel's web-intelligence workflows. For scientific topics, prefer primary literature and authoritative institutional sources.
Routing — pick the right capability
Read the user's request and then open the corresponding reference file before running a command.
| User wants to... | Capability | Where |
|---|---|---|
| Look something up, research a topic, find current info | Web Search | references/web-search.md |
| Fetch content from a specific URL (webpage, article, PDF) | Web Extract | references/web-extract.md |
| Add web-sourced fields to a list of companies/people/products | Data Enrichment | references/data-enrichment.md |
| Get an exhaustive, multi-source report (user says "deep research", "exhaustive", "comprehensive") | Deep Research | references/deep-research.md |
| Discover a set of entities matching natural-language criteria | FindAll | references/findall.md |
| Track web changes on a recurring schedule | Monitor | references/monitor.md |
| Install or authenticate parallel-cli | Setup | Below |
| Check or retrieve an asynchronous result | Status and polling | Below and the capability reference |
Decision guide
parallel-cli is not found when running any command, follow the Setup section below.Academic source priority
Across all capabilities, prefer academic and scientific sources when the query is technical or scientific in nature. This means:
When citing academic sources, include author names and publication year where available (e.g., Smith et al., 2025) in addition to the standard citation format. If a DOI is present, prefer the DOI link.
Safety and command construction
parallel-cli search - --json or parallel-cli research run - --json) instead of constructing shell source.--data, --exclude, and column definitions with a JSON serializer or a reviewed config file; do not concatenate raw user text into JSON or shell commands.trun_, tgrp_, findall_/frun_, or mon_) and contains no whitespace or shell metacharacters.PARALLEL_API_KEY in command arguments or output.Context chaining
Research and enrichment can return an interaction_id. For a direct follow-up, pass it with --previous-interaction-id so the service can reuse earlier context. Do not reuse an interaction ID across unrelated users or topics.
Setup
Check the current installation first:
parallel-cli --version
parallel-cli update --checkIf missing, install the current verified release in an isolated uv tool environment:
uv tool install "parallel-web-tools[cli]==0.7.1"Upgrade an existing uv installation when the user asks for the latest release:
uv tool upgrade parallel-web-toolsAuthenticate interactively:
parallel-cli loginFor SSH, containers, CI, or other headless environments:
parallel-cli login --deviceAlternatively, use an existing PARALLEL_API_KEY environment variable. Obtain an API key from https://platform.parallel.ai. Do not inspect an entire .env file; if credential presence must be checked, look only for the PARALLEL_API_KEY key name and never display its value.
Verify with:
parallel-cli authIf parallel-cli is not found after install, add ~/.local/bin to PATH.
Check task status
Use the command matching the returned ID:
parallel-cli research status "trun_xxx" --json
parallel-cli enrich status "tgrp_xxx" --json
parallel-cli findall status "findall_xxx" --jsonReport the current status to the user (running, completed, failed, etc.).
Polling limits
Long-running commands support --no-wait followed by a capability-specific poll. Poll at most three times with --timeout 540 (27 minutes total). If the task still has not completed, stop, report the current status and ID, and let the user decide whether to continue later. Never create an unbounded polling loop.