dsh-snip
Snipaste-style screenshot annotation for DeepSeek Harness: F1 freezes and dims the screen, drag to select a region, draw red boxes and text annotations (mouse wheel changes the font size), and the annotated PNG drops straight into the composer. Windows only. 仅限Windows用户,适合需要快速截取屏幕、添加标注并直接发送给AI的任务。
Other repositories with this package name
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:XXP-AI-SPACE/dsh-snipREADME
Read the full README ↗dsh-snip
DeepSeek Harness 的轻量截图标注插件。
交互方式和 Snipaste 一致:按 F1(或点剪刀)→ 整个屏幕定格压暗 → 鼠标框选 → 选区下方工具条上画红框 / 写文字 → 完成。 浮层是宿主侧拉起的系统级全屏窗口,不是页面里的图片,所以能截桌面端以外的任何东西,页面里也不会出现任何截图预览。

截图状态:整屏压暗 → 框选 → 红框 + 文字(滚轮调字号)→ 工具条 Box / Text / Size / Done / Cancel
English: A Snipaste-style screenshot tool for DeepSeek Harness. Press
F1anywhere (a real Windows global hotkey) and the whole screen freezes and dims; drag a region, then annotate it with red boxes and click-to-type text whose font size follows the mouse wheel.Escexits,Enterconfirms. The annotated image is composited at native resolution and dropped into the composer. Windows 10/11 only (uses Windows PowerShell + WinForms); everything runs locally.
用法
两个入口,行为完全一致:
- 点输入框工具行的剪刀图标(模型选择器左侧、语音按钮旁);
- 按
F1:宿主侧注册的全局热键,DSH 在后台、焦点在别的应用上也能触发。
进入截图后:
-
屏幕整体压暗(含任务栏与其他应用),拖动鼠标框选目标区域;松手后选区恢复原亮度,可以拖边角微调、拖框内移动。
-
选区下方弹出工具条:
按钮 作用 Box 在选区里拖出红色方框外框。可画多个 Text 在选区里点一下就地输入文字(回车确认),滚轮调字号(8–200 px) Size N 当前字号,滚轮会实时变 Done 合成并投递 Cancel 取消 -
快捷键:
Enter确认(还没框选时先按Enter= 整屏);Esc退出截图(正在写字时先取消这条文字);双击选区内确认。 -
完成后:标注图按原分辨率合成为 PNG,自动作为附件放进当前输入框(同时写剪贴板兜底)。
- 按钮路径:直接回填到那次请求;
F1路径:结果先落到%TEMP%\dsh-snip-hotkey\*.ready.png,页面每 0.9 s 取一张回填(页面最小化时等你切回来再取)。
结构
| 文件 | 作用 |
|---|---|
lib/overlay.ps1 | 全屏浮层本体:定格压暗、框选与手柄、工具条、红框、文字、合成导出。纯 ASCII(PowerShell 5.1 编码坑) |
lib/hotkey.ps1 | 常驻热键助手:RegisterHotKey 抢 F1,按下拉起同一个浮层,结果改名 .ready.png 入队;父进程消失即自杀 |
lib/index.js | 宿主半:拉起浮层 / 拉起热键助手 / 结果队列 / 自检路由 |
client/index.js | 浏览器半:一颗按钮 + 轮询取热键结果 + 投进输入框(页面里没有截图预览) |
lib/capture.ps1 | 维护用:一次性整屏抓帧(调试/自检,不参与截图流程) |
结果约定:脚本把 JSON 写到 -Out 旁边( .meta.json),宿主读文件而不是读 stdout——这样 spawn 完全不需要 stdio 管道。
安装
# npm(收录进市场之后,市场里点安装也是这条)
dsh plugin --profile desktop add dsh-snip
# 直接从 GitHub 装
dsh plugin --profile desktop add github:XXP-AI-SPACE/dsh-snip
# 本地开发(link 到源码)
dsh plugin --profile desktop add "link:F:\工作之后\3-DSH\plugins\dsh-snip"
装完冷启动桌面端(宿主半需要),浏览器半刷新页面即可。 发布/收录流程见 PUBLISH.md。
自检
# 宿主路由是否在
Invoke-WebRequest http://127.0.0.1:/dsh-snip/status -UseBasicParsing
# 整条链路(浮层会自己画一个样例选区并确认,约 1 秒闪一下)
Invoke-WebRequest 'http://127.0.0.1:/dsh-snip/capture?probe=1' -UseBasicParsing
# 纯几何自检(不弹窗)
powershell -ExecutionPolicy Bypass -File lib\overlay.ps1 -SelfTest
可调项
lib/index.js顶部:HOTKEY_KEY(默认'F1',可改F2…F12)。client/index.js顶部:SLOT/ORDER(默认conversation.input.right+1000,即模型选择器之前;想放最左改成conversation.input.left)。lib/overlay.ps1顶部:$HANDLE(手柄判定半径)、$MIN_W/$MIN_H(最小选区)、颜色与字号上下限在Adjust-Font/ 常量区。
热键排查
- 助手日志:
%TEMP%\dsh-snip-hotkey\hotkey.log(注册成功会写hwnd=与listening: F1)。 - 如果
F1已被别的程序占用,RegisterHotKey会失败:日志写RegisterHotKey failed,助手退出,/dsh-snip/status里hotkey.helperAlive为false。换HOTKEY_KEY即可。 - 助手会盯着 DSH 主进程(
-ParentPid),应用退出后 300 ms 内自行退出,不会留下孤儿进程或占着 F1。
已知边界
- 浮层是 TopMost 的全屏窗口,会盖住任务栏与所有应用;
Esc或 5 分钟空闲会自动退出。 - 它抓的是浮层出现前那一帧,所以浮层里的内容不会截到自己。
- 多显示器按虚拟屏幕整体覆盖(负坐标屏也算)。
- 不做:编号角标(1、2、3 号方框)与标注清单、撤销、箭头/椭圆/马赛克。