| name | officecli |
| version | 1.0.0 |
| description | Use the optional iOfficeAI/OfficeCLI engine for advanced inspection, validation, copy-on-write editing, template merge, or visual rendering of existing .docx, .xlsx, and .pptx files. Prefer MateClaw's built-in renderDocx/renderXlsx/renderPptx tools for simple new documents. Use this skill when preserving an existing template, modifying complex Office structure, checking formatting issues, validating OpenXML, or rendering a document for visual QA. This integration targets https://github.com/iOfficeAI/OfficeCLI, not the unrelated prompt-generation project with the same name. |
| requires | [{"key":"officecli","type":"binary","check":"officecli","description":"iOfficeAI/OfficeCLI executable on the MateClaw server","install":{"macos":"brew install officecli","linux":"Install a pinned iOfficeAI/OfficeCLI release and verify its SHA256","windows":"scoop install officecli"}}] |
| dependencies | {"tools":["office_document"]} |
| platforms | ["macos","linux","windows"] |
OfficeCLI advanced Office operations
This skill supplements MateClaw's native Office renderers. It never replaces them.
Routing
| User intent | Use |
|---|
| Create a simple new document from Markdown | renderDocx, renderXlsx, or renderPptx |
| Inspect an existing Office file | office_document(action="inspect") |
| Validate OpenXML structure | office_document(action="validate") |
| Apply several structured changes | office_document(action="batch") |
| Fill an existing template's placeholders | office_document(action="merge") |
| Render for visual QA | office_document(action="render") |
Safety contract
batch and merge operate on a private copy and never overwrite the source.
- The tool only accepts
.docx, .xlsx, and .pptx inputs inside the active workspace or current chat uploads.
- Do not install OfficeCLI from inside a chat. If the dependency is missing, explain that an administrator must install it on the MateClaw server.
- Do not fall back to arbitrary shell commands when
office_document rejects an action.
- Return the generated markdown link verbatim so the user can download and preview the result.
Operations
Inspect
Use one of outline, stats, issues, text, or annotated:
office_document(action="inspect", filePath="report.docx", mode="issues")
Validate
office_document(action="validate", filePath="workbook.xlsx")
Batch edit
payload must be a non-empty OfficeCLI batch JSON array. Prefer stable element IDs returned by inspection over positional paths when available.
office_document(
action="batch",
filePath="deck.pptx",
payload="[{\"command\":\"set\",\"path\":\"/slide[1]/shape[@id=42]\",\"props\":{\"text\":\"Updated\"}}]",
outputFilename="deck-updated.pptx"
)
Template merge
payload must be a non-empty JSON object:
office_document(
action="merge",
filePath="invoice-template.docx",
payload="{\"client\":\"Acme\",\"total\":\"$5,200\"}",
outputFilename="invoice-acme.docx"
)
Render
Use html, screenshot, svg, or pdf. Prefer screenshot for visual QA.
office_document(action="render", filePath="deck.pptx", mode="screenshot")
After rendering, inspect the returned preview before claiming that layout or formatting is correct.