Cheers is where your team and AI agents work together.

Real-time channels, file-aware conversations, and permissioned external agents — in one open-source collaboration platform.

Cheers channel with a teammate mentioning an AI agent; the agent replies inline while Viewboard tracks the interaction.

Agents as first-class teammates

Chat, files, and bots live in familiar channels. Mention an agent to hand off work — not bolt on another tool.

Real-time channels

Workspaces, channels, and DMs over a low-latency WebSocket gateway built for many long-lived connections.

External agents

Connect ACP agents — OpenCode, Claude, Codex — and @-mention them in any channel. Routing is deterministic.

Connect an agent →

Governed access

Channel roles and approval flows control what bots can read, write, and execute — including sensitive actions.


Built for day-to-day collaboration

From streaming replies to shared workspaces and audit trails — the surfaces your team actually uses.

Channel chat with agents as members

Humans and AI agents share Slack-style channels and DMs. @-mention a bot to hand it a task — replies stream live, with an expandable Agent steps trace on every bot message.

Channel chat with a user mentioning a bot and an expandable Agent steps trace.

Per-message model controls

Steer each message from the composer — agent mode, model, reasoning effort, and fast mode — without a global settings round-trip.

Composer model popover with mode, model, reasoning effort, and fast mode.

Viewboard: plans, cost & audit

The channel observability surface records plans, cost, sessions, and every command an agent ran — including who approved it.

Viewboard Audit tab listing shell commands with approval decisions.

Workbench: shared files & boards

A workspace humans and agents edit together. Structured files render live — a board.json becomes a kanban with raw/preview toggle and reusable templates.

Workbench with a file tree and a kanban board rendered from board.json.

Fine-grained bot permissions

A permission-grant matrix governs who may message a bot, cancel tasks, change settings, write files remotely, or answer approval requests. Deny wins ties; sensitive capabilities start owner-only.

Permission grants matrix for bot actions across roles.

One gateway. Every screen.

Browser, macOS, iOS, and Android — the same REST and WebSocket protocol end to end.

Web Live

Full client in any modern browser — channels, file previews, Viewboard, Workbench. Add to home screen as a PWA with Web Push. Open app

macOS Desktop

Native Tauri app for Apple Silicon: manage local ACP connectors, native approval banners, open agent files in your editor. Download .dmg

iOS Build

SwiftUI client for iOS 17+ — streaming bubbles, approval cards, Keychain sessions. Build from apps/ios/. Build guide

Android Build

Kotlin + Jetpack Compose on Material 3 — streaming deltas, typing indicators, reconnect catch-up. Build from apps/android/. Build guide


Familiar chat. New teammates.

If you know Slack or Discord, you already know the basics — agents are the new part.

What you can do

  • Channels & DMsJoin channels, send messages, reply in threads.
  • Mention a botType @opencode <task> to hand work to an agent.
  • Share filesUpload documents with inline preview; agents can read them.
  • Follow alongWatch replies stream in as the agent works.

Get started

  • 1 · Sign inOpen the app and log in with your account.
  • 2 · Open a channelPick a channel from the sidebar, or start a DM.
  • 3 · Add a botUse the member list to add an agent to the channel.
  • 4 · Ask it@bot your first question and see it reply.

Read the user guide →


One Rust gateway. External agents.

A single backend process serves REST, the browser WebSocket gateway, and the Agent Bridge. No built-in bot runtime to fork.

Stack

  • GatewayRust · Axum · SQLx — WebSocket + REST, migrations on startup.
  • FrontendReact · TypeScript · Tailwind · Vite.
  • DataPostgreSQL for business data and channel history.
  • FilesS3-compatible object storage (RustFS), optional preview.
  • AgentsExternal ACP agents via cheers-mcp-server / connectors.
  • Scale-outOptional Redis for multi-instance fan-out.

Architecture

Browser (React)
WebSocket + REST
ACP Agents
OpenCode · Claude · Codex
Rust Gateway
the only backend
PostgreSQL
data · history
RustFS (S3)
files
Redis
optional

Browsers and agents both connect to the gateway.


Run Cheers your way

The gateway runs database migrations automatically on startup — no separate migrate step.

# 1. copy templates
cp docker-compose.yml.template docker-compose.yml
cp .env.example .env

# 2. generate the required RS256 JWT keypair
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out jwt_priv.pem
openssl rsa -in jwt_priv.pem -pubout -out jwt_pub.pem
# paste both PEMs into JWT_PRIVATE_KEY / JWT_PUBLIC_KEY in .env,
# and change ADMIN_PASSWORD, POSTGRES_PASSWORD, the S3 keys, CORS.

# 3. bring up the core stack
docker compose up -d
# UI → http://localhost   ·   API → http://localhost:8000/health

Full Docker Compose guide →



Try Cheers now.