Install
openclaw skills install web-search-plusUnified multi-provider web search and URL extraction skill with intelligent auto-routing across Serper, Brave, Tavily, Querit, Linkup, Exa, Firecrawl, Perplexity, You.com, and SearXNG.
openclaw skills install web-search-plusStop choosing search providers. Let the skill do it for you.
This skill now connects you to 10 search providers and adds a companion extraction flow for pulling content from URLs. Broad web query? → Brave or Serper. Research question? → Tavily or Exa. Need citations and grounding? → Linkup. Want scrape-ready content? → Firecrawl. Prefer privacy? → SearXNG.
# Interactive setup (recommended for first run)
python3 scripts/setup.py
# Or manually
cp .env.example .env
python3 scripts/search.py -q "latest OpenClaw release"
python3 scripts/extract.py --url https://example.com
The wizard explains providers, collects keys, and sets defaults.
deep + deep-reasoningPERPLEXITY_API_KEY or KILOCODE_API_KEYscripts/extract.py auto-falls back across:
Default priority:
tavily → linkup → querit → exa → firecrawl → perplexity → brave → serper → you → searxng
Examples:
python3 scripts/search.py -q "weather in Vienna today"
# generic current-web intent → Brave or Serper
python3 scripts/search.py -q "find credible sources for AI tutoring outcomes"
# citation/evidence intent → Linkup
python3 scripts/search.py -q "latest AI policy updates in Germany"
# multilingual + recency → Querit or Tavily
python3 scripts/search.py -p exa --exa-depth deep -q "LLM scaling laws research"
python3 scripts/search.py -p firecrawl -q "YC startups web scraping"
Debug routing:
python3 scripts/search.py --explain-routing -q "your query"
python3 scripts/extract.py --url https://example.com
python3 scripts/extract.py --url https://docs.linkup.so --provider linkup
python3 scripts/extract.py --url https://example.com --url https://example.org --include-images
python3 scripts/extract.py --url https://example.com --format html --include-raw-html
.env.example documents supported env varsconfig.example.json includes provider priority and provider-specific defaultsconfig.json is your local runtime configSearXNG SSRF protection:
http / https onlySEARXNG_ALLOW_PRIVATE=1python3 -m unittest discover -s tests -p 'test_*.py'
python3 scripts/search.py --explain-routing -q "find credible sources for climate change impacts"
python3 scripts/extract.py --url https://example.com --provider auto --compact