Tavily Search π
AI-powered web search platform with 5 modes: Search, Extract, Crawl, Map, and Research.
Requirements
TAVILY_API_KEY
environment variable
Configuration
| Env Variable | Default | Description |
|---|
TAVILY_API_KEY
| β | Required. Tavily API key |
Set in OpenClaw config:
{
"env": {
"TAVILY_API_KEY": "tvly-..."
}
}
Script Location
python3 skills/tavily/lib/tavily_search.py <command> "query" [options]
Commands
search β Web Search (Default)
General-purpose web search with optional LLM-synthesized answer.
python3 lib/tavily_search.py search "query" [options]
Examples:
# Basic search
python3 lib/tavily_search.py search "latest AI news"
With LLM answer
python3 lib/tavily_search.py search "what is quantum computing" --answer
Advanced depth (better results, 2 credits)
python3 lib/tavily_search.py search "climate change solutions" --depth advanced
Time-filtered
python3 lib/tavily_search.py search "OpenAI announcements" --time week
Domain filtering
python3 lib/tavily_search.py search "machine learning" --include-domains arxiv.org,nature.com
Country boost
python3 lib/tavily_search.py search "tech startups" --country US
With raw content and images
python3 lib/tavily_search.py search "solar energy" --raw --images -n 10
JSON output
python3 lib/tavily_search.py search "bitcoin price" --json
Output format (text):
Answer: <LLM-synthesized answer if --answer>
Results:
-
Result Title
https://example.com/article
Content snippet from the page...
Another Result
https://example.com/other
Another snippet...
news β News Search
Search optimized for news articles. Sets
topic=news
.
python3 lib/tavily_search.py news "query" [options]
Examples:
python3 lib/tavily_search.py news "AI regulation"
python3 lib/tavily_search.py news "Israel tech" --time day --answer
python3 lib/tavily_search.py news "stock market" --time week -n 10
finance β Finance Search
Search optimized for financial data and news. Sets
topic=finance
.
python3 lib/tavily_search.py finance "query" [options]
Examples:
python3 lib/tavily_search.py finance "NVIDIA stock analysis"
python3 lib/tavily_search.py finance "cryptocurrency market trends" --time month
python3 lib/tavily_search.py finance "S&P 500 forecast 2026" --answer
extract β Extract Content from URLs
Extract readable content from one or more URLs.
python3 lib/tavily_search.py extract URL [URL...] [options]
Parameters:
urls
: One or more URLs to extract (positional args)
--depth basic|advanced
: Extraction depth
--format markdown|text
: Output format (default: markdown)
--query "text"
: Rerank extracted chunks by relevance to query
Examples:
# Extract single URL
python3 lib/tavily_search.py extract "https://example.com/article"
Extract multiple URLs
python3 lib/tavily_search.py extract "https://url1.com" "https://url2.com"
Advanced extraction with relevance reranking
python3 lib/tavily_search.py extract "https://arxiv.org/paper" --depth advanced --query "transformer architecture"
Text format output
python3 lib/tavily_search.py extract "https://example.com" --format text
Output format:
URL: https://example.com/article
βββββββββββββββββββββββββββββββββ
<Extracted content in markdown/text>
URL: https://another.com/page
βββββββββββββββββββββββββββββββββ
<Extracted content>
crawl β Crawl a Website
Crawl a website starting from a root URL, following links.
python3 lib/tavily_search.py crawl URL [options]
Parameters:
url
: Root URL to start crawling
--depth basic|advanced
: Crawl depth
--max-depth N
: Maximum link depth to follow (default: 2)
--max-breadth N
: Maximum pages per depth level (default: 10)
--limit N
: Maximum total pages (default: 10)
--instructions "text"
: Natural language crawl instructions
--select-paths p1,p2
: Only crawl these path patterns
--exclude-paths p1,p2
: Skip these path patterns
--format markdown|text
: Output format
Examples:
# Basic crawl
python3 lib/tavily_search.py crawl "https://docs.example.com"
Focused crawl with instructions
python3 lib/tavily_search.py crawl "https://docs.python.org" --instructions "Find all asyncio documentation" --limit 20
Crawl specific paths only
python3 lib/tavily_search.py crawl "https://example.com" --select-paths "/blog,/docs" --max-depth 3
Output format:
Crawled 5 pages from https://docs.example.com
Page 1: https://docs.example.com/intro
βββββββββββββββββββββββββββββββββ
<Content>
Page 2: https://docs.example.com/guide
βββββββββββββββββββββββββββββββββ
<Content>
map β Sitemap Discovery
Discover all URLs on a website (sitemap).
python3 lib/tavily_search.py map URL [options]
Parameters:
url
: Root URL to map
--max-depth N
: Depth to follow (default: 2)
--max-breadth N
: Breadth per level (default: 20)
--limit N
: Maximum URLs (default: 50)
Examples:
# Map a site
python3 lib/tavily_search.py map "https://example.com"
Deep map
python3 lib/tavily_search.py map "https://docs.python.org" --max-depth 3 --limit 100
Output format:
Sitemap for https://example.com (42 URLs found):
- https://example.com/
- https://example.com/about
https://example.com/blog
...
research β Deep Research
Comprehensive AI-powered research on a topic with citations.
python3 lib/tavily_search.py research "query" [options]
Parameters:
query
: Research question
--model mini|pro|auto
: Research model (default: auto)
mini
: Faster, cheaper
pro
: More thorough
auto
: Let Tavily decide
--json
: JSON output (supports structured output schema)
Examples:
# Basic research
python3 lib/tavily_search.py research "Impact of AI on healthcare in 2026"
Pro model for thorough research
python3 lib/tavily_search.py research "Comparison of quantum computing approaches" --model pro
JSON output
python3 lib/tavily_search.py research "Electric vehicle market analysis" --json
Output format:
Research: Impact of AI on healthcare in 2026
<Comprehensive research report with citations>
Sources:
[1] https://source1.com
[2] https://source2.com
...
Options Reference
| Option | Applies To | Description | Default |
|---|
--depth basic|advanced
| search, news, finance, extract | Search/extraction depth | basic |
--time day|week|month|year
| search, news, finance | Time range filter | none |
-n NUM
| search, news, finance | Max results (0-20) | 5 |
--answer
| search, news, finance | Include LLM answer | off |
--raw
| search, news, finance | Include raw page content | off |
--images
| search, news, finance | Include image URLs | off |
--include-domains d1,d2
| search, news, finance | Only these domains | none |
--exclude-domains d1,d2
| search, news, finance | Exclude these domains | none |
--country XX
| search, news, finance | Boost country results | none |
--json
| all | Structured JSON output | off |
--format markdown|text
| extract, crawl | Content format | markdown |
--query "text"
| extract | Relevance reranking query | none |
--model mini|pro|auto
| research | Research model | auto |
--max-depth N
| crawl, map | Max link depth | 2 |
--max-breadth N
| crawl, map | Max pages per level | 10/20 |
--limit N
| crawl, map | Max total pages/URLs | 10/50 |
--instructions "text"
| crawl | Natural language instructions | none |
--select-paths p1,p2
| crawl | Include path patterns | none |
--exclude-paths p1,p2
| crawl | Exclude path patterns | none |
Error Handling
- Missing API key: Clear error message with setup instructions.
- 401 Unauthorized: Invalid API key.
- 429 Rate Limit: Rate limit exceeded, try again later.
- Network errors: Descriptive error with cause.
- No results: Clean "No results found." message.
- Timeout: 30-second timeout on all HTTP requests.
Credits & Pricing
| API | Basic | Advanced |
|---|
| Search | 1 credit | 2 credits |
| Extract | 1 credit/URL | 2 credits/URL |
| Crawl | 1 credit/page | 2 credits/page |
| Map | 1 credit | 1 credit |
| Research | Varies by model | - |
Install
bash skills/tavily/install.sh