mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Self-Hostedevaluationupdated 01 Sept 2026

wigolo review

Wigolo is a local web-search, fetching, crawling, and research service for AI agents. It runs as an MCP server, REST service, command-line tool, or embedded client, keeping its cache and on-device models on the machine you control.

trackingstars / 7d
Verdict

Our Wigolo run installed 610 packages and used 1,327 MB, then finished with 8,346 tests passing and 37 failing. The local search, cache, MCP, and REST combination is unusually useful for a developer willing to inspect failures and pin a beta release. Do not put it into a sensitive shared service until the 18 audit findings, MCP handshake reports, and platform-specific degradation paths are acceptable or fixed.

We ran it

Lab card: what happened when we ran wigoloScreenshot of wigolo (knockoutez.github.io/wigolo)
Install✓ · 40s610 packages · 1327 MB
Build✓ · 13s
Tests✗ · 194sran, no count parsed
Known vulns181 critical · 12 high · 3 moderate · 2 low (npm audit)
Repo1672 files~232,596 lines of source · 25.5 MB · 9 CI workflows · Dockerfile · tests dir

Answers from our run

Does wigolo build from source?

Dependencies installed in 40 seconds (610 packages), and the build succeeded in 13 seconds. We cloned commit c6ad447 into a clean Debian container with 3 CPUs and no project-specific setup.

Do wigolo's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does wigolo have known vulnerabilities in its dependencies?

npm audit flagged 18 known advisories in the dependency tree, including 1 critical at the time of our run.

Who should not use wigolo?

Security-sensitive deployments that cannot accept the current dependency report: our npm audit found 18 known vulnerabilities, including 1 critical and 12 high severity.

What are the alternatives to wigolo?

SearXNG, Firecrawl, Crawl4AI. Our Wigolo run installed 610 packages and used 1,327 MB, then finished with 8,346 tests passing and 37 failing.

Setup2/540-second install, 1,327 MB footprint, and 37 failed tests
Docs5/5Detailed setup, tool contracts, SDK, Docker, and failure guidance
Community4/54,823 stars with a September 1 push and active issue reports
Maturity2/5Public beta with test failures and 18 dependency advisories

Who it’s for

Developers who want Claude Code, Codex, Cursor, or another MCP client to search and fetch the web without a metered search account.
Self-hosters who want search results, excerpts, citations, and page changes cached locally.
Agent builders who need the same web tools over MCP, REST, TypeScript, or Python.
Teams willing to validate public search quality and keep browser, ranking, and embedding components healthy.

Who it’s NOT for

Security-sensitive deployments that cannot accept the current dependency report: our npm audit found 18 known vulnerabilities, including 1 critical and 12 high severity.
Teams requiring a clean full suite before evaluation: our run ended with 37 failed tests and a 20-second timeout.
Minimal containers or lightweight editor helpers: the install added 610 packages and occupied 1,327 MB before browser warmup.
Strict MCP interoperability buyers who cannot reproduce protocol behavior first: open issues 472 and 473 report handshake failures against two advertised spec revisions.
ARM64 Docker users who depend on vector ranking: issue 231 reports that v0.2.1 silently fell back to reranking when a native tokenizer package was absent.
REST clients that route or retry by status code without reading the body: issue 262 reports that several tool failures returned HTTP 500.

Setup reality

Our sandbox installed Wigolo in 40 seconds, adding 610 packages and using 1,327 MB. The build passed in 13 seconds. Tests failed with exit code 1 after 194 seconds: 8,346 passed, 37 failed, 11 skipped, and 7 were marked todo. Npm audit found 18 known vulnerabilities.

Node 20 or newer is required, with Node 20, 22, or 24 listed as the safer choices. wigolo init downloads browser and on-device model components. Core search and fetching need no private API credential; synthesized answers need Gemini, Anthropic, OpenAI, Groq, Ollama, or another compatible provider.

MCP is the simplest local path. A remote REST bind requires a bearer token and persistent ~/.wigolo/ storage. Browser launches can need Linux system libraries, public engines may degrade or block requests, and the README labels the project public beta.

Ten local tools cover web retrieval and evidence reuse

Wigolo exposes 10 web tools through MCP, REST, a terminal interface, and client SDKs. Search can query several engines, fetch can escalate to a browser, crawl follows multiple pages, and extract returns structured fields. The remaining tools reuse cached pages, find related sources, assemble research, run a gathering loop, compare revisions, or watch for changes. Results can include source excerpts, byte positions, citation identifiers, and score components, which gives an agent more material to check than a plain list of links.

Search, fetch, crawl, extraction, cache, and similarity work without a private API credential. They still contact public sites and search services, while cache files, embeddings, models, and configuration stay under ~/.wigolo/. Research and answer synthesis can call Gemini, Anthropic, OpenAI, Groq, Ollama, or another compatible endpoint. Without a language model, those tools return evidence for the host agent to assemble. That division is sensible for local use because the expensive writing step remains optional.

