dsh-service-console:DSH 的本地开发服务控制台

前言

用 DeepSeek Harness(DSH)做开发,本地进程很容易越积越多:模型在会话里跑 npm run dev,你又在别的终端起了 Vite 或 Uvicorn,几天下来谁占着哪个端口、哪个进程属于哪次会话,基本靠回忆。想回收端口时,惯常做法是开终端敲 lsof 找 PID,再手动 kill,一旦判断错对象,误杀的就是不该动的进程。

dsh-service-console 把这套排查和操作搬进了 DSH 的 web UI:发现监听端口、识别服务归属,再安全地查看、停止和重启。DSH 的理念是「一切皆插件」,本文要介绍的 Jiyr0119/dsh-service-console 就是按这个思路实现的一个原生插件。

这是什么

一句话定位:DSH 的本地开发服务控制台。当会话里(或你自己)启动了本地开发服务器,它会把这些服务集中列出来——监听哪些端口、用什么命令和工作目录启动、是否属于当前会话或工作区、停止或重启是否安全。

插件由 Jiyr0119 维护,npm 包名为 @jiyr0119/dsh-service-console,以 MIT 许可证开源,代码托管在 GitHub。

核心功能

发现与归属

插件扫描本机监听的 TCP 端口,并为每个服务关联 PID、PPID、命令、工作目录、进程组和启动时间(支持 macOS / Linux)。

归属分为五级:

  1. This chat:与会话启动台账匹配,确认属于当前会话
  2. Workspace:属于当前工作区
  3. Other local:本机其他来源
  4. Unknown:来源不明
  5. Protected:受保护进程

要注意,归属信息是作为安全信号展示的,不是隐藏的分类过滤——本机所有监听服务都会显示出来,由你自己判断哪些能动。

停止与重启

停止操作面向整个进程组优雅退出(对进程组发送 SIGTERM);重启则使用保存下来的安全启动命令。每个操作都需要双重确认,执行前会根据当前快照重新校验一遍,避免拿着过时的信息动手。

安全防护

这是这个插件着墨最多的部分:

  • 任何信号发送前都会做 PID 复用与指纹校验
  • 客户端从不发送原始 PID 或 shell 命令,只以服务 ID 为目标,Host 在操作前重新校验 PID、启动时间和指纹
  • 未知与受保护服务只读;系统关键、高权限进程同样是只读
  • 强制杀进程(SIGKILL)默认关闭,仅在显式启用并确认后使用
  • 没有隐式自动清理,命令摘要中的敏感 token 和密码会被脱敏

作者在文档里明确说,这不是一个通用进程管理器。

界面与交互

控制台按需扫描:打开面板时获取一次快照,之后用刷新按钮显式重新扫描,没有后台轮询。列表支持关键词过滤,可以设置优雅超时和强杀选项,标签会根据 DSH 当前语言环境自动切换中英文。

展开的服务卡片使用 Web UI 的 token 视觉语言(DSH 原生检查器样式),展示进程身份、端口、命令、工作目录和归属证据。

安装与启用

用官方命令安装:

dsh plugin --profile web add -w @jiyr0119/dsh-service-console@latest

安装后刷新 DSH web UI,会话头部会出现「🖥 SC」入口,点击即可打开控制台面板。

有一点值得说明:插件被 dsh-market / awesome 收录,并不意味着 UI 会自动出现。这个包自带 Host 路由和浏览器 bundle,执行 dsh plugin add 之后面板即可用。

如果不想走构建流程,还有一条替代路径:通过动态 Cordis 插件流程粘贴仓库里的 dynamic/host.jsdynamic/client.js,零构建、进程本地。

典型用法

1、安装插件并刷新 web UI,从会话头部进入控制台面板;打开时会自动获取一次快照,之后的重新扫描由刷新按钮触发。

2、不安装也能试用界面:仓库内有浏览器交互演示,打开 ./demo/index.html 即可,无需安装。

3、想参与开发的话,流程如下:

pnpm install
npm run typecheck
npm run build
npm test

npm test 会先构建一次,再用 Node 内置的 node --test 运行完整测试套件,不需要额外的测试框架。

适用场景与注意事项

适合的场景:在 DSH 里频繁起停本地开发服务、想把端口回收从终端命令换成界面操作、需要判断某个监听进程属于哪次会话或工作区的开发者。

动手之前,几件事需要知道:

  • 仅支持 macOS / Linux,Windows 暂不支持
  • 它不是通用进程管理器,系统关键、高权限、未知及受保护进程一律只读
  • 插件以当前 dsh 进程的权限运行,能做的事以这个权限为上限
  • 安装前建议先读一遍源码和许可证(MIT),确认符合自己的安全要求

小结

dsh-service-console 解决的是一个具体问题:DSH 会话里起的本地服务散落在系统各处,排查和回收依赖终端命令和记忆。它把发现、归属识别、停止、重启收进 web UI,并用双重确认、PID 指纹校验和只读策略把误操作的风险压低。如果你经常在 DSH 里起本地服务,值得一试。

  • 社区目录页:https://www.skillhub.cn/plugins/Jiyr0119/dsh-service-console (该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系)
  • GitHub 仓库:https://github.com/Jiyr0119/dsh-service-console
羽毛球分组比赛记分
小程序二维码

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

小夜