jaco-tech/dsh-web-search-searxng0

@jaco-tech/dsh-web-search-searxng

SearXNG-backed search provider for the DeepSeek Harness web capability seam (ctx.web). No auth, no API key.

AI 分析

核心用途是为 DSH 的网页搜索工具提供隐私安全的搜索源。适合需要让 AI 进行联网搜索的用户。必要条件是需要连接到可用的 SearXNG 实例。

パッケージ
@jaco-tech/dsh-web-search-searxng
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/08/19

インストール

検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗

ドキュメント

README 全文を読む ↗

dsh-web-search-searxng

dsh-plugin CI/CD

SearXNG-backed search provider plugin for DeepSeek Harness.

Registers a WebSearchProvider into ctx.web so that the existing web_search model tool routes through your SearXNG instance. No auth, no API key, no model calls — just a plain HTTP GET against SearXNG's JSON endpoint.

Status

⚠️ Not yet published to npm. The CI/CD workflow builds on every push and publishes automatically when a v* tag is pushed. Once the first release is cut:

npm install @jaco-tech/dsh-web-search-searxng

Configure

Add to your DSH profile's cordis.patch.yml:

- insert:
    - id: web-search-searxng
      name: '@jaco-tech/dsh-web-search-searxng'
      config:
        baseURL: 'http://your-searxng-instance:8888'
        # Optional filters:
        language: 'en'
        categories: 'general'
        timeRange: ''

Optionally pin ctx.web to use this provider explicitly:

- replace:
    - id: web
      config:
        searchProvider: searxng

How it works

This is a Cordis plugin that implements the WebSearchProvider interface from @deepseek-ai/dsh-web:

export const name = "web-search-searxng"
export const inject = ["web"]

export function apply(ctx, config) {
  ctx.web.registerSearchProvider({
    id: "searxng",
    available() { /* URL.canParse(config.baseURL) */ },
    async search(request, signal) {
      // GET /search?q=&format=json
      // maps response to WebSearchResult
    }
  })
}

The existing @deepseek-ai/dsh-tool-web consumer calls ctx.web.search() — your SearXNG instance serves the results automatically.

Provider interface

MethodBehavior
available()Returns true when baseURL is a valid URL
search(request, signal?)GET /search with q, format=json, optional language/categories/time_range params. Dedupes results by URL. Surfaces answers and infoboxes as provider-generated answer text.

Upstream

This plugin communicates with SearXNG via its JSON API (/search?format=json). SearXNG is a free internet metasearch engine which aggregates results from more than 70 search services. You need a running SearXNG instance to use this plugin.

Release process

# Tag and push — the CI workflow builds and publishes to npm automatically
git tag v0.1.0
git push origin v0.1.0

Requires the NPM_TOKEN secret to be set in the repository.

Development

npm install
npm run build

License

MIT