OpenDots: Open-Source AI Agents with Personal Cloud Computers
OpenDots is an open-source, self-hostable framework for creating AI coworkers called Dots, each with its own isolated cloud computer, persistent document workspaces, human-in-the-loop approval, voice calls, and Slack integration, built on AG-UI protocol and TanStack AI.
Architecture and Quick Start
The entire pipeline relies on the AG-UI protocol to stream agent messages, tool calls, and state to the frontend. The model layer uses TanStack AI to connect to any OpenAI-compatible service, while CopilotKit Intelligence handles persistent conversation threads.
Getting started requires only five commands in a Node.js 24 environment:
npm ci
cp .env.example .env
npm run devThen open http://localhost:5173.
Spaces: The AI's Document Workspace
A Space is a searchable document library that supports grid/list views, nested sub-pages, and a visual editor with slash commands. It auto-saves and performs version conflict detection.
Chat and documents are bidirectional: chat output can be saved as a page with one click, and an open page can be questioned directly (e.g., "What is the second milestone in this release brief?"). Each page maintains its own independent conversation thread so contexts stay separate.
Each Dot Gets Its Own Isolated Cloud Computer
Using the companion OpenBot container service, every Dot receives an isolated cloud computer with its own browser profile, filesystem, and terminal. In chat you can say, "Open this website, summarize in two bullet points, save as markdown, then self-check," and the Dot will launch the browser, write the file, run wc -w, and stream the live screen and terminal output back into the conversation.
Permissions are configured per Dot: network access, file writes, shell execution are toggled in settings, and a human can take over at any time.
Human-in-the-Loop Approval Before Persistence
AI-generated content is not committed automatically. A built-in approval card presents the draft with Approve & save or Decline options. Only after approval is the page created and a link returned. If the connection drops, the same approval session resumes without creating duplicate pages.
Voice Calls and Slack Integration
Beyond text, Dots support WebRTC real-time voice calls with call timer, dual subtitles, mute control, and minimize-to-chat. Voice runs on a separate compute agent, so long tasks continue in the background while the call is still active. Slack integration via the Channels SDK lets users @-mention a Dot into any thread.
Source code:
https://github.com/CopilotKit/OpenDotsSigned-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
