The Web UI of DeepSeek Harness (DSH) supports configuration-based appearance adjustments, but directly modifying style files is not only tedious but also hard to maintain. The dsh-theme plugin provides a configurable skin system, encapsulating color palettes, fonts, and image slots into configuration items. It includes two built-in preset themes and does not modify DSH source code.
Plugin Purpose¶
This is a “skin” plugin for the DeepSeek Harness Web UI, maintained by developer naniwet. Its core value is: turning complex style adjustments into configuration file changes. You only need to adjust the YAML configuration to switch the entire UI, without modifying DSH source code.
Core Features¶
- Configurable Skin: Color palettes, fonts, and image slots are all configurable.
- Built-in Presets: Includes two presets: Code Geass and SPY×FAMILY.
- Code Geass: Uses gold
#c9a227and dark red#a01c26, with Song/serif fonts. - SPY×FAMILY: Uses forest green
#2f5d50and rose red#d4788a, with PingFang/rounded sans-serif fonts.
- Code Geass: Uses gold
- Complete Coverage: Covers all UI surfaces, including background, sidebar, buttons, message bubbles, scrollbars, and more.
- Local Storage: Settings are stored locally, without modifying DSH configuration documents.
- Non-invasive Uninstall: When the plugin is uninstalled, styles are automatically removed and the default UI is restored.
Installation¶
Install the plugin using the official command:
dsh plugin --profile web add /path/to/dsh-theme
Note: If you install a local directory using link:, dependencies are not installed automatically. You must manually run npm install in the plugin directory; otherwise, profile startup will fail.
Configuration and Usage¶
- Enable the Plugin: Run the installation command above.
- Switch Skin: Go to
Settings → Generalin the DSH Web UI, and choose a preset in the skin option (such as Code Geass or SPY×FAMILY). The selection takes effect immediately, and the browser remembers the preference. - Customize Configuration: Copy the preset file to
$DSH_HOME/profiles/web/cordis.patch.yml. Modify the image paths or palette values in it. Note: Theconfigblock replaces the entire entry configuration rather than merging key by key, so all required keys must be preserved.
Notes and Limitations¶
- border9Slice Behavior: This setting only draws decorations for the four corners; it is not a complete border.
- Sidebar Collapse: When the sidebar is collapsed, character art is hidden.
- Icon Matching Mechanism: Built-in icons are matched by substring matching CSS module class names. If upstream renames the class names, matching may fail.
- active Configuration: The
activesetting only determines the initial view before the user makes a selection. After switching skins, the user selection takes precedence. - Image Source and License: The fan art bundled with the plugin is AI-generated, unofficial content, and is not covered by the MIT License.
- Permission Scope: Images are served by the host process; the browser does not require filesystem access permissions.