diff --git a/README.md b/README.md index 236f04d4..52ca6fa1 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,14 @@ With the [Computer SDK](#computer-sdk), you can: -- automate Windows, Linux, and macOS VMs with a consistent, [pyautogui-like API](https://docs.trycua.com/docs/libraries/computer#interface-actions) -- create & manage VMs [locally](https://docs.trycua.com/docs/computer-sdk/computers#cua-local-containers) or using [Cua cloud](https://www.trycua.com/) +- automate Windows, Linux, and macOS VMs with a consistent, [pyautogui-like API](https://cua.ai/docs/docs/libraries/computer#interface-actions) +- create & manage VMs [locally](https://cua.ai/docs/docs/computer-sdk/computers#cua-local-containers) or using [Cua cloud](https://www.cua.ai/) With the [Agent SDK](#agent-sdk), you can: -- run computer-use models with a [consistent schema](https://docs.trycua.com/docs/agent-sdk/message-format) -- benchmark on OSWorld-Verified, SheetBench-V2, and more [with a single line of code using HUD](https://docs.trycua.com/docs/agent-sdk/integrations/hud) ([Notebook](https://github.com/trycua/cua/blob/main/notebooks/eval_osworld.ipynb)) -- combine UI grounding models with any LLM using [composed agents](https://docs.trycua.com/docs/agent-sdk/supported-agents/composed-agents) +- run computer-use models with a [consistent schema](https://cua.ai/docs/docs/agent-sdk/message-format) +- benchmark on OSWorld-Verified, SheetBench-V2, and more [with a single line of code using HUD](https://cua.ai/docs/docs/agent-sdk/integrations/hud) ([Notebook](https://github.com/trycua/cua/blob/main/notebooks/eval_osworld.ipynb)) +- combine UI grounding models with any LLM using [composed agents](https://cua.ai/docs/docs/agent-sdk/supported-agents/composed-agents) - use new UI agent models and UI grounding models from the Model Zoo below with just a model string (e.g., `ComputerAgent(model="openai/computer-use-preview")`) - use API or local inference by changing a prefix (e.g., `openai/`, `openrouter/`, `ollama/`, `huggingface-local/`, `mlx/`, [etc.](https://docs.litellm.ai/docs/providers)) @@ -96,8 +96,8 @@ Core utilities for Cua # Quick Start - [Clone a starter template and run the code in <1 min](https://github.com/trycua/agent-template) -- [Get started with the Cua SDKs](https://docs.trycua.com/docs/quickstart-devs) -- [Get started with the Cua CLI](https://docs.trycua.com/docs/quickstart-cli) +- [Get started with the Cua SDKs](https://cua.ai/docs/docs/quickstart-devs) +- [Get started with the Cua CLI](https://cua.ai/docs/docs/quickstart-cli) # Agent SDK @@ -197,9 +197,9 @@ These are the valid model configurations for `ComputerAgent(model="...")`: | Configuration | Description | | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `{computer-use-model}` | A single model to perform all computer-use tasks | -| `{grounding-model}+{any-vlm-with-tools}` | [Composed](https://docs.trycua.com/docs/agent-sdk/supported-agents/composed-agents) with VLM for captioning and grounding LLM for element detection | -| `moondream3+{any-llm-with-tools}` | [Composed](https://docs.trycua.com/docs/agent-sdk/supported-agents/composed-agents) with Moondream3 for captioning and UI element detection | -| `human/human` | A [human-in-the-loop](https://docs.trycua.com/docs/agent-sdk/supported-agents/human-in-the-loop) in place of a model | +| `{grounding-model}+{any-vlm-with-tools}` | [Composed](https://cua.ai/docs/docs/agent-sdk/supported-agents/composed-agents) with VLM for captioning and grounding LLM for element detection | +| `moondream3+{any-llm-with-tools}` | [Composed](https://cua.ai/docs/docs/agent-sdk/supported-agents/composed-agents) with Moondream3 for captioning and UI element detection | +| `human/human` | A [human-in-the-loop](https://cua.ai/docs/docs/agent-sdk/supported-agents/human-in-the-loop) in place of a model | ### Model Capabilities @@ -333,8 +333,8 @@ Learn more in the [SOM documentation](./libs/python/som/README.md). # Resources -- [Cua Blog](https://www.trycua.com/blog) -- [Cua Docs](https://docs.trycua.com) +- [Cua Blog](https://www.cua.ai/blog) +- [Cua Docs](https://cua.ai/docs) # Community and Contributions diff --git a/blog/bringing-computer-use-to-the-web.md b/blog/bringing-computer-use-to-the-web.md index b753b454..92533c59 100644 --- a/blog/bringing-computer-use-to-the-web.md +++ b/blog/bringing-computer-use-to-the-web.md @@ -30,7 +30,7 @@ By the end of this tutorial, you'll be able to: - Node.js 16+ and npm/yarn/pnpm - Basic JavaScript or TypeScript knowledge - OpenAI API access (Tier 3+ for computer-use-preview) -- Cua cloud container credits ([get started here](https://trycua.com/pricing)) +- Cua cloud container credits ([get started here](https://cua.ai/pricing)) **Estimated Time:** 45-60 minutes @@ -51,7 +51,7 @@ Luckily, the `@trycua/computer` library can be used in conjunction with other mo To follow this guide, you’ll need access to a Cua cloud container. -Getting access is simple: purchase credits from our [pricing page](https://trycua.com/pricing), then create and provision a new container instance from the [dashboard](https://trycua.com/dashboard/containers). With your container running, you'll be ready to leverage the web SDK and bring automation to your JavaScript or TypeScript applications. +Getting access is simple: purchase credits from our [pricing page](https://cua.ai/pricing), then create and provision a new container instance from the [dashboard](https://cua.ai/dashboard/containers). With your container running, you'll be ready to leverage the web SDK and bring automation to your JavaScript or TypeScript applications. ## Understanding the Flow @@ -86,7 +86,7 @@ const res = await openai.responses.create({ role: 'user', content: [ // what we want the ai to do - { type: 'input_text', text: 'Open firefox and go to trycua.com' }, + { type: 'input_text', text: 'Open firefox and go to cua.ai' }, // first screenshot of the vm { type: 'input_image', @@ -144,7 +144,7 @@ Each response contains: ### Provision a Cua Cloud Container -1. Visit [trycua.com](https://trycua.com), sign up, purchase [credits](https://trycua.com/pricing), and create a new container instance from the [dashboard](https://trycua.com/dashboard). +1. Visit [cua.ai](https://cua.ai), sign up, purchase [credits](https://cua.ai/pricing), and create a new container instance from the [dashboard](https://cua.ai/dashboard). 2. Create an API key from the dashboard — be sure to save it in a secure location before continuing. 3. Start the cloud container from the dashboard. @@ -281,7 +281,7 @@ let res = await openai.responses.create({ role: 'user', content: [ // what we want the ai to do - { type: 'input_text', text: 'open firefox and go to trycua.com' }, + { type: 'input_text', text: 'open firefox and go to cua.ai' }, // current screenshot of the vm { type: 'input_image', diff --git a/blog/composite-agents.md b/blog/composite-agents.md index 383fb035..66af1869 100644 --- a/blog/composite-agents.md +++ b/blog/composite-agents.md @@ -67,7 +67,7 @@ If you try out version 0.4.x, we'd love to hear how it goes. Join us on Discord ## Links -- **Composite Agent Docs:** [https://docs.trycua.com/docs/agent-sdk/supported-agents/composed-agents](https://docs.trycua.com/docs/agent-sdk/supported-agents/composed-agents) +- **Composite Agent Docs:** [https://cua.ai/docs/agent-sdk/supported-agents/composed-agents](https://cua.ai/docs/agent-sdk/supported-agents/composed-agents) - **Discord:** [https://discord.gg/cua-ai](https://discord.gg/cua-ai) Questions or weird edge cases? Ping us on Discord—we’re curious to see what you build. diff --git a/blog/cua-hackathon.md b/blog/cua-hackathon.md index 26e59cf7..02e285c8 100644 --- a/blog/cua-hackathon.md +++ b/blog/cua-hackathon.md @@ -84,4 +84,4 @@ Bring a team, pick a model stack, and push what agents can do on real computers. **Contact** Questions on Hack the North? Email **hackthenorth@trycua.com**. -_P.S. If you’re planning ahead, start with the Cua Agent Framework and OSWorld-Verified docs at docs.trycua.com; we’ll share office-hour times in both Discord channels._ +_P.S. If you’re planning ahead, start with the Cua Agent Framework and OSWorld-Verified docs at cua.ai/docs; we’ll share office-hour times in both Discord channels._ diff --git a/blog/hack-the-north.md b/blog/hack-the-north.md index 574af62c..015d287b 100644 --- a/blog/hack-the-north.md +++ b/blog/hack-the-north.md @@ -22,7 +22,7 @@ From day one, though, we knew we’d have to fight for sign-ups. This was a nich Unfortunately, Hack the North (HTN) didn’t offer an interest form to help us estimate demand, which made capacity planning tricky—especially with early-stage infra. Stress-testing takes foresight, and multimodal language model usage is still costly (~1.5× to 3–4× the price of comparable text-only models). -On top of that, we were discouraged from external promotion on [lu.ma](http://lu.ma). So we spun up our own sign-up page at **trycua.com/hackathon** and built ad-hoc Discord channels to share track details. We emphasized—repeatedly—that only students already accepted to Hack the North should register. +On top of that, we were discouraged from external promotion on [lu.ma](http://lu.ma). So we spun up our own sign-up page at **cua.ai/hackathon** and built ad-hoc Discord channels to share track details. We emphasized—repeatedly—that only students already accepted to Hack the North should register. _(Moral: the “measure-zero effect”—no matter how many times you say it, some people won’t see it. Plenty of invalid sign-ups still slipped through.)_ diff --git a/blog/hud-agent-evals.md b/blog/hud-agent-evals.md index 43a120e9..d28ab27e 100644 --- a/blog/hud-agent-evals.md +++ b/blog/hud-agent-evals.md @@ -89,5 +89,5 @@ Customize your evaluation with these options: ## Learn more - Notebook with end‑to‑end examples: https://github.com/trycua/cua/blob/main/notebooks/eval_osworld.ipynb -- Docs: https://docs.trycua.com/docs/agent-sdk/integrations/hud +- Docs: https://cua.ai/docs/agent-sdk/integrations/hud - Live traces: https://app.hud.so diff --git a/blog/human-in-the-loop.md b/blog/human-in-the-loop.md index dd14b27b..087cb1db 100644 --- a/blog/human-in-the-loop.md +++ b/blog/human-in-the-loop.md @@ -216,4 +216,4 @@ Ready to put humans back in the loop? The most sophisticated AI system knows whe --- -_Questions about human-in-the-loop agents? Join the conversation in our [Discord community](https://discord.gg/cua-ai) or check out our [documentation](https://docs.trycua.com/docs/agent-sdk/supported-agents/human-in-the-loop)._ +_Questions about human-in-the-loop agents? Join the conversation in our [Discord community](https://discord.gg/cua-ai) or check out our [documentation](https://cua.ai/docs/agent-sdk/supported-agents/human-in-the-loop)._ diff --git a/blog/introducing-cua-cloud-containers.md b/blog/introducing-cua-cloud-containers.md index 87ef62b0..de5898cb 100644 --- a/blog/introducing-cua-cloud-containers.md +++ b/blog/introducing-cua-cloud-containers.md @@ -32,7 +32,7 @@ The result? **Instant deployment** in seconds instead of hours, with no infrastr ### Step 1: Get Your API Key -Sign up at [**trycua.com**](https://trycua.com) to get your API key. +Sign up at [**cua.ai**](https://cua.ai) to get your API key. ```bash # Set your API key in environment variables @@ -226,6 +226,6 @@ Stay tuned for updates and join our [**Discord**](https://discord.gg/cua-ai) to Ready to deploy your Computer-Use Agents in the cloud? -Visit [**trycua.com**](https://trycua.com) to sign up and get your API key. Join our [**Discord community**](https://discord.gg/cua-ai) for support and explore more examples on [**GitHub**](https://github.com/trycua/cua). +Visit [**cua.ai**](https://cua.ai) to sign up and get your API key. Join our [**Discord community**](https://discord.gg/cua-ai) for support and explore more examples on [**GitHub**](https://github.com/trycua/cua). Happy RPA 2.0! 🚀 diff --git a/blog/lume-to-containerization.md b/blog/lume-to-containerization.md index ca74286d..e6e0f134 100644 --- a/blog/lume-to-containerization.md +++ b/blog/lume-to-containerization.md @@ -174,7 +174,7 @@ Apple's announcement confirms we're on the right path. Here's what we're looking - [Apple Containerization Framework](https://github.com/apple/containerization) - [Lume - Direct VM Management](https://github.com/trycua/cua/tree/main/libs/lume) - [Lumier - Docker Interface for VMs](https://github.com/trycua/cua/tree/main/libs/lumier) -- [Cua Cloud Sandbox](https://trycua.com) +- [Cua Cloud Sandbox](https://cua.ai) - [Join our Discord](https://discord.gg/cua-ai) --- diff --git a/blog/trajectory-viewer.md b/blog/trajectory-viewer.md index 20003708..6848381f 100644 --- a/blog/trajectory-viewer.md +++ b/blog/trajectory-viewer.md @@ -32,7 +32,7 @@ The viewer allows you to see exactly what your agent observed and how it interac ## Opening Trajectory Viewer in 3 Simple Steps -1. **Visit**: Open your browser and go to [https://www.trycua.com/trajectory-viewer](https://www.trycua.com/trajectory-viewer). +1. **Visit**: Open your browser and go to [https://cua.ai/trajectory-viewer](https://cua.ai/trajectory-viewer). 2. **Upload**: Drag and drop a trajectories folder or click Select Folder. 3. **Explore**: View your agent’s trajectories! All data stays in your browser unless you give permission otherwise. diff --git a/blog/ubuntu-docker-support.md b/blog/ubuntu-docker-support.md index 69b6b09e..774d0438 100644 --- a/blog/ubuntu-docker-support.md +++ b/blog/ubuntu-docker-support.md @@ -174,10 +174,10 @@ await computer.run() ## Links -- **Docker Provider Docs:** [https://docs.trycua.com/computers/docker](https://docs.trycua.com/computers/docker) +- **Docker Provider Docs:** [https://cua.ai/docs/computers/docker](https://cua.ai/docs/computers/docker) - **KasmVNC:** [https://github.com/kasmtech/KasmVNC](https://github.com/kasmtech/KasmVNC) - **Container Source:** [https://github.com/trycua/cua/tree/main/libs/kasm](https://github.com/trycua/cua/tree/main/libs/kasm) -- **Computer SDK:** [https://docs.trycua.com/docs/computer-sdk/computers](https://docs.trycua.com/docs/computer-sdk/computers) +- **Computer SDK:** [https://cua.ai/docs/computer-sdk/computers](https://cua.ai/docs/computer-sdk/computers) - **Discord:** [https://discord.gg/cua-ai](https://discord.gg/cua-ai) Questions or weird edge cases? Ping us on Discord—we’re curious to see what you build. diff --git a/docs/content/docs/agent-sdk/callbacks/trajectories.mdx b/docs/content/docs/agent-sdk/callbacks/trajectories.mdx index b139d9a2..7bffaa8f 100644 --- a/docs/content/docs/agent-sdk/callbacks/trajectories.mdx +++ b/docs/content/docs/agent-sdk/callbacks/trajectories.mdx @@ -37,7 +37,7 @@ agent = ComputerAgent( ## View Trajectories Online View trajectories in the browser at: -**[trycua.com/trajectory-viewer](http://trycua.com/trajectory-viewer)** +**[cua.ai/trajectory-viewer](https://cua.ai/trajectory-viewer)** The viewer provides: diff --git a/docs/content/docs/computer-sdk/computers.mdx b/docs/content/docs/computer-sdk/computers.mdx index e7437959..238c12e0 100644 --- a/docs/content/docs/computer-sdk/computers.mdx +++ b/docs/content/docs/computer-sdk/computers.mdx @@ -23,7 +23,7 @@ Cua Computers are preconfigured virtual machines running the Computer Server. Th **Easiest & safest way to get started - works on any host OS** -This is a Cloud Sandbox running the Computer Server. Get a container at [trycua.com](https://www.trycua.com/). +This is a Cloud Sandbox running the Computer Server. Get a container at [cua.ai](https://cua.ai/). diff --git a/docs/content/docs/computer-sdk/tracing-api.mdx b/docs/content/docs/computer-sdk/tracing-api.mdx index 1c47bb8a..06c889f3 100644 --- a/docs/content/docs/computer-sdk/tracing-api.mdx +++ b/docs/content/docs/computer-sdk/tracing-api.mdx @@ -310,7 +310,7 @@ agent = ComputerAgent( ) # Agent operations will be automatically traced -async for _ in agent.run("open trycua.com and navigate to docs"): +async for _ in agent.run("open cua.ai and navigate to docs"): pass # Save the combined trace diff --git a/docs/content/docs/quickstart-cli.mdx b/docs/content/docs/quickstart-cli.mdx index 19073dea..6eb43649 100644 --- a/docs/content/docs/quickstart-cli.mdx +++ b/docs/content/docs/quickstart-cli.mdx @@ -30,7 +30,7 @@ Choose how you want to run your Cua computer. **Cloud Sandbox is recommended** f **Easiest & safest way to get started - works on any host OS** - 1. Go to [trycua.com/signin](https://www.trycua.com/signin) + 1. Go to [cua.ai/signin](https://cua.ai/signin) 2. Navigate to **Dashboard > Containers > Create Instance** 3. Create a **Medium, Ubuntu 22** container 4. Note your container name and API key @@ -312,7 +312,7 @@ python -m agent.cli omniparser+ollama_chat/llama3.2:latest If you haven't set up environment variables, the CLI will guide you through the setup: -1. **Sandbox Name**: Enter your Cua sandbox name (or get one at [trycua.com](https://www.trycua.com/)) +1. **Sandbox Name**: Enter your Cua sandbox name (or get one at [cua.ai](https://cua.ai/)) 2. **CUA API Key**: Enter your Cua API key 3. **Provider API Key**: Enter your AI provider API key (OpenAI, Anthropic, etc.) diff --git a/docs/content/docs/quickstart-devs.mdx b/docs/content/docs/quickstart-devs.mdx index 9cda4a2f..e4b13bb0 100644 --- a/docs/content/docs/quickstart-devs.mdx +++ b/docs/content/docs/quickstart-devs.mdx @@ -24,7 +24,7 @@ You can run your Cua computer in the cloud (recommended for easiest setup), loca Cua Cloud Sandbox provides virtual machines that run Ubuntu. - 1. Go to [trycua.com/signin](https://www.trycua.com/signin) + 1. Go to [cua.ai/signin](https://cua.ai/signin) 2. Navigate to **Dashboard > Containers > Create Instance** 3. Create a **Medium, Ubuntu 22** sandbox 4. Note your sandbox name and API key diff --git a/examples/computer-example-ts/src/index.ts b/examples/computer-example-ts/src/index.ts index 29ff926d..119c8555 100644 --- a/examples/computer-example-ts/src/index.ts +++ b/examples/computer-example-ts/src/index.ts @@ -6,7 +6,7 @@ import 'dotenv/config'; const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); -const COMPUTER_USE_PROMPT = 'Open firefox and go to trycua.com'; +const COMPUTER_USE_PROMPT = 'Open firefox and go to cua.ai'; // Initialize the Computer Connection const computer = new Computer({ diff --git a/examples/evals/hud_eval_examples.py b/examples/evals/hud_eval_examples.py index f49d7b84..a734d71e 100644 --- a/examples/evals/hud_eval_examples.py +++ b/examples/evals/hud_eval_examples.py @@ -38,8 +38,8 @@ def load_env_or_fail() -> None: """ Build Agent Config - customize agent behavior, tool integration, callbacks, resource management, and more -- https://docs.trycua.com/docs/agent-sdk/agent-loops#parameters -- https://docs.trycua.com/docs/agent-sdk/supported-model-providers +- https://cua.ai/docs/agent-sdk/agent-loops#parameters +- https://cua.ai/docs/agent-sdk/supported-model-providers """ @@ -76,7 +76,7 @@ async def run_hud_eval() -> None: """ Customize your hud eval below, check the doc for additional params - - https://docs.trycua.com/docs/agent-sdk/integrations/hud#parameters-1 + - https://cua.ai/docs/agent-sdk/integrations/hud#parameters-1 - recommend low max steps (5-10) for testing, then max 100 for benchmarking - also select specific tasks to run by using splitting the dataset """ diff --git a/libs/lume/README.md b/libs/lume/README.md index 1ea563c9..6d1c12a7 100644 --- a/libs/lume/README.md +++ b/libs/lume/README.md @@ -55,11 +55,11 @@ To get set up with Lume for development, read [these instructions](Development.m ## Docs -- [Installation](https://trycua.com/docs/libraries/lume/installation) -- [Prebuilt Images](https://trycua.com/docs/libraries/lume/prebuilt-images) -- [CLI Reference](https://trycua.com/docs/libraries/lume/cli-reference) -- [HTTP API](https://trycua.com/docs/libraries/lume/http-api) -- [FAQ](https://trycua.com/docs/libraries/lume/faq) +- [Installation](https://cua.ai/docs/libraries/lume/installation) +- [Prebuilt Images](https://cua.ai/docs/libraries/lume/prebuilt-images) +- [CLI Reference](https://cua.ai/docs/libraries/lume/cli-reference) +- [HTTP API](https://cuai.ai/docs/libraries/lume/http-api) +- [FAQ](https://cua.ai/docs/libraries/lume/faq) ## Contributing diff --git a/libs/lumier/README.md b/libs/lumier/README.md index 61825867..456a3e71 100644 --- a/libs/lumier/README.md +++ b/libs/lumier/README.md @@ -58,14 +58,14 @@ docker run -it --rm \ After running the command above, you can access your macOS VM through a web browser (e.g., http://localhost:8006). -> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See [the documentation](https://trycua.com/docs/libraries/lumier/docker) for how to save your VM state. +> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See [the documentation](https://cua.ai/docs/libraries/lumier/docker) for how to save your VM state. ## Docs -- [Installation](https://trycua.com/docs/libraries/lumier/installation) -- [Docker](https://trycua.com/docs/libraries/lumier/docker) -- [Docker Compose](https://trycua.com/docs/libraries/lumier/docker-compose) -- [Building Lumier](https://trycua.com/docs/libraries/lumier/building-lumier) +- [Installation](https://cua.ai/docs/libraries/lumier/installation) +- [Docker](https://cua.ai/docs/libraries/lumier/docker) +- [Docker Compose](https://cua.ai/docs/libraries/lumier/docker-compose) +- [Building Lumier](https://cua.ai/docs/libraries/lumier/building-lumier) ## Credits diff --git a/libs/python/agent/README.md b/libs/python/agent/README.md index d3617fc9..1c4b1cc5 100644 --- a/libs/python/agent/README.md +++ b/libs/python/agent/README.md @@ -72,16 +72,16 @@ if __name__ == "__main__": ## Docs -- [Agent Loops](https://trycua.com/docs/agent-sdk/agent-loops) -- [Supported Agents](https://trycua.com/docs/agent-sdk/supported-agents/computer-use-agents) -- [Supported Models](https://trycua.com/docs/agent-sdk/supported-model-providers) -- [Chat History](https://trycua.com/docs/agent-sdk/chat-history) -- [Callbacks](https://trycua.com/docs/agent-sdk/callbacks) -- [Custom Tools](https://trycua.com/docs/agent-sdk/custom-tools) -- [Custom Computer Handlers](https://trycua.com/docs/agent-sdk/custom-computer-handlers) -- [Prompt Caching](https://trycua.com/docs/agent-sdk/prompt-caching) -- [Usage Tracking](https://trycua.com/docs/agent-sdk/usage-tracking) -- [Benchmarks](https://trycua.com/docs/agent-sdk/benchmarks) +- [Agent Loops](https://cua.ai/docs/agent-sdk/agent-loops) +- [Supported Agents](https://cua.ai/docs/agent-sdk/supported-agents/computer-use-agents) +- [Supported Models](https://cua.ai/docs/agent-sdk/supported-model-providers) +- [Chat History](https://cua.ai/docs/agent-sdk/chat-history) +- [Callbacks](https://cua.ai/docs/agent-sdk/callbacks) +- [Custom Tools](https://cua.ai/docs/agent-sdk/custom-tools) +- [Custom Computer Handlers](https://cua.ai/docs/agent-sdk/custom-computer-handlers) +- [Prompt Caching](https://cua.ai/docs/agent-sdk/prompt-caching) +- [Usage Tracking](https://cua.ai/docs/agent-sdk/usage-tracking) +- [Benchmarks](https://cua.ai/docs/agent-sdk/benchmarks) ## License diff --git a/libs/python/agent/agent/cli.py b/libs/python/agent/agent/cli.py index 9a98c143..dcd4544b 100644 --- a/libs/python/agent/agent/cli.py +++ b/libs/python/agent/agent/cli.py @@ -321,7 +321,7 @@ Examples: if not container_name: if args.provider == "cloud": print_colored("CUA_CONTAINER_NAME not set.", dim=True) - print_colored("You can get a CUA container at https://www.trycua.com/", dim=True) + print_colored("You can get a CUA container at https://cua.ai/", dim=True) container_name = input("Enter your CUA container name: ").strip() if not container_name: print_colored("❌ Container name is required.") diff --git a/libs/python/computer-server/README.md b/libs/python/computer-server/README.md index 5c40bdd2..567af7d4 100644 --- a/libs/python/computer-server/README.md +++ b/libs/python/computer-server/README.md @@ -40,7 +40,7 @@ Refer to this notebook for a step-by-step guide on how to use the Computer-Use S ## Docs -- [Commands](https://trycua.com/docs/libraries/computer-server/Commands) -- [REST-API](https://trycua.com/docs/libraries/computer-server/REST-API) -- [WebSocket-API](https://trycua.com/docs/libraries/computer-server/WebSocket-API) -- [Index](https://trycua.com/docs/libraries/computer-server/index) +- [Commands](https://cua.ai/docs/libraries/computer-server/Commands) +- [REST-API](https://cua.ai/docs/libraries/computer-server/REST-API) +- [WebSocket-API](https://cua.ai/docs/libraries/computer-server/WebSocket-API) +- [Index](https://cua.ai/docs/libraries/computer-server/index) diff --git a/libs/python/computer/README.md b/libs/python/computer/README.md index c19ca6c9..2cead0cc 100644 --- a/libs/python/computer/README.md +++ b/libs/python/computer/README.md @@ -68,7 +68,7 @@ Refer to this notebook for a step-by-step guide on how to use the Computer-Use I ## Docs -- [Computers](https://trycua.com/docs/computer-sdk/computers) -- [Commands](https://trycua.com/docs/computer-sdk/commands) -- [Computer UI](https://trycua.com/docs/computer-sdk/computer-ui) -- [Sandboxed Python](https://trycua.com/docs/computer-sdk/sandboxed-python) +- [Computers](https://cua.ai/docs/computer-sdk/computers) +- [Commands](https://cua.ai/docs/computer-sdk/commands) +- [Computer UI](https://cua.ai/docs/computer-sdk/computer-ui) +- [Sandboxed Python](https://cua.ai/docs/computer-sdk/sandboxed-python) diff --git a/libs/python/computer/computer/ui/gradio/app.py b/libs/python/computer/computer/ui/gradio/app.py index a297302c..9f175fb8 100644 --- a/libs/python/computer/computer/ui/gradio/app.py +++ b/libs/python/computer/computer/ui/gradio/app.py @@ -1207,7 +1207,7 @@ def create_gradio_ui(): label="Container Name", placeholder="Enter your container name", visible=False, - info="Get your container from [trycua.com](https://trycua.com/)", + info="Get your container from [cua.ai](https://cua.ai/)", ) # Check if CUA_API_KEY is set in environment diff --git a/libs/python/mcp-server/README.md b/libs/python/mcp-server/README.md index 7eddf4b7..0f8b7cfb 100644 --- a/libs/python/mcp-server/README.md +++ b/libs/python/mcp-server/README.md @@ -104,12 +104,12 @@ Expected results: ## Documentation -- Installation: https://trycua.com/docs/libraries/mcp-server/installation -- Configuration: https://trycua.com/docs/libraries/mcp-server/configuration -- Usage: https://trycua.com/docs/libraries/mcp-server/usage -- Tools: https://trycua.com/docs/libraries/mcp-server/tools -- Client Integrations: https://trycua.com/docs/libraries/mcp-server/client-integrations -- LLM Integrations: https://trycua.com/docs/libraries/mcp-server/llm-integrations +- Installation: https://cua.ai/docs/libraries/mcp-server/installation +- Configuration: https://cua.ai/docs/libraries/mcp-server/configuration +- Usage: https://cua.ai/docs/libraries/mcp-server/usage +- Tools: https://cua.ai/docs/libraries/mcp-server/tools +- Client Integrations: https://cua.ai/docs/libraries/mcp-server/client-integrations +- LLM Integrations: https://cua.ai/docs/libraries/mcp-server/llm-integrations ## Troubleshooting diff --git a/libs/typescript/computer/README.md b/libs/typescript/computer/README.md index 376734a0..782d5780 100644 --- a/libs/typescript/computer/README.md +++ b/libs/typescript/computer/README.md @@ -76,9 +76,9 @@ Refer to this example for a step-by-step guide on how to use the Computer-Use In ## Docs -- [Computers](https://trycua.com/docs/computer-sdk/computers) -- [Commands](https://trycua.com/docs/computer-sdk/commands) -- [Computer UI](https://trycua.com/docs/computer-sdk/computer-ui) +- [Computers](https://cua.ai/docs/computer-sdk/computers) +- [Commands](https://cua.ai/docs/computer-sdk/commands) +- [Computer UI](https://cua.ai/docs/computer-sdk/computer-ui) ## License diff --git a/notebooks/agent_nb.ipynb b/notebooks/agent_nb.ipynb index 02c0da0d..69959037 100644 --- a/notebooks/agent_nb.ipynb +++ b/notebooks/agent_nb.ipynb @@ -80,16 +80,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "### Prerequisites for Cloud Sandbox\n", - "\n", - "To use Cua Cloud Sandbox, you need to:\n", - "1. Sign up at https://trycua.com\n", - "2. Create a Cloud Sandbox\n", - "3. Generate an API Key\n", - "\n", - "Once you have these, you can connect to your Cloud Sandbox and run agents on it." - ] + "source": "### Prerequisites for Cloud Sandbox\n\nTo use Cua Cloud Sandbox, you need to:\n1. Sign up at https://cua.ai\n2. Create a Cloud Sandbox\n3. Generate an API Key\n\nOnce you have these, you can connect to your Cloud Sandbox and run agents on it." }, { "cell_type": "markdown", @@ -504,19 +495,14 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "All agent runs save trajectories that can be viewed at https://trycua.com/trajectory-viewer" - ] + "source": "All agent runs save trajectories that can be viewed at https://cua.ai/trajectory-viewer" }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "print(f\"Trajectories saved to: {Path('trajectories').absolute()}\")\n", - "print(\"Upload trajectory files to https://trycua.com/trajectory-viewer to visualize agent actions\")\n" - ] + "source": "print(f\"Trajectories saved to: {Path('trajectories').absolute()}\")\nprint(\"Upload trajectory files to https://cua.ai/trajectory-viewer to visualize agent actions\")\n" } ], "metadata": { @@ -540,4 +526,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/notebooks/blog/build-your-own-operator-on-macos-1.ipynb b/notebooks/blog/build-your-own-operator-on-macos-1.ipynb index 4edb1eb1..cdca7b5f 100644 --- a/notebooks/blog/build-your-own-operator-on-macos-1.ipynb +++ b/notebooks/blog/build-your-own-operator-on-macos-1.ipynb @@ -10,9 +10,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "Welcome to Part 1 of our tutorial series on building a Computer Use Automation (CUA) operator using OpenAI. For the complete guide, check out our [full blog post](https://www.trycua.com/blog/build-your-own-operator-on-macos-1)." - ] + "source": "Welcome to Part 1 of our tutorial series on building a Computer Use Automation (CUA) operator using OpenAI. For the complete guide, check out our [full blog post](https://cua.ai/blog/build-your-own-operator-on-macos-1)." }, { "cell_type": "markdown", @@ -304,4 +302,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/notebooks/blog/build-your-own-operator-on-macos-2.ipynb b/notebooks/blog/build-your-own-operator-on-macos-2.ipynb index 5cdc7210..c38ea04e 100644 --- a/notebooks/blog/build-your-own-operator-on-macos-2.ipynb +++ b/notebooks/blog/build-your-own-operator-on-macos-2.ipynb @@ -10,9 +10,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "Welcome to Part 2 of our tutorial series on building a Computer Use Automation (CUA) operator, this time using the `cua-agent` package. For the complete guide, check out our [full blog post](https://www.trycua.com/blog/build-your-own-operator-on-macos-2)." - ] + "source": "Welcome to Part 2 of our tutorial series on building a Computer Use Automation (CUA) operator, this time using the `cua-agent` package. For the complete guide, check out our [full blog post](https://cua.ai/blog/build-your-own-operator-on-macos-2)." }, { "cell_type": "markdown", @@ -176,4 +174,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/notebooks/computer_nb.ipynb b/notebooks/computer_nb.ipynb index 386b890b..db76d0f5 100644 --- a/notebooks/computer_nb.ipynb +++ b/notebooks/computer_nb.ipynb @@ -38,16 +38,7 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "### Prerequisites for Cloud Sandbox\n", - "\n", - "To use Cua Cloud Sandbox, you need to:\n", - "1. Sign up at https://trycua.com\n", - "2. Create a Cloud Sandbox\n", - "3. Generate an API Key\n", - "\n", - "Once you have these, you can connect to your Cloud Sandbox using its name." - ] + "source": "### Prerequisites for Cloud Sandbox\n\nTo use Cua Cloud Sandbox, you need to:\n1. Sign up at https://cua.ai\n2. Create a Cloud Sandbox\n3. Generate an API Key\n\nOnce you have these, you can connect to your Cloud Sandbox using its name." }, { "cell_type": "code", @@ -622,4 +613,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/notebooks/ollama_nb.ipynb b/notebooks/ollama_nb.ipynb index 3b798ed7..d0296145 100644 --- a/notebooks/ollama_nb.ipynb +++ b/notebooks/ollama_nb.ipynb @@ -236,20 +236,7 @@ "cell_type": "markdown", "id": "section-3-conceptual", "metadata": {}, - "source": [ - "## 3) Customize your agent 🛠️\n", - "\n", - "For a few customization options, see: https://docs.trycua.com/docs/agent-sdk/customizing-computeragent\n", - "\n", - "Levels of customization you can explore:\n", - "\n", - "1) Simple — Prompt engineering\n", - "2) Easy — Tools\n", - "3) Intermediate — Callbacks\n", - "4) Expert — Custom agent via `register_agent` (see `libs/python/agent/agent/decorators.py` → `register_agent`)\n", - "\n", - "or, incorporate the ComputerAgent into your own agent framework!\n" - ] + "source": "## 3) Customize your agent 🛠️\n\nFor a few customization options, see: https://cua.ai/docs/agent-sdk/customizing-computeragent\n\nLevels of customization you can explore:\n\n1) Simple — Prompt engineering\n2) Easy — Tools\n3) Intermediate — Callbacks\n4) Expert — Custom agent via `register_agent` (see `libs/python/agent/agent/decorators.py` → `register_agent`)\n\nor, incorporate the ComputerAgent into your own agent framework!" }, { "cell_type": "markdown", @@ -289,4 +276,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/notebooks/sota_hackathon.ipynb b/notebooks/sota_hackathon.ipynb index a4431f94..e840f57f 100644 --- a/notebooks/sota_hackathon.ipynb +++ b/notebooks/sota_hackathon.ipynb @@ -124,22 +124,7 @@ "id": "cd4393b0", "metadata": {}, "outputs": [], - "source": [ - "import logging\n", - "from pathlib import Path\n", - "from agent import ComputerAgent\n", - "\n", - "# Here you can set the model and tools for your agent.\n", - "# Computer use models: https://www.trycua.com/docs/agent-sdk/supported-agents/computer-use-agents\n", - "# Composed agent models: https://www.trycua.com/docs/agent-sdk/supported-agents/composed-agents\n", - "# Custom tools: https://www.trycua.com/docs/agent-sdk/custom-tools\n", - "agent_config = {\n", - " \"model\": \"openai/computer-use-preview\",\n", - " \"trajectory_dir\": str(Path(\"trajectories\")),\n", - " \"only_n_most_recent_images\": 3,\n", - " \"verbosity\": logging.INFO\n", - "}" - ] + "source": "import logging\nfrom pathlib import Path\nfrom agent import ComputerAgent\n\n# Here you can set the model and tools for your agent.\n# Computer use models: https://cua.ai/docs/agent-sdk/supported-agents/computer-use-agents\n# Composed agent models: https://cua.ai/docs/agent-sdk/supported-agents/composed-agents\n# Custom tools: https://cua.ai/docs/agent-sdk/custom-tools\nagent_config = {\n \"model\": \"openai/computer-use-preview\",\n \"trajectory_dir\": str(Path(\"trajectories\")),\n \"only_n_most_recent_images\": 3,\n \"verbosity\": logging.INFO\n}" }, { "cell_type": "markdown", @@ -233,41 +218,13 @@ "id": "6bf0887e", "metadata": {}, "outputs": [], - "source": [ - "import uuid\n", - "from pprint import pprint\n", - "from agent.integrations.hud import run_full_dataset\n", - "\n", - "job_name = f\"osworld-test-{str(uuid.uuid4())[:4]}\"\n", - "\n", - "# Full dataset evaluation (runs via HUD's run_dataset under the hood)\n", - "# See the documentation here: https://docs.trycua.com/docs/agent-sdk/integrations/hud#running-a-full-dataset\n", - "results = await run_full_dataset(\n", - " dataset=\"ddupont/OSWorld-Tiny-Public\",\n", - " job_name=job_name,\n", - " **agent_config,\n", - " max_concurrent=20,\n", - " max_steps=50,\n", - " #split=\"train[:5]\"\n", - ")\n", - "\n", - "# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\n", - "print(f\"Job: {job_name}\")\n", - "print(f\"Total results: {len(results)}\")\n", - "pprint(results[:3])" - ] + "source": "import uuid\nfrom pprint import pprint\nfrom agent.integrations.hud import run_full_dataset\n\njob_name = f\"osworld-test-{str(uuid.uuid4())[:4]}\"\n\n# Full dataset evaluation (runs via HUD's run_dataset under the hood)\n# See the documentation here: https://cua.ai/docs/agent-sdk/integrations/hud#running-a-full-dataset\nresults = await run_full_dataset(\n dataset=\"ddupont/OSWorld-Tiny-Public\",\n job_name=job_name,\n **agent_config,\n max_concurrent=20,\n max_steps=50,\n #split=\"train[:5]\"\n)\n\n# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\nprint(f\"Job: {job_name}\")\nprint(f\"Total results: {len(results)}\")\npprint(results[:3])" }, { "cell_type": "markdown", "id": "5b89a103", "metadata": {}, - "source": [ - "## 🦾 Improve your agent\n", - "\n", - "To improve your agent for OSWorld-Verified, experiment with different models and add custom tools that fit your use case. You can also dive into the ComputerAgent source code to design an improved version or subclass tailored to your needs.\n", - "\n", - "Learn more about [Customizing Your ComputerAgent](https://docs.trycua.com/docs/agent-sdk/customizing-computeragent) in the docs." - ] + "source": "## 🦾 Improve your agent\n\nTo improve your agent for OSWorld-Verified, experiment with different models and add custom tools that fit your use case. You can also dive into the ComputerAgent source code to design an improved version or subclass tailored to your needs.\n\nLearn more about [Customizing Your ComputerAgent](https://cua.ai/docs/agent-sdk/customizing-computeragent) in the docs." } ], "metadata": { @@ -283,4 +240,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/notebooks/sota_hackathon_cloud.ipynb b/notebooks/sota_hackathon_cloud.ipynb index a28c1e23..bcd50362 100644 --- a/notebooks/sota_hackathon_cloud.ipynb +++ b/notebooks/sota_hackathon_cloud.ipynb @@ -56,12 +56,7 @@ "cell_type": "markdown", "id": "47171dc3", "metadata": {}, - "source": [ - "1. Create a Cua account at https://www.trycua.com/\n", - "2. Start a small Cua sandbox at https://www.trycua.com/dashboard/containers (If you need credits, ask us!)\n", - "3. Create a HUD account at https://www.hud.so/\n", - "4. Create a .env file:" - ] + "source": "1. Create a Cua account at https://cua.ai/\n2. Start a small Cua sandbox at https://cua.ai/dashboard/containers (If you need credits, ask us!)\n3. Create a HUD account at https://www.hud.so/\n4. Create a .env file:" }, { "cell_type": "code", @@ -130,22 +125,7 @@ "id": "cd4393b0", "metadata": {}, "outputs": [], - "source": [ - "import logging\n", - "from pathlib import Path\n", - "from agent import ComputerAgent\n", - "\n", - "# Here you can set the model and tools for your agent.\n", - "# Computer use models: https://www.trycua.com/docs/agent-sdk/supported-agents/computer-use-agents\n", - "# Composed agent models: https://www.trycua.com/docs/agent-sdk/supported-agents/composed-agents\n", - "# Custom tools: https://www.trycua.com/docs/agent-sdk/custom-tools\n", - "agent_config = {\n", - " \"model\": \"openai/computer-use-preview\",\n", - " \"trajectory_dir\": str(Path(\"trajectories\")),\n", - " \"only_n_most_recent_images\": 3,\n", - " \"verbosity\": logging.INFO\n", - "}" - ] + "source": "import logging\nfrom pathlib import Path\nfrom agent import ComputerAgent\n\n# Here you can set the model and tools for your agent.\n# Computer use models: https://cua.ai/docs/agent-sdk/supported-agents/computer-use-agents\n# Composed agent models: https://cua.ai/docs/agent-sdk/supported-agents/composed-agents\n# Custom tools: https://cua.ai/docs/agent-sdk/custom-tools\nagent_config = {\n \"model\": \"openai/computer-use-preview\",\n \"trajectory_dir\": str(Path(\"trajectories\")),\n \"only_n_most_recent_images\": 3,\n \"verbosity\": logging.INFO\n}" }, { "cell_type": "markdown", @@ -161,11 +141,7 @@ "cell_type": "markdown", "id": "12b9c22c", "metadata": {}, - "source": [ - "Connect to an existing Cloud Sandbox through the Cua SDK.\n", - "\n", - "You can access the computer through VNC on the [Cua Dashboard](https://www.trycua.com/dashboard)." - ] + "source": "Connect to an existing Cloud Sandbox through the Cua SDK.\n\nYou can access the computer through VNC on the [Cua Dashboard](https://cua.ai/dashboard)." }, { "cell_type": "code", @@ -192,13 +168,7 @@ "cell_type": "markdown", "id": "87a307e3", "metadata": {}, - "source": [ - "Try running the computer use agent on a simple task.\n", - "\n", - "To view a replay of the agent's actions, upload the trajectory to the [trajectory viewer](https://www.trycua.com/trajectory-viewer).\n", - "\n", - "Trajectories are saved in the format: `trajectories/YYYY-MM-DD_computer-use-pre_XXX`." - ] + "source": "Try running the computer use agent on a simple task.\n\nTo view a replay of the agent's actions, upload the trajectory to the [trajectory viewer](https://cua.ai/trajectory-viewer).\n\nTrajectories are saved in the format: `trajectories/YYYY-MM-DD_computer-use-pre_XXX`." }, { "cell_type": "code", @@ -239,41 +209,13 @@ "id": "6bf0887e", "metadata": {}, "outputs": [], - "source": [ - "import uuid\n", - "from pprint import pprint\n", - "from agent.integrations.hud import run_full_dataset\n", - "\n", - "job_name = f\"osworld-test-{str(uuid.uuid4())[:4]}\"\n", - "\n", - "# Full dataset evaluation (runs via HUD's run_dataset under the hood)\n", - "# See the documentation here: https://docs.trycua.com/docs/agent-sdk/integrations/hud#running-a-full-dataset\n", - "results = await run_full_dataset(\n", - " dataset=\"ddupont/OSWorld-Tiny-Public\",\n", - " job_name=job_name,\n", - " **agent_config,\n", - " max_concurrent=20,\n", - " max_steps=50,\n", - " #split=\"train[:5]\"\n", - ")\n", - "\n", - "# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\n", - "print(f\"Job: {job_name}\")\n", - "print(f\"Total results: {len(results)}\")\n", - "pprint(results[:3])" - ] + "source": "import uuid\nfrom pprint import pprint\nfrom agent.integrations.hud import run_full_dataset\n\njob_name = f\"osworld-test-{str(uuid.uuid4())[:4]}\"\n\n# Full dataset evaluation (runs via HUD's run_dataset under the hood)\n# See the documentation here: https://cua.ai/docs/agent-sdk/integrations/hud#running-a-full-dataset\nresults = await run_full_dataset(\n dataset=\"ddupont/OSWorld-Tiny-Public\",\n job_name=job_name,\n **agent_config,\n max_concurrent=20,\n max_steps=50,\n #split=\"train[:5]\"\n)\n\n# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\nprint(f\"Job: {job_name}\")\nprint(f\"Total results: {len(results)}\")\npprint(results[:3])" }, { "cell_type": "markdown", "id": "5b89a103", "metadata": {}, - "source": [ - "## 🦾 Improve your agent\n", - "\n", - "To improve your agent for OSWorld-Verified, experiment with different models and add custom tools that fit your use case. You can also dive into the ComputerAgent source code to design an improved version or subclass tailored to your needs.\n", - "\n", - "Learn more about [Customizing Your ComputerAgent](https://docs.trycua.com/docs/agent-sdk/customizing-computeragent) in the docs." - ] + "source": "## 🦾 Improve your agent\n\nTo improve your agent for OSWorld-Verified, experiment with different models and add custom tools that fit your use case. You can also dive into the ComputerAgent source code to design an improved version or subclass tailored to your needs.\n\nLearn more about [Customizing Your ComputerAgent](https://cua.ai/docs/agent-sdk/customizing-computeragent) in the docs." } ], "metadata": { @@ -289,4 +231,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/scripts/playground-docker.sh b/scripts/playground-docker.sh index 27b18207..b31d93e4 100644 --- a/scripts/playground-docker.sh +++ b/scripts/playground-docker.sh @@ -117,7 +117,7 @@ if [[ "$CHOICE" == "1" ]]; then # If no valid API key found, prompt for one if [[ -z "$CUA_API_KEY" ]]; then echo "To use Cua Cloud Sandbox, you need to:" - echo "1. Sign up at https://trycua.com" + echo "1. Sign up at https://cua.ai" echo "2. Create a Cloud Sandbox" echo "3. Generate an Api Key" echo "" @@ -167,7 +167,7 @@ elif [[ "$CHOICE" == "3" ]]; then print_error "Local Windows VMs require Windows 10 or 11." echo "💡 Consider using Cua Cloud Sandbox instead (option 1)." echo "" - echo "🔗 If you are using WSL, refer to the blog post to get started: https://www.trycua.com/blog/windows-sandbox" + echo "🔗 If you are using WSL, refer to the blog post to get started: https://cua.ai/blog/windows-sandbox" exit 1 fi diff --git a/scripts/playground.sh b/scripts/playground.sh index 58bc2da2..dc3c62d2 100755 --- a/scripts/playground.sh +++ b/scripts/playground.sh @@ -62,7 +62,7 @@ if [[ "$CHOICE" == "1" ]]; then # If no valid API key found, prompt for one if [[ -z "$CUA_API_KEY" ]]; then echo "To use Cua Cloud Sandbox, you need to:" - echo "1. Sign up at https://trycua.com" + echo "1. Sign up at https://cua.ai" echo "2. Create a Cloud Sandbox" echo "3. Generate an Api Key" echo ""