前言¶
做 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