QUOTE
你发给别人一个 PPT,对方电脑上没有 PowerPoint。怎么办?这个开源项目给出了一个极端答案:让文件本身就是软件。
GitHub 上出现了一个神奇的项目:Bento。它是一个 PPT 替代品,但整个软件只有一个 HTML 文件,约 560KB。打开浏览器就能编辑、演示、保存。发给别人,对方什么都不用装,打开就能看。
上线 9 天,Star 数逼近 2000。MIT 开源协议。没有云端、没有账号、没有订阅费。今天我们来拆解一下,这个"反主流"的办公工具到底是怎么做到的。
Bento 的核心理念可以用一句话概括:文件即软件。传统的 PPT 文件(.pptx)只是一份数据,你必须安装 PowerPoint 或 WPS 才能打开它。但 Bento 的 `.bento.html` 文件不同——它把查看器、编辑器、演示引擎、字体、图片、图表全部打包进了一个 HTML 文件。
这意味着什么?你发给任何人一个文件,对方用任何浏览器打开就能看、能编辑、能演示。不需要安装任何软件,不需要登录任何账号,不需要联网。一个 560KB 的文件,比一张照片还小。
Bento 的创始人对当下办公软件的现状有一段精准的描述:办公文档曾经是你"拥有"的东西,现在变成了你"租用"的东西——锁在别人的云里,藏在别人的登录页后面,只有公司服务器开着你才能看。
「一份 2026 年的副本,2036 年依然能打开。」
—— Bento 项目 README
Bento 选择了另一条路:数据是明文 JSON,存在文件顶部,人类可读。没有二进制格式,没有供应商锁定。编辑时,文件会通过 File System Access API 重写自己的数据块——保存即更新,不需要任何外部应用。
你可能会问:单文件怎么做多人协作?Bento 的方案是——文件本身就是邀请函。任何人打开同一个文件的副本,就会自动加入协作房间。协作全程使用 AES-GCM 端到端加密,密钥存在文件里,从不上服务器。
中继服务器(relay)只存储密文,看不到内容、名字、甚至文档结构。合并冲突用的是自研 CRDT 算法,支持字符级别的文本合并。断网编辑后重新连接,内容会精确合并,不会丢失。
SECURITY MODEL
密钥在客户端生成,只存在文件里,不在服务器上
拥有文件 = 拥有权限,“轮换密钥” = 撤销访问
更新检查获取静态清单,不发送任何关于你或文档的信息
签名自更新:ECDSA 签名,更新写入新文件,旧文件保留为回滚
换句话说,Bento 的协作模型是“零信任”架构:服务器只是一个盲人中继,帮你转发加密数据,但永远不知道你在传什么。这和 Google Slides、腾讯文档的"服务器能看到一切"形成鲜明对比。
Bento 最让我兴奋的设计,是它的AI 原生能力。因为文档就是明文 JSON,任何能读写文件的 AI 助手都能直接编辑你的 PPT——不需要插件,不需要 API,不需要任何适配层。
两种使用方式:
1文件模式:Claude Code、Cursor、Aider 等有文件访问权限的 Agent,直接编辑 `.bento.html` 文件中的 JSON 数据块
2对话模式:从 About 菜单复制文档 JSON,发给任何聊天机器人,让它改完粘贴回去
它完全支持离线 + 本地开源模型。指向 Ollama、llama.cpp 或 LM Studio,数据永远不离开你的电脑。
—— Bento Agent Guide
这意味着一个完整的 AI 工作流可以是:你对 AI 说"帮我做一个关于 Q3 业绩的 PPT",AI 直接生成 JSON 写入文件,你打开就能看到完整的幻灯片。全程不需要复制粘贴,不需要导入导出,AI 和人操作的是同一个文件。
你可能觉得 560KB 做不出什么好东西。但 Bento 的功能清单会让你重新审视"轻量"这个词的含义:
| |
|---|
| Morph 动画 | 相同 ID 的元素在幻灯片间自动动画过渡——位置、大小、颜色、渐变 |
| 内置图表引擎 | 柱状图/折线图/饼图/散点图,演示时可交互:悬停提示、缩放、数据变形 |
| 演讲者视图 | |
| 评论与批注 | |
| PDF 导出 | |
| 8 种 UI 语言 | |
| 隐藏交互状态 | |
这一切都打包在一个比 JPEG 还小的文件里。图表是自研的零依赖引擎,动画是自研引擎,协作 CRDT 也是自研的——每一个核心模块都不依赖外部库,这才能把体积压到极致。
Bento Slides 只是第一步。根据项目路线图,接下来还会推出:
每一个都是独立的 `.bento.html` 文件,每一个都是完整的单文件应用。如果这个愿景实现,我们将拥有一套完全开源、完全离线、完全由文件驱动的办公套件。
办公文档曾经是你「拥有」的东西。现在它们是你「租用」的东西。Bento 选择了另一条路。
Bento 让我想起了早期互联网的精神:文件就是文件,打开就能用,发给别人就能看。没有围墙花园,没有订阅弹窗,没有"请登录后继续"。
在这个一切都在"上云"的时代,Bento 证明了一件事:本地优先、文件驱动、零依赖的软件,不仅可能,而且可以做得很好。
560KB,一个文件,一套办公套件。这就是 Bento。
LINKS
GitHub:github.com/nyblnet/bento
在线体验:bento.page/slides
下载:bento.page/releases/slides/Bento_Slides.bento.html(~560KB)
我是福利君,关注开源与 AI 工具。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。