dsh-tool-ddgs
Manifest validDuckDuckGo web search and URL fetch tools for DeepSeek Harness, no API key required. Provides web_search (via ddgs) and web_fetch (via trafilatura) as a drop-in bundle
dsh-tool-ddgs
DuckDuckGo web search and URL fetch tools for DeepSeek Harness.
Zero required system dependencies — search is pure Node.js, fetch uses @mozilla/readability with optional trafilatura fallback for higher quality extraction.
Install
dsh plugin --profile web add github:BharathBillawa/dsh-tool-ddgs
Then restart dsh. The bundle patch automatically:
- Registers
web_search(DuckDuckGo Lite, pure Node) - Registers
web_fetch(content extraction, saves to file) - Wires the native Search action to use ddgs
- Disables the built-in DeepSeek web search provider
- Enables the file read tool for accessing full fetched content
Requirements
- Node.js >= 24 (required by DeepSeek Harness)
- Optional: Python 3.9+ with
pip install trafilaturafor better content extraction
Tools
web_search
Search the web using DuckDuckGo Lite. Pure Node.js — no Python, no subprocess, no API key.
- Accepts 1-4 queries
- Returns deduplicated sources with titles, URLs, and snippets
- Wired to the native Search action via
ctx.webprovider
web_fetch
Fetch a URL and extract readable text content:
- Downloads the page with browser-like headers
- Extracts clean text using
trafilatura(if available) or@mozilla/readability - Saves the full content to
/tmp/dsh-web-fetch/<url-slug>.md - Returns a 5000-char preview + the file path + total line count
If the preview answers the question, the model responds immediately. If more detail is needed, the model uses dsh's built-in read tool with offset/limit to read specific sections from the saved file — just like reading any local file.
This avoids dumping 100K+ chars into context for a simple question about one section of a long article.
How it works
- Search: Direct POST to DuckDuckGo Lite + HTML regex parsing. No headless browser, no API key, no subprocess.
- Fetch: Node native
fetch()→@mozilla/readability(DOM extraction vialinkedom). Falls back totrafilaturavia Python subprocess when available (better quality on complex pages). - File storage: Full fetched content is saved to
/tmp/dsh-web-fetch/<url-slug>.md
Architecture
The plugin registers both:
- A
ctx.websearch provider (id: "ddgs") — powers the native Search action in the agent loop web_searchandweb_fetchtools — directly callable by the model
Configuration
The bundle patch configures itself. No manual cordis.patch.yml editing needed.
License
MIT
Comments
Loading…
Similar plugins
by DDDMUC
Free web search provider for DeepSeek Harness - DuckDuckGo backend, no API key needed
★ 951
↓ 33.8k/wk
MIT
JavaScript
Nov 6, 2026
dsh plugin --profile web add dsh-free-searchby korosu
Keyless DuckDuckGo HTML-scrape web_search provider for the DeepSeek Harness (ctx.web seam): no API key, no extra model turn, one command to install.
★ 0
MIT
TypeScript
Oct 13, 2026
dsh plugin --profile web add dsh-web-search-ddgby ForeverYoungPp
Multi-provider third-party web search for the DeepSeek Harness: routes the native web_search tool through a configurable provider fallback chain, with an isolated provider settings page.
★ 0
MIT
JavaScript
Sep 1, 2026
dsh plugin --profile web add @deepseek-ai/dsh-web-searchby abcdream-Lary
DeepSeek Harness (DSH) 的多提供商网页搜索和页面获取插件:AnySearch、Bing、DuckDuckGo、Tavily、Exa
★ 2
MIT
JavaScript
Aug 22, 2026
dsh plugin --profile web add dshsearch-multiby dawsondx
DeepSeek Harness (dsh) bundle: when `dsh web` is ready, print the full GUI URL and open it in your default browser. Cross-platform, zero runtime deps, fail-safe.
★ 3
↓ 28/wk
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add @dawsondx/dsh-web-openby Decodo
DeepSeek Harness (dsh) plugin: Decodo as the provider behind the built-in web_fetch tool
★ 0
MIT
TypeScript
Oct 20, 2026
dsh plugin --profile web add @decodo/dsh-web-fetch