在 DeepSeek Harness (dsh) 的日常开发中,结束 Web UI 对应的进程通常需要切换回终端执行命令。频繁切换窗口会增加操作成本。dsh-shutdown 插件将关闭逻辑集成到了 Web 界面中,通过右上角的按钮提供快捷入口,实现从界面直接安全退出。
插件定位¶
dsh-shutdown 是一个为 dsh Web UI 增加右上角关闭入口的客户端插件。它不修改 dsh 核心源码,通过独立的插件包实现功能扩展。项目由 Lundly 维护,遵循 MIT 许可证。
核心功能¶
- 右上角入口:在 Web 界面右上角新增一个常驻的关闭按钮(图标样式),鼠标悬停显示“关闭 DSH”。
- 安全退出流程:点击按钮后弹出确认提示。确认后,插件走 dsh launcher 的优雅退出路径:先清理插件树(逆序清理),再关闭 Web 服务,最后退出进程。
- 浏览器标签页处理:尝试自动关闭浏览器标签页。
- 兜底画面:若浏览器安全策略阻止脚本关闭标签页,页面会渲染“dsh 已安全关闭”的提示画面,提醒用户手动关闭。
- 交互设置:支持在确认提示中选择“不再显示”,之后点击按钮将直接关闭;该选项可在通用设置中重新开启。
安装与启用¶
从 GitHub 安装¶
推荐使用官方仓库安装。该仓库直接提交了构建产物,安装时无需授权构建,pnpm 不会弹出 allowBuilds 提示。
dsh plugin --profile web add github:Lundly/dsh-shutdown
若需锁定特定版本,可 pin 到具体提交:
dsh plugin --profile web add github:Lundly/dsh-shutdown#<commit-sha>
从本地目录安装¶
在插件目录的上级目录执行以下命令。首次执行会自动创建名为 web 的 profile,并将本插件作为 bundle 追加进去。
dsh plugin --profile web add ./dsh-shutdown
验证与移除¶
安装后启动 dsh 并打开 Web 界面,即可在右上角看到关闭按钮。验证与移除命令如下:
# 查看已安装的插件
dsh plugin --profile web list
# 移除插件
dsh plugin --profile web remove dsh-shutdown
注意:bundle 成员变化需重启 profile 后生效。
从源码构建¶
如果需要自行构建或修改插件,可执行以下命令:
pnpm install
pnpm build # 生成 lib/index.js(Host 半)和 lib/client.js(浏览器半)
pnpm typecheck
本插件不依赖 dsh 源码即可构建。宿主提供的包(如 @deepseek-ai/cordis、react 等)均以 peer/external 方式声明,产物零第三方运行时代码,由 dsh 宿主与浏览器端模块加载器注入。
适用场景与注意¶
- 适用场景:需要在 Web UI 界面直接结束 dsh 进程的开发者,希望减少终端与浏览器窗口切换的开发者。
- 权限注意:插件以当前 dsh 进程的权限运行,请确保对安装的插件源码有足够的信任度。
- 生态背景:DSH 的核心理念是“一切皆插件”,旨在通过模块化扩展提升开发效率。社区目录(如 SkillHub)是独立站点,与 DeepSeek 或幻方没有官方从属关系。
总结¶
dsh-shutdown 通过集成关闭逻辑,简化了 dsh 进程的退出流程。更多插件可参考 SkillHub 目录 或访问 GitHub 仓库。