Fouad Salkini
Fouad SalkiniTech Lead & Architect
Published on 2026-10-28 18:00•7 views•Part 53 of Autonomous Engineering Systems

OpenDuet vs Claude Duet and OpenAI dots: Control, Convenience and the Real Trade-offs

OpenDuet brings proactive-agent workflows to an open-source, self-hostable template. Compare it with Anthropic's Claude Duet and OpenAI dots: model choice, external memory services, approvals, privacy, operating costs and what a pinned-source review and 26 offline checks actually verified.

#AI Agents#OpenDuet#Claude Duet#OpenAI#Open Source#Security
OpenDuet vs Claude Duet and OpenAI dots: Control, Convenience and the Real Trade-offs

Do you want an assistant that keeps working between messages—or a foundation you can change and operate yourself? Those are different purchases, even when the demos look similar.

OpenDuet is CopilotKit’s early open-source template for proactive agents, built on OpenBot. It combines ongoing conversations, connected applications, task execution and approval controls. It is a real application, not just a prompt. It is also not a turnkey replacement with proven feature or safety parity against the managed products. [1][2]

First, a naming correction: Claude Duet is Anthropic’s product. OpenAI’s comparable offering is called dots. OpenDuet is a separate CopilotKit project; the reviewed evidence does not make it an official open-source edition of either proprietary service. [1][3][4]

Checked 28 October 2026. I reviewed OpenDuet at commit 60fd4c71d9d82e13739dce00827278154d13c947 and compared first-party product documentation. I also reproduced 26 offline actual-source checks, with synthetic model responses. I did not deploy any of these services, connect accounts or conduct a head-to-head performance benchmark.

What all three are trying to do

The shared idea goes beyond a chatbot: keep context, read permitted connected information, take on work that lasts longer than one reply, and involve you when a decision needs authorization. [1][3][4]

Useful scenarios include preparing for meetings, organizing important messages, researching a project, drafting follow-ups and building an internal tool. But “proactive” should not mean unlimited permission to send, spend or change accounts.

The decisive questions are who operates the system, where context lives, which actions are permitted and how you can inspect or change those boundaries.

OpenDuet: a customizable starting point, not an offline appliance

The reviewed implementation provides a web application, server-side policy and approvals, connected-tool gateways and per-Bot computer environments. OpenDuet’s assistant-specific material sits on top of OpenBot, which supplies much of the underlying platform. The repository calls itself early and actively developed. [1]

You can change the application, model configuration, workflows and integrations. The quick start nevertheless needs infrastructure: Bun, Node, Docker, a model/provider configuration and a CopilotKit Intelligence project. [1]

Intelligence is required, not an optional dashboard. It owns durable threads and memory. The server refuses to start without its API URL, gateway URL and project key; local PostgreSQL alone does not replace it. The example configuration points to the managed service and describes production self-hosted Intelligence as an Enterprise feature. [7][11]

That makes OpenDuet self-hostable application code with external-service boundaries—not proof that every part of the system runs locally for free.

A concrete example: the morning brief

The source implements Gmail and Calendar triage, including rules and model-assisted classification. The reviewed default mail query covers inbox messages from the previous day and caps retrieval at 50; it uses snippets rather than a guaranteed reading of every full message. [1]

There is also a timing nuance: the built-in daily brief hook asks for the day’s brief when Chat opens on a subsequent day. I did not establish that this path independently sends an unconditional scheduled morning notification while nobody opens the application. Background routines and a brief triggered by opening Chat should not be presented as the same behavior. [10]

Claude Duet: a managed Anthropic experience

Anthropic describes Claude Duet as a research-preview app for professionals and small-business owners. It brings account context, skills and connected applications into an ongoing interaction, runs work on a virtual machine with a browser, and checks connected accounts periodically. Its announcement describes briefings and approvals for consequential actions. These are vendor-documented capabilities, not hands-on results from this review. [3]

