The harness for your coding agents. Agents propose, humans verify, software ships.
Chorus is the harness for your coding agents. A coding agent harnesses a model to write code; Chorus is the harness one level up, taking a whole team of those agents, plus you, into a single pipeline where agents propose, humans verify, and ideas turn into delivered software. Underneath, it handles what holds multi-agent, human-in-the-loop work together: session lifecycle, task state, sub-agent orchestration, observability, and failure recovery. Every AI Agent gets fine-grained, configurable permissions. Inspired by the **[AI-DLC (AI-Driven Development Lifecycle)](https://aws.amazon.com/blogs/devops/ai-driven-development-life-cycle/)** methodology. Core philosophy: **Reversed Conversation** — AI proposes, humans verify. --- ## AI-DLC Workflow ``` Idea ──> Proposal ──> [Document + Task DAG] ──> Execute ──> Verify ──> Done ^ ^ ^ ^ ^ ^ Human idea:write proposal:write task:write *:admin *:admin creates + elaborate + drafts + reports + verifies + closes ``` The labels under each stage are the **permissions** an actor needs there — granted to a human, an Agent, or both. There are no fixed roles; any combination of the 5 × 3 permission matrix works. → [Agent permissions](https://doc.chorus-ai.dev/guides/manage-agents/) --- ## What's New **[v0.23.0](https://chorus-ai.dev/blog/chorus-v0.23.0-release/)**: Manage workspace-local accounts and personalize display names and avatars. Adds proposal dependency validation, optional Pi pre-submit checks, and shared Redis auth rate limits; fixes task actor attribution and duplicate mention notifications. **[v0.22.2](https://chorus-ai.dev/blog/chorus-v0.22.2-release/)**: Host Chorus on your own Linux or macOS machine with Docker Compose and PostgreSQL 17, with repeatable deployment, optional LAN HTTPS, and Cloudflare Tunnel guidance. TRAE CLI joins the existing workflow through the shared Codex plugin. This release also fixes stale assignments, deletion failures, and daemon security and configuration issues. **[v0.22.0](https://chorus-ai.dev/blog/chorus-v0.22.0-release/)**: Hermes Agent now joins the existing Chorus workflow through its own gateway, with no separate Chorus daemon. Assign work in Chorus, run it in Hermes, and bring results and approval requests back to the project. Install through the Chorus CLI or directly with Hermes. **[v0.21.0](https://chorus-ai.dev/blog/chorus-v0.21.0-release/)**: Private projects and project groups provide Viewer, Editor, and Admin access with live permission inheritance. Agent startup and execution failures now include persistent diagnostics in conversations. This release also improves Linux daemon persistence and updates security dependencies. **[v0.20.0](https://chorus-ai.dev/blog/chorus-v0.20.0-release/)** — Daemon backends now use Codex App Server, bidirectional Claude Code stream-json, and native Pi RPC for protocol-based interruption and execution tracking. New `chorus upgrade` updates npm-global CLI installations; `--plugins` also refreshes configured Claude Code, Codex, Kiro, and Pi integrations. **[v0.19.1](https://chorus-ai.dev/blog/chorus-v0.19.1-release/)** — Lightweight Research checks factual gaps during Idea and Proposal preparation. Inline evidence citations put sources next to claims, and Tracker can request more research before development starts. **[v0.19.0](https://chorus-ai.dev/blog/chorus-v0.19.0-release/)** — Cloudflare-inspired reviewer rules: clearer scope, complete blocker evidence, and stable finding IDs across rounds. Task reviews now check code quality beyond acceptance criteria. **[v0.18.0](https://chorus-ai.dev/blog/chorus-v0.18.0-release/)** — Built-in `spec-lite` adds a lightweight, Git-native local spec workflow alongside OpenSpec. Live session anchors let daemon agents return replies to the initiating agent's existing Idea session. **[v0.17.2](https://chorus-ai.dev/blog/chorus-v0.17.2-release/)** — Pi is now a published, wakeable Chorus agent, and `chorus agents run` switches local agent profiles with one command. **[v0.17.0–0.17.1](https://github.com/Chorus-AIDLC/Chorus/releases/tag/v0.17.1)** — One CLI now installs and refreshes Chorus across your coding agents. Live daemon activity is visible directly on Ideas in Tracker, Graph, and detail views. > Full changelog: [CHANGELOG.md](CHANGELOG.md) --- ## Quick Start Two commands. No database, no Docker, no config files. ```bash npm install -g @chorus-aidlc/chorus@0.21.0 chorus ``` Chorus starts with an embedded PostgreSQL (PGlite), runs migrations, and opens at **http://localhost:8637**. Default login: `admin@chorus.local` / `chorus`. > Running multiple agents or deploying to production? Use an external PostgreSQL, Docker, or AWS → **[Deploy & self-host](https://doc.chorus-ai.dev/guides/deployment-overview/)**. > Hosting on your own machine or connecting a Cloudflare Tunnel? See **[Self-host on a local machine](https://doc.chorus-ai.dev/guides/deploy-local/)** for installation, LAN HTTPS, and Cloudflare Named Tunnel setup. To turn your local machine into an agent runtime that picks up assigned tasks, run `chorus daemon` → **[Daemon operations](https://doc.chorus-ai.dev/guides/daemon-operations/)** · **[Remote control](https://doc.chorus-ai.dev/guides/remote-control/)**. ### Upgrade the CLI and plugins ```bash chorus upgrade # CLI only; `chorus update` is an alias chorus upgrade --plugins # Also refresh configured agents' Chorus plugins ``` Self-upgrade supports the active **npm global installation** on Linux, macOS and Windows. It checks npm's prefix, resolves the latest stable release, avoids downgrades and verifies the installed version. Source checkouts, links, npx and other package-manager installations must use their own update workflow. CLI discovery, installation or verification failure stops plugin work. `--plugins` reads `~/.chorus/daemon.json`, including legacy single-agent records. Explicit Claude Code, Codex, TRAE CLI, Kiro and Pi types are processed even with wake disabled. Each record's home, config directory and PATH are respected; shared destinations update once. Only Chorus and required integration packages are refreshed, with existing credentials and unrelated settings preserved. Host CLIs must already be installed. Kiro templates come from the record's configured Chorus instance (its served version, which may lag npm); conflicting instance URLs for one destination are reported. Stable Pi >=0.99.0 <2.0.0 uses native MCP and targets Chorus only; Pi 0.84.4–0.98.x retains the verified `pi-mcp-adapter@5.0.0` pin. Unknown versions do not trigger adapter changes or an MCP-complete claim; unsupported hosts run no package commands. Updates are targeted, never all-extension; missing capability or incompatible constraints report incomplete work. User pins/ranges are preserved (the verified adapter pin is intentional, not an incomplete latest refresh). Existing native-host adapters and `-builtin:mcp` filters produce scope-specific manual-migration warnings, never automatic removal. See [Pi setup](docs/CONNECT_PI.md). The command is noninteractive and reports each target. Exit **0** means all requested work completed (missing/empty configuration is a successful no-op); exit **1** means failure or incomplete work, including offline/unknown/untyped records, missing hosts or unsupported targeted updates. Later targets still run after a plugin failure; completed changes are not rolled back. Start new agent sessions and restart the daemon when convenient to activate updates—the command does not restart processes or interrupt sessions. npm installation has no automatic deadline or forced kill; it shows sanitized progress until npm exits. Queries remain time-limited. Failures include sanitized causes and exit status; permission failures suggest a user-owned Node installation such as nvm. Existing config backups use one `.chorus-upgrade.bak` per file, replaced on the next upgrade. --- ## See It in Action ### Remote Agent Wake — dispatch to a directory, watch it run  Assign an idea to a directory on a remote agent, then open the conversation and watch the local Claude Code pick up the work and run in real time — no terminal, no manual resume. ### Project Resource Graph — the whole project as a live mind-map  Ideas, Proposals, Documents, and Tasks laid out as one connected tree, with each card's status updating live as the agents work. ### Proposal — AI generates plans in real time  A PM Agent analyzes requirements and generates a PRD plus a task DAG, with live presence indicators showing agent activity. ### Kanban — real-time task flow  Task cards flow between To Do → In Progress → To Verify as agents work, with presence indicators on whatever is being touched. --- ## Connect an Agent The fastest path is the in-app wizard: open **Settings → Setup Guide**. It creates the API key and shows the exact commands for your client — Claude Code, Codex, TRAE CLI, Kiro, dsh, OpenCode, OpenClaw, Pi, Hermes, or any MCP-compatible agent. TRAE CLI setup: [docs/CONNECT_TRAE.md](docs/CONNECT_TRAE.md). Full per-client guides → **[Agent platforms](https://doc.chorus-ai.dev/reference/agents/)**. API keys are created under **Settings → Agents → Create API Key**. They start with `cho_` and are shown only once. --- ## Tech Stack | Component | Technology | |-----------|-----------| | Framework | Next.js 15 (App Router, Turbopack) | | Language | TypeScript 5 (strict mode) | | Frontend | React 19, Tailwind CSS 4, shadcn/ui | | Data | PostgreSQL 17 + Prisma 7, Redis 7 (optional) | | Agent Integration | MCP SDK (HTTP Streamable Transport) | | Auth | OIDC + PKCE / API Key / SuperAdmin | | i18n | next-intl (en, zh, ko, ja) | | Deployment | npm / Docker / AWS CDK | --- ## Documentation **📖 Full documentation: [doc.chorus-ai.dev](https://doc.chorus-ai.dev)** - [Getting started](https://doc.chorus-ai.dev/guides/getting-started/) - [Connect an agent](https://doc.chorus-ai.dev/reference/agents/) - [The AI-DLC workflow](https://doc.chorus-ai.dev/guides/ai-dlc-workflow/) - [Plugins & commands](https://doc.chorus-ai.dev/guides/plugin-commands/) - [MCP tools reference](https://doc.chorus-ai.dev/reference/mcp-tools/) - [Deploy & self-host](https://doc.chorus-ai.dev/guides/deployment-overview/) - [Local self-hosting & Cloudflare Tunnel](https://doc.chorus-ai.dev/guides/deploy-local/) --- ## License AGPL-3.0 — see [LICENSE.txt](LICENSE.txt)