wigolo

Local-first web search, retrieval, and crawling for coding agents.

Stars
★ 5.5k
Last updated
2d ago
License
NOASSERTION
Primary language
TypeScript

At a glance

How it runs
CLIMCP serverSelf-hosted service
Works with
Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Node.js >= 20~1.5 GB free disk spaceShell / CLINetwork accessLocal filesystemMCP Server
Typical use
A developer using Claude Code, Codex, or Cursor can configure wigolo as an MCP server so the coding assistant can search documentation, fetch pages, and return source-pinned evidence.
Not a fit if
  • Production users who require a stable release rather than a public beta
  • Self-hosters on datacenter IPs who must fetch challenge-protected sites

What does this agent do, and when should you use it?

wigolo is a local-first web intelligence layer for AI coding tools and other MCP clients. A single Node process exposes MCP over stdio, REST, a CLI, TypeScript and Python SDKs, while keeping its cache, embeddings, models, and configuration under ~/.wigolo/. Its tool surface includes search, fetch, crawl, structured extraction, cache queries, similar-page discovery, research reports, autonomous gathering, page diffs, and watches. Search combines 18 direct adapters, rank fusion, and on-device ML reranking, while fetch can escalate from HTTP to a headless browser based on observed page signals. Core retrieval and collection are keyless, but synthesized output from research, agent, and answer-form search requires a configured external or local-compatible LLM provider.

search sends queries across multiple search engines and returns titles, URLs, verbatim excerpts, citation_id values, source_span offsets, evidence scores, and freshness signals. fetch loads one URL, escalating from HTTP to a browser when needed, and produces cleaned Markdown, metadata, and links; crawl traverses pages with BFS, DFS, sitemap, or map-only modes while respecting robots.txt and per-domain rate limits. extract returns tables, metadata, JSON-LD, brand identity, named schemas, or results matching a custom JSON Schema; cache searches previously seen material by keyword or hybrid semantic retrieval, while find_similar fuses keyword, semantic, and live-web signals. research decomposes a question, gathers sources, and returns a cited report or evidence brief; agent runs a plan → search → fetch → extract → synthesize loop. diff and watch identify page changes and can deliver updates to a webhook.

  1. A developer using Claude Code, Codex, or Cursor can configure wigolo as an MCP server so the coding assistant can search documentation, fetch pages, and return source-pinned evidence.
  2. A team operating a self-hosted developer assistant can run wigolo serve and connect its local REST API to an existing automation flow.
  3. An engineer collecting fields from public documentation or product pages can use extract for tables, JSON-LD, metadata, or a custom JSON Schema.
  4. A TypeScript, Python, LangChain, CrewAI, LlamaIndex, or Vercel AI SDK user building retrieval features can integrate the documented SDK or framework wrapper.
  5. A researcher or operations user monitoring a public page can fetch it initially, then use diff or watch to detect and deliver later changes.

How do you install or deploy this agent?

Requires Node.js 20 or later and about 1.5 GB of free disk space. On macOS, Linux, or Windows, run: npx wigolo init. To initialize and wire supported coding tools in one step, run: npx wigolo init --agents=claude-code,cursor. Verify the local engine with npx wigolo doctor. Search, fetch, crawl, extract, cache, and find-similar need no credentials. To have research, agent, or search format=answer write synthesized answers, configure WIGOLO_LLM_PROVIDER=gemini and GEMINI_API_KEY=<free-key>; Anthropic, OpenAI, Groq, and Ollama are also documented provider options.

How do you use this agent?

After initialization, run a CLI query with: wigolo search "local-first web search" --json. To expose a local HTTP service, run wigolo serve, then call: curl -sX POST http://127.0.0.1:3333/v1/search -H 'Content-Type: application/json' -d '{"query":"local-first software","max_results":5}'. The server defaults to 127.0.0.1:3333; binding beyond loopback requires a bearer token. Any MCP client can register npx -y wigolo in its MCP configuration.

What are this agent's strengths and limitations?

Pros
  • One tool surface is available through MCP, REST, CLI, TypeScript, Python, and documented framework wrappers, covering several integration boundaries.
  • Search results expose verbatim excerpts, byte-offset source_span values, citation IDs, evidence scores, and engine telemetry rather than only ranked links.
  • Its search path combines 18 direct adapters, rank fusion, and on-device ML reranking, with a persistent local cache supporting keyword and hybrid semantic retrieval.
  • The fetch router escalates on signals such as SPA markers, challenge bodies, or thin content, and labels blocked or degraded outcomes.
Limitations
  • Initial setup requires Node.js 20+, a browser engine, and local models; the documentation estimates roughly 1.5 GB of disk space.
  • Research, autonomous gathering, and answer-form search depend on LLM synthesis; without a provider they return an evidence brief rather than finished prose.
  • Public search backends and challenge-protected sites can degrade or fail; the documentation notes that datacenter IP reputation may prevent access to some sites.
  • The project is in public beta. Its README identifies AGPL-3.0-only, while the supplied repository metadata says NOASSERTION, so adopters should verify the license file.

How does this agent compare with similar options?

