KnockOutEZ / wigolo

KnockOutEZ / wigolo

Local-first web intelligence for AI agents — no keys, no cloud, no metered bill. works with Claude Code · Cursor · Codex · Gemini CLI · VS Code · Windsurf · Zed · Antigravity and beyond LangChain · CrewAI · LlamaIndex · Vercel AI SDK · n8n & self-hosted agents · any MCP client · plain REST Quickstart · Tools · Why wigolo · Benchmark · Docs · Examples · Feedback · FAQ 面向 AI 智能体的本地优先网络智能工具——无需密钥、无需云端、无按量计费。支持 Claude Code、Cursor、Codex、Gemini CLI、VS Code、Windsurf、Zed、Antigravity 以及 LangChain、CrewAI、LlamaIndex、Vercel AI SDK、n8n 和自托管智能体、任何 MCP 客户端及普通 REST 接口。快速入门 · 工具 · 为什么选择 wigolo · 基准测试 · 文档 · 示例 · 反馈 · 常见问题。

wigolo gives an AI agent one durable surface for everything web-related — search, fetch, crawl, extract, cache, find-similar, research, and autonomous gather loops. It runs wherever your agent runs: as an MCP server next to your coding agent, as a REST/MCP endpoint on the box where your self-hosted agents live, or embedded through an SDK inside your own app. The core tools need no API keys, nothing it touches leaves ~/.wigolo/, and there’s no bill that grows with how much your agent thinks. wigolo 为 AI 智能体提供了一个处理所有网络相关任务的持久化界面——包括搜索、抓取、爬取、提取、缓存、相似度查找、研究以及自主收集循环。它可以在智能体运行的任何地方运行:作为编码智能体旁边的 MCP 服务器、作为自托管智能体所在机器上的 REST/MCP 端点,或者通过 SDK 嵌入到你自己的应用程序中。核心工具无需 API 密钥,所有处理的数据都不会离开 ~/.wigolo/ 目录,且不会随着智能体思考量的增加而产生费用。

Quickstart Requires Node ≥ 20 and ~1.5 GB of free disk. macOS, Linux, and Windows. One command wires the local engine into your agent. init is unattended by default — no prompts, safe in scripts and CI — and does the complete setup: it downloads the browser engine and on-device models, runs a health check, and prints a per-component summary, so any setup problem surfaces right here, not silently on your agent’s first call: 快速入门需要 Node ≥ 20 和约 1.5 GB 的可用磁盘空间。支持 macOS、Linux 和 Windows。只需一条命令即可将本地引擎接入你的智能体。init 默认采用无人值守模式——无需提示,在脚本和 CI 环境中安全可靠——并完成完整设置:它会下载浏览器引擎和端侧模型,运行健康检查,并打印各组件的摘要,以便任何设置问题都能立即显现,而不是在智能体首次调用时才静默报错:

npx wigolo init —agents= — one or more of claude-code · cursor · codex · gemini-cli · vscode · windsurf · zed · antigravity (comma-separated). wigolo writes the MCP config and instructions for you. Any other MCP client? Omit —agents and register npx -y wigolo yourself — the installation guide has the exact config block for every client, plus Docker, Homebrew, and single-file-binary channels. npx wigolo init —agents=,其中 可以是 claude-code、cursor、codex、gemini-cli、vscode、windsurf、zed、antigravity 中的一个或多个(以逗号分隔)。wigolo 会为你编写 MCP 配置和说明。使用其他 MCP 客户端?省略 —agents 参数并自行注册 npx -y wigolo——安装指南提供了每个客户端的精确配置块,此外还支持 Docker、Homebrew 和单文件二进制分发渠道。

