Back to home@Yuuhann1999

dsh-bloub-mood

动态心情图标 · DeepSeek Harness 插件 — bloub 表情随会话状态切换 favicon 与 logo,形状/颜色/文字可配置(8 shapes × 12 colors, animated SVG, MIT)

Stars
1
Language
JavaScript
Created
Aug 18, 2026
Updated
Aug 18, 2026
GitHub repo

Introduction

dsh-bloub-mood

动态心情图标 — 让 DeepSeek Harness (DSH) 的 favicon、侧边栏 logo 和首页标题随会话状态变成会动的 bloub 表情,形状 / 颜色 / 文字全部可在设置页自定义。

灵感来自 bloub(bloub, avatar SVG animé):一个可自定义形状/表情/颜色的 SVG 头像生成器(GitHub)。本插件把它的表情动画接到 DSH 的会话状态机上——你在标签页上扫一眼,就知道 agent 在干活、在等你、还是做完了

效果预览

设置页 · 心情图标 / Mood(设置 → 心情图标):顶部 iOS 风格启停开关、实时大预览、五表情状态排、4 列网格选形状与颜色、4 个文字自定义输入框:

设置页 · 心情图标

实际效果:侧边栏 logo 变成 ⚫ Yuuhann [工作台],首页标题与徽章也跟随自定义(示例:欢迎来到个人工作台 · My Lab):

实际应用效果

换个造型:形状、颜色即时切换——同样是你熟悉的界面,但完全是你的风格(示例:圆形 · 蓝色):

配置后的设置页

状态 → 表情映射

DSH 状态触发条件bloub 表情动画
执行中会话 running专注 (attentif)眼睛转圈
等你输入pendingInteraction(提问/审批)好奇 (curieux)歪头看你
完成待读completed(回合结束未点开)得意 (fier)骄傲脸
空闲以上都不是平静 (neutre)呼吸
困倦(彩蛋)空闲超 10 分钟困倦 (somnolent)打瞌睡

优先级:等你输入 > 执行中 > 完成待读 > 空闲。多个会话任一命中即触发。表情按状态自动切换,无需(也不能)手动选择

安装

dsh plugin --profile web add dsh-bloub-mood

(npm 安装,秒级完成;也可用 GitHub 源:dsh plugin --profile web add github:Yuuhann1999/dsh-bloub-mood

然后重启 dsh web,刷新页面,在 设置 → 心情图标 里挑一个喜欢的造型。已装 dsh-market 插件市场的,收录合并后在市场里搜 "bloub" 也能一键安装(带截图展示)。

版本

当前 1.0.0npm)。升级:dsh plugin --profile web add dsh-bloub-mood@latest 后重启。

可配置项

配置选项默认
启用开关iOS 风格滑动开关,停用即完全恢复官方原样启用
形状圆形 / 卵石 / 圆角方 / 胶囊 / 三角 / 六边形 / 云朵 / 水滴(8 种)圆形
颜色墨黑 / 棕 / 红 / 橙 / 琥珀 / 绿 / 青绿 / 蓝 / 紫 / 玫粉 / 灰 / 奶油(12 种)墨黑
主字标侧边栏展开时的名字Yuuhann
侧栏徽章名字后的胶囊标签,留空隐藏工作台
首页标题输入框上方的大标题,留空保留官方"探索未至之境"(空)
首页徽章标题旁的胶囊标签,留空隐藏预览版

配置存于 localStorage,刷新与重启后保持。

特性

  • favicon 动画<link rel=icon> 指向内嵌 CSS 动画 SVG 的 data URL,标签页图标会动(Chrome/Edge/Firefox 支持 SVG favicon 动画)
  • 侧边栏 logo 动画:原生 FishLogo / BrandWordmark 被替换为同位动图(CSS 动画在 <img> 中照常播放)
  • 首页文字自定义:标题与徽章直接替换文字,字体/字号/颜色沿用官方样式
  • React 共存:内联 style 隐藏 + 孤儿清扫 + attribute 监听三重自愈,折叠/展开侧栏、路由切换均不丢效果、不重复注入
  • 零网络请求:40 个动画 SVG(8 形状 × 5 表情)构建期内嵌,颜色运行时替换,单文件自包含
  • 即插即用:纯客户端插件,无宿主侧行为,无 API key

换素材(开发者)

素材由 tools-gen-assets.mjs 从 bloub 网站程序化导出(jsdom 拦截导出 Blob,仅存在于 GitHub 仓库,npm 包内不需要):

node tools-gen-assets.mjs   # 重新生成 assets/(8 形状 × 5 表情)
node build.mjs              # 内嵌进 lib/client.js

改状态映射 / 空闲阈值 / 排版参数:编辑 client-template.js 后重新 build。发新版本:npm version patch → push → npm publish

致谢

License

MIT