# OpenDuet

> OpenDuet is CopilotKit's open-source, self-hosted proactive assistant built on OpenBot. It sends a morning brief from Gmail and Google Calendar, runs tasks in its own browser container and pauses consequential actions for approval.

- Canonical: https://www.anchorterminal.com/tools/openduet
- Pricing: https://www.anchorterminal.com/tools/openduet#pricing
- Reviews: https://www.anchorterminal.com/tools/openduet#reviews
- Markdown: https://www.anchorterminal.com/tools/openduet.md (~10,100 tokens)
- Slim: https://www.anchorterminal.com/tools/openduet.min.md (~2,230 tokens, same facts, less prose, for token-sensitive contexts)
- JSON: https://www.anchorterminal.com/tools/openduet.json (this page as data, same URL with Accept: application/json)
- Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-10-30

## Overview

**Grade D · 49.5/100 · rank #962 of 1239 · #15 in Personal assistants · not agent-ready · confidence medium**


## Assessment

Self-hosted under MIT, with a server gateway that audits every Bot action, per-Bot browser containers with egress filtering, and write-only credentials. Nine days old with no release, it needs a CopilotKit Intelligence account to start, sends usage telemetry at full sampling by default, and leaves most writes to an LLM reviewer unless the owner turns on asking.

## Facts

