Skip to content
←返回开源项目

OPEN SOURCE DEEP DIVE

AI OfficeBrowser OfficeOOXMLLocal-First

VibeOffice:浏览器里的本地优先 Office 三件套

VibeOffice 用 Quire、Ledger、Lectern 在浏览器本地读写 DOCX、XLSX 与 PPTX,并以原始 OOXML 包为基线保留未编辑结构、宏与嵌入对象;当前 AI 助手仍处占位阶段,但项目已提供 AI 办公所需的本地文件执行层。

tcchen2026/VibeOffice1.2kJavaScriptApache-2.02 min read

在浏览器里打开、编辑并保存 Word、Excel 和 PowerPoint 文件,通常意味着先接受一次格式转换:上传文件,在网页编辑器里修改,再导出一个看起来相似但内部结构已经改变的新文件。VibeOffice 选择的是另一条路线。它把文字处理、电子表格和演示文稿三个应用直接做成可在本地运行的网页程序,并把“未经修改的内容尽量不要被重写”放在产品设计的中心。

这个项目采用 Apache 2.0 许可证,主体使用原生 HTML、JavaScript 和 CSS,没有运行时框架,也没有必须执行的构建步骤。它目前以 Quire、Ledger、Lectern 三个应用组成一套办公环境,分别对应文档、工作簿和演示文稿。虽然还没有发展成完整的微软 Office 替代品,但它已经把自己定位为一个很具体的执行层:文件进入浏览器,由本地代码读取、编辑和重新打包,而不是交给远端服务处理。

三件套分别处理什么

Quire 是 Word 风格的文字处理器。它能够打开并保存 DOCX、DOCM、DOTX 和 DOTM,也支持 RTF、HTML、纯文本、GitHub 风格 Markdown,以及带图片的 Markdown 压缩包。它具备分页、节、表格、样式、页眉页脚、批注、修订、目录、邮件合并、内容控件和公式等内容,并提供英文拼写检查、语法检查、同义词词典和可读性统计。PDF 可以作为输出格式生成,但当前不作为可编辑输入格式。

Ledger 是电子表格应用,打开和保存 XLSX、XLSM、XLTX、XLTM,也支持 CSV、制表符文本、纯文本和 XML Spreadsheet 2003。项目给出的实现覆盖 519 个工作表函数,包括动态数组、结构化引用、LAMBDA、XLOOKUP、FILTER、SORT 和 VSTACK 等较新的函数;同时支持数据透视表、条件格式、图表、排序筛选、数据验证、名称管理、场景、目标求解、公式审核和打印分页。宏可以随启用了宏的工作簿保留,但不会在浏览器内执行。

Lectern 面向演示文稿,支持 PPTX、PPTM、PPSX、PPSM、POTX 和 POTM。它提供幻灯片母版与版式、形状、文本、图表、表格、动画、切换、备注、自定义放映、批注、音视频和 SmartArt 等功能。项目自己实现了 26 种图示版式,并能在支持的范围内把 PowerPoint 生成的 SmartArt 读成可编辑结构。PDF、PNG 和单文件 HTML 属于导出格式,不是同格式回写路径。

应用主要用途核心同格式额外读写
Quire文档与长文本排版DOCX、DOCM、DOTX、DOTMRTF、HTML、TXT、Markdown、Markdown 压缩包
Ledger工作表、公式与图表XLSX、XLSM、XLTX、XLTMCSV、文本、XML Spreadsheet 2003
Lectern幻灯片与演示PPTX、PPTM、PPSX、PPSM、POTX、POTMPDF、PNG、单文件 HTML

当前重点非常明确:先把 Office Open XML 做得可靠,而不是同时追逐所有旧版二进制格式。项目不直接打开 DOC、XLS 和 PPT,而是引导用户先转换。这个取舍让工程资源集中在 DOCX、XLSX 和 PPTX 这条现代办公文件主路径上,也意味着它暂时不适合仍依赖大量旧格式的内部流程。

本地优先不只是“没有上传按钮”

