DSH uses a plugin-based architecture. Developers often need to switch Web UI styles to adapt to different scenarios. Manually modifying configuration files or source code is inefficient. dsh-skin-switcher aims to address this pain point by providing a non-intrusive skin-switching solution.

Plugin Overview

This is a pure Cordis plugin that does not modify DSH core source code. It enables one-click switching via a floating button in the top-right corner and supports automatic discovery of community skins. After installation, the standard dsh web command automatically loads this plugin.

Installation and Enabling

Install it using the official CLI:

dsh plugin --profile web add dsh-skin-switcher
dsh web

After installation, refresh the page to use it.

Core Features

The plugin provides the following capabilities:

  1. Non-intrusive architecture: It does not modify DSH core source code and operates entirely through the Cordis plugin mechanism.
  2. Quick switching: A floating button in the top-right corner lets you switch skins instantly with a click.
  3. State memory: After selecting “remember,” the last selected skin is retained the next time the interface is opened.
  4. Automatic discovery: It automatically scans and identifies community-published style/link injection skins. Once a new skin is installed, its switching button appears automatically.
  5. Complete restoration: When switching away from a skin, it cleans up stylesheets, body attributes, and theme token overrides, ensuring the interface returns to a clean state.

Typical Usage

After refreshing the page, a pill-style button group appears in the top-right corner of DSH:

  • Default: Restores the native DSH interface.
  • Whale Maid: Deep-sea maid atelier (maid-atelier) skin.
  • Endfield: Industrial-style workbench (endfield-ui) skin.
  • Aqua: Glassmorphism frosted glass theme (this skin package must be installed first).
  • Other auto-discovered skins: Click to enable one individually; other skins are automatically disabled.

To uninstall the plugin, run:

dsh plugin --profile web remove dsh-skin-switcher

Automatic Discovery Mechanism

The plugin listens for DOM changes and scans <style> or <link> elements in <head> that carry the data-plugin marker:

  • Skip rules: Packages with the official @deepseek-ai/ prefix are skipped; skins that already have built-in adapters are skipped.
  • Recognition rules: Elements whose names contain keywords such as skin, theme, maid, whale, or aqua are included as switching buttons.

Limitation: For skins that rely on complex mechanisms such as theme token overrides, overlay slots, or asset routing (for example, Endfield), the automatic discovery mechanism is limited and may require dedicated adapter logic.

Built-in Adapter Logic

The following skins have deep adapter logic, enabling complete cleanup and restoration when switching:

  • @dsh-external/dsh-client-ui-skin-maid-atelier (Whale Maid / Deep-sea Maid Atelier): toggled by the body attribute data-dsh-maid-atelier.
  • @rison/dsh-endfield-ui (Endfield Workbench): manages the stylesheet link toggle and the override/cleanup of 71 theme tokens.
  • @deepseek-ai/dsh-client-ui-aqua (Aqua frosted glass): implemented via built-in adapter logic because the package is under the official scope and is skipped by automatic discovery.

Use Cases and Notes

  • Applicable audience: Developers or users who frequently switch between multiple UI styles.
  • Note: Complex skins (such as Endfield) require built-in adapter logic for deep cleanup. If automatic discovery fails, check whether the skin is complex or already has built-in adapter logic. Please review the source code and license before installation.

Plugin maintainer: tsdfy.