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.

Cua Cloud Sandbox

This is a Cloud Sandbox running the Computer Server. This is the easiest & safest way to get a cua computer, and can be done by going on the trycua.com website.

from computer import Computer

computer = Computer(
    os_type="linux",
    provider_type="cloud",
    name="your-container-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-container-name",
  apiKey: "your-api-key"
});

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

Cua Local Sandbox

Cua provides local sandboxes using different providers depending on your host operating system:

  1. Install Docker Desktop or Docker Engine

  2. Build or pull the CUA Ubuntu sandbox

# 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-cua-container"
)

await computer.run() # Launch & connect to Docker sandbox
  1. Enable Windows Sandbox (requires Windows 10 Pro/Enterprise or Windows 11)
  2. Install pywinsandbox dependency
pip install -U git+git://github.com/karkason/pywinsandbox.git
  1. Windows Sandbox will be automatically configured when you run the CLI
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
  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 sandbox
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