At the checked announcement, access starts through a US Pro/Max waitlist, shares the plan’s usage limits and is available through dedicated mobile apps and the web. Background checks count toward usage. The announcement also notes early limitations, including that it cannot yet show the user its browser. Check current eligibility before buying a plan specifically for this feature. [3]

The main attraction is reduced setup and operations work. The trade-off is using Anthropic’s product, model and availability boundaries rather than owning its implementation.

OpenAI dots: the comparable OpenAI product

OpenAI describes a dot as an always-on agent in ChatGPT, with its own cloud computer, memory and connected applications. It can continue projects, schedule recurring work and return results for review. Optional access to your local computer starts off and requires a separate explicit connection. [4]

The checked help pages describe a gradual rollout to eligible adult Pro users, Business Premium users and admin-enabled Enterprise beta workspaces, with regional restrictions. Included work allowances and plan limits apply; “always-on” does not mean unlimited expensive execution. Availability can change. [4]

OpenAI also distinguishes proactive research from action-taking: the research tools cannot directly send messages, modify connected content or control a browser/computer. Follow-up actions must pass the usual rules. This is more specific than a general promise that the agent can “do anything in the background.” [5]

Approvals: do not compare only the buttons

OpenDuet’s approvals are server-side code, not merely a sentence asking the model to behave. However, the reviewed defaults enable automatic model review while leaving “ask before every change” off. Some ordinary actions can proceed according to that policy; recognized outbound connector sends have an additional private-sharing permission gate, and standing permissions can satisfy it. Certain payment/security actions are handed to the person rather than allowed through ordinary approval controls. [8]

That is not the same as asking the human before every tool call. It also is not evidence of an email-sending bypass: the pure policy and the separately enforced sharing gate must be considered together.

Anthropic describes approval and classifier systems for Claude Duet, including special handling of sensitive information. OpenAI documents auto-review, custom rules, advance permission within scope, and non-overridable requirements for certain actions. These are provider descriptions; I did not audit their closed implementations or establish a safety ranking between them. [3][5]

Choose based on the actual action boundary: what can happen without a new prompt, what a standing rule authorizes, and what still requires takeover.

Privacy: source access gives you visibility, not automatic protection

There is a meaningful difference between an open implementation and a promise that no information can leave it.

One example matters here: OpenDuet’s README makes a broad sensitive-information claim. Its deterministic connector argument inspector explicitly says it detects credentials, not general personal information. The isolated check accepted fictional health-themed prose while rejecting synthetic password/token-shaped arguments. Other consent and approval gates still apply; this is not a demonstration of a full-system data leak. It means do not treat that predicate as a general medical, financial or card-data prevention system. [1][9]

Also review these defaults before connecting real accounts:

  • Automatic Learning can contribute completed conversations to an assigned CopilotKit Intelligence Learning container; its documented default is on when the required assignment exists. Review the Admin setting and retention terms. [1]
  • Runtime usage telemetry is documented with opt-outs. Disabling telemetry is separate from disabling required Intelligence calls or remote model inference. [1][11]
  • The example enables no-login single-user mode: anyone who can reach that mode is an administrator. Do not expose the development setup to a shared network or the public internet without proper sign-in and deployment controls. [11]
  • Containers, browser sessions, connector scopes and operator credentials remain security responsibilities. A masked login keeps credentials out of the model conversation through that flow; it does not mean the server never processes them. [1]

For dots, OpenAI’s FAQ explains memory retention, plan-dependent model-training settings and that disconnecting an app does not erase context already retained. Claude Duet’s announcement describes credential shielding and dedicated sensitive-information classifiers. Read the policies applicable to your account; these controls are not interchangeable with keeping all data offline. [3][5]

What the offline checks establish

An independent source-review worker produced a fixture that loads selected source functions. I inspected the relevant implementation and reran the fixture inside a network-disabled container with read-only mounts, unprivileged execution and resource limits.

