Tavily Web Search
allenpeng0705/EnvoyMesh
Searches the web through the Tavily API with LLM-friendly output: clean structured results, optional AI-written answers, domain filters, news mode, images and raw content.
Runs headless web searches and single-page extraction through the Tavily API from a Python script, returning cited, summarized results without a browser.
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LichAmnesia/lich-skills tavily-search --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tavily-search .claude/skills/tavily-search && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .claude/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-searchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LichAmnesia/lich-skills tavily-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/tavily-search .agents/skills/tavily-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .agents/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LichAmnesia/lich-skills tavily-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/tavily-search .cursor/skills/tavily-search && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .cursor/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LichAmnesia/lich-skills.git --path skills/tavily-search--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LichAmnesia/lich-skills tavily-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/tavily-search .gemini/skills/tavily-search && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .gemini/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LichAmnesia/lich-skills tavily-searchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/tavily-search .github/skills/tavily-search && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .github/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LichAmnesia/lich-skills --skill tavily-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LichAmnesia/lich-skills tavily-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/tavily-search .opencode/skills/tavily-search && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tavily-search" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/tavily-search into .opencode/skills/tavily-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tavily-search", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tavily-searchRuns headless web searches and single-page extraction through the Tavily API from a Python script, returning cited, summarized results without a browser.
A script, `scripts/search.py`, run with `uv`, sends a query to Tavily and prints a synthesized answer followed by results, or JSON with `--json`. Flags set the number of results from 1 to 20, a basic or advanced depth, a general or news topic with a day limit, full article bodies as markdown, and domains to include or exclude. A separate `--extract` mode takes one URL and returns the readable page body without navigation, ads or boilerplate.
It suits up-to-date facts, news, docs and pricing, cited sources for research or writing, and the full text of a page, including when other search tools are unavailable or rate-limited. It should not be used when the page is already in context, when the answer is static and in the model's training data, or when a page needs login or clicks, which calls for a browser tool. Setup means exporting a `TAVILY_API_KEY`, with a free tier of 1000 searches per month, keeping it out of version control, and letting `uv` install dependencies on first run.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ebbc355. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvcurlshgitleaksFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
astral.shAlso links to:
tavily.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TAVILY_API_KEYTAVILY_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tavily Web Search loads about 1k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 359 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
command -v uv || curl -LsSf https://astral.sh/uv/install.sh | shAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LichAmnesia/lich-skills at commit ebbc355, republished under its MIT licence (© LichAmnesia). 359 words, ~1,028 tokens.
.claude/skills/tavily-search/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Headless web search and content extraction using Tavily. Built for LLM agents — returns clean, summarised results with optional raw article bodies. No browser required.
Get a free API key: https://app.tavily.com (1000 free searches/month)
Export it:
export TAVILY_API_KEY="tvly-YOUR_KEY_HERE"Add to ~/.zshrc or ~/.bashrc for persistence. Never commit the key.
First run will auto-install dependencies via uv:
command -v uv || curl -LsSf https://astral.sh/uv/install.sh | sh# Basic search — 5 results, summarised answer
uv run ~/.claude/skills/lich-skills/skills/tavily-search/scripts/search.py "your query"
# More results
uv run .../search.py "your query" --max-results 10
# Include full article bodies (slower, more tokens)
uv run .../search.py "your query" --raw-content
# Deeper search with higher recall
uv run .../search.py "your query" --depth advanced
# News-only, last 7 days
uv run .../search.py "your query" --topic news --days 7
# Output as JSON
uv run .../search.py "your query" --json| Flag | Default | Purpose |
|---|---|---|
--max-results N | 5 | Number of results to return (1–20) |
--depth {basic,advanced} | basic | advanced = slower, higher quality |
--topic {general,news} | general | News mode adds recency filtering |
--days N | — | With --topic news, restrict to last N days |
--raw-content | off | Include full article body as markdown |
--include-domains a,b | — | Restrict to comma-separated domains |
--exclude-domains a,b | — | Exclude comma-separated domains |
--json | off | Machine-readable JSON output |
uv run .../search.py --extract https://example.com/articleReturns clean markdown of the page body (no nav, ads, or boilerplate).
ANSWER: <Tavily's synthesised answer, 1–3 sentences>
RESULTS:
[1] <title>
<url>
<snippet — 1–2 sentences>
[2] ...With --raw-content each result gets an indented markdown body below the snippet.
Research a library:
uv run .../search.py "Gemini 3 Flash Image API pricing" --depth advancedGet the full article body of a blog post:
uv run .../search.py --extract https://blog.example.com/post --json > post.jsonNews sweep:
uv run .../search.py "OpenAI Codex release" --topic news --days 3 --max-results 10--api-key flag → $TAVILY_API_KEY → $TAVILY_KEYsearch and extract endpoints (v1)| Error | Fix |
|---|---|
Error: No TAVILY_API_KEY | Export the key or pass --api-key |
401 Unauthorized | Key is wrong, revoked, or over quota |
429 Rate limit | Wait or upgrade plan |
No results | Broaden query, try --depth advanced, drop domain filters |
--raw-content with --max-results 20 on every query (burns tokens)$TAVILY_API_KEY is set in env, not in filesuv run .../search.py "hello world" returns resultsgitleaks detect --source . clean© LichAmnesia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/tavily-search of LichAmnesia/lich-skills.
Open the folder on GitHubat commit ebbc355
Tavily Web Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tavily Web Search this skillLichAmnesia/lich-skills | 234 | — | ~1k | Automated safety check: Notes | MIT | |
| Tavily Web Searchallenpeng0705/EnvoyMesh | 3.1k | 3 repos | ~2.5k | Automated safety check: Notes | None | |
| Tavily Deep Researchsandbaseai/sandbase-skills | 202 | — | ~699 | Automated safety check: Pass | Apache-2.0 | |
| Argo Search and Verificationtaxueseek/argo | 186 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Omk ResearchKaimingWan/oh-my-kiro | 107 | — | ~827 | Automated safety check: Pass | MIT | |
| Tavily Researchinitializ/forge | 222 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
allenpeng0705/EnvoyMesh
Searches the web through the Tavily API with LLM-friendly output: clean structured results, optional AI-written answers, domain filters, news mode, images and raw content.
sandbaseai/sandbase-skills
Advanced web search, content extraction, and site mapping through Tavily via SandBase.
taxueseek/argo
Unified web search, page fetching and evidence checking across hundreds of sources, with result verification, a research-dossier mode and vertical search engines.
KaimingWan/oh-my-kiro
Multi-level research: built-in knowledge → web search → Tavily deep research API.
initializ/forge
Deep multi-source research using Tavily Research API. An agent skill from initializ/forge.
sandbaseai/sandbase-skills
Portable multi-source research with cross-source validation and an offline evidence ledger.
LichAmnesia/lich-skills
Pulls Google Analytics 4 data through the Data API with TypeScript scripts and turns it into a daily SEO report or prioritized traffic and bounce-rate recommendations.
LichAmnesia/lich-skills
Generates or edits PNG images with Google's Nano Banana 2 model through a small script, with a choice of 512, 1K, 2K or 4K output.
LichAmnesia/lich-skills
Organizes long-running agent work into a Project, Sprint and Task hierarchy with per-task state files, isolated worktrees, review loops and script-checked rules.
LichAmnesia/lich-skills
Drives a failing build, typecheck, lint or test command to a passing exit code through small, one-fix-at-a-time rounds, stopping at a hard attempt cap instead of looping forever.
LichAmnesia/lich-skills
Replaces trial-and-error fixing with an observe, hypothesize, experiment and conclude loop kept in DEBUG.md, where no fix is allowed before evidence supports a cause.
LichAmnesia/lich-skills
Runs a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase.
Works with
Runs headless web searches and single-page extraction through the Tavily API from a Python script, returning cited, summarized results without a browser. py`, run with `uv`, sends a query to Tavily and prints a synthesized answer followed by results, or JSON with `--json`. Flags set the number of results from 1 to 20, a basic or advanced depth, a general or news topic with a day limit, full article bodies as markdown, and domains to include or exclude.
Tavily Web Search fits situations like: looking up current news, documentation or pricing on the web; collecting cited sources for a research or writing task; pulling the readable text of one article as markdown.
Run `npx skills add LichAmnesia/lich-skills --skill tavily-search -a claude-code`. Or copy the skill folder (skills/tavily-search in LichAmnesia/lich-skills) into .claude/skills/tavily-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LichAmnesia/lich-skills --skill tavily-search -a codex`. Or copy the skill folder (skills/tavily-search in LichAmnesia/lich-skills) into .agents/skills/tavily-search in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LichAmnesia/lich-skills --skill tavily-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tavily-search, .gemini/skills/tavily-search, .github/skills/tavily-search and .opencode/skills/tavily-search in your project.
Going by SKILL.md and its folder, Tavily Web Search needs Python for the scripts in its folder, the command-line tools its instructions call (uv, curl, sh and gitleaks) and credentials named TAVILY_API_KEY and TAVILY_KEY. Our summary lists: A Tavily API key in TAVILY_API_KEY; uv to run the script.
SKILL.md names 2 domains. In commands or code: astral.sh; the agent is likely to contact it when it follows the instructions. As links in the text: tavily.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Tavily Web Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tavily Web Search: Tavily Web Search (allenpeng0705/EnvoyMesh, 3.1k stars), Tavily Deep Research (sandbaseai/sandbase-skills, 202 stars), Argo Search and Verification (taxueseek/argo, 186 stars) and Omk Research (KaimingWan/oh-my-kiro, 107 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LichAmnesia (a GitHub user) maintains it in LichAmnesia/lich-skills, which has 234 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on June 9, 2026.
Source: LichAmnesia/lich-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.