dsh-snip
快速截图:输入框旁一键框选截图(自动隐藏 DSH 窗口),图片直接进剪贴板 Ctrl+V 即贴,模型可用 last_screenshot 工具读图分析 / Quick region screenshot for DeepSeek Harness: snip UI + clipboard image + MCP tool 适合需要快速截图并发送给模型进行读图分析的用户。
Other repositories with this package name
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hezhaochao/dsh-snipREADME
Read the full README ↗dsh-snip 📸 快速截图
一个 DeepSeek Harness(DSH)插件: 输入框旁的「📸 截图」按钮——像豆包一样一键框选截图,不用再开本地截图工具。 截完图片自动进剪贴板,Ctrl+V 直接贴进对话;模型还能用 MCP 工具读最近的截图帮你分析。
用法
- 点输入框旁的「📸 截图」按钮
- DSH 窗口默认暂时隐藏(不把自己截进去);想保留就点按钮旁的 ▾,在菜单里 取消勾选「截图时隐藏 DSH 窗口」(QQ 同款选项,选择会记住)
- 悬停会高亮窗口边框——点一下=选中整窗;按住左键拖拽=自由框选(选区外压暗、蓝框、实时宽高),松手弹出「确认/取消」工具条
- 回车 / 双击 / 点「确认」完成;点选区外重新框选;ESC 取消
- DSH 窗口自动回到前台,截图自动粘贴进输入框(QQ 式,无需手动 Ctrl+V;若没贴上再按一次即可)
- 模型就能看到图(配合视觉模型/视觉插件)
组成
客户端 lib/client.js
「📸 截图」按钮(conversation.input.right 插槽)→ POST /dsh-snip/start
宿主 lib/index.js
本地路由 POST /dsh-snip/start(等待拖选完成/取消/超时)+ GET /last
+ 挂载 MCP 桥接(模型工具)
PowerShell scripts/snip.ps1(-STA)
交互层 = scripts/snip-overlay.cs 编译出的独立 exe:
宿主在插件挂载时后台用 csc.exe 预热编译到 ~/.dsh/dsh-snip/(按源码哈希缓存),
点击按钮直接启动 exe —— 冷启动 add github:hezhaochao/dsh-snip
安装后完全退出 DSH(含托盘)再重启。要求 Windows 10/11。
为什么能自动粘贴
确认后客户端把输入框的实时屏幕坐标上报宿主,宿主拉起 scripts/paste.ps1:
把 DSH 强制带回前台(SwitchToThisWindow,与任务栏点击同一机制)→ 原生点击输入框
(窗口隐藏/恢复会丢 DOM 焦点,必须真实点击才能拿到键盘焦点)→ 发一次系统级
Ctrl+V——网页安全沙箱拦不住真实的键盘输入,这正是 QQ/微信自动贴图的同一套机制。
键鼠模拟放在系统 powershell.exe 里执行而不是临时编译的 exe,避免被 Defender 行为
启发式误杀。无论"隐藏窗口"开关与否都会执行;粘贴偶尔没落上时,图仍在剪贴板,
手动 Ctrl+V 即可(~/.dsh/dsh-snip/paste-debug.log 记录了每一步,便于排查)。
给模型的两个 MCP 工具(mcp__snip__)
| 工具 | 作用 |
|---|---|
last_screenshot | 最近一次截图的 PNG 路径 + 尺寸——配视觉工具即可"看"你刚截的图并分析 |
take_screenshot | 模型自助静默截屏(指定 x,y,w,h 区域),用于观察屏幕状态;无遮罩、不抢焦点 |
隐私与行为
- 截图 PNG 只存在本机
~/.dsh/dsh-snip/;last.json只记最近一次的路径与尺寸 - 不上传、不联网;截图后想删就手动删目录,或不管它(PNG 不进任何历史)
- 默认框选期间 DSH 窗口被暂时隐藏(截完自动恢复并抢回前台);右键按钮可改为保留。
宿主识别按进程名匹配
deepseek/harness/zcode/dsh(Electron 多层进程取最靠根的 带窗口祖先=主窗口),匹配不上就静默跳过 - 截图有 150 秒超时兜底(拖选太久不选会自动结束)
兼容性
- 声明 `engines.dsh: ">=0.2.0-rc.1 " dsh --profile zz-test --dump-config # 应能看到 id: snip-button 条目
## 已知限制
- 框选遮罩期间其他显示器同属一个虚拟屏,跨屏拖选没问题;遮罩底图是启动瞬间的冻结画面
- 窗口吸附基于顶层窗口枚举,识别不到子面板/网页内部元素(QQ/微信的"智能选区"同样只到窗口级)
- 个别全屏独占游戏上遮罩可能被压到下面——这类场景本就不适合网页式截图
- `take_screenshot` 抓屏包含遮罩以外的一切内容,请勿用于窥探他人屏幕
- 插件挂载后台会编译一次交互层 exe(约 0.5-2s,csc.exe 来自系统自带 .NET Framework 4.x);
编译好之前点按钮会走 PowerShell 兜底(多 2-3 秒),不影响功能
## 许可
[MIT](https://github.com/hezhaochao/dsh-snip/blob/a7f363a6b221656bf5e774e5e4734d475d03a1bc/LICENSE) © hezhaochao