Result: 26 passed, zero failed. The checks cover selected approval decisions, triage behavior, outgoing-target recognition and credential inspection. Model reviewer/classifier responses were synthetic mocks, not live model judgments. The available Zod dependency was 4.5.4 rather than the repository-locked 4.4.3.

This is useful evidence about those functions—not a deployment test, connector integration, usability evaluation, penetration test or proof of parity with Claude Duet or dots. No accounts, personal data, payments or external writes were involved.

Which should you consider?

Consider Claude Duet or dots when you want a managed product, qualify for access, and prefer the vendor to operate the agent infrastructure. Check the connected apps, approval rules, usage limits and data policies that matter to you. [3][4][5]

Consider OpenDuet when you have an engineering reason to change the interface, tool boundary or workflow—and the ability to own authentication, deployment, monitoring, updates and incident response. Its MIT-licensed code is valuable for customization, but model usage, compute, integrations and Intelligence remain separate costs and dependencies. [1][7][11]

Do not choose any of them solely because a demo says “asks before acting.” Start with low-risk accounts and tasks. Test explicit denial, expired authorization, failed connectors and unexpected content. Keep high-impact actions behind the strongest available permissions, and inspect real output before relying on it.

How to start a source evaluation

Retrieve the reviewed snapshot without launching it:

git clone https://github.com/CopilotKit/OpenDuet.git
cd OpenDuet
git checkout --detach 60fd4c71d9d82e13739dce00827278154d13c947

Read the root README, .env.example, approval policies and deployment requirements before installing. The reviewed root quick start uses Bun, including an Intelligence setup step; do not mix a shorter announcement’s commands with another directory’s instructions. Do not paste API keys or login secrets into a chat, and do not interpret copying an example environment file as a production security setup. [1][11]

Bottom line: OpenDuet is an interesting open-source foundation in the same proactive-agent category. It gives an engineering team more implementation control, not a free offline clone or a verified replacement for the managed products. The right comparison is control and responsibility versus managed convenience, with explicit permission boundaries on both sides.

Sources

[1] https://github.com/CopilotKit/OpenDuet/tree/60fd4c71d9d82e13739dce00827278154d13c947 — Reviewed repository and documented capabilities.

[2] https://www.copilotkit.ai/blog/introducing-openduet — CopilotKit announcement.

[3] https://claude.com/resources/articles/claude-duet — Anthropic’s official Claude Duet announcement.

[4] https://help.openai.com/en/articles/20001530-getting-started-with-your-dot — OpenAI dots capabilities, controls and eligibility.

[5] https://help.openai.com/en/articles/20001529-dots-privacy-security-and-safety-faqs — OpenAI permission and privacy details.

[7] https://github.com/CopilotKit/OpenDuet/blob/60fd4c71d9d82e13739dce00827278154d13c947/openbot/server/src/config.ts — Required Intelligence configuration.

[8] https://github.com/CopilotKit/OpenDuet/blob/60fd4c71d9d82e13739dce00827278154d13c947/openbot/server/src/approvals/policy.ts — Approval policy; read with the connector sharing gate in the same snapshot.

[9] https://github.com/CopilotKit/OpenDuet/blob/60fd4c71d9d82e13739dce00827278154d13c947/openbot/server/src/plugins/content-governance.ts — Credential-inspection scope.

[10] https://github.com/CopilotKit/OpenDuet/blob/60fd4c71d9d82e13739dce00827278154d13c947/openbot/app/src/components/shell/morning-brief.tsx — Daily brief trigger.

[11] https://github.com/CopilotKit/OpenDuet/blob/60fd4c71d9d82e13739dce00827278154d13c947/.env.example — Service dependencies, sign-in and telemetry defaults.

Fouad Salkini

Written by Fouad Salkini (فؤاد سلقيني)

General Manager & Tech Lead at Tripnologies and Sync Studios. Systems Architect focusing on AI coding agents, DevOps, and quantitative systems.