dsh-computer-use: Adding Virtual Mouse for Human-Like Operations to DeepSeek Harness

Introduction

In DeepSeek Harness (DSH) for desktop automation, common approaches involve calling system APIs or relying on screenshots plus coordinate clicks. The former is not model-friendly, while the latter can easily lead to misaligned clicks and struggles to express the “observe first, then act” workflow. dsh-computer-use is a community-maintained workflow plugin that complements harness-desktop with “virtual cursor human-like operations”: the model first observes the screen, then performs sliding, clicking, and typing through an independent cursor, with visible processes, supporting macOS / Windows / Linux.

This article introduces the plugin’s positioning, 11 tools, installation steps, and usage considerations.

What It Is

  • Name: dsh-computer-use (GitHub: 988hj7tczd-oss/dsh-computer-use)
  • Maintainer: 988hj7tczd-oss
  • Category: Workflow (SkillHub directory page labeled “Installable · Workflow”, current version v0.1.0)
  • License: MIT
  • Engine: Based on cua-driver (MIT, MCP standard interface)

The plugin registers 11 model-friendly tools for DSH. The core design involves using the accessibility (AX) tree to “see” the screen and locate element coordinates (zero visual token cost); all operations go through a pixel-level virtual cursor with sliding animations and realistic clicks, simulating human operations.

Core Features

Observation and Operation Tools

Tool Function
screen_observe Observe screen: AX numbered tree + coordinates; automatically falls back to visual when AX tree is empty
computer_click / computer_double_click / computer_right_click Independent cursor slides to target + pixel-level click
computer_type Text input (automatically rejected in password fields)
computer_key Key / shortcut (e.g., return, cmd+c; Enter to send in chat windows)
computer_scroll Scroll
computer_drag Drag
computer_wait Wait
app_list / app_launch List / launch applications

Security Design

  1. Virtual Cursor Isolation: Operations go through cua-driver’s independent Agent cursor, not preempting the real mouse.
  2. Observation Snapshot TTL: Snapshots expire in about 15 seconds; actions are rejected after expiration, requiring a re-screen_observe.
  3. Region Restrictions: Optional allowedApps whitelist; operations on apps outside the list are rejected.
  4. Dangerous Operation Approval: When target labels contain danger words like “delete / payment / transfer / logout”, the DSH approval service is consulted to ask the user.
  5. Sensitive Input Protection: Password fields (AXSecureTextField) reject automatic input.
  6. No Snapshot Rejection: Any action must be preceded by screen_observe, eliminating blind operations.

Coordinate mode (x/y) and untargeted input (computer_type / computer_key landing in the foreground app) cannot predict target content, so security fallback relies on snapshot TTL and operation visibility; computer_key does not validate the shortcut itself, so do not grant access to untrusted models.

Optional Capabilities

Visual Fallback: For interfaces without an AX tree, such as games or Canvas, set ZHIPU_API_KEY to allow screen_observe to degrade to visual understanding (e.g., glm-4.6v-flash, see README) when AX is empty.

Cursor Theme: Built-in rainbow gradient pointer theme com.dsh.computeruse.rainbow; configurable via cursorTheme, falling back to the engine default cursor if not installed.

Installation and Enabling

Prerequisites

  • harness-desktop (including dsh rc runtime)
  • cua-driver installed and authorized (macOS: Accessibility + Screen Recording; Windows: normal user permissions)
  • The plugin defaults to looking up cua-driver in PATH; if not in PATH, set CUA_DRIVER_BIN=/path/to/cua-driver

One-Click Installation

The repository provides install.sh, which injects into the home-level user patch layer without modifying profile configuration:

# Dry run
./install.sh --dry-run

# Install
./install.sh

# Uninstall
./uninstall.sh

Restart harness-desktop after installation for it to take effect.

Windows / Linux users: install.sh defaults DSH_HOME to the macOS path, so first run export DSH_HOME=<your dsh home directory> before executing; or manually in two steps:

  1. ln -sfn <plugin directory> "$DSH_HOME/profiles/web/node_modules/dsh-computer-use"
  2. Insert plugin registration in $DSH_HOME/cordis.patch.yml (see repository cordis.patch.yml)

Optional Configuration

Override in $DSH_HOME/cordis.patch.yml:

- id: dsh-computer-use
  config:
    ttlMs: 15000        # Snapshot validity period (milliseconds)
    maxElements: 500    # Maximum numbered elements for screen_observe
    allowedApps: []     # Region restriction whitelist (empty = no restriction)
    cursorTheme: com.dsh.computeruse.rainbow  # Virtual cursor theme (empty = engine default)

Visual mode (optional):

export ZHIPU_API_KEY=your_key

Keys can be applied for at the Zhipu Open Platform: https://open.bigmodel.cn

Typical Usage

For development verification, an isolated profile can be used without modifying real GUI configurations. Example from README:

DSH_HOME=$PWD/.dsh-p0 ELECTRON_RUN_AS_NODE=1 \
  /Applications/harness-desktop.app/Contents/MacOS/harness-desktop --expose-internals \
  /Applications/harness-desktop.app/Contents/Resources/app/node_modules/@deepseek-ai/dsh/lib/bin.js \
  --profile test "Please call screen_observe to observe the current window and report"

Daily workflow: First, use screen_observe to get numbered elements and coordinates, then call tools like computer_click; any action must be preceded by a non-expired observation snapshot.

Applicable Scenarios and Considerations

Suitable for: Workflows in DSH dialogues where models need to “view the desktop, click the interface, enter text”; scenarios where visible operations and isolation from the real mouse are desired.

Limitations (as stated in README):

  • Windows / Linux pending real-device testing (engine officially supported)
  • Pixel coordinate calibration is approximate; first-click offset can be calibrated using visual mode or engine screenshot comparison
  • Visual screen reading has average precision for small fonts; windows like macOS calculator may not be in the AX tree

Permissions and Security: The plugin runs with the current dsh process permissions. Before installation, read the source code and MIT license to confirm if allowedApps and approval strategies match your environment. SkillHub is a community directory and has no official affiliation with DeepSeek / High-Flyer.

Links

  • SkillHub Directory Page: https://www.skillhub.cn/plugins/988hj7tczd-oss/dsh-computer-use
  • GitHub: https://github.com/988hj7tczd-oss/dsh-computer-use
  • npm: https://www.npmjs.com/package/dsh-computer-use
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye