ddgs-search
Use the Python-based ddgs CLI (via `uvx ddgs`) for ad-hoc, unlimited web searches across multiple search engines. Trigger this skill when the user asks you to look something up online, compare sources
SKILL.mdddgs/SKILL.md
GitHubDDGS Search
Workflow
- Clarify the user’s intent and translate it into a concise ddgs query (e.g., “OpenClaw agent capabilities”, “台北市立大學 markeTech 2026”, “AI-generated music licensing summary”).
- Choose the appropriate ddgs subcommand (
text,news,images,videos,books) and supply the query via-q/--queryplus any filters you need. - Run the CLI with the desired flags. Example:
uvx ddgs text \ -q "OpenClaw agent" \ -b google \ -p 1 \ --output json \ --verify False - Pull the most relevant titles, snippets, and URLs (or file paths) from the generated output, summarize key findings, cite the sources/engines, and ask if the user wants deeper digging.
Command reference
uvx ddgs text→ General web search. Supports-b/--backend(e.g.,duckduckgo,bing,google,auto),-p/--page,-m/--max_results,-r/--region, and-t/--timelimit.uvx ddgs news→ News sources only; pair with-r/--regionor-t/--timelimitto narrow to breaking stories.uvx ddgs images,uvx ddgs videos,uvx ddgs books→ Media-specific metasearches; capturetitle,href, and any metadata exposed in JSON output (e.g.,ext,downloadpaths).
Available backends
| Function | Backends |
|---|---|
text() |
bing, brave, duckduckgo, google, grokipedia, mojeek, yandex, yahoo, wikipedia |
images() |
duckduckgo |
videos() |
duckduckgo |
news() |
bing, duckduckgo, yahoo |
books() |
annasarchive |
Mode-specific options
text (general web searches)
- Pass the search phrase with
-q/--query(text only);-k/--keywordsis deprecated. -r/--region(e.g.,us-en,uk-en,ru-ru) and-s/--safesearch(on,moderate,off) control localization and content sensitivity.-t/--timelimitacceptsd,w,m, oryfor day/week/month/year windows; omit for all-time.-m/--max_resultslimits how many entries ddgs returns (default 10) and-p/--pagepicks the page number (default 1).-b/--backendlets you pin engines (comma-delimited names orautoto pick automatically). Works with the backend list above.
news (news-focused search)
- Same core flags as
text(-q,-r,-s,-t,-m,-p,-b), but ddgs only queries news outlets. - Use
-tto keep results fresh (day/week/month), and preferbing,duckduckgo, oryahoobackends for broader coverage.
images
- Inherits the general
-q,-r,-s,-t,-m,-p,-bflags with backend locked toduckduckgo. - Extra filters include
--size(Small,Medium,Large,Wallpaper),--color(Red,Orange,Yellow,Green,Blue,Purple,Pink,Brown,Black,Gray,Teal,White,Monochrome,color),--type(photo,clipart,gif,transparent,line),--layout(Square,Tall,Wide), and--license(e.g.,any,Public,Share,ShareCommercially,Modify,ModifyCommercially).
videos
- Core flags work the same (
-q,-r,-s,-t,-m,-p,-b) withduckduckgoas the backend. - Additional filters:
--resolution(high,standard),--duration(short,medium,long),--license(creativeCommon,youtube).
books
- Only supports
-q,-m,-p, and-b(backend defaults toannasarchive). Use this mode to find e-books or archived copies.
Flags & options
-q/--query,-r/--region,-s/--safesearch,-t/--timelimit,-m/--max_results,-p/--page, and-b/--backendcover the shared behaviors across modes (text/news/images/videos/books).-o/--outputwrites structured CSV/JSON (orfilename.json) for easy parsing.--verify Falseis often necessary here to bypass TLS certificate issues;Trueperforms strict verification.--download/--download-directoryfetch results locally—useful for images or videos that need inspection.
Result files
- When you use
--output json, ddgs saves the results to a timestamped file (text_<query>_<YYYYMMDD>_<HHMMSS>.json). Open that file to read titles, snippets, and URLs, then delete or archive it once the insight is shared. - If
--downloadruns, note the download directories (default./downloads/or the one you provided) and mention them to the user.
Environmental notes
- Ensure
uvxis on PATH before running anything (which uvx). On this system it now lives in/usr/local/bin, so the command is available globally. - Re-run
uvx ddgs --helpoccasionally to confirm the CLI has not changed. - Record the exact command arguments you used so future agents can reproduce the search.
Notes
- Always mention which search engine/backends you queried when it matters (some users trust DuckDuckGo’s privacy, others expect Google/Bing coverage).
- If ddgs returns sparse context, rerun with
--output jsonand focus on thebody/snippetfields before synthesizing your response.