Foreword¶
DSH is a host that runs “everything as a plugin,” and UI themes are naturally the domain of community plugins. The problem is that these plugins usually offer only one dark theme or require editing configuration files for a long time; the task of “wanting to switch and merge to take a look” is light on paper but heavy in practice. dsh-theme-material solves exactly this problem: it packs eight sets of Material/semi-Material color schemes into a single plugin, allowing you to switch by clicking a color card in the settings page. Both light and dark options are available, and no configuration files need to be changed after installation. Below is an introduction to this plugin.
It is maintained by heinrich0505 and is placed under the “Fun Skins” category in the community directory. The directory page is marked with 0 stars, and it is a very new small plugin. It does not extend functionality, nor does it change workflows; it simply hands control of the UI color layer to the user.
What is it?¶
One-sentence positioning: a skin pack providing eight preset color themes for the DeepSeek Harness Web interface, with several light and dark sets each, switchable in settings.
It solves two problems: first, the default color scheme may not suit everyone’s eye habits; second, the cost of individually adjusting CSS variables is too high, and it is easy to end up with unreadable low-contrast combinations. This plugin turns these two tasks into “one click.”
Eight Themes¶
The README provides a table listing the base color, accent color, and a description for each. Below is the reproduction; the color values can serve as a reference for selection.
| Theme | Base Color | Accent Color | Description |
|---|---|---|---|
| Night Purple Palenight | #292D3E |
#80CBC4 |
The most famous set of Material, indigo-gray background with cyan-green accent, sidebar and body text share the same color |
| Deep Blue Ocean | #0F111A |
#80CBC4 |
Deep blue pressed close to black, status colors are the only things still glowing on the screen |
| Ink Gray Darker | #212121 |
#80CBC4 |
Neutral pure gray without any hue, the least eye-catching |
| Plain White Lighter | #FAFAFA |
#26A69A |
The only light theme of Material: cold white background, blue-gray text, cyan-green accent |
| Latte (Milky Coffee) | #EFF1F5 |
#8839EF |
The light theme of Catppuccin: gray-purple background, purple accent |
| Moss Green Vitesse | #FFFFFF |
#1C6B48 |
Nearly pure white minimalist background with a touch of ink green, the lowest saturation in the entire set |
| Neon Glow Snazzy | #FAFBFC |
#09A1ED |
Cold white background paired with bright cyan accent |
| Grayscale GitHub Gray | #F0F0F0 |
#005CC5 |
Full-screen gray background paired with pure black text, the set mentioned in the README |
Among them, “Grayscale GitHub Gray” is the set mentioned by the maintainer in the description as github light gray. Compared to the original author descriptions of the other seven sets, this one is a GitHub Gray version modified based on GitHub Light Gray.
Installation¶
The README gives two methods. Open “Plugins → Add Plugin” inside the application and enter:
github:heinrich0505/dsh-theme-material
You can also use the command line, adding it directly to the web profile:
dsh plugin --profile web add github:heinrich0505/dsh-theme-material
After installation, refresh the window as prompted for the plugin to take effect.
The declarations in package.json are worth a look first: dsh.engines.dsh is >=0.2.0-rc.1 <0.3.0-0, compatibility.platform is only web, and client.immediately is true. In other words, it only guarantees loading via the plugin mechanism on the Web side; the corresponding version range is DSH 0.2.x RC to before 0.3. If your version is obviously not in this range, confirm compatibility before installing.
Switching Themes¶
Switching themes does not require commands. Go to Settings → General → Theme, and click a color card. There are three dark themes: Night Purple, Deep Blue, and Ink Gray; when selected, the plugin also switches the “Appearance” to dark. The remaining five light themes will switch back to light. Later, if you manually change “Appearance,” your choice takes precedence, and the plugin no longer takes over.
The selected theme is stored locally in the browser, not on the server. This means people using different browsers on the same machine can each use a set without overwriting each other.
How Colors are Calculated¶
What is worth seeing in this plugin is not the eight tables, but how it turns such few definitions into a complete set of colors. For each theme, only ten inputs are written in src/skins.mjs: base color, card face, body text, comments, accent color, secondary accent, and sources for several status colors. The colors of the rest of the buttons, input boxes, borders, code blocks, and tooltips are derived by src/derive.mjs based on their usage. What is described in package.json is “a set of token engines deriving 126 --dsw-* color tokens based on appearance.”
During derivation, readability is guaranteed: body text contrast is not less than 7:1, and secondary text and text on buttons is not less than 4.5:1. If the requirement is not met, the color is adjusted towards black or white to the nearest value that satisfies it. npm run verify will output the contrast ratios for each theme, directly marking out any pair that is not clear enough.
Each theme only defines its native side (dark or light); the other side is automatically supplemented: the light version of dark themes uniformly uses Material Lighter, and the dark version of light themes is neutral night color plus this theme’s own accent color. If you want to create your own set, copy any section in src/skins.mjs, change the colors, and then run the verify command above to verify.
Applicability and Notes¶
Suitable for these two types of people: first, those who want to customize their DSH interface to their habits but don’t want to edit CSS variables every time; second, those who need to compare multiple themes or want to copy its token derivation logic to write their own themes. Its skins.mjs + derive.mjs + verify chain can be used directly as a reference implementation.
A few points must be clear:
- The plugin works with the permissions of the current DSH process at runtime. You should check the source code (especially its patch to
cordis.patch.ymland theclientloading declaration) before deciding whether to enable it. - The license is MIT, and the source code can be viewed and modified freely.
- It only handles color schemes and does not provide functional extensions. Expecting “DSH becomes stronger after installing the plugin” is inappropriate.
- Version 0.4.2, 0 stars, belongs to a small project just starting out. Have expectations regarding the update window and technical dependencies.
Conclusion¶
It is appropriate to view it as a clean color layer: eight themes, both light and dark, switchable with one click. At the same time, its built-in token derivation and contrast verification make the cost of “creating another set yourself” very low. The directory page is at https://www.skillhub.cn/plugins/heinrich0505/dsh-theme-material, and the source code is at https://github.com/heinrich0505/dsh-theme-material.
It should be noted that this directory site is a community site with no official affiliation to DeepSeek/Fangfang; it is not an app store.