⚠️ 本工具依赖境外公开数据源,部分平台在中国大陆需合规网络环境
GITHUB DAILY · 第064期
Cua
Computer-Use Agent 的 Docker
让 AI 像人一样操作电脑——后台零干扰
📋 项目速览
| 项目 | trycua/cua |
| 定位 | Computer-Use Agent 全栈开源基础设施 |
| Stars | 18,197 ⭐ |
| 语言 | Python 19.7% / Rust 9.0% / Swift 6.4% / TypeScript 2.6% |
| 协议 | MIT 开源 |
| 支持平台 | macOS / Linux / Windows / Android |
| MCP 集成 | Claude Code / Cursor / Codex / OpenClaw |
| 官网 | cua.ai |
| 4核心产品 | 5操作系统 | 30+MCP 工具 | 0焦点抢占 |
🔥 它能解决什么问题?
Anthropic 的 Computer Use API 让 LLM 能看屏幕、点鼠标、敲键盘。但拿到 API 之后,落地的硬活才刚开始——
痛点一:环境不隔离,Agent 到处乱点
AI Agent 直接在本机操作桌面?一旦误操作,后果不可逆。生产级 CUA 必须在沙箱中隔离运行。
痛点二:Agent 运行抢占焦点,用户没法干活
传统自动化方案每操作一步就把窗口弹到最前,用户完全无法并行工作。Agent 和人不能共处一台电脑。
痛点三:跨平台 API 各自裂开
macOS 用 Accessibility API、Windows 用 UI Automation、Linux 用 AT-SPI……每换一个 OS 就要重写一套代码。
痛点四:没有基准,"能跑"不等于"靠谱"
Demo 一次成功很容易,但持续稳定?跨窗口恢复?长任务漂移?没有 Benchmark 就没法衡量和优化。
✨ 核心亮点
① Cua Driver — 后台操控,零干扰
这是 Cua 最独特的技术特性。Agent 可以在不抢占光标、不抢焦点、不切换 Space 的前提下,操控任意 macOS 原生应用。
核心技术方案:
-
焦点欺骗(SyntheticAppFocusEnforcer):临时给目标窗口写入 AXFocused=true,让 AppKit 误以为"我有焦点",操作完立即恢复
-
像素级输入路由:键盘事件走 CGEvent.postToPid 直发 PID,鼠标走 SLEventPostToPid 事件,窗口不会升起
-
智能 AX 元素定位:当元素中心落在可见区域外时,自动做 5×5 网格探测找到可点击位置
-
ScreenCaptureKit 截图:输出分辨率上限 1568px,精确匹配 Anthropic 多模态输入限制
② Cua Sandbox — 一套 API,五个操作系统
统一 API 抽象层,切换操作系统只需改一个参数。底层自动路由到对应的运行时环境。
from cua import Sandbox, Image
# 同一 API,无论 OS 或运行时
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))
Transport 路由表:
| Transport | 后端 |
| Docker | Linux 容器 |
| QEMU | Windows / Linux VM |
| Lume | macOS VM(Apple Silicon) |
| Cloud | 云端环境 |
| Android | 模拟器 |
③ Cua Bench — 评测 + RL 训练闭环
不是"跑个 demo 就行",而是提供标准化评测体系。支持 OSWorld、ScreenSpot、Windows Arena 等主流基准测试,且能导出操作轨迹用于强化学习训练——从评测到训练数据形成闭环。
# 安装并创建基础镜像
git clone https://github.com/trycua/cua && cd cua/cua-bench
uv tool install -e . && cb image create linux-docker
# 运行基准测试(4 并行)
cb run dataset datasets/cua-bench-basic \
--agent cua-agent --max-parallel 4
💡 Gym-like API 风格:reset() → step() → evaluate(),每个 step 自动记录截图、操作数据、窗口快照。
④ Lume — Apple Silicon 原生虚拟化
基于 Apple Virtualization.Framework,在 Apple Silicon 上以接近原生速度运行 macOS 和 Linux 虚拟机。支持 IPSW 直装 macOS、Rosetta 二进制翻译、VirtioFS 文件共享。一条命令启动:
lume run macos-sequoia-vanilla:latest
⚠️ 仅限 Apple Silicon(M 系列芯片),Intel Mac 只能走 QEMU。
⑤ MCP 原生集成,即插即用
Cua Driver 暴露 30+ MCP 工具,可直接集成到 Claude Code、Cursor、Codex、OpenClaw 等主流 Agent 平台。一条命令完成接入:
# 集成到 Claude Code
claude mcp add --transport stdio cua-driver -- cua-driver mcp
🛠️ 实战场景
场景一:桌面 RPA — 后台自动创建 GitHub PR
from cua import Driver
driver = Driver() # 自动连接 macOS 辅助功能 API
task = """
在 Chrome 中打开 github.com,
使用当前登录的 GitHub 账号,
为仓库 trycua/cua 创建一个 PR,
标题为 "fix: update driver"
"""
driver.run(task) # 后台执行,你继续用电脑
场景二:沙箱自动化 — 跨 OS 执行任务
from cua import Sandbox, Image
# Linux 沙箱自动操作
async with Sandbox.ephemeral(Image.linux()) as sb:
await sb.shell.run("apt install -y firefox")
screenshot = await sb.screenshot()
await sb.mouse.click(400, 300)
await sb.keyboard.type("https://github.com")
# macOS 沙箱同理,只换 Image
async with Sandbox.ephemeral(Image.macos()) as sb:
await sb.shell.run("open -a Safari")
await sb.keyboard.type("Hello from macOS sandbox!")
场景三:CuaBot — 编码 Agent 加上眼睛和手
一条命令把 Claude Code 扔进 Docker 沙箱,里面跑完整 Ubuntu 22.04 桌面环境,Agent 可以看到屏幕、点击按钮、输入文字:
cuabot claude # 启动带桌面环境的 Agent 会话
📊 竞品对比
| 维度 | Cua | Browser Use | Anthropic CU | Playwright MCP |
| 操控范围 | 全桌面 | 浏览器 | 全桌面 | 浏览器 |
| 后台运行 | ✅ 零干扰 | ❌ 占标签页 | ❌ 占焦点 | ❌ 占浏览器 |
| Canvas 工具 | ✅ Figma/Blender | ❌ | ❌ | ❌ |
| 沙箱隔离 | ✅ 内置 | ❌ | ❌ 自建 | ❌ |
| 评测基准 | ✅ Cua-Bench | ❌ | ❌ | ❌ |
| 开源协议 | MIT | MIT | 闭源 API | Apache 2.0 |
| RL 训练 | ✅ 轨迹导出 | ❌ | ❌ | ❌ |
🚀 上手指南
Step 1:安装 Cua Driver(后台桌面控制)
# 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
Step 2:安装 Cua SDK(沙箱环境)
pip install cua # 需要 Python 3.11+
Step 3:集成到 Claude Code
claude mcp add --transport stdio cua-driver -- cua-driver mcp
Step 4(可选):安装 Lume 虚拟化
# 安装 Lume(仅 Apple Silicon)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
# 启动 macOS 虚拟机
lume run macos-sequoia-vanilla:latest
支持的 AI 模型
| 场景 | 推荐模型 |
| 初学者 | openai/computer-use-preview |
| 生产环境 | anthropic/claude-opus-4-1-20250805 |
| 本地部署 | UI-TARS-1.5-7B(HuggingFace) |
命令速查表
| 命令 | 说明 |
| cua-driver mcp | 启动 MCP Server |
| cuabot claude | 启动 CuaBot + Claude |
| lume run <image> | 启动虚拟机 |
| cb run dataset <path> | 运行基准测试 |
🎯 谁该用?谁不该用?
| ✅ 适合你• 在做 Computer-Use Agent 产品• 需要隔离环境执行 Agent• macOS 后台自动化测试• 需要评测/训练桌面控制模型• 想给编码 Agent 加桌面操作能力 | ❌ 不适合• 只需浏览器自动化(用 Browser Use)• 简单网页抓取(用 Playwright MCP)• 追求开箱即用的稳定性• Intel Mac 用户(Lume 不可用)• 对 GPU 要求极高的本地模型 |
⚖️ 优势与局限
| 💪 优势1. 唯一开源全栈 CUA 方案2. 后台零干扰运行是杀手级特性3. 统一 API 跨 5 个操作系统4. 评测+RL训练形成闭环5. MCP 即插即用集成主流 Agent6. MIT 协议,商用无忧 | ⚠️ 局限1. 叙事覆盖极广,工程成熟度待验证2. 三语言并存(Swift+Python+TS),维护成本高3. Lume 仅限 Apple Silicon4. 演示效果强于日常稳定性5. 跨 GUI/分辨率/平台风险较大6. 企业落地镜像管理/安全策略等"脏活"待完善 |
📝 今日总结
1. Cua 是目前唯一开源的 Computer-Use Agent 全栈基础设施,覆盖沙箱、驱动、评测、虚拟化四层2. 后台零干扰运行是最大差异化特性——Agent 不抢占焦点,人和 AI 可以共存一台电脑3. 统一 API 横跨 macOS/Linux/Windows/Android,切换操作系统只需改一行参数4. Cua Bench 提供评测+RL训练闭环,从"能跑一次"走向"能长期稳定优化"5. MCP 原生集成 Claude Code/Cursor/Codex,30+ 工具即插即用6. 方向很对,但工程成熟度仍在验证中——适合跟踪,不宜直接上生产
💬 你觉得 Computer-Use Agent 最先落地的场景是什么?
桌面 RPA / 测试自动化 / 无障碍辅助 / AI 编程助手?
如果你觉得今天的项目有价值,转发给需要的朋友 👇
GitHub Daily · 第064期 · trycua/cuagithub.com/trycua/cua