DSH Web "Deep Sea Maid Workshop" theme skin: dual maid background, deep-sea blue lace UI, and chibi-style sidebar. Display layer only—takes effect upon activation, restores upon uninstall.
- Language
- TypeScript
- Branch
- main
Install
$ dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whaleRun 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
One-Line Description
dsh-deep-whale is a whale girl theme skin series repository, currently including one "Deep Sea Maid Atelier" (maid-atelier) skin, used to transform the visual appearance of the DeepSeek Harness Web interface, unifying the chat background, sidebar, icons, and color scheme with deep sea blue + maid theme.
Core Capabilities
- Replace chat area background with dual maid atelier scenes (light mode palace day scene / dark mode palace night scene auto-switch)
- Decorate collapsible sidebar: Q-version whale girl character, lace border, bottom decoration strip and navigation bar decoration
- Transform settings dialog, input box container, trace/inspection views, providing corresponding decoration frames and state hooks
- Replace browser favicon and window title bar (Web App header color set to deep sea blue)
- Embed 11 assets into client bundle (base64 data URI), activation does not rely on any remote URL/resource server/temp files
- Implement skin center mutual-exclusion switching and hot reload via dsh-skin, uninstall restores everything (DOM, CSS, title, theme-color all recovered)
Technical Implementation
- Language: TypeScript (ESM + CJS dual output)
- Key Dependencies:
@deepseek-ai/cordis^4.0.1 (plugin host framework);tsdown0.22.14 (build bundle);lightningcss^1.32.0 (CSS Modules handling in tsdown plugin) - Architecture Pattern: Client-only skin plugin. Only loaded in browser (
dsh.client.platform: web), no host-side service, no Cordis events, no model requests; insertui-skin-maid-atelierentry into web plugin whitelist viacordis.patch.yml, scheduled by skin center/dsh-skin mutual-exclusion - Entry Files:
src/index.ts(host-side stub, apply() is empty);src/client/index.ts(real apply(ctx), implements all DOM/CSS decorations and lifecycle management)
Applicable Scenarios
Ordinary users who want DSH Web desktop to look less "tool-like" and enjoy 2D anime style. If you are using DSH 0.1.0-rc.6 or higher, want a network-independent static theme skin, and want to "add filters" to the original interface rather than modify functionality, this plugin is a suitable choice.
Prerequisites and Compatibility
| Dependency | Min Version | Description |
|---|---|---|
| DSH | 0.1.0-rc.6+ | Source references rc.6 behavior (src/client/index.ts:562), skin center uses home-layer mutual-exclusion switching (cordis.patch.yml:4) |
| @deepseek-ai/cordis | ^4.0.1 | Injected by host at runtime, not directly installed in this repo (package.json:29, peerDependencies) |
| Platform | Cross-platform | Browser-side skin, depends on DOM and ResizeObserver/WCO API; not supported on Native shell side |
| Native Modules | None | All assets embedded as data URI into client.js, no native binaries needed |
Installation
dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale
Configuration
No additional configuration needed. Skin metadata is declared in skin.json within the repo (id/name/author/color scheme/preview/wiring), and after loading applies to body element via data-dsh-maid-atelier scope identifier (skin.json:17), with mutual-exclusion switching via skin center/dsh-skin (skin.json:19-22, wiring.id=ui-skin-maid-atelier). This plugin has no independent user-level config options.
FAQ
Q: Can this skin package be installed on DSH desktop client?
A: No. package.json declares dsh.client.platform: web (package.json:21-22), skin only loads in browser; desktop shell goes through another host, this repo's skin cannot be mounted.
Q: Can this skin coexist with official skin/other third-party skins?
A: No. Skin center uses home-layer mutual-exclusion switching (cordis.patch.yml:4), its wiring.id is ui-skin-maid-atelier, only one skin can be active at a time.
Q: After installation, interface has no changes and no errors, what to do?
A: Skin needs to be enabled via Skin Center/dsh-skin check. Just packaging the plugin into DSH won't make apply() run; check maid-atelier in Skin Center as per README (maid-atelier/README.md:21).
Q: Will the skin slow down DSH? Does it need network?
A: No slowdown, no outbound connections. All 11 webp images (backgrounds, characters, decorations) are converted to data URI and embedded into lib/client.js by tsdown at build time (maid-atelier/README.md:8-11), no remote URL or resource server requested when activating skin.
Q: What if browser doesn't have WebGL acceleration enabled?
A: apply() will detect accelerated WebGL at startup (try webgl2 / webgl with failIfMajorPerformanceCaveat), if not available it adds data-maid-low-power identifier to body (src/client/index.ts:163-178, 402), CSS takes lighter CPU-safe path, visually slightly simplified but still usable.
Q: Will uninstall leave garbage?
A: No. apply() registers deactivator via ctx.effect (src/client/index.ts:349-391) which restores all body attributes, removes all [data-skin-chrome] nodes, restores body style, restores document.title, disconnects all MutationObserver / ResizeObserver / windowControlsOverlay listeners.
Q: Can it be used commercially? Is attribution required?
A: Not for commercial use, and full attribution chain must be preserved. Skin released under CC BY-NC-SA 4.0 (package.json:27), commercial use prohibited; attribution chain includes original work 上善, second creation ZipZipPipe, third creation Small-tailqwq (NOTICE:1-25).
Difficulty Level
Beginner — Takes effect immediately after installation and enabling, no config or code changes needed; underlying icon/CSS/DOM decorations all automatically managed by apply().
Known Issues and Limitations
- Occasional focus reset to previous folded state during "narrow search bar" expand/collapse instant in DSH 0.1.0-rc.6: This skin compatibility-handles this behavior via
requestAnimationFramere-delivering click and focus (src/client/index.ts:562-595); higher versions have built-in preservation, this path automatically becomes ineffective on newer versions. - Browsers without WebGL acceleration or low-power devices: Decorative elements take simplified path, overall visual performance slightly weaker than full effect (src/client/index.ts:163-178, 402).
- Desktop packaged end (Native shell) cannot mount this skin: This repo only distributes Web end (package.json:21-22).
- Materials are secondary/tertiary derivative works, restricted by CC BY-NC-SA 4.0, not for commercial use, derivative works must share under same license (NOTICE:24-25).
DeepSeek Harness Web GUI 的鲸鱼娘主题皮肤系列(独立分发仓库)。
效果预览
点击图片可查看完整尺寸。
住户
| 皮肤 | 包名 | 说明 | 许可 |
|---|---|---|---|
| maid-atelier | @dsh-external/dsh-client-ui-skin-maid-atelier | 深海女仆工坊:双女仆背景、深海蓝蕾丝界面与 Q 版侧栏 | CC BY-NC-SA 4.0 |
版权所有人
| 版权所有人 | 版权所有内容 | 个人主页 |
|---|---|---|
| 上善 | 鲸鱼娘角色形象原作 | Pixiv · Bilibili(上善无形) |
| ZipZipPipe | 加入 DeepSeek 元素的女仆鲸鱼娘二次设计 | Pixiv · Bilibili(ZipZipPipe) |
*反馈问题尽可能在 issue 中发起,而不是跑去联系上面两位老师。但是,看鲸鱼娘二创可以去关注一下,谢谢喵
安装
懒人版
对你的 dsh 说:
安装一下这个皮肤包:https://github.com/Small-tailqwq/dsh-deep-whale
git clone https://github.com/Small-tailqwq/dsh-deep-whale
cd <harness>
dsh plugin --profile web add ../dsh-deep-whale/maid-atelier
懒人版 · 自带技能
本仓库自带 dsh-skin-install 技能(.agents/skills/)。dsh 在仓库目录内运行时自动发现该技能;对你的 dsh 说"安装一下这个皮肤包"或"切换皮肤",它会列出仓库全部皮肤、询问你要激活哪一套,并交代作者署名链与许可边界后再安装。无需自行克隆到 dsh 源码里,皮肤开关走配置热重载,无需重启。
许可
本仓库各皮肤为衍生创作,整体以 CC BY-NC-SA 4.0(署名-非商业性使用-相同方式共享)发布,禁止商业性使用。署名链见各皮肤 NOTICE。
皮肤工程脚手架来自 zhu1090093659/dsh-web-ui ,本仓库仅分发皮肤成品,不包含脚手架。

