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.
60
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./src/opensquilla/skills/bundled/web-search/SKILL.mdSearch 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:
OpenSquilla declares the required duckduckgo-search Python package as a runtime dependency.
For source checkouts, run the normal project dependency sync before invoking this bundled skill.
The library provides a simple Python interface to DuckDuckGo's search API without requiring API keys or authentication.
Search for web pages and information:
python {baseDir}/scripts/search.py "<query>"Example:
python {baseDir}/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 {baseDir}/scripts/search.py "<query>" --max-results <N>Example:
python {baseDir}/scripts/search.py "machine learning frameworks" --max-results 20Useful for:
Filter results by recency:
python {baseDir}/scripts/search.py "<query>" --time-range <d|w|m|y>Time range options:
d - Past dayw - Past weekm - Past monthy - Past yearExample:
python {baseDir}/scripts/search.py "artificial intelligence news" --time-range wGreat for:
Search specifically for news articles:
python {baseDir}/scripts/search.py "<query>" --type newsExample:
python {baseDir}/scripts/search.py "climate change" --type news --time-range w --max-results 15News results include:
Search for images:
python {baseDir}/scripts/search.py "<query>" --type imagesExample:
python {baseDir}/scripts/search.py "sunset over mountains" --type images --max-results 20Image filtering options:
Size filters:
python {baseDir}/scripts/search.py "landscape photos" --type images --image-size LargeOptions: Small, Medium, Large, Wallpaper
Color filters:
python {baseDir}/scripts/search.py "abstract art" --type images --image-color BlueOptions: color, Monochrome, Red, Orange, Yellow, Green, Blue, Purple, Pink, Brown, Black, Gray, Teal, White
Type filters:
python {baseDir}/scripts/search.py "icons" --type images --image-type transparentOptions: photo, clipart, gif, transparent, line
Layout filters:
python {baseDir}/scripts/search.py "wallpapers" --type images --image-layout WideOptions: Square, Tall, Wide
Image results include:
Search for videos:
python {baseDir}/scripts/search.py "<query>" --type videosExample:
python {baseDir}/scripts/search.py "python tutorial" --type videos --max-results 15Video filtering options:
Duration filters:
python {baseDir}/scripts/search.py "cooking recipes" --type videos --video-duration shortOptions: short, medium, long
Resolution filters:
python {baseDir}/scripts/search.py "documentary" --type videos --video-resolution highOptions: high, standard
Video results include:
Search with region-specific results:
python {baseDir}/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 {baseDir}/scripts/search.py "local news" --region us-en --type newsControl safe search filtering:
python {baseDir}/scripts/search.py "<query>" --safe-search <on|moderate|off>Options:
on - Strict filteringmoderate - Balanced filtering (default)off - No filteringExample:
python {baseDir}/scripts/search.py "medical information" --safe-search onChoose how results are formatted:
Text format (default):
python {baseDir}/scripts/search.py "quantum computing"Clean, readable plain text with numbered results.
Markdown format:
python {baseDir}/scripts/search.py "quantum computing" --format markdownFormatted markdown with headers, bold text, and links.
JSON format:
python {baseDir}/scripts/search.py "quantum computing" --format jsonStructured JSON data for programmatic processing.
Save search results to a file:
python {baseDir}/scripts/search.py "<query>" --output <file-path>Example:
python {baseDir}/scripts/search.py "artificial intelligence" --output ai_results.txt
python {baseDir}/scripts/search.py "AI news" --type news --format markdown --output ai_news.md
python {baseDir}/scripts/search.py "AI research" --format json --output ai_data.jsonThe 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 {baseDir}/scripts/search.py "machine learning basics" --max-results 15 --output ml_web.txt
# Get recent news
python {baseDir}/scripts/search.py "machine learning" --type news --time-range m --output ml_news.txt
# Find tutorial videos
python {baseDir}/scripts/search.py "machine learning tutorial" --type videos --max-results 10 --output ml_videos.txtTrack news on specific topics:
python {baseDir}/scripts/search.py "climate summit" --type news --time-range d --format markdown --output daily_climate_news.mdSearch for images with specific criteria:
python {baseDir}/scripts/search.py "data visualization examples" --type images --image-type photo --image-size Large --max-results 25 --output viz_images.txtVerify information with recent sources:
python {baseDir}/scripts/search.py "specific claim to verify" --time-range w --max-results 20Find resources on scholarly topics:
python {baseDir}/scripts/search.py "quantum entanglement research" --time-range y --max-results 30 --output quantum_research.txtGather information about products or companies:
python {baseDir}/scripts/search.py "electric vehicle market 2025" --max-results 20 --format markdown --output ev_market.md
python {baseDir}/scripts/search.py "EV news" --type news --time-range m --output ev_news.txtWhen 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 {baseDir}/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 {baseDir}/scripts/search.py --help--time-range for current information--output to preserve resultsCommon issues:
Limitations:
Gather comprehensive information by combining search types:
# Web overview
python {baseDir}/scripts/search.py "topic" --max-results 15 --output topic_web.txt
# Recent news
python {baseDir}/scripts/search.py "topic" --type news --time-range w --output topic_news.txt
# Images
python {baseDir}/scripts/search.py "topic" --type images --max-results 20 --output topic_images.txtUse JSON output for automated processing:
python {baseDir}/scripts/search.py "research topic" --format json --output results.json
# Then process with another script
python analyze_results.py results.jsonCreate searchable documentation from web results:
# Search multiple related topics
python {baseDir}/scripts/search.py "topic1" --format markdown --output kb/topic1.md
python {baseDir}/scripts/search.py "topic2" --format markdown --output kb/topic2.md
python {baseDir}/scripts/search.py "topic3" --format markdown --output kb/topic3.mdThe main search tool implementing DuckDuckGo search functionality. Key features:
The script can be executed directly and includes comprehensive command-line help via --help.
94ac35e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.