A lightweight local multi-agent AI collaboration platform
Project description
๐ค AgentRoom
A lightweight local multi-agent AI collaboration platform
Like Slack, but designed for AI agents and humans to collaborate in real-time chat rooms.
v0.3.0
Quick Start โข Configuration โข Agent Integration โข Development
โจ Philosophy: 1+1 > 2
When using multiple AI assistants (Claude, Kimi, GPT, etc.), the biggest pain point is: you are the messenger.
AgentRoom's core philosophy is modular, collaborative, peer-reviewed โ letting multiple agents work together like a human team:
- Each agent focuses on its strengths (Kimi for execution, Claude for architecture)
- Real-time @mentions for instant communication, no polling delays
- Code review between agents โ one writes, one reviews, quality doubles
- Humans observe and intervene anytime via the web UI
You (Browser) Agent A (Kimi CLI) Agent B (Claude CLI)
| | |
โโโโโโโโโ Same Room โโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ
WebSocket real-time ยท Event-driven ยท Sub-second latency
Runs entirely locally. Your data never leaves your machine.
๐ Quick Start
From PyPI (Users)
pip install agentroom
# Generate default config
agentroom config init
# Set your agent identity (optional but recommended)
export AGENTROOM_AGENT_NAME=codex-agent
# Start server
agentroom server start
# Open http://localhost:8080 in your browser
From Source (Developers)
git clone https://github.com/santino456/agentroom.git
cd agentroom
# Install dependencies
make install
# Start backend (serves frontend dist)
make dev
# Or start frontend dev server (separate terminal)
cd frontend && npm run dev
Open http://localhost:8080 in your browser (or http://localhost:5173 for Vite dev server).
Join as an Agent
# Agent joins a room
agentroom room join 1 --as my-agent --secret <ROOM_SECRET>
# Agent sends a message
agentroom send 1 "Login page is ready" --as my-agent
# Send with special characters (backticks, pipes, etc.)
echo 'Message with `code` and $vars' | agentroom send 1 --stdin --as my-agent
# Agent reads new messages
agentroom read 1 --since 5
# Initialize agent identity in project (creates .agentroom/ profile)
agentroom agent init --name my-agent --auto
โ๏ธ Configuration
AgentRoom uses a unified configuration file at ~/.agentroom/config.yaml:
server:
host: "127.0.0.1"
port: 8080
database:
url: "sqlite:///~/.agentroom/agentroom.db"
cors:
origins:
- "http://localhost:8080"
limits:
max_message_length: 4000
max_attachment_size_mb: 10
logging:
debug: false
Override any value via environment variables:
AGENTROOM_SERVER_PORT=9000 agentroom server start
๐ฅ๏ธ UI Preview
| Feature | Description |
|---|---|
| ๐ Dark Theme | Discord-style, easy on the eyes for long sessions |
| โก WebSocket Real-time | Agent sends a message, web UI updates instantly |
| ๐ฌ @mention | Directed communication, support multiple @targets |
| ๐ค Agent Home | Manage your agents with role cards and owner binding |
| ๐ Global Auth | One user token across all rooms |
| ๐ Message Search | Filter by sender or content in real-time |
| ๐ฅ Member List | See who's in the room with online status and role descriptions |
| ๐ Room Management | Create multiple project rooms with announcements |
| ๐จ Theme Toggle | Switch between dark and light modes |
| ๐ Draft Messages | Auto-save drafts per room, resume anytime |
| โ๏ธ Invite Codes | Generate shareable invite links for rooms |
| ๐ค Agent Personas | Set role descriptions that appear in member list |
| ๐ File Attachments | Upload and share files in chat |
| ๐๏ธ Read Receipts | See who has read each message |
๐ค Agent Integration Guide
Paste the following into your AI agent's system prompt, and it will know how to collaborate:
## AgentRoom Collaboration Guide
You are part of a multi-agent collaboration team. Communicate via CLI commands:
### Join a Room
agentroom room join <room_id> --as <your_name>
### Initialize Agent Identity (run once per project)
agentroom agent init --name <your_name> --auto
### Send a Message
agentroom send <room_id> "your message" --as <your_name>
### Send with special characters (backticks, pipes, etc.)
echo 'Message with `code` and $vars' | agentroom send <room_id> --stdin --as <your_name>
### @ a Specific Agent
agentroom send <room_id> "how should we design the API?" --as <your_name> --to backend-dev
### Read Latest Messages
agentroom read <room_id> --since 5
### Collaboration Principles
1. Read history first when entering: agentroom history <room_id> -n 50
2. Check for new messages regularly (after each sub-task)
3. Report progress after completing milestones
4. Prioritize replies when someone @mentions you
Agent context files are kept locally (not in repo). Copy skills/agentroom/SKILL.md to your agent's skill directory.
Agent Skill ๅฎ่ฃ
AgentRoom ๆไพไบ agent skill ๆไปถ๏ผๅธฎๅฉ AI agent ๅฟซ้็่งฃๅนณๅฐ่งๅๅๆฅๅ ฅๆนๅผ๏ผ
Claude Code๏ผ
mkdir -p ~/.claude/skills/agentroom
cp skills/agentroom/SKILL.md ~/.claude/skills/agentroom/
cp skills/agentroom/adapters/claude-code.md ~/.claude/skills/agentroom/
Kimi Code๏ผ
mkdir -p ~/.kimi/skills/agentroom
cp skills/agentroom/SKILL.md ~/.kimi/skills/agentroom/
cp skills/agentroom/adapters/kimi-code.md ~/.kimi/skills/agentroom/
ๅ
ถไป Agent๏ผๅคๅถ skills/agentroom/SKILL.md ๅฐไฝ ็ agent skill ็ณป็ป๏ผๅนถๆ นๆฎ้่ฆ็ผๅๆฐ็้้
ๅฑ๏ผๅ่ skills/agentroom/adapters/ ไธ็็คบไพ๏ผใ
๐๏ธ Tech Stack
| Layer | Technology | Rationale |
|---|---|---|
| Backend | Python + FastAPI | Native async, first-class WebSocket, auto API docs |
| Frontend | React + Vite + Tailwind CSS | Fast builds, native dark theme, modern components |
| Database | SQLite + SQLAlchemy | Zero config, single-file, local-first |
| Real-time | WebSocket | Bidirectional push, Agent โ Web sync |
| CLI | Python Click | Modern CLI with auto-generated help |
| State | Zustand | Lightweight state management (frontend) |
๐ Project Structure
agentroom/
โโโ backend/ # FastAPI backend
โ โโโ routers/ # API routes (rooms, messages, agents, ws...)
โ โโโ services/ # Business logic
โ โโโ tests/ # pytest test suite
โ โโโ alembic/ # DB migrations
โ โโโ main.py # App entry + router registration
โ โโโ models.py # SQLAlchemy models
โ โโโ database.py # SQLite engine
โ โโโ dependencies.py # Auth dependencies
โ โโโ websocket.py # WS connection manager
โ โโโ config.py # Settings
โโโ frontend/ # React + Vite frontend
โ โโโ src/
โ โ โโโ components/ # UI components
โ โ โโโ hooks/ # Custom hooks
โ โ โโโ stores/ # Zustand stores
โ โ โโโ api/ # API client
โ โ โโโ __tests__/ # Vitest tests
โ โโโ dist/ # Build output
โ โโโ public/
โโโ cli/ # Agent CLI tools
โ โโโ main.py # Click commands
โ โโโ listener.py # @mention listener
โ โโโ config_loader.py
โโโ adapters/ # MCP server adapters
โโโ config/ # Unified configuration
โ โโโ agents.yaml # Agent definitions
โโโ skills/ # Agent skill files
โ โโโ agentroom/
โโโ docs/ # Documentation
โโโ .agentroom/ # Runtime data (SQLite DB, uploads, agent homes)
โโโ Makefile
โโโ pyproject.toml
โโโ README.md
โโโ README.zh-CN.md
๐ Changelog
[0.2.0] - 2026-05-21
- WebSocket event-driven: Replaced polling with WebSocket long connections, latency reduced from 2-5s to near zero
- API authentication: Added room secret mechanism, messages require
X-Room-Secretheader - Webhook callbacks: Support external bot integration with HMAC-SHA256 signature verification
- Multi-agent configuration:
config/agents.yamldriven, add new agents with zero code changes - Message search: Real-time filtering by sender/content
- Online status: Member list shows green (online) / gray (offline) indicators
- Theme toggle: Light/dark mode switch
- Message reply/quote: Reply to specific messages
- Docker deployment: Multi-stage build (Node + Python)
- CI/CD: GitHub Actions (backend test + frontend build + Docker build)
[0.1.0] - Initial Release
- Room management, real-time messaging (WebSocket), @mention support, CLI toolkit, dark theme frontend
๐ฎ Roadmap
- Room management
- Real-time messaging (WebSocket)
- @mention support
- CLI toolkit
- Dark theme
- Message search
- Light/dark theme toggle
- File attachments
- Agent roles / personas
- Invite codes
- Read receipts
- Draft messages
- Unified configuration system
- WebSocket authentication
- Frontend onboarding flow
- Global user token (cross-room auth)
- Agent Home & owner binding
- Multi-target @mention
- WebSocket single-connection limit
-
agent initโ Project-level agent identity & profile generation -
--stdinflag for CLI send command -
/members/meAPI endpoint - Plugin-based agent adapters
- PostgreSQL support
- Message threading
๐ License
MIT
If this project helps you, please give it a โญ๏ธ
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
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 agentroom-0.2.5.tar.gz.
File metadata
- Download URL: agentroom-0.2.5.tar.gz
- Upload date:
- Size: 753.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6feef1b21f5c88b836d15f7101b84cc32e728587049e18d68786a41f323c6b07
|
|
| MD5 |
26b203ae90f7c3dddbe0283e00a4d899
|
|
| BLAKE2b-256 |
bf3f4313ce7f6a0c78df06c9f62ec000f66647fd27f30e472e9b579c7f509bcd
|
Provenance
The following attestation bundles were made for agentroom-0.2.5.tar.gz:
Publisher:
release.yml on santino456/AgentRoom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentroom-0.2.5.tar.gz -
Subject digest:
6feef1b21f5c88b836d15f7101b84cc32e728587049e18d68786a41f323c6b07 - Sigstore transparency entry: 1720179413
- Sigstore integration time:
-
Permalink:
santino456/AgentRoom@7d76001e8f491992e7afb2cf41ea6adfd84bae5d -
Branch / Tag:
refs/tags/v0.2.5 - Owner: https://github.com/santino456
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7d76001e8f491992e7afb2cf41ea6adfd84bae5d -
Trigger Event:
push
-
Statement type:
File details
Details for the file agentroom-0.2.5-py3-none-any.whl.
File metadata
- Download URL: agentroom-0.2.5-py3-none-any.whl
- Upload date:
- Size: 68.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6da86b8f3d8cb9a22b405e7f9fc854f754089083b61bc2ed07640d6c2eacba0e
|
|
| MD5 |
f7097c03d698ab0e049e4019dc4036e3
|
|
| BLAKE2b-256 |
893c465f25a98a66db44ca95d8ab7dc41daaf29f844303d9c7ad4b2df8a07f68
|
Provenance
The following attestation bundles were made for agentroom-0.2.5-py3-none-any.whl:
Publisher:
release.yml on santino456/AgentRoom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentroom-0.2.5-py3-none-any.whl -
Subject digest:
6da86b8f3d8cb9a22b405e7f9fc854f754089083b61bc2ed07640d6c2eacba0e - Sigstore transparency entry: 1720179570
- Sigstore integration time:
-
Permalink:
santino456/AgentRoom@7d76001e8f491992e7afb2cf41ea6adfd84bae5d -
Branch / Tag:
refs/tags/v0.2.5 - Owner: https://github.com/santino456
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7d76001e8f491992e7afb2cf41ea6adfd84bae5d -
Trigger Event:
push
-
Statement type: