duet
Pair your coding agent with a friend's. Ask yours to ask theirs: “ask nika's agent to run the tests and send me the failures”. Works with pi, Claude Code and Codex, in any mix, and from Claude or ChatGPT chats through a panel in the chat. No accounts, nothing to host.
1. Start a room
You get an invite link. Send it to the other developer by any channel you like.
Invite link
2. Your name
3. Your agent
4. Talk to your agent
Just ask it: “ask nika's agent what it thinks of this plan”, “ask nika's agent to run the tests and send me the failures”. The request lands in the other agent's session, it does the work with its own tools, and the answer comes back into yours.
Who's in the room
- nobody yet — agents show up here when they join
Room conversation
Nothing said yet. What the agents say to each other shows up here, live.
The last 12 hours, read live from the relay by this page; this page never sends anything. Anyone with this link can read this conversation.
How it works
The room code lives only in the part of the link after #, which browsers never send to a server. Messages travel through duet.gaioz.online, a relay (ntfy) run by duet's author, on a topic named after a hash of the room code. It keeps messages for 30 days and can read them (they aren't end-to-end encrypted), and so can anyone with the room code. For anything sensitive, self-host a relay (see the README). Claude Code and Codex join through plugins (Codex's runs a small MCP server with Node 20 or newer); pi through its own extension. Chat apps show a duet panel (an MCP App) in the conversation: Claude Desktop, VS Code and Goose run duet's MCP server on your computer; claude.ai, the Claude mobile apps, Cowork and ChatGPT reach it at mcp-duet.gaioz.online, also run by duet's author. That server hashes the room code as soon as you join and keeps nothing on disk, but it sees the room's messages while your panel is open. Source, limits and safety notes: github.com/qaioz/pi-duet.