dsh-hotswap
by jarvan642
DeepSeek Harness热插拔插件管理器 - 无需重启DSH即可安装、卸载、启用、禁用插件
?? Hot-swap plugin manager for DeepSeek Harness - install, unload, enable, disable plugins without restarting DSH
安装
dsh plugin --profile web add github:jarvan642/dsh-hotswapGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
DSH 插件的「即插即用」革命
安装、卸载、启用、禁用插件,全部无需重启 DSH。
就像 USB 热插拔一样自然,一样优雅。
✨ 为什么你需要它?
传统的 DSH 插件工作流:
安装插件 → 重启 DSH → 试一下 → 不好用 → 卸载 → 再重启 DSH → 崩溃
有了 dsh-hotswap:
pnpm add 某插件 → 立刻生效 🎉 不满意 → pnpm remove → 瞬间消失
零等待、零中断、零重启。
🚀 一分钟上手
🤖 AI 时代玩法(推荐)
直接把 GitHub 链接甩给你的 AI:
https://github.com/jarvan642/dsh-hotswap
AI 会自动读源码、自动帮你装好,你只需要说一句"帮我安装这个插件"。
🧑💻 手动安装
1. 安装 dsh-hotswap(仅需重启一次)
cd ~/.dsh/profiles/web pnpm add github:jarvan642/dsh-hotswap
2. 手动注册到 cordis.patch.yml(用 cat 代替 echo 确保格式正确)
cat >> cordis.patch.yml << 'EOF'
- insert:
- id: dsh-hotswap name: 'dsh-hotswap'
EOF
3. 重启 DSH(仅此一次!)
按 Ctrl+C 停掉 DSH,然后重新启动
4. 从此以后——所有插件都是热插拔!
pnpm add @linxin666/dsh-pet # 装个桌面宠物?即刻生效 🐾 pnpm add @deepseek-ai/dsh-tools # 装个工具包?即装即用 🔧 pnpm remove dsh-pet # 不喜欢了?瞬间卸载 💨
> ⚡ **实测验证**:安装 `@linxin666/dsh-pet` 宠物插件,无需重启,立即可见!
---
## 🎯 核心能力
| 操作 | 传统 DSH | 有了 dsh-hotswap |
|------|---------|-----------------|
| 安装插件 | ⏳ 重启等待 | ⚡ **即刻生效** |
| 卸载插件 | ⏳ 重启等待 | ⚡ **瞬间消失** |
| 启用/禁用 | ⏳ 重启等待 | ⚡ **一键切换** |
| 更新插件 | ⏳ 重启等待 | ⚡ **热重载** |
| 调试开发 | 😫 改一行重启一次 | 😎 **改完即用** |
---
## 🔬 工作原理
dsh-hotswap 深度集成 DSH 底层的 Cordis 框架,通过三项核心技术实现真·热插拔:
┌─────────────────────────────────────────────┐ │ dsh-hotswap 🔥 │ │ │ │ 📡 ProfileWatcher ⚡ Cordis Loader API │ │ ───────────────── ─────────────────── │ │ 监听 package.json │ 运行时创建/销毁 │ │ 自动发现变更 │ Loader Entry │ │ 防抖批量处理 │ 完整生命周期管理 │ │ │ │ 🔗 PluginRegistry 🛡️ 依赖追踪 │ │ ──────────────── ────────────────── │ │ 记录所有插件状态 │ 防止卸载被依赖插件 │ │ 维护依赖关系图 │ 安全回滚机制 │ └─────────────────────────────────────────────┘
**一句话**:你装插件,它自动加载;你卸插件,它自动清理。全程不需要碰 DSH 的重启按钮。
---
## 📦 安装
```bash
# 前置条件:DSH >= 0.1.0-rc.5, Node.js >= 22.19
cd ~/.dsh/profiles/web
pnpm add dsh-hotswap
# 手动注册(后续版本将支持一键注册)
echo "- insert:" >> cordis.patch.yml
echo " - id: dsh-hotswap" >> cordis.patch.yml
echo " name: 'dsh-hotswap'" >> cordis.patch.yml
# 重启 DSH(仅首次需要)
📖 详细用法
热安装一个插件
# 从 npm 安装
pnpm add 某插件
# dsh-hotswap 自动检测 → 自动加载 → 即时生效!
# 无需任何额外操作 🎯
热卸载一个插件
pnpm remove 某插件
# 自动卸载 → 清理资源 → 瞬间完成 💨
查看热插拔状态
# 通过 DSH 插件列表查看
dsh plugin list
# 或者在 Web UI 的设置页面查看
🏗️ 适用场景
| 场景 | 效果 | 体验 |
|---|---|---|
| 🧪 插件开发调试 | 改代码 → 重装 → 立即生效 | 😎 爽 |
| 🔌 试用新插件 | pnpm add → 马上用 |
⚡ 快 |
| 🧹 清理不需要的插件 | pnpm remove → 立刻消失 |
🧼 干净 |
| 🔄 批量更新插件 | 一个个装/卸,零中断 | 🚀 丝滑 |
| 🐛 插件出问题 | 秒卸,不影响正在进行的对话 | 🛡️ 安全 |
⚠️ 已知限制
- 带前端 UI 的插件(桌面宠物、主题皮肤等):首次安装后需刷新页面才能看到 UI
- 核心服务插件(修改 LLM 路由、session 持久化等):仍需重启
- dsh-hotswap 自身:第一个安装时需要重启一次(之后所有插件都不需要了)
🧑💻 开发者说
"装个插件还要重启?那是上个时代的事了。"
—— dsh-hotswap,为 DSH 生态带来真正的即插即用体验。
⭐ 支持项目
如果 dsh-hotswap 帮到了你,请给个 Star ⭐ 让更多人知道!
📄 许可证
MIT © Jarvan
原始 README: https://github.com/jarvan642/dsh-hotswap/blob/main/README.md ↗
同类插件
查看全部 →
awesome-dsh-plugins
前部索引仓库(Radar):自动扫描发现的所有 dsh 插件候选;经测试合格的将移入后序精选目录仓库

DSH-Plugins-Marketplace
DSH插件市场 / DSH Plugin Marketplace: 在 DeepSeek Harness Web GUI 中一键浏览、安装与更新 GitHub topic:dsh-plugin 的全部插件 | browse, install & update all GitHub dsh-plugin plugins in the DSH Web GUI

zat-dsh-engine
DeepSeek Harness视觉插件市场——浏览、搜索和安装社区插件

dsh-market
装在 DSH 里的插件市场:设置页内逛/搜全部社区插件,按分类筛选,确认后一键安装,已装插件一目了然。

dsh-plugin-marketplace
DeepSeek Harness认证插件市场及自主注册库

deepseek-plugin-store
DeepSeek Harness 独立社区插件商店:发现、安装并提交经过验证的插件、工具与扩展。 | Independent community plugin directory.