DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-theme-whalegirl

Theme Whalegirl

DeepSeek-鲸鱼娘 (Whale Girl) 主题,适用于 DeepSeek Harness 网页 GUI——在原生主题运行时中完整重新映射 --dsw-* 令牌,浅色纸张层后方配有环境艺术图,可调节玻璃效果,并支持仅对对话区域生效的纸张不透明度。视觉标识:溟月 by 上善无形 →

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-theme-whalegirl@0.4.0
README兼容性版本
previewplugin settings

兼容性与来源证明

Theme Whalegirl 以 dsh-theme-whalegirl 发布,当前版本为 0.4.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/5

版本

0.4.0stable
2026/11/3
0.3.1stable
2026/11/3
0.3.0stable
2026/10/30
查看其余 4 个版本收起版本
0.2.2stable
2026/10/29
0.2.1stable
2026/10/28
0.2.0stable
2026/8/23
0.1.3stable
2026/8/22
最新版
0.4.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
3.9 MB
文件数
15
Surface
web
许可证
MIT AND CC-BY-NC-SA-4.0
发布源
npm
GitHub
★ 1
周下载
3,183
安全扫描
✓ v0.4.0 扫描通过
最近提交
2026/11/3
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-theme-whalegirl

DeepSeek-鲸鱼娘 (Whale Girl) theme for the DeepSeek Harness (DSH) Web UI — a native light theme built from the DreamSkin palette, with the whale-girl artwork behind a light paper layer and live glass, wallpaper and conversation-paper controls.

English | 中文

preview plugin settings

Artwork credit. The original character 溟月 (Mingyue) was created by Bilibili creator 上善无形; Bilibili creator ZipZipPipe later combined her with DeepSeek elements and the maid outfit. The artwork is licensed CC BY-NC-SA 4.0 (attribution, non-commercial, share-alike) and is not covered by the plugin's MIT license. The DreamSkin package was published by powerdog996. Full credits: CREDITS.md.

What it does

  • Full token remap — registers one light theme (deepseek-whalegirl) into DSH's native theme runtime with a complete --dsw-* dictionary (174 tokens): every surface, label, border, button, markdown block, scrollbar and state color derives from the DreamSkin palette.
  • Light paper, not heavy frost — the whale-girl artwork sits as a fixed backdrop behind the UI. Since 0.2.x the app-frame blur is 1px by default and the main column carries a single paper layer, so about 14% of the artwork reads through while body text keeps its contrast.
  • Conversation-only paper opacity — since 0.3.0 a separate slider controls the transcript column only. Long chats can show more wallpaper without making the home page, menus or plugin pages more translucent; those keep the global surface setting.
  • Settings on the installed package page — the form is contributed as the bundle's own configuration (plugins.bundle.config), so it appears on Plugins → Installed → dsh-theme-whalegirl, above the component list. It is no longer part of the built-in configuration cards.
  • Adjustable glass & wallpaper — frame blur, global surface and bubble translucency, conversation paper, wallpaper veil, visibility, focus, zoom and blur, and the composer focus glow are adjustable live, with three presets: 清爽玻璃 / DreamSkin 原味 / 纯净实底. The card follows the host UI language and can be pinned to 中文 or English.
  • Native integration — the theme pins itself through theme.setTheme() and a theme/change guard re-asserts it whenever anything else writes another preference. That includes an explicit light/dark pick in Appearance, because the desktop shell writes exactly that when it adopts its stored settings after plugins mount: the way back to the built-in appearance is to disable this plugin, in the market Themes tab or on its installed-package page. The settings card says the same thing where you would look for it.
  • Two stylesheet layers — the token palette and the wallpaper bytes live in a static layer written once per mount; only the few declarations the sliders move are rewritten on adjustment, so dragging a control costs ~4 KB instead of re-parsing the ~0.4 MB wallpaper.
  • Self-reporting compatibility — the paper model depends on host class names that a refactor can rename, so the plugin probes them and prints 宿主适配 3/3 · 实测 DSH 0.2.1-rc.5 on the settings card, naming any miss in the console as well.
  • Light appearance only — faithful to the source skin, which ships one light palette.

