ddgs-search
name: ddgs-search
by camopel · published 2026-03-22
$ claw add gh:camopel/camopel-ddgs-search---
name: ddgs-search
description: Free multi-engine web search via ddgs CLI (DuckDuckGo, Google, Bing, Brave, Yandex, Yahoo, Wikipedia) + arXiv API search. No API keys required. Use when user needs web search, research paper discovery, or when other skills need a search backend. Drop-in replacement for web-search-plus.
metadata: {"openclaw":{"requires":{"bins":["python3"]}}}
---
# ddgs-search
Why This Skill?
🆓 **Completely free** — no API keys, no subscriptions, no rate limits, no billing surprises.
🔍 **8 search engines in one** — Google, Bing, DuckDuckGo, Brave, Yandex, Yahoo, Wikipedia, and Mojeek. Switch engines with a single flag. Most search skills only support one.
🎓 **Built-in arXiv research search** — search academic papers directly via arXiv's free API. Returns authors, categories, abstracts, and publication dates. Perfect for researchers, students, and AI/ML practitioners.
🔌 **Drop-in replacement** — outputs web-search-plus compatible JSON, so it works with any skill or tool that expects that format. Zero config migration.
⚡ **Lightweight** — single pip package, no browser automation, no headless Chrome. Searches complete in 1-3 seconds.
Install
python3 scripts/install.pyWorks on **macOS, Linux, and Windows**. Installs the `ddgs` package, verifies CLI access, and runs a quick search test.
Manual install
pip install ddgsWeb Search
CLI wrapper (recommended)
The `ddgs-search` wrapper outputs clean JSON to stdout with no interactive prompts or abort issues:
# Google (default)
ddgs-search "your query" 5 google
# Other engines
ddgs-search "your query" 3 duckduckgo
ddgs-search "your query" 5 brave
ddgs-search "your query" 10 yandexPython script (web-search-plus compatible JSON)
# Google (default)
python3 scripts/search.py -q "your query" -m 5
# Other engines
python3 scripts/search.py -q "your query" -b duckduckgo
python3 scripts/search.py -q "your query" -b brave
python3 scripts/search.py -q "your query" -b yandex
python3 scripts/search.py -q "your query" -b yahoo
python3 scripts/search.py -q "your query" -b wikipediaOutput (web-search-plus compatible JSON):
{
"provider": "ddgs",
"results": [
{"title": "...", "url": "...", "snippet": "...", "published_date": "..."}
]
}arXiv Search
# Search by topic
python3 scripts/arxiv_search.py -q "3D gaussian splatting" -m 10
# Field-specific search (title, abstract, category)
python3 scripts/arxiv_search.py -q "ti:transformer AND cat:cs.CV" -m 5
# Sort by relevance instead of date
python3 scripts/arxiv_search.py -q "reinforcement learning" --sort-by relevanceReturns authors, categories, abstracts — same JSON format.
Direct CLI
> ⚠️ The raw `ddgs text` CLI has a pagination bug (`input()` call → `Aborted!` + exit code 1 in non-TTY contexts). Use `ddgs-search` wrapper or `-o file.json` instead.
ddgs text -q "query" -m 5 -b google -o /tmp/results.jsonIntegration
Set `WEB_SEARCH_PLUS_PATH` to use as a search backend for other skills:
export WEB_SEARCH_PLUS_PATH="path/to/ddgs-search/scripts/search.py"More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...