DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-search-picker

Search Picker

DeepSeek Harness 的侧边栏搜索提供商选择器:从桌面侧边栏在 DeepSeek Messages、DeepSeek Search API、OpenCode Go、Tavily 和 Exa 之间切换 ctx.web。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:xiaoxiaosrm/dsh-search-picker#9251dcd98795301221bf19d91738d7641a048e3c
README兼容性版本

兼容性与来源证明

Search Picker 以 dsh-search-picker 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/21

版本

0.1.0stable
2026/10/21

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/21
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:27 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel/You.com 无需密钥;通过 MCP 支持 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek(官方 + 原生工具/搜索)/Baidu/Kimi/Aliyun/Douba)Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Ab Market Researchdsh-ab-market-research一个树外 DeepSeek Harness 插件:将 trade_search 工具(多轮扩展方面的查询规划、出版商级别排序、来源多样性、JSON 快照)及其浏览器卡片集成在一个包中。Arisdsh-arisARIS research-workflow 技能作为 DeepSeek Harness 捆绑包:包含 82 项技能,以及通过 Codex 进行的跨模型对抗性审查。

README

dsh-search-picker

English | 中文

A DeepSeek Harness (DSH) bundle plugin that puts a “Search: …” button at the bottom of the desktop sidebar (right above the Settings row) and switches ctx.web's search backend with one click.

The picker writes the official web settings namespace's searchProvider field — the exact same field edited by Plugins › Web search in the DSH settings UI. Therefore:

  • switches take effect immediately, no restart;
  • the choice survives restarts (persisted in the host settings document);
  • it never fights the official settings page — both edit the same field.

Engines

idEngineCredentialNotes
deepseek-officialDeepSeek official MessagesDEEPSEEK_API_KEYBuilt in. Anthropic Messages + web_search_20250305; each search consumes model tokens
deepseek-search-apiDeepSeek official Search APIDEEPSEEK_API_KEYBuilt in. Direct retrieval endpoint; no model tokens
opencode-goOpenCode GoOPENCODE_GO_API_KEYProvided by this plugin. Anthropic Messages + x-opencode-session header; ≈ $0.01 per search
tavilyTavilyTAVILY_API_KEYProvided by this plugin; greyed out until a key is configured
exaExaEXA_API_KEYProvided by this plugin; greyed out until a key is configured

Engines without credentials are greyed out in the menu. Selecting an unregistered/unavailable provider directly in the settings page makes web_search return an explicit WEB_PROVIDER_* error instead of silently falling back to another engine.

UI

dsh-search-picker menu in the DSH desktop sidebar

The button sits at the bottom of the sidebar, right above the Settings row. The menu is a position: fixed popover: its width follows the sidebar content width (sidebar defaults to 280 px, draggable 264–420 px → menu 240–396 px) and updates live while dragging, so it is never clipped by the sidebar column's overflow: hidden. When the sidebar collapses to the 56 px icon rail, the menu pops out at 280 px to the right.

The menu background is opaque: white in the light theme, dark grey in the dark theme (--dsw-alias-bg-layer-1, theme-aware), with the official popover hairline stroke and soft elevation shadow (--dsw-elevation-panel). The official menu material (--dsw-specific-menu + backdrop-filter blur) is intentionally not used: that surface is only 58 % opaque and relies on the blur to look right, so without the blur the sidebar text bleeds through.

Install (desktop profile)

  1. Clone the repo to a fixed location:

    git clone https://github.com/xiaoxiaosrm/dsh-search-picker.git D:\tools\dsh-search-picker
    
  2. Edit %DSH_HOME%\profiles\desktop\package.json (POSIX: $DSH_HOME/profiles/desktop/package.json):

    • add the dependency "dsh-search-picker": "file:D:/tools/dsh-search-picker";
    • append "dsh-search-picker" to dsh.profile.bundles.
  3. In %DSH_HOME%\profiles\desktop, run pnpm install.

  4. Fully quit and reopen the DSH desktop app. The loader scans profile bundles only at startup, and the client half is read into memory at startup too — so a page refresh is not enough after updating the plugin.

If the file: dependency fails to resolve, copy this directory into %DSH_HOME%\profiles\desktop\node_modules\dsh-search-picker and add the package name to dsh.profile.bundles instead.

Configuration

The bundle ships a default patch entry (cordis.patch.yml). Every field is optional; omitted fields fall back to the defaults below.

- insert:
    - id: search-picker
      name: dsh-search-picker
      config:
        opencodeGo:
          baseURL: https://opencode.ai/inference/go/anthropic/v1
          model: deepseek-v4.1-flash
          maxTokens: 4096
          maxUses: 5
        tavily:
          baseURL: https://api.tavily.com
          apiKeyEnv: TAVILY_API_KEY
        exa:
          baseURL: https://api.exa.ai
          apiKeyEnv: EXA_API_KEY

Override any value by targeting the same entry id from your profile's cordis.patch.yml.

Credentials

This plugin never reads or writes the credentials file directly. At search time it resolves the credential reference named by apiKeyEnv through ctx.credentials, falling back to the process environment. A missing credential raises WEB_PROVIDER_CREDENTIAL_MISSING, and the message names the referenced variable.

Fallback

  1. Switch back to deepseek-official in the menu (or use the official Plugins › Web search page).
  2. Remove dsh-search-picker from the profile package.json dependencies and from dsh.profile.bundles, run pnpm install, restart the desktop app.

Troubleshooting

  • deepseek-official returns 404: check that neither the profile patch nor another plugin overrides web-search-deepseek.baseURL. It must stay on the built-in default (https://api.deepseek.com/anthropic/v1); pointing it at a search provider's host breaks the provider.
  • Menu width does not follow the sidebar: the popover measures its anchor with ResizeObserver; after profile/bundle changes, restart the desktop app to reload the client bundle.

Testing

npm run check                # node --check on all three entry files
npm test                     # node --test test/engines.test.mjs
node test/engines.test.mjs   # single-process fallback

The single-process fallback exists for Windows sandboxes that block child-process pipes (spawn EPERM).

Known limitations

  • The engine list in the menu is fixed. If the official providers' apiKeyEnv is remapped to another credential name, the greyed-out state still checks the default reference name.
  • Conflicts with plugins that take over web.searchProvider at runtime (dsh-free-search, dsh-web-search-free, …). Do not install them together.
  • opencode-go's x-opencode-session uses a random in-process UUID when the current session id is unavailable (the Go relay only needs it to be opaque and stable).

Compatibility

  • DSH desktop 0.2.1-rc.2 (declared in package.json → dsh.compatibility).
  • Client half targets the web platform and injects @deepseek-ai/dsh-api-remotes, @deepseek-ai/dsh-client-locale, @deepseek-ai/dsh-client-ui-settings.

License

MIT © 2026 xiaoxiaosrm