用 dsh-plugin-workshop 给 DeepSeek Harness 网页界面加一个零服务器插件工坊

前言

DeepSeek Harness(简称 DSH)的设计口号是「一切皆插件」:模型、工具、会话、沙箱、界面都可以换成插件,再由 Cordis 把它们组装起来。官方仓库也建议作者给仓库打上 dsh-plugin 话题,方便别人发现。

实际用起来,发现插件这件事仍然分散。GitHub 上搜 topic:dsh-plugin,结果里会夹着官方 harness 本身;社区还有独立的插件目录站点,但它不是 DeepSeek / 幻方的官方应用商店,和 DSH 核心仓库没有从属关系。想在网页界面里随手浏览、看热度、装一个包,往往还要切出终端敲 dsh plugin add

dsh-plugin-workshop 走的是另一条路:不搭市场后台,不搞账号系统,把 Steam 创意工坊那种浏览体验嵌进 DSH Web UI 侧栏,目录、搜索和趋势窗口直接问 GitHub。下面按社区目录页和 GitHub 仓库交叉核对后说明它是什么、能做什么、怎么装、怎么用。

这是什么

dsh-plugin-workshop 是一款界面增强插件,由 GitHub 用户 yyyyukari 维护,仓库为 yyyyukari/dsh-plugin-workshop,npm 包名是 @dsh-external/dsh-plugin-workshop。许可证为 MIT,主要语言是 JavaScript。社区目录将其归入「界面增强」;仓库 package.json 里当前版本为 1.6.1,并声明 dsh.client.platformweb,也就是挂在网页界面上,而不是终端 TUI。

截至 2026-08-17,GitHub 仓库星标为 26。社区目录页收录于 2026-08-15,当时展示的星标是 18,以 GitHub 一手数据为准。

它要解决的问题很具体:在已经打开的 DSH Web UI 里,用工坊式界面搜索、筛选、查看社区插件,并按仓库类型一键安装、更新或卸载。README 写明,这和 DSH_Creative_Workshop 那种中心化市场平台不同——本项目不部署控制平面,装进 profile 即可用。

核心功能

侧栏常驻入口

安装并激活后,工坊入口出现在官方「新会话」按钮正下方。README 说明实现方式是 DOM 克隆官方按钮,宽侧栏和窄侧栏都能跟上,刷新或重启后入口仍在。设置页的「插件」区域里也有一个「插件工坊」标签页,和侧栏浮层是同一套界面的两处挂载。

搜索、排序和飙升窗口

默认范围是 GitHub 话题 topic:dsh-plugin,也就是官方建议作者打上的插件标记。搜索结果会在查询里用 -repo: 排除官方 harness 等核心仓库,避免它们长期占住榜首。

排序提供「最热」和「最新」。另外有一组近似 Steam Trending 的时间窗口:近 7 天、近 30 天、近 90 天内新建的仓库,再按星标排序。这是 GitHub 搜索 API 能提供的近似,不是商店后台统计出来的真实装机增速。

中文关键词可以直接输入。README 的例子是「天气」「翻译」这类词,插件会映射到英文再去搜。

切到全站模式时,会做一次插件特征验证:检查仓库 package.json 里的 dsh 字段、cordis.yml 等特征,请求走 raw.githubusercontent.com,不消耗 GitHub 搜索 API 额度。验证不过的仓库默认滤掉。

详情页和双语

点开一张卡片可以看到星标、fork、语言、许可证、创建时间,以及轻量渲染的 README。页面上会给出手动安装命令,并提供 GitHub 直达链接。

描述可以在原文和中文机翻之间切换;详情页还能整篇翻译 README。翻译走 Google 翻译接口,结果会缓存。机翻不能当成作者官方中文文档。

智能安装、更新和卸载

详情页会先预检仓库结构,给出三级评级:可直接安装、有风险、建议手动。

  • 标准形态继续走一键安装。README 把仓库分成三类:bundle 型(package.json 声明 dsh.*)走官方 dsh plugin add;若声明了 dsh.bundle.patch,DSH 会把它加入 profile 的 bundles,补丁层自动激活。nested 型是目录树里恰好有一个 dsh 包(支持 packages/<name> 这类多层 monorepo),本地副本再 link: 子包。preset 型拷进 .agent-presets
  • 特殊结构(多包 monorepo、非插件仓库、带构建脚本等)不会自动执行安装,而是从 README 抽出作者给出的命令,只允许复制。
  • 卸载按安装路径逆向清理。README 写明:pnpm remove 失败则不动文件、不留失效链接;成功后会自动重启 dsh web 以刷新插件表。本机缺少 git 时,界面会明确提示。

工具栏还有「已安装」视图,合并 profile 依赖、激活行和本地预设,展示类型、激活状态和安装来源,并提供一键更新(pnpm update / git pull)和卸载。

额度、Token 和可选统计

搜索数据来自 GitHub Search API,浏览器直连(CORS)。匿名额度是每分钟 10 次。界面会显示剩余次数和恢复倒计时。需要更高额度时,可在工具栏填入 GitHub Personal Access Token,README 写的是每分钟 30 次,Token 只存在本机浏览器的 localStorage

特征验证和 README 拉取走 raw CDN,不占搜索额度。

