{"slug": "genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account", "title": "GenOffice fork that works with any local LLM instead of a cloud account", "summary": "A developer has released a fork of GenOffice, the free open-source AI office suite, that removes the cloud-account requirement and instead connects to any OpenAI-compatible endpoint, including local servers like Ollama, LM Studio, vLLM, llama.cpp server, and text-generation-webui, or hosted APIs like OpenRouter. The fork, based on genspark-ai/genoffice under Apache-2.0, modifies only the AI provider defaults and settings UI, leaving all other upstream features unchanged. GenOffice supports real Microsoft Office formats (.docx, .xlsx, .pptx), PDF, and Markdown, with AI editing as a first-class workflow, and is available for macOS, Windows, and Linux.", "body_md": "**A free, open-source AI Office suite — this fork drops the cloud-account\nrequirement and talks to any OpenAI-compatible endpoint instead: a local\nserver (Ollama, LM Studio, vLLM, llama.cpp server, text-generation-webui) or\na hosted API (OpenRouter, or any other OpenAI-compatible provider).**\n\nForked from\n\n[genspark-ai/genoffice](Apache-2.0). Changed per Apache-2.0 §4(b): the AI provider defaults (`packages/ai-provider/src/providers.ts`\n\n) and settings UI (`apps/shell/src/renderer/src/SettingsModal.tsx`\n\n) — see git history for the full diff. Everything else is upstream GenOffice, unmodified.\n\n[Demo](https://www.youtube.com/watch?v=B2pLdMX95v4) — upstream's video; the\neditor features it shows are unchanged in this fork, only the AI provider\nsetup differs.\n\nGenOffice is a free, open-source alternative to Microsoft Office for macOS,\nWindows, and Linux, built around AI editing as a first-class workflow rather\nthan a bolted-on chat box. It opens and saves the real Microsoft Office\nformats — Word (`.docx`\n\n), Excel (`.xlsx`\n\n), PowerPoint (`.pptx`\n\n) — and edits\nPDF and Markdown too: a word processor, spreadsheet, presentation editor,\nPDF editor, and Markdown editor as six Electron apps sharing one engine\nlayer.\n\n[Watch the demo video on YouTube](https://www.youtube.com/watch?v=B2pLdMX95v4)\n\n**Real PDF editing**— retype text and edit images in the page itself, original fonts preserved.** Microsoft Word–compatible, byte-preserving**— only what you touched changes; Word never notices.`.docx`\n\nediting**Word-faithful pagination**— page breaks land where Word puts them.** Excel-compatible spreadsheets**— in-house engine with a Rust`.xlsx`\n\nsidecar, own charts, pivot tables, slicers.**PowerPoint-compatible presentations**— in-house`.pptx`\n\nengine with masters, layouts, smart guides, non-destructive crop.**Markdown to Word, fully local**— the same OOXML engine, no Pandoc, no cloud.** AI that edits documents**— block-level edits with snapshots and diffs, document-aware agents.** Agent tools built in**— web/image search, image generation, media analysis.** Light / dark / system themes.****macOS, Windows, Linux.****Free & open-source (Apache-2.0).**\n\nThis fork does not publish prebuilt installers — build from source (see\n[Development](#development) below: `npm install`\n\n, then `npm run dist:mac`\n\n/\n`dist:win`\n\n/ `dist:linux`\n\n). Upstream's own prebuilt installers, linked from\n[genspark-ai/genoffice](https://github.com/genspark-ai/genoffice), default to\nthe Genspark cloud provider — they are not this fork.\n\n| App | Product | What it is |\n|---|---|---|\n`apps/docs` |\nGenOffice Docs |\n`.docx` word processor. Byte-preserving round trip: only dirty paragraphs are regenerated (paragraph patch), everything else in the original file is kept byte-for-byte, so opening and saving never breaks layout in Word. Paginated view whose line metrics reproduce the original document's layout, tracked changes, comments, styles, equations, ink. |\n`apps/sheets` |\nGenOffice Sheets |\n`.xlsx` spreadsheet. UI built on the open-source\n`.xlsx` import/export runs through an in-house Rust sidecar (calamine + IronCalc), charts are rendered in-house (Konva), plus pivot tables, slicers, conditional formatting, and formula tracing. |\n`apps/slides` |\nGenOffice Slides |\n`.pptx` presentations. In-house `.pptx` parse/render/edit engine with masters, charts, cropping, ink, and text shaping (HarfBuzz metrics). |\n`apps/pdf` |\nGenOffice PDF |\n`.pdf` viewer/editor on\n|\n`apps/markdown` |\nGenOffice Markdown |\n`.md` / `.markdown` editor: Tiptap block editor over plain Markdown files — headings, lists, tables, images, code blocks — saved back as plain Markdown, hosted in shell tabs. |\n`apps/shell` |\nGenOffice |\nThe suite shell: home screen, tabbed hosting of the five editors, light/dark/system theme, auto-update. |\n\nEvery app embeds the same AI panel: block-granular AI editing with version snapshots and diffs in docs, a tool-calling agent over workbook/slide/PDF state in the others.\n\nThe whole suite ships light / dark / system UI themes built on shared design\ntokens (`packages/ui`\n\n), with a CI guard that keeps chrome colors on the token\nsystem. Document surfaces stay light in dark mode — Word-style dark chrome\naround white paper — so files render and export identically in both themes.\n\n**AI backend.** On a fresh install this fork defaults to the **Local /\nCustom (OpenAI-compatible)** provider with the base URL, model, and key all\nblank — nothing is pre-configured, no account or cloud sign-in required.\nPoint it at any server that speaks the OpenAI `chat/completions`\n\nwire\nprotocol:\n\n| Server | Base URL | Model | API key |\n|---|---|---|---|\n|\n\n`http://localhost:11434/v1`\n\n`llama3.1`\n\n[LM Studio](https://lmstudio.ai/)`http://localhost:1234/v1`\n\n[OpenRouter](https://openrouter.ai/)`https://openrouter.ai/api/v1`\n\n`openai/gpt-4o-mini`\n\nSettings → AI Provider → Local / Custom (OpenAI-compatible), fill in the three fields, then Test connection.\n\nUpstream's other providers are still selectable in the same screen and work\nas upstream describes: **Genspark** signs in via a device-code flow (no key\nneeded) and also unlocks the Genspark (\"gsk\") tool endpoints the agents\nbuild on — web/image search, image generation and editing, media analysis,\naudio transcription (`packages/ai-search`\n\n); **Claude / Gemini / DeepSeek /\nOpenAI** need that vendor's own API key.\n\nAll pure TypeScript, no Electron dependency, unit-tested (except the UI kit):\n\n`packages/docx-engine`\n\n— docx parsing → block tree (with`docxIndex`\n\nanchors and passthrough), OOXML fragment generation, byte-level paragraph patching.`packages/pptx-engine`\n\n/`packages/pptx-render`\n\n— pptx model and rendering.`packages/file-parse`\n\n— text extraction for AI attachments (office formats, text formats).`packages/agent-core`\n\n— the AI agent loop and skill composition shared by every app.`packages/ai-provider`\n\n— provider abstraction and streaming for the model backends.`packages/ai-search`\n\n— Genspark auth + web/image search tools.`packages/i18n`\n\n,`packages/ui`\n\n,`packages/project-store`\n\n,`packages/electron-utils`\n\n— shared i18n core, React UI kit, recent-files store, and Electron main-process helpers.\n\n```\nnpm install\nnpm run fixtures     # generate test .docx fixtures\nnpm test             # engine + app unit tests (docs/sheets/slides need no display)\nnpm run typecheck    # tsc --noEmit across every workspace\nnpm run dev          # all five editors + shell against Vite dev servers\nnpm run dev:docs     # a single app (same pattern works per workspace)\nnpm run dist:mac     # package macOS dmg (regenerates third-party notices)\nnpm run dist:win     # package Windows nsis installer\nnpm run dist:linux   # package Linux AppImage + deb + rpm\n```\n\nThe sheets app additionally needs a Rust toolchain for its xlsx sidecar\n(`cargo`\n\non PATH); `npm run build -w @genoffice/sheets`\n\ncompiles it\nautomatically.\n\nLocal UI/e2e driver scripts (Playwright + Electron, for local acceptance, not\ncommitted by default) live in [ scripts/drivers/](/douglas168/open-genoffice/blob/main/scripts/drivers/README.md).\n\n```\nopen docx ─► archive original by hash (never touched)\n          ─► docx-engine parses word/document.xml top-level elements (w:p / w:tbl / …)\n          ─► Block tree, each block anchored by docxIndex + original XML slice\n          ─► Tiptap streaming editor (manual + AI editing, dirty tracking)\nsave      ─► dirty blocks → OOXML fragments (referencing existing styles only)\n          ─► splice into original document.xml (untouched blocks keep original bytes)\n          ─► repack zip; all other entries copied byte-for-byte\n```\n\nThe same philosophy holds in sheets and slides: the original file is the source of truth, edits are applied as narrow patches, and everything the editor didn't touch survives the round trip untouched.\n\n**Is GenOffice free?**\nYes. GenOffice is free and open-source under the Apache-2.0 license — no\ntrial, no paid tier for the apps themselves.\n\n**Can GenOffice open Microsoft Word, Excel, and PowerPoint files?**\nYes. GenOffice opens and saves native `.docx`\n\n, `.xlsx`\n\n, and `.pptx`\n\nfiles.\nSaving is byte-preserving: parts of the file you didn't touch are written\nback byte-for-byte, so documents keep working in Microsoft Office.\n\n**Does GenOffice work offline?**\nDocument editing is fully local — files never leave your machine to be\nopened, edited, or saved. The AI features need a network connection to\nwhatever endpoint you configure in Settings → AI Provider — a LAN-only local\nserver (e.g. Ollama) keeps that traffic off the public internet too; a\ncloud provider (Genspark, OpenRouter, a named vendor) does not.\n\n**Can GenOffice edit PDF files?**\nYes — real PDF text and image editing that rewrites the page content stream\nwith the original fonts preserved, not cover-up annotations.\n\nSee [SECURITY.md](/douglas168/open-genoffice/blob/main/SECURITY.md) for the process security posture (renderer\nsandboxing, IPC validation, external-link gating) and the threat models for\nAI-generated content.\n\nGenOffice would not be possible without these open-source projects:\n\n[Electron](https://www.electronjs.org/)— the desktop runtime for every app.[Univer](https://github.com/dream-num/univer)(Apache-2.0) — the spreadsheet UI core that Sheets extends.[PDFium](https://pdfium.googlesource.com/pdfium/)(BSD-3-Clause, bundled via[@embedpdf/pdfium](https://github.com/embedpdf/embed-pdf-viewer)) — the content-stream engine behind true PDF text and image editing.[pdf.js](https://github.com/mozilla/pdf.js)(Apache-2.0) and[pdf-lib](https://github.com/Hopding/pdf-lib)(MIT) — PDF rendering and document assembly.[Tiptap](https://tiptap.dev/)/[ProseMirror](https://prosemirror.net/)— the block editors in Docs and Markdown.[Konva](https://konvajs.org/)— canvas rendering for Slides and Sheets charts.[HarfBuzz](https://github.com/harfbuzz/harfbuzz)(wasm) — text-shaping metrics for complex scripts.[calamine](https://github.com/tafia/calamine)and[IronCalc](https://github.com/ironcalc/IronCalc)— the read and calc layers of the Rust xlsx sidecar.- Liberation, Carlito, Caladea, and Noto CJK fonts (OFL/Apache-2.0) — bundled document fonts.\n\n`npm run notices`\n\nregenerates the bundled third-party license summary\n(`tools/gen-third-party-notices.mjs`\n\n); all runtime dependencies are\nMIT/Apache-2.0/BSD-3-Clause/OFL, and the bundled fonts (Liberation, Carlito,\nCaladea, Noto CJK subsets) are OFL/Apache.\n\nGenOffice is licensed under the [Apache License 2.0](/douglas168/open-genoffice/blob/main/LICENSE), with one\nexception: the `ee/`\n\ndirectory is reserved for future enterprise modules and\nis covered by the [GenOffice Enterprise License](/douglas168/open-genoffice/blob/main/ee/LICENSE).\n\nThe GenOffice and Genspark names and logos are trademarks of Mainfunc, Inc. The Apache-2.0 license does not grant permission to use them (see section 6); forks should use their own branding.", "url": "https://wpnews.pro/news/genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account", "canonical_source": "https://github.com/douglas168/open-genoffice", "published_at": "2026-08-18 09:03:41+00:00", "updated_at": "2026-08-18 09:41:08.780872+00:00", "lang": "en", "topics": ["ai-tools", "ai-products"], "entities": ["GenOffice", "genspark-ai/genoffice", "Ollama", "LM Studio", "vLLM", "llama.cpp", "text-generation-webui", "OpenRouter"], "alternates": {"html": "https://wpnews.pro/news/genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account", "markdown": "https://wpnews.pro/news/genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account.md", "text": "https://wpnews.pro/news/genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account.txt", "jsonld": "https://wpnews.pro/news/genoffice-fork-that-works-with-any-local-llm-instead-of-a-cloud-account.jsonld"}}