中文 | English
tavily-cli is a Tavily command-line tool for agents and human users, supporting search, extract (alias fetch), crawl, and research commands.
uv sync# Recommended: Multiple keys (comma-separated)
export TAVILY_API_KEYS="tvly-key-1,tvly-key-2"
# Alternative: Single key
export TAVILY_API_KEY="tvly-key"Priority: TAVILY_API_KEYS > TAVILY_API_KEY. When using multiple keys, one is randomly selected per request.
uv run tavily-cli --help
uv run tavily-cli search -q "2026 AI news"uv run tavily-cli --helpuv tool install --force --reinstall "git+https://github.com/Linfee/tavily-cli.git"
tavily-cli --helpuvx --from "git+https://github.com/Linfee/tavily-cli.git" tavily-cli --helpInstall tavily-cli as a skill for AI agents (Claude Code, Cursor, etc.):
npx skills add Linfee/tavily-clitavily-cli [GLOBAL_OPTIONS] <command> [command_options]Commands:
searchextract/fetch(fetchis an alias forextract)crawlresearch
Global Options:
--project-id--output-format [json|jsonl|markdown|text|yaml]--output/-o
Note: --output-format and --output can be placed either before or after the subcommand.
json: Formatted JSON (preserves full response structure)yaml: Full response converted to YAMLmarkdown: Readable Markdown (Metadata + results/failed_results/sources/images sections)text: Same structure as markdown but without Markdown markersjsonl:- If response contains non-empty
results: oneresultselement per line (outer layer discarded) - Otherwise: single-line complete JSON (fallback)
- If response contains non-empty
# Basic search
tavily-cli search -q "2026 AI news" --max-results 5
# Include advanced answer
tavily-cli search -q "Tavily API" --include-answer advanced
# Raw content as markdown
tavily-cli search -q "Tavily docs" --include-raw-content markdowntavily-cli extract --urls "https://docs.tavily.com/documentation/about" --extract-depth basic
tavily-cli fetch --urls "https://example.com" --query "summary" # fetch is an alias for extracttavily-cli crawl --url "https://docs.tavily.com/documentation/about" --max-depth 1 --limit 3
tavily-cli crawl --url "https://example.com" --no-allow-external# Polling mode
tavily-cli research --input "What is Tavily API in one sentence?" --model mini --poll-interval 2 --max-wait 120
# Streaming mode
tavily-cli research --input "Summarize Tavily docs" --streamtavily-cli search -q "Tavily" --output-format yaml -o result.yaml
tavily-cli search -q "Tavily" --output-format jsonl -o result.jsonl| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Unknown error |
| 2 | Validation error |
| 3 | Authentication error (missing/invalid API Key) |
| 4 | Tavily API error |
| 5 | Network or timeout error |
uv run ruff format src tests scripts
uv run ruff check src tests scripts
uv run pyright
uv run pytestScript path: scripts/golden_regression.py
# Interactive
uv run python scripts/golden_regression.py
# Non-interactive: Generate baseline
uv run python scripts/golden_regression.py \
--non-interactive \
--cmd search \
--query "Tavily API" \
--formats json,jsonl,markdown,text,yaml \
--mode baseline \
--output-dir tests/golden
# Non-interactive: Compare with baseline
uv run python scripts/golden_regression.py \
--non-interactive \
--cmd search \
--query "Tavily API" \
--formats jsonl \
--mode compare \
--output-dir tests/goldenMode descriptions:
preview: Preview onlybaseline: Write baseline filescompare: Compare current output with baseline (returns non-zero on failure)
AGENTS.mddocs/architecture.mddocs/security.mddocs/quality-gates.mddocs/exec-plans/