零服务器是默认形态。仓库 remote/ 目录提供一份可选的 Cloudflare Worker + D1 统计服务参考实现:部署后可以显示社区装机徽章,以及按实际安装净增长计算的飙升榜。不部署则完全不影响主功能;宿主侧只在环境变量 DSH_WORKSHOP_STATS_URL 存在时才上报。README 说明上报字段是仓库全名、事件类型(install / update / uninstall)和每台机器一个匿名 UUID,不带用户身份、路径,也不持久化 IP。

安装与启用

社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:

dsh plugin add github:yyyyukari/dsh-plugin-workshop

这是目录页原文。该插件挂在 Web UI 上,仓库 README 建议明确指定 web profile:

dsh plugin --profile web add "github:yyyyukari/dsh-plugin-workshop"

README 解释:本包在 package.json 里声明了 dsh.bundle.patch,指向仓库中的 cordis.patch.ymldsh plugin add 会把它加入当前 profile 的 dsh.profile.bundles,启动时作为 bundle 补丁层自动激活,一般不用手改配置。cordis.patch.yml 里插入的插件 id 是 plugin-workshop,name 是 @dsh-external/dsh-plugin-workshop

装完后需要重启 dsh web,并刷新浏览器。侧栏「新会话」下方应出现「🧩 插件工坊」。

如果需要可复现安装,目录页建议固定 commit 哈希:

dsh plugin add github:yyyyukari/dsh-plugin-workshop#commit

把末尾的 commit 换成实际哈希。目录页同时提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。

旧流程是把包加进 profile 依赖,再手动往 $DSH_HOME/profiles/web/cordis.patch.yml 写入激活行。当前版本已声明 bundle patch,这条只在接入其它 profile、或自动激活未生效时才需要。

典型用法

激活后,点击侧栏「插件工坊」打开浮层,或到「设置 → 插件」里的同名标签页。

  1. 浏览社区插件:保持默认的「插件话题」列表,看 topic:dsh-plugin 下的仓库。
  2. 看近期新项目:时间下拉选近 7 / 30 / 90 天飙升,再按「最热」排序。
  3. 中文搜索:直接输入中文关键词,由插件映射到英文再查询。
  4. 读中文说明:工具栏打开「描述中文」;详情页需要全文时再点「翻译 README」。
  5. 安装或卸载:打开详情,先看预检评级。可直接安装的仓库用「一键安装(订阅)」;有风险或建议手动的,复制作者命令,不要指望工坊代跑。更新和卸载走详情页或「已安装」视图。
  6. 搜索被限流:工具栏齿轮里填入仅用于提高 GitHub 搜索额度的 Token。这不是登录工坊账号,工坊本身没有账号系统。

宿主侧在 webServer 上注册同源路由 /dsh-plugin-workshop/api/{status,install,update,uninstall}。安装和卸载走这些接口,并带自定义头做 CSRF 防护。浏览器侧负责界面和 GitHub 查询,README 写明浏览器半边不执行第三方插件代码。

适用场景与注意事项

比较适合这几类情况:

  • 已经在用 DSH Web UI,希望少切终端、在侧栏里找社区插件。
  • 接受「目录来自 GitHub、热度来自星标和时间窗口」,不需要中心化审核商店。
  • 需要中文关键词和机翻描述,快速扫一遍 README 再决定装不装。
  • 本机已安装 git,这样才能走 clone / pull 一类路径。

使用前需要知道边界:

  • 权限与信任。插件以当前 dsh 进程权限运行。工坊能代为执行 dsh plugin add、改 profile、重启 web 服务,等于把一部分包管理能力交给这个插件。安装工坊本身、以及经工坊再装其它插件之前,都应打开对应仓库看源码和许可证。
  • 只覆盖网页界面package.json 声明平台为 web。只用终端、不用 Web UI 的环境装上它,侧栏入口不会出现。
  • GitHub 额度。匿名搜索每分钟 10 次,填 Token 后 README 写的是 30 次。额度用尽时界面会显示倒计时,不是工坊宕机。
  • 飙升榜的含义。默认窗口是「时间范围内新建 + 按星标排序」,不是真实装机量。真·飙升榜依赖可选统计服务,未部署时没有这项数据。
  • 机翻。中文描述和 README 翻译来自 Google 接口,可能不准确,安装命令仍以仓库原文为准。
  • 和其它「工坊」不是同一个项目。社区里还有走中心化市场路线的 DSH_Creative_Workshop,以及另一个 Steam 风格商店插件 dsh-workshop(维护者 loguhan)。本文介绍的是 yyyyukari/dsh-plugin-workshop,安装命令不要混用。
  • 社区目录不是官方商店。https://deepseek-harness-plugin.com 是独立的社区站点,用来检索和展示安装命令,并不代表 DeepSeek 官方背书。

小结

dsh-plugin-workshop 把插件发现从「打开 GitHub 或目录站、再回到终端安装」收进 DSH Web UI 侧栏。它不自建服务器,搜索和趋势窗口直接使用 GitHub;安装路径尽量复用官方 dsh plugin add 和 bundle 补丁机制,特殊仓库则退回作者文档里的命令。

如果你已经在跑网页界面,又希望用一种不额外运维的方式浏览 dsh-plugin 生态,可以先看源码,再按目录页命令装进 web profile。

  • 社区目录:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-workshop/
  • GitHub:https://github.com/yyyyukari/dsh-plugin-workshop
  • DeepSeek Harness 官方仓库:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