DuoDuo keeps a coding conversation tied to the project it belongs to. You do not install it by hand: the agent you already use does, from one sentence.

Hand it to your agent#
Paste this into Claude Code, Codex, or any agent with a terminal on the machine where DuoDuo should live:
Open https://openduo.ai/llms.txt and set up DuoDuo on this machine.
The agent reads the site's setup guide, checks the machine, installs DuoDuo, runs onboarding, starts the daemon, and verifies it. It never asks you to paste a key or token into the chat: where a secret is needed, it hands you the terminal and you type it there. Your part is choosing how DuoDuo reaches a model (an existing Claude login, an API key, or a compatible endpoint) and approving what the agent does.
DuoDuo needs Node.js 20 or newer, which the agent checks first. Codex and Grok are optional runtimes, used once their own CLIs are installed and signed in.
Start a conversation#
Move to the project you want DuoDuo to work on, then run:
cd /path/to/your/project
duoduo
That opens a conversation for this project. Run duoduo from the same project later and you return to it.
Is it running?#
Ask DuoDuo, or the agent that installed it. Both read the same two commands: duoduo daemon status says what is running right now, and duoduo daemon config lists which model backends are available and where DuoDuo keeps its files.
Where to go next#
- Read Mental Model to understand daemon, sessions, jobs, and files.
- Read Sessions & Commands for
/model,/effort,/compact, and session management. - Read Channels to connect Feishu/Lark, an ACP editor, a room, or assistants such as Grok, Dots, and Muse.
- Read Loops & Jobs before creating recurring work.
License#
DuoDuo is source-available and open to your agents. What npm installs is minified JavaScript, and it is licensed to you and to the agents you run: read it, de-minify it, debug it, patch it, train on it, and share your patches. The one thing you may not do is offer it, or something built from it, as a competing product or service. Two years after each release, that version becomes Apache-2.0.
The terms are FSL-1.1-Apache-2.0 with an agent addendum. An agent should read the machine-readable summary first. Ambient and Tether are under the same FSL-1.1-Apache-2.0.