
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
DeepSeek Harness 表情包插件:输入框一键发图(图库/情绪多选筛选、悬浮大图预览)、多图库开关、情绪与关键词搜图、AI 学图,图库可从市场一键安装或导入/导出 ZIP。
表情包插件 dsh-meme — 找得到、发得出、学得会
中文 · English
宣传页:yyh-001.github.io/dsh-meme(表情包合集可预览;仓库加 topic dsh-meme-pack + previews/ 即收录)
图库下载:yyh-001/dsh-meme-packs(下载 ZIP 后可在设置页直接导入)
dsh-meme(原 dsh-expression)是 DeepSeek Harness 的表情包插件——找得到、发得出、学得会:
[表情: 描述],无需图片输入能力learn_meme 收录最近一张用户附件(不必填附件 id),自动识别分类/描述提 issue:设置页面板底部有「反馈建议 / 提 issue」,点开会直接打开仓库的「反馈 / Bug」表单,并自动填好插件版本与运行环境。也可以自己到 Issues 选模板。
已发布到 npm(dsh-meme),两种装法:
① 客户端里点着装(推荐)
打开 dsh → 左侧「插件」→ 右上「添加插件」→ 输入 dsh-meme → 安装。包名就是 npm 上的包名,一条命令都不用敲;「安装源」可以选官方的中国大陆镜像源。同一个入口也接受 GitHub 仓库地址或本地目录路径。装好后插件页里能随时开关,用不惯一键卸载。
② 命令行
一行装进任意 DSH profile(如 ~/.dsh/profiles/web/):
dsh plugin --profile web add dsh-meme
# 等价于:
pnpm add dsh-meme
旧包名 dsh-expression 已弃用,请改用 dsh-meme。插件内部 id 仍为 dsh-expression,已有安装不受影响。
或从 GitHub / 本地直接装(客户端「添加插件」里同样可以直接填这两种地址):
pnpm add github:yyh-001/dsh-meme # 或
pnpm add file:/path/to/dsh-meme
注意:pnpm 有「新包安全期」(默认 24h),刚发布的版本会被静默回落到旧版;急用可在
pnpm-workspace.yaml的minimumReleaseAgeExclude里加上dsh-meme。
运行时要求:Node ≥ 22.13.0(依赖内置
node:sqlite模块;22.5–22.12 需--experimental-sqlite标志,Node 20 不支持)。
内置一套图库:dafeiyu-001(大肥鱼,24 张),开箱即用,无需任何配置。「官方表情包 1 号」(official-001)已不再随插件分发,需要的话到设置页「发现」里一键安装(市场里有带 SHA-256 校验的 Release ZIP)。
设置页「图库」页:点卡片上的「编辑」切入该图库(管理图片用),点卡片右上角的开关决定模型能不能用这个图库发图(可以同时开多个)。插件会扫描内置 memes/* 以及「扫描目录」(默认 ~/.dsh/meme-packs)下带 index.db 的子文件夹。导入 ZIP 也会放进扫描目录并立刻切过去。设置存在 ~/.dsh/dsh-expression.json,升级插件不丢。
用户: 发个无语的表情包
模型: send_meme tag=sad → 随机几张 caption → 把 [表情: …] 贴进回复
前端: 按描述配图,对话里看起来就是表情
输入框左侧点 😊(微信同款笑脸)直接选图一键发出,无需让模型代劳。
| 工具 | 作用 |
|---|---|
send_meme | 取候选,两种搜法:tag 情绪随机抽、query 关键词精确搜(caption/关键词/图名,可多词);范围都是所有打开开关的图库。Web 模式把 [表情: 描述] 写进回复,前端配图 |
learn_meme | 学图:用户说「入库」即可(默认最近一张用户附件);也可传 attachmentId / imageUrl |
界面显示表情图片,模型只读写文字 token——不触发 dsh 的图片准入检查:
[表情: 描述](不要带网址)“” / "")会折叠后再匹配[表情: ...] 标记learn_meme设置页「表情包」面板三个一级标签页(没有二级标签):
send_meme 的候选从所有打开的图库里抽;一个都没开时模型会被告知去设置页打开)。安装/导入/新建图库会自动切过去并打开它的开关download_count,同一图库的多版本相加,缓存 30 分钟;清单热链的包没有 Release 可数就不显示),默认按下载量从多到少排列(没有下载量的排在最后,同分保持目录原顺序)。点「安装」下载 Release ZIP、校验 SHA-256 并自动切换,下载期间卡片上有进度条(上游给了 content-length 显示百分比,没给则显示滚动条纹 + 已下载字节);已安装的条目不显示按钮(更新在图库页)
图库:已安装图库卡片列表,点卡片进它的表情包页
发现:图库市场(点卡片预览图片、按下载量排序、安装带进度条)
设置:扫描目录与陪伴提示词开关
输入框 😊 一键发表情包:点开面板 → 搜索框 + 筛选开关(默认收起,展开是图库、情绪两排多选 chip,都不选 = 全部;有选中时开关上显示选了几个,右侧实时显示「共 N 张」;情绪只列当前图库范围内真实存在的,带张数)→ 缩略图悬停出大图预览(144px 大图 + 情绪 + 描述 + 文件名,贴边时自动翻到另一侧)→ 点一张直接发出。面板一行 5 格、高度固定在半屏左右(46vh,底边贴着输入框、上缘不越宿主顶栏),图多时网格内部滚动(一次最多画 240 格,用搜索/筛选缩小范围)。
两条路:发给朋友,或提交到公共的 dsh-meme-packs 图库市场。
新建并投稿到市场
设置页 → 图库 → 顶部 新建图包库,填写名称、ID 和简介,创建后自动切换到空图库(并打开它的开关)。添加图片后点当前图库卡片上的 投稿 → 导出 ZIP 并打开投稿页。
插件会下载当前图库 ZIP 并打开预填名称、简介和图片数量的 GitHub 投稿页。登录 GitHub 后,将 ZIP 拖入“图库 ZIP”一栏,补充图片来源与许可,再手动提交。审核通过后收录到市场。无需配置 Token,也不需要付费上传服务。若浏览器拦截新页面,可点击提示下方的“打开 GitHub 投稿页”。导出完成不代表已经投稿或收录。
发给朋友
dsh-meme-<图库id>.zip请用插件导出的 ZIP。GitHub 仓库页上的「Download ZIP / 下载源码」是压缩过的,导入会失败。
导入/安装时会顺带做一次高频关键词清洗:某个关键词出现在图库里 ≥50% 的条目时(外部站点常把「角色大标签」写进每一条,搜它命中全库),它对检索没有信息量,会从 keywords 里剔掉;条目数 <8 的小图库不动手(那里的重复词往往是真关键词)。只改 keywords,图片和分类都不动。
挂到宣传页
index.db、manifest.json、memes/)previews/,放 6–12 张缩略图(jpg/png),宣传页靠它们做预览dsh-meme-pack可选:把插件导出的那个 ZIP 挂到 GitHub Release,别人就能直接下载再导入。也可以 git clone 之后,把仓库放进扫描目录(设置页「扫描目录」里改路径,或用「选择目录」浏览)。
设置页「发现」默认读取 dsh-meme-packs/catalog.json:点卡片可以预览图库里的图,点「安装」直接下载 GitHub Release ZIP、校验 SHA-256、安装并切换,不需要先手动下载。
settings.remoteDirUrl 或插件 patch 里的 config.remoteDirUrl| 能力 | 说明 |
|---|---|
| 按情绪抽图 | 六个情绪桶:happy / angry / sad / shy / confused / daily;随机抽 N 张 caption 给模型挑 |
| 按关键词搜图 | query 在 caption/关键词/图名里子串搜,可空格分隔多个词;全部命中的优先,同一档内随机(反复搜能换一批) |
| 自动学图 | learn_meme 默认收录最近一张用户附件,也可传 URL;识图需当前模型支持图片输入 |
| 文字 token 发图 | [表情: 描述] → 前端配图;只渲染对话气泡 |
| 输入框一键发图 | 会话输入框左侧 😊 按钮 → 悬浮面板选图(图库/情绪多选筛选 + 搜索 + 悬停大图预览)→ 一点即发 |
| 情绪主动发图 | 气氛对了就主动甩图;发完短接,让图自己说话 |
| 管理 API | 上传 / 编辑 / 删除 / 删除分类,全部在设置页完成,数据持久 |
| 图库切换 | 设置页「图库」页点卡片上的「编辑」切换并进入;扫描目录默认 ~/.dsh/meme-packs |
| 导出 / 导入 | 图库一键打包 ZIP 分享,导入别人的包自动切换(零依赖实现) |
| 图库市场 | 发现页读取 GitHub 目录,一键安装带 SHA-256 校验的 Release ZIP;图库页在有新版本时才显示「更新」 |
send_meme tag=sad limit=8 # 难过桶随机 8 张,挑一行 [表情: …] 贴进回复
send_meme tag=happy # 开心/卖萌
send_meme query="猫" # 关键词搜:caption/关键词/图名里带「猫」的(比抽情绪准)
send_meme query="生气 猫" # 多个词:全都命中的排前面;tag+query = 在该情绪里筛
learn_meme # 收录最近一张用户图(不必填 id)
learn_meme imageUrl="https://…" # 收录任意图片 URL
情绪字典:happy 开心(卖萌/可爱/喜欢)/ angry 生气 / sad 难过(无语/求饶)/ shy 害羞 / confused 困惑惊讶 / daily 日常(睡觉/上班/早上好)。只给 tag 就随机换一批;给 query 则按词搜,整词没命中会自动拆词重试,仍未命中再退回该情绪随机抽。
完整约定见 send_meme 工具描述。
[表情: 描述] 整段原样写进回复,不要加网址、不要改成 markdown 图片随插件内置的只有一套;另两套按需获取:
大肥鱼(id: dafeiyu-001,24 张鲸鱼娘 chibi)内置:happy 3 张、confused 2 张、sad 2 张、shy 2 张,以及 angry / baka / color / cpu / daily / fool / givemoney / like / meow / morning / see / sigh / sleep / surprised / work 各 1 张。
大肥鱼·学图(id: dafeiyu-learned,25 张,维护者 hZsFN)不内置:来自 PR #3 的「自动学图」表情,原来是并进 dafeiyu-001 的,现已拆成独立图库。
官方表情包1号(id: official-001,已改为市场安装、不再内置)来自 Astrbot mememanager 官方初始表情包:
上游仓库:anka-afk/astrbot-meme-pack-official-01(main 分支),维护者 anka-afk
构成:index.db(SQLite 索引,含每张 caption/关键词)+ manifest.json(分类说明 + 来源标注)+ memes/<tag>/ 图片 + previews/
⚠️ 上游未提供 LICENSE:这套图缺乏显式的再分发许可。随插件打包作为个人默认库使用没问题;如需公开对外分发,请保留 manifest.json 中的上游来源标注。
| 组件 | 说明 |
|---|---|
| dsh-meme | 本插件:MemesStore(情绪抽图)+ send_meme(发送)+ learn_meme(学图)+ 管理 API |
| dsh-companion | 人设 + Hermes 记忆 + 消息通道;提供发图服务 |
| 图库 | 内置 dafeiyu-001;official-001 和其它图库在市场「发现」页安装,也可导入分享包 |
dsh-meme/
index.js 插件入口:memeRoot 配置 + 管理 API + learn_meme/识图
memes.js MemesStore:SQLite 索引 + 情绪桶随机抽图 + 路径安全
client.js 前端:设置页面板(上传/编辑/删除) + 😊 悬浮窗 + [表情: 描述] 配图
cordis.patch.yml bundle patch(纯 insert,热挂载免重启)
locale/ 插件页展示元信息(en / zh)
memes/
dafeiyu-001/ 内置大肥鱼(24 张鲸鱼娘)
package.json name / inject / peer deps
README.md
README.en.md 英文
LICENSE
learn_meme 自动识图依赖当前默认模型支持图片输入(不支持时可手动指定 tag/caption);FAQs
DeepSeek Harness 表情包插件:输入框一键发图(图库/情绪多选筛选、悬浮大图预览)、多图库开关、情绪与关键词搜图、AI 学图,图库可从市场一键安装或导入/导出 ZIP。
The npm package dsh-meme receives a total of 0 weekly downloads. As such, dsh-meme popularity was classified as not popular.
We found that dsh-meme demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.