dsh-skin-switcher:为 DSH 界面一键切换十一种视觉风格

Introduction

When developing agents or chatting in DeepSeek Harness (DSH) for a long time, the interface often sticks to the default theme: fully functional, but visually monotonous. Changing the system light/dark mode only adjusts the color scheme; it is hard to switch to pixel art, terminal green text, retro panels like early QQ, or full-page gradient backgrounds. Modifying CSS yourself risks conflicts with the Harness theme service, and it is easy for it to become invalid after upgrades.

dsh-skin-switcher follows the official Client plugin route: it adds a palette entry in the left sidebar. Opening it reveals a “Style Wall”; selecting a card applies the skin globally to the application; clicking “Default Appearance” reverts to the original. Implementation-wise, it uses token overlays and disposable style injection, relying on no extra npm packages, making it suitable for users who just want to change the look without forking the frontend.

What is it

  • Repository / Directory Name: BXCQ/dsh-skin-switcher (Community directory entry: bxcq/dsh-skin-switcher)
  • Package Name: @local/dsh-skin-switcher (package.json version 1.3.0, license MIT, maintainer BXCQ)
  • Category: Fun Skins; Pure Web Client capability, Host side is empty implementation
  • Summary: Zero-dependency sidebar plugin providing 11 overall visual styles and 1 “Default Appearance” option for DeepSeek Harness Web/GUI; switching applies globally to the application, and preferences are persisted.

The community plugin directory is at skillhub.cn, and the source code is on GitHub. The directory site has no official affiliation with DeepSeek / Fangzhuang; the DSH ecosystem is “everything is a plugin”; it is recommended to check the source code and license before installing. The plugin runs with the current dsh process permissions; installing is equivalent to trusting the repository author.

Core Features

Eleven Styles + Default Reversion

The styles listed in the README are as follows (Item 12 is Harness’s native appearance):

Style ID Feel (excerpt from docs)
Pixel pixel Warm paper background, hard shadows, scanlines, right angles, monospaced font
Terminal terminal Near-black green text, no rounded corners, no shadows, scanlines
Paper paper Off-white background, thin black borders, serif headings
Aurora aurora Deep blue-purple background, glass layers, large rounded corners, soft glow
Candy candy High saturation macaron colors, extra-large rounded corners, capsule buttons
QQ Classic qq Early QQ: Sky blue gradient, 98-style 3D borders, Tahoma + Songti
Sunset sunset Apricot-orange → Rose-pink → Violet warm gradient
Ocean ocean Cyan → Sky blue → Indigo cool gradient
Cyber Neon cyber Near-black purple background, Cyan/Magenta glow, monospaced font
Mint mint Mint green → Cyan → Light blue
Mist mist Neutral gradient from cool grey to pale purple
Default Appearance (Option in panel) Restore Harness native colors, rounded corners, and fonts

Planar styles mainly rely on 14 alias tokens (one set for light/dark each) to override colors; rounded corners, shadows, fonts, scanlines, etc. are injected via CSS in the package. Gradient styles and QQ Classic draw gradients on the html canvas, using semi-transparent surface tokens to give the panel a frosted glass effect; the right-side dock and floating document windows also draw matching fixed canvases to avoid text obscuration caused by semi-transparent backgrounds.

Relationship with Native Theme

  • Colors are applied via the Client theme service’s theme.overrideTokens('@local/dsh-skin-switcher', tokens), stacking on top of the current theme, not modifying the theme registry; Light/Dark/System settings in preferences can still be switched.
  • When switching styles, the previous styles.insert injected stylesheet is destroyed to avoid leaks.
  • Gradient styles subscribe to theme/change and redraw with color scheme changes; if the theme service is missing, it degrades to prefers-color-scheme, with diagnostic information left in the console.

Persistence

The selected style is written to localStorage and a cookie named dsh_skin; the Cookie scope is by hostname, so preferences are retained even when DSH changes ports on startup.

Installation & Enablement

In an environment with a configured DSH desktop profile, use the command given in the README (do not manually concatenate other dsh plugin add forms based on the repository name):

dsh plugin --profile desktop add git+https://github.com/BXCQ/dsh-skin-switcher.git

After installation, refresh the page (F5). A palette icon will appear in the left sidebar (after icons related to Plugins / Schedules / Context, as documented, fixed at approx. position 30).

When github.com:443 is blocked, use:

dsh plugin --profile desktop add git+ssh://git@github.com/BXCQ/dsh-skin-switcher.git

You can also clone the repository locally and fill in the absolute path of that directory in the plugin manager (consistent with the README).

Typical Usage

  1. Click the palette icon in the left sidebar to open the style panel.
  2. Click any style card; the entire application changes skin immediately (cards themselves also preview in real-time).
  3. To restore, click “Default Appearance”.
  4. Next time you open the DSH Web interface on the same host, the previous selection will be restored automatically.

Uninstall: Close or uninstall @local/dsh-skin-switcher in the “Plugins” page; before uninstalling, it reverts to the default appearance, and the overlay is destroyed when the Client ends.

Applicability & Notes

Who is it for

  • Users who use DSH Desktop Web GUI for a long time, want a distinct interface or mood-based skin switching, and do not want to maintain private CSS.
  • Users who need to experience pixel, terminal, paper, aurora, candy, QQ retro, and various gradient skins without breaking Light/Dark mode switching.

Known Limitations (from README)

  • Few hardcoded color areas (e.g., some code highlighting, Markdown inline colors) do not change with tokens, which falls within the boundaries of the Harness theme mechanism.
  • Gradients are drawn on the html canvas: if an area has its own opaque non-token background, the underlying gradient might not be visible, but the semi-transparent surface tones will still take effect.
  • Pure visual presentation has not undergone browser screenshot regression testing; logic and slot behavior are covered by node test/harness.mjs (75 assertions).

If developers need to add styles: In client.js, supplement light/dark palettes, SKINS items, and locale text according to the README; for gradient styles, use gradientChrome and provide bgImage in preview.

Local Verification (inside repository):

node test/harness.mjs

Conclusion

dsh-skin-switcher turns skin switching into a panel in the sidebar: eleven styles with one-click switching, default appearance reversion, and preference persistence across ports; implementation-wise, it respects the Harness theme service rather than replacing it. To try it, check the entry info from the community directory; installation and source code follow GitHub.

  • Directory page: https://www.skillhub.cn/plugins/BXCQ/dsh-skin-switcher
  • GitHub: https://github.com/BXCQ/dsh-skin-switcher
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye