Preface

The default Web UI of DeepSeek Harness (dsh) is a modern light-themed interface, consisting of sessions, a sidebar, and an input box. For anyone who has used the 2006 version of the QQ client, the coral-blue window, nine-grid title bar, and Song Ti (SimSun) message list represent a completely different visual memory. The community plugin dsh-qq2006 does exactly that: it registers a switchable qq2006 theme in the Web UI, matching the color scheme, fonts, and window chrome to that classic blue little penguin style.

DeepSeek Harness is currently in developer preview, and the official repository describes its architecture as “everything is a plugin”. Themes, sidebars, and tools can all be installed as external packages into a specific profile. It should be noted: This article is cross-checked against the community site deepseek-harness-plugin.com, which hosts third-party plugins and has no official affiliation with DeepSeek or Fangxin. It should not be treated as an official app store.

Below, we cross-verify against the directory detail page, GitHub repository README, package.json, and the official deepseek-ai/deepseek-harness documentation to clarify: what the plugin actually provides, the difference between the two installation paths, and how to switch the skin after installation.

What is this

dsh-qq2006 is a theme and appearance plugin maintained by LaplaceYoung, with the npm package name @dsh-external/dsh-qq2006, current version 0.1.0, and primarily written in TypeScript. The plugin code is licensed under the MIT License. As of the August 17, 2026 query, the GitHub repository had 12 stars; the community directory page showed 9 stars at the time, so the repository star count shall prevail.

Its targeted problem is very specific: add an optional qq2006 theme to the DSH Web UI, rather than overwriting the default light/dark skins. The implementation is split into two layers:
- Plugin package itself: Registers qq2006 with the theme service, mirrors the current theme to body[data-ds-skin], and includes a global skin sheet (retro fonts, scrollbars, nine-grid utility classes, .qq-btn tri-state buttons) and coral-blue design tokens.
- Source code patches (full functionality): Modifies the host UI package source code for login windows, main panels, chat window chrome, list-style messages, QQ Show sidebar, and original assets. The README notes that these effects cannot be injected via the npm-distributed plugin mechanism.

The one-sentence introduction on the directory page is: “Register qq2006 theme, mirror body[data-ds-skin], global skin sheet and full assets”. The full assets are in the repository’s assets/qq2006/ folder, but the component-level appearance changes from the login window to the chat window will not be fully included in the distributed installation. We will cover this point separately in a later list.

Core Features

1. Switchable, Persistent, Zero Pollution to Default Skins

The plugin calls ctx.theme.register on the client side, with the theme id qq2006, colorScheme set to light, and a set of --dsw-alias-* coral-blue overrides (the brand color is approximately rgb(45, 128, 208)). After successful registration, it appears in the Settings → Appearance section as the 4th option, with the first three being the built-in light/dark/system options.

The preference is stored in localStorage under the dsh.theme key. After refreshing or restarting, the plugin reads this key; if the value is qq2006, it calls setTheme to reapply the theme. The source code comments explain the reason: the theme service only recognizes the three built-in themes on startup, and custom ids will fall back to system first, so an additional assertion must be made after the theme is registered.

The生效标志 (effective marker) is body[data-ds-skin='qq2006']. The plugin only writes this attribute when the current theme is qq2006, and only deletes the attributes it has written when switching away, without touching other data-* attributes. Global CSS and component patches are all anchored to this ancestor selector, so switching back to the default skin should not leave blue window frames or Song Ti message styles. The repository refers to this as the “zero pollution contract”.

In package.json, dsh.client.platform is web, immediately is true, and it depends on the theme service @deepseek-ai/dsh-client-ui-theme. It is an appearance plugin for the Web UI, not a package for headless/TUI profiles.

2. Global Skin Sheet: Fonts, Scrollbars, Nine-Grid Layout, Tri-State Buttons

