AI 原生的角色扮演沙盒
36.3/100
综合分
4
GitHub 星标
243
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tavern-harnessnpm 源 · tavern-harness 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包tavern-harness @ 0.1.30
✓Node 引擎要求 >=22.6.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 20:00:07
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 51 处,展示前 30 条)
- 读取本地文件bin/cli.js:21
const pkg = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')); - 读取密钥环境变量persistence-server.mjs:17
const SERVICE_TOKEN = process.env.PERSISTENCE_SERVICE_TOKEN; - 写入本地文件persistence-server.mjs:24
mkdirSync(dataDir, { recursive: true }); - 读取密钥环境变量sandbox-server.mjs:35
const SERVICE_TOKEN = process.env.COMMAND_SERVICE_TOKEN; - 读取密钥环境变量sandbox-server.mjs:36
const APPROVAL_TOKEN = process.env.COMMAND_APPROVAL_TOKEN; - 执行外部命令固定命令sandbox-server.mjs:54
const which = spawnSync('where', ['git'], { encoding: 'utf8' }); - 读取本地文件sandbox-server.mjs:60
if (existsSync(join(p, 'pwd.exe'))) return p; - 读取本地文件sandbox-server.mjs:64
for (const c of candidates) if (existsSync(join(c, 'pwd.exe'))) return c; - 写入本地文件sandbox-server.mjs:71
mkdirSync(SANDBOX_HOME, { recursive: true }); - 写入本地文件sandbox-server.mjs:72
mkdirSync(SANDBOX_TMP, { recursive: true }); - 删除本地文件递归sandbox-server.mjs:73
process.once('exit', () => rmSync(SANDBOX_ENV_ROOT, { recursive: true, force: true })); - 读取本地文件sandbox-server.mjs:360
if (!existsSync(candidate)) continue; - 读取本地文件sandbox-server.mjs:365
const executable = statSync(resolved); - 读取本地文件sandbox-server.mjs:461
if (WORKSPACE_ROOT === LEGACY_WORKSPACE_ROOT || existsSync(WORKSPACE_ROOT) || !existsSync(LEGACY_WORKSPACE_ROOT)) return; - 写入本地文件sandbox-server.mjs:463
mkdirSync(dirname(WORKSPACE_ROOT), { recursive: true }); - 读取本地文件sandbox-server.mjs:472
const RESOLVED_WORKSPACE_ROOT = existsSync(WORKSPACE_ROOT) ? realpathSync(WORKSPACE_ROOT) : WORKSPACE_ROOT; - 写入本地文件sandbox-server.mjs:495
mkdirSync(PUBLIC_WORKSPACE, { recursive: true }); - 写入本地文件sandbox-server.mjs:496
mkdirSync(base, { recursive: true }); - 删除本地文件sandbox-server.mjs:504
rmSync(legacyPublicLink); - 写入本地文件sandbox-server.mjs:655
mkdirSync(dirname(fp), { recursive: true }); - 删除本地文件递归sandbox-server.mjs:681
rmSync(fp, { recursive: true, force: false }); - 删除本地文件sandbox-server.mjs:684
unlink(fp, (err) => (err ? rejectDelete(err) : resolveDelete())); - 执行外部命令来自配置/变量sandbox-server.mjs:716
execFile(command, [base], (error) => { - 删除本地文件递归sandbox-server.mjs:752
rmSync(base, { recursive: true, force: true }); - 执行外部命令固定命令sandbox-server.mjs:1122
const killed = spawnSync('taskkill.exe', ['/PID', String(child.pid), '/T', '/F'], { - 执行外部命令来自配置/变量sandbox-server.mjs:1200
const child = spawn(commandPath(command.cmd), command.args, { - 写入剪贴板src/core/clipboard.ts:11
await navigator.clipboard.writeText(text); - 发起网络请求src/core/openai.ts:91
const resp = await fetch(url, { - 发起网络请求src/core/openai.ts:387
const response = await fetch(candidates[index], { - 发起网络请求src/db/database.ts:294
response = await fetch(`/api-v3${path}`, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
1 张 · 点击查看大图功能亮点
- AI原生角色扮演沙盒
README
由 DeepSeek 最新模型翻译生成Tavern Harness · AI 原生的角色扮演沙盒
1 · 玩法演示
玩法演示
2 · 如何运行
方式一:一键启动(推荐)
无需克隆仓库或全局安装:
npx tavern-harness
首次运行会下载包、启动可从局域网访问的服务,并自动打开浏览器。可选参数:
npx tavern-harness --no-open
npx tavern-harness --port 5273
npx tavern-harness --host 127.0.0.1 # 仅允许本机访问
npx tavern-harness --workspace /absolute/path/to/workspace
方式二:全局安装(推荐长期使用)
安装一次后,可从任意目录启动 Tavern Harness:
npm install -g tavern-harness
tavern-harness
更新:
npm update -g tavern-harness
卸载:
npm uninstall -g tavern-harness
方式三:从源码安装
git clone https://github.com/Rannichan/Tavern-Harness.git
cd Tavern-Harness
npm install
展开完整文档(README 剩余 1 节)
Tavern Harness · AI 原生的角色扮演沙盒 1 · 玩法演示 玩法演示 2 · 如何运行 方式一:一键启动(推荐) 无需克隆仓库或全局安装: npx tavern-harness 首次运行会下载包、启动可从局域网访问的服务,并自动打开浏览器。可选参数: npx tavern-harness --no-open npx tavern-harness --port 5273 npx tavern-harness --host 127.0.0.1 # 仅允许本机访问 npx tavern-harness --workspace /absolute/path/to/workspace 方式二:全局安装(推荐长期使用) 安装一次后,可从任意目录启动 Tavern Harness: npm install -g tavern-harness tavern-harness 更新: npm update -g tavern-harness 卸载: npm uninstall -g tavern-harness 方式三:从源码安装 git clone https://github.com/Rannichan/Tavern-Harness.git cd Tavern-Harness npm install npm run dev # 开发服务器默认端口 5173,被占用时自动顺延 首次启动配置模型服务 启动后到「设置 → 模型服务 Provider」: 1. 添加 Provider:名称 + Base URL + API Key —— 支持任意 OpenAI 兼容 chat/completions 接口(OpenAI / DeepSeek / Qwen / SiliconFlow / Ollama / LM Studio / 自建 vLLM 均可) 2. 测试连接:自动拉取模型列表。若目标服务未开 CORS 头,会自动经内置同源代理转发(仅限内网 / 局域网地址),成功后 Base URL 自动改写为代理形式保存 3. 选模型:聊天页顶部点击模型名即可,回到对话开聊! 导入游戏并开始 下载以下游戏文件,点击左上角的「导入」按钮,然后导入刚刚下载的文件,即可创建一整套游戏环境(包括角色、世界书、技能等),直接体验: 小咕嘎-gameplay.json 数据存储 酒馆数据保存在主机本地;访问同一 Tavern Harness 实例的浏览器可共享这些数据。界面语言和主题仍随各自浏览器保存。 3 · 产品特色 🍺 酒馆老板随时为您服务 无论是构建角色卡这种小事儿,还是设计跑团玩法这种累活儿,再或者你只是不知道从何入手,都可以来找酒馆老板! 我们为酒馆进行了全方位的 AI 装修,让游戏的创建和体验都更加简单。 🛠️ 技能系统 所有的角色不再是只能对话的角色,而是具备技能拓展的智能体:为每一个角色装备需要的技能,实现更高级的玩法。 酒馆已经提供了一些必要的技能(例如掷骰子);同时你也可以拜托酒馆老板,创建任意你想要的技能~ 💬 多角色群聊 每个房间支持添加至多 6 个角色,并提供类似于回合制游戏的行动顺序表,轻松管理多人对话。 支持 @ 角色 和跳过,模拟真实的多人对话场景——无论是从上帝视角观测角色们的行为,还是亲自代入角色参与其中,总能找到你的玩法。 🎁 和朋友分享你的游戏 兼容 Tavern 生态,一键导入 PNG 角色卡。 同时支持游戏一键打包分享:对方直接导入即可游玩,无需手动创建角色、技能、配置对话。 🍃 完全本地 / 高缓存命中率 / 简洁干净 目前支持 OpenAI 格式的 API 接口:你可以使用你的 token plan,也可以自己本地部署模型,一切数据都保存在本地。 Tavern Harness 针对提高缓存命中率进行了优化,显著降低了 Token 成本。 并且 Tavern Harness 不依赖任何外部 harness,UI 也经过了精细打磨,提供简洁干净的体验。 4 · 交流反馈 - 🐛 发现 Bug / 提需求 → GitHub Issues,欢迎附上导出的游戏 JSON 或浏览器控制台日志(务必注意脱敏 API Key 哦) - 🟣 用法讨论 / 玩法灵感 / 分享你的角色卡与技能 / 围观开发进展 → 加入 Discord 社区 - 🤝 欢迎提交 Pull Request:我最喜欢写bug了 - 📣 想第一时间收到更新,点个 Star / Watch 就好 酒馆24小时营业,老板随时为您服务! 5 · 版本记录 每一次 npm 发布都会记录在 changelog/ 目录中:一个版本一个文件,并与 git tag 一一对应。 - 查看完整记录:CHANGELOG.md - 应用内查看:设置 → 关于 → 查看版本记录 - 维护者:发布步骤见 CONTRIBUTING。 开源协议 本项目采用 MIT License 开源协议。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Rannichan/Tavern-Harness
AI 原生的角色扮演沙盒
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7