Cheers is where teams, AI agents, and extensions work together.

Real-time channels, shared Workbench files, GitHub-backed integrations, and permissioned ACP 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.

A collaboration layer for people, agents, and extensions

Chat, files, bots, Workbench tools, and inbound integrations meet in familiar channels so work stays visible from idea to audit.

Real-time channels

Workspaces, channels, DMs, threads, and streaming agent replies run through a low-latency WebSocket gateway.

Connector hosts

Run ACP-compatible agents such as OpenCode, Claude, and Codex through managed connector hosts, then @-mention them in any channel.

Connect an agent →

Governed extensibility

Channel roles, bot grants, signed packages, webhook verification, and sandboxed renderers keep new capabilities inside clear boundaries.

Browse extensions →

Built for day-to-day collaboration

From streaming replies to shared workspaces, extension-powered tools, integrations, 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 & extensions

A workspace humans and agents edit together. Structured files render live, and .cheers-extension packages add scenes, templates, scheduled workflows, and sandboxed macOS renderers.

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

Fine-grained bot and integration permissions

A permission-grant matrix governs bot messaging, task cancellation, settings, remote file writes, and approval replies. GitHub webhooks are verified, deduped, and delivered through channels.

Permission grants matrix for bot actions across roles.

One gateway. Every screen.

Browser, macOS, iOS, and Android share the same REST, WebSocket, connector-host, and extension package model.

Web Live

Full client in any modern browser: channels, file previews, Viewboard, Workbench, admin-managed extensions, and Web Push. Open app

macOS Desktop

Native Tauri app for Apple Silicon: manage connector hosts, install personal renderer extensions, approve sensitive actions, and 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. More context.

If you know Slack or Discord, you already know the basics; Cheers adds agents, Workbench files, and integration events to the same channels.

What you can do

  • Channels & DMsJoin channels, send messages, reply in threads.
  • Mention a botType @opencode <task> to hand work to an agent.
  • Use WorkbenchShare files, boards, and extension scenes that agents can inspect.
  • Bind GitHubRoute repository events into channels with verified webhooks and collaborator-aware roles.

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 hostRegister a connector host and add its bot to the channel.
  • 4 · Extend itInstall an official extension or bind a GitHub repository.

Read the user guide →


One Rust gateway. External agents. Pluggable workspaces.

A single backend process serves REST, WebSocket, Agent Bridge, MCP, Workbench packages, and verified integration events. 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 connector hosts and the gateway's HTTP MCP endpoint.
  • ExtensionsSigned .cheers-extension packages for scenes, workflows, templates, and sandboxed renderers.
  • IntegrationsHMAC-verified webhooks, dedupe, channel bindings, and delivery workers.
  • Scale-outOptional Redis for multi-instance fan-out.

Architecture

Apps
Web · macOS · mobile
Connector Hosts
OpenCode · Claude · Codex
Rust Gateway
the only backend
PostgreSQL
data · history
RustFS (S3)
files
Extensions
catalog · packages
Integrations
GitHub events
Redis
optional

Apps, connector hosts, extension packages, and webhooks all meet at 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.