Search
Query web and academic engines and get one normalised result shape.
webfold search <query> [--count n] [--backend ddg|bing|ecosia|auto]
webfold search <query> --consensus [--profile web|tech|academic|all | --engines a,b,c]
webfold serp <engine> <html-file> [base-url]
Single engine
The default is DuckDuckGo’s HTML endpoint. Choose another with --backend. serp normalises a SERP page you already saved, which is useful for tests and offline work.
Consensus across engines
--consensus queries several engines and merges their results. Pick the set with a profile or list engines explicitly. Unknown names are an error, never silently another engine.
| Profile | Engines |
|---|---|
web (default) |
duckduckgo, bing, ecosia, wikipedia |
tech |
duckduckgo, bing, hn, wikipedia |
academic |
arxiv, openalex, crossref, wikipedia |
all |
duckduckgo, bing, ecosia, wikipedia, hn, arxiv, openalex, crossref |
webfold search "attention is all you need" --consensus --profile academic
webfold search "sea level rise" --consensus --engines arxiv,openalex --count 20
The API-backed engines (wikipedia, openalex, arxiv, hn, crossref) call the engine’s public API and parse the response. The HTML engines (duckduckgo, bing, ecosia) parse the results page. A soft-blocked answer is retried.
Datasets
webfold dataset-url "sea level rise" # prints a Google Dataset Search URL to open yourself
webfold dataset-extract saved-page.html --url https://example.org/d/1 # schema.org Dataset records as JSON lines
dataset-url only prints a URL for a person to open. It makes no request and uses no API.