The README compares wigolo with Firecrawl, Exa, and Tavily. All are listed with multi-engine search and fetch/structured extraction, while wigolo is additionally listed with whole-site crawl/map, persistent local memory, byte-offset evidence excerpts, explainable per-result scoring, and a core path without an account or API key. The same documentation notes that paid services can still be stronger for some deep-extraction edge cases.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
wigolo This agent 54 · Major gaps CLIFree + model costs ★ 5.5k 2d ago TypeScript Codex · Claude Code · OpenAI API · Claude API
Firecrawl Web Research MCP 66 · Some gaps MCP serverFreemium ★ 7.8k today JavaScript Claude.ai
Omnara Managed Agent Platform 65 · Some gaps Hosted serviceFreemium ★ 3.4k today Go Codex · Claude Code · Claude.ai · OpenAI API · Claude API
Exa Web Research MCP 47 · Major gaps MCP serverFreemium ★ 5.2k 3d ago TypeScript ChatGPT · Codex · Claude.ai

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
54/ 100 5-point scale 2.7 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 2 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 12/29
Reliability 8/14
Adaptability 12/18
Convention 10/18
Effectiveness 9/13
Verifiability 3/8
Why each dimension lost points
Trust12 / 29 · 2.1/5

Evidence shows: README claims local-first, data stays in ~/.wigolo/, REST server binds loopback by default and requires token, but no code-level verification. Deductions: lack of concrete implementation details for least privilege, user confirmation mechanism not explicit, sensitive data handling (e.g., API key storage) only mentioned, dependency security lacks audit or vulnerability scanning evidence, external effects (e.g., network requests) not detailed, rollback mechanism not mentioned, source attribution partially present (e.g., citation IDs and byte offsets).

Reliability8 / 14 · 2.9/5

Evidence shows: README and package.json descriptions are consistent, tool list and feature descriptions are self-consistent, failure messages have examples (e.g., blocked_by_challenge). Deductions: dependency availability not verified, comprehensiveness of failure messages not fully demonstrated.

Adaptability12 / 18 · 3.3/5

Evidence shows: README clearly identifies target users (AI coding agents) and multiple usage scenarios (MCP, REST, SDK), capability boundaries described (e.g., tool list), trigger precision explained (e.g., query arrays, deep search), environment fit explained (Node ≥20, multi-platform). Deductions: some capability boundaries (e.g., limitations) not detailed.

Convention10 / 18 · 2.8/5

Evidence shows: README structure is clear, installation notes detailed, naming stable (tool names consistent), examples and FAQ present, known limitations mentioned (e.g., beta status), license is AGPL-3.0, version number exists, maintenance responsibility stated (author and feedback channels). Deductions: version changelog not provided, naming stability not fully verified.

Effectiveness9 / 13 · 3.5/5

Evidence shows: output format has examples (JSON structure), marginal value explained (comparison table), cost-benefit explained ($0/query). Deductions: output usability not actually tested, marginal value claims not independently verified.

Verifiability3 / 8 · 1.9/5

Evidence shows: claims in README (e.g., benchmark) are described, but no reproducible detailed data provided, cross-source verification insufficient, facts and inferences not clearly separated. Deductions: claim traceability weak, lack of independent verification.

Risks and how to mitigate them
  • This repository is in public beta, features may be unstable, use with caution in production.
  • Many dependencies, including native modules, may cause platform compatibility issues during installation and runtime.
  • Although claimed local-first, optional LLM integration sends data to third parties, please configure explicitly.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision b3ccf92be3ac New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.3.1
  2. v0.3.0
    Release notes excerpt
    Sponsored by [TestMu AI](https://wigolo.app/go/testmu/?ref=release) — thank you for keeping wigolo free for everyone. What's Changed * docs(readme): quiet-confident rewrite by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/212 * docs(readme): lowercase star-history repo param so the chart renders by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/213 * docs(readme): quickstart command pair + stable star-history link by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/214 …
    View on GitHub ↗
  3. v0.2.1
    Release notes excerpt
    What's Changed * fix(watch): hash full-body content, not view-truncated markdown by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/186 * feat: honest research/agent degradation + free-key guidance in tool descriptions by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/187 * docs: public-face overhaul — lean README, public docs/, examples/, docs on site by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/185 * fix: fresh-install reliability across platforms + clean-machine CI gate by @KnockOutEZ in https://github.com/KnockOutEZ/wigolo/pull/196 …
    View on GitHub ↗

FAQ

Do the core capabilities require an API key?
No. The README describes search, fetch, crawl, extract, cache, and find-similar as keyless. Synthesized writing can optionally use Gemini, Anthropic, OpenAI, Groq, or Ollama.
Does it send retrieved data to a cloud service?
The README states that cache, embeddings, models, and configuration live under ~/.wigolo/, and says third-party transmission occurs only when an LLM is explicitly selected for synthesis.
What happens with anti-bot protection or dynamic pages?
fetch can escalate from HTTP to a headless browser and reuse domain-level clearances. If a challenge remains unsolved, it reports a blocked_by_challenge failure instead of treating the challenge page as content.
Can it serve remote or multiple clients?
Yes. wigolo serve exposes REST plus /mcp and /sse. It defaults to loopback access, and a non-loopback bind requires a bearer token.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents