Introduction

DeepSeek Harness (DSH)’s ecosystem philosophy is “Everything is a plugin.” In local development environments, managing multiple development projects usually means opening multiple terminal windows or using complex script combinations. The dsh-project-manager plugin provides a floating window at the bottom-right corner of the DSH Web interface. It centralizes operations such as starting projects, stopping projects, viewing logs, and hot reloading in a draggable UI, reducing reliance on native system windows.

What It Is

This is a client plugin maintained by br1nosense for managing local development projects directly within the DSH Web interface. It addresses the hassle of switching between multiple projects and provides visualized process control, automatic restarts on file changes, and log viewing.

Core Features

The plugin includes the following core capabilities:

  • Floating Window: The window appears by default in the shell.overlay area at the bottom-right corner of the DSH Web interface. It can be moved by dragging the title bar and collapsed/expanded by the button at the top-right corner. The window position, collapsed state, and size changes are stored in the browser’s localStorage, so they remain consistent after a page refresh.
  • Project List: Lists all added projects. Each project card displays a status badge (for example, running, stopping, failed), process ID (PID), working directory, and startup command.
  • Process Control: Provides start, stop, and restart actions. On Windows, the stop action uses the taskkill /T command to kill the entire process tree, ensuring that child processes are properly cleaned up.
  • Add Project: Supports configuring the following parameters: project name, working directory, startup command, additional arguments, auto-start option, hot-reload toggle, hot-reload file suffix whitelist, and additional environment variables.
  • Hot Reload: Uses fs.watch to recursively monitor the project directory. File changes are filtered according to the suffix whitelist, and the process automatically restarts after a 500 ms debounce period.
  • Log Viewing: stdout and stderr are written line by line into an in-memory ring buffer (default limit: 2000 lines) and persisted to logs/<id>.log files. The floating window includes a log viewer that supports incremental polling and automatic scrolling.

Installation and Enabling

The installation process is completed with a PowerShell script. It is recommended to clone the repository from GitHub and install from there.

git clone https://github.com/br1nosense/dsh-project-manager.git
cd dsh-project-manager
powershell -ExecutionPolicy Bypass -File .\install.ps1

After installation, restart DSH Web or wait for dsh-client-hmr to perform an automatic hot update. To verify that the plugin is active, run the following command in a terminal:

dsh --profile web --dump-config

You should be able to find the id: project-manager configuration entry in the output.

Typical Usage

After installing and enabling the plugin, a floating window will appear in the bottom-right corner.

  1. Add a Project: Configure the project information in the floating window, such as the working directory and startup command, or send a POST request through the API to add it.
  2. Control the Process: Click the “Start,” “Stop,” or “Restart” button on the project card.
  3. View the Logs: Expand the log viewer to monitor output in real time, or retrieve incremental logs through the API.

Configuration and Maintenance

  • Configuration Persistence: The project list and configuration are stored in the project-manager section of ~/.dsh/settings.yaml.
  • Hot Updates: After client code changes, dsh-client-hmr automatically updates the client without requiring a restart of DSH Web.
  • PeerDependencies Fix: If the repository is cloned and installed directly, you may encounter PeerDependencies resolution issues. Node ESM searches for dependencies upward from the plugin directory and may not find the DSH core packages. You must create a Junction (directory link) under node_modules\@deepseek-ai\ in the plugin workspace root (the parent directory of the plugin directory), pointing to the same-named packages under the DSH installation directory (schemastery, cordis, dsh-settings).

Use Cases

This plugin is suitable for developers who need to maintain multiple local development environments simultaneously, such as projects with separated frontend and backend or microservices architectures. It is especially useful for developers on Windows who are accustomed to managing tasks through a browser; they can use the plugin to replace multiple terminal windows.

Conclusion

dsh-project-manager provides a lightweight project management solution. By combining a Web interface with local process control, it optimizes local development workflows. In scenarios where local services need to be started, stopped, and monitored frequently, the plugin can significantly improve operational efficiency.