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

NextTavern 手机版 ljs1997sh/dsh-nexttavern-qq-mobile

DeepSeek Harness
ljs1997sh53 天前有提交已提供中文文档扫描:含敏感能力

让长篇角色扮演工作台在手机上以 QQ 风格畅玩

30.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

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

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/ljs1997sh/dsh-nexttavern-qq-mobile.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

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

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

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

✗npm 包dsh-nexttavern-qq-mobile(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:18:53

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

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 18 处,展示前 13 条)
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:50
    if (existsSync(harnessBin) && existsSync(join(candidate, 'home'))) return candidate
  • 读取密钥环境变量
    mobile-skin/serve-mobile.mjs:65
    const TOKEN_FILE = process.env.TOKEN_FILE ?? join(SKIN_DIR, 'last-token.txt')
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:75
    if (existsSync(PASS_FILE)) {
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:76
    const value = readFileSync(PASS_FILE, 'utf8').trim()
  • 写入本地文件
    mobile-skin/serve-mobile.mjs:81
    writeFileSync(PASS_FILE, generated + '\n', 'utf8')
  • 读取密钥环境变量
    mobile-skin/serve-mobile.mjs:87
    let DSH_TOKEN = process.env.DSH_TOKEN ?? ''
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:155
    const body = readFileSync(file)
  • 发起网络请求
    mobile-skin/serve-mobile.mjs:189
    const upstream = http.request(
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:289
    if (existsSync(TOKEN_FILE)) DSH_TOKEN = readFileSync(TOKEN_FILE, 'utf8').trim()
  • 读取本地文件
    mobile-skin/serve-mobile.mjs:289
    if (existsSync(TOKEN_FILE)) DSH_TOKEN = readFileSync(TOKEN_FILE, 'utf8').trim()
  • 执行外部命令来自配置/变量
    mobile-skin/serve-mobile.mjs:304
    const child = spawn(
  • 写入本地文件
    mobile-skin/serve-mobile.mjs:318
    writeFileSync(TOKEN_FILE, DSH_TOKEN + '\n', 'utf8')
  • 写入本地文件
    mobile-skin/serve-mobile.mjs:344
    mkdirSync(SKIN_DIR, { recursive: true })
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • QQ风格皮肤
  • 手机访问
  • 局域网访问

DSH NextTavern 手机版:QQ 风格皮肤 + 手机/局域网/远程访问层。AI 生成,非官方,不含原作者代码。

README

由 DeepSeek 最新模型翻译生成
dsh-NextTavern 手机版 · QQ 风格皮肤 + 手机/远程访问 🤖 AI 生成声明本仓库的全部代码与文档均由 AI 生成(在 DeepSeek Harness 上由 AI agent 编写、实测、迭代)。 没有任何一行是人类手写的。使用前请自行审阅代码——AI 生成内容不提供任何担保。 🙏 原作者署名(重要)本仓库不包含 dsh-NextTavern 的源码。 插件版权与著作权完整归原作者 @a86582751 所有(MIT 许可)。 本仓库只提供安装脚本 + 手机端增强层,插件请通过 tools/fetch-nexttavern.ps1 从官方发布页下载,以尊重原作者并获取其最新版本。 详见 NOTICE.md。 这是什么 dsh-NextTavern 是一个跑在 DeepSeek Harness (DSH) 上的长篇角色扮演工作台(角色卡、世界书、世界线、记忆、多角色 agent、小说导出……)。
展开完整文档(README 剩余 1 节)
dsh-NextTavern 手机版 · QQ 风格皮肤 + 手机/远程访问

🤖 AI 生成声明本仓库的全部代码与文档均由 AI 生成(在 DeepSeek Harness 上由 AI agent 编写、实测、迭代)。
没有任何一行是人类手写的。使用前请自行审阅代码——AI 生成内容不提供任何担保。

🙏 原作者署名(重要)本仓库不包含 dsh-NextTavern 的源码。
插件版权与著作权完整归原作者 @a86582751 所有(MIT 许可)。
本仓库只提供安装脚本 + 手机端增强层,插件请通过 tools/fetch-nexttavern.ps1 从官方发布页下载,以尊重原作者并获取其最新版本。
详见 NOTICE.md。

这是什么

dsh-NextTavern 是一个跑在 DeepSeek Harness (DSH) 上的长篇角色扮演工作台(角色卡、世界书、世界线、记忆、多角色 agent、小说导出……)。

但它默认是桌面三栏界面,而且 DSH 出于安全考虑只监听 127.0.0.1——所以:

- 📱 手机打不开
- 🚫 出门在外更打不开

本仓库补上这两件事:

| 能力 | 实现 |
| 手机能访问 | mobile-skin/serve-mobile.mjs:DSH 仍只听本机,网侧加一层轻量转发(改写 Host 以通过 DSH 自带的请求信任校验),HTTP 与 WebSocket 全支持 |
| 手机像聊天软件 | mobile-skin/qq-skin.css + qq-skin.js:全屏单栏、气泡头像、☰ 抽屉、紧凑上下栏 |
| 远程能访问 | 文档化的 Tailscale / Cloudflare Tunnel 两条方案(见下文) |
| 一键启动 | start-mobile.ps1(PowerShell)/ start-mobile.cmd(批处理,绕过脚本执行策略限制) |

核心设计:DSH 本体一行没改。 转发的请求会被改写成回环地址,因此 DSH 自己的安全校验照常生效,它的安全模型没有被削弱——只是多了一个受控的入口。

特性一览

手机访问层

- DSH 保持 127.0.0.1 监听,不直接暴露
- 自动携带启动 token:手机地址固定,DSH 重启后会自动重新登录,不用换链接
- 可选口令(HTTP Basic),默认关闭(自用方便)
- 自动识别并打印局域网地址与 Tailscale 远程地址
- 只注入页面 HTML,不碰内核代码、不改 profile、不装插件

QQ 风格皮肤(只对手机端口生效,桌面端不受影响)

| 项目 | 效果 | 实测 |
| 整体骨架 | 三栏桌面布局 → 全屏单栏,聊天区占满 | 414×896 全屏 |
| 顶栏 | 去掉面包屑、缩小标题与标签 | 116px → 63px |
| 输入栏 | 控件收紧为单行,发送键缩小 | 167px → 130px |
| 我方消息 | QQ 蓝渐变气泡 + 右侧头像 | 圆角 18/18/5 |
| 角色消息 | 白色气泡 + 左侧头像 | 圆角 5/18/18/18 |
| 技术内容 | 工具调用/思考/上下文注入弱化 | 透明度 0.62 |
| 会话列表 | 左上角 ☰ 抽屉(复用客户端原生开关) | 点外部关闭 |
| 其他 | 刘海屏适配、地址栏配色、深色模式跟随系统 | — |

合并后上下栏从 283px 降到 193px,聊天正文多出 90px(约 +15%)。

环境要求

| 项目 | 要求 |
| 系统 | Windows 10 1803+ / Windows 11 |
| Node.js | 22 或更高(实测 24.18) |
| Python | 3+(原版插件安装器需要) |
| pnpm | npm i -g pnpm(DSH 安装插件需要) |
| DSH 内核 | 原版插件要求 0.1.2-alpha.3(下文步骤会精确安装) |

快速开始

0) 获取本仓库
git clone https://github.com/ljs1997sh/dsh-nexttavern-qq-mobile.git
cd dsh-nexttavern-qq-mobile

1) 下载原版插件(从官方发布页)

.\tools\fetch-nexttavern.cmd
或: powershell -ExecutionPolicy Bypass -File .\tools\fetch-nexttavern.ps1

结束后会得到 vendor\dsh-nexttavern(v0.1.1),脚本会打印 SHA-256 供你与官方发布页对照。

2) 装插件(官方流程)

