READMESource: main@24133d83
dsh-shot-send
给 DeepSeek Harness(DSH)桌面端的截图提问:按一下,整个屏幕变暗,拖拽框选任意区域, 松手即完成——图片落进当前会话的输入框,接着写你的问题,回车发送。
不同于「在对话框里贴一张缩略图再框」的做法:这里框选发生在真实屏幕上,1:1 像素, 你看到的就是桌面本来的样子。抓屏与框选全程在内存里完成,不产生任何本地图片文件。
效果
Ctrl+Alt+S(或点输入框右侧相机按钮)
→ DSH 窗口自动最小化,整屏冻结并压暗
→ 拖拽框选,选区内保持原色,右下角显示像素尺寸
→ 松手 → 图片进入输入框,光标交回给你
→ 写问题、回车发送
Esc 或右键随时取消。
安装
插件市场:搜索 dsh-shot-send,安装后启用,重启 DSH。
手动(本地包):
# 在 profile 的 package.json 里加 link 依赖,并把它列进 dsh.profile.bundles
dsh plugin --profile <profile> add /path/to/dsh-shot-send
重启后判据:输入框右侧出现相机图标。
依赖
| 项 | 说明 |
|---|---|
| 平台 | 仅 Windows(抓屏走 Win32 GDI) |
| Python | 需要带 tkinter 的 Python 3。系统 Python 或 DSH 自带的都可以,宿主会自动找 |
| DSH | >= 0.2.2-rc.1 |
| Node | ^22.19 || >=24 |
找不到 Python 时插件会明确报错。可用 DSH_SHOT_PYTHON 指定解释器路径。
隐私
- 抓屏、压暗、裁剪、编码全在内存中完成,不写任何临时文件,不经剪贴板。
- 图片进入输入框后作为会话附件上传——这是 DSH 附件子系统的既定行为(每张被接受的图片都会 规范化并保存),也是对话内容本身的一部分。插件无法、也不应绕过它。
- 截图前会把 DSH 窗口最小化,避免截到自己;可用
DSH_SHOT_HIDE=0关闭该行为。
已知限制
- 仅 Windows。macOS / Linux 未实现,会返回明确错误而不是静默失败。
- 快捷键是页面级的(DSH 窗口有焦点时生效),没有系统级热键。
- 多显示器按虚拟桌面整体抓取;若虚拟桌面原点为负(副屏在主屏左/上方),浮层会退化为贴主屏。
开发
npm run check # 构建 + 加载期校验 + 单元测试
npm run build # 只构建(产物在 lib/)
lib/ 是可直接加载的产物,src/ 是来源。构建不依赖任何 npm 包。
浮层排版调试(不需要装进 DSH):
python runtime/shot-win32.py --selftest # 纯函数自检,不开窗
python runtime/shot-win32.py --selftest-shot out.png # 开浮层并抓下用户视角的画面
许可
MIT
No comments yet. Be the first to write one.