wigolo  by KnockOutEZ

Local web intelligence for AI coding agents

Created 3 months ago
3,345 stars

Top 13.9% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Wigolo provides a local-first web intelligence layer for AI coding agents, addressing the need for cost-effective, private, and powerful web data access. It targets developers and researchers building AI agents by offering search, fetch, crawl, and research capabilities directly on the user's machine, eliminating API keys, cloud dependencies, and per-query costs. This enables agents to gather and process web information autonomously and affordably.

How It Works

Wigolo functions as a local Model Context Protocol (MCP) server, integrating seamlessly with various AI coding agents. Its core architecture relies on a suite of tools—search, fetch, crawl, extract, cache, find_similar, research, and agent—executed locally. Key design choices include a tiered fetch router that escalates to a headless browser against anti-bot measures, on-device ML models for reranking and embeddings, and a persistent local cache. This approach prioritizes deterministic operations, reserves LLMs for optional synthesis, and ensures data privacy by keeping all operations within ~/.wigolo/.

Quick Start & Requirements

  • Primary Install/Run: Use npx wigolo init --non-interactive --agents=<your-agent> to install the engine and auto-wire it into supported agents (e.g., claude-code, cursor, vscode). For engine-only installation, use npx wigolo init --non-interactive. Docker: docker run -i --rm -v wigolo-data:/data ghcr.io/knockoutez/wigolo.
  • Prerequisites: Node.js version 20 or higher, approximately 1.5 GB of free disk space. Compatible with macOS, Linux, and Windows.
  • Resource Footprint: Initial setup involves downloading the browser engine and on-device models, requiring ~1.5 GB.
  • Links: npm package, MCP, Docker image.

Highlighted Details

  • Multi-engine web search with rank fusion, ML cross-encoder reranking, and explainable per-result scoring.
  • A tiered fetch router that intelligently escalates from HTTP to TLS-impersonation and headless browsers to overcome anti-bot challenges and SPAs.
  • Local caching with keyword (BM25) and vector search, enabling instant, offline re-querying of previously accessed data.
  • Autonomous agent loops for planning, searching, fetching, extracting, and synthesizing information, complete with logging and time budgeting.
  • Benchmark claims parity with paid services, offering verbatim excerpts pinned to source spans and detailed result scoring.

Maintenance & Community

Wigolo is maintained by @KnockOutEZ and is currently in public beta, actively soliciting feedback through bug reports and feature requests. While specific community channels like Discord or Slack are not detailed, direct contact with the developer is encouraged for support and inquiries. The project is supported by donations, with AGPL-3.0 license preventing a closed-source pivot.

Licensing & Compatibility

The project is licensed under GNU AGPL-3.0-only. This license permits free use, modification, and self-hosting, including within companies. However, any modifications to wigolo that are run as a network service must be published under the same AGPL-3.0 license. Local use as a development tool incurs no such obligation. Commercial licensing inquiries should be directed to the maintainer.

Limitations & Caveats

As a public beta, wigolo may still undergo polish refinements. Its primary design is as a focused web layer for a single agent on one machine, rather than a general-purpose SaaS or a multi-tenant vector database. Setting up wigolo for non-standard or custom MCP-capable agents may require manual configuration. While engineered for robustness against search engine blocking, performance can be influenced by the user's local hardware for on-device model execution.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
76
Issues (30d)
26
Star History
3,362 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.