CopilotKit/OpenDuet

AI Engineering

A self-hosted proactive agent template that triages mail, calendar and Slack, and asks for approval before it acts.

481
69
TypeScript
MIT
6 days old

OpenDuet is best treated as a working template for building a proactive assistant, not as a finished product you install for daily use. Its approval gateway and triage loop are the parts worth studying; the surrounding app is still early.

The problem

Most assistants react: you write a question, you get an answer. A proactive assistant inverts that. You want a morning brief that surfaces what changed, a triage step that separates what needs your decision from what can wait, and an agent that keeps working in its own browser and workspace after you close the tab. OpenDuet's documented flow connects your Gmail and Google Calendar, builds that brief, and runs scheduled routines. When an action changes something external, the request pauses for Refuse, Allow once, or Always allow, and outbound messages always ask once with the recipient and text shown.

What's different

This is a tenant package layered on OpenBot, CopilotKit's self-hosted agent platform. The OpenDuet-specific parts live in openbot/examples/openduet as YAML: brand, Bots, instructions, channels, model and skills. The mechanism that matters is the gateway: every tool call returns through policy checking and an audit record before anything is executed, so the agent's computer is mediated rather than trusted directly. Triage and the morning brief build on OpenBot's routines, which give an agent scheduled turns that run as you.

That design has a cost. The whole application brings a Hono server, a CopilotKit runtime, PostgreSQL with pgvector, a worker and per-Bot Docker computers. Adopting the template means adopting that stack or editing it. Credential handling is described as a masked secret box with encrypted, write-only saved credentials; that is the author's design statement, not independent verification. The README also states plainly that the project is early and in active development, so expect the tenant package rather than the platform to churn.

Who should try it

Good fit: a developer or small team already considering CopilotKit or OpenBot who wants a concrete, runnable reference for gated agent actions, triage and scheduled routines, and who is comfortable reading TypeScript and YAML. Poor fit: someone who wants a personal assistant to use tomorrow without running Docker, PostgreSQL, a Bun server and a Google OAuth setup. If you only want to see the mechanics, the example tenant package is the useful entry point; connecting Gmail and Calendar additionally requires an administrator to register a Google OAuth client, so a user who cannot do that is limited to the non-Google parts of the flow.

Requirements and limitations

The hard dependency is CopilotKit Intelligence. It stores threads and memory, and the README says the server will not start without its key; the free Developer plan is said to be enough. Setup also needs Docker, Bun 1.3+, Node for the CopilotKit CLI and a model key. The quick-start sequence includes a setup script that must run from the repository root because it reads .env and .copilotkit/ from the working directory and copies CPK_INTELLIGENCE_API_KEY to the name the server actually reads.

Ongoing upkeep is less about the install and more about the surface area: Google Cloud API and OAuth configuration, MCP connectors for Drive and Notion through Composio, and the policy records that accumulate. Only the capabilities listed in the features table are documented as working today, and the README warns that things will move. The project is MIT-licensed, which permits copying and modification.

HotRepo's take

HotRepo's tracked coverage begins 2026-05-10, so it is shorter than the repository's reported six-day age, and the only observation is a single 2026-10-28 snapshot of 481 total stars at #14 on the NEW-REPOSITORY board for TypeScript. That is not an overall Trending rank, not a daily growth figure, and there is no comparable history, so persistence cannot be judged. Before committing, verify the Intelligence setup script's behavior against your .env rather than assuming the quick start has no manual key step.

Project source and documentation

Written by AI from the project's README, updated October 28, 2026. The project's own docs are the source of truth.