Install
openclaw skills install searxng-liteMulti-engine web search aggregation via local Python script. Use when: (1) searching the web for information, articles, documentation, (2) searching code repos on GitHub/GitLab, (3) finding academic papers on arXiv/Semantic Scholar/Crossref, (4) searching Hacker News or Reddit discussions, (5) looking up HuggingFace models, (6) searching StackOverflow for programming answers, (7) fetching news from Bing News or Reuters, (8) any task requiring web search beyond the built-in web_search tool — especially when multiple sources or specific engines are needed. NOT for: single quick lookups (use web_search), image generation, or real-time streaming data.
openclaw skills install searxng-liteLightweight multi-engine aggregated web search. No Docker, no server, no SearXNG instance required — just a single Python script that queries search engines directly.
26 engines across 9 categories, concurrent execution, JSON + compact text output.
Unlike other SearXNG skills that need a running SearXNG server, this skill:
config.yml to toggle categories, changes apply instantlyhttpx — HTTP client (pip3 install httpx)lxml — HTML parser (pip3 install lxml, pre-installed on macOS)socksio — for SOCKS proxy support (pip3 install socksio)pyyaml — for config parsing (pip3 install pyyaml; falls back to built-in parser)# Install dependencies
pip3 install httpx lxml
# Search
python3 scripts/search.py "your query"
# List all engines
python3 scripts/search.py --list
python3 scripts/search.py "query" # default (general + knowledge engines)
python3 scripts/search.py "query" -c dev # by category
python3 scripts/search.py "query" -c dev,academic # multiple categories
python3 scripts/search.py "query" -e github,arxiv # specific engines
python3 scripts/search.py "query" --all # all enabled engines
python3 scripts/search.py "query" -l zh-CN # Chinese results
python3 scripts/search.py "query" -n 5 # limit results
python3 scripts/search.py "query" --compact # title + url + snippet text output
python3 scripts/search.py --list # show all engines & categories
All paths are relative to this skill's directory.
| Arg | Short | Default | Description |
|---|---|---|---|
query | required | Search query | |
--engines | -e | Comma-separated engine names | |
--categories | -c | Comma-separated categories | |
--max-results | -n | 10 | Max results |
--lang | -l | en | Language code (e.g. en, zh-CN, de) |
--page | -p | 1 | Page number |
--proxy | from config | Proxy URL (overrides config/env) | |
--timeout | 12 | Timeout in seconds | |
--all | Use all enabled engines | ||
--compact | Human-readable text output | ||
--list | List engines and exit | ||
--debug | Enable debug logging |
Without -e or -c, searches general + knowledge categories.
Edit config.yml in the skill directory to customize behavior:
# Proxy for engines that need it (Google, YouTube, Reddit, etc.)
# Supports: http, https, socks5, socks5h
# Leave empty to disable — proxy-required engines will fail silently.
proxy: "socks5h://127.0.0.1:1080"
# Category toggles
categories:
general: true # bing, brave, duckduckgo, google🌐, startpage, yahoo
knowledge: true # wikipedia, wikidata, wolframalpha🌐
dev: true # github, gitlab, stackoverflow, hackernews, reddit🌐, huggingface🌐, mdn
academic: true # arxiv, semantic_scholar, google_scholar🌐, crossref
news: false # bing_news, reuters
video: false # youtube🌐
images: false # unsplash
social: false # lemmy🌐
translate: false # lingva🌐
Some engines (marked with 🌐) require a proxy to access. Three ways to configure:
proxy: "your-proxy-url"HTTPS_PROXY=your-proxy-url--proxy your-proxy-url per searchPriority: CLI flag > config.yml > environment variable.
If no proxy is configured, 🌐-marked engines will fail silently and results from other engines are still returned.
The config file is read on every search call. No restart needed — just edit and save.
If config.yml is missing, the script falls back to a default set of engines: bing, brave, duckduckgo, wikipedia.
| Category | Engines | Use for |
|---|---|---|
general | bing, brave, duckduckgo, google🌐, startpage, yahoo | General web search |
knowledge | wikipedia, wikidata, wolframalpha🌐 | Facts, definitions, calculations |
dev | github, gitlab, stackoverflow, hackernews, reddit🌐, huggingface🌐, mdn | Code, repos, dev Q&A, AI models |
academic | arxiv, semantic_scholar, google_scholar🌐, crossref | Papers, citations |
news | bing_news, reuters | Current events |
video | youtube🌐 | Video search |
images | unsplash | Free stock photos |
social | lemmy🌐 | Community discussions |
translate | lingva🌐 | Translation |
🌐 = requires proxy. Without proxy, these engines are skipped.
Default JSON:
{
"query": "search term",
"results": [
{"title": "...", "url": "...", "content": "...", "engines": ["bing","brave"], "score": 2}
],
"result_count": 15,
"elapsed": 2.1,
"engines_used": ["bing", "brave", "wikipedia"],
"errors": []
}
--compact outputs human-readable text: numbered title, URL, snippet, engine tags.
score = number of engines that returned this result. Higher = more relevant.
python3 scripts/search.py "topic" -n 5python3 scripts/search.py "image processing python" -e githubpython3 scripts/search.py "attention mechanism" -c academic -n 5python3 scripts/search.py "topic" -e hackernews,redditpython3 scripts/search.py "text-to-speech" -e huggingfacepython3 scripts/search.py "fetch API" -e mdn,stackoverflowpython3 scripts/search.py "大语言模型" -l zh-CN -n 5python3 scripts/search.py "AI regulation" -c news