@unpaper/cli
v0.2.1
Published
unPaper on your machine: convert self-contained HTML decks to real, editable PowerPoint; validate conformance; get starter templates and the pattern library. Local, offline, no AI inside. A product of reHeritage GmbH.
Downloads
402
Readme
@unpaper/cli
unPaper on your machine: turn self-contained HTML decks into real, editable PowerPoint, validate conformance, get starter templates and the pattern library — and expose it all to AI agents over MCP. Local, offline, no AI inside. A product of reHeritage GmbH.
npx @unpaper/cli starter --family consulting -o deck.html
# …your AI writes content into deck.html…
npx @unpaper/cli check deck.html # L0–L3 conformance, exit 0/1
npx @unpaper/cli convert deck.html # → deck.pptx, fully editableWhat you need
- Node ≥ 18.
- A local Chrome, Chromium or Edge (for
convertonly — the deck is measured in a real browser). Discovery order:--browser <path>→UNPAPER_BROWSER/CHROME_PATHenv → standard install locations.check,starterandpatternsneed no browser. - Optional: LibreOffice enables
importfor legacy.ppt/.pps/.odp.
Everything runs on your machine. No network calls, no telemetry, no upload, no AI. Your documents never leave your computer.
Commands
| Command | What it does |
| --- | --- |
| convert <deck.html> [-o out.pptx] [--selector .slide] [--no-shapes] [--json] | HTML deck → .pptx with native text boxes, real tables, data-editable charts, movable shapes, speaker notes. Foreign (non-unPaper) fixed-size decks convert too via selector auto-detection. |
| check <deck.html> [--json] | Conformance level L0–L3 + issues + a ready fix-request. Exit code contract (CI-usable): 0 = level ≥ L1 and no errors, 1 otherwise. |
| check <tpl.html> --template [--family <f>] [-o repaired.html] | Validate a company template against the byte-law: per-rule checks, mechanical re-lock of a drifted sizing script, fix request on failure. Base family auto-detects; same exit contract. |
| starter [--family standard\|consulting\|design\|editorial] [-o f.html] | Print a ready-to-fill template (self-contained, print-ready). |
| templatize [-o payload.txt] | The company-template payload for your AI. No flags = re-skin mode (attach the company's real slides in your AI). Brief flags (--name, --does, --personality modern\|classic\|technical\|warm\|bold, --colors "#a,#b", --logo file.svg, --foot, --present proposals,strategy,research,sales,board, --notes) = from-scratch design mode; --founded start.html also writes the pre-founded base — already a valid template on its own. |
| patterns [family\|ID] | The pattern library: 90+ slide patterns with jobs, converter status, prompt fragments. |
| import <deck.pptx\|ppt\|odp> [--emit-verbatim] [--emit-brand-kit] | Rescue an existing deck into AI-readable unPaper HTML (content, tables, notes, chart data, image registry). Legacy formats elevate via local LibreOffice. |
| rehydrate <redesign.html> <images.json> -o final.html | Splice the real images back into an AI's redesign, by id, deterministically. |
| mcp | Run the stdio MCP server (below). |
MCP server (for Claude Code, Claude Desktop, Cursor…)
// Claude Code (.mcp.json) / Claude Desktop (claude_desktop_config.json)
{ "mcpServers": { "unpaper": { "command": "npx",
"args": ["-y", "@unpaper/cli", "mcp"] } } }Cursor (~/.cursor/mcp.json) and any generic stdio client take the same
command/args pair.
Seven tools: starter → check → convert (the happy path — an agent goes
brief → deck → validated → .pptx with zero copy-paste), plus patterns,
import/rehydrate for redesigning existing PowerPoints, and templatize
for a company's own reusable format (the agent executes the returned payload
itself, then validates with check {template: true} — there is no
generation inside unPaper). Set a client timeout of ≥ 120 s — big decks
take time to measure and build. Browser discovery honors UNPAPER_BROWSER.
All server logging goes to stderr.
License
See LICENSE. Hosted use of unpaper.ai and personal/commercial use of your
converted documents are free; the software is proprietary to reHeritage GmbH
and organisational self-hosting/embedding/resale requires a commercial
licence. The unPaper HTML format specification is open (CC BY 4.0):
https://www.unpaper.ai/spec
