Bento:把整个 PPT 编辑器塞进一个 560KB 的 HTML 文件
前端
办公
开源
工具
2026/9/29
·
阅读时间: 大约 6 分钟
Bento:把整个 PPT 编辑器塞进一个 560KB 的 HTML 文件

“文档即软件”这个思路在现代 Web 上重新变得可行。Bento(github.com/nyblnet/bento,MIT)把一个完整的 PPT 编辑器+演示器打包进约 560KB 的单个 HTML 文件:双击打开就是编辑器,编辑完保存,文件把你的 deck 数据自写回 HTML 里;把这个文件发给同事,对方浏览器打开就能放映——不需要装软件、不需要注册、不需要联网。本文基于官方仓库 README 与在线 demo(bento.page/slides)实读。
一、核心主张:文件即软件
README 的开篇立场很鲜明:“The office suite that fits in a file”。它把现代办公软件的”订阅制陷阱”作为对立面来打:
办公文档过去是你拥有的东西,现在变成你租的东西——锁在别人的云里、要登录、只有厂商服务器开着才能看。Bento 走另一条路。
四个”自己说了算”的设计:
- 一个文件,永远。 deck、字体、图片、图表、动画、整个编辑器全部在一个 HTML 里;2026 年存的文件 2036 年还能打开;
- View-source honest。 文档本体是文件顶部一段明文字符串 JSON,无二进制格式、无锁定;
- 自保存。 用 File System Access API 直接改写自己的数据块(不支持时回退为下载);
- Local-first。 打开 Offline 模式后,更新与协作被硬性阻断,应用会明说”现在是离线状态”。
二、功能密度:560KB 里塞了什么
README 的功能表(官方实读):
| 能力 | 实现方式 |
|---|---|
| Morph 演示动画 | 相同 id 的元素在幻灯片间动画过渡:位置、尺寸、颜色甚至渐变都能补间 |
| 实时协作 | AES-GCM 端到端加密,密钥存在你的文件里;自研 CRDT,字符级文本合并;同步中继只存密文 |
| 内置图表 | 零依赖自研引擎:柱/线/饼/散点,演示时可 tooltip/缩放,柱图变饼图会 morph |
| AI 友好 | 文档就是明文 JSON,window.bento.loadDoc 可被 Agent 直接读写;打包了 Claude Code 插件市场的 bento-slides skill |
| 自更新 | ECDSA 签名,应用内更新,旧文件保留作回滚 |
| 其他 | 演讲者视图、批注、布局、PDF 导出、8 种 UI 语言 |

三、口径与局限
- “560KB”是整个应用壳的大小,不是单个 deck 的大小。 你嵌入的图片、字体会让 deck 文件线性变大——发一个带 20 张高清图的 deck,文件可能几十 MB,“轻量”只对空模板成立。
- “完全兼容 PowerPoint”不存在。 它是 PPT 替代品不是阅读器——
.pptx双向互操作不是目标,导入复杂 Office 母版/ SmartArt 会丢东西。要和 PowerPoint 用户协作的团队,导出 PDF 是稳妥出口。 - 协作体验依赖中继服务器。 E2EE 协作很安全,但同步 relay 是可选自部署组件(server/sync-worker/)——没有中继就只能本地编辑,协作门槛比 Google Slides 高。
- “AI 直接编辑”是双刃剑。 JSON 明文意味着 Agent 可以直接改,但也意味着 Agent 可以改坏——没有 schema 校验的话,误编辑会破坏 deck。
- 项目很年轻。 仓库 163 行 README、11 个 open issue、54 个 PR——活跃但未沉淀,高级排版能力(母版、复杂动画路径、图表联动)和成熟演示工具仍有差距。
- 离线自更新的信任模型。 ECDSA 签名自更新是好设计,但意味着你要信任作者的签名密钥——这比”官方应用商店分发”多一层个人信任假设。
四、客观评价
优势:
- 本地优先 + 文件即软件,隐私与离线体验碾压云端 Office;
- 明文中 JSON 对 AI Agent 极其友好,是”Agent 时代的文档格式”样本;
- Morph 动画 + 自研图表在 560KB 内完成,工程密度惊人;
- E2EE 协作密钥在文件里,无服务器也能分享。
局限:
- 与 PowerPoint 生态不兼容,迁移成本现实存在;
- 协作需要自部署中继,门槛高;
- 年轻项目,高级排版功能有限;
- 图片嵌入让文件体积快速膨胀。
五、谁该用
重视隐私、要离线可用、讨厌订阅制的个人演示者;想把 deck 发给别人、又不想对方装软件的场景;以及正在研究”AI Agent 如何直接编辑文档”的开发者——Bento 的明文 JSON + loadDoc 接口是这个方向的干净样本。需要和企业 PowerPoint 模板深度协作的团队,它目前不是替代方案。