🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

动态心情图标 Yuuhann1999/dsh-bloub-mood

DeepSeek Harnessv2.4.4
Yuuhann199973 天前有提交已提供中文文档扫描:含敏感能力

动态心情图标 · DeepSeek Harness 插件 — bloub 表情随会话状态切换 favicon 与…

38/100
综合分
16
GitHub 星标
1,243
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-bloub-mood
npm 源 · dsh-bloub-mood 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 73 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-bloub-mood @ 2.4.4
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 00:47:57

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 42 处,展示前 28 条)
  • 读取本地文件
    lib/desktop-entry.mjs:56
    return JSON.parse(await readFile(path.join(dataDir(), "desktop-entry.json"), "utf8"));
  • 写入本地文件
    lib/desktop-entry.mjs:64
    await mkdir(dir, { recursive: true });
  • 写入本地文件
    lib/desktop-entry.mjs:65
    await writeFile(path.join(dir, "desktop-entry.json"), JSON.stringify(data, null, 2) + "\n");
  • 删除本地文件递归
    lib/desktop-entry.mjs:111
    await rm(paths.appPath, { recursive: true, force: true }).catch(() => {});
  • 删除本地文件
    lib/desktop-entry.mjs:115
    await rm(p, { force: true }).catch(() => {});
  • 读取本地文件
    lib/desktop-entry.mjs:169
    const [src, dest] = await Promise.all([readFile(iconSrc), readFile(iconDest).catch(() => null)]);
  • 写入本地文件
    lib/desktop-entry.mjs:171
    await mkdir(path.dirname(iconDest), { recursive: true });
  • 写入本地文件
    lib/desktop-entry.mjs:172
    await copyFile(iconSrc, iconDest);
  • 写入本地文件
    lib/desktop-entry.mjs:177
    await utimes(paths.appPath, new Date(), new Date()).catch(() => {});
  • 读取本地文件
    lib/desktop-entry.mjs:185
    const source = await readFile(srcPath, "utf8").catch(() => null);
  • 执行外部命令固定命令
    lib/desktop-entry.mjs:190
    execFile("xcrun", ["-f", "swiftc"], { timeout: 15_000 }, (error) => resolve(!error));
  • 读取本地文件
    lib/desktop-entry.mjs:204
    if (await readFile(marker).then(() => true, () => false)) {
  • 执行外部命令固定命令
    lib/desktop-entry.mjs:211
    execFile(
  • 写入本地文件
    lib/desktop-entry.mjs:218
    await mkdir(execDir, { recursive: true });
  • 删除本地文件
    lib/desktop-entry.mjs:219
    await rm(paths.execPath, { force: true });
  • 读取本地文件
    lib/desktop-entry.mjs:222
    for (const f of await readdir(execDir).catch(() => [])) {
  • 删除本地文件
    lib/desktop-entry.mjs:224
    await rm(path.join(execDir, f), { force: true });
  • 删除本地文件
    lib/desktop-entry.mjs:231
    await rm(tmpOut, { force: true }).catch(() => {});
  • 读取本地文件
    lib/desktop-entry.mjs:354
    const png = await readFile(path.join(pkgRoot, "assets-appicons", `${iconId}.png`));
  • 执行外部命令固定命令
    lib/desktop-entry.mjs:385
    execFile(
  • 读取本地文件
    build.mjs:16
    const template = readFileSync(templatePath, 'utf-8');
  • 读取本地文件
    build.mjs:29
    if (!existsSync(p)) { missing++; exprEntries.push('null'); continue; }
  • 读取本地文件
    build.mjs:30
    let text = readFileSync(p, 'utf-8').trim();
  • 读取本地文件
    build.mjs:50
    if (!existsSync(p)) { moods.push(null); continue; }
  • 读取本地文件
    build.mjs:51
    const b64 = readFileSync(p).toString('base64');
  • 写入本地文件
    build.mjs:62
    writeFileSync(outPath, out);
  • 发起网络请求
    client-template.js:1144
    fetch("/desktop-entry/api/state", { cache: "no-store" })
  • 发起网络请求
    client-template.js:1164
    return fetch(path, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 表情随会话状态切换
  • 形状颜色文字可配置
展开完整介绍(114 字)↓

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

v2.4.02026-08-20
· 新功能 · macOS 原生壳:DSH Desktop.app 不再是「Chrome 下的网页窗口」——系统 WebKit 编译的独立 App 进程(~90KB),Dock 自有图标与名字、独立 Cmd+Tab 身份、外链转默认浏览器;需 Xcode CLT,缺失自动回退浏览器窗口模式 · 离线冷启动增强:登录 shell 拉起后端(继承 nvm PATH),记录的 dsh 绝对路径失效时自动回退 PATH 查找——升级/换 node 版本后入口依然可用 · 壳与 DSH 版本解耦:升级 harness 无需重建入口,打开即最新版 · README 重写:桌面启动进正文,新截图(Dock 图标 / 桌面主界面 / 设置页),macOS 与 Windows 形态差异对照表 Windows 用户:本版仍为 Chromium --app 无栏窗口模式(功能完整),原生 WebView2 壳待 Windows 环境验证后推出。
v2.3.02026-08-20
· 新功能 · 桌面启动 Desktop Launch:内置子功能(原 dsh-desktop-entry 合并)。macOS 生成 ~/Applications/DSH Desktop.app,Windows 生成开始菜单+桌面快捷方式;双击即用,共用当前 dsh web 后端(在线复用 / 离线拉起 + Chromium --app 无栏窗口);设置页可开关 + 三个 bloub 形象图标(经典黑球/大笑鹅卵石/兴奋胶囊)一键切换 · i18n:设置页全部文案接入 DSH 客户端 locale 服务,中/英跟随界面语言实时切换 · 精简:桌面启动改单行标题+开关;删除成功提示,只保留错误 · 图标预览用真实生成图(/desktop-entry/icon/:id.png),所见即桌面所得
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
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 —— 不是浏览器窗口,是真正属于自己的图标、名字与进程: Dock · DSH Desktop DSH Desktop 主界面 —— 系统原生窗口,无浏览器地址栏,共用当前 dsh web 后端(会话、插件、工作区全部同步): DSH Desktop 主界面
展开完整文档(README 剩余 1 节)
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 —— 不是浏览器窗口,是真正属于自己的图标、名字与进程:

Dock · DSH Desktop

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

DSH Desktop 主界面

桌面启动 / Desktop Launch(v2.4.0)

给共用同一后端的 dsh web 一个桌面入口,双击即用:后端在线直接复用;离线自动拉起 dsh web 并等待就绪。壳与 DSH 版本完全解耦——升级 harness 后无需重建入口,打开即最新版。

macOS 与 Windows 的形态区别(功能一致,窗口形态不同):

| | macOS | Windows |
| 入口形态 | ~/Applications/DSH Desktop.app(启动台 / Dock 可见) | 开始菜单项 + 桌面快捷方式 |
| 窗口类型 | 原生独立 App:系统 WebKit 编译壳(~90KB),Dock 显示自己的图标与名字、独立进程、独立 Cmd+Tab 身份,外链自动转默认浏览器 | Chromium(Edge/Chrome)--app 无栏窗口:无地址栏无标签页,但进程归属浏览器 |
| 图标 | .icns(三个 bloub 形象之一,设置页点选即换) | .ico(插件现场生成,快捷方式使用) |
| 依赖 | Xcode Command Line Tools(编译原生壳;缺失时自动回退浏览器窗口模式,功能不丢) | 无(PowerShell 系统自带,用于建快捷方式) |
| 冷启动后端 | 登录 shell 拉起(继承 nvm 等 PATH;记录的 dsh 绝对路径失效时自动回退 PATH 里的 dsh) | start /B 后台拉起 |
| 失败处理 | 窗口内错误页 + 一键重试(至多 150 秒) | 弹窗提示 + 日志(至多 120 秒) |

三个图标形象(设置页实时预览实际生成图):

| id | 形象 | 出典 |
| classic | 经典黑球(默认) | cercle · neutre |
| joy | 大笑鹅卵石 | galet · hilare |
| excite | 兴奋胶囊 | capsule · excite |

- 持久化:$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 小剧场(透明背景,官网导出管线直出):

| 状态 | 触发 | 小剧场 |
| 执行中 | 会话 running | 思考转圈 → 彗星冲刺 → 思考 |
| 等你输入 | pendingInteraction | 瞪眼 → 警觉 → 通知弹跳 |
| 完成待读 | completed | 惊叹 → 通知 → 爆散庆祝 |
| 空闲 | 以上都不是 | 呼吸 → 眨眼 → 六边形变身 |
| 困倦 | 空闲超 2 分钟 | 沉睡 |

优先级:等你输入 > 执行中 > 完成待读 > 空闲。多会话任一命中即触发。

点击交互

点击界面上的任何黑球 → 随机切换 16 种表情之一(平静 / 专注 / 惊讶 / 兴奋 / 开心 / 大笑 / 生气 / 难过 / 害怕 / 怀疑 / 困惑 / 好奇 / 得意 / 羞怯 / 无趣 / 困倦),每个表情带原生 180 帧眨眼动画;下一次会话状态变化自动回归小剧场。设置页「表情」区可指定默认表情(空闲时的脸)。

安装

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

(npm 安装;也可 GitHub 源 dsh plugin --profile web add github:Yuuhann1999/dsh-bloub-mood)

重启 dsh web,刷新页面,在 设置 → 心情图标 挑造型、开桌面启动。

可配置项

| 配置 | 选项 | 默认 |
| 启用开关 | iOS 滑动开关,停用即完全恢复官方原样 | 启用 |
| 表情 | 16 种(默认表情;点击随机覆盖全池) | 平静 |
| 形状 | 圆形 / 卵石 / 圆角方 / 胶囊 / 三角 / 六边形 / 云朵 / 水滴 | 圆形 |
| 颜色 | 墨黑 / 棕 / 红 / 橙 / 琥珀 / 绿 / 青绿 / 蓝 / 紫 / 玫粉 / 灰 / 奶油 | 墨黑 |
| 主字标 | 侧边栏展开时的名字 | Yuuhann |
| 侧栏徽章 | 名字后的胶囊标签,留空隐藏 | 工作台 |
| 首页标题 | 输入框上方大标题,留空保留官方文案 | (空) |
| 首页徽章 | 标题旁胶囊标签,留空隐藏 | 预览版 |
| 桌面启动 | 开关(开 = 物化入口,关 = 移除) | 开 |
| 桌面图标 | 经典黑球 / 大笑鹅卵石 / 兴奋胶囊 | 经典黑球 |

心情配置存于 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

致谢

- bloub — 动画引擎与素材(jeremy-prt/bloub,MIT)
- dsh-web-attention-badge — 状态→favicon 先例
- dsh-dream-skin — 设置页注入模式参考

License

MIT
预览分享卡片长什么样 ↓Yuuhann1999/dsh-bloub-mood
分享 · DeepSeek Harness Hub
Yuuhann1999/dsh-bloub-mood

动态心情图标 · DeepSeek Harness 插件 — bloub 表情随会话状态切换 favicon 与…

这是你的仓库?认领条目

回到顶部