wingsky-1/dsh-plugin-hub
DSH (DeepSeek Harness) web GUI plugin collection — notifications, provider usage, LAN proxy, MCP manager, idle archive, file preview. Install: dsh plugin --profile web add @wingsky-1/dsh-plugins-all
安装Install
dsh plugin --profile web add @wingsky-1/dsh-plugins-all
把 wingsky-1/dsh-plugin-hub 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-plugin-hub
简体中文 | English
DSH(DeepSeek Harness)Web GUI 插件集,npm 分发:一键装全家桶,或按需单装。
- 聚合包:
@wingsky-1/dsh-plugins-all(一键装齐全部插件) - 单插件:
@wingsky-1/dsh-*(按需安装) - 全部走 DSH 官方 profile 机制挂载(
dsh.bundle.patch),不改 DSH 源码;发布物自包含,构建期内联打包
插件列表
| 包名 | 功能 | 文档 | 状态 |
|---|---|---|---|
@wingsky-1/dsh-notifier |
审批/完成/错误事件通知(浏览器 Notification + 系统 toast) | README | ✅ 已发布 |
@wingsky-1/dsh-provider-usage |
多 provider 用量悬浮框(按 Provider 适配器框架,内置 OpenCode Go) | README | ✅ 已发布 |
@wingsky-1/dsh-lan-proxy |
局域网访问 dsh web UI(HTTP/HTTPS/WS 转发 + TLS + HTTP 响应压缩,Brotli/gzip 自适应) | README | ✅ 已发布 |
@wingsky-1/dsh-mcp-manager |
MCP 服务器管理器(stdio/HTTP,工具注册给模型) | README | ✅ 已发布 |
@wingsky-1/dsh-idle-archive |
会话闲置提醒归档 | README | ✅ 已发布 |
@wingsky-1/dsh-web-file-preview |
点击对话文件链接在 web 端预览(图片/文本/Markdown/代码/Diff) | README | ✅ 已发布 |
已停止维护:
@wingsky-1/dsh-skill-explorer(技能中心/skill 管理)已不再维护 (npm 已 deprecate,插件包与聚合包均已移除)。web UI 侧已有更优实现@linxin666/dsh-client-ui-skill-explorer(dsh-web-ui仓库packages/dsh-skill-explorer), 支持符号链接识别、链接技能安全处理等,请直接使用 web UI 内置技能中心,勿再安装本包。
dsh-memory(项目长期记忆)暂未包含,规划中。
从旧包迁移(升级指导)——装过 dsh-gzip / dsh-opencode-usage 的请展开
历史上发布过、现已不再分发的两个旧包,请按下面方式迁移(均先卸载旧包再安装新包,装完重启 dsh web):
@wingsky-1/dsh-gzip → 已合并进 @wingsky-1/dsh-lan-proxy(0.1.9 起)
HTTP 响应压缩能力整体并入 lan-proxy(默认开启,Brotli/gzip 按 Accept-Encoding 自适应协商,SSE 流式响应豁免,可配置)。 卸载 dsh-gzip、安装 dsh-lan-proxy 即获得等价压缩能力:
dsh plugin --profile web remove @wingsky-1/dsh-gzip
dsh plugin --profile web add @wingsky-1/dsh-lan-proxy
@wingsky-1/dsh-opencode-usage → 已重构更名为 @wingsky-1/dsh-provider-usage
重构为多 provider 适配器框架(内置 OpenCode Go,支持用户自定义取数适配器)。
patch id 由 ui-dsh-opencode-usage 变为 ui-dsh-provider-usage,配置项亦有调整,
不会自动迁移——重装后请在设置面板重新确认配置(如 apiKey、baseUrl):
dsh plugin --profile web remove @wingsky-1/dsh-opencode-usage
dsh plugin --profile web add @wingsky-1/dsh-provider-usage
两个旧包的 npm 版本均已标记 deprecated(安装时会提示迁移去向)。
安装
前提:已安装 DeepSeek Harness 且 dsh web 可正常启动(未全局安装 dsh 见下方「未全局安装 dsh」)。
安装插件(add)
# 一键装全家桶(推荐)
dsh plugin --profile web add @wingsky-1/dsh-plugins-all
# 或单独安装(按需)
dsh plugin --profile web add @wingsky-1/dsh-notifier
dsh plugin --profile web add @wingsky-1/dsh-lan-proxy
卸载插件(remove)
dsh plugin --profile web remove @wingsky-1/dsh-notifier
更新插件(update)
# 更新单个插件到最新
dsh plugin --profile web update @wingsky-1/dsh-notifier
# 更新全家桶(聚合包 + 其拉齐的子包)到最新
dsh plugin --profile web update @wingsky-1/dsh-plugins-all
# 更新当前 profile 下全部插件
dsh plugin --profile web update
安装 / 卸载 / 更新后都需重启一次
dsh web(bundle 层只在启动时组合),侧边栏/设置页才反映变化。
指定版本号(@version)
省略 @版本号 即安装默认 latest(推荐)。仅当 registry 尚未同步到最新、或最新版在你的环境有问题时,在包名后追加 @版本号,add 与 update 通用:
# 安装指定版本(而非 latest)
dsh plugin --profile web add @wingsky-1/dsh-notifier@<版本号>
# 更新到指定版本
dsh plugin --profile web update @wingsky-1/dsh-notifier@<版本号>
未全局安装 dsh
若本机没有全局 dsh 命令,用 npx 临时拉起(dsh plugin 底层调用 pnpm,故仍需本机事先装好 pnpm 与 Node.js):
# 装全家桶
npx @deepseek-ai/dsh plugin --profile web add @wingsky-1/dsh-plugins-all
# 单独安装(带版本号)
npx @deepseek-ai/dsh plugin --profile web add @wingsky-1/dsh-notifier@<版本号>
# 卸载 / 更新(同理,把 add 换成 remove / update)
npx @deepseek-ai/dsh plugin --profile web remove @wingsky-1/dsh-notifier
npx @deepseek-ai/dsh plugin --profile web update @wingsky-1/dsh-plugins-all
npx每次会临时拉取@deepseek-ai/dsh;若想固定,可pnpm add -g @deepseek-ai/dsh(或npm i -g @deepseek-ai/dsh)后直接使用dsh。
独立安装与全家桶:二选一(0.1.5 起)
独立包与聚合包的 patch id 相同(ui-*)。请只选一种安装方式——
同时装 dsh-plugins-all 与任一 @wingsky-1/dsh-lan-proxy 等独立包会导致同名 entry
重复,dsh web 启动时报 duplicate 错误(可发现,不代表损坏)。需要调整时:
卸载聚合包,或卸载对应独立包,重启即可。
从 0.1.x 升级(patch id 迁移)
0.1.5 起独立包 patch id 由旧短名(如 notifier、lan-proxy、dsh-gzip)统一改为
ui-<name>(如 ui-dsh-notifier)。若你此前单独安装过独立包,profile 中可能残留旧
id 行——建议确认后通过以下命令检测,并重装对应包拉取新 patch:
# 检测 profile 中是否仍引用旧 id(home 级与 profile 级)
grep -rnE '^\s*id:\s*(dsh-gzip|dsh-idle-archive|lan-proxy|mcp-manager|notifier|opencode-usage|ui-dsh-opencode-usage)\s*$' \
"$DSH_HOME/cordis.patch.yml" ~/.dsh/profiles/*/cordis.patch.yml 2>/dev/null
# 有输出 → 重装覆盖拉取新配置(默认装 latest,即当前最新版)
dsh plugin --profile web remove @wingsky-1/<包>
dsh plugin --profile web add @wingsky-1/<包>@latest
相关项目
- dsh-web-mobile(npm:
@dsh-external/dsh-mobile-nav)— DSH web 移动端适配:窄屏自动收起侧栏、目录以抽屉方式展开。本项目的大部分开发与排障基于它在手机/平板上的远程使用完成。 - dsh-web-ui — DSH web UI 皮肤集合。从中学习了很多优秀实践,也是 DSH 插件开发的启蒙项目。
- dsh-routing-suite / dsh-router-standard — 提供 Router Standard agent preset(任务感知的推理模式路由:spec / mixed / react),供会话选择预设使用。
安全提醒
dsh-lan-proxy装完即在0.0.0.0开放 HTTP/HTTPS 端口,局域网所有设备可访问你的 dsh——不需要时请卸载dsh-mcp-manager的 stdio 子进程继承宿主权限,只配置可信的 MCP 服务器- 各插件全部路由均 loopback 围栏(非回环 403 / 方法错 405)
开发
要求:Node ≥ 23.6(测试用原生 type stripping 直跑 TS)、pnpm ≥ 11。
构建 / 契约 / 测试 / 打包命令、目录结构、宿主端与客户端写法规范,统一见 DEVELOPMENT.md(从 §0 构建总览开始);贡献流程见 CONTRIBUTING.md;issue 处理流程见 ISSUE-WORKFLOW.md。
插件迁入本仓库前均经过开源前审查(构建自包含、隐私清理、安全加固、元数据完整)。
贡献
见 CONTRIBUTING.md:Conventional Commits 提交规范、功能分支 + PR 流程、 提交前检查(敏感信息/发布物边界)。
ruvnet/ruflo
Tencent/WeKnora
EverMind-AI/EverOS
freestylefly/awesome-gpt-image-2
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS
zhu1090093659/dsh-web-ui