DSH Web UI 移动端适配:窄屏好用,宽屏适用
64.1/100
综合分
177
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:engines.node 要求 >=24.0.0,不满足 Node 22.19.0。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add mexiaosqwq/dsh-web-mobile该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装engines.node 要求 >=24.0.0,不满足 Node 22.19.0
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-web-mobile @ 3.2.1
✗Node 引擎要求 >=24.0.0 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:35:26
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 28 处,展示前 28 条)
- 发起网络请求lib/client.js:12528
const response = await fetch('/api/mobile-nav.session.delete', { - 发起网络请求lib/client.js:17518
void fetch(beacon, { method: 'POST', mode: 'no-cors', body: payload() }).catch(() => { }); - 读取本地文件lib/delete-session.js:191
entries = await readdir(dir, { withFileTypes: true }); - 写入本地文件lib/delete-session.js:231
await mkdir(trashRoot, { recursive: true }); - 写入本地文件lib/delete-session.js:232
await rename(dir, trashDir); - 写入本地文件lib/delete-session.js:247
await writeFile(join(trashDir, 'manifest.json'), `${JSON.stringify(manifest, null, 2)}\n`); - 读取本地文件lib/delete-session.js:259
for (const name of await readdir(trashRoot)) { - 读取本地文件lib/delete-session.js:261
const stats = await stat(join(trashRoot, name)); - 删除本地文件递归lib/delete-session.js:263
await rm(join(trashRoot, name), { recursive: true, force: true }); - 读取本地文件lib/file-transfer.js:126
const parent = await lstat(root); - 写入本地文件lib/file-transfer.js:129
await mkdir(dir, { recursive: true, mode: 0o700 }); - 读取本地文件lib/file-transfer.js:130
const info = await lstat(dir); - 读取本地文件lib/file-transfer.js:140
const members = (await readdir(dir)).filter(name => /^[a-f0-9]{48}\.json$/.test(name)); - 读取本地文件lib/file-transfer.js:152
if (marker) candidates.push({ id, marker, time: (await lstat(join(dir, id + marker))).mtimeMs }); - 删除本地文件lib/file-transfer.js:159
await unlink(join(dir, retired.id + '.json')); - 删除本地文件lib/file-transfer.js:160
await unlink(join(dir, retired.id + retired.marker)); - 删除本地文件lib/file-transfer.js:164
catch (error) { await handle.close(); await unlink(file).catch(() => {}); throw error; } - 读取本地文件lib/file-transfer.js:175
const info = await lstat(file); - 读取本地文件lib/file-transfer.js:198
const file = join(dir, id + suffix), info = await lstat(file); - 删除本地文件lib/file-transfer.js:295
await unlink(join(dir, record.id + '.json')); - 发起网络请求src/client/debug.ts:146
void fetch(beacon, { method: 'POST', mode: 'no-cors', body: payload() }).catch(() => {}) - 读取本地文件src/delete-session.ts:257
entries = await readdir(dir, { withFileTypes: true }) - 写入本地文件src/delete-session.ts:293
await mkdir(trashRoot, { recursive: true }) - 写入本地文件src/delete-session.ts:294
await rename(dir, trashDir) - 写入本地文件src/delete-session.ts:308
await writeFile(join(trashDir, 'manifest.json'), `${JSON.stringify(manifest, null, 2)}\n`) - 读取本地文件src/delete-session.ts:320
for (const name of await readdir(trashRoot)) { - 读取本地文件src/delete-session.ts:322
const stats = await stat(join(trashRoot, name)) - 删除本地文件递归src/delete-session.ts:323
if (stats.mtimeMs < cutoff) await rm(join(trashRoot, name), { recursive: true, force: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-runtime@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-session-log-export给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
3 张 · 点击查看大图功能亮点
- 窄屏适配
- 宽屏适配
README
由 DeepSeek 最新模型翻译生成dsh-web-mobile — 手机上也能好好用 DSH
DSH Web UI 移动端适配:窄屏好用,宽屏适用
📦 已内置于 DSHA —— DeepSeek Harness 安卓启动器把本插件作为内置移动端适配(打包时的源码快照),装 APK 开箱即用;本仓库之后的更新要等 DSHA 重新拉取源码并发布 App。感谢作者 @qiannianhuanxiang 的集成与推广 🙏
dsh-web-mobile 是 DeepSeek Harness Web UI 的移动端适配插件——让 DSH 在手机竖屏下也能好好用:
- 弹窗变浮层:设置、文件树、预览改成底部 sheet,触屏好点
- 状态栏避让:刘海安全区、深/浅主题、双击缩放都处理
- 输入区不打架:权限胶囊、模型名、切换菜单在窄屏下不重叠
- 长会话不卡流量:宿主返回的大 JSON(会话历史等)自动 gzip/brotli 压缩,手机端加载明显提速
- 平板也管:768–1023px 触屏设备限宽居中,≥1024px 触屏大平板的会话行 ⋯ 菜单仍带「删除会话」;桌面端(鼠标指针)任何宽度都是完全 no-op,窄窗口/系统缩放也不会误启移动 UI
效果
| 会话主页 | 目录抽屉 | 设置界面 |
| 移动端会话主页 | 目录抽屉 | 移动端设置界面 |
更新内容
展开完整文档(README 剩余 1 节)
dsh-web-mobile — 手机上也能好好用 DSH DSH Web UI 移动端适配:窄屏好用,宽屏适用 📦 已内置于 DSHA —— DeepSeek Harness 安卓启动器把本插件作为内置移动端适配(打包时的源码快照),装 APK 开箱即用;本仓库之后的更新要等 DSHA 重新拉取源码并发布 App。感谢作者 @qiannianhuanxiang 的集成与推广 🙏 dsh-web-mobile 是 DeepSeek Harness Web UI 的移动端适配插件——让 DSH 在手机竖屏下也能好好用: - 弹窗变浮层:设置、文件树、预览改成底部 sheet,触屏好点 - 状态栏避让:刘海安全区、深/浅主题、双击缩放都处理 - 输入区不打架:权限胶囊、模型名、切换菜单在窄屏下不重叠 - 长会话不卡流量:宿主返回的大 JSON(会话历史等)自动 gzip/brotli 压缩,手机端加载明显提速 - 平板也管:768–1023px 触屏设备限宽居中,≥1024px 触屏大平板的会话行 ⋯ 菜单仍带「删除会话」;桌面端(鼠标指针)任何宽度都是完全 no-op,窄窗口/系统缩放也不会误启移动 UI 效果 | 会话主页 | 目录抽屉 | 设置界面 | | 移动端会话主页 | 目录抽屉 | 移动端设置界面 | 更新内容 v3.2.2 (预发行 · 兼容 0.2.1 及以后) - 平板(≥1024 触屏):设置入口改为账户行右端的齿轮,账户菜单里的设置项收起 - 平板:设置弹层改成手机档形态(贴顶整宽、顶部横排页签),并隐藏「打开配置文件」 - 平板:会话行高 44px、行内操作命中区 40×40,指尖可点 - 平板:标题行的状态入口(Agent Team / 子智能体 / 后台任务)居中,后台任务出现或消失时中心不跳 - 兼容:手机档与桌面档不受影响(改动全部在 ≥1024 + 粗指针内) - 修输入中旋转横屏后输入框被顶栏盖住、只能刷新恢复的问题 - 提问卡:超长问题不再把卡片撑满,答案区可展开到整条可见带,键盘弹起时不再盲打 - 提问卡三颗图标命中区 44px,选项区与问题之间加分隔线 - 侧边栏「更多」菜单留在抽屉内;下载记录与会话日志导出合并为右上角一个菜单 - 头部收起多余入口,页签恢复单行,子智能体谱系标记回到页签行 v3.2.1 (兼容 0.2.1 及以后) - 手机端一批真机反馈的排版与交互修正:头部与对话区留白重排、输入卡片功能键对齐、插件面板与图片查看更顺手 - 提问卡的问题正文不再消失,也能长按选中、复制 - 首次进入点「继续」不再卡几秒;大响应返回时也不再拖住同进程的其它请求 - 兼容:桌面/平板档不受影响(改动全在移动媒体查询内);宿主代际仍为 0.2.1 及以后 新功能 - 原图灯箱支持双指缩放:只缩放图片本身,页面不再跟着一起放大 修复 - 手机端会话头部更紧凑:标题与页签行之间的多余空白收回,发送/停止键同步收小 - 对话区留白重排:运行状态、回复与输入卡片之间的空隙更均匀,输入卡片里的功能键与文字重新对齐 - 输入卡片的功能图标统一到同一档灰度,功能键尺寸放大到与发送/停止键一致 - 插件面板进到子页后按返回只退一层,不再一次把整个面板关掉 - 插件页页首的标题与工具按钮回到同一行,不再被挤成多行堆叠 - 看大图时遮罩右侧一条没盖住、也点不动;遮罩现在铺满整屏 - 退出插件面板时不再弹出输入法 - 头部「智能体团队」与「子智能体」两颗芯片开关面板时不再闪一块灰底 - 会话数据诊断面板的折叠三角更容易点中,快速滑动时顶部吸顶的行不再撕裂闪烁 - 首次进入「预览版说明」点「继续」不再停在「正在保存…」几秒;几 MB 的响应返回时,同进程的其它请求不再被堵住 v3.2.0 (兼容 0.2.1 及以后) - 手机端一批真机报障修复:浏览器里点输入框不再把整页顶出屏幕、iOS 侧区能正常起手滚动、抽屉会话列表多出 40px、开着壁纸不再透明 - 宿主 0.2.1 适配:统计条与上下文环、后台任务文案重新对齐;第三方「模型能力」面板退场后,为它写的换行适配一并退休 - 工程侧:仓库文档改分层披露(根指令瘦身,验收、协作与发版文案手册独立成篇),带日期的审计与 fork 对账记录转为本地保留 - 兼容:0.1.7-rc.1 起仍照常支持,0.1.6-alpha.2 建议维持 3.0.0、0.1.5 之前仍建议 2.4.1 修复 - 手机浏览器(Chrome / Edge for Android)点开输入框时整页被顶上去、顶栏一起出屏——内置 WebView 与桌面不受影响(#226, by @FanetheDivine) - iOS 上侧边抽屉与文件面板从静止起手时纵向滚动失效,只有屏幕正中一条窄缝能滚(#222, PR #223) - 抽屉底部的「导出会话日志」胶囊独占一行、占掉约 1.2 个会话的高度——入口改到抽屉品牌行右端,会话列表多出 40px(#225, PR #227) - 开着壁纸插件时抽屉整列与深色顶栏变透明、背后内容透出(#228, PR #229) - 宿主 0.2.1 上统计条与上下文环退回原生小药丸、百分比数字外露(#216) - 宿主 0.2.1 上后台任务文案挤回标题行、被右上角文件夹图标压住(#217) - dsh-our-free-model 的设置页在手机上滚动掉帧,公告提示也不再被抽屉盖住(#214、#221) - 插件不再自行补写模型的思考档位:改由官方设置页管理,手动关掉的档位不会再被写回,已写入的配置照旧生效(#218) v3.1.0(兼容 0.1.7-rc.1 及以后) - 顶栏座位重做、性能第一批与补丁秩序上线 - 这也是第一次大规模重构:TS / JS 源文件拆得更工整,随之而来的是更顺手的后续维护 新功能 - 自定义 API 里声明不支持自定义思考强度的模型自动归入「跟随模型默认」,不再因强行写入档位而报错 - 兼容补丁登记门禁:每个补丁必须自报用途与对应测试,登记表与源码不一致时构建直接失败 修复 - 状态栏 TPS 读数有时停在旧宽度——纯文本更新唤不醒排版任务 - 侧边栏面板退出途中出错时,屏幕上会留下一张永不自清的全屏快照 - 快速重进面板时,上一次退场的清理会误删这一次刚挂上的快照 - 市场「已安装」列表的行样式在列表根节点换代的宿主上可能整列表静默漏写 - TPS 缺席时状态行的多余全表扫描(改为可短路) - 顶栏拥挤的几处:后台任务圆点移入标题行、子智能体 chip 钉在标签行右端、长标题改省略号且可展开、预设 chip 不再贴住邻居 - 顶栏、TPS 读数、模型菜单、回形针浮层各自反复读尺寸的问题——合并到每帧一次,滚动与流式输出更顺 - 市场「已安装」列表每帧重复定位整个列表容器——现在缓存容器、只在容器内扫描 - 本批手机档改动收进 ≤767px 作用域,平板档几何与本批之前零差异 v3.0.6(兼容 0.2.0-rc.1 / rc.2) - 移动端交互、布局与性能整批修复:会话行单击切换、文件面板工具栏、0.2.0 会话头部、推理等级面板宽度、流式状态条去重、深色顶栏衔接、上下文环落位。0.1.x 全线照常支持,0.1.6-alpha.2 建议维持 3.0.0、0.1.5 之前仍建议 2.4.1。 新功能 - 回形针「上传附件」接上 App 的文件选择通道(桥优先,无桥回落系统选择器) - 会话行的归档 / 置顶快捷按钮在手机档收进 ⋯ 菜单(#154) 修复 - 与 dsh-pocket 同装时不再因 locale 命名空间重名把整站启动打挂(#165) - 会话行单击即可切换,并修掉随之而来的重复选中 - 文件面板在手机档固定只留「收起右侧边栏」,分栏与退出全屏不再误触 - 0.2.0 的会话头部标题不再压到左上角开关上 - 子代理运行时的停止键与发送键贴回右缘(#191) - 抽屉底色跟随宿主主题,暗色下不再发白(#192) - 底部安全区补齐:769–1023px 触屏设备的会话内容不再压进系统手势条(#193) - 流式输出期间状态条的重复读写收敛(#194) - 设置面板遮罩淡入恢复正常(此前一条非法选择器让整条规则被静默丢弃) - 竖屏下 mattskills 状态栏胶囊的尾巴(技能 ⊞ / 收起 ⌄)不再被裁掉 - 手机上的推理等级面板收窄到内容宽度,不再占掉半屏 - 正在输出时输入内容,上下文环不再压住停止键 - 深色下会话头部与页面底色一致,顶部不再出现一条突兀的灰带(#176) - 文档预览与插件页一批:屏外代码行不再参与布局、插件条目整卡可点、Models 页模型行不再被超长 chip 挤成竖条 v3.0.5(兼容 0.2.0-rc.1 / rc.2) - 自定义 API 的模型开箱可选思考等级,并收掉一批手机端交互问题:0.1.x 全线照常支持,0.1.6-alpha.2 建议维持 3.0.0、0.1.5 之前仍建议 2.4.1。 新功能 - 自定义 API 的模型开箱可选思考等级:手写的供应商模型不必再逐条补档位配置,官方「推理等级」控件直接可用(默认给出 off / low / medium / high / max,只补用户自己层里没写档位的模型、不覆盖已写档位) - 手机上的文件分享入口:文件树行尾与预览头部各一个按钮,可一键把文件送出去;当前环境不支持系统分享时(如内置 WebView),按钮如实显示为「下载「x」」并走系统保存流程,不拿「分享」二字骗人 修复 - 删除会话不再误报失败:宿主先把会话落库、随后把响应掐断时,改以会话列表为准判定结果 - 模型与推理等级菜单在手机上不再自动弹出软键盘(点搜索框仍然照常输入) - 回形针两选项浮层不再「弹一下」:定位稳定后再显形 - 第三方模型档位面板在手机上不再移出屏幕(#152 by @BuvkB) - iOS 输入框不再沉到系统辅助条下面(#149, PR #150) - 长按选区拖拽手柄不再把视口带到会话顶部,并落地一批手机端修复(PR #155) 安装 DSHA 用户无需单独安装:DSHA 内置本插件,但内置的是它打包时的源码快照——本仓库之后的新版本要等上游重新拉取并发布 App 更新才会带上,想立刻用上本版仍按下文单独安装。 从 npm 一行装(仓库自带构建产物,无需构建配置),装完重启 dsh web: dsh plugin --profile web add dsh-web-mobile GitHub 直装:dsh plugin --profile web add github:mexiaosqwq/dsh-web-mobile 本地开发: dsh plugin --profile web add link:/path/to/dsh-web-mobile 构建 pnpm install pnpm build lib/ 与源码同步入库,改动源码后重新构建再提交。 贡献与工程 欢迎大家的 issue 和 PR,我会尽可能地进行解决! 工程约定见 AGENTS.md;回归探针 scripts/probes/ 22 个锚点可单跑,兼作宿主升级绊线。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
mexiaosqwq/dsh-web-mobile
DSH Web UI 移动端适配:窄屏好用,宽屏适用
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1