Websearch

Research
Multi EngineGoogleWeb Search

Multi-engine web search across 6 engines: DuckDuckGo, DDG Lite, Yahoo, Yahoo JP, Startpage, and Google (headless Chromium). No API keys required. Returns 10+ results per engine, ranked by cross-engine frequency.

Install

openclaw skills install @nirveshdagar/multi-engine-websearch

WebSearch — Multi-Engine Search Aggregator

🔗 GitHub: https://github.com/nirveshdagar/multi-engine-websearch

📦 Git Install:

git clone https://github.com/nirveshdagar/multi-engine-websearch.git

📦 ClawHub Install:

npx clawhub@latest install multi-engine-websearch

A free, local web search skill that queries 6 reliable search engines simultaneously (in parallel), merges results, deduplicates URLs, and ranks by cross-engine frequency.

No API keys required. No paid subscriptions. Runs entirely on your machine.

Requirements

  • Python 3.9+
  • Playwright (pip3 install playwright && python3 -m playwright install chromium)

Playwright is needed for the Google engine (headless Chromium renders JS-based results). All other engines use lightweight HTTP scraping with zero dependencies.

When to Use

Use this skill whenever the user asks you to:

  • Search the web for anything
  • Find recent news, articles, or information
  • Look up a topic, person, product, or event
  • Verify a fact with current web results
  • Research a topic with multiple sources

Command

python3 ~/.openclaw/workspace/skills/websearch/scripts/search.py "your query" --json

Options

FlagDefaultDescription
--json / -joffOutput as JSON
--num / -n10Results per engine
--max / -m50Max total results
--engines / -eall 6Comma-separated engine list
--list-enginesShow available engines

Engines

EngineMethodReliability
DuckDuckGoHTML scrape⭐⭐⭐⭐⭐
DDG LiteHTML scrape⭐⭐⭐⭐
YahooHTML scrape⭐⭐⭐⭐
Yahoo JPHTML scrape⭐⭐⭐⭐
StartpageHTML scrape⭐⭐⭐⭐
GoogleHeadless Chromium⭐⭐⭐⭐

All engines run in parallel using ThreadPoolExecutor for maximum speed.

Output Format

{
  "query": "your search",
  "total": 35,
  "engines": {"duckduckgo": 10, "google": 8, "yahoo": 10, ...},
  "results": [
    {
      "title": "Result Title",
      "url": "https://example.com",
      "snippet": "Description...",
      "engines": ["duckduckgo", "google", "yahoo"]
    }
  ]
}

Results appearing in more engines are ranked higher (cross-engine consensus).

Core Rules

  1. Always use --json flag when parsing results programmatically
  2. Summarize top results in natural language for the user
  3. Always cite sources with URLs
  4. If one engine fails, others compensate — the system is resilient
  5. Google engine is slower (~5s) due to headless browser; other engines are fast (~1-2s)