genspark-ai/genoffice
GenOffice 是 Mainfunc, Inc. 旗下 Genspark 团队发布的免费开源 AI 办公套件,采用 Apache-2.0 许可,支持 macOS、Windows 和 Linux。套件包含 Docs、Sheets、Slides、PDF、Markdown 五个编辑器,可原生读写 .docx、.xlsx、.pptx 文件,采用字节级保留的窄补丁编辑机制。PDF 编辑基于 PDFium wasm 重写页面内容流并保留原始字体,支持本地 PDF 转 Word/Excel/PowerPoint 及系统 OCR。AI 功能支持 Genspark 登录或 BYOK,兼容 Claude、OpenAI、Gemini 等模型。
GenOffice
全球首款全功能开源 AI 办公套件。
GenOffice 是微软 Office 在 macOS、Windows 和 Linux 上的免费开源替代品,它将 AI 编辑作为一等公民的工作流,而非附加的聊天框。它打开并保存真正的微软 Office 格式——Word(.docx)、Excel(.xlsx)、PowerPoint(.pptx)——也支持编辑 PDF 和 Markdown:一个文字处理器、电子表格、演示文稿编辑器、PDF 编辑器和 Markdown 编辑器,以六个 Electron 应用共享同一引擎层的形式呈现。
功能特性
- 真正的 PDF 编辑 — 在页面中直接重排文本和编辑图片,保留原始字体。
- 本地 PDF → Word / PowerPoint / Excel 转换 — 将 PDF 转换为可编辑的
.docx、.pptx或.xlsx,完全在本地完成:无需云端,无需上传。 - 扫描版 PDF 同样支持 — 在 macOS 和 Windows 上,扫描页面通过系统 OCR 读取,因此可转换为可编辑文本。
- 微软 Word 兼容、字节级保留的
.docx编辑 — 仅修改你触碰过的内容;Word 完全无感知。 - 与 Word 一致的分页 — 分页符位置与 Word 完全一致。
- Excel 兼容的电子表格 — 自研引擎,附带 Rust
.xlsx侧车,自有图表、数据透视表、切片器。 - PowerPoint 兼容的演示文稿 — 自研
.pptx引擎,支持母版、版式、智能参考线、非破坏性裁剪。 - Markdown 转 Word,完全本地 — 使用同一 OOXML 引擎,无需 Pandoc,无需云端。
- AI 编辑文档 — 块级编辑,带快照和差异对比,文档感知的 agent。
- 自带密钥(BYOK) — 使用你自己的 API 密钥运行 AI:Claude、OpenAI、Gemini、DeepSeek、Kimi、GLM、Qwen、Doubao、MiniMax、Grok、Mistral、OpenRouter,或任何 OpenAI 兼容端点——或通过 Genspark 登录,完全无需密钥。
- 内置 agent 工具 — 网页/图片搜索、图片生成、媒体分析。
- 浅色 / 深色 / 系统主题。
- macOS、Windows、Linux。
- 免费且开源(Apache-2.0)。
下载
| 平台 | 系统要求 | 下载 |
|---|---|---|
| macOS — Apple Silicon (arm64) | macOS 11+ | 最新 .dmg (arm64) |
| macOS — Intel (x64) | macOS 11+ | 最新 .dmg (x64) |
| Windows (x64) | Windows 10+ | 最新 .exe 安装程序 |
| Linux — Debian / Ubuntu | x86_64,glibc 2.34+(Ubuntu 22.04 或更新) | 最新 .deb |
| Linux — Fedora / RHEL / openSUSE | x86_64,glibc 2.34+(Fedora 35+、RHEL 9+、Leap 15.6+) | 最新 .rpm |
| Linux — 其他发行版 | x86_64,glibc 2.34+,FUSE 2 | 最新 .AppImage |
所有构建均来自 main 分支;macOS 和 Windows 安装程序已签名。
旧版本可在 Releases 页面找到。
在 Linux 上安装
deb 包通过 apt 安装——它会自动拉取依赖并将 GenOffice 添加到应用程序菜单:
sudo apt install ./genoffice_<version>_amd64.deb
在 Fedora / RHEL 系列 / openSUSE 上,安装 rpm 包:
sudo dnf install ./genoffice-<version>.x86_64.rpm # Fedora / RHEL 系列
sudo zypper install ./genoffice-<version>.x86_64.rpm # openSUSE
AppImage 则直接运行:安装 FUSE 2 运行时(sudo apt install libfuse2;在 Ubuntu 24.04 上包名为 libfuse2t64),赋予文件可执行权限,然后运行:
chmod +x GenOffice-<version>.AppImage
./GenOffice-<version>.AppImage
应用
| 应用 | 产品 | 说明 |
|---|---|---|
apps/docs |
GenOffice Docs | .docx 文字处理器。字节级保留的往返:仅重新生成脏段落(段落补丁),文件中其余内容逐字节保留,因此打开和保存永远不会在 Word 中破坏布局。分页视图的行度量复现原始文档的布局,支持修订、批注、样式、公式、墨迹。 |
apps/sheets |
GenOffice Sheets | .xlsx 电子表格。UI 构建于开源 Univer 核心(Apache-2.0)之上,并叠加大量自研扩展;.xlsx 导入/导出通过自研 Rust 侧车(calamine + IronCalc)完成,图表自研渲染(Konva),另支持数据透视表、切片器、条件格式和公式追踪。 |
apps/slides |
GenOffice Slides | .pptx 演示文稿。自研 .pptx 解析/渲染/编辑引擎,支持母版、图表、裁剪、墨迹和文本整形(HarfBuzz 度量)。 |
apps/pdf |
GenOffice PDF | 基于 pdf.js(Apache-2.0)+ pdf-lib(MIT)的 .pdf 查看器/编辑器:支持注释、表单、大纲、图章、签名、页面操作和打印。真正的文本编辑——段落选择并块内重排、对齐恢复、原始字体保留——以及内容流图片插入/编辑,全部通过 PDFium wasm(BSD-3-Clause)重写页面内容流,并子集嵌入字体——非覆盖式注释。完全本地将 PDF 转换为可编辑的 Word、PowerPoint 和 Excel 文件(packages/pdf2docx),支持扫描页面的 OCR(macOS 和 Windows 上的系统 OCR)。 |
apps/markdown |
GenOffice Markdown | .md / .markdown 编辑器:基于纯 Markdown 文件的 Tiptap 块编辑器——标题、列表、表格、图片、代码块——保存回纯 Markdown,托管在 shell 标签页中。 |
apps/shell |
GenOffice | 套件外壳:主屏幕、五个编辑器的标签页托管、浅色/深色/系统主题、自动更新。 |
每个应用都嵌入相同的 AI 面板:Docs 中支持块级 AI 编辑,带版本快照和差异对比;其他应用中则是可调用工具、感知工作簿/幻灯片/PDF 状态的 agent。
整个套件基于共享设计令牌(packages/ui)提供浅色/深色/系统 UI 主题,CI 守卫确保 chrome 颜色始终遵循令牌系统。文档表面在深色模式下保持浅色——Word 风格的深色 chrome 包裹白色纸张——因此文件在两种主题下渲染和导出完全一致。
AI 后端——Genspark 登录或自带密钥。 默认情况下,应用通过设备码流程登录 Genspark 账户——无需输入模型 API 密钥——模型调用通过 Genspark 代理路由(Claude、GPT 和 Gemini 系列)。或者,在 AI 设置中选择自带密钥(BYOK):内置 Claude、OpenAI、Gemini、DeepSeek、Kimi、GLM、Qwen、Doubao、MiniMax、Grok、Mistral 和 OpenRouter,另有一个自定义提供商槽位,可接入任何 OpenAI 兼容端点(基础 URL + 密钥),包括本地服务器。Genspark 账户还可解锁 agent 所依赖的 Genspark("gsk")工具端点——网页和图片搜索、图片生成与编辑、图片/音频/视频分析、音频转录——所有扩展 agent 层的人均可通过 packages/ai-search 访问。
引擎包
全部为纯 TypeScript,无 Electron 依赖,已做单元测试(UI 套件除外):
packages/docx-engine— docx 解析 → 块树(带docxIndex锚点和透传),OOXML 片段生成,字节级段落补丁。packages/pptx-engine/packages/pptx-render— pptx 模型与渲染。packages/pdf2docx— 本地 PDF → DOCX 转换:PDFium 字符级提取、纯几何布局分析、通过docx-engine重建;同一分析驱动 PDF 应用的 PowerPoint 和 Excel 导出。packages/file-parse— AI 附件的文本提取(办公格式、文本格式)。packages/agent-core— 所有应用共享的 AI agent 循环和技能组合。packages/ai-provider— 模型后端的提供商抽象和流式传输。packages/ai-search— Genspark 认证 + 网页/图片搜索工具。packages/i18n、packages/ui、packages/project-store、packages/electron-utils— 共享 i18n 核心、React UI 套件、最近文件存储和 Electron 主进程辅助工具。
开发
npm install
npm run fixtures # 生成测试 .docx fixtures
npm test # 引擎 + 应用单元测试(docs/sheets/slides 无需显示)
npm run typecheck # 在每个 workspace 上运行 tsc --noEmit
npm run dev # 所有五个编辑器 + shell 对接 Vite dev server
npm run dev:docs # 单个应用(每个 workspace 模式相同)
npm run dist:mac # 打包 macOS dmg(重新生成第三方声明)
npm run dist:win # 打包 Windows nsis 安装程序
npm run dist:linux # 打包 Linux AppImage + deb + rpm
sheets 应用额外需要 Rust 工具链来编译其 xlsx 侧车(cargo 在 PATH 中);npm run build -w @genoffice/sheets 会自动编译。
本地 UI/e2e 驱动脚本(Playwright + Electron,用于本地验收,默认不提交)位于 scripts/drivers/。
架构说明(docx 往返)
打开 docx ─► 按哈希归档原始文件(永不触碰)
─► docx-engine 解析 word/document.xml 顶层元素(w:p / w:tbl / …)
─► 块树,每个块由 docxIndex + 原始 XML 切片锚定
─► Tiptap 流式编辑器(手动 + AI 编辑,脏跟踪)
保存 ─► 脏块 → OOXML 片段(仅引用现有样式)
─► 拼接到原始 document.xml(未触碰的块保留原始字节)
─► 重新打包 zip;所有其他条目逐字节复制
sheets 和 slides 遵循相同理念:原始文件是唯一事实来源,编辑以窄补丁形式应用,编辑器未触碰的一切在往返后原样保留。
常见问题
GenOffice 免费吗? 是的。GenOffice 在 Apache-2.0 许可下免费且开源——无试用期,应用本身无付费层级。
GenOffice 能打开微软 Word、Excel 和 PowerPoint 文件吗?
可以。GenOffice 打开并保存原生 .docx、.xlsx 和 .pptx 文件。保存是字节级保留的:未触碰的文件部分逐字节写回,因此文档在微软 Office 中继续正常工作。
GenOffice 支持离线使用吗? 文档编辑完全本地——文件打开、编辑或保存时不会离开你的机器。AI 功能(agent、搜索、图片工具)需要网络连接,可通过 Genspark 登录或使用你自己的模型 API 密钥(BYOK)。
GenOffice 能编辑 PDF 文件吗? 可以——真正的 PDF 文本和图片编辑,重写页面内容流并保留原始字体,而非覆盖式注释。
GenOffice 能将 PDF 转换为 Word、Excel 或 PowerPoint 吗?
可以——GenOffice 完全在设备上将 PDF 转换为可编辑的 .docx、.xlsx 和 .pptx 文件:PDFium 字符级提取加基于几何的布局分析,无云服务,无上传。扫描页面同样支持——在 macOS 和 Windows 上,系统 OCR 读取它们,因此可转换为可编辑文本而非页面图片。
我可以使用自己的 AI 模型或 API 密钥吗? 可以。除免密钥的 Genspark 登录外,GenOffice 支持自带密钥(BYOK),适用于 Claude、OpenAI、Gemini、DeepSeek、Kimi、GLM、Qwen、Doubao、MiniMax、Grok、Mistral 和 OpenRouter,以及任何 OpenAI 兼容端点——包括本地模型服务器。
GenOffice 会收集数据吗? 官方打包构建默认发送有限的使用分析,你可随时在设置 → 通用中禁用上报。分析从不发送文档内容、文件名、文件路径、账户身份或电子邮件地址。完整的事件和数据披露请参阅 GenOffice 隐私。
安全
进程安全态势(渲染器沙箱、IPC 验证、外部链接门控)以及 AI 生成内容的威胁模型,请参阅 SECURITY.md。
致谢
GenOffice 的实现离不开以下开源项目:
- Electron — 每个应用的桌面运行时。
- Univer(Apache-2.0)— Sheets 扩展的电子表格 UI 核心。
- PDFium(BSD-3-Clause,通过 @embedpdf/pdfium 打包)— 真正的 PDF 文本和图片编辑背后的内容流引擎。
- pdf.js(Apache-2.0)和 pdf-lib(MIT)— PDF 渲染和文档组装。
- Tiptap / ProseMirror — Docs 和 Markdown 中的块编辑器。
- Konva — Slides 和 Sheets 图表的 canvas 渲染。
- HarfBuzz(wasm)— 复杂脚本的文本整形度量。
- calamine 和 IronCalc — Rust xlsx 侧车的读取和计算层。
- Liberation、Carlito、Caladea 和 Noto CJK 字体(OFL/Apache-2.0)— 打包的文档字体。
第三方声明
npm run notices 重新生成打包的第三方许可证摘要(tools/gen-third-party-notices.mjs);所有运行时依赖均为 MIT/Apache-2.0/BSD-3-Clause/OFL,打包字体(Liberation、Carlito、Caladea、Noto CJK 子集)为 OFL/Apache。
许可证
GenOffice 采用 Apache License 2.0,但有一个例外:ee/ 目录保留给未来的企业模块,受 GenOffice 企业许可证 约束。
GenOffice 和 Genspark 名称及徽标是 Mainfunc, Inc. 的商标。Apache-2.0 许可证不授予使用它们的权利(见第 6 节);fork 应使用自己的品牌。
