Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 1 addition & 20 deletions .github/workflows/cd-py-agent.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,23 +181,4 @@ jobs:
release_name: "cua-agent v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/agent"
body: |
## Dependencies
* cua-computer: ${{ needs.prepare.outputs.computer_version }}
* cua-som: ${{ needs.prepare.outputs.som_version }}

## Installation Options

### Basic installation with Anthropic
```bash
pip install cua-agent[anthropic]==${{ needs.prepare.outputs.version }}
```

### With SOM (recommended)
```bash
pip install cua-agent[som]==${{ needs.prepare.outputs.version }}
```

### All features
```bash
pip install cua-agent[all]==${{ needs.prepare.outputs.version }}
```
**Dependencies:** cua-computer ${{ needs.prepare.outputs.computer_version }}, cua-som ${{ needs.prepare.outputs.som_version }}
9 changes: 1 addition & 8 deletions .github/workflows/cd-py-bench-ui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,4 @@ jobs:
with:
tag_name: "bench-ui-v${{ needs.prepare.outputs.version }}"
release_name: "cua-bench-ui v${{ needs.prepare.outputs.version }}"
body: |
## Lightweight webUI window controller for Cua bench

## Installation

```bash
pip install cua-bench-ui==${{ needs.prepare.outputs.version }}
```
body: ""
9 changes: 1 addition & 8 deletions .github/workflows/cd-py-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,4 @@ jobs:
with:
tag_name: "bench-v${{ needs.prepare.outputs.version }}"
release_name: "cua-bench v${{ needs.prepare.outputs.version }}"
body: |
## Toolkit for computer-use RL environments and benchmarks

## Installation

```bash
pip install cua-bench==${{ needs.prepare.outputs.version }}
```
body: ""
74 changes: 74 additions & 0 deletions .github/workflows/cd-py-cli.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: "CD: cua-cli (PyPI)"

on:
push:
tags:
- "cli-v*"
workflow_dispatch:
inputs:
version:
description: "Version to publish (without v prefix)"
required: true
default: "0.1.0"
workflow_call:
inputs:
version:
description: "Version to publish"
required: true
type: string

# Adding permissions at workflow level
permissions:
contents: write

jobs:
prepare:
runs-on: macos-latest
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v4

- name: Determine version
id: get-version
run: |
# Check inputs.version first (set by workflow_call)
if [ -n "${{ inputs.version }}" ]; then
VERSION=${{ inputs.version }}
elif [ "${{ github.event_name }}" == "push" ]; then
# Extract version from tag (for package-specific tags)
if [[ "${{ github.ref }}" =~ ^refs/tags/cli-v([0-9]+\.[0-9]+\.[0-9]+) ]]; then
VERSION=${BASH_REMATCH[1]}
else
echo "Invalid tag format for cli"
exit 1
fi
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
# Use version from workflow dispatch
VERSION=${{ github.event.inputs.version }}
else
echo "No version provided"
exit 1
fi
echo "VERSION=$VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT

publish:
needs: prepare
uses: ./.github/workflows/py-reusable-publish.yml
with:
package_name: "cli"
package_dir: "libs/python/cua-cli"
version: ${{ needs.prepare.outputs.version }}
base_package_name: "cua-cli"
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}

create-release:
needs: [prepare, publish]
uses: ./.github/workflows/release-github-reusable.yml
with:
tag_name: "cli-v${{ needs.prepare.outputs.version }}"
release_name: "cua-cli v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/cua-cli"
body: ""
18 changes: 1 addition & 17 deletions .github/workflows/cd-py-computer-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,4 @@ jobs:
tag_name: "computer-server-v${{ needs.prepare.outputs.version }}"
release_name: "cua-computer-server v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/computer-server"
body: |
## Computer Server for the Computer Universal Automation (Cua) project

A FastAPI-based server implementation for computer control.

## Usage

```bash
# Run the server
cua-computer-server
```

## Installation

