Skip to main content

dsh-dream-skin

68Stars6Forks2Issues0Watchers

8 sets of original skins, wallpapers, and theme packs for DeepSeek Harness. A dual-sided skin-changing plugin that retains settings across restarts.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
License
MIT
Branch
main
deepseek-harnessdshdsh-plugindsh-plugin-themeskinthemewallpaper

Install

cmdweb profile
$ dsh plugin --profile web add dsh-dream-skin

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin RevolutionLA/dsh-dream-skin for me: review the repository at https://github.com/RevolutionLA/dsh-dream-skin first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Positioning

Dress up DeepSeek Harness with 8 sets of iOS/Linear-style translucent cool-toned skins, wallpapers, and accent colors, and turn "skin changing" into a shareable, importable, and rollback-capable standard theme pack ecosystem.

Core Features

  • Provides 8 built-in skins (Calm Blue, Aurora Cyan, Nebula Purple, Ember Orange, Midnight Black, iOS Flat, Liquid Glass, Material Pink), covering light and dark modes
  • Supports three wallpaper sources: local image, image URL, and CSS gradient, with independent adjustment for opacity, blur, sidebar transparency, and auto-dimming
  • Provides per-user Accent colors, allowing any brand color to overlay on the current skin without disrupting the skin itself
  • Implements import, export, sharing links, and local theme library via *.dsh-theme.json theme packs, with format validation and rollback
  • Registers a dedicated section under "Settings → Appearance / Theme", containing five functional rows: Skin, Wallpaper, Advanced Wallpaper, Accent, and Theme Pack
  • Persists across DSH restarts: dual-write to localStorage and host ~/.dsh/dream-skin.json, with recovery from browser side if state file is lost

Technical Implementation

  • Language: JavaScript (Node-side ESM + browser-side CJS via __ModuleLoader__)
  • Key Dependencies: @deepseek-ai/cordis (plugin host framework), @deepseek-ai/dsh-client-runtime / dsh-client-locale / dsh-client-ui-theme (DSH official client packages), react ^18.2
  • Architecture Pattern: Standard DSH dual-sided plugin — Host side inserts dream-skin loader entry via cordis.patch.yml, mounts /dream-skin/api trusted JSON persistence endpoint; Browser side declares itself via dsh.client to be pulled by dsh-client-modules, registers themes, slots, and locale dictionaries
  • Entry Files: lib/index.js (Host apply), lib/client.js (Browser apply, containing 8 skin tokens and 8 language dictionaries)

Use Cases

Ordinary users who want to tune DeepSeek Harness to a translucent cool-toned visual style that matches their aesthetic, without installing desktop client injection-type skin tools. Ideal for those who spend long hours daily writing/coding in DSH Web, needing softer contrast, more restrained accent colors, and better-looking light/dark combinations, while being able to switch or share a custom color scheme with colleagues at any time.

Prerequisites & Compatibility

DependencyMin VersionDescription
DeepSeek Harness (DSH)^0.1.0-rc.6Locked by peerDependencies, host extension points ctx.theme / ctx.slots / ctx.locale required
Node.js>=18Declared by engines.node, only used for local development and test runtime
BrowserModern Chromium / WebKitSettings panel relies on native CSS variables, backdrop-filter, matchMedia (documented in README)
OSmacOS / Windows / LinuxCross-platform; Host file paths use process.env.DSH_HOME or fallback to ~/.dsh/, no platform-specific fields

Installation

dsh plugin --profile web add github:RevolutionLA/dsh-dream-skin

Configuration Options

This plugin requires no additional configuration. All adjustable options are presented graphically in Settings → Appearance (Theme) panel. Common options include:

OptionTypeDescriptionDefault
SkinSingle ChoiceSwitch between 8 built-in skins and imported theme packsFollow system appearance
WallpaperSingle Choice / File / SliderSelect local image (auto-compressed to data URL), paste image URL, or choose built-in gradientNone
Wallpaper Opacity0–100 SliderVisual intensity of semi-transparent background for main content area and sidebar80%
Wallpaper Blur0–60 SliderApplies backdrop-filter blur to wallpaper0 px
Sidebar Opacity0–100 SliderSidebar's own semi-transparent background; can be independent from main canvasLinked with main canvas
AccentColor Picker / RandomOverlays a brand color on current skin without modifying the skin itselfFollow theme
Auto-dimToggleDims wallpaper when focusing on tasks to avoid distractionOff
Recent WallpapersHistoryKeeps up to 5, click to revert—