Prefer prompts? —interactive is a plain-text flow; —wizard is the full terminal TUI. Skip the downloads? —no-warmup defers everything to first use. A failed component download never fails setup — init reports what’s not ready with the exact fix and still wires your agent. That’s the whole setup — search, fetch, crawl, extract, cache, and find-similar work with no API key. Check it’s healthy anytime: npx wigolo doctor 喜欢交互式提示?—interactive 提供纯文本流程;—wizard 提供完整的终端 TUI。想跳过下载?—no-warmup 将所有操作推迟到首次使用时。组件下载失败不会导致设置中断——init 会报告未就绪的内容及确切的修复方法,并依然会接入你的智能体。这就是全部设置——搜索、抓取、爬取、提取、缓存和相似度查找无需 API 密钥即可工作。随时检查健康状态:npx wigolo doctor。

Not for you? npx wigolo config —uninstall —yes removes everything, cleanly. You can also paste the installation guide at any AI assistant and let it do the setup — it’s written to be self-contained. 不适合你?npx wigolo config —uninstall —yes 可以彻底、干净地移除所有内容。你也可以将安装指南粘贴给任何 AI 助手,让它帮你完成设置——指南内容是自包含的。

Recommended — a free key makes research & agent shine. Search, fetch, crawl, extract, cache, and find-similar are fully keyless. But research, agent, and search format=answer use an LLM to write the synthesized, cited answer — without one they hand back a raw brief and evidence for your agent to assemble, which is a much thinner experience. A free Gemini key is all it takes, and it’s the single biggest quality upgrade you can make: 推荐做法——使用免费密钥可让研究和智能体功能大放异彩。搜索、抓取、爬取、提取、缓存和相似度查找完全无需密钥。但研究、智能体以及 search format=answer 功能会使用 LLM 来撰写经过综合和引用的答案——如果没有 LLM,它们只会返回原始摘要和证据供智能体自行组装,体验会大打折扣。只需一个免费的 Gemini 密钥,这是你能做的最大质量提升:

export WIGOLO_LLM_PROVIDER=gemini export GEMINI_API_KEY= # grab one at aistudio.google.com/apikey — the free tier is plenty. Any provider works (anthropic · openai · groq), or stay fully local and keyless with WIGOLO_LLM_PROVIDER=ollama (or any OpenAI-compatible URL). Set it in your shell or your agent’s MCP env block. Providers, models, and the keyless local-model ladder: configuration guide. export WIGOLO_LLM_PROVIDER=gemini export GEMINI_API_KEY= # 在 aistudio.google.com/apikey 获取一个——免费层级完全够用。任何提供商(Anthropic、OpenAI、Groq)均可使用,或者通过 WIGOLO_LLM_PROVIDER=ollama(或任何兼容 OpenAI 的 URL)保持完全本地化且无需密钥。在你的 shell 或智能体的 MCP 环境变量块中设置即可。提供商、模型以及无密钥本地模型梯队:请参考配置指南。

What your agent gets back Not snippets — evidence. Every search result carries a verbatim excerpt pinned to its exact position in the source, a citation ID the agent can quote, and a score it can inspect (abridged real shape): 智能体获得的是什么?不是片段,而是证据。每个搜索结果都包含一段精确对应源位置的逐字摘录、智能体可以引用的引用 ID,以及智能体可以检查的评分(以下为简化后的实际格式):

