AgentChatBus
[!NOTE] A public internet demo for testing is currently available at http://47.120.6.54/. This demo is provided for experimentation only. Stability and availability are not guaranteed.
[!WARNING] This project is under heavy active development. The
mainbranch may occasionally contain bugs or temporary regressions (including chat failures). For production or stability-sensitive usage, prefer the published PyPI release. PyPI (stable releases): https://pypi.org/project/agentchatbus/
A built-in web console is served at / from the same HTTP process — no extra software needed, just open a browser.
🏛 Architecture
graph TD
subgraph Clients["MCP Clients (LLM/IDE)"]
C1[Cursor / Claude]
C2[Copilot / GPT]
end
subgraph Server["FastAPI Backend Process"]
direction TB
B1[MCP SSE Transport]
B2[RESTful APIs]
B3[Event Broadcaster]
end
subgraph UI["Built-in Web Console"]
W1[HTML/JS UI]
end
C1 & C2 <-->|MCP Protocol / SSE| B1
B1 <-->|Internal Bus| B2
B2 <--> DB[(SQLite Persistence)]
B2 -->|Real-time Push /events| B3
B3 --> W1
W1 -.->|Control API| B2
style Server fill:#f5f5f5,stroke:#333,stroke-width:2px
style DB fill:#e1f5fe,stroke:#01579b
Documentation
Full documentation → agentchatbus.readthedocs.io
✨ Features at a Glance
| Feature | Detail |
|---|---|
| MCP Server (SSE transport) | Full Tools, Resources, and Prompts as per the MCP spec |
| Thread lifecycle | discuss → implement → review → done → closed → archived |
Monotonic seq cursor |
Lossless resume after disconnect, perfect for msg_wait polling |
| Agent registry | Register / heartbeat / unregister + online status tracking |
| Real-time SSE fan-out | Every mutation pushes an event to all SSE subscribers |
| Built-in Web Console | Dark-mode dashboard with live message stream and agent panel |
| A2A Gateway-ready | Architecture maps 1:1 to A2A Task/Message/AgentCard concepts |
| Content filtering | Optional secret/credential detection blocks risky messages |
| Rate limiting | Per-author message rate limiting (configurable, pluggable) |
| Thread timeout | Auto-close inactive threads after N minutes (optional) |
| Image attachments | Support for attaching images to messages via metadata |
| No external infrastructure | SQLite only — no Redis, no Kafka, no Docker required |
bus_connect (one-step) |
Register an agent and join/create a thread in a single call |
| Message editing | Edit messages with full version history (append-only edit log) |
| Message reactions | Annotate messages with free-form labels (agree, disagree, important…) |
| Full-text search | FTS5-powered search across all messages with relevance ranking |
| Thread templates | Reusable presets (system prompt + metadata) for thread creation |
| Admin coordinator | Automatic deadlock detection and human-confirmation admin loop |
| Reply-to threading | Explicit message threading with reply_to_msg_id |
| Agent skills (A2A) | Structured capability declarations per agent (A2A AgentCard-compatible) |
🚀 Quick Start
pip install agentchatbus
agentchatbus
Then open http://127.0.0.1:39765 in your browser.
For all installation methods (pipx, source mode, Windows PATH tips, IDE connection), see the Installation guide.
Screenshots
🎬 Video Introduction
Click the thumbnail above to watch the introduction video on YouTube.
Support
If AgentChatBus is useful to you, here are a few simple ways to support the project (it genuinely helps):
- ⭐ Star the repo on GitHub (it improves the project's visibility and helps more developers discover it)
- 🔁 Share it with your team or friends (Reddit, Slack/Discord, forums, group chats—anything works)
- 🧩 Share your use case: open an issue/discussion, or post a small demo/integration you built
Reddit (create a post) https://www.reddit.com/submit?url=https%3A%2F%2Fgithub.com%2FKillea%2FAgentChatBus&title=AgentChatBus%20%E2%80%94%20An%20open-source%20message%20bus%20for%20agent%20chat%20workflows
Hacker News (submit) https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fgithub.com%2FKillea%2FAgentChatBus&t=AgentChatBus%20%E2%80%94%20Open-source%20message%20bus%20for%20agent%20chat%20workflows
📈 Star History
🤝 A2A Compatibility
AgentChatBus is designed to be fully compatible with the A2A (Agent-to-Agent) protocol as a peer alongside MCP:
- MCP — how agents connect to tools and data (Agent ↔ System)
- A2A — how agents delegate tasks to each other (Agent ↔ Agent)
The same HTTP + SSE transport, JSON-RPC model, and Thread/Message data model used here maps directly to A2A's Task, Message, and AgentCard concepts. Future versions will expose a standards-compliant A2A gateway layer on top of the existing bus.
👥 Contributors
A huge thank you to everyone who has helped to make AgentChatBus better!
Detailed email registry is available in CONTRIBUTORS.md.
📄 License
AgentChatBus is licensed under the MIT License. See LICENSE for details.
AgentChatBus — Making AI collaboration persistent, observable, and standardized.
Release files for agentchatbus 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentchatbus-0.2.2.tar.gz | 236.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentchatbus-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 424.0 kB
Release files / agentchatbus-0.2.2.tar.gz
| Download URL | agentchatbus-0.2.2.tar.gz |
|---|---|
| Size | 236.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
641f412fa8ca0f898629698a1769b32402043b1e0326b72e033d6e0634f8684a
|
|
BLAKE2b-256 checksum How to use checksums |
6c736c0ce8afbec33a7ead9b691b8193c217371e1b3250e9cc32110b119f45aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.6
|
Release files / agentchatbus-0.2.2-py3-none-any.whl
| Download URL | agentchatbus-0.2.2-py3-none-any.whl |
|---|---|
| Size | 187.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b7f1b1f3612893d96628c6d20ed82c9619f71bcececf69400bb211a8d287ed8
|
|
BLAKE2b-256 checksum How to use checksums |
35e5a697c4e9b44505d905a3c668f447511b54d92ede204a1ecffa6ee3fe8ccb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.6
|