dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
为 dsh 提供 Windows 桌面自动化:14 个工具,可枚举应用与窗口、抓取被遮挡也能截的窗口截图、读取无障碍树,并执行真实输入——点击、输入文字(含中文)、按组合键、滚动与拖拽。加载机器上已安装的官方电脑控制运行时(@oai/sky),按厂商目录枚举发现,引擎升级换目录也不会失效。
Windows desktop automation for DeepSeek Harness — the agent gets eyes and hands on the local GUI.
14 tools · pure JS, zero dependencies · brings real keyboard/mouse input, occlusion-proof window screenshots and the accessibility tree into DSH.
cua_list_apps, cua_list_windows) → {app, id, title}.cua_window_state returns a window screenshot captured with Windows.Graphics.Capture (works even when the window is covered by others) plus the accessibility (UIA) tree, which carries element_index values for precise targeting.cua_click (single/double, by element or pixel), cua_type_text (CJK included), cua_press_key (Control_L+a, Return, …), cua_scroll, cua_drag (text selection, sliders, files), cua_set_value, cua_secondary_action.cua_activate_window, cua_launch_app.cua_release shuts the engine down so its on-screen cursor overlay is torn down and the real pointer returns; an idle timer (releaseAfterIdleMs, default 60 s) does the same automatically if a session is left open.| OS | Windows 10 / 11 x64 |
| Host | DeepSeek Harness Desktop 0.1.x |
| Runtime | The official computer-use runtime (@oai/sky) already installed on the machine |
This package does not ship the engine binary — the runtime comes from the vendor application that provides it. The plugin finds it by enumerating the vendor directories under %LOCALAPPDATA%\OpenAI\ (highest @oai/sky version, largest CLI executable), so vendor upgrades that change hash directories keep working without touching the plugin.
No admin rights required.
From the plugin market, or directly:
dsh plugin add https://github.com/MuzeWinter/dscomputer-control
Then fully quit and restart DeepSeek Harness — bundle modules are cached per process, so a restart is what loads the plugin. Changes to the config block below are hot-reloaded in a few seconds and do not need a restart.
Manual installation: copy lib/ and cordis.patch.yml into <profile>/_plugins/dscomputer-control, expose it in <profile>/node_modules/, add "dscomputer-control" to dsh.profile.bundles in <profile>/package.json, and append:
- id: dscomputer-control
name: "dscomputer-control"
config:
approval: auto
releaseAfterAction: false
releaseAfterIdleMs: 60000
imageMode: auto
maxTextChars: 20000
timeoutMs: 45000
The bundled skill (skill/SKILL.md) can be copied to %USERPROFILE%\.dsh\skills\dscomputer-control\SKILL.md; skills are picked up without a restart and make the model reach for this toolset on GUI tasks.
| key | default | meaning |
|---|---|---|
approval | auto | auto runs unattended; allowlist allows only approvedApps matches; deny rejects every action deterministically |
approvedApps | [] | substrings matched against app title / process name (only with approval: allowlist) |
imageMode | auto | auto attaches the screenshot when the active model accepts images; text returns only the tree |
releaseAfterAction | false | true closes the engine after every action (safest for the pointer, but the overlay only flashes) |
releaseAfterIdleMs | 60000 | auto-release after this much idle time; 0 disables it |
maxTextChars | 20000 | truncation length for the accessibility tree |
timeoutMs | 45000 | per-call timeout (registered with DSH as timeoutMs + 15000) |
scrollStep | 3 | step size for direction-based scrolling |
cua_status · cua_list_apps · cua_list_windows · cua_window_state · cua_click · cua_type_text · cua_press_key · cua_scroll · cua_drag · cua_set_value · cua_secondary_action · cua_activate_window · cua_launch_app · cua_release
Usage discipline that saves turns: enumerate first ({app, id} are both required), activate before typing, prefer element_index over pixels, verify after every action, and release when done.
dsh-click plugin is a better fit — the two are complementary and can be installed side by side.foreground window did not report a process id, or UIPI blocks the injection). Classic Win32 targets work.cua_launch_app takes an app id from cua_list_apps (or a launchable executable), not a display name.cua_release / idle auto-release removes it.@oai/sky),本包不含引擎二进制;插件按厂商目录枚举发现运行时,引擎升级换目录不影响。config 会热重载、不用重启。cua_release(或等 releaseAfterIdleMs 自动释放),否则引擎的光标覆盖层会一直盖着鼠标。The computer-use engine and the @oai/sky runtime belong to their vendor and are not part of this package. This plugin only locates and loads them in-process on behalf of DSH; it neither ships, copies nor modifies their files.
MIT — covers the plugin code in this repository only.