Palette anchors taken from the source skin:

RoleSource valueUsed for
text#352970primary labels, ink ladder
highlight#455b78brand & primary buttons
accent#7a4e29composer focus ring
accentAlt#ceb683active nav accent, selection
secondary#85c1ccblue/info ladder
panel / panelAlt#abb4cf / #c3cee4periwinkle sidebar glass
background#bd9999rose paper tint, bubbles

Install

npm (recommended — versioned, easily upgradable, and no build step):

dsh plugin --profile web add -w dsh-theme-whalegirl

Or install from the dsh-market plugin's Themes tab (search "whalegirl").

Other sources:

# prebuilt tarball from GitHub Releases (use if the npm registry is unavailable)
dsh plugin --profile web add -w https://github.com/ZHOUcourier/dsh-theme-whalegirl/releases/latest/download/dsh-theme-whalegirl.tgz

# git (tracks main)
dsh plugin --profile web add -w github:ZHOUcourier/dsh-theme-whalegirl

# local checkout
dsh plugin --profile web add -w link:/path/to/dsh-theme-whalegirl

Then restart the profile:

dsh --profile web

The theme applies immediately once the plugin mounts. While the plugin is enabled it owns the appearance: a light/dark pick in Settings → General → Appearance is reclaimed, because the same write happens on the desktop's own cold start. To switch back to the built-in appearance, disable the plugin (market Themes tab, or its installed-package page); toggling it on again brings the theme back.

Settings

Open Plugins → Installed → dsh-theme-whalegirl and use the 「鲸鱼娘 · 玻璃与壁纸」 form. Every change applies instantly; values are stored in this browser's localStorage (dsh-whalegirl.prefs.v2), not in the profile.

ControlRangeDefaultEffect
Presets—清爽玻璃One-click 清爽玻璃 / DreamSkin 原味 / 纯净实底
主框背景模糊0–24px1pxApp-frame backdrop blur radius; 0 = off
表面透明度0–100%25%Global paper opacity (home, menus, plugin pages); 0 = solid, 100 = most open (~55%)
对话纸面透明度0–100%25%Conversation transcript only; 0 = solid, 100 = most open (~45% paper)
用户气泡透明度0–100%60%Translucency of the dusty-rose user bubbles
壁纸遮罩浓度 / Wallpaper veil0–100%55%Strength of the paper veil over the artwork
显示环境壁纸 / Show wallpaperon/offonHides artwork + veil for a plain paper background
壁纸焦点上下 / Wallpaper focus0–100%50%Vertical position of the artwork, for windows whose crop cuts the subject off
壁纸缩放 / Wallpaper zoom100–200%100%Scale of the artwork, for narrow windows where cover crops hard
壁纸模糊 / Wallpaper blur0–16px0pxSoftens the artwork itself
输入框咖啡色聚焦光晕 / Focus glowon/offonThe DreamSkin composer focus ring
界面语言 / Languageauto → zh → enautoCard copy follows the host UI language (<html lang>), with the browser language only as a fallback; pin it here

The card header also prints the current values, the stylesheet build id, and the host-hook report (宿主适配 3/3 · 实测 DSH 0.2.1-rc.5).

恢复默认 / Restore defaults restores the defaults above. Upgrading from 0.1.x starts from the new (lighter) defaults; nothing is migrated.

Uninstall:

dsh plugin --profile web remove dsh-theme-whalegirl

