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等服务并查看日志的开发者。
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sqzssg12138/dsh-service-runnerドキュメント
README 全文を読む ↗使用
装好后重启一次 DSH Desktop,会话头部右上角(后台任务按钮旁边)会出现「服务」按钮:
- 点「服务」→ 面板打开,显示当前工作区已保存的服务。
- 第一次用:点「编辑」→「探测工作区」,自动生成候选列表。
- 在编辑态里可以改名称、命令、端口,删掉不需要的行,再点「保存」。
- 回到列表态即可「启动 / 停止 / 重启」,点「日志」展开该服务的实时输出。
状态点含义:灰=已停止,黄闪=启动中,绿=运行中,红=失败。绿色时按钮上的数字是运行中的服务数。
工作区是怎么确定的
优先取会话的权威工作区(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 目录 |
PowerShellRunType | powershell -NoProfile -ExecutionPolicy Bypass -File "" |
MavenRunConfiguration | |
GradleRunConfiguration | |
js.build_tools.npm / .pnpm | pnpm run |
价值在准确性:-Dserver.port=8082 写在 VM 参数里就是真实端口(不是正则撞上的数字),module 指明命令该在哪个子目录跑,而 PowerShell 脚本本身就是你日常运行的那条命令。
所以这些候选排在启发式结果之前,同命令同时取 IDEA 的名字;反过来,被合并掉的启发式候选若探到了端口(例如从 application.yml),端口会补到 IDEA 那条上 —— 名字来自 IDE,端口来自构建文件。
无法忠实还原成命令行的配置类型会被跳过而不是瞎猜;default="true" 的类型模板(IDEA 给每个项目都写一份,如 JetRunConfigurationType)也会忽略,否则候选列表会被灌满。