Skip to content

About

Spreadsheet,Pdf,Docs,Markdown and Slides Using Local or Cloud AI

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

47 Commits

Folders and files

KĀRYA — Intelligent Workspace

The world's first full-featured open-source AI Office suite — a modified fork of GenOffice.

About this fork. KĀRYA is derived from and modified from the upstream GenOffice project (Apache-2.0). All upstream attribution and the Apache-2.0 license are preserved.

License: Apache-2.0 Latest release Downloads

Download · Demo

KĀRYA is a free, open-source alternative to Microsoft Office for macOS, Windows, and Linux, built around AI editing as a first-class workflow rather than a bolted-on chat box. It opens and saves the real Microsoft Office formats — Word (.docx), Excel (.xlsx), PowerPoint (.pptx) — and edits PDF and Markdown too: a word processor, spreadsheet, presentation editor, PDF editor, and Markdown editor as six Electron apps sharing one engine layer.

Meet KĀRYA — the world's first full-featured open-source AI Office (video)

Watch the demo video on YouTube

Features

  • Real PDF editing — retype text and edit images in the page itself, original fonts preserved.
  • Microsoft Word–compatible, byte-preserving .docx editing — only what you touched changes; Word never notices.
  • Word-faithful pagination — page breaks land where Word puts them.
  • Excel-compatible spreadsheets — in-house engine with a Rust .xlsx sidecar, own charts, pivot tables, slicers.
  • PowerPoint-compatible presentations — in-house .pptx engine 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).

Download

Pre-built KĀRYA installers are not yet available. Build from source using the Development instructions below, or wait for official releases on the Releases page.

Upstream note: This fork is derived from GenOffice (Apache-2.0). GenOffice releases are available at github.com/genspark-ai/genoffice/releases.

Apps

App Product What it is
apps/docs KĀRYA Docs .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.
apps/sheets KĀRYA Sheets .xlsx spreadsheet. UI built on the open-source Univer core (Apache-2.0) with a large layer of in-house extensions; .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.
apps/slides KĀRYA Slides .pptx presentations. In-house .pptx parse/render/edit engine with masters, charts, cropping, ink, and text shaping (HarfBuzz metrics).
apps/pdf KĀRYA PDF .pdf viewer/editor on pdf.js (Apache-2.0) + pdf-lib (MIT): annotations, forms, outlines, stamps, signatures, page operations, and printing support. True text editing — paragraph selection with in-block reflow, alignment restoration, original-font preservation — and content-stream image insert/edit, all rewriting page content streams through PDFium wasm (BSD-3-Clause) with subset-embedded fonts — no cover-up annotations.
apps/markdown KĀRYA Markdown .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.
apps/shell KĀRYA The suite shell: home screen, tabbed hosting of the five editors, light/dark/system theme, auto-update.

Every 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.

The whole suite ships light / dark / system UI themes built on shared design tokens (packages/ui), with a CI guard that keeps chrome colors on the token system. Document surfaces stay light in dark mode — Word-style dark chrome around white paper — so files render and export identically in both themes.

