AI coding agents are far more useful with web search. Looking up a library's current API, finding the exact answer to a stack trace, or checking a breaking change turns an agent from a closed-book test into an open-book one.
The problem is cost and reliability. Commercial search APIs bill per query and cap monthly volume. Scraping a search engine directly gets an IP rate-limited quickly. Free tiers throttle hard enough that an agent which retries a few times burns through the allowance in a single session.
Prism answers this by shipping a managed SearXNG instance: free, unlimited, local web search with no API key and no sign-up. And because Prism sits between your agent and the model, it can answer the agent's search tool calls itself — you do not have to point anything at a new endpoint.
How it actually works
Agents do not know SearXNG exists. When an agent calls its web search tool, Prism recognises the call, runs the search locally, and streams the result back as ordinary tool output. The agent sees a normal tool result and carries on.
Agent ── web_search tool call ──▶ Proxy
│
├─ intercept the call
├─ query SearXNG (or Exa/Tavily/Brave/Serper)
└─ stream results back inline as tool output
│
Agent ◀── tool result ─────────────┘Interception covers web_search and web_fetch on the Anthropic Messages surface, and web_search and x_search on the Responses surface. It is skipped in exactly two places: Codex OAuth accounts, and any model marked api: "responses". On those routes the agent's own search tool is used and Prism stays out of the way.
Why SearXNG
SearXNG is an open-source metasearch engine. Rather than keeping its own index, it forwards a query to many engines — Google, Bing, DuckDuckGo, Brave, Yahoo and others — then aggregates and de-duplicates the results. Requests originate from your machine and are spread across engines, so no single provider sees enough traffic to flag.
query → http://127.0.0.1:8888/search?q=...&format=json
│
▼ fans out, then merges
Google · Bing · DuckDuckGo · Brave · Yahoo · ...The result is one local endpoint an agent can hit as often as it needs, returning JSON that is easy to feed into a context window.
Start it
Open the SearXNG tab
http://127.0.0.1:8765/admin and select SearXNG. You can also use the tray menu's Start SearXNG item.Click Start
127.0.0.1:8888.Let the first-run bootstrap finish
Turn on auto-start
Test the endpoint
curl "http://127.0.0.1:8888/search?q=nextjs+static+export+dynamic+routes&format=json"
# { "results": [ { "url": "...", "title": "...", "content": "..." } ] }format=json returns machine-readable results instead of an HTML page. It needs no headers or authentication, because the instance only listens on loopback.
Nobody has to install Python
SearXNG is a Python application, but Prism handles it. It creates an isolated virtual environment and installs the requirements into it — roughly an 80 MB download on first run. If the machine has no Python 3.11 or newer, Prism downloads a pinned standalone interpreter, so search works without a system Python at all.
searxngfolder under Prism's config directory resets it cleanly.When you want a paid provider
SearXNG is the free default, but it depends on public engines that can throttle or change. Prism also supports Exa, Tavily, Brave, Serper and any custom REST endpoint, all behind one ordered fallback chain — so a provider that fails or returns nothing is skipped automatically.
{
"search": {
"active": "searxng",
"fallback": ["exa", "tavily"],
"max_per_turn": 5,
"timeout_ms": 8000,
"default_num_results": 5
}
}Keys can live in config or in EXA_API_KEY, TAVILY_API_KEY, BRAVE_SEARCH_API_KEY or SERPER_API_KEY. Results per query are capped at 10.
Free versus paid search
Cost
Commercial APIs bill per query. The managed SearXNG instance is free and uncapped.
Rate limits
Free search tiers throttle quickly. Prism imposes only max_per_turn per agent turn, which you control.
Reliability
Paid APIs are more consistent. The fallback chain lets you keep SearXNG first for volume and a paid provider second for the queries that matter.
Get started
Install Prism, open the admin UI, and click Start on the SearXNG tab. Your agents get free, unlimited web search without a single line of configuration in the agent itself.