wsxwj123/dsh-plugins--packages-skin-gallery ↗★ 7
dsh-skin-gallery
Nine complete dsh-web-ui skin replicas for DeepSeek Harness, with reversible loading and readability fixes.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wsxwj123/dsh-plugins#c451cddbfe9953029eeb4f0e2ecb331a490adac0&path:packages/skin-gallery说明文档
阅读完整 README ↗dsh-skin-gallery
Nine complete dsh-web-ui skin replicas for the DeepSeek Harness Web GUI, packaged separately from the lightweight dsh-theme-gallery so ordinary theme browsing stays fast.
Skins
| id | 中文名 | author (skin.json) | accent |
|---|---|---|---|
| qq98 | QQ2008 怀旧版 | dsh-web-ui | #2b7cd9 |
| ths | 同花顺风格 | dsh-web-ui | #e60012 |
| xp | Windows XP (Luna) | dsh-web-ui | #316ac5 |
| blue-fantasy | 蓝色幻想 | powerdog996(DreamSkin 社区)· dsh-web-ui 适配 | #4a5fa8 |
| dragon-heir | 龙的传人 | dsh-web-ui | #c3272b |
| minecraft | Minecraft 方块世界 | dsh-web-ui | #7cbd4b |
| whale-song | 鲸吟 | dsh-web-ui | #4d8fd4 |
| trading | 交易终端 | dsh-web-ui | #f23645 |
| miku | 初音未来 · 电子歌姬 | 涂山苏苏 | #2e9bff |
Behavior
- Registers a 完整皮肤 row under Settings → General.
- Loads only the selected skin at runtime; skin bundle bytes are committed at build time.
- Restores the last selected skin on page load.
- Switching skins first disposes the previous skin's CSS, DOM chrome, body attributes, and event effects.
- Stopping the plugin removes every skin side effect.
- Adds a per-skin accessibility layer for message bubbles, code blocks, inline code, and primary-button contrast without deleting upstream artwork or controls.
Install
git clone
cd dsh-plugins
dsh plugin --profile web add "link:$PWD/packages/skin-gallery"
Restart the existing dsh web process after installation.
Custom skin packs (controlled import)
Import your own skin as three flat files. The pack is validated before it is stored; the inward files are treated as data, never executed as instructions.
my-skin/
├── skin.json # required — id / name / author / license (author & license mandatory)
├── client.js # required — must register window.__ModuleLoader__.load({ id, factory })
│ # and export apply(ctx) consuming only ctx.effect / ctx.get
└── a11y.css # optional — missing degrades to log-only (skin still usable)
client.jswith any high-risk capability is refused:eval(,new Function(,import(, non-inlinerequire(,/LICENSEfor full license text.
License
The integration code in this package is MIT. Bundled skin assets are BSD-3-Clause.