CopilotKit's OpenDuet Is a Self-Hosted Agent That Messages You First and Waits Before It Acts
CopilotKit released OpenDuet on October 27, an MIT-licensed template for a proactive AI coworker. It writes a morning brief, keeps working on a computer of its own, and stops for approval before it sends, pays, signs or deletes anything. It's early-stage software, and it needs a CopilotKit Intelligence project to run.
Most agent products wait for a prompt. CopilotKit’s new open-source template is built around the reverse: an agent that decides when something needs you, says so, and then waits for your answer before doing anything consequential. CopilotKit released OpenDuet on October 27, 2026. It’s built on CopilotKit’s own framework, the AG-UI protocol for connecting agents to user interfaces, and the company’s hosted CopilotKit Intelligence service. Its announcement calls it “an open-source proactive AI agent that tells you what needs your attention, keeps working while you’re away and checks with you before it acts on your behalf.”
The code is on GitHub at CopilotKit/OpenDuet under the MIT licence. The repository was created on October 21 and is mostly TypeScript. By early October 28 India time it had about 470 stars and 67 forks. The README badges it as “early development.”
A template on top of OpenBot
OpenDuet isn’t a separate runtime. The README says it “runs today as OpenBot,” CopilotKit’s open-source, self-hosted agent platform, “with OpenDuet’s name, Bots and skills on top.” Everything that defines OpenDuet sits in one folder, openbot/examples/openduet: the agent’s name, its Bots, channels, model and skills. CopilotKit expects people to copy that folder and change it. In the announcement’s words, it’s “an early, single-owner starting point.”
Two dependencies are worth knowing before cloning. The first is CopilotKit Intelligence, the company’s hosted service for threads and memory, which is mandatory. “The server will not start without its key,” the README says, though the free Developer plan is enough. The second is the model. The default Bot runs OpenAI’s gpt-5.6-terra, set in a model.yaml file, and Anthropic models can be used through environment variables. Local setup needs Docker, Bun 1.3 or newer, and Node for the CopilotKit CLI. A start script brings up Postgres, the API server, a routine worker, the app, and a Docker container for each Bot.
What it does without being asked
The features the README says work today revolve around a single ongoing thread:
- A morning brief that sorts what needs a decision from what can wait, and includes the day’s calendar and anything it couldn’t check.
- Mail triage across Gmail and Google Calendar, with each person connecting their own account. Each email gets a one-line reason, and CopilotKit measures the sorting against a labelled set kept in the repository’s
evals/triagefolder. - A computer of its own, with a real browser, a
/workspacefolder and a shell, so tasks continue after the user closes the app. The announcement says the work can keep going “while your laptop is off.” - Routines for scheduled jobs, channels for separating pieces of work, and a Make tab for the dashboards, slides, documents and web pages it produces.
- Voice input, which turns speech into a typed message if a speech-to-text provider is configured on the server.
Governed MCP connectors add Google Drive and Notion. Slack, Microsoft Teams and team sign-in come from OpenBot.
The approval layer is the point
What sets OpenDuet apart from a scheduled chatbot is how it handles actions. According to the README, “a reviewer checks every action that changes something,” and the important ones pause with three choices: Refuse, Allow once or Always allow. A message to other people always asks first, showing the recipient and the text. Every action is checked against policy and recorded. Users pick which actions need confirmation at /settings/approvals.
Credentials get similar treatment. When a site asks for a login, the user types it into a masked box, and the password “reaches the site, never the conversation the agent reads.” Saved credentials are encrypted and write-only. Outgoing messages are scanned for sensitive information such as card numbers or health details before they leave. A feature CopilotKit calls Automatic Learning turns the user’s answers to check-ins into reusable skills, which the agent loads only after the user reviews and publishes them.
Hosted memory and no deploy guide yet
This is a starting kit, not a product. The README says no hosted or deployment guide for OpenDuet exists yet and no OpenDuet container image has been published, so the local quick start is the supported path. The CopilotKit runtime sends usage telemetry tagged OpenDuet by default, which can be turned off with COPILOTKIT_TELEMETRY_DISABLED=true or DO_NOT_TRACK=1. Because threads and memory live in CopilotKit’s hosted service, a deployment isn’t fully self-contained even when the rest of the stack runs on the owner’s own machines.
Still, the release turns a pattern many teams want, an agent that interrupts sparingly and asks before acting, into code that can be read, forked and audited.
- #CopilotKit
- #OpenDuet
- #AG-UI
- #Proactive Agents
- #Human-in-the-Loop
Author
Raj M
Contributor
AI Systems Architect is a seasoned technology leader with over 15 years of experience in the IT industry working with Fortune 500 companies. With a solid foundation in multi-agent systems, open-source LLM infrastructure, and enterprise deployment, he excels at building scalable production-grade AI platforms.