前言¶
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
典型用法与验证思路¶
- 在 web profile 中按上文命令安装并
dsh restart。 - 用浏览器将视口缩到 ≤640px,或直接在手机上打开同一 DSH Web 地址,检查侧栏是否 overlay、点击会话后侧栏是否收起、Enter 是否换行且由发送按钮提交。
- 若需精简 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