Open-Source Tavily Alternatives — What They Actually Do
Tavily is closed-source. Here's an honest comparison of OSS search APIs you can self-host: fastCRW, OrioSearch, agent-search, SearXNG-direct, and Vane (formerly Perplexica).
If you want what Tavily does without Tavily's pricing or vendor lock-in, fastCRW, OrioSearch, and agent-search are the three live OSS APIs worth real evaluation.
What "open-source Tavily" actually means
Tavily is a closed-source AI-first search API. "Open-source Tavily" is a question without a single answer because Tavily bundles three things:
- Web search aggregation — querying Google/Bing/etc. and ranking results.
- Content extraction — pulling clean markdown or text from result URLs.
- Optional LLM-grounded answer synthesis — turning results into a synthesized answer.
OSS projects mostly cover (1) and (2). Almost none cover (3) as a built-in service — that's where Tavily's commercial moat is. The matrix below is built around that reality.
Live OSS projects, honest comparison
| Project | License | Stars | Architecture | Tavily compat | MCP | Hosting story |
|---|---|---|---|---|---|---|
| fastCRW | AGPL-3.0 | new | Rust + bundled SearXNG | Tavily-style, adapter shim | Yes (search+scrape+crawl+map) | docker compose up |
| OrioSearch | MIT | ~22 | Python (FastAPI) + SearXNG + Redis | Yes — explicit drop-in | No | docker compose up --build |
| agent-search | MIT | ~25 | Python (FastAPI) + SearXNG | Partial (functional, not byte-shape) | Yes + Tor stack | docker compose up |
| SearXNG (raw) | AGPL-3.0 | 29.7k | Python aggregator | No (own JSON API) | No | docker compose up, no auth/keys/limits |
| Vane (was Perplexica) | MIT | 34.2k | Chat UI + SearXNG | Tavily as backend (consumer, not replacement) | No | Chat app, not API |
The critical reads from this table:
- OrioSearch is the only project that ships explicit Tavily-shape compatibility today. If your priority is byte-level shim-free migration from a Tavily client, that's the path. Trade-off: small project (~22 stars), no MCP, Python.
- fastCRW is Tavily-style — same concepts, renamed fields, adapter required. Trade-off: lower resource cost (Rust), broader API surface (crawl, map), AGPL license.
- agent-search is the MCP-native option — bundles a server for Claude Desktop/Cursor. Trade-off: Python, partial compatibility, optional Tor.
- SearXNG-direct is what you run if you want zero wrapper. Trade-off: no API keys, no rate limits, no content extraction, no answer — you build the rest.
- Vane is a chat product, not an API. Listed because it surfaces in search results for this query; if you wanted an OSS Tavily client, this is closer.
Skip list — projects that come up but shouldn't
- Whoogle (
benbusby/whoogle-search): final release April 2026. Google's JS-disabled query blocking killed it. Don't deploy. - SciPhi-AI/agent-search: last release January 2024. Over two years stale. Different from
brcrusoe72/agent-search(the active one). - UnSearch: does not exist. The name floats around in OSS-Tavily discussions but no repo backs it.
- Farfalle (
rashadphz/farfalle): chat product, no published releases since launch May 2024, consumes Tavily/SearXNG/Serper as a backend rather than replacing them.
How to self-host fastCRW (the 2-minute path)
# Clone
git clone https://github.com/us/crw && cd crw
# Configure
cp .env.example .env
# Edit .env to set CRW_API_TOKEN if you want auth (optional for local)
# Boot
docker compose up --build
# fastCRW (:8080) + SearXNG sidecar + Redis
# Smoke test
curl -X POST http://localhost:8080/v1/search \
-H "Content-Type: application/json" \
-d '{"query": "agentic search benchmarks", "limit": 5}'
The compose stack ships SearXNG with hardening defaults: read-only rootfs, dropped Linux capabilities, no-new-privileges, memory and PID limits, pinned image tag. Audit trail is in docker-compose.yml and config/searxng/settings.yml.
Migrating from Tavily client code
The full Python adapter shim (CrwTavilyShim) is on the Tavily alternative hub. If you're on the OrioSearch path, no shim is needed — it claims explicit Tavily request/response shape, so swap the base URL and you're done. agent-search uses its own endpoint shape (/search, /search/extract); you'll need a thin wrapper.
License notice
fastCRW is AGPL-3.0 (full text). SearXNG is also AGPL-3.0. OrioSearch and agent-search are MIT. AGPL has specific requirements for network-deployed modifications to the licensed software; calling the API from your application is not a modification. Consult your own counsel if your organization treats AGPL as a hard blocker.
Where each option breaks
Honest failure modes, by project:
- fastCRW: at high QPS, the bundled SearXNG sidecar gets rate-limited by Google/Bing. Mitigation: wire a Brave Search API key into SearXNG, or move to fastCRW Cloud where upstream rotation is handled.
- OrioSearch: small project, single maintainer, ~22 stars. Long-term maintenance is a real risk.
- agent-search: same scale concern as OrioSearch (~25 stars). Tor stack is cool but adds operational surface area.
- SearXNG-direct: no auth, no rate limit, no content extraction. You're building the wrapper. That's the whole reason these other projects exist.
- Vane: not an API. Different product.
Recommended next reads
- Tavily alternative hub — the wider compatibility matrix, hosted plan, pricing math.
- Self-hosted search API — broader devops/security audience, full hardening checklist.
- fastCRW vs Firecrawl and vs SerpAPI — adjacent paid APIs, when they make sense.
Three calls to action
- Deploy OSS now —
docker compose up. Quickstart → - Compare directly — Tavily ↔ fastCRW compatibility matrix
- Skip the ops — hosted plan with the same API surface →
Continue exploring
More from Alternatives
Tavily-Style Search API — Free to Self-Host (2026)
Tavily vs Serper — AI Search API vs SERP API (2026)
Apify vs fastCRW: When to Migrate (2026)
A 1:1 deep comparison for teams already on Apify and evaluating fastCRW. Migration triggers, request-shape diff, rental-Actor sunset checklist, pricing math at three scales, and the cases where Apify is still the right call.
Firecrawl Alternative in 2026 — fastCRW (Self-Host, Compatibility Matrix)
Firecrawl alternative comparison: fastCRW is Firecrawl-compatible on the /scrape, /crawl, /map, /search overlap surface, runs as a single Rust binary (~6.6 MB idle), and is honest about what Firecrawl does that we don't. Migration matrix + branded long-tail Q&A.
Firecrawl Self-Hosted Rust Crate — Two Paths in 2026
Two ways to scrape the web from Rust without paying per-credit cloud pricing: the official firecrawl crate against a self-hosted Firecrawl stack, or fastCRW — a Rust-native, self-hostable alternative on the overlap surface.
Related hubs