Preface¶
The default appearance of the DeepSeek Harness (DSH) web interface is functional, but after working with the same color scheme for an extended period, many users may desire a more aesthetically pleasing and restrained interface. The community has also developed skin-changing solutions, some via CSS injection and others using theme images. DSH itself is a --dsw-* design token-driven web GUI, and its official plugin system offers extension points like ctx.theme.
This article introduces dsh-dream-skin: a DSH standard two-sided plugin (dsh-plugin) maintained by RevolutionLA, enabling skin changes, wallpapers, and theme packs through native token registration—without injection or package modifications. It is categorized as “Fun Customization” in the SkillHub community directory, with approximately 90 stars and 8 forks on its GitHub repository.
What is This?¶
dsh-dream-skin is a skin-changing plugin published on npm, currently at version 0.4.14 under the MIT license. It structures “skin changing” as an npm package isomorphic to the official ui-theme: the Host side uses cordis.patch.yml to insert a loader entry, while the browser side registers themes in lib/client.js, overlays wallpaper layers, and attaches the settings UI under Settings → Appearance (Theme).
This plugin is not an official DeepSeek or High-Flyer product. SkillHub (https://www.skillhub.cn/plugins/RevolutionLA/dsh-dream-skin) is an independent community directory with no affiliation to the official team.
Core Features¶
8 Mirage Preset Skins¶
The built-in Mirage dream series includes 8 skins, covering both light and dark modes, each with its own unique diffuse light background. The preset IDs are as follows:
| ID | Style |
|---|---|
abyss |
Serene Blue |
aurora |
Aurora Cyan |
nebula |
Nebula Purple |
ember |
Ember Orange |
midnight |
Midnight Black |
ivory |
iOS Flat |
mist |
Liquid Glass |
rose |
Material Pink |
Apply with a single click in settings; cards, input fields, and message bubbles maintain inner opacity, prioritizing readability.
Wallpaper 2.0¶
Overlay custom wallpapers on preset skins:
- Local images (auto-compressed to ≤2MB upon upload)
- Image URLs
- Gradient presets
Supports adjusting transparency and blur. Each skin recommends a gradient; background distractions can be automatically weakened for focused tasks.
Per-User Accent Colors¶
Using ctx.theme.overrideTokens overlay layer, apply accent colors without altering the underlying skin. Settings offer 12 typical color swatches, a color picker, random selection, and theme color restoration; this layer can be toggled off anytime for a one-click revert.
Theme Pack Import, Export, and Sharing¶
A *.dsh-theme.json file contains the manifest and full token set. Import local files, apply with one click, or copy a sharing link (encoded in the URL hash). Imports validate format, required tokens, and color legality; safe fallback occurs on failure or removal.
Local Theme Pack Library and Quick Actions¶
Imported theme packs are managed centrally in settings, supporting apply, favorite, and remove operations. “Surprise Me” randomly switches to a different theme than the current one. Popup opacity is adjustable via a slider and persisted across sessions.
Persistence and Restore¶
Skins and wallpapers are saved in the browser’s localStorage (key prefix: dsh-dream-skin:), persisting across refreshes or browser restarts but limited to the current browser. One-click restoration to DSH’s built-in appearance is always available.
Installation and Activation¶
Installation from the official npm package is recommended, followed by a DSH web restart to take effect.
dsh plugin --profile web add dsh-dream-skin
dsh web
If dsh plugin add returns a workspace-related error ERR_PNPM_ADDING_TO_ROOT, append the -w flag to the command.
Verify successful loading:
dsh --profile web --dump-config | grep -A2 dream-skin
The output should include the dream-skin loader entry. Upon opening Settings → Appearance (Theme), rows for “Skins,” “Accent Color,” “Wallpaper / Advanced Wallpaper,” and “Theme Packs” should be visible.
Alternative installation methods (detailed in the README):
- Pin to a specific GitHub commit:
dsh plugin --profile web add 'github:RevolutionLA/dsh-dream-skin#<40-char-commit>' - From a Release tarball:
dsh plugin --profile web add ./dsh-dream-skin-<version>.tgz - Local development: Clone the repository and run
dsh plugin --profile web add .within the directory.
Update and uninstall:
dsh plugin --profile web update dsh-dream-skin # Update
dsh plugin --profile web remove dsh-dream-skin # Uninstall
dsh web # Restart to apply
Typical Usage¶
After installation, daily operations are completed via the web settings interface without command-line intervention.
Quickly switch to a preset skin
- Open Settings → Appearance (Theme)
- In the “Skins” row, select a Mirage preset (e.g.,
mistLiquid Glass) - The interface switches instantly; the selection is saved to
localStorage
Overlay accent color and wallpaper
- In the same section’s “Accent Color” row, select a color or click “Random”
- In the “Wallpaper / Advanced Wallpaper” row, upload a local image, enter a URL, or choose a gradient preset
- Adjust transparency and blur; enable auto-weakening for focused tasks
Import or share theme packs
- In the “Theme Packs” row, import a
*.dsh-theme.jsonfile - After import, apply, favorite, or remove from the local theme pack library
- Export or copy the sharing link to send the same token configuration to others
Restore default appearance
Select “Restore to DSH built-in appearance” in settings, or uninstall the plugin and restart:
dsh plugin --profile web remove dsh-dream-skin && dsh web
For creating custom theme packs, the repository provides an example file at docs/examples/sample-theme-pack.json, with token specifications in docs/themes-spec.md.
Use Cases and Notes¶
Ideal for
- Daily use of DSH web GUI for Agent development or conversations, seeking a more restrained and visually appealing interface
- Quickly switching between multiple color schemes on the same DSH instance or importing theme packs shared by others
- Preference for native token solutions over CSS injection or client binary modifications
Technical and Compatibility
| Requirement | Details |
|---|---|
DeepSeek Harness (dsh) |
0.1.0-rc.6 (peerDependencies aligned to ^0.1.0-rc.6) |
| Node.js | >=18 |
| Browser | Modern Chromium / WebKit (relies on CSS variables and matchMedia) |
Security and Permissions
The plugin runs with the current DSH process permissions as a standard dsh-plugin two-sided plugin, loading code on both the Host and browser sides. Reviewing the repository source code and MIT license before installation is recommended to ensure compliance with your environment policies. The plugin only reads and writes the browser localStorage and does not expose remote namespaces via Host settings.
Unlike the desktop Codex-Dream-Skin, which injects CSS via CDP into the rendering process, this plugin uses DSH’s official ctx.theme.register / overrideTokens path. It does not break with client binary updates but applies only to the web GUI, not the desktop app.
Conclusion¶
dsh-dream-skin integrates DSH skin-changing into the official token ecosystem: 8 Mirage presets work out of the box, with wallpapers, accent colors, and theme pack sharing layered on top—all toggleable with one-click restoration. If you’re looking for a restrained, clear appearance solution for DSH web, start with a single installation command.
- SkillHub directory page: https://www.skillhub.cn/plugins/RevolutionLA/dsh-dream-skin
- GitHub repository: https://github.com/RevolutionLA/dsh-dream-skin