dsh-image-tools:讓 DSH 對話裏的圖片能複製、能下載原圖

前言

DSH 裏跑智能體,經常會往對話裏貼截圖、傳圖片,或者讓模型/工具返回圖片。這類內容在界面上是能看見的,但你想把那張圖存下來並不容易:官方展示層沒有隨手可用的「複製」「下載」入口,很多時候只能另開截圖工具,圖像質量打了折,格式也可能被改掉。

dsh-image-tools 就是針對這個痛點的客戶端插件。它屬於 dsh-plugins-cn 維護的社區插件,分類爲客戶端,作用是在不改動消息佈局的前提下,給 DSH 對話中的圖片補上覆制和下載原圖的能力。下面介紹它的功能、安裝方式和適用邊界。

這是個什麼插件

一句話定位:一個僅接管圖片展示層的客戶端插件,給對話中的圖片提供複製與下載原圖兩個動作。

它解決的具體問題是:粘貼的截圖、上傳的圖片、助手與工具渲染的圖片,都缺少統一的複製/下載入口。

  • 複製得到的圖片進入系統剪貼板。
  • 下載得到的文件保留原始字節與格式,jpg 還是 jpg,不轉碼、不壓縮。
  • 插件只接管圖片展示層,不改變消息佈局;按README 的說法,卸載後官方表現立即恢復。

核心功能

插件覆蓋三類交互入口:

1、在縮略圖上右鍵,出現「複製圖片 / 下載原圖」。
2、鼠標懸停縮略圖時,右上角浮出兩個小圓鈕。
3、點開預覽後,底部工具條提供同樣的兩個動作。

實現上,插件接管四個圖片插槽:

  • conversation.chat.user.images
  • conversation.chat.message.images
  • tool.call.images
  • conversation.trajectory.images

它以 priority: 10 覆蓋官方 priority: 100 的註冊,因此能替換官方的圖片渲染。預覽層、右鍵菜單與 toast 統一註冊在 shell.overlay(list / root)。

原圖來源是 props.loadImage(attachment) 返回的 blob URL,與 session.readAttachment 使用的是同一份字節;也就是說複製和下載拿到的是原始數據,而不是重新編解碼的結果。

插件不讀官方 DOM、不向 document.body 追加節點、不 require 其他 Client 包,只用 --dsw-* 主題 token。

安裝與啓用

README 給出的安裝方式是通過倉庫裏的 install.ps1。先做一次環境檢查:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Profile imagecheck
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Doctor -Profile imagecheck

上面這條 -Doctor 命令用於檢查安裝環境。確認無誤後,裝到日常 profile(會寫 profile 的 node_modules 與 package.json,需要重啓 DSH 生效):

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Profile desktop

需要回滾時:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Rollback -Profile desktop

安裝命令原文來自 README,不要替換成其他包管理器命令;imagecheck / desktop 均按 README 原樣保留。

典型用法

插件沒有獨立的運行時命令,裝好並重啓 DSH 後即可使用。

1、在對話裏粘貼一張截圖,或讓助手/工具產出一張圖片。
2、把鼠標懸停在縮略圖上,右上角出現兩個小圓鈕,點擊複製或下載。
3、或者右鍵縮略圖,選擇複製圖片/下載原圖。
4、點開大圖預覽,底部工具條同樣能複製、下載。

下載得到的是原始文件;複製得到的圖片進入系統剪貼板,可直接粘到編輯器、IM 或文檔裏。

本地開發與驗證:

npm run check
npm test
npm run pack:dry

npm run check 做語法與 manifest 校驗,npm test 跑測試,npm run pack:dry 預覽打包產物。設計稿與驗收記錄放在倉庫的 docs/ 目錄。

適用場景與注意

適合這類開發者:需要在 DSH 對話裏頻繁處理截圖、模型生成圖,並要求拿到未壓縮、未轉碼的原始圖片。它只做展示層的圖片操作,不涉及消息收發邏輯。

需要注意的幾點:

1、插件以當前 dsh 進程的權限運行,安裝前應先檢查源碼與許可證。本插件許可證爲 MIT。
2、只處理消息圖片。非圖片附件(PDF/Office/zip)仍是官方靜態卡片,本插件不覆蓋;側欄預覽裏的工作區圖片也不在範圍內。
3、Markdown 外鏈圖片(http/https)保留瀏覽器默認行爲,不受影響也不被接管。
4、GIF 複製到剪貼板會變成靜態 PNG(Chromium 剪貼板只接受 PNG),下載仍保留原 GIF。
5、超大圖(單邊大於 16384,或面積大於 2.68 億像素)會跳過複製,請改用下載。

結尾

dsh-image-tools 把「複製、下載對話圖片」這件事補全了,代價很小:只接管圖片展示層,不碰消息佈局,卸載後即恢復官方表現。對需要在 DSH 裏處理大量截圖的開發者來說,是一個夠用的小插件。

目錄頁:https://www.skillhub.cn/plugins/dsh-plugins-cn/dsh-image-tools

源碼與文檔:https://github.com/dsh-plugins-cn/dsh-image-tools

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

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

小夜