SearXNG 搜索
DeepSeek Harness web profile
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-web-search-searxng
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 self-hosted SearXNG instance instead of a vendor API.
- Plain ESM, no build step.
- Ships as a bundle: one
dsh plugincommand installs and activates it automatically. - Single configuration knob:
$SEARXNG_BASE_URL. - Tested (
pnpm test, 20 tests, vitest).
The one-command install
From a fresh DeepSeek Harness checkout (or with dsh on PATH):
dsh plugin --profile web add /path/to/dsh-web-search-searxng
That's it. The plugin is automatically appended to the web profile's bundle stack and its patch layer (shipped in this repo as cordis.patch.yml):
- switches the web seam to this provider (
searchProvider: searxng), and - mounts the plugin row.
No cordis.patch.yml hand-editing. No rebuild.
Configure: set one environment variable
Your SearXNG address is read from SEARXNG_BASE_URL (defaults to http://localhost:8888):
export SEARXNG_BASE_URL=http://192.168.30.74:8888 # your instance
Optional knobs:
| Variable | Default | Meaning |
|---|---|---|
SEARXNG_BASE_URL | http://localhost:8888 | Your SearXNG instance; /search is appended. |
SEARXNG_NUM_RESULTS | 10 | Default result count when a request doesn't specify its own bound. |
SEARXNG_API_KEY | (none) | Optional, for instances behind a key. |
Then start (or restart) dsh web in that shell — or add the exports to your shell profile / the .env the harness loads.
No environment variables? Then edit the one line in the bundle's cordis.patch.yml:
baseURL: !!js process.env.SEARXNG_BASE_URL ?? 'http://localhost:8888'
# ^^^^^^^^^^^^^^^^^ change this default
Both ways produce the same result — the choice is yours.
Verify
web_search("postgresql vs mysql")
should return aggregated results from your instance.
Wait — will I get the Settings → Plugins card?
Only after applying two small harness-side changes (the card lives in the harness source itself, and an allowlist gate in api-proxy.ts must name this namespace). They're documented at the end of this README in Make the Settings card work. The search itself works without them.
Details
Files
dsh-web-search-searxng/
├── cordis.patch.yml # bundle layer: activation + config (env-first)
├── src/
│ ├── index.js # plugin entry: registers provider + settings section
│ └── provider.js # SearXNG JSON API client (GET /search?format=json)
├── tests/provider.spec.js
├── package.json # declares dsh.bundle → auto layer on `dsh plugin add`
├── README.md
└── LICENSE
How the one command works
dsh plugin --profile web add runs pnpm add inside the profile directory, then reconciles the bundle list: any installed package declaring dsh.bundle in its package.json is appended to dsh.profile.bundles (harness apps/cli/src/plugin.ts, reconcilePlugins). This repo's package.json declares exactly that, pointing at cordis.patch.yml, which is applied as the top layer over the base/web-app bundles.
Options at a glance
| Setting | Default | Via |
|---|---|---|
baseURL | http://localhost:8888 | $SEARXNG_BASE_URL env, or the patch line |
numResults | 10 | $SEARXNG_NUM_RESULTS env, or the patch line |
apiKey | (none) | $SEARXNG_API_KEY env, or the patch line |
The plugin also exposes a web-search-searxng settings section, so once the Settings card is enabled (below) those same fields become editable in the GUI and writes apply to the next search immediately.
Running tests locally
mkdir -p node_modules/@deepseek-ai # dev-only: link peers from a harness profile
for p in cordis dsh-invariants dsh-launch-environment dsh-settings dsh-web schemastery; do
ln -sf "$DSH_HOME/profiles/node_modules/@deepseek-ai/$p" "node_modules/@deepseek-ai/$p"
done
pnpm test
node_modules/ is git-ignored.
Make the Settings card work (optional)
The editable card needs two changes inside the harness (they can't ship from a host-only plugin, because the browser bundle of ui-settings-plugins and the settings exposure gate are part of the harness). Both are small:
- Expose the namespace — in the harness, edit
packages/host/apiproxy/src/api-proxy.ts:
const WEB_SETTINGS_NAMESPACES = [
'agent-loop', 'shell', 'locale', 'permission', 'ui-conversation', 'ui-theme',
'web-search-deepseek', 'web-search-searxng', // ← add this
] as const
- Render the card — in
packages/client/ui-settings-plugins, addSearxngCard/SearxngCardController(endpoint + default result count), register it inindex.ts(settings.plugin.itemslot), add thesearxng*locale keys, then rebuild the web artifacts (pnpm run build:lib:host+pnpm run build:lib:client+build:web) and restart the GUI.
Without these two, everything works except the in-UI editor: search is live, config via env var or the patch file. With them, you also get Settings → Plugins → Web search (SearXNG).
Created with the DeepSeek Harness and DeepSeek V4 Flash 0731 running on 2 × Asus Ascent GX10.
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.