* Fix model selection state propagation and persistence - Update chatStateRef synchronously during render instead of in useEffect to prevent stale closure issues when user changes model picker - Use ref in sendAgentRequest to always get latest model/computer - Add user-friendly error messages when model or computer is not selected - Persist model/computer picker changes to storage for existing chats - Fix type errors: use status check directly instead of isVM for ComputerInfo Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> * Fix new chat creation to include computer When creating a new chat from the sidebar, include the selected computer so the chat can be used immediately without manually selecting a sandbox. Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> * Prefer running VM when initializing playground When no VM is explicitly selected, prefer the first running VM over the first VM in the list. This ensures the iframe displays a usable VM. Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> * Fix VM status banner to use selected computer from dropdown Pass the currently selected computer from the dropdown to the VM status banner, so it updates immediately when user selects an offline sandbox. Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> * Improve ReplayTrajectoryModal UI for compact states Use smaller modal size when showing loading, empty, or no-screenshot states instead of always using the large viewer size. Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> * Fix empty state and existing chat model/computer propagation - Pass model and computer from empty state picker to chat creation - Sync computer from global state when chat doesn't have one stored - Ensures existing chats without stored computer use the currently selected computer from the dropdown Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
CuaBot - Co-op computer-use for any agent
cuabot gives any coding agent a seamless sandbox for computer-use. Individual windows appear natively on your desktop with H.265, shared clipboard, and audio.
npx cuabot # Setup onboarding
# Run any agent in a sandbox
cuabot claude # Claude Code
cuabot openclaw # OpenClaw in the sandbox
# Run any GUI workflow in a sandbox
cuabot chromium
cuabot --screenshot
cuabot --type "hello"
cuabot --click <x> <y> [button]
Built-in support for agent-browser and agent-device (iOS, Android) out of the box.
Beyond cuabot — explore our SDKs, benchmarks, and sandboxes for your own computer-use agents.
Choose Your Path
Cua - Agentic UI Automation & Code Execution
Build agents that see screens, click buttons, and complete tasks autonomously. Run isolated code execution environments for AI coding assistants like Claude Code, Codex CLI, or OpenCode.
# Requires Python 3.12 or 3.13
from computer import Computer
from agent import ComputerAgent
computer = Computer(os_type="linux", provider_type="cloud")
agent = ComputerAgent(model="anthropic/claude-sonnet-4-5-20250929", computer=computer)
async for result in agent.run([{"role": "user", "content": "Open Firefox and search for Cua"}]):
print(result)
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.
# Install and create base image
cd 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://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
# Pull & start a macOS VM
lume run macos-sequoia-vanilla:latest
Get Started | FAQ | CLI Reference
Packages
| Package | Description |
|---|---|
| cuabot | Multi-agent computer-use sandbox CLI |
| cua-agent | AI agent framework for computer-use tasks |
| cua-computer | SDK for controlling desktop environments |
| 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
Contributing
We welcome contributions! See our Contributing Guidelines for details.
License
MIT License — see LICENSE for details.
Third-party components have their own licenses:
- Kasm (MIT)
- OmniParser (CC-BY-4.0)
- Optional
cua-agent[omni]includes ultralytics (AGPL-3.0)
Trademarks
Apple, macOS, Ubuntu, Canonical, and Microsoft are trademarks of their respective owners. This project is not affiliated with or endorsed by these companies.