VibeOffice 的网页版本没有账户系统,也没有接收文档内容的后端。文件由浏览器的文件选择器或拖放进入页面,解析、编辑、加密、解密、保存和导出都在当前浏览器标签页内完成。页面会从站点加载程序、字体和词典,但不会把用户打开的文档发送给 VibeOffice 的服务端。对于密码保护的文档,密码和加解密操作也留在本地,项目使用浏览器提供的 Web Cryptography API 以及自己实现的 AES 和 SHA 逻辑。

它可以通过渐进式网页应用的安装入口变成独立窗口,并注册 DOCX、XLSX 和 PPTX 的文件处理能力。在 Chrome 或 Edge 中安装后,用户可以从文件管理器直接打开对应的文档。服务缓存按页面版本管理,使已发布的静态资源在离线状态下仍可使用。项目还提供基于 Tauri 的桌面版,网页界面不变,但保存文件时不再只能触发下载,而是可以写回真实路径,并具备桌面端恢复草稿和窗口管理能力。

这里需要区分“本地优先”和“绝对断网”。网页版仍然需要首次加载静态资源,可选更新检查会访问 VibeOffice 自己的站点,部分字体和词典也要通过同源请求获取。它真正保证的是文档内容不需要经过业务后端,而不是说所有网络请求都消失。对于保密文档,这个边界比单纯的隐私宣传更重要,因为可以直接从代码路径、浏览器网络面板和部署方式验证。

核心差异是原始 OOXML 基线

普通网页编辑器最常见的做法是把 DOCX、XLSX 或 PPTX 解包,读进一个简化后的内部模型,再从模型生成新文件。只要模型缺少某类对象,保存时就会悄悄丢掉它。VibeOffice 的设计不是这样。打开文件后,原始 Office 包会作为不可变基线保存在内存中,不进入普通撤销快照;编辑器模型只记录用户真正触碰过的内容。保存时把模型变化重新合并到原始包上。

项目把包内部件分成三类。第一类是 opaque,也就是编辑器暂时不理解的部件,直接保留原始字节和关系。第二类是 merged,例如保存设置一类需要保留原文档结构、但允许替换少数属性的部件,写入时只覆盖模型拥有的属性。第三类是 regenerated,也就是由编辑器重新生成的内容部件,但仍要带着保留下来的片段、身份和依赖。宏、嵌入对象、部分 SmartArt、音视频、墨迹、三维模型、自定义 XML 和 Office 新扩展都属于这种保真策略的覆盖对象。

对于能够编辑的对象,VibeOffice 也尽量保留原有名称、ID 和关系标识。这样,批注锚点、动画目标、超链接、图片关系和对象依赖不会因为一次局部修改而全部换号。移动一个不支持的图形时,理想结果只改变外层变换坐标;修改阴影时,只替换阴影属性,其他未知效果继续存在。复制对象则需要把依赖和标识一起复制并重新映射,不能简单复制可见外观。

保存前还有一个面向用户的兼容性检查器。它不会把所有内部转换都变成红色警告,而是把真正可能让用户丢失内容或失去功能的项目列出来。严格 Open XML 输入会转换为过渡版 Open XML,数字签名会因为再次保存而失效,编辑某些不透明对象则可能要求把它转换成普通图形。这些情况都需要在下载前说清楚,而不是让用户到 Microsoft Office 里才发现异常。

这套机制解决的是办公文件里最难被看见的问题:视觉上相同,并不等于文件结构相同;文件能打开,也不等于批注、宏、动画和嵌入对象都还在。VibeOffice 的价值不在于重新发明一个更简单的文档模型,而在于让简化模型和原始包共存,并把“未触碰内容原样返回”当作保存契约。

测试规模说明了什么,也暴露了什么

根据项目自报的数据,最终测量使用 4697 个真实文件,来自 LibreOffice、Apache POI 和 Open XML SDK 等公开测试语料。测试执行了 14091 次驱动尝试,形成 30919 个包结构或 SDK 状态;其中 29341 个通过,670 个失败,908 个被排除。排除项包括不可读原件、缺少输出或无法形成可比较状态,项目把它们单独记账,而不是算作成功。

