🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

便携酒馆 XCNXNXNX/dsh-portable-tavern

DeepSeek Harnessv0.4.1
XCNXNXNX31 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 的「便携酒馆」插件:RPG 式 SillyTavern V2/V3 角色卡生成器 + 酒馆角色扮演聊天。支持世界书、角色卡 JSON/PNG 导入导出、面板主题与本地音乐。独立插件…

43.7/100
综合分
24
GitHub 星标
197
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-portable-tavern
npm 源 · dsh-portable-tavern 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-portable-tavern @ 0.4.1
✓Node 引擎要求 ^22.18.0 || >=24.2.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:47:19

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 52 处,展示前 22 条)
  • 发起网络请求
    lib/index.js:119
    response = await fetch(url, {
  • 写入本地文件
    lib/index.js:2619
    mkdirSync(dirname(target), { recursive: true });
  • 写入本地文件
    lib/index.js:2620
    writeFileSync(target, entry.data);
  • 读取本地文件
    lib/index.js:2626
    for (const name2 of readdirSync(dir)) {
  • 读取本地文件
    lib/index.js:2629
    const stat = statSync(full);
  • 读取本地文件
    lib/index.js:2635
    out.push({ name: relative(root, full).split(sep).join("/"), data: readFileSync(full) });
  • 发起网络请求
    lib/index.js:2652
    response = await fetch(url, { redirect: "follow", headers: { "user-agent": "dsh-portable-tavern" } });
  • 读取本地文件
    lib/index.js:2678
    if (existsSync(url) && statSync(url).isDirectory()) {
  • 读取本地文件
    lib/index.js:2678
    if (existsSync(url) && statSync(url).isDirectory()) {
  • 读取本地文件
    lib/index.js:2722
    if (existsSync(dir)) {
  • 删除本地文件递归
    lib/index.js:2724
    rmSync(dir, { recursive: true, force: true });
  • 写入本地文件
    lib/index.js:2726
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/index.js:2764
    if (next !== text) writeFileSync(full, next);
  • 写入本地文件
    lib/index.js:2768
    for (const [file, body] of stubs) writeFileSync(join(dir, file), body);
  • 写入本地文件
    lib/index.js:2769
    writeFileSync(join(dir, ".tavern-source.json"), JSON.stringify({
  • 删除本地文件递归
    lib/index.js:2891
    rmSync(dir, { recursive: true, force: true });
  • 发起网络请求
    lib/client.js:143
    const response = await fetch(path, {
  • 发起网络请求
    lib/client.js:158
    const response = await fetch(TAVERN_API.models);
  • 发起网络请求
    lib/client.js:269
    const response = await fetch(TAVERN_API.extList);
  • 发起网络请求
    lib/client.js:274
    const response = await fetch(TAVERN_API.extCatalog);
  • 发起网络请求
    lib/client.js:6081
    target.fetch(finalUrl, { method: "GET", headers, signal: controller.signal, credentials: "same-origin", cache: opts.cache === false ? "no-store" : "de
  • 发起网络请求
    lib/client.js:6991
    const response = await fetch(url);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-client-ui-renderer
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

5 张 · 点击查看大图

功能亮点

  • 角色卡生成
  • 角色扮演聊天
  • 世界书支持
v0.4.12026-10-03
便携酒馆 v0.4.1 维护版本。 · 修复 IndexedDB 事务回滚时提前清理存档副本,以及角色草稿、模型选择等工作区内容未完整恢复的问题。 · 修复队友聊天遗漏当前遭遇、扩展 ZIP 上传被普通 4 MiB JSON 限制挡住、纯点号扩展 ID 可指向存储目录或父目录的问题。 · 为 DSH 0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2 补充精确兼容声明;更新官方 SDK 前端依赖及锁文件。 · Node.js 范围:^22.18.0 || >=24.2.0,使用 DSH Web Profile。Issue 中的历史三版及未测试的商城事务回滚保留为 unknown。 验证:TypeScript 检查、构建和 40 项回归测试通过(引擎内含 79 项断言);真实浏览器重载恢复队伍和工作区。实际 npm 发布包在 Windows / Edge、Node 22.18.0 与 24.18.0、三个官方 DSH 版本上全部通过安装、冷启动、认证路由、酒馆面板打开、卸载及完整配置恢复。没有请求付费模型。 安装或更新: dsh plugin --profile web add dsh-portable-tavern@0.4.1 npm v0.4.1 已发布为 latest。附件提供实际发布的 npm 包与验证证据。发布包原始 SHA-256:f8f1c630256286f1c4f08f7356879a375a7d7a076c403615595b04daeb8ba886。 Windows 发布包的运行文件使用 CRLF,规范化到 LF 后与验收源码完全一致;原始摘要、规范化摘要及发布包六组复测结果见附件和 兼容性记录。仓库已固定构建产物为 LF。 对应 DSH Store Issue #1071。商城历史许可证记录为 BSD-3-Clause,而那个固定 Commit 的实际 LICENSE 已是 MIT;当前 manifest 和 LICENSE 保持 MIT。商城恢复上架仍取决于自动复检及该历史记录的校正。 完整变更 · PR #5 维护协助:GPT-6.1-Sol(Codex),根据仓库作者明确授权执行修复、验证、合并及发布。
v0.4.02026-09-26
· 便携酒馆 v0.4.0 上一个发布的版本是 0.3.0,所以这是 0.4.0。 · 冒险模式长出了自己的系统 你可以先写好故事的几个关键节点,每个节点配一个由系统判定的触发条件——第几回合、上次判定落在哪一档、场上是什么遭遇、谁的血量过低、你的话里出现了什么词、连着赢了几把或输了几把。条件是否成立由纯代码判定,只有成立了,节点正文才会交到守秘人手上。故事前提可以自己写,也可以让 AI 起草;大纲同样。 · 角色之间是通的 角色卡可以直接进队,属性由角色卡推导;队伍成员也能导出成标准角色卡。每个人都有一条自己的对话线,冒险途中把队友拉到一边商量,TA 知道桌上正在发生什么,商量完一键把计划带回冒险窗口。 · 存储重做 原来所有保存路径都在静默吞错误,而数据主要是图片,存几支队伍就能撑爆 localStorage,之后改动会悄悄存不进去。现在大记录走 IndexedDB,失败会在界面上报出来,桌面上的队伍持续自动保存。音乐也会记住曲目和播放位置。 · SillyTavern 扩展 可以安装并运行真实的社区扩展,背后是一套兼容层:完整的 eventSource 语义、getContext() 镜像、迷你 jQuery、DOM 骨架。安装时会把伸进 SillyTavern 源码树的 import 改写成按需生成的桩模块,并优先转发宿主的真实实现。内置六套美化主题。 · 采样温度(issue #1) 自动 / 固定 / 不发送三档,并且会从上游 400 报错里读出"只允许某个温度"的约束按模型记住——KIMI K3 这类固定温度的模型不会再报错。 · 界面 README 里的效果图全部来自真实构建产物的离屏渲染,见 screenshots/。 --- Full Changelog:
v0.3.02026-08-20
· v0.3.0 — DeepSeek Harness rc.8 适配 · 修复生成空卡片 bug:推理型默认模型(deepseek-v4-pro + effort max)会把输出预算全花在思考上;结构化生成现在按模型能力钳制 effort(≤high),预算提升到 8192 maxTokens,失败重试自动关思考 · 输入校验:非法 spec 分组 / 非 V2/V3 角色卡返回 400 而非 500 · 工具参数 JSON 修复解析 · devDeps 升级到 @deepseek-ai/* ^0.1.0-rc.8 已在 dsh 0.1.0-rc.8 实测启动正常。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
便携酒馆 · dsh-portable-tavern 在 DeepSeek Harness 里开一间属于你自己的酒馆。 捏角色卡、和角色聊天、把喜欢的角色组队,想出门冒险的时候再开一局跑团。 装完就能用,角色和对话保存在你自己的浏览器里。 聊天 它能做什么 | 角色卡 | 七个模块可视化捏人,一键生成 SillyTavern V2/V3 角色卡;也能导入别人做好的 JSON 或 PNG 角色卡 | | 聊天 | 和角色一对一对话,也可以用你自己的 OpenAI 兼容接口;每个角色有独立的对话上下文 | | 冒险 | 跑团模式:你宣告行动,骰子和判定由系统算,故事由 AI 讲 | | 队伍 | 1–12 人组队,每个人有自己的形象、属性、提示词,甚至自己的模型接口 | | 插件 | 六套内置美化主题,还能装社区的酒馆扩展 | | 设置 | 模型接入、采样温度、外观、本地音乐 | 角色是互通的。 同一张角色卡,可以用来聊天,也可以直接拉进队伍陪你冒险;队伍成员反过来也能导出成一张标准角色卡。冒险途中随时能切到聊天窗找队友商量对策,再把商量好的计划带回冒险窗执行。
展开完整文档(README 剩余 1 节)
便携酒馆 · dsh-portable-tavern

在 DeepSeek Harness 里开一间属于你自己的酒馆。

捏角色卡、和角色聊天、把喜欢的角色组队,想出门冒险的时候再开一局跑团。
装完就能用,角色和对话保存在你自己的浏览器里。

聊天

它能做什么

| 角色卡 | 七个模块可视化捏人,一键生成 SillyTavern V2/V3 角色卡;也能导入别人做好的 JSON 或 PNG 角色卡 |
| 聊天 | 和角色一对一对话,也可以用你自己的 OpenAI 兼容接口;每个角色有独立的对话上下文 |
| 冒险 | 跑团模式:你宣告行动,骰子和判定由系统算,故事由 AI 讲 |
| 队伍 | 1–12 人组队,每个人有自己的形象、属性、提示词,甚至自己的模型接口 |
| 插件 | 六套内置美化主题,还能装社区的酒馆扩展 |
| 设置 | 模型接入、采样温度、外观、本地音乐 |

角色是互通的。 同一张角色卡,可以用来聊天,也可以直接拉进队伍陪你冒险;队伍成员反过来也能导出成一张标准角色卡。冒险途中随时能切到聊天窗找队友商量对策,再把商量好的计划带回冒险窗执行。

看看长什么样

队伍 —— 每个人的形象、属性、独立提示词,以及各自的模型接入(可以一桌混用不同 API):

队伍

冒险 —— 系统告诉你"至少要掷出多少",把每一栏加成摊开;成败按差值分档,AI 只负责讲:

冒险

角色卡 —— 捏好的角色可以直接拉进队伍:

角色卡

插件 —— 内置玻璃拟态、赛博霓虹、羊皮纸、樱花物语、极简终端、夜曲六套主题:

插件

一句话说清冒险模式

骰子和判定交给系统,故事交给 AI。 你用自己的话宣告行动,AI 推进剧情;当结果不确定时,系统会算出你至少要掷出多少、把加成一栏栏摊开,你掷骰,系统判成败。
差距多大,AI 就讲得多细:差 1 是"眼看跑掉了又被追回来",差 50 是"逃跑时摔了一跤",超 1 是"怪物快碰到你了但你还是脱身了"。掉血、中毒、被追击这些后果也由系统结算, AI 只负责描述。

角色卡

- 可视化面板:基础信息、外貌、性格、背景、能力、对话风格、场景七个模块,填完一键生成完整角色卡。
- 导入 / 导出:SillyTavern V2 / V3 的 JSON,以及 PNG 角色卡(图片里内嵌的 chara 数据块)。
- 角色库:本地存多张卡,各自的对话记录一起保存,随时载入。
- 头像:上传图片自动压缩,随角色卡一起导出。
- 世界书:按角色生成、补全,或导入已有的世界书 JSON。
- 工作区自动保存,关掉页面再回来还在。

聊天

- 和角色一对一对话,走 DSH 当前配置的模型,也可以换成你自己的任何 OpenAI 兼容接口(地址 / Key / 模型)。
- 全局系统提示词,类似 SillyTavern 的 System Prompt / Jailbreak。
- 每个角色独立的对话上下文——换个角色聊,不会串台。

队伍

- 1 到 12 人。每个人有自己的头像、定位、独立人设提示词。
- 独立模型接入:跟随全局、指定 DSH 里的某个模型、或者填自己的接口。
所以一桌人可以混着来——旁白用本地模型,队友 A 用 DeepSeek,队友 B 用 Kimi。
- 六维属性(力量 / 敏捷 / 体质 / 智力 / 感知 / 魅力)、技能、生命值、状态。
- 从角色卡一键进队:捏好的角色直接变成队友,属性由角色卡推导,之后还能改。
- 从队友导出角色卡:队伍里的人也能变成一张标准角色卡,拿去聊天或分享。
- 队伍自动保存,也可以存进队伍库、导出成 JSON 分享给别人。

冒险(跑团)

一句话概括:骰子和判定交给系统,故事交给 AI。

- 你用自己的话宣告行动。AI 推进剧情;当结果不确定时,它会说"这里需要判定"。
- 遇到怪物这种事,系统会把选择摆出来给你——正面对抗、拔腿就跑、还是先观察。
- 点一个选项,系统算出你至少要掷出多少,并把算式摊开给你看(基础难度、对手强度、你的属性调整、技能熟练、状态惩罚)。你掷骰,系统判成败。
- 成败之间分七档,差距多大,AI 就讲得多细:差 1 是"眼看跑掉了又被追回来",差 50 是"逃跑时摔了一跤",超 1 是"怪物快碰到你了但你还是脱身了"。
- 掉血、中毒、被追击这些后果,也由系统结算,AI 只负责描述。
- 队伍里的每个人都能开口,用的是各自配置的模型。

剧本:开局的前提、基调、本桌约定都可以自己写;写不动就点"让 AI 写",它会照着你已经写下的想法和你的队伍补完。

剧情大纲:你可以先写好故事的几个关键节点,每个节点配一个触发条件(第几回合、掷骰惨败之后、遇到战斗时、某人血量过低时、你说了某个关键词……)。
条件由系统判定,一满足就把你预先写好的事件喂给 AI,由它自然地演出来。
同样可以点"让 AI 起草大纲",它会给出一组分散在不同触发方式上的节点。

插件

- 六个内置主题,开箱即用:玻璃拟态、赛博霓虹、羊皮纸、樱花物语、极简终端、夜曲。
- 装社区的酒馆扩展:填 GitHub 仓库地址、manifest 直链、本机目录,或者上传 zip。
纯 CSS 的美化类扩展兼容性最好。
- 装了哪些、加载成不成功、哪些功能被降级了,插件页的日志里都会写清楚,不会偷偷吞掉。

安装

npm
dsh plugin --profile web add dsh-portable-tavern

GitHub(lib/ 已提交,无需构建授权)
dsh plugin --profile web add github:XCNXNXNX/dsh-portable-tavern

装完重启 DSH,右侧会出现"便携酒馆"的悬浮标签(可以在设置里关掉,改从 DSH 设置页进)。

DSH 兼容性

v0.4.1 面向 DSH Web Profile,Node.js 要求 ^22.18.0 || >=24.2.0。逐版本结果和一次性
Profile 验收记录见 兼容性记录。未测试的发行版保留 unknown;发布时只把已经完成安装、启动、真实页面加载及卸载检查的版本声明为 compatible。

关于你的数据

- 角色卡、队伍、对话、设置全部存在本机浏览器的 localStorage / IndexedDB 里。
- 你自己填的 API Key 只存在浏览器,只随单次请求发给本机酒馆路由转发,不写日志、不上传。
- 酒馆的所有后端路由都只接受本机(127.0.0.1 / localhost)请求。
- 安装的酒馆扩展写入 $DSH_HOME/portable-tavern/extensions(未设置 DSH_HOME 时为 ~/.dsh/portable-tavern/extensions);本机目录导入会读取所选目录。
- 模型请求会发送角色设定及相关对话给所选模型服务。GitHub / URL 扩展安装会访问所选来源;扩展的 JavaScript 在浏览器中执行,可以访问酒馆页面的数据与网络,请只安装可信来源。

开发

pnpm install
pnpm build # esbuild 打包宿主半 + 浏览器半,并生成类型声明
pnpm typecheck
pnpm test # 引擎、存储事务、路由与 SillyTavern 兼容层回归测试
pnpm test:engine # 跑团引擎与触发条件的断言

上面的效果图是用真实构建产物离屏渲染出来的,不是手绘的: node docs/preview/shots.mjs 会起一个本地静态服务器挂载 lib/client.js,用无头 Edge 逐个标签页截图到 assets/。界面变了重跑一次即可。

node docs/preview/persist-check.mjs 会真的开两次浏览器(同一个 profile):第一次改队伍并写入未生成角色卡的工作区,第二次重新加载,检查队伍、草稿、V3 选择、模型、全局提示词、对话与世界书是否恢复;失败时会以非零状态退出。存档相关改动请跑它。

npm pack --pack-destination .tmp-compat 后,运行 npm run test:dsh -- <官方 DSH 的 lib/bin.js> <打包的 .tgz 文件>,可使用官方 CLI 在隔离 Profile 中安装、启动、检查真实 Edge/Chrome 页面及卸载。脚本不调用付费模型,会检查卸载后的完整配置与安装前一致,并清理自己创建的临时 Profile。

许可

MIT
预览分享卡片长什么样 ↓XCNXNXNX/dsh-portable-tavern
分享 · DeepSeek Harness Hub
XCNXNXNX/dsh-portable-tavern

DeepSeek Harness 的「便携酒馆」插件:RPG 式 SillyTavern V2/V3 角色卡生成器 + 酒馆角色扮演聊天。支持世界书、角色卡 JSON/PNG 导入导出、面板主题与本地音乐。独立插件…

回到顶部