$npx -y skills add parallel-web/parallel-agent-skills --skill parallel-deep-researchONLY use when user explicitly says 'deep research', 'exhaustive', 'comprehensive report', or 'thorough investigation'. Slower and more expensive than parallel-web-search. For normal research/lookup requests, use parallel-web-search instead. Supports multi-turn: pass --previous-in
| 1 | # Deep Research |
| 2 | |
| 3 | Research topic: $ARGUMENTS |
| 4 | |
| 5 | > Requires `parallel-cli` ≥ 0.3.0. If any command below errors with `no such option`, `no such command`, or `unrecognized arguments`, the user is on an older CLI. Tell them to run `parallel-cli update` (or `pipx upgrade parallel-web-tools` if installed via pipx), then retry. |
| 6 | |
| 7 | ## When to use (vs parallel-web-search) |
| 8 | |
| 9 | ONLY use this skill when the user explicitly requests deep/exhaustive research. Deep research is 10-100x slower and more expensive than parallel-web-search. For normal "research X" requests, quick lookups, or fact-checking, use **parallel-web-search** instead. |
| 10 | |
| 11 | ## Step 1: Start the research |
| 12 | |
| 13 | Choose a descriptive filename based on the topic (e.g., `ai-chip-market-2026`, `react-vs-vue-comparison`). Use lowercase with hyphens, no spaces. Reuse this base name in step 2 as `-o "$FILENAME"`. |
| 14 | |
| 15 | ```bash |
| 16 | parallel-cli research run "$ARGUMENTS" --processor pro-fast --text --no-wait --json |
| 17 | ``` |
| 18 | |
| 19 | The `--text` flag tells the API to return a markdown report (with inline citations) when the task completes, instead of the default structured JSON. Use it for narrative/report-style requests, which is what most users want from "deep research." Drop `--text` if the user explicitly wants structured JSON output. |
| 20 | |
| 21 | Optional with `--text`: pass `--text-description "Keep under 1500 words, focus on M&A activity"` to steer length, format, or focus. |
| 22 | |
| 23 | If this is a **follow-up** to a previous research or enrichment task where you know the `interaction_id`, add context chaining: |
| 24 | |
| 25 | ```bash |
| 26 | parallel-cli research run "$ARGUMENTS" --processor lite-fast --text --no-wait --json --previous-interaction-id "$INTERACTION_ID" |
| 27 | ``` |
| 28 | |
| 29 | By chaining `interaction_id` values across requests, each follow-up question automatically has the full context of prior turns — so you can drill deeper without restating what was already researched. Use a lighter processor (`lite-fast` or `base-fast`) for follow-ups since the heavy lifting was done in the initial turn. |
| 30 | |
| 31 | This returns instantly. Do NOT omit `--no-wait` — without it the command blocks for minutes and will time out. |
| 32 | |
| 33 | Processor options (choose based on user request): |
| 34 | |
| 35 | | Processor | Expected latency | Use when | |
| 36 | |-----------|-----------------|----------| |
| 37 | | `lite-fast` | 10–60s | Quick lookups, follow-ups | |
| 38 | | `base-fast` | 15–100s | Simple questions | |
| 39 | | `core-fast` | 1–5 min | Moderate research | |
| 40 | | `pro-fast` | 2–10 min | **Default** — exploratory research, good depth/speed balance | |
| 41 | | `ultra-fast` | 5–25 min | Multi-source deep research (~2× cost) | |
| 42 | | `ultra2x-fast` / `ultra4x-fast` / `ultra8x-fast` | up to 2 hr | Hardest questions, only when explicitly requested | |
| 43 | |
| 44 | Notes on the `-fast` suffix: `-fast` tiers use cached web data and are quicker. The non-fast variants (`pro`, `ultra`, etc.) re-fetch fresher data — slower but better for very recent events. Default to `-fast` unless the user specifically asks about news from the last day or two. |
| 45 | |
| 46 | Run `parallel-cli research processors` to see the full list with latencies. |
| 47 | |
| 48 | Parse the JSON output to extract the `run_id`, `interaction_id`, and monitoring URL. Immediately tell the user: |
| 49 | |
| 50 | - Deep research has been kicked off |
| 51 | - The expected latency for the processor tier chosen (from the table above) |
| 52 | - The monitoring URL where they can track progress |
| 53 | |
| 54 | Tell them they can background the polling step to continue working while it runs. |
| 55 | |
| 56 | ## Step 2: Poll for results |
| 57 | |
| 58 | ```bash |
| 59 | parallel-cli research poll "$RUN_ID" -o "$FILENAME" --timeout 540 |
| 60 | ``` |
| 61 | |
| 62 | Important: |
| 63 | |
| 64 | - Use `--timeout 540` (9 minutes) to stay within tool execution limits |
| 65 | - Do NOT pass `--json` — the full output is large and will flood context. The `-o` flag writes results to files instead. |
| 66 | - With `-o "$FILENAME"`: |
| 67 | - `$FILENAME.json` is always written (metadata + basis) |
| 68 | - `$FILENAME.md` is written **only if step 1 used `--text`** (markdown report) |
| 69 | - The poll command prints an **executive summary** to stdout when the research completes. Share this executive summary with the user — it gives them a quick overview without having to open the files. |
| 70 | - Pass `--force` if re-polling and you want to overwrite existing files |
| 71 | |
| 72 | ### If the poll times out |
| 73 | |
| 74 | Higher processor tiers can take longer than 9 minutes. If the poll exits without completing: |
| 75 | |
| 76 | 1. Tell the user the research is still running server-side |
| 77 | 2. Re-run the same `parallel-cli research poll` command to continue waiting |
| 78 | |
| 79 | ## Response format |
| 80 | |
| 81 | **After s |