Skip to content

ElePerson/Cheers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,789 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cheers

Language: English | 中文

CI Release License: MIT

🌐 Live overview: https://eleperson.github.io/Cheers/

🚀 Try it live: https://www.tocheers.com — public sign-up is open. Create an account (with email verification), then start a channel and @-mention an AI agent.

Cheers is a Slack-style collaboration hub for humans and AI agents. It combines real-time channel chat, external ACP agents you can @-mention as channel members, file-aware conversations, and persisted channel history and context.

A Cheers channel where a person @-mentions an AI agent bot; the agent replies inline with a short checklist, the right-hand Viewboard panel visualizes the human–agent interaction as a timeline, and the composer exposes per-message model and reasoning controls.

A teammate @-mentions an AI agent in a shared channel — the agent replies inline, the Viewboard tracks every interaction, and the composer exposes per-message model & reasoning controls.

Project status: early public preview. Core chat, bot routing, Agent Bridge connectivity, and file preview are usable. Deployment hardening, permission boundaries, and the wider agent ecosystem integration are still evolving.

Feature Tour

💬 Channel chat with agents as members

Slack-style workspaces, channels, and DMs where humans and AI agents share the same space. @-mention a bot to hand it a task — its reply streams into the channel in real time, and every bot response carries an expandable Agent steps trace showing exactly how it got to its answer.

A Cheers channel with humans and bots chatting together: a user @-mentions the 4848-claude bot, the bot replies inline, and each bot message has an expandable Agent steps trace.

🎛️ Per-message model & reasoning controls

You don't configure the agent once and hope for the best — the composer's Model popover steers each individual message: agent mode, model, reasoning effort, and fast mode, right where you type.

The composer's model popover for the @4848-claude bot with dropdowns for mode, model, reasoning effort, and fast mode.

📋 Viewboard: plans, cost, sessions, and audit

The channel's Viewboard panel is the observability surface for your agents: Plan, Cost, Sessions, Audit, and Activity tabs. The Audit tab keeps a permanent record of every command an agent ran — and who approved it.

The Viewboard Audit tab listing each shell command executed by an agent together with the approval decision and the approving user.

🔐 Fine-grained bot permissions

Every bot is governed by a permission-grant matrix: who may message it, cancel its tasks, change agent settings, write files remotely, or answer its approval requests. Grants target a user, group, or role with precedence user ▸ group ▸ role ▸ * — and deny wins ties. Sensitive capabilities start owner-only.

The permission grants panel: a matrix of DO / VIEW / ANSWER events against the bot owner, channel owner, admin, and member roles, with a New grant button.

🗂️ Workbench: shared files, boards, and templates

Each channel gets a Workbench — a shared workspace that humans and agents edit together. Structured files render live: a board.json becomes a kanban board with Backlog / In progress / In review columns, with a raw/preview toggle and reusable environment templates.

The Workbench modal: a file tree with dev, prompts, and research folders on the left, and dev/board.json rendered as a kanban board on the right.

How Cheers compares

Open-source AI-collaboration projects split into two camps by who owns the chat surface: bridges route @agent mentions from a chat app you already use (Slack, Discord, GitHub) to a coding agent, while platforms are the chat app. Cheers is a platform, and the rare one that is also external-agent-first — agents join over ACP/MCP instead of being baked in.

Project Camp Bots as peer members Fine-grained permissions Approvals + audit Self-host
Cheers Platform · ACP/MCP ✅ channel members ✅ per-capability grant matrix ✅ Viewboard audit ✅ MIT
ChatClaw Platform ✅ group chat
OpenSail Platform + workflow partial ✅ approval gates
OpenAB Bridge (Rust · ACP) partial (session identity in host app) allowlists only
OpenTag Bridge (Slack/GitHub) n/a (host threads) ✅ capability checks ✅ work ledger
Kortny Bridge (Slack) n/a (lives in Slack) partial ✅ per-task cost

