Skip to content
dsh-market Browse plugins GitHub 中文

deepseekbluefish/dsh-screenshot-plugin

WeChat-style in-app screenshot button: drag a region, fine-tune with 8 resize handles, Enter to capture and Esc to cancel; auto-numbered PNGs plus a \[Shot N HH:mm] marker written into the composer. Windows-only, tested on DeepSeek Harness Desktop.

Stars ★ 0 Category UI Enhancements Listed 2026-08-24

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add github:deepseekbluefish/dsh-screenshot-plugin

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

A WeChat-style in-app screenshot button for DeepSeek Harness: a small ✂ button next to the composer input. Click it, drag a region on the dimmed screen, release — captured.

  • PNGs auto-numbered (JiePingN_HHmm.png) into a configurable folder
  • A [Shot N HH:mm] marker is written into the composer input (send it and your agent can locate and read the file)
  • Pure-ASCII marker, no encoding pitfalls

Install

dsh plugin --profile web add github:<owner>/dsh-screenshot-plugin

Restart DSH (or your client) and the ✂ button appears next to the composer input.

Usage

  1. Click ✂ — the screen dims
  2. Drag to draw a selection; the frame stays after release — drag inside to move it, drag the 8 edge/corner handles to resize
  3. Double-click the selection (or press Enter) to capture, Esc cancels
  4. [Shot N HH:mm] appears in the input box
  5. Send it — with a vision plugin such as ModLens your agent can read the screenshot

Configuration

Shots save to ~/Pictures/DSH-Screenshots by default. Override per profile:

# ~/.dsh/profiles/<name>/cordis.patch.yml
- id: screenshot
  config:
    folder: 'D:\MyScreenshots'

How it works

  • Client (client/index.js): a ✂ button registered in the conversation.input.left slot; clicking it POSTs to /api/screenshot/capture
  • Host (lib/index.js): registers a webServer route, spawns a PowerShell full-screen region-select overlay, returns { ok, file, marker }
  • Capture script (lib/capture.ps1): WinForms overlay + CopyFromScreen region capture; strictly ASCII source (Windows PowerShell 5.1 encoding safety); the JSON result is emitted from the main flow, not from event handlers
  • Composer fill: tries props.inputActions, then sessions.provideInfo(...).props.inputActions, falling back to session.prompt(..., 'queue'); failures surface as a toast and never break the app

Limitations

  • Windows only (depends on Windows PowerShell / System.Drawing)
  • Multi-monitor supported via the virtual-screen coordinate space

License

MIT

Content from the project README on GitHub ↗

Comments

Comments live in GitHub Discussions. Sign in with GitHub to post or react.