cd ''
$Base = $PWD
$Pkg = "$Base\vendor\dsh-nexttavern"
New-Item -ItemType Directory -Force -Path "$Base\harness", "$Base\home" | Out-Null

2.1 装一套锁定 alpha.3 的内核 Copy-Item "$Pkg\harness\package.json" "$Base\harness" Copy-Item "$Pkg\harness\package-lock.json" "$Base\harness"
cd "$Base\harness"; npm ci --ignore-scripts --no-audit --no-fund

2.2 初始化配置目录 $env:DSH_HOME = "$Base\home"
node "$Base\harness\node_modules\@deepseek-ai\dsh\lib\bin.js" web --dump-config | Out-Null

2.3 装插件本体与依赖 $Profile = "$Base\home\profiles\web"powershell
npm install --prefix $Profile --legacy-peer-deps --ignore-scripts --no-audit --no-fund
$Pkg "$Base\harness\node_modules\@deepseek-ai\dsh-tools"
npm install --prefix $Profile --legacy-peer-deps --ignore-scripts --no-audit --no-fund
'https://github.com/a86582751/dsh-file-upload/releases/download/v0.4.3-nexttavern.1/dsh-file-upload-0.4.3-nexttavern.1.tgz'
'yaml@2.8.1'
npm install --prefix $Pkg --ignore-scripts --no-audit --no-fund yaml@2.8.1

