Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Quota-aware multi-provider web search for OpenClaw. Includes automatic failover, task-level deep search (@dual/@deep), real quota checks, and managed result...
Quota-aware multi-provider web search for OpenClaw. Includes automatic failover, task-level deep search (@dual/@deep), real quota checks, and managed result...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Reliable, provider-diverse web search for OpenClaw with high uptime + low operator overhead.
12 search providers, 6 requiring no API key at all Automatic failover: if one provider fails, the next is tried instantly Quota-aware: tracks daily usage, warns at 80%, skips exhausted providers Task search mode for multi-angle research queries Built-in storage lifecycle (cache / index / report), no workspace clutter Self-healing: health-based smart routing automatically promotes reliable providers Quality optimization: relevance scoring, fuzzy dedup, domain diversity, re-ranking Auto-discovery: probes candidate search engines and SearXNG instances for new sources Self-diagnostic: doctor and setup commands for zero-friction onboarding
ProviderKey RequiredFree QuotaIndex SourceNotesbraveBRAVE_API_KEY2000/dayBrave independentHigh quality, privacy-friendlyexaEXA_API_KEY~33/day (1k/mo)Neural + webSemantic search, unique findstavilyTAVILY_API_KEY1000/dayWeb (AI-optimized)Designed for AI agentsduckduckgoNone~500/dayBing + ownNo key, privacy-focusedbing_htmlNone~300/dayMicrosoft Bing RSSNo key, stable XML feedmojeekNone (or MOJEEK_API_KEY)200/dayMojeek independentNon-Google/Bing indexserperSERPER_API_KEY2500/dayGoogleHigh quota free tiersearchapiSEARCHAPI_API_KEY100/moGoogle / BingMulti-enginegoogle_cseGOOGLE_API_KEY + GOOGLE_CX100/dayGoogleOfficial Google APIbaiduBAIDU_API_KEY200/dayBaiduBest for Chinese contentwikipediaNone1000/dayWikipediaFactual/encyclopedic queriessearxngNoneunlimited (self-hosted)Meta (all engines)Requires own instance Total daily quota (all keys configured): 8400+ requests/day
No mandatory API key โ DuckDuckGo + Bing RSS + Mojeek + Wikipedia work out of the box. API-key providers fail gracefully if key is missing (AuthError โ skip, no quota consumed, no latency): BRAVE_API_KEY EXA_API_KEY TAVILY_API_KEY SERPER_API_KEY SEARCHAPI_API_KEY GOOGLE_API_KEY + GOOGLE_CX BAIDU_API_KEY MOJEEK_API_KEY (optional โ without it uses HTML scraping)
Default provider order: brave โ exa โ tavily โ duckduckgo โ bing_html โ mojeek โ serper โ searchapi โ google_cse โ baidu โ wikipedia First successful non-empty result returns immediately.
Expands one goal into multiple targeted queries Aggregates + deduplicates results Prefix presets: default: workers=1 @dual ... โ workers=2 @deep ... โ workers=3 + deeper query coverage
Per-provider daily tracking Real quota retrieval where supported (Tavily, SearchAPI, Brave via probe) Auto concurrency reduction at 80% quota saturation
Tracks success rate, latency, and error types per provider over time Computes health scores (success 50%, latency 30%, freshness 20%) Smart ordering: auto-promotes healthy providers, demotes degraded ones View dashboard: python -m free_search health
Relevance scoring (query-title-snippet token overlap) Enhanced dedup: URL + title similarity (Jaccard threshold) Domain diversity: limits same-domain results (default max 3) Automatic filtering of low-quality results (short titles, missing URLs)
Probes all configured providers for availability Scans candidate search engines (Marginalia, Wiby, public SearXNG instances) Validates response format, latency, and result quality Generates recommendations for new sources to integrate Run: python -m free_search discover
memory/search-cache/YYYY-MM-DD/*.json memory/search-index/search-index.jsonl memory/search-reports/YYYY-MM-DD/*.md
# Normal search scripts/search "latest AI agent frameworks 2026" --max-results 5 # Task search (multi-query, parallel) scripts/search task "@dual Compare Claude vs GPT-4 for code generation" --max-results 5 # Deep research mode scripts/search task "@deep autonomous vehicle safety 2026" --max-results 8 --max-queries 10 # Quota status scripts/status # Real quota from provider APIs scripts/remaining --real # Cleanup cache python3 -m free_search gc --cache-days 14 # Provider health dashboard python3 -m free_search health # Discover new search sources python3 -m free_search discover # System diagnostics python3 -m free_search doctor # Setup status & recommendations python3 -m free_search setup
Uses Bing's built-in RSS endpoint (format=rss) โ bypasses bot detection. Works out of the box.
Out-of-the-box HTML scraping. For higher quotas/stability: Register at https://www.mojeek.com/services/search/api/ Set MOJEEK_API_KEY โ automatically switches to JSON API mode
Multilingual support โ change lang in providers.yaml: wikipedia: lang: it # en | zh | it | de | fr | ja ...
Register at https://exa.ai/ Set EXA_API_KEY Free tier: 1000 searches/month (~33/day)
Get API key: https://developers.google.com/custom-search/v1/introduction Create search engine: https://programmablesearchengine.google.com/ Set GOOGLE_API_KEY and GOOGLE_CX Free tier: 100 queries/day
Register at https://cloud.baidu.com/ Set BAIDU_API_KEY Best for Chinese-language content
Public instances rate-limit server-to-server requests. Use your own: docker run -d -p 8080:8080 searxng/searxng Then in providers.yaml: searxng: endpoint: http://localhost:8080 enabled: true
# 1) Confirm provider load scripts/status --compact # 2) Smoke test (uses duckduckgo/bing/mojeek out of the box) scripts/search "openclaw" --max-results 3 --compact # 3) Verify storage paths ls -la /home/openclaw/.openclaw/workspace/memory/search-cache/ | tail -n 5 # 4) Check real quota (optional) scripts/remaining --real --compact
Search: query, provider, results[], meta.attempted, meta.quota Task search: task, queries[], grouped_results[], merged_results[], meta Quota: date, providers[], totals; with --real: real_quota.providers[]
Default mode: workers=1 โ conservative for cost control Use @dual / @deep only for research tasks SearXNG and YaCy are enabled: false by default (self-hosted only) MOJEEK_API_KEY is optional โ provider gracefully falls back to HTML scraping Provider health data stored in memory/provider-health/health.jsonl Discovery results stored in memory/provider-discovery/discovery.jsonl Run python -m free_search doctor after setup to verify everything works Run python -m free_search discover periodically to find new search sources
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.