nyblnet/bento · 上手攻略
- 仓库:nyblnet/bento
- 链接:https://github.com/nyblnet/bento
- 分类:办公软件 / 单文件 HTML 应用 / 本地优先
- 作者:Jay
- 更新:2026-07-29
是什么
Bento 是一个单文件 HTML 办公套件——目前以幻灯片(Slides)应用为核心,规划中还包括 Docs 和 Sheets,每个都打包成独立的 .bento.html 文件。它的核心思路是:文件本身就是软件。一份 .bento.html 文件包含完整的查看器、演示模式和编辑器,不需要安装、不需要注册、不需要联网——用任何现代浏览器打开即可运行。所有内容存储在文件顶部透明的 JSON 数据块中,无任何私有二进制格式。
解决什么问题
传统办公软件(PowerPoint、Google Slides)存在几个根本性痛点:
- 云锁定:文档存在别人的服务器上,账号一封、订阅一停,文件就打不开
- 格式不兼容:.pptx 换个版本就可能排版乱成一团,跨设备协作更是噩梦
- 体积臃肿:安装包动辄几百 MB,实质上只是看个幻灯片
- AI 难以介入:聊天机器人无法直接编辑 .docx 或 .pptx,需要复杂插件
Bento 的答案是:一个文件,永远可用;一份 JSON,AI 也能读。
快速安装
完全零安装,直接用浏览器打开即可体验完整功能。
方式一:在线试用(10 秒)
直接打开 bento.page/slides,会加载一个功能演示 Deck,可直接编辑,是最快速的上手入口。
方式二:下载文件(推荐离线用)
# 方式 A:从 GitHub Releases 下载(推荐稳定版)
# 访问 https://github.com/nyblnet/bento/releases
# 下载 Bento_Slides.bento.html(约 560 KB)
# 方式 B:直接从 bento.page 下载最新版
# https://bento.page/releases/slides/Bento_Slides.bento.html
下载后双击用 Chrome / Firefox / Safari / Edge 打开即可,没有后端需要运行。
本地开发(仅贡献者 / 二次开发需要)
git clone https://github.com/nyblnet/bento.git
cd bento/slides
npm install
npm run dev # 开发服务器 http://localhost:5173
npm run build:single # 构建 → dist-single/Bento_Slides.bento.html
开发版本需要 Node.js 20+。
核心用法
1. 基本编辑操作
打开 .bento.html 文件后,默认进入编辑器界面:
- 新建幻灯片:点击左上角 + 按钮或使用快捷键(参考编辑器内快捷键列表)
- 插入元素:工具栏提供文本框、图片、图表、表格、媒体(嵌入/链接)等
- 保存:按 Ctrl+S / Cmd+S,文件会通过 File System Access API 自更新(Chrome/Edge 支持),其他浏览器回退为下载覆盖
- 演示模式:按 F 或点击右下角 Present 按钮进入全屏演示
2. Morph 过渡动画(Bento 最招牌的功能)
两个相邻幻灯片上,给同一个元素赋予相同的 id,并在后者上设置 transition:"morph",元素就会在两张幻灯片之间平滑地"变形"——位置、大小、颜色甚至渐变都会动画过渡。
// 幻灯片 1:标题和装饰条
{
"id": "slide-1",
"transition": "none",
"elements": [
{ "id": "headline", "type": "text", "html": "Hello World", "x": 200, "y": 300 },
{ "id": "accent-bar", "type": "rect", "w": 300, "h": 8, "fill": "#6366f1" }
]
}
// 幻灯片 2:相同 id 的元素 morph 成新状态
{
"id": "slide-2",
"transition": "morph",
"elements": [
{ "id": "headline", "type": "text", "html": "Hello Bento", "x": 400, "y": 250 },
{ "id": "accent-bar", "type": "rect", "w": 500, "h": 8, "fill": "#8b5cf6" }
]
}
3. 图表内置
支持柱状图、折线图、饼图、散点图,编辑器和演示模式都原生渲染,支持工具提示、缩放,且图表在 morph 过渡中会自动变形(柱状图变饼图等)。
4. AI Agent 编辑(核心差异化能力)
Bento 的文档就是文件顶部的 JSON,任何能读写文件的 AI Agent 都能直接编辑,无需 API 或插件:
方式 A:文件级 Harness(Claude Code 等)
安装 Bento 官方的 Claude Code 技能(SKILL):
# 在 Claude Code 中运行
/plugin marketplace add nyblnet/bento
/plugin install bento-slides@bento
安装后,在任何目录下运行 /bento-slides,它会自动下载最新版 Bento App 并开始创作。也可以作为普通个人技能安装:
mkdir -p ~/.claude/skills/bento-slides
curl -fsSL https://bento.page/skills/bento-slides/SKILL.md -o ~/.claude/skills/bento-slides/SKILL.md
方式 B:聊天气泡式(任何聊天机器人)
用户通过界面内 About → Copy document JSON 导出文档 JSON → 丢给 AI 改写 → AI 返回完整 JSON → 用户 About → Replace document from JSON… 粘贴回去(可撤销)。
方式 C:浏览器控制台
// 读取当前文档
window.bento.doc
// 加载新文档(可撤销)
window.bento.loadDoc(newJson)
5. 实时协作(E2EE)
- 文档创建时客户端生成协作密钥,密钥只存在于文件本身
- 通过可选的"盲中继"服务器(存储加密密文,不解密任何内容)进行同步
- 离线编辑后重新联网,CRDT(无冲突复制数据类型)自动精确合并,包括字符级文本合并
- 离线模式一键开启,完全阻断任何数据外传
6. LaTeX 数学公式
在文本框中直接输入 $E=mc^2$(行内)或 $$...$$(独立显示行),由 MathML 渲染。morph 过渡中甚至支持符号级公式动画(等式两边变形)。
典型适用场景
| 场景 | 为什么适合 Bento |
|---|---|
| 随身演示 / 出差 | 一个 HTML 文件放 U 盘或发邮件,对方无需安装任何软件 |
| AI 辅助创作 PPT | Agent 直接读写 JSON 文件,无需调用 Office COM / API |
| 需要长期存档的文档 | JSON 明文存储,2026 年的文件 2036 年用任意文本编辑器都能打开 |
| 隐私敏感演示 | 开启离线模式,数据完全不出机器;中继服务器只看到密文 |
| 多语言文档 | 21 种语言包按需安装,不用的语言不增加文件体积 |
| 协作编辑(跨组织边界) | 密钥在文件里,接收到文件即等于获得协作权限;无需共享服务器 |
坑与注意
-
手机端编辑受限:编辑器在 402px 宽度可用,但"另存为"菜单目前手机端还进不去;手机上看和演示体验良好,但深度编辑建议用桌面浏览器。
-
实时协作中撤销是快照级的:两个用户同时编辑同一属性时,撤销可能回退对方的并发改动。不是 bug,是当前设计边界,适合"各自改不同区块"的协作模式。
-
morph 只能跨相邻幻灯片:id 相同的元素必须分别在两张相邻幻灯片上才能触发 morph,中间隔一张幻灯片不会生效。
-
文件格式版本匹配:编辑时若文件由更新版 shell 保存,可能包含 guide 版本未覆盖的新字段;旧 shell 打开会忽略未知字段(向前兼容),但新特性不可用。
-
中继服务器是可选的:不配置中继服务器也可以本地使用,只是无法远程实时协作;若要协作需要自建
server/sync-worker/或使用官方中继服务。 -
外部图片链接破坏离线保证:嵌入
data:或asset:URI 的图片随文件走;引用外部 URL 则失去离线可用性。 -
发布时建议转只读模式:最终分享时可另存为只读播放器模式(
readonly:true),打开直接进演示,无编辑器干扰。
与同类对比
| 维度 | Bento | PowerPoint | Google Slides | Reveal.js |
|---|---|---|---|---|
| 格式 | 单 HTML + JSON | .pptx 二进制/压缩包 | 云端专有 | .html 但需服务器 |
| 安装 | 零安装 | 需要 Office | 需要浏览器+网络 | 需要 Node.js/服务器 |
| AI 友好度 | 原生 JSON,Agent 直读 | 需 COM/API | 需 API | 需解析/转换 |
| 离线可用 | 完全支持 | 支持(本地文件) | 不支持 | 需本地服务器 |
| 协作 | E2EE + CRDT | 需 OneDrive 等 | 原生协作但非 E2EE | 需第三方 |
| 文件体积 | ~560 KB | 几十~几百 MB | 云端,无本地 | 几十 KB(但不包含数据) |
| Morph 动画 | 原生支持 | 有限 | 无 | 需插件 |
一句话推荐结论:如果你的工作流有 AI 参与,或需要"发出去的文件永远能打开",Bento 是目前最优雅的解决方案;如果你需要完整 Office 套件(Word/Excel/PPT 协同)和企业级治理,PowerPoint/Google Slides 仍不可替代。
一句话推荐结论
Bento 用"文件即应用"的思路彻底解耦了文档与平台,是本地优先、AI 友好、永久归档场景下的最佳幻灯片选择——尤其适合经常需要跨组织发送演示文稿、或希望 AI Agent 直接参与 PPT 创作的用户。