Websearch
Web search for Claude Code — one plugin bundling the official CLIs and Agent Skills of Exa, Tavily, Perplexity, Firecrawl, and Valyu. Guided setup, per-provider opt-in, always on the vendors' latest releases.
npx -y skills add Elnora-AI/elnora-websearch-tools --skill websearchAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Routes any web task to the best-fitting search provider (Exa, Tavily, Perplexity, Firecrawl, Valyu). Use when the user asks to "search the web", "look up online", "find information", "research", "deep research", "scrape a page", "extract content from a URL", "crawl a website", "find papers", "find companies", "find people", "fact-check", "get a cited answer", "monitor a page", or asks meta-questions like "which search tool should I use", "what web search do we have", "compare search providers", or when multiple web providers could serve the same request and one must be chosen.
SKILL.md
5.6 KB, as published. Nobody here has run it
Web Search Router
Five providers, one decision. This skill picks the provider; the provider's own skill or CLI does the work. Load the provider's skill after routing — it has the exact syntax.
Routing table
| Task intent | Provider | Use |
|---|---|---|
| Semantic/neural search — find by meaning, not keywords | Exa | exa-search skill |
| Find pages similar to a URL; entity discovery (companies, people, papers, code) | Exa | exa-search / build-with-exa skills |
| Get contents/text of result URLs from an Exa search | Exa | exa-contents skill |
| General web search, news, quick lookups | Tavily | tvly search (tavily-search skill) |
| Extract clean content from 1-20 known URLs | Tavily | tvly extract (tavily-extract skill) |
| Crawl or map a site's structure | Tavily | tvly crawl / tvly map skills |
| Synthesized, citation-grounded answer; comparative reasoning; "just answer the question" | Perplexity | bundled Perplexity skills (this plugin, Sonar API) |
| Deep-research report, multi-source synthesis | Perplexity (sonar-deep-research) or Tavily research; Valyu when a file deliverable is wanted | respective skill |
| Heavy scraping: JS rendering, anti-bot, screenshots, page interaction, change monitoring | Firecrawl | firecrawl CLI + skill family |
| Whole-site crawl into LLM-ready markdown | Firecrawl | firecrawl crawl |
| Academic literature (arXiv, PubMed, bioRxiv), clinical trials, patents | Valyu | valyu search (valyu-cli skill) |
| Financial/SEC filings, M&A due diligence, GTM/ICP account research | Valyu | valyu-cli skill |
| Research with deliverables (CSV/XLSX/PPTX/DOCX/PDF) | Valyu | valyu deepresearch create (valyu-cli skill) |
Availability check and fallbacks
Before routing, verify the chosen provider is usable (cheap checks, never print key values):
[ -n "$EXA_API_KEY" ] || grep -qs '^EXA_API_KEY=' ~/.config/elnora-websearch/.env # same pattern per provider
command -v tvly >/dev/null; command -v firecrawl >/dev/null; command -v valyu >/dev/null
Keys live in ~/.config/elnora-websearch/.env (%USERPROFILE%\.config\elnora-websearch\.env on Windows); process env wins over the file. If the first-choice provider isn't configured, fall back in this order:
- Semantic search (Exa missing) → Tavily search → Perplexity search-grounded answer
- General search / extract (Tavily missing) → Tavily works keyless at fair-use volume, so try it anyway → Firecrawl (also has a keyless mode) → Exa
- Cited answer (Perplexity missing) → Exa answer-style search + you synthesize → Tavily
- Scrape/crawl (Firecrawl missing) → Tavily extract/crawl → Firecrawl keyless for low volume
- Academic/financial (Valyu missing) → Exa (papers, filings via neural search) → Perplexity deep research
If nothing is configured at all: Tavily and Firecrawl still work keyless for basic search/extract; for anything more, point the user at /websearch-setup.
Choosing between providers
Exa finds things by meaning (best discovery); Tavily is the pragmatic all-rounder with the strongest recurring free tier and first-party extract/crawl/map; Perplexity doesn't return links, it returns an answer with citations (best when the user wants a conclusion, not a reading list); Firecrawl turns hostile or JS-heavy pages into clean markdown and handles crawling, interaction, and monitoring; Valyu covers corpora the open web doesn't (SEC filings, clinical trials, patents, licensed academic content) and produces file deliverables. Prefer the cheapest adequate tool: a keyless Tavily search beats spending Valyu credits on a general question; one Firecrawl scrape beats a full crawl.
| Provider | Free tier | Card? | Keyless mode |
|---|---|---|---|
| Exa | $10 credits on signup (~1,000 searches); +$7/month with payment method on file | No | No |
| Tavily | 1,000 credits/month, recurring | No | Yes (search + extract, fair-use) |
| Perplexity | None — prepaid credits; nothing charged until you buy | Yes | No |
| Firecrawl | 1,000 credits/month, recurring | No | Yes (search/scrape, low volume) |
| Valyu | $10 credits on signup ($20 with work email) | No | No |
Conflict arbitration
Firecrawl's umbrella skill claims all web tasks ("replaces WebFetch and WebSearch"). In this multi-provider bundle, this router is the arbiter: when several providers could serve a request, route by the table above, preferring the cheapest adequate tool — do not let Firecrawl's self-description win by default. Firecrawl gets the job when the task actually needs its strengths (JS rendering, anti-bot, site crawling, interaction, monitoring). Never suggest firecrawl setup defaults unless the user explicitly wants Firecrawl to own every web operation.
Not set up yet?
If no provider is configured, run /websearch-setup — it walks through key signup (four of five free tiers need no credit card), installs each vendor's official CLI and skills, and verifies with smoke tests. /websearch-status shows current health; /websearch-update keeps everything on the latest official releases.