Skip to main content

deepseek-harness-desktop/packages/dsh-skins

156Stars5Forks6Issues0Watchers

An npm package with 11 built-in DSH Web theme skins and skin center cards, supporting one-click preview and switching without service restart.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the ningbainb/deepseek-harness-desktop monorepo — stars and activity count the whole repository.

Language
TypeScript
License
BSD-3-Clause
Branch
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add @linxin666/dsh-skins

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin ningbainb/deepseek-harness-desktop/packages/dsh-skins for me: review the repository at https://github.com/ningbainb/deepseek-harness-desktop first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Description

A skin bundle aggregator for the DSH Web chat client: once installed, you'll see a "Skin Center" card in the plugin configuration page, listing 11 built-in theme skins (QQ retro, Tonghuashun, Windows XP, Dragon's Descendant, Minecraft, Hatsune Miku, Whale Song, Trading Terminal, Xigang, etc.), supporting online try-on and one-click switching.

Core Features

  • Insert a Skin Center card in "Plugin Config → Web UI Plugins" listing official defaults and all installed skins
  • Try on any skin online (not persisted): instant preview, light/dark theme toggle, full restore on exit
  • One-click apply skin: writes to ~/.dsh/profiles/<profile>/cordis.patch.yml, hot-loaded by host config listener within seconds, no restart needed
  • Skins are mutually exclusive: only one active at a time (enforced by patch's managed section)
  • Background opacity slider (only effective for skins with background images)
  • Single npm package bundles all skin assets, no separate npm package names needed per skin

Technical Implementation

  • Language: TypeScript + Node.js (aggregator as ESM, build scripts as Node scripts)
  • Key Dependencies: @deepseek-ai/dsh-host-webserver (host-side routing), @deepseek-ai/dsh-client-runtime & @deepseek-ai/dsh-client-ui-theme (client runtime & theme), schemastery (background config schema), react (Skin Center card UI)
  • Architecture Pattern: Cordis plugin (host + client dual half-segments) + in-process dsh-skin use ESM port (src/skin-switch.ts, avoids external CLI dependency), communicates with browser half-segment via native HTTP routes /api/skin-center/*
  • Entry Files: Aggregator entry packages/dsh-skins/build.mjs; Skin Center host entry packages/skins/skin-center/src/index.ts; client entry packages/skins/skin-center/src/client/index.ts

Use Cases

Regular users who want to change the DSH Web chat interface style without command-line hassle: install one package to get 11 themes, from QQ 2008 retro, Windows XP Luna to current popular styles like Hatsune Miku and Trading Terminal. Developers and heavy customizers who don't want the Skin Center card but prefer manual dsh-skin use switching can also use it: the aggregator bundles each skin's complete skin.json + lib/client.js, and the dsh-skin CLI can directly recognize them.

Prerequisites & Compatibility

DependencyMinimum VersionNotes
DSH0.1.0-rc.7+Inferred from @deepseek-ai/* packages in devDependencies being ^0.1.0-rc.7
Node>=22.19.0From engines field in repository root package.json (^22.19.0 || >=24.0.0)
PlatformWebBundle only declares platform: "web", scoped to DSH Web GUI
Native ModulesNoneFalls back to directory junctions (junctions) on Windows symlink failure, no native module dependency

Installation

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-skins

Configuration Options

ConfigTypeDescriptionDefault
backgroundOpacityNumber (0-100, step 5)Main interface background blocking opacity; higher values make background darker; only visible effect on skins with built-in backgrounds (e.g., blue-fantasy / whale-song)0

FAQ

Q: Do I need to restart the dsh web service after switching skins?

A: No. After clicking "Apply", the Skin Center writes changes to ~/.dsh/profiles/<profile>/cordis.patch.yml. The host config listener hot-reloads within seconds; refresh the browser to see the new skin.

Q: Can I enable two skins at the same time?

A: No. The Skin Center enforces only one active skin through the patch file's dsh-skin managed section; other skins are written as disabled: true.

Q: Will switching skins affect model requests or conversation content?

A: No. Skins only modify browser DOM (CSS, title bar, status bar, background image); they don't intercept or modify any requests sent to models.

Q: After installation, the skin list is empty or missing some skins. What should I do?

A: Check the skin directory under the current profile: the Skin Center scans packages/skins/<id> or node_modules/@linxin666/dsh-skins/skins/<id>. Each skin directory must have both skin.json and lib/client.js; missing either will be skipped by the build script.

Q: On Windows, switching reports insufficient symlink permissions. What should I do?

A: The switching logic automatically falls back to directory junctions (junctions) on symlink failure; developer mode is not needed. If it still fails, run dsh as administrator, or manually place the skin package in the profile's node_modules.

Q: How do I add my own skin?

A: Place skin.json (containing id, name, tagline, bodyAttr, wiring.id fields) and the built lib/client.js / lib/index.js under packages/skins/<your-id>/, run pnpm --filter @linxin666/dsh-skins build, reinstall the aggregator, and you'll see it in the Skin Center.

Q: How do I remove a skin and revert to the official default?

A: The Skin Center card has an "Official Default" entry; click to apply. To completely uninstall the plugin, use dsh plugin --profile web remove @linxin666/dsh-skins.

Q: Does the background opacity slider work on all skins?

A: It only works on skins with background images (currently blue-fantasy and whale-song). The background transparency slider won't change the appearance of official default and other solid-color skins.

Learning Curve

Beginner — install it and the Skin Center card appears directly in the Web plugin configuration; no extra configuration needed. You only need to look at build.mjs and skin.json fields when adding or adjusting skins.

Known Issues & Limitations

  • Browser bundle targets only DSH Web GUI, scoped to web side (packages/dsh-skins/README.md:33 / packages/skins/skin-center/package.json's dsh.client.platform)
  • Skins only modify DOM (CSS, titles, status bar, background images, etc.), don't touch any model requests (packages/dsh-skins/README.md:33)
  • Legacy Desktop 2.2/2.3 global ~/.dsh/cordis.patch.yml managed section is auto-migrated to current profile on first switch and deleted from global file (one-time behavior, packages/skins/skin-center/src/skin-switch.ts:963-972)

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/dsh-skins)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory