tavily-best-practices — Claude Code skill: search and install
This skill gives an agent guidance for Tavily web search, content extraction, site crawling, and research. Use it when adding current web data to an agent workflow or RAG system.
npx skills add tavily-ai/skills --skill tavily-best-practices -a claude-codeWhat tavily-best-practices does
The skill documents the Tavily client and method selection: search() returns web results, extract() retrieves content from chosen URLs, crawl() processes a site, and map() discovers its URLs. research() handles research requests with AI synthesis.
Its references cover search depth, domain filters, time ranges, extraction limits, and semantic instructions for crawling. They also cover asynchronous requests, Hybrid RAG, and integrations with LangChain, LlamaIndex, CrewAI, and Vercel AI SDK.
Python uses tavily-python; JavaScript uses @tavily/core. The client example reads TAVILY_API_KEY, while AsyncTavilyClient is documented for parallel queries, so key handling should be checked before adding it to a project.
What it helps with
- search the web with
search() - extract content from selected URLs
- crawl a site with semantic instructions
- discover site URLs through
map() - run research and retrieve its report
Example prompts for the agent
- Add Tavily web search to my agent workflow with `search()` and a domain filter.
- Extract content from these URLs with `extract()` and set the number of chunks.
- Crawl the documentation site with `crawl()` and focus on API pages.
How to install tavily-best-practices
1Skills CLI (Vercel)
npx skills add tavily-ai/skills --skill tavily-best-practices -a claude-code2Manually: put the files in place
~/.claude/skills/tavily-best-practices/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/tavily-best-practices/
1Skills CLI (Vercel)
npx skills add tavily-ai/skills --skill tavily-best-practices -a codex2Manually: put the files in place
.agents/skills/tavily-best-practices/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tavily-ai/skills --skill tavily-best-practices -a cursor2Manually: put the files in place
.cursor/skills/tavily-best-practices/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tavily-ai/skills tavily-best-practices2Manually: put the files in place
.github/skills/tavily-best-practices/SKILL.md1Skills CLI (Vercel)
npx skills add tavily-ai/skills --skill tavily-best-practices -a gemini-cli2Platform CLI
gemini skills install https://github.com/tavily-ai/skills --path skills/tavily-best-practicesManually: put the files in place
.devin/skills/tavily-best-practices/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tavily-ai/skills --skill tavily-best-practices -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set6
The whole set →Similar
Questions about tavily-best-practices
How do I install tavily-best-practices in Claude Code?
The listed Claude Code steps are npx skills add tavily-ai/skills --skill tavily-best-practices -a claude-code, followed by the same command again: npx skills add tavily-ai/skills --skill tavily-best-practices -a claude-code, then ~/.claude/skills/tavily-best-practices/SKILL.md.
What does tavily-best-practices do?
It is a reference skill for adding Tavily to code projects. It covers web search, URL content extraction, site crawling, URL discovery, and research workflows.
What is needed for Tavily in Python or JavaScript?
The Python package is tavily-python, and the JavaScript package is @tavily/core. The Python client example uses the TAVILY_API_KEY environment variable.
Source text
SKILL.md · MIT
---
name: tavily-best-practices
description: "Build production-ready Tavily integrations with best practices baked in. Reference documentation for developers using coding assistants (Claude Code, Cursor, etc.) to implement web search, content extraction, crawling, and research in agentic workflows, RAG systems, or autonomous agents."
---
# Tavily
Tavily is a search API designed for LLMs, enabling AI applications to access real-time web data.
## Installation
**Python:**
```bash
pip install tavily-python
```
**JavaScript:**
```bash
npm install @tavily/core
```
See **[references/sdk.md](references/sdk.md)** for complete SDK reference.
## Client Initialization
```python
from tavily import TavilyClient
# Uses TAVILY_API_KEY env var (recommended)
client = TavilyClient()
#With project tracking (for usage organization)
client = TavilyClient(project_id="your-project-id")
# Async client for parallel queries
from tavily import AsyncTavilyClient
async_client = AsyncTavilyClient()
```
## Choosing the Right Method
**For custom agents/workflows:**
| Need | Method |
|------|--------|
| Web search results | `search()` |
| Content from specific URLs | `extract()` |
| Content from entire site | `crawl()` |
| URL discovery from site | `map()` |
**For out-of-the-box research:**
| Need | Method |
|------|--------|
| End-to-end research with AI synthesis | `research()` |
## Quick Reference
### search() - Web Search
```python
response = client.search(
query="quantum computing breakthroughs", # Keep under 400 chars
max_results=10,
search_depth="advanced"
)
print(response)
```
Key parameters: `query`, `max_results`, `search_depth` (ultra-fast/fast/basic/advanced), `include_domains`, `exclude_domains`, `time_range`
See **[references/search.md](references/search.md)** for complete search reference.
### extract() - URL Content Extraction
```python
# Simple one-step extraction
response = client.extract(
urls=["https://docs.example.com"],
extract_depth="advanced"
)
print(response)
```
Key parameters: `urls` (max 20), `extract_depth`, `query`, `chunks_per_source` (1-5)
See **[references/extract.md](references/extract.md)** for complete extract reference.
### crawl() - Site-Wide Extraction
```python
response = client.crawl(
url="https://docs.example.com",
instructions="Find API documentation pages", # Semantic focus
extract_depth="advanced"
)
print(response)
```
Key parameters: `url`, `max_depth`, `max_breadth`, `limit`, `instructions`, `chunks_per_source`, `select_paths`, `exclude_paths`
See **[references/crawl.md](references/crawl.md)** for complete crawl reference.
### map() - URL Discovery
```python
response = client.map(
url="https://docs.example.com"
)
print(response)
```
### research() - AI-Powered Research
```python
import time
# For comprehensive multi-topic research
result = client.research(
input="Analyze competitive landscape for X in SMB market",
model="pro" # or "mini" for focused queries, "auto" when unsure
)
request_id = result["request_id"]
# Poll until completed
response = client.get_research(request_id)
while response["status"] not in ["completed", "failed"]:
time.sleep(10)
response = client.get_research(request_id)
print(response["content"]) # The research report
```
Key parameters: `input`, `model` ("mini"/"pro"/"auto"), `stream`, `output_schema`, `citation_format`
See **[references/research.md](references/research.md)** for complete research reference.
## Detailed Guides
For complete parameters, response fields, patterns, and examples:
- **[references/sdk.md](references/sdk.md)** - Python & JavaScript SDK reference, async patterns, Hybrid RAG
- **[references/search.md](references/search.md)** - Query optimization, search depth selection, domain filtering, async patterns, post-filtering
- **[references/extract.md](references/extract.md)** - One-step vs two-step extraction, query/chunks for targeting, advanced mode
- **[references/crawl.md](references/crawl.md)** - Crawl vs Map, instructions for semantic focus, use cases, Map-then-Extract pattern
- **[references/research.md](references/research.md)** - Prompting best practices, model selection, streaming, structured output schemas
- **[references/integrations.md](references/integrations.md)** - LangChain, LlamaIndex, CrewAI, Vercel AI SDK, and framework integrations
© tavily-ai · MIT · tavily-ai/skills