前言¶
在 DeepSeek Harness(DSH)里做前端或 monorepo 开发时,常见做法是切到终端执行 npm run dev、npm run build 等命令,再盯着终端找本地调试地址。Harness Web 界面本身并不自带「按项目扫 package.json、一键跑脚本、边看输出边点开 http 链接」的能力。社区插件 dsh-npm-script(维护者 zouzhipeng,分类:客户端)在 Web UI 右下角增加悬浮入口,把当前工作区里的 npm scripts 分组展示,并支持运行、停止与查看输出。下面介绍它的定位、能力与安装用法。
这是什么¶
dsh-npm-script 是为 DeepSeek Harness Web 界面提供的客户端插件:一个悬浮按钮,点击后按项目分组列出当前工作区下所有 package.json 中的 scripts,可直接运行、停止,并查看捕获的 stdout / stderr;输出里的 http:// / https:// 地址可点击,在浏览器新标签页打开。
- 目录页:https://www.skillhub.cn/plugins/zouzhipeng/dsh-npm-script
- 源码:https://github.com/zouzhipeng/dsh-npm-script
- npm 包名:
@zouzhipeng/dsh-npm-script(MIT)
核心功能¶
以下能力均来自插件 README 说明。
- 悬浮按钮:常驻界面右下角,不占用面板空间。
- 按项目分组:自动扫描工作区内多个
package.json(适合 monorepo、多子目录),按项目展示脚本列表。 - 运行状态:每条命令显示 执行中 / 可执行 / 停止中;长期运行的命令(如
npm run dev)可一直保持执行中并随时停止。 - 输出记录:查看执行时的 stdout / stderr,运行中可轮询刷新。
- 网址可点击:输出中的
http:///https://自动变为链接;面板顶部还会汇总本次运行出现过的地址,便于点开本地 dev 地址。 - 中英双语:跟随 Harness 界面语言。
命令来源仅限各 package.json 的 scripts 字段,不包含任意 npm 子命令。
安装与启用¶
前提:已安装并运行 DeepSeek Harness,且使用 profile 为 web 的场景。
方式一:Web 界面¶
- 打开 Harness Web 界面,进入侧边栏 Plugins(插件)页面。
- 在安装输入框中填入:
github:zouzhipeng/dsh-npm-script
- 确认安装,并确保该 bundle 处于启用状态。
- 刷新页面。
方式二:命令行¶
在 shell 中执行:
dsh plugin --profile web add github:zouzhipeng/dsh-npm-script
安装完成后,在 Web 界面的 Plugins 页面启用 dsh-npm-script bundle,然后刷新页面。
更新:重新执行一次上述 add 命令即可拉取最新版本。
卸载:在 Plugins 页面移除,或执行:
dsh plugin --profile web remove @zouzhipeng/dsh-npm-script
典型用法¶
经过上面的安装与启用步骤后:
- 点击界面右下角的悬浮按钮,打开命令面板。
- 面板按项目分组列出所有
package.json中的scripts。 - 点击命令名开始执行;执行中的命令会显示停止按钮。
- 点击命令查看它的输出记录;输出里的网址可以直接点击打开。
按 Esc 关闭面板;若正在查看输出,第一次按 Esc 会先退回命令列表。
工作方式与可选配置¶
插件由 Host 半(index.js)与 Client 半(client.js)组成:Host 通过 Harness 的 workspaceRegistry 解析工作区、扫描 package.json,并用 subprocess 启动脚本,HTTP 路由限制为仅本机回环访问;Client 通过 shell.overlay 渲染悬浮按钮与面板,从 Host 同源 JSON 路由取数。执行脚本时会注入 NO_COLOR=1、TERM=dumb、PAGER=cat、GIT_PAGER=cat,便于纯文本输出与链接识别;客户端还会剥离 ANSI 转义作为兜底。
可在 profile 的 cordis.yml 里通过 config 覆盖可选项(节选):
| 字段 | 默认值 | 说明 |
|---|---|---|
scanDepth |
3 |
扫描 package.json 的最大目录深度 |
maxOutputBytes |
262144 |
每个输出流在内存中保留的最大字节数(保留末尾) |
maxSpillBytes |
8388608 |
溢出到磁盘的最大字节数 |
graceMs |
5000 |
停止命令时等待优雅退出的毫秒数,超时后强制终止 |
historyLimit |
20 |
保留的历史运行记录条数 |
scanCacheMs |
5000 |
项目扫描结果的缓存毫秒数 |
Host 半代码改动需重启 dsh web 才生效;Client 半改动刷新页面即可。
适用场景与注意¶
适合谁:已在 DSH Web 环境下开发,希望在不离开 Harness 界面的情况下浏览、运行工作区 npm scripts,并快速打开 dev 服务器打印的本地 URL。
环境:DeepSeek Harness(profile web);平台与 Harness 一致(macOS / Linux / Windows)。
已知限制(README 原文):
- 仅识别输出中的
http://与https://(不识别ws://)。 - 列表仅来自
package.json的scripts。
安全与权限:插件通过 Harness 在本机启动子进程执行你选择的 npm script,以当前 dsh 进程的用户与权限运行。安装前建议在 GitHub 仓库阅读源码与 MIT 许可证,确认行为符合预期。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
小结¶
dsh-npm-script 把「扫 scripts、跑命令、跟输出、点链接」收进 Harness Web 右下角的一小块 UI,对 monorepo 和多项目工作区尤其省事。需要安装或细节时,可查阅 SkillHub 目录页 与 GitHub 仓库。