Files
lume/notebooks
Francesco Bonacci a3bb4fafb4 feat(lume,ci): add unattended VM setup and reorganize CI/CD workflows (#729)
* feat(lume): add unattended macOS VM setup with VNC automation

Add experimental unattended setup feature for automating macOS Setup Assistant:

- New `lume setup` command for running unattended setup on existing VMs
- Add `--unattended` flag to `lume create` for automated VM provisioning
- VNC-based automation with OCR text detection for UI interaction
- Built-in preset support (tahoe) with YAML config bundled in binary
- Health check functionality to verify setup success via SSH
- SSH availability indicator in `lume ls` output
- API server endpoint POST /lume/vms/:name/setup

Also includes:
- Restructured lume documentation into dedicated section
- Documentation generators for CLI and API reference
- Debug screenshot support with unique temp folders

* fix(lume): update MockVNCService and tests for new VNC protocol methods

- Add missing automation protocol methods to MockVNCService
- Update VMDetailsPrinterTests to include new ssh column

* fix(lume): remove ineffective Task.isCancelled check in UnattendedInstaller

Task.isCancelled only returns true for explicitly cancelled tasks, not for
tasks that threw errors. The check was ineffective for detecting VM startup
failures. Startup errors are now properly caught when attempting to connect
to the VNC input client.

* fix(lume): update CommandDocExtractor for setup command

Update setupDoc to match actual Setup.swift implementation:
- Change option name from "config" to "unattended"
- Add missing debug-dir option
- Mark vnc-port as optional (has default value)
- Update help text to match actual command
- Add [Preview] prefix and discussion text

Also update createDoc unattended option help text.

* chore(ci): reorganize workflows and add path-filtered release notes

- Rename workflow files with consistent prefixes:
  - ci-* for CI workflows (lint, tests, validation)
  - lume-* for lume workflows (ci, publish)
  - release-* for release workflows (bump-version, github-reusable)
- Update all cross-references to renamed workflows
- Add lume and npm packages to release-bump-version.yml
- Standardize version management with .bumpversion.cfg files for:
  - libs/typescript/core (0.1.3)
  - libs/typescript/computer (0.1.5)
  - libs/typescript/cua-cli (0.1.8)
  - libs/lume (0.2.23)
- Sync lume version in Main.swift to match deployed release (0.2.23)
- Change ci-cua-models.yml to trigger on libs/python changes instead of schedule
- Add path-filtered release notes to all publish workflows:
  - Filter commits by module path for accurate changelogs
  - Only include changes relevant to the specific package being released

* docs: update documentation and improve code examples

- Update README with clearer project description
- Add Python version requirements to examples
- Update blog posts and documentation
- Improve lume installation documentation
- Update various library READMEs and examples
- Sync dependency versions and configurations

* docs: improve automation API terminology

Replace generic "automation-compatible" wording with clearer terms:
- "automation-compatible server" → "built-in automation server"
- "automation-compatible" → "with cross-platform automation"

* fix(ci): remove hardcoded pnpm version to avoid conflict with packageManager

* fix(ci): skip Docker push on PRs - only validate builds

* fix(ci): format code with prettier and regenerate docs

* refactor(ci): reorganize GitHub Actions with CI/CD naming convention

- Rename workflow files with clear CI/CD prefixes:
  - `pypi-*` → `cd-py-*` and `ci-py-*`
  - `npm-*` → `cd-ts-*` and `ci-ts-*`
  - `lume-*` → `cd-swift-lume` and `ci-swift-lume`
  - `docker-publish-*` → `cd-container-*`

- Split ci-lint.yml into:
  - ci-lint-python.yml (Python linting)
  - ci-lint-typescript.yml (TypeScript linting)

- Add path filters to lint workflows:
  - ci-lint-python.yml triggers only on libs/python/** changes
  - ci-lint-typescript.yml triggers only on libs/typescript/** changes

- Create new CI workflows for package validation:
  - ci-py-*.yml for Python packages
  - ci-ts-*.yml for TypeScript packages
  - ci-container-*.yml for Docker containers

- Rename reusable workflows:
  - pypi-reusable-*.yml → py-reusable-*.yml
  - npm-reusable-*.yml → ts-reusable-*.yml

- Update all cross-references in release-bump-version.yml

* feat(ci): add separate CI/CD for cua-bench and cua-bench-ui

- Fix ci-py-bench.yml to point to libs/cua-bench (was incorrectly pointing to libs/python/bench-ui)
- Add ci-py-bench-ui.yml for cua-bench-ui package validation
- Add cd-py-bench-ui.yml for cua-bench-ui package publishing
- Add .bumpversion.cfg for cua-bench-ui (v0.7.0)
- Update release-bump-version.yml with pypi/bench-ui option
- Fix cd-py-bench.yml to use release-github-reusable.yml

* docs(lume): update disk space requirement from 50GB to 30GB

* fix(ci): skip arm64 builds for Android QEMU container

The Android QEMU image is not buildable on arm64. Add skip_arm64
parameter to docker reusable workflows and enable it for Android.

* fix(ci): align cd-ts-cli tag pattern with bumpversion config

* feat(ci): add tag triggers for TypeScript CD and bump support for containers

- Add tag triggers to cd-ts-cli.yml, cd-ts-computer.yml, cd-ts-core.yml
- Update version extraction to handle tag-based triggers
- Add .bumpversion.cfg and VERSION files for all container images:
  - kasm, xfce, lumier
  - qemu-android, qemu-linux, qemu-windows
- Add docker/* options to release-bump-version.yml

Container CD workflows are triggered automatically when tags are pushed.

* refactor(ci): remove redundant dockerfile_path defaults from container workflows

* style: fix prettier formatting in Android container workflows

* fix(ci): container CD should only trigger on tag push, not main

Container images should be released via bump version workflow
(tag push), not on every main branch push. This aligns container
releases with other packages (PyPI, npm, lume).

* feat(ci): add dependency chain handling for bump workflow

When bumping core packages, automatically bump dependent packages:
- pypi/core → also bumps cua-computer and cua-agent
- pypi/som → also bumps cua-agent
- npm/core → also bumps @trycua/computer

Publish jobs now run in correct dependency order to ensure
packages are available before their dependents are published.

* docs: update tagline and description in README

- Tagline: "Any OS. Any agent. Self-hostable."
- Description: improved grammar for sandbox isolation phrasing

* docs: update Packages section links to point to docs site

Replace local paths with cua.ai/docs URLs for better discoverability.

* docs: improve cua-computer-server description

* fix(lume): add VERSION file and update bumpversion config

* style: fix prettier formatting in README tables
2026-01-10 21:02:17 +01:00
..

Cua Notebooks

This folder contains Jupyter notebooks that demonstrate the core functionality of the Cua (Computer Use Automation) system. These notebooks serve as interactive examples and quickstart guides for different components of the Cua platform.

For development setup and contributing, see the Development Guide.

Available Notebooks

Core Components

  • computer_nb.ipynb - Demonstrates the Computer API for programmatically operating sandbox VMs using either Cua Cloud Sandbox or local Lume VMs on Apple Silicon macOS systems
  • agent_nb.ipynb - Shows how to use Cua's Agent to run automated workflows in virtual sandboxes with various AI models (OpenAI, Anthropic, local models)
  • computer_server_nb.ipynb - Demonstrates how to host and configure the Computer server that powers the Computer API

Evaluation & Benchmarking

  • eval_osworld.ipynb - Shows ComputerAgent integration with HUD for OSWorld benchmarking, supporting both Claude and OpenAI models

Tutorials

  • blog/ - Tutorial notebooks from blog posts:
    • build-your-own-operator-on-macos-1.ipynb - Part 1: Building a Cua operator using OpenAI's computer-use-preview model
    • build-your-own-operator-on-macos-2.ipynb - Part 2: Using the cua-agent package for more advanced automation