关于 Cahut
Cahut 是供团队使用的可自托管平台,用于发布和分享不同 AI 制作的文档、演示文稿、仪表板及网页。它通过受限操作、逐页访问控制和版本记录管理内容,不可撤销的操作须经人工批准。
主要功能
- 01向 Room 发布页面
- 02逐页链接与访问范围
- 03页面版本与回滚
- 04按文字或标签搜索页面
- 05每页独立 SQLite 数据
- 06操作日志与审批流程
适用场景
- 01发布 AI 制作的演示文稿供团队审阅
- 02向指定读者分享仪表板
- 03通过页面表单或投票收集反馈
- 04在审批控制下让 AI 更新已发布页面
MCP 相关
Cahut 提供 HTTP MCP 服务,供 AI 客户端通过类型化操作发布和管理页面。访问通过 OAuth 或个人令牌授权,并依据用户获准的 Room 范围进行控制。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://{domain}/mcpclaude mcp add --transport http cloud-cahut-cahut https://{domain}/mcp{"mcpServers":{"cloud-cahut-cahut":{"type":"http","url":"https://{domain}/mcp"}}}在 Cursor 中打开{"servers":{"cloud-cahut-cahut":{"type":"http","url":"https://{domain}/mcp"}}}在 VS Code 中打开{"mcpServers":{"cloud-cahut-cahut":{"type":"http","url":"https://{domain}/mcp"}}}{"mcpServers":{"cloud-cahut-cahut":{"serverUrl":"https://{domain}/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
发布并分享 AI 创作内容的家园。
文档、幻灯片、仪表板和小型应用,都以页面形式发布在你的地址上
位于你自己的服务上,由团队共同协作,不论它们由哪个 AI 创建。
只需一条命令,即可在 Linux 服务上安装 Cahut。Claude、ChatGPT、Mistral Vibe 或任何 MCP 客户端都可以向其发布内容,你只需分享链接,无需发送文件。团队成员可以阅读内容,并在 Rooms 中请 AI 制作下一个版本;在这里,成员和他们的 AI 可以在同一个 Windows 中协作。AI 可以自行执行可撤销的操作,其余操作则由人工批准,而且每项操作都会记录在案。
试用
-
无需账户,查看 AI 发布的内容。 demo.cahut.cloud/examples 展示了 AI 创建并发布的 Windows,每个 Window 都附有创建它的提示词:一家小商店、一份供团队评论的幻灯片、一份简历、一份团队报告、一篇旅行日志。
-
无需服务,两分钟即可开始。 注册 My Cahut,免费获取一个位于
my.cahut.cloud、席位有限的 Cahut,然后连接 Claude 或 Mistral Vibe(即使使用免费方案也可以),或连接使用 Business、Enterprise 或 Edu 方案的 ChatGPT。了解 My Cahut 的全部信息。 -
在自己的服务上,只需一条命令。 在全新的 Ubuntu 或 AlmaLinux 服务上,确保开放 80 和 443 端口,并配置好指向该服务的域名:
curl -fsSL https://cahut.cloud/install.sh | sudo sh -s -- --domain cahut.example.com安装会说明脚本的操作,以及如何连接 AI。
如果 Cahut 对你有帮助,点个星标可以让更多人发现它。
警告
Cahut 还很新:首个版本于 2026 年 10 月 21 日发布。它不会在服务上运行 Window 的代码、接收评论、导出 PDF 或 PowerPoint、通过单点登录让用户登录,也不会创建备份。请保留服务的快照。
为什么选择 Cahut
如今,AI 创作的内容留在 AI 那里。Claude 链接、ChatGPT 链接、Gamma 演示文稿:每份内容都存在创作它的 AI 服务上。要发布、分享或与他人协作处理,你就得把它重新变成文件。
Word、PowerPoint 和 Excel 是为手动撰写、排版和计算的人类设计的。内容由 AI 创作时,将其放在一个拥有独立地址的页面上效果更好:页面会更新、保留先前版本、只向你选择的人开放,并保存读者填写的内容。
发布、分享、协作:如今,这三件事都很困难。
- 散落各处:这里是 Claude 链接,那里是 ChatGPT 链接,别处还有 Gamma 演示文稿。每个 AI 都把创作的内容留在自己的服务上,因此无法集中发布。
- 重新转换:要分享内容,就得把结果重新转换成 PowerPoint 或 Word 文件,再附加并转发。
- 无法掌控:谁能访问、访问到何时、哪个版本才是正确的、数据存放在哪里。没人真正清楚。
- 各自为战:每个人都用自己的 AI 工作。团队没有一个共同的地方来存放工作并一起处理。
- 缺乏防护:把服务器交给 AI,就意味着给它 root shell,或者让它通过一个几乎无法使用、为人类设计的平台操作。
你的 AI 创作并发布内容。你分享内容,并与他人协作处理。 AI 创作的一切都集中存放在一个地方,以页面的形式发布在你的地址上、你的服务器上,不受 AI 限制。
Cahut 不创作内容,只托管内容。它不与 AI 或创作工具竞争:它是一个中立、可自托管的空间,用来存放它们的成果,也让你的团队在其中协作处理。
| 层级 | 由谁负责 | 带来的功能 |
|---|---|---|
| 创作 | AI(Claude、ChatGPT、Mistral...) | 内容:文档、演示文稿、仪表盘、应用 |
| 发布、分享、协作 | Cahut,运行在你的服务器上 | 以你的地址发布页面、向合适的人开放的链接、供团队及其 AI 协作的 Rooms、版本、搜索、每个页面的数据、Logbook |
工作原理
AI 始终在 Cahut 之外运行。它们通过 MCP 连接到 Cahut,通过受限操作提交作品,然后断开连接。服务器上不会运行任何 AI 模型。
flowchart LR
subgraph AI["Create: the AIs"]
C[Claude]
G[ChatGPT]
M[Mistral Vibe]
P[Any MCP client]
end
subgraph CAHUT["Cahut, on your server"]
H["Your Cahut: publish, share, access, versions, search, data, Logbook, irreversible actions approved by you"]
end
subgraph READ["Read"]
E[Your team]
CL[Your clients]
PU[The public]
end
AI -- MCP --> CAHUT
CAHUT -- a link --> READ
- 连接。 将 Cahut 添加到你的 AI 中(MCP 连接器和 skill),并通过 OAuth 授权一次,同时选择所需的权限范围。
- 创作。 让 AI 按照你想要的风格创作文档、演示文稿、仪表盘或应用。Claude 的 skill 会为它提供相应格式。
- 发布。 AI 将 Window 发布到 Room,声明其用途,并获取对应地址,例如
cahut.example.com/marketing/q3-review。此前的版本会被保留。 - 分享。 你或权限范围内的 AI 可以选择谁能打开每个 Window:仅限其 Room 成员、Cahut 中的所有人、任何持有其 Key 的人,或所有公众。任何不可逆操作都必须先在控制台中获批。
- 实时使用。 读者在浏览器中打开页面,投票或表单会将他们填写的内容保存到对应 Window 的数据库中。AI 会根据请求更新页面。一切都会记入 Logbook。
功能
以下所有功能均适用于最新版本。
| 区域 | 功能说明 |
|---|---|
| 安装 | 在全新的 VPS 或专用服务器(AlmaLinux 或 Ubuntu)上用一条命令完成安装,在浏览器中引导完成首次启动,并通过 cahut doctor 检查服务器 |
| AI 访问 | 原生的 HTTP MCP 服务,支持 OAuth 或个人令牌,可供 claude.ai、Claude Desktop、Claude Code、ChatGPT、Mistral Vibe 和任何 MCP 客户端使用 |
| Claude 技能 | 一项教 Claude 创建和发布 Window 的技能,以 Claude Code 插件的形式打包 |
| 页面 | 文档、演示文稿、仪表板和静态站点,每个页面都有自己的地址,位于各自的 Room 中,并通过沙箱限制其访问范围,使其只能访问 AI 声明要加载和调用的内容 |
| 分享 | 可逐个 Window 设置:仅限其所在 Room、内部(Cahut 中的所有人)、使用 Key(密码)或公开,并可选设定结束日期;分享链接可在无需账户的情况下打开 Window,直到链接失效 |
| 邀请 | 通过电子邮件向 Cahut 内外的人员发送 Window,使用个人链接代替其 Key |
| 版本 | 每个 Window 保留两个版本,一键回滚,并提供回收站 |
| 搜索 | 按关键词或标签查找 Rooms 中的任何页面、演示文稿或仪表板 |
| 数据 | 每个 Window 在你的服务器上都有一个 SQLite 数据库:投票、表单、请愿书和追踪器会保存读者填写的内容 |
| 用户和 Room | 每个 Cahut 的人员及其管理员、每人自己的个人 Room,以及包含所有者和成员的团队 Room |
| 登录 | 每个 Cahut 都有账户,并可通过电子邮件链接重设遗忘的密码 |
| 先行审批 | AI 无法撤销的操作会等待用户在控制台中批准或拒绝 |
| Web 控制台 | 提供英语和法语界面:每个 Cahut 的 /console/ 下都有审批请求、Rooms、Windows、人员、已连接的 AI 和日志簿;/server/ 下则提供服务器管理员控制台 |
| 域名和 TLS | 每台服务器可托管多个 Cahut,每个 Cahut 使用自己的域名或子域名,无需通配符,并自动获取证书 |
| 限额 | 服务器管理员可为每个 Cahut 设置人员、Rooms、Windows 和磁盘限额;也可设置 Cahut,让每个人独自工作 |
| 内容审核 | 任何人都可以举报 Window,无需账户;Cahut 管理员和服务器管理员可以说明原因后撤下 Window,也可以恢复它 |
| 日志簿 | 记录每项操作的历史:由谁执行、使用哪个 AI、代表谁执行,以及结果如何 |
| 更新 | 每日从 GitHub 上的签名版本更新,并创建数据库快照以便回滚 |
Cahut 不会:
- 创建内容:这是 AI 的工作。
- 在服务器上运行 AI 模型:AI 位于服务器之外,并连接到服务器。
- 依赖某一家 AI 供应商,也不会将工作锁定在专有格式中。
- 让 AI 不受限制地访问服务器。
- 跨多台机器运行:一台服务器托管一个或多个 Cahut。
治理:先征求同意
AI 是 Cahut 的预期操作者,但始终受到防护措施约束。
- 操作范围受限。 AI 通过 MCP 执行类型化操作(发布一个 Window、更改其数据、创建分享链接),绝不使用自由 shell。
- 可撤销,或经批准。 可撤销的操作由 AI 独自完成。不可撤销的操作则等待人工在控制台中批准,并附带通知和到期时间。
- AI 声明其发布的内容。 每个 Window 版本都会说明其页面是否运行脚本、从哪些源加载内容并向哪些源发出调用、表单会将内容发送到哪里,以及会保留哪些数据。
- 按 Agent 分配权限。 每个 AI 都代表某个人行事,可使用该人授权的 Rooms 和权限范围;授权可随时撤销。
- 记录一切。 哪个 AI、代表谁、执行了什么操作、结果如何:这些都记录在可通过控制台查看的 Logbook 中。
- 数据留在本地。 Windows、其数据和 Logbook 都存放在你的服务器上。
- 隔离。 每个 Window 都在沙箱中运行:其脚本无法读取其他 Windows、控制台或读者的会话。其数据的 SQL 在独立的工作进程中运行,并受 Linux 上的 Landlock 限制。同一服务器上的 Cahuts 除了共用机器外,互不共享任何内容。
| AI 可独自完成(可撤销) | 需经人工批准(不可撤销) |
|---|---|
| 发布或更新一个 Window(保留上一版本) | 从回收站彻底删除一个 Window,或删除一个团队 Room |
| 向其 Room、Cahut 或 Key 开放一个 Window,直到指定日期 | 将一个 Window 设为公开 |
| 将一个 Window 移入回收站并恢复 | 将某人添加到 Cahut,或删除某人 |
| 回滚到上一版本 | 更改某人的角色、Room 的成员或其角色,或扩大 AI 的权限范围 |
| 更改一个 Window 的数据;操作完成后可恢复到更改前的副本 | 从一个 Window 的数据中移除表或列 |
常见问题
为什么不分享 Claude artifact 或 ChatGPT 链接?
它们都存放在创建它们的 AI 服务上,并按照该服务的条款分享。Cahut 将所有 AI 的成果集中保存在一个地方,也就是你的服务器和你的地址上。每个 Window 都会向你选择的人开放、保留上一版本,也可以保存读者提交的内容;每项操作都会写入 Logbook。两者可以配合使用:让 Claude 将其 artifact 发布到你的 Cahut。
为什么不用 Gamma?
Gamma 使用自带的 AI 创建演示文稿和文档,并将其托管在自己的服务上。Cahut 不创建任何内容:它只在你的服务器上托管你自己的 AI 创建的内容,无论是演示文稿还是其他以网页形式编写的内容。
为什么不用 Netlify、Vercel 或 GitHub Pages?
它们为开发者部署网站,来源可以是代码仓库或命令行。在 Cahut 中,AI 通过 MCP 发布内容,无需 Git、部署密钥或构建步骤。每个页面都可通过 Room、Key 或分享链接,向你选择的人开放;不可撤销的操作则必须等待人工批准。
为什么不用 Coolify、Dokku 或其他可自托管的 PaaS?
它们通过 Git 和容器运行开发者部署的应用。Cahut 托管的是 AI 自行发布的页面;AI 通过类型化操作发布内容,绝不会获得 shell,并且每个页面都可以通过链接分享。Cahut 不会在服务器上运行应用。
为什么不用 Nextcloud?
Nextcloud 用于存储、同步和分享文件,也可以编辑办公文档。Cahut 提供的是页面,而不是文件:每个 Window 都有自己的地址,可在浏览器中打开,在沙箱中运行脚本,并可将读者提交的内容保存在自己的数据库中。
Window 可以做什么,不能做什么?
Window 由 HTML 及其文件组成,包括脚本、样式、图片、字体和数据。Window 的代码不会在服务器上运行,其页面只会从 AI 声明的源加载内容并向这些源发出调用。Cahut 能做什么和不能做什么 详细介绍了相关功能和限制。
词汇
Cahut 使用简单明了的日常英语。
| 词语 | 含义 |
|---|---|
| Cahut | 运行在你服务器上的一个实例,拥有自己的域名。一台服务器可以托管多个实例 |
| Room | 个人或团队空间,包含其成员,地址为 <domain>/<room> |
| Window | 一个动态页面:文档、演示文稿、仪表板或应用,地址为 <domain>/<room>/<window> |
| Key | 用于打开受保护 Window 的密码 |
| Knock first | 管理规则:AI 在执行任何不可逆操作前都要先敲门 |
| Logbook | 所有操作的记录 |
每个 Window 都可以仅对其 Room 开放、对 Cahut 中的所有人开放、对持有其 Key 的任何人开放,或向公众开放。
要求
- 一台服务器、VPS 或专用机器,可运行一个或多个 Cahut。
- 最低配置:2 vCPU、4 GB 内存、40 GB 磁盘空间。
- 使用服务商提供的标准镜像安装 AlmaLinux 或 Ubuntu。
- 每个 Cahut 配置一个指向该服务器的域名或子域名;在配置域名之前,Cahut 可以使用服务器的公网 IPv4 地址。开放 80 和 443 端口。
安装
在一台全新的 AlmaLinux 或 Ubuntu 服务器上,确保开放 80 和 443 端口,并配置好指向该服务器的域名,然后运行:
curl -fsSL https://cahut.cloud/install.sh | sudo sh -s -- --domain cahut.example.com
脚本会检查发行版的签名,并将 Cahut 安装为 systemd 服务。它会开放防火墙、设置每日更新并运行 cahut doctor。最后会生成一个一次性链接:打开链接,在浏览器中完成设置,选择你的账户并连接第一个 AI。如果没有指定 --domain,Cahut 会使用服务器的公网 IPv4 地址,并为该地址配置证书。之后你可以在控制台中将它迁移到域名。
然后,将 MCP 服务地址 https://cahut.example.com/mcp 提供给你的 AI。它会引导你前往控制台登录并选择允许它执行的操作:
| AI 客户端 | 位置 |
|---|---|
| claude.ai、Claude Desktop | 设置、连接器,添加自定义连接器,适用于所有套餐 |
| Claude Code | /plugin marketplace add cahutcloud/cahut,然后运行 /plugin install cahut@cahut,同时也会安装 Claude 的技能 |
| Mistral Vibe(原名 Le Chat) | 连接器,添加自定义 MCP 连接器,适用于所有套餐 |
| ChatGPT | 在网页版中选择 Plugins、Add custom MCP server,并使用 OAuth;仅限 Business、Enterprise 和 Edu 套餐,不适用于 Free、Plus 或 Pro |
| 其他 | 任何通过 HTTP 使用 OAuth 或个人令牌的 MCP 客户端 |
让它为你制作一份演示文稿:它会发布一个 Window 并提供其地址。你可以在控制台中选择谁能打开它。
Cahut 每天都会从已签名的发行版中自行更新,默认安装补丁版本。更新前,它会先为数据库创建快照;如果新版本无法启动,就会自动回退。运行 sudo /usr/local/bin/cahut doctor 可查看服务器的问题,运行 sudo /usr/local/bin/cahut update 可立即更新。文档还介绍了其他内容:安装程序的选项、未配置域名的 Cahut、在一台服务器上运行多个 Cahut,以及更新。
Cahut 的构建方式
Cahut 由一个人编写,并得到 Claude Code 的大量协助。无论改动由谁或什么编写,都必须遵守以下规则:
- 每项改动都通过拉取请求提交,并在 CI 检查通过后合并。Olivier 对每项合并的改动负责,每个提交都包含他的签署声明。
- CI 会运行 golangci-lint、govulncheck 和启用竞态检测器的测试,在测试服务器上重放首个版本的验收流程,并在全新的 Ubuntu 机器上安装 Cahut,然后更新并回滚。
- 每项技术决策都记录在架构决策记录中,说明决策原因和未采用的选项;每批工作也都有书面计划。
- 第一个版本经过了五个方面的安全审查(法语):审查了哪些部分可靠、每项发现以及相应的处理措施。
- 发行版使用 Ed25519 签名,每台服务器都会在安装前检查签名。
欢迎在遵循相同规则的前提下使用 AI 进行贡献:与 AI 协作对此有说明。
开发
Cahut 使用 Go 编写:这是一个全新、简洁的代码库,专为 Cahut 构建,确保一个人能够端到端地维护。Go 提供单个静态二进制文件,在标准 Linux 系统上易于安装和更新;其标准库则涵盖 HTTP、TLS 和密码学。
技术选择
| 主题 | 选择 |
|---|---|
| 性质 | 构建于标准 Linux 上的平台,而非操作系统 |
| 托管 | 一台服务器托管一个或多个 Cahut,每个 Cahut 都有自己的域名、用户和数据 |
| 语言 | Go |
| AI 接口 | 通过 HTTP 使用 MCP,采用 OAuth 或个人令牌 |
| Web 控制台 | 一个嵌入二进制文件的 Preact 应用,为每个 Cahut 提供 /console/ 路径,为服务器管理员提供 /server/ 路径;使用与 AI 相同的 API,不为它保留任何专属能力 |
| Web 和 TLS | 内置于二进制文件中;使用 CertMagic 自动签发证书;Windows 位于各自 Cahut 域名的路径下,并各自在 CSP 沙箱中运行 |
| 数据库 | 使用纯 Go 实现的 SQLite,以保持二进制文件静态;每个 Cahut 使用一个数据库,每个 Window 使用一个数据库存储自身数据,并在受限进程中运行 |
| 授权 | Cahut 自有的精简 OAuth 2.1 服务,专为 MCP 客户端构建 |
| 更新 | 每日从 GitHub 上的已签名版本更新,并支持回滚 |
| 网站和文档 | 本仓库中的 Astro 网站,依照品牌指南构建,由项目自有服务器托管 |
| 许可证 | 本仓库采用 AGPL-3.0;名称和徽标另行处理 |
各项选择背后的原因见架构决策记录。
仓库布局
cmd/cahut/ Entry point of the cahut binary
internal/ The code of Cahut, private to this module
install.sh Installs Cahut on a server as a systemd service
docs/ Project documents: architecture decision records in English; the brief, the V0 plan and the brand guidelines in French
sites/ The website and the documentation, Astro sites built on the brand guidelines
构建
构建 Cahut 需要 Go 1.27 或更高版本、make,以及 .nvmrc 中指定版本的 Node.js,用于构建嵌入二进制文件的 Web 控制台。运行 make build 可构建 bin/cahut;运行 make check 可执行代码检查工具、govulncheck 和测试,与 CI 的操作相同,且无需 Node.js。运行 make 可查看完整任务列表。网站也需要 Node.js:请参阅 sites/README.md。
发布版本为 linux/amd64 和 linux/arm64 的静态二进制文件,由 GoReleaser 在推送版本标签时构建。
Cahut 当前进展
第 0 至第 11 批已完成。2026 年 10 月 27 日,首个版本在一台全新的 Ubuntu 服务器上通过 Claude 和 ChatGPT 达成了五项成功标准(法语版验收记录):
| 标准 | 门槛 |
|---|---|
| 在全新 VPS 上安装 | 不到 10 分钟,只需一条命令 |
| AI 首次发布 | 不到 5 分钟,无需接触服务器 |
| 非技术人员分享 | 几分钟内即可通过链接分享一个演示文稿 |
| 支持的 AI | 同一个 Cahut 至少可与两个不同的 AI 客户端配合使用 |
| 治理 | 每项 AI 操作都记录在 Logbook 中,且可撤销或已获批准 |
cahut.cloud 上的路线图介绍了各批次内容以及当前已实现的功能。
文档
- docs.cahut.cloud:安装、连接 AI、发布、概念、管理,以及 MCP 工具、命令行和 HTTP API 参考。
- 项目简介(法语):愿景、定位、范围、治理、技术选择和待解问题。
- V0 计划(法语):首个版本的范围、批次和里程碑。
- 治理与项目运作(法语):项目的运作和发展方式,包括角色、贡献、支持、渠道、发布、安全、名称、许可证和资金,以及仍待决定的事项。
- 架构决策记录:每项技术选择、选择原因以及舍弃的方案。
- 品牌指南(法语):徽标、颜色、字体、图标、插图、摄影、界面套件和模板,以及所有源文件。可通过 docs/charte-graphique/index.html 查看图形版本。
贡献与社区
Cahut 由一人以开放方式维护。GOVERNANCE.md 说明项目如何管理,CONTRIBUTING.md 说明哪些贡献有帮助,以及如何合入更改,SUPPORT.md 说明可以在哪里寻求帮助,SECURITY.md 说明如何私下报告漏洞。问题和想法请前往 Discussions。所有参与者都应遵守行为准则。
许可证
Cahut 是基于 GNU Affero 通用公共许可证第 3 版发布的自由软件(LICENSE)。你可以运行、研究、修改和分享它。如果你修改了它,并让他人通过网络使用你的版本,就必须以相同许可证向他们提供你的更改。安装或分发原样的 Cahut,只需随附许可证即可。
Cahut 这个名称及其徽标用于标识本项目,不受此许可证涵盖。你可以说某个产品运行于 Cahut 或与 Cahut 兼容;请勿将该名称或徽标用于你自己的产品、服务或域名,并为分支项目另取名称。TRADEMARK.md 对此有完整说明。
ADR 15 记录了这项决定以及未采用的选项。
作者
Cahut 是 Olivier Durand 的个人项目,与任何公司或 AI 供应商均无关联。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。