Node 20 starts the service, then local components add weight

Node 20 is the documented minimum, although the troubleshooting section recommends LTS releases 20, 22, or 24. npx wigolo init installs the local engine, obtains browser and model components, runs health checks, and can write MCP configuration for several editors. Issue 237 reports that installation on Node 26 failed while building better-sqlite3, despite the package declaring Node 20 or newer. Staying on a recommended LTS release avoids that reported mismatch.

The service can listen on 127.0.0.1:3333 for local REST clients. Binding beyond loopback requires a bearer token, and Docker deployments need a persistent data volume. Browser automation may need extra Linux libraries. Public search engines can reject a datacenter address or change their markup, so Wigolo reports degraded backends and challenge failures. These are ordinary costs for a local web stack, but they belong in the operating budget beside disk space and model downloads.

What happened when we ran it

Our sandbox installed commit c6ad447 in 40 seconds, adding 610 npm packages and consuming 1,327 MB. The build then passed in 13 seconds. The checkout itself contained 1,672 files, roughly 232,596 source lines, and 25.5 MB. We also found 9 CI workflow files, a Dockerfile, and a tests directory. Installation and compilation were straightforward on Node 22, yet the dependency footprint was far larger than the source checkout.

The test command exited 1 after 194 seconds. Vitest reported 8,346 passed, 37 failed, 11 skipped, and 7 todo out of 8,401 tests. Seven test files failed, 711 passed, and 3 were skipped out of 721. The log tail named failures in no-lightpanda.test.ts and warmup-setup-json-contract.test.ts, plus an error stating that a test exceeded 20,000 ms. It also showed warnings from a deliberately failing search engine. The supplied tail does not identify one cause for all 37 failures.

Npm audit found 18 known vulnerabilities in the installed tree: 1 critical, 12 high, 3 moderate, and 2 low. That result deserves attention because Wigolo handles arbitrary URLs, runs a browser, stores fetched content, and can expose a network service. The count does not say whether every advisory is reachable in the default path. A prospective operator should review the affected packages and fixes before deciding that local execution is safer than a hosted search API.

Two open MCP reports question the documented bare command

Open issues 472 and 473 test the documented npx -y wigolo stdio command against MCP revisions dated 2026-07-28 and 2025-11-25. The reports describe failed initialization handshakes and official SDK clients seeing a closed connection. Both reporters allow for a possible prerequisite that their black-box setup missed. That caveat matters, yet the documented bare command should still be reproduced with every MCP client you plan to support before standardizing Wigolo across editors.

Other open reports affect narrower paths. Issue 231 says the v0.2.1 ARM64 Docker image omitted a native tokenizer package, causing vector search to fall back without surfacing the change outside logs. Issue 262 says REST failures such as invalid URLs and blocked fetches returned HTTP 500 because status mapping read the wrong field. Issue 303 says the advertised search-engine allowlist was ignored. Each has a direct acceptance test, and each matters more than a broad feature checklist.

September code activity has moved beyond the July release tag

GitHub recorded 4,823 stars, 58 open issues and pull requests, and a last push on September 1, 2026. The latest GitHub release was v0.2.1 on July 19. That gap does not indicate abandonment because commits and issue discussions continued afterward. It does mean users must choose between the release and newer source changes deliberately, then rerun the exact REST, MCP, Docker, and search paths they expect to deploy.

Wigolo calls itself a public beta, which matches our evidence better than its confident marketing copy. The 40-second install and successful build make exploration easy, while 1,327 MB of dependencies, 37 failed tests, and 18 audit findings rule out casual production adoption. Its AGPL-3.0 license is friendly to local use and requires source disclosure for a modified network service. Try it beside one agent first, inspect degraded results, and keep a narrower crawler or hosted search option available for comparison.

Alternatives

ProjectWhat it isPick it when
SearXNG gh↗A private metasearch engine that combines many public search services.pick this instead when metasearch and a browser UI matter more than agent crawling, extraction, and local semantic cache.
Firecrawl gh↗A web data service centered on search, scraping, crawling, and structured extraction.pick this instead when a hosted API or larger self-hosted web-data stack is preferable to running models beside each agent.
Crawl4AI gh↗A Python crawler that turns web pages into LLM-friendly content and structured data.pick this instead when crawling and extraction are the main jobs and Python is your operating environment.
Tavily MCPAn MCP server for Tavily's hosted search, extract, map, and crawl API.pick this instead when a managed search backend is worth an account and usage-based service dependency.

What people are saying

  1. [github-trending] KnockOutEZ/wigolo

Sources

  1. Wigolo repository and README
  2. Wigolo v0.2.1 release
  3. MCP 2026-07-28 conformance report
  4. ARM64 Docker ranking report
  5. REST status mapping report
  6. Ignored search engine selection report

More self-hosted reviews

v2 · OpenShell · Mindwtr · club-3090 · reclip · Mindustry · the whole board →