deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:19north/dsh-shot
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Composer screenshot control for DeepSeek Harness: a camera button next to + in the
composer opens a two-item menu, and the capture is framed and annotated in an overlay inside
the window (no fullscreen, the window stays where it is). The result lands in the current
conversation's composer as an image attachment.
| Menu item | Behaviour |
|---|---|
| Direct capture | Grab the whole virtual screen immediately; whatever covers it is captured too. |
| Hide this window | Hide the DSH window first, capture, then restore it exactly as it was (including "was minimized"). |
Windows only — the capture itself is a PowerShell child that drives Win32 (window lookup, hide/restore, DWM-aware screen grab).
0.1.7 or newer, desktop/web profile.scripts/capture.ps1).^22.19.0 || >=24.0.0.node:* builtins.# from a checkout
dsh plugin --profile <profile> add ./dsh-shot
# from a packed tarball
pnpm pack
dsh plugin --profile <profile> add ./dsh-shot-0.1.0.tgz
# from npm (once published)
dsh plugin --profile <profile> add dsh-shot
A package that declares dsh.bundle is appended to dsh.profile.bundles automatically, so the
layer is composed on the next boot. Verify without booting:
dsh --profile <profile> --dump-config # look for the "== dsh-shot" layer
Then restart the app — the client bundle URL carries a build revision that is computed at
startup, so a page refresh is not enough for lib/client.js changes.
+ in the composer and pick one of the two menu items.| Action | Effect |
|---|---|
| Drag the eight handles (corners + edge midpoints) | Resize from that handle. |
| Drag inside the box | Move the box, keeping its size. |
| Arrow keys | Nudge by one pixel; hold Shift for ten. |
| Right-click / Reselect | Drop the selection and start over. |
| Esc / right-click | Step back one level (undo annotation → reselect → exit). |
Annotation tools: rectangle, arrow, text (click a point, type, Enter to confirm, Esc to cancel; double-click existing text to edit it), an eight-colour palette, plus undo and reselect. Text carries a translucent dark plate so it stays readable on any background.
Confirming (or Enter) puts the image into the composer draft. It is an ordinary image attachment: you can preview it, add a message, and it is only sent when you send.
| Half | File | Runs in |
|---|---|---|
| Host | lib/index.js |
DSH server; registers the /api/dsh-shot/* routes and spawns scripts/capture.ps1. |
| Client | lib/client.js |
Browser; the composer button and the framing/annotation overlay. |
| Capture | scripts/capture.ps1 |
A detached PowerShell child; finds the DSH window, hides/restores it, grabs the virtual screen. |
The client half is declared in package.json under dsh.client and is served from
/plugins/dsh-shot/client.js.
# static contract checks (patch, manifest, red lines)
dsh-plugin-dev check --cwd .
# pack + install/start/uninstall in a throwaway DSH_HOME
dsh-plugin-dev verify --cwd .
Headless regression suites for this plugin live outside the package, in
dsh-screenshot-research/ (test-host.mjs, test-client.mjs, deliver-probe.mjs,
e2e-shot.mjs); they drive a throwaway headless Edge with a self-signed session cookie and never
touch a real browser profile.
DESIGN.md is the implementation and decision log: the measured evidence behind each design
choice, and the traps that were already paid for.
MIT.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。