让 AI 点开你电脑上的任何软件,Vercel Labs 的 agent-desktop 不靠看截图
先解释“辅助功能树”。Mac 的 VoiceOver、Windows 的讲述人这类读屏工具,需要知道窗口里有哪些按钮、输入框、列表项,系统就为每个软件维护了一棵结构树:这是个窗口,里面有个叫“Documents”的列表项,可以点击。agent-desktop 读的就是这棵树,不是屏幕上的像素。
01一轮操作长什么样
核心是“看一眼、动一下、再看一眼”。每条命令都输出一段 JSON,其中 snapshot 会给每个可操作元素一个编号(ref)。
agent-desktop snapshot --app Finder -i # 列出 Finder 里可交互的元素,每个带 ref agent-desktop click @s8f3k2p9:e8 # 按编号点击 agent-desktop snapshot --app Finder -i # 再看一次,确认界面变了
编号只对生成它的那次快照有效。界面变了以后再用旧编号,工具会报 STALE_REF(编号过期)或 AMBIGUOUS_TARGET(有多个窗口,不知道指哪个),要求重新快照。这比“点歪了也照样执行”稳:出错会明说,而不是悄悄点到别的行。
软件界面很复杂时(比如 Slack),README 建议先用 --skeleton --compact 拿一张轮廓图,再针对其中一块区域展开,免得一次吐出几千个元素。
02装起来要几步
- 用 npm 安装:npm install -g agent-desktop,装完用 agent-desktop version 确认。包里已含 x64 和 ARM64 的原生程序。
- macOS 要先给终端授予“辅助功能”权限,README 提供了 agent-desktop permissions --guide 带你走一遍。
- Windows 对和终端同权限等级的软件不需要额外授权;Linux 需要图形会话和 at-spi2-core。
- README 提到 Homebrew 和 Scoop 官方包还在提交中,暂时不要找那两条安装路径。
要交给 AI 编程助手用,README 给了两种办法:用 npx skills add 装官方技能,或者在 AGENTS.md 里写一句,要求助手第一次使用前先运行 agent-desktop skills get desktop 读操作规则。
03三个系统的差距不小
| 功能 | macOS | Windows | Linux |
|---|---|---|---|
| 读取界面结构 | 支持 | 支持 | 支持(AT-SPI) |
| 鼠标输入 | 支持 | 支持 | 仅 X11,需 --headed |
| 截图 | 支持 | 支持 | X11 窗口;Wayland 走系统门户 |
| 打开系统托盘等界面 | 计划中 | 支持 | GNOME 托盘 |
另外,默认是“无头”模式:点击通过辅助功能接口完成,不会移动鼠标指针,也不抢焦点;加 --headed 才允许真实的键鼠输入。README 还说有 4 个按键/鼠标“按住”命令暂时拒绝运行,因为还没有后台进程能保证松开。
04先想清楚隐私
快照、剪贴板读取、截图和调试文件都可能带出你桌面上的私人内容。官方明确提醒:别把这些输出放进公开日志或上传。另有一个可选的 JEV 辅助模块,会把屏幕描述发给你配置的模型服务,它独立于原生命令行,不用就不会有这一步。我会把它先用在一个干净的测试账号或空白文档上,熟悉了再放到日常环境里。
项目当天在 GitHub Trending 上单日增加约 2200 颗星,总星数约 7700;按 README 的 Labs 标识,它属于 Vercel 的实验性产品,接口可能还会变。命令和输出格式均据官方文档整理,不代表我们运行过。


DeepSeek
Claude Code
Timestral