Introduction

The Web GUI of DeepSeek Harness (DSH) provides an entry point for plugin management, but the native panel is relatively basic in functionality. dsh-lego-plugin is a client plugin that presents dynamic Cordis plugins as Lego blocks, aiming to improve interaction intuitiveness and visual feedback.

Plugin Overview

This plugin is maintained by XIAOke8698 and is released under the MIT license. It has no external dependencies and uses CSS exclusively to render the physical texture of Lego blocks (ABS plastic gloss, micro bevels, and concentric circular studs).

Core Features

  1. Panel replacement and hot swapping: Replaces the native “Cordis Plugin” panel in the lower-left corner of the Web GUI and supports hot swapping without a page refresh.
  2. Lego block rendering: Blocks feature ABS plastic texture, gloss, and bevels. Running plugins display a neon glowing gem effect, stopped plugins appear translucent, and plugins awaiting approval show a red pulsing outline.
  3. Multi-color and adaptive shapes: The system automatically assigns an official Lego 10-color palette based on plugin ID and adapts the geometric shape according to the hash value (2x2, 2x3, 2x4, etc.).
  4. Interactive feedback: Clicking a block plays a tactile “click” sound synthesized with Web Audio, and the panel header provides a “shake” button to reassign colors.
  5. Additional features: Supports searching by plugin ID, displaying the running count in the sidebar, Chinese and English internationalization (i18n), and following the system light/dark theme.

Installation

Before installation, ensure that the DSH environment has the Web GUI configured and that pnpm is added to the system PATH (the dsh plugin command forwards to pnpm).

dsh plugin --profile web add dsh-lego-plugin

If you are developing or testing inside the DSH source tree, the dsh command may not be available. You can use:

pnpm dsh plugin --profile web add dsh-lego-plugin

Usage

  1. Start the DSH Web GUI.
  2. Click the “Cordis Plugin” entry at the bottom of the left sidebar.
  3. The panel displays the dynamic plugins of the current session as a list of Lego blocks.
  4. Click a block to perform an action:
Block State Action
Running (solid + green dot) Stop, Remove
Stopped (gray) Run, Remove
Awaiting approval (red outline) Approve, Approve (future version), Reject

Scope and Notes

  1. Management scope: Only dynamic plugins (dyn/*) are managed. These are plugins created with cordis_define. Static plugins defined in cordis.yml do not appear in the list.
  2. Uninstallation impact: After uninstalling the plugin, the native Cordis Plugin panel is automatically restored, and the styles injected by the plugin and the cordis.patch.yml configuration are cleaned up.
  3. Version compatibility: Requires pnpm version ≥ 10, and building script permissions must be handled when installing source packages.

Conclusion

This plugin simplifies starting, stopping, and approving dynamic plugins through a visual interface, making it suitable for developers who frequently debug or manage multiple dynamic plugins.