DSH Hub

Physicolor/dsh-ui-harmonizer

dsh-ui-harmonizer

UIWeb UI9 GitHub stars· updated 2026-08-22

Web UI polish layer for DeepSeek Harness: normalizes unfinished or self-contradictory official UI, reconciles style conflicts between installed plugins, and unifies the visual language via official design tokens.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-ui-harmonizer

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-ui-harmonizer DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-ui-harmonizer.svg)](https://dshhub.dev/plugins/dsh-ui-harmonizer)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Physicolor/dsh-ui-harmonizer, cleaned of badges and images.

<p align="right"><b>English</b> · <a href="README.zh-CN.md">简体中文</a></p> <h1 align="center">DSH UI Harmonizer</h1>

<strong>UI harmonizer for DeepSeek Harness.</strong><br> Normalizes the official UI · reconciles every plugin · settings auto-normalizer · UI customization (incl. rounded card)


TL;DR: You installed a bunch of DSH plugins but the UI looks inconsistent? DSH UI Harmonizer uses CSS overrides + runtime DOM coordination to bring them back to the official design language — non-destructive, fully reversible, zero model cost.

DSH UI Harmonizer is a client-only DSH bundle plugin. It adds no model tools and modifies no session logs — it adjusts the UI purely through official slots (settings.section / settings.general.item) and the --dsw-* semantic token system.


Features

🎨 Official UI Normalization

CapabilityDetail
Single-line headerMoves the conversation / trajectory selector into the title row; the header collapses to one line
Button capsule familySession log, widgets, and toggle buttons unified into 32px capsules
Right-rail flush rounded rectbetter-sidebar panel overlay layout; the header stays put
Unified settings headerTitle 18/600 + description 13px + hairline divider

♻️ Plugin Visual Reconciliation

TargetApproach
dsh-better-sidebarCapsule-ize toggle buttons, unify panel backgrounds, coordinate layout, smooth transitions
dsh-widgetsMatching stat capsule family, header utilities alignment
Third-party settings pagesAuto-fill headings, drop redundant icons, normalize spacing

🧹 Settings Auto-Normalizer ⭐

When any third-party plugin adds a page to settings.section that doesn't follow the official spec, this plugin auto-corrects it:

Auto-checkFix
Missing page titleInjects an 18/600 title (from the nav label or a known mapping)
Redundant icon beside the titleRemoves the title-row logo, keeps plain text
Title/description too tightUnifies to 4px spacing + hairline divider
Inconsistent type/sizeTitle 18/600, description 13/20 + border-bottom

🎛️ UI Customization

The "UI Customization" block under Settings → General: chat width, markdown font size, workspace scale, UI font stack, and rounded card all adjust live. The "rounded card" renders the conversation area as a card with a rounded top-left corner and a drop shadow, auto-resizing with the sidebar width / details column.


Architecture

  • Zero model cost: the host (node) half is a no-op; all changes happen in the browser half;
  • Official design tokens: all styles use the --dsw-* semantic tokens and follow light/dark themes automatically;
  • Two injection channels: static rules (CSS Modules) + dynamic <style data-plugin> tags;
  • Reversible cleanup: fiber-effect disposers manage every side effect — uninstalling restores everything;
  • Slot integration: settings.general.item / settings.section / shell.overlay (rounded-card overlay).

Installation

# via npm (plugin market)
dsh plugin --profile web add dsh-ui-harmonizer

# local development (link)
dsh plugin --profile web add link:D:/dsh-home/plugins/harness-ui-enhancer

After installing, hard-refresh the browser (Ctrl+Shift+R); the "UI Customization" block appears under Settings → General.


Development

Related plugins