← Back to Skills Marketplace
camopel

ddgs-search

by camopel · GitHub ↗ · v1.2.0
cross-platform ✓ Security Clean
1198
Downloads
3
Stars
9
Active Installs
3
Versions
Install in OpenClaw
/install 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...
README (SKILL.md)

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.py

Works on macOS, Linux, and Windows. Installs the ddgs package, verifies CLI access, and runs a quick search test.

Manual install

pip install ddgs

Web 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 yandex

Python 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 wikipedia

Output (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 relevance

Returns 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.json

Integration

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"
Usage Guidance
This skill appears to be what it claims: a ddgs CLI wrapper + arXiv search. Before installing: (1) consider running the install.py inside a Python virtualenv to avoid modifying your global/user Python packages; (2) verify the ddgs package on PyPI yourself if you have strong supply-chain concerns; (3) the installer may suggest adding ~/.local/bin to PATH or copy a wrapper there — that's normal but review any files it writes; (4) avoid running install scripts as root. If you need stricter isolation, run only the arXiv script (which makes plain HTTPS calls) or inspect/execute the search wrapper locally after review.
Capability Analysis
Type: OpenClaw Skill Name: ddgs-search Version: 1.2.0 The skill bundle provides web search and arXiv paper search functionality. All Python scripts (`arxiv_search.py`, `install.py`, `search.py`) use `subprocess.run` with a list of arguments, which prevents shell injection vulnerabilities. Network calls are limited to the legitimate arXiv API endpoint (`export.arxiv.org`). The installer script (`install.py`) correctly installs the `ddgs` package and a local wrapper script to `~/.local/bin`, which is part of its stated purpose. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, obfuscation, or prompt injection attempts in the `SKILL.md` or `README.md` files. The code aligns with the stated purpose and lacks high-risk behaviors.
Capability Assessment
Purpose & Capability
Name/description (ddgs-based multi-engine web search + arXiv) matches the code and SKILL.md: scripts call the ddgs CLI and arXiv API, and the installer installs the ddgs Python package. Required binary (python3) is appropriate; no unrelated credentials or services are requested.
Instruction Scope
Runtime instructions limit themselves to installing ddgs, invoking the ddgs CLI via subprocess, and calling the public arXiv API. The search wrapper filters environment variables passed to subprocesses to a small safe set. The SKILL.md does not instruct reading unrelated files or exfiltrating secrets.
Install Mechanism
There is no platform install spec in registry, but the included install.py runs pip to install the ddgs package (first --user, fallback to global). pip installs are normal but can modify the user's Python environment; recommend using a virtualenv if you wish to avoid global/user-wide package changes. The installer copies a wrapper into ~/.local/bin if present — the wrapper file is not included in the package, and the script handles that case gracefully.
Credentials
The skill requires no environment variables or credentials. Scripts access PATH/APPDATA/HOME to detect ddgs installation and to advise PATH changes; search.py intentionally restricts the env passed to ddgs to ('PATH','HOME','LANG','TERM'). No secret-like env vars are requested or read.
Persistence & Privilege
The skill does not request always:true or autonomous elevation. Installation will write to the user's Python package area and may copy a wrapper to ~/.local/bin (user-level persistence). These are normal for CLI tools but worth noting — the installer does not alter other skills or global agent configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ddgs-search
  3. After installation, invoke the skill by name or use /ddgs-search
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.2.0
Add ddgs-search CLI wrapper script that fixes raw ddgs pagination bug (input() → Aborted + exit 1 in non-TTY). Wrapper outputs clean JSON, exit 0. Updated install.py to auto-install wrapper to ~/.local/bin. Updated SKILL.md docs.
v1.1.0
Enhanced docs and install
v1.0.0
Free multi-engine web search (8 engines) + arXiv API. No API keys required.
Metadata
Slug ddgs-search
Version 1.2.0
License
All-time Installs 9
Active Installs 9
Total Versions 3
Frequently Asked Questions

What is ddgs-search?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 1198 downloads so far.

How do I install ddgs-search?

Run "/install ddgs-search" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is ddgs-search free?

Yes, ddgs-search is completely free (open-source). You can download, install and use it at no cost.

Which platforms does ddgs-search support?

ddgs-search is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created ddgs-search?

It is built and maintained by camopel (@camopel); the current version is v1.2.0.

💬 Comments