dsh-dracula-theme
🧛 Dracula theme for DeepSeek Harness (DSH): the classic dark palette — plus the Dracula Soft variant — registered into the built-in theme runtime, with a one-click skin picker in Settings → General.
Features
- Two faithful variants built from the official Dracula palette:
Dracula — the classic #282a36 canvas
Dracula Soft — the gentler #343746 background
- Core logic adopted from the official Dracula DeepSeek port (MIT): the canvas/brand
--dsw-static-* overrides and code-highlight palette are taken verbatim and translated into the DSH theme runtime. On top of that, full token coverage: neutral & canvas ramps, brand (purple), blue (cyan), red / green / amber state colors, alias surfaces, component-specific tokens (sidebar, bubbles, composer, menus) and the official Dracula syntax colors for code highlighting (--shiki-*).
- One-click switching from Settings → General → Dracula theme, persisted across sessions.
Preview

The classic Dracula canvas (#282a36) mapped onto the full DSH surface stack — sidebar, conversations, code blocks — with the purple/cyan brand accents from the official Dracula DeepSeek port.
Palette
Official spec alignment
The token mappings follow the official Dracula Syntax Highlighting Specification and the classic dracula/sublime convention:
UI surfaces follow the spec's current-line / selection distinction: text selection is #44475A (including the ::selection rule), the current-line highlight uses the opaque fallback #353747, and floating interactive elements use #343746 / #424450. Status colors (error/success/warning) deliberately follow the syntax palette like the official Dracula DeepSeek port, keeping the whole UI on one consistent palette.
Installation
# from npm (prebuilt, recommended)
dsh plugin --profile web add dsh-dracula-theme
# or from source
dsh plugin --profile web add https://github.com/ossFrankFrank/dsh-dracula-theme
Restart the profile, then pick the skin in Settings → General → Dracula theme.
DSH Desktop 2.0.4+ — DSH client packages moved to 0.1.2-alpha.1; 1.1.0 is
the first release compatible with that host (see CHANGELOG). On DSH Desktop,
install from the in-app plugin market instead of the CLI --profile web flow
(the desktop app now owns its own profile). Installing 1.0.0 on a 2.0.4 host
makes the app fail to start (plugin client bundle references the removed
@deepseek-ai/dsh-client-runtime module), so do not install the old version.
Development
npm run generate # rebuild themes/*.json and lib/client.js from palette/dracula.json
The token tables are generated: edit the anchors in palette/dracula.json (colors, the official canvasRamp/brandRamp/codeTokens mappings, grayRamp, soft.background) and regenerate. lib/client.js is the browser bundle consumed by the DSH client runtime; lib/index.js is a no-op host entry.
License
MIT — see LICENSE. Structure modeled on dsh-catppuccin (MIT); token mapping adopted from the official Dracula DeepSeek port (MIT).
Development workflow
- Edit the anchors in
palette/dracula.json — colors, the official canvas/brand/code mappings, grayRamp, soft.background.
npm run generate — rebuilds themes/*.json and lib/client.js (the browser bundle).
- Validate:
node scripts/check-themes.mjs (structural token check) — CI runs the same check plus a generated-artifacts diff.
- Test in a live profile:
dsh plugin --profile web add /path/to/this/repo (local link), restart the profile, pick a skin in Settings → General → Dracula theme.
- Release: bump
version in package.json, commit, push, pnpm publish, then update the profile to the published version (dsh plugin --profile web add dsh-dracula-theme) and restart the app. The profile installs from npm, not from the working tree — local edits only take effect after publishing or via a local link.