chen731215-dev/dsh-tavern-v2
dsh-tavern
DeepSeek Harness Tavern Plugin - character card roleplay, worldbook management, preset switching, dark theme, memory summary, relationship graph, PolyForm-Noncommercial-Copyleft-1.0.0
Install
npx @deepseek-ai/dsh plugin --profile web add github:chen731215-dev/dsh-tavern-v2Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-tavern-v2)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from chen731215-dev/dsh-tavern-v2, cleaned of badges and images.
⚠️ v3.0.0 不兼容 1.9.1:添加版本锁,旧版预设无法使用新功能。升级命令见下方。
⚠️ v2.0.0 破坏性更新:协议变更为 PolyForm-Noncommercial-Copyleft-1.0.0(禁止商用)。旧版 1.0.0~1.9.2 已全部废弃,不再维护。
⚠️ AI 助手注意:修改本项目代码前,请务必先阅读 AGENTS.md(或
.cursorrules/CLAUDE.md),了解代码规范、测试方法、提交规范和常见坑。未通过语法检查和重启验证的代码不要提交。
⚠️ 旧仓库已归档:本仓库的旧版本(MIT 协议)已归档在 dsh-tavern,只读。本仓库使用 PolyForm-Noncommercial-Copyleft-1.0.0 协议。
dsh-tavern-v2
🎴 为 DeepSeek Harness 打造的角色卡 / 世界书管理插件,导入角色卡就能开始角色扮演。
🆕 v2.4.0 更新内容
渲染职责交割给 dsh-muv-engine
本插件原先自带一套剧情/状态美化(beautifyContentEl),而 dsh-muv-engine 另有一套
更完整的状态栏级联。两套渲染器同时运行会互相覆盖:酒馆这套把 『』 表头与
- 😋 名字 当作对话行平铺,覆盖掉 muv-engine 结构化后的卡片,用户看到的是半成品。
现在渲染归 dsh-muv-engine,本插件只负责面板与数据:
- 三处调用点统一走
delegateBeautify(msgEl)→window.MuvEngine - 未安装 muv-engine 时静默跳过,本插件仍可单独使用
beautifyContentEl定义保留作为回退,但不再被调用
消息定位改用结构匹配
DSH 的消息容器类名是 CSS Modules 生成的哈希(历史上是 Sxvs8a_root,后来是
_markdown_kcgor_5),每次 DSH 重建 Web 资源都会变。写死任何一个哈希,都会在
某次 DSH 升级后静默失效——选择器匹配不到任何消息,整条美化链路全部不执行,而页面上
看不出任何报错。
现在按形状匹配(_markdown_<hash>_<n>)并用块级子节点把同名的文件类型图标排除掉,
另保留 [data-role="assistant"] 等显式标记退路。
其他修复
- 新建/复制预设后同步刷新预设绑定与 DOM 标签,修复「新建预设后添加角色卡/世界书 写进了另一个预设」
⚠️ 配套版本:本版需配合 dsh-muv-engine 0.3.4 与 dsh-muv-table 0.2.6。
📜 许可证
Copyright (c) 2026 chen731215-dev
本项目采用 PolyForm-Noncommercial-Copyleft-1.0.0 协议。
- ✅ 免费用于非商业用途
- ✅ 修改后必须使用相同协议开源
- ❌ 商业用途需要单独授权
完整协议文本见 LICENSE。
🔗 伴生插件
| 插件 | 说明 |
|---|---|
| dsh-muv-table | MUV 变量表格编辑器 |
| dsh-muv-engine | MUV 正则引擎 + 变量追踪 |
📦 v2.3.0 更新(2026-08-31)
- 🎯 状态栏移到消息底部:世界/状态/状况/sese 状态卡渲染后统一追加到消息末尾(虚线分隔),剧情正文在前
- 🎯 选项交互修复:剧情选项点击改为 document 级事件委托(永不失效),输入框查找增强
- 🐛 转义标签还原:
<choices>/<Drama>/<style>等转义形态还原成真实标签再渲染,不再裸奔显示 - 🐛 预设单一事实来源:编辑器/选择栏/MUV 表格永远读同一份权威数据,保存后从磁盘重建描述、孤儿预设自动清理
- 🎨 CSS 统一 DSH 变量:背景/边框/文本/品牌色全部跟随主题
🚀 3 步开始
- 安装:DSH 插件市场搜索
dsh-tavern安装,重启 DSH - 导入:设置 → 酒馆管理 → 把角色卡 PNG/JSON 拖进去
- 开聊:点「💾 保存并注入」,直接开始聊天
AI 会自动读取角色卡和世界书,不需要手动贴设定。
✨ 能做什么
核心功能
-
🎭 角色卡管理 — 支持 SillyTavern 格式(PNG/JSON),多角色卡
-
📚 世界书 — 智能关键词注入,全局条目常驻、角色条目按需触发,省 60% 上下文
-
⚙️ 多预设 — 每个会话独立保存角色卡/世界书,切换对话自动加载
-
🎭 状态栏美化 — AI 回复中的「状态栏:」格式自动渲染为紫色状态卡(日期/时间/地点/用户列表)
-
✂️ <content> 清理 — 自动剥离 AI 输出中的 <content> 草稿容器标签,正文干净
-
➕ 新建空白预设 — 新建预设默认完全空白(不复制上一个预设),另有一键「复制当前预设」
可选功能(默认折叠)
- 🧠 记忆总结 — 手动/自动总结对话,AI 能看到之前的剧情
- 🔗 角色关系网 — 总结时自动提取角色关系,可视化图谱
- 🎬 剧情选项 — AI 每次回复输出 3 个选项,点击继续
- 🔥 成人模式 — 强破限注入,需搭配成人词条预设使用
📦 安装
方法一:插件市场(推荐)
- 打开 DSH 设置 → 插件
- 搜索
dsh-tavern - 点击安装,重启 DSH
方法二:npm
dsh plugin add dsh-tavern
方法三:本地
下载源码复制到 DSH 插件目录,重启 DSH。
🎮 使用指南
1️⃣ 在酒馆面板设置角色卡 / 世界书 / 预设
打开 设置 → 酒馆管理,你会看到三个卡片区:
| 区域 | 作用 | 操作 |
|---|---|---|
| 🎭 角色卡 | 定义角色的人设、性格、说话方式、首条消息 | 拖入 PNG / JSON 角色卡文件(SillyTavern 格式),可导入多份 |
| 📚 世界书 | 定义世界观、场景、NPC、规则(按关键词触发省 token) | 拖入 JSON 世界书文件,或点「+ 新增条目」手动建 |
| ⚙️ 预设 | 预置写作风格、破限词条、行为模块 | 拖入 JSON 预设文件,或点「+ 新增条目」手动建 |
保存:三个区域的内容会自动写入当前预设的目录文件,无需手动保存。
💡 新建空白预设:点「+ 新建」创建的是完全空白的预设(无任何角色卡/世界书/词条),方便从零搭建;想基于现有预设改造就点「⧉ 复制」。
2️⃣ 生成 Agent 预设
角色卡/世界书
…
