{"slug": "omarchy-desktops-on-cua-cloud-fleets", "title": "Omarchy Desktops on Cua Cloud Fleets", "summary": "Cua Fleet now supports provisioning amd64 Omarchy desktops as KubeVirt containerDisks, controlled via the Cua Sandbox SDK version 0.4.3, with the guest running Hyprland and exposing the cua-computer-server API and Cua Driver MCP service. The guide requires Python >=3.11,<3.14, uv, and cua-sandbox==0.4.3, and uses an immutable image digest that passed two fresh Fleet claims with screenshot, shell, mouse, keyboard, clipboard, window discovery, and workspace hotkey checks.", "body_md": "# Run Omarchy on Fleet\n\nProvision an amd64 Omarchy desktop on Cua Fleet and control it with the Cua Sandbox SDK.\n\nUse the Cua Sandbox SDK to provision an amd64 Omarchy desktop on\n[Cua Fleet](/docs/tutorials/your-first-cloud-fleet). Fleet runs the Omarchy system\nas a KubeVirt `containerDisk`\n\n; the guest starts Hyprland and exposes both the\n`cua-computer-server`\n\nAPI and the Cua Driver MCP service.\n\nThis guide is for the amd64 Fleet image. The [Omarchy on Apple Silicon\nguide](/docs/how-to-guides/lume/run-omarchy-arm64) builds a separate ARM64 VM for local Lume use and\ndoes not run on Fleet.\n\nUse an immutable image digest. The example digest below passed two fresh Fleet claims with\nscreenshot, shell, mouse, keyboard, clipboard, window discovery, and workspace hotkey checks.\nFleet admission and image availability must be enabled for your account before a claim can start.\nDo not replace the digest with `latest`\n\nin production automation.\n\n## Before you start[#](#before-you-start)\n\nYou need:\n\n- Python\n`>=3.11,<3.14`\n\n; ;`uv`\n\n`cua-sandbox==0.4.3`\n\n; and- a Fleet access token or OAuth client credentials that can manage pools.\n\nThe Fleet-verified image reference is:\n\nThe image is an amd64 KubeVirt containerDisk. It is not an ordinary OCI\napplication image: the image contains a bootable disk at `/disk/disk.img`\n\n.\nFleet pulls the approved image with its registry credentials, so you do not\nneed AWS credentials on the machine that runs this script.\n\n## Authenticate with Fleet[#](#authenticate-with-fleet)\n\nThe SDK connects to `https://run.cua.ai`\n\nby default. Export one supported\ncredential set before running the example:\n\nOr use OAuth client credentials:\n\nKeep credentials in your shell environment or a secret manager. Do not put them in the image definition or commit them to source control.\n\nChoose a globally unique, lowercase DNS-label pool name:\n\n## Provision and claim an Omarchy desktop[#](#provision-and-claim-an-omarchy-desktop)\n\nSave this script as `run_omarchy_fleet.py`\n\n:\n\nRun the script:\n\n`Pool.apply()`\n\ncreates or reconciles the named pool and its template. The\n`server`\n\nservice on port `8000`\n\ncarries screenshot, shell, keyboard, mouse, and\nclipboard operations. The `mcp`\n\nservice on port `3000`\n\ncarries the Cua Driver\nMCP endpoint at `/mcp`\n\nfor an MCP client.\n\nThe pool name is globally unique across Cua accounts. If the name is already in use, choose another name and run the script again:\n\n## View the desktop[#](#view-the-desktop)\n\nThe Fleet transport in `cua-sandbox==0.4.3`\n\ndoes not expose a browser or VNC\ndisplay URL. Use `sandbox.screenshot()`\n\nto inspect the desktop and the mouse,\nkeyboard, shell, clipboard, and window interfaces to control it. The image's\nWayVNC process is for image diagnostics and is not part of the public Fleet\nservice contract.\n\n## Connect an MCP client[#](#connect-an-mcp-client)\n\nThe claim exposes the Cua Driver MCP service as the named Fleet service\n`mcp`\n\n. Use the SDK service interface while the claim is active:\n\nFor a complete MCP client, use the [Cua Driver MCP tool reference](/docs/reference/cua-driver/mcp-tools)\nand keep the authenticated Fleet claim alive for the duration of the client\nsession.\n\n## Keep or delete the pool[#](#keep-or-delete-the-pool)\n\nThe example sets a six-hour creation-age TTL and deletes the pool in `finally`\n\n.\nThat is a good default for jobs and CI. If you want a reusable warm pool, omit\nthe `finally`\n\ndeletion and release only the claim; delete the pool explicitly\nwhen you are finished:\n\nDeleting the pool removes its template and sandboxes. Save screenshots or files that you need before the claim and pool are deleted.\n\n## Troubleshoot startup[#](#troubleshoot-startup)\n\n**HTTP 403 during** confirm the image repository is included in Fleet admission policy and that your credentials can create a pool in the selected namespace.`Pool.apply()`\n\n:**Claim timeout:** verify that the image is an amd64 KubeVirt containerDisk, the image reference includes the exact digest, and the`server`\n\nservice is configured on port`8000`\n\n.**Black or empty screenshot:** check the image's unattended Hyprland boot and the`cua-computer-server`\n\nservice before debugging the Fleet transport.**MCP connection failure:** claim the sandbox with the`mcp`\n\nservice exposed on port`3000`\n\nand send requests to`/mcp`\n\nthrough`sandbox.services`\n\n.\n\nFor local Omarchy development and ARM64 compatibility notes, see [Run Omarchy on\nApple Silicon](/docs/how-to-guides/lume/run-omarchy-arm64).", "url": "https://wpnews.pro/news/omarchy-desktops-on-cua-cloud-fleets", "canonical_source": "https://cua.ai/docs/how-to-guides/sandbox/run-omarchy-on-cloud-fleet", "published_at": "2026-08-28 18:35:17+00:00", "updated_at": "2026-08-28 18:48:15.349575+00:00", "lang": "en", "topics": ["ai-infrastructure", "ai-tools", "developer-tools"], "entities": ["Cua Fleet", "Cua Sandbox SDK", "Omarchy", "KubeVirt", "Hyprland", "Cua Driver MCP", "WayVNC"], "alternates": {"html": "https://wpnews.pro/news/omarchy-desktops-on-cua-cloud-fleets", "markdown": "https://wpnews.pro/news/omarchy-desktops-on-cua-cloud-fleets.md", "text": "https://wpnews.pro/news/omarchy-desktops-on-cua-cloud-fleets.txt", "jsonld": "https://wpnews.pro/news/omarchy-desktops-on-cua-cloud-fleets.jsonld"}}