The word processor
that writes with you

Real .docx, .doc, .odt, and Markdown. Claude, ChatGPT, and Grok built into the editing surface — not a sidebar plugin bolted onto a twenty-year-old codebase.

View on GitHub How it works

AI is not a plugin here.

Every other word processor on Linux treats AI as an afterthought — a sidebar chat window stapled onto software that was finished before large language models existed. Rune starts from the opposite premise. The model is a writing primitive, on the same level as bold, italic, and paste.

Highlight a paragraph and ask Claude to tighten it. Place your cursor and have GPT draft the next section. Switch providers mid-document. This is the actual point of the project — everything else is table stakes.

Format fidelity without reinventing it.

Parsing OOXML correctly is a problem LibreOffice has already spent two decades solving. Rune runs LibreOfficeKit headless as its document engine instead of writing a parser from scratch — so your .docx opens correctly, your tables survive, and your footnotes don't vanish.

The engineering budget goes into the editing experience and the AI integration, not into re-deriving a file format.

No ribbon. No clutter.

Microsoft's ribbon solves "too many commands" by sorting them into tabs you have to know to click. Rune surfaces tools based on what your cursor is actually touching — select text and font controls appear; click into a table and row/column tools appear; otherwise the toolbar stays small enough to fit any window.

Built for Omarchy's keyboard-first, minimal aesthetic — not imported from Office 2007.

Two processes, one socket

LibreOfficeKit isn't thread-safe and has an awkward shutdown path in current builds. Keeping it in its own process means a document engine crash never takes the editing window down with it.

rune (Qt Quick / QML)

  • Toolbar + contextual strip
  • Document canvas
  • Native, no Electron

rune-engine (headless)

  • LibreOfficeKit, dlopen'd
  • Command dispatch, per feature
  • 156 protocol-level tests

Full protocol reference and every documented limitation: engine/README.md

Early, and honest about it

Core editing works end to end. The AI integration — the actual reason this project exists — is still a provider registry waiting for real HTTP calls.

AreaState
Document I/O (.docx, .doc, .odt, .txt, .md)Working
Text editing — keyboard, mouse, clipboardWorking
Formatting, styles, tablesWorking
Multi-page rendering, autosaveWorking
AI integrationProvider skeleton only — no requests sent yet
Headers, footers, section breaks, imagesNot started

Some features we tried and couldn't make work headlessly — exact paragraph spacing, repeat-header-rows — are documented with the evidence, not hidden. See TODO.md for the complete, current picture.

Build it yourself

Arch / Omarchy, with LibreOffice and Qt 6 already in the official repos.

# dependencies $ sudo pacman -S libreoffice-fresh libreoffice-fresh-sdk qt6-base qt6-declarative # build $ git clone https://github.com/ninepointlabs/rune.git $ cd rune && cmake -S . -B build -G Ninja && cmake --build build # run $ ./run.sh samples/test.docx