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.
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.
Use this skill when users request:
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.
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.
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:
Filter results by recency:
python scripts/search.py "<query>" --time-range <d|w|m|y>
Time range options:
d - Past dayw - Past weekm - Past monthy - Past yearExample:
python scripts/search.py "artificial intelligence news" --time-range w
Great for:
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:
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:
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:
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
Control safe search filtering:
python scripts/search.py "<query>" --safe-search <on|moderate|off>
Options:
on - Strict filteringmoderate - Balanced filtering (default)off - No filteringExample:
python scripts/search.py "medical information" --safe-search on
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.
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.
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...
## 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...
[
{
"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..."
}
]
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
Track news on specific topics:
python scripts/search.py "climate summit" --type news --time-range d --format markdown --output daily_climate_news.md
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
Verify information with recent sources:
python scripts/search.py "specific claim to verify" --time-range w --max-results 20
Find resources on scholarly topics:
python scripts/search.py "quantum entanglement research" --time-range y --max-results 30 --output quantum_research.txt
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
When users request web searches:
Identify search intent:
Configure search parameters:
--type)--time-range)--max-results)Select output format:
Execute search:
Process results:
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 fileImage-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
--time-range for current information--output to preserve resultsCommon issues:
pip install duckduckgo-searchLimitations:
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
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
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
The main search tool implementing DuckDuckGo search functionality. Key features:
The script can be executed directly and includes comprehensive command-line help via --help.