2.4 安装「角色扮演模式」预设(--apply 前先审计)
node "$Pkg\tools\install.mjs" --package $Pkg --home $env:DSH_HOME --harness "$Base\harness"
node "$Pkg\tools\install.mjs" --package $Pkg --home $env:DSH_HOME --harness "$Base\harness"
--apply --stopped --backup "$Base\backup-preset-1"

2.5 打 6 项内核兼容补丁
node "$Pkg\tools\patch-harness.mjs" --harness "$Base\harness"
$env:DSH_ALLOW_HARNESS_PATCH = '1'
node "$Pkg\tools\patch-harness.mjs" --harness "$Base\harness" --apply --stopped --backup "$Base\backup-harness-1"
Remove-Item Env:DSH_ALLOW_HARNESS_PATCH

三个容易踩的坑,详见 常见问题:必须先装 pnpm、本地目录安装不会带上依赖、别在插件目录里乱跑 npm install(会破坏其完整性校验)。

3) 启动 powershell .\start-mobile.cmd 或: node .\mobile-skin\serve-mobile.mjs

启动信息示例:

=========== 手机访问已就绪 =========== 同一 Wi-Fi 打开: http://192.168.1.100:3511/ 远程访问: 未检测到 Tailscale 网卡(装上并登录后重启本服务即可显示地址)口令: 已关闭(自用模式,打开即进)

4) 手机打开

1. 手机连同一 Wi-Fi,浏览器输入上面那个地址
2. 首次会弹「内测声明」→ 点继续
3. 建议「添加到主屏幕」,以后像 App 一样用

只有走 :3511 才有 QQ 皮肤;直连 :3510 是桌面原版界面。

远程访问(在外面也能玩)

⚠️ 这台机器上跑的是能执行命令的 agent,把它暴露到公网 = 谁进来谁能操作你的电脑。
两条方案按安全性排序:

方案 A:Tailscale(推荐)

给自己的电脑和手机组一个私有加密网络(WireGuard),不暴露公网、不改路由器,个人版免费。
powershell
1) 电脑安装(管理员 PowerShell) winget install --id Tailscale.Tailscale

2) 手机装 Tailscale App,用同一个账号登录

3) 带口令启动服务 .\start-mobile.cmd -Auth

启动信息里会多出一行 在外面(Tailscale): http://100.x.y.z:3511/,把它存到手机即可。

打不开时(Windows 防火墙把 Tailscale 网卡判成「公用网络」),管理员执行一次: powershell New-NetFirewallRule -DisplayName 'DSH NextTavern (Tailscale)' -Direction Inbound -Protocol TCP -LocalPort 3511 -Action Allow -Profile Any

方案 B:Cloudflare Tunnel(对方零安装,但属公网暴露) powershell winget install --id Cloudflare.cloudflared .\start-mobile.cmd -Auth # 务必带口令 cloudflared tunnel --url http://127.0.0.1:3511 # 另开一个窗口

把打印出的 https://xxx.trycloudflare.com 发给对方即可(需输口令)。
注意网址随机、重启会变,且等于把服务公开到互联网——用完 Ctrl+C 关掉。

方案 C:路由器端口映射

需要公网 IP(多数家宽没有),且直接暴露端口,不推荐。

自定义

改配色 / 字号:编辑 mobile-skin/qq-skin.css 顶部变量,手机刷新即生效: css :root 里的这些变量(在 html.dsh-qq 选择器内) --qq-blue: #12b7f5; /* 主题色:想换成微信绿就改这里 / --qq-bg: #f2f3f5; / 聊天区背景 / --qq-radius: 18px; / 气泡圆角 / --dsh-content-font-size: 15px; / 正文字号 */

临时关闭皮肤:网址后面加 ?skin=off。

安全须知

- 默认无口令,方便自用;手机通道会把 DSH 暴露在局域网(它能执行命令)
- 公共 Wi-Fi / 远程访问时请务必加 -Auth
- 不要把 3511 端口映射到公网
- 口令文件 mobile-skin/lan-password.txt 与 mobile-skin/last-token.txt 属于敏感信息,已在 .gitignore 中排除,不要提交到 Git

常见问题

dsh plugin 报 'pnpm' is not recognized
→ npm i -g pnpm

提示 running scripts is disabled on this system(无法运行 .ps1) → 用同名的 .cmd(start-mobile.cmd / tools\fetch-nexttavern.cmd),或 powershell -ExecutionPolicy Bypass -File .\start-mobile.ps1

