Human-in-the-loop group chat where AI agents like Claude and Codex collaborate in one shared thread
Project description
Manylogue
Human-chaired group chat for cross-model multi-agent collaboration. Several AI agents — Claude and Codex today — converse with each other and with you in one room, streaming their intermediate work (narration, tool calls) live and committing one final answer per turn. The point is to make multi-agent collaboration legible: you see who is thinking, what they are doing, and how the conversation settles, instead of black-box orchestration.
It's a FastAPI app: you chair the thread, and each agent's adapter responds in turn against a project working directory you choose. The transcript is plain JSONL on disk — readable, diffable, and durable across restarts.
For the why and real examples — a room reversing a wrong consensus, catching its own groupthink — read the introduction post: Manylogue: Cross-Model Multi-Agent Collaboration System.
[!warning] Manylogue is a personal project meant to run locally, and it runs agents with their permission prompts disabled. Read Security before pointing it at anything you care about.
Prerequisites
- Python 3.12+, and uv for the no-clone install below (pip works too).
- Claude Code — to chat with Claude agents.
Install it, run
claudeonce to log in, then verify:claude -p "Say exactly OK"prints OK. - Codex CLI — to chat with Codex agents.
Install it, run
codexonce to sign in, then verify:codex login statusprintsLogged in using ChatGPT.
One agent CLI is enough to start, but cross-model rooms need both. Manylogue drives the agents through the official SDKs and reuses the CLIs' subscription logins — no API keys live in Manylogue. See Agent parity & skills.
Install & run
Option 1 — no clone, with uv:
uvx --prerelease allow manylogue # serves http://127.0.0.1:8000
The flag is needed because the Codex SDK is still in beta and pins a pre-release runtime, which uv won't resolve from an index without an explicit opt-in. It goes away once the SDK ships a stable release.
Or with pip — no flags needed:
pip install manylogue
manylogue
Option 2 — from source:
git clone https://github.com/kmuzykov/manylogue
cd manylogue
uv sync
uv run manylogue
Open the URL, create a chat (pick a project directory the agents may work in), add participants, and send a message. Stop and restart any time — chats and per-agent state persist.
manylogue accepts --home <dir>, --host, and --port.
Security
Manylogue is a personal playground project, shared because it's useful — not a hardened product. Run it only if you're comfortable with all of the following:
- Agents run with permission prompts disabled. The Claude adapter uses
permission_mode="bypassPermissions": every file edit and command an agent decides to run is auto-approved, with no per-action review. Codex runs equivalently unattended. - Agents act on your real filesystem. They read, write, and run tools in the working directory you point a chat at — no sandbox, no worktree, by design. Point chats only at directories you trust the agents to operate in (a scratch clone is a good start).
- Localhost only. The server binds to
127.0.0.1and has no authentication. Do not expose it to a network or the public internet.
See SECURITY.md for the full risk model, sensible precautions, and vulnerability reporting.
Configuration
Manylogue keeps its config and chat history under <home>/.manylogue/, where <home>
defaults to your OS user home (so ~/.manylogue). Point MANYLOGUE_HOME elsewhere — or
pass manylogue --home <dir> — to relocate it. On first run Manylogue seeds the
config with the bundled default agents and roles; edit them in place, your changes are
never overwritten.
Layout under <home>/.manylogue/:
agents/*.toml— agent definitions (adapter, model, role, description)roles/*.md— role prompts referenced by agentsstorage/chats/— chat history; never seeded or touched by updates.env— optional settings and secrets (see.env.example)
Environment variables are read with this precedence (first setter wins):
- the process environment
<home>/.manylogue/.env— the place for secrets./.envin the directory you launch from — dev fallback; may setMANYLOGUE_HOME
Set MANYLOGUE_LOG_LEVEL (DEBUG, INFO, WARNING, ERROR; defaults to DEBUG) to
control log verbosity.
Capabilities & limitations
- Claude and Codex run through their subscription CLIs/SDKs, so agents inherit the real Claude Code / Codex runtime — their tools, instruction-file discovery, and (for Claude) skills — from your local install. With no local CLI the SDKs fall back to API-key billing with default built-in tools and none of your MCP servers; that fallback path is not yet verified.
- An OpenAI-compatible adapter exists (e.g. local models via Ollama) but is conversation-only today — no file read/write/search tools, so local models participate as talkers, not actors. Making them first-class participants is on the roadmap.
Troubleshooting
Claude turns fail with 401 Invalid authentication credentials (or "Please run /login").
Manylogue's Claude adapter authenticates with your Claude subscription login, so test it
directly from a terminal:
claude -p "say ok"
If that prints OK, Claude is authenticated and Manylogue will work. If it returns a 401,
your login has expired — run claude logout, then claude login, then restart Manylogue so
it picks up the refreshed credential.
Agent parity & skills
The contract both adapters aim for: an agent's turn should behave like a fresh CLI
session (claude / codex) opened in the chat's project directory. Instruction files
(CLAUDE.md / AGENTS.md), tools, MCP servers, and skills are inherited from your local
CLI setup, not configured in Manylogue — so if something works in your terminal, it
should work in the room.
Two discrepancies we hit in practice, and what solved them at the time (as of July 2026 — SDK and CLI behavior moves fast, so verify against current docs if something looks off):
-
Claude's document skills (DOCX / PDF / PPTX / XLSX) were missing. Claude Desktop had installed them into a GUI-only store that neither the terminal CLI nor SDK-driven sessions like Manylogue's could read. Installing them as a CLI plugin fixed it:
claude plugin marketplace add anthropics/skills claude plugin install document-skills@anthropic-agent-skillsNote these skills shell out to Python libraries and LibreOffice (
soffice) at execution time — they need those installed to actually produce documents. -
Claude agents lacked newer built-in skills. The
claudebinary bundled with the Agent SDK lagged the installed CLI; pointing the adapter at the standalone binary viaClaudeAgentOptions(cli_path=...)fixed that.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file manylogue-0.1.2.tar.gz.
File metadata
- Download URL: manylogue-0.1.2.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e172b195af3d53e75e270c7ebdceb69682f1838f23c9da48adee396e93c083c8
|
|
| MD5 |
68ecf4a577feeedecb5b0d4ed588a506
|
|
| BLAKE2b-256 |
435bc16d02fed0505f4d0c0d2d0189c2e1134836919702d47d2a088faa62a78b
|
File details
Details for the file manylogue-0.1.2-py3-none-any.whl.
File metadata
- Download URL: manylogue-0.1.2-py3-none-any.whl
- Upload date:
- Size: 59.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62e7b8a6d85f428c0c0ace65f1f5a70f6d5dcd4ab5918de4142969134b5bd3c5
|
|
| MD5 |
a972a98f23583716244b214a51da65bb
|
|
| BLAKE2b-256 |
4fc2e7c40171022657bac917bfcbda4e141608cff6e4d06d1b9be177067cd8a4
|