DeepSeek Harness plugin

dsh-search-boost

Multi-engine fused web search, page fetch, real-time X (Twitter) search with credential-free fallback, deep research and parallel multi-agent research for DeepSeek Harness. Free-by-default engine

Jump to install

Source facts

Repository
Mr-remon219/dsh-search-boost
Latest update
Aug 18, 2026
Category
Workflow & Automation
GitHub stars
11
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Mr-remon219/dsh-search-boost
Plugin: dsh-search-boost
Author: Mr-remon219

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-search-boost

> Search boost for DeepSeek Harness (DSH): multi-engine fused search, focused page fetching, X (Twitter) search, step-mode deep research, parallel multi-agent research, and an injected proactive-search policy.

A bundle plugin for DSH that upgrades the built-in web_search / web_fetch and registers a family of search tools.

> search-boost family >

>ProjectForLink
>--------------------
>search-boostCursor · Codex · Claude · Grok · Antigravity via MCPGitHub · npm
>dsh-search-boost (this repo)DeepSeek Harness bundle pluginyou are here
>pi-search-boostpi extensionGitHub · npm

Search engines live in lib/: on the free layer, Bing, DuckDuckGo, Yahoo, and Exa-free run in parallel; the api layer adds Antigravity CLI (when available) and keyed Tavily / Brave / Exa when keys are present (one key is enough; all three recommended for best fusion).

中文文档 → [README_zh.md](./README_zh.md)

---

Search layers

Two layers, switched at runtime with /web_change (persisted to ~/.dsh-search-boost-layer.json):

LayerEngines dialedWhen to use
free (keyless only)Bing + DuckDuckGo + Yahoo + Exa MCP (exa-free) — all live-probed, no API keysResearch loops, zero-cost runs, privacy-conscious use
api (default)Same keyless legs plus Antigravity CLI (when agy is on PATH) and keyed Tavily / Brave / Exa (when keys are present)Maximum recall; cross-engine corroboration with paid APIs

Keyless engines run in parallel so one failure never leaves you empty-handed. Fused ranking adds cross-engine co-occurrence scoring and half-life time-decay freshness.

Features

CapabilityDescription
Built-in web_search + web_fetch upgradeRegisters WebSearchProvider + WebFetchProvider and patches both seam configs, so built-in search/fetch keep native citation cards while the backend runs on this plugin's engine chain and Jina-first page reader
fused_searchMulti-engine fused retrieval with complexity routing, Grok-style query preprocessing (site: / OR / quotes), domain filters, cross-engine scoring, and 6h TTL cache. Active layer via /web_change; per-call layer override supported
/web_change/web_change free → keyless pool only; /web_change api → full pool; /web_change show → current layer + engine availability
x_searchReal-time X/Twitter: posts, users, threads. With credentials: hosted xAI tool ∥ multi-engine (site:x.com), merged and deduped. Without credentials: multi-engine + oEmbed full text (~2s), guest GraphQL user profiles, oEmbed threads. /x-login / /x-logout toggle the official path
/x-loginImport xAI credentials into ~/.dsh-search-boost-xauth.json (from ~/.grok/auth.json or -k <XAI_API_KEY>). OIDC auto-refresh; grok CLI login untouched
/x-logoutRemove /x-login credentials; x_search falls back to the credential-free chain
fetch_pageJina Reader + local HTML fallback + focus topic extraction + 24h cache
deep_researchStep-mode deep research: complex fused search + coverage analysis + gaps + suggested queries, driven by the main agent in rounds
research_parallelSub-query decomposition → native DSH subagents in parallel → merged sources
search_statsCache / tier / engine availability / x_search credential audit
Search policyInjected via systemPrompt.section: verify time-sensitive facts, route X content to x_search, prefer free engines

Installation (bundle — recommended)

From npm (recommended):

dsh plugin --profile web add dsh-search-boost          # latest
dsh plugin --profile web add dsh-search-boost@0.1.3    # pin a version
dsh plugin --profile web update dsh-search-boost       # update to a newer release

--profile <name> is required (web is the standard web-UI profile). DSH uses pnpm to resolve the package, auto-wires the dsh.bundle.patch layer, and adds it to the profile's bundle list — no manual config editing. Restart dsh --profile web.

From source (development):

dsh plugin --profile web add github:Mr-remon219/dsh-search-boost
dsh plugin --profile web add git+file:///path/to/repo

Or use the install script (syntax check → key setup → install → verification):

