sqzssg12138/dsh-service-runner ↗★ 0

dsh-service-runner

Workspace service runner for DeepSeek Harness: start/stop/restart project services (frontend, Java, Python, Docker) from a session-header panel, with auto-detection and live logs. 适合需要在DSH中一键启停前端、Java、Python等服务并查看日志的开发者。

패키지
dsh-service-runner
호환성
미검증
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 9. 21.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sqzssg12138/dsh-service-runner

使用

装好后重启一次 DSH Desktop,会话头部右上角(后台任务按钮旁边)会出现「服务」按钮:

  1. 点「服务」→ 面板打开,显示当前工作区已保存的服务。
  2. 第一次用:点「编辑」→「探测工作区」,自动生成候选列表。
  3. 在编辑态里可以改名称、命令、端口,删掉不需要的行,再点「保存」。
  4. 回到列表态即可「启动 / 停止 / 重启」,点「日志」展开该服务的实时输出。

状态点含义:灰=已停止,黄闪=启动中,绿=运行中,红=失败。绿色时按钮上的数字是运行中的服务数。

工作区是怎么确定的

优先取会话的权威工作区(host 从 sessionPersistence 读会话头里的 cwd);取不到时回退到会话目录名的反解;都失败就在面板底部的输入框里手填绝对路径——填过一次会记住。

优先来源:IDEA 的运行配置

工作区里有 .idea 时,插件会先读 JetBrains 自己的运行配置 —— 两种存储布局都支持:.idea/runConfigurations/*.xml(每个配置一个文件,新式)与 .idea/workspace.xml 的 RunManager(旧式)。

IDEA 配置类型生成的命令
SpringBootApplicationConfigurationType / Application(且 pom 含 spring-boot 插件)..\mvnw.cmd spring-boot:run,cwd = 配置里的 module 目录
PowerShellRunTypepowershell -NoProfile -ExecutionPolicy Bypass -File ""
MavenRunConfiguration
GradleRunConfiguration
js.build_tools.npm / .pnpmpnpm run

价值在准确性:-Dserver.port=8082 写在 VM 参数里就是真实端口(不是正则撞上的数字),module 指明命令该在哪个子目录跑,而 PowerShell 脚本本身就是你日常运行的那条命令。

所以这些候选排在启发式结果之前,同命令同时取 IDEA 的名字;反过来,被合并掉的启发式候选若探到了端口(例如从 application.yml),端口会补到 IDEA 那条上 —— 名字来自 IDE,端口来自构建文件。

无法忠实还原成命令行的配置类型会被跳过而不是瞎猜;default="true" 的类型模板(IDEA 给每个项目都写一份,如 JetRunConfigurationType)也会忽略,否则候选列表会被灌满。