ClipShot for macOS:把截圖直接塞進 DSH 輸入框的輕量插件

前言

做 DSH(DeepSeek Harness)智能體開發時,一個很實際的痛點是:每次要把屏幕內容餵給模型,得先切出對話窗口,用系統截圖工具存盤,再想辦法把圖片貼進輸入框。Windows 側有現成的截圖插件,macOS 上有的要麼依賴預編譯二進制和輔助功能權限,要麼乾脆沒適配。

下面介紹的 dsh-clipshot-mac(ClipShot for macOS)走的是另一條極輕的路:只調 macOS 系統自帶的 screencapture 和 osascript,零 npm 依賴、零構建步驟,截圖結果直接以附件形式落進 Harness 的輸入框。插件由 sgxdvx123321-svg 維護,分類爲客戶端插件,版本號 0.1.0,許可證 MIT。

這是什麼

一句話定位:在 DeepSeek Harness 輸入框左側加一個相機按鈕,點了之後按需要截整屏、框選區域或選中某個窗口,圖片同時進入輸入框和系統剪貼板。

它解決的問題很窄但高頻:把「截圖 → 粘貼進對話」這個動作壓縮到一次點擊或一次框選,主要用於把屏幕畫面交給多模態模型的場景。它不做全局熱鍵、不做標註、不做多屏選擇,README 明確說明了這些取捨。

核心功能

四種截圖方式,覆蓋絕大多數「截一下給模型看」的需求:

1、點相機圖標:立即截整屏,圖片同時進輸入框和系統剪貼板。
2、菜單 → 區域截圖:凍結全屏後拖拽框選,八個手柄調整大小,選區內可整體平移;Enter 或雙擊完成,Esc 取消。
3、菜單 → 應用窗口:調起系統的交互式窗口選擇,點哪個窗口截哪個,截圖帶窗口陰影。
4、菜單 → 截圖時隱藏主窗口:先把 Harness 窗口藏起來再截,成品裏不會出現插件自己,選擇會記在 localStorage。

幾個實現細節值得一提:

  • 框選鬆手後仍可繼續調整,不是「一鬆手就定死」。
  • 圖片以附件形式進輸入框,和手動粘貼的圖一樣能發給模型。
  • 截圖失敗、被取消、找不到輸入框,都會在界面上給出一句話提示,不靜默失敗。
  • 臨時文件建在系統臨時目錄(os.tmpdir()),最多同時保留 6 張,5 分鐘自動清理,退出時清乾淨。
  • 圖片通過帶一次性 token 的 URL 傳給頁面,過期即失效,不落長期文件。

安裝與啓用

README 給出兩種安裝方式,都沒有走 dsh plugin add github:... 的形式,而是從本地目錄安裝:

方式一,直接從本地目錄裝:

dsh plugin --profile desktop add /絕對路徑/dsh-clipshot-mac

方式二,手動 link 進 profile:

cd ~/.dsh/profiles/desktop
pnpm add link:/絕對路徑/dsh-clipshot-mac

然後把 "dsh-clipshot-mac" 加進該 profile 的 package.json 的 dsh.profile.bundles。

裝完重啓 DeepSeek Harness,輸入框左側會多出相機按鈕。

卸載時反向操作:從 dsh.profile.bundles 刪掉 dsh-clipshot-mac,再從 dependencies 刪掉對應條目。

權限要求

權限面很小,這是它相對其他截圖插件的主要賣點之一:

  • 屏幕錄製:必須。首次截圖時系統彈窗,允許一次即可(系統設置 → 隱私與安全性 → 屏幕錄製)。
  • 輔助功能:不需要。「隱藏主窗口」走的是 NSRunningApplication.hide,不走輔助功能權限。

與其他截圖插件的差異

Harness 生態裏已有的截圖插件多數面向 Windows(如 dsh-plugin-screenshot、dsh-plugin-live-shot、@alain-prot0s5/dsh-screenshot,依賴 PowerShell / Win32 / ms-screenclip:)。macOS 上可用的插件常自帶 native 二進制並要求輔助功能權限。ClipShot 的取捨是隻做 macOS、只調系統命令,體積約 76 KB,而自帶 native agent 的插件通常是數十 MB。代價是暫無全局熱鍵和標註功能。

工作原理

插件由宿主半身和客戶端半身兩部分組成:

  • index.js:宿主側,調 screencapture,用 JXA 隱藏與恢復窗口,起 /clipshot 路由把 PNG 用一次性 token 供頁面取用,/clipshot/clipboard 把圖寫進系統剪貼板。
  • client.js:客戶端側,輸入行裏的相機按鈕和全屏框選覆蓋層,框完合成 attachment 塞進 composer。
  • cordis.patch.yml:把插件自身插進 profile,profile id 爲 clipshot。
  • package.json 聲明 dsh.bundle.patch 和 dsh.client。
  • locale/*.json 提供設置頁標題與說明。

宿主半身只注入 typert / subprocess / webServer 能力,客戶端半身只注入 slots / locale / remote,職責分得很乾淨。

適用場景與注意事項

適合這兩類人:一是主要在 macOS 上跑 DSH、只想「點一下就截圖、別的都不要」的開發者;二是對插件體積和要求權限敏感、不希望裝十幾個 MB 二進制的場景。README 也如實說明了它不含全局熱鍵和標註,需要這兩樣的應選更成熟的插件。

需要注意幾點:

1、插件以當前 dsh 進程的權限運行,文件中的 cordis.patch.yml 決定它往 profile 裏注入什麼,安裝前建議先過一遍源碼和 MIT 許可證。
2、該插件來自社區目錄 SkillHub 及維護者的 GitHub 倉庫,DSH 的理念是「一切皆插件」,但 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要把它當作官方應用商店。
3、多顯示器按系統默認行爲處理,未做逐屏選擇,多屏環境截圖前最好先確認焦點所在屏幕。

結尾

dsh-clipshot-mac 的價值不在於功能多,而在於把 macOS 上「截圖給模型」這一步做到了最輕:零依賴、零構建、只要求屏幕錄製權限,圖片直接落進輸入框。如果你只需要這個,它比帶 native agent 的方案省事。

目錄頁:https://www.skillhub.cn/plugins/sgxdvx123321-svg/dsh-clipshot-mac
GitHub:https://github.com/sgxdvx123321-svg/dsh-clipshot-mac

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

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

小夜