Office Documents
Office document handling comes from four independent plugins, each with its own constraints and failure modes:Word documents
profy-docx — docx-js generation, unpack-and-edit XML, cross-run text replacement, tracked changesExcel spreadsheets
profy-xlsx — formulas over hardcoded values, zero formula errors, financial model conventionsPDF documents
profy-pdf — WeasyPrint creation (mandatory) plus pypdf/qpdf manipulation, including the kami typesetting enginePresentations
profy-pptx — native .pptx (SVG → DrawingML) and HTML Deck, two mutually exclusive pipelinesWhat the four have in common
The “no tools” property deserves comment. These four plugins do not expose button-like interfaces such as “generate a Word document”. They supply methods and scripts. The upside is that the capability ceiling equals whatever can run in the sandbox, rather than being fixed by a tool signature — which matters for document work, where requirements are unusually open-ended.
Choosing between them
Three wrong turns worth naming
- Wanted a PDF, built an HTML Deck. HTML Decks cannot export to PDF (Tailwind and WebGL do not render). If PDF is the requirement, take the kami route from the start.
- Wanted an editable deck, wrote a custom converter. Custom scripts produce image-only slides with broken CJK text. The
svg_to_pptx.pypipeline is the only supported route. - Wanted a live model, got a snapshot of numbers. Every calculation in Excel must stay a formula; hardcoded results become silently wrong the moment one input changes.
One sentence that picks the right path
The deciding factor isn’t the file extension — it’s who picks the deliverable up next and what they do with it. Put that in the request and the Expert can’t take the wrong pipeline:Shared constraints
- The sandbox image has all dependencies preinstalled. Do not run
pip installat runtime; an import failure is an image bug. - Operations involving LibreOffice (xlsx formula recalculation, doc→docx conversion, accepting tracked changes) depend on LibreOffice being present in the sandbox.
- When modifying an existing file, its established conventions outrank any default guideline — you do not know what downstream depends on them.
Failures and fixes
Per-format failure modes live on each plugin’s page; these are the ones shared across all four:Billing
Credit consumption for document work comes from model token usage in the conversation. Generating and downloading the files themselves carries no additional charge.Verified 2026-08-11. Sources:
services/agent-runtime/src/plugins/builtin/{docx,xlsx,pdf,pptx}/plugin.json and their respective skills/ directories.
