前言¶
DeepSeek Harness (DSH) 採用“一切皆插件”的架構理念,允許用戶通過插件擴展功能。在 Web GUI 的使用場景中,開發者常需要定製視覺風格。dsh-cerrda-theme 是一個部署級靜態 web 插件,它爲 DSH Web GUI 提供了一套基於 cerrda 風格的暗色主題方案,解決了原生界面定製化的需求。
核心功能¶
該插件包含以下視覺與技術特性:
- 配色體系:採用 rose/purple oklch 配色體系。
- 視覺組件:包含 Liquid Glass 風格的輸入欄與 hero 面板,以及 SVG 位移濾鏡實現的回到底部按鈕。
- 動態背景:集成 Silk WebGL2 動態背景,並包含 CardSpotlight、Ripple、ShimmerBorder 等交互效果。
- 字體與樣式:使用 Sora / Fraunces / JetBrains Mono 字體,以及 CSS 液態玻璃效果(應用於側邊欄、詳情列、會話頭部、工具卡片等)。
安裝與啓用¶
安裝該插件需要 pnpm 已在系統 PATH 上。安裝後,需重啓 DSH 進程才能使配置生效。
安裝命令:
dsh plugin --profile web add dsh-cerrda-theme
驗證安裝:
dsh --profile web --dump-config | grep dsh-cerrda-theme
在瀏覽器開發者工具的網絡面板中,應能觀察到 /plugins/dsh-cerrda-theme/client.js 的請求。
卸載:
dsh plugin --profile web remove dsh-cerrda-theme
重啓進程後,界面將恢復默認外觀。
本地開發¶
如果需要在本地修改主題源碼,需遵循以下工作流:
- 修改源碼:所有樣式與邏輯的改動位於
src/目錄下的cerrda-theme-client.js。 - 構建:在倉庫根目錄執行構建命令。該命令會先運行
scripts/vendor-number-flow.mjs將 vendor 資源內聯,再運行scripts/build.mjs生成lib/client.js。 - 生效:
- 若僅修改 CSS/JS 內容,可在 DSH 啓動後硬刷新瀏覽器頁面(Ctrl+Shift+R)。
- 若修改了
package.json或cordis.patch.yml,必須重啓 DSH 進程。
本地未發佈版本(倉庫根目錄即爲包)的安裝命令:
dsh plugin --profile web add .
工作原理¶
該插件作爲一個 bundle 包,與 @deepseek-ai/dsh-base 等底層包機制一致:
- Bundle Patch:
dsh.bundle.patch指向./cordis.patch.yml,安裝後會將本包追加進dsh.profile.bundles層棧,在啓動時參與組合。 - Client 注入:
dsh.client聲明瀏覽器 half,dsh-client-modules會將其收錄進window.__DSH_BOOT__,並在服務/plugins/dsh-cerrda-theme/client.js。 - 宿主與導出:
main字段指向空宿主 half,exports["./client"]導出瀏覽器 bundle,通過window.__ModuleLoader__.load註冊,並手動注入 CSS 樣式。
注意事項¶
- 進程重啓:Web profile 的熱更新(HMR)已禁用,bundle 層變更僅在進程啓動時應用,因此安裝或修改配置後必須重啓 DSH。
- 依賴要求:確保
pnpm已正確安裝並在系統路徑中。 - 源碼審查:安裝任何社區插件前,建議檢查源碼與許可證(本項目爲 MIT 協議)。
生態位置¶
該插件由用戶 Cerrda 維護,可在社區目錄 dsh-cerrda-theme 查看,源碼位於 GitHub。