npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-plugin-emote-chat

v0.1.5

Published

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.

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。

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