dsh-bloub-mood
动态心情图标 + 桌面入口 — DeepSeek Harness (DSH) 的会话感知动画形象:favicon、侧边栏字标、首页标题随会话状态播放 bloub 引擎原生小剧场动画,16 种表情可点击切换,形状 / 颜色 / 文字全部在设置页自定义;并内置桌面启动子功能,把共用同一后端的 DSH 变成 Dock 里真正的独立 App。
灵感来自 bloub(bloub, avatar SVG animé · GitHub)。本插件把它的表情与动画引擎接到 DSH 的会话状态机上——扫一眼标签页,就知道 agent 在干活、在等你、还是做完了。
效果预览
设置页:表情(16 种)/ 形状(8 种)/ 颜色(12 种)/ 文字(4 处)四层自定义,顶部实时大预览与 iOS 风格启停开关,中英双语跟随界面语言:

桌面启动(设置页底部):一行开关 + 三个 bloub 形象图标点选,所见即桌面所得:

Dock 里的独立 App —— 不是浏览器窗口,是真正属于自己的图标、名字与进程:

DSH Desktop 主界面 —— 系统原生窗口,无浏览器地址栏,共用当前 dsh web 后端(会话、插件、工作区全部同步):

桌面启动 / Desktop Launch(v2.4.0)
给共用同一后端的 dsh web 一个桌面入口,双击即用:后端在线直接复用;离线自动拉起 dsh web 并等待就绪。壳与 DSH 版本完全解耦——升级 harness 后无需重建入口,打开即最新版。
macOS 与 Windows 的形态区别(功能一致,窗口形态不同):
三个图标形象(设置页实时预览实际生成图):
- 持久化:
$DSH_HOME/dsh-bloub-mood/desktop-entry.json,优先级 持久化 > config.desktopEntry > 默认
- 关闭开关 = 移除入口文件;重启后尊重持久化状态,不会擅自重建
- 日志:
~/.dsh/logs/desktop-entry.log
- Host 路由:
GET /desktop-entry/api/state · POST .../enabled · POST .../icon · GET /desktop-entry/icon/:id.png(mac/win 之外的平台设置页提示不支持)
小剧场(v2.0 引擎原生动画)
自动状态播放从 bloub 引擎逐帧渲染的 GIF 小剧场(透明背景,官网导出管线直出):
优先级:等你输入 > 执行中 > 完成待读 > 空闲。多会话任一命中即触发。
点击交互
点击界面上的任何黑球 → 随机切换 16 种表情之一(平静 / 专注 / 惊讶 / 兴奋 / 开心 / 大笑 / 生气 / 难过 / 害怕 / 怀疑 / 困惑 / 好奇 / 得意 / 羞怯 / 无趣 / 困倦),每个表情带原生 180 帧眨眼动画;下一次会话状态变化自动回归小剧场。设置页「表情」区可指定默认表情(空闲时的脸)。
安装
dsh plugin --profile web add dsh-bloub-mood
(npm 安装;也可 GitHub 源 dsh plugin --profile web add github:Yuuhann1999/dsh-bloub-mood)
重启 dsh web,刷新页面,在 设置 → 心情图标 挑造型、开桌面启动。
可配置项
心情配置存于 localStorage;桌面启动配置存于 $DSH_HOME/dsh-bloub-mood/desktop-entry.json,刷新与重启保持。
双轨素材:墨色时自动状态播放引擎 GIF 小剧场;切换颜色或点击表情时走 128 个表情 SVG 轨道(可染色、原生眨眼)。
特性
- 引擎原生动画:40 个 GIF 小剧场从 bloub 官网导出管线逐帧渲染(真 Chrome + puppeteer 驱动),透明背景,深浅色主题皆宜
- favicon 动画:标签页图标跟随状态变化
- 侧边栏 / 首页 / wordmark 全位替换:含 SVG 内部手术(鲸鱼 → 动图、字母 → 自定义文字、HARNESS 徽章 → 自定义)
- macOS 原生桌面壳:系统 WebKit 编译的独立 App 进程(Dock 自有图标 / 独立 Cmd+Tab / 外链转默认浏览器 / 离线自动拉起后端),零第三方依赖
- i18n:设置页全部文案接入 DSH 客户端 locale 服务,中英跟随界面语言实时切换
- React 共存:内联 style + 孤儿清扫 + attribute 监听三重自愈,折叠侧栏、路由切换不丢效果
- 即插即用:纯客户端 + webServer 路由,无 API key、零网络请求
换素材(开发者)
- 表情 SVG:jsdom 程序化导出(见仓库
export-one.mjs)
- 剧本 GIF:puppeteer 驱动官网时间线导出(透明背景)
- 桌面图标:
assets-appicons/(.icns + 256px PNG,sips + iconutil 生成)
- 重新构建:
node build.mjs 内嵌全部素材
- 发版:
npm version → push → npm publish
致谢
License
MIT