mirror of
https://github.com/trycua/computer.git
synced 2026-02-17 20:10:07 -06:00
159 lines
3.8 KiB
Plaintext
159 lines
3.8 KiB
Plaintext
---
|
|
title: Cua Computers
|
|
description: Understanding cua computer types and connection methods
|
|
---
|
|
|
|
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 container
|
|
|
|
This is a cloud container 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.
|
|
|
|
<Tabs items={['Python', 'TypeScript']}>
|
|
<Tab value="Python">
|
|
```python
|
|
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 container
|
|
```
|
|
|
|
</Tab>
|
|
<Tab value="TypeScript">
|
|
```typescript
|
|
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 container
|
|
```
|
|
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## cua local containers
|
|
|
|
cua provides local containers using different providers depending on your host operating system:
|
|
|
|
<Tabs items={['Lume (macOS Only)', 'Windows Sandbox (Windows Only)', 'Docker (macOS, Windows, Linux)']}>
|
|
<Tab value="Lume (macOS Only)">
|
|
|
|
1. Install lume cli
|
|
|
|
```bash
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
|
|
```
|
|
|
|
2. Start a local cua container
|
|
|
|
```bash
|
|
lume run macos-sequoia-cua:latest
|
|
```
|
|
|
|
3. Connect with Computer
|
|
|
|
```python
|
|
from computer import Computer
|
|
|
|
computer = Computer(
|
|
os_type="macos",
|
|
provider_type="lume",
|
|
name="macos-sequoia-cua:latest"
|
|
)
|
|
|
|
await computer.run() # Launch & connect to the container
|
|
```
|
|
|
|
</Tab>
|
|
<Tab value="Windows Sandbox (Windows Only)">
|
|
|
|
1. Enable Windows Sandbox (requires Windows 10 Pro/Enterprise or Windows 11)
|
|
2. Install pywinsandbox dependency
|
|
|
|
```bash
|
|
pip install -U git+git://github.com/karkason/pywinsandbox.git
|
|
```
|
|
|
|
3. Windows Sandbox will be automatically configured when you run the CLI
|
|
|
|
```python
|
|
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
|
|
```
|
|
|
|
</Tab>
|
|
<Tab value="Docker (macOS, Windows, Linux)">
|
|
|
|
1. Install Docker Desktop or Docker Engine
|
|
|
|
2. Build or pull the CUA Ubuntu container
|
|
|
|
```bash
|
|
# 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 .
|
|
```
|
|
|
|
3. Connect with Computer
|
|
|
|
```python
|
|
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 container
|
|
```
|
|
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## 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.
|
|
|
|
```bash
|
|
pip install cua-computer-server
|
|
python -m computer_server
|
|
```
|
|
|
|
Connect with:
|
|
|
|
<Tabs items={['Python']}>
|
|
<Tab value="Python">
|
|
```python
|
|
|
|
computer = Computer(use_host_computer_server=True)
|
|
await computer.run() # Connect to the host desktop
|
|
|
|
```
|
|
|
|
</Tab>
|
|
</Tabs>
|