给 dsh 回复在内容最匹配的位置添加标准 emoji,并避免与颜文字出现在同一句。
安装
# npm 包(预构建)
dsh plugin --profile web add tdsh-emoji
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:TianJie52009/Tdsh-emoji
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
给 DeepSeek Harness(dsh)的回复自动添加标准 emoji,并且能和 dsh-kaomoji 共存。
🤖 纯 Codex 生成:本仓库的代码与文档均由 OpenAI Codex 自动生成,未经人工逐行审查。使用前请自行阅读并测试。
Tdsh-emoji 在模型生成前向系统提示词注入一段「情绪 → emoji」白名单规则,让模型把标准 Unicode 表情放在最匹配的内容旁边(可以落在句子中间),而不是固定追加到句尾。词库只收 iOS / Windows / Android 普遍内置的表情,不用肤色修饰、组合序列和新版本 emoji,老设备也能正常显示。
特性
- 贴合内容:emoji 放在最匹配的词、短语或句子旁边(可在句中,
inline默认),或统一放回复结尾(end)。 - 单条上限 10 个:
maxPerTurn范围 1–10,默认 3;frequent模式下会按数量分散到不同句子。 - 与 dsh-kaomoji 共存:两个插件都是“贴合句子”的插法,所以本插件额外规定 emoji 与颜文字不得出现在同一句/同一行,模型会把它们分到不同句子;两张设置卡片同在「设置 → 通用设置」且相邻排列。
- 可视化配置卡片:模式(关闭 / 智能 / 高频)、放置位置、每条上限、附加提示词,保存即生效,无需重启。
- 共用官方通信:Web 与桌面端通过 Harness 的
remote.settings编辑配置;远程访问沿用 Host 的认证和信任设置。 - 原生设置接口:使用 Harness 的
systemPrompt、settings、官方 Config schema 与 Node 标准库,不依赖插件自己的webServer路由。
工作原理
- 启动时注册系统提示词段
tdsh-emoji:guidance(order177,dsh-kaomoji 是176)。 - 每次组装提示词时注入:模式与位置规则、每条上限、emoji 白名单、以及“不得与颜文字同句”的共存规则。
- 设置卡片通过 Harness 官方
remote.settings读写当前 profile 的原生配置;Host 的动态 Config 更新后,下一次回复生效,旧 JSON 首次升级时自动导入并保留。
安装
cd "$env:USERPROFILE\.dsh\profiles\web"
# npm(推荐)
dsh plugin --profile web add tdsh-emoji
# 或 GitHub 直装
dsh plugin --profile web add github:TianJie52009/Tdsh-emoji
装完重启 Host 并刷新客户端,在 Web 或桌面端的「设置 → 通用设置」中会看到「Emoji(tdsh-emoji)」卡片,就排在「颜文字(dsh-kaomoji)」旁边。
配置
默认 mode: auto、placement: inline、maxPerTurn: 3。也可以在 profile 的 cordis.patch.yml 里覆盖部署默认值:
- id: tdsh-emoji
config:
mode: frequent # off | auto | frequent
placement: inline # inline | end
maxPerTurn: 5 # 1-10
customPrompt: "正式场景克制一点,优先用「鼓励 / 感谢」类 emoji"
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
mode |
'off' | 'auto' | 'frequent' |
'auto' |
off 关闭;auto 对话式回复基本都会带;frequent 每条对话回复都带(纯代码/正式交付除外) |
placement |
'inline' | 'end' |
'inline' |
贴合内容(放在最匹配的位置,可在句中),或回复结尾 |
maxPerTurn |
number(1–10) |
3 |
单条回复 emoji 上限;frequent 会按数量分散到不同句子 |
customPrompt |
string |
'' |
附加风格/场景说明,不能改变模式、白名单或上限 |
settingsFile |
string |
''(自动查找旧文件) |
(进阶)旧 JSON 配置的导入路径;以后保存由 Harness 原生配置负责 |
旧配置自动迁移
首次加载后,从旧 tdsh-emoji.json(schemaVersion 1)导入到当前 profile 的 Harness 原生配置;新配置里已有的用户字段优先,旧值只补缺失项。
- 优先读取当前 Harness 数据目录,兼容旧的
DSH_HOME/.dsh/嵌套路径。 - 原来的
settingsFile自定义路径继续作为导入源;以后保存使用 Harness 配置。 - 原 JSON 保留不删;写入成功后同一笔提交保存
migrationVersion: 1,升级或重启不会重复覆盖。 - 恢复默认使用 Harness 的继承配置,并保留迁移标记,防止旧值回来。
- 文件损坏、无写权限或冲突会记录警告,不标记成功;修复后重启可重试。
- 迁移按 profile 进行;换电脑或更换整个数据目录时,需把原配置文件或 profile 一起带过去。
与 dsh-kaomoji 共存
| 插件 | 插入内容 | 位置 | 冲突处理 |
|---|---|---|---|
| dsh-kaomoji | 日式颜文字 (´∀`) |
贴合情绪的句子之后 | 互不干扰:emoji 一侧明确禁止与颜文字同句/同行 |
| Tdsh-emoji | 标准 emoji 😊 | 贴合内容(可在句中) | Never place an emoji in the same sentence or line as a kaomoji |
两张设置卡片都在「设置 → 通用设置」(order 30 / 31),可以挨着调。
兼容性
仅支持 Harness 0.2.0-rc.2 ~ 0.2.1-rc.3 已发布的 9 个版本(含 alpha.1–alpha.5、rc.1–rc.3)。新旧范围外版本不在本次支持承诺内;清单使用精确版本集合,避免预发布 semver 范围漏选。
界面通过官方 remote.settings 编辑 Host 配置;插件不注册 HTTP 路由,不依赖 webServer,也不把配置存在浏览器。Web 与桌面复用 Harness 自己的通信载体和认证。
详见 兼容验证记录;后续 Harness 版本另行验证。
发布到 npm(维护者)
仓库根目录有一键发布脚本 publish.cmd(双击,或在终端里执行):
.\publish.cmd # 用 package.json 里的当前版本号直接发布
.\publish.cmd patch # 先 npm version patch(minor / major 同理),再发布
脚本依次做四件事:npm test → 检查 npm 登录(未登录会提示先执行
npm login --registry https://registry.npmjs.org)→ 可选地 bump 版本号 →
npm publish --registry https://registry.npmjs.org(prepack 会再跑一遍测试)。
发布完成后记得把版本号改动 commit + push 回 GitHub。
开发
npm ci --legacy-peer-deps
npm test # node:test 单测(提示词规则 + 原生设置迁移 + client 加载)
npm run test:compat # 逐版本隔离验证官方运行时
npm pack # 验证发布内容
Tdsh-emoji/
├── lib/
│ ├── index.js # Host:config、规则生成、提示词段、原生设置与迁移
│ ├── client.js # Web:设置 → 通用设置 卡片
│ └── index.d.ts
├── data/catalog.json # 情绪 -> emoji 白名单
├── test/
├── cordis.patch.yml
├── publish.cmd # 一键发布到 npm
├── package.json
├── README.md / README.en.md
└── CHANGELOG.md
dsh-market 新版本同步
仓库已经收录,新版本由市场目录的定时任务重新抓取 npm 元数据,不需要重复提交插件条目。
维护者本地交接文档与 market 同步脚本位于两个项目共同的父目录:HANDOFF-Tdsh-emoji.md、sync-market-Tdsh-emoji.cmd,不随插件分发。脚本默认只读检查,显式加 --request-refresh 才会在满 24 小时且目录仍旧时请求上游重抓;需要 GH_TOKEN 或 GITHUB_TOKEN。
License
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 5347
DSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
Alterssss/dsh-bili-whale★ 862
一条按自己作息过日子的 B 站插件:宿主里每 60 秒一次心跳,在设定的作息窗口里随机挑一个时刻叫醒专用会话(今天不想看是按概率跳过),再交给自带的 38 个子命令——信息流、字幕、弹幕、评论、ffmpeg 抽帧、两本日记。每天最多发 N 条评论/动态并 @ 主人(默认 3,按配额账本计数,撞到限流或验证码就停手)。同时轮询评论回复、私信和直播间弹幕;除主人以外的回复先入队,等主人在设置页批准。设置 → 养鱼 写 ~/.dsh/bili-whale.config.json;cookie 单独在 ~/.bili-ai/credentials.json,只写不回显。HTTP 路由只认回环地址并过 DSH 信任栅栏。抽帧需要 Node 18+ 与 ffmpeg。
Nagi-ovo/dsh-ads★ 707
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
yyh-001/dsh-meme★ 488
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
vlln/whale-girl★ 400
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
a86582751/dsh-nexttavern★ 218
NextTavern 是面向 DeepSeek Harness 0.1.7-rc.2 Web 的长篇角色扮演插件,支持角色卡导入与创作、世界线、世界书、分层长期记忆、关键词/语义/混合检索、角色 Agent,以及角色卡或小说导出;支持 SillyTavern 角色卡导入,v0.2.9 修复分发与安装问题。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。