前言¶
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