wigolo — local-first web intelligence for AI agents<br>wigolo is in public beta — everything works, and it's improving fast. Hit a rough edge? Tell us
StarnpmInstall›_
public beta · free · open sourceThe web, wired<br>into your local agent.<br>wigolo is a local-first server that hands any AI agent the whole web — search, fetch, crawl, extract, cache, and research. In your editor over MCP, in your framework through an SDK, or in your self-hosted stack over REST. No API keys. No cloud. No metered bill.<br>claude code · cursor · codex · gemini cli · vs code · windsurf · zed · antigravity · langchain · crewai · n8n — and any other agent, through MCP, REST, or the SDKs
Get started$npx wigolo init --agents=<br>your agent — wigolo mcp · no API keys
•NO API KEYS•RUNS ON YOUR MACHINE•$0 PER QUERY•18 SEARCH ENGINES•LOCAL VECTOR CACHE•OPEN SOURCE · AGPL-3.0<br>•NO API KEYS•RUNS ON YOUR MACHINE•$0 PER QUERY•18 SEARCH ENGINES•LOCAL VECTOR CACHE•OPEN SOURCE · AGPL-3.0<br>•NO API KEYS•RUNS ON YOUR MACHINE•$0 PER QUERY•18 SEARCH ENGINES•LOCAL VECTOR CACHE•OPEN SOURCE · AGPL-3.0
$0<br>per query, forever
API keys to get started
10<br>web tools over one MCP
How it worksEverything heavy runs on your machine<br>No metering, no round-trips you didn't ask for. Your agent reaches the open web through one local process — and the work that costs money elsewhere happens right here instead.
you runyour agent
local processwigolo
reachesthe web<br>Spoken over MCP — and the same tools answer over a REST API and language SDKs , so anything that talks HTTP can drive it.
fetch<br>A tiered router that starts at plain HTTP and only escalates on what it actually sees — anti-bot challenges, empty SPA shells — never on a guess about the domain.<br>1plain HTTP — where most pages resolve<br>2TLS-impersonation — past bot walls<br>3a headless browser engine — full render
search<br>18 search-engine adapters fan out in parallel, then rank fusion and an on-device ML reranker settle the order — with an explainable score behind every single result.<br>▸fan out — 18 engines, one query array<br>▸rank fusion — merge, dedup, reconcile<br>▸on-device rerank — scored, explained
cache<br>Everything fetched lands in a local index — keyword search paired with on-device vectors. Re-asking is instant and free , and it still answers when you're offline.<br>▸keyword + on-device vectors, side by side<br>▸a repeat ask returns in milliseconds<br>▸works with no network at all
Models and cache live under ~/.wigolo on your machine — no keys, nothing metered, and nothing leaves unless you opt into an LLM.
one command wires it into<br>claude codecursorcodexgemini clivs codewindsurfzedantigravity<br>claude codecursorcodexgemini clivs codewindsurfzedantigravity<br>claude codecursorcodexgemini clivs codewindsurfzedantigravity
+ any other agent, through MCP
The toolsYour agent is smart. Its web access isn't.<br>Full tool reference
// every result explains itself<br>"excerpt": "Logical replication replicates data…",<br>"score": 0.87,<br>"breakdown": {<br>"semantic": 0.91,<br>"lexical": 0.74,<br>"engine_consensus": "4/5 engines"<br>},<br>"source_span": { "start": 1284, "end": 1571 },<br>"citation_id": "f38b44c100e4"<br>Evidence, not blue links<br>See the receipts<br>One MCP call fans a query array across many engines in parallel. Every result comes back with a transparent score breakdown, byte-offset source spans, and citation IDs — output your agent can quote.
1Plain HTTP fast path — most pages end here
↓ anti-bot challenge detected<br>2TLS-impersonation learned fingerprints past bot walls
↓ SPA shell · thin content<br>3Headless browser full render from a warm in-process pool
Routing on observable signals<br>How it works<br>The keyless fetch ladder escalates to a real browser on what it sees — SPA markers, challenge bodies, thin content — not domain guesses. It clears most challenge sites with no keys; the strictest managed-challenge and IP-reputation walls need an opt-in proxy, solver, or reader. It learns per-domain, and unlearns when a site stops needing it.
agent → cache "postgres logical replication"<br>wigolo → 3 hits · hybrid keyword + semantic<br>postgresql.org/docs/current/logical-replication<br>postgresql.org/docs/current/warm-standby<br>wiki.postgresql.org/wiki/Streaming_Replication<br>latency → 3ms · $0 · nothing left your machine<br>Everything it sees, it keeps<br>Get started<br>Every response lands in a local store under ~/.wigolo/ — full text, keyword index, and on-device vectors. Asking again is instant and costs nothing; find_similar and change detection build on it.
question → "how does postgres logical replication work?"<br>decompose → 4 sub-queries · fanned out in parallel<br>▸ publication / subscription model<br>▸conflict handling & limitations<br>▸ vs. physical / streaming replication<br>synthesize → cited brief · 7 sources · 12 citations<br>gaps → surfaced, not hidden<br>Research that writes itself<br>All 10 tools<br>research decomposes a question, fans out sub-queries, fetches sources, and hands back a cited brief. agent runs an autonomous plan → search → fetch → extract → synthesize loop with a step log and...