Skip to content
Back to skills

Ddgs Web Search

CSecurity

Use when needing to search the web in AI coding tools or OpenClaw. Uses DuckDuckGo API without API key.

  • 33 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
developmentpythongoshellbashfastapiapibackenddocumentation

Works with

  • api

Security analysis

C67/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalDownloads and executes remote scripts — classic supply chain attack
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 3 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill ddgs-web-search --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ddgs Web Search?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ddgs Web Search
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-ddgs-web-search/badge)](https://www.skillsdirectory.com/skills/dvcrn-ddgs-web-search)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ddgs-web-search
description: "Use when needing to search the web in AI coding tools or OpenClaw. Uses DuckDuckGo API without API key."
---

# DuckDuckGo Web Search Skill

An Agent Skill for searching web content via DuckDuckGo.

## Overview

This Skill provides a command-line tool for web search using the `ddgs` Python package. Suitable for:

- Real-time web information needs in AI coding tools
- Fetching search results in OpenClaw workflows

## Core Features

- **Web Search**: General web search
- **News Search**: Dedicated news content search
- **Multiple Output Formats**: Text or JSON format
- **Flexible Configuration**: Region, time limits, and safe search level

## Installation

This project uses `uv` as the Python package manager.

### Option 1: Run with uv (Recommended)

```bash
# Run the script directly (uv will auto-install dependencies)
uv run scripts/ddgs_search.py "Python programming"

# Or navigate to the directory first
cd skills/ddgs-search
uv run scripts/ddgs_search.py "machine learning"
```

### Option 2: Manual Dependency Installation

```bash
# Install dependencies using uv
uv pip install ddgs

# Or use pip
pip install ddgs
```

## Quick Start

### Basic Usage

```bash
# Run with uv (recommended)
uv run scripts/ddgs_search.py "Python programming"

# Limit the number of results
uv run scripts/ddgs_search.py "machine learning" --max-results 5

# Search news
uv run scripts/ddgs_search.py "tech news" --news

# JSON output (for programmatic parsing)
uv run scripts/ddgs_search.py "API documentation" --json

# Time limit (today)
uv run scripts/ddgs_search.py "breaking news" --timelimit d
```

## Complete Parameter Reference

| Parameter | Short | Description | Default |
| --------- | ----- | ----------- | ------- |
| `query` | - | Search keywords | Required |
| `--max-results` | `-n` | Maximum number of results | 10 |
| `--region` | `-r` | Region code | `wt-wt` |
| `--safesearch` | `-s` | Safe search (on/moderate/off) | `moderate` |
| `--timelimit` | `-t` | Time limit (d/w/m/y) | - |
| `--backend` | `-b` | Search backend (auto/html/lite) | `auto` |
| `--news` | - | Search news | - |
| `--json` | `-j` | JSON format output | - |
| `--verbose` | `-v` | Show detailed information | - |

### Region Code Examples

- `wt-wt` - Worldwide (default)
- `us-en` - United States English
- `cn-zh` - China Chinese
- `jp-jp` - Japan
- `uk-en` - United Kingdom

### Time Limits

- `d` - Past day
- `w` - Past week
- `m` - Past month
- `y` - Past year

## Usage in OpenClaw

In OpenClaw workflows, you can invoke it via the `bash` tool:

```yaml
# Example workflow step
- name: search_web
  tool: bash
  command: cd skills/ddgs-search && uv run scripts/ddgs_search.py "{{ query }}" --json
```

Or using the Python tool:

```python
# Assuming the current directory is the project root
import subprocess
import json

result = subprocess.run(
    ["uv", "run", "skills/ddgs-search/scripts/ddgs_search.py", "Python tips", "--json"],
    capture_output=True,
    text=True
)
data = json.loads(result.stdout)
```

## Return Result Format

### Web Search Results

```json
[
  {
    "title": "Result Title",
    "href": "https://example.com/page",
    "body": "Page snippet/description..."
  }
]
```

### News Search Results

```json
[
  {
    "title": "News Headline",
    "href": "https://news.example.com/article",
    "body": "Article summary...",
    "date": "2024-01-15",
    "source": "News Source Name"
  }
]
```

## Usage Examples

### Example 1: Search Technical Documentation

```bash
uv run scripts/ddgs_search.py "FastAPI documentation" -n 5
```

### Example 2: Get Latest News

```bash
uv run scripts/ddgs_search.py "artificial intelligence" --news -t d -n 3
```

### Example 3: Chinese Search

```bash
uv run scripts/ddgs_search.py "机器学习教程" -r cn-zh -n 8
```

### Example 4: JSON Output Processing

```bash
uv run scripts/ddgs_search.py "python tips" --json | jq '.[0].href'
```

## FAQ

### uv Not Installed

```bash
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
```

### ImportError: No module named 'ddgs'

```bash
# Install using uv
uv pip install ddgs

# Or run in the script directory (uv will auto-handle)
cd skills/ddgs-search
uv run scripts/ddgs_search.py "query"
```

### Empty Search Results

- Check network connection
- Try changing the `--backend` parameter (auto/html/lite)
- Some regions may require a proxy

### Rate Limiting

DuckDuckGo has implicit rate limiting. If frequent requests fail:

- Reduce request frequency
- Add delays between requests
- Use a different backend

## Dependencies

- Python 3.9+
- `uv` (package manager)
- `ddgs` >= 8.0.0

Files in this skill

  • SKILL.md4.6 KB
  • pyproject.toml223 B
  • scripts/ddgs_search.py5.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…