
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-web-search-router
Advanced tools
中文 | English
搜索路由插件:按「用的是哪个模型通道」决定走官方搜索还是你自己的搜索服务,并且在两者都不可用时给出可读的原因,而不是一句 500。
DSH 自带的搜索只对官方 DeepSeek 账号通道生效。用第三方模型通道时搜索会静默失败,用户看到的只是一个模糊的错误。这个插件把两种情况都接上:
| 当前通道 | 走哪条路 |
|---|---|
| 官方 DeepSeek 账号 | Anthropic Messages 协议里的 web_search 工具 |
| 第三方通道 | 你自己配置的搜索服务(Parallel 兼容接口) |
设置 → 搜索,填搜索服务的 API Key 与接口地址。
凭据按以下顺序解析,前一个取不到就用下一个:
DEEPSEEK_API_KEY搜索失败时右下角弹提示,说明具体是哪一步不行:
提示 12 秒自动消失,也可以手动确认。
推荐用 DSH 内置插件安装程序。 打开「设置 → 内置插件」,在安装输入框里粘贴下面这一串(就是 pnpm add 后面的地址),点安装,再重启应用:
github:MCJF28/dsh-web-search-router
安装程序会自动把包写进 dsh.profile.bundles,不用手动改任何文件。
习惯命令行的话:先完全退出应用,再在 profile 目录执行
cd ~/.dsh/profiles/desktop
pnpm add github:MCJF28/dsh-web-search-router
然后把包名加进 dsh.profile.bundles,重启应用。
如果你的 profile patch 里 web 这一行被 base 包写死了 searchProvider: deepseek-official,需要在 profile 的 cordis.patch.yml 里覆盖它,否则这个插件注册的 provider 不会被选中:
- id: web
name: "@deepseek-ai/dsh-web"
config:
searchProvider: custom-search
fetchProvider: http
原因:resolveProvider 只在 configuredId === undefined 时才遍历 provider 列表找可用项。一旦配置里写死了名字,插件的 available() 根本不会被调用。
English | 中文
Channel-aware search routing for DeepSeek Harness: which provider a search uses depends on which model route is active, and when neither side is usable you get a readable reason instead of a bare 500.
The built-in search only works on the official DeepSeek account route. On a third-party model route it fails silently, leaving the user with a vague error. This plugin wires up both sides:
| Active route | What gets used |
|---|---|
| Official DeepSeek account | The web_search tool over the Anthropic Messages protocol |
| Third-party route | Your own search endpoint (Parallel-compatible API) |
Settings → Search, then fill in the API key and endpoint of your search service.
Credentials resolve in this order; the first one that exists wins:
DEEPSEEK_API_KEY in the credential storeWhen a search fails, a notice appears in the bottom-right corner and names the step that failed:
Notices disappear after 12 seconds, and can also be dismissed manually.
The built-in plugin installer is the recommended way. Open Settings → Built-in Plugins, paste the string below into the install box — it is exactly what follows pnpm add — then press install and restart the app:
github:MCJF28/dsh-web-search-router
The installer writes the package into dsh.profile.bundles for you; no manual file edits.
Prefer the command line? Quit the app completely first, then from the profile directory:
cd ~/.dsh/profiles/desktop
pnpm add github:MCJF28/dsh-web-search-router
Add the package name to dsh.profile.bundles yourself and restart the app.
If your profile patch has the web row hard-coded to searchProvider: deepseek-official by the base bundle, override it in the profile's cordis.patch.yml — otherwise the provider this plugin registers is never selected:
- id: web
name: "@deepseek-ai/dsh-web"
config:
searchProvider: custom-search
fetchProvider: http
Why: resolveProvider only walks the provider list looking for an available one while configuredId === undefined. Once a name is hard-coded in configuration, the plugin's available() is never even called.
FAQs
搜索路由:按用户选择与模型渠道决定使用官方 DeepSeek 搜索还是自定义搜索;两者都不可用时给出明确提示。
The npm package dsh-web-search-router receives a total of 269 weekly downloads. As such, dsh-web-search-router popularity was classified as not popular.
We found that dsh-web-search-router demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.