Introduction¶
DeepSeek Harness (DSH) uses a plugin-based architecture, where managing installed plugins, switching local development branches, and restarting the Web UI are usually fragmented operations. For developers, frequent manual restarts and configuration changes are inefficient. The dsh-restart plugin adds a “Restart” module to Settings, centralizing tasks such as process restart, plugin toggling, branch switching, and reinstallation through a graphical interface to simplify the daily development workflow.
Core Features¶
This plugin provides the following management capabilities for the DSH Web UI:
- One-click process restart: Starts a new Web instance through an independent helper process, waits for the old process to release the port (up to 20 seconds) before taking over, and avoids startup failures caused by port occupation.
- Plugin toggles: Lists all third-party plugins in Settings and allows enabling/disabling them with switches. Changes require a restart to take effect.
- Community plugin navigation: Provides a quick entry to jump directly to the Community plugins page, or installs
dsh-community-pluginswith one click. - Git branch switching: For local Git checkouts, provides branch switching across repositories (Local/origin/upstream).
- Local reinstall: Supports a clean reinstall of local checkouts from three sources: Local (local code), Remote (remote repository), or Plugin (npm package).
- Link health check: Checks consistency between
node_modulesand plugin manifests, and repairs broken links or stale symbolic links caused by replacements. - Uninstall management: Removes plugins from bundles and dependencies. Built-in packages cannot be uninstalled.
Installation and Enablement¶
Before installation, make sure your environment meets the requirements (Node.js >= 20 and pnpm installed).
dsh plugin --profile web add github:dujar/dsh-restart
After installation, refresh the page in your browser. A “Restart” area appears at the bottom of the Settings sidebar.
Typical Usage¶
- Restart process: Go to Settings → Restart and click “Restart now”. The page automatically refreshes after the new instance starts.
- Toggle plugins: Click the switch in the plugin list to change the state. If the state is changed, a “Restart to apply” tag appears inline, and the top notification bar also provides a restart button.
- Install more plugins: Click “Browse more plugins” to jump directly to the Community plugins page.
- Switch local branch: For a locally checked-out plugin, click the ⎇ icon to open the Git panel, then select a repository and branch to switch.
- Reinstall local checkout: In the “Reinstall” area below the Git panel, select a source (Local/Remote/Plugin) and confirm to reset the code or switch to the latest package.
- Repair links: If a row shows a “Link broken” warning, click “Repair link” to regenerate the correct symbolic links using
dsh plugin install.
Applicable Scenarios and Notes¶
- Environment requirements: Running this plugin requires Node.js >= 20 and pnpm.
- Restart to apply: State changes such as enabling/disabling and uninstalling plugins must take effect by restarting
dsh web. - Built-in protection: DeepSeek built-in packages (such as
@deepseek-ai/*andcordis:*) cannot be uninstalled. - Security mechanisms: All APIs perform same-origin or localhost checks to prevent cross-origin access.
Summary¶
dsh-restart solves common process management and plugin maintenance issues in daily DSH development. By integrating Git operations, plugin toggles, and link repair into the Web interface, it reduces command-line operations and improves management efficiency. The plugin is released under the MIT license and maintained by the community, making it suitable for developers who frequently manage the DSH plugin ecosystem.
- GitHub repository: https://github.com/dujar/dsh-restart
- Official directory: https://www.skillhub.cn/plugins/dujar/dsh-restart