```bash
pip install cua-computer-server==${{ needs.prepare.outputs.version }}
```
body: ""
9 changes: 1 addition & 8 deletions .github/workflows/cd-py-computer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,4 @@ jobs:
tag_name: "computer-v${{ needs.prepare.outputs.version }}"
release_name: "cua-computer v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/computer"
body: |
## Computer control library for the Computer Universal Automation (Cua) project

## Installation

```bash
pip install cua-computer==${{ needs.prepare.outputs.version }}
```
body: ""
9 changes: 1 addition & 8 deletions .github/workflows/cd-py-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,4 @@ jobs:
tag_name: "core-v${{ needs.prepare.outputs.version }}"
release_name: "cua-core v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/core"
body: |
## Base package for Cua project with telemetry and core utilities

## Installation

```bash
pip install cua-core==${{ needs.prepare.outputs.version }}
```
body: ""
38 changes: 1 addition & 37 deletions .github/workflows/cd-py-mcp-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,40 +165,4 @@ jobs:
tag_name: "mcp-server-v${{ needs.prepare.outputs.version }}"
release_name: "cua-mcp-server v${{ needs.prepare.outputs.version }}"
module_path: "libs/python/mcp-server"
body: |
## MCP Server for the Computer-Use Agent (Cua)

This package provides MCP (Model Context Protocol) integration for Cua agents, allowing them to be used with Claude Desktop, Cursor, and other MCP clients.

## Usage

```bash
# Run the MCP server directly
cua-mcp-server
```

## Claude Desktop Integration

Add to your Claude Desktop configuration (~/.config/claude-desktop/claude_desktop_config.json or OS-specific location):

```json
"mcpServers": {
"cua-agent": {
"command": "cua-mcp-server",
"args": [],
"env": {
"CUA_AGENT_LOOP": "OMNI",
"CUA_MODEL_PROVIDER": "ANTHROPIC",
"CUA_MODEL_NAME": "claude-3-opus-20240229",
"ANTHROPIC_API_KEY": "your-api-key",
"PYTHONIOENCODING": "utf-8"
}
}
}
```

## Installation

```bash
pip install cua-mcp-server==${{ needs.prepare.outputs.version }}
```
body: ""
11 changes: 1 addition & 10 deletions .github/workflows/cd-py-som.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,4 @@ jobs:
tag_name: "som-v${{ needs.determine-version.outputs.version }}"
release_name: "cua-som v${{ needs.determine-version.outputs.version }}"
module_path: "libs/python/som"
body: |
## Computer Vision and OCR library for detecting and analyzing UI elements

This package provides enhanced UI understanding capabilities through computer vision and OCR.

## Installation

```bash
pip install cua-som==${{ needs.determine-version.outputs.version }}
```
body: ""
23 changes: 13 additions & 10 deletions .github/workflows/ci-check-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ on:
# MCP Server (Python)
- "libs/python/mcp-server/src/**"
# Computer SDK
- "libs/python/computer/src/**"
- "libs/python/computer/computer/**"
- "libs/typescript/computer/src/**"
# Agent SDK
- "libs/python/agent/src/**"
- "libs/python/agent/agent/**"
- "libs/typescript/agent/src/**"
# Documentation files themselves
- "docs/content/docs/cua/reference/**"
Expand Down Expand Up @@ -42,6 +42,14 @@ jobs:
run: pnpm install
working-directory: docs

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install Python doc dependencies
run: pip install -r scripts/docs-generators/requirements.txt

- name: Determine changed generators
id: changed
run: |
Expand All @@ -68,14 +76,9 @@ jobs:
GENERATORS="$GENERATORS mcp-server"
fi

# Computer SDK changes
if echo "$CHANGED_FILES" | grep -q "^libs/python/computer/src/\|^libs/typescript/computer/src/"; then
GENERATORS="$GENERATORS computer-sdk"
fi

# Agent SDK changes
if echo "$CHANGED_FILES" | grep -q "^libs/python/agent/src/\|^libs/typescript/agent/src/"; then
GENERATORS="$GENERATORS agent-sdk"
# Python SDK changes (Computer and Agent)
if echo "$CHANGED_FILES" | grep -q "^libs/python/computer/computer/\|^libs/python/agent/agent/"; then
GENERATORS="$GENERATORS python-sdk"
fi

