为窄屏网页套上抽屉式移动界面,一键热装
33.6/100
综合分
8
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/8/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:npm 同名包「dsh-mobile-shell」归属 htao-uu/dsh-mobile-shell,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Yui-Little/dsh-mobile-shell该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-mobile-shell」归属 htao-uu/dsh-mobile-shell,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-mobile-shell @ 0.6.18
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/24 19:33:29
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 74 处,展示前 47 条)
- 读取本地文件lib/index.js:154
const data = await readFile(resolved); - 写入本地文件lib/index.js:185
await mkdir(dir, { recursive: true }); - 写入本地文件lib/index.js:189
await writeFile(target, bytes, { flag: 'wx' }); - 发起网络请求lib/index.js:415
const res = await fetch(url); - 发起网络请求lib/index.js:486
const res = await fetch(MARKET_CATALOG_URL); - 读取本地文件lib/index.js:550
const raw = readFileSync(pkgPath, 'utf8'); - 读取本地文件lib/index.js:566
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')); - 读取本地文件lib/index.js:583
const pkg = JSON.parse(readFileSync(join(pkgRoot, 'package.json'), 'utf8')); - 读取本地文件lib/index.js:587
const patch = readFileSync(join(pkgRoot, patchRel), 'utf8'); - 读取本地文件lib/index.js:612
const content = readFileSync(patchPath, 'utf8'); - 写入本地文件lib/index.js:618
appendFileSync(patchPath, body, 'utf8'); - 发起网络请求lib/index.js:882
const r = await fetch(candidate); - 请求外部主机raw.githubusercontent.comlib/index.js:918
const r = await fetch(`https://raw.githubusercontent.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/${branch}/${clean.split('/').map(enc - 发起网络请求lib/index.js:918
const r = await fetch(`https://raw.githubusercontent.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/${branch}/${clean.split('/').map(enc - 写入本地文件lib/index.js:988
await mkdir(join(homedir(), '.dsh'), { recursive: true }); - 写入本地文件lib/index.js:989
await writeFile(MARKET_UPDATED_CACHE_FILE, new TextEncoder().encode(JSON.stringify(updatedCache ?? {}))); - 发起网络请求lib/index.js:1001
const res = await fetch(url, { - 发起网络请求lib/index.js:1054
const res = await fetch(url, { - 写入本地文件lib/index.js:1552
await mkdir(dirname(path), { recursive: true }); - 删除本地文件递归lib/index.js:1616
await rm(sessionDir, { recursive: true, force: true }); - 发起网络请求lib/client.js:1275
const res = await fetch(TRANSLATE_URL, { - 发起网络请求lib/client.js:1312
const res = await fetch(INSTALL_URL, { - 发起网络请求lib/client.js:1452
const res = await fetch(`${README_FILE_URL}?owner=${encodeURIComponent(owner)}&repo=${encodeURIComponent(repoName)}&path=${encodeURIComponent(path)}`) - 发起网络请求lib/client.js:1493
const res = await fetch(TRANSLATE_MT_URL, { - 发起网络请求lib/client.js:1520
const res = await fetch(`${README_URL}?owner=${encodeURIComponent(owner)}&repo=${encodeURIComponent(repoName)}`); - 发起网络请求lib/client.js:1616
const res = await fetch(`${UPDATED_URL}?repos=${encodeURIComponent(need.join(','))}`); - 读取本地文件src/index.ts:241
const data = await readFile(resolved) - 写入本地文件src/index.ts:270
await mkdir(dir, { recursive: true }) - 写入本地文件src/index.ts:274
await writeFile(target, bytes, { flag: 'wx' }) - 发起网络请求src/index.ts:555
const res = await fetch(url) - 发起网络请求src/index.ts:623
const res = await fetch(MARKET_CATALOG_URL) - 读取本地文件src/index.ts:685
const raw = readFileSync(pkgPath, 'utf8') - 读取本地文件src/index.ts:701
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) as { dsh?: unknown } - 读取本地文件src/index.ts:718
const pkg = JSON.parse(readFileSync(join(pkgRoot, 'package.json'), 'utf8')) as { - 读取本地文件src/index.ts:723
const patch = readFileSync(join(pkgRoot, patchRel), 'utf8') - 读取本地文件src/index.ts:746
const content = readFileSync(patchPath, 'utf8') - 写入本地文件src/index.ts:751
appendFileSync(patchPath, body, 'utf8') - 执行外部命令来自配置/变量src/index.ts:794
const child = spawn( - 发起网络请求src/index.ts:998
const r = await fetch(candidate) - 请求外部主机raw.githubusercontent.comsrc/index.ts:1033
const r = await fetch(`https://raw.githubusercontent.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/${branch}/${clean.split('/').map(enc - 发起网络请求src/index.ts:1033
const r = await fetch(`https://raw.githubusercontent.com/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/${branch}/${clean.split('/').map(enc - 写入本地文件src/index.ts:1107
await mkdir(join(homedir(), '.dsh'), { recursive: true }) - 写入本地文件src/index.ts:1108
await writeFile(MARKET_UPDATED_CACHE_FILE, new TextEncoder().encode(JSON.stringify(updatedCache ?? {}))) - 发起网络请求src/index.ts:1119
const res = await fetch(url, { - 发起网络请求src/index.ts:1171
const res = await fetch(url, { - 写入本地文件src/index.ts:1647
await mkdir(dirname(path), { recursive: true }) - 删除本地文件递归src/index.ts:1709
await rm(sessionDir, { recursive: true, force: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:raw.githubusercontent.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-session-stats@deepseek-ai/dsh-token-meter@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-session-log-export给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
4 张 · 点击查看大图功能亮点
- 抽屉浮层界面
- 全宽对话布局
- 热加载安装市场
DeepSeek Harness 网页版移动端 shell UI 插件:抽屉浮层、全宽对话、设置面板、支持热加载安装的市场。
README
由 DeepSeek 最新模型翻译生成dsh-mobile-shell
DeepSeek Harness Web 的移动端外壳插件。窄屏( ⚠️ 市场内一键安装不保证稳定成功(受网络 / 构建环境影响)。推荐复制仓库链接,直接用 dsh 命令安装(见下方安装)。
会话状态面板
- Status 标签页:在会话头部新增 Status 标签(与 Chat / Trajectory 并列),展示轮数 / 步数 / 耗时 / TTFT / 缓存命中 / token 用量
- 统计栏一行滚动:所有指标收进一条固定高度(28px)的横向滚动条,底部不被撑高
自定义推理参数
- Reasoning Effort 配置:为自定义 provider 的模型添加 reasoning effort 选项(off / low / high / xhigh / max)
- reasoningEfforts 自动回填:模型未声明 reasoningEfforts 时自动补全默认值
- 协议切换安全:thinkingFormat / supportsReasoningEffort 等 completions 专属开关不再自动写入模型配置,provider 在 openai-completions / openai-responses 之间任意切换都不会触发保存校验报错
其他增强
展开完整文档(README 剩余 1 节)
dsh-mobile-shell DeepSeek Harness Web 的移动端外壳插件。窄屏( ⚠️ 市场内一键安装不保证稳定成功(受网络 / 构建环境影响)。推荐复制仓库链接,直接用 dsh 命令安装(见下方安装)。 会话状态面板 - Status 标签页:在会话头部新增 Status 标签(与 Chat / Trajectory 并列),展示轮数 / 步数 / 耗时 / TTFT / 缓存命中 / token 用量 - 统计栏一行滚动:所有指标收进一条固定高度(28px)的横向滚动条,底部不被撑高 自定义推理参数 - Reasoning Effort 配置:为自定义 provider 的模型添加 reasoning effort 选项(off / low / high / xhigh / max) - reasoningEfforts 自动回填:模型未声明 reasoningEfforts 时自动补全默认值 - 协议切换安全:thinkingFormat / supportsReasoningEffort 等 completions 专属开关不再自动写入模型配置,provider 在 openai-completions / openai-responses 之间任意切换都不会触发保存校验报错 其他增强 - 聊天字号调节:底部字号滑轨,实时调整消息文字大小并持久化 - Enter 换行:输入框 Enter 换行、Shift+Enter 发送(移动端友好) - 附件折叠:[附件] 块折叠为原生 ,输入区不被撑高 - 会话行三点菜单:长按或右键会话行弹出三点菜单(重命名 / Fork / 归档),菜单弹出时抽屉保持打开 - 更新通知:插件版本更新后一次性 toast 提示「手机UI插件已更新 v0.1.0,本页已是新界面」 - 中英双语:zh / en 两套 locale,UI 文案跟随系统语言 安装 dsh plugin --profile web add github:Yui-Little/dsh-mobile-shell 仓库自带构建产物,一条命令直接安装,安装后即热加载生效(无需重启)。 本地开发: dsh plugin --profile web add link:/path/to/dsh-mobile-shell 构建 pnpm install pnpm build 产物 lib/ 与源码同步入库,改动源码后重新构建再提交。 验证 - pnpm verify 类型检查;dsh --profile web --dump-config 应出现插件层 - 移动端(390px):rail 消失、抽屉开合/遮罩、设置 sheet 适配、插件市场加载、Status 标签页渲染 - 桌面端(≥ 1024px):与未安装时一致 兼容性 - 需要 :has() 选择器(Chromium 105+) - prefers-reduced-motion: reduce 下自动禁用动画 致谢 - 侧滑抽屉方案源自 mexiaosqwq/dsh-web-mobile(MIT),本插件在其基础上重写扩展,仅保留移动端抽屉与适配部分 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Yui-Little/dsh-mobile-shell
为窄屏网页套上抽屉式移动界面,一键热装
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目