MCPInstall

web-search

This skill should be used when users need to search the web for information, find current content, look up news articles, search for images, or find videos. It uses DuckDuckGo's search API to return results in clean, formatted output (text, markdown, or JSON). Use for research, fact-checking, finding recent information, or gathering web resources.

Installs
90
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill web-search
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads web-search automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Web Search

Overview

Search the web using DuckDuckGo's API to find information across web pages, news articles, images, and videos. Returns results in multiple formats (text, markdown, JSON) with filtering options for time range, region, and safe search.

When to Use This Skill

Use this skill when users request:

  • Web searches for information or resources
  • Finding current or recent information online
  • Looking up news articles about specific topics
  • Searching for images by description or topic
  • Finding videos on specific subjects
  • Research requiring current web data
  • Fact-checking or verification using web sources
  • Gathering URLs and resources on a topic

Prerequisites

Install the required dependency:

pip install duckduckgo-search

This library provides a simple Python interface to DuckDuckGo's search API without requiring API keys or authentication.

Core Capabilities

1. Basic Web Search

Search for web pages and information:

python scripts/search.py "<query>"

Example:

python scripts/search.py "python asyncio tutorial"

Returns the top 10 web results with titles, URLs, and descriptions in a clean text format.

2. Limiting Results

Control the number of results returned:

python scripts/search.py "<query>" --max-results <N>

Example:

python scripts/search.py "machine learning frameworks" --max-results 20

Useful for:

  • Getting more comprehensive results (increase limit)
  • Quick lookups with fewer results (decrease limit)
  • Balancing detail vs. processing time

3. Time Range Filtering

Filter results by recency:

python scripts/search.py "<query>" --time-range <d|w|m|y>

Time range options:

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

Example:

python scripts/search.py "artificial intelligence news" --time-range w

Great for:

  • Finding recent news or updates
  • Filtering out outdated content
  • Tracking recent developments

4. News Search

Search specifically for news articles:

python scripts/search.py "<query>" --type news

Example:

python scripts/search.py "climate change" --type news --time-range w --max-results 15

News results include:

  • Article title
  • Source publication
  • Publication date
  • URL
  • Article summary/description

5. Image Search

Search for images:

python scripts/search.py "<query>" --type images

Example:

python scripts/search.py "sunset over mountains" --type images --max-results 20

Image filtering options:

Size filters:

python scripts/search.py "landscape photos" --type images --image-size Large

Options: Small, Medium, Large, Wallpaper

Color filters:

python scripts/search.py "abstract art" --type images --image-color Blue

Options: color, Monochrome, Red, Orange, Yellow, Green, Blue, Purple, Pink, Brown, Black, Gray, Teal, White

Type filters:

python scripts/search.py "icons" --type images --image-type transparent

Options: photo, clipart, gif, transparent, line

Layout filters:

python scripts/search.py "wallpapers" --type images --image-layout Wide

Options: Square, Tall, Wide

Image results include:

  • Image title
  • Image URL (direct link to image)
  • Thumbnail URL
  • Source website
  • Dimensions (width x height)

6. Video Search

Search for videos:

python scripts/search.py "<query>" --type videos

Example:

python scripts/search.py "python tutorial" --type videos --max-results 15

Video filtering options:

Duration filters:

python scripts/search.py "cooking recipes" --type videos --video-duration short

Options: short, medium, long

Resolution filters:

python scripts/search.py "documentary" --type videos --video-resolution high

Options: high, standard

Video results include:

  • Video title
  • Publisher/channel
  • Duration
  • Publication date
  • Video URL
  • Description

7. Region-Specific Search

Search with region-specific results:

python scripts/search.py "<query>" --region <region-code>

Common region codes:

  • us-en - United States (English)
  • uk-en - United Kingdom (English)
  • ca-en - Canada (English)
  • au-en - Australia (English)
  • de-de - Germany (German)
  • fr-fr - France (French)
  • wt-wt - Worldwide (default)

Example:

python scripts/search.py "local news" --region us-en --type news

8. Safe Search Control

Control safe search filtering:

python scripts/search.py "<query>" --safe-search <on|moderate|off>

Options:

  • on - Strict filtering
  • moderate - Balanced filtering (default)
  • off - No filtering

