SearXNG
SearXNG is a free, open-source metasearch engine that aggregates results from Google, Bing, DuckDuckGo, and dozens of other sources. By running your own instance, lynox gets unlimited web search — no API key, no monthly limits, no cost.
How It Fits In
Section titled “How It Fits In”lynox has two independent web search mechanisms:
- Anthropic built-in
web_search— server-side, automatic, only with Anthropic direct API web_researchtool — client-side, works with all LLM providers (SearXNG or Tavily)
Both can coexist — the model chooses which to use.
For the web_research tool, SearXNG is the default when configured. If you set up a SearXNG instance and provide the URL, lynox uses it — even if you also have a Tavily API key. This is intentional: setting up SearXNG is a deliberate choice, and it’s unlimited.
| Config | web_research provider |
|---|---|
| SearXNG URL configured | SearXNG (default when present) |
SearXNG URL + search_provider: 'tavily' | Tavily (explicit override) |
| Only Tavily API key | Tavily |
| Nothing | No web_research tool |
Docker Compose (default — no setup needed)
Section titled “Docker Compose (default — no setup needed)”SearXNG is included in the standard docker-compose.yml. Just run:
docker compose up -dWeb search works immediately. Verify in the Web UI under Settings → Integrations — the SearXNG card shows “Connected”.
Standalone (for npx or single-container users only)
Section titled “Standalone (for npx or single-container users only)”If you’re not using docker-compose, start SearXNG separately:
docker run -d --name searxng -p 8888:8080 searxng/searxng:latestThen configure lynox:
Via Web UI: Settings → Integrations → SearXNG. Enter the URL and test the connection.
Via environment variable or config:
export SEARXNG_URL=http://localhost:8888Docker Compose
Section titled “Docker Compose”SearXNG is included and active by default in the standard docker-compose.yml. No extra setup needed — just docker compose up.
lynox ships a pre-configured searxng/settings.yml with optimized engines:
- General: Google, DuckDuckGo, Bing, Wikipedia, Wikidata
- News: Google News, DuckDuckGo News, Bing News
- Science: Google Scholar, Semantic Scholar, arXiv
- IT: GitHub, StackOverflow, npm, PyPI
Comparison
Section titled “Comparison”| Anthropic Built-in | Tavily | SearXNG | |
|---|---|---|---|
| Cost | Included | Free tier, then paid | Free |
| API key required | No | Yes | No |
| Providers | Anthropic only | All | All |
| Content extraction | Deep (full page) | Deep (raw_content) | Auto-enriched (top 3 results) |
| Quality | High (Claude-optimized) | High (AI-optimized) | High (enriched + multi-engine) |
| Setup | Zero | Account creation | Docker container |
| Rate limits | API rate limits | 1,000/month free | Unlimited |
Content enrichment: lynox automatically fetches full page content for the top 3 search results using its built-in content extractor (Readability-based). This closes the quality gap to Tavily. A 10-second timeout ensures search stays responsive even when pages are slow.
Search Categories
Section titled “Search Categories”The web_research tool supports topic-based search:
| Topic | SearXNG Category | Engines |
|---|---|---|
general | (default) | Google, DuckDuckGo, Bing, Wikipedia |
news | news | Google News, DuckDuckGo News, Bing News |
science | science | Google Scholar, Semantic Scholar, arXiv |
it | it | GitHub, StackOverflow, npm, PyPI |
finance | (general) | Google, DuckDuckGo, Bing + currency engine |
Customizing
Section titled “Customizing”Edit searxng/settings.yml in the repo to:
- Add/remove engines — see
use_default_settings.engines.keep_only - Change language —
search.default_lang(default:auto) - Adjust timeout —
outgoing.request_timeout(default: 5s)
See the SearXNG documentation for all options.