Agent orchestration and workspaces

CopilotKit/

OpenDots

Open-source template for persistent AI agents with their own computers, chat, calls, and Slack, built on CopilotKit and AG-UI.

What’s new here

Each Dot can be given its own browser profile, file storage, and shell that survive a restart, once you build and connect the OpenBot computer services. The template also wires human-in-the-loop approval into the conversation itself: a Dot pauses and waits for your explicit go-ahead before saving a page or running a non-read-only MCP tool. That approval flow is built on CopilotKit’s AG-UI protocol, so the live browser view, file output, and terminal stream appear inline in chat as the agent works.

What it does

OpenDots is a TypeScript template you clone, configure, and run yourself. It ships with:

  • Spaces and pages. A document workspace with a visual editor, slash commands, autosave, and revision checks. Pages live in a local SQLite database; each page gets its own conversation thread.
  • Specialist Dots. Named agents with configurable roles, instructions, and tool permissions. You can restrict each Dot to specific Spaces and specific MCP servers.
  • Per-Dot computers. Each Dot can have an isolated browser, file workspace, and shell through OpenBot’s container supervisor. This needs Docker and the services built as described in docs/COMPUTERS.md, and the capabilities start disabled. Credentials stay server-side; each Dot gets a derived credential.
  • Voice calls. WebRTC realtime speech paired with a separate compute agent. The call and chat share conversation context and tool permissions.
  • Slack integration. Mention a Dot in a channel via the Channels SDK; the conversation continues in thread.
  • Background work. Scheduled server-side turns that retry on interruption after your review.
  • MCP connections. Per-Dot MCP servers with per-tool on/off switches. Any non-read-only tool requires an Approve & run card in chat.

Who it’s for

Teams or solo builders who want a starting point for an agent workspace they control, not a hosted product. You need to supply a model provider (OpenAI-compatible), a CopilotKit Intelligence project for conversation persistence (hosted or local Docker), and optionally a speech provider for calls. The README is clear that this is alpha-stage and single-owner: shared editing, file uploads, and multi-Dot delegation are listed as further work, not current features.

Try it

Requires Node.js 24 and npm:

git clone https://github.com/CopilotKit/OpenDots.git
cd OpenDots
npm ci
cp .env.example .env
npm run dev

Open http://127.0.0.1:5173. You can create Spaces and write pages before connecting any services. To enable chat, connect an Intelligence project:

npx copilotkit@latest login
npx copilotkit@latest project select

Then add OPENAI_API_KEY and OPENAI_MODEL to .env and restart npm run dev. The README warns specifically: do not run copilotkit onboard in this folder.

How mature is it

Created September 29, 2026; last pushed October 10, 2026. Status badge says alpha. No releases yet. 4,789 stars, 677 forks, 19 contributors, 53 commits in the last 90 days. 63 open issues and pull requests. MIT license. Several features, including Slack compute delegation and Automatic Learning cloud delivery, still need connected-service verification per the README.