制作演示文稿时,文件本身往往只是内容容器。收件人还需要安装对应软件、登录在线平台,或者面对字体缺失、版本不兼容和链接失效等问题。Bento尝试改变这种关系:它把演示内容和运行软件放在同一个文件里。
用户拿到一个以.bento.html结尾的文件后,可以直接在现代浏览器中查看、编辑和播放。文件内部已经包含界面、演示引擎、编辑器和文档数据,不需要另外安装Bento客户端。

Bento是什么
Bento是一个本地优先的开源办公工具项目,目前已经提供的主要产品是bento/slides。官方将它定位为PowerPoint替代方案,但它并不是模仿PPTX文件格式,而是采用自包含HTML文件作为文档。
每份Bento演示文稿同时承担四种角色:
文档:保存幻灯片、文字、图片、图表和动画设置。
查看器:双击文件后可以在浏览器中阅读。
演示器:提供全屏播放、翻页和演讲者视图。
编辑器:打开后可以直接修改内容并重新保存。
当前项目的应用外壳约为560KB,实际文件大小还会受到图片、字体、音视频和幻灯片内容影响。用户可以从官方网站下载空白应用,也可以选择设计好的模板开始编辑。
一个文件如何容纳整套应用
.bento.html本质上是一个有效的HTML文件。文件顶部包含一个名为bento-doc的纯文本JSON数据块,用于保存标题、页面尺寸、主题、幻灯片、元素和资源信息。
<script type="application/bento+json" id="bento-doc">
{
"format": "bento/slides",
"title": "演示文稿标题",
"slides": []
}
</script>数据块之外是固定的运行外壳,包括编辑界面、演示逻辑、样式和相关组件。用户保存文档时,Bento主要替换JSON数据块,再生成一份仍然可以独立运行的HTML文件。
这种结构带来两个实际价值。普通用户不必理解文件格式就能直接编辑;开发者和AI工具则可以读取JSON,在不启动图形界面的情况下修改幻灯片内容。
打开和保存的实际方式
Bento不要求注册账号,也没有必须安装的桌面程序。下载Bento_Slides.bento.html后,用现代浏览器打开即可进入编辑器。
保存方式会因浏览器能力而不同。支持File System Access API的Chromium浏览器可以在获得授权后改写原文件,使用体验更接近桌面软件。
Safari、Firefox以及iPhone和iPad浏览器不能按照同样方式直接覆盖磁盘文件。Bento会改为下载一份更新后的副本,用户需要自行管理新旧文件。
项目还会在浏览器中保存编辑快照,帮助恢复未及时写入文件的修改。不过,设置密码保护的文稿不会采用相同的浏览器快照机制,因此重要内容仍应及时保存并保留备份。
演示效果不只是翻页
Bento的特点并不只是将普通幻灯片放进HTML。它提供了多种面向动态演示的功能。
Morph过渡:相邻页面中拥有相同标识的元素可以平滑改变位置、尺寸、颜色和渐变。
元素动画:支持进入动画、路径运动、数字递增和背景缓慢移动等效果。
内置图表:可以创建柱状图、折线图、饼图和散点图。
交互状态:点击元素后可以进入隐藏页面或展开补充内容。
悬停效果:适合制作产品说明、结构图和互动演示。
演讲者视图:用于查看演讲备注和控制播放。
页面评论:可以在文稿内部保存审阅讨论。
公式显示:当前版本支持在文本框中输入LaTeX公式并渲染为MathML。
PDF导出:便于生成更通用的只读交付文件。
Morph是其中较有辨识度的功能。复制一页幻灯片后调整元素位置,下一页使用Morph过渡,标题、图片和图形便可以从旧位置移动到新位置,不必逐个制作复杂动画。
它不是PPTX兼容编辑器
Bento虽然被描述为PowerPoint替代方案,但其原生文件是.bento.html,而不是.pptx。当前官方资料重点介绍的是Bento自身格式和PDF导出,没有把PPTX文件的导入、导出与往返编辑列为主要能力。
这意味着它更适合从Bento开始制作并以Bento文件或PDF交付,而不是承担现有PowerPoint文档的批量兼容工作。
如果合作方要求提交可继续编辑的PPTX文件,或者企业已经大量使用PowerPoint模板、宏、插件和内部素材库,就需要先确认工作流程是否能够接受Bento格式。
本地优先如何体现
Bento文件默认保存在用户自己的磁盘中,编辑和播放主要在浏览器本地完成。单独使用幻灯片功能时,不需要把文档上传到Bento服务器。
应用提供离线模式。开启后,更新检查和在线协作等网络请求会被阻止,适合会议现场、隔离网络或不希望文档连接外部服务的环境。
本地优先不等于所有内容天然离线。嵌入文件中的图片、字体和短视频可以随文稿一起保存,但使用外部视频或图片链接时,播放阶段仍然需要访问对应网址。
自包含资源越多,文件体积也越大。包含大量高清图片和视频的演示文稿可能从几百KB增长到数十MB,因此需要在离线完整性与文件大小之间取舍。
在线协作的工作方式
Bento支持实时协作,但它没有采用传统的账号加云端文档模式。协作房间信息和密钥保存在文件中,持有相应文件副本的参与者可以加入同一协作空间。
协作数据使用AES-GCM端到端加密。可选的同步中继服务器负责存储和转发密文,按照项目设计,中继服务器无法读取幻灯片内容、参与者名称和文档结构。
写入权限还使用签名机制控制。具有写入能力的文件保存私钥,只读副本不包含相应私钥,中继端可以验证修改是否由有权限的副本提交,而不需要解密文档内容。
这种方案减少了对中心化文档账户的依赖,但也形成了不同于普通在线办公平台的权限模型:
文件本身就是进入协作空间的凭证。
持有可写文件的人具有修改能力。
需要撤销旧成员时,应执行密钥轮换。
协作者显示的名称属于自行声明,不是经过企业身份系统验证的账号。
多人同时修改同一属性时,可能采用后写入内容覆盖先写入内容的方式处理。
因此,它适合小型可信团队和基于文件的临时协作,但不能直接替代包含企业账号、部门权限、审计和集中管理的办公平台。
为什么适合AI修改
Bento没有把文档内容封装在难以读取的二进制格式中。幻灯片数据以纯JSON形式保存在文件顶部,AI Agent可以直接查找并修改这一数据块。
项目提供了两种AI使用方式:
具备文件访问能力的Agent直接编辑.bento.html中的JSON。
用户从Bento复制文档JSON,交给聊天机器人修改,再粘贴回编辑器。
官方仓库还提供面向Claude Code的bento-slides Skill,并编写了专门的Agent格式指南。指南解释了文本、图形、图片、图表、表格、媒体、Morph和交互页面的JSON写法。
这种设计不仅可以让AI改写文字,也能让Agent创建整套幻灯片、生成图表、安排页面布局和建立动画关系。使用本地模型时,文件内容可以留在本机,不必因为生成演示文稿而上传到在线AI服务。
AI直接编辑也存在风险。字段缺失、坐标错误或JSON格式损坏都可能导致页面异常。修改前应复制原文件,并使用匹配当前Bento版本的Agent指南。
更新为何写入新文件
传统网页应用更新后,所有用户再次访问都会获得新版本。Bento的运行程序保存在每一份文稿内部,因此旧文稿打开时会继续运行文件中原有的编辑器版本。
项目提供了签名更新机制。应用获取更新清单后,会验证ECDSA签名、文件SHA-256以及版本是否确实更新,降低更新文件被替换或降级的风险。
更新不会直接销毁旧文件,而是生成一个使用新运行外壳的新副本,并保留原文件作为回滚版本。对于需要长期保存的文稿,这比在线平台突然替换编辑器更容易控制,但也要求用户管理不同版本的文件。
自包含设计减少了对某个在线服务持续运营的依赖,但不能绝对保证几十年后的浏览器仍完全兼容当前HTML、JavaScript和浏览器接口。重要档案仍可同步导出PDF等稳定副本。
移动设备能否使用
Bento可以在手机和平板中查看和播放演示。当前版本还改善了窄屏编辑界面,在较小宽度下会折叠工具栏,并让侧面面板覆盖画布,而不是继续挤压幻灯片区域。
不过,项目仍将编辑体验定位为桌面优先。手机更适合查看、演示和进行少量修改,大规模排版、精确调整元素和处理复杂动画时,电脑端会更方便。
移动浏览器通常也不能原地覆盖文件,保存后会下载新的副本。正式使用前,应测试设备如何打开、保存和再次定位下载后的文件。
poxiaoxi博客
精彩评论