Open Duet
Open-source, self-hosted alternative to Claude Duet and similar paid AI agent products, providing named AI coworkers with instructions, memory, routines, isolated computers, and approval before risky actions.
Visit Anil-matcha/open-duetOverview
Open Duet is an open-source, self-hosted workspace for named AI coworkers. Each agent can have a job, instructions, memory, a workspace and isolated computer, schedules, and a human approval step before risky actions. Users interact through a browser, desktop app, or Telegram, while data and credentials stay on their own machine or server. It is positioned as an alternative to Claude Duet and other paid AI agent products, but not yet a feature-for-feature replacement.
Key Features
- Named agents with a title, instructions, engine and model, workspace folder, approval mode, and exportable/importable agent files.
- Per-agent memory notes that load into conversations, with recall across conversations and undo.
- Routines using cron, weekday, interval, one-off, and webhook schedules with timezones, run history, missed-run tracking, restart recovery, and in-app notifications; routines never approve by themselves.
- Approval modes including ask-first, accept-edits, and plan, with saved rules, decision log, safety floor, and Allow/Deny for risky actions.
- Optional isolated Docker container as the agent's own computer so commands and file edits run there, not on the host machine; labeled experimental.
- Multiple engines including Claude, Codex, Agent Client Protocol CLIs, and OpenAI-compatible endpoints, with limit-aware fallback; web, desktop, and Telegram channels share one API.
Use Cases
- Individuals and small teams that want self-hosted AI coworkers while keeping data and credentials under their own control.
- Recurring research, reporting, support triage, or other delegated work handled through named agents and scheduled routines.
- Agents that need to read or write files or run commands in an isolated container, with human approval before risky actions.
- Access to agents and routines from a browser, desktop app, or Telegram, including phone access to server-hosted agents.
Getting Started
- For the desktop app, clone the repository, change into the desktop folder, and run npm run app; it performs first-time setup, builds when needed, and opens Open Duet using local SQLite and OS secret storage.
- On a server, use python -m app.server, the Docker image and compose file, doctor, backup, and restore, following the self-hosting guidance; engines must be signed in on the server.
- For development, run scripts/dev.sh from the repository root to prepare configuration, start PostgreSQL through Docker when selected, install dependencies, run migrations, and start FastAPI, the optional Telegram bot, and the web UI.
- Before creating or chatting with agents, confirm that at least one signed-in engine is ready in Settings.
Deployment & Requirements
- At least one ready engine: a signed-in Claude Code or Codex CLI, an Agent Client Protocol CLI, or an OpenAI-compatible endpoint.
- Desktop app: Node.js 22+, uv, and local SQLite; no .env file is required, and its encryption key is kept in the operating system's secret storage.
- Server: Linux, a domain, Docker or Node.js and uv, a signed-in engine on the server, and HTTPS through nginx or Caddy; authentication is single-owner.
- Development setup: uv, Node.js 20.9+ and npm, Docker for PostgreSQL unless using experimental SQLite, and Bash for scripts/dev.sh; Boat and Telegram are optional and need their own credentials.
- Agents require LOCAL_EXECUTION_ENABLED=true on server or development setups; file edits and commands also require LOCAL_TOOLS_ENABLED=true and still ask for approval.
Before You Adopt
- License: Apache-2.0. Review its terms before using, modifying, or distributing the project.
- Open Duet is in active development, so evaluate the known limitations before running it for other people.
- The project is positioned as an alternative to paid AI agent products but is not yet a feature-for-feature replacement.
- Rooms and teams are not built, so those collaboration features should not be assumed.
- Authentication is single-owner: one passphrase per install plus paired devices, so use HTTPS beyond a trusted private network.
- Desktop installers are unsigned, and macOS and Linux have not been run, so those builds should be treated cautiously.