duckduckgo-search

Search the web via DuckDuckGo for text, news, images, and videos without an API key.

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill duckduckgo-search-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: duckduckgo-search
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/optional-skills/research/duckduckgo-search
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill duckduckgo-search-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ddgs, and includes scripts (resource) components.

What problem does it solve? Built-in web search tools often require paid API keys like FIRECRAWL_API_KEY, leaving you without a search path when those keys are missing. This Skill provides free DuckDuckGo-based search across text, news, images, and videos with no API key required. ## Core Features & Use Cases - CLI-First Search: Runs the ddgs command via terminal for text, news, image, and video queries with region, time, and safe-search filters. - Verified Python API Fallback: Uses the DDGS Python class only after confirming the package is importable in that specific runtime, avoiding ModuleNotFoundError surprises. - Search-then-Extract Workflow: Returns titles, URLs, and snippets, then hands off to web_extract or browser tools for full page content. - Use Case: When FIRECRAWL_API_KEY is not set and you need current information, run ddgs text -k "fastapi deployment guide" -m 5 -o json to get ranked results, then extract the best URL for full content. ## Quick Start Search DuckDuckGo for the five most recent news articles about AI regulation using the ddgs CLI.

Frequently Asked Questions about duckduckgo-search

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search the web for free without an API key?

Use the ddgs CLI with DuckDuckGo, which requires no API key. Run `ddgs text -k "your query" -m 5` in the terminal after installing with `pip install ddgs`, and add `-o json` for parseable output.

How to use the ddgs Python library for DuckDuckGo search?

Import DDGS from the ddgs package and call methods like text(), news(), images(), or videos() with max_results as a keyword argument. Verify the package is installed in that specific Python runtime first, since terminal and execute_code are separate environments.

Does DuckDuckGo search work when Firecrawl is not configured?

Yes, DuckDuckGo search via ddgs works without FIRECRAWL_API_KEY or any other API key. It is the preferred fallback when built-in web_search is unavailable or unsuitable.

Why does ddgs.text() raise an error with positional arguments?

The max_results parameter is keyword-only in the ddgs library, so `ddgs.text("query", 5)` raises an error. Always write `ddgs.text("query", max_results=5)` instead.

Why does ddgs return empty search results?

Empty results usually indicate rate limiting from DuckDuckGo or blocked requests from certain cloud IPs. Wait a few seconds, retry with adjusted keywords, and add short delays between rapid searches.

Can ddgs extract full page content from search results?

No, ddgs returns only titles, URLs, and snippets, not full page content. Search first to find relevant URLs, then use web_extract, browser tools, or curl to retrieve the complete article.