dsh-click
Windows desktop computer-use tools (click, type, key, screenshot) with freshness checks, approval gating, process-identity verification around every action, and a sanitized audit trail.
Install
dsh plugin --profile web add dsh-click
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
🖱️ dsh-click
- 1024 store channel:
npm i -g dsh1024once, thendsh1024 plugin --profile web add dsh-click(counts toward the deepseek1024.com install ranking).



Cross-platform native desktop control for DeepSeek Harness — Windows first.
Look at the screen, then act — every click gated, every action audited.









[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
dsh plugin --profile <name> add dsh-click
</div>
📖 Ecosystem knowledge base — measured data, not marketing: plugin development guide · plugin-selection data · maintenance criteria.
<!-- star-cta -->
Install & uninstall
- git channel (latest
main):dsh plugin --profile web add github:PerryLink/dsh-click— thepreparescript builds with production dependencies only. - npm channel (published releases):
dsh plugin --profile web add dsh-click. - tarball channel:
pnpm packin this repo, thendsh plugin --profile web add ./dsh-click-<version>.tgz. - uninstall:
dsh plugin --profile web remove dsh-click(or remove the row from the profile patch).
If pnpm reportsERR_PNPM_IGNORED_BUILDSfor this package (esbuild's harmless platform-binary validation), addallowBuilds: { esbuild: true }to yourpnpm-workspace.yaml— thedshCLI prints the exact snippet.
⭐ 如果它帮到了你
这个插件是 DSH 插件家族的一员(95 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
English: part of a 95 plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.
What is dsh-click?
Cross-platform native desktop control for DeepSeek Harness — Windows first.
Look at the screen, then act — every click gated, every action audited.
Workflow overview: install → open panel → act. The examples below use the real command surface.
Compatibility
Surface · Status
Harness · DeepSeek Harness dsh-v0.2.1-alpha.1 (GitHub tag, verified 2026-09-25). Verified 2026-09-11 against the dsh-v0.1.7-alpha.1 master checkout (full gate chain + profile install smoke).
Node · ^22.19.0 \ · \ · >=24.0.0
Platforms · Windows first (UIAutomation + Win32 input, via a bundled PowerShell helper); macOS/Linux backends are reserved and fail closed with a clear reason
Model · Text-only models fully supported (screen_read returns structured text); vision models additionally get screen_shot images
What you get
dsh-click gives the harness a complete observe → act loop over native desktop applications:
screen_shot— screenshot of a window (or the primary screen), downscaled to a configurable bound. With a vision-capable model the result carries the image; otherwise a text description keeps text-only models working.screen_read— the structured observation: the window's accessibility tree (element ids, types, names, rectangles, supported patterns) plus pixel-location hints with colors — plain text, no image model required.click/type/scroll/key— window-scoped actions addressed by element id or coordinates. Delivery prefers UIA invoke, falls back to posted window messages — and never steals foreground focus.app_list/app_launch— enumerate running applications and their windows; launch one by name or path.
Every mutating action crosses one safety boundary:
1. Freshness — the action must cite a basedOn observation; the window is re-captured right before acting and the action is refused if the screen changed (pixel-hash check + max-age bound).
2. Approval — ctx.approval gates every action by default; window-title/executable regexes can allowlist specific windows (still audited).
3. Process identity — the owning process's pid and executable path are verified before and after the act; a change refuses the outcome loudly.
4. Audit — observations and actions land in the session log as dsh-click/observed / dsh-click/action events (sanitized, log-only).
model harness
│ screen_read ──▶ observationId (+ elements, pixels) ← structured text
│ click {basedOn, target} ──▶ freshness check ──▶ approval ──▶ helper (UIA)
…(truncated)Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::33,最后更新 2026-11-05