7.8 KiB
| name | description | version | author | license | metadata | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| parallel-cli | Use Parallel CLI for agent-native web search, content extraction, deep research, enrichment, FindAll entity discovery, and monitoring. Prefer JSON output and non-interactive flows. | 1.0.0 | Hermes Agent | MIT |
|
Parallel CLI
Use parallel-cli when the user wants Parallel specifically, or when a terminal-native workflow would benefit from Parallel's web search, extraction, deep research, or enrichment stack.
parallel-cli is designed for agents:
- JSON output via
--json - Non-interactive command execution
- Async long-running jobs with
--no-wait,status, andpoll - Search, extract, research, enrichment, entity discovery, and monitoring in one CLI
When to use it
Prefer this skill when:
- The user explicitly mentions Parallel or
parallel-cli - The task needs richer workflows than a simple web search/extract pass
- You need async deep research jobs that can be launched and polled later
- You need structured data enrichment, FindAll, or monitoring capabilities
Prefer Hermes native web_search / web_extract for quick one-off lookups when Parallel is not specifically requested.
Installation
Try the fastest install path available for the environment.
Standalone binary
# macOS / Linux
curl -fsSL https://parallel.ai/install.sh | bash
Homebrew is also supported:
brew install parallel-web/tap/parallel-cli
npm downloads the prebuilt binary:
npm install -g parallel-web-cli
Python fallback
pipx install "parallel-web-tools[cli]"
pipx ensurepath
Authentication
Interactive login:
parallel-cli login
Headless / CI / agent usage:
export PARALLEL_API_KEY="***"
Verify auth:
parallel-cli auth --json
If auth requires browser interaction, run with pty=true.
Core rule set
- Always prefer
--jsonso Hermes can parse structured output. - Prefer non-interactive flags and explicit arguments.
- For long-running jobs, use
--no-waitand thenstatus/poll. - Cite only URLs returned by the CLI output.
- Save large JSON outputs to a temp file when follow-up questions are likely.
- Use background processes only for genuinely long-running workflows; otherwise run in foreground.
Quick reference
parallel-cli
├── auth
├── login
├── logout
├── search
├── extract / fetch
├── research run|status|poll|processors
├── enrich run|status|poll|plan|suggest|deploy
├── findall run|ingest|status|poll|result|enrich|extend|schema|cancel
└── monitor create|list|get|update|delete|events|event-group|simulate
Search
Use for current web lookups with structured results.
parallel-cli search "What is Anthropic's latest AI model?" --json
parallel-cli search -q "bitcoin price" --after-date 2026-01-01 --json
parallel-cli search "SEC filings for Apple" --include-domains sec.gov --json
Useful flags:
-qfor supplemental keyword queries--after-date YYYY-MM-DDfor recency--include-domains domain1.com,domain2.comto constrain sources
If you expect follow-up questions, save output:
parallel-cli search "latest React 19 changes" --json -o /tmp/react-19-search.json
When summarizing results:
- lead with the answer
- include dates, names, and concrete facts
- cite only returned sources
- avoid inventing URLs or source titles
Extraction
Use to pull clean content or markdown from a URL.
parallel-cli extract https://example.com --json
parallel-cli extract https://company.com --objective "Find pricing info" --json
parallel-cli extract https://example.com --full-content --json
Use --objective when the page is broad and you only need one slice of information.
Deep research
Use for deeper multi-step research tasks that may take time.
Synchronous
parallel-cli research run "Compare the leading AI coding agents by pricing, model support, and enterprise controls" --json
Async launch + poll
parallel-cli research run "Compare the leading AI coding agents by pricing, model support, and enterprise controls" --no-wait --json
parallel-cli research status trun_xxx --json
parallel-cli research poll trun_xxx --json
parallel-cli research processors --json
Recommended Hermes workflow:
- launch with
--no-wait --json - capture the returned run/task ID
- if the user wants to continue other work, keep moving
- later call
statusorpoll
Enrichment
Use when the user has CSV/JSON/tabular inputs and wants additional columns inferred from web research.
Suggest columns
parallel-cli enrich suggest "Find the CEO and annual revenue" --json
Plan config
parallel-cli enrich plan -o config.yaml
Non-interactive run
parallel-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"
Status / polling
parallel-cli enrich status <task_group_id> --json
parallel-cli enrich poll <task_group_id> --json
Use explicit JSON arrays for column definitions when operating non-interactively.
FindAll
Use for web-scale entity discovery when the user wants a set of entities matching natural-language criteria.
parallel-cli findall run "Find AI coding agent startups with enterprise offerings" --json
parallel-cli findall status <run_id> --json
parallel-cli findall poll <run_id> --json
parallel-cli findall result <run_id> --json
parallel-cli findall schema <run_id> --json
This is a better fit than ordinary search when the user wants a discovered dataset rather than a short answer.
Monitor
Use for ongoing change detection over time.
parallel-cli monitor create --help
parallel-cli monitor list --json
parallel-cli monitor get <monitor_id> --json
parallel-cli monitor events <monitor_id> --json
parallel-cli monitor delete <monitor_id> --json
Use this when the user wants recurring tracking of a page or source rather than a one-time fetch.
Input patterns for agents
Read from stdin when convenient:
echo "What is the latest funding for Anthropic?" | parallel-cli search - --json
echo "Research question" | parallel-cli research run - --json
Error handling and exit codes
The CLI documents these exit codes:
0success2bad input3auth error4API error5timeout
If you hit auth errors:
- check
parallel-cli auth --json - confirm
PARALLEL_API_KEYor runparallel-cli login - verify
parallel-cliis onPATH
Recommended Hermes usage patterns
Fast answer with citations
- Run
parallel-cli search ... --json - Parse titles, URLs, dates, excerpts
- Summarize with inline citations from the returned URLs only
URL investigation
- Run
parallel-cli extract URL --json - If needed, rerun with
--objectiveor--full-content - Quote or summarize the extracted markdown
Long research workflow
- Run
parallel-cli research run ... --no-wait --json - Store the returned ID
- Continue other work or periodically poll
- Summarize the final report with citations
Structured enrichment workflow
- Inspect the input file and columns
- Use
enrich suggestor provide explicit enriched columns - Run
enrich run - Poll for completion if needed
- Validate the output file before reporting success
Pitfalls
- Do not omit
--jsonunless the user explicitly wants human-formatted output. - Do not cite sources not present in the CLI output.
loginmay require PTY/browser interaction.- Prefer foreground execution for short tasks; do not overuse background processes.
- For large result sets, save JSON to
/tmp/*.jsoninstead of stuffing everything into context.