在 DeepSeek Harness 模型选择器旁一键切换搜索服务商的下拉菜单;海外大学网络常拦截 DeepSeek 官方搜索,可借此切到其他引擎规避。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-search-switcher
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Hudson-Junior-Wang/dsh-search-switcher
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
A compact web-search-engine switcher for the DeepSeek Harness composer. It renders immediately to the left of the model picker and changes the preferred engine without opening Settings or typing a slash command.
中文:在 DeepSeek Harness 输入栏的模型切换器左侧提供搜索引擎热切换下拉菜单,无需打开设置或输入命令。
Features
- Composer control next to the model picker via
conversation.input.right. - Scrollable engine list with the current engine marked.
- Reads and writes the
free-search.providersetting through the loopback bridge. - Supports the ten engines exposed by
dsh-free-search:- DuckDuckGo HTML
- DuckDuckGo Lite
- Bing
- AnySearch AI
- SearXNG
- Exa
- Tavily
- Keenable
- Perplexity
- DeepSeek Official
- Uses the Harness theme variables.
- Full keyboard support: Arrow keys open the menu from the trigger and move between engines, Home/End jump to the first/last entry, Enter/Space activate, Escape dismisses and returns focus to the trigger.
Requirements
- DeepSeek Harness Web profile with Node.js 20 or newer.
dsh-free-search>=0.4.7, which owns the settings bridge and the search provider.
The switcher only changes the preferred provider. It does not bypass provider authentication, API-key requirements, or network restrictions.
Compatibility with dsh-free-search 0.4.22
dsh-free-search 0.4.22 registers its settings namespace through the SettingsProvider.installSection() method, which only exists in @deepseek-ai/dsh-settings >= 0.1.2-alpha.2. On older harness runtimes (DSH Desktop 0.7.1 bundles 0.1.2-alpha.1; any dsh before alpha.2) that registration throws and is contained by Cordis, so the free-search namespace is never exposed: the settings bridge answers /describe with an empty namespaces list and /mutate with settings-not-exposed. The switcher then cannot read or write the provider — since v0.3.0 the menu shows that exact diagnosis instead of a generic "switch failed".
dsh-free-search |
Harness dsh-settings <= 0.1.2-alpha.1 |
Harness dsh-settings >= 0.1.2-alpha.2 |
|---|---|---|
<= 0.4.21 |
✅ works | ❌ fails to load (installSettingsSection removed) |
0.4.22 |
❌ settings-not-exposed | ✅ works |
Fix options:
- Upgrade DSH Desktop / the harness runtime to a build bundling
@deepseek-ai/dsh-settings >= 0.1.2-alpha.2(preferred —dsh-free-search0.4.22 works there as-is). - On the old runtime, patch the installed
dsh-free-search0.4.22 locally: replace itssctx.settings.installSection(...)block with the exportedinstallSettingsSection(ctx, ...)helper (identical semantics, present in the old runtime). The exact two-line diff is in the bug report on DDDMUC/dsh-free-search — please report it there so upstream ships a version compatible with both runtimes. - Or pin
dsh-free-searchat0.4.21or older while staying on the old runtime.
Blocked-network use case
Overseas university and campus networks often block api.deepseek.com, which makes the DeepSeek Official provider unavailable while the rest of the harness keeps working. This switcher exists so you can fall back to Bing, DuckDuckGo, SearXNG, or another reachable provider in one click — no Settings page, no provider editing by hand.
Screenshots
The trigger beside the model picker, and the open engine menu:


Install
Using the Harness plugin CLI:
dsh plugin --profile web add https://github.com/Hudson-Junior-Wang/dsh-search-switcher.git
If your CLI uses the profile as the current default, this is equivalent:
dsh plugin add https://github.com/Hudson-Junior-Wang/dsh-search-switcher.git
Install dsh-free-search as well if it is not already present:
dsh plugin --profile web add https://github.com/DDDMUC/dsh-free-search.git
Then restart the Harness host or reload the Web UI. The new control appears immediately left of the model selector in an active conversation.
Manual profile installation
Add the package to the profile dependencies and add dsh-search-switcher to dsh.profile.bundles. The package's cordis.patch.yml loads its entry automatically.
If the profile already contains a manually inserted dsh-search-switcher entry, remove that manual patch before using dsh plugin add; otherwise the same loader entry can be registered twice.
Development
npm test # bundle smoke test (manifest, patch, syntax)
npm run check # node --check on both lib files
The client bundle is intentionally a self-contained ModuleLoader bundle so it can be served by the Harness client-module system without a separate build step.
License
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 8801
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 8801
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4908
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 4640
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1463
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。