mathews-tom/armory

tavily

AI-optimized web search via Tavily API when no URL is provided. Returns clean AI-ready snippets for current info and news. Triggers on: "search the web", "look up online", "find recent information", "web search". NOT for known URLs, use web-fetch.

First seen Mar 2, 2026

Installation

$ npx skills add mathews-tom/armory --skill tavily

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from mathews-tom/armory · top by installs.

npx skills add mathews-tom/armory

Browse all from mathews-tom/armory

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 316
License LICENSE
Default branch main
Open issues 3
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.1.1
More metadata
version
1.1.1
category
research
tags
["web-search","research","real-time","ai-optimized"]
difficulty
beginner

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,029 B
  • docs SUMMARY.md 261 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 84 installs

SKILL.md

Tavily Search

Web search and URL content extraction powered by Tavily API. Returns clean, structured results optimized for AI consumption — no HTML noise, no cookie banners, no pagination.

When to Use Tavily vs Other Tools

Situation Tool Reason
Need current information on a topic search.mjs Tavily aggregates and ranks live results
Need news from the last N days search.mjs --topic news --days N News mode filters recency
Have a specific URL, need full text extract.mjs Extracts clean article content from URL
Need documentation for a library search.mjs --deep Deep mode covers docs sites thoroughly
Need a static resource already known direct fetch or read Skip Tavily if no live lookup needed
Need multiple competing perspectives search.mjs -n 10 Increase result count for breadth

Scripts

Both scripts exist at scripts/ and require TAVILYAPIKEY in the environment.

  • scripts/search.mjs — query-based web search
  • scripts/extract.mjs — full content extraction from a URL

Search

node {baseDir}/scripts/search.mjs "query"
node {baseDir}/scripts/search.mjs "query" -n 10
node {baseDir}/scripts/search.mjs "query" --deep
node {baseDir}/scripts/search.mjs "query" --topic news
node {baseDir}/scripts/search.mjs "query" --topic news --days 3

Search Options

Option Default Description
-n <count> 5 Number of results to return (max: 20). Increase for broader coverage.
--deep off Advanced search mode — slower but more comprehensive. Use for complex research questions, technical deep-dives, or when standard results are insufficient.
--topic <topic> general general for standard search; news for current events filtered by recency.
--days <n> Only valid with --topic news. Limits results to articles published in the last n days.

Extract Content from URL

node {baseDir}/scripts/extract.mjs "https://example.com/article"

Use when you already have a URL and need the full page content — Tavily strips navigation, ads, and boilerplate, returning structured article text.

Output Format

Search results return a JSON array. Each result contains:

[
  {
    "title": "Article or page title",
    "url": "https://source.com/path",
    "content": "Clean text snippet (AI-optimized excerpt)",
    "score": 0.92
  }
]

score is Tavily's relevance ranking (0–1). Higher is more relevant. When parsing results, use content for summarization and url for attribution. Do not treat content as the full article — use extract.mjs on the URL if complete text is needed.

Extract output returns a single object:

{
  "url": "https://source.com/path",
  "raw_content": "Full extracted page text..."
}

Error Handling

Error Cause Resolution
TAVILYAPIKEY not set Environment variable missing Set TAVILYAPIKEY before running. Get a key at https://tavily.com
401 Unauthorized Invalid API key Verify the key value; regenerate at Tavily dashboard if needed
429 Too Many Requests Rate limit hit Reduce request frequency; free tier allows 1000 API credits/month
Empty results array [] No matches found Broaden or rephrase the query; try --deep for niche topics
ETIMEDOUT / timeout Network or API latency Retry once; --deep searches take longer (up to 30s)
Extract returns empty content Page blocks scrapers Use a different source or fall back to a manual fetch approach

Limitations

  • Rate limits: Free tier is 1000 API credits/month. Each search costs 1 credit; --deep costs more.
  • Content freshness: Results reflect Tavily's index; very recent content (last few hours) may not appear in general mode. Use --topic news for recency-sensitive queries.
  • Result quality: Tavily optimizes for AI-readable content but cannot guarantee factual accuracy. Verify critical claims from primary sources.
  • Paywalled content: Articles behind paywalls return only the publicly accessible excerpt.
  • Non-text content: PDFs, images, and media pages extract poorly or not at all.
  • Language: Best results for English queries. Other languages are supported but result quality varies.