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.

Screenshot Win — DSH Plugin for DeepSeek Harness
← Plugins
S

dsh-screenshot-win

Screenshot Win

DSH screenshot plugin: a camera button in the chat input + an Agent-callable screenshot tool (selected area / specified window / entire screen). Screenshots go directly into the conversation and are saved to the workspace.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:lsnnn123/dsh-screenshot-win#0c0efb80cddf4154857977f5310160c8e20a1d50
READMECompatibilityVersions
输入框工具行的相机按钮与中文截图状态提示整屏截图的结果(插件把图存到工作区,并在输入框提示状态)

Compatibility and provenance

Screenshot Win is published as dsh-screenshot-win and currently resolves to version 0.1.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
10/8/2026

Versions

0.1.0stable
10/8/2026

Related plugins

Loading related plugins…

Latest
0.1.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
10/8/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
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in vision-media.

Modlens@liustack/modlensPlug-in vision for text-only LLMs, powered by the free Antigravity CLITool Describe Image@linxin666/dsh-tool-describe-imageModel-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable — Vision Routerdsh-vision-routerEyes for text-only DeepSeek Harness agents: built-in free vision chain + pixel-level tools. Remote vision providers, including the default free fallback, receive image content unless strict local-only use is configured.Vision Toolkit@anionex/dsh-vision-toolkitDeepSeek Harness-native integration for agent-vision-toolkit: image Q&A, OCR, grounding, UI restoration, pixel diff, Artifacts, and Web UI.

README

dsh-screenshot-win

给 DeepSeek Harness 用的屏幕截图插件(Windows)。它同时提供两半:

  • GUI 按钮 —— 输入框左侧工具栏上的相机图标,点开后可选「框选区域 / 整个屏幕 / 指定某个窗口」。截图会作为一张普通的图片附件插入当前会话的输入框(你可以直接发送),同时 PNG 落盘到会话工作区。
  • Agent 工具 —— 名为 screenshot 的工具,模型可以自己截图,图片作为工具结果直接进入对话(模型能看到),文件同样落盘。

两半调用的是同一套宿主逻辑(同一个 /dsh-screenshot-win/capture 路由 → 同一批 PowerShell 采集脚本),不存在两套实现。

这是一个标准的 DSH bundle 插件:package.json 里声明 dsh.bundle.patch 与 dsh.client,可以像市场里的插件一样安装、在「插件」页面里启用/关闭/卸载,也可以直接发布到 npm 并提交到插件市场。

界面截图

两张实机截图(都是用本插件自己截的):

输入框工具行的相机按钮与中文截图状态提示

整屏截图的结果(插件把图存到工作区,并在输入框提示状态)

插件市场(如 dsh-market 的详情页)会读取仓库根目录的 screenshots.json(列出 1–8 张图,路径相对该文件)来展示这些截图。

目录结构

路径作用
lib/index.js宿主(Node)半:配置、screenshot 工具注册、HTTP 路由、与 ctx.attachments 对接
client/client.js浏览器半:conversation.input.left 相机按钮 + tool.call.toolview 图片行
cordis.patch.ymlbundle 补丁层:把自己这一行插进 profile
locale/zh.json、locale/en.json市场元数据(meta.title / meta.description)
scripts/WinApi.ps1P/Invoke 与 GDI 封装(PrintWindow、DPI、显示器、窗口枚举、缩放、存图)
scripts/capture-region.ps1框选覆盖层(冻结画面、框选或点选窗口、Esc 取消、超时自动取消)
scripts/capture-screen.ps1整屏 / 指定显示器 / 指定矩形
scripts/capture-window.ps1指定窗口(PrintWindow,可回退到屏幕拷贝)
scripts/list-windows.ps1可截取窗口列表(JSON)
test/selftest.mjs工具参数/输出 schema 与渲染内容自检
test/e2e.mjs三种采集模式的端到端自检
test/client-sim.mjs浏览器半的宿主侧模拟(模块注册、按钮流程、插图、语言、失败分支)
tools/asar.mjs只读读取 app.asar(安装环境排查用)
tools/check-patch.mjs用真实的 dsh-app-boot / dsh-plugin-manager 预演 bundle 解析与 patch 合成
screenshots.json、assets/市场详情页展示的界面截图(1–8 张,路径相对 screenshots.json)
LICENSEMIT

配置

在 profile 或用户级 cordis.patch.yml 的插件行里配置:

