Web Search Skill: DuckDuckGo-Powered Search with No API Key, News, Images, and Video
16,415 downloads, 247 installs, 20 stars. The Web Search skill by @billyutw gives your AI agent a full-featured web search capability using DuckDuckGo's API — with no API key, no account, and no rate limit overhead to manage. Search web pages, news, images, and videos with time filtering, region targeting, and multiple output formats.
The zero-setup angle is the distinguishing feature. Where Brave Search requires a paid API key, this skill installs with pip install duckduckgo-search and starts working.
The Problem It Solves
Most web search APIs for AI agents have a cost barrier: Brave requires signup and a monthly quota, Tavily is per-query, Google Custom Search has a free tier that depletes quickly. For prototyping, internal tools, or moderate-volume agents, managing API keys and billing for search is overhead that doesn't serve the actual goal.
DuckDuckGo's search API doesn't require authentication. This skill wraps it cleanly, adding structured output, type filtering, time ranges, and region targeting — all the features you'd expect from a production search tool, without the key management.
Setup
pip install duckduckgo-searchThat's the only prerequisite. No API key, no environment variable, no account.
Core Capabilities
Basic Web Search
python scripts/search.py "python asyncio tutorial"
python scripts/search.py "machine learning frameworks" --max-results 20Returns top results with title, URL, and description. Default: 10 results.
Time-Filtered Search
# Results from the past day
python scripts/search.py "AI news" --time-range d
# Past week
python scripts/search.py "startup funding" --time-range w
# Past month
python scripts/search.py "quarterly earnings" --time-range m
# Past year
python scripts/search.py "climate policy" --time-range yTime filtering is one of the most useful features for agents that need current information. --time-range d for breaking news, --time-range w for recent developments.
News Search
python scripts/search.py "climate change" --type news
python scripts/search.py "AI regulation" --type news --time-range w --max-results 15News results include publication date and source — useful for agents that need to cite current sources.
Image Search
# Basic image search
python scripts/search.py "sunset over mountains" --type images
# With size filter
python scripts/search.py "landscape" --type images --image-size Large
# With color filter
python scripts/search.py "abstract art" --type images --image-color Blue
# With type filter
python scripts/search.py "icons" --type images --image-type transparent
# With layout filter
python scripts/search.py "wallpaper" --type images --image-layout WideImage size options: Small, Medium, Large, Wallpaper
Color options: Red, Orange, Yellow, Green, Blue, Purple, Pink, Brown, Black, Gray, Teal, White, Monochrome
Type options: photo, clipart, gif, transparent, line
Layout options: Square, Tall, Wide
Image results include direct image URLs, thumbnail URLs, source site, and dimensions.
Video Search
python scripts/search.py "python tutorial" --type videos
python scripts/search.py "cooking" --type videos --video-duration short
python scripts/search.py "documentary" --type videos --video-resolution highDuration options: short, medium, long
Resolution options: high, standard
Video results include title, channel, duration, publication date, and URL.
Region-Specific Search
# US English results
python scripts/search.py "local news" --region us-en
# German results
python scripts/search.py "Nachrichten" --region de-de
# Worldwide (default)
python scripts/search.py "global market" --region wt-wtCommon region codes: us-en, uk-en, ca-en, au-en, de-de, fr-fr, jp-ja, wt-wt.
Output Formats
# Plain text (default) — numbered results, readable
python scripts/search.py "quantum computing"
# Markdown — with headers, bold, links
python scripts/search.py "quantum computing" --format markdown
# JSON — structured data for programmatic processing
python scripts/search.py "quantum computing" --format jsonSave to File
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 "datasets" --format json --output data.jsonNote: output format is controlled by --format, not the file extension.
Real-World Use Cases
Research assistance — Agent searches for sources on a topic, returns markdown-formatted results ready for citation.
News monitoring — Daily agent task: search for company name + --type news --time-range d, summarize what's in the news.
Image sourcing — Find Creative Commons or public domain images for documents; filter by --image-type and --image-size.
Competitive intelligence — Regional searches (--region) surface market-specific results that global search misses.
Fact-checking pipeline — Search for claims before including them in generated content; --time-range w ensures recency.
Video research — Find tutorials or demos by topic; filter by duration for quick explainers vs. deep dives.
Comparison
| Feature | Web Search (DuckDuckGo) | Brave Search | Tavily |
|---|---|---|---|
| API key required | ❌ | ✅ | ✅ |
| Free tier | ✅ unlimited | ✅ 2k/mo | ✅ limited |
| News search | ✅ | ❌ | ✅ |
| Image search | ✅ | ❌ | ❌ |
| Video search | ✅ | ❌ | ❌ |
| Time filtering | ✅ | Limited | ✅ |
| Region targeting | ✅ | ❌ | ❌ |
| Content extraction | ❌ | ✅ --content | ✅ |
| Independent index | ❌ | ✅ | ❌ |
The tradeoff is clear: Web Search wins on breadth (news/images/video), zero setup, and no rate limits. Brave Search wins on content extraction and independent index quality. Different tools for different jobs.
Practical Tips
Use --format json for agent pipelines. When your agent needs to process results programmatically (extract URLs, filter by source, etc.), JSON is easier to parse than text or markdown.
Combine time range and news type for monitoring. --type news --time-range d is the reliable pattern for "what happened today" queries.
Use --max-results 5 for quick lookups. The default 10 results is good for research; for simple fact checks where you want the top answer, 5 is sufficient and reduces processing overhead.
Save results for long sessions. If your agent will reference search results multiple times in a session, save them to a file rather than re-querying. DuckDuckGo doesn't have hard rate limits but repeat identical queries are wasteful.
Image search with dimensions. Image results include pixel dimensions — useful for agents that need images above a minimum size for a specific purpose.
Considerations
- No content extraction — Unlike Brave Search, this skill returns titles and snippets only. To get full page content, you'd need to combine it with the markdown-convert skill or similar.
- DuckDuckGo coverage — DuckDuckGo's index is comprehensive but not independent like Brave's. For some technical or niche topics, results may differ from Google significantly.
- No official API — DuckDuckGo doesn't have a formal public API with SLAs. The
duckduckgo-searchlibrary is community-maintained and could break if DuckDuckGo changes its endpoints. - Rate limiting — While there are no official rate limits, very high-frequency requests from a single IP may be throttled. Build in delays for batch jobs.
- Region accuracy — Region filtering influences but doesn't guarantee local results. Some queries return globally relevant results regardless of region.
The Bigger Picture
"No API key" is a bigger deal than it sounds. For every agent that needs web search, zero-setup means it works from day one — in a new project, on a colleague's machine, in a CI environment. No billing, no key rotation, no quota tracking.
Web Search covers more search types than any other skill in this space: web, news, images, video, with filtering on each. That's a broad capability surface from a single install command.
16,000+ downloads across 247 installs suggests it's a default inclusion in many agent setups — the search skill you put in before you have specific requirements.
View the skill on ClawHub: web-search