DeepSeek Harness plugin

dsh-plugins-yugasun

Multi-provider web search for DeepSeek Harness: Baidu, Doubao, Tavily, and Exa backends for ctx.web.

Jump to install

Source facts

Repository
yugasun/dsh-plugins
Latest update
Aug 21, 2026
Category
Docs & Rendering
GitHub stars
3
Format
plugin
Package path
packages/dsh-web-search
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
packages/dsh-web-search/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/yugasun/dsh-plugins/tree/HEAD/packages/dsh-web-search
Plugin: dsh-plugins-yugasun
Author: yugasun

Check the source files

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

File explorer4 files
README.mdSource · read only
README language

dsh-web-search

![npm](https://www.npmjs.com/package/@yugasun/dsh-web-search)

Multi-provider web search for DeepSeek Harness. It registers Baidu, Doubao, Tavily, Exa, and Serper backends into ctx.web. The model-facing web_search / web_fetch tools stay the official @deepseek-ai/dsh-tool-web schema.

Compatible with DeepSeek Harness 0.1.0-rc.7.

中文文档

> Installing a plugin runs third-party code in the harness process with your permissions. Review the source before you install.

Install

From npm:

dsh plugin --profile web add @yugasun/dsh-web-search

From a clone of this monorepo (relative paths resolve against the profile directory, not your cwd — use $PWD. After a link: install the plugin resolves @deepseek-ai/* from the DSH profile / install, so repo node_modules is not required to boot):

dsh plugin --profile web add "$PWD/packages/dsh-web-search"
dsh plugin --profile desktop add "$PWD/packages/dsh-web-search"

Restart dsh web. Settings has a Web search page. Turn Custom search off to keep DSH built-in web_search (deepseek-official) and web_fetch (http); turn it on to use Baidu / Doubao / Tavily / Exa / Serper. Page extract is independent: auto follows Tavily/Exa search, or pin Tavily Extract, Exa Contents, or DSH http.

![Web search settings](docs/settings.png)

From Git (subdirectory):

dsh plugin --profile web add github:yugasun/dsh-plugins#path:packages/dsh-web-search

Uninstall:

dsh plugin --profile web remove @yugasun/dsh-web-search

Providers

IdBackendKeyNotes
baiduQianfan web search POST /v2/ai_search/web_search (default) or intelligent search POST /v2/ai_search/chat/completionsBAIDU_API_KEY or QIANFAN_API_KEYDefault ordinary search returns titles, links, and snippets (faster, no model). Switch to AI search in Settings for a model summary; that path is slower, and knowledge-style queries often have no references — the plugin then recovers https?:// URLs from the summary when it can.
doubaoDoubao Search Custom POST /search_api/web_search (default) or Global POST /search_api/global_searchDOUBAO_API_KEY or DOUBAO_SEARCH_API_KEYCreate the key at the Doubao Search console. Custom is better for Chinese results; Global covers international pages. An old Ark endpoint in settings is remapped automatically.
tavilyTavily Search POST /search and Extract POST /extractTAVILY_API_KEYLLM-oriented snippets plus an optional answer. Available as a web_fetch backend.
exaExa Search POST /search and Contents POST /contentsEXA_API_KEYSearch returns links only (no answer). Default provider id is exa; change exaProviderId if the official @deepseek-ai/dsh-web-search-exa is also installed. Available as a web_fetch backend.
serperSerper Google Search POST /searchSERPER_API_KEYOrganic titles, links, and snippets. An answer box or knowledge-graph description is returned as content when present. Optional serperGl / serperHl set country and language. Not a web_fetch backend.

Keys are read in this order: plugin settings (~/.dsh/settings.yaml), DSH credentials (TAVILY_API_KEY and friends), then the launch environment / ~/.dsh/.env. Settings secrets are never echoed back to the client. Clear in Settings, or emptying the field, unsets that key from the YAML document. A export TAVILY_API_KEY=… inside an agent bash tool does not reach the harness process.

Selection

Installing the plugin can retarget official web_search at this package's facade id dsh-web-search. Settings → Web search has a Custom search switch:

  • Off: web_search uses DSH built-in deepseek-official; web_fetch uses http
  • On (default): pick the search backend below

- Auto (default): first configured backend in order Baidu → Doubao → Tavily → Exa → Serper. If that request fails with a recoverable error, the next configured backend is tried and the harness log records which one was skipped. An explicit backend does not fail over. - Explicit: Baidu / Doubao / Tavily / Exa / Serper

  • Page extract (independent of search)

- Auto (default): Tavily Extract or Exa Contents when that search backend is active; otherwise DSH built-in http - Built-in HTTP / Tavily / Exa: pin web_fetch regardless of which search backend is active

  • Each backend card has Test connection, which runs a one-result web_search against that vendor. Status "configured" still means a key is present; the probe tells you whether the key works.

Develop

pnpm --filter @yugasun/dsh-web-search test
pnpm --filter @yugasun/dsh-web-search build

License

[MIT](LICENSE)