- insert:
    - id: dsh-screenshot-win
      name: dsh-screenshot-win
      config:
        saveDir: screenshots        # 相对会话工作区
        maxWidth: 1600              # 超过则等比缩小(0 表示不缩放)
        format: png                 # png | jpeg
        quality: 88                 # jpeg 质量
        timeoutMs: 300000           # 单次采集脚本超时
        regionTimeoutSec: 180       # 框选覆盖层的自动取消时间
        tool: true                  # 是否注册 screenshot 工具
        routes: true                # 是否挂载浏览器半用的 HTTP 路由

安装

方式 A:插件管理器 / 插件市场(标准做法)

plugin_manager action=install_bundle target="E:\GAME\Kingdom Rush6\dsh-screenshot-plugin"

装好后在 DSH 的「插件」页面里会出现这一项:卡片上的开关就是启用/关闭,进入详情页右侧的垃圾桶是卸载(卸载会把它从 profile 的 dependencies 里摘掉)。这两件事都由插件管理器改 profile 清单完成,不需要手工编辑。

方式 B:手工把它接成 profile bundle(本机当前采用)

本机 desktop profile 的 pnpm 安装被 profile 既有的供应链策略拦住 (ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION,涉及 @openviking/dsh-memory-plugin@0.5.19,与本插件无关), 且 CLI 拒绝操作 Electron 托管的 profile(profile "desktop" is managed exclusively by the Electron application)。 所以本机用与插件管理器同样的数据结构手工接上,三步:

  1. 目录联接:C:\Users\lsnnn\.dsh\profiles\desktop\node_modules\dsh-screenshot-win → 本目录;
  2. C:\Users\lsnnn\.dsh\profiles\desktop\package.json: 在 dependencies 里加 "dsh-screenshot-win": "link:E:/GAME/Kingdom Rush6/dsh-screenshot-plugin", 在 dsh.profile.bundles 里加 "dsh-screenshot-win"(bundle 出现在这个数组里才等于「已启用」);
  3. 用户级补丁 C:\Users\lsnnn\.dsh\cordis.patch.yml 保持为空([])——插件这一行由本 bundle 自带的 cordis.patch.yml 负责插入,两处都插会挂载两次。

自检:

node tools\check-patch.mjs

它会用真实的 dsh-plugin-manager/dsh-app-boot 断言:清单里有依赖、bundles 里已选中、 包能被解析出 dsh.bundle.patch、补丁层里只有一处插入该行、合成后的 170 行里该行只出现一次。

关闭 / 卸载在方式 B 下等价于:从 dsh.profile.bundles 移除(关闭)或再从 dependencies 移除并删掉联接(卸载)。 等 profile 能正常安装后,删掉这三处、改用方式 A 即可。

宿主半的 JavaScript 只在启动时导入一次,改动 lib/index.js 需要重启应用;浏览器半每次加载页面都会从磁盘重新读取,改动 client/client.js 只要刷新页面。

使用

工具参数(screenshot):

参数说明
moderegion(默认,屏幕上框选)/ screen(整屏)/ window(指定窗口)
out输出文件;默认 <会话工作区>/screenshots/shot-<时间戳>.png
hwnd / window / process / active指定窗口(句柄 / 标题正则 / 进程名 / 当前前台窗口)
focus截图前先前置该窗口
screen_fallbackPrintWindow 失败时回退到屏幕拷贝
monitor / x / y / width / height整屏模式的显示器与矩形范围
scale / max_width / format / quality缩放与编码
list_windows只列出可截取窗口(结果通过错误信息返回,方便模型阅读)
timeout_sec / no_window_pick框选模式超时 / 禁用「点选窗口」

窗口采集用 PrintWindow + PW_RENDERFULLCONTENT,因此被遮挡的窗口(含 Electron 窗口)也能正确截取;对少数 GPU 直绘窗口失败时会自动回退到屏幕拷贝(screen_fallback)。

界面语言跟着 DSH 走:ctx.locale.active 是 zh* 显示中文,其它显示英文;拿不到 locale 服务时按浏览器语言判断。

仓库与发布

