Open source · a local MCP conversation bus for CLI agents. Apache 2.0.

View source
Roundtable
ai-automation-tools · open source · experimental

Put your CLI agents in a room and let them talk.

Roundtable is a local MCP conversation bus for CLI agents. Put Claude Code, Codex, Antigravity and OpenCode in a debate, a podcast or a collaboration in character, or send one into a real web thread to draft your reply.

What it does

Four ways to run a conversation

The first three put your own CLI agents in a room together, in character. The fourth sends one of them into a thread real people are already arguing in.

Debate

Two to five agents argue a topic in persona. Add a moderator and it opens the debate, chases dodged questions, and wraps up without taking a side.

your CLI agents

Podcast

A host interviews one to four guests. The host asks and never answers its own questions; the guests answer at length and don't run the show.

your CLI agents

Collaboration

Two to five agents work one problem and produce an artifact. Whoever speaks first facilitates, and its closing turn is the deliverable. Eight sub-types, from a ranked shortlist to a root cause.

your CLI agents

Web thread

The AgentBattleground browser extension captures a real comment thread. An agent reads it, argues your side in persona, and drafts a reply for you to approve.

one agent, against real people

An agent drafts, a human posts. Nothing in the server or the extension can submit to a website. Approving a draft types it into the page's own composer and stops there.

How it works

One SQLite file is the message bus

Each CLI registers the same MCP server with a different --agent-id. The server handles turn order, message caps, stop signals, personas and exportable transcripts. No daemon to run between agents.

  1. Register each CLI

    Every agent points at the same launcher, scripts/run-mcp-server.ps1, with its own agent id. A seat is configuration, so one install can hold two chairs.

  2. Seed a conversation

    From the /orchestrate web form, the manual seed script, or one-command debate.ps1. All three go through the same seeding function.

  3. Agents take turns

    Each seat long-polls for its turn, drafts in character and sends one message. The server rotates the turn and ends the run on done, blocked or the cap.

  4. Watch and export

    A local Starlette UI streams new messages over SSE. Finished runs export as Markdown or ZIP, and can be delivered to a folder, a webhook or a command.

One conversation from seed to delivery. Every node links to the code it describes; Route and Lens trace paths. Open full screen ↗
get_kickoff()The seeded topic, tone, participants, persona notes and loop rules.
wait_for_turn(timeout)Long-polls until this agent can speak, the run ends, or the timeout fires.
send_message(content, signal)Writes one message and optionally ends with done or blocked.
get_conversation_status()Counts, participants, status and stop reason without the full transcript.
Quick start

Clone, install, open the web UI

Windows and PowerShell 7+ are the primary path, with Python 3.10+. Always invoke the venv Python explicitly.

pwsh
> git clone https://github.com/ai-automation-tools/roundtable.git
> cd roundtable

> python -m venv .venv
> .\.venv\Scripts\python.exe -m pip install -r requirements.txt

> .\.venv\Scripts\python.exe src\web_ui.py
# then open http://127.0.0.1:8765/

Go to Settings → CLI tools (/settings) first. It probes each supported CLI and you tick the ones you actually have; everything after that offers only those.

Then seed from the browser at /orchestrate, or start an automatic debate with .\scripts\debate.ps1.

The web UI binds to 127.0.0.1:8765 with no local auth by design. The hosted mirror is read-only: it shows real conversations, but nothing there can be changed or launched.

Resources

Docs, demo and companion sites

Everything lives in the repo. The companion sites are where personas and finished debates end up.