dsh-computer-use
dsh-computer-use 为 DeepSeek Harness 带来 computer use 能力:通过 js 与 js_reset 两个工具,让智能体读取窗口、点击、输入文字并截屏,操控 macOS 上的任意桌面应用。它直接复用本机已安装的 ChatGPT 桌面应用自带的 computer-use 运行时,无需额外部署;应用授权走 DeepSeek Harness 的提问卡片,每轮结束自动清理上游状态。仅支持 Apple Silicon 版 macOS。
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 23, 2026
- Updated
- Oct 26, 2026
Introduction
dsh-computer-use
Self-contained DeepSeek Harness plugin that gives the agent computer use: read windows, click, type, and screenshot any desktop app — through the computer-use runtime of the locally installed ChatGPT desktop app. macOS (Apple Silicon) only.
It vendors only the macOS launch path of the original computer-use integration: it drops the multi-platform host, the setup/update machinery, and any separate CLI, and reuses the CUA runtime of the installed ChatGPT app in place (never copied or re-signed).
Prerequisites
- macOS on Apple Silicon.
- The official ChatGPT desktop app installed at
/Applications/ChatGPT.app(supplies the original CUA runtime). The plugin reads it in place; it never downloads or modifies it. - DeepSeek Harness
>=0.2.1-rc.2 <0.3.
How it works
DSH Host process (plugin)
└─ spawns <app>/Contents/Resources/cua_node/bin/node runtime/launcher.mjs
├─ resolveInstalledMacApp() validate ChatGPT.app (signature/team/arch/manifest)
├─ environment() build the CUA REPL's env (NODE_REPL_*/SKY_*)
├─ configureMacosLifecycle() wrap Sky with runtime/macos_sky_service.mjs (turn-ended hook)
├─ startOriginalHost() lifetime socket + control bridge (runtime/macos_host.mjs)
└─ spawn the original cua-repl.mjs (the stdio MCP server) with inherited stdio
The plugin then talks MCP to the CUA REPL and registers its js / js_reset tools on DSH's
tool registry, injects the runtime's instructions as a system-prompt section, forwards native-app
approvals through DSH's question card, and ends each turn upstream (Stop/Interrupt) on DSH's
turn/end.
Config
The bundle patch inserts one row with a single option:
appPath: /Applications/ChatGPT.app # path to the installed ChatGPT app
Vendored dependency
@modelcontextprotocol/sdk@1.30.0 is vendored under node_modules/ because DSH links local
bundles (link:) and does not install their npm dependencies. DSH ships the newer
@modelcontextprotocol/client (v2); adapters/client.mjs is written against the v1 SDK, so the
v1 SDK is pinned and committed here. If you move to a file: install or publish to npm,
dependencies in package.json already declares the correct version.