Introduction¶
One of the core design principles of DeepSeek Harness (DSH) is “everything is a plugin.” When working on monorepo projects that contain multiple packages, frequently switching terminal windows to run npm, pnpm, or yarn scripts can interrupt the development flow. dsh-npm-runner is designed to address this pain point. It integrates script discovery and execution into the DSH interface, allowing you to manage background tasks without leaving the current conversation.
What Is This¶
This is a DSH client plugin maintained by nobu121. It finds npm scripts in the current workspace (supports pnpm, yarn, bun, and npm) and runs them in DSH background processes.
Installation and Enablement¶
Run the following command to add the plugin. After installation, you must restart DSH so the new bundle is loaded.
dsh plugin --profile web add -w dsh-npm-runner
Core Features¶
- No traversal of
node_modules: The scanning logic is based on the workspace root manifest,workspacesfield declarations, or direct child directories, and does not recursively search insidenode_modules. - Automatic package manager detection: Automatically identifies lockfiles in each package directory (such as
pnpm-lock.yaml,yarn.lock) and runs scripts using the corresponding package manager. - Visual list: Each package is displayed as a collapsible group, showing the working directory and script count. The list supports expanding/collapsing all entries.
- Real-time background execution: After clicking a script, it starts in the background and expands to show real-time output, with a status indicator and elapsed time. A stop action is supported to terminate the entire process tree.
Usage¶
- Location: In a new session, this control is located on the right side of the workspace/mode line; in a conversation, it is located in the header action row, adjacent to DSH’s own background task list.
- Interaction: Click the control to open the script list, then select a script name to start it. After startup, the list expands and displays real-time output.
Notes and Limitations¶
- Restart required: After installing or updating the plugin, you must restart DSH for the configuration to take effect. Refreshing the page is not sufficient.
- Task list isolation: The clear action inside the plugin does not affect DSH’s own task list; DSH’s own task list is also not workspace-aware and is visible by default only in the current session.
- Security constraints: Requests cannot directly specify commands. The client must provide the directory and script name, and the DSH host re-reads
package.jsonand constructs the command. - Process execution environment: Scripts run in DSH host processes and are local processes.
More Information¶
This plugin is suitable for developers who need to manage monorepo scripts directly within the DSH environment. For more details, refer to the GitHub repository.