Questions? hello@viberation.devGet supportBlogDocsChangelog
Get started

Word (docx)

Create and edit Word documents with proper formatting.

Anthropic's Word skill for creating, reading and editing .docx documents and templates with professional formatting. Source-available, not open source.

Install this skill

npx skills add https://github.com/anthropics/skills --skill docx

Runs the open-source skills CLI in your own terminal. It asks which agents to add the skill to. Read what it tells your agent to do before you install it.

Install for your agent

  • Claude Code

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a claude-code

    Add -g to install it for every project instead.

    Or ask Claude Code to do it

    Install the "docx" skill from https://github.com/anthropics/skills for Claude Code.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .claude/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .claude/skills/ for this project, or ~/.claude/skills/ for all your projects.

    Picked up in the current session, no restart needed.

    Claude Code skills docs
  • Claude.ai

    Upload the ZIP

    1. In Settings > Capabilities, turn on Code execution and file creation.
    2. Go to Customize > Skills, press +, then Create skill.
    3. Choose Upload a skill and pick the ZIP you downloaded.

    Free, Pro and Max plans. On Team and Enterprise, an owner turns skills on in Organization settings first.

    Claude.ai skills docs
  • ChatGPT

    Upload the ZIP

    1. Open Skills in ChatGPT and select Create.
    2. Select Upload from your computer and pick the ZIP you downloaded.
    3. Wait for ChatGPT's safety scan. A skill marked Needs Review asks you to check it before use.

    Skills that rely on scripts or a terminal may not work unchanged in ChatGPT.

    ChatGPT skills docs
  • Codex

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a codex

    Add -g to install it for every project instead.

    Or ask Codex to do it

    Install the "docx" skill from https://github.com/anthropics/skills for Codex.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .agents/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .agents/skills/ for this project, or ~/.agents/skills/ for all your projects.

    Restart Codex if the skill does not show up.

    Codex skills docs
  • Cursor

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a cursor

    Add -g to install it for every project instead.

    Or ask Cursor to do it

    Install the "docx" skill from https://github.com/anthropics/skills for Cursor.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .cursor/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .cursor/skills/ for this project, or ~/.cursor/skills/ for all your projects.

    Run it by typing / and the skill name in chat.

    Cursor skills docs
  • GitHub Copilot

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a github-copilot

    Add -g to install it for every project instead.

    Or ask GitHub Copilot to do it

    Install the "docx" skill from https://github.com/anthropics/skills for GitHub Copilot.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .github/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .github/skills/ for this project, or ~/.copilot/skills/ for all your projects.

    Works in Copilot CLI, the cloud agent and agent mode in VS Code and JetBrains.

    GitHub Copilot skills docs
  • Antigravity

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a antigravity

    Add -g to install it for every project instead.

    Or ask Antigravity to do it

    Install the "docx" skill from https://github.com/anthropics/skills for Antigravity.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .agents/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .agents/skills/ for this project, or ~/.gemini/config/skills/ for all your projects.

    Antigravity skills docs
  • Gemini CLI

    Run this in your project

    npx skills add https://github.com/anthropics/skills --skill docx -a gemini-cli

    Add -g to install it for every project instead.

    Or ask Gemini CLI to do it

    Install the "docx" skill from https://github.com/anthropics/skills for Gemini CLI.
    Copy the skill folder (the one containing SKILL.md, with any scripts or reference files next to it) into .gemini/skills/ in this project.
    Before copying, show me the SKILL.md and list any scripts it includes, and wait for me to confirm.

    Or copy the folder yourself

    Unzip the download into .gemini/skills/ for this project, or ~/.gemini/skills/ for all your projects.

    Run /skills to check it was found.

    Gemini CLI skills docs
Installs
187.3K via skills.sh
Last updated
10 Sept 2026

Security checks

Run by independent scanners and published on skills.sh. Their results, not a Viberation review.

  • Gen Agent Trust Hub Pass

    This skill provides comprehensive tools for Word document manipulation. It includes some security considerations such as runtime compilation and external command execution. While these warrant review, they are used within the skill's intended functionality to ensure compatibility and document processing accuracy. See detailed analysis for context.

    25 Feb 2026
  • Socket Pass

    No alerts

    18 Mar 2026
  • Snyk Pass

    Risk: LOW · No issues

    25 Feb 2026
  • Runlayer Pass

    2/59 files flagged

    26 Feb 2026
  • ZeroLeaks Pass

    1 finding · Score: 86/100

    16 Apr 2026
