DDDMUC/dsh-free-search

Free, keyless web search for DSH: 7 engines (DuckDuckGo/Bing/SearXNG free + Exa/Perplexity/DeepSeek paid), auto-failover, settings-page UI with API key inputs and official links, web_fetch, and an engine test tool.

dsh-free-search replaces DSH's default search provider (which needs a DeepSeek official API key) with multiple free engines and automatic fallback. Any engine failure — rate-limited free engine, missing or invalid paid key, network error — automatically tries the next engine, so search never fails outright, and a note on the results names the engine that actually served them. It adds a web settings UI for engine switching and API keys, a /free-search-engine popup switcher, a free_search_test tool, time filtering on advanced_search, an LRU result cache (50 entries, up to 5 minutes), and FREE vs API KEY badges so costs are visible at a glance.

Tools & Capabilities ★ 48 updated 2026-08-21
View on GitHub ↗

Install

git clone https://github.com/DDDMUC/dsh-free-search.git && dsh plugin --profile web add /path/to/dsh-free-search

Clone the repo and add it with dsh plugin --profile web add /path/to/dsh-free-search, then restart with dsh web. The README warns to always install via dsh plugin --profile <profile> add and never copy DSH core packages into a profile-local node_modules, because @deepseek-ai/dsh-settings and @deepseek-ai/dsh-tools are peerDependencies that must come from a single install tree.

Compatibility

DSH Web profile. Implements the official WebSearchProvider seam, so it coexists with official plugins. Engines: DuckDuckGo HTML/Lite, Bing (default), AnySearch AI, SearXNG, Exa, Tavily, Keenable, Perplexity, DeepSeek Official. Adds web_fetch (official dsh-web-fetch-http provider) and platform_search for GitHub/V2EX/Bilibili/Reddit/Hacker News/Stack Overflow/Wikipedia/npm.

Details

Recent updates

The current README documents the multi-engine fallback chain, settings UI with masked keys, popup engine switcher, engine test tool, timeRange filtering, result caching, and the zero-key engines (AnySearch anonymous REST quota, Exa and Keenable public MCP endpoints, Tavily keyless access mode).

FAQ

Do I need a DeepSeek API key?
No — the whole point is escaping the DEEPSEEK_API_KEY dependency; free engines (Bing default, DuckDuckGo, AnySearch, SearXNG, plus keyless Exa/Tavily/Keenable) work with zero keys.
What happens if an engine fails?
The README says any failure (rate limit, bad key, network) automatically falls back to the next engine and search never fails outright; the result note names the engine that actually served it.
Is it safe alongside official plugins?
Yes — it implements the official WebSearchProvider seam interface. Install with dsh plugin add and never copy DSH core packages into profile-local node_modules, or duplicate copies can break the tool scheduler.

Alternatives

anweat/dsh-web-search-pro · liustack/modsearch · anysearch-team/anysearch-dsh

More plugins in Tools & Capabilities

Browse more in Tools & Capabilities

Guides for Tools & Capabilities plugins