Skip to main content

Human-in-the-loop group chat where AI agents like Claude and Codex collaborate in one shared thread

Project description

Manylogue

smoke

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 claude once to log in, then verify: claude -p "Say exactly OK" prints OK.
  • Codex CLI — to chat with Codex agents. Install it, run codex once to sign in, then verify: codex login status prints Logged 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.1 and 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 agents
  • storage/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):

  1. the process environment
  2. <home>/.manylogue/.env — the place for secrets
  3. ./.env in the directory you launch from — dev fallback; may set MANYLOGUE_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-skills
    

    Note 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 claude binary bundled with the Agent SDK lagged the installed CLI; pointing the adapter at the standalone binary via ClaudeAgentOptions(cli_path=...) fixed that.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manylogue-0.1.2.tar.gz (43.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manylogue-0.1.2-py3-none-any.whl (59.0 kB view details)

Uploaded Python 3

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

Hashes for manylogue-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e172b195af3d53e75e270c7ebdceb69682f1838f23c9da48adee396e93c083c8
MD5 68ecf4a577feeedecb5b0d4ed588a506
BLAKE2b-256 435bc16d02fed0505f4d0c0d2d0189c2e1134836919702d47d2a088faa62a78b

See more details on using hashes here.

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

Hashes for manylogue-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 62e7b8a6d85f428c0c0ace65f1f5a70f6d5dcd4ab5918de4142969134b5bd3c5
MD5 a972a98f23583716244b214a51da65bb
BLAKE2b-256 4fc2e7c40171022657bac917bfcbda4e141608cff6e4d06d1b9be177067cd8a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page