.\install.ps1          # Windows
./install.sh           # Linux / macOS

Verify:

dsh --profile web --dump-config   # web.searchProvider → dsh-search-boost
dsh --profile web

Troubleshooting: missing dsh or pnpm

If you run DSH via npx @deepseek-ai/dsh web, there is no global dsh binary — install globally or use npx directly:

npm install -g @deepseek-ai/dsh
# or:
npx --yes @deepseek-ai/dsh plugin --profile web add dsh-search-boost

dsh plugin needs pnpm (npm install -g pnpm or corepack).

Alternative: session-level dynamic plugin (plugin-host.js)

plugin-host.js is a single-file dynamic plugin for per-session boosts. It does not replace built-in web_search. The bundle form (above) is recommended for deployment-level integration.

Configuration (API keys)

The published bundle contains no secrets. Keys load from:

1. ~/.dsh-search-boost-keys.json or ./.search-boost-keys.json:

{ "tavily": "tvly-...", "exa": "...", "brave": "..." }

2. Environment: TAVILY_API_KEY / EXA_API_KEY / BRAVE_API_KEY

Engines without a key are dropped from the fan-out automatically.

Free layer needs zero configuration. Bing, DuckDuckGo, Yahoo, and Exa MCP (exa-free) are keyless and run in parallel. Antigravity CLI (agy) is optional and only joins in the api layer (medium/complex tiers) when installed and signed in.

x_search credentials (optional)

CommandEffect
/x-loginImport grok login → official hosted x_search path (SuperGrok / X Premium+ tier)
/x-login -k <XAI_API_KEY>Same via console.x.ai API key
/x-login statusShow credential chain
/x-logoutDisable official path; fallback chain still works

~/.grok/auth.json is never auto-consumed. Without /x-login or XAI_API_KEY, x_search uses only the credential-free chain.

Verified benchmarks (2026-08, Windows)

Free-layer engine probe (12 queries × 9 candidates)

Live benchmark (node scripts/engine-benchmark.mjs); full report in scripts/engine-benchmark-report.json.

EngineSuccessAvg latencyVerdict
bing100%~2.0s✅ free layer
ddg100%~2.2s✅ free layer
yahoo100%~2.3s✅ free layer (new in v0.1.2)
exa-free100%~4.2s✅ free layer
antigravity92%~27sapi layer only (slow, needs agy CLI)
brave-html / mojeek / searx0%rejected (429, blocked, or unreachable)

Integration scenarios

ScenarioResult
free layer fused_search5 hits in ~1.3–3.0s; cross-engine corroboration (e.g. yahoo+exa-free → score 3.29 on rust release notes)
x_search (no credentials)keyword via multi-engine + oEmbed; user via guest GraphQL (@NASA ~2s); thread via oEmbed
SSRF vs Clash TUN fake-ipLiteral 198.18/15 blocked; TUN-routed hostnames allowed (DSH_SEARCH_ALLOW_TUN_FAKEIP=0 to disable)
Headless web_search✓ free Bing/DDG/Yahoo/Exa chain
Unit + E2E tests57/57 unit tests; 14/14 black-box E2E

Architecture notes

  • Runs in the host process (Node fetch / child_process directly).
  • HTML scrapers (Bing / DDG / Yahoo) use IPv4-forced fetch — undici on Windows defaults to IPv6-first DNS, which intermittently times out against search hosts.
  • X search: official path (lib/xsearch.js) → credential-free chain (lib/xfallback.js: multi-engine + oEmbed + guest GraphQL) with sync preflight when no credentials.

Files

index.js                    — bundle entry (providers + tools + commands + policy)
lib/engines.js              — engine registry (bing / ddg / yahoo / exa-free / …)
lib/exa-free.js             — Exa MCP keyless engine
lib/layer.js                — free/api layer state (/web_change)
lib/fusion.js               — fusion scoring, tier tables, cache
lib/fetch.js                — Jina Reader + focus extraction
lib/xauth.js / xsearch.js / xfallback.js — x_search credential + official + fallback paths
lib/research.js             — deep_research + research_parallel
lib/policy.js               — proactive-search policy
cordis.patch.yml            — DSH patch layer manifest
scripts/engine-benchmark.mjs — maintainer: live free-engine probe

Publishing (maintainers)

npm test
npm publish   # prepublishOnly: syntax + tests + clean git tree

License

MIT

---

Links: Issues · search-boost · pi-search-boost

Friendly link: LINUX DO 社区