# Open Duet

> Open-source, self-hosted workspace for AI coworkers: named agents with instructions, memory, routines, isolated computers and human approval before risky actions.

Open Duet is an open-source, self-hosted workspace for AI coworkers, published on GitHub by Anil-matcha under the Apache License 2.0. Each named agent has a job, instructions, memory, its own workspace, a schedule and a human approval step before risky actions. Users chat with agents in a browser, a desktop app or Telegram, and keep data and credentials on their own machine or server. The project lists its status as active development.

## What It Is

Open Duet is a self-hosted agent workspace. An agent can be a researcher, a support triager, a reporting assistant or a developer; coding is one use, not the focus. Agents run on an engine you already have signed in: Claude, Codex, any Agent Client Protocol CLI, or an OpenAI-compatible endpoint. The README positions it as an open alternative to paid products such as Claude Duet and ChatGPT agent, and states it is not yet a feature-for-feature replacement.

## How Agents Work

- Agents carry a title, instructions, engine and model, workspace folder and approval mode, and can be exported and imported as files.
- Each agent keeps notes (MEMORY.md plus topic notes) that load into its conversations, with recall across conversations and undo.
- Routines run prompts on cron, weekday, interval, one-off or webhook schedules, with run history, missed-run tracking and in-app notifications.
- Risky actions show a card and wait for Allow or Deny. Modes include ask-first, accept-edits and plan, plus saved rules and a decision log.
- An agent can optionally get an isolated Docker container so commands and file edits never run on your machine (experimental).
- If an engine hits a usage limit, a turn can fall back to another engine.

## Setup Path

The desktop app runs from a source checkout with Node.js 22+ and uv, using a local SQLite database and OS secret storage for its encryption key. Unsigned installers are built for tagged releases. For always-on use, a server-hosted mode offers python -m app.server, a Docker image and compose file, nginx and Caddy overlays, and doctor, backup and restore commands. PostgreSQL is the default database, with SQLite experimental.

## Current Status and Limitations

Desktop and server modes are marked experimental. Authentication is single-owner. Agent-to-agent delegation, rooms, teams and most connectors are planned rather than built. An optional legacy flow runs Telegram and web tasks in hosted Boat sandboxes.

## Features
- Named agents with instructions, engine, model and workspace
- Per-agent memory notes with recall and undo
- Routines: cron, interval, one-off and webhook schedules
- Approval modes, saved rules and decision log
- Isolated Docker computer per agent (experimental)
- Durable streaming conversations with tool-call timeline
- Multiple engines with limit-aware fallback
- Desktop app, web UI and Telegram bot
- Self-hosting with Docker, nginx/Caddy, backup and restore
- Encrypted credentials in PostgreSQL or SQLite
- Export and import agents as portable files

## Integrations
Claude, Codex, Agent Client Protocol, OpenAI-compatible endpoints, Telegram, Docker, PostgreSQL, SQLite, Boat sandboxes, GitHub, Parallel Search MCP

## Platforms
WINDOWS, MACOS, LINUX, WEB, API, CLI

## Pricing
Open Source

## Links
- Website: https://github.com/Anil-matcha/open-duet
- Documentation: https://github.com/Anil-matcha/open-duet/blob/main/docs/SETUP.md
- Repository: https://github.com/Anil-matcha/open-duet
- EveryDev.ai: https://www.everydev.ai/tools/open-duet
