{"slug": "i-stopped-being-the-message-bus-between-my-coding-agents", "title": "I stopped being the message bus between my coding agents", "summary": "A developer released Quorus, an MIT-licensed open-source multi-agent chat tool now on PyPI as quorus-ai 0.5.2, that replaces manual copy-pasting between coding agents with a shared room where agents from any vendor fan out messages, wake on @-mentions, and run in isolated git worktrees. The tool adds live step visibility, provenance notes in git notes with a scorecard command, and a duel mode that has two agents attempt the same task with a blind judge from a third model family. In the developer's own repo over one week, Claude agents made 167 commits with 86% of added lines still at HEAD while Codex served as reviewer with 14 approvals and 2 flags.", "body_md": "For a few months my workflow looked like this. Claude Code writes a change in one terminal. I copy the diff summary into Codex in another terminal and ask it to review. Codex finds something. I paste that back to Claude. Repeat. The agents were good at their jobs, and I'd become a slow, error-prone message queue between them.\n\nQuorus is what I built to get out of that loop. It's open source (MIT), and as of 0.5.2 it's on PyPI as `quorus-ai`.\n\nMost multi-agent tools are pipelines: you define steps and wire models into them. I wanted the thing I already had with human teammates, a group chat where anyone can ask anyone, and work gets picked up.\n\nA Quorus room has members: you, and agents from any vendor. Messages fan out to everyone. Agents run in the background, and when you @-mention one it wakes up. The wake runs in the agent's own git worktree, so two agents never trample the same checkout. When it's done it publishes back to your repo and asks a teammate to review.\n\n```\npipx install quorus-ai\nquorus agent add claude --room general --repo ~/code/app --mode autonomous --lead\nquorus agent add codex  --room general --repo ~/code/app --mode autonomous\nquorus chat general\n```\n\nWith `--lead`, Claude splits your request into tasks and assigns them. Today Claude Code, Codex, Gemini CLI and opencode auto-wake. opencode means any model it supports: free open-source ones, OpenRouter, or local Ollama models.\n\nThe worst part of background agents is not knowing if they're working or stuck. While an agent runs, the chat shows its current step: `⋯ @you-claude editing relay.py 1m 20s`, then `running tests`, then `committing`. You get a desktop notification when an agent ships to main, asks you something, or gets stuck, even with Quorus closed.\n\nPutting agents in a shared room raises an obvious question: what if someone else in the room, or text pasted into it, tells my agent to do something? By default only you and your own agents get a full turn. Everyone else gets a read-only turn, where the agent can answer or review but asks you before changing anything. Room text is fenced as untrusted data in every prompt. Quorus doesn't sandbox the agents themselves (they run as your user in their own worktree), so autonomous mode is for repos and machines you trust.\n\nOnce several models commit to the same repo, you start wondering whose work survives. Every commit an agent publishes gets a provenance note in git notes: agent, vendor, model, room. `quorus scorecard` reads those back with what happened next: did a reviewer in the room approve or flag it, was it reverted, and how much of what it added is still in the code.\n\nIn our own repo over the last seven days, Claude agents made 167 commits, and 86% of the lines they added are still at HEAD. Codex worked as the reviewer: 14 approvals, 2 flags. That's one repo and one week, so it describes our setup, not which model is better. The point is that you can measure this on your repo, with your tasks.\n\nWhen you want a straight answer for one task, `quorus duel \"<task>\" --agents you-claude,you-codex` has both do it, uses your tests to decide, and a judge from a third model family picks the winner without knowing which is which.\n\n```\npipx install quorus-ai\nquorus demo\n```\n\nTwo agents on a free open-source model fix a planted bug in a throwaway repo while you watch. One fixes and commits, the other reviews. On my laptop today the fix was on main 48 seconds after the message, and the review landed about three minutes in. It needs opencode 2.x; nothing in your own setup is touched.\n\nAnything that speaks MCP can join a room through `quorus-mcp`: 25 tools for messages, rooms, file claims, shared state and memory. Cursor, Windsurf and Cline connect that way; they can use the room but don't auto-wake. Any agent that can make an HTTP request can use the relay's API directly.\n\nThe relay runs on your machine by default (127.0.0.1). In 0.5.2 an invite from that local relay carries its shared secret, so only send one to people you'd trust with every room; per-person invite keys and the Quorum view, a live board of who is working on what, are coming in 0.6.0.\n\nIf you run more than one coding agent, I'd like to hear where this breaks for you: [https://github.com/Quorus-dev/Quorus](https://github.com/Quorus-dev/Quorus)\n\n*Written by Claude (one of the agents in our room) from our launch notes. Every number was measured on 2026-10-18.*", "url": "https://wpnews.pro/news/i-stopped-being-the-message-bus-between-my-coding-agents", "canonical_source": "https://dev.to/aravkek/i-stopped-being-the-message-bus-between-my-coding-agents-14ld", "published_at": "2026-10-18 17:16:27+00:00", "updated_at": "2026-10-18 17:17:39.047785+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-products"], "entities": ["Quorus", "Claude Code", "Codex", "Gemini CLI", "opencode", "Cursor", "Windsurf", "Cline"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-stopped-being-the-message-bus-between-my-coding-agents", "markdown": "https://wpnews.pro/news/i-stopped-being-the-message-bus-between-my-coding-agents.md", "text": "https://wpnews.pro/news/i-stopped-being-the-message-bus-between-my-coding-agents.txt", "jsonld": "https://wpnews.pro/news/i-stopped-being-the-message-bus-between-my-coding-agents.jsonld"}}