在 LibreOffice 渲染未编辑保存结果时,Word 文档为 2869/2880,电子表格为 930/935,演示文稿为 836/837。文本清点中,Word 保留 776207/776869 个词,PowerPoint 保留全部 58022 个词;Excel 的单元格比较在 889 次保存中有 883 次完全一致。这些数字说明项目认真建立了可重复的保真测试,但它们仍是项目自己运行并公开记录的证据,不是第三方认证,也不能外推为所有企业文件都不会出问题。

项目也把已知缺陷写在文档里。Ledger 仍可能整块丢失工作表上的 SmartArt,并对另外 16 个文件出现 sheet drawing 损失;Lectern 有两个具体测试文件分别丢失图片和 PDF 媒体。复杂版式、长任务、宏行为、修复损坏源文件以及完整 Office 验收仍存在边界。README 明确提醒用户,重要文件应先保留副本。这种披露反而比“百分之百兼容”的口号更可信,因为它给出了失败条件、测试语料和继续修复的方向。

此外,项目公开说明代码在 AI 编程助手参与下开发,并针对可能受训练语料影响的相似代码进行许可证审查;第一轮完整审查在 2026 年 10 月完成。对需要评估开源合规性的团队来说,这仍然是项目自述,应该结合许可证清单、代码审查记录和自身风险流程判断,而不能只看功能演示。

当前不是生成式 AI 办公助手

项目里有一个名叫 Scout 的助手形象,会在启动时问候、演示动作,并提供命令搜索、帮助入口和快捷键提示。但源码中的自我介绍非常明确:“soon-to-be-AI assistant. For now, I mostly fetch.” 目前没有证据表明 Scout 已经接入语言模型、能够自动改写文档、生成表格公式或操作整套 Office 工作流。

因此,VibeOffice 更准确的定位是“面向 AI 智能体时代的本地办公文件执行层”,而不是“已经有 AI 写作功能的 Office”。它先把三个最困难的基础能力做出来:在浏览器内读写真实 Office 文件,保护未知结构,明确报告损失。对智能体系统而言,这些能力有潜在价值,因为模型可以生成意图和修改指令,但最终仍需要一个可靠执行器去处理压缩包、XML、关系、身份、兼容性和保存结果。当前项目还没有公开可调用的 MCP 服务或稳定智能体接口,所以不能把这种潜力说成已经完成的产品能力。

这个边界值得保留。办公文件不是纯文本,模型看不见的宏、批注、外部关系、动画和嵌入工作簿都可能承载真实业务逻辑。一个真正可用的 AI 办公工具,首先要知道自己改了什么、没改什么,以及保存后哪些能力会失效。VibeOffice 在做的正是这层基础工作。

适合谁,不适合谁

它适合希望文件不离开本机的个人和小团队,适合需要离线演示、内网静态部署或浏览器端文件处理的场景,也适合研究 Office Open XML、文档保真和智能体执行层的开发者。对于经常收到格式复杂、来源杂乱的 DOCX、XLSX 和 PPTX,又只想做少量修改并尽量保持原结构的用户,它的设计目标非常对路。

它暂时不适合把它当作完整 Microsoft Office 替代品的组织。实时多人协作、复杂宏执行、全部 Excel 高级分析、复杂 PowerPoint 母版与 SmartArt 编辑、旧版二进制文件和所有企业模板的完全兼容,都不在已经证明的范围里。若工作流依赖严格的合规认证、第三方兼容性承诺或不可中断的团队协作,仍应使用成熟办公套件,并把 VibeOffice 作为特定场景的补充。

更合理的判断方式,是选一批自己真实使用的文件做小范围验证:覆盖常见的字体、页眉页脚、批注、公式、图表、嵌入对象和宏;分别执行未编辑保存、局部编辑、撤销后再保存,并用 Microsoft Office 或 LibreOffice 回读。只要把重要文件保留原件,VibeOffice 已经提供了一个值得测试的本地优先方案,也展示了 AI 办公基础设施真正需要补齐的那一层。

项目地址:github.com/tcchen2026/VibeOffice。在线体验:vibeoffice.work。

相关开源项目

作为亚马逊联盟会员,我们可能从符合条件的购买中获得佣金。