Skip to content

dsh-plugin-emote-chat

Verified

dsh-plugin-emote-chat · v0.1.5 · MIT · Web UI

Sticker and emoji reactions for the DeepSeek Harness Web/Desktop chat: a composer sticker picker, agent stickers that render as images while the transcript keeps the pack tag, emoji reactions under the user bubble, and an emoji-rain effect.

Install

dsh plugin add dsh-plugin-emote-chat

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme


description: "DeepSeek Harness 聊天的贴纸与 emoji 回应:输入框贴纸选择器、Agent 可发送贴纸、消息下方的 emoji 回应气泡,以及 emoji 雨效果。"

dsh-plugin-emote-chat

English | 中文

为 DeepSeek Harness 聊天(Web 与 Desktop)提供贴纸与 emoji 回应。

功能

贴纸

  • 输入框左下角的贴纸按钮。 左侧滚动选择目录,右侧选择贴纸;选中的贴纸插入草稿,不会自动发送。
  • 你发的贴纸会渲染成图片,图片在你的那一侧,消息文字在图片下方。
  • Agent 也能发贴纸。 它可以按需查看可用表情包和贴纸,再选择一张用于回复;图片同样会显示出来。
  • 会话记录里保留的是简短标记 [[sticker:pack/name]] 而不是图片数据,因此纯文本导出依然可读, 也不会有图片进入模型上下文。
  • 支持 PNG、JPEG、GIF(含动图)、WebP、AVIF、BMP、SVG。

emoji 回应

  • Agent 用单个 emoji 回应你的消息。 回应显示为你消息气泡内的小胶囊(Telegram 风格), 不进入回复正文,也不进入聊天历史,因此不消耗上下文。
  • 每条回应固定在触发当前回合的人类消息上。 执行期间追加的消息不会改变回应目标。
  • 重启后回应仍在,因为它们保存在本地小文件里。
  • 历史记录里的回应不会消失。 向上滚动会话(包括滚动到曾被收起的部分)时, 每条消息会连同它的回应一起回来。
  • emoji 雨(可选)。 开启后,每条新回应会以 emoji 雨的形式飘落整个界面。

双语

所有文案跟随 Harness 的界面语言(设置 → 通用 → 语言)。

安装

Desktop

从 Releases 下载 .tgz 插件安装包并解压, 在 Desktop 的插件管理界面安装解压后包含 package.json 的 package 目录。 如果尚无 Release,可以下载并解压 源码压缩包, 安装其根目录。两种方式均包含已构建的客户端。 Desktop 0.2.0-rc.2 的专用 profile 由应用管理。

Web

需要可用的 dsh CLI 和 pnpm(npm install -g pnpm)。下载并解压上面的安装包或源码压缩包,再安装其目录:

npx @deepseek-ai/dsh plugin --profile web add link:/你的绝对路径/插件目录 -w

安装后重启 dsh 并刷新页面。

npm

使用以下命令安装已发布的 npm 包:

npx @deepseek-ai/dsh plugin --profile web add dsh-plugin-emote-chat -w

安装遇到问题时,可 提交 Issue。

卸载 Web 插件
npx @deepseek-ai/dsh plugin --profile web remove dsh-plugin-emote-chat -w

卸载后重启 dsh 并刷新页面。

配置

全部在 设置 → 贴纸互动 里:

设置项 作用
启用贴纸/表情包回复 打开输入框的贴纸按钮,并允许 Agent 发送贴纸。
表情包/贴纸读取路径 每行一个目录。一个目录就是一个表情包,目录名就是包名。 仅在贴纸开关打开时显示。
启用 emoji 回复 允许 Agent 用单个 emoji 回应你的消息。
启用 emoji 雨 把每条新回应画成 emoji 雨。仅在 emoji 回复打开时显示。

表情包路径

把路径指向一个或多个目录:

D:\stickers\cats          →  包 "cats"        cats/happy.png   →  [[sticker:cats/happy]]
D:\stickers\reactions     →  包 "reactions"   reactions/ok.gif →  [[sticker:reactions/ok]]
  • 子目录会成为子包,所以 cats/happy/ok.png 对应 [[sticker:cats/happy/ok]]。
  • ~ 会展开为你的用户目录。
  • 支持格式:.png .jpg .jpeg .gif .webp .avif .bmp .svg。
  • SVG 必须声明尺寸(width/height 或 viewBox),否则渲染可能不符合预期。
  • 超过 12 MiB 的文件和超过四层的目录会被跳过。

回应存储

回应保存在一个本地小文件里,所以重启后仍在原位:

$DSH_HOME/storages/emote-chat-reactions.json

上限 500 条(约 60 KB),超出后最旧的自动丢弃 —— 不需要你判断哪条已失效。 设置页的 清空全部回应 可一次全部删除;你的聊天消息不会受到任何影响。

常见问题

现象 排查方向
dsh: command not found 你用的是 npx 方式 —— 在命令前加 npx @deepseek-ai/dsh。
pnpm was not found(退出码 127) 安装它:npm install -g pnpm。
ERR_PNPM_ADDING_TO_ROOT 漏了 -w 参数。
装好了但界面没变化 重启 dsh 并刷新页面 —— 插件包不会热重载。
找不到贴纸按钮 启用贴纸/表情包回复 没打开,或页面版本早于安装时间。
选择器显示「还没有可用表情包」 表情包/贴纸读取路径 为空、目录不存在,或目录里没有受支持的图片。
某行路径标红 该目录不存在,或者它是一个文件而不是目录。
Agent 从不发贴纸 需要先配置好可读取的表情包目录,设置保存后才生效。
Agent 从不回应 emoji 确认 启用 emoji 回复 已打开,并重启 dsh 以加载插件。
贴纸显示成了原始文本 该贴纸不在目录里,或页面版本早于安装时间。
较早的消息里看不到贴纸 那部分会话还没加载出来。滚到那条消息,图片会随消息一起回来。
较早的消息里看不到 emoji 回应 同样是会话未加载 —— 长会话界面上只保留已加载的部分。滚到那条消息,回应就出现了。
没有 emoji 雨 启用 emoji 雨 需要先打开 启用 emoji 回复。打开页面前发生的回应只显示为气泡,不播雨。
重启后回应不见了 检查 $DSH_HOME/storages/ 是否可写;没有该文件时,回应只在当前进程内有效。

参考与致谢

本插件的贴纸交互设计参考了以下项目:

  • yyh-001/dsh-meme:在会话中用文本表示贴纸,并在聊天界面将其渲染为图片的思路。
  • william-jin-cmu/dsh-stickers:用户与 Agent 共用素材目录的贴纸交互,以及引导 Agent 主动使用贴纸的设计。

感谢这些项目的作者公开分享设计与实现。

许可证

MIT