Example:

python scripts/search.py "medical information" --safe-search on

9. Output Formats

Choose how results are formatted:

Text format (default):

python scripts/search.py "quantum computing"

Clean, readable plain text with numbered results.

Markdown format:

python scripts/search.py "quantum computing" --format markdown

Formatted markdown with headers, bold text, and links.

JSON format:

python scripts/search.py "quantum computing" --format json

Structured JSON data for programmatic processing.

10. Saving Results to File

Save search results to a file:

python scripts/search.py "<query>" --output <file-path>

Example:

python scripts/search.py "artificial intelligence" --output ai_results.txt
python scripts/search.py "AI news" --type news --format markdown --output ai_news.md
python scripts/search.py "AI research" --format json --output ai_data.json

The file format is determined by the --format flag, not the file extension.

Output Format Examples

Text Format

1. Page Title Here
   URL: https://example.com/page
   Brief description of the page content...

2. Another Result
   URL: https://example.com/another
   Another description...

Markdown Format

## 1. Page Title Here

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

Brief description of the page content...

## 2. Another Result

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

Another description...

JSON Format

[
  {
    "title": "Page Title Here",
    "href": "https://example.com/page",
    "body": "Brief description of the page content..."
  },
  {
    "title": "Another Result",
    "href": "https://example.com/another",
    "body": "Another description..."
  }
]

Common Usage Patterns

Research on a Topic

Gather comprehensive information about a subject:

# Get overview from web
python scripts/search.py "machine learning basics" --max-results 15 --output ml_web.txt

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

# Find tutorial videos
python scripts/search.py "machine learning tutorial" --type videos --max-results 10 --output ml_videos.txt

Current Events Monitoring

Track news on specific topics:

python scripts/search.py "climate summit" --type news --time-range d --format markdown --output daily_climate_news.md

Finding Visual Resources

Search for images with specific criteria:

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

Fact-Checking

Verify information with recent sources:

python scripts/search.py "specific claim to verify" --time-range w --max-results 20

Academic Research

Find resources on scholarly topics:

python scripts/search.py "quantum entanglement research" --time-range y --max-results 30 --output quantum_research.txt

Market Research

Gather information about products or companies:

python scripts/search.py "electric vehicle market 2025" --max-results 20 --format markdown --output ev_market.md
python scripts/search.py "EV news" --type news --time-range m --output ev_news.txt

Implementation Approach

When users request web searches:

  1. Identify search intent:

    • What type of content (web, news, images, videos)?
    • How recent should results be?
    • How many results are needed?
    • Any filtering requirements?
  2. Configure search parameters:

    • Choose appropriate search type (--type)
    • Set time range if currency matters (--time-range)
    • Adjust result count (--max-results)
    • Apply filters (image size, video duration, etc.)
  3. Select output format:

    • Text for quick reading
    • Markdown for documentation
    • JSON for further processing
  4. Execute search:

    • Run the search command
    • Save to file if results need to be preserved
    • Print to stdout for immediate review
  5. Process results:

    • Read saved files if needed
    • Extract URLs or specific information
    • Combine results from multiple searches

Quick Reference

Command structure:

python scripts/search.py "<query>" [options]

Essential options:

  • -t, --type - Search type (web, news, images, videos)
  • -n, --max-results - Maximum results (default: 10)
  • --time-range - Time filter (d, w, m, y)
  • -r, --region - Region code (e.g., us-en, uk-en)
  • --safe-search - Safe search level (on, moderate, off)
  • -f, --format - Output format (text, markdown, json)
  • -o, --output - Save to file

Image-specific options:

  • --image-size - Size filter (Small, Medium, Large, Wallpaper)
  • --image-color - Color filter
  • --image-type - Type filter (photo, clipart, gif, transparent, line)
  • --image-layout - Layout filter (Square, Tall, Wide)

Video-specific options:

  • --video-duration - Duration filter (short, medium, long)
  • --video-resolution - Resolution filter (high, standard)

Get full help:

python scripts/search.py --help

