DEV Community

David Díaz
David Díaz

Posted on Originally published at blog.daviddh.dev

OpenDots Packages Persistent Agents for Chat, Calls and Slack

OpenDots is a public, MIT-licensed template for building persistent AI “coworkers” that can work through documents, text chat, voice calls and Slack. For developers, the important constraint is that it is not a hosted agent product: teams run the application, configure its infrastructure and connect the external services that make conversations, calls and computer tools work. OpenDots repository

The project organizes work around Spaces and specialist “Dots.” A Dot can receive a name, role instructions and permitted tools, while its access can span multiple Spaces. Pages live in the local workspace database and support a searchable library, a visual editor, autosave, revision checks and page-specific conversations. OpenDots repository

Agent work with explicit approval points

OpenDots includes two notable controls for agent actions. A Dot can present a draft through a human-in-the-loop card, where approval creates a page in an authorized Space; changing the draft requires a new review. For MCP-connected tools, read-only tools run directly, while other tools pause for an Approve & run decision in chat. Tool availability can also be enabled or disabled for each Dot. OpenDots repository

The template can also attach a separate computer to each Dot through OpenBot’s container supervisor and computer service. Its browser profile and workspace files persist across stops and starts, and the interface exposes browser control, files, terminal output and human takeover. The repository is explicit that an unconfigured template does not execute commands on the host. OpenDots repository

For communications, the project describes continuous text conversations, voice calls that pair realtime speech with a separate compute agent, and a Slack integration built with Channels SDK. Calls and longer-running work share the same conversation context and tool permissions, according to the project documentation. OpenDots repository

The deployment boundary is the product boundary

A developer can create Spaces, write pages and configure Dots locally before connecting services. Chatting requires an Intelligence project and a model configuration; calls additionally require a speech provider, while Slack and computer features need their respective setup. The architecture uses AG-UI between the application and agent interface, plus CopilotKit components and runtime, TanStack AI, Threads, and Channels SDK for Slack. OpenDots repository

That distinction matters because OpenDots separates local workspace data from conversational and provider data. Pages, workspace metadata and thread bindings are stored in SQLite, but conversation messages, tool calls and run events are persisted in the configured Intelligence deployment. In the hosted configuration, those records go to CopilotKit’s cloud; the configured model provider receives conversation context, including authorized page content and tool results. OpenDots repository

Public-web research has another boundary: queries and selected URLs go to Parallel by default unless WEB_SEARCH_PROVIDER=disabled is set. Speech and messaging integrations send data to their configured providers when used. The repository also documents telemetry opt-outs through COPILOTKIT_TELEMETRY_DISABLED=true or DO_NOT_TRACK=1. OpenDots repository

Analysis: OpenDots’ useful contribution is not a claim that agents can safely operate unattended; it is the attempt to make the intervention points visible in the application: per-Dot permissions, approval cards, isolated computer services and explicit provider configuration. The unresolved trade-off is operational rather than cosmetic. A team that wants persistent agents across documents, Slack, voice and browser tasks must also own the integration surface, permission design and data flows that those channels introduce. The repository’s own separation of local page storage, conversation persistence and external provider traffic makes that responsibility hard to ignore. OpenDots repository

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.