src/styles/qq2006.css is the half of the appearance that can be directly included in the distributed release. The file header states that every rule is scoped with body[data-ds-skin='qq2006']. The contents include:
- Fonts: Tahoma, 'SimSun', '宋体', 'Microsoft YaHei', sans-serif
- Slim scrollbars with blue gradient sliders
- Nine-grid window chrome utility classes: .qq-skin-title / .qq-skin-head / .qq-skin-body (title bar, toolbar, and window body use left/right cap images plus middle tiling)
- Title bar tri-state buttons: Minimize, change color, and close are 16×16; the “Menu” button is the original 65×24 text button
- Gradient buttons .qq-btn (white to light blue, border #00558e)
- Online/offline status dots, golden :focus-visible focus rings
- --qq-msg-font-size for message font size cycling (small/medium/large)

For these classes to fully apply to login windows and chat windows, the host components need to reference them and pair them with /qq2006/img/... static assets. The distributed release only registers the theme and this sheet; whether components use these classes depends on which installation path you take.

3. Capability Boundaries for the Two Installation Paths

The README separates the npm distribution and source code paths in a table, which is the most easily overlooked point when using this plugin:

Capability npm Distribution (dsh plugin add) Source Code Monorepo (forked branch or patch)
qq2006 theme + coral-blue token skinning
Global skin sheet (fonts / scrollbars / nine-grid classes)
Login window / main panel / chat window chrome
Original list-style messages / QQ Show sidebar / message actions
Assets (button icons / avatars / prompt sounds)

The repository has pre-built artifacts lib/ committed, and declares that dsh.bundle.patch points to cordis.patch.yml, which will mount the plugin as the client line ui-skin-qq2006. So the command from the directory page will install only “theme registration + global sheet”, not a full QQ client imitation. The author’s follow-up plan is: wait until DSH officially provides static resources and UI slots for client plugins, then move the component-level skin into the plugin package.

Under the source code path, the documentation also lists the nine-grid login window, 10 buttons on the main panel, 12 buttons on the large chat window toolbar / 8 buttons on the small toolbar, list-style messages (your own green nickname, the other party’s dark blue-purple nickname, HH:MM:SS timestamps, Song Ti body text), QQ Show sidebar, and four built-in skin presets in the window: Classic Blue / Pink / Mint Green / Violet. These are all bound to the forked skin/qq2006 branch or patches/qq2006-skin.patch, and should not be treated as an interface that appears immediately after running dsh plugin add.

Installation and Activation

The installation command given on the community directory page is as follows, run it in the DeepSeek Harness terminal:

dsh plugin add github:LaplaceYoung/dsh-qq2006

The official CLI documentation states that the full form of plugin management is dsh plugin --profile <profile> add <spec>, which forwards to pnpm in the corresponding profile directory. Since this plugin’s platform is web, the distribution command written in the repository README includes the profile:

dsh plugin --profile web add https://github.com/LaplaceYoung/dsh-qq2006

Both commands point to the same GitHub repository. The directory page uses github:LaplaceYoung/dsh-qq2006 as the standard; if the current dsh requires explicitly specifying the profile, use the README command. For reproducible installations, the directory page recommends pinning a commit:

dsh plugin add github:LaplaceYoung/dsh-qq2006#commit

Replace commit with the actual commit hash from the repository. After installation, restart the web profile according to the official plugin instructions so that the new bundle layer participates in the compilation:

dsh --profile web

Or use the alias dsh web. The default address for the Web UI is http://127.0.0.1:3080. After opening, go to Settings → Appearance and select QQ2006 Skin.

The plugin runs with the permissions of the current dsh process, and may execute code during installation. You should inspect the source code repository and license before installing.

Typical Usage

Install Only the Distribution: Swap to the Coral-Blue Theme

Suitable for first verifying whether the tokens and global sheet take effect. The steps are from the directory page and README:
1. Confirm that the Web UI can be started locally (official documentation example: npx @deepseek-ai/dsh web).
2. Run the dsh plugin add command from the previous section (or the version with --profile web).
3. Restart the web profile and open http://127.0.0.1:3080.
4. Go to Settings → Appearance → QQ2006 Skin.
5. For comparison, switch back to light/dark/system. According to the repository contract, the default skin should not leave data-ds-skin='qq2006' residues.

After enabling the distribution version, the README’s exact wording is: obtain qq2006 theme registration (full UI coral-blue token skinning) + global skin sheet (retro fonts, scrollbars, nine-grid utility classes, .qq-btn tri-state buttons).

Get Full Skin: Use the Source Code Branch or Patch

The full implementation is in the skin/qq2006 branch of LaplaceYoung’s fork. The command given in the README is:

git clone https://github.com/LaplaceYoung/deepseek-harness.git
cd deepseek-harness
git checkout skin/qq2006
pnpm install
pnpm run build
node --import tsx/esm apps/cli/src/bin.ts web

Open http://127.0.0.1:3080 in your browser, and similarly select QQ2006 Skin in Settings → Appearance.

For users who have already checked out the upstream deepseek-ai/deepseek-harness, you can apply the patch from the plugin repository:

git apply patches/qq2006-skin.patch

The README notes that this patch is based on the upstream master branch. You should align with the current upstream commit before applying the patch, and resolve conflicts yourself. The component-level patch rule is: skin sections are only appended to the end of each component’s .module.css, and the selector must include body[data-ds-skin='qq2006'].

Under the source code path, the “Change Color” button in the chat window title bar will cycle between Classic Blue / Pink / Mint Green / Violet, with the preference key dsh.qq.winSkin. The documentation states that the send shortcut key is Alt+S, which is equivalent to Enter. These interactions are part of the host UI patches, not standalone commands in the distributed plugin package.

Applicable Scenarios and Notes

Suitable for these use cases:
- Already using the DSH Web UI and want an additional retro theme in the appearance section that can be turned off at any time.
- Can accept that the distribution version only includes coral-blue tokens and the global skin sheet, and are willing to build a fork or apply patches for the full window imitation.
- Developing DSH theme plugins and need a reference implementation of “register theme + data-ds-skin mirroring + scoped CSS”. src/index.ts / src/client/index.ts and cordis.patch.yml are all available in the repository.

Situations that are not suitable, or require reviewing the license first:
- Asset Copyright: assets/qq2006/README.txt states that the assets come from mengkunsoft/QQ2006, extracted from Tencent’s original QQ2006 installation package. Copyright belongs to Tencent, for learning and communication only, do not use commercially. The plugin code is MIT licensed, but the assets are not. You should evaluate for yourself before public demonstrations, secondary distribution, or commercial use.
- Platform: dsh.client.platform is web, do not expect this skin to appear in TUI/headless profiles.
- Permissions: The plugin runs with the same permissions as the current dsh process. Even though this is an appearance plugin, you should read the source code and LICENSE before installing.
- Upstream Iteration: The official README notes that there will be breaking changes during the developer preview phase. Component-level patches are applied to the host .module.css files, so if upstream changes class names or DOM structures, the fork/patch path may break; the distribution version also depends on the theme service’s register / theme/change APIs.
- Do not treat the directory site as an official store: The installation source is a community repository on GitHub, and the directory page only performs hosting and display.

Summary

dsh-qq2006 brings the 2006 QQ coral-blue appearance into DeepSeek Harness’s theme system: registering qq2006, mirroring body[data-ds-skin], and using scoped CSS to ensure the default skin is not polluted. Installing via the directory page command gives you the theme and global skin sheet; the full imitation from login window to chat window requires the forked skin/qq2006 branch or the patch in the repository.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-qq2006/

GitHub: https://github.com/LaplaceYoung/dsh-qq2006