tavily-cli

Recherche web, extraction de contenu, exploration de sites et recherche approfondie via Tavily CLI. Cinq modes de commande couvrant la recherche, l'extraction, la découverte d'URL, l'exploration en masse et la recherche multi-sources avec citations. Toutes les commandes prennent en charge la sortie JSON et la sauvegarde de fichiers pour des workflows structurés et agentiques. Un modèle d'escalade vous guide de la recherche simple à l'extraction, la cartographie, l'exploration, jusqu'à la recherche complète selon vos besoins. Nécessite l'installation de tavily-cli et l'authentification par clé API via tvly login.

npx skills add https://github.com/tavily-ai/skills --skill tavily-cli

Tavily CLI

Web search, content extraction, site crawling, URL discovery, and deep research. Returns JSON optimized for LLM consumption.

Requires tavily-cli. Search and extract support capped keyless access; map, crawl, and research require authentication.

Run tvly --help or tvly <command> --help for full option details.

Setup

If tvly is not installed:

curl -fsSL https://cli.tavily.com/install.sh | bash

Or manually: uv tool install tavily-cli / pip install tavily-cli

For agent setup, start keyless unless the user asks to sign in or the requested task needs map, crawl, or research. If the installer did not already complete setup, run:

tvly init --skip-auth

This installs or updates the Tavily skills and verifies a live keyless search. Do not look for an API key or authenticate before the first search or extract request.

When authentication is requested or required, use guided setup:

tvly init

# Prefer to open the sign-in link yourself
tvly init --no-browser

tvly init reuses an existing credential, installs or updates the Tavily skills bundled with that CLI release, and verifies a live search. Run tvly update first when refreshing bundled skills. Use tvly init --skip-skills when the skills are already installed and only authentication or verification is needed.

Search and extract can run immediately without authentication, subject to a keyless rate-limit cap. If either command reaches that cap in an interactive session, run tvly login to open browser OAuth, then retry the original command once. In an unattended environment, report the cap and authentication options instead of starting an interactive flow. Map, crawl, and research require authentication. Check the current state only when needed with tvly --status --json.

For authentication without full setup, use tvly login, tvly login --no-browser, tvly login --api-key tvly-YOUR_KEY, or TAVILY_API_KEY.

Browser-based OAuth is the preferred interactive sign-in method. --no-browser simply prints the sign-in link instead of opening it automatically; the flow still returns to a localhost callback on the machine running tvly. In remote sessions, make sure that callback is reachable (SSH may require port forwarding). In an unattended agent or CI environment, leave authentication to the user or use a securely provided TAVILY_API_KEY, then resume the original command.

Keep an existing installation current with tvly update --check and tvly update.

Workflow

Follow this escalation pattern — start simple, escalate when needed:

  1. Search — No specific URL. Find pages, answer questions, discover sources.
  2. Extract — Have a URL. Pull its content directly.
  3. Map — Large site, need to find the right page. Discover URLs first.
  4. Crawl — Need bulk content from an entire site section.
  5. Research — Need comprehensive, multi-source analysis with citations.
NeedCommandWhen
Find pages on a topictvly searchNo specific URL yet
Get a page's contenttvly extractHave a URL
Find URLs within a sitetvly mapNeed to locate a specific subpage
Bulk extract a site sectiontvly crawlNeed many pages (e.g., all /docs/)
Deep research with citationstvly researchNeed multi-source synthesis

For detailed command reference, use the individual skill for each command (e.g., tavily-search, tavily-crawl) or run tvly <command> --help.

Run tvly without a subcommand for the interactive REPL.

Output

Search, extract, crawl, map, and research support --json for structured output. Result-producing commands support -o to save the JSON response; crawl also supports --output-dir for one Markdown file per page. Setup, authentication, status, and update commands expose --json where documented but do not support -o.

tvly search "react hooks" --json -o results.json
tvly extract "https://example.com/docs" -o docs.json
tvly crawl "https://docs.example.com" --output-dir ./docs/

Tips

  • Always quote URLs — shell interprets ? and & as special characters.
  • Use --json for agentic workflows when the selected command exposes it.
  • Read from stdin with - — echo "query" | tvly search -
  • Exit codes: 0 = success, 1 = setup/update failure, 2 = bad input, 3 = auth error, 4 = API or live-verification error.

Plus de skills de tavily-ai