| Field | Value |
| --- | --- |
| Vendor | CopilotKit (Tawkit, Inc.) (https://www.copilotkit.ai/openduet) |
| Kind | Agent harness |
| Category | Personal assistants (https://www.anchorterminal.com/categories/personal-assistants) |
| Auth | OAuth or key · The owner runs it from a clone. With no identity provider configured it runs as one fixed administrator with no sign-in and listens only on this machine (`OPENBOT_SINGLE_USER`, refused on a public address); configuring a provider turns sign-in on. The server will not start without `INTELLIGENCE_API_KEY`, a project key for CopilotKit Intelligence obtained through `npx copilotkit@latest login`, which opens a browser sign-in. A model key (OpenAI by default, Anthropic optional) goes in `.env`. Gmail and Calendar need a Google OAuth client an administrator registers, then each person connects their own account. An outside agent can be registered as a Bot over AG-UI (`type: remote-ag-ui`) with an optional write-only authorisation header. |
| Pricing | Freemium (Freemium) · The repository is free under MIT. It needs CopilotKit Intelligence, which is free on the Developer plan (no card, 1,000 interactions a month hosted, or a Developer Edition for local non-production use on a renewable 30-day licence); pay as you go is $49 a month per organisation with 10,000 interactions, then graduated rates not shown on the pricing page. Model usage is billed by the model provider (https://www.copilotkit.ai/pricing, https://docs.copilotkit.ai/intelligence/plans, checked 2026-10-30). |
| x402 | No · No x402, MPP or L402 in the README, the OpenBot docs or the CopilotKit pricing page (checked 2026-10-30). Intelligence's paid plans are billed monthly to a card. |
| Licence | MIT. Threads and memory need a CopilotKit Intelligence project, a separate service under CopilotKit's Self-Service Agreement |
| Source | https://github.com/CopilotKit/OpenDuet |
| Docs | https://github.com/CopilotKit/OpenDuet#readme |
| llms.txt | not found |
| GitHub stars | 1,618 (as of 2026-10-30) |
| Surface listed | The self-hosted OpenDuet repository at main as of 28 October 2026, graded as software the owner runs, read from the README, docs/telemetry.md, the vendored OpenBot docs, changelog, tenant package, CI workflows and selected server source on raw.githubusercontent.com, six GitHub API requests (repository, releases, tags, tree, contributors, issues), the Actions page, and CopilotKit's announcement, product, pricing, Intelligence plans, CLI, terms, privacy and Self-Service Agreement pages on 30 October 2026. Nothing was installed or run and no account was created |
| Kind | Listed as `harness`, as Hermes Agent and NanoClaw are. Its interfaces are a web app on port 3010, Slack and Microsoft Teams through OpenBot, and an AG-UI endpoint slot where an outside agent can stand in as a Bot. No CLI with machine output, no MCP server of its own and no documented API for an outside agent to drive it were found; the server API is session-authenticated for the app |
| Requirements | Docker, Bun 1.3 or newer, Node for `npx`, a model key and a CopilotKit Intelligence project. `scripts/start.sh` starts PostgreSQL with pgvector, each Bot's computer and a supervisor in Docker, runs migrations, then the API server, the routines worker and the app. The default model is OpenAI `gpt-5.6-terra` (`openbot/examples/openduet/model.yaml`); `BOT_PROVIDER=anthropic` switches to Anthropic |
| Approvals | Rules carry one of four behaviours (allow, pre-approved, ask, hand off). Safety categories for credentials, security settings and payments always hand off. The default per person is auto-review on, ask-before-changes off, host commands ask. The README says a message to other people always asks, showing recipient and text; that rule was not located in the source files read. Allow once, Always allow and Refuse appear in the app, Slack and Teams |
| Where data goes | Threads and memory in CopilotKit Intelligence (cloud-hosted by default). Policy, approvals, audit rows and encrypted credentials in the owner's PostgreSQL. Prompts and mail content to the chosen model provider. Optional research connectors (Parallel, Exa, Firecrawl) and Composio only after an administrator grants them. Runtime usage events to telemetry.copilotkit.ai unless turned off. Optional OTLP export of audit rows to the owner's collector |
| Intelligence terms | CopilotKit's Self-Service Agreement lets CopilotKit use Customer Data solely to provide, secure and support the service and to make de-identified statistics, keeps data available for export for 30 days after termination, and asks customers not to submit protected health information or payment card data unless agreed in writing. The privacy policy excludes data processed for customers. No retention periods, subprocessor list or data locations for Intelligence were found |
| Outside agents | Any AG-UI endpoint (LangGraph, Mastra, CrewAI, Pydantic AI, Google ADK and others, with sample images in `openbot/agent-*`) can be the Bot. Endpoints pass target checks, cloud metadata addresses are refused, and `POST /api/agents/test-connection` checks one before saving. The tenant package ships a `your-agent` channel for this |
| Evaluations | `evals/triage` (62 invented emails, rules then model), `evals/reply-chips` and `evals/voice`, with committed results dated 21 to 23 October 2026. The project's own figures, on an invented set it labelled itself |
| Age | The repository was created on 21 October 2026, a pull request on 26 October removed internal material before it went public, and CopilotKit announced it on 27 October 2026. Two contributors on 30 October, with 70 of 73 commits by one CopilotKit engineer |
| Capabilities | assistant.proactive, assistant.self-hosted, assistant.accounts, assistant.memory, assistant.messaging, agent.mcp-client, mailbox.read, mailbox.send, calendar.read |
| Tags | open-source, self-hosted, local, typescript, docker, gmail, slack, teams, mcp-client, approvals, telemetry-default-on, pre-1.0, free, no-card, new |
| JSON | https://www.anchorterminal.com/api/v1/tools/openduet.json |

## Score breakdown (methodology v0.7, October 2026 research run)

Assessed 2026-10-30 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points.

| Category | Weight | This run | Score (0–100) | Points |
| --- | --- | --- | --- | --- |
| Reliability | 16% | 20 | 42 | 8.4 |
| Performance | 10% | pending | pending | n/a |
| Schema & documentation | 13% | 16.2 | 58 | 9.4 |
| Agent ergonomics | 13% | 16.2 | 52 | 8.4 |
| Security & auth | 14% | 17.5 | 59 | 10.3 |
| Payments & pricing | 10% | 12.5 | 30 | 3.8 |
| Task success | 10% | pending | pending | n/a |
| Maintenance & community | 7% | 8.8 | 37 | 3.2 |
| Transparency & trust (editorial 68, provenance 67) | 7% | 8.8 | 68 | 6.0 |
| Negative events | up to −15 | up to −15 | none recorded | 0 |
| **Total** | | | | **49.5 → D** |

### Why each score

- Reliability 42 (checked 2026-10-30): Read with the local-software lines, as software the owner runs. It installs by cloning the repository and running `bun install` and `bash scripts/start.sh`, with Docker, Bun 1.3 or newer and Node stated. There is no OpenDuet package or image, and the README says the Docker and Helm guides deploy plain OpenBot (10 of 20). `ci.yml` runs format, lint, types, a real-browser computer suite, Helm chart checks and the test suite on every push to main and every pull request, over about 450 server and 280 app test files. The newest run on main (run 236, the merge of #85 on 28 October 2026) failed, and run 230 before it passed (12 of 25). The repository is nine days old. Ten outside issues and pull requests opened 27 to 29 October are open, seven with no comment, and none of the closed items is a crash report (12 of 25). OpenDuet has no changelog of its own. The vendored OpenBot changelog opens each version with a 'Before upgrading' list of migrations and changed defaults, but its sections carry no dates (8 of 15). Root version 0.1.0 with an early-development badge (0 of 15).
- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.
- Schema & documentation 58 (checked 2026-10-30): Harness reading of the framework line, as for Hermes Agent and NanoClaw. No OpenAPI file. The contract for bringing an agent is AG-UI, a public protocol, and the docs define the tenant YAML, the policy fields rules may inspect and the audit export route (12 of 25). No llms.txt for OpenDuet. docs.copilotkit.ai serves one for CopilotKit, which does not cover OpenDuet; the repository's docs are Markdown readable on raw.githubusercontent.com (5 of 10). The README lists what works today and states what is not published yet (an image, a deploy guide), and the plugin pages say what an administrator registers and what each failure means (14 of 20). Configuration is tabled with defaults and allowed values (about 88 KB), approval behaviours are a fixed set of four and network policies a set of four modes (10 of 15). The Quick start, a fake Google for trying Gmail without an account, a 401 diagnosis and the setup checklist's three states, with no error reference (11 of 15). Undated OpenBot version sections and no OpenDuet versioning (6 of 15).
- Agent ergonomics 52 (checked 2026-10-30): Harness reading, scored on what a person or pipeline driving it has to supply. MCP tools and skills are granted per Bot by an administrator, so only granted definitions reach a Bot; the size of the default toolset was not measured (15 of 25). Routines, tasks and background research run on a schedule, and the changelog warns that background research turns and their model tokens start four hours after a person first talks to a Bot, with an opt-out. No turn or spending cap was found (10 of 20). No headless command or documented API for an outside agent to drive it. An outside agent can instead be the Bot over AG-UI, and audit rows export as CSV or OTLP (8 of 20). Approvals and tasks persist in PostgreSQL, a failed task shows why with Try again where retrying helps, the memory sweep is idempotent, and stop keeps the volumes (13 of 20). Setup needs Docker, Bun, Node, a model key, a browser sign-in to CopilotKit and, for Gmail, a Google OAuth client. No OpenDuet SDK (6 of 15).
- Security & auth 59 (checked 2026-10-30): Harness reading of the framework checklist, as the Hermes Agent and Leon dossiers used. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. Threads and memory go to CopilotKit Intelligence, which is cloud-hosted unless the owner runs the Developer Edition or buys self-hosting, mail content goes to the model provider, and runtime usage events go to CopilotKit at 100 per cent sampling unless turned off. With no sign-in configured it listens only on this machine (14 of 30). Each Bot has its own container with a token-gated API on 127.0.0.1, the database on a separate network and an egress proxy that permits nothing until a policy arrives. Payments, credential and security-setting changes always go to the person, and the reviewer fails closed. Against that, the default leaves other writes to an LLM reviewer with 'ask before every change' off, OpenBot's computer policy defaults to allow-all, and gVisor is opt-in (15 of 20). Tool results carry an untrusted-content envelope with a deployment-wide instruction on reading it, and the reviewer prompt treats the request as data. The triage set includes a message that tries to instruct the assistant. The README's outgoing sensitive-information check was not located in the source read (10 of 15). Every gateway decision is an audit row naming the initiator, with a 'Nobody watching' filter, CSV export of up to 5,000 rows and OTLP export, and secrets redacted (14 of 15). No SECURITY.md in OpenDuet or OpenBot and no security.txt on copilotkit.ai. CopilotKit's main repository's policy names security@copilotkit.ai with a 48-hour acknowledgement. CI runs zizmor and pins Actions to commit hashes. No bounty or certification found (6 of 20).
- Payments & pricing 30 (checked 2026-10-30): No payment protocol (0). Read against the paid part because OpenDuet cannot start without CopilotKit Intelligence, so the self-hosted rule's nothing-to-buy reading does not apply. Intelligence pricing is public as a $49 monthly plan with 10,000 interactions, and the graduated rates beyond it were not shown on the pricing page (10). The Developer plan is free with no card, 1,000 hosted interactions a month or a local non-production edition (20). Getting a key needs a browser sign-in through the CopilotKit CLI (0). Model usage is billed separately by the provider.
- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.
- Maintenance & community 37 (checked 2026-10-30): No GitHub release or tag. The README makes main the supported install, and main was last pushed on 28 October 2026, so we credit half the line (15 of 30). No releases in the last 90 days (0 of 20). Maintainers merge their own pull requests the same day and merged one outside contributor's within a day, but seven of the ten outside items opened 27 to 29 October have no comment (10 of 25). Not an MCP server; no OpenDuet image is published, and it builds on current CopilotKit 1.77 and AG-UI 1.0 per the OpenBot changelog (5 of 15). Frozen lockfiles, a Renovate configuration, Actions pinned to commit hashes and a weekly zizmor run, with the newest CI run on main failing (7 of 10).
- Transparency & trust 68 (checked 2026-10-30): MIT (30). The README and docs say what lives where (threads and memory in Intelligence; policy, approvals, audit and encrypted credentials in the owner's database), and docs/telemetry.md names each event and field. The Self-Service Agreement limits CopilotKit's use of Customer Data to running the service and de-identified statistics and keeps data exportable for 30 days after termination, but gives no retention periods while active, and the privacy policy excludes customer data. The agreement asks customers not to submit health or payment card data, which mail read by an assistant can contain (16 of 30). OpenBot's changelog flags changed defaults and migrations before each upgrade, with no dated deprecation policy (8 of 20). Telemetry is disclosed field by field with two opt-outs, but it is on by default and OpenDuet raises the sample rate from 5 to 100 per cent (14 of 20).

Fix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (18 items): https://www.anchorterminal.com/fixes/openduet.md (JSON https://www.anchorterminal.com/fixes/openduet.json)

### What we couldn't check

- Installation, task success, performance and the approval behaviour in practice were not tested; nothing was run.
- unchecked: whether the README's 'a message to other people always asks' and outgoing sensitive-information check are enforced in code; neither was located in the source files read.
- unchecked: the graduated per-interaction rates past 10,000 a month, which the pricing page text did not show.
- unchecked: Intelligence retention periods, subprocessors and data locations; none were found in the Self-Service Agreement or privacy policy.
- unchecked: whether status.copilotkit.ai covers Intelligence, and what the desktop build's separate telemetry (openbot/desktop/TELEMETRY.md) sends when used.
- Why CI run 236 on main failed was not diagnosed.

### Sources

- repository metadata: <https://api.github.com/repos/CopilotKit/OpenDuet> (seen 2026-10-30)
- releases (none): <https://api.github.com/repos/CopilotKit/OpenDuet/releases> (seen 2026-10-30)
- tags (none): <https://api.github.com/repos/CopilotKit/OpenDuet/tags> (seen 2026-10-30)
- file tree: <https://api.github.com/repos/CopilotKit/OpenDuet/git/trees/main?recursive=1> (seen 2026-10-30)
- contributors: <https://api.github.com/repos/CopilotKit/OpenDuet/contributors> (seen 2026-10-30)
- issues and pull requests: <https://api.github.com/repos/CopilotKit/OpenDuet/issues?state=all> (seen 2026-10-30)
- CI runs: <https://github.com/CopilotKit/OpenDuet/actions> (seen 2026-10-30)
- README: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/README.md> (seen 2026-10-30)
- telemetry: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/docs/telemetry.md> (seen 2026-10-30)
- architecture: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/docs/architecture.md> (seen 2026-10-30)
- configuration: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/docs/configuration.md> (seen 2026-10-30)
- coworkers and external AG-UI agents: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/docs/coworkers.md> (seen 2026-10-30)
- OpenBot changelog: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/CHANGELOG.md> (seen 2026-10-30)
- CI workflow: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/.github/workflows/ci.yml> (seen 2026-10-30)
- approval policy source: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/server/src/approvals/policy.ts> (seen 2026-10-30)
- approval defaults source: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/server/src/approvals/store.ts> (seen 2026-10-30)
- telemetry source: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/server/src/telemetry.ts> (seen 2026-10-30)
- tenant package Bots: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/openbot/examples/openduet/agents.yaml> (seen 2026-10-30)
- triage evaluation: <https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/evals/triage/README.md> (seen 2026-10-30)
- announcement: <https://www.copilotkit.ai/blog/introducing-openduet> (seen 2026-10-30)
- product page: <https://www.copilotkit.ai/openduet> (seen 2026-10-30)
- pricing: <https://www.copilotkit.ai/pricing> (seen 2026-10-30)
- Intelligence plans: <https://docs.copilotkit.ai/intelligence/plans> (seen 2026-10-30)
- CopilotKit CLI sign-in: <https://docs.copilotkit.ai/cli> (seen 2026-10-30)
- Self-Service Agreement: <https://www.copilotkit.ai/self-service-agreement> (seen 2026-10-30)
- privacy policy: <https://www.copilotkit.ai/privacy-policy> (seen 2026-10-30)
- terms of service: <https://www.copilotkit.ai/terms-of-service> (seen 2026-10-30)
- CopilotKit security policy (main repository): <https://raw.githubusercontent.com/CopilotKit/CopilotKit/main/SECURITY.md> (seen 2026-10-30)

## Score history

Every move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/openduet/history.json

- 2026-10-30: graded 49.5 D (methodology 0.7)

## Who's behind it (provenance 67/100, checked 2026-10-30)

| Check | Finding | Points |
| --- | --- | --- |
| Legal entity named | Tawkit, Inc. (d/b/a CopilotKit) | 20/20 |
| Domain age | copilotkit.ai, registered 2023-09-28 (3 years) | 7/15 |
| Endpoint on the vendor's domain | no hosted endpoint | n/a |
| Terms of service | published, but our reader couldn't read it | 7/10 |
| Privacy policy | read, states 5 of the 8 things a reader expects | 7.8/10 |
| Status page | not found | 0/10 |
| Changelog | published | 10/10 |
| security.txt | not found | 0/10 |
| People named | 3 named with their role, 1 with a public profile | 10/10 |
| Support route | a support address, help pages, a community | 5/5 |

The MIT licence reads Copyright (c) 2026 CopilotKit. CopilotKit's terms of service and privacy policy (effective 27 August 2026) name Tawkit, Inc., doing business as CopilotKit, governed by Delaware law. The Self-Service Agreement covers CopilotKit Intelligence, which OpenDuet requires.

firstReleased is 2026-10-27, the date of CopilotKit's announcement post. The repository was created on 21 October 2026, but pull request #71 of 26 October ('remove internal material before OpenDuet goes public') shows it was not public before then, and there is no release or tag.

The changelog is OpenBot's, vendored in `openbot/CHANGELOG.md`, with undated version sections from 0.0.1 to 0.2.0 and an Unreleased section. OpenDuet has no changelog of its own.

https://www.copilotkit.ai/.well-known/security.txt answers 200 with the site's HTML, so no security.txt exists. Neither OpenDuet nor OpenBot has a SECURITY.md; CopilotKit's main repository has one naming security@copilotkit.ai.

status.copilotkit.ai shows 'Copilot Cloud - API' and 'Web App' with 90-day uptime bars; it was not established that it covers Intelligence, and OpenDuet itself runs on the owner's machine.

RDAP (Identity Digital) gives copilotkit.ai a registration date of 2023-09-28.

### Terms and privacy, as read

A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.

**Terms of service** (https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/LICENSE), read 2026-10-30. Our reader couldn't read it (the page has 168 words of text without a browser, so the document is drawn by script or sits elsewhere).


**Privacy policy** (https://www.copilotkit.ai/privacy-policy), read 2026-10-30, dated 2026-08-27, states 5 of the 8 things a reader expects.

- Gives the date it was last updated. Last updated 2026-08-27.
- Not found in the text. Says how long data is kept.
- Not found in the text. Says what rights people have over their data.
- Gives a privacy contact. privacy@copilotkit.ai.
- Not found in the text. Says where data is transferred or stored.

## Humans behind the project (researched 2026-10-30 from public pages, not part of the grade)

### Key people

- Atai Barkai, Founder and CEO, CopilotKit
- Uli Barkai, Co-founder, CopilotKit; leads growth, partnerships and ecosystem
- Jerel Velarde, Staff Applied AI Engineer, CopilotKit; author of 70 of OpenDuet's 73 commits. LinkedIn: https://www.linkedin.com/in/jereljohnvelarde/. GitHub: https://github.com/jerelvelarde
- Note: copilotkit has no team or about page in its sitemap. atai barkai signs the series a post of 5 may 2026 as 'founder & ceo of copilotkit', and the post is by atai barkai and uli barkai. ctech (calcalist) reported on the same day that the company was founded by the brothers atai and uli barkai and that uli barkai leads growth, partnerships and work with other projects. jerel velarde's role and linkedin come from his own github profile, which names him staff applied ai engineer at copilotkit; the github contributors api lists him with 70 of 73 commits to openduet and rowanaldean with 3, whose role wasn't sourced. the announcement's authors, eli berman and anmol baranwal, aren't listed because no page we read gives their roles. no personal linkedin or x links for the founders are linked from copilotkit.ai, so none are recorded. the legal entity is tawkit, inc. (d/b/a copilotkit) per the terms, privacy policy and self-service agreement. investors come from the company's series a post; ctech reports the $27 million as $20.5 million series a and $6.5 million seed, and no first-hand page names the seed investors separately. geekwire's article answered 403 and wasn't read.
- CopilotKit: LinkedIn https://www.linkedin.com/company/copilotkit/ X https://x.com/CopilotKit GitHub https://github.com/CopilotKit

### Ownership and investors

- Raised: $27M in total, as of May 2026 (source https://www.calcalistech.com/ctechnews/article/bkbjddprbx)
- Backed by: Glilot Capital Partners, NFX, SignalFire, Discovery Ventures, Vermilion Cliffs Ventures, DVC, Abstraction Capital, 97212 Ventures, Deep Acre, J-Ventures, Gurtin Ventures, Fresh Fund

### Getting support

- Discord: https://discord.gg/6dffbvGU3D
- Support email: hello@copilotkit.ai
- Help: https://github.com/CopilotKit/OpenDuet/issues
- Help: https://docs.copilotkit.ai
- Help: https://www.copilotkit.ai/talk-to-an-engineer
- Community (GitHub issues, CopilotKit/OpenDuet): https://github.com/CopilotKit/OpenDuet/issues
- Sources: https://www.copilotkit.ai/blog/series-a, https://www.calcalistech.com/ctechnews/article/bkbjddprbx, https://github.com/jerelvelarde, https://api.github.com/repos/CopilotKit/OpenDuet/contributors, https://raw.githubusercontent.com/CopilotKit/OpenDuet/main/README.md, https://www.copilotkit.ai/blog/introducing-openduet, https://www.copilotkit.ai/terms-of-service, https://www.copilotkit.ai/privacy-policy, https://www.copilotkit.ai/self-service-agreement, https://raw.githubusercontent.com/CopilotKit/CopilotKit/main/SECURITY.md, https://www.copilotkit.ai/sitemap.xml

## Probe metrics

Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.

## Strengths

- MIT source, with everything OpenDuet-specific in one tenant folder over OpenBot's code
- One gateway evaluates policy and writes an audit row naming who started each run, exportable as CSV or OTLP
- Each Bot runs in its own container with an egress proxy that permits nothing until a policy arrives
- Payments, credential and security-setting changes are always handed to the person, and the reviewer fails closed
- Passwords go through a masked box, and stored credentials are encrypted, write-only and redacted from audit rows

## Weaknesses

- No release, tag, published image or deploy guide; the README marks it early development
- The server refuses to start without a CopilotKit Intelligence key, which needs a browser sign-in
- Writes other than payments, credentials and security settings run if the LLM reviewer passes them, unless the owner turns on asking
- Runtime telemetry is on by default at 100 per cent sampling, with a documented opt-out
- The latest CI run on main failed on 28 October 2026, and outside issues from 27 to 29 October mostly have no reply



## Before you call it (notes for agents)

1. Follow the README's Quick start (`bun install`, `bash scripts/start.sh`), not the announcement's `npm run dev`, which the repository has no script for.
2. Run `bun openbot/scripts/setup-learning.ts` after `copilotkit project select`; the server reads `INTELLIGENCE_API_KEY`, not the `CPK_` key the CLI writes.
3. Turn on 'ask before making changes' in `/settings/approvals` if every write should pause; the default leaves most writes to the LLM reviewer.
4. To bring your own agent, register it as a `remote-ag-ui` Bot in `agents.yaml`; its tool calls still pass through the gateway's policy and audit.
5. Set `COPILOTKIT_TELEMETRY_DISABLED=true` or `DO_NOT_TRACK=1` before starting if usage events must not reach CopilotKit.

## Connect

Install:

```bash
git clone https://github.com/CopilotKit/OpenDuet.git && cd OpenDuet && cp .env.example .env && bun install && npx --yes copilotkit@latest login && npx --yes copilotkit@latest project select && bun openbot/scripts/setup-learning.ts && bash scripts/start.sh
```

## Similar tools

Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.

| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |
| --- | --- | --- | --- | --- | --- | --- |
| Town | D | 48.7 | 982 | assistant.proactive, assistant.messaging, assistant.accounts, assistant.memory, mailbox.read, mailbox.send, agent.mcp-client | no | https://www.anchorterminal.com/tools/town.md |
| folk | F | 19.7 | 1189 | assistant.proactive, assistant.messaging, assistant.accounts, assistant.memory, mailbox.read, mailbox.send, agent.mcp-client | no | https://www.anchorterminal.com/tools/folk-nozomio.md |
| Tasker AI | F | 7.6 | 1236 | assistant.messaging, assistant.accounts, assistant.memory, assistant.proactive, agent.mcp-client, mailbox.read, mailbox.send | no | https://www.anchorterminal.com/tools/tasker-ai.md |
| ZeroClaw | BB | 70.6 | 168 | assistant.proactive, assistant.messaging, assistant.memory, assistant.self-hosted, assistant.accounts, agent.mcp-client | no | https://www.anchorterminal.com/tools/zeroclaw.md |
| NanoClaw | B | 68.6 | 235 | assistant.proactive, assistant.messaging, assistant.memory, assistant.self-hosted, agent.mcp-client, assistant.accounts | no | https://www.anchorterminal.com/tools/nanoclaw.md |
| Hermes Agent | B | 68.2 | 255 | assistant.proactive, assistant.messaging, assistant.accounts, assistant.memory, assistant.self-hosted, agent.mcp-client | no | https://www.anchorterminal.com/tools/hermes-agent.md |

## Panel reviews (0)

Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .

Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md

## Notable

- OpenDuet is OpenBot with a tenant package on top. The repository vendors OpenBot 0.2.0 in `openbot/` (about 2,300 files) and keeps everything OpenDuet-specific (name, Bots, channels, model, skills) in `openbot/examples/openduet` (source: <https://github.com/CopilotKit/OpenDuet/blob/main/README.md>)
- The README badge reads early development. No GitHub release or tag exists, root `package.json` is 0.1.0, no OpenDuet image or deploy guide is published, and the Quick start from `main` is the supported way to run it (source: <https://api.github.com/repos/CopilotKit/OpenDuet/releases, checked 2026-10-30>)
- OpenDuet starts with an LLM auto-reviewer on and 'ask before every change' off. A keyword floor and the reviewer hand credential changes, security settings and payments to the person, the reviewer fails closed on an error or timeout, and otherwise a write the reviewer passes runs without asking (source: <https://github.com/CopilotKit/OpenDuet/blob/main/openbot/server/src/approvals/store.ts, policy.ts>)
- Every Bot action goes through one server gateway that evaluates CEL policy rules, writes an audit row with who started the run (`person`, `routine`, `responsibility`, `memory`, `handoff`), and only then calls the Bot's computer. OpenBot's shipped computer policy is `deny: []`, `allow: ["true"]` (source: <https://github.com/CopilotKit/OpenDuet/blob/main/openbot/docs/architecture.md>)
- Each Bot gets its own container with Chromium, `/workspace` and a shell, a token-gated API bound to 127.0.0.1, a database on a separate Docker network, and an egress proxy that permits nothing until the server pushes a network policy; gVisor is optional (`COMPUTER_RUNTIME=runsc`) (source: <https://github.com/CopilotKit/OpenDuet/blob/main/openbot/docs/architecture.md>)
- The CopilotKit runtime sends usage events to telemetry.copilotkit.ai tagged `accessibility_title: OpenDuet` with the project's `CPK_TELEMETRY_ID`, and OpenDuet raises the SDK's 5 per cent sample rate to 100 per cent by default. `COPILOTKIT_TELEMETRY_DISABLED=true` or `DO_NOT_TRACK=1` turn it off (source: <https://github.com/CopilotKit/OpenDuet/blob/main/docs/telemetry.md>)
- A triage evaluation of 62 invented emails, labelled by the same person who wrote the prompt, reports 100 per cent precision and recall for claude-sonnet-5-5; the README calls it a regression check, not proof of accuracy (source: <https://github.com/CopilotKit/OpenDuet/blob/main/evals/triage/README.md>)
- The 27 October 2026 announcement gives `npm ci` and `npm run dev` as the start commands; the root `package.json` has no `dev` script and the README's Quick start uses `bun install` and `bash scripts/start.sh` (source: <https://www.copilotkit.ai/blog/introducing-openduet>)

- #15 of 52 in Best AI personal assistants that act for one person: https://www.anchorterminal.com/best/personal-assistants/index.md
- All 1196 assistants comparisons: https://www.anchorterminal.com/compare/personal-assistants/index.md

## Compare

- [asaply vs OpenDuet](https://www.anchorterminal.com/compare/asaply-vs-openduet.md): F 7.8 vs D 49.5
- [Asmi vs OpenDuet](https://www.anchorterminal.com/compare/asmi-vs-openduet.md): F 33.2 vs D 49.5
- [Boba vs OpenDuet](https://www.anchorterminal.com/compare/boba-vs-openduet.md): F 10.3 vs D 49.5
- [Brea vs OpenDuet](https://www.anchorterminal.com/compare/brea-vs-openduet.md): F 12.7 vs D 49.5
- [Del vs OpenDuet](https://www.anchorterminal.com/compare/del-vs-openduet.md): F 20.5 vs D 49.5
- [HireAlpha vs OpenDuet](https://www.anchorterminal.com/compare/hirealpha-vs-openduet.md): F 8.7 vs D 49.5
- [OpenDuet vs OpenInstinct](https://www.anchorterminal.com/compare/openduet-vs-openinstinct.md): D 49.5 vs F 21.9
- [OpenDuet vs Orbits](https://www.anchorterminal.com/compare/openduet-vs-orbits.md): D 49.5 vs F 15.7
- [OpenDuet vs Orchid](https://www.anchorterminal.com/compare/openduet-vs-orchid-ai.md): D 49.5 vs F 20.2
- [OpenDuet vs szn](https://www.anchorterminal.com/compare/openduet-vs-szn.md): D 49.5 vs F 7.8
- [OpenDuet vs Tab](https://www.anchorterminal.com/compare/openduet-vs-tab-bot.md): D 49.5 vs F 10.6
- [OpenDuet vs Zapia](https://www.anchorterminal.com/compare/openduet-vs-zapia.md): D 49.5 vs F 17.3
- [AstrBot vs OpenDuet](https://www.anchorterminal.com/compare/astrbot-vs-openduet.md): C 59 vs D 49.5
- [Boski vs OpenDuet](https://www.anchorterminal.com/compare/boski-vs-openduet.md): F 26.1 vs D 49.5
- [Caddy vs OpenDuet](https://www.anchorterminal.com/compare/caddy-app-vs-openduet.md): F 16.7 vs D 49.5
- [Claude Duet vs OpenDuet](https://www.anchorterminal.com/compare/claude-duet-vs-openduet.md): F 17.8 vs D 49.5
- [CowAgent vs OpenDuet](https://www.anchorterminal.com/compare/cowagent-vs-openduet.md): C 58.7 vs D 49.5
- [folk vs OpenDuet](https://www.anchorterminal.com/compare/folk-nozomio-vs-openduet.md): F 19.7 vs D 49.5
- [GAIA vs OpenDuet](https://www.anchorterminal.com/compare/gaia-vs-openduet.md): D 49.7 vs D 49.5
- [Gemini Spark vs OpenDuet](https://www.anchorterminal.com/compare/gemini-spark-vs-openduet.md): F 24.9 vs D 49.5
- [Grok Bot vs OpenDuet](https://www.anchorterminal.com/compare/grok-bot-vs-openduet.md): F 24.3 vs D 49.5
- [Haven vs OpenDuet](https://www.anchorterminal.com/compare/haven-vs-openduet.md): F 22.3 vs D 49.5
- [Hermes Agent vs OpenDuet](https://www.anchorterminal.com/compare/hermes-agent-vs-openduet.md): B 68.2 vs D 49.5
- [Instinct vs OpenDuet](https://www.anchorterminal.com/compare/instinct-vs-openduet.md): F 7.5 vs D 49.5
- [IronClaw vs OpenDuet](https://www.anchorterminal.com/compare/ironclaw-vs-openduet.md): B 66.8 vs D 49.5
- [Leon vs OpenDuet](https://www.anchorterminal.com/compare/leon-vs-openduet.md): E 41.3 vs D 49.5
- [Lindy vs OpenDuet](https://www.anchorterminal.com/compare/lindy-vs-openduet.md): F 32.5 vs D 49.5
- [nanobot vs OpenDuet](https://www.anchorterminal.com/compare/nanobot-vs-openduet.md): B 63 vs D 49.5
- [NanoClaw vs OpenDuet](https://www.anchorterminal.com/compare/nanoclaw-vs-openduet.md): B 68.6 vs D 49.5
- [Dots vs OpenDuet](https://www.anchorterminal.com/compare/openai-dots-vs-openduet.md): F 28.8 vs D 49.5
- [OpenClaw vs OpenDuet](https://www.anchorterminal.com/compare/openclaw-vs-openduet.md): B 67.4 vs D 49.5
- [OpenDuet vs PicoClaw](https://www.anchorterminal.com/compare/openduet-vs-picoclaw.md): D 49.5 vs D 46.2
- [OpenDuet vs Poke](https://www.anchorterminal.com/compare/openduet-vs-poke.md): D 49.5 vs F 37.7
- [OpenDuet vs QwenPaw](https://www.anchorterminal.com/compare/openduet-vs-qwenpaw.md): D 49.5 vs B 62.4
- [OpenDuet vs Tasker AI](https://www.anchorterminal.com/compare/openduet-vs-tasker-ai.md): D 49.5 vs F 7.6
- [OpenDuet vs Town](https://www.anchorterminal.com/compare/openduet-vs-town.md): D 49.5 vs D 48.7
- [OpenDuet vs ZeroClaw](https://www.anchorterminal.com/compare/openduet-vs-zeroclaw.md): D 49.5 vs BB 70.6
- [OpenDuet vs Zo Computer](https://www.anchorterminal.com/compare/openduet-vs-zo-computer.md): D 49.5 vs E 43.2
- [Atticus vs OpenDuet](https://www.anchorterminal.com/compare/atticus-vs-openduet.md): E 43 vs D 49.5
- [DeepTutor vs OpenDuet](https://www.anchorterminal.com/compare/deeptutor-vs-openduet.md): B 62.7 vs D 49.5
- [Hark Pro vs OpenDuet](https://www.anchorterminal.com/compare/hark-pro-vs-openduet.md): F 21.9 vs D 49.5
- [LearnHarness vs OpenDuet](https://www.anchorterminal.com/compare/learnharness-vs-openduet.md): C 59.3 vs D 49.5
- [OpenDuet vs Talorys](https://www.anchorterminal.com/compare/openduet-vs-talorys.md): D 49.5 vs F 29.4
- [Lobby vs OpenDuet](https://www.anchorterminal.com/compare/lobby-os-vs-openduet.md): F 11.2 vs D 49.5
- [Natura tinyNature vs OpenDuet](https://www.anchorterminal.com/compare/natura-vs-openduet.md): F 14.9 vs D 49.5
- [OpenDuet vs Pally](https://www.anchorterminal.com/compare/openduet-vs-pally.md): D 49.5 vs F 37.7
- [OpenDuet vs Tomo](https://www.anchorterminal.com/compare/openduet-vs-tomo.md): D 49.5 vs F 13.2
- [OpenDuet vs Wajo (Fo)](https://www.anchorterminal.com/compare/openduet-vs-wajo.md): D 49.5 vs E 43.9

## Verify this listing

For the vendor. The badge or a plain link to this page verifies the listing, from a page on copilotkit.ai or one of its subdomains, or the README of github.com/CopilotKit/OpenDuet. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "openduet", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify

HTML badge:

```html
<a href="https://www.anchorterminal.com/tools/openduet"><img src="https://www.anchorterminal.com/badges/openduet.svg" alt="OpenDuet on Anchor Terminal" height="20"></a>
```

Markdown badge, for a README:

```markdown
[![OpenDuet on Anchor Terminal](https://www.anchorterminal.com/badges/openduet.svg)](https://www.anchorterminal.com/tools/openduet)
```

Plain link:

```html
<a href="https://www.anchorterminal.com/tools/openduet">OpenDuet on Anchor Terminal</a>
```

## Share this listing

For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say OpenDuet is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.

- Dark: https://www.anchorterminal.com/assets/share/openduet-dark.png
- Light: https://www.anchorterminal.com/assets/share/openduet-light.png
- Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=openduet

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
