The office suite for developers

~ $ office,
in the terminal.

Open, edit and save real Word, Excel and Project files — in a TUI, in your IDE, or through your AI agent. Faithful OOXML in and out, real engines underneath.

$ cargo install docxy xlsxy yppxy
  File   Home   Styles   Insert   Review   View
0····+····1····+····2····+····3····+····4····+····5····+····6
 Report¶                                                     
 ────────────────────────────────────────────────────────────
 A sharper, agent-written opening line.¶
 Supporting detail follows here.¶
 Appended via MCP.¶

 report.docx   F9 ribbon · ^S save · ^Z undo · ^F find
 — edited live by an agent over MCP; every change undoable

One suite. Three surfaces.

The same zero-dependency Rust engines render your documents everywhere you work — no format converters, no cloud round-trips.

In the terminal

Four TUIs with ribbons, live formula recalculation, a real terminal Gantt, images over kitty/iTerm2/Sixel — and vim keys. SSH in and edit the quarterly report.

In your agent

Every editor ships an MCP server and a live control surface. Agents read and edit the open document — changes land on the undo stack and repaint while you watch.

In your IDE

offxy for VS Code and JetBrains opens .docx and .xlsx as first-class editor tabs, powered by the same engines compiled to WebAssembly. Visual Studio: coming soon.

The applications

Each one opens the real file format — not an import, not an approximation — and saves it back losslessly.

docxy

.docx · .md

Word processor: tables, styles, lists, images (WMF/EMF included), comments, footnotes, find & replace, PDF and Markdown export.

xlsxy

.xlsx · .csv

Spreadsheet with a real calculation engine — dynamic arrays, pivots, defined names — conformance-tested against Excel's own cached results across a 500-workbook corpus.

yppxy

.mpp · .xml

Project scheduler with a Critical Path Method engine: dependencies, slack, resource leveling, baselines — and a Gantt chart drawn in character cells.

lookxy

mailpreview

Mail reading and triage for the terminal, with the same agent control surface as the rest of the suite.

Your agent gets hands.

Register once, and Claude Code (or any MCP client) can drive the live editor: read the open workbook, set a cell, tighten a paragraph, relink a schedule — while the pane repaints in front of you.

Edits go through each app's own edit path: undoable, recalculated, rescheduled. No stale files, no clobbered unsaved work.

claude mcp add docxy -- docxy --mcp
claude mcp add xlsxy -- xlsxy --mcp
claude mcp add yppxy -- yppxy --mcp

# the agent, editing a live spreadsheet
 xlsxy_set {"ref":"D1","text":"=SUM(A1:A5)*2"}
 {"ok":true,"result":{"ref":"D1","value":300,
     "formula":"=SUM(A1:A5)*2","text":"300"}}

# …and a live schedule
 yppxy_link {"uid":4,"pred":3}
 {"ok":true,"result":{"name":"Ship it",
     "start":"2026-03-04 08:00","critical":true}}

# the pane in your terminal just repainted. undo works.

Engineering you can audit.

The core crates — OPC/ZIP, WordprocessingML, SpreadsheetML, scheduling — are dependency-free Rust: hand-written ZIP, XML, and PDF, nothing in the supply chain but the standard library.

0dependencies in the core parsing & engine crates
900+tests, plus corpus conformance against real Office files
3MCP servers shipping today — one per editor
MITlicensed, OpenSSF-scorecarded, on crates.io