前言¶
DeepSeek Harness(DSH)的 Web 界面按桌面佈局設計。在窄屏手機上,左側會話側欄會擠佔主內容區,展開收起也缺少常見的移動端交互模式。社區裏曾有 dsh-web-mobile 等方案;dsh-kimi-shell 從 v0.3 起改爲獨立移動殼,單插件安裝、無額外依賴,把會話抽屜改造成 Kimi 風格的底部上滑浮層,桌面端通過媒體查詢與指針類型完全隔離,不受影響。
下面介紹插件定位、能力邊界、安裝方式與調試要點。事實以 GitHub 倉庫 README 爲準。
這是什麼¶
dsh-kimi-shell 是 DSH 的 Web 客戶端插件(維護者 Bill-666code),面向 dsh-web 的手機瀏覽器場景:在觸屏、窄屏條件下,將會話側欄呈現爲 100vw × 82dvh 的底部浮層(圓角頂、抓手、遮罩),並用右下角 FAB 作爲唯一入口;選中會話或點遮罩後自動收起。插件使用自有 data-kimi-* 命名空間,不 patch 宿主組件,不寫宿主半邏輯。
分類上屬於 客戶端 改造;與官方 DeepSeek / 幻方無從屬關係,安裝來源爲社區目錄與 GitHub,使用前宜自行審閱源碼與 MIT 許可證。
核心功能¶
底部浮層與會話入口¶
浮層開合採用與宿主 data-sidebar-collapsed 綁定的 display 語義,避免宿主模態凍結機制把過渡動畫釘在半途。收起態僅保留系統色自適應的 FAB;展開後列表鋪滿整寬,觸屏行高約 44px,工作區分組改爲緊湊小節頭,並隱藏品牌行。
v0.5.0:項目行與重命名¶
宿主在文件夾行上靠 :hover 才顯示「新建會話」等按鈕,觸屏設備無法 hover。插件在文件夾行尾 常顯 34px 新建按鈕,點按即在對應文件夾新建會話;同容器內帶刪除工作區等操作的 ⋯ 菜單仍保持隱藏,會話行的歸檔/置頂 likewise 不動,降低誤觸。
宿主將「雙擊標題」綁定爲重命名,手機快速連點易誤彈。插件攔截真實雙擊,改爲 長按會話行 500ms(短震動)喚起原生重命名,鬆手不再順帶切換會話。
v0.4.0:設置彈窗手機化¶
桌面雙欄設置小窗改爲近全屏單列:頂部分類爲橫滑藥丸標籤,內容全寬縱滾,主題三選橫排等分。作用域錨定 :has(> nav),重命名/刪除確認等小彈窗保持宿主樣式,並統一疊在浮層之上。
輸入法、主題與 viewport¶
切換或新建會話後 不再自動聚焦輸入框,避免鍵盤擋住會話列表;直接點輸入框仍可正常輸入。
若用戶主題偏好仍爲 system,手機端首次加載會 一次性 改爲 light 並寫入宿主 user-settings(服務端持久化);已顯式選擇 dark 的不改動。
補齊 viewport-fit=cover、interactive-widget=resizes-content,禁用雙擊縮放,輸入區 16px 以防 iOS 聚焦放大。
生效範圍與互斥¶
全部邏輯鎖在 (max-width: 1023px) and (pointer: coarse),鼠標指針在任何窗口寬度下不生效。
若已安裝 dsh-web-mobile,本插件 自動休眠(控制台有提示);卸載後者後自動接管。README 記載可與 dsh-better-sidebar 0.24.1 在 dsh 0.2.0-rc.1 下共存。
環境要求¶
- DeepSeek Harness
dsh≥ 0.2.0-rc.1(README 在 0.2.0-rc.1 實測;幀探測鉤子在 0.1.7-rc.2 亦可用) - 無插件依賴(v0.2 及更早依賴 dsh-web-mobile,v0.3 起獨立)
安裝與啓用¶
插件在 web profile 下安裝,熱生效,無需重啓服務:
dsh plugin --profile web add github:Bill-666code/dsh-kimi-shell
卸載:
dsh plugin --profile web rm dsh-kimi-shell
裝好後用手機瀏覽器打開 DSH Web 即可;桌面端不受影響。
注意: 插件隨當前 DSH 進程與 Web profile 加載,具備與宿主相同的運行上下文。安裝前應閱讀倉庫源碼與許可證,確認符合你的部署策略。
工作原理(摘要)¶
- 外殼 reconciler:通過
[data-shell-overlay]的父元素定位宿主幀並標記data-kimi-frame(MutationObserver + rAF),保證 FAB / 遮罩存在並在宿主重渲染後自愈。 - CSS:媒體查詢門控下將側欄列改爲底部浮層佈局;開合由宿主
data-sidebar-collapsed驅動,並輔以 300ms 巡檢內聯兜底。 - 開合 API:使用官方
ctx.layout.toggleSidebar()(dsh 0.2.0 起插件需在 manifest 中inject: ['layout','theme'])。 - 主題:
ctx.theme.setTheme('light')僅在偏好爲 system 時一次性寫入。
會話樹等選擇器採用 [class*="sessionRow"] 等子串匹配以適配 CSS Modules;宿主大版本改類名時可能需要跟隨更新插件版本。
典型用法與調試¶
日常使用: 安裝後無需額外配置。窄屏觸屏下點 FAB 打開浮層瀏覽/切換會話;點遮罩或選中會話後浮層收起。
桌面瀏覽器模擬移動效果: 原生 media query 不受 JS 測試開關影響,無頭或桌面窗口默認看不到移動殼。可在控制台執行後刷新:
sessionStorage.setItem('kimi-test','1')
此時 CSS 會去掉 media 包裝、JS 外殼強制啓用。退出可用 URL 參數 ?kimi-test=0。TEST 模式下不會改寫服務端主題偏好。
適用場景與注意¶
適合: 經常在手機上用 DSH Web 查看會話、切換工作區,希望側欄交互接近主流「底部抽屜 + FAB」的產品習慣,且不想同時維護 dsh-web-mobile 的用戶。
注意:
- 與
dsh-web-mobile二選一(後者在場時本插件休眠)。 - 依賴宿主 DOM 結構與官方 layout/theme 注入能力,升級 DSH 或側欄相關插件後建議迴歸測試。
- 社區目錄頁:skillhub.cn 插件條目;源碼與 issue:GitHub。
結尾¶
dsh-kimi-shell 把 DSH Web 在觸屏窄屏下的會話導航收成 Kimi 風格底部浮層,並補齊 hover 缺失、誤觸重命名、設置彈窗與鍵盤遮擋等移動端細節,同時保證桌面零影響。若你的 workflow 以手機瀏覽器訪問 DSH 爲主,可按上文命令在 web profile 安裝驗證。
- 目錄頁:https://www.skillhub.cn/plugins/Bill-666code/dsh-kimi-shell
- GitHub:https://github.com/Bill-666code/dsh-kimi-shell