前言¶
DeepSeek Harness (DSH) 的核心设计理念之一是「一切皆插件」。在处理包含多个 package 的 monorepo 项目时,频繁切换终端窗口运行 npm、pnpm 或 yarn 脚本会打断开发流。dsh-npm-runner 旨在解决这一痛点,它将脚本发现与执行能力集成到 DSH 界面中,无需离开当前对话即可管理后台任务。
这是什么¶
这是一个由 nobu121 维护的 DSH 客户端插件。它的功能是在当前工作区中查找 npm 脚本(支持 pnpm、yarn、bun 和 npm),并在 DSH 的后台进程中运行它们。
安装与启用¶
执行以下命令即可添加插件。安装后必须重启 DSH,新的 bundle 才会被加载。
dsh plugin --profile web add -w dsh-npm-runner
核心功能¶
- 不遍历 node_modules:扫描逻辑基于 workspace root manifest、workspaces 字段声明或直接子目录,不会进入 node_modules 递归查找。
- 自动包管理器检测:自动识别各 package 目录下的 lockfiles(如 pnpm-lock.yaml、yarn.lock),使用对应的包管理器执行。
- 可视化列表:每个 package 展示为一个可折叠组,显示运行目录和脚本数量。列表支持全部展开/折叠。
- 实时后台运行:点击脚本后,会在后台启动并展开实时输出,显示运行状态点和耗时。支持停止操作以回收整个进程树。
使用方式¶
- 位置:在新会话中,该控制项位于 workspace/mode 行的右侧;在对话中,位于头部 action row,紧邻 DSH 自身背景任务列表。
- 操作:点击控制项打开脚本列表,选择脚本名即可启动。启动后列表展开,显示实时输出。
注意事项与限制¶
- 重启生效:插件安装或更新后,必须重启 DSH,配置才会生效,页面刷新无效。
- 任务列表隔离:插件内部的清除操作不会触及 DSH 自身的任务列表;DSH 自身的任务列表也不以工作区为感知,默认仅在当前会话可见。
- 安全限制:请求无法直接命名命令,客户端需提供目录和脚本名,由 DSH host 重新读取 package.json 并构建命令。
- 进程运行环境:脚本在 DSH 主机进程中运行,属于本地进程。
更多信息¶
该插件适合需要在 DSH 环境中直接管理 monorepo 脚本的开发者。更多细节可参考 GitHub 仓库。