DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Xiangwriter Screen Control — DeepSeek Harness 插件(DSH Plugin)
← Plugins
X

dsh-xiangwriter-screen-control

Xiangwriter Screen Control

DeepSeek Harness 的 Windows 屏幕控制:捕获屏幕、点击、输入文字、检查 UI Automation 并管理窗口——一个类似 Codex 的计算机使用工具集,支持审批控制和紧急停止。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:xiangwriter-dev/dsh-xiangwriter-screen-control#2b8d7951211c586fc5e1504996ce76aa17a284fc
README兼容性版本

兼容性与来源证明

Xiangwriter Screen Control 以 dsh-xiangwriter-screen-control 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/17

版本

0.1.2stable
2026/10/17

相关插件

正在加载相关插件…

最新版
0.1.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/17
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-xiangwriter-screen-control

Windows screen control for DeepSeek Harness. Six screen_* tools let an agent look at this desktop and drive it like a person: screenshot, move/click/drag/scroll the real mouse, type Unicode text, send key chords, read the UI Automation tree, focus windows, and wait for UI changes.

Like Codex's computer-use plugin, but built for DSH on Windows with no dependencies, no MCP server, no compiler: a single Windows PowerShell 5.1 worker does the Win32 work, and the agent gets first-class tools, approval gating, and an emergency stop.

中文说明 · Tools · Architecture · Verification


Features

  • Look — full virtual desktop, one window (works while covered, via PrintWindow), or a rectangle; PNG/JPEG with optional downscale and a cursor crosshair.
  • Act — click, double/right/middle click, drag with interpolation, wheel scroll, Unicode typing (Chinese, emoji), key chords such as ctrl+shift+t.
  • Understand — UI Automation tree with control type, name, automation id, rectangle, enabled/off-screen state and values; window list with process names and rectangles.
  • Image-aware — when the routed model accepts images, the screenshot is committed through the attachment service and returned as a real image block; text-only routes get the file path plus metadata instead.
  • Safe by default — desktop input is gated by inputPolicy: "ask" (one approval per session), Ctrl+Alt+Esc stops all input for 30 s, and every call reports the cursor position it actually read back.
  • Cheap to run — one long-lived worker per profile, serialized requests (~100 ms per action after the first), automatic restart, one-shot fallback when the host forbids piped stdio.

Requirements

  • Windows 10 or Windows 11 with an interactive desktop session.
  • DeepSeek Harness (tested with 0.2.1-rc.2).
  • Windows PowerShell 5.1 (powershell.exe), which ships with Windows. PowerShell 7 is not required.
  • Optional: a model that declares image input, for screenshot understanding. Text-only models can still work through screen_ui.

Install

From GitHub (recommended)

dsh plugin add github:xiangwriter-dev/dsh-xiangwriter-screen-control

From a local checkout

git clone https://github.com/xiangwriter-dev/dsh-xiangwriter-screen-control.git
dsh plugin add /absolute/path/to/dsh-xiangwriter-screen-control

In the desktop app, the equivalent is Settings → Plugins → Install bundle with the directory as the target.

From a release tarball

dsh plugin add https://github.com/xiangwriter-dev/dsh-xiangwriter-screen-control/releases/latest/download/dsh-xiangwriter-screen-control.tgz

After installing, the tools appear on the next turn. The plugin row is called Screen Control in Settings → Plugins.

From the plugin market (Discover)

DSH 0.2.1-rc.2 ships the plugin market as an experimental bundle that is disabled by default, and it has no built-in index: the Discover tab reads the index URLs you add. Enable the bundle once (Settings → Plugins → Plugin market; the package is @deepseek-ai/dsh-experimental-plugin-market-bundle), then add this index:

https://raw.githubusercontent.com/xiangwriter-dev/dsh-xiangwriter-screen-control/main/market/index.json

The index uses the harness's plugin market format 1 and pins the v0.1.0 commit, so installing from Discover gets exactly the released code. See docs/market.md for the entry, the update procedure, and the exact validation rules.

Quick start

Ask the agent for an outcome, not a keystroke:

Open Notepad, type a haiku about the sea, and screenshot the result.

A typical tool sequence:

  1. screen_windows { action: "list", title: "记事本" } — is the target already open?
  2. screen_capture { window: "记事本" } — look before acting.
  3. screen_pointer { action: "click", x: 640, y: 520 } — click the text area.
  4. screen_keyboard { action: "type", text: "…" } — type.
  5. screen_capture { window: "记事本" } — verify the text is really there.

Pixels picked from a screenshot can be reused directly:

// 1) capture returns: source {x:0,y:0,width:2560,height:1600}, scale 0.625
{ "name": "screen_capture", "arguments": { "max_width": 1600 } }

