According to AlphaMoat, as of 2026-09, Office Document Editor has 3,424 downloads and 2 stars — ranked #3,262 of 5,078 AI skills overall, and #245 of 435 in Office.
| Platform | Installs | Downloads | Stars | Comments |
|---|---|---|---|---|
| ClawHub ↗ | 89 | 3.0K | 2 | - |
| SkillHub ↗ | 277 | 3.4K | 1 | — |
Platforms count differently and update at different times.
Edit DOCX and PPTX documents with tracked changes and formatting preservation.
Profile published 2026-10-27
Generated from the skill’s documentation as examples; not results of actual runs.
The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.
| Month | Downloads | MoM | Stars |
|---|---|---|---|
| 2026-09 | 3.4K | — | 2 |
| 2026-08 | 2.9K | +9.3% | 2 |
| 2026-07 | 2.7K | — | 1 |
| 2026-05 | 2.1K | — | 1 |
| 2026-03 | 1.0K | — | 1 |
The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.
---
name: office-document-editor
description: Professional DOCX/PPTX document editing with tracked changes, formatting preservation, highlights, strikethrough, and Git version control.
license: MIT
metadata:
openclaw:
requires:
bins:
- uv
- curl install:
- id: uv-env
kind: uv
path: .
bins: [docx_editor.py, pptx_editor.py, generate_diff.py]
---
# Universal Office Document Editor
Professional document editing for **any** DOCX/PPTX file from **any source**.
## Quick Reference
| Task | Approach |
|------|----------|
| Fetch file from upload | `bash scripts/fetch_file.sh upload` |
| Fetch file from URL | `bash scripts/fetch_file.sh https://example.com/file.docx` |
| Fetch file from SFTP | `bash scripts/fetch_file.sh sftp://user@host:/path/file.docx` |
| Edit DOCX | `uv run python scripts/docx_editor.py input.docx output.docx edits.json` |
| Edit PPTX | `uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json` |
| Generate diff | `uv run python scripts/generate_diff.py old.docx new.docx diff.md` |
| Interactive mode | `bash scripts/interactive_edit.sh` |
---
## File Sources
### Uploaded Files (Chat Attachments)
```bash
# Get latest uploaded DOCX
bash scripts/fetch_file.sh upload output.docx
# Get latest uploaded PPTX
bash scripts/fetch_file.sh upload output.pptx
```
Location: `~/.openclaw/workspace/media/inbound/file_*.docx`
### Local Filesystem Paths
```bash
# Copy from local path
bash scripts/fetch_file.sh ~/Documents/report.docx output.docx
# Or direct path
bash scripts/fetch_file.sh /absolute/path/file.pptx output.pptx
```
### Public URLs
```bash
# Download from URL
bash scripts/fetch_file.sh https://example.com/document.docx output.docx
```
### SFTP/SSH Remote Files
```bash
# Fetch via SFTP
bash scripts/fetch_file.sh sftp://user@host:/path/file.docx output.docx
```
---
## Creating Edit Rules
Create `edits.json` with your editing instructions:
```json
{
"description": "Edit description",
"replacements": [
{
"search": "old text",
"replace": "new text",
"style": "highlight"
}
],
"additions": [
{
"after": "after this text",
"text": "add this text",
"style": "highlight"
}
],
"slides": [
{
"action": "rearrange",
"order": [0, 2, 1, 3]
}
]
}
```
### Supported Styles
- `replace` - Direct replacement
- `highlight` - Yellow highlight
- `delete` - Strikethrough
- `bold` - Bold text
- `underline` - Underline
### Slide Actions (PPTX only)
- `rearrange` - Change slide order
- `add` - Add new slide
- `remove` - Delete slide
---
## Editing Documents
### Edit DOCX
```bash
uv run python scripts/docx_editor.py input.docx output.docx edits.json
```
Features:
- Paragraph text editing
- Table cell editing
- Format preservation
- Multiple replacements
- Text additions
### Edit PPTX
```bash
uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json
```
Features:
- Slide text replacement
- Slide rearrangement
- Add/remove slides
- Format preservation
### Generate Diff Report
```bash
uv run python scripts/generate_diff.py input.docx output.docx diff-report.md
```
Output: Standard Unified Diff format in Markdown.
---
## Complete Workflow
### Step 1: Fetch File
```bash
# From upload
bash scripts/fetch_file.sh upload input.docx
# From URL
bash scripts/fetch_file.sh https://example.com/file.docx input.docx
# From local path
bash scripts/fetch_file.sh ~/Documents/file.docx input.docx
```
### Step 2: Create Edit Rules
```json
{
"description": "IRB Review Response",
"replacements": [
{
"search": "2026 年 2 月 28 日",
"replace": "2026 年 8 月 31 日",
"style": "highlight"
}
]
}
```
### Step 3: Execute Edit
```bash
uv run python scripts/docx_editor.py input.docx output.docx edits.json
```
### Step 4: Generate Reports
```bash
# Unified Diff
uv run python scripts/generate_diff.py input.docx output.docx diff.md
# Convert to Markdown
uv run markitdown output.docx > output.md
```
### Step 5: Version Control
```bash
git add *.docx *.md diff.md
git commit -m "Edit: Description of changes"
```
---
## Interactive Mode
For guided editing:
```bash
bash scripts/interactive_edit.sh
```
This will prompt you through:
1. File source selection
2. Edit type selection
3. Details collection
4. Output location
---
## Examples
### Example 1: Text Replacement with Highlight
```json
{
"replacements": [
{
"search": "February 28, 2026",
"replace": "August 31, 2026",
"style": "highlight"
}
]
}
```
### Example 2: Add Text After Question
```json
{
"additions": [
{
"after": "What is the research topic?",
"text": "[ANSWER] Data Structures and Algorithms",
"style": "highlight"
}
]
}
```
### Example 3: Rearrange Slides
```json
{
"slides": [
{
"action": "rearrange",
"order": [0, 2, 1, 3, 4]
}
]
}
```
---
## Notes
### Format Preservation
- ✅ Text, paragraphs, tables: Fully preserved
- ✅ Highlights, strikethrough, bold: Supported
- ⚠️ Complex styles (custom themes): May be lost
- ❌ Images, charts: Manual handling required
### Table Text Replacement
python-docx requires **exact match** (including spaces, punctuation, newlines) for table text.
**Solutions:**
1. Use shorter search strings
2. Use `markitdown` to preview table content first
3. Use exact match in JSON
### Git Best Practices
- Use local Git repo (do not upload to GitHub)
- Add sensitive files to `.gitignore`
- Backup to secure location regularly
---
## Dependencies
- **uv**: Package management and virtual environment
- **python-docx**: DOCX editing
- **python-pptx**: PPTX editing
- **mammoth**: DOCX to Markdown conversion
- **markitdown**: Universal document conversion
- **curl**: URL downloads
- **sftp**: SFTP file transfers (optional)
### Installation
```bash
cd ~/.openclaw/workspace/skills/office-document-editor
uv sync
```
---
## Troubleshooting
### "No replacements made"
**Cause:** Text doesn't match exactly
**Solution:**
```bash
# Preview content
uv run markitdown input.docx
# Use exact text from preview
```
### "Virtual environment not found"
**Solution:**
```bash
cd ~/.openclaw/workspace/skills/office-document-editor
uv sync
```
### "File not found"
**Solutions:**
- Check file path is correct
- Try uploading the file again
- Verify URL is accessible
- Check SFTP credentials
---
## Scripts Reference
### fetch_file.sh
Universal file fetcher for all source types.
```bash
bash scripts/fetch_file.sh <source> [output_filename]
```
Sources:
- `upload` - Latest uploaded file
- `/path/to/file` - Local path
- `https://...` - Public URL
- `sftp://...` - SFTP remote
### docx_editor.py
Edit Word documents with formatting.
```bash
uv run python scripts/docx_editor.py input.docx output.docx edits.json
```
### pptx_editor.py
Edit PowerPoint presentations.
```bash
uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json
```
### generate_diff.py
Generate Unified Diff reports.
```bash
uv run python scripts/generate_diff.py old.docx new.docx diff.md
```
### interactive_edit.sh
Interactive guided editing.
```bash
bash scripts/interactive_edit.sh
```
### workflow_complete.sh
Complete automated workflow.
```bash
bash scripts/workflow_complete.sh input.docx edits.json
```
A full manual for creating, editing, and managing Tencent Docs through MCP.
Creates, inspects, and edits Excel files while keeping formulas, formatting, and workbook structure intact.
A working guide for Word and DOCX documents that keeps styles, numbering, and layout intact after edits.
Access Gmail, Calendar, Drive, Contacts, Sheets and Docs from the command line.
PDF and Image Text Extractor organizes document text, tables and scanned-page recognition into text results.
A skill that generates PPT decks from a topic and style.
The official skill for working with Kdocs cloud documents through kdocs-cli.
A small CLI that edits a chosen PDF page from a natural language instruction.
Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.