diff --git a/docs/content/docs/get-started/quickstart.mdx b/docs/content/docs/get-started/quickstart.mdx index 86874f22..afb29c03 100644 --- a/docs/content/docs/get-started/quickstart.mdx +++ b/docs/content/docs/get-started/quickstart.mdx @@ -147,6 +147,7 @@ Connect to your Cua computer and perform basic interactions, such as taking scre ```python import os from computer import Computer + import asyncio os.environ["CUA_API_KEY"] = "sk_cua-api01_..." @@ -155,42 +156,117 @@ Connect to your Cua computer and perform basic interactions, such as taking scre provider_type="cloud", name="your-sandbox-name" # from CLI or website ) - await computer.run() # Connect to the sandbox + + async def main(): + await computer.run() # Connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox + + try: + # Take a screenshot of the computer's current display + screenshot = await computer.interface.screenshot() + # Simulate a left-click at coordinates (100, 100) + await computer.interface.left_click(100, 100) + # Type "Hello!" into the active application + await computer.interface.type_text("Hello!") + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` ```python from computer import Computer + import asyncio computer = Computer( os_type="linux", provider_type="docker", image="trycua/cua-xfce:latest" # or "trycua/cua-ubuntu:latest" ) - await computer.run() # Launch & connect to the sandbox + + async def main(): + await computer.run() # Launch & connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox + + try: + # Take a screenshot of the computer's current display + screenshot = await computer.interface.screenshot() + # Simulate a left-click at coordinates (100, 100) + await computer.interface.left_click(100, 100) + # Type "Hello!" into the active application + await computer.interface.type_text("Hello!") + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` ```python from computer import Computer + import asyncio computer = Computer( os_type="macos", provider_type="lume", name="macos-sequoia-cua:latest" ) - await computer.run() # Launch & connect to the sandbox + + async def main(): + await computer.run() # Launch & connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox + + try: + # Take a screenshot of the computer's current display + screenshot = await computer.interface.screenshot() + # Simulate a left-click at coordinates (100, 100) + await computer.interface.left_click(100, 100) + # Type "Hello!" into the active application + await computer.interface.type_text("Hello!") + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` ```python from computer import Computer + import asyncio computer = Computer( os_type="windows", provider_type="windows_sandbox" ) - await computer.run() # Launch & connect to the sandbox + + async def main(): + await computer.run() # Launch & connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox + + try: + # Take a screenshot of the computer's current display + screenshot = await computer.interface.screenshot() + # Simulate a left-click at coordinates (100, 100) + await computer.interface.left_click(100, 100) + # Type "Hello!" into the active application + await computer.interface.type_text("Hello!") + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` @@ -203,26 +279,32 @@ Connect to your Cua computer and perform basic interactions, such as taking scre Then, use the `Computer` object to connect: ```python from computer import Computer + import asyncio computer = Computer(use_host_computer_server=True) - await computer.run() # Connect to the host desktop + + async def main(): + await computer.run() # Connect to the host desktop + # Alternative: If your computer server is not running, use start() instead: + # await computer.start() # Start and connect to the host desktop + + try: + # Take a screenshot of the computer's current display + screenshot = await computer.interface.screenshot() + # Simulate a left-click at coordinates (100, 100) + await computer.interface.left_click(100, 100) + # Type "Hello!" into the active application + await computer.interface.type_text("Hello!") + finally: + await computer.disconnect() + # Alternative: If you want to fully stop everything, use stop() instead: + # await computer.stop() # Fully stop and disconnect + + asyncio.run(main()) ``` - Once connected, you can perform interactions: - ```python - try: - # Take a screenshot of the computer's current display - screenshot = await computer.interface.screenshot() - # Simulate a left-click at coordinates (100, 100) - await computer.interface.left_click(100, 100) - # Type "Hello!" into the active application - await computer.interface.type_text("Hello!") - finally: - await computer.close() - ``` - @@ -316,7 +398,7 @@ Connect to your Cua computer and perform basic interactions, such as taking scre // Type "Hello!" into the active application await computer.interface.typeText("Hello!"); } finally { - await computer.close(); + await computer.disconnect(); } ``` @@ -349,22 +431,42 @@ Choose how you want to access vision-language models for your agent: **Use the agent with CUA models:** ```python import os + import asyncio + from computer import Computer from agent import ComputerAgent os.environ["CUA_API_KEY"] = "sk_cua-api01_..." - agent = ComputerAgent( - model="cua/anthropic/claude-sonnet-4.5", # CUA-routed model - tools=[computer], - max_trajectory_budget=5.0 + computer = Computer( + os_type="linux", # or "windows" or "macos" + provider_type="cloud", + name="your-sandbox-name" # from CLI or website ) - messages = [{"role": "user", "content": "Take a screenshot and tell me what you see"}] + async def main(): + await computer.run() # Connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox - async for result in agent.run(messages): - for item in result["output"]: - if item["type"] == "message": - print(item["content"][0]["text"]) + try: + agent = ComputerAgent( + model="cua/anthropic/claude-sonnet-4.5", # CUA-routed model + tools=[computer], + max_trajectory_budget=5.0 + ) + + messages = [{"role": "user", "content": "Take a screenshot and tell me what you see"}] + + async for result in agent.run(messages): + for item in result["output"]: + if item["type"] == "message": + print(item["content"][0]["text"]) + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` **Available CUA models:** @@ -386,6 +488,8 @@ Choose how you want to access vision-language models for your agent: **Use the agent with your provider:** ```python import os + import asyncio + from computer import Computer from agent import ComputerAgent # Set your provider API key @@ -393,18 +497,36 @@ Choose how you want to access vision-language models for your agent: # OR os.environ["OPENAI_API_KEY"] = "sk-..." # For OpenAI - agent = ComputerAgent( - model="anthropic/claude-sonnet-4-5-20250929", # Direct provider model - tools=[computer], - max_trajectory_budget=5.0 + computer = Computer( + os_type="linux", # or "windows" or "macos" + provider_type="cloud", + name="your-sandbox-name" # from CLI or website ) - messages = [{"role": "user", "content": "Take a screenshot and tell me what you see"}] + async def main(): + await computer.run() # Launch & connect to the sandbox + # Alternative: If your VM is not running, use start() instead: + # await computer.start() # Start and connect to the sandbox - async for result in agent.run(messages): - for item in result["output"]: - if item["type"] == "message": - print(item["content"][0]["text"]) + try: + agent = ComputerAgent( + model="anthropic/claude-sonnet-4-5-20250929", # Direct provider model + tools=[computer], + max_trajectory_budget=5.0 + ) + + messages = [{"role": "user", "content": "Take a screenshot and tell me what you see"}] + + async for result in agent.run(messages): + for item in result["output"]: + if item["type"] == "message": + print(item["content"][0]["text"]) + finally: + await computer.disconnect() + # Alternative: If you want to fully stop the VM, use stop() instead: + # await computer.stop() # Fully stop VM and disconnect + + asyncio.run(main()) ``` **Supported providers:**