dsh-chat-avatars:爲 DeepSeek Harness Web GUI 添加聊天頭像

前言

在 DeepSeek Harness (dsh) Web GUI 中,聊天界面默認沒有頭像顯示。默認情況下,用戶只能看到消息氣泡,缺少視覺標識。對於習慣在會話中快速識別身份的開發者來說,這會增加閱讀負擔。dsh-chat-avatars 插件通過在用戶消息右側、AI 消息左側添加頭像,解決了這一問題。

插件定位

dsh-chat-avatars 是一個爲 DeepSeek Harness (dsh) Web GUI 提供頭像功能的插件。由維護者 BlackRasion 開發,當前版本 0.1.3,採用 MIT 許可證。插件通過本地瀏覽器存儲管理頭像與設置,不依賴遠程服務。

核心功能

用戶/AI 頭像顯示

默認在用戶消息右側、AI 消息左側顯示頭像。支持調整頭像尺寸(24–60px)、選擇圓形或圓角形狀、分別控制兩側頭像的顯示與隱藏。

全局默認 + 工作區覆蓋

支持設置全局默認頭像,同時可以爲每個工作區單獨覆蓋頭像。未設置工作區頭像時,會繼承全局默認值。

上傳前交互裁剪

上傳頭像時支持交互式裁剪。支持的圖片格式包括 PNG/JPEG/WebP,文件大小限制 2 MB。提供拖拽、縮放和鍵盤操作,預覽效果即爲最終輸出。靜態頭像輸出爲 256×256。

動圖頭像

支持 GIF/APNG/動圖 WebP(≤6 MB)。插件在本地解碼動圖,自適應採樣 8–96 幀,並烘焙爲雪碧圖,使用 CSS steps() 播放。開啓 prefers-reduced-motion 時會凍結首幀。

大圖預覽與更換

在聊天中單擊頭像,會打開居中大圖預覽。預覽界面中可以直接更換頭像。

拍一拍效果

雙擊頭像觸發純本地效果,包括行抖動、氣泡提示和 WebAudio 合成音效。效果不寫會話事件、不聯網、不通知對方。支持配置用戶側/AI 側的拍一拍文案組(最多 8 條),每次隨機選擇且避免連續重複。

數據管理

支持導出/導入 JSON 格式的設置與頭像數據。提供清除全部數據功能和清理未使用的工作區頭像功能。多標籤頁會自動同步數據。

安全降級

插件會檢測 dsh 版本是否在支持區間(>=0.2.1-rc.2 <0.3.0)以及宿主契約是否匹配。不匹配時會自動暫停並回退到原生界面,不阻斷 GUI 啓動。

安裝與啓用

方式 1:GitHub Release tarball(當前推薦)

  1. 打開 Releases 頁面,下載最新 .tgz 文件(當前爲 dsh-chat-avatars-0.1.3.tgz)。
  2. 在終端執行安裝命令(把路徑和 profile 換成你的實際值):
dsh plugin --profile <profile> add /path/to/dsh-chat-avatars-0.1.3.tgz

例如 dsh 的 Web profile 常用 --profile web。
3. 刷新 dsh Web GUI;若未立即生效,重啓 dsh 後再打開。

安裝/啓用會寫入你的 dsh profile,屬於本機配置變更;請確認路徑與來源可信後再執行。

方式 2:npm(發佈準備中)

包名 dsh-chat-avatars。npm 發佈完成後可直接:

dsh plugin --profile <profile> add dsh-chat-avatars

當前請先使用上面的 tarball 方式。

使用方法

  1. 打開 設置 → 聊天頭像(Account menu → Settings → Chat avatars)。
  2. 在 Appearance 中啓用頭像、調整尺寸/形狀/顯示範圍。
  3. 在 Global defaults 中上傳全局默認頭像;需要時在 Workspace overrides 裏爲單個工作區覆蓋。
  4. 在聊天中:
    - 單擊頭像 → 大圖預覽(可在預覽內更換頭像);
    - 雙擊頭像 → 拍一拍(氣泡 + 音效);
    - 連續雙擊會重新彈出氣泡(視覺冷卻 300ms);音效 900ms 內只響一次。
  5. 動圖頭像支持 GIF/APNG/動圖 WebP;上傳後會按裁剪區域逐幀生成。開啓 prefers-reduced-motion 時凍結首幀。

拍一拍的文案組(可添加多條,每次隨機)、音效開關與音量在設置頁 Interaction 卡片中配置。

升級與卸載

# 升級:下載新的 release tarball 後再次 add 即可;設置與頭像保留
dsh plugin --profile <profile> add /path/to/dsh-chat-avatars-<new>.tgz

# 卸載
dsh plugin --profile <profile> remove dsh-chat-avatars

兼容性與注意事項

  • 需要 dsh 版本 >=0.2.1-rc.2 <0.3.0。超出範圍時插件會自動暫停並回退到原生界面。
  • 零運行時依賴,不需要 npm install;不修改 dsh 源碼,不寫 document.body、不寫會話事件、不聯網。
  • 動圖播放依賴瀏覽器 ImageDecoder(需要 http://127.0.0.1 或 https 等安全上下文);不可用時只拒絕動圖,靜態頭像仍可用。
  • 窄屏(<520px)下頭像會按設計隱藏。
  • 數據只保存在當前瀏覽器的 localStorage(key:dsh.chat-avatars.v1),不上傳、不聯網、不讀取消息正文。
  • 卸載插件不會自動刪除 localStorage;如需徹底清理,請在設置頁使用「清除全部數據」,或在瀏覽器 DevTools 刪除對應 key。

適用場景

適合需要在 dsh Web GUI 中爲用戶和 AI 添加頭像標識的開發者。適合希望在工作區級別自定義頭像、使用動圖頭像、或需要本地化拍一拍效果的場景。

總結

dsh-chat-avatars 通過在聊天界面添加用戶/AI 頭像、支持全局默認與工作區覆蓋、交互式裁剪、動圖頭像、大圖預覽與拍一拍等功能,提升了 dsh Web GUI 的視覺體驗。插件採用零運行時依賴、純本地數據存儲的設計,數據安全可控。當前版本 0.1.3,支持 dsh 0.2.1-rc.2 至 0.3.0 之間的版本。

  • 插件目錄頁:https://www.skillhub.cn/plugins/BlackRasion/dsh-chat-avatars
  • GitHub 倉庫:https://github.com/BlackRasion/dsh-chat-avatars
羽毛球分组比赛记分
小程序二维码

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

小夜