Preface¶
DeepSeek Harness (DSH) adopts a plugin-based architecture, and its behavior heavily depends on the layering and composition of plugins. In Web host environments, official themes are usually managed uniformly by dsh-client-ui-theme. If developers want to add custom color schemes without breaking the official appearance, they need an independent override layer. dsh-theme-studio is exactly such a plugin: it provides additional theme control capabilities on top of the official “Appearance” settings through an overlay approach.
Plugin Overview¶
dsh-theme-studio is a portable DSH/Cordis plugin, maintained by cherrchen. It runs entirely on the Web platform and does not depend on Electron or Node.js environments. It provides a unified theme management interface for DSH Web and DeepSeek Harness Desktop, supporting browsing of built-in color palettes, real-time previews, theme application, and persistent storage.
Core Features¶
The plugin currently implements the following core capabilities:
- Built-in theme browsing: Provides a collection of built-in theme palettes to choose from.
- Preview feature: Allows users to temporarily preview a theme before applying it; the preview state is not written to configuration.
- Application and persistence: Persistently saves the selected theme ID (
activeThemeId) to the Host’stheme-studionamespace. After restarting the application, the plugin automatically restores the last applied theme. - Lifecycle restoration: Handles plugin unloading logic, ensuring that all overlays are cleared during unloading and ThemeRuntime returns to the official theme.
- DSH compatibility validation: Checks the DSH version before plugin loading to ensure compatibility with the current environment.
Installation and Enabling¶
DeepSeek Harness Desktop¶
The plugin is preinstalled in DeepSeek Harness Desktop and does not require additional installation.
DSH Web¶
After building or preparing the environment, it can be installed with the following command:
dsh plugin --profile web add github:cherrchen/dsh-theme-studio
After installation, the plugin will activate the cordis.patch.yml layer and add a “Theme” option under the official Appearance settings.
Usage Flow¶
- Open settings: In the application, open settings and go to the “General” page.
- Select a theme: Find the “Theme” list under “Appearance”. The IDs in the list include
dsh-theme-studio.claude,.codex,.nordic, and so on. - Preview and apply:
- Click a theme entry to preview it. This action is temporary.
- Click the Apply button to write the current theme ID into the Host configuration.
- Verify persistence: Restart the application and confirm that the previously applied theme is still in effect.
- Uninstall: If you need to remove the custom theme, uninstall the plugin to restore the official theme.
Limitations and Notes¶
The current version (Stage 1) has the following limitations:
- Built-in themes only: It currently does not support importing, exporting, or validating external
.dsh-themeschema files. - No automatic contrast certification: The built-in palettes are manually checked for readability, and WCAG automatic contrast certification is not yet provided.
- No public directory: There is currently no public
ctx.themeStudiodirectory; cross-plugin discovery APIs are planned for a later stage.
The plugin works through ctx.theme.overrideTokens(), overlaying a custom layer on top of the official Light/Dark/System base, which ensures smooth theme switching.