Compatibility

  • Requires a DSH web client profile (dsh.client.platform: "web", client bundle via exports["./client"]).
  • DSH >= 0.1.6 is declared in engines.dsh; tested on DSH 0.2.1-rc.5. The client declares inject: ["theme", "slots"], so the settings form's ctx.slots access is legal and every service probe falls back to ctx.get() instead of throwing. A host without the slots service still gets the full theme; only the optional settings entry is skipped.
  • No upper bound is declared on purpose: the theme is visual-only, and a false ceiling would hide it from newer hosts that in fact work. What a real breakage does is drop the hook report on the settings card to 宿主适配 2/3 and log the missing selector — please paste that line into an issue.
  • Light appearance only — the source skin ships one light palette.
  • Works alongside other plugins; nothing outside the gated body attribute data-dsh-whalegirl is touched when disabled.

Paper model

The host's surface ownership differs per shell: the macOS titlebar layout gives the center/right columns --dsw-alias-bg-base, while the browser layout paints no column background and lets each page (conversation root, dock tab host) paint it. The skin owns the column surface itself: [class*="_centerCol"]/[class*="_rightbarCol"] carry the paper on every platform, the conversation root and [class*="_tabHost"] stay transparent, so every page has exactly one paper layer (~86% opaque at the default, ~14% wallpaper). The sidebar paints the same token twice (the layout column and the sidebar's own _root); the skin blanks the inner fill and paints the wash once from the column.

Since 0.3.0, [class*="_centerCol"]:has([data-slot="conversation.header"]) re-emits --dsw-alias-bg-base with the conversation-only value. The right sidebar, home, menus and plugin pages keep the global 表面透明度.

Development

npm run build        # wrap src/client.js into lib/client.js + embed assets/background.jpg
npm test             # smoke test: register/guard/card/dispose against a mocked DOM
npm run check        # verify lib/ matches src/ (CI)
npm run test:browser -- --url "http://127.0.0.1:5190/?token=…"   # real Chromium, computed styles

The build is dependency-free (plain Node). lib/ is committed so installs never need a build step.

npm test proves the plugin's logic; it cannot see the things that actually broke in the past (two paper layers composing to ~99% white, the web sidebar rendering solid where the desktop showed the wallpaper, a cold-start presenter overwriting the palette). npm run test:browser boots a real DSH web profile and asserts computed styles instead of strings: the label colour lands on #352970, the wallpaper paints behind a single translucent column (alpha ≈ 0.86 at the default, ≈ 0.48 at 95%), preferences survive a reload, and no page error is raised. Boot any profile for it — a throwaway one keeps your own clean:

dsh --profile whalecheck --from-default-profile web --dump-config   # create without booting
dsh plugin --profile whalecheck add -w link:"$PWD"
dsh --profile whalecheck --no-open --port 5190                      # prints the token URL

Playwright is resolved from a local install, npm root -g, or the npx cache; if its Chromium was never downloaded the script falls back to the system Chrome.

Credits & license

Visual identity

视觉定型:B站UP主“上善无形”生成了原创角色“溟月”,后由UP主ZipZipPipe融入DeepSeek元素换上女仆装。遵守 CC BY-NC-SA 4.0 协议(署名、非商用、相同方式共享)。

Visual identity: the original character Mingyue (溟月) was created by Bilibili creator 上善无形; Bilibili creator ZipZipPipe later combined her with DeepSeek elements and the maid outfit. The visual is licensed under CC BY-NC-SA 4.0 (attribution, non-commercial, share-alike).

DreamSkin source

The theme was ported from the DreamSkin package DeepSeek-鲸鱼娘 ver_cb557ececaa5de3f3dbe by powerdog996. That page lists the package as MIT; this plugin treats that MIT as covering the DreamSkin package's packaging/code, while the character and artwork remain under the original CC BY-NC-SA 4.0 terms. See CREDITS.md for the full chain and the license split.

License

  • Code — MIT. See LICENSE.
  • Artwork & visual identity — CC BY-NC-SA 4.0; attribution, non-commercial, share-alike. See CREDITS.md.
  • MIT does not cover the bundled artwork (assets/background.jpg, derived character layers, previews, icons); CC does not cover the plugin code.

Release notes

See CHANGELOG.md or GitHub Releases for the changes in each version.