DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
Q

dsh-qq-screenshot

Qq Screenshot

QQ-style screenshot for the DeepSeek Harness Web UI: Ctrl+Alt+A, drag a region, annotate, copy to the clipboard.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Sky33635/dsh-qq-screenshot#cd23f22cf95f1b4ce75c06abc184cf4998106ee0
READMECompatibilityVersions

Compatibility and provenance

Qq Screenshot is published as dsh-qq-screenshot and currently resolves to version 1.2.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/4/2026

Versions

1.2.0stable
11/4/2026

Related plugins

Loading related plugins…

Latest
1.2.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
11/4/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in vision-media.

Experimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundleExperimental voice input with local SenseVoice; downloads its runtime on first useModlens@liustack/modlensPlug-in vision for text-only LLMs, powered by the free Antigravity CLIImage Gendsh-image-genBring ChatGPT-like image generation to DeepSeek Harness — Gemini, OpenAI, Seedream, DashScope, local ComfyUI & more.Ab Ocrdsh-ab-ocr--- description: "The out-of-tree ocr tool: recognizes a scanned PDF or image page by page, merges the pages in order only after the last one, and saves one Markdown document with the heading levels the model decided." kind: "package-reference" ---

README

dsh-qq-screenshot

给 DeepSeek Harness Web UI 加一个和 QQ / 微信截图一样的截图工具:按快捷键 → 框选区域 → 标注 → 复制到剪贴板(或存成 PNG)。

QQ-style screenshot for the DeepSeek Harness Web UI: press Ctrl+Alt+A, drag a region, annotate it, and copy the result to the clipboard — ready to paste into the chat.

特性

  • Ctrl+Alt+A 全局唤起,输入框左侧也有截图按钮;不打断正在输入的内容。
  • 框选 + 精调:8 个控制点缩放、拖动内部移动、方向键 1px 微调(Shift = 10px),角标实时显示物理像素尺寸。
  • 六种标注:矩形、椭圆、箭头、画笔、文字、马赛克,5 种颜色;超出选区的笔画自动裁掉。
  • 一键进对话:Enter 复制到剪贴板,回输入框 Ctrl+V 即可粘贴图片;也可另存 PNG。
  • 截图瞬间隐藏 Harness 自己(Windows):窗口藏起来再抓屏,画面里不会有 Harness 窗口;藏失败会自动改抓一张不带遮罩的图并提示。
  • 截的是整个桌面:QQ、浏览器、别的软件都能截,和 QQ 截图的手感一致。

安装

需要 DeepSeek Harness Desktop(已在 0.2.1-rc.4 上验证)。

插件市场:打开「插件市场」→ 搜索 dsh-qq-screenshot → 安装。

DSH CLI:

dsh plugin --profile desktop add dsh-qq-screenshot

手动:在 profile 的 package.json 里加依赖并在 dsh.profile.bundles 里选中:

{
  "dsh": { "profile": { "bundles": ["dsh-qq-screenshot"] } },
  "dependencies": { "dsh-qq-screenshot": "^1.2.0" }
}

安装或升级后刷新页面(或重启 DSH)一次:这个插件有客户端半边,页面启动时才会加载。

用法

操作说明
Ctrl + Alt + A开始截图(全局,输入框有焦点时也可以)
输入框左侧的截图图标同上,鼠标点也行
拖动鼠标框选区域;松手后出现工具栏
拖动选框内部 / 8 个控制点移动或改变选区(「移动 / 缩放选框」工具)
方向键(Shift = 10px)微调选区位置
工具:矩形 / 椭圆 / 箭头 / 画笔 / 文字 / 马赛克在选区内标注,超出选区的笔画会被裁掉
5 个颜色圆点换标注颜色
Enter、双击 ✓、Ctrl + C复制图片到剪贴板,随后在输入框 Ctrl + V 粘贴
Ctrl + S、保存按钮另存为 PNG(有系统「另存为」对话框时优先用它)
Ctrl + Z撤销上一步标注
Esc、右键、✕退出截图
工具栏「眼睛」/ 设置 → 通用 →「截图时隐藏当前窗口」开关「截图瞬间隐藏本窗口」,下次生效

截图时隐藏当前窗口(QQ 同款)

