officecli · v1.0.0 · 2026-08-17 · sha256 0894d54abd29604c

officecli v1.0.0A

Immutable. This exact content is served forever at /api/v1/blob/0894d54abd29604c.

---
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`:

```text
office_document(action="inspect", filePath="report.docx", mode="issues")
```

### Validate

```text
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.

```text
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:

```text
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.

```text
office_document(action="render", filePath="deck.pptx", mode="screenshot")
```

After rendering, inspect the returned preview before claiming that layout or formatting is correct.