An open-source desktop office suite written in Rust that puts documents, spreadsheets, slides, PDF, Markdown, code and rich text into one application behind a single row of file tabs, with new, open, save, autosave, recovery and printing handled by one shared host.
Documents support paragraph and character formatting, styles, tables, images, headers and footers, page breaks and WMF/EMF pictures. Spreadsheets support multiple sheets, formulas, cell formats, borders and merged cells, and export to PDF and CSV. Presentations support slides, shapes, text boxes, images and layouts, with slideshow and export. PDF work edits existing text and images, adds annotations and text, and inserts, deletes, reorders, rotates, crops, extracts and splits pages.
Markdown offers live preview, task checkboxes, wikilinks, backlinks, tags, outline, a command palette and export. The text editor adds syntax highlighting for more than 20 languages, find and replace, search in folder, line operations and original-encoding round trips. A WYSIWYG HTML editor switches between design and source views.
The same executable is a command line for scripts and AI agents. Verb-first calls create, read, modify, batch and export documents by path without opening a window and can return JSON.
The project is under active development; fidelity on complex documents, input methods and some advanced workflows are still being polished.
One app for every document. Built for AI agents.
An open-source desktop office suite written in Rust: documents, spreadsheets, slides, PDF, Markdown, code and rich text,
opened, edited and saved in one row of file tabs. The same binary is a command line that AI agents call directly.
> [!NOTE]
> Weave Office is under active development and is not yet a day-to-day replacement for a mature office suite. Fidelity on complex documents, input methods and some advanced workflows are still being polished. See the acceptance log (Chinese) for current status and known issues.
Why Weave Office
Two things set it apart: it is all-in-one, and it is AI-friendly.
Most of us bounce between a word processor, a spreadsheet, a slide tool, a PDF reader, a Markdown notes app and a code editor every day, each with its own window, menus, settings and save logic. Weave Office puts them into one real application:
One row of file tabs. A contract, a quote, a pitch deck, a PDF invoice, your notes and a config file sit side by side, and you can open several of the same kind. Switch away and back, and the caret, selection, scroll position, zoom, undo history and unsaved changes are all still there.
One set of shared systems. New, open, save, save as, close, quit, recent files, autosave, printing and dialogs are handled by one host, not by four apps each doing it their own way.
AI can call it directly. The app binary is also a command line. An AI agent can read, change and export documents by path without opening a window, and gets JSON back (see Command line).
One shared foundation. Fonts, text shaping, rasterization, PDF output and metafile parsing exist once, so the download is smaller and the editors behave consistently.
Features
Formats at a glance
Kind
Opens
New files saved as
Editor
Documents
.docx.docm.doc.odt.rtf
.docx
WordCraft engine
Spreadsheets
.xlsx.xlsm.xls.ods.csv
.xlsx
GridCraft engine
Presentations
.pptx.pptm.ppt.odp
.pptx
DeckCraft engine
PDF
.pdf
.pdf
PdfCraft engine
Markdown
.md.markdown.mdx and more
.md
Built in (crates/text-editor)
Plain text and code
20+ languages, plus unknown extensions whose content is text
.txt.json.yaml.toml.xml.sql.sh.py.js.ts.css.go.rs
Built in (crates/text-editor)
Rich text (HTML)
.html.htm.xhtml
.html
Built in (crates/rich-editor), in development
The + button on the tab bar opens the New panel, grouped into Office documents (documents, presentations, spreadsheets, PDF), Text & web (Markdown, plain text, rich text) and Code & data (JSON, YAML, TOML, XML, SQL, Shell, Python, JavaScript, TypeScript, CSS, Go, Rust). Every format in it can be edited and saved back in the same format.
Four office editors in one: documents, spreadsheets, slides, PDF
Documents: paragraph and character formatting, styles, tables, images, headers and footers, page breaks; WMF/EMF pictures; PDF export and printing.
Spreadsheets: multiple sheets, formulas, number formats, borders and merged cells; mixed Latin and CJK text aligned on a shared baseline; PDF export (with embedded CJK fonts) and CSV.
Presentations: slides, shapes, text boxes, images and layouts; slideshow and export.
PDF: a real editor, not just a viewer. Edit existing text and images, add text and images, annotate (notes, text boxes, markup, shapes and replies), fill in text, and insert, delete, reorder, rotate, crop, extract and split pages. See PDF capabilities (Chinese).
All four run in a single process and share one host:
Unified ribbon: the host draws the ribbon's tab row for every editor; each editor draws only its own commands, so switching file types feels the same.
Unified fonts: open fonts ship once and system fonts are scanned once; all editors share one set of UI fonts, so switching tabs no longer reloads fonts.
Autosave and crash recovery: the host periodically writes unsaved changes to a recovery folder; after an unexpected quit, relaunch and get them back.
Unified files and dialogs: open, save and folder pickers use the native OS panels; confirmations, errors, settings and printing are Weave's own. While a dialog is open, tabs can't be switched or closed by accident, and files opened from outside wait in a queue.
Split view: show open documents side by side, one above another, or in nested panes within one window; drag the divider to resize. Use the Split menu next to the tab bar, the tab's right-click menu (Open to the Right / Open Below), or ⌘⌥→ / ⌘⌥↓ (Ctrl+Alt on Windows and Linux); ⌘⌥W closes the focused pane without closing its document.
Native on macOS: real traffic-light window buttons, rounded corners and shadow, with file tabs placed in the title bar; app menu, shortcuts, opening from Finder and the system quit flow are wired in.
Markdown with Obsidian-style live preview
Live preview: headings, bold, links and more render in place; markers such as #, ** and []() appear only on the line you are editing. Markdown tables render with borders, aligned columns and wrapped cells; click a table to edit its source. Source and reading views too.
Notes features: task checkboxes, [[wikilinks]], backlinks, tags and outline.
Sidebar: file tree, full-text search, outline, tags and backlinks.
Command palette (⇧⌘P) and quick open (⌥⌘O).
Insert tools: images, footnotes, callouts, math and properties (front matter).
Focus mode and typewriter scrolling.
PDF export and printing go through the document engine's Markdown import.
Code and plain-text editor
Syntax highlighting: Rust, JavaScript, TypeScript, Python, Go, C/C++, C#, Java, Kotlin, Swift, PHP, Ruby, Lua, Shell, PowerShell, SQL, Dockerfile, Makefile, JSON, YAML, TOML, INI, HTML, CSS and more.
Editing tools: line numbers, find and replace, search in folder, go to line, line commands (move, duplicate, delete, join), sort, de-duplicate, change case, trim trailing whitespace, convert indentation, and JSON formatting.
Keeps your encoding: files are written back in their original encoding (including GBK, UTF-16 and BOMs) and line endings; a file you didn't change is saved byte for byte. Files with an unknown extension but text content open as plain text.
Rich-text editor (in development)
A WYSIWYG HTML editor for laying out articles, in the spirit of WeChat article editors such as 135 Editor:
Open any HTML file and switch between the design view (the laid-out page) and the source view (highlighted HTML). Both always agree.
Edit in the design view: click to place the caret, drag or Shift-click to select, double-click for a word, triple-click for a paragraph, with input-method support. Copy carries HTML and plain text; paste keeps inline styles and drops scripts.
Home tab: paragraph style, size, bold, italic, underline, strikethrough, text and highlight colors, clear formatting, alignment, line spacing and first-line indent.