DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

raheemmiyasin /

raheemmiyasin/dsh-theme-palette

Verified

Theme palette picker for the DeepSeek Harness Web UI: nine palettes, an Obsidian theme, and a Cyberpunk neon theme with a HUD backdrop and custom brand mark.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b0486fde

Theme palette

Adds a Theme palette row to Settings → General in the DSH Web UI. A palette recolors the interface (surfaces, borders, text, sidebar, menus, code blocks, links, and focus ring) while the shipped Appearance row keeps deciding light / dark / system.

Palette Character
Default The built-in untinted look
Ocean Cool blue
Forest Deep green
Ember Warm orange
Violet Purple
Rose Pink-red
Sand Warm neutral
Obsidian Neutral near-black with a violet accent, after the Obsidian editor theme
Cyberpunk Neon HUD: translucent panels over a glowing grid backdrop, cyan/magenta accents, and a custom gradient brand mark

Cyberpunk

The Cyberpunk palette is the complex one. Besides its token set it owns two extra pieces that appear only while it is selected:

  • Backdrop — a plugin-owned stylesheet paints two pointer-transparent pseudo-elements (body::before/body::after): a neon horizon of cyan, violet, and magenta glows, a 44px HUD grid with scanlines, and a soft vignette mask. Its surface tokens are translucent, so panels float over it. A pale daylight variant is used while Appearance is in light mode. Removing the palette removes the stylesheet.
  • Brand mark — an original SVG emblem (gradient hex, diamond core, HUD ticks, cyan glow) replaces sidebar.brand.mark and fills conversation.hero.brand.mark. The sidebar mark is a single slot whose shipped occupant sits at priority 0, so the mark registers at priority −1 to shadow it and disposes when another palette is selected, restoring the shipped mark.

How it works

  • client.js registers one settings.general.item row (order 11.5, next to Appearance and font size) with a swatch preview per palette.
  • Choosing a palette stacks a ctx.theme.overrideTokens() layer of --dsw-* alias tokens over the active light/dark theme. Each palette carries the same token set for both color schemes, so Appearance keeps working.
  • The choice is stored in this plugin's Host config (palette, a volatile text field), read and written with ctx.configForms.get('theme-palette'). It survives restarts, and a refused write reverts the row.

Install

In the DSH Web UI, open Plugins → Add plugin, paste the absolute path to this directory, install, then switch the bundle on. The row appears in Settings → General, directly under Appearance.

From the Desktop CLI:

dsh plugin --profile desktop add /absolute/path/to/dsh-theme-palette

Because a local directory installs as a link:, edits to the client half apply after a page reload without reinstalling.

Vendored dependencies

vendor/schemastery.mjs and vendor/cosmokit.mjs are the Harness's own @deepseek-ai/schemastery 3.19.0 and @deepseek-ai/cosmokit 1.9.0 builds. Both are MIT: see vendor/LICENSE-schemastery (DeepSeek) and vendor/LICENSE-cosmokit (Shigma, 2021-present). A profile-installed bundle cannot resolve the Harness installation's packages, so the Host half needs a local copy to declare its Config schema. Volatile config references are identified with Symbol.for, so these copies interoperate with the Host's settings service.

License

MIT — see LICENSE. The vendored files keep their upstream licenses.

—/ 5

No ratings yet

Verified DSH bundle

Commit b0486fdea6f9

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout