前言¶
DeepSeek Harness(dsh)默認 Web UI 是一套現代淺色界面,打開後是會話、側欄和輸入框。對用過 2006 年 QQ 客戶端的人來說,那套珊瑚藍窗口、九宮格標題帶、宋體消息列表,是另一套完全不同的視覺記憶。社區插件 dsh-qq2006 做的就是這件事:在 Web UI 裏註冊一個可切換的 qq2006 主題,把配色、字體和窗口鉻件往那個藍色小企鵝靠。
DeepSeek Harness 目前處於開發者預覽,官方倉庫寫明架構是「一切皆插件」。主題、側欄、工具都可以以外置包的形式裝進某個 profile。需要說明:本文依據的插件目錄是社區站點 deepseek-harness-plugin.com,它收錄第三方插件,與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。
下面按目錄詳情頁、GitHub 倉庫 README、package.json 以及官方 deepseek-ai/deepseek-harness 文檔交叉覈對:這個插件實際提供什麼、兩種安裝路徑差在哪、裝完怎麼切皮膚。
這是什麼¶
dsh-qq2006 是一款主題與外觀插件,由 LaplaceYoung 維護,npm 包名爲 @dsh-external/dsh-qq2006,當前版本 0.1.0,主要語言是 TypeScript。插件代碼採用 MIT 許可證。GitHub 倉庫在 2026-08-17 查詢時爲 12 星;社區目錄頁當時顯示 9 星,以倉庫頁面爲準。
它要解決的問題很具體:給 DSH Web UI 增加一個名爲 qq2006 的可選主題,而不是改掉默認淺色 / 深色皮膚。實現上分兩層:
- 插件包本身:向主題服務註冊
qq2006,把當前主題鏡像到body[data-ds-skin],並附帶一份全局皮膚表(復古字體、滾動條、九宮格工具類、.qq-btn三態鈕)和珊瑚藍 token。 - 源碼補丁(完整效果):登錄窗、主面板、聊天窗鉻件、列表式消息、QQ 秀右側欄和原版素材,改的是宿主 UI 包源碼。README 寫明這些效果無法通過 npm 發行版的插件機制注入。
目錄頁的一句話簡介是:「註冊 qq2006 主題、鏡像 body[data-ds-skin]、全局皮膚表與完整素材」。完整素材在倉庫的 assets/qq2006/ 裏,但發行版安裝並不會把登錄窗到聊天窗的組件級外觀全部帶上。這一點後面單獨列表說明。
核心功能¶
1、可切換、可持久化、默認皮膚零污染¶
插件在客戶端調用 ctx.theme.register,主題 id 爲 qq2006,colorScheme 爲 light,並帶上一組 --dsw-alias-* 珊瑚藍覆蓋(品牌色約爲 rgb(45, 128, 208))。註冊成功後,它出現在設置 → 外觀一行,位置是第 4 個選項,前三個是內置的 light / dark / system。
偏好寫在 localStorage 的 dsh.theme。刷新或重啓後,插件會讀這個鍵;若值爲 qq2006,再調用 setTheme 把主題設回去。源碼註釋解釋了原因:主題服務啓動時只認內置三套,自定義 id 會先回落到 system,必須在本主題註冊完成後再斷言一次。
生效標誌是 body[data-ds-skin='qq2006']。插件只在當前主題是 qq2006 時寫入該屬性,切走時只刪除自己寫過的屬性,不碰別人的 data-*。全局 CSS 和組件補丁全部錨定這個祖先選擇器,所以切回默認皮膚時不應留下藍色窗口框或宋體消息樣式。倉庫把這稱爲「零污染契約」。
package.json 裏 dsh.client.platform 爲 web,immediately 爲 true,依賴主題服務 @deepseek-ai/dsh-client-ui-theme。它是 Web UI 側的外觀插件,不是 headless / TUI profile 用的包。
2、全局皮膚表:字體、滾動條、九宮格、三態鈕¶
src/styles/qq2006.css 是發行版能直接帶上的那一半外觀。文件頭寫明:每一條規則都以 body[data-ds-skin='qq2006'] 爲作用域。內容包括:
- 字體:
Tahoma, 'SimSun', '宋體', 'Microsoft YaHei', sans-serif - 細滾動條,滑塊用藍色漸變
- 九宮格窗口鉻件工具類:
.qq-skin-title/.qq-skin-head/.qq-skin-body(標題帶、工具帶、窗體分別用左右帽圖 + 中間平鋪) - 標題欄三態按鈕:最小化、換色、關閉爲 16×16;「菜單」爲原版 65×24 文字鈕
- 漸變按鈕
.qq-btn(白到淺藍,邊框#00558e) - 在線 / 離線狀態點、金色
:focus-visible焦點環 - 消息字號循環用的
--qq-msg-font-size(小 / 中 / 大)
這些類要真正鋪滿登錄窗和聊天窗,還需要宿主組件去引用,並配上 /qq2006/img/... 靜態資源。發行版只註冊主題和這份表,組件是否用得上這些類,取決於你走的是哪條安裝路徑。
3、兩條路徑的能力邊界¶
README 用一張表把發行版和源碼路徑拆開,這是選用該插件時最容易忽略的一點:
| 能力 | npm 發行版(dsh plugin add) |
源碼 monorepo(fork 分支或補丁) |
|---|---|---|
| qq2006 主題 + 珊瑚藍 token 換膚 | 有 | 有 |
| 全局皮膚表(字體 / 滾動條 / 九宮格類) | 有 | 有 |
| 登錄窗 / 主面板 / 聊天窗鉻件 | 無 | 有 |
| 原版列表式消息 / QQ 秀右欄 / 消息操作 | 無 | 有 |
| 素材(按鈕圖標 / 頭像 / 提示音) | 無 | 有 |
倉庫已提交預構建產物 lib/,並聲明 dsh.bundle.patch 指向 cordis.patch.yml,會把插件掛成客戶端行 ui-skin-qq2006。所以用目錄頁那條命令,能裝上的是「主題註冊 + 全局表」,不是完整 QQ 客戶端仿製。作者寫的後續計劃是:等 DSH 官方提供客戶端插件的靜態資源與 UI 槽位後,再把組件級皮膚遷進插件包。
源碼路徑下,文檔還列出了登錄九宮格窗、主面板 10 鈕、聊天窗大工具欄 12 鈕 / 小工具欄 8 鈕、列表式消息(自己綠色暱稱、對方深藍紫暱稱、HH:MM:SS 時間、宋體正文)、QQ 秀右側欄,以及窗口內四套換膚預設:經典藍 / 粉紅 / 薄荷綠 / 紫羅蘭。這些都綁定在 fork 的 skin/qq2006 分支或 patches/qq2006-skin.patch 上,不要當成 dsh plugin add 之後立刻出現的界面。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行:
dsh plugin add github:LaplaceYoung/dsh-qq2006
官方 CLI 文檔裏,插件管理的完整形式是 dsh plugin --profile <profile> add <spec>,會在對應 profile 目錄裏轉發給 pnpm。本插件的 platform 是 web,倉庫 README 寫的發行版命令因此帶了 profile:
dsh plugin --profile web add https://github.com/LaplaceYoung/dsh-qq2006
兩條命令指向同一個 GitHub 倉庫。目錄頁以 github:LaplaceYoung/dsh-qq2006 爲準;若當前 dsh 要求顯式指定 profile,使用 README 這條。需要可復現安裝時,目錄頁建議固定 commit:
dsh plugin add github:LaplaceYoung/dsh-qq2006#commit
把 commit 換成倉庫裏實際的提交哈希。裝完後按官方插件說明重啓 web profile,讓新的 bundle 層參與合成:
dsh --profile web
或使用別名 dsh web。Web UI 默認地址是 http://127.0.0.1:3080。打開後進入 設置 → 外觀,選擇 QQ2006 皮膚。
插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。
典型用法¶
只裝發行版:換珊瑚藍主題¶
適合先看 token 和全局表是否生效。步驟來自目錄頁與 README:
- 確認本機已能啓動 Web UI(官方文檔示例:
npx @deepseek-ai/dsh web)。 - 執行上一節的
dsh plugin add(或帶--profile web的寫法)。 - 重啓 web profile,打開
http://127.0.0.1:3080。 - 設置 → 外觀 → QQ2006 皮膚。
- 需要對比時,再切回 light / dark / system。按倉庫契約,默認皮膚不應殘留
data-ds-skin='qq2006'。
發行版啓用後,README 的原話是:獲得 qq2006 主題註冊(全 UI 珊瑚藍 token 換膚)+ 全局皮膚表(復古字體、滾動條、九宮格工具類、.qq-btn 三態鈕)。
要完整皮膚:走源碼分支或補丁¶
完整實現在 LaplaceYoung fork 的 skin/qq2006 分支。README 給出的命令是:
git clone https://github.com/LaplaceYoung/deepseek-harness.git
cd deepseek-harness
git checkout skin/qq2006
pnpm install
pnpm run build
node --import tsx/esm apps/cli/src/bin.ts web
瀏覽器打開 http://127.0.0.1:3080,同樣在設置 → 外觀裏選 QQ2006 皮膚。
已經 checkout 了上游 deepseek-ai/deepseek-harness 的用戶,可以把插件倉庫裏的補丁打上去:
git apply patches/qq2006-skin.patch
README 註明該補丁基於上游 master。打補丁前應對齊當前上游提交,衝突需要自行處理。組件級補丁規則是:皮膚段只追加在各組件自己的 .module.css 尾部,選擇器必須帶 body[data-ds-skin='qq2006']。
源碼路徑下,聊天窗口標題欄的「更換顏色」會在經典藍 / 粉紅 / 薄荷綠 / 紫羅蘭之間循環,偏好鍵爲 dsh.qq.winSkin。發送快捷鍵文檔寫的是 Alt+S,與 Enter 等效。這些交互屬於宿主 UI 補丁,不是發行版插件包裏的獨立命令。
適用場景與注意事項¶
適合這幾類使用方式:
- 已經在用 DSH Web UI,想在外觀行多一個可隨時關掉的復古主題。
- 能接受發行版只有珊瑚藍 token 和全局表,完整窗口仿製願意自己構建 fork 或打補丁。
- 在做 DSH 主題插件,需要一份「註冊主題 +
data-ds-skin鏡像 + 作用域 CSS」的參考實現。src/index.ts/src/client/index.ts和cordis.patch.yml都在倉庫裏。
不適合、或需要先讀許可再決定的情況:
- 素材版權:
assets/qq2006/README.txt寫明素材來自 mengkunsoft/QQ2006,提取自騰訊原版 QQ2006 安裝包,版權歸騰訊,僅供學習交流,請勿商用。插件代碼是 MIT,素材不是。公開演示、二次分發或商用界面前應自行評估。 - 平臺:
dsh.client.platform爲web,不要指望裝進 TUI / headless profile 後出現這套皮膚。 - 權限:插件與當前 dsh 進程同權。即使這是外觀插件,安裝前仍應閱讀源碼和
LICENSE。 - 上游迭代:官方 README 寫明開發者預覽階段會有破壞性變更。組件級補丁打在宿主
.module.css上,上游改 class 名或 DOM 結構後,fork / patch 路徑可能失效;發行版也依賴主題服務的register/theme/changeAPI。 - 不要把目錄站當成官方商店:安裝源是 GitHub 上的社區倉庫,目錄頁只做收錄和展示。
小結¶
dsh-qq2006 把 2006 年 QQ 的珊瑚藍外觀接進 DeepSeek Harness 的主題體系:註冊 qq2006、鏡像 body[data-ds-skin]、用作用域 CSS 保證默認皮膚不被污染。用目錄頁命令安裝,得到的是主題和全局皮膚表;登錄窗到聊天窗的完整仿製,需要 fork 的 skin/qq2006 分支或倉庫裏的補丁。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-qq2006/
GitHub:https://github.com/LaplaceYoung/dsh-qq2006