Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
igorwarzocha avatar

Word

  • 726 installs
  • 125 repo stars
  • Updated February 4, 2026
  • igorwarzocha/opencode-workflows

word is a document-generation skill that builds properly formatted DOCX files from JavaScript or TypeScript for developers who need reports, proposals, invoices, or manuals without manual Word editing.

About

word is a DOCX authoring skill from igorwarzocha/opencode-workflows built around the docx npm library for JavaScript and TypeScript. It walks through Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun, Header, Footer, HeadingLevel, TableOfContents, and alignment or border utilities while warning that skipped sections can corrupt output. Setup assumes global docx install via npm install -g docx. Developers reach for word when agents must emit client-ready Word documents—business reports, proposals, invoices, or user manuals—with tables, images, hyperlinks, and page layout instead of plain Markdown exports.

  • Generates native .docx files using the official docx JavaScript library
  • Full support for paragraphs, tables, images, headers, footers, TOC, hyperlinks, and footnotes
  • Enforces correct formatting patterns that prevent corrupted output
  • Works in both Node.js and browser environments
  • Includes 15+ critical formatting rules to avoid common rendering failures

Word by the numbers

  • 726 all-time installs (skills.sh)
  • +11 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #325 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/igorwarzocha/opencode-workflows --skill word

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs726
repo stars125
Security audit3 / 3 scanners passed
Last updatedFebruary 4, 2026
Repositoryigorwarzocha/opencode-workflows

How do you programmatically create formatted Word DOCX files?

Programmatically generate properly formatted DOCX reports, proposals, invoices, and user manuals from code.

Who is it for?

Developers automating business documents that must open correctly in Microsoft Word or compatible viewers.

Skip if: Teams that only need PDF or HTML exports without editable Word document requirements.

When should I use this skill?

An agent must produce a .docx report, proposal, invoice, or manual with structured headings and tables.

What you get

Valid .docx files with paragraphs, tables, headers, footers, images, and table-of-contents structure.

  • .docx reports
  • .docx proposals or invoices
  • Formatted user manuals

Files

SKILL.mdMarkdownGitHub ↗

DOCX Library Tutorial

Generate .docx files with JavaScript/TypeScript.

Important: Read this entire document before starting. Critical formatting rules and common pitfalls are covered throughout - skipping sections may result in corrupted files or rendering issues.

Setup

Assumes docx is already installed globally If not installed: npm install -g docx

const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun, Media, 
        Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink, 
        InternalHyperlink, TableOfContents, HeadingLevel, BorderStyle, WidthType, TabStopType, 
        TabStopPosition, UnderlineType, ShadingType, VerticalAlign, SymbolRun, PageNumber,
        FootnoteReferenceRun, Footnote, PageBreak } = require('docx');

// Create & Save
const doc = new Document({ sections: [{ children: [/* content */] }] });
Packer.toBuffer(doc).then(buffer => fs.writeFileSync("doc.docx", buffer)); // Node.js
Packer.toBlob(doc).then(blob => { /* download logic */ }); // Browser

Text & Formatting

// IMPORTANT: Never use \n for line breaks - always use separate Paragraph elements
// ❌ WRONG: new TextRun("Line 1\nLine 2")
// ✅ CORRECT: new Paragraph({ children: [new TextRun("Line 1")] }), new Paragraph({ children: [new TextRun("Line 2")] })

// Basic text with all formatting options
new Paragraph({
  alignment: AlignmentType.CENTER,
  spacing: { before: 200, after: 200 },
  indent: { left: 720, right: 720 },
  children: [
    new TextRun({ text: "Bold", bold: true }),
    new TextRun({ text: "Italic", italics: true }),
    new TextRun({ text: "Underlined", underline: { type: UnderlineType.DOUBLE, color: "FF0000" } }),
    new TextRun({ text: "Colored", color: "FF0000", size: 28, font: "Arial" }), // Arial default
    new TextRun({ text: "Highlighted", highlight: "yellow" }),
    new TextRun({ text: "Strikethrough", strike: true }),
    new TextRun({ text: "x2", superScript: true }),
    new TextRun({ text: "H2O", subScript: true }),
    new TextRun({ text: "SMALL CAPS", smallCaps: true }),
    new SymbolRun({ char: "2022", font: "Symbol" }), // Bullet •
    new SymbolRun({ char: "00A9", font: "Arial" })   // Copyright © - Arial for symbols
  ]
})

Styles & Professional Formatting

const doc = new Document({
  styles: {
    default: { document: { run: { font: "Arial", size: 24 } } }, // 12pt default
    paragraphStyles: [
      // Document title style - override built-in Title style
      { id: "Title", name: "Title", basedOn: "Normal",
        run: { size: 56, bold: true, color: "000000", font: "Arial" },
        paragraph: { spacing: { before: 240, after: 120 }, alignment: AlignmentType.CENTER } },
      // IMPORTANT: Override built-in heading styles by using their exact IDs
      { id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
        run: { size: 32, bold: true, color: "000000", font: "Arial" }, // 16pt
        paragraph: { spacing: { before: 240, after: 240 }, outlineLevel: 0 } }, // Required for TOC
      { id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
        run: { size: 28, bold: true, color: "000000", font: "Arial" }, // 14pt
        paragraph: { spacing: { before: 180, after: 180 }, outlineLevel: 1 } },
      // Custom styles use your own IDs
      { id: "myStyle", name: "My Style", basedOn: "Normal",
        run: { size: 28, bold: true, color: "000000" },
        paragraph: { spacing: { after: 120 }, alignment: AlignmentType.CENTER } }
    ],
    characterStyles: [{ id: "myCharStyle", name: "My Char Style",
      run: { color: "FF0000", bold: true, underline: { type: UnderlineType.SINGLE } } }]
  },
  sections: [{
    properties: { page: { margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } } },
    children: [
      new Paragraph({ heading: HeadingLevel.TITLE, children: [new TextRun("Document Title")] }), // U

Related skills

FAQ

Which npm package does the word skill use for DOCX?

The word skill uses the docx npm package with Document, Packer, Paragraph, TextRun, Table, and related layout types. Install globally with npm install -g docx before generating files.

What document types can the word skill generate?

The word skill generates formatted DOCX reports, proposals, invoices, and user manuals with headings, tables, images, headers, footers, and table-of-contents structures suitable for Word-compatible viewers.

Is Word safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Documentationdocsintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.