dsh-click
Cross-platform native desktop control tools for DeepSeek Harness (Windows first): screen_shot, screen_read (accessibility tree + pixel description for text-only models), click/type/scroll/key, and app_list/app_launch — every mutating action gated by approval, never stealing foreground focus, with stale-observation rejection and process-identity checks
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-click说明文档
阅读完整 README ↗Configuration
All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline.
| Key | Default | Meaning |
|---|---|---|
requireApproval | true | Gate every mutating action behind approval; observers never ask |
autoApproveWindows | [] | Window-title/executable regexes that skip the approval ask (still freshness-checked and audited) |
auditSessionEvents | true | Append dsh-click/observed / dsh-click/action session audit events. The adaptive gate already skips the append on envelope-less hosts (rc.6–rc.8, 0.1.1-rc.2, and 0.1.2-rc.1, which fails closed on unknown types at read); set false to stop audit appends entirely 0.1.2-rc.1 (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
focusFallback | never | Whether an action may bring the target window to the foreground as a last resort (never / allow) |
imageMode | auto | screen_shot rendering: auto (image when the model accepts images, text otherwise) or text |
helperTimeoutMs | 30000 | Per-helper-call timeout in ms (1..300000) |
maxHelperOutputBytes | 25165824 | Cap on one helper response in bytes (1024..67108864) |
maxScreenshotSide | 2560 | Longest screenshot side in pixels (320..7680); larger captures are downscaled |
staleCheckPixels | true | Compare a fresh pixel hash before every action and refuse on change |
maxObservationAgeMs | 30000 | Maximum age in ms of an observation an action may cite (1000..600000) |
maxCachedObservations | 8 | LRU cap on cached observations (1..64) |
maxElements | 500 | Cap on accessibility elements per screen_read (1..2000) |
maxTreeDepth | 32 | Maximum accessibility tree-walk depth (1..64) |
maxTextLength | 200 | Truncation length for sanitized model-visible strings (16..10000) |
rollbackEnabled | true | Back up and restore control text when type fails |
ocr.enabled / command / language | true / tesseract / eng | Optional OCR for the screen_find path (probed at mount; degrades to unavailable when tesseract is absent) |
Example override in your profile patch:
- insert:
- id: dsh-click
name: dsh-click
config:
requireApproval: true
autoApproveWindows: ['^Notepad']
focusFallback: never