research
tavily-ai
Recherche approfondie sur n'importe quel sujet avec collecte automatique des sources, analyse et citations. Effectue des recherches web multi-sources avec citations explicites, idéal pour les comparaisons, l'actualité, l'analyse de marché et les rapports détaillés. Propose trois options de modèle : mini pour une recherche ciblée sur un seul sujet (~30s), pro pour une analyse complète multi-angle (~60-120s), et auto pour la détection de complexité via API. S'authentifie via OAuth via le serveur MCP Tavily avec connexion automatique basée sur le navigateur...
search
tavily-ai
We need to translate the given English text into French, preserving the name "search" if it appears. The text is a description of a web search agent skill. The instruction says to translate only the text inside <text>, and not include the name unless it appears in the source text. The name "search" is not in the provided text? Actually the text starts with "Web search..." so "search" is part of the phrase "Web search". But the instruction says "Name to preserve: search" - that likely means the skill name is "search", but it's not explicitly in the text as a standalone name. The text says "Web search" which includes "search". We should preserve that as is? The instruction says "Do not include the name unless it appears in the source text." Since "search" appears as part of "Web search", we should keep "Web search" as is? But we are translating to French, so "Web search" would become "Recherche Web" or "Recherche sur le Web"? However, the instruction says
tavily-best-practices
tavily-ai
API de recherche web pour LLMs avec accès aux données en temps réel, extraction de contenu, exploration de sites et recherche assistée par IA. Cinq méthodes principales : search() pour les résultats web, extract() pour le contenu d'URL, crawl() pour l'exploration complète d'un site, map() pour la découverte d'URL, et research() pour la synthèse IA de bout en bout. Prend en charge les SDK Python et JavaScript avec des clients asynchrones pour les requêtes parallèles et une profondeur de recherche configurable (ultra-rapide/rapide/basique/avancée). La méthode crawl accepte des instructions sémantiques pour concentrer l'extraction sur...
tavily-crawl
tavily-ai
Robot de site web multi-pages avec filtrage sémantique et export en Markdown. Parcourez des sections entières de site avec contrôle de la profondeur et de la largeur ; filtrez par expression régulière de chemin, domaine ou instructions en langage naturel pour cibler les résultats. Enregistrez chaque page sous forme de fichiers Markdown locaux via --output-dir, ou renvoyez du JSON structuré pour un traitement agentique. Utilisez des instructions sémantiques avec extraction par fragments pour éviter le gonflement du contexte lors de l’envoi des résultats aux LLM ; utilisez l’extraction de page entière pour les téléchargements de documentation hors ligne. Prend en charge...
tavily-dynamic-search
tavily-ai
Rechercher sur le web, filtrer les résultats et extraire le contenu afin que les données brutes de recherche n’entrent jamais dans votre fenêtre de contexte. Seul votre résultat print() organisé est renvoyé.
tavily-extract
tavily-ai
Extrayez du markdown ou du texte propre à partir de jusqu'à 20 URL, avec prise en charge du rendu JavaScript et du découpage ciblé par requête. Gère les pages rendues par JavaScript avec une profondeur d'extraction configurable (basique pour les pages simples, avancée pour les SPA dynamiques et les tableaux). Prend en charge l'extraction ciblée par requête pour ne renvoyer que les fragments de contenu pertinents au lieu des pages entières. Renvoie par déf
tavily-research
tavily-ai
Recherche complète alimentée par l'IA avec synthèse multi-sources et citations. Produit des rapports structurés basés sur des sources web, prenant 30 à 120 secondes selon le modèle choisi (mini pour les requêtes ciblées, pro pour les comparaisons complexes). Prend en charge plusieurs formats de sortie : rapports en markdown, JSON avec schémas personnalisés et styles de citation configurables (numérotés, MLA, APA, Chicago). Inclut un flux de travail asynchrone pour les recherches longues via les commandes --no-wait, status et poll, ainsi qu'un temps réel...
tavily-search
tavily-ai
Recherche web avec résultats optimisés pour LLM, extraits de contenu et scores de pertinence. Prend en charge quatre profondeurs de recherche (ultra-rapide, rapide, basique, avancée) avec des nombres de résultats configurables jusqu'à 20, plus un filtrage par domaine et des contraintes de plage temporelle. Renvoie une sortie JSON structurée avec des extraits de contenu, des scores de pertinence et des métadonnées optimisées pour la consommation par LLM. Inclut des modes de recherche spécialisés pour les sujets d'actualité et financiers, avec des réponses générées par IA optionnelles et une extraction complète du contenu des pages. S'intègre dans...