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
S

dsh-screenshot-chat

Screenshot Chat

Screenshot capture for the DSH composer: adds a Screenshot entry to the chat input's + menu with region capture and a hide-window variant that hides the current window before the native macOS selection overlay and restores it afterwards; the capture lands in the input box as an image attachment.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:xiaoy616/dsh-screenshot-chat#8afb6438f6be8dfe5fddf2d5cee88a1fb2cc70d6
READMECompatibilityVersions

Compatibility and provenance

Screenshot Chat is published as dsh-screenshot-chat and currently resolves to version 0.2.1. 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/21/2026

Versions

0.2.1stable
10/21/2026

Related plugins

Loading related plugins…

Latest
0.2.1
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/21/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.

Tool 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 — Video Storyboarddsh-video-storyboardTurn a video into storyboard images you can cite: one frame per shot, cell size follows cut density (1/1 … 1/8), row-packed into as few images as possible, with a timestamped index the model can quote and a tier map it can override.See Nowdsh-see-nowLet DSH watch a live screen or camera feed: score every frame by how much the picture changed, keep only the ones that matter, and pack them into one image. · 让 AI 实时看见你的屏幕,只传「画面变了」的那几帧。Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio and 27 editable video templates as a native DeepSeek Harness conversation view.

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