dsh-desktop-use
给 DeepSeek Harness 的「电脑操作」插件:模型可以截取你的 Windows 桌面、移动鼠标、点击、输入文字、按快捷键,从而像 Codex / Claude Code 的 computer use 一样替你操作本机应用。
开关在输入框左侧的工具行里:电脑。默认关闭,开启前模型看不到任何电脑操作工具。
[ 电脑 ● ] ← 输入框左侧工具行,和「极速模式」「完全权限」并排
- 关闭:灰色、小圆点半透明。
- 开启:整颗按品牌色高亮,圆点变实心并带光晕。
- 开启过程中:图标换成转圈,因为宿主正在真实探测桌面(启动助手 + 读屏幕)。
- 失败:按钮变红,鼠标悬停能看到原因,点一下重试。
安装
仅支持 Windows。在 DeepSeek Harness 里打开 插件 → 添加插件,在输入框里填包名,点 安装,装好后点 立即启用:
dsh-desktop-use
也可以填 GitHub 仓库地址 https://github.com/FelixJiashengFu/dsh-computer-use。连不上 npm 官方源时,在 安装源 里选中国大陆镜像源再填包名。
输入框左侧随即出现「电脑」开关(若没出现,刷新一次页面)。升级:在插件页卸载后,用同样的方式重新安装。
功能
| 工具 | 作用 |
|---|---|
computer_screenshot |
截取整个桌面,返回图片(模型直接看图,不用换算物理分辨率) |
computer_click |
在图片坐标处点击,支持右键、双击 |
computer_type |
输入文本(支持中文),可自动回车 |
computer_key |
组合键,如 ctrl+s、win+r、alt+tab |
computer_scroll |
滚轮,可先移动到指定位置 |
computer_drag |
从一点拖到另一点(选中文字、拖窗口) |
computer_windows |
列出可见窗口(hwnd、标题、进程、位置) |
computer_focus |
把窗口切到前台(按 hwnd 或标题片段) |
computer_open |
用默认程序打开网址 / 文件 / 文件夹 |
computer_wait |
等一会儿再截图,用于等加载 |
所有坐标都是最近一次截图里的像素坐标,插件内部按截图缩放比例换算成物理像素,所以 200% 缩放的 4K 屏也能直接用。
开关行为
- 关闭时:10 个工具不会出现在模型的工具列表里,模型也无从调用(不是靠报错拦截)。
- 打开时:先在宿主机实测一次桌面可用性(启动 PowerShell 助手并读取屏幕信息),成功后才真正挂载工具;失败则开关变红,
title里给出原因。 - 状态持久化在
~/.dsh/computer-use.json,重启 Harness 后自动恢复。 - 关闭时立即卸载工具并结束助手进程,不留后台 PowerShell。
工作原理
- 宿主半边(
lib/index.js):持有开关状态,按需把工具注册进ctx.tools;通过webServer暴露两个回环路由(/plugins/dsh-desktop-use/state、/probe),只接受 127.0.0.1 / ::1 请求。 - 桌面助手(
lib/helper.ps1+lib/helper-client.js):一个常驻的 PowerShell 进程,用 P/Invoke 调用user32.dll(SetCursorPos、SendInput、keybd_event)和System.Drawing截图,stdin/stdout 走一行一个 JSON;冷启动约 1 秒,之后每条命令几十毫秒。 - 浏览器半边(
lib/client.js):注册进conversation.input.left槽位,纯React.createElement,无构建步骤,通过fetch读写开关状态。
截图按需内联到会话里(走 attachments 服务),临时 PNG 落在 ~/.dsh/computer-use-shots/,超过 15 分钟自动清理;拿不到 attachments 服务时退化为返回文件路径,模型可用 read_image。
本地开发
克隆本仓库后,在 添加插件 里填本目录的绝对路径,或在 DeepSeek Harness 里让 agent 调用插件管理器:
plugin_manager install_bundle <本目录绝对路径>
安装会在当前 profile 里写一行 bundle 记录并热生效。插件在插件管理里的显示名来自 locale/en.json、locale/zh.json(英文 Computer Use / 中文 电脑操作),图标是包根目录的 icon.svg。
安全边界
- 只监听回环地址,不接受外部网络请求。
- 开关是唯一入口:模型无法自行打开它。
- 这是真实的鼠标键盘控制,屏幕上的一切(含密码、聊天记录)都可能被看到或操作。只在需要时打开,用完关掉。
- 仅支持 Windows(依赖
user32.dll与 PowerShell)。
已知限制
- 一次只能有一个前台窗口;后台窗口需要先
computer_focus。 - 截图是整屏,包含所有显示器(虚拟屏幕坐标)。
- 打字走
SendInput的 Unicode 模式,个别游戏 / 反作弊程序会拦截。
No comments yet. Be the first to write one.