默认开启。开启后按 Ctrl+Alt+A:

  1. 页面先铺一层深色遮罩(「正在抓取屏幕…」)——这层遮罩不会进入截图,因为它出现时窗口已经藏起来了;
  2. Host 半边用 Win32 ShowWindow(SW_HIDE) 把本窗口藏起来,等桌面重绘(260ms + DwmFlush),再 CopyFromScreen 抓屏;
  3. 抓完立刻 ShowWindow(SW_SHOW) + SetForegroundWindow 把窗口还回来,然后才编码 PNG、回给页面;
  4. 页面拿到图,遮罩换成冻结的桌面画面,进入框选。

窗口是怎么找准的:从 PowerShell 进程往上遍历父进程(最多 8 层),从近到远逐层找「该进程里面积最大的可见顶层窗口」,找到就停——所以永远不会走到 explorer.exe。同时按窗口类排除 Progman / WorkerW / Shell_TrayWnd / Shell_SecondaryTrayWnd,避免把桌面或任务栏当成目标(桌面窗口比最大化窗口还大一点点,这是早期版本藏错窗口的原因)。

藏失败怎么办:Host 用 IsWindowVisible 复核,并通过响应头 x-dsh-window-hidden 告诉页面。没藏成功时页面先撤掉遮罩、等重绘,再重新抓一次(这次不藏窗口),最坏情况是「一张包含 Harness 窗口的普通截图」,而不是「黑屏 + 正在抓取屏幕」;底部会常驻一条红色提示。

  • 隐藏窗口仅 Windows 生效(macOS / Linux 忽略该开关,仍直接抓屏);
  • 开启后一次抓屏约 1.6–2.2 秒;关闭时 0.5–1.2 秒;藏失败的补救路径约 2.5–3 秒;
  • 抓屏过程抛异常时,Host 会额外跑一次「只恢复窗口」的看门狗,避免窗口留在隐藏状态。

实现原理

浏览器页面本身没有权限抓桌面,所以拆成两半:

  1. Host 半边(index.js)在 http://127.0.0.1:<port>/plugins/dsh-qq-screenshot/capture.png 注册一个只有本机能访问的 HTTP 路由(精确路径优先于 /plugins 前缀路由),并用系统自带工具抓一次全屏:
    • Windows:powershell.exe + System.Drawing.CopyFromScreen(先做 Per-Monitor DPI 感知,多屏/缩放屏都按物理像素抓);
    • macOS:screencapture -x -t png;
    • Linux:依次尝试 gnome-screenshot / spectacle / grim / import。
  2. 浏览器半边(client.js)在 shell.overlay 里冻结这一帧,框选、标注,最后用 Canvas 按原始分辨率合成 PNG,写进剪贴板。

因为截的是整个桌面,所以别的软件都能截;抓屏时页面本身还没有画出内容(遮罩要等窗口藏起来后才出现),所以画面里不会出现工具自己。

兼容性与限制

  • 宿主:DeepSeek Harness Desktop 0.2.1-rc.4(@deepseek-ai/dsh-* 0.2.1-rc.4),Node ^22.19 || >=24。
  • 抓屏依赖本机桌面会话:若 Harness 跑在无桌面的服务器上,会报「截屏失败」并显示系统返回的原因。
  • 剪贴板写图片需要页面处于聚焦状态;被拒绝时会提示原因,可改用「保存为 PNG」。
  • 快捷键固定 Ctrl+Alt+A;如与其他软件冲突,可改 client.js 里的 onKeyDown。
  • Host 半边会调用系统截屏工具(Windows 上是 PowerShell),这是抓桌面所必需的;除此之外不访问网络、不写其他文件。

开发与测试

node --check index.js          # Host half
node --check client.js         # Client half
npm test                       # 两个冒烟测试
  • tests/client-smoke.mjs:用 stub loader + stub React 真实执行 factory 与 apply(),断言两个 slot 注册、样式/快捷键/locale effect 登记,并渲染覆盖层首帧(遮罩、正在抓取屏幕…、canvas、设置开关)。
  • tests/host-smoke.mjs:挂载 Host 半边、真实调用注册的路由:?hide=1 时校验返回的是合法 PNG 且 x-dsh-window-hidden: 1,POST 返回 405,并可用 hide <png> 参数落盘肉眼确认。

License

MIT © 2026 SKY_3635