cholot-Zhou/dsh-ui-overrides

dsh-ui-overrides

User-owned CSS overrides for the DeepSeek Harness Web UI — restyle any plugin without patching it.

Uncategorizedcssdeepseek-harnessdsh

dsh-ui-overrides

Your own CSS for the DeepSeek Harness Web UI — restyle any plugin without patching it.

dsh-ui-overrides serves one user-owned stylesheet and links it into the page. Because every rule is plain CSS injected after the plugins' own styles, you can make a floating panel fully opaque, change colors, fix spacing, or hide an element — for any plugin, including ones you did not write.

This is the generalized version of the "quote bar opaque" fix: the stylesheet is yours, so the target is whatever selector you put in it.

Install

dsh plugin --profile desktop add dsh-ui-overrides

Then fully restart DSH (plugin bundles load at startup) and open a conversation.

For a local checkout:

dsh plugin --profile desktop add file:/absolute/path/to/dsh-ui-overrides

Usage

Edit this file:

~/.dsh/ui-overrides.css

(If DSH_HOME is set, the file is $DSH_HOME/ui-overrides.css.)

Then reload the page (Ctrl+R), or restart DSH. The file is read on every page load, so there is no rebuild step. If the file does not exist, the plugin creates a comment-only starter on first request.

Example: fully opaque quote bar (dsh-client-ui-quote)

#dsh-quote-bar,
#dsh-quote-popover,
#dsh-quote-toast {
  background: Canvas !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

Example: any other plugin

  1. Open DevTools (the desktop app allows it) and inspect the element you want to change.
  2. Copy a stable selector — an id, a data-* attribute, or a class combination that is unlikely to change.
  3. Write normal CSS. Add !important when the plugin sets the value inline or with higher specificity.
/* example: widen a floating panel */
#some-plugin-panel {
  width: 420px !important;
}

/* example: tint all tooltips of a plugin */
[data-tooltip] {
  background: #1e1e22 !important;
  color: #fff !important;
}

Notes and limits

  • CSS only. The plugin does not run JavaScript written by users; it links a stylesheet. It cannot add behavior.
  • Selectors are someone else's contract. If the target plugin changes its DOM in an update, the rule may stop matching; update the selector. Prefer id / data-* selectors over hashed class names.
  • Local file, no network. The stylesheet is served by the DSH host from your own machine; nothing is uploaded anywhere.
  • Theme-aware colors. Canvas and other CSS system colors follow the active light/dark color-scheme, so one rule can work in both themes.
  • Requires a Web UI profile (desktop or web). Headless/TUI profiles do not load the client half.

Compatibility

  • Tested with DSH Desktop 0.2.1-rc.2 (desktop profile).
  • Works with any plugin that renders DOM in the Web UI; the bundled example targets dsh-client-ui-quote 0.12.x.
  • dsh field: bundle + client manifests, installable with dsh plugin add.

License

MIT © dsh-ui-overrides contributors