包名(也是仓库名)是 dsh-screenshot-win。原本想用的 dsh-screenshot 在 npm 上已被别人占用(0.0.1); dsh-screenshot-win 经镜像查询确认未被占用(https://registry.npmmirror.com/dsh-screenshot-win → 404)。

仓库已发布:https://github.com/lsnnn123/dsh-screenshot-win(public,默认分支 main,已打 dsh-plugin topic)。 别人这样安装:

plugin_manager action=install_bundle target="github:lsnnn123/dsh-screenshot-win"

本机怎么往上推

这台机器上 git push 到 GitHub 不可用,两个原因叠在一起:

  • ~/.gitconfig 里有 url.https://gh.ddlc.top/https://github.com/.insteadOf = https://github.com/,把 GitHub 重写到镜像,镜像返回 429;
  • 绕过镜像直连时,schannel 报 CRYPT_E_NO_REVOCATION_CHECK,换 OpenSSL 报 unable to get local issuer certificate(证书环境有中间人代理)。

而 PowerShell 的 Invoke-RestMethod -SkipCertificateCheck 访问 api.github.com 是通的,所以改用 Git Data API 发布:

pwsh -File tools\publish-github.ps1              # 把本地 HEAD 同步到 GitHub(只传变化过的文件)
pwsh -File tools\publish-github.ps1 -WhatIf      # 只看差异

凭据按 -Token → $env:GITHUB_TOKEN → Windows 凭据管理器里 GitHub - https://api.github.com/lsnnn123 的顺序取,token 不会打印。 (将来若要恢复 git 正常工作:git config --global --unset url.https://gh.ddlc.top/https://github.com/.insteadOf,并给 git 配好能通过代理的 CA。)

npm 发布(可选)

不被市场收录所必需;要发就这样:

npm publish --access public --registry=https://registry.npmjs.org/

发布前确认:

  • package.json 的 private 必须不存在(本包已移除);
  • files 覆盖 lib、client、scripts、locale、cordis.patch.yml、README.md、LICENSE—— 少了 scripts 装出来的包会在采集时报找不到脚本;
  • main / exports["."] 指向的文件必须真的存在(插件管理器安装时要求入口产物就位);
  • author / repository / homepage 与 LICENSE 的版权署名目前留空(若要发 npm,repository 需指回本仓库)。

「插件」页面卡片直接显示 package.json 的 description(本包为中文);市场条目文案读 locale/zh.json、locale/en.json 的 meta.title / meta.description。

上传到插件市场

⚠️ dsh-market/dsh-market 是市场应用本身,不是插件目录(它自己的 README 明确写了"请不要往本仓库提插件条目")。 市场的插件列表来自精选目录 awesome-dsh-plugin/awesome-dsh-plugin, 站点是 https://awesome-dsh-plugin.com;市场每次打开都实时抓 awesome-dsh-plugin.com/plugins.json。

上架 = 给精选目录提一个 PR,只加一个文件:data/plugins/lsnnn123__dsh-screenshot-win.yml (本仓库 market/ 下已经放好了这个文件,照抄即可)。description.en 必填,含 : 必须加引号;分类用 tools。

收录条件(CI 自动查):

条件本仓库
package.json 声明 dsh.bundle(最常见的被拒原因是只写 dsh.client)✅ ./cordis.patch.yml
仓库有真实可用代码✅
仓库创建满 1 天2026-10-09 创建 → 次日之后才能提
打了 dsh-plugin topic✅
npm 包可选,没有也能收录(install 走 github:owner/repo)
screenshots.json可选,有的话市场详情页会展示截图

社区里已有别的截图插件(paicat1/dsh-screenshot、wangzhanchao883/dsh-screenshot-capture、 deepseekbluefish/dsh-screenshot-plugin、ntesicn/dsh-screenshot-xn),名字与功能侧重都不同,不冲突。

验证

node test\selftest.mjs     # 工具 schema
node test\e2e.mjs          # 三种采集模式(会真的截一张图)
node test\client-sim.mjs   # 浏览器半的宿主侧模拟
node tools\check-patch.mjs # bundle 接线与补丁合成

运行中还可以直接查询宿主半:

Invoke-WebRequest http://127.0.0.1:19387/dsh-screenshot-win/status

返回插件版本、默认保存目录,以及浏览器半的状态(client.bundle 是否已登记、client.advertised 是否已进入页面启动名单)。

已知限制

  • 仅 Windows(依赖 GDI / PrintWindow 与 PowerShell 7)。
  • 框选模式需要真人拖拽;纯自动化环境可传 -TimeoutSec 观察取消路径。
  • 浏览器半的槽位注册只能刷新页面后在真实 GUI 中确认(本插件无法控制浏览器)。
  • 浏览器半若在页面加载时拿不到 locale 服务,会先按浏览器语言显示,并在下一次渲染时自动换成 DSH 的语言。