DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-web-searxng-search

k

dsh-web-searxng-search

Manifest valid

Self-hosted SearXNG web search provider for DeepSeek Harness (dsh). No API key or vendor account.

hasBundlePatch

dsh-web-searxng-search

Self-hosted SearXNG web search provider for DeepSeek Harness.

License: MIT Node dsh plugin

English | 中文

Points the web_search tool at a SearXNG instance you operate. No API key, no vendor account, no per-query attribution.

Motivation

DeepSeek Harness ships a web search provider backed by the DeepSeek API, so every search is billed and attributed to an API key. This plugin registers a second provider on the same ctx.web seam and switches the seam to it. Search then runs against infrastructure you control and requires no vendor credential.

Features

  • Drop-in WebSearchProvider on the ctx.web seam — the built-in web_search tool keeps working.
  • No runtime dependencies of its own; the official @deepseek-ai/* packages are peer dependencies served by the host.
  • Configurable timeout, language, safe-search level, categories and engine allow-list.
  • Results deduplicated by URL — meta-search engines return the same page more than once.
  • Distinguishes "the instance returned HTML" (JSON format not enabled) from "no results", with an actionable error message.
  • Registration is an effect (ctx.effect), so unload and HMR roll back cleanly.
  • 14 offline unit tests — no network required.

Requirements

ComponentVersion / note
DeepSeek Harness@deepseek-ai/dsh-web 0.1.x
Node.js>= 22.19
SearXNGJSON format enabled (see below)

Enable the SearXNG JSON API

The plugin reads the SearXNG search API. JSON output is disabled by default; without it the instance answers 200 with an HTML page, which the plugin reports as a configuration error rather than as "no results".

# settings.yml
search:
  formats:
    - html
    - json

Verify the endpoint before installing:

curl -fsS 'http://localhost:8888/search?q=test&format=json' | head -c 120

Installation

# from npm
dsh plugin --profile web add dsh-web-searxng-search

# from GitHub
dsh plugin --profile web add github:kkgace/dsh-web-searxng-search

# from a local checkout
dsh plugin --profile web add /path/to/dsh-web-searxng-search

Then restart the web app:

dsh web

Once listed, the plugin can also be installed from Settings → Plugin Market.

Configuration

The bundle ships a working default of http://localhost:8888. Point it at your own instance with a profile overlay — patch the existing row, never insert a new one:

# ~/.dsh/profiles/web/cordis.patch.yml
- id: web-search-searxng
  config:
    baseURL: 'https://searxng.example.com'

Alternatively, set SEARXNG_BASE_URL in the environment dsh runs in.

OptionTypeDefaultDescription
baseURLstringhttp://localhost:8888Root URL of the instance, without a trailing /search.
timeoutMsnumber15000Per-request timeout, 1000–120000 ms.
languagestring—UI language forwarded to the instance, e.g. en-US.
safeSearch0 | 1 | 20Off · moderate · strict.
categoriesstring—Comma-separated SearXNG categories, e.g. general,it.
enginesstring—Comma-separated engine names to narrow the search.
apiKeystring—Bearer token, only if the instance requires one.

How it works

  1. Everything in Harness is a Cordis plugin, and capabilities are exposed as seams. Web search is the ctx.web seam.
  2. The plugin implements the WebSearchProvider contract — id, available(): boolean (local and cheap, never touches the network) and search(req, signal?) — and registers itself with ctx.web.registerSearchProvider(...) inside ctx.effect(...).
  3. Registration alone is not enough: cordis.patch.yml switches web.searchProvider to searxng. Without that step the seam stays on the built-in provider.
  4. Failures are raised as WebError(message, code, { cause }) so the host routes them instead of silently falling back to another provider.

Development

npm test        # node --test tests/*.test.mjs

The tests mock globalThis.fetch and never touch the network. The official @deepseek-ai/* packages are peer dependencies provided by the host; to run the tests outside a Harness profile, make them resolvable from node_modules.

Troubleshooting

SymptomCause / fix
web_search still uses another providerweb.searchProvider does not point at searxng, or dsh web was not restarted.
duplicate loader entry id: web-search-searxng at bootThe profile overlay inserts a row the bundle already inserts. Use the - id: … + config: patch form instead.
"No results" while the instance returns dataJSON format is not enabled on the instance.
WEB_PROVIDER_CONFIGURED_UNAVAILABLEavailable() returned false — baseURL is not an absolute http(s) URL.
WEB_PROVIDER_TIMEOUTThe instance did not respond within timeoutMs.

License

MIT

Comments

Loading…

Similar plugins

dsh-searxng-web

by maxwell-feng

DeepSeek Harness plugin: back the native web_search / web_fetch tools with your self-hosted SearXNG instance — keyless, private, no third-party search vendor.

Tools & CapabilitiesManifest valid

★ 7

↓ 892/wk

MIT

TypeScript

Sep 13, 2026

dsh plugin --profile web add dsh-searxng-web

by d3cker

A standalone SearXNG-backed web search provider for the DeepSeek Harness web profile. It plugs into the harness's web-search seam (ctx.web), so the agent's web_search tool searches through your own se

Tools & CapabilitiesManifest valid

★ 4

↓ 801/wk

MIT

JavaScript

Aug 14, 2026

dsh plugin --profile web add dsh-web-search-searxng

by rogerdigital

DeepSeek Harness (dsh) plugin that adds a SearXNG-backed web_search provider to the ctx.web seam — free, self-hosted, key-less search instead of paid Exa/Perplexity APIs.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 7

↓ 508/wk

MIT

TypeScript

Sep 21, 2026

dsh plugin --profile web add dsh-searxng

by acdcgz

SearXNG-backed WebSearchProvider for DeepSeek Harness (ctx.web) — self-hosted, zero per-search model cost, multi-engine aggregation

Tools & CapabilitiesManifest valid

★ 6

MIT

JavaScript

Aug 15, 2026

dsh plugin --profile web add @deepseek-ai/dsh-web-search-searxng

by A3Boy

Multi-provider Web Search & Fetch for DeepSeek Harness — 8 deeply adapted providers, SearchHints, resilient fallback, and native X / Xiaohongshu retrieval.

Models & ProvidersTools & CapabilitiesTerminal & ClientsWorkflow & AutomationManifest valid

★ 30

MIT

JavaScript

Sep 3, 2026

dsh plugin --profile web add dsh-web-tools

by cinob

🌐 Multi-provider web search plugin for DeepSeek Harness: Zero-key Bing/Baidu direct search, free-tier APIs (Tavily/Brave/Serper/Bocha), SearXNG token auth, auto-fallback, and a built-in Web Settings

Terminal & ClientsManifest valid

★ 8

↓ 480/wk

MIT

JavaScript

Aug 26, 2026

dsh plugin --profile web add dsh-web-search-multi