https://github.com/cyberdesk-hq/cyberdesk
Open source virtual desktops for AI agents
https://github.com/cyberdesk-hq/cyberdesk
ai-agents computer-use fastapi hono kubernetes nextjs terraform virtual-machine
Last synced: about 2 months ago
JSON representation
Open source virtual desktops for AI agents
- Host: GitHub
- URL: https://github.com/cyberdesk-hq/cyberdesk
- Owner: cyberdesk-hq
- License: apache-2.0
- Created: 2025-04-10T20:46:29.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-05-13T22:42:35.000Z (about 2 months ago)
- Last Synced: 2025-05-14T00:31:32.773Z (about 2 months ago)
- Topics: ai-agents, computer-use, fastapi, hono, kubernetes, nextjs, terraform, virtual-machine
- Language: JavaScript
- Homepage: https://cyberdesk.io
- Size: 19.1 MB
- Stars: 43
- Watchers: 0
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - cyberdesk-hq/cyberdesk - Open source virtual desktops for AI agents (JavaScript)
README
![]()
The open source infra for virtual desktop orchestration, tailored for computer agents
![]()
A computer agent operating a Cyberdesk virtual desktop from a user prompt---
## π Quick Start
### TypeScript
```bash
npm install cyberdesk
``````typescript
import { createCyberdeskClient } from 'cyberdesk';const cyberdesk = createCyberdeskClient({ apiKey: 'YOUR_API_KEY' });
const launchResult = await cyberdesk.launchDesktop({ body: { timeout_ms: 10000 } });
const desktopId = launchResult.id;// Take a screenshot
const screenshot = await cyberdesk.executeComputerAction({
path: { id: desktopId },
body: { type: 'screenshot' }
});// Left click at (100, 150)
await cyberdesk.executeComputerAction({
path: { id: desktopId },
body: { type: 'click_mouse', x: 100, y: 150, button: 'left' }
});
```### Python
```bash
pip install cyberdesk
``````python
from cyberdesk import CyberdeskClient
from cyberdesk.actions import click_mouse, screenshot, ClickMouseButtonclient = CyberdeskClient(api_key="YOUR_API_KEY")
result = client.launch_desktop(timeout_ms=10000)
desktop_id = result.id# Take a screenshot
screenshot_action = screenshot()
screenshot_result = client.execute_computer_action(desktop_id, screenshot_action)# Left click at (100, 150)
click_action = click_mouse(x=100, y=150, button=ClickMouseButton.LEFT)
client.execute_computer_action(desktop_id, click_action)
```π For more details and advanced usage, see the [Quickstart Guide](https://docs.cyberdesk.io/docs/quickstart) and [Official Documentation](#-official-documentation).
---
## β¨ Features
π Fast Launch
Spin up virtual desktops in seconds, ready for automation or remote use.
π±οΈ Full Automation
Control mouse, keyboard, and moreβperfect for computer agents.
π₯οΈ Cloud Native
Runs on AKS, or self-hosted on your own infrastructure.
π Secure & Auditable
Session logs, API keys, and enterprise-grade security.
π§© Type-Safe SDKs
Official Python & TypeScript SDKs with full type hints.
π€ AI-Ready
Tailor built for the next generation of computer use agents
---
## π Official Documentation
- [Quickstart Guide](https://docs.cyberdesk.io/docs/quickstart)
- [API Reference](https://docs.cyberdesk.io/docs/api-reference)
- [TypeScript SDK](sdks/ts-sdk/README.md)
- [Python SDK](sdks/py-sdk/README.md)---
## π οΈ Project Structure
### /apps
- **web**: Landing page and dashboard ([README](apps/web/README.md))
- **api**: Developer-facing API ([README](apps/api/README.md))
- **docs**: Documentation site ([README](apps/docs/README.md))### /services
- **cyberdesk-operator**: Kubernetes operator for managing Cyberdesk Custom Resources, and starting/stopping Kubevirt virtual machines ([README](services/cyberdesk-operator/README.md))
- **gateway**: HTTP service that proxies requests to the Kubevirt API, and routes them to the correct virtual machine ([README](services/gateway/README.md))### /sdks
- **ts-sdk**: TypeScript SDK ([README](sdks/ts-sdk/README.md))
- **py-sdk**: Python SDK ([README](sdks/py-sdk/README.md))### /infrastructure
- **terraform**: AKS Cluster Setup (Terraform) ([README](infrastructure/README.md))
- **kubernetes**: Kubernetes resources for the Cyberdesk operator---
## π€ Contributing
We welcome contributions!
- Join the [Discord](https://discord.gg/ws5ddx5yZ8) for discussion and support
- Get a personal 1-1 walkthrough of how to self host the project by contacting us on [Discord](https://discord.gg/ws5ddx5yZ8)---
## π£ Community & Support
- [Discord](https://discord.gg/ws5ddx5yZ8) for help and chat
- [Good First Issues](https://github.com/cyberdesk-hq/cyberdesk/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
- [Open an Issue](https://github.com/cyberdesk-hq/cyberdesk/issues)---
## π‘ Philosophy
> At **Cyberdesk** our mission is to make building computer agents as easy as playing with legos. We believe in open, simple, and extensible tools for the new generation of developers: *computer agent developers*.
---
## π License
Apache License 2.0. See [LICENSE](LICENSE).
---
Made with β€οΈ by the Cyberdesk Team