# Generator changes should run all
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/release-bump-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- pypi/agent
- pypi/bench
- pypi/bench-ui
- pypi/cli
- pypi/computer
- pypi/computer-server
- pypi/core
Expand Down Expand Up @@ -58,6 +59,10 @@ jobs:
echo "directory=libs/python/bench-ui" >> $GITHUB_OUTPUT
echo "type=python" >> $GITHUB_OUTPUT
;;
"pypi/cli")
echo "directory=libs/python/cua-cli" >> $GITHUB_OUTPUT
echo "type=python" >> $GITHUB_OUTPUT
;;
"pypi/computer")
echo "directory=libs/python/computer" >> $GITHUB_OUTPUT
echo "type=python" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -268,6 +273,15 @@ jobs:
echo "Bench-ui version: $VERSION"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Capture bumped cli version
if: ${{ inputs.service == 'pypi/cli' }}
id: cli_version
run: |
cd libs/python/cua-cli
VERSION=$(python -c "import tomllib; from pathlib import Path; data = tomllib.loads(Path('pyproject.toml').read_text()); print(data['project']['version'])")
echo "CLI version: $VERSION"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Capture bumped computer version
if: ${{ inputs.service == 'pypi/computer' || inputs.service == 'pypi/core' }}
id: computer_version
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/release-github-reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ jobs:

# Get commits and process each one to fetch GitHub username
while IFS='|' read -r sha subject; do
# Skip automated bump commits (e.g., "Bump cua-agent to v0.7.22")
if [[ "$subject" =~ ^Bump\ cua- ]]; then
continue
fi

# Try to get GitHub username via API
USERNAME=$(gh api repos/${{ github.repository }}/commits/${sha} --jq '.author.login' 2>/dev/null || echo "")

Expand All @@ -98,12 +103,15 @@ jobs:
fi
fi

# Link PR numbers: (#123) -> ([#123](https://github.com/REPO/pull/123))
LINKED_SUBJECT=$(echo "$subject" | sed 's/(#\([0-9]*\))/([#\1](https:\/\/github.com\/${{ github.repository }}\/pull\/\1))/g')

SHORT_SHA=$(echo ${sha} | cut -c1-7)
NOTES="${NOTES}* ${subject} (${SHORT_SHA}) by @${USERNAME}"$'\n'
NOTES="${NOTES}* ${LINKED_SUBJECT} (${SHORT_SHA}) by @${USERNAME}"$'\n'
done < <(git log ${COMMIT_RANGE} --pretty=format:"%H|%s" -- "${{ inputs.module_path }}" | head -50)

if [ -z "$NOTES" ]; then
NOTES="* Initial release or no path-specific changes found"
NOTES="Maintenance release — dependency updates only."
fi

# Store notes in output (handle multiline)
Expand Down
2 changes: 1 addition & 1 deletion docs/content/docs/cua/guide/advanced/vnc-recorder.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ cua skills read my-skill

### 1. Start a sandbox and open the VNC UI

Start a sandbox using [Docker](/docs/cua/guide/get-started/set-up-sandbox) or [Cua Cloud](/docs/cua/guide/get-started/set-up-sandbox). The VNC UI will be available at:
Start a sandbox using [Docker](/docs/cua/guide/get-started/self-hosted-sandboxes) or [Cua Cloud](/docs/cua/guide/get-started/quickstart). The VNC UI will be available at:

- **Docker**: `http://localhost:8006`
- **Cloud**: `https://{sandbox-name}.sandbox.cua.ai/vnc.html`
Expand Down
6 changes: 2 additions & 4 deletions docs/content/docs/cua/guide/get-started/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@
"icon": "Rocket",
"pages": [
"what-is-cua",
"what-is-computer-use-agent",
"what-is-desktop-sandbox",
"set-up-sandbox",
"quickstart",
"using-computer-sdk",
"using-agent-sdk",
"using-cloud-cli"
"self-hosted-sandboxes"
]
}
Loading
Loading