给 DSH 的 Mac 桌面操作能力computer use。视觉优先,不依赖无障碍树。
37.5/100
综合分
8
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-mac-computer-usenpm 源 · dsh-mac-computer-use 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过安装清单取自 plugin/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-mac-computer-use @ 1.5.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 04:15:57
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
- 执行外部命令固定命令index.js:47
const FIFO = (() => { try { return path.join(execFileSync('/usr/bin/getconf', ['DARWIN_USER_TEMP_DIR'], { encoding: 'utf8' }).trim(), 'dsh-cursor.fifo - 执行外部命令固定命令index.js:67
execFile('/usr/bin/pgrep', ['-U', String(process.getuid()), '-f', 'dsh-cursor-overlay'], (err) => resolve(!err)) - 执行外部命令来自配置/变量index.js:88
const child = spawn(OVERLAY, ['--fifo', FIFO], { detached: true, stdio: 'ignore' }) - 执行外部命令来自配置/变量index.js:172
execFile(cmd, args, { timeout: timeoutMs }, (err, out) => (err ? reject(err) : resolve(String(out)))) - 执行外部命令来自配置/变量index.js:205
const child = spawn(bin, args, { stdio: ['ignore', 'pipe', 'pipe'] }) - 执行外部命令固定命令index.js:436
execFileSync('/usr/bin/sips', ['--resampleWidth', String(maxWidth), file, '--out', file], { stdio: 'ignore' }) - 发起网络请求client.js:175
const res = await fetch(ROUTE, action - 执行外部命令固定命令setup.js:78
try { execFileSync('/usr/bin/pgrep', MINE, { stdio: 'ignore' }); running = true } catch {} - 执行外部命令固定命令setup.js:83
try { execFileSync('/usr/bin/pkill', MINE, { stdio: 'ignore' }) } catch { } - 执行外部命令固定命令setup.js:102
execFile('/usr/bin/osascript', ['-l', 'JavaScript', '-e', PERM_JXA], { timeout: 5000 }, (err, out) => { - 执行外部命令来自配置/变量panel.js:30
execFile(bin, ['winlist'], { timeout: 5000 }, (err, out) => { - 执行外部命令来自配置/变量panel.js:39
execFile(bin, ['features'], { timeout: 5000 }, (err, out) => { - 执行外部命令固定命令panel.js:118
execFileSync('/usr/bin/pbcopy', [], { input: INSTALL_CMD }) - 执行外部命令固定命令panel.js:122
execFileSync('/usr/bin/pbcopy', [], { input: UPDATE_CMD }) - 执行外部命令固定命令panel.js:128
execFileSync('/usr/bin/open', [url], { stdio: 'ignore' })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- OCR文本定位
- 元素索引标记
- 点击输入桌面操作
面向 macOS 上 DSH 的视觉优先桌面操作:OCR 文本定位、set-of-mark 元素索引,还有 Codex 风格带弹簧动画的光标。不依赖无障碍树。
最近更新
在 GitHub 查看全部 →v1.5.12026-10-26
· 点完回报窗口变化时,Chrome 左下角一闪而过的网址条(没标题的小条)不再被说成「Chrome 弹出了窗口」。没标题但够大的窗口照样报。
The window-change note after a click no longer reports Chrome's brief status bubble (a small untitled strip) as a new popup.
更新:dsh plugin add
v1.5.02026-10-25
· 点击、输入、按键、拖拽之后,顺带回报窗口变化:「新开了窗口「存储」」「标题变了」「窗口不见了」「别的应用弹出了窗口」或「窗口没变化」。模型不用每次再截图确认点上没有。
· 只看窗口清单,不靠辅助功能权限,每次多花不到半秒。
After a click, typing, key press or drag, the tool result now says what changed in the windows (new window, title change, window gone, another app popped up, or nothing).
更新:dsh plugin add
v1.4.02026-10-25
· 安装包里自带编好的命令行引擎和光标浮层(Apple 芯片和 Intel 都能用,macOS 11 起)。不用再 clone 仓库、装 Xcode、跑 install.sh。
· 第一次用只要在系统设置里给 DeepSeek Harness 开「屏幕录制」和「辅助功能」,设置卡里有按钮直达。
· 以前用 install.sh 装过的也不用管:插件会改用自带的这份。想继续用自己编的,设环境变量 DSH_CU_BIN。
Works out of the box: the package now ships prebuilt universal binaries (Apple silicon and Intel, macOS 11+), so there is nothing to clone or compile.
更新:dsh plugin add 是同一个包,留给旧链接用。)
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成给 DSH 的 Mac 桌面操作能力(computer use)。视觉优先,不依赖无障碍树。
一句话:DeepSeek Harness(DSH)插件,让模型看着屏幕操作你的 Mac:列窗口、截图、OCR 找字、点击、打字、按键、滚动、拖拽、打开应用。
什么时候用:「看看我屏幕上有什么」「帮我在这个 App 里点一下」,以及没有命令行、只能用鼠标操作的 Mac 软件。
安装:DSH「插件」页 →「添加插件」,填 dsh-mac-computer-use(npm 包,连不上 npm 会自动换国内镜像),重启 DSH。安装包自带编好的程序(Apple 芯片和 Intel 都能用,macOS 11 起),不用编译。仅 macOS。
展开完整文档(README 剩余 1 节)
给 DSH 的 Mac 桌面操作能力(computer use)。视觉优先,不依赖无障碍树。 一句话:DeepSeek Harness(DSH)插件,让模型看着屏幕操作你的 Mac:列窗口、截图、OCR 找字、点击、打字、按键、滚动、拖拽、打开应用。 什么时候用:「看看我屏幕上有什么」「帮我在这个 App 里点一下」,以及没有命令行、只能用鼠标操作的 Mac 软件。 安装:DSH「插件」页 →「添加插件」,填 dsh-mac-computer-use(npm 包,连不上 npm 会自动换国内镜像),重启 DSH。安装包自带编好的程序(Apple 芯片和 Intel 都能用,macOS 11 起),不用编译。仅 macOS。 English: a DeepSeek Harness (DSH) plugin for computer use on macOS. The model sees the screen and controls the Mac through 11 desktop_ tools: window list, screenshots, OCR text search, click, type, keys, scroll, drag and app launch. Install: on the DSH Plugins page, click Add plugin and enter dsh-mac-computer-use (an npm package), then restart DSH. The package ships prebuilt universal binaries (Apple silicon and Intel, macOS 11+), so there is nothing to compile. 以前叫 dsh-cu,2026-10-18 改名。旧地址会自动跳到这里;底层的命令行引擎仍叫 dsh-cu。 和别人家的 dsh-computer-use 不是一个东西:那个靠无障碍树(cua-driver),这个靠截图。 光标动效 桌面光标:实心蓝箭头 + 带显示器图标的「DSH」名牌,干活时名牌写上正在做什么。跟 dsh-chrome-bridge 的浏览器光标是同一套样式,那边是半透明的、名牌带地球图标。* 11 个 desktop_ 工具 + 一个自包含的 Swift 命令行 + 一个看得见的桌面光标。 desktop_windows desktop_observe desktop_screenshot desktop_find_text desktop_click desktop_type desktop_key desktop_apps desktop_launch desktop_scroll desktop_drag 为什么又造一个 DSH 上已有的 computer use 插件(dsh-computer-use、dsh-mac-cua 等)大多依赖 macOS 无障碍树(AX)。 我们实测过:锁屏时 AX 对所有应用都返回 0 个 AXWindow,解锁后立刻恢复正常 —— 这是 macOS 的行为,不是驱动的 bug(详细记录)。另外第三方二进制在某些环境下拿不到 AXWindow。 Codex 那种 computer use 走的是视觉路线:截图 → 模型看 → 按坐标操作。这条路不碰 AX,所以在 AX 不灵的环境下照样能用。这个仓库就是那条路,外加: | OCR 找文字 | 用 macOS 自带的 Vision 框架,本地跑。desktop_click(text="登录") 直接按文字点 | | 元素编号 | desktop_observe 把可点元素在截图上编号,模型说"点第 7 个"就行 | | 做完说一声变了什么 | 点击、输入、按键、拖拽之后顺带回报窗口变化(新开了「存储」窗口、标题变了、窗口关了),模型不用每次再截图确认 | | 看得见的光标 | 屏幕上有个蓝色光标跟着操作走,名牌写着「点击 发送」这类动作;跟浏览器插件的光标一套样式 | | 空闲自退 | 光标浮层 60 秒没动静自己走,不留常驻进程 | | 单文件 Swift | 零依赖,好审计 | 安装 在 DSH 的插件页点「添加插件」,填包名 dsh-mac-computer-use,然后重启 DSH。这是 npm 包:按包名装时,DSH 连不上 npm 官方源会自动改用国内镜像(npmmirror),不经过 GitHub。也可以填发布包地址 https://github.com/OrderG-X/dsh-mac-computer-use/releases/latest/download/dsh-mac-computer-use.tgz,那样要能连上 GitHub。 更新:在「插件」页把它卸载,再按上面添加一次。新版发布后大约一天按包名才装得到(DSH 装插件用的 pnpm 默认不装刚发布的版本),急的话填发布包地址。 安装包里自带编好的命令行引擎和光标浮层(Apple 芯片和 Intel 都能用,macOS 11 起),不用 clone 仓库、不用装 Xcode。第一次用要在系统设置里给 DeepSeek Harness 开屏幕录制和辅助功能权限,设置页里有按钮直达。 装好后插件页里叫「Mac 桌面操作」。点进去是设置页:能不能用、看得到几个窗口,命令行引擎、屏幕录制权限、辅助功能权限、光标浮层逐项打勾,缺哪个就给哪个的按钮(打开系统设置);还有「屏幕上显示操作光标」开关。 自己从源码编译(改了 Swift 代码时才需要): git clone https://github.com/OrderG-X/dsh-mac-computer-use.git cd dsh-mac-computer-use ./install.sh 需要 Xcode Command Line Tools(xcode-select --install),装到 ~/.dsh/bin/。插件优先用自带的程序,要用自己编的,设环境变量 DSH_CU_BIN=~/.dsh/bin/dsh-cu(光标浮层是 DSH_CU_OVERLAY)。发版时的编译脚本是 tools/build-bin.mjs。 用起来是什么样 你:帮我看看屏幕上有什么 → desktop_windows 拿到窗口列表和坐标 → desktop_screenshot 模型看到图 你:点那个「登录」按钮 → desktop_click(text="登录") OCR 找到它 → 发事件过去(不动你的鼠标)回报「之后:新开了窗口「欢迎」」 你:把计算器的 7+8 算一下 → desktop_observe 截图 + 元素编号 → desktop_click(index=5) 点第 5 个("7") → desktop_screenshot 再截一次确认 推荐工作流是 observe → click(index) —— 模型看图上的编号,比算坐标可靠得多。 底层 DSH 工具 (desktop_) ↓ spawn dsh-cu (Swift 单文件) ├── winlist CGWindowListCopyWindowInfo ← 窗口坐标,零权限 ├── observe AX 枚举可点元素 + 截图标注编号 ├── shot screencapture -l 窗口号 ← 截窗口本身,被挡住也行 ├── find Vision 框架 OCR ← 找文字 → 可点坐标 ├── clickat CGEvent postToPid ← 不移动真实鼠标、不抢前台 ├── type/key CGEvent ← 支持中文 ├── scroll/drag CGEvent └── launch NSWorkspace(后台启动,不抢前台) 后台点击能落进窗口,靠的是两处细节:鼠标事件里填上目标窗口号和窗口内坐标(不填的话 AppKit 和 Electron 都会把事件丢掉);目标是后台的 Chromium / Electron 窗口(比如 DSH 自己)时,按下那一下带上 ⌘,页面才肯接,松开和 click 本身不带,页面看到的就是普通点击。 截某个应用的窗口时,按窗口号截它本身(screencapture -l):被别的窗口挡住、在后台都截得到,看到的就是要点的那个窗口;截不到再退回按屏幕区域截。截图、给元素编号、按文字找都是这样(感谢 @Golden-Pigeon 的 PR)。 后台打字同理:先用辅助功能把目标窗口设成它自己的主窗口(不激活应用、不抢前台),按键才有去处;Chromium / Electron 在后台一个按键只收一个字,所以对它们逐字发。后台应用收不到全选、复制、粘贴这类走菜单的 ⌘ 快捷键。 命令行也能单独用: dsh-cu winlist # 列窗口 dsh-cu tree <pid> # AX 树(解锁状态下可用) dsh-cu observe <pid> # 截图 + 编号 dsh-cu find "登录" # OCR 找文字 → 坐标 dsh-cu clickat <pid> <x> <y> # 点(默认不动真实鼠标) dsh-cu type <pid> "你好" # 输入 dsh-cu selftest # 全链路自检(见 tools/selftest.sh) 光标 cursor/cursor-overlay.swift 是桌面光标浮层(装到 ~/.dsh/bin/dsh-cursor-overlay):NSPanel,不抢前台、点击穿透、永远置顶,闲 60 秒自己退出。 跟 dsh-chrome-bridge 的浏览器光标是一套样式,一眼分得清是在哪边干活: | | 桌面(这个仓库) | 浏览器(dsh-chrome-bridge) | | 箭头 | 同一个形状,实心蓝 | 同一个形状,半透明淡蓝 | | 名牌 | 显示器图标 + DSH | 地球图标 + DSH | | 干活时 | 名牌展开成「DSH · 点击 发送」 | 名牌展开成「DSH · 点击 登录」 | 动效走克制路线,两边一样: - 同一个弹簧、同一套算法:沿轻微的弧线滑过去,顺着速度方向轻轻拉长(最多 7%)、略侧倾,名牌晚半拍跟上;冲过头最多两三像素再落回 - 点击时以箭头尖端为支点缩一下再弹回(瞄准点纹丝不动),一圈淡波纹 - 拖拽时按住(缩一点 + 尖端一圈光晕)跟着走;滚动时右上角亮一下方向 - 闲 6 秒变淡、名牌收起,不挡视线;系统开了「减少动态效果」就不做动画 浮层指令(往 $(getconf DARWIN_USER_TEMP_DIR)dsh-cursor.fifo 写一行,每个账号各自一个):show x y / move x y / click [n] / down / up / scroll ±1 / label 文字 / hide / ping。 已知限制 - 锁屏时:截图只有壁纸、窗口不渲染、AX 读不到窗口 —— 这是 macOS 的行为,不是工具的问题 - 最小化的窗口、在别的桌面空间(Space)里的窗口:看不到也操作不了,先把它放回当前桌面 - desktop_click 默认投递给目标进程(postToPid)。个别应用不响应投递事件,加 global: true 走系统事件兜底(会移动真实鼠标) - 桌面点击驱动不了 Chrome —— Chrome 不理会投递的合成事件。操作浏览器请用 CDP 类工具(比如 dsh-chrome-bridge) - 需要屏幕录制权限(screencapture 用)和辅助功能权限(点击、输入、按键、滚动、拖拽用;没开时系统会静默丢掉这些事件,所以工具会直接报错,不会假装成功) Field notes docs/locked-session-and-ax.md —— 锁屏会让 AX 全废这件事,以及为什么它看起来跟驱动 bug 一模一样。这个坑花了一整天才确认。 反馈 遇到问题或想要新功能,提一个 issue。报问题时写上 DSH 版本和插件版本,修起来最快。 License MIT。tools/dsh-cu.swift 是自包含单文件,想改直接改。 关于光标形状 光标是代码画的(cursor/cursor-overlay.swift 里的 arrowPath),圆角经典箭头 + 蓝色渐变,跟浏览器那边用同一条路径 —— 不包含任何第三方素材文件。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
OrderG-X/dsh-mac-computer-use
给 DSH 的 Mac 桌面操作能力computer use。视觉优先,不依赖无障碍树。
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,332已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,153已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,244已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,046已汉化DSH
71.1
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,480已汉化DSH
71