BetterOffice

BetterOffice

The open-source office suite. High-fidelity editing and real-time collaboration for people and agents, on Rust engines that run anywhere.

Used by

01 / 05

One suite, four editors

Every editor edits the file itself, with no conversion on open or save.

Documents

available

Redline a contract with your team while an agent proposes the next clause.

.docxdemo

Spreadsheets

available

Build a quarterly budget and watch every dependent formula update as you edit.

.xlsxdemo

Slides

available

Rework a pitch deck in the browser and hand it back as a real .pptx.

.pptxdemo

Diagrams

source preview

Update a process map's shape data and drop it into a Word or PowerPoint report.

.vsdx

02 / 05

Features

Every BetterOffice editor runs on Rust engines, from opening and editing files to layout and rendering. The same engines run in your browser, on your servers and inside agent workflows.

  1. 01

    Documents, spreadsheets, and slides

    Open, edit, render, and save DOCX, XLSX and PPTX files with high fidelity. Native OOXML editing preserves untouched file parts losslessly when round-tripping.

  2. 02

    Agent editing with human review

    Review attributed agent edits through tracked changes, inline diffs, and before-and-after previews. Accept or reject changes directly in the editor.

  3. 03

    Real-time collaboration

    People and agents edit the same file together, with live cursors and selections. Concurrent changes merge automatically, and offline edits sync when peers reconnect.

  4. 04

    Undo and redo

    Navigate editing history and undo accepted agent proposals as a single step.

  5. 05

    Embed or automate

    Drop React editors into your app, build on the framework-free JavaScript cores, or use Rust and Python APIs for headless processing and agent workflows.

  6. 06

    Open source and self-hostable

    Apache-2.0 licensed, with control over your document storage, deployment, and collaboration infrastructure.

All features

03 / 05

Benchmarks

Generated by the Benchmarks action; per-document results are on the benchmarks site. For how scores, timings and coverage are measured, see the benchmark methodology.

  • Documents

    .docx

    Visual similarity

    higher is better
    SSIM against Word, 0 to 1
    BetterOffice
    0.8519
    LibreOffice
    0.7694

    Exact page counts

    higher is better
    documents with Word's page count
    BetterOffice
    63/63
    LibreOffice
    44/63

    Render time

    lower is better
    average per document
    BetterOffice
    430 ms
    LibreOffice
    773 ms
    All results
    DOCX results, BetterOffice 3a49caad against LibreOffice 26.2.3.2
    MetricBetterOfficeLibreOffice
    Exact page counts63/6344/63
    Absolute page error057
    SSIM0.85190.7694
    Scored/total63/6363/63
    Render time (avg)430 ms773 ms
    Parse success100.00%100.00%
  • Spreadsheets

    .xlsx

    Visual similarity

    higher is better
    SSIM against Excel, 0 to 1
    BetterOffice
    0.7661
    LibreOffice
    0.6892

    Formula accuracy

    higher is better
    results matching Excel after recalculation
    BetterOffice
    99.60%
    LibreOffice
    85.87%

    Recalculation time

    lower is better
    average per workbook
    BetterOffice
    64 ms
    LibreOffice
    405 ms
    All results
    XLSX results, BetterOffice 3a49caad against LibreOffice 26.2.3.2
    MetricBetterOfficeLibreOffice
    SSIM0.76610.6892
    Scored/total207/208195/208
    Recalc accuracy99.60%85.87%
    Recalc time (avg)64 ms405 ms
    Parse success100.00%100.00%
  • Slides

    .pptx

    Visual similarity

    higher is better
    SSIM against PowerPoint, 0 to 1
    BetterOffice
    0.9170
    LibreOffice
    0.9030

    Render time

    lower is better
    average per presentation
    BetterOffice
    159 ms
    LibreOffice
    1351 ms
    All results
    PPTX results, BetterOffice 3a49caad against LibreOffice 26.2.3.2
    MetricBetterOfficeLibreOffice
    SSIM0.91700.9030
    Scored/total103/103103/103
    Render time (avg)159 ms1351 ms
    Parse success100.00%100.00%

BetterOffice 3a49caad, LibreOffice 26.2.3.2

Per-document results

Agent edits

Same model, same 30 editing tasks, two toolsets. An edit counts only if the requested change is there and nothing else in the file moved.

  • Documents

    .docx
    BetterOffice MCP
    10/10
    Generic file tools
    6/10
  • Spreadsheets

    .xlsx
    BetterOffice MCP
    10/10
    Generic file tools
    0/10
  • Slides

    .pptx
    BetterOffice MCP
    10/10
    Generic file tools
    8/10

Method, tasks and fixtures

04 / 05Collaboration

People and agents, one document

The document itself is a CRDT: every editor — every person, every AI agent — is a peer on the same data structure, and concurrent edits merge in the engine. Agents don't get a sidebar; they get a cursor, with the same undo and the same tracked-changes attribution as any co-author.

Collaboration guide

  • People

    Live co-editing over any WebSocket relay. Offline edits converge on reconnect.

  • Agents

    An agent edits through the same operations as a person, and human review is suggesting mode — accept or reject tracked changes, not a diff dialog.

05 / 05Packages

Ships as components, not iframes

The DOCX, XLSX and PPTX editors install from npm and render inside your app — no embeds, no external services, documents never leave the page.

See the package guide for supported runtimes and fonts, and release notes for version-specific changes.

JavaScriptnpm docs

$npm install @betteroffice/docx-react

Rustcrates.io docs

$cargo add betteroffice-docx

PythonPyPI docs

$pip install betteroffice-xlsx
  • @betteroffice/agents

    Tools for agents to search, read, edit and preview DOCX, XLSX and PPTX files, through a TypeScript SDK or a local MCP server.

    npm guide
  • @betteroffice/docx

    Framework-free DOCX core: parsing, CRDT editing, page layout and rendering on the Rust engine.

    npm guide
  • @betteroffice/docx-react

    The DOCX editor and viewer as a drop-in React component.

    npm guide
  • @betteroffice/xlsx

    Framework-free spreadsheet core: parsing, formula calculation and rendering on the Rust engine.

    npm guide
  • @betteroffice/xlsx-react

    The spreadsheet editor and viewer as a drop-in React component.

    npm guide
  • @betteroffice/pptx

    Framework-free slides core: parsing, editing and rendering on the Rust engine.

    npm guide
  • @betteroffice/pptx-react

    The slides editor and viewer as a drop-in React component.

    npm guide

The future is yours to edit.

Try it out, or explore the docs for setup, APIs, and format support.