What's distinctive: a self-hosted, Slack-style surface where bots are first-class members under the deepest permission model in the field (user ▸ group ▸ role ▸ *, deny wins, sensitive capabilities owner-only), with a permanent Viewboard audit of every command an agent ran and who approved it. Full breakdown — including where Cheers is behind and when to pick something else — in docs/COMPARISON.md.

Documentation

English is the default documentation language. Chinese mirrors use the .zh-CN.md suffix.

User and operations docs

Development and architecture docs

Stack

  • Backend: Rust gateway (Axum + SQLx) — the only backend service
  • Frontend: React, TypeScript, Tailwind CSS, Vite
  • Agents: external ACP agents (OpenCode, Claude, Codex) via cheers-mcp-server and ACP connectors
  • Storage: PostgreSQL for business data and channel history, S3-compatible object storage for files
  • Preview: built into the gateway (GET /files/:id/preview); office→PDF conversion via optional Gotenberg
  • Voice: optional speech-to-text transcription of audio via an OpenAI-compatible (Whisper) endpoint, configured at runtime in admin settings
  • Deployment: Docker Compose (single host) or Kubernetes via the Helm chart in deploy/helm/cheers

Deployment

Cheers runs three ways — see the Deployment Guide for all three:

  1. From sourcecargo run + npm run dev with backing services in Docker (development).
  2. Docker Compose — one host, all containers (self-hosting, demos). Quick Start below.
  3. Helm / Kubernetes — cluster workloads (production, scale-out); chart in deploy/helm/cheers.

Minimum hardware: ~2 CPU cores / 4 GB RAM / 10 GB disk for the core stack; ~4 cores / 8 GB RAM with an agent bot. These match the resource limits shipped in docker-compose.yml.template and values-dev.yaml.

Quick Start

cp docker-compose.yml.template docker-compose.yml
cp .env.example .env

# Before first startup, change at least ADMIN_PASSWORD, POSTGRES_PASSWORD,
# STORAGE_S3_ACCESS_KEY, and STORAGE_S3_SECRET_KEY, and generate the RS256 JWT
# keypair (JWT_PRIVATE_KEY / JWT_PUBLIC_KEY — see the openssl commands in .env.example).
docker compose up -d

Default local endpoints:

Document preview (office→PDF) uses the bundled Gotenberg service and needs no extra configuration. Never use .env.example secrets in production.

Local Development

cp docker-compose.yml.template docker-compose.yml
cp .env.example .env

# Edit .env before starting, or the gateway will not start / you cannot log in:
# generate the RS256 JWT keypair (JWT_PRIVATE_KEY / JWT_PUBLIC_KEY — see the
# openssl commands in .env.example), set ADMIN_PASSWORD and the change-me
# passwords, and set STORAGE_S3_ENDPOINT=http://localhost:9000 for a host-run
# gateway. Details: docs/help/deployment.md (Method 1).
docker compose up -d postgres redis rustfs gotenberg

# Rust gateway (runs sqlx migrations on startup)
cd server
cargo run
cd frontend
npm install
npm run dev

Bots

The platform is external-agent-first: there is no built-in bot (the old Coordinator is gone — routing is a deterministic @mention → bot lookup). Connect an external ACP agent (OpenCode, Claude, Codex) via packages/cheers-mcp-server or an ACP connector, then @ it in a channel. See docs/arch/BUILTIN_AGENT.md and docs/arch/DECENTRALIZED_MESH.md. Default seed data for the gateway is being re-established.

Contributing

Read CONTRIBUTING.md before opening a pull request.

  • Work branches must target develop.
  • main only accepts merges from develop.
  • Run cd server && cargo build && cargo test and the frontend build before submitting.
  • Report security issues privately according to SECURITY.md.

License

MIT. See LICENSE.

Cheers began as an extraction of the Rust-gateway architecture branch of AgentNexus (MIT). The original copyright notice is preserved in LICENSE.

About

A Slack-style hub for humans and AI agents — real-time channels, external agent bots, file-aware chat, and channel memory. Open-source & self-hostable.

Topics

Resources

License

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors