Preface¶
Running agents in DeepSeek Harness (DSH) often hits a bottleneck with web search: the built-in web_search / web_fetch capabilities are limited, results from a single engine can be unstable, and time-sensitive information is prone to missing detections; fetching content from X (Twitter) requires manually stitching APIs or writing fallback logic. There are also independent search MCPs in the community, but they don’t naturally align with DSH’s native toolchain and citation cards.
Below, we introduce dsh-search-boost—a DSH bundle plugin published by maintainer Mr-remon219 (GitHub 12 stars, SkillHub category: Model Inference). It integrates via an npm package, upgrades the built-in search and fetch backends, and registers a complete suite of tools including fused search, X search, and deep research, while preserving DSH’s native citation display.
What This Is¶
dsh-search-boost is a bundle plugin for DeepSeek Harness (current version 0.1.3, MIT licensed). It automatically patches the DSH configuration via cordis.patch.yml: registering WebSearchProvider and WebFetchProvider to keep the UI and citation cards for the built-in web_search / web_fetch unchanged, while switching the backend to the plugin’s multi-engine pipeline and Jina-prioritized page reading.
The plugin also exposes independent tools such as fused_search, x_search, fetch_page, deep_research, and research_parallel, and injects proactive search guidelines into systemPrompt.section (e.g., time-sensitive facts require searching, X content uses x_search).
This plugin is the DSH-specific release within Mr-remon219’s search-boost series; other releases in the series include search-boost for Cursor / MCP and pi-search-boost for pi.
Core Features¶
Dual Search Layers: Free and API¶
Use /web_change at runtime to switch the search layer, with the selection persisted to ~/.dsh-search-boost-layer.json:
| Layer | Engines Used | Use Case |
|---|---|---|
free |
Bing, DuckDuckGo, Yahoo, Exa MCP (exa-free), all without API keys, running in parallel with liveness checks | Repeated research, zero cost, avoiding consumption of paid quotas |
api (default) |
The above key-free engines, plus locally available Antigravity CLI (agy), and configured Tavily / Brave / Exa with keys |
Need higher recall, willing to use paid APIs |
Key-free engines run in parallel; a single failure won’t cause the entire retrieval to return empty. Fusion ranking includes cross-engine co-occurrence boosting and half-life time decay. In benchmarks run by the maintainer in August 2026, the free layer’s Bing / DDG / Yahoo / exa-free success rates were all 100%, with fused_search returning 5 results in approximately 1.3–3.0s.
Common switch commands:
/web_change free # Key-free engine pool only
/web_change api # Full engine pool (default)
/web_change show # View current layer and engine availability
Built-in Tool Upgrades¶
After the plugin patch, the calling methods for DSH’s original web_search and fetch_page remain unchanged, but the backend is replaced with the plugin’s engine chain and Jina Reader-prioritized fetching logic. For existing workflows, this is the migration path with the lowest cost.
fused_search: Multi-Engine Fusion Retrieval¶
fused_search offers complexity tiering, Grok-style query preprocessing (site:, OR, quotes), domain filtering, cross-engine scoring, and a 6-hour TTL cache. The search layer is controlled via /web_change, and can also be overridden per call with the layer parameter.
x_search: X / Twitter Real-Time Retrieval¶
x_search supports searching posts, users, and threads:
- With credentials (imported via
/x-login): Hosted xAI tools and multi-engine (limited tosite:x.com) run in parallel, with results merged and deduplicated. - Without credentials: Multi-engine + oEmbed full text (~2s), guest GraphQL user profiles, oEmbed threads; the maintainer’s benchmarks show the no-credential path can retrieve @NASA user profiles.
Credential management:
/x-login # Import from ~/.grok/auth.json
/x-login -k <XAI_API_KEY> # Use console.x.ai API key
/x-login status # View credential chain
/x-logout # Remove credentials, revert to no-credential chain
~/.grok/auth.json is not automatically read; if /x-login hasn’t been executed and there’s no XAI_API_KEY, only the no-credential fallback chain is used.
Page Fetching and Research Tools¶
| Tool | Function |
|---|---|
fetch_page |
Jina Reader + local HTML fallback + focus targeted extraction + 24h cache |
deep_research |
Step-mode deep research: complex fusion retrieval, coverage analysis, gap identification, suggested queries, driven by the main agent over multiple turns |
research_parallel |
Sub-query decomposition → DSH native subagent parallel execution → source merging |
search_stats |
Cache, tiering, engine availability, and x_search credential audit |
Installation and Enabling¶
Recommended installation is via npm as a bundle. The --profile web parameter is required (web is the common Web UI profile); DSH pulls the package via pnpm and automatically applies dsh.bundle.patch, with no need to manually edit configuration files.
dsh plugin --profile web add dsh-search-boost # Install latest version
dsh plugin --profile web add dsh-search-boost@0.1.3 # Specify version
dsh plugin --profile web update dsh-search-boost # Update
After installation, restart DSH:
dsh --profile web
Verify the plugin is active:
dsh --profile web --dump-config # web.searchProvider should be dsh-search-boost
If there’s no global dsh command on the local machine (e.g., only using npx @deepseek-ai/dsh web to start), you can first install it globally, or execute the plugin command directly via npx:
npm install -g @deepseek-ai/dsh
# Or:
npx --yes @deepseek-ai/dsh plugin --profile web add dsh-search-boost
dsh plugin requires pnpm (npm install -g pnpm or enabling via corepack). The plugin requires Node >= 22.13.
Install from source (development scenario):
dsh plugin --profile web add github:Mr-remon219/dsh-search-boost
On Linux / macOS, you can also use ./install.sh from the repository (on Windows, .\install.ps1); the script will perform syntax checks, key configuration prompts, installation, and verification sequentially.
Typical Usage¶
Zero-Configuration Start (Free Layer)¶
The free layer does not require API keys. After installing and restarting, simply let the agent search in DSH conversations—the built-in web_search will use the Bing / DDG / Yahoo / Exa-free parallel chain. To explicitly limit costs, switch layers first:
/web_change free
/web_change show
Configuring Paid APIs (API Layer)¶
The distributed package does not include keys. Write them in ~/.dsh-search-boost-keys.json or the project directory’s ./.search-boost-keys.json:
{ "tavily": "tvly-...", "exa": "...", "brave": "..." }
Alternatively, provide them via environment variables TAVILY_API_KEY, EXA_API_KEY, BRAVE_API_KEY. Engines missing keys are automatically removed from the parallel list; a single key allows it to work, but the documentation recommends configuring all three for optimal fusion results.
Switch back to the full engine pool:
/web_change api
Deep Research and Parallel Investigation¶
In conversations, instruct the agent to call deep_research for step-by-step deep research, or call research_parallel to break complex issues into sub-queries, retrieve them in parallel, and merge sources. search_stats can view current cache, engine tiering, and x_search credential status.
Use Cases and Considerations¶
Who is this for:
- Developers who frequently conduct web research in DSH and need more stable recall than a single engine.
- Teams that want to retain the built-in
web_search/fetch_pagecitation cards while adding multi-engine fusion, X search, and deep research capabilities. - Users who want to start with zero-cost verification using the
freelayer, then integrate paid APIs like Tavily / Brave / Exa as needed.
Before using, please note:
- The plugin runs with the permissions of the current DSH process, making external HTTP requests and reading local credential files (e.g.,
~/.dsh-search-boost-keys.json). Before installation, review the source code and MIT license to confirm that network egress and key storage policies meet your environment’s requirements. - SkillHub (directory page) is a community plugin directory, not officially affiliated with DeepSeek / High-Flyer; DSH itself follows the “everything is a plugin” philosophy, with specific capabilities determined by the selected plugin.
- The repository also provides a session-level dynamic plugin
plugin-host.js, suitable for single-session trials, which does not replace the built-inweb_search; for deployment-level integration, the bundle method above is recommended. - The maintainer documents SSRF protection behavior: literal
198.18.0.0/15is blocked; when using Clash TUN fake-ip, you can disable the related bypass withDSH_SEARCH_ALLOW_TUN_FAKEIP=0.
Conclusion¶
dsh-search-boost encapsulates multi-engine fusion search, page fetching, X retrieval, and deep research into a bundle plugin directly consumable by DSH, with /web_change to switch between the zero-cost free layer and the full api layer. If you are developing agents in DSH that require stable web capabilities, you can install and verify it following the steps in this article.
- SkillHub directory page: https://www.skillhub.cn/plugins/Mr-remon219/dsh-search-boost
- GitHub repository: https://github.com/Mr-remon219/dsh-search-boost