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.