360 Secure SkillHub
360 安全技能中心

ddg-search

通过 ddg-search CLI 在命令行抓取 DuckDuckGo 搜索结果,支持 json/jsonl/csv/opensearch/markdown/compact 格式,并可按页数、结果数、地区和时间过滤;结果写入 stdout,进度写入 stderr,可用 jq 提取链接。

camohiddendj
camohiddendj
热度 93.16
最近更新 2026-05-11 17:25:52
分类:搜索依赖:代码执行 / 第三方 API应用场景:研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ddg-search-cli
Metadata
name
ddg-search
description
DuckDuckGo HTML search scraper CLI with JSON, CSV, OpenSearch, markdown, and compact outputs.
homepage
https://github.com/camohiddendj/ddg-search
metadata
{"openclaw":{"emoji":"🦆","requires":{"bins":["ddg-search"]},"install":[{"id":"node","kind":"node","package":"ddg-search","bins":["ddg-search"],"label":"Install ddg-search CLI (npm)"}]}}

ddg-search

Search DuckDuckGo from the command line. Results go to stdout; progress goes to stderr.

Quick reference

ddg-search "query"                          # default: JSON, 5 pages
ddg-search -f compact "query"               # minimal-token output (best for LLM context)
ddg-search -f jsonl "query"                 # one JSON object per line
ddg-search -n 10 "query"                    # stop after 10 results
ddg-search -p 2 -f json "query"             # 2 pages, JSON
ddg-search -r us-en -t w "recent topic"     # US-English, past week
ddg-search -p 0 "query"                     # unlimited pages (scrape all)

Options

Flag Long Description Default
-f --format Output format: json, jsonl, csv, opensearch, markdown, compact json
-p --pages Max pages to scrape (0 = unlimited) 5
-n --max-results Stop after this many results all
-r --region Region code (e.g. us-en, uk-en) all regions
-t --time Time filter: d (day), w (week), m (month), y (year) none

Choosing a format

  • compact: Use for feeding results into an LLM. Minimal tokens, no JSON overhead.
  • jsonl: Use when piping to line-oriented tools or streaming processors.
  • json: Use when you need structured data with OpenSearch metadata, zero-click answers, and spelling corrections. Pipe through jq for field extraction (e.g. | jq '.items[].link').
  • csv: Use for spreadsheets or tabular analysis.
  • markdown: Use for human-readable output or embedding in documents.
  • opensearch: Use when producing Atom XML feeds.

Extracting URLs from JSON output

ddg-search "query" | jq -r '.items[].link'

Notes

  • DuckDuckGo may trigger bot detection. The tool stops early and returns whatever results were collected.
  • Random delays (800–2900 ms) are inserted between page fetches automatically.
  • Progress messages appear on stderr, so redirecting stdout captures only results.