tavily research
AI-powered deep research that gathers sources, analyzes them, and produces a cited report. Takes 30-120 seconds.
Before running any command
Check tvly --version and tvly --status first. If the CLI is missing, use a
reviewed installation method:
uv tool install tavily-cli
# or: python -m pip install --user tavily-cli
Authenticate with tvly login or an approved environment secret. Never expose
a real API key in commands, logs, files, or chat.
See tavily-cli for alternative install methods and auth options.
When to use
- You need comprehensive, multi-source analysis
- The user wants a comparison, market report, or literature review
- Quick searches aren't enough — you need synthesis with citations
- Step 5 in the workflow: search → extract → map → crawl → research
Quick start
# Basic research (waits for completion)
tvly research "competitive landscape of AI code assistants"
# Pro model for comprehensive analysis
tvly research "electric vehicle market analysis" --model pro
# Stream results in real-time
tvly research "AI agent frameworks comparison" --stream
# Save report to file
tvly research "fintech trends 2025" --model pro -o fintech-report.md
# JSON output for agents
tvly research "quantum computing breakthroughs" --json
Options
| Option |
Description |
--model |
mini, pro, or auto (default) |
--stream |
Stream results in real-time |
--no-wait |
Return request_id immediately (async) |
--output-schema |
Path to JSON schema for structured output |
--citation-format |
numbered, mla, apa, chicago |
--poll-interval |
Seconds between checks (default: 10) |
--timeout |
Max wait seconds (default: 600) |
-o, --output |
Save output to file |
--json |
Structured JSON output |
Model selection
| Model |
Use for |
Speed |
mini |
Single-topic, targeted research |
~30s |
pro |
Comprehensive multi-angle analysis |
~60-120s |
auto |
API chooses based on complexity |
Varies |
Rule of thumb: "What does X do?" → mini. "X vs Y vs Z" or "best way to..." → pro.
Async workflow
For long-running research, you can start and poll separately:
# Start without waiting
tvly research "topic" --no-wait --json # returns request_id
# Check status
tvly research status <request_id> --json
# Wait for completion
tvly research poll <request_id> --json -o result.json
Tips
- Research takes 30-120 seconds — use
--stream to see progress in real-time.
- Use
--model pro for complex comparisons or multi-faceted topics.
- Use
--output-schema to get structured JSON output matching a custom schema.
- For quick facts, use
tvly search instead — research is for deep synthesis.
- Read from stdin:
echo "query" | tvly research - --json
See also
Anti-Patterns
- Starting a long or higher-cost research job for a fact that bounded search can answer.
- Using an underspecified topic that invites uncontrolled scope or irrelevant synthesis.
- Treating the generated report as authoritative without checking its cited sources.
- Claiming completion from a request identifier before the job reaches a terminal success state.
Verification Protocol
Before claiming Tavily research succeeded:
- Pass/fail: The research question, scope, model, citation format, and output destination are explicit.
- Pass/fail: The user-requested depth justifies research rather than search or extraction.
- Pass/fail: The job reaches a completed state and the final output is preserved when requested.
- Pass/fail: Material claims and citations are spot-checked against the linked sources.
- Pressure test: Handle timeout, failed status, contradictory sources, or incomplete citations without fabricating a conclusion.
- Success metric: Report job state, selected model, saved artifact if any, checked sources, and remaining uncertainty.
Cross-Client Portability
This skill is written to stay usable across GitHub Copilot, Claude Code, and Codex.
- GitHub Copilot: keep the folder in a Copilot-visible skill path or wrap the
workflow in project instructions when folder discovery is unavailable.
- Claude Code: keep the folder in a local skills directory or a compatible plugin source.
- Codex: install or sync the folder into
$CODEX_HOME/skills/tavily-research and restart Codex after major changes.
MCP Availability And Fallback
Preferred MCP Server: Tavily MCP Server
- Fallback prompt: "Use the Tavily Research skill without MCP. Run a scoped
tvly research job, poll it to a terminal state, keep secrets out of output, verify important citations, and report the job and artifact evidence."
- If the MCP server does not expose research, use the official CLI or SDK. If no authenticated surface exists, report the blocker.
- Do not claim completion from a non-terminal request identifier.
Related Skills
1---2name: tavily-research3description: Run Tavily's multi-source research workflow for comparisons, market analysis, literature-oriented exploration, or detailed cited reports. Use only when bounded search and extraction are insufficient.4license: MIT5---6# tavily research78AI-powered deep research that gathers sources, analyzes them, and produces a cited report. Takes 30-120 seconds.910## Before running any command1112Check `tvly --version` and `tvly --status` first. If the CLI is missing, use a13reviewed installation method:1415```bash16uv tool install tavily-cli17# or: python -m pip install --user tavily-cli18```1920Authenticate with `tvly login` or an approved environment secret. Never expose21a real API key in commands, logs, files, or chat.2223See [tavily-cli](../tavily-cli/SKILL.md) for alternative install methods and auth options.2425## When to use2627- You need comprehensive, multi-source analysis28- The user wants a comparison, market report, or literature review29- Quick searches aren't enough — you need synthesis with citations30- Step 5 in the [workflow](../tavily-cli/SKILL.md): search → extract → map → crawl → **research**3132## Quick start3334```bash35# Basic research (waits for completion)36tvly research "competitive landscape of AI code assistants"3738# Pro model for comprehensive analysis39tvly research "electric vehicle market analysis" --model pro4041# Stream results in real-time42tvly research "AI agent frameworks comparison" --stream4344# Save report to file45tvly research "fintech trends 2025" --model pro -o fintech-report.md4647# JSON output for agents48tvly research "quantum computing breakthroughs" --json49```5051## Options5253| Option | Description |54|--------|-------------|55| `--model` | `mini`, `pro`, or `auto` (default) |56| `--stream` | Stream results in real-time |57| `--no-wait` | Return request_id immediately (async) |58| `--output-schema` | Path to JSON schema for structured output |59| `--citation-format` | `numbered`, `mla`, `apa`, `chicago` |60| `--poll-interval` | Seconds between checks (default: 10) |61| `--timeout` | Max wait seconds (default: 600) |62| `-o, --output` | Save output to file |63| `--json` | Structured JSON output |6465## Model selection6667| Model | Use for | Speed |68|-------|---------|-------|69| `mini` | Single-topic, targeted research | ~30s |70| `pro` | Comprehensive multi-angle analysis | ~60-120s |71| `auto` | API chooses based on complexity | Varies |7273**Rule of thumb:** "What does X do?" → mini. "X vs Y vs Z" or "best way to..." → pro.7475## Async workflow7677For long-running research, you can start and poll separately:7879```bash80# Start without waiting81tvly research "topic" --no-wait --json # returns request_id8283# Check status84tvly research status <request_id> --json8586# Wait for completion87tvly research poll <request_id> --json -o result.json88```8990## Tips9192- **Research takes 30-120 seconds** — use `--stream` to see progress in real-time.93- **Use `--model pro`** for complex comparisons or multi-faceted topics.94- **Use `--output-schema`** to get structured JSON output matching a custom schema.95- **For quick facts**, use `tvly search` instead — research is for deep synthesis.96- Read from stdin: `echo "query" | tvly research - --json`9798## See also99100- [tavily-search](../tavily-search/SKILL.md) — quick web search for simple lookups101- [tavily-crawl](../tavily-crawl/SKILL.md) — bulk extract from a site for your own analysis102103## Anti-Patterns104105- Starting a long or higher-cost research job for a fact that bounded search can answer.106- Using an underspecified topic that invites uncontrolled scope or irrelevant synthesis.107- Treating the generated report as authoritative without checking its cited sources.108- Claiming completion from a request identifier before the job reaches a terminal success state.109110## Verification Protocol111112Before claiming Tavily research succeeded:1131141. Pass/fail: The research question, scope, model, citation format, and output destination are explicit.1152. Pass/fail: The user-requested depth justifies research rather than search or extraction.1163. Pass/fail: The job reaches a completed state and the final output is preserved when requested.1174. Pass/fail: Material claims and citations are spot-checked against the linked sources.1185. Pressure test: Handle timeout, failed status, contradictory sources, or incomplete citations without fabricating a conclusion.1196. Success metric: Report job state, selected model, saved artifact if any, checked sources, and remaining uncertainty.120121<!-- MCP:START -->122123<!-- PORTABILITY:START -->124125## Cross-Client Portability126127This skill is written to stay usable across GitHub Copilot, Claude Code, and Codex.128129- GitHub Copilot: keep the folder in a Copilot-visible skill path or wrap the130 workflow in project instructions when folder discovery is unavailable.131- Claude Code: keep the folder in a local skills directory or a compatible plugin source.132- Codex: install or sync the folder into133 `$CODEX_HOME/skills/tavily-research` and restart Codex after major changes.134135<!-- PORTABILITY:END -->136137## MCP Availability And Fallback138139Preferred MCP Server: Tavily MCP Server140141- Fallback prompt: "Use the Tavily Research skill without MCP. Run a scoped `tvly research` job, poll it to a terminal state, keep secrets out of output, verify important citations, and report the job and artifact evidence."142- If the MCP server does not expose research, use the official CLI or SDK. If no authenticated surface exists, report the blocker.143- Do not claim completion from a non-terminal request identifier.144145<!-- MCP:END -->146147## Related Skills148149- [tavily-search](../tavily-search/SKILL.md): Answer smaller current-information questions before escalating.150- [tavily-dynamic-search](../tavily-dynamic-search/SKILL.md): Perform agent-controlled multi-step source triage and extraction.151- [documentation-verification](../documentation-verification/SKILL.md): Check report citations and source links.