MYCF711/dsh-websearch-direct
免 API Key 的 dsh 联网搜索 / 网页抓取插件:引擎=逻辑源、入口=直连/镜像/加速路由自动回退,不消耗任何模型 token
Project Overview项目介绍
dsh-websearch-direct is a native DeepSeek Harness plugin that delivers keyless web search and page-fetching to dsh agents without consuming any model tokens. It ships as a cordis bundle with a bundle-manifest and a cordis.patch.yml that retargets the dsh web seam's search and fetch providers to the plugin's own implementation, registering engines such as bing, baidu, duckduckgo, github, gitlab, codeberg, gitea, npm, crates, packagist, nuget, rubygems, and huggingface, with composite engines repo and pkg that fan out across source engines in rotation. Installation is simply dropping the plugin under $DSH_HOME/profiles/node_modules; the README documents an install.mjs helper and emphasizes that optional imports with try/catch fallbacks protect against removed exports in @deepseek-ai/dsh-settings or missing schemastery resolutions.
In everyday use, an agent queries the plugin and autoRoute classifies the intent, dispatching code lookups to repo and dependency lookups to pkg while generic web searches follow engineOrder. Each source exposes multiple routes (direct origin plus accelerator mirrors such as gh-proxy.com, npmmirror, hf-mirror.com) that retry in sequence with the actual hit recorded in each result's via field; routePolicy can be auto, direct-first, or accel-first. A v0.4 settings card under Settings → Plugins → websearch-direct lets users add an optional GitHub or Gitee token, set proxyUrl, toggle per-route acceleration, add up to eight custom URLs per category, and reset everything through a two-step confirmation, with every change persisted to <DSH_HOME>/storages/websearch-direct/ui-config.json and applied without restart. This workflow suits Chinese-speaking dsh operators who want agent-grade web retrieval while keeping their desktop harness running in a no-LLM, no-key posture.
The plugin only requires dsh's bundled @deepseek-ai/* packages and degrades gracefully when optional ones are missing, but DuckDuckGo and huggingface.co routes stay unreachable on a stock direct connection, so a proxyUrl such as http://127.0.0.1:7890 must be configured to reach overseas endpoints; dsh does not inherit WorkBuddy's HTTP_PROXY injection. Credentials are strictly bound to tier-0 direct endpoints, so a githubToken is sent only to api.github.com and never to third-party accelerators, with a 401-vs-anonymous-200 forensic test described in the README. Known limits include anonymous GitHub rate limits around ten requests per minute, a 15-second request timeout, 20000-character fetch cap, eight-results default per query, and 12000 ms per composite-member timeout. The license is GPL-3.0, the first-run recommendation is to open the settings card and configure proxy plus any optional tokens before relying on overseas routes.
dsh-websearch-direct 是面向 DeepSeek Harness(dsh)的免 key 联网工具,属于 dsh 原生 cordis 插件。它通过 bundle-manifest 与 cordis.patch.yml 把 dsh 的 web seam 搜索与抓取 provider 接管,让 agent 在不调用任何 LLM 的情况下获得网页检索与正文抓取能力。安装方式是在 dsh profiles 目录下放入该插件,无需任何 API Key 或模型 token 即可启动,自带的设置卡片位于「设置 → 插件 → 联网搜索(直连优先)」,可热更新全局代理、GitHub/Gitee Token、四大类入口的代理开关以及自定义网址。
典型使用流程是:用户在 dsh 对话中发起检索意图,插件按 autoRoute 自动识别为 repo 或 pkg 组合任务,调用对应引擎并按 routePolicy 排序的多入口回退,返回带 via 标注来源的结果。组合引擎会把 GitHub、GitLab、Codeberg、Gitea 并入 repo,把 npm、crates、packagist、nuGet、RubyGems、HuggingFace 并入 pkg,每个成员独立超时并写入 failures。目标用户是希望在不消耗模型 token 的前提下,让 dsh agent 获得类联网搜索体验的本地中文开发者与自动化脚本作者。
依赖项仅为 dsh 宿主自带的 @deepseek-ai/* 包,插件对其做可选导入并 try/catch 降级,不会因 schemastery、dsh-tools 等导出移除而崩溃。可选依赖包括填入 proxyUrl 后才能使用的 DuckDuckGo 与 huggingface.co 海外端点,以及提升 GitHub 频率上限的 githubToken。许可为 GPL-3.0,代码仓库直连入口 10 次/分钟匿名限流,单请求超时 15 秒,抓取正文上限 20000 字符;首次使用建议直接进入设置卡片完成代理与自定义网址配置。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-websearch-direct(MYCF711/dsh-websearch-direct)
仓库:https://github.com/MYCF711/dsh-websearch-direct
本站详情页:https://www.yhbd.top/plugins/mycf711-dsh-websearch-direct/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 GPL-3.0 · ⭐ 3 · 最近提交 2026-09-29 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 3 stars - very few users, little community feedback星标只有 3,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:MYCF711/dsh-websearch-direct
把 MYCF711/dsh-websearch-direct 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-websearch-direct
给 DeepSeek Harness(dsh)用的 免 API Key 联网搜索 / 网页抓取插件。
零配置装上就能用:不填任何 Key、不走任何 LLM、不消耗模型 token。 模型自己读取返回的检索结果 —— 也就是让 dsh 里的 agent 获得和「联网搜索工具」一样的能力。
v0.4 起内置设置卡片:dsh Web UI → 设置 → 插件 → 「联网搜索(直连优先)」, 可配 API Key(可选)、全局代理、按入口开关代理、添加自定义网址、一键恢复默认, 改动即时生效、无需重启。
v0.4:设置页卡片(浏览器半边)
设置 → 插件 页里属于本插件的栏位,实现遵循 dsh 的「插件自带浏览器半边就拥有 自己的卡片」契约(与 dshmarket 同一套机制):
| 组成 | 位置 | 作用 |
|---|---|---|
| settings 命名空间 | 宿主半边 settings.register('websearch-direct', …) |
让「插件配置」标签页列出本插件 |
| HTTP 数据面 | /dsh-websearch-direct/api/config(GET/POST)、/api/reset(POST) |
卡片读写配置;改动即时生效(Key/代理/路由排序/自定义引擎全部热更新,无需重启) |
| 浏览器半边 | client/client.js(dsh.client 声明 + ./client 出口) |
认领 settings.plugin.item 槽位(key=websearch-direct),渲染卡片 |
卡片能力:
- API Key(可选):留空 = 免 Key 直连(默认,走本机直连出口而非 agent 模型); 填写 = 代码仓库引擎改用此 Key(GitHub Token)提高频率上限。密码框不回显现值。
- 全局代理地址:留空不走全局代理;填了之后单入口的代理开关才对非镜像入口生效。
- 四大类优先入口:代码仓库(GitHub/GitLab/Codeberg/Gitea/Gitee)、包管理 (npm/crates/Packagist/NuGet/RubyGems)、模型仓库(HuggingFace)、网页搜索 (Bing 中国/百度/DuckDuckGo)。每个入口一行:名称 + 实际地址 + 直连/加速标记, 行可展开,展开后是**「此入口走代理」开关** —— 开了排到最前并走代理 (加速镜像类入口本身就是代理性质),关了强制直连,改过会标「已改」可单条恢复。
- 添加自定义网址:每个大类下小按钮添加(上限 8 条),按兼容类型接入 —— 代码仓库=Gitea 兼容、包管理=npm registry 兼容镜像、模型仓库=HF 镜像兼容、 网页搜索=Bing 兼容。自定义引擎自动并入对应的多源合并搜索。
- 恢复默认(防呆):两段式确认(点一次变「⚠ 确认恢复默认?」,4 秒不点自动 退回),执行后清空 Key/代理/全部开关/自定义网址。
配置持久化在 <DSH_HOME>/storages/websearch-direct/ui-config.json,与 cordis
配置解耦:卡片是这个文件的唯一写者。
它解决什么
| 通道 | 凭据要求 | 联网方式 | 模型 token |
|---|---|---|---|
官方 deepseek-official |
必须 DEEPSEEK_API_KEY |
DeepSeek 服务端 | 每次搜索烧一整轮 |
dsh-web-search-free |
必须 Tavily / Exa / Jina / Brave… 的 Key | dsh 宿主进程直连海外端点 | 0 |
delef/dsh-free-web-search |
无(10 引擎 fallback) | 直连海外 + Bing | 0 |
| 本插件 | 无 | dsh 宿主进程直连国内可达端点(可配代理) | 0 |
delef/dsh-free-web-search功能更全,但它 import 了@deepseek-ai/dsh-settings的installSettingsSection, 而该导出在 dsh-settings0.1.5-rc.2里已被移除,实测报does not provide an export named 'installSettingsSection'—— 在 dsh 0.1.5-rc.2 上装得上但加载失败。 本插件对它用到的每个@deepseek-ai/*包都做可选导入 + try/catch, 解析不到就降级(最差情况只是少一个工具,搜索本身照常), 因此不受这类破坏性变更影响。
v0.3:引擎 = 逻辑源,入口 = 路由
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
anysearch-team/anysearch-dsh
DDDMUC/dsh-free-search
wxkingstar/SpecFusion
A3Boy/dsh-web-tools
UncleK/dsh-think-translate
cyijun/dsh-surfing-plugin
phoenixlucky/zerotoken-skill