Examples in other languages
Agent-app examples on Cua Spaces in TypeScript, Rust (Tauri) and Swift: named bots, each working on a Space you watch live.
Agent-app examples on Cua Spaces in TypeScript, Rust (Tauri) and Swift: named bots, each working on a Space you watch live.
Cua Bots is the featured example, in SwiftUI. The OpenKoalaBots samples build a smaller agent app three times, in TypeScript, Rust (Tauri) and Swift, so you can start from the language you ship in. Each one runs named bots as long-lived agent threads on a shared Space, streams the Space's desktop next to the thread, sends files into it and runs routines.

| Language | Sample | Built on |
|---|---|---|
| TypeScript | samples/openkoalabot-example-ts | A Node server and web UI on @trycua/cua |
| Rust (Tauri) | samples/openkoalabot-example-tauri | A Tauri 2 app on the cua-spaces crate |
| Swift | samples/openkoalabot-example-swift | A SwiftUI app on Cua and CuaSpaces |
All three pass one headless test, samples/openkoalabot-example-scenario.
From a clone of trycua/cua. The samples build the cua SDK from source, so you need Rust.
(cd libs/cua && cargo build --release -p cua-sdk)
(cd libs/cua/typescript && npm ci && npm run stage:uniffi && npm run build && npm run build:browser)
cd samples/openkoalabot-example-ts
npm ci && npm run build && npm run build:web
npm run serve # open the URL it printsEach app needs a Space: create one with New Space, or add one by address.
| Part | Guide |
|---|---|
| Create, add and delete a Space | Add a Space |
| Live desktop and presence | Stream a desktop |
| File attachments | Send files |
| Session teleport | Teleport an app |
| Bots as agent threads | Use from an agent |