one-dark-pro-dsh-plugin

August 30, 2026 · View on GitHub

One Dark Pro theme for DeepSeek Harness Web UI.

Install this plugin to add a "One Dark Pro" toggle in Settings → General. When enabled, the entire DSH Web interface switches to the classic VSCode One Dark Pro dark palette.

中文 README

Features

  • Registers a third-party one-dark-pro theme id via the official ctx.theme service
  • Toggle in Settings → General
  • Switches the base preference to dark and stacks a One Dark Pro token override layer
  • Persists the choice in browser localStorage
  • Remembers and restores your previous light/dark/system preference when disabled
  • Cross-tab sync

Screenshots

Before (light)After (One Dark Pro)
Light themeOne Dark Pro theme

The toggle row in Settings → General:

One Dark Pro toggle off One Dark Pro toggle on

Installation

Build the plugin (see Development), then pack and install it into the web profile:

cd one-dark-pro-dsh-plugin
pnpm pack
dsh plugin --profile web add ./one-dark-pro-dsh-plugin-0.1.0.tgz

Verify the layer is present without booting:

dsh --profile web --dump-config

Then restart dsh web and open the Web UI.

Method B: Install from source inside the DSH monorepo

For development, place this directory inside the DSH checkout so the workspace build can compile it:

# On Windows, use a junction so edits stay in one place
New-Item -ItemType Junction -Path deepseek-harness\packages\client\one-dark-pro-dsh-plugin -Target one-dark-pro-dsh-plugin

Add the package to deepseek-harness/tsconfig.client.json references:

{ "path": "./packages/client/one-dark-pro-dsh-plugin" }

Build the client libraries:

cd deepseek-harness
pnpm run build:lib:client

Then pack from the workspace copy and install as in Method A.

Method C: Install from GitHub

dsh plugin --profile web add github:yudaxia1/one-dark-pro-dsh-plugin

Git installs run the prepare script to build the plugin. On pnpm ≥ 10 you must first authorize the build in the profile's pnpm-workspace.yaml.

Uninstall

dsh plugin --profile web remove one-dark-pro-dsh-plugin

Development

This plugin is written in TypeScript and uses the DSH shared clientBundle tsdown preset. It must be built from inside the deepseek-harness monorepo because the preset and TypeScript base config live there.

# After creating the junction in packages/client/one-dark-pro-dsh-plugin
cd deepseek-harness
pnpm run build:lib:client

The build emits:

  • lib/index.js — host half
  • lib/invariant.js — shared invariants
  • lib/client.js — browser bundle
  • lib/types/ — TypeScript declarations

Color mapping

One Dark Pro colors are mapped to DSH semantic tokens. The full mapping lives in src/client/color-themes.ts; key tokens include:

DSH tokenOne Dark Pro
--dsw-alias-bg-base#282c34
--dsw-alias-bg-layer-1#21252b
--dsw-alias-bg-layer-2#2c313c
--dsw-alias-bg-layer-3#3a404d
--dsw-alias-label-primary#abb2bf
--dsw-alias-label-secondary#828997
--dsw-alias-label-tertiary#5c6370
--dsw-alias-brand-primary#528bff
--dsw-alias-border-l1#181a1f
--dsw-alias-border-l2#3e4452
--dsw-alias-button-primary-fill#528bff
--dsw-alias-interactive-bg-hover#ffffff0a
--dsw-alias-state-error-primary#e06c75
--dsw-alias-state-success-primary#98c379
--dsw-alias-state-warn-primary#d19a66
--dsw-specific-sidebar-fill#21252b
--dsw-specific-input-major#21252b
--dsw-specific-bubble#2c313c

License

MIT