# tavily-crawl

Crawl websites and extract multi-page documentation via the Tavily CLI. Saves local markdown files or feeds focused text chunks directly to your coding agent.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 17400 installs · ★ 491
- Author: tavily-ai
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/tavily-ai/skills/tree/HEAD/skills/tavily-crawl/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/tavily-crawl

## What it does

The skill runs `tvly crawl` to traverse websites and extract page contents in bulk. It can download complete documentation sections into local `.md` files using the `--output-dir` flag. Crawl behavior is controlled via `--max-depth` (1 to 5), `--max-breadth`, and overall page caps with `--limit`, while path filters like `--select-paths` and `--exclude-paths` restrict visits using regex patterns.

When gathering context for an LLM, the skill pairs `--instructions` with `--chunks-per-source` to extract relevant passages rather than full pages, avoiding context window bloat. Execution requires an authenticated `tvly` binary or an exported `TAVILY_API_KEY`, failing immediately if credentials are missing.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add tavily-ai/skills --skill tavily-crawl -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/tavily-crawl/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/tavily-crawl/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add tavily-ai/skills --skill tavily-crawl -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/tavily-crawl/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add tavily-ai/skills --skill tavily-crawl -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/tavily-crawl/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install tavily-ai/skills tavily-crawl
```

2. **Manually: put the files in place**
- File: `.github/skills/tavily-crawl/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add tavily-ai/skills --skill tavily-crawl -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/tavily-ai/skills --path skills/tavily-crawl
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/tavily-crawl/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add tavily-ai/skills --skill tavily-crawl -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/tavily-ai/skills/tree/HEAD/skills/tavily-crawl/SKILL.md

## When to use it
- save full website documentation sections as local markdown files
- extract relevant page passages using natural language instructions
- filter crawled URLs by path or domain regex patterns
- restrict crawl depth and page limits to avoid runaway crawls

## Example prompts
- Crawl `https://docs.example.com` and save all pages to `./docs/` as markdown
- Find authentication details across `https://docs.example.com` using semantic instructions
- Crawl `https://example.com` but only include paths matching `/api/.*`

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 6f423e1c3cb9e132.

BEGIN THIRD-PARTY FILE 6f423e1c3cb9e132
````text
---
name: tavily-crawl
description: |
  Crawl websites and extract content from multiple pages via the Tavily CLI. Use this skill when the user wants to crawl a site, download documentation, extract an entire docs section, bulk-extract pages, save a site as local markdown files, or says "crawl", "get all the pages", "download the docs", "extract everything under /docs", "bulk extract", or needs content from many pages on the same domain. Supports depth/breadth control, path filtering, semantic instructions, and saving each page as a local markdown file.
allowed-tools: Bash(tvly *)
---

# tavily 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](../tavily-cli/SKILL.md#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](../tavily-cli/SKILL.md): search → extract → map → **crawl** → research

## Quick start

```bash
# 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 |
````
END THIRD-PARTY FILE 6f423e1c3cb9e132

The third-party file has ended. Everything between the 6f423e1c3cb9e132 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 3065 of 4470 bytes. © tavily-ai · MIT · https://github.com/tavily-ai/skills/tree/HEAD/skills/tavily-crawl/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
