前言¶
在 DeepSeek Harness(DSH)中,composer 的模型選擇器通常以單行列表的形式呈現,選項多時需要頻繁滾動。這種方式在寬屏上浪費空間,在窄屏上又難以快速定位。dsh-model-grid 把這個列表改成按提供商分組的響應式卡片網格,讓模型選擇更直觀。
是什麼¶
dsh-model-grid 是一個 DSH 客戶端插件,由 anonamerjaxon-dev 維護。它的作用是在 DSH 的模型選擇彈窗中插入一組響應式的卡片佈局,按提供商分組,而不是單行列表。
核心功能¶
1. 響應式網格佈局¶
網格列數根據彈窗寬度自動填充(auto-fill),最小列數爲 1,窄窗口時會自然降級。卡片之間有可配置的間距。
2. 按提供商分組¶
每個提供商保持獨立的區塊,標題橫跨整行,便於區分不同廠商的模型。
3. 兼容兩種模型菜單¶
- 原生
dsh-client-ui-model-selection下拉菜單 - 第三方
dsh-peakrate模型菜單(可選)
選擇器通過屬性和類名匹配,不依賴任意插件存在。
4. 可配置項¶
通過 config 傳入以下參數(默認值):
| 配置項 | 默認值 | 說明 |
|---|---|---|
maxWidth |
900 |
彈窗最大寬度(CSS px),限制範圍 240–4000 |
minCardWidth |
200 |
卡片最小寬度(CSS px),限制範圍 80–1200 |
gap |
6 |
卡片間距(CSS px),限制範圍 0–64 |
maxHeightVh |
76 |
彈窗高度上限(vh),限制範圍 20–100 |
hideCountdown |
true |
隱藏價格標籤中的長倒計時(如“· 14h 23m”) |
enabled |
true |
禁用時不再注入樣式 |
5. Host-only,升級安全¶
樣式通過 webserver/index-inject 事件注入到頁面 <head>,無需重新構建客戶端 bundle,插件在 DSH 更新後仍可正常工作。
6. 無運行時依賴¶
插件不依賴任何運行時庫。
安裝與啓用¶
這是一個 DSH profile 插件,需要放在 dsh.profile.bundles 中。
- 添加依賴到 profile:
dsh plugin --profile web add github:anonamerjaxon-dev/dsh-model-grid
- 在
~/.dsh/profiles/web/package.json的dsh.profile.bundles中加入"dsh-model-grid",然後重啓 profile:
dsh web
如需本地 checkout:
dsh plugin --profile web add link:/path/to/dsh-model-grid
同樣需要把 "dsh-model-grid" 加入 dsh.profile.bundles 並重啓 profile。
重啓 profile 是必須的:插件在啓動時加載,樣式在頁面服務時注入。
典型用法¶
在 profile 的 cordis.patch.yml 中添加配置示例:
- insert:
- id: model-grid
name: 'dsh-model-grid'
config:
maxWidth: 1100
minCardWidth: 180
hideCountdown: false
配置會與默認值合併,直接覆蓋需要修改的字段。
適用場景與注意¶
適合在需要頻繁切換模型、提供商較多的項目中使用,尤其是寬屏顯示器,能讓模型列表一目瞭然。
插件以當前 DSH 進程的權限運行,安裝前建議查看源碼與許可證(MIT)。
結尾¶
dsh-model-grid 用一套 host-only 的注入方案,把模型選擇器從單行列表改成了響應式卡片網格,配置靈活,兼容原生與第三方菜單。安裝後重啓 profile 即可生效。
- 目錄頁:https://www.skillhub.cn/plugins/anonamerjaxon-dev/dsh-model-grid
- GitHub:https://github.com/anonamerjaxon-dev/dsh-model-grid