前言¶
DeepSeek Harness(命令行名 dsh)把模型、工具、会话和界面都做成插件。官方仓库 deepseek-ai/deepseek-harness 的口号是「Everything is a Plugin / 一切皆插件」:换能力改的是配置,不是框架源码。当前仍是 developer preview,默认 Web UI 跑在本地浏览器里。
网页会话页本身已经能看对话、看轨迹,但标题栏是静态的。模型在思考、工具在跑、一轮刚结束,标题行右侧通常没有额外反馈。社区插件 dsh-ui-whale 做的就是这件事:在会话标题栏常驻一只全手绘像素鲸鱼,跟着会话快照眨眼、摆尾、喷水、睡觉,不改 DeepSeek Harness 核心代码。
本文按插件目录页、GitHub README / INSTALL.md / package.json / LICENSE,以及 DeepSeek Harness 官方仓库交叉核对后整理。社区目录 deepseek-harness-plugin.com 是独立站点,用来发现和安装社区插件,与 DeepSeek / 幻方没有官方从属关系,不要把它当成官方应用商店。
这是什么¶
dsh-ui-whale 是一款界面增强插件,由 GitHub 用户 lhh010 维护,仓库地址是 lhh010/dsh-ui-whale。npm 包名为 @dsh-external/dsh-ui-whale,package.json 当前版本是 0.3.3,主要语言是 TypeScript,许可证为 BSD-3-Clause。社区目录于 2026-08-15 收录,归在「界面增强」。截至 2026-08-17,GitHub API 显示该仓库 29 星标;目录页当时列出 30,以仓库页面为准。
README 的定位很具体:它是 DSH Web UI 的常驻像素鲸鱼伙伴。小鲸鱼挂在会话标题栏(标题行右侧),随会话快照实时反应,仓库反复强调 零核心改动。package.json 里的客户端元数据写明 platform: 'web',并注入 @deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-conversation。它使用官方 ui-conversation 声明的槽位 conversation.session.header.actions,不另起一套界面。
它也明确写出能力边界。README 的 Model Experience 一节写的是「无」:纯浏览器端 UI 呈现,不进入模型请求、不增加提示词内容、不改任何工具 schema。安装说明进一步把它标成纯客户端插件包(Node half 为空),安装只做两件事:让包装进配置树,再在配置里加一行。
核心功能¶
仓库把鲸鱼的状态分成几档,全部由会话快照推导,而不是让模型「扮演」这只鲸鱼。
1、平时(空闲)。隔大约 5 秒眨一次眼;大约 11 秒摆一次尾巴,帧序是 0-1-2-3-4-3-2-1-0 来回;大约 7 秒动一次胸鳍,帧序是 0-1-2-1-0。这些动作是偶尔发生,不是一直在动。
2、思考 / 运行 / 工作中。尾巴持续摆动,胸鳍持续扑动,眨眼更频繁。情绪来自会话快照里的 running、推理 partial、运行中工具,动画引擎是 src/client/animation.ts 里的纯 tick 状态机。
3、回合完成。头顶喷水庆祝。水花按单向 0-1-2-3-4-5-6 喷起散开,不反向,喷完结束。
4、点击互动。点鲸鱼时,左上角冒出一颗粉色爱心,从小变大再消失,帧序是单向 0-1-2-3-0。期间其它动作照常进行;再点一次会重新从小爱心开始。
5、睡觉。连续空闲 10 秒后入睡。头顶灰色「Z」按 0-1-2-3-4-5-1-2-3-4-5-1-… 循环:先静止姿态 0 一次,再上浮、渐小、淡出反复。睡觉期间鱼鳍和尾巴仍会动;一旦出现思考、工作、运行或喷水庆祝,立刻醒来。
美术实现也写在 README 里,不是额外包装。素材是 22 帧手绘像素画,画布 25×40 网格,7 色调色板(深蓝 #203864、身体蓝 #0066FF、浅蓝 #B4C7E7、白 #F2F2F2、粉 #CC3399、灰 #808080 用于睡眠 Z)。渲染用分层 CSS box-shadow 像素画,身体、眼睛、尾巴、胸鳍、喷水花、爱心、睡眠 Z 各一层;动画是固定 DOM 树上的样式切换,没有逐帧改布局。分层由帧数据自动推导,组合姿势逐像素还原原图,仓库用测试钉住。演示 GIF 和完整视频在仓库 docs/ 目录。
安装与启用¶
目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:
dsh plugin add github:lhh010/dsh-ui-whale
dsh CLI 会从 GitHub 解析插件并装进当前配置。目录页同时提醒:如需可复现安装,请固定 commit 哈希,写法是:
dsh plugin add github:lhh010/dsh-ui-whale#commit
把末尾的 commit 换成实际哈希。不要凭插件名称自己拼接安装串,以上命令以目录页原文为准。
仓库 README / INSTALL.md 补充了 web profile 通道,面向已经在跑 dsh web 的快照用户。默认版本 v0.3.3 面向 snapshot0810(snapshots/20260810T155924Z),并写明兼容 snapshot0807 到最终快照 snapshot0812,以及 npm 发版 @deepseek-ai/dsh@0.0.1-rc.5(dist-tag next)和 @deepseek-ai/dsh@0.0.1-rc.2。0806~0809 用户仓库建议固定 #v0.3.2,0805 用户用 #v0.1.0 并走旧安装方式。
profile 通道的完整步骤是:
git clone https://github.com/lhh010/dsh-ui-whale.git
cd dsh-ui-whale && pnpm install
dsh plugin --profile web add link:/path/to/dsh-ui-whale
也可以直接固定 tag:
dsh plugin --profile web add '@dsh-external/dsh-ui-whale@github:lhh010/dsh-ui-whale#v0.3.3'
配置行写在 $DSH_HOME/profiles/web/cordis.patch.yml,0806 及之后的 profile 方式支持热重载,不必为加这一行而重启:
- insert:
- id: dsh-ui-whale
name: '@dsh-external/dsh-ui-whale'
另外还有一条 registry 通道:前提是 DSH 已集成 plugin-registry,且 dsh registry 可用。命令是 dsh registry install /path/to/dsh-ui-whale(或打包后的 dsh-ui-whale.tgz),再执行 dsh registry enable @dsh-external/dsh-ui-whale。README 写明 registry 通道与官方 profile 通道互斥,不要同时挂。0805 旧快照仍走 ~/.dsh/config.yaml 加 pnpm add -w link:,细节见仓库 INSTALL.md。
前置条件也写在安装文档里:本机已有构建好的 DSH 快照(~/.dsh/source/current 指向含 lib/ 产物的快照),并且 dsh web 在运行。这是 Web UI 客户端插件,装到 headless 配置上不会出现那只鲸鱼。
典型用法¶
装好之后不需要给模型下指令,也没有额外斜杠命令。打开 Web UI 的会话页,看标题栏右侧是否出现像素鲸鱼即可。INSTALL.md 给出的验证标准是:
- 空闲时会眨眼,偶尔摆尾、动胸鳍
- 模型思考或工具运行时,尾巴持续摆动、胸鳍持续扑动
- 一个回合完成时,头顶喷出水花(单向
0-1-2-3-4-5-6) - 点击鲸鱼时,左上角冒出一颗从小变大的粉色爱心再消失(单向
0-1-2-3-0) - 连续空闲约 10 秒后入睡,头顶出现灰色 Z;一有活动立刻醒来
README 还提供了一条偏开发者的检查路径:dsh web 启动后,浏览器里 window.__DSH_BOOT__ 清单应包含 @dsh-external/dsh-ui-whale,/plugins/@dsh-external/dsh-ui-whale/client.js 应返回 200。维护者写明在 snapshot0809~0812 以及 npm rc.5 基线上做过实机 boot 验证。本地改源码或升级快照后,0809 起宿主会校验客户端构建产物,缺失会抛 ClientPackageCompositionError 并拒绝启动 dsh web,需要重新执行 pnpm run build。
仓库自带开发命令,便于核对动画和注册是否完好:
pnpm install
pnpm build
pnpm typecheck
pnpm test
pnpm test 跑的是 vitest,覆盖帧一致性、动画序列和插件注册。README 写明对 0811 / 最终快照基线有 34 个单测通过。这些是仓库文档中的测试说明,不是第三方评测。
适用场景与注意事项¶
适合已经在用 DeepSeek Harness Web UI、希望会话标题栏多一点工作状态反馈的人。它不提供新工具、不改提示词、不碰 Agent 循环,只是把 running / 空闲 / 回合结束这些已有快照,翻译成标题栏上的像素动画。如果你主要跑 headless 或 TUI,这个插件没有界面可挂。
需要注意下面几件事。
第一,平台限制是 Web。package.json 的 dsh.client.platform 是 'web',槽位依赖官方 ui-conversation。目录里同类的界面增强插件很多,例如侧边栏、主题皮肤、TUI,定位并不相同;本插件只负责标题栏这只鲸鱼。
第二,版本要和 DSH 快照对齐。默认 v0.3.3 把客户端元数据从顶层 dshClient 迁到了嵌套 dsh.client,因为 0810 的 ClientModuleHostService 只读后者,顶层字段会被静默丢掉,表现为「启动顺利但插件全没」。更早的 0805 仍要走旧安装路径。安装前对照仓库 README 的版本表,不要默认 latest 一定匹配你的快照。
第三,插件以当前 dsh 进程的权限运行,安装时可能执行代码。目录页和技能要求都强调:安装前检查源代码仓库和许可证;需要可复现安装时固定 commit 哈希。本插件许可证是 BSD-3-Clause,版权声明为 Copyright (c) 2026, lhh010。package.json 将包标为 private: true,日常安装走 GitHub / link,而不是把它当成已经上架的公开 npm 包。
第四,社区目录不是官方商店。候选来自 GitHub topic 和生态注册表,本站与 DeepSeek / 幻方无从属、背书或赞助关系,也不托管插件代码。带「已核验」标记的条目经过人工检查;没有该标记的条目属于自动筛选,不代表背书。
小结¶
dsh-ui-whale 把一只 22 帧手绘像素鲸鱼挂进 DeepSeek Harness 网页会话的标题栏:空闲眨眼摆尾,工作时持续动起来,回合完成喷水,点击冒爱心,连续空闲 10 秒就睡觉。它不改核心、不进模型请求,只消费会话快照。当前默认版本是 v0.3.3,维护者是 lhh010,许可证 BSD-3-Clause。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-ui-whale/
GitHub:https://github.com/lhh010/dsh-ui-whale