hezhaochao/dsh-snip ↗★ 0

dsh-snip

在输入框旁提供一键框选截图功能 适合需要快速截图并发送给模型进行读图分析的用户。

套件
dsh-snip
相容性
待驗證
Harness 依賴範圍
>=0.1.0-rc.2 || >=0.2.0-rc.2
版本
0.1.10
授權
MIT
最近更新
2026年10月25日

同名套件的其他儲存庫

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hezhaochao/dsh-snip

dsh-snip 📸 快速截图

Test License: MIT Platform DSH

一个 DeepSeek Harness(DSH)插件: 输入框旁的「📸 截图」按钮——像豆包一样一键框选截图,不用再开本地截图工具。 截完图片自动进剪贴板,Ctrl+V 直接贴进对话;模型还能用 MCP 工具读最近的截图帮你分析。

用法

  1. 点输入框旁的「📸 截图」按钮
  2. DSH 窗口默认暂时隐藏(不把自己截进去);想保留就点按钮旁的 ▾,在菜单里 取消勾选「截图时隐藏 DSH 窗口」(QQ 同款选项,选择会记住)
  3. 悬停会高亮窗口边框——点一下=选中整窗;按住左键拖拽=自由框选(选区外压暗、蓝框、实时宽高),松手弹出「确认/取消」工具条
  4. 回车 / 双击 / 点「确认」完成;点选区外重新框选;ESC 取消
  5. DSH 窗口自动回到前台,截图自动粘贴进输入框(QQ 式,无需手动 Ctrl+V;若没贴上再按一次即可)
  6. 模型就能看到图(配合视觉模型/视觉插件)

组成

客户端 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