dsh-agentbox:为 DSH Web Shell 补齐小屏与移动端体验

前言

DeepSeek Harness(DSH)的 Web Shell 默认按桌面布局设计:官方样式里几乎只有 prefers-reduced-motion 一类媒体查询,没有针对手机宽度的断点。在窄屏上仍会呈现三栏桌面布局,侧边栏会挤压对话区,输入框的 Enter 行为也偏桌面习惯。若你经常用手机或小平板访问 DSH(例如把实例当作长期在线的 agent box),这些细节会直接影响可用性。

下面介绍社区插件 dsh-agentbox:以可开关的 DSH 插件形式交付移动端与小屏修正,而不是直接改上游补丁,以便在 DSH 升级后仍可通过 profile 组合保留能力。

这是什么

  • 名称:dsh-agentbox(GitHub:charysrinathsc/dsh-agentbox)
  • 维护者:charysrinathsc
  • 分类:客户端(Web profile)
  • 定位:面向 DeepSeek Harness Web Shell 的移动端与小屏修复,各项能力默认开启,并可通过配置逐项关闭。
  • 许可证:MIT(见仓库 README)

插件源于作者长期在手机上驱动 DSH 的实际使用场景;与「改源码打补丁」不同,它通过 DSH 的插件与 bundle patch 机制注入样式与行为。

核心功能

功能均挂在开关后,默认全部为 on。README 中的对照如下。

开关 作用
mobileCss 仅在宽度 ≤640px 时:收回 56px 轨道、让打开的侧边栏覆盖对话区而非挤压、点击会话后自动收起侧栏、避免 transcript 透过 composer 显示。
usageDockCompact 将 usage 指示压成单行。
usageDockTerse 将 dock 改写为符号形式(如 ↓319M ·↑937K ·⚡100%),去掉冗长指标。
enterNewline 在移动端:Enter 换行,发送按钮负责发送;与 stock DSH「Enter 发送、Shift+Enter 换行」相反,更符合手机键盘习惯。

此外还有若干小修正:composer 使用不透明背景,避免 transcript 从输入带周围透出;dock 允许换行而不是被裁切。

安装与启用

安装命令来自仓库 README,需已有带 web profile 的 DSH 环境。dsh plugin 会在 profile 目录内转发到 pnpm。

# into a profile — `dsh plugin` forwards to pnpm in the profile directory
dsh plugin --profile web add github:charysrinathsc/dsh-agentbox

# then sign the profile
dsh restart

包内带有 dsh.bundle.patch,会由 profile 自动组合进 bundle。若要关闭某项能力,在 profile 的 cordis.patch.yml 中覆盖配置,例如关闭移动端 Enter 换行:

- id: dsh-agentbox
  config:
    enterNewline: false

典型用法与验证思路

  1. 在 web profile 中按上文命令安装并 dsh restart。
  2. 用浏览器将视口缩到 ≤640px,或直接在手机上打开同一 DSH Web 地址,检查侧栏是否 overlay、点击会话后侧栏是否收起、Enter 是否换行且由发送按钮提交。
  3. 若需精简 usage 区域,保持默认即可体验 usageDockCompact 与 usageDockTerse;不需要时可仅在 cordis.patch.yml 里逐项关闭(字段名与 README 表格一致)。

仓库 tools/ 目录提供维护用脚本(面向改插件或升级 DSH 后的自检,非最终用户必跑步骤):

  • health.mjs:检查插件依赖的 DOM/CSS 假设是否仍成立(对 25 条负载假设做探测,失败时非零退出)。
  • regress.mjs:在 WebKit 下检查行为是否仍符合预期(失败时非零退出)。

更细的尺寸、踩坑与回退记录见仓库内 INTERNALS.md。

适用场景与注意

适合谁

  • 已在 DSH 中使用 web profile,并需要在手机或 ≤640px 宽度下稳定操作 Web Shell 的开发者或自用部署者。
  • 希望修正项随 DSH 版本更新仍以插件形式保留,而不是维护私有 CSS 补丁的人。

环境要求(README)

  • 具备 web profile 的 DSH。
  • 移动端相关能力需在 ≤640px 宽度下验证;其余开关在任意宽度均可生效。

诚实限制(README Caveats)

  • iOS 键盘:composer 仍可能落在 iOS 键盘下方。Safari 会缩小 visual viewport 而不改 layout viewport;曾尝试用 visualViewport.height 调整 frame 反而更差并已回退,README 将其视为上游层面问题。
  • 选择器脆弱性:DSH 的 class 名带 hash,插件通过子串匹配,DSH 改版后可能失效;升级后宜跑 health.mjs / regress.mjs 或人工点一遍关键路径。
  • 版本绑定:作者在单一 DSH 版本上开发与验证,依赖 CSS 与 DOM 结构,大版本升级后需重新核对。

安全与信任

DSH 插件在 当前 dsh 进程权限 下运行,客户端插件会参与 Web 前端的加载与展示。安装前请自行阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的部署策略。社区目录站点(如 SkillHub 上的插件页)为独立生态索引,与 DeepSeek / 幻方无官方从属关系,不等同于官方应用商店。

结尾

dsh-agentbox 把「小屏布局、侧栏交互、usage dock 密度、移动端 Enter 行为」打包成可配置的 DSH 客户端插件,适合以手机或小窗口长期驱动 DSH Web Shell 的场景。安装与关闭单项能力均以 README 中的 dsh plugin 命令与 cordis.patch.yml 为准。

  • 目录页:https://www.skillhub.cn/plugins/charysrinathsc/dsh-agentbox
  • GitHub:https://github.com/charysrinathsc/dsh-agentbox
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye