dsh-screenshot-win:DSH 下的 Windows 屏幕截圖(GUI 與 Agent 共用一套採集)

前言

在 DeepSeek Harness(DSH)裏和 Agent 協作時,經常需要把屏幕上的界面、報錯或窗口狀態交給模型看。純靠文字描述容易漏細節;把圖放進對話又希望文件同時落在當前會話工作區,方便後續引用。社區裏已有多種截圖類插件,側重點各不相同。下面介紹維護者 lsnnn123 發佈的 dsh-screenshot-win:面向 Windows,在聊天輸入框提供相機按鈕,並註冊 Agent 可調用的 screenshot 工具,兩種入口走同一套宿主邏輯。

這是什麼

dsh-screenshot-win 是標準的 DSH bundle 插件:package.json 中聲明 dsh.bundle.patch 與 dsh.client,可在插件頁面啓用、關閉或卸載,也可通過插件管理器從 GitHub 安裝。分類爲客戶端;倉庫 https://github.com/lsnnn123/dsh-screenshot-win,許可證 MIT,當前版本 0.1.0。插件目錄頁:https://www.skillhub.cn/plugins/lsnnn123/dsh-screenshot-win。

核心功能

插件分成兩半,共用 /dsh-screenshot-win/capture 路由與同一批 PowerShell 採集腳本,不是兩套實現。

GUI(瀏覽器半)
輸入框左側工具欄有相機圖標。點開後可選:框選區域、整個屏幕、指定某個窗口。截圖作爲圖片附件插入當前會話輸入框(可直接發送),同時 PNG 落盤到會話工作區。

Agent 工具(宿主半)
註冊名爲 screenshot 的工具,模型可自行觸發截圖;圖片作爲工具結果進入對話(模型可見),文件同樣落盤。

窗口採集使用 PrintWindow 與 PW_RENDERFULLCONTENT,被遮擋的窗口(含 Electron 窗口)也可截取;少數 GPU 直繪失敗時可回退屏幕拷貝(screen_fallback)。界面語言跟隨 DSH:ctx.locale.active 爲 zh* 時顯示中文,否則英文。

安裝與啓用

推薦通過插件管理器 / 插件市場安裝。資料中的安裝命令爲:

plugin_manager action=install_bundle target="github:lsnnn123/dsh-screenshot-win"

裝好後在 DSH「插件」頁面出現對應卡片:開關爲啓用/關閉,詳情頁卸載會從 profile 的 dependencies 中移除,由插件管理器改 profile,無需手工編輯。

若本機 profile 安裝策略或 CLI 限制導致無法走管理器,README 描述了與插件管理器相同數據結構的手工 bundle 接線(目錄聯接、package.json 的 dependencies 與 dsh.profile.bundles 等);一般用戶以方式 A 爲準。改動 lib/index.js 需重啓應用;改動 client/client.js 刷新頁面即可。

配置

在 profile 或用戶級 cordis.patch.yml 的插件行中可配置(bundle 自帶 cordis.patch.yml 會插入插件行;用戶級與用戶 bundle 重複插入會掛載兩次,需避免):

- insert:
    - id: dsh-screenshot-win
      name: dsh-screenshot-win
      config:
        saveDir: screenshots        # 相對會話工作區
        maxWidth: 1600              # 超過則等比縮小(0 表示不縮放)
        format: png                 # png | jpeg
        quality: 88                 # jpeg 質量
        timeoutMs: 300000           # 單次採集腳本超時
        regionTimeoutSec: 180       # 框選覆蓋層的自動取消時間
        tool: true                  # 是否註冊 screenshot 工具
        routes: true                # 是否掛載瀏覽器半用的 HTTP 路由

典型用法

手動截圖
在對話輸入框點相機,按提示選擇框選、整屏或指定窗口,確認後發送或繼續編輯消息。

Agent 調用 screenshot
常用參數如下(完整表見倉庫 README):

參數 說明
mode region(默認)/ screen / window
out 輸出路徑;默認 <工作區>/screenshots/shot-<時間戳>.png
hwnd / window / process / active 指定窗口
list_windows 僅列出可截取窗口(便於模型選目標)

框選模式需要真人拖拽;純自動化環境可配合超時參數觀察取消路徑。

運行中自檢宿主狀態(資料示例端口):

Invoke-WebRequest http://127.0.0.1:19387/dsh-screenshot-win/status

返回版本、默認保存目錄及瀏覽器半登記狀態。

適用場景與注意

  • 適合:在 Windows 上使用 DSH,需要把屏幕內容快速放進對話,並保留工作區副本的開發者或日常用戶。
  • 環境:僅 Windows(GDI / PrintWindow、PowerShell 7);package.json 要求 Node ^22.19.0 || >=24.0.0,os 爲 win32。
  • 安全:插件以當前 DSH 進程權限運行,可截屏、寫工作區、執行採集腳本。安裝前應閱讀源碼與 MIT 許可證,確認符合你的環境策略。
  • 生態:DSH 採用「一切皆插件」思路;社區精選目錄獨立於 DeepSeek / 幻方,市場列表來自 awesome-dsh-plugin 等社區維護的目錄,並非官方應用商店。

結尾

dsh-screenshot-win 把輸入框相機與 screenshot 工具接到同一套 Windows 採集鏈路上,支持框選、整屏與指定窗口,截圖進對話並寫入工作區。詳情與源碼:https://www.skillhub.cn/plugins/lsnnn123/dsh-screenshot-win,https://github.com/lsnnn123/dsh-screenshot-win。

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

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

小夜