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.

PaperAgent
PaperAgent
PaperAgent
OpenDots: Open-Source AI Agents with Personal Cloud Computers

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.

Architecture diagram
Architecture diagram

Getting started requires only five commands in a Node.js 24 environment:

npm ci
cp .env.example .env
npm run dev

Then 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.

Space document library
Space document library

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.

Space workspace
Space workspace

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.

Dot operating its own computer
Dot operating its own computer

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.

Human approval card
Human approval card

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.

Voice call interface
Voice call interface

Source code:

https://github.com/CopilotKit/OpenDots
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

AI Agentsopen sourceWebRTChuman-in-the-loopTanStack AISlack integrationAG-UI protocolOpenDots
PaperAgent
Written by

PaperAgent

Daily updates, analyzing cutting-edge AI research papers

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.