{ “results”: [{ “title”: “Logical replication - PostgreSQL docs”, “url”: “https://www.postgresql.org/docs/current/logical-replication.html”, “excerpt”: “Logical replication is a method of replicating data objects…”, “citation_id”: “src-1”, “source_span”: { “start”: 1042, “end”: 1305 }, // byte-exact provenance “evidence_score”: { “final”: 0.86, “semantic”: 0.91, “lexical”: 0.78, “engine_consensus”: 3 } }], “citations”: [{ “id”: “src-1”, “url”: ”…” }], “freshness_signal”: { “published”: “2026-05-12”, “confidence”: “high” } } (JSON 数据结构略)

Weak results get flagged as junk by wigolo’s own scorer, failed engines are reported, stale cache is labeled — the agent always knows what it’s standing on. Full response contracts per tool: tools reference. 较差的结果会被 wigolo 自带的评分器标记为垃圾信息,失败的引擎会被报告,过期的缓存会被标注——智能体始终清楚其所依赖数据的质量。各工具的完整响应契约:请参考工具手册。

Tools 工具

Tool | What it does 工具 | 功能描述 🔎 search | Multi-engine web search (18 direct adapters) with rank fusion, ML reranking, and an explainable per-result score. Pass a query array for parallel breadth. 🔎 search | 多引擎网络搜索(18 个直接适配器),支持排名融合、机器学习重排序以及可解释的单结果评分。传入查询数组可进行并行广度搜索。 📄 fetch | Load one URL through a tiered router that auto-escalates from plain HTTP to a headless browser engine on anti-bot challenges or SPA shells. Clean markdown + metadata + links. 📄 fetch | 通过分层路由器加载 URL,在遇到反爬虫挑战或 SPA 页面时自动从普通 HTTP 升级到无头浏览器引擎。输出整洁的 Markdown + 元数据 + 链接。 🕸️ crawl | Multi-page crawl — BFS, DFS, sitemap, or map-only. Per-domain rate limits, robots.txt respect, boilerplate dedup. 🕸️ crawl | 多页面爬取——支持 BFS、DFS、站点地图或仅映射模式。支持按域名限速、遵循 robots.txt、样板内容去重。 🧩 extract | Structured data from a page: tables, metadata, JSON-LD, brand identity, named schemas (Article / Recipe / Product / …), or any custom JSON Schema. 🧩 extract | 从页面提取结构化数据:表格、元数据、JSON-LD、品牌标识、命名模式(文章/食谱/产品等)或任何自定义 JSON Schema。 💾 cache | Query everything already seen — keyword or hybrid semantic. Plus stats, clear, and change detection. 💾 cache | 查询所有已访问过的内容——支持关键词或混合语义搜索。此外还提供统计、清除和变更检测功能。 🧲 find_similar | Pages similar to a URL or a concept, via 3-way fusion of keyword + semantic + live web. 🧲 find_similar | 通过关键词 + 语义 + 实时网络的三重融合,查找与 URL 或概念相似的页面。 🧠 research | Decompose a question → fan out sub-queries → fetch sources → synthesize a cited report (or a structured brief the host LLM writes from). 🧠 research | 分解问题 → 发散子查询 → 获取来源 → 合成带引用的报告(或供宿主 LLM 编写的结构化摘要)。 🤖 agent | Autonomous gather loop: plan → search → fetch → extract → synthesize, with a step log, time budget, and optional output schema. 🤖 agent | 自主收集循环:计划 → 搜索 → 获取 → 提取 → 合成,包含步骤日志、时间预算和可选的输出模式。 🔁 diff + ⏱️ watch | See exactly what changed on a page since last visit; re-check on demand and deliver changes to a webhook. 🔁 diff + ⏱️ watch | 精确查看页面自上次访问以来的变化;按需重新检查并将变更推送到 Webhook。

Every tool also runs from the terminal (wigolo search ”…” —json), from an interactive shell with NDJSON piping (wigolo shell), over REST, and through the SDKs — CLI reference. 每个工具也可以通过终端(wigolo search ”…” —json)、带有 NDJSON 管道的交互式 shell(wigolo shell)、REST 接口以及 SDK 运行——请参考 CLI 手册。

What that actually lets you do Each tool goes well past its one-liner. A sampler — every line links to the guide and, where there’s one, a runnable example: Search that fans out — pass a query array for parallel breadth, scope to include_domains, bound by time_range/recency, exact-phrase match, choose a depth tier, even image results. → guide · example Fetch almost anything — JS-rendered SPAs, 这实际上能让你做什么?每个工具的功能都远不止其单行描述。举例说明——每一行都链接到指南,并在有示例时提供可运行的代码:发散式搜索——传入查询数组进行并行广度搜索,限定 include_domains,绑定时间范围/时效性,精确短语匹配,选择深度层级,甚至获取图片结果。→ 指南 · 示例;抓取几乎任何内容——JS 渲染的 SPA,