ZRui-C/dsh-computer-use 预览 preview

ZRui-C/dsh-computer-use

Text-first browser & background macOS control for DeepSeek Harness (DSH): target the right process and window without taking the user's pointer. 为 DSH 提供文本优先的电脑控制:后台操作 Chromium 与 macOS,不抢前台、不移动鼠标。

项目介绍Project Overview

DSH Computer Use 是一款基于文本的 DSH 客户端,面向 Chromium 浏览器与 macOS 后台控制。它通过 Playwright/CDP、辅助功能树及 Vision OCR 获取语义观测,并利用稳定的快照引用与定向输入通道(按 PID/WindowServer 窗口 ID 路由 SkyLight 与 CoreGraphics 事件)执行指针、键盘、表单与拖拽操作,每次动作后返回新的边界化文本观测。可在需要无障碍自动化、后台驱动多应用或保持用户指针不被打断时使用。需注意:仅支持 macOS 14+ 通用 2 二进制,依赖 DSH Host 与 Google Chrome,且使用了 Apple 不支持的私有 SkyLight 符号。

DSH Computer Use is a text-first DSH client for Chromium browsers and background macOS control. It retrieves semantic observations through Playwright/CDP, the Accessibility tree, and Vision OCR, then executes pointer, keyboard, form, and drag actions via targeted SkyLight and CoreGraphics channels keyed by PID and WindowServer window IDs, returning a fresh bounded text observation after each action. Use it for accessible automation, background multi-app driving, or any workflow that must avoid hijacking the user's pointer. Caveat: it requires macOS 14+ Universal 2, depends on DSH Host and Google Chrome, and relies on private SkyLight symbols unsupported by Apple.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add --save-exact file:/path/to/DSH\ Computer\ Use.app/Contents/Resources/Plugin

ZRui-C/dsh-computer-use 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DSH Computer Use icon

DSH Computer Use

Text-first browser and background macOS control for DSH.
Target the right process and window without taking over the user's pointer.

简体中文 · Architecture · Distribution · Security

macOS 14+ Universal 2 Apache 2.0 GitHub stars GitHub release

Install

Homebrew

brew tap zrui-c/tap
brew trust zrui-c/tap
brew install --cask dsh-computer-use
open -a "DSH Computer Use"

DMG

  1. Download the latest DSH-Computer-Use-*-universal.dmg from Releases.
  2. Drag DSH Computer Use into Applications and open it.

With either method, authorize Accessibility and Screen Recording, select Install under DSH Plugin, then restart the running DSH Host.

The Homebrew Cask and official DMG install the same Universal 2, Developer ID signed, Apple-notarized app. Users do not need Xcode, Swift, or this source checkout. DSH and Google Chrome must already be installed.

DSH Computer Use setup center

What it does

Surface Perception Input
Chromium Playwright, CDP accessibility/DOM, frames, tabs, optional OCR Ref-pinned navigation, pointer, keyboard, forms, scroll, drag, upload
macOS Accessibility tree first, Vision OCR for semantic gaps, independent window capture AX actions, targeted SkyLight/CoreGraphics, global HID only without a target

Every action returns a fresh bounded text observation. The model works with roles, names, values, state, geometry, and stable snapshot refs instead of assuming it can inspect screenshots. UI and OCR strings are explicitly untrusted data.

Background macOS control

  • Carries PID, WindowServer window ID, AX window frame, and element identity through every action.
  • Prefers semantic AX actions before coordinate input.
  • Routes supported pointer and keyboard events directly to the target process/window.
  • Uses a click-through software cursor; targeted actions do not move the physical pointer.
  • Keeps post-action observation pinned to the previous target, even while another app stays active.
  • Falls back to public CoreGraphics or fails closed when a private capability is unavailable.

Platform boundary

ScreenCaptureKit is public API. The optional background input path dynamically loads private SkyLight symbols and is intended for Developer ID distribution, not the Mac App Store. Private APIs are unsupported by Apple and can change between macOS releases.

On macOS 26, Stage Manager may expose a shelved window only as a small WindowServer thumbnail. Constructing a capture filter for that representation can abort inside SkyLight. DSH Computer Use detects the geometry mismatch first, preserves AX observation, returns an explicit warning, and never stretches a thumbnail into a fake full-window screenshot.

DSH integration

The embedded package declares a DSH bundle in package.json. The setup center runs the official equivalent of:

dsh plugin --profile web add --save-exact file:/path/to/DSH\ Computer\ Use.app/Contents/Resources/Plugin

cordis.patch.yml installs the Host runtime and registers computer_observe / computer_action in DSH's global tool layer, inherited by every agent preset. No manual edits to user profile YAML or preset copies are required. The setup center detects an older dependency-only installation and repairs the missing bundle registration. A running DSH Host must be restarted after install, repair, or upgrade.

Build from source

Requirements: macOS 14+, Xcode/Swift 5.9+, Node.js 22+, pnpm 11+, DSH, and Google Chrome.

pnpm install
pnpm run typecheck
pnpm run test
pnpm run test:native
pnpm run build

pnpm run build creates:

native/macos-helper/dist/DSH Computer Use.app

The default build is Universal 2. For faster local iteration:

COMPUTER_USE_ARCHS=arm64 pnpm run build

Create a local drag-to-Applications DMG:

pnpm run package:dmg

Public releases require a Developer ID Application identity and notarization. See documentation/distribution.md for the exact local and GitHub Actions flows.

Tool contract

computer_observe returns interactive, full, or changes snapshots for browser and desktop, with optional query filtering and auto | always | never OCR.

computer_action performs exactly one browser or desktop action and returns the post-action semantic state. Ref and coordinate actions require the latest snapshot_id; stale targets fail closed and require another observation. File uploads are fenced to the DSH session workspace.

Project

Community

Licensed under Apache-2.0. This independent project is not endorsed by Apple. “DeepSeek” and related marks belong to their respective owners; the name is used only to describe compatibility with DeepSeek Harness/DSH.

上一个 Prev dsh-anchored-standard 下一个 Next DshCockpit