解压插件时报 tar: Cannot connect to C: resolve failed → PATH 里的 tar 来自 Git Bash/MSYS。本仓库脚本已强制使用 %SystemRoot%\System32\tar.exe;手动解压时也请用它。

安装器报 Package integrity mismatch: package.json → 插件目录被改过(例如在里面跑过 npm install)。重新执行 tools\fetch-nexttavern.cmd 下载一份即可。

安装器报 Profile must reuse the Harness dsh-tools instance → 第 2.3 步漏了 "$Base\harness\node_modules\@deepseek-ai\dsh-tools" 这个参数。

补丁报 Unsupported package version: ... → 内核版本不对,必须是 0.1.2-alpha.3(用插件自带的 harness\package-lock.json 安装即可)。

手机打开空白 / 一直转圈 → 确认电脑上服务还在运行、手机与电脑同一 Wi-Fi、路由器未开启 AP 隔离。

界面没有 QQ 皮肤 → 确认访问的是 :3511(转发层),不是 :3510(内核)。

手机能开页面但发消息没反应(WebSocket 被拦) → 检查 VPN / 代理软件是否拦截了局域网 WebSocket。

外面打不开(Tailscale) → 见上文防火墙命令;另确认电脑未睡眠、服务仍在运行。

文件结构

dsh-nexttavern-qq-mobile/
├── README.md 本文档 ├── LICENSE 本仓库代码的许可(MIT) ├── NOTICE.md 第三方来源与署名 ├── .gitignore 排除密钥与依赖 ├── start-mobile.ps1 启动(PowerShell) ├── start-mobile.cmd 启动(批处理,绕过执行策略) ├── mobile-skin/ │ ├── serve-mobile.mjs 手机访问层:转发 + token 自愈 + 皮肤注入 │ ├── qq-skin.css QQ 风格样式(改这里调外观) │ └── qq-skin.js 抽屉按钮 / 刘海适配 └── tools/ ├── fetch-nexttavern.ps1 从官方发布页下载原版插件 └── fetch-nexttavern.cmd 同上(批处理版)

(安装后新增,均已被 .gitignore 忽略) ├── harness/ 锁定 alpha.3 的内核 ├── home/ 你的数据:会话 / 角色卡 / 故事 └── vendor/dsh-nexttavern/ 原版插件(官方下载)

工作原理(想改代码时看这里)

1. 浏览器访问 192.168.x.x:3511
2. serve-mobile.mjs 把请求转发到 127.0.0.1:3510,并做两件事:
- 把 Host / Origin 改写成 127.0.0.1:3510 → 通过 DSH 的请求信任校验
- 对 HTML 响应注入 qq-skin.css / qq-skin.js → 手机端渲染成 QQ 风格
3. DSH 若返回 401(未登录),转发层自动 302 到 /?token= 重新引导登录
4. WebSocket(/api/remote.mux)走同一套转发,保证流式输出正常

为什么必须改写 Host:DSH 的会话 Cookie 绑定在 127.0.0.1:3510 这个 authority 上,且请求信任校验也以 Host 为准。转发层用回环地址与上游对话,因此既通过校验、Cookie 也有效。

致谢与许可

- dsh-NextTavern — 原作者 @a86582751,MIT。
本仓库不包含其代码,仅提供下载与安装脚本;请遵守其许可与署名要求。
- DeepSeek Harness (@deepseek-ai/dsh) — 官方运行时,本仓库不修改其代码。
- 本仓库代码(mobile-skin/、启动与下载脚本、文档)— MIT,见 LICENSE,由 AI 生成。

AI 生成声明(详细)

- 本仓库的代码、注释、文档全部由 AI agent 在 DeepSeek Harness 环境中编写,无人类手写代码。
- 规格与取舍来自人类使用者的需求描述;实现、调试与验证由 AI 完成。
- 开发过程中 AI 实际运行并验证过关键路径(页面 200、WebSocket 101、口令 401、伪造 Host 403、布局尺寸测量、皮肤规则计算值等),但这些验证不代表对所有环境的保证。
- AI 生成内容可能包含错误或不当设计,请在使用前自行审阅,风险自负。
- 本仓库不包含任何第三方专有代码;引用的第三方项目均按其原许可分发(见 NOTICE.md)。
预览分享卡片长什么样 ↓ljs1997sh/dsh-nexttavern-qq-mobile
分享 · DeepSeek Harness Hub
ljs1997sh/dsh-nexttavern-qq-mobile

让长篇角色扮演工作台在手机上以 QQ 风格畅玩

这是你的仓库?认领条目

回到顶部