DeepSeek Harness Plugin

shawnlone/dsh-theme-tuner

Stars ★ 2 Downloads (30d) 770 Category Themes & Appearance Added 2026-08-27 npm dsh-theme-tuner

Add a theme-adjustment panel under Appearance to customize accent, background, foreground, contrast and gradient, applied live through theme token overrides.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-theme-tuner

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:shawnlone/dsh-theme-tuner

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

Chinese README

Customize the DeepSeek Harness (DSH) interface theme directly under the built-in Appearance settings — accent, background, foreground, contrast and gradient, applied live.

Reuses the built-in Appearance light / dark / system switch, so there is no duplicate theme toggle.

Screenshots

Dark theme effectDark · theme effect Dark theme effectDark · theme effect Dark theme effectDark · theme effect
Dark theme effectDark · theme effect Light theme effectLight · theme effect Theme settings panelTheme settings panel

Features

  • Sits directly under General Settings → Appearance, adjusting accent / background / foreground / contrast / gradient.
  • Reuses the built-in Appearance light / dark / system switch and tunes the currently active theme.
  • Keeps the light and dark palettes separately; the contrast slider softens or sharpens the foreground text per theme.
  • Applies live via DSH theme.overrideTokens (--dsw-alias-* design tokens), with a one-click reset to the current theme default.

Install

dsh plugin --profile web add github:shawnlone/dsh-theme-tuner

This repo is organised so the repo root is the plugin package: package.json declares dsh.bundle.patch (the install entry) and dsh.client (browser UI), with cordis.patch.yml at the root. A new plugin needs a profile restart to take effect. scripts/install.ps1 / scripts/install.sh helpers (with a local-junction fallback when a pnpm supply-chain policy blocks the normal path) are also provided.

How it works

The plugin writes your values into DSH's design tokens:

  • accent → --dsw-alias-brand-primary / --dsw-alias-button-primary-fill / --dsw-alias-state-business-primary
  • background → --dsw-alias-bg-base / --dsw-alias-bg-layer-1/2/3 / --dsw-specific-sidebar-fill
  • foreground → --dsw-alias-label-primary/secondary/tertiary (derived from the chosen foreground + contrast)

Settings persist through the theme-tuner settings namespace. The row registers into settings.general.item (order 10.5), directly under the built-in Appearance (order 10). Since DSH 0.1.2-rc.1 the font-size row sits at order 11 and the conversation-display row at order 12, so 10.5 keeps the customizer pinned to the Appearance row.

Structure

dsh-theme-tuner/
  package.json          # dual-face manifest: dsh.client + dsh.bundle.patch
  cordis.patch.yml      # bundle mount row (insert)
  lib/index.js          # host half: registers the theme-tuner settings namespace + schema
  lib/client.js         # browser half: settings row + live token application
  scripts/              # install.ps1 / install.sh
  preview.html          # standalone demo
  assets/               # docs / plugin-market screenshots

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.