用 dsh-deep-whale 给 DeepSeek Harness 网页界面换上鲸鱼娘皮肤

前言

DeepSeek Harness(下文简称 DSH)把模型、工具、技能、会话、沙箱、存储、循环、调度和 UI 都做成可替换的插件。官方说法是「一切皆插件」:Cordis 内核只负责加载、卸载和依赖,具体能力由插件提供。网页界面因此也可以整层换掉,而不必去改 Harness 源码。

默认 Web GUI 能完成编码 Agent 的日常操作,截图和演示看起来却和官方预览页差不多。社区里陆续出现了主题类插件:有人做 QQ 复古窗体,有人做 Excel 布局,也有人把角色立绘铺进对话区。dsh-deep-whale 属于最后一类——它不改 Agent 循环,也不碰模型请求,只给网页界面换一套「深海女仆工坊」皮肤。

本文按社区插件目录页、GitHub 仓库 README、maid-atelier 子目录的 package.json / skin.json / NOTICE,以及客户端入口源码核对后整理:这个插件是什么、装哪条命令、装完怎么切主题,以及许可证里必须留下的署名链。社区插件目录(deepseek-harness-plugin.com)是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要把它当成官方应用商店。

这是什么

dsh-deep-whale 是一套面向 DSH Web GUI 的鲸鱼娘主题皮肤系列,由 Small-tailqwq 维护,仓库地址是 Small-tailqwq/dsh-deep-whale。目录页把它归在「主题与外观」,主要语言是 TypeScript。仓库创建于 2026 年 8 月 13 日,社区目录收录日期为 2026 年 8 月 15 日。截至 2026 年 8 月 17 日,GitHub API 显示约 1099 星;目录页当时展示的是 756 星,以后者作收录快照即可,星标以仓库页面为准。

它解决的问题很具体:让 Web 界面在不改 Harness 源码的前提下,换成带角色背景和装饰层的外观。仓库 README 写明这是独立分发仓库,当前「住户」只有一套皮肤:

皮肤 包名 说明 许可
maid-atelier(深海女仆工坊) @dsh-external/dsh-client-ui-skin-maid-atelier 双女仆背景、深海蓝蕾丝界面与 Q 版侧栏 CC BY-NC-SA 4.0

skin.json 里的英文名是 Abyssal Maid Atelier,作者字段为 Small-tailqwq,wiring.idui-skin-maid-atelier,强调色为 #c5a468,作用域属性为 data-dsh-maid-atelierpackage.json 当前版本是 0.0.1dsh.client.platformweb,对 @deepseek-ai/cordis 的 peer 依赖是 ^4.0.1

皮肤子目录 README 把它定位成纯展示层客户端插件:宿主入口 src/index.tsapply() 是空函数,注释写明「Provides no host-side behavior」;真正改界面的是 src/client/index.ts。它不注入 Cordis 服务、不发出 Cordis 事件、不触达模型请求。卸载时由 Cordis effect 销毁器还原全部 CSS / DOM 写入。

核心功能

下面这些能力来自 maid-atelier/README.mdskin.json 和客户端入口,不是演示稿里的想象功能。

亮暗两套宫殿背景

对话区使用双女仆工坊场景作背景。客户端按 body 是否带有 data-ds-dark-theme,在 MAID_ATELIER_PALACE_LIGHTMAID_ATELIER_PALACE_DARK 之间切换,背景以 cover 铺满、顶部居中。仓库 README 在「效果预览」里放了 maid-atelier/preview/light.webpdark.webp,安装前可以先看这两张图。

目录页也提到:亮色 / 暗色两版预览可以在切换前看清效果;装好后亮暗可以跟随系统偏好。具体是否「装上立刻生效」,以你当前的皮肤管理方式为准,下一节会分开写。

装饰层而不是改内核

