This commit is contained in:
Dillon DuPont
2025-11-14 17:45:31 -05:00
4 changed files with 35 additions and 54 deletions

View File

@@ -457,7 +457,6 @@ cua delete my-vm-abc123
</Step>
</Steps>
### What's Next?

View File

@@ -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 <name>
```
**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"
```

View File

@@ -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

View File

@@ -281,37 +281,37 @@ export function registerVmCommands(y: Argv) {
await openInBrowser(url);
}
)
.command(
'chat <name>',
'Open CUA playground for a sandbox',
(y) => y.positional('name', { type: 'string', describe: 'Sandbox name' }),
async (argv: Record<string, unknown>) => {
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 <name>',
// 'Open CUA playground for a sandbox',
// (y) => y.positional('name', { type: 'string', describe: 'Sandbox name' }),
// async (argv: Record<string, unknown>) => {
// 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);
// }
// );
}