DeepSeek Harness Hub
← 返回列表

nobu121/dsh-npm-runner

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

无需遍历 nodemodules 即可找到脚本 —— 工作区根清单,以及其 workspaces…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/11 · 已提供中文文档

DeepSeek Harness 插件:发现当前工作区的 npm/pnpm/yarn/bun 脚本(绝不进入 node_modules),并通过编辑器区域或会话头部中的紧凑控件在后台运行其中任意脚本。

综合分
29.4
GitHub 分
29.4
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add nobu121/dsh-npm-runner
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-npm-runner

CI
npm

一个 DeepSeek Harness 插件,用于查找当前工作区的 npm 脚本,并在后台运行其中任意一个。

- 无需遍历 node_modules 即可找到脚本 —— 工作区根清单,以及其 workspaces 字段声明的包或其直接子目录。
- 每个包一个可折叠分组,类似 VS Code 的 NPM Scripts 视图,并按工作区记住折叠状态。
- 在后台运行,提供实时输出、已用时间,以及可回收整个进程树的 Stop。
- 使用每个包自己的包管理器(pnpm、yarn、bun 或 npm,根据现有 lockfile 判断),并在每个包自己的目录中运行。
- 没有可显示内容时不显示任何内容。

要求

DSH 0.1.5-rc.1 或更新版本,以及 Node.js 20 或更新版本。

安装

dsh plugin --profile web add -w dsh-npm-runner

-w 不是可选的:profile 目录是一个 pnpm 工作区根目录,pnpm 在没有它的情况下会拒绝在此执行 add。

要跟踪仓库而不是某个发布版本:

dsh plugin --profile web add -w github:nobu121/dsh-npm-runner

更新或移除:

dsh plugin --profile web update -w dsh-npm-runner
dsh plugin --profile web remove dsh-npm-runner

之后请重启 DSH —— 新添加的 bundle 会在 profile 启动时被加载,而不是通过刷新页面。

正在开发这个插件本身?在检出目录中执行 dsh plugin --profile web add -w . 会链接工作树,而不是获取快照。

用法

| 会话状态 | 显示位置 |
| --- | --- |
| 新会话 | 在工作区/模式行上右对齐。 |
| 对话 | 在头部的操作行中,紧挨着 DSH 自带的后台任务列表。 |

仅当当前工作区至少有一个脚本时,该控件才会出现。点击它会打开脚本列表:

- 每个包一个可折叠分组,以其脚本运行所在目录和脚本数量作为标签。如果有多个包,还会有 Collapse all / Expand all。
- 每个脚本一行,显示名称及其展开后的命令。点击会在后台启动它,并展开其实时输出。
- 正在运行的脚本会显示状态点和已用时间,并提供 Stop 来回收它。触发器上的点表示有内容正在运行,因此即使列表关闭,状态也仍然可见。
- 列表按工作区划分:当前工作区的每次运行,包括从其他对话启动的运行,且不包含其他项目的任何内容。
- Clear finished 位于 Background runs 标题上,会移除已完成、失败和已停止的运行,并保留仍在运行的运行。

DSH 后台作业
运行也会注册到 DSH 自己的后台任务注册表中,因此它们会加入任务列表,智能体可以通过 job_list / job_output / job_kill 读取它们。

从面板停止一次运行会将其标记为已处理,因此对于你主动请求的停止,DSH 不会向会话注入后台任务已完成的通知——而自行结束的运行仍会发出通知。设置 registerJobs: false 可使运行仅保留在插件自己的列表中。

配置

可选,位于配置文件的 cordis.patch.yml 中插件所在行:

- id: npm-runner
name: 'dsh-npm-runner'
config:
maxPackages: 60      # 每次扫描报告的包数量
maxJobs: 12          # 保留的运行数;最早完成的会先被移除
maxRunning: 6        # 同时存活的运行数
bufferBytes: 65536   # 每次运行保留的输出,以字节为单位
registerJobs: true   # 同时将运行注册到 DSH 的后台任务注册表
jobScope: session    # 'session' 将运行限制在其自身的会话内;'global' 在整个机器范围内共享

安全

这些路由会启动进程,因此适用三项限制:每个请求都要通过 DSH 自身网关所施加的同一信任围栏(回环地址或受信任的 Host,无跨站,Origin 匹配);工作区来自 Session 而非请求;并且请求不能指定命令——客户端发送一个目录和一个脚本名称,主机重新读取该目录自己的 package.json 并自行重建  run 。运行在 DSH 主机进程中启动,运行在 DSH 所运行的机器上。

限制

- 清除不会触及 DSH 自己的任务列表。 DSH 的后台任务计数会保留已完成的条目,直到 DSH 重启;其注册表不提供删除功能。
- DSH 的任务列表不感知工作区。 在默认的 jobScope: 'session' 下,一次运行不会在另一个会话中出现在那里,即使该会话位于同一工作区。插件自己的列表才是按工作区匹配的界面。
- 扫描器绝不会向上遍历到会话工作区之上,并且在未选择会话时不显示任何内容。

开发

npm test          # 封闭式:扫描器、运行器、任务桥接、主机路由、客户端打包
npm run test:e2e  # 真正运行 npm:测试夹具、运行生命周期以及进程树终止

examples/ 包含第二个可运行夹具包——一个长期运行的服务、一个流式输出器、一个高吞吐写入器、一个进程树、一个失败案例和一个工作目录探测。它不会被发布,npm run test:e2e 通过插件自己的注册表驱动其全部内容。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群