Update notebooks for KASM Docker

This commit is contained in:
f-trycua
2025-08-26 13:05:35 +00:00
parent b54b95ac7f
commit a6406ae179
2 changed files with 539 additions and 17 deletions
+38 -13
View File
@@ -31,13 +31,7 @@
"metadata": {},
"outputs": [],
"source": [
"!pip install \"cua-agent[all]\"\n",
"\n",
"# Or install individual agent loops:\n",
"# !pip install cua-agent[openai]\n",
"# !pip install cua-agent[anthropic]\n",
"# !pip install cua-agent[uitars]\n",
"# !pip install cua-agent[omni]"
"!pip install \"cua-agent[all]\""
]
},
{
@@ -223,7 +217,38 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Option 2: Agent with Local VMs (Lume daemon)\n",
"## Option 2: KASM Local Docker Containers (cross-platform)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Before we can create an agent, we need to initialize a local computer with Docker provider."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"from pathlib import Path\n",
"\n",
"computer = Computer(\n",
" os_type=\"linux\",\n",
" provider_type=\"docker\",\n",
" image=\"trycua/cua-ubuntu:latest\",\n",
" name=\"my-cua-container\"\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Option 3: Agent with Local VMs (Lume daemon)\n",
"\n",
"For Apple Silicon Macs, run agents on local VMs with near-native performance."
]
@@ -259,7 +284,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create an agent with local VM"
"## Create an agent"
]
},
{
@@ -289,7 +314,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Run tasks on a local Lume VM"
"Run tasks on a computer:"
]
},
{
@@ -424,7 +449,7 @@
" model=\"openai/computer-use-preview\",\n",
" trajectory_dir=str(Path(\"trajectories\")),\n",
" verbosity=logging.INFO\n",
")\n"
")"
]
},
{
@@ -521,7 +546,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "cua312",
"display_name": "cua",
"language": "python",
"name": "python3"
},
@@ -535,7 +560,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
"version": "3.13.5"
}
},
"nbformat": 4,
+501 -4
View File
@@ -18,9 +18,470 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Skipping cua-computer as it is not installed.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting cua-computer[all]\n",
" Downloading cua_computer-0.4.4-py3-none-any.whl.metadata (5.8 kB)\n",
"Collecting pillow>=10.0.0 (from cua-computer[all])\n",
" Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl.metadata (9.2 kB)\n",
"Collecting websocket-client>=1.8.0 (from cua-computer[all])\n",
" Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)\n",
"Collecting websockets>=12.0 (from cua-computer[all])\n",
" Downloading websockets-15.0.1-cp313-cp313-win_amd64.whl.metadata (7.0 kB)\n",
"Collecting aiohttp>=3.9.0 (from cua-computer[all])\n",
" Downloading aiohttp-3.12.15-cp313-cp313-win_amd64.whl.metadata (7.9 kB)\n",
"Collecting cua-core<0.2.0,>=0.1.0 (from cua-computer[all])\n",
" Downloading cua_core-0.1.9-py3-none-any.whl.metadata (1.6 kB)\n",
"Collecting pydantic>=2.11.1 (from cua-computer[all])\n",
" Downloading pydantic-2.11.7-py3-none-any.whl.metadata (67 kB)\n",
"Collecting gradio>=5.23.3 (from cua-computer[all])\n",
" Downloading gradio-5.43.1-py3-none-any.whl.metadata (16 kB)\n",
"Collecting python-dotenv>=1.0.1 (from cua-computer[all])\n",
" Downloading python_dotenv-1.1.1-py3-none-any.whl.metadata (24 kB)\n",
"Collecting datasets>=3.6.0 (from cua-computer[all])\n",
" Downloading datasets-4.0.0-py3-none-any.whl.metadata (19 kB)\n",
"Collecting httpx>=0.24.0 (from cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)\n",
"Collecting posthog>=3.20.0 (from cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading posthog-6.6.1-py3-none-any.whl.metadata (6.0 kB)\n",
"Collecting aiohappyeyeballs>=2.5.0 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl.metadata (5.9 kB)\n",
"Collecting aiosignal>=1.4.0 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB)\n",
"Collecting attrs>=17.3.0 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading attrs-25.3.0-py3-none-any.whl.metadata (10 kB)\n",
"Collecting frozenlist>=1.1.1 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading frozenlist-1.7.0-cp313-cp313-win_amd64.whl.metadata (19 kB)\n",
"Collecting multidict<7.0,>=4.5 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading multidict-6.6.4-cp313-cp313-win_amd64.whl.metadata (5.4 kB)\n",
"Collecting propcache>=0.2.0 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading propcache-0.3.2-cp313-cp313-win_amd64.whl.metadata (12 kB)\n",
"Collecting yarl<2.0,>=1.17.0 (from aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading yarl-1.20.1-cp313-cp313-win_amd64.whl.metadata (76 kB)\n",
"Collecting idna>=2.0 (from yarl<2.0,>=1.17.0->aiohttp>=3.9.0->cua-computer[all])\n",
" Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n",
"Collecting filelock (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading filelock-3.19.1-py3-none-any.whl.metadata (2.1 kB)\n",
"Collecting numpy>=1.17 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl.metadata (60 kB)\n",
"Collecting pyarrow>=15.0.0 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading pyarrow-21.0.0-cp313-cp313-win_amd64.whl.metadata (3.4 kB)\n",
"Collecting dill<0.3.9,>=0.3.0 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n",
"Collecting pandas (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading pandas-2.3.2-cp313-cp313-win_amd64.whl.metadata (19 kB)\n",
"Collecting requests>=2.32.2 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)\n",
"Collecting tqdm>=4.66.3 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
"Collecting xxhash (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading xxhash-3.5.0-cp313-cp313-win_amd64.whl.metadata (13 kB)\n",
"Collecting multiprocess<0.70.17 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading multiprocess-0.70.16-py312-none-any.whl.metadata (7.2 kB)\n",
"Collecting fsspec<=2025.3.0,>=2023.1.0 (from fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=3.6.0->cua-computer[all])\n",
" Downloading fsspec-2025.3.0-py3-none-any.whl.metadata (11 kB)\n",
"Collecting huggingface-hub>=0.24.0 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading huggingface_hub-0.34.4-py3-none-any.whl.metadata (14 kB)\n",
"Requirement already satisfied: packaging in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from datasets>=3.6.0->cua-computer[all]) (25.0)\n",
"Collecting pyyaml>=5.1 (from datasets>=3.6.0->cua-computer[all])\n",
" Downloading PyYAML-6.0.2-cp313-cp313-win_amd64.whl.metadata (2.1 kB)\n",
"Collecting aiofiles<25.0,>=22.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading aiofiles-24.1.0-py3-none-any.whl.metadata (10 kB)\n",
"Collecting anyio<5.0,>=3.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading anyio-4.10.0-py3-none-any.whl.metadata (4.0 kB)\n",
"Collecting audioop-lts<1.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading audioop_lts-0.2.2-cp313-abi3-win_amd64.whl.metadata (2.0 kB)\n",
"Collecting brotli>=1.1.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl.metadata (5.6 kB)\n",
"Collecting fastapi<1.0,>=0.115.2 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading fastapi-0.116.1-py3-none-any.whl.metadata (28 kB)\n",
"Collecting ffmpy (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading ffmpy-0.6.1-py3-none-any.whl.metadata (2.9 kB)\n",
"Collecting gradio-client==1.12.1 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading gradio_client-1.12.1-py3-none-any.whl.metadata (7.1 kB)\n",
"Collecting groovy~=0.1 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading groovy-0.1.2-py3-none-any.whl.metadata (6.1 kB)\n",
"Collecting jinja2<4.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n",
"Collecting markupsafe<4.0,>=2.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl.metadata (4.1 kB)\n",
"Collecting orjson~=3.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading orjson-3.11.2-cp313-cp313-win_amd64.whl.metadata (1.2 kB)\n",
"Collecting pydub (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n",
"Collecting python-multipart>=0.0.18 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading python_multipart-0.0.20-py3-none-any.whl.metadata (1.8 kB)\n",
"Collecting ruff>=0.9.3 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading ruff-0.12.10-py3-none-win_amd64.whl.metadata (26 kB)\n",
"Collecting safehttpx<0.2.0,>=0.1.6 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading safehttpx-0.1.6-py3-none-any.whl.metadata (4.2 kB)\n",
"Collecting semantic-version~=2.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)\n",
"Collecting starlette<1.0,>=0.40.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading starlette-0.47.3-py3-none-any.whl.metadata (6.2 kB)\n",
"Collecting tomlkit<0.14.0,>=0.12.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading tomlkit-0.13.3-py3-none-any.whl.metadata (2.8 kB)\n",
"Collecting typer<1.0,>=0.12 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading typer-0.16.1-py3-none-any.whl.metadata (15 kB)\n",
"Requirement already satisfied: typing-extensions~=4.0 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from gradio>=5.23.3->cua-computer[all]) (4.14.1)\n",
"Collecting uvicorn>=0.14.0 (from gradio>=5.23.3->cua-computer[all])\n",
" Downloading uvicorn-0.35.0-py3-none-any.whl.metadata (6.5 kB)\n",
"Collecting sniffio>=1.1 (from anyio<5.0,>=3.0->gradio>=5.23.3->cua-computer[all])\n",
" Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)\n",
"Collecting certifi (from httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading certifi-2025.8.3-py3-none-any.whl.metadata (2.4 kB)\n",
"Collecting httpcore==1.* (from httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)\n",
"Collecting h11>=0.16 (from httpcore==1.*->httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)\n",
"Requirement already satisfied: python-dateutil>=2.8.2 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from pandas->datasets>=3.6.0->cua-computer[all]) (2.9.0.post0)\n",
"Collecting pytz>=2020.1 (from pandas->datasets>=3.6.0->cua-computer[all])\n",
" Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)\n",
"Collecting tzdata>=2022.7 (from pandas->datasets>=3.6.0->cua-computer[all])\n",
" Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)\n",
"Collecting annotated-types>=0.6.0 (from pydantic>=2.11.1->cua-computer[all])\n",
" Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)\n",
"Collecting pydantic-core==2.33.2 (from pydantic>=2.11.1->cua-computer[all])\n",
" Downloading pydantic_core-2.33.2-cp313-cp313-win_amd64.whl.metadata (6.9 kB)\n",
"Collecting typing-inspection>=0.4.0 (from pydantic>=2.11.1->cua-computer[all])\n",
" Downloading typing_inspection-0.4.1-py3-none-any.whl.metadata (2.6 kB)\n",
"Collecting click>=8.0.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n",
" Downloading click-8.2.1-py3-none-any.whl.metadata (2.5 kB)\n",
"Collecting shellingham>=1.3.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n",
" Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n",
"Collecting rich>=10.11.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n",
" Downloading rich-14.1.0-py3-none-any.whl.metadata (18 kB)\n",
"Requirement already satisfied: colorama in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from click>=8.0.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all]) (0.4.6)\n",
"Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all]) (1.17.0)\n",
"Collecting backoff>=1.10.0 (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading backoff-2.2.1-py3-none-any.whl.metadata (14 kB)\n",
"Collecting distro>=1.5.0 (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n",
" Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)\n",
"Collecting charset_normalizer<4,>=2 (from requests>=2.32.2->datasets>=3.6.0->cua-computer[all])\n",
" Downloading charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl.metadata (37 kB)\n",
"Collecting urllib3<3,>=1.21.1 (from requests>=2.32.2->datasets>=3.6.0->cua-computer[all])\n",
" Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)\n",
"Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n",
" Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)\n",
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all]) (2.19.2)\n",
"Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n",
" Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n",
"Downloading cua_computer-0.4.4-py3-none-any.whl (87 kB)\n",
"Downloading cua_core-0.1.9-py3-none-any.whl (5.2 kB)\n",
"Downloading aiohttp-3.12.15-cp313-cp313-win_amd64.whl (449 kB)\n",
"Downloading multidict-6.6.4-cp313-cp313-win_amd64.whl (45 kB)\n",
"Downloading yarl-1.20.1-cp313-cp313-win_amd64.whl (86 kB)\n",
"Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl (15 kB)\n",
"Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB)\n",
"Downloading attrs-25.3.0-py3-none-any.whl (63 kB)\n",
"Downloading datasets-4.0.0-py3-none-any.whl (494 kB)\n",
"Downloading dill-0.3.8-py3-none-any.whl (116 kB)\n",
"Downloading fsspec-2025.3.0-py3-none-any.whl (193 kB)\n",
"Downloading multiprocess-0.70.16-py312-none-any.whl (146 kB)\n",
"Downloading frozenlist-1.7.0-cp313-cp313-win_amd64.whl (43 kB)\n",
"Downloading gradio-5.43.1-py3-none-any.whl (59.6 MB)\n",
" ---------------------------------------- 0.0/59.6 MB ? eta -:--:--\n",
" -------------------------------------- - 57.4/59.6 MB 278.0 MB/s eta 0:00:01\n",
" --------------------------------------- 59.5/59.6 MB 277.3 MB/s eta 0:00:01\n",
" ---------------------------------------- 59.6/59.6 MB 138.5 MB/s eta 0:00:00\n",
"Downloading gradio_client-1.12.1-py3-none-any.whl (324 kB)\n",
"Downloading aiofiles-24.1.0-py3-none-any.whl (15 kB)\n",
"Downloading anyio-4.10.0-py3-none-any.whl (107 kB)\n",
"Downloading audioop_lts-0.2.2-cp313-abi3-win_amd64.whl (30 kB)\n",
"Downloading fastapi-0.116.1-py3-none-any.whl (95 kB)\n",
"Downloading groovy-0.1.2-py3-none-any.whl (14 kB)\n",
"Downloading httpx-0.28.1-py3-none-any.whl (73 kB)\n",
"Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)\n",
"Downloading huggingface_hub-0.34.4-py3-none-any.whl (561 kB)\n",
" ---------------------------------------- 0.0/561.5 kB ? eta -:--:--\n",
" --------------------------------------- 561.5/561.5 kB 18.0 MB/s eta 0:00:00\n",
"Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)\n",
"Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl (15 kB)\n",
"Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl (12.8 MB)\n",
" ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n",
" ---------------------------------------- 12.8/12.8 MB 129.9 MB/s eta 0:00:00\n",
"Downloading orjson-3.11.2-cp313-cp313-win_amd64.whl (119 kB)\n",
"Downloading pandas-2.3.2-cp313-cp313-win_amd64.whl (11.0 MB)\n",
" ---------------------------------------- 0.0/11.0 MB ? eta -:--:--\n",
" ---------------------------------------- 11.0/11.0 MB 84.1 MB/s eta 0:00:00\n",
"Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl (7.0 MB)\n",
" ---------------------------------------- 0.0/7.0 MB ? eta -:--:--\n",
" ---------------------------------------- 7.0/7.0 MB 107.0 MB/s eta 0:00:00\n",
"Downloading pydantic-2.11.7-py3-none-any.whl (444 kB)\n",
"Downloading pydantic_core-2.33.2-cp313-cp313-win_amd64.whl (2.0 MB)\n",
" ---------------------------------------- 0.0/2.0 MB ? eta -:--:--\n",
" ---------------- ----------------------- 0.8/2.0 MB 6.0 MB/s eta 0:00:01\n",
" ---------------------------------------- 2.0/2.0 MB 13.6 MB/s eta 0:00:00\n",
"Downloading PyYAML-6.0.2-cp313-cp313-win_amd64.whl (156 kB)\n",
"Downloading safehttpx-0.1.6-py3-none-any.whl (8.7 kB)\n",
"Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n",
"Downloading starlette-0.47.3-py3-none-any.whl (72 kB)\n",
"Downloading tomlkit-0.13.3-py3-none-any.whl (38 kB)\n",
"Downloading typer-0.16.1-py3-none-any.whl (46 kB)\n",
"Downloading websockets-15.0.1-cp313-cp313-win_amd64.whl (176 kB)\n",
"Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)\n",
"Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl (358 kB)\n",
"Downloading click-8.2.1-py3-none-any.whl (102 kB)\n",
"Downloading h11-0.16.0-py3-none-any.whl (37 kB)\n",
"Downloading idna-3.10-py3-none-any.whl (70 kB)\n",
"Downloading posthog-6.6.1-py3-none-any.whl (119 kB)\n",
"Downloading requests-2.32.5-py3-none-any.whl (64 kB)\n",
"Downloading charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl (107 kB)\n",
"Downloading urllib3-2.5.0-py3-none-any.whl (129 kB)\n",
"Downloading backoff-2.2.1-py3-none-any.whl (15 kB)\n",
"Downloading certifi-2025.8.3-py3-none-any.whl (161 kB)\n",
"Downloading distro-1.9.0-py3-none-any.whl (20 kB)\n",
"Downloading propcache-0.3.2-cp313-cp313-win_amd64.whl (40 kB)\n",
"Downloading pyarrow-21.0.0-cp313-cp313-win_amd64.whl (26.1 MB)\n",
" ---------------------------------------- 0.0/26.1 MB ? eta -:--:--\n",
" -------------------------------- ------- 21.0/26.1 MB 151.4 MB/s eta 0:00:01\n",
" --------------------------------------- 26.0/26.1 MB 63.3 MB/s eta 0:00:01\n",
" ---------------------------------------- 26.1/26.1 MB 50.1 MB/s eta 0:00:00\n",
"Downloading python_dotenv-1.1.1-py3-none-any.whl (20 kB)\n",
"Downloading python_multipart-0.0.20-py3-none-any.whl (24 kB)\n",
"Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)\n",
"Downloading rich-14.1.0-py3-none-any.whl (243 kB)\n",
"Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)\n",
"Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n",
"Downloading ruff-0.12.10-py3-none-win_amd64.whl (13.0 MB)\n",
" ---------------------------------------- 0.0/13.0 MB ? eta -:--:--\n",
" ---------------------------------------- 13.0/13.0 MB 143.1 MB/s eta 0:00:00\n",
"Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n",
"Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)\n",
"Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
"Downloading typing_inspection-0.4.1-py3-none-any.whl (14 kB)\n",
"Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)\n",
"Downloading uvicorn-0.35.0-py3-none-any.whl (66 kB)\n",
"Downloading websocket_client-1.8.0-py3-none-any.whl (58 kB)\n",
"Downloading ffmpy-0.6.1-py3-none-any.whl (5.5 kB)\n",
"Downloading filelock-3.19.1-py3-none-any.whl (15 kB)\n",
"Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n",
"Downloading xxhash-3.5.0-cp313-cp313-win_amd64.whl (30 kB)\n",
"Installing collected packages: pytz, pydub, brotli, xxhash, websockets, websocket-client, urllib3, tzdata, typing-inspection, tqdm, tomlkit, sniffio, shellingham, semantic-version, ruff, pyyaml, python-multipart, python-dotenv, pydantic-core, pyarrow, propcache, pillow, orjson, numpy, multidict, mdurl, markupsafe, idna, h11, groovy, fsspec, frozenlist, filelock, ffmpy, distro, dill, click, charset_normalizer, certifi, backoff, audioop-lts, attrs, annotated-types, aiohappyeyeballs, aiofiles, yarl, uvicorn, requests, pydantic, pandas, multiprocess, markdown-it-py, jinja2, httpcore, anyio, aiosignal, starlette, rich, posthog, huggingface-hub, httpx, aiohttp, typer, safehttpx, gradio-client, fastapi, cua-core, gradio, datasets, cua-computer\n",
"\n",
" ---------------------------------------- 0/70 [pytz]\n",
" ---------------------------------------- 0/70 [pytz]\n",
" ---------------------------------------- 0/70 [pytz]\n",
" --------------------------------------- 1/70 [pydub]\n",
" -- ------------------------------------- 4/70 [websockets]\n",
" -- ------------------------------------- 4/70 [websockets]\n",
" --- ------------------------------------ 6/70 [urllib3]\n",
" --- ------------------------------------ 6/70 [urllib3]\n",
" ---- ----------------------------------- 7/70 [tzdata]\n",
" ---- ----------------------------------- 7/70 [tzdata]\n",
" ---- ----------------------------------- 7/70 [tzdata]\n",
" ----- ---------------------------------- 9/70 [tqdm]\n",
" ----- ---------------------------------- 10/70 [tomlkit]\n",
" ------- -------------------------------- 13/70 [semantic-version]\n",
" -------- ------------------------------- 14/70 [ruff]\n",
" -------- ------------------------------- 14/70 [ruff]\n",
" --------- ------------------------------ 16/70 [python-multipart]\n",
" ---------- ----------------------------- 18/70 [pydantic-core]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ---------- ----------------------------- 19/70 [pyarrow]\n",
" ------------ --------------------------- 21/70 [pillow]\n",
" ------------ --------------------------- 21/70 [pillow]\n",
" ------------ --------------------------- 21/70 [pillow]\n",
" ------------ --------------------------- 21/70 [pillow]\n",
" ------------ --------------------------- 21/70 [pillow]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" ------------- -------------------------- 23/70 [numpy]\n",
" -------------- ------------------------- 26/70 [markupsafe]\n",
" --------------- ------------------------ 27/70 [idna]\n",
" ----------------- ---------------------- 30/70 [fsspec]\n",
" ----------------- ---------------------- 30/70 [fsspec]\n",
" ----------------- ---------------------- 30/70 [fsspec]\n",
" ------------------- -------------------- 34/70 [distro]\n",
" -------------------- ------------------- 35/70 [dill]\n",
" -------------------- ------------------- 36/70 [click]\n",
" --------------------- ------------------ 37/70 [charset_normalizer]\n",
" ---------------------- ----------------- 40/70 [audioop-lts]\n",
" ------------------------ --------------- 43/70 [aiohappyeyeballs]\n",
" -------------------------- ------------- 46/70 [uvicorn]\n",
" -------------------------- ------------- 46/70 [uvicorn]\n",
" --------------------------- ------------ 48/70 [pydantic]\n",
" --------------------------- ------------ 48/70 [pydantic]\n",
" --------------------------- ------------ 48/70 [pydantic]\n",
" --------------------------- ------------ 48/70 [pydantic]\n",
" --------------------------- ------------ 48/70 [pydantic]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 49/70 [pandas]\n",
" ---------------------------- ----------- 50/70 [multiprocess]\n",
" ---------------------------- ----------- 50/70 [multiprocess]\n",
" ----------------------------- ---------- 51/70 [markdown-it-py]\n",
" ----------------------------- ---------- 52/70 [jinja2]\n",
" ----------------------------- ---------- 52/70 [jinja2]\n",
" ------------------------------ --------- 53/70 [httpcore]\n",
" ------------------------------ --------- 54/70 [anyio]\n",
" -------------------------------- ------- 56/70 [starlette]\n",
" -------------------------------- ------- 56/70 [starlette]\n",
" -------------------------------- ------- 57/70 [rich]\n",
" -------------------------------- ------- 57/70 [rich]\n",
" -------------------------------- ------- 57/70 [rich]\n",
" --------------------------------- ------ 58/70 [posthog]\n",
" --------------------------------- ------ 59/70 [huggingface-hub]\n",
" --------------------------------- ------ 59/70 [huggingface-hub]\n",
" --------------------------------- ------ 59/70 [huggingface-hub]\n",
" --------------------------------- ------ 59/70 [huggingface-hub]\n",
" --------------------------------- ------ 59/70 [huggingface-hub]\n",
" ---------------------------------- ----- 60/70 [httpx]\n",
" ---------------------------------- ----- 61/70 [aiohttp]\n",
" ---------------------------------- ----- 61/70 [aiohttp]\n",
" ---------------------------------- ----- 61/70 [aiohttp]\n",
" ----------------------------------- ---- 62/70 [typer]\n",
" ------------------------------------ --- 64/70 [gradio-client]\n",
" ------------------------------------- -- 65/70 [fastapi]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 67/70 [gradio]\n",
" -------------------------------------- - 68/70 [datasets]\n",
" -------------------------------------- - 68/70 [datasets]\n",
" -------------------------------------- - 68/70 [datasets]\n",
" -------------------------------------- - 68/70 [datasets]\n",
" -------------------------------------- - 68/70 [datasets]\n",
" --------------------------------------- 69/70 [cua-computer]\n",
" --------------------------------------- 69/70 [cua-computer]\n",
" ---------------------------------------- 70/70 [cua-computer]\n",
"\n",
"Successfully installed aiofiles-24.1.0 aiohappyeyeballs-2.6.1 aiohttp-3.12.15 aiosignal-1.4.0 annotated-types-0.7.0 anyio-4.10.0 attrs-25.3.0 audioop-lts-0.2.2 backoff-2.2.1 brotli-1.1.0 certifi-2025.8.3 charset_normalizer-3.4.3 click-8.2.1 cua-computer-0.4.4 cua-core-0.1.9 datasets-4.0.0 dill-0.3.8 distro-1.9.0 fastapi-0.116.1 ffmpy-0.6.1 filelock-3.19.1 frozenlist-1.7.0 fsspec-2025.3.0 gradio-5.43.1 gradio-client-1.12.1 groovy-0.1.2 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.34.4 idna-3.10 jinja2-3.1.6 markdown-it-py-4.0.0 markupsafe-3.0.2 mdurl-0.1.2 multidict-6.6.4 multiprocess-0.70.16 numpy-2.3.2 orjson-3.11.2 pandas-2.3.2 pillow-11.3.0 posthog-6.6.1 propcache-0.3.2 pyarrow-21.0.0 pydantic-2.11.7 pydantic-core-2.33.2 pydub-0.25.1 python-dotenv-1.1.1 python-multipart-0.0.20 pytz-2025.2 pyyaml-6.0.2 requests-2.32.5 rich-14.1.0 ruff-0.12.10 safehttpx-0.1.6 semantic-version-2.10.0 shellingham-1.5.4 sniffio-1.3.1 starlette-0.47.3 tomlkit-0.13.3 tqdm-4.67.1 typer-0.16.1 typing-inspection-0.4.1 tzdata-2025.2 urllib3-2.5.0 uvicorn-0.35.0 websocket-client-1.8.0 websockets-15.0.1 xxhash-3.5.0 yarl-1.20.1\n"
]
}
],
"source": [
"!pip uninstall -y cua-computer\n",
"!pip install \"cua-computer[all]\""
@@ -165,7 +626,43 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Option 2: Local VMs (Lume daemon)\n",
"## Option 2: KASM Local Docker Containers (cross-platform)\n",
"\n",
"### Pull from Docker Hub\n",
"```bash\n",
"docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest\n",
"```\n",
"\n",
"### Or build locally\n",
"```bash\n",
"cd libs/kasm\n",
"docker build -t cua-ubuntu:latest .\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from computer import Computer\n",
"\n",
"computer = Computer(\n",
" os_type=\"linux\",\n",
" provider_type=\"docker\",\n",
" image=\"trycua/cua-ubuntu:latest\",\n",
" name=\"my-cua-container\"\n",
")\n",
"\n",
"await computer.run() # Launch & connect to Docker container"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Option 3: Local VMs (Lume daemon)\n",
"\n",
"For Apple Silicon Macs, you can run VMs locally using the Lume daemon."
]
@@ -590,7 +1087,7 @@
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"display_name": "cua",
"language": "python",
"name": "python3"
},