Best Practices

  1. Be specific - Use clear, specific search queries for better results
  2. Use time filters - Apply --time-range for current information
  3. Adjust result count - Start with 10-20 results, increase if needed
  4. Save important searches - Use --output to preserve results
  5. Choose appropriate type - Use news search for current events, web for general info
  6. Use JSON for automation - JSON format is easiest to parse programmatically
  7. Respect usage - Don't hammer the API with rapid repeated searches

Troubleshooting

Common issues:

  • "Missing required dependency": Run pip install duckduckgo-search
  • No results found: Try broader search terms or remove time filters
  • Timeout errors: The search service may be temporarily unavailable; retry after a moment
  • Rate limiting: Space out searches if making many requests
  • Unexpected results: DuckDuckGo's results may differ from Google; try refining the query

Limitations:

  • Results quality depends on DuckDuckGo's index and algorithms
  • No advanced search operators (unlike Google's site:, filetype:, etc.)
  • Image and video searches may have fewer results than web search
  • No control over result ranking or relevance scoring
  • Some specialized searches may work better on dedicated search engines

Advanced Use Cases

Combining Multiple Searches

Gather comprehensive information by combining search types:

# Web overview
python scripts/search.py "topic" --max-results 15 --output topic_web.txt

# Recent news
python scripts/search.py "topic" --type news --time-range w --output topic_news.txt

# Images
python scripts/search.py "topic" --type images --max-results 20 --output topic_images.txt

Programmatic Processing

Use JSON output for automated processing:

python scripts/search.py "research topic" --format json --output results.json
# Then process with another script
python analyze_results.py results.json

Building a Knowledge Base

Create searchable documentation from web results:

# Search multiple related topics
python scripts/search.py "topic1" --format markdown --output kb/topic1.md
python scripts/search.py "topic2" --format markdown --output kb/topic2.md
python scripts/search.py "topic3" --format markdown --output kb/topic3.md

Resources

scripts/search.py

The main search tool implementing DuckDuckGo search functionality. Key features:

  • Multiple search types - Web, news, images, and videos
  • Flexible filtering - Time range, region, safe search, and type-specific filters
  • Multiple output formats - Text, Markdown, and JSON
  • File output - Save results for later processing
  • Clean formatting - Human-readable output with all essential information
  • Error handling - Graceful handling of network errors and empty results

The script can be executed directly and includes comprehensive command-line help via --help.

FAQ

What does the web-search skill do?

This skill should be used when users need to search the web for information, find current content, look up news articles, search for images, or find videos. It uses DuckDuckGo's search API to return results in clean, formatted output (text, markdown, or JSON). Use for research, fact-checking, finding recent information, or gathering web resources.

How do I install web-search?

Run npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill web-search in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/web-search/ (personal) or .claude/skills/web-search/ (project).

Which AI agents can use web-search?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is web-search safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains web-search?

It is published by sundial-org in sundial-org/awesome-openclaw-skills. It has 90 recorded installs.

More from sundial-org/awesome-openclaw-skills

View all →

stock-market-pro

sundial-org/awesome-openclaw-skills

Professional stock price tracking, fundamental analysis, and financial reporting tool. Supports global markets (US, KR, etc.), Crypto, and Forex with real-time data. (1) Real-time quotes, (2) Valuation metrics (PE, EPS, ROE), (3) Earnings calendar and consensus, (4) High-quality Candlestick & Line charts with technical indicators (MA5/20/60).

Business & Finance4.1K installs

ontology

sundial-org/awesome-openclaw-skills

Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access.

finance-news

sundial-org/awesome-openclaw-skills

Market news briefings with AI summaries. Use when asked about stock news, market updates, portfolio performance, morning/evening briefings, financial headlines, or price alerts. Supports US/Europe/Japan markets, WhatsApp delivery, and English/German output.

Business & Finance2.8K installs

exa-web-search-free

sundial-org/awesome-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.

memory-setup

sundial-org/awesome-openclaw-skills

Enable and configure Moltbot/Clawdbot memory search for persistent context. Use when setting up memory, fixing "goldfish brain," or helping users configure memorySearch in their config. Covers MEMORY.md, daily logs, and vector search setup.

1.7K installs

ffmpeg-video-editor

sundial-org/awesome-openclaw-skills

Generate FFmpeg commands from natural language video editing requests - cut, trim, convert, compress, change aspect ratio, extract audio, and more.

Media & Creative1.6K installs

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。