LogoCua Documentation

Cua Computers

Understanding Cua computer types and connection methods

A corresponding Jupyter Notebook and NodeJS project are available for this documentation.

Before we can automate apps using AI, we need to first connect to a Computer Server to give the AI a safe environment to execute workflows in.

Cua Computers are preconfigured virtual machines running the Computer Server. They can be either macOS, Linux, or Windows. They're found in either a cloud-native container, or on your host desktop.

Cloud Sandbox

Easiest & safest way to get started - works on any host OS

This is a Cloud Sandbox running the Computer Server. Get a container at trycua.com.

from computer import Computer

computer = Computer(
    os_type="linux",
    provider_type="cloud",
    name="your-sandbox-name",
    api_key="your-api-key"
)

await computer.run() # Connect to the sandbox
import { Computer, OSType } from '@trycua/computer';

const computer = new Computer({
  osType: OSType.LINUX,
  name: "your-sandbox-name",
  apiKey: "your-api-key"
});

await computer.run(); // Connect to the sandbox

Linux on Docker

Run Linux desktop locally on macOS, Windows, or Linux hosts

Cua provides two Docker images for running Linux desktops:

Recommended for most use cases - lightweight XFCE desktop with Firefox

  1. Install Docker Desktop or Docker Engine

  2. Pull the CUA XFCE image

docker pull --platform=linux/amd64 trycua/cua-xfce:latest
  1. Connect with Computer
from computer import Computer

computer = Computer(
    os_type="linux",
    provider_type="docker",
    image="trycua/cua-xfce:latest",
    name="my-xfce-container"
)

await computer.run() # Launch & connect to Docker sandbox

Full-featured Ubuntu desktop with additional applications

  1. Install Docker Desktop or Docker Engine

  2. Build or pull the CUA KASM image

# Option 1: Pull from Docker Hub
docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest

# Option 2: Build locally
cd libs/kasm
docker build -t cua-ubuntu:latest .
  1. Connect with Computer
from computer import Computer

computer = Computer(
    os_type="linux",
    provider_type="docker",
    image="trycua/cua-ubuntu:latest",
    name="my-kasm-container"
)

await computer.run() # Launch & connect to Docker sandbox

Windows Sandbox

Windows hosts only - requires Windows 10 Pro/Enterprise or Windows 11

  1. Enable Windows Sandbox
  2. Install pywinsandbox dependency
pip install -U git+git://github.com/karkason/pywinsandbox.git
  1. Connect with Computer
from computer import Computer

computer = Computer(
    os_type="windows",
    provider_type="winsandbox",
    ephemeral=True # Windows Sandbox is always ephemeral
)

await computer.run() # Launch & connect to Windows Sandbox

macOS VM

macOS hosts only - requires Lume CLI

  1. Install lume cli
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
  1. Start a local Cua macOS VM
lume run macos-sequoia-cua:latest
  1. Connect with Computer
from computer import Computer

computer = Computer(
    os_type="macos",
    provider_type="lume",
    name="macos-sequoia-cua:latest"
)

await computer.run() # Launch & connect to the sandbox

Your host desktop

You can also have agents control your desktop directly by running Computer Server without any containerization layer. Beware that AI models may perform risky actions.

pip install cua-computer-server
python -m computer_server

Connect with:


computer = Computer(use_host_computer_server=True)
await computer.run() # Connect to the host desktop

Was this page helpful?