skin.json 的描述和 README 一致:用深海蓝、陶瓷白、长春花蓝、柔金构成可热切换的 UI 覆盖层。客户端还会:

  • 给可折叠侧栏加上 Q 版角色和边角装饰
  • 改页面标题为「深海女仆工坊 · DeepSeek Harness」
  • 写入 theme-color#0b193f
  • document.head 追加一枚 PNG favicon

素材嵌进 client bundle(数据 URI)。README 明确写:激活不依赖临时文件、远程 URL 或额外的资源服务器。源码里对应的是 art.tsbackground-art.generated.tschrome-art.generated.tsworkspace-art.generated.ts 这几份生成文件。

按页面状态收放角色

README 对布局的约定是:

  1. 着陆页角色随响应式输入框缩放
  2. 进入对话后,角色移向安全边缘
  3. 轨迹(Trajectory)/ 检查视图保持着陆构图

客户端用一组 data-maid-* 属性投影这些状态,例如是否处于活动对话、设置页是否打开、是否存在 [data-dsh-better-sidebar]。源码注释还写了:侧栏宽度写进独立 stylesheet,而不是改 body 的 inline style,避免触发 Chrome autofill 的 MutationObserver。没有加速 WebGL 时会打上 data-maid-low-power。这些都是实现细节,日常使用不必改配置。

加载即挂上,卸载即还原

cordis.patch.yml 往 web 插件名册插入一条:

  • id: ui-skin-maid-atelier
  • name: @dsh-external/dsh-client-ui-skin-maid-atelier

客户端 apply(ctx)ctx.effect 注册销毁器:去掉 data-dsh-maid-atelier、还原 CSS 变量、删掉皮肤自己插入的节点、恢复原来的 document.title。README 的说法是「加载即生效、卸载即复原」,并注明与皮肤中心 / dsh-skin 的互斥切换兼容。

安装与启用

安装前请先有一份能跑起来的 DSH Web 界面。官方快速体验是:

npx @deepseek-ai/dsh web

源码安装则克隆 deepseek-ai/deepseek-harness。DSH 仍处于开发者预览,核心插件和 API 会继续变。

目录页给出的命令

社区目录页的安装命令以页面原文为准,在 DeepSeek Harness 终端里运行:

dsh plugin add github:Small-tailqwq/dsh-deep-whale

如需可复现安装,目录页要求固定 commit 哈希:

dsh plugin add github:Small-tailqwq/dsh-deep-whale#<commit>

<commit> 换成仓库里实际的提交哈希,不要照抄占位符。

目录页同时提示:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。

仓库 README 的两种装法

根目录 README 还提供了另外两条路径。

1、对 DSH 直接说(仓库称为「懒人版」):

安装一下这个皮肤包:https://github.com/Small-tailqwq/dsh-deep-whale

2、本地克隆后,把 maid-atelier 子目录加进 web profile:

git clone https://github.com/Small-tailqwq/dsh-deep-whale
cd <harness>
dsh plugin --profile web add ../dsh-deep-whale/maid-atelier

<harness> 是你的 DeepSeek Harness 工作目录。第二条命令指向皮肤成品目录,而不是仓库根目录;该目录带有 package.json、预构建的 lib/skin.json

maid-atelier/README.md 里曾出现 git clone https://github.com/dsh-external/dsh-deep-whale。当前公开仓库所有者和目录页安装命令都是 Small-tailqwq/dsh-deep-whale,克隆时以后者为准。

典型用法

看预览再决定

仓库根 README 用表格放了亮色、暗色两张预览图,路径分别是:

  • maid-atelier/preview/light.webp
  • maid-atelier/preview/dark.webp

目录页的使用场景也建议先看预览:这套画风偏精致角色立绘,不喜欢可以在同一分类里看别的主题,不必先装再卸。

装完之后怎么切到这套皮肤

