前言¶
在 DeepSeek Harness(DSH)的聊天输入框左侧,需要快速截取桌面某区域并作为附件发送,而当前没有内置的截图能力。dsh-wechat-shot 插件在 DSH composer 中增加了一个微信风格的区域截图按钮:冻结桌面 → 框选 → 确认后直接作为图片附件进入当前草稿,同时复制到剪贴板。
是什么¶
dsh-wechat-shot 是一个 DSH 插件,由维护者 zhenningTech-Cloud(作者 xiajun)维护。它为 Windows 平台的 DSH 插入一个微信式区域截图按钮,支持框选、缩放、移动选区,确认后 PNG 附件落入当前草稿并复制到剪贴板。
核心功能¶
- Windows only:依赖 Windows PowerShell 5.1、WinForms 和运行时 C# 编译;macOS / Linux 不可用。
- 冻结遮罩与选区:点击输入框左侧剪刀按钮(或
Alt+A)打开全屏冻结遮罩;按住左键拖动实时显示选框和尺寸(最小 10×10);松开后才出现工具栏。 - 8 手柄缩放与拖动:选区内部拖动可移动选区;拖动 8 个手柄可缩放选区(最小 20×20)。
- 工具栏:只保留“取消/完成”两个大按钮;双击选区、
Enter、Ctrl+C确认;Esc、右键取消;方向键/Shift+方向键移动 1 px / 10 px;Ctrl+A全屏选区。 - 两种截图模式:默认“保留当前窗口”(和微信一致);点击剪刀右侧箭头 → “隐藏窗口截图”可先隐藏 DSH 窗口再打开遮罩。
- 附件与剪贴板:确认后 PNG 变成
File,走conversation.createDrafts(sessionId, [file])→inputActions.addAttachments(ids)落入当前草稿;输入框拒绝时用releaseDraftAttachments回滚;同时复制到剪贴板。 - 放大镜与 DPI 适配:选区附近显示放大镜;遮罩与选区使用物理像素,支持高 DPI(本机 200% 已实测)。
- 路由契约:Host 提供
POST /api/wechat-shot/capture,body {"hideWindow":true}可选;返回 200 image/png 或{"ok":false,"cancelled":true};超时 300s。 - 缓存与清理:暂存目录
%TEMP%\dsh-wechat-shot\,保留最新 20 张 PNG;C# 编译缓存%TEMP%\dsh-wechat-shot-build\overlay-<sha256 前 16 位>.dll。
安装与启用¶
要求 Windows 10/11、DSH Desktop(web profile)和 Windows PowerShell 5.1。
从 npm 安装:
dsh plugin --profile desktop add dsh-wechat-shot
安装结果以返回的 application / warnings 为准;新 bundle 可以由 HMR 激活。装完刷新页面,输入框左侧应出现剪刀按钮。
本地开发时,在支持 plugin_manager 的会话中:
plugin_manager install_bundle target = C:\Users\<user>\Documents\deepseek-harness\default-workspace\wechat-shot
典型用法¶
- 打开 DSH,在输入框左侧点击剪刀按钮或按
Alt+A,打开冻结遮罩。 - 按住左键拖动选区,松开后工具栏出现(8 手柄、两个大按钮)。
- 点击“完成”大按钮(或
Enter、Ctrl+C、双击选区),选区以 PNG 形式作为附件进入当前草稿,同时复制到剪贴板。 - 如需隐藏 DSH 窗口再截图,点击剪刀右侧箭头 → “隐藏窗口截图”。
适用场景与注意¶
适合需要频繁在 DSH 聊天中发送桌面区域截图的开发者,尤其是 Windows 用户。
插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。插件未实现标注工具、OCR、滚动截长图、贴图置顶等扩展能力;同一时刻只应有一个遮罩,Host 端未做并发互斥;Alt+A 是页面内快捷键,不是操作系统级全局热键。
结尾¶
dsh-wechat-shot 为 DSH 的截图需求提供了一个简洁、微信风格的解决方案,适合需要在聊天中快速插入桌面截图的场景。完整文档与源码见:目录页 | GitHub