Visual theme customizer for the DeepSeek Harness web UI — backgrounds, text colors, borders and details, all adjustable visually, with presets you can import and export, persisted across restarts.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-theme-customizer
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lxxz1918/dsh-theme-customizer
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
English | 中文
A theme customizer plugin for the DeepSeek Harness (DSH) web UI. Backgrounds, text colors, borders and details — all adjustable visually, persisted across restarts. Config is stored in localStorage; presets can be exported as
.tczpfiles (images included) and shared with any machine.
🎨 Theme Gallery
Four AI-generated wallpaper themes, each with two main-UI "display area" modes: include sidebar and exclude sidebar, plus matching .tczp presets for one-click import (see "Asset Pack" below).
| 🌌 Aurora Nights (dark) | 🌇 Sunset Clouds (bright) |
|---|---|
![]() |
![]() |
| 🌃 Cyber Nights (dark) | 🌸 Sakura Sky (bright) |
![]() |
![]() |
📸 Screenshots
Each theme has two modes (presets -0 / -1): display area includes sidebar and display area excludes sidebar . Each mode has 3 shots: front-1 / front-2 / settings.
Display area includes sidebar (-0)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area excludes sidebar (-1)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area includes sidebar (-0)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area excludes sidebar (-1)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area includes sidebar (-0)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area excludes sidebar (-1)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area includes sidebar (-0)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Display area excludes sidebar (-1)
| Front 1 | Front 2 | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Features
- Interface module (7 background areas): Main / Sidebar / Conversation / Composer / Settings panel / Floating panel / Cordis panel
- Each area: None / Solid color / Image (with crop & selection) + opacity (larger value = more transparent) + base color (independent layer)
- Main background supports "include sidebar / exclude sidebar" display area toggle
- Sidebar image fades out directly via mask — never covers the top UI or the settings panel
- Independent "when collapsed" settings for both Main and Sidebar (applied when the sidebar is folded; cross-fade transition on toggle)
- Borders module: color + opacity for all default UI borders/dividers, independently for 5 areas (Main incl. sidebar / Cordis / Composer / Settings / Floating panel)
- Text colors module: 5 categories (Body / Process / Auxiliary / Faded / Accent), shared across light & dark themes, restorable to official defaults
- Brand color: color + opacity for the top-left DeepSeek Harness logo; the "Harness" wordmark can be tinted separately; the collapsed-sidebar logo (whale icon) has its own independent setting (follows the expanded state by default)
- Welcome page tinting: on the empty state, the whale icon / "探索未至之境" headline / "预览版" badge text / badge background can each be tinted with color + opacity (official colors by default, decoupled from the body text color)
- Conversation details: user bubble / inline code / code block background / code block scrollbar / conversation scrollbar / todo panel collapsed & expanded / "scroll to bottom" button background
- Composer: background, fixed input height (1–10 rows), stats line takeover (9 independent toggles + full expand), command button & menu backgrounds
- New session button: None/Solid/Image style + show text/icon toggles + independent icon/text colors + base color
- Layout: draggable settings panel (drag its header; position persisted; one-click reset)
- Floating panel: a draggable mini settings panel (choose which modules to show), always on top
- Presets: save/apply/rename/delete/export/import (
.tczp, images included, up to 10) + drag-to-reorder - Global reset: one click to restore all defaults (3-step confirm to prevent accidents)
Installation
# Option 1: npm (published package)
npm install -g dsh-theme-customizer
dsh plugin --profile web add dsh-theme-customizer
# Option 2: local directory (after cloning this repo)
dsh plugin --profile web add <path-to-this-repo>
Then restart dsh web for it to take effect. Verify: Settings → Theme should appear.
Usage
- Open Settings → Theme and adjust by module; changes apply instantly and save automatically (the bottom of the page shows "last saved" time)
- For quick tweaks, click "↗ Open float panel" at the top right — the panel is draggable
- To verify the conversation-area options, use the test text in 对话区测试指令.md
Persistent Cordis button (optional)
The "Cordis button always visible" toggle in Theme settings requires patching the dsh-client-ui-cordis package (provided by this plugin's apply-patch.cjs); without the patch the toggle has no effect. Install:
node apply-patch.cjs # apply patch (auto backup)
node apply-patch.cjs --check # check status
node apply-patch.cjs --undo # revert
⚠️ DSH upgrades overwrite the official package — re-run apply-patch.cjs after upgrading. Details in PATCH-CORDIS-BUTTON.md.
Build from source (developers)
# 1. Concatenate source fragments (optimized/src/ → optimized/dist/, with syntax check + line map/symbols)
node optimized\build.cjs
# 2. Generate the static client bundle (dist/p3_2_client.js → lib/client.js)
node build_static.cjs optimized\dist\p3_2_client.js lib\client.js
# 3. Syntax check + install for testing
node --check lib\client.js
dsh plugin --profile web add <path-to-this-repo>
Source layout: optimized/src/ contains 16 fragments (00_*~15_* + host.js) concatenated in filename order into the plugin function body. Look up features in optimized/INDEX.md.
Preset files (.tczp)
Presets panel → "Import preset" and pick a .tczp file to restore a whole config (images included — no original files needed). Export each preset via "Export" in the same panel.
📦 Asset Pack
The full assets for all four themes (original wallpapers + 8 .tczp presets + all showcase screenshots) are packed in assets.7z attached to GitHub Releases. Download and extract with 7-Zip:
展示/
├── readme展示图/ # README screenshots (4 themes × 2 variants × 3 shots)
├── 展示1/ ~ 展示4/ # Each: original wallpapers (landscape + portrait) + 2 .tczp presets + shots
└── (wallpaper originals: 展示N/N-0, N-1)
Import: Settings → Theme → Presets → Import → pick
展示N-N.tczp— images included, full effect restored in one click.
Uninstall
dsh plugin --profile web remove dsh-theme-customizer
Contact & Feedback
- Bugs / feature requests → open an issue
- Maintenance: issues are reviewed and replied to every Sunday
- Bilibili: homepage
AI Usage
This project is designed and reviewed by lxxz1918; the code is written with the assistance of an AI assistant (DeepSeek). All feature requirements, UI copy and final results are confirmed by the author.
License
Links
More in this category
Small-tailqwq/dsh-deep-whale#maid-atelier★ 2433
Whale-girl skin series for the DSH Web UI (maid-atelier).
elysia395/dsh-wallpaper-engine★ 683
Requires DeepSeek Harness 0.1.5-rc.1+ (DSH Desktop >= 2.0.7) and dsh-better-sidebar >= 0.19.0 - update both before installing or updating this plugin. Plays local Wallpaper Engine Video/Web wallpapers behind the chat, renders Scene wallpapers as extracted static frames, and adds content-rating/type filters, custom uploads and an iOS-style liquid-glass settings window.
d-dev0101/open-sea-skin★ 387
Realtime WebGPU ocean skin with quick controls for waves, daylight, glass opacity, and an automatic day cycle.
kingOfSoySauce/dsh-liang-skin★ 237
Adaptive reasoning slider skin that maps each model's available reasoning efforts onto a 0–30 visual intensity scale, with synchronized portraits, background, and interface colors.
RevolutionLA/dsh-dream-skin★ 208
One-command skin plugin: 8 original themes, translucent wallpaper with opacity/blur, per-user accent, and shareable theme-pack import/export, favorites and surprise-me — purely native on DSH's token system.
ymh0000123/dsh-theme-endfield★ 127
Arknights: Endfield industrial-editorial theme for the DSH Web UI: cream paper, ink text, zero border radius, two switchable accent palettes (signal yellow / teal-cyan), plus optional marching-squares contour background, ENDFIELD watermark and boot progress plate.
























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