The parallel-cli is a command-line tool for interacting with the Parallel API. It works interactively or fully via command-line arguments, making it the recommended way to use Parallel in standalone agents. For best results, pair the CLI with Agent Skills or Claude Code to give your agent structured access to search, extract, enrich, and research capabilities.
pipx ensurepath is only required on first-ever pipx use; including it here makes the command safe to copy-paste either way. For the minimal CLI without YAML configs / interactive planner, use pipx install parallel-web-tools.
uv is Astral’s faster modern alternative to pipx. It writes a PATH-aware shim on first run, so no ensurepath step is needed:
Use pip when you’re embedding parallel-web-tools in a Python project (rather than using parallel-cli as a standalone tool — see the pipx tab for that):
# Minimal SDKpip install parallel-web-tools# With YAML config files and interactive plannerpip install parallel-web-tools[cli]# With data integrationspip install parallel-web-tools[duckdb] # DuckDBpip install parallel-web-tools[bigquery] # BigQuerypip install parallel-web-tools[spark] # Apache Spark# Everythingpip install parallel-web-tools[all]
npm install -g parallel-web-cli
Install the standalone binary (no Python or Node required):
curl -fsSL https://parallel.ai/install.sh | bash
This detects your platform (macOS/Linux, x64/arm64) and installs to ~/.local/bin.
Some agent skill registries flag the curl | bash pattern as a supply-chain risk. If you’re installing parallel-cli for use with Agent Skills, prefer pipx or Homebrew.
Search the web with natural language objectives or keyword queries.
# Natural language searchparallel-cli search "What is Anthropic's latest AI model?" --json# Keyword search with date filterparallel-cli search -q "bitcoin price" --after-date 2026-01-01 --json# Search specific domainsparallel-cli search "SEC filings for Apple" --include-domains sec.gov --json# Set search modeparallel-cli search "latest AI research" --mode one-shot --json
# Run deep researchparallel-cli research run "What are the latest developments in quantum computing?" --json# Use a specific processor tierparallel-cli research run "Compare EV battery technologies" --processor ultra --json# Read query from fileparallel-cli research run -f question.txt -o report# Async: launch then poll separatelyparallel-cli research run "question" --no-wait --json # returns run_idparallel-cli research status trun_xxx --json # check statusparallel-cli research poll trun_xxx --json # wait and get result# List available processorsparallel-cli research processors --json
Option
Description
-p, --processor
Processor tier: lite, base, core, pro (default), ultra, and -fast variants
Enrich CSV or JSON data with AI-powered web research.
# Let AI suggest output columnsparallel-cli enrich suggest "Find the CEO and annual revenue" --json# Run enrichment directlyparallel-cli enrich run \ --source-type csv \ --source companies.csv \ --target enriched.csv \ --source-columns '[{"name": "company", "description": "Company name"}]' \ --intent "Find the CEO and annual revenue"# Enrich with inline data (no file needed)parallel-cli enrich run \ --data '[{"company": "Google"}, {"company": "Apple"}]' \ --target output.csv \ --intent "Find the CEO"# Enrich a JSON fileparallel-cli enrich run \ --source-type json \ --source companies.json \ --target enriched.json \ --source-columns '[{"name": "company", "description": "Company name"}]' \ --enriched-columns '[{"name": "ceo", "description": "CEO name"}]'# Run from YAML configparallel-cli enrich run config.yaml# Async: launch then pollparallel-cli enrich run config.yaml --no-wait --jsonparallel-cli enrich status tgrp_xxx --jsonparallel-cli enrich poll tgrp_xxx --json
Option
Description
--source-type
csv or json
--source
Source file path
--target
Target file path
--source-columns
Source columns as JSON
--enriched-columns
Output columns as JSON
--intent
Natural language description (AI suggests columns)
--processor
Processor tier (e.g. core-fast, pro, ultra)
--data
Inline JSON data array
--no-wait
Return immediately
--dry-run
Preview without making API calls
--json
Output as JSON
YAML configuration format
You can also define enrichment jobs in YAML:
source: input.csvtarget: output.csvsource_type: csvprocessor: core-fastsource_columns: - name: company_name description: The name of the companyenriched_columns: - name: ceo description: The CEO of the company type: str - name: revenue description: Annual revenue in USD type: float
Create YAML configs interactively or programmatically:
# Interactiveparallel-cli enrich plan -o config.yaml# Non-interactive (for scripts/agents)parallel-cli enrich plan -o config.yaml \ --source-type csv \ --source companies.csv \ --target enriched.csv \ --source-columns '[{"name": "company", "description": "Company name"}]' \ --intent "Find the CEO and annual revenue"
YAML config files and the interactive planner require pip install parallel-web-tools[cli].
Discover entities from the web using natural language.
# Discover entitiesparallel-cli findall run "AI startups in healthcare" --json# Control generator tier and match limitparallel-cli findall run "Find roofing companies in Charlotte NC" -g base -n 25 --json# Exclude specific entitiesparallel-cli findall run "Find AI startups" \ --exclude '[{"name": "Example Corp", "url": "example.com"}]' --json# Preview schema before runningparallel-cli findall run "Find YC companies in developer tools" --dry-run --json# Async workflowparallel-cli findall run "AI startups" --no-wait --jsonparallel-cli findall status frun_xxx --jsonparallel-cli findall poll frun_xxx --jsonparallel-cli findall result frun_xxx --json# Cancel a running jobparallel-cli findall cancel frun_xxx
Option
Description
-g, --generator
Generator tier: preview, base, core (default), pro