DSH Hub

PerryLink/dsh-click

dsh-click

BundleWorkflow14 GitHub stars· updated 2026-09-25

Cross-platform native desktop control for DeepSeek Harness (Windows first): screen_shot, screen_read, click/type/scroll/key, app_list/app_launch - approval-gated, never stealing foreground focus

Install

npx @deepseek-ai/dsh plugin --profile web add "github:PerryLink/dsh-click#main"

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-click DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-click.svg)](https://dshhub.dev/plugins/dsh-click)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from PerryLink/dsh-click, cleaned of badges and images.

🖱️ dsh-click

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 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 · 简体中文 · Español · Português · हिन्दी


⭐ 如果它帮到了你

这个插件是 DSH 插件家族的一员(40+ 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。

English: part of a 40+ plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.

Compatibility

SurfaceStatus
HarnessDeepSeek Harness dsh-v0.1.7-rc.2 (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
PlatformsWindows first (UIAutomation + Win32 input, via a bundled PowerShell helper); macOS/Linux backends are reserved and fail closed with a clear reason
ModelText-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)
  │                             pixel hash changed? ── refuse + re-observe
  │                             pid/exe changed after act? ── PROCESS_CHANGED
  │ ◀── canonical JSON + audit events (dsh-click/action)

Quick start

# 1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-click#main"

…

Related plugins