DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-screenshot-chat

Screenshot Chat

DSH composer 的屏幕截图功能:在聊天输入框的 + 菜单中添加 Screenshot 选项,支持区域截图和隐藏窗口变体。该变体会在原生 macOS 选择叠加层出现前隐藏当前窗口,并在之后恢复;截图会作为图像附件添加到输入框中。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:xiaoy616/dsh-screenshot-chat#8afb6438f6be8dfe5fddf2d5cee88a1fb2cc70d6
README兼容性版本

兼容性与来源证明

Screenshot Chat 以 dsh-screenshot-chat 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/21

版本

0.2.1stable
2026/10/21

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/21
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Experimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundle实验性语音输入,使用本地 SenseVoice;首次使用时下载其运行时Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Vision Routerdsh-vision-router为仅支持文本的 DeepSeek Harness agents 提供视觉能力:内置免费视觉链路和像素级工具。除非配置为严格仅限本地使用,否则远程视觉提供商(包括默认的免费回退服务)会接收图像内容。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

dsh-screenshot-chat

A DeepSeek Harness plugin that adds a Screenshot entry to the chat composer's + menu, so a region captured on your Mac lands in the input box as an image attachment.

Features

  • One-click region capture — opens the native macOS selection overlay (the same one as ⇧⌘4), and the selected region arrives in the current conversation's composer as an image attachment, ready to send with your next message. Pressing Esc or right-clicking cancels silently.
  • Hide-window capture — hover the Screenshot row and a small toggle appears on the right (○ Hide window). Turn it on and the window that is frontmost when you click is hidden first, then the selection overlay appears; when the capture finishes or is cancelled, the window is restored and brought back to the front.
  • Mode is remembered — the toggle state is stored in localStorage and survives page reloads. While it is on, the menu item's description also shows the active mode, so you can see it without hovering.
  • Platform-aware — the menu entry is hidden automatically on platforms without screencapture (anything other than macOS).

Install

dsh plugin add dsh-screenshot-chat

Then restart DeepSeek Harness (or reload the web client) so the bundle is composed.

Local development

Point a profile at a checkout instead of the published package:

{
  "dependencies": {
    "dsh-screenshot-chat": "link:/absolute/path/to/dsh-screenshot"
  },
  "dsh": { "profile": { "bundles": ["...", "dsh-screenshot-chat"] } }
}

Run pnpm install in the profile. With HMR enabled, config changes apply immediately; otherwise restart DSH. Host-side edits (index.js) take effect after touching the profile's cordis.patch.yml (any change re-composes the tree without a restart); client-side edits (client.js) are hot-replaced by the client HMR poll.

Usage

  1. Click + → Screenshot in the composer.
  2. Drag to select a region on screen.
  3. The capture appears in the composer as an image attachment — send it as usual.

To capture without the DSH window in the shot, hover the menu entry, switch on Hide window, then click Screenshot. The window disappears during selection and comes back afterwards.

Configuration

Override the defaults from your profile patch, keyed by the plugin id:

- id: dsh-screenshot-chat
  name: 'dsh-screenshot-chat'
  config:
    timeoutMs: 180000   # how long the region selection may stay open

How it works

Host side (index.js)

Registers same-origin routes under /.dsh-screenshot on the host web server:

  • POST /capture with body { "hide": true | false }
    • Runs screencapture -i -x -o <tempfile>, waits for the selection, then returns the PNG as base64 and deletes the temp file immediately. A cancelled selection returns { cancelled: true }.
    • With hide: true it first resolves the frontmost process name through AppleScript (System Events) and hides it (the equivalent of ⌘H, with a system-level denylist — Finder, Dock, System Settings and friends are never hidden), waits for the hide animation to settle (350 ms), then captures. A finally block restores and re-focuses the window whether the capture succeeded, was cancelled, or timed out.
  • GET /health lets the browser half probe platform support (the entry is hidden off macOS).

Only one capture may run at a time. A capture that stays open longer than timeoutMs (default 180 s) is terminated, and osascript calls time out after 60 s.

Browser side (client.js)

Contributes a screenshot command to the + menu through commandUi.register (kind: 'action', so a click runs the current mode). A document-level mouseover delegate spots the menu row carrying the data-dsc-icon marker and mounts the hover toggle inside it, using native listeners and inline styles so it does not depend on the menu component's internal class names. mousedown and click on the toggle stop propagation so the row is not selected.

The returned image is wrapped in a File and handed to conversation.createDrafts plus the composer's addFiles — the exact same attachment path as pasting an image, so previews, size limits, and upload encoding all run through the host's existing logic.

Permissions (macOS)

  1. Screen Recording — the first capture may prompt for authorization, or grant it under System Settings → Privacy & Security → Screen Recording for the app running the DSH host. Without it, captures can come out as wallpaper only.
  2. Automation (hide-window capture only) — hiding and restoring the window uses System Events, so macOS asks to allow controlling System Events on first use; the same switch lives under System Settings → Privacy & Security → Automation. Denying it leaves plain region capture working; hide-window capture shows an authorization hint instead.

Limitations

  • Interactive region selection relies on macOS screencapture -i, so the plugin works on macOS only; the menu entry hides itself elsewhere.
  • Capture runs on the Mac hosting the DSH process, not on the machine running the browser. For a local deployment these are the same machine.
  • Hide window hides whichever app is frontmost at the moment you click. If you switch to another app immediately after clicking, that app is the one hidden.

License

MIT