dsh-webui-background:爲 DeepSeek Harness Web UI 提供可配置背景圖

前言

DeepSeek Harness(下稱 DSH)的理念是「一切皆插件」,但 Web UI 的外觀細節並不在默認能力之內。想給界面加一張背景圖,常見做法是直接修改 website/public、apps/web/public 中的靜態文件,這類改動遊離在插件體系之外,不方便管理。

下面介紹 dsh-webui-background。它是一個獨立插件,通過 Harness 的組合包與客戶端插件擴展點安裝,不修改、不替換上述文件,背景圖的設置和圖片都由插件自己保存。

這是什麼

dsh-webui-background 由 lx963 維護,許可證爲 MIT,當前版本 0.1.0-rc.3。它的定位一句話可以說清:爲 DeepSeek Harness Web UI 提供可配置的背景圖。裝好之後,設置頁面會多出一個「Web UI 背景」標籤頁,選圖、調遮罩、保存,立即生效。

核心功能

1、設置頁面內嵌「Web UI 背景」標籤頁,支持上傳、拖放和預覽圖片。
2、支持 PNG、JPEG、GIF 和 WebP,按文件內容識別格式,單張最大 20 MiB。
3、淺色模式與深色模式的遮罩分別調整,保存後立即生效。
4、可以暫時停用背景而保留圖片,也可以一鍵刪除圖片並恢復默認界面。
5、設置與圖片按 Harness profile 獨立保存,多個 profile 互不影響。
6、遠程頁面可以查看設置,但只有迴環地址頁面能夠修改,避免受信任 Host 上的設置被遠程網頁寫入。

安裝與啓用

需要 DeepSeek Harness 0.1.0-rc.5 或更高版本,插件依賴外部組合包與瀏覽器客戶端插件這兩個擴展點,舊版本不支持。

在 DeepSeek Harness 源碼倉庫根目錄執行:

pnpm dsh plugin --profile web add dsh-webui-background@next
pnpm dsh web

第一條命令把插件以 @next 標籤裝入 web profile,第二條啓動 Web UI。如果 Web UI 已經在運行,請重啓它,然後打開「設置 → 插件 → Web UI 背景」選擇圖片並保存。

兩個命令行細節:

  • 如果 dsh 已全局安裝並加入系統 PATH,可以去掉命令開頭的 pnpm;PowerShell 提示無法識別 dsh 時,使用 pnpm dsh。注意 npm dsh 不是有效的 npm 命令。
  • 卸載命令如下,卸載不會主動刪除 profile 數據,要清除圖片應先在插件頁面點擊「恢復默認」:
pnpm dsh plugin --profile web remove dsh-webui-background

從源碼安裝

git clone https://github.com/lx963/dsh-webui-background.git
cd dsh-webui-background
pnpm install
pnpm test
pnpm build

# 切換到 DeepSeek Harness 源碼倉庫根目錄,傳入插件源碼的絕對路徑
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-webui-background

前三步依次是安裝依賴、跑測試、構建,最後在 DSH 倉庫根目錄用絕對路徑把本地插件裝入 web profile。構建環境要求 Node.js ^22.19.0 || >=24 與 pnpm 10;發佈包在 prepack 階段生成 Host ESM、瀏覽器 CJS 和類型聲明。

數據存放在哪裏

每個 profile 的數據位於該 profile 目錄下的 data/webui-background/:

  • state.json 保存開關、遮罩和修訂號;
  • 圖片以 background-<sha256> 保存,即內容哈希作爲內部文件名,不帶擴展名。

上傳源文件可以用普通的 .webp、.png 等擴展名,插件會讀取內容自動識別格式;保存後不帶擴展名是正常行爲——瀏覽器通過插件的 /webui-background 路由取得正確的 Content-Type,不依賴磁盤擴展名。每個 profile 只保留一張當前圖片。

安全與限制

  • SVG 不受支持,因爲它可以包含主動內容。
  • 圖片必須通過魔數校驗,擴展名與瀏覽器傳入的 MIME 類型不作爲信任依據。
  • 圖片響應使用 no-store 與 nosniff;URL 中的修訂號僅用於頁面刷新當前圖片。
  • 每個 profile 只保留一張當前圖片,使用樂觀修訂號避免多個頁面靜默覆蓋彼此的設置。

適用場景與注意

適合長期自用 DSH Web UI、想調整界面外觀的開發者。如果按 profile 區分工作與個人環境,兩個 profile 可以各用一張背景圖,互不干擾。

動手之前有幾點提醒:

1、插件以當前 dsh 進程的權限運行。安裝任何第三方插件前,建議先閱讀源碼、確認許可證(本插件爲 MIT),再決定是否裝入。
2、SVG 不受支持,需要先把圖片轉成 PNG、JPEG、GIF 或 WebP。
3、單張圖片最大 20 MiB。
4、卸載不會刪除 profile 數據,清除圖片前先在插件頁面點擊「恢復默認」。

結尾

dsh-webui-background 把「換背景」這件小事做成了一個標準的插件:不改源碼文件、按 profile 隔離、遠程只讀、按文件內容校驗。對想微調 Web UI 外觀的 DSH 用戶來說,是一個成本很低的選項。

  • 社區插件目錄頁:https://www.skillhub.cn/plugins/lx963/dsh-webui-background
  • GitHub 倉庫:https://github.com/lx963/dsh-webui-background

其中 SkillHub 是獨立的社區目錄站點,與 DeepSeek、幻方沒有官方從屬關係,僅供檢索與索引。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