ClipShot for macOS
在 DeepSeek Harness 的输入框旁边截个图,图片直接落进对话框。
点一下相机 → 整屏进输入框;拖一下 → 只放你框的那块;点一个窗口 → 只放那个窗口。 截下来的图同时写进系统剪贴板,⌘V 贴到哪里都行。
仅 macOS。只用系统自带的
screencapture和osascript—— 零 npm 依赖、零构建步骤、不需要辅助功能权限。
功能
| 怎么截 | 结果 |
|---|---|
| 点相机图标 | 立刻截整屏,直接进输入框 + 剪贴板 |
| 菜单 → 区域截图 | 冻结全屏,拖拽框选;八个手柄调大小,选区内拖动可整体平移;Enter / 双击 完成,Esc 取消 |
| 菜单 → 应用窗口 | 调起系统的交互式窗口选择(点哪个窗口就截哪个),带阴影 |
| 菜单 → 截图时隐藏主窗口 | 先把 Harness 窗口藏起来再截,成品里没有自己;选择会记住(localStorage) |
其他细节:
- 框选松手之后仍可继续调整,不会「一松手就定死」。
- 图片以附件形式进输入框,和手动粘贴的图一样能发给模型。
- 截图失败 / 被取消 / 找不到输入框,都会在界面上给一句话提示,不静默失败。
- 暂存在系统临时目录,最多同时 6 张、5 分钟自动清,退出时清干净。
安装
# 方式一:从本地目录装
dsh plugin --profile desktop add /绝对路径/dsh-clipshot-mac
# 方式二:手动 link 进 profile
cd ~/.dsh/profiles/desktop
pnpm add link:/绝对路径/dsh-clipshot-mac
# 再把 "dsh-clipshot-mac" 加进 package.json 的 dsh.profile.bundles
装完重启 DeepSeek Harness,输入框左侧会多出相机按钮。
卸载:从 dsh.profile.bundles 里删掉 dsh-clipshot-mac,再从 dependencies 里删掉对应条目。
权限
- 屏幕录制:必须。第一次截图时系统会弹窗,允许一次即可(系统设置 → 隐私与安全性 → 屏幕录制)。
- 辅助功能:不需要。「隐藏主窗口」走
NSRunningApplication.hide,不归这个权限管。
和其他截图插件比
Harness 里已经有好几个截图插件,但绝大多数是 Windows 专用的(dsh-plugin-screenshot、dsh-plugin-live-shot、@alain-prot0s5/dsh-screenshot 等,依赖 PowerShell / Win32 / ms-screenclip:)。macOS 上能用的那几个通常自带 native 二进制,并要求辅助功能权限。
ClipShot 的取舍是:只做 macOS,只调系统命令,能多轻就多轻。
| ClipShot | 自带 native agent 的插件 | |
|---|---|---|
| 依赖 | 系统 screencapture / osascript |
预编译二进制 |
| 体积 | 76 KB | 数十 MB |
| 需要的权限 | 屏幕录制 | 屏幕录制 + 辅助功能 |
| 区域调整 | 八手柄 + 整体拖动 | 视实现 |
| 全局热键 | ❌ 暂无 | 有 |
| 标注(箭头 / 文字 / 马赛克) | ❌ 暂无 | 视实现 |
想要全局热键或标注,那些成熟的插件更合适;只想「点一下就截图、别的都不要」,这个更轻。
工作原理
index.js 宿主半身:调 screencapture / JXA 隐藏与恢复窗口,
起 /clipshot 路由把 PNG 用一次性 token 供给页面,
/clipshot/clipboard 把图写进系统剪贴板
client.js 浏览器半身:输入行里的相机按钮 + 全屏框选覆盖层,
框完合成 attachment 塞进 composer
cordis.patch.yml 把插件自身插进 profile(id: clipshot)
package.json dsh.bundle.patch + dsh.client 声明
locale/*.json 设置页的标题与说明
- 宿主只注入
typert / subprocess / webServer,客户端只注入slots / locale / remote。 - 图片通过一次性 token 的 URL 交给页面,过期即失效,不落长期文件。
- 截图目录建在
os.tmpdir(),文件名前缀dsh-clipshot-。
已知限制
- 只有 macOS(Linux / Windows 未适配)。
- 暂无全局热键、标注。
- 多显示器按系统默认行为,未做逐屏选择。
License
MIT
No comments yet. Be the first to write one.