DeepSeek Harness Hub
← 返回列表

ljs1997sh/dsh-nexttavern-qq-mobile

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

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

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档
综合分
30.3
GitHub 分
30.3
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ljs1997sh/dsh-nexttavern-qq-mobile
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

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)。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群