前言¶
在 DSH(DeepSeek Harness)裏和智能體協作,經常要把屏幕上的內容交給對方:一段報錯、一個界面狀態、一張只在本地應用裏才能看到的圖。常見的做法是手動截圖、粘貼進對話框——圖片本體進了會話,事後想找到文件在哪兒並不容易;反過來,想讓智能體“自己看一眼屏幕”,通常也沒有現成入口。
@paicat1/dsh-screenshot 把這兩件事合併到一個插件裏:人用瀏覽器熱鍵截圖,截圖後只把 PNG 路徑交給智能體;智能體也可以通過工具自助截屏。整個實現是純 PowerShell,零依賴、零二進制。下面介紹它的功能、安裝和用法。
這是什麼¶
一句話定位:DSH 輕量截圖插件,瀏覽器熱鍵 + Agent 可自助調用的截屏、讀圖工具。
- 包名:
@paicat1/dsh-screenshot,當前版本 1.1.2,MIT 許可證 - 作者:paicat1
- 平臺:Windows(依賴 PowerShell 的
System.Drawing.CopyFromScreen)
背景值得一提:這套截圖能力最初是作爲 @liustack/modlens 的 dsh 插件增強實現的,上游在 issue #48 中把該功能標記爲 not planned,作者於是把它 fork 出來拆成獨立插件,以解耦上游更新對截圖功能的影響。因此它不隨 modlens 更新而失效,也不強依賴 modlens——截圖與分發是插件自身能力,讀圖(OCR/版面/語義)歸 modlens(選裝)。
核心功能¶
兩個快捷鍵¶
Ctrl+Shift+Alt+S:無交互直接全屏截圖,捕獲整個虛擬桌面。Ctrl+Alt+S:進入選取模式。進入後整個桌面保持可操作,窗口可以自由移動、縮放,像佈置畫面一樣擺好再截。選取時:點一下桌面 = 全屏;鼠標懸停到某個窗口會亮起吸附邊框,點一下 = 截取該窗口完整內容(被遮擋也一樣);拖拽 = 自由選區,Esc取消。
截圖完成後,PNG 路徑會自動插入 DSH 輸入框,同時複製到剪貼板。
窗口吸附:被遮擋也能截到完整內容¶
懸停時插件枚舉屏幕上的窗口,高亮光標下的那一個;單擊後通過 PrintWindow 讓目標窗口自己把內容渲染出來——截的是窗口自身,不是屏幕上可見的像素,所以被其他窗口遮擋、被 DWM 陰影包裹都不影響。最後按內容邊界裁掉陰影,四邊乾淨。
已知特例:獨立運行的 PowerShell 窗口。它的控制檯(conhost)不響應 PrintWindow,且被覆蓋時不渲染 GDI 表面,兩條“穿透遮擋”的路徑都走不通,被遮擋時只能截到屏幕可見像素(會帶上遮擋內容)。遇到這種窗口,把它切到前臺再截,或直接拖拽框選。其他窗口(含 cmd 等控制檯窗口)均正常。
傳路徑不傳圖¶
截圖保存到獨立目錄:
%USERPROFILE%\Downloads\modlens-screenshots\
傳給智能體的只有 PNG 路徑,不是圖片本身。這樣圖片只存在一個地方,清理就是刪一個目錄;路徑是幾十字節的文本,不會把幾百 KB 的二進制塞進上下文;而且路徑通用,任何支持圖片的智能體(原生多模態模型,或 modlens 這類橋接)都能按路徑讀圖,一次截圖的路徑可以複用。
modlens_screenshot:讓 Agent 自己截屏¶
插件向智能體註冊 modlens_screenshot 工具。模型自主調用後完成截屏;如果裝了 modlens,會當場讀出結構化內容(OCR/版面/語義),返回證據 + 截圖路徑。
modlens 是選裝的:找不到 modlens CLI 時,modlens_screenshot 工具不註冊,但截圖功能照常工作。能力劃分上,截圖(全屏/框選/窗口吸附/擺窗佈局)、分發(傳路徑、剪貼板、獨立目錄)和兩個入口都是插件自身能力,可獨立使用;讀圖歸 modlens,插件複用的是它的識圖管線。
安裝與啓用¶
安裝命令:
dsh plugin --profile web add @paicat1/dsh-screenshot
安裝後重啓 dsh web 即可生效。經過上面的步驟,瀏覽器熱鍵和 modlens_screenshot 工具默認都已開啓。
典型用法¶
人工截圖給智能體看:
- 按
Ctrl+Alt+S進入選取(或Ctrl+Shift+Alt+S直接全屏)完成截圖; - PNG 路徑自動插入 DSH 輸入框,同時複製到剪貼板;
- 發送消息,智能體按路徑讀取圖片。
想讓智能體自己看屏幕,直接在對話裏告訴它使用 modlens_screenshot 工具即可。
配置(可選)¶
插件提供兩個可選的 cordis 配置項,默認全部開啓:
route: false # 關閉瀏覽器截圖路由
tool: false # 關閉 modlens_screenshot 工具
如果需要顯式指定 modlens CLI 路徑,設置環境變量 MODLENS_DSH_CLI;不設置時默認探測 ~/.dsh/profiles/{web,headless}/node_modules/@liustack/modlens/dist/main.js。
適用場景與注意¶
適合的場景:
- Windows 上的 DSH web 用戶,想用熱鍵快速把屏幕內容交給智能體;
- 需要智能體自主截屏、自查界面的工作流;
- 希望截圖產出結構化內容(OCR/版面/語義)的場景,裝上 modlens 即可,未裝時截圖照常工作。
注意:
- 插件僅支持 Windows,依賴 PowerShell
System.Drawing.CopyFromScreen。 - 獨立運行的 PowerShell 窗口(conhost)被遮擋時無法穿透截圖,切到前臺或拖拽框選即可。
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證(本插件爲 MIT)。
小結¶
一套快捷鍵給人用,一個工具給 Agent 用,截圖只傳路徑、上下文乾淨,零依賴零二進制;需要讀圖時接上 modlens 即可,不裝也不影響截圖本身。倉庫與目錄頁:
- GitHub:https://github.com/paicat1/dsh-screenshot
- 插件目錄頁:https://www.skillhub.cn/plugins/paicat1/dsh-screenshot