Cheers 让团队与 AI 智能体在同一空间协作。

实时频道、支持文件的对话、带权限的外部智能体 —— 一个开源协作平台搞定。

Cheers 频道中用户 @ 提及 AI 智能体,智能体在频道内回复,Viewboard 追踪交互。

智能体是一等成员

聊天、文件和 Bot 都在熟悉的频道里。@ 提及智能体即可交办任务 —— 而不是再挂一个外挂工具。

实时频道

工作区、频道与私信,基于为大量长连接设计的低延迟 WebSocket 网关。

外部智能体

接入 ACP 智能体 —— OpenCode、Claude、Codex —— 并在任意频道 @ 提及。路由是确定性的。

连接智能体 →

权限管控

频道角色与审批流控制 Bot 可读、可写、可执行的范围 —— 含敏感操作。


为日常协作而设计

从流式回复到共享工作台与审计轨迹 —— 都是团队真正会用到的界面。

频道聊天:智能体是成员

人类与 AI 智能体共用 Slack 风格的频道和私信。@ 提及一个 bot 就能交办任务 —— 回复实时流式出现,每条 bot 消息都带可展开的 Agent steps 轨迹。

频道聊天中用户 @ 提及 bot,并展开 Agent steps 轨迹。

逐条消息的模型控制

在输入框直接调节每条消息 —— 智能体模式、模型、推理档位、快速模式,无需全局设置往返。

输入框模型弹层,含模式、模型、推理档位与快速模式。

Viewboard:计划、成本与审计

频道可观测中心记录计划、成本、会话,以及智能体执行过的每条命令 —— 包括是谁批准的。

Viewboard Audit 标签页列出 shell 命令与审批结论。

Workbench:共享文件与看板

人类与智能体共同编辑的工作台。结构化文件可实时渲染 —— 一份 board.json 直接呈现为看板,支持原文/预览切换与可复用模板。

Workbench:左侧文件树,右侧由 board.json 渲染的看板。

细粒度 Bot 权限

权限授予矩阵管控谁可以给 bot 发消息、取消任务、修改设置、远程写文件或回答审批请求。冲突时拒绝优先;敏感能力默认仅所有者可用。

Bot 操作权限授予矩阵。

一个网关,每块屏幕

浏览器、macOS、iOS、Android —— 端到端同一套 REST 与 WebSocket 协议。

Web 在线

任意现代浏览器打开即用 —— 频道、文件预览、Viewboard、Workbench。添加到主屏即成 PWA,支持 Web Push。 打开应用

macOS 桌面

面向 Apple 芯片的原生 Tauri 应用:管理本机 ACP 连接器、系统级审批横幅、在编辑器中打开智能体文件。 下载 .dmg

iOS 构建

面向 iOS 17+ 的 SwiftUI 客户端 —— 流式气泡、审批卡片、钥匙串会话。从 apps/ios/ 构建。 构建说明

Android 构建

Kotlin + Jetpack Compose / Material 3 —— 流式增量、正在输入、断线补齐。从 apps/android/ 构建。 构建说明


熟悉的聊天,全新的队友

如果你用过 Slack 或 Discord,你已经会用 Cheers —— 智能体是唯一的新东西。

你可以做什么

  • 频道与私信加入频道、发送消息、在线程中回复。
  • 提及 Bot输入 @opencode <任务>,把工作交给智能体。
  • 分享文件上传文档并内联预览;智能体也能读取。
  • 实时跟进看着回复随工作进展流式出现。

快速上手

  • 1 · 登录打开应用,用你的账号登录。
  • 2 · 打开频道在侧边栏选一个频道,或发起私信。
  • 3 · 添加 Bot通过成员列表把智能体加入频道。
  • 4 · 提问@bot 你的第一个问题,看它回复。

阅读用户指南 →


一个 Rust 网关,外部智能体

唯一的后端进程同时提供 REST、浏览器 WebSocket 网关与 Agent Bridge。没有需要 fork 的内置 bot 运行时。

技术栈

  • 网关Rust · Axum · SQLx —— WebSocket + REST,启动时自动迁移。
  • 前端React · TypeScript · Tailwind · Vite。
  • 数据PostgreSQL 存业务数据与频道历史。
  • 文件S3 兼容对象存储(RustFS),可选预览。
  • 智能体外部 ACP 智能体,经 cheers-mcp-server / 连接器接入。
  • 横向扩展可选 Redis 做多实例广播。

整体结构

浏览器(React)
WebSocket + REST
ACP 智能体
OpenCode · Claude · Codex
Rust 网关
唯一后端
PostgreSQL
数据 · 历史
RustFS(S3)
文件
Redis
可选

浏览器与智能体都连接网关。


用你喜欢的方式运行

网关启动时自动执行数据库迁移 —— 没有单独的 migrate 步骤。

# 1. 复制模板
cp docker-compose.yml.template docker-compose.yml
cp .env.example .env

# 2. 生成必需的 RS256 JWT 密钥对
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out jwt_priv.pem
openssl rsa -in jwt_priv.pem -pubout -out jwt_pub.pem
# 把两个 PEM 粘贴到 .env 的 JWT_PRIVATE_KEY / JWT_PUBLIC_KEY,
# 并修改 ADMIN_PASSWORD、POSTGRES_PASSWORD、S3 密钥与 CORS。

# 3. 启动核心栈
docker compose up -d
# UI → http://localhost   ·   API → http://localhost:8000/health

完整 Docker Compose 指南 →



现在就试试 Cheers。