If you've ever been emailed a .docx or .pptx on a Linux box and thought "here we go" — OfficeCLI might end that friction.

What It Is

OfficeCLI is a self-contained binary that reads, writes, and creates Word, Excel, and PowerPoint files — with no Office installation, no LibreOffice, no conversion artifacts. You treat documents like files you can query and modify from the terminal. The binary includes an embedded .NET runtime (NativeAOT compiled), so there's nothing to install beyond the tool itself.

It navigates document structure using XPath-style paths. /slide[1]/shape[2] selects the second shape on the first slide. You query, you modify, you close. That's the entire mental model.

Why It's Worth Your Time

Every Linux user has a workflow for Office documents. Usually it involves LibreOffice rendering things slightly wrong, or 50 lines of python-pptx boilerplate, or just emailing the file to yourself and opening it on another machine.

OfficeCLI takes a different angle. It treats the document as a structured tree — not a black box — and gives you clean, composable commands to interact with it. The live-preview mode is the standout feature: run officecli watch deck.pptx and you get a local HTTP server on port 26315 with an auto-refreshing preview. Edit a slide from the CLI and the browser updates immediately. That feedback loop matters.

The Excel formula evaluation is also genuinely clever. You write =SUM(A1:A2), read the cell back, and the value is already computed — no round-trip through a spreadsheet to recalculate. Covers 350+ functions including dynamic arrays (FILTER, SORT, UNIQUE), XLOOKUP, financial math, and more.

Hands On

Installation on Linux is a one-liner (verify this from their GitHub before running):

curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash

Alternatively via npm — which fetches the native binary for your platform:

npm install -g @officecli/officecli

Or download the binary directly from GitHub Releases (both linux-x64 and linux-arm64 builds available).

Verify it's working:

officecli --version

Create a presentation and add content:

officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report"
officecli view deck.pptx outline
# → Slide 1: Q4 Report

Start live preview in your browser:

officecli watch deck.pptx
# http://localhost:26315 — auto-refreshes on every change

Read a document element as structured JSON:

officecli get report.docx /body/p[1] --json

For batch operations — say, updating text across 100 files — the resident mode keeps the document in memory for near-zero latency between commands:

officecli open report.docx
officecli set report.docx /body/p[1]/r[1] --prop bold=true
officecli set report.docx /body/p[2]/r[1] --prop color=FF0000
officecli close report.docx

There's also a merge command that replaces {{key}} placeholders in any .docx/.xlsx/.pptx with JSON data. Design the template once, fill it N times, deterministically:

officecli merge invoice-template.docx out-001.docx '{"client":"Acme","total":"$5,200"}'

That last one is the kind of thing you'd previously reach for a full templating library to do.

Honest Verdict

This is the tool I wish existed when I was dealing with Office files on a headless server. LibreOffice has always been the fallback, and it's never quite right. OfficeCLI gives you programmatic, structured access to Office formats without conversion surprises.

A few caveats worth naming. The install method is curl | bash — run it in a throwaway environment first if that bothers you, or use the direct binary download. Auto-updates are enabled by default; disable them if you want control over what's on your system:

officecli config autoUpdate false

It's also a product from a company (iOfficeAI), not a community project. The heavy marketing angle is toward AI agents, and the README leans into that hard. Look past it — the tool works fine as a standalone CLI with no AI anywhere in the picture.

The docs are thorough but live in a GitHub wiki, which takes some navigation to get used to.

Who it's actually for: server environments where LibreOffice isn't an option, CI pipelines that generate reports, anyone tired of writing python-pptx boilerplate.

Go Try It

# Install
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash

# Create a file and see it live
officecli create test.pptx
officecli add test.pptx / --type slide --prop title="Hello from the terminal"
officecli watch test.pptx

GitHub: iOfficeAI/OfficeCLI