What's inside (61 files)
  • LICENSE.txt1.5K chars
  • scripts/__init__.py1 chars
  • scripts/accept_changes.py4.1K chars
  • scripts/comment.py14K chars
  • scripts/merge_runs.py9.4K chars
  • scripts/office/helpers/__init__.py3.4K chars
  • scripts/office/helpers/pptx_chart.py5.9K chars
  • scripts/office/helpers/pptx_slide.py1.7K chars
  • scripts/office/helpers/pptx_theme.py3.5K chars
  • scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd2K chars
  • scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd2.5K chars
  • scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd2.9K chars
  • scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd1.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd75K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd7K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd51.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd624 chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd152K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd1.2K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd8.9K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd14.8K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd83.6K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd1.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd7.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd6.4K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd1.2K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd880 chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd2.6K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd3.5K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd7.5K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd23.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd1.4K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd242.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd26.1K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd25.3K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd535 chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd5.7K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd4K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd171.4K chars
  • scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd4.6K chars
  • scripts/office/schemas/mce/mc.xsd3.1K chars
  • scripts/office/schemas/microsoft/wml-2010.xsd26.5K chars
  • scripts/office/schemas/microsoft/wml-2012.xsd3.7K chars
  • scripts/office/schemas/microsoft/wml-2018.xsd901 chars
  • scripts/office/schemas/microsoft/wml-cex-2018.xsd1.8K chars
  • scripts/office/schemas/microsoft/wml-cid-2016.xsd1K chars
  • scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd600 chars
  • scripts/office/schemas/microsoft/wml-symex-2015.xsd745 chars
  • scripts/office/soffice.py5.9K chars
  • scripts/office/validate.py6.1K chars
  • scripts/office/validators/__init__.py336 chars
  • scripts/office/validators/base.py33.8K chars
  • scripts/office/validators/docx.py17.5K chars
  • scripts/office/validators/pptx.py16K chars
  • scripts/office/validators/redlining.py11.2K chars
  • scripts/templates/comments.xml2.6K chars
  • scripts/templates/commentsExtended.xml2.6K chars
  • scripts/templates/commentsExtensible.xml2.7K chars
  • scripts/templates/commentsIds.xml2.6K chars
  • scripts/templates/people.xml115 chars
  • SKILL.md6.9K chars

SKILL.md, first part. Shown as plain text.

---
name: docx
description: "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation."
license: Proprietary. LICENSE.txt has complete terms
---

# DOCX creation, editing, and analysis

A `.docx` is a ZIP archive of XML files. Choose your approach by task:

| Task | Approach |
|---|---|
| **Create** a new document | Write a `docx` (npm) script — see gotchas below |
| **Edit** an existing document | `unzip` → edit `word/document.xml` → `zip` (docx-js cannot open existing files) |
| **Read** content | `pandoc -t markdown file.docx` |

> Script paths below are relative to this skill's directory.

## Creating with docx-js — gotchas

`docx` is preinstalled — do not run `npm install` first; write the script and `require('docx')` directly. Only if that require fails: `npm install docx`. The model knows the API; these are the footguns:

- **Page size defaults to A4.** For US Letter set `page: { size: { width: 12240, height: 15840 } }` (DXA; 1440 = 1″).
- **Landscape:** pass portrait dimensions and `orientation: PageOrientation.LANDSCAPE` — docx-js swaps width/height internally.
- **Tables need dual widths:** set `columnWidths` on the table AND `width` on every cell, both in `WidthType.DXA` (PERCENTAGE breaks in Google Docs). Column widths must sum to the table width.
- **Table shading:** use `ShadingType.CLEAR`, never `SOLID` (renders black).
- **Lists:** never insert `•` literally; use a `numbering` config with `LevelFormat.BULLET`.
- **`ImageRun` requires `type:`** (`"png"`, `"jpg"`, …).
- **`PageBreak` must be inside a `Paragraph`.**
- **Never use `\n`** — use separate `Paragraph` elements.
- **TOC:** headings must use built-in `HeadingLevel.*`; custom heading styles need `outlineLevel` set or they won't appear.
- **Don't use a table as a horizontal rule** — use a paragraph bottom border instead.
- **Dot-leader / right-aligned-on-same-line:** use `PositionalTab` (`alignment: PositionalTabAlignment.RIGHT`, `leader: PositionalTabLeader.DOT`) inside a `TextRun`, not literal `.` or space padding.

## Verify the output

After writing a `.docx`, render it and look at it:

```bash
python scripts/office/soffice.py --headless --convert-to pdf output.docx
pdftoppm -jpeg -r 100 output.pdf page
ls page-*.jpg   # then Read the images
```

`pdftoppm` zero-pads page numbers to the width of the page count (`page-01.jpg`…`page-12.jpg`).

## Editing existing documents

Legacy `.doc` files must be converted first: `python scripts/office/soffice.py --headless --convert-to docx file.doc`.

```bash
unzip -q doc.docx -d unpacked/
find unpacked -type l -delete   # strip symlink entries — docx from external parties is untrusted
python scripts/merge_runs.py unpacked/   # coalesce fragmented runs so text is findable
# edit unpacked/word/document.xml in place — do NOT reformat or pretty-print
(cd unpacked && rm -f ../out.docx && zip -Xr ../out.docx .)
python scripts/office/validate.py out.docx --original doc.docx   # XSD checks; --auto-repair fixes common issues
# redlining? add --author "<the name you redlined under>" to check every edit is tracked
```

Word splits text across many `<w:r>` runs (revision ids, spell-check markers), so a phrase you can see in the document often doesn't exist as a 

Key info

Pricing
Free
Category
Skills

More in Skills