tavily-crawl
Trình thu thập trang web nhiều trang với bộ lọc ngữ nghĩa và xuất định dạng markdown. Thu thập toàn bộ các phần của trang web với kiểm soát độ sâu và độ rộng; lọc theo biểu thức chính quy đường dẫn, tên miền hoặc hướng dẫn ngôn ngữ tự nhiên để tập trung kết quả. Lưu mỗi trang dưới dạng tệp markdown cục bộ qua --output-dir, hoặc trả về JSON có cấu trúc để xử lý theo tác nhân. Sử dụng hướng dẫn ngữ nghĩa với trích xuất khối để tránh phình to ngữ cảnh khi đưa kết quả vào LLM; sử dụng trích xuất toàn trang để tải tài liệu ngoại tuyến. Hỗ trợ...
npx skills add https://github.com/tavily-ai/skills --skill tavily-crawltavily crawl
Crawl a website and extract content from multiple pages. Supports saving each page as a local markdown file.
Before running
Crawl requires authentication. Run the requested command directly when tvly
is already authenticated; do not add a status check to every invocation.
If tvly is missing, follow the tavily-cli setup.
If an installed CLI reports an authentication error, use tvly login for
authentication only, or tvly init --skip-skills when guided verification is
also useful. Browser-based OAuth is preferred when an interactive user can
complete it. --no-browser prints the sign-in link instead of opening it, but
still waits for a localhost callback. In an unattended agent or CI environment,
leave authentication to the user or use a securely provided TAVILY_API_KEY.
Do not start a second login immediately after guided setup has completed.
When to use
- You need content from many pages on a site (e.g., all
/docs/) - You want to download documentation for offline use
- Step 4 in the workflow: search → extract → map → crawl → research
Quick start
# Basic crawl
tvly crawl "https://docs.example.com" --json
# Save each page as a markdown file
tvly crawl "https://docs.example.com" --output-dir ./docs/
# Deeper crawl with limits
tvly crawl "https://docs.example.com" --max-depth 2 --limit 50 --json
# Filter to specific paths
tvly crawl "https://example.com" --select-paths "/api/.*,/guides/.*" --exclude-paths "/blog/.*" --json
# Semantic focus (returns relevant chunks, not full pages)
tvly crawl "https://docs.example.com" --instructions "Find authentication docs" --chunks-per-source 3 --json
Options
| Option | Description |
|---|---|
--max-depth | Levels deep (1-5, default: 1) |
--max-breadth | Links per page (default: 20) |
--limit | Total pages cap (default: 50) |
--instructions | Natural language guidance for semantic focus |
--chunks-per-source | Chunks per page (1-5, requires --instructions) |
--extract-depth | basic (default) or advanced |
--format | markdown (default) or text |
--select-paths | Comma-separated regex patterns to include |
--exclude-paths | Comma-separated regex patterns to exclude |
--select-domains | Comma-separated regex for domains to include |
--exclude-domains | Comma-separated regex for domains to exclude |
--allow-external / --no-external | Include external links (default: allow) |
--include-images | Include images |
--timeout | Max wait (10-150 seconds) |
-o, --output | Save JSON output to file |
--output-dir | Save each page as a .md file in directory |
--json | Structured JSON output |
Crawl for context vs. data collection
For agentic use (feeding results to an LLM):
Always use --instructions + --chunks-per-source. Returns only relevant chunks instead of full pages — prevents context explosion.
tvly crawl "https://docs.example.com" --instructions "API authentication" --chunks-per-source 3 --json
For data collection (saving to files):
Use --output-dir without --chunks-per-source to get full pages as markdown files.
tvly crawl "https://docs.example.com" --max-depth 2 --output-dir ./docs/
Tips
- Start conservative —
--max-depth 1,--limit 20— and scale up. - Use
--select-pathsto focus on the section you need. - Use map first to understand site structure before a full crawl.
- Always set
--limitto prevent runaway crawls.
See also
- tavily-map — discover URLs before deciding to crawl
- tavily-extract — extract individual pages
- tavily-search — find pages when you don't have a URL