All persistence keys carry the dsh-dream-skin: prefix, stored in browser localStorage; after each change, they are debounced for 200ms and pushed to host file ~/.dsh/dream-skin.json. Both official Web with fixed origin and DSH Desktop with random ports can persist across restarts.

FAQ

Q: After installation, I can't see the "Appearance / Theme" section in DSH. What should I do?

A: You must restart DSH Web (run dsh web) for the new plugin to be discovered and loaded by the plugin manager. After restart, go to Settings → Appearance (Theme) to see the five functional rows: Skin, Wallpaper, Accent, and Theme Pack.

Q: After restarting DSH, why does the skin/wallpaper I applied seem to revert to default?

A: Since version 0.4.0, the plugin uses three-layer persistence by default: memory cache → localStorage → host file ~/.dsh/dream-skin.json. On restart, the browser side pulls the saved skin/wallpaper/accent/theme pack from the host file and reapplies them. If it still gets lost, verify whether DSH_HOME points to the expected directory, or if the Web process was actually restarted.

Q: Is this plugin the same as Codex-Dream-Skin?

A: It's a tribute but with a different implementation path. Codex-Dream-Skin injects CSS into the desktop client via CDP, while this plugin uses DSH's official ctx.theme.register / ctx.slots.inject extension points—no injection, no binary modification—so it won't break due to DSH updates.

Q: How do I share my custom color scheme with colleagues?

A: Click "Theme Pack → Import" in settings to load a *.dsh-theme.json, or write your own (refer to docs/examples/sample-theme-pack.json), then click "Copy Share Link" to encode the entire pack into a URL hash and send it out; you can also export the file and distribute it through any channel. Import validates format and required fields, failing safely without disrupting existing settings.

Q: Will there be residual files after uninstallation?

A: Uninstalling only stops loading. Keys prefixed with dsh-dream-skin:* in localStorage and ~/.dsh/dream-skin.json remain; reinstalling automatically takes over, or you can manually delete them for complete cleanup.

Q: Why doesn't the background change when I switch skins?

A: The default logic is "if skin has no built-in background, automatically apply iOS diffuse light gradient for that skin." Once you manually select an image/URL/gradient, the plugin marks it as "custom wallpaper"—subsequent skin switches won't override it. To revert to "follow skin", you need to clear the custom wallpaper.

Q: Can I completely remove the wallpaper to restore the official appearance?

A: Click "Clear Wallpaper / Remove Image" in "Advanced Wallpaper" or the main wallpaper row. The main canvas and sidebar will revert to that skin's opaque colors.

Difficulty Level

Beginner — After installation, just click a few times in the settings panel, no commands, no config files, no extra restart steps required; to write your own theme pack, dive into docs/themes-spec.md.

Known Issues & Limitations

  • Flash of Unstyled Content (FOUC): Before the plugin first mounts, the theme hasn't been applied yet, showing the default appearance. Current approach is "render with same-origin localStorage as fallback first, then overlay." Completely eliminating FOUC remains a Roadmap item (README.md:321).
  • Request Body Limit 32 MB: /dream-skin/api returns 413 when a single set exceeds 32 MB. Wallpapers are stored as base64 data URLs in localStorage and auto-compressed to ≤2 MB, so it rarely hits the limit, but be mindful when batch-importing large theme packs.
  • Host channel only meaningful under random port deployment: Official Web has fixed origin, so localStorage is theoretically sufficient; $DSH_HOME/dream-skin.json primarily serves DSH Desktop where "port changes every launch," so behavior differs slightly between the two.
  • No user-level config schema exposed: All settings are in the UI, with no injectable config items in the form of ctx.config.*; to change tokens, you need to add new built-in skins or write theme packs.

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/RevolutionLA/dsh-dream-skin)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory