DSH Web 设置页的服务控制面板:实时宿主信息(PID、版本、运行时长、内存/CPU 趋势、活跃会话)、npm 更新提醒,以及带确认的优雅停止——任务运行时发出警告,也可等待任务结束后自动停止。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-stop-service
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:KhaosGx/dsh-stop-service
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
DeepSeek Harness (DSH) Web 设置页的「服务控制」分区:实时服务信息 + 带确认的优雅终止按钮,告别后台孤儿进程。
功能
- 实时服务信息:进程 PID、启动时间、运行时长、活跃会话数(不含子代理,运行中任务单独标注)、内存占用、CPU 占用、Node / DSH 宿主 / 插件版本、平台——每 5 秒自动刷新;内存/CPU 趋势迷你图支持 3 分钟 / 15 分钟 / 1 小时窗口,样本经 localStorage 持久化(约 1 小时容量,刷新页面不丢);CPU ≥ 80% 或内存 ≥ 1024 MB 时对应行高亮警示;底部可折叠的已加载插件清单(含安装版本,link 安装有标记)
- 更新提醒:面板顶部对比 npm registry 最新版,DSH 宿主或插件有新版时提示,可一键复制升级命令、跳转 npm 页面 / GitHub Releases(浏览器端直查 registry,宿主不外联)
- 复制诊断信息:一键复制版本与运行状态摘要,提 issue 时直接粘贴
- 连接状态提示:宿主失联时面板顶部显示数据快照年龄警示(本页发起的停止不误报),不再静默显示过期数据
- 带确认弹窗的「终止服务」按钮:有任务运行时确认框升级为中断警告,否则显示将断开的活跃会话数;宿主进程收到 SIGTERM 优雅退出——会话落盘、端口释放,效果与在终端执行
kill <pid>完全一致 - 排空式停止:「任务结束后停止」等待所有运行中任务结束后自动终止服务(纯客户端观察,宿主不留定时器,需保持设置页打开)
- 设置页头部快捷停止:任意设置页可一键发起同样的确认停止;多标签页经 BroadcastChannel 同步停止状态,互相不再悬挂在过期数据上
- 服务回归自动刷新:停止后持续探测,终端里重启完成时页面自动刷新接回
- 界面适配
--dsw-*主题变量,跟随皮肤切换
兼容性
- DeepSeek Harness
>= 0.1.2-rc.1(在 0.1.2-rc.1 实测) - Web profile(
platform: web)
安装
方式一(推荐)—— npm 直装:
dsh plugin --profile web add dsh-stop-service
方式二 —— GitHub 直装:
dsh plugin --profile web add github:KhaosGx/dsh-stop-service
方式三 —— 克隆后本地 link(适合参与开发):
git clone https://github.com/KhaosGx/dsh-stop-service.git
cd dsh-stop-service
dsh plugin --profile web add link:$(pwd)
安装后重启 dsh web,面板位于 设置 → 服务控制。
工作原理
| 文件 | 职责 |
|---|---|
lib/index.js |
宿主侧:注册三个仅限 loopback 的路由——GET /health(存活探测)、GET /info(服务与 profile 信息)、POST /stop(应答后 300ms 自发 SIGTERM) |
lib/client.js |
浏览器侧:通过官方 settings.section 槽位注册设置分区与 React 组件;轮询 /info 渲染信息面板与趋势图,直查 npm dist-tags 显示更新横幅 |
cordis.patch.yml |
bundle 层自登记(dsh.bundle.patch) |
安全模型
- 路由仅接受本机 loopback 请求:socket 环回地址 + 环回 Host 头 + 浏览器同源标记三者齐备才放行;
X-Forwarded-For永不信任,其余一律403 forbidden: loopback-only stop仅接受 POST;动作等价于终端kill,无额外能力,不做持久化;宿主进程不对外发起网络请求(更新检查由浏览器完成)
致谢
loopback 请求围栏的实现参考并改编自 zhu1090093659/dsh-web 的 dsh-client-ui-skill-explorer(BSD 3-Clause, © 2026 zhu1090093659),其版权与许可声明保留于 LICENSE 的第三方声明部分。
许可
MIT © 2026 KhaosGx
链接
同类插件
yjh051108/dsh-routing-suite★ 6997
一个仓库三件套:DSH 插件包的运行时注入器(注入、热重载、卸载、开发侧挂区一键转正、路由自愈,外带设置页插件管理:列出、卸载、拖入文件夹内化)、任务感知的思维模式路由 agent 预设(router-standard / router-spec / router-react)、以及分级两级任务协议(commit_star / lock_stage / revise_do / edit_plan / mark_task / redteam_verdict 六个工具,任务状态落盘)。注入器实现直接在库内,安装的是它自己的行为而不是一份依赖清单。
strukto-ai/mirage#dsh★ 3696
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
first-fluke/oh-my-agent#dsh★ 1344
在工具执行前后以及尝试结束当前轮次时运行项目 OMA 检查。随插件安装 OMA CLI 依赖,并在首次使用时初始化未配置的项目。需要 Node.js 22+;首次初始化需要网络连接和项目目录写入权限。
hust-open-atom-club/oh-dsh★ 322
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
weijiafu14/pi2dsh★ 217
Pi Host ABI 兼容引擎:装一次之后,npm 上的 Pi 扩展原包经 `dsh plugin add <pi-package>` 直接作为 DSH 原生插件挂载。已在官方 DSH 上端到端验证 pi-mcp-adapter(完整 MCP 管理面:OAuth、resources、prompts、MCP Apps、elicitation、sampling)、@tintinweb/pi-subagents、pi-code、pi-hermes-memory、pi-background-tasks;`pi2dsh inspect` 在安装前报告一个包的兼容情况。
Fishquito7/dsh-skill-mcp-panel★ 207
在 DSH Web 设置中管理技能与 MCP 服务器:技能卡片热启停、工作区作用域、分组、批量迁移与拖拽导入,以及 stdio/HTTP MCP 增删改查、连接测试、密钥脱敏,并附带统一 dsh-panel 命令行。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。