// 2) click the pixel you saw in that image — the plugin maps it back to the screen
{ "name": "screen_pointer", "arguments": { "action": "click", "x": 400, "y": 300, "coordinate_space": "image" } }

Tools

ToolWhat it does
screen_captureScreenshot the desktop, a window, or a region; returns path, geometry and (for image-capable models) the image.
screen_pointerMove, click, double/right/middle click, drag, scroll. Screen or image coordinates.
screen_keyboardType Unicode text, send a key chord, or paste through the clipboard.
screen_windowsList top-level windows or focus one by title/handle.
screen_uiRead the UI Automation tree of a window as text, with rectangles.
screen_waitSleep, or wait for a window title to appear.

Full parameter and return contracts: docs/tools.md.

Configuration

The plugin row accepts these keys (all optional; defaults shown):

inputPolicy: ask            # ask | allow | deny
capture:
  maxWidth: 1600            # downscale screenshots to this width
  format: png               # png | jpeg
  quality: 82               # jpeg quality
  keepShots: 20             # reserved for capture retention
failsafe:
  enabled: true
  hotkey: ctrl+alt+esc
  cooldownMs: 30000
bridge:
  command: ''               # override the powershell.exe path
  timeoutMs: 15000          # per-action timeout
  restartLimit: 2           # consecutive worker restarts allowed
  idleTimeoutSec: 1800      # worker exits after this much idle time

inputPolicy:

  • ask — default. The first pointer or keyboard action in a session asks for approval; the grant is remembered for that session.
  • allow — no prompts (only for fully trusted sessions).
  • deny — read-only: screenshots, window and UI Automation queries still work, input is refused.

Safety and privacy

  • Approval gate. Desktop input is what a person's hands do; the plugin routes the first input action of a session through the harness approval channel. Screenshots and UI trees never prompt.
  • Emergency stop. Hold Ctrl+Alt+Esc while any input tool runs (or before it) and input is refused for 30 seconds with E_FAILSAFE.
  • Elevated windows. Windows' UIPI blocks synthetic input to processes at a higher integrity level (an administrator app). Run the harness at the same integrity level if you need to drive one; the plugin reports E_UIPI when it can detect the refusal.
  • Locked screen. The secure desktop cannot be captured or driven; expect E_LOCKED.
  • Screenshots contain everything on screen, including other windows. The plugin has no redaction; do not use it on a desktop with content you would not share with the model provider.
  • The worker never touches the network. It receives JSON lines on stdin and returns capture files under your temp directory.

Troubleshooting

SymptomCause and fix
cannot start PowerShellbridge.command is wrong, or the host forbids child processes. The bridge falls back to one-shot runs automatically.
SetCursorPos failed / SendInput rejected inputThe process is confined by an external sandbox, or the desktop is locked. Run the harness in the interactive user session.
Screenshot is blackHardware overlay, DRM-protected video, or the secure desktop. Capture the window with window: instead of the full screen.
coordinate_space "image" needs a previous screen_captureCapture first; the geometry is remembered per session.
E_NOT_FOUND: no visible window title contains …Call screen_windows with action: "list" and use the exact title substring.
screen_ui is emptySome apps expose no automation tree (games, custom-drawn UIs). Use screenshots and coordinates instead.

Development

node scripts/check.mjs                  # imports every module and validates resources (no child process)
node scripts/run-tests.mjs              # unit tests
node scripts/run-tests.mjs --sandboxed  # unit tests in one process (confined host)
DSH_SCREEN_E2E=1 node scripts/run-tests.mjs e2e --sandboxed

run-tests.mjs enumerates the test files itself, so it does not depend on shell globs or directory arguments; --sandboxed avoids spawning one process per file, which confined hosts forbid.

The e2e suite drives the real engine and briefly moves the mouse; it restores the cursor when it finishes. On CI it is skipped because the runner has no interactive desktop.

node scripts/setup-repo.mjs <github-owner>   # re-point metadata if the repo moves
node scripts/make-entry.mjs <github-owner>   # regenerate the awesome-dsh-plugin entry

How it works

flowchart LR
  A[Agent tool call] --> B[screen_* tool]
  B --> C{Approval gate<br/>input only}
  C -->|allow| D[Node bridge<br/>JSON lines]
  C -->|reject| X[error to model]
  D --> E[Windows PowerShell 5.1 worker]
  E --> F[Win32: user32 / gdi32 / UIAutomation]
  F --> G[Desktop: windows, mouse, keyboard]
  E --> H[PNG/JPEG file]
  H --> I[attachments.saveImage]
  I --> J[image block + metadata]

More detail, including the JSON protocol and lifecycle rules, is in docs/architecture.md.

License

MIT.

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub