mateclaw/mateclaw-server/src/main/resources/skills/officecli/SKILL.md

3.3 KiB

name version description requires dependencies platforms
officecli 1.0.0 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.
key type check description install
officecli binary officecli iOfficeAI/OfficeCLI executable on the MateClaw server
macos linux windows
brew install officecli Install a pinned iOfficeAI/OfficeCLI release and verify its SHA256 scoop install officecli
tools
office_document
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.