Cua
Four ways to give an agent a computer: a background driver, a sandbox for any OS, benchmarks, a macOS hypervisor
What is Cua?
Computer use runs into the same wall every time — the agent needs a machine, and it cannot be the one you are working on. Cua is four answers to that, which is worth knowing before you install it, because you almost certainly want one of them rather than all four. The drivers let an agent click and type in native applications in the background, without taking the cursor or the focus away from you. The sandbox gives Linux, macOS, Windows or Android behind a single API, locally under QEMU or in the maintainers' cloud. Cua-Bench runs OSWorld and similar evaluations and exports trajectories for training. Lume creates macOS virtual machines on Apple Silicon using Apple's own virtualisation.
What can you do with Cua?
- Let an agent work while you keep the screen — The drivers send clicks and keystrokes to a native application in the background, so the cursor and the focus stay where you left them.
- One API for four operating systems — The same calls take a screenshot, click, type and run a shell command whether the machine underneath is Linux, macOS, Windows or Android.
- Run the machine locally or in the cloud — The same sandbox code runs against a local QEMU virtual machine or the maintainers' hosted fleet, so a laptop prototype moves without a rewrite.
- Reach it from an existing coding agent — The drivers ship as a command-line tool and an MCP server, so Claude Code, Cursor or Codex can drive a desktop without custom integration.
- Score an agent on published benchmarks — OSWorld, ScreenSpot and Windows Arena can be run against your agent in parallel, with the trajectories exported for training or review.
- Create macOS virtual machines on Apple Silicon — Lume builds and manages macOS and Linux virtual machines with Apple's own virtualisation framework, which is what makes a macOS sandbox possible at all.
Before you choose Cua
- It is four projects under one name. Working out which piece you need — driver, sandbox, benchmark harness or hypervisor — is the first task, and their install paths and documentation are separate.
- Background input is best supported on macOS and Windows; on Linux the project states explicit limits for raw background input depending on whether the session runs X11 or a particular Wayland compositor.
Frequently asked questions
Is Cua free for commercial use?
Cua is released under the MIT licence — OSI-approved open source, which permits commercial use.
How can Cua be deployed?
Cua is available as Runs locally / Self-hosted / Managed cloud.
Documentation
Reproduced from the trycua/cua README, published under MIT. Read the original ↗
Choose Your Path
Cua Drivers - Background computer-use on macOS, Windows, and Linux
Drive native desktop apps in the background. Agents click, type, and verify without stealing the cursor or focus. Use the same CLI and MCP server on macOS, Windows, and Linux from Claude Code, Cursor, Codex, OpenClaw, and custom clients. Linux supports X11 and compositor-specific Wayland routes with explicit limits for raw background input.
macOS / Linux
/bin/bash -c "$(curl -fsSL https://cua.ai/driver/install.sh)"
Windows (PowerShell)
irm https://cua.ai/driver/install.ps1 | iex
Then follow the post-install instructions.
Drive your first app | Installation | CLI Reference
Source documentation, architecture notes, and the optional agent skill pack live in libs/cua-driver/README.md.
Cua - Agent-Ready Sandboxes for Any OS
Build agents that see screens, click buttons, and complete tasks autonomously. One API for any VM or container image — cloud or local.
pip install cua
# Requires Python 3.11 or later
from cua import Sandbox, Image
# Same API regardless of OS or runtime
async with Sandbox.ephemeral(Image.linux()) as sb: # or .macos() .windows() .android()
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)) # multi-touch gestures
| Linux container | Linux VM | macOS | Windows | Android | BYOI (.qcow2, .iso) | |
|---|---|---|---|---|---|---|
| Cloud (cua.ai) | ✅ | ✅ | ✅ | ✅ | ✅ | 🔜 soon |
| Local (QEMU) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Get Started | Examples | API Reference
Cua-Bench - Benchmarks & RL Environments
Evaluate computer-use agents on OSWorld, ScreenSpot, Windows Arena, and custom tasks. Export trajectories for training.
# Clone, install, and create base image
git clone https://github.com/trycua/cua && cd cua/cua-bench
uv tool install -e . && cb image create linux-docker
# Run benchmark with agent
cb run dataset datasets/cua-bench-basic --agent cua-agent --max-parallel 4
Get Started | Partner With Us | Registry | CLI Reference
Lume - macOS Virtualization
Create and manage macOS/Linux VMs with near-native performance on Apple Silicon using Apple’s Virtualization.Framework.
# Install Lume
/bin/bash -c "$(curl -fsSL https://cua.ai/lume/install.sh)"
# Create and start a vanilla macOS VM from an Apple restore image
curl -L "$(lume ipsw | tail -n 1)" -o ~/Downloads/macos-tahoe.ipsw
lume create macos-tahoe --ipsw ~/Downloads/macos-tahoe.ipsw --unattended tahoe
lume run macos-tahoe
The --unattended option prepares the installed guest offline. The built-in
sequoia and tahoe presets create the lume user, enable SSH, configure
autologin, and disable sleep and screen locking. The default credentials are
lume / lume.
The Tahoe flow is E2E verified. Sequoia may still open the Accessibility step of Setup Assistant on its first display boot; see issue #2155.
Get Started | FAQ | CLI Reference
Packages
| Package | Description |
|---|---|
| cua-driver | Background computer-use agent for macOS, Windows, and Linux |
| cua-agent | AI agent framework for computer-use tasks |
| cua-sandbox | SDK for creating and controlling sandboxes |
| cua-computer-server | Driver for UI interactions and code execution in sandboxes |
| cua-bench | Benchmarks and RL environments for computer-use |
| lume | macOS/Linux VM management on Apple Silicon |
| lumier | Docker-compatible interface for Lume VMs |
Resources
- Documentation — Guides, examples, and API reference
- Blog — Tutorials, updates, and research
- Discord — Community support and discussions
- GitHub Issues — Bug reports and feature requests
- Security — Private vulnerability reporting
Trademarks
Apple, macOS, Ubuntu, Canonical, and Microsoft are trademarks of their respective owners. This project is not affiliated with or endorsed by these companies.
Thank you to all our GitHub Sponsors!