duckduckgo-search

Performs keyless web, news, image, and video searches via the ddgs CLI or Python API.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill duckduckgo-search-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: duckduckgo-search
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/optional-skills/research/duckduckgo-search
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill duckduckgo-search-vivekgoquest

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? It provides free web, news, image, and video search without requiring any API key, serving as a fallback when built-in web search tools or keys like FIRECRAWL_API_KEY are unavailable. ## Core Features & Use Cases - Keyless Search: Run text, news, image, and video queries through the ddgs CLI or Python DDGS class with no credentials. - Runtime Detection: Distinguishes between terminal and execute_code runtimes so ddgs availability is verified before use. - Search-then-Extract Workflow: Returns titles, URLs, and snippets that feed into web_extract or browser tools for full page content. - Use Case: When web_search is unavailable on a fresh VPS, install ddgs and run ddgs text -q "fastapi deployment guide" -m 3 -o json to gather sources, then extract the best URL. ## 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 without an API key in Python?▼

Install the ddgs package with pip install ddgs, then use the DDGS class: ddgs.text("query", max_results=5) returns titles, URLs, and snippets. No API key or account is required for DuckDuckGo searches.

How to use the ddgs CLI for DuckDuckGo search?▼

Run ddgs text -q "your query" -m 5 for text results, or swap text for news, images, or videos. Add -o json for parseable output, -r for region, and -t for time limits like week or month.

Why does ddgs.text with a positional max_results raise an error?▼

The max_results parameter is keyword-only in the ddgs Python API, so ddgs.text("query", 5) fails. Always pass it explicitly as ddgs.text("query", max_results=5).

Why does ddgs work in terminal but fail to import in execute_code?▼

Terminal and execute_code are separate Python runtimes, so installing ddgs in the shell does not make it importable elsewhere. Verify the package in each runtime with an import check before using the DDGS class.

What are the limitations of DuckDuckGo search via ddgs?▼

ddgs returns only titles, URLs, and snippets, not full page content, and DuckDuckGo may rate-limit rapid requests or block some cloud IPs. Use web_extract or curl for full articles and add delays between searches.