CUA:让AI Agent操控桌面的开源基础设施
GitHub 18k Star 的 trycua/cua,不是一个 Agent,而是一套让 Agent 能操控电脑的完整基础设施。沙箱、驱动、评测、虚拟化,四层组件拼在一起,覆盖了从开发调试到上线部署的全链路。
来源:GitHub (trycua/cua)
◆问题:Agent 怎么碰到桌面
大模型能写代码、能画图、能聊天。但让它打开一个 Excel 填数据、点进一个网页表单提交、或者在 macOS 上操作 Final Cut Pro——这些需要「手」的活,纯文本接口搞不定。
Anthropic 的 Computer Use 给了一个 API 原型,OpenAI 的 Operator 做了浏览器内的操控。但这些要么是闭源服务,要么只管浏览器。真正要在本地桌面环境里跑 Agent,缺的是底层基础设施:怎么安全地隔离执行环境、怎么在不抢鼠标的前提下让 Agent 后台操作、怎么评测一个 Agent 到底做得好不好。
CUA 就是来解决这个的。
◆四层架构

整个项目拆成四个独立模块,每个都能单独用:
Cua Drivers — 后台桌面驱动层。Agent 在 macOS 和 Windows 上点击、输入、验证,不抢焦点不抢鼠标。通过 MCP Server 接入 Claude Code、Cursor、Codex 等工具。
Cua Sandbox — 统一 SDK。一个 API 管所有 OS 的沙箱,Linux 容器、Linux VM、macOS、Windows、Android 全覆盖。云端和本地 QEMU 都能跑。
Cua Bench — 评测基准。支持 OSWorld、ScreenSpot、Windows Arena 等数据集,能导出轨迹数据用于训练。
Lume — macOS 虚拟化。基于 Apple Virtualization.Framework,在 Apple Silicon 上跑 macOS/Linux VM,接近原生性能。
◆Cua Drivers:后台操控,不抢鼠标

这是 CUA 最实用的组件。传统的桌面自动化(PyAutoGUI、AppleScript)有个致命问题:Agent 操作时会抢走你的鼠标和键盘。你在写代码,Agent 突然把光标挪到另一个窗口开始乱点——没法用。
Cua Drivers 的做法是在系统层注入输入事件,Agent 的操作在后台完成,前台用户完全无感。一行命令接入 Claude Code:
claude mcp add --transport stdio cua-driver -- cua-driver mcp
装完以后,你的 coding agent 就有了「手」。它能打开 Finder 找文件、在 Xcode 里点按钮、在浏览器里填表单——而你在另一个屏幕上干别的事。
支持 macOS 和 Windows,Linux 处于 pre-release 阶段。安装脚本一行搞定:
# macOS / Linux
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh)"
# Windows PowerShell
irm https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.ps1 | iex
◆Sandbox SDK:一个 API 管所有 OS

如果你要构建自己的 Agent,Sandbox SDK 是入口。pip install cua 装完,几行代码就能创建一个隔离环境,让 Agent 在里面操作:
from cua import Sandbox, Image
async with Sandbox.ephemeral(Image.linux()) as sb:
result = await sb.shell.run("echo hello")
screenshot = await sb.screenshot()
await sb.mouse.click(100, 200)
await sb.keyboard.type("Hello from Cua!")
await sb.mobile.gesture((100, 500), (100, 200)) # 多指手势
不管底层是 Linux 容器、macOS VM 还是 Android 模拟器,API 完全一致。Image.linux()、Image.macos()、Image.windows()、Image.android() 切换就行。
云端(cua.ai)和本地(QEMU)都支持。本地跑还支持 BYOI——自带 .qcow2 或 .iso 镜像,用你自己定制的系统环境。
这对做 Agent 训练的人特别有用:你可以用同一个 SDK 在云端大规模跑评测,在本地用定制镜像做调试,代码不用改一行。
◆Cua Bench:Agent 到底行不行,跑个分

Agent 做桌面操作,最难的不是让它动起来,而是衡量它做得好不好。点错了、点慢了、找错了按钮、填错了字段——这些都需要标准化的评测。
Cua Bench 集成了 OSWorld、ScreenSpot、Windows Arena 等主流数据集,CLI 一行跑评测:
git clone https://github.com/trycua/cua && cd cua/cua-bench
uv tool install -e . && cb image create linux-docker
cb run dataset datasets/cua-bench-basic --agent cua-agent --max-parallel 4
跑完能导出轨迹数据(trajectory),直接喂给强化学习训练管线。这意味着你可以:评测 → 找出失败 case → 用轨迹数据微调模型 → 再评测,形成闭环。
他们还有一个在线 Registry(cuabench.ai/registry),可以对比不同 Agent 模型在同一数据集上的表现。
◆Lume:Apple Silicon 上的 macOS 虚拟化

做 macOS 上的 Agent 开发,最头疼的是环境。你不能在 CI 里随便起一个 macOS 实例,Apple 的授权和硬件限制摆在那里。
Lume 用 Apple 自家的 Virtualization.Framework 做虚拟化,在 Apple Silicon 上跑 macOS 和 Linux VM,性能接近原生。一条命令拉起来一个 macOS Sequoia 实例:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
lume run macos-sequoia-vanilla:latest
还有一个叫 Lumier 的组件,提供 Docker 兼容接口。习惯 docker run 的人可以无缝切换。
◆实际使用场景
几个典型的用法:
给 Coding Agent 加桌面能力。 Claude Code 装上 cua-driver MCP,就能操作 Xcode、Android Studio 这些 GUI 工具。代码生成 + UI 操作,完整的开发闭环。
批量自动化测试。 用 Sandbox SDK 起多个沙箱,并行跑 UI 测试。比 Selenium 更底层,能处理操作系统级别的交互。
Agent 模型训练。 Cua Bench 跑评测,导出失败轨迹,微调模型。循环迭代。
RPA 替代。 传统 RPA 工具(UiPath、Automation Anywhere)贵且封闭。CUA 开源、可编程、能接 LLM,适合做智能自动化。
◆技术栈
项目主体用 Python 和 Rust 写,Sandbox 底层依赖 QEMU 做虚拟化,macOS 端用 Swift 调用 Virtualization.Framework。MCP Server 让它可以接入任何支持 MCP 协议的 Agent 框架。
许可证是 MIT,但注意 cua-agent[omni] 这个可选依赖带了 ultralytics,那是 AGPL-3.0。商用前看清楚依赖链。
◆数据
截至 2026 年 6 月 15 日:
- Stars: 18,032
- Forks: 1,168
- 主语言: HTML(仓库统计,实际核心是 Python + Rust + Swift)
- 最近更新: 2026-06-15
项目迭代很快,README 里 Linux 支持还标着 pre-release,Windows Arena 数据集也是近期才加的。
🤖 AI 深度洞见
前沿 AI,深度拆解。每天 3 分钟,看透 AI 底层逻辑。
长按识别二维码,关注更多硬核 AI 干货
夜雨聆风