Introduction

DeepSeek Harness (DSH) starts by default as a background process (Start-Process … -WindowStyle Hidden on Windows; a background service on Linux). The host runs in an environment without a window or explicit console, and when an exception occurs or a restart is required, there is no intuitive UI entry point.

dsh-process-control is a Web plugin that adds a process control button to the right of the “Settings” row in the sidebar, providing the ability to restart the host, refresh the page, or terminate the process.

What Is This

  • Plugin name: dsh-process-control
  • Maintainer: baicaibucai1
  • Category: Web UI, system
  • License: MIT
  • Positioning: A DSH host process management tool supporting status queries and remote control.

Core Features

The plugin provides the following operations through a floating button:

  1. Restart DSH host: Restart from the exact command line used when the host was started, and release the listening port. The browser reconnects automatically.
  2. Refresh page: Refresh the current Web page.
  3. Terminate process: Terminate the host process (using SIGTERM; force-exit on failure).
  4. Get status: Display the current host’s PID, port, platform information, etc.
  5. Security restrictions: Accept only same-origin loopback requests and reject requests forwarded through proxies.

Installation and Enabling

Installing it through the DSH CLI automatically handles configuration:

dsh plugin --profile <profile> add dsh-process-control

This command adds the plugin to dsh.profile.bundles and merges the plugin’s cordis.patch.yml at startup. No manual configuration file changes are needed.

Configuration

In the profile’s cordis.patch.yml, use the config field to control behavior:

- id: process-control
  config:
    openBrowser: false       # 重启成功后是否打开默认浏览器访问新地址
    hideCordisPanel: true    # 是否隐藏侧边栏底部的 Cordis 面板入口
  • openBrowser: Defaults to false. After a restart, the host generates a new …/?token=… address. Because of the persistent cookie, opening the browser is usually unnecessary; if the cookie expires, set this to true to open the address from the diagnostic file.
  • hideCordisPanel: Defaults to true. It replaces the original cell by registering an entry with the same ID (cordis-panel) and higher priority, so that it does not render content. This is safer than disabling the entire ui-cordis and does not affect Cordis tool cards in conversations.

Notes

  • Second confirmation: Restart and terminate operations require a second click for confirmation to prevent accidental triggers.
  • Loopback only: The HTTP routes provided by the plugin (/status, /restart, /quit) only verify that the peer address is loopback and reject proxy headers such as Forwarded, ensuring that only the host itself can access them.
  • Detached startup: The host process is usually started in detached mode; closing the window does not terminate the process, so it must be controlled via this plugin.

Applicable Scenarios

Useful when you need to restart the DSH host frequently or troubleshoot a hung host without closing the terminal or manually managing OS processes.

Reference Resources

  • Plugin directory: https://www.skillhub.cn/plugins/baicaibucai1/dsh-process-control
  • Source repository: https://github.com/baicaibucai1/dsh-process-control