diff --git a/.github/workflows/npm-publish-cli.yml b/.github/workflows/npm-publish-cli.yml
index b102c181..4a41a9de 100644
--- a/.github/workflows/npm-publish-cli.yml
+++ b/.github/workflows/npm-publish-cli.yml
@@ -17,27 +17,22 @@ jobs:
strategy:
matrix:
- os: [ubuntu-latest, macos-latest, windows-latest]
include:
- - os: ubuntu-latest
- target: bun-linux-x64
- ext: ""
+ - target: bun-linux-x64
+ ext: ''
binary_name: cua-linux-x64
- - os: macos-latest
- target: bun-darwin-x64
- ext: ""
+ - target: bun-darwin-x64
+ ext: ''
binary_name: cua-darwin-x64
- - os: macos-latest
- target: bun-darwin-arm64
- ext: ""
+ - target: bun-darwin-arm64
+ ext: ''
binary_name: cua-darwin-arm64
- - os: windows-latest
- target: bun-windows-x64
- ext: ".exe"
- binary_name: cua-windows-x64.exe
-
- runs-on: ${{ matrix.os }}
-
+ - target: bun-windows-x64
+ ext: '.exe'
+ binary_name: cua-windows-x64
+
+ runs-on: ubuntu-latest
+
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -73,14 +68,14 @@ jobs:
- name: Build binary
working-directory: ./libs/typescript/cua-cli
run: |
- bun build --compile --minify --sourcemap --target=${{ matrix.target }} index.ts --outfile ${{ matrix.binary_name }}
+ bun build --compile --minify --sourcemap --target=${{ matrix.target }} index.ts --outfile ${{ matrix.binary_name }}${{ matrix.ext }}
mkdir -p ../../../dist
mv ${{ matrix.binary_name }}${{ matrix.ext }}* ../../../dist/
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
- name: cua-binary-${{ matrix.os }}
+ name: cua-binary-${{ matrix.target }}
path: dist/
if-no-files-found: error
retention-days: 1
@@ -106,15 +101,21 @@ jobs:
with:
bun-version: latest
+ - name: Install dependencies
+ working-directory: ./libs/typescript/cua-cli
+ run: bun install --frozen-lockfile
+
- name: Publish to npm
working-directory: ./libs/typescript/cua-cli
- run: |
- npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}
- npm publish --access public
+ env:
+ NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
+ run: bun publish --production --access public --tolerate-republish
create-release:
needs: [build-and-publish, publish-npm]
runs-on: ubuntu-latest
+ permissions:
+ contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -139,22 +140,24 @@ jobs:
- name: Create Release
id: create_release
- uses: actions/create-release@v2
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.version.outputs.tag }}
- release_name: CUA CLI ${{ steps.version.outputs.version }}
+ release_name: cua-cli v${{ steps.version.outputs.version }}
body: |
- # CUA CLI ${{ steps.version.outputs.version }}
+ # cua-cli v${{ steps.version.outputs.version }}
## Installation
### Using install script (recommended)
```bash
# For Linux/macOS
- curl -fsSL https://cua.ai/install.sh | sh
-
+ curl -fsSL https://cua.ai/cli/install.sh | sh
+
# For Windows (PowerShell)
- irm https://cua.ai/install.ps1 | iex
+ irm https://cua.ai/cli/install.ps1 | iex
```
### Using npm/bun
@@ -183,12 +186,42 @@ jobs:
draft: false
prerelease: false
- - name: Upload Release Assets
- uses: actions/upload-release-asset@v2
+ - name: Upload Linux Binary
+ uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./dist/${{ matrix.binary_name }}
- asset_name: ${{ matrix.binary_name }}
+ asset_path: ./dist/cua-linux-x64
+ asset_name: cua-linux-x64
+ asset_content_type: application/octet-stream
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Upload macOS Intel Binary
+ uses: actions/upload-release-asset@v1
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./dist/cua-darwin-x64
+ asset_name: cua-darwin-x64
+ asset_content_type: application/octet-stream
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Upload macOS Apple Silicon Binary
+ uses: actions/upload-release-asset@v1
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./dist/cua-darwin-arm64
+ asset_name: cua-darwin-arm64
+ asset_content_type: application/octet-stream
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Upload Windows Binary
+ uses: actions/upload-release-asset@v1
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./dist/cua-windows-x64.exe
+ asset_name: cua-windows-x64.exe
asset_content_type: application/octet-stream
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/docs/content/docs/get-started/quickstart.mdx b/docs/content/docs/get-started/quickstart.mdx
index 5b43d075..e1762459 100644
--- a/docs/content/docs/get-started/quickstart.mdx
+++ b/docs/content/docs/get-started/quickstart.mdx
@@ -431,15 +431,9 @@ Host: my-vm-abc123.containers.cloud.trycua.com
You can now interact with your sandbox in multiple ways:
-#### Option 1: Open the AI Playground (Recommended)
-```bash
-cua chat my-vm-abc123
-```
-This opens the full CUA playground in your browser where you can chat with AI agents that control your sandbox.
-
-#### Option 2: Access VNC Desktop
+#### Option 1: Access VNC Desktop
```bash
cua open my-vm-abc123
@@ -447,7 +441,7 @@ cua open my-vm-abc123
This opens a remote desktop connection to your sandbox.
-#### Option 3: List and Manage Sandboxes
+#### Option 2: List and Manage Sandboxes
```bash
# List all your sandboxes
@@ -463,21 +457,6 @@ cua delete my-vm-abc123
-
-
-### Try Some AI Tasks
-
-Once you have the playground open (`cua chat`), try asking the AI to:
-
-- "Take a screenshot and tell me what's on the screen"
-- "Open Firefox and navigate to github.com"
-- "Create a new text file and write 'Hello World' in it"
-- "Install Python and run a simple script"
-- "Take a screenshot of the desktop"
-
-The AI agent will automatically control your sandbox to complete these tasks!
-
-
### What's Next?
diff --git a/docs/content/docs/libraries/cua-cli/commands.mdx b/docs/content/docs/libraries/cua-cli/commands.mdx
index 5335f432..ec04f054 100644
--- a/docs/content/docs/libraries/cua-cli/commands.mdx
+++ b/docs/content/docs/libraries/cua-cli/commands.mdx
@@ -11,7 +11,7 @@ import { Callout } from 'fumadocs-ui/components/callout';
The CUA CLI provides commands for authentication and sandbox management:
- **Authentication** - `cua login`, `cua env`, `cua logout`
-- **Sandbox Management** - `cua list`, `cua create`, `cua start`, `cua stop`, `cua restart`, `cua delete`, `cua open`, `cua chat`
+- **Sandbox Management** - `cua list`, `cua create`, `cua start`, `cua stop`, `cua restart`, `cua delete`, `cua open`
## Authentication Commands
@@ -219,21 +219,6 @@ Opening NoVNC: https://my-dev-sandbox.containers.cloud.trycua.com/vnc.html?autoc
This command automatically opens your default browser to the VNC interface with the correct password pre-filled.
-### `cua chat`
-
-Open the CUA playground for a sandbox in your browser.
-
-```bash
-cua chat
-```
-
-**Example:**
-```bash
-$ cua chat my-dev-sandbox
-Opening Playground: https://cua.ai/dashboard/playground?host=...
-```
-
-This opens the full CUA playground interface where you can interact with your sandbox using AI agents.
## Global Options
@@ -310,7 +295,7 @@ cua env
### 3. Quick Sandbox Access
```bash
# Create aliases for frequently used sandboxes
-alias dev-sandbox="cua chat my-development-sandbox"
+alias dev-sandbox="cua open my-development-sandbox"
alias prod-sandbox="cua open my-production-sandbox"
```
diff --git a/docs/content/docs/libraries/cua-cli/index.mdx b/docs/content/docs/libraries/cua-cli/index.mdx
index 6f0f740a..b2e19a02 100644
--- a/docs/content/docs/libraries/cua-cli/index.mdx
+++ b/docs/content/docs/libraries/cua-cli/index.mdx
@@ -29,9 +29,6 @@ cua create --os linux --configuration small --region north-america
# List your sandboxes
cua list
-
-# Open the playground for your sandbox
-cua chat my-sandbox-name
```
## Use Cases
diff --git a/libs/typescript/cua-cli/package.json b/libs/typescript/cua-cli/package.json
index 3e399be5..641af50b 100644
--- a/libs/typescript/cua-cli/package.json
+++ b/libs/typescript/cua-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@trycua/cli",
- "version": "0.1.1",
+ "version": "0.1.2",
"packageManager": "bun@1.1.38",
"description": "Command-line interface for CUA cloud VMs and authentication",
"type": "module",
diff --git a/libs/typescript/cua-cli/src/commands/vm.ts b/libs/typescript/cua-cli/src/commands/vm.ts
index c54e14e9..39ecb546 100644
--- a/libs/typescript/cua-cli/src/commands/vm.ts
+++ b/libs/typescript/cua-cli/src/commands/vm.ts
@@ -281,37 +281,37 @@ export function registerVmCommands(y: Argv) {
await openInBrowser(url);
}
)
- .command(
- 'chat ',
- 'Open CUA playground for a sandbox',
- (y) => y.positional('name', { type: 'string', describe: 'Sandbox name' }),
- async (argv: Record) => {
- const token = await ensureApiKeyInteractive();
- const name = String((argv as any).name);
- const listRes = await http('/v1/vms', { token });
- if (listRes.status === 401) {
- clearApiKey();
- console.error("Unauthorized. Try 'cua login' again.");
- process.exit(1);
- }
- if (!listRes.ok) {
- console.error(`Request failed: ${listRes.status}`);
- process.exit(1);
- }
- const vms = (await listRes.json()) as VmItem[];
- const vm = vms.find((v) => v.name === name);
- if (!vm) {
- console.error('Sandbox not found');
- process.exit(1);
- }
- const host =
- vm.host && vm.host.length
- ? vm.host
- : `${vm.name}.containers.cloud.trycua.com`;
- const base = WEBSITE_URL.replace(/\/$/, '');
- const url = `${base}/dashboard/playground?host=${encodeURIComponent(host)}&id=${encodeURIComponent(vm.name)}&name=${encodeURIComponent(vm.name)}&vnc_password=${encodeURIComponent(vm.password)}&fullscreen=true`;
- console.log(`Opening Playground: ${url}`);
- await openInBrowser(url);
- }
- );
+ // .command(
+ // 'chat ',
+ // 'Open CUA playground for a sandbox',
+ // (y) => y.positional('name', { type: 'string', describe: 'Sandbox name' }),
+ // async (argv: Record) => {
+ // const token = await ensureApiKeyInteractive();
+ // const name = String((argv as any).name);
+ // const listRes = await http('/v1/vms', { token });
+ // if (listRes.status === 401) {
+ // clearApiKey();
+ // console.error("Unauthorized. Try 'cua login' again.");
+ // process.exit(1);
+ // }
+ // if (!listRes.ok) {
+ // console.error(`Request failed: ${listRes.status}`);
+ // process.exit(1);
+ // }
+ // const vms = (await listRes.json()) as VmItem[];
+ // const vm = vms.find((v) => v.name === name);
+ // if (!vm) {
+ // console.error('Sandbox not found');
+ // process.exit(1);
+ // }
+ // const host =
+ // vm.host && vm.host.length
+ // ? vm.host
+ // : `${vm.name}.containers.cloud.trycua.com`;
+ // const base = WEBSITE_URL.replace(/\/$/, '');
+ // const url = `${base}/dashboard/playground?host=${encodeURIComponent(host)}&id=${encodeURIComponent(vm.name)}&name=${encodeURIComponent(vm.name)}&vnc_password=${encodeURIComponent(vm.password)}&fullscreen=true`;
+ // console.log(`Opening Playground: ${url}`);
+ // await openInBrowser(url);
+ // }
+ // );
}
diff --git a/scripts/install-cli.ps1 b/scripts/install-cli.ps1
index 29b630ec..7659983c 100644
--- a/scripts/install-cli.ps1
+++ b/scripts/install-cli.ps1
@@ -119,8 +119,8 @@ if (Test-Path $binaryPath) {
Write-Host "Success: CUA CLI $version installed successfully to $binaryPath" -ForegroundColor Green
Write-Host ""
Write-Host "Get started with:" -ForegroundColor Cyan
- Write-Host " cua auth login"
- Write-Host " cua vm create --os linux --configuration small --region north-america"
+ Write-Host " cua login"
+ Write-Host " cua create --os linux --configuration small --region north-america"
Write-Host ""
Write-Host "For more help, visit: https://docs.cua.ai/libraries/cua-cli" -ForegroundColor Cyan