Your agent can’t can edit Office documents.
Four self-contained skills that teach Claude Code and Codex to fill PDF forms, redline Word documents, build PowerPoint decks, and recalculate Excel formulas.
> /plugin marketplace add appautomaton/document-SKILLs > /plugin install document-skills@appautomaton-skills
Claude Code plugin installation. System tools and per-skill dependencies are still required. For a local checkout, follow the setup below.
The skills
-
.pdf
Read, build, and fill. Extract text and tables, merge and split, create from scratch, OCR scanned pages, and fill forms two ways: native form fields, or drawn annotations validated against a rendered image.
-
.docx
Write and redline. Create documents from JavaScript, edit the raw OOXML, add comments, and produce genuine tracked changes for legal and academic review.
-
.pptx
Design and rearrange. Build decks from HTML with pixel-accurate positioning, reorder and edit existing slides, and render thumbnails so the agent can check its own work.
-
.xlsx
Model and recalculate. Create and edit spreadsheets while preserving formulas, then recalculate through headless LibreOffice and get back every
#REF!and#DIV/0!by cell address.
Set up a local checkout
This walkthrough uses macOS with Git and Homebrew installed. For Linux system packages, see the repository dependencies.
-
Clone the repository and enter it. The remaining commands run from this directory, which contains the Brewfile and all four skills.
git clone https://github.com/appautomaton/document-SKILLs.git cd document-SKILLs
-
Install the system tools. The Brewfile provides Poppler, Pandoc, and LibreOffice. It skips uv and Node when they are already on your PATH.
brew bundle --no-upgrade
For scanned-PDF OCR, also install
tesseractwith Homebrew. HTML-to-slide rendering on macOS uses Google Chrome. -
Install the Node packages used by Word and PowerPoint workflows. PDF and spreadsheet workflows do not need these packages.
npm --prefix docx install npm --prefix pptx install
Python dependencies resolve when each script runs through
uv run. -
Link the skills into your agent’s skills directory. This example uses Codex. For Claude Code, set
skills_dirto"$HOME/.claude/skills"instead. Existing entries are reported and kept.skills_dir="$HOME/.codex/skills" mkdir -p "$skills_dir" for skill in docx pdf pptx xlsx; do skill_target="$skills_dir/$skill" if [ -e "$skill_target" ] || [ -L "$skill_target" ]; then printf 'Already exists: %s\n' "$skill_target" else ln -s "$PWD/$skill" "$skill_target" fi done -
Check the dependencies from the repository root, then ask your agent to use a skill with one of your documents.
brew bundle check npm --prefix docx ls --depth=0 npm --prefix pptx ls --depth=0
For example: “Use the docx skill to replace this paragraph with the revised text and return a Word file with tracked changes.”
If you use the plugin installation above, follow the prerequisites in its installed docx and pptx skills. Their Node packages must be installed in the plugin’s skill directories.
How it’s built
Every script declares its dependencies in a PEP 723 header and runs under uv run. There is nothing to install into, nothing to activate, and nothing to break six months later.
Each skill folder is the unit of distribution. Its prerequisites are written in the SKILL.md the agent actually reads, so a copied folder works the same on the next machine.
Office file edits are validated against the ECMA-376 and ISO/IEC 29500 schemas that define the formats, before anything is handed back to you.