在「Deep diving...」状态提示前,放一只动态小伙伴——GrokBot 风格动画头像,状态文字还会同步打字机变换。
安装
# npm 包(预构建)
dsh plugin --profile web add @dsh-plugin/dsh-thought-buddy
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:dsh-plugins/dsh-thought-buddy
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-thought-buddy
DeepSeek Harness Web 插件:在「Deep diving...」状态提示前,放一只动态小伙伴——GrokBot 风格动画头像,状态文字还会同步打字机变换。
English | 简体中文
dsh-thought-buddy 是 DeepSeek Harness Web GUI 插件,配置由宿主按 profile 保存。模型工作时,那行 Deep diving... 状态条前多了一只 Grok 风格的小机器人头像:眨眼、弹簧形变换表情、视线游移、整体轻摆——全部由 纯 SVG + requestAnimationFrame 实时绘制,动画无需额外运行库。每次头像切换表情,状态文字还会以打字机效果变换(先逐字符删除,再逐字打出下一个词)。
头像动画移植自 nasawz/GrokBot(纯 Flutter CustomPaint 控件):25 种表情 × 2 眼 × 48 点眼环、18 种身体形态、39 种状态的表情池与眨眼节奏全部保留。

功能
| 功能 | 说明 |
|---|---|
| GrokBot 头像 | thinking 状态表情池 [8,16,14,17,5] 自动轮换,弹簧形变表情过渡、320ms 眨眼(随机 3.5–7s 间隔)、球面转头投影 + 视线游移、整体轻摆(1.7s 呼吸动画) |
| 表情联动打字机 | 每次头像切换表情时,状态文字逐字删除,短暂停顿后从 55 个候选词中打出下一个词,例如 Reticulating... |
| 独立用时 | 深灰色用时显示在打字机右侧,沿用宿主的计时。打字时用时的横向位置固定,整行随对话滚动 |
| Emoji 模式 | 备用模式:在 emoji 列表间轮播(默认 🤿 🫧 🌊 🐙 🔍 🧠 💭),每次切换带弹跳入场 |
| 主题适配 | 跟随 prefers-color-scheme:亮色 #5b7fe5/#fffdf7,暗色 #6689ea/#181a15(与 DSH 主题一致) |
| 减少动效 | prefers-reduced-motion: reduce 时关闭摆动与转头,仅保留表情/眨眼 |
| 自动清理 | 状态条消失时动画自停;插入节点在 React 重渲染下存活,万一被清掉,下一次 mutation 自动补回 |
安装
复制下面这段指令,粘贴给你的 DSH Agent(本 Web GUI 里的助手)。Agent 会替你完成安装与验证——无需手动操作 npm 或编辑 profile:
把 @dsh-plugin/dsh-thought-buddy 插件安装到我指定的 profile(如果我没说,先问我)。npm 包名是 `@dsh-plugin/dsh-thought-buddy`;可以使用 GitHub 源 `github:dsh-plugins/dsh-thought-buddy`,本地开发用 `file:<路径>` / `link:<路径>`。
步骤:
1. 添加插件依赖:`dsh plugin --profile <PROFILE> add @dsh-plugin/dsh-thought-buddy`(或我 profile 对应的插件管理命令)。
2. 验证 `node_modules/@dsh-plugin/dsh-thought-buddy` 能解析且包含构建好的 `lib/` 目录(至少 `lib/index.js` 与 `lib/client.js`)。需要 dsh-loader `^2.0.0-dev.42783642741`;构建 TypeScript 源码需要 `typescript` devDependency(先 `npm ci` / `npm install` 一次)。若产物缺失,在插件目录运行 `npm run build` 后重新添加。
3. 确认 profile 清单的 `dsh.profile.bundles` 包含 `@dsh-plugin/dsh-thought-buddy` —— bundle patch(`cordis.patch.yml`)会在启动时自动插入插件行。
4. 不要启动 profile —— 只安装与验证,然后汇报你改了什么。
随后重启 dsh web,刷新页面后给模型发一条消息,「Deep diving...」前即出现小伙伴。运行期选项由 loader 统一配置表单管理,保存后即时生效。
从本地检出安装(link:)
本地开发时,插件以 link: 依赖接入 web profile(示例:C:\Users\Administrator\.dsh\profiles\web):
// package.json(profile)
"dependencies": { "@dsh-plugin/dsh-thought-buddy": "link:C:/path/to/dsh-thought-buddy" },
"dsh": { "profile": { "bundles": [ /* ... */, "@dsh-plugin/dsh-thought-buddy" ] } }
- 构建产物:
npm run build(编译 TypeScript)生成lib/client.js+lib/index.js - profile 内
pnpm install(离线亦可) - 重启
dsh web—— 客户端模块清单在启动时组合,新 bundle 需要重启生效 - 刷新页面后,给模型发一条消息
2.0.0 配置与迁移
需要 Node.js 24.9+ 和 dsh-loader ^2.0.0-dev.42783642741。兼容 loader 明确支持的 0.1.5、0.1.6、0.1.7、0.2.0、0.2.1、0.2.2 系列及其预发布版。
配置由 loader 的 config-api 管理,保存到 <profile>/config/dsh-thought-buddy/config.json。在 0.1.6-alpha.2 之前打开「设置 → 插件配置」,之后在插件详情页配置。卡片默认折叠;保存后立即更新动画,无需刷新。恢复默认值只改草稿,保存后生效。
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
启用小伙伴动画。关闭后使用 DSH 原生图标 |
replaceText |
true |
将「深度求索中」替换为轮换词,并单独显示深灰色用时。关闭后恢复原生状态文案与计时样式 |
typewriter |
true |
为换词添加打字机效果。关闭后直接切换整词。只有启用文案替换时可编辑 |
mode |
avatar |
avatar 动态头像或 emoji 表情轮播 |
size |
18 |
尺寸,8–64 px |
emojis |
🤿 🫧 🌊 🐙 🔍 🧠 💭 |
表情数组,至少一项 |
三个开关默认开启。升级已有 2.x 配置时,缺失的 replaceText 沿用原有 enabled,因此此前关闭插件的配置会继续显示原生状态。设置页的联动禁用需要支持 disabledWhen 的 dsh-loader 构建。
1.x 的浏览器 localStorage 不再读取,也不自动搬迁。请在新表单中重新设置;需要保留旧选项时手动复制。配置随当前 profile 隔离,卸载插件保留文件。插件卸载会取消配置订阅及动画;未完成的配置读取不会重新挂载。
开发与架构
npm ci
npm run gen # 上游 GrokBot 数据有变化时重新生成
npm run typecheck
npm run build
npm run verify
宿主 src/index.ts 通过 ctx.dshLoader.config.register 注册配置模板。客户端读取并订阅配置,通过 dshLoaderUi 挂载可见运行状态条,并在更新和卸载时清理动画、打字机和用时监听。
src/config.ts 保存可供浏览器导入的默认值和类型;src/config-template.ts 是宿主专用模板,浏览器产物不导入宿主模块。tsdown 把客户端 ESM 代码打包为 __ModuleLoader__.load 工厂;客户端声明依赖 dshLoaderUi 服务,包元数据声明依赖 loader 客户端模块。
test/verify.mjs 验证构建产物的 SVG、动画节奏、打字机、配置即时更新以及异步读取后卸载。默认几何数据和动画引擎保留原实现。
链接
- 仓库:https://github.com/dsh-plugins/dsh-thought-buddy
- npm:https://www.npmjs.com/package/@dsh-plugin/dsh-thought-buddy
License
BSD-3-Clause。眼环几何、身体形态与状态节奏数据源自 nasawz/GrokBot(BSD-3-Clause, Copyright (c) 2026 nasawz),已在 LICENSE 中署名。
链接
同类插件
elysia395/dsh-wallpaper-engine★ 6797
前置要求:DeepSeek Harness 0.1.5-rc.1+(DSH Desktop ≥ 2.0.7)且 dsh-better-sidebar ≥ 0.19.0,安装或更新本插件前请先更新两者。把本机 Wallpaper Engine 的 Video/Web 壁纸实时播放到聊天界面后方,Scene 壁纸由内置渲染器输出完整场景帧,支持内容分级/类型过滤、自定义壁纸上传与 iOS 液态玻璃设置窗口。
Small-tailqwq/dsh-deep-whale#maid-atelier★ 3103
DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。
Nwflower/dsh-claude-style★ 596
为 DSH Web GUI 复刻 Claude Code Desktop 的视觉与交互——象牙白/暖黑双画布、陶烬橙强调色、三字体排版、权限分段控件与品牌切换,以 CSS 覆盖与客户端 DOM override 实现。
d-dev0101/open-sea-skin★ 393
实时 WebGPU 海洋皮肤,可快捷调节波浪、日光、玻璃不透明度与自动昼夜循环。
kingOfSoySauce/dsh-liang-skin★ 387
自适应推理等级滑块皮肤,将当前模型可用档位映射到 0–30 视觉强度,并同步人物、背景和界面配色。
RevolutionLA/dsh-dream-skin★ 301
一键换肤插件:8 套原创主题、背景壁纸(透明度/模糊)、强调色、主题包导入/导出+分享链接、收藏与随机,纯原生 token 系统接入。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。