Web Search Pro
by @zjianru
Agent-first web search and retrieval for live web search, news search, docs lookup, code lookup, company research, site crawl, site map, and structured evide...
clawhub install web-search-proπ About This Skill
name: web-search-pro description: | Agent-first web search and retrieval for live web search, news search, docs lookup, code lookup, company research, site crawl, site map, and structured evidence packs. Includes a no-key baseline plus optional Tavily, Exa, Querit, Serper, Brave, SerpAPI, You.com, SearXNG, and Perplexity / Sonar providers for wider coverage and answer-first routing. homepage: https://github.com/Zjianru/web-search-pro metadata: {"openclaw":{"emoji":"π","requires":{"bins":["node"],"config":["config.json"],"env":{"TAVILY_API_KEY":"optional β premium deep search, news, and extract","EXA_API_KEY":"optional β semantic search and extract fallback","QUERIT_API_KEY":"optional β multilingual AI search with native geo and language filters","SERPER_API_KEY":"optional β Google-like search and news","BRAVE_API_KEY":"optional β structured web search aligned with existing OpenClaw setups","SERPAPI_API_KEY":"optional β multi-engine search including Baidu","YOU_API_KEY":"optional β LLM-ready web search with freshness and locale support","PERPLEXITY_API_KEY":"optional β native Perplexity Sonar access","OPENROUTER_API_KEY":"optional β gateway access to Perplexity/Sonar via OpenRouter","KILOCODE_API_KEY":"optional β gateway access to Perplexity/Sonar via Kilo","PERPLEXITY_GATEWAY_API_KEY":"optional β custom gateway key for Perplexity/Sonar models","PERPLEXITY_BASE_URL":"optional β required with PERPLEXITY_GATEWAY_API_KEY","SEARXNG_INSTANCE_URL":"optional β self-hosted privacy-first metasearch endpoint"},"note":"No API key is required for the baseline. Optional provider credentials or endpoints widen retrieval coverage."}},"clawdbot":{"emoji":"π","requires":{"bins":["node"],"config":["config.json"],"note":"No API key is required for the baseline. Optional provider credentials or endpoints widen retrieval coverage."},"install":[{"kind":"node","label":"Bundled Node skill runtime","bins":["node"]}],"config":{"stateDirs":[".cache/web-search-pro"],"example":"{\n env = {\n WEB_SEARCH_PRO_CONFIG = \"./config.json\";\n };\n}"},"cliHelp":"node {baseDir}/scripts/search.mjs --help"}}
Web Search Pro 2.1 Core Profile
This ClawHub package publishes the core retrieval profile of web-search-pro.
It is a code-backed Node runtime package, not an instruction-only bundle.
Use This Skill When
Quick Start
The shortest successful path is:
Option A: No-key baseline
No API key is required for the first successful run.
node {baseDir}/scripts/doctor.mjs --json
node {baseDir}/scripts/bootstrap.mjs --json
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --json
Option B: Add one premium provider
If you only add one premium provider, start with TAVILY_API_KEY.
export TAVILY_API_KEY=tvly-xxxxx
node {baseDir}/scripts/doctor.mjs --json
node {baseDir}/scripts/search.mjs "latest OpenAI news" --type news --json
First successful searches
node {baseDir}/scripts/search.mjs "OpenClaw web search" --json
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --preset docs --plan --json
node {baseDir}/scripts/extract.mjs "https://platform.openai.com/docs" --json
Then try docs, news, and research
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --preset docs --json
node {baseDir}/scripts/search.mjs "latest OpenAI news" --type news --json
node {baseDir}/scripts/research.mjs "OpenClaw search skill landscape" --plan --json
Install Model
ClawHub installs this bundle directly as a code-backed Node skill pack.
nodeconfig.json.cache/web-search-proWhy Federated Search Matters
Federation is not just "more providers". It exposes compact gain metrics:
federated.value.additionalProvidersUsedfederated.value.resultsRecoveredByFanoutfederated.value.resultsCorroboratedByFanoutfederated.value.duplicateSavingsroutingSummary.federation.valueRuntime Contract
selectedProviderroutingSummaryrouting.diagnostics--explain-routing or --plan.
federated.providersUsedfederated.valuecached / cachetopicType, topicSignals, researchAxesCommands By Task
Included commands:
search.mjsextract.mjscrawl.mjsmap.mjsresearch.mjsdoctor.mjsbootstrap.mjscapabilities.mjsreview.mjscache.mjshealth.mjsRuntime notes:
curl when available and fall back to built-in fetch.Baseline:
ddg is best-effort no-key search.fetch is the no-key extract / crawl / map fallback.Optional provider credentials or endpoints unlock stronger coverage:
TAVILY_API_KEY=tvly-xxxxx
EXA_API_KEY=exa-xxxxx
QUERIT_API_KEY=xxxxx
SERPER_API_KEY=xxxxx
BRAVE_API_KEY=xxxxx
SERPAPI_API_KEY=xxxxx
YOU_API_KEY=xxxxx
SEARXNG_INSTANCE_URL=https://searx.example.comPerplexity / Sonar: choose one transport path
PERPLEXITY_API_KEY=xxxxx
OPENROUTER_API_KEY=xxxxx
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 # optional override
KILOCODE_API_KEY=xxxxxOr use a custom OpenAI-compatible gateway
PERPLEXITY_GATEWAY_API_KEY=xxxxx
PERPLEXITY_BASE_URL=https://gateway.example.com/v1
PERPLEXITY_MODEL=perplexity/sonar-pro # accepts sonar* or perplexity/sonar*
Review and diagnostics:
node {baseDir}/scripts/capabilities.mjs --json
node {baseDir}/scripts/doctor.mjs --json
node {baseDir}/scripts/bootstrap.mjs --json
node {baseDir}/scripts/review.mjs --json
Search keywords:
web search, news search, latest updates, current events, docs search,
API docs, code search, company research, competitor analysis, site crawl,
site map, multilingual search, Baidu search, answer-first search,
cited answers, explainable routing, no-key baseline
π‘ Examples
The shortest successful path is:
Option A: No-key baseline
No API key is required for the first successful run.
node {baseDir}/scripts/doctor.mjs --json
node {baseDir}/scripts/bootstrap.mjs --json
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --json
Option B: Add one premium provider
If you only add one premium provider, start with TAVILY_API_KEY.
export TAVILY_API_KEY=tvly-xxxxx
node {baseDir}/scripts/doctor.mjs --json
node {baseDir}/scripts/search.mjs "latest OpenAI news" --type news --json
First successful searches
node {baseDir}/scripts/search.mjs "OpenClaw web search" --json
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --preset docs --plan --json
node {baseDir}/scripts/extract.mjs "https://platform.openai.com/docs" --json
Then try docs, news, and research
node {baseDir}/scripts/search.mjs "OpenAI Responses API docs" --preset docs --json
node {baseDir}/scripts/search.mjs "latest OpenAI news" --type news --json
node {baseDir}/scripts/research.mjs "OpenClaw search skill landscape" --plan --json