You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 194fd44
Browse filesBrowse the repository at this point in the historyBrowse files
**Free open-source Tavily alternative** — keyless web search + content extraction for AI agents, RAG, LangChain, and LLM tools.
3
+
**Free open-source Tavily alternative** — keyless web search + content extraction for AI agents, RAG, LangChain, MCP, and LLM tools.
4
4
5
5
Self-host a local **web search API for AI** with **no API key**, **no quota**, and **no per-query bill**. Drop-in style JSON similar to [Tavily](https://tavily.com), without paying for [Serper](https://serper.dev), [Exa](https://exa.ai), [Linkup](https://www.linkup.so), [Brave Search API](https://brave.com/search/api/), [SerpAPI](https://serpapi.com), or [Firecrawl](https://www.firecrawl.dev) search credits.
6
6
@@ -11,34 +11,43 @@ No accounts. No telemetry. Outbound HTTPS only to public search engines and page
11
11
```mermaid
12
12
flowchart TB
13
13
subgraph clients [Your stack]
14
+
UI[Embedded UI]
14
15
CLI[CLI]
15
16
CPP[C++ library]
16
17
PY[Python]
17
18
HTTP[Local HTTP]
19
+
MCP[MCP]
20
+
LC[LangChain]
18
21
end
19
22
20
23
subgraph core [wsf_core]
21
-
Search[search]
22
-
Extract[extract]
24
+
Search[search plus status]
25
+
Extract[multi extract]
23
26
Rank[merge and rank]
24
27
end
25
28
26
29
subgraph engines [Keyless engines]
27
30
DDG[DuckDuckGo]
28
31
Brave[Brave]
29
32
Wiki[Wikipedia]
33
+
Searx[SearXNG optional]
30
34
end
31
35
36
+
UI --> Search
32
37
CLI --> Search
33
38
CPP --> Search
34
39
PY --> Search
35
40
HTTP --> Search
41
+
MCP --> HTTP
42
+
LC --> HTTP
36
43
Search --> DDG
37
44
Search --> Brave
38
45
Search --> Wiki
46
+
Search --> Searx
39
47
DDG --> Rank
40
48
Brave --> Rank
41
49
Wiki --> Rank
50
+
Searx --> Rank
42
51
Rank --> Extract
43
52
Extract --> Out[JSON for RAG or agents]
44
53
```
@@ -53,34 +62,33 @@ flowchart TB
53
62
| API key / monthly credits | Required |**None**|
54
63
| Data leaves your machine for the vendor | Usually yes |**No vendor cloud** — you run the binary |
55
64
56
-
```mermaid
57
-
flowchart LR
58
-
subgraph paid [Paid APIs]
59
-
Tavily[Tavily Linkup Exa Serper]
60
-
Key[API key plus quota plus bill]
61
-
Tavily --> Key
62
-
end
65
+
## Features (v0.2)
63
66
64
-
subgraph free [WebSearchFree]
65
-
WSF[Self-run binary]
66
-
None[No key no quota no bill]
67
-
WSF --> None
68
-
end
69
-
70
-
Agent[AI agent or RAG] --> paid
71
-
Agent --> free
72
-
```
67
+
-**Metasearch** across DuckDuckGo HTML, Brave Search HTML, Wikipedia, and optional SearXNG
68
+
-**Honest status**: per-engine `ok` / `error`, `warnings`, real `response_time`
69
+
-**Multi-URL extract** with structured per-URL status (`ok`, `robots_denied`, `fetch_failed`, `empty`)
70
+
-**Embedded UI** + **OpenAPI** + CORS on `wsf serve`
71
+
-**MCP server** and **LangChain tools** under `integrations/`
72
+
-**Docker Compose** one-liner
73
+
-**C++20 library** + **CLI** + **Python** helper
74
+
- MIT licensed
73
75
74
-
##Features
76
+
### Non-goals (honest)
75
77
76
-
-**Metasearch** across DuckDuckGo HTML, Brave Search HTML, and Wikipedia (soft-fail fan-out)
77
-
-**Content extraction** for LLM-ready page text (`include_raw_content` / `extract`)
Engines-->>WSF: titles, urls, snippets plus status
162
213
WSF->>WSF: dedupe and score
163
214
opt include_raw_content
164
215
WSF->>Pages: fetch top URLs
165
216
Pages-->>WSF: HTML
166
217
WSF->>WSF: extract main text
167
218
end
168
-
WSF-->>App: JSON results
219
+
WSF-->>App: JSON results plus warnings
169
220
```
170
221
171
-
This is **metasearch**, not a sovereign web index like a hosted EU search vendor. Result quality and availability depend on upstream engines (rate limits, HTML changes). For personal and small-team RAG this is usually enough; it is not a hosted SaaS SLA.
222
+
This is **metasearch**, not a sovereign web index. For personal and small-team RAG this is usually enough; it is not a hosted SaaS SLA.
172
223
173
-
Related open-source ideas: [SearXNG](https://github.com/searxng/searxng) (full metasearch UI/API you self-host with Docker). WebSearchFree aims to be a **single embeddable binary / library** with Tavily-like agent JSON and **zero keys**.
224
+
Related: [SearXNG](https://github.com/searxng/searxng). Point WebSearchFree at your instance with `WSF_SEARX_URL` or `--searx-url` and include `searx` in `--engines`.
174
225
175
226
## Engines
176
227
177
-
```mermaid
178
-
flowchart LR
179
-
Q[Query] --> Fan[Parallel fan-out]
180
-
Fan --> DDG[ddg]
181
-
Fan --> Brave[brave]
182
-
Fan --> Wiki[wikipedia]
183
-
DDG --> Merge[Merge by URL]
184
-
Brave --> Merge
185
-
Wiki --> Merge
186
-
Merge --> Score[Rank by overlap plus position]
187
-
Score --> Results[Top N results]
188
-
```
189
-
190
228
| Name | Source | Key |
191
229
|------|--------|-----|
192
230
|`ddg`| DuckDuckGo HTML | none |
193
231
|`brave`| Brave Search HTML | none |
194
232
|`wikipedia`| MediaWiki opensearch | none |
233
+
|`searx`| Your SearXNG (`format=json`) | none (needs URL) |
Need[Need live web for an agent?] --> Choice{How do you integrate?}
246
+
Choice -->|Browser| UI[wsf serve UI]
205
247
Choice -->|Shell or scripts| CLI[wsf search]
206
248
Choice -->|C++ project| Lib[link wsf_core]
207
249
Choice -->|Python| Py[import wsf]
208
-
Choice -->|LangChain or HTTP tools| Srv[wsf serve localhost]
209
-
CLI --> Same[Same ranked JSON]
210
-
Lib --> Same
211
-
Py --> Same
212
-
Srv --> Same
250
+
Choice -->|LangChain| LC[integrations/langchain]
251
+
Choice -->|Cursor or Claude| MCP[integrations/mcp]
252
+
Choice -->|Any HTTP tool| Srv[localhost API]
213
253
```
214
254
215
-
## FAQ (for humans, Google, and LLMs)
255
+
## FAQ
216
256
217
257
**Is WebSearchFree a free Tavily alternative?**
218
-
Yes. It provides AI-oriented web search results and optional page extraction without an API key or cloud account.
258
+
Yes for search + extract without keys. It does not generate AI answers or images.
219
259
220
260
**Do I need Serper, SerpAPI, Bing, or Google Programmable Search?**
221
-
No. Engines are queried through public, keyless endpoints. You run everything locally.
222
-
223
-
**Can I use it instead of Linkup, Exa, or Brave Search API for prototypes?**
224
-
For many RAG/agent prototypes, yes — especially when cost and keys are the blocker. Hosted APIs still win on SLA, compliance contracts, and scale.
261
+
No for the built-in engines. Optional SearXNG is also keyless if you self-host it.
225
262
226
263
**Is it the same as SearXNG?**
227
-
Same family (metasearch), different packaging: WebSearchFree is a C++ library/CLI with Tavily-shaped JSON for agents, not a full web UI metasearch site.
264
+
Same family (metasearch), different packaging: WebSearchFree is an embeddable agent-oriented binary with Tavily-shaped JSON. You can also use SearXNG as a backend engine.
tests/ Fixture-based unit tests (no live network in CI)
240
-
examples/ Usage snippets
272
+
include/wsf/ Public C++ API
273
+
src/ Core: HTTP, engines, extract, rank
274
+
apps/wsf_cli/ CLI + HTTP server + embedded UI
275
+
bindings/python/ pybind11 module + CLI wrapper
276
+
integrations/mcp/ Stdio MCP server
277
+
integrations/langchain/ LangChain tools
278
+
tests/ Fixture-based unit tests (no live network in CI)
279
+
examples/ Usage snippets
280
+
Dockerfile Production image
241
281
```
242
282
243
283
## Keywords
244
284
245
-
`free tavily alternative` · `open source web search api for ai` · `self hosted rag search` · `keyless serp for llm` · `langchain web search free` · `tavily open source` · `serper alternative free` · `exa alternative self host` · `ai agent web search no api key`
285
+
`free tavily alternative` · `open source web search api for ai` · `self hosted rag search` · `keyless serp for llm` · `langchain web search free` · `mcp web search` · `tavily open source` · `serper alternative free` · `exa alternative self host` · `ai agent web search no api key`
0 commit comments