AI backends (multi-provider). Every app's AI panel can run against the provider of your choice, selected in the AI settings dialog:

  • Genspark — sign in with a Genspark account (device-code flow, no API key to manage). Model calls route through the Genspark proxy (Claude, GPT, and Gemini families), and the same account unlocks the Genspark ("gsk") tool endpoints the agents build on — web and image search, image generation and editing, image/audio/video analysis, and audio transcription — all reachable through packages/ai-search for anyone extending the agent layer.
  • Direct vendors — Anthropic Claude, Google Gemini, DeepSeek, and OpenAI with your own API key.
  • Custom OpenAI-compatible endpoint — any server implementing the OpenAI chat-completions API, with a configurable base URL.
  • Ollama (local) — fully local inference through a locally running Ollama server (default http://localhost:11434/v1); installed models are discovered from the server and no API key is needed.

There is no automatic cloud fallback: the selected provider handles every request, so choosing Ollama means your prompts and documents never leave your machine. See docs/providers.md for the configuration model, docs/ollama.md for the local-AI guide, and docs/installation.md for Windows setup.

Engine packages

All pure TypeScript, no Electron dependency, unit-tested (except the UI kit):

  • packages/docx-engine — docx parsing → block tree (with docxIndex anchors and passthrough), OOXML fragment generation, byte-level paragraph patching.
  • packages/pptx-engine / packages/pptx-render — pptx model and rendering.
  • packages/file-parse — text extraction for AI attachments (office formats, text formats).
  • packages/agent-core — the AI agent loop and skill composition shared by every app.
  • packages/ai-provider — provider abstraction and streaming for the model backends.
  • packages/ai-search — Genspark auth + web/image search tools.
  • packages/i18n, packages/ui, packages/project-store, packages/electron-utils — shared i18n core, React UI kit, recent-files store, and Electron main-process helpers.

Documentation

  • docs/installation.md — Windows installation, installer usage, prerequisites, and Ollama setup for the fork.
  • docs/ollama.md — the local-AI guide: endpoint, model discovery, provider selection, and common errors.
  • docs/providers.md — supported providers, the configuration model (provider / model / baseUrl / apiKey), and privacy.
  • docs/development.md — repository structure, provider architecture, how to add a provider, how tests work, and build instructions.
  • docs/RELEASE_CHECKLIST.md — the pre-release verification checklist.

Development

npm install
npm run fixtures     # generate test .docx fixtures
npm test             # engine + app unit tests (docs/sheets/slides need no display)
npm run typecheck    # tsc --noEmit across every workspace
npm run dev          # all five editors + shell against Vite dev servers
npm run dev:docs     # a single app (same pattern works per workspace)
npm run dist:mac     # package macOS dmg (regenerates third-party notices)
npm run dist:win     # package Windows nsis installer
npm run dist:linux   # package Linux AppImage + deb + rpm

The sheets app additionally needs a Rust toolchain for its xlsx sidecar (cargo on PATH); npm run build -w @genoffice/sheets compiles it automatically.

Local UI/e2e driver scripts (Playwright + Electron, for local acceptance, not committed by default) live in scripts/drivers/.

Architecture notes (docx round trip)

open docx ─► archive original by hash (never touched)
          ─► docx-engine parses word/document.xml top-level elements (w:p / w:tbl / …)
          ─► Block tree, each block anchored by docxIndex + original XML slice
          ─► Tiptap streaming editor (manual + AI editing, dirty tracking)
save      ─► dirty blocks → OOXML fragments (referencing existing styles only)
          ─► splice into original document.xml (untouched blocks keep original bytes)
          ─► repack zip; all other entries copied byte-for-byte

The 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.

FAQ

Is KĀRYA free? Yes. KĀRYA is free and open-source under the Apache-2.0 license — no trial, no paid tier for the apps themselves.

Can KĀRYA open Microsoft Word, Excel, and PowerPoint files? Yes. KĀRYA opens and saves native .docx, .xlsx, and .pptx files. Saving is byte-preserving: parts of the file you didn't touch are written back byte-for-byte, so documents keep working in Microsoft Office.

Does KĀRYA work offline? Document editing is fully local — files never leave your machine to be opened, edited, or saved. For AI, select Ollama in the AI settings and the entire AI panel runs locally with no network connection. Cloud providers (Genspark, OpenAI, Claude, Gemini, DeepSeek, custom endpoints) send prompts to their own APIs and need a connection — there is no automatic fallback between the two.

Can KĀRYA edit PDF files? Yes — real PDF text and image editing that rewrites the page content stream with the original fonts preserved, not cover-up annotations.

Security

See SECURITY.md for the process security posture (renderer sandboxing, IPC validation, external-link gating) and the threat models for AI-generated content.

Acknowledgements

KĀRYA (and its upstream GenOffice) would not be possible without these open-source projects:

  • Electron — the desktop runtime for every app.
  • Univer (Apache-2.0) — the spreadsheet UI core that Sheets extends.
  • PDFium (BSD-3-Clause, bundled via @embedpdf/pdfium) — the content-stream engine behind true PDF text and image editing.
  • pdf.js (Apache-2.0) and pdf-lib (MIT) — PDF rendering and document assembly.
  • Tiptap / ProseMirror — the block editors in Docs and Markdown.
  • Konva — canvas rendering for Slides and Sheets charts.
  • HarfBuzz (wasm) — text-shaping metrics for complex scripts.
  • calamine and 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.

Third-party notices

npm run notices regenerates the bundled third-party license summary (tools/gen-third-party-notices.mjs); all runtime dependencies are MIT/Apache-2.0/BSD-3-Clause/OFL, and the bundled fonts (Liberation, Carlito, Caladea, Noto CJK subsets) are OFL/Apache.

License

KĀRYA is licensed under the Apache License 2.0, as is its upstream GenOffice, with one exception: the ee/ directory is reserved for future enterprise modules and is covered by the GenOffice Enterprise License.

The 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. KĀRYA is an independent product name of this fork and is not affiliated with Mainfunc, Inc.

About

Spreadsheet,Pdf,Docs,Markdown and Slides Using Local or Cloud AI

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages