Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add tavily-ai/skills --skill tavily-best-practices -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/tavily-best-practices/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/tavily-best-practices/

From the same set6

The whole set →

Similar

context-compression sickn33 A skill for managing context compression when agent sessions exceed token limits. Instead of naive truncation, it maintains structured summaries with file inventory, decisions, and state. Claude Code CX Codex Cursor +1 1,400installs azure-text-to-speech calesthio Synthesizes neural voiceover audio using the Azure AI Speech REST API. Ideal for OpenMontage pipelines that need multilingual narration voices. Claude Code CX Codex Cursor +1 589installs learn-reverse-engineering rohitg00 Interactive tutor for reading compiled programs. One lesson per invocation: from file formats and disassembly to symbolic execution and AI-assisted analysis. Requires Python 3.10+ and your own source code. Claude Code CX Codex Cursor +1 425installs arize-prompt-optimization official arize This skill analyzes prompts through production traces, evaluations, and annotations. Use it when you need better model responses or want to debug a system prompt. GitHub Copilot 1,100installs arize-instrumentation official arize This skill helps add Arize AX tracing to an LLM application. The agent inspects the project first, then proposes instrumentation for approval. GitHub Copilot 1,100installs arize-experiment official arize Runs Arize experiments with the ax CLI to benchmark models and export evaluation scores across dataset versions. GitHub Copilot 1,100installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs

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

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor