Restructured the Cua Playground blog post to match the cleaner, more concise format of the cloud-windows-ga-macos-preview post. Changes include:
- Condensed feature descriptions into bullet points
- Added image and video embeds in consistent positioning
- Simplified "Getting Started" section with streamlined steps
- Converted FAQs to collapsible details format
- Removed verbose sections for cleaner narrative flow
- Updated footer to match reference CTA format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace shell export statements with Python os.environ in all Python code blocks.
This provides a more Pythonic way to set environment variables.
Changes:
- docs/content/docs/get-started/quickstart.mdx: Update Cloud Sandbox, CUA VLM Router, and BYOK examples
- docs/content/docs/agent-sdk/supported-model-providers/cua-vlm-router.mdx: Update migration examples
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
When bumping cua-computer, we publish both packages. However, since cua-agent
depends on cua-computer, we should publish computer FIRST, then agent. This
ensures the new computer version is available on PyPI before agent (which
depends on it) is published.
Changes:
- Reordered jobs: publish-computer before publish-agent
- Added publish-computer to publish-agent's needs list
- Updated publish-agent condition to use always() with explicit result checks
- When service is cua-agent: publishes immediately
- When service is cua-computer: waits for publish-computer to succeed first
Job execution order:
1. bump-version (bumps versions, pushes to git)
2. publish-computer (only when service == cua-computer)
3. publish-agent (waits for computer if service == cua-computer)
This prevents dependency errors where agent might be published before the
computer version it depends on is available on PyPI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This PR addresses two issues:
1. **Fix version detection in pypi-publish-computer workflow**
- Updated to match the pattern from PR #598 for pypi-publish-agent
- Check inputs.version first (works for workflow_call regardless of event_name)
- Add debug output to help troubleshoot version detection issues
- Proper handling of all three trigger types: workflow_call, workflow_dispatch, push
2. **Publish both packages when bumping cua-computer**
- When bumping cua-computer, we bump both cua-computer and cua-agent versions
(since cua-agent depends on cua-computer: "cua-computer>=0.4.0,<0.5.0")
- Updated publish-agent job to trigger for both 'cua-agent' and 'cua-computer' services
- This ensures version consistency between the two packages
**Behavior:**
- When bumping `cua-agent`: publishes cua-agent only
- When bumping `cua-computer`: publishes BOTH cua-computer AND cua-agent
This maintains version consistency and ensures users can install the latest
versions of both packages together without dependency conflicts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
When bumping cua-computer, the workflow was incorrectly publishing cua-agent
instead of cua-computer to PyPI. This was because the publish-agent job had a
condition that triggered for both cua-agent and cua-computer services.
Changes:
- Added computer_version output to capture the bumped computer version
- Changed publish-agent condition to only trigger for cua-agent service
- Added new publish-computer job that triggers for cua-computer service
- publish-computer job calls pypi-publish-computer.yml workflow
Now when bumping cua-computer:
- Bumps cua-computer version (as before)
- Also bumps cua-agent version to maintain dependency sync (as before)
- Publishes cua-computer to PyPI (fixed!)
- Does NOT publish cua-agent to PyPI (fixed!)
Fixes: https://github.com/trycua/cua/actions/runs/19512484987🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Previously, users had to explicitly read the CUA_API_KEY environment variable
and pass it to the Computer/CloudProvider constructor. This change makes the
API key parameter optional and automatically reads from the CUA_API_KEY
environment variable if not provided.
Changes:
- CloudProvider.__init__: Made api_key parameter optional, reads from CUA_API_KEY env var
- Computer.__init__: Added fallback to CUA_API_KEY env var for api_key parameter
- Updated documentation examples to show simplified usage without explicit api_key
- Updated cloud_api_examples.py to demonstrate the new simpler pattern
This provides a cleaner API while maintaining backward compatibility with
explicit api_key parameter passing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
hud-python is an external package that isn't published to PyPI yet,
which was blocking installation of cua-agent[all]. This change:
- Removes hud-python==0.4.52 from the [all] extra dependencies
- Keeps the separate [hud] extra for users who have access to hud-python
- Allows pip install cua-agent[all] to work without dependency errors
The hud functionality remains available as an opt-in extra via:
pip install cua-agent[hud]
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>