| name | multi-search-engine |
| description | Query scholarly metadata and the web through Crossref, Brave, Tavily, and DuckDuckGo with a single CLI surface. Trigger when the user asks for research search, fact lookup, source discovery, or engine comparison. Results retain DOI, publication year, and authors when supplied by Crossref, then deduplicate by DOI, arXiv ID, or normalized URL. API-key engines gate themselves on the relevant environment variable; Crossref and DuckDuckGo need no key. |
| description_zh | 通过统一 CLI 使用 Crossref、Brave、Tavily 和 DuckDuckGo 查询学术元数据与网页。适用于研究搜索、事实查找、来源发现或引擎覆盖比较。结果会保留 Crossref 提供的 DOI、出版年份和作者,并按 DOI、arXiv ID 或规范化 URL 去重。需要密钥的引擎由对应环境变量启用;Crossref 和 DuckDuckGo 无需密钥。 |
| homepage | |
| provenance | {"origin":"clawhub-mit0","license":"MIT-0","upstream_url":"https://clawhub.ai/multi-search-engine","maintained_by":"OpenSquilla"} |
| metadata | {"platform":{"emoji":"🔍","requires":{"anyBins":"[Truncated]"}}} |
| entrypoint | {"command":"python {baseDir}/scripts/search.py","args":["--query","{{ with.query | default(inputs.user_message) }}","--engines","{{ with.engines | default(['brave', 'duckduckgo']) | join(',') }}","--limit","{{ with.max_results | default(25) }}","--json"],"parse":"json","timeout":60} |
multi-search-engine
A unified CLI for querying several web search engines in parallel and
returning a normalized result list. Built on httpx and beautifulsoup4
(both already in OpenSquilla default dependencies, so no extra install
beyond pip install opensquilla).
Use cases
- Building a
deep-research round with diverse engine coverage
- Fact-check a claim against >1 engine
- Compare scholarly metadata coverage with general web results
- Find citable publication metadata without requiring an API key
Limitations
- A single engine sufficient → call its API directly instead
- Need headless-browser DOM rendering → this skill is HTTP-only
Quick start
python {baseDir}/scripts/search.py \
--query "openclaw skill registry" \
--engines crossref,duckduckgo,brave \
--limit 10 \
--json
Output:
{
"query": "...",
"results": [
{
"engine": "crossref",
"title": "...",
"url": "https://...",
"snippet": "...",
"rank": 1,
"doi": "10.1234/example",