不同文档写的入口不完全一样,按来源分开用:

  1. 皮肤子目录 README:加载即生效,卸载即复原;wiring.idui-skin-maid-atelier
  2. 社区目录页:装好后在主题区选择;亮 / 暗两版可以跟随系统偏好。
  3. 若你另外装了皮肤管理类插件(例如社区里的 dsh-skin-manager),其 README 的流程是:打开 Settings → Skins,列表里会出现已安装皮肤(示例名称就是「深海女仆工坊 / maid-atelier」),点 Apply,按提示 Refresh。选 Default 则禁用全部皮肤、回到 DSH 原外观。dsh-deep-whale 本身并不捆绑皮肤管理器。

没有皮肤中心时,以目录页的「主题区」和 README 的加载 / 卸载为准,不要把第三方管理器的菜单结构当成这个仓库自带的界面。

开发构建(一般用不到)

本仓库只分发皮肤成品(含预构建 lib/),不包含脚手架。根 README 写脚手架来自 zhu1090093659/dsh-web-uimaid-atelier/README.md 写开发构建要到该脚手架仓库的 skins/maid-atelier/ 下进行:

cd <dsh-web-ui>/skins/maid-atelier
pnpm build          # 重新生成素材嵌入 + tsdown 构建 lib/
pnpm test           # apply.spec.ts 行为测试

只想换外观的话,不必走这条路径。把构建产物 lib/ 提交回 dsh-deep-whale 才是一次皮肤更新。

适用场景与注意事项

适合这些情况:

  • 已经在用 dsh web,希望截图、教程、社区帖的界面有固定辨识度
  • 团队或个人想给 Web 界面统一成同一套角色皮肤
  • 只改外观、不希望皮肤插件插入服务或改模型请求

不适合这些情况:

  • 需要商业使用。仓库和 maid-atelier/LICENSE 均为 CC BY-NC-SA 4.0(署名、非商业性使用、相同方式共享),README 写明禁止商业性使用
  • 只在终端 / TUI 里用 DSH,不用 Web GUI。package.json 把平台标成 web
  • 指望它增强 Agent 能力。它不提供工具、技能或模型适配

许可证还有一条必须遵守的署名链,写在 maid-atelier/NOTICE 里。皮肤素材是三创:

  1. 一创 上善Pixiv):鲸鱼娘角色形象原作
  2. 二创 ZipZipPipe / zipzipPixiv):在原作上加入 DeepSeek 元素的女仆鲸鱼娘二次设计(NOTICE 写明生成模型为 GPT Image 2)
  3. 三创 Small-tailqwq:本皮肤使用的 DeepSeek 元素再设计

完整许可文本在 maid-atelier/LICENSE。仓库 README 要求:反馈问题尽量开 GitHub Issue,不要去联系上面两位原作;想看鲸鱼娘二创可以自行关注他们的主页。

另外几条实践上的限制:

  • 插件以当前 dsh 进程权限运行。即使这是展示层皮肤,安装前仍应浏览仓库源码和许可证
  • 客户端会改 document.title、favicon 和 theme-color;卸载后销毁器会按保存的原值还原
  • 源码里出现了对 [data-dsh-better-sidebar] 的适配选择器,说明它可以和侧栏增强类插件共存,但共存效果以你本机实际界面为准,仓库没有提供一份「已验证插件组合」清单
  • DSH 和社区皮肤脚手架都还在快速迭代,0.0.1 这种版本号说明成品仍早;界面 DOM 结构一变,皮肤选择器可能对不齐

小结

dsh-deep-whale 把 DSH「UI 也是插件」这件事做得很直接:当前只分发 maid-atelier 这一套深海女仆工坊皮肤,包名是 @dsh-external/dsh-client-ui-skin-maid-atelier,在网页里铺双女仆背景和装饰层,不介入 Agent 循环。安装用目录页命令:

dsh plugin add github:Small-tailqwq/dsh-deep-whale

或按 README 把 maid-atelier 子目录加进 web profile。使用前看清 CC BY-NC-SA 4.0 和 NOTICE 里的署名链,非商业场景再装。

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-deep-whale/

GitHub:https://github.com/Small-tailqwq/dsh-deep-whale

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