Skip to content
Back to skills

Docx Convert

ASecurity

[Document Processing] Use when converting between Word DOCX and Markdown (GFM, math rendering). --to={markdown|docx}.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
businessjavascriptgojavabashnodegit

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add duc01226/easy-claude --skill docx-convert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Docx Convert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Docx Convert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/duc01226-docx-convert-easy-claude/badge)](https://www.skillsdirectory.com/skills/duc01226-docx-convert-easy-claude)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: docx-convert
version: 2.0.0
description: '[Document Processing] Use when converting between Word DOCX and Markdown (GFM, math rendering). --to={markdown|docx}.'
disable-model-invocation: true
---

## Quick Summary

**Goal:** Convert Word DOCX to Markdown, or Markdown to Word DOCX, through one entry point.

**Workflow:**

1. **Pick a direction** — `--to markdown` (DOCX in, Markdown out) or `--to docx` (Markdown in, DOCX out)
2. **Install that direction** — each one has its own `package.json`; install only the one you need
3. **Convert** — run `scripts/convert.cjs --to <direction>` with the direction's own options
4. **Output** — the converter returns JSON with the success status and output path

**Key Rules:**

- `--to` is required. There is no default direction — converting the wrong way silently is worse than an error.
- Every other argument is passed straight to the chosen converter, so each direction keeps its own CLI.
- Dependencies are per direction: `--to markdown` never pulls in the DOCX writer, and vice versa.

**Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).**

# docx-convert

Convert Microsoft Word (.docx) files to GitHub-Flavored Markdown, and Markdown files to editable
Word documents with tables, code blocks, images and LaTeX math.

## Directions

| Flag            | Converts        | Lives in       | Dependencies                             |
| --------------- | --------------- | -------------- | ---------------------------------------- |
| `--to markdown` | DOCX → Markdown | `to-markdown/` | `mammoth`, `turndown`, `turndown-plugin-gfm` |
| `--to docx`     | Markdown → DOCX | `to-docx/`     | `markdown-docx`, `gray-matter`           |

## Installation Required

**Each direction installs separately.** Install only the one you need:

```bash
# DOCX -> Markdown
cd .claude/skills/docx-convert/to-markdown
npm install

# Markdown -> DOCX
cd .claude/skills/docx-convert/to-docx
npm install
```

`ck init` (which runs `install.sh`) handles every skill at once.

## Quick Start

```bash
# DOCX -> Markdown
node .claude/skills/docx-convert/scripts/convert.cjs --to markdown --input ./document.docx

# DOCX -> Markdown, extracting images to a folder instead of inlining base64
node .claude/skills/docx-convert/scripts/convert.cjs --to markdown -i ./doc.docx --images ./images/

# Markdown -> DOCX
node .claude/skills/docx-convert/scripts/convert.cjs --to docx --input ./README.md

# Markdown -> DOCX with a custom theme
node .claude/skills/docx-convert/scripts/convert.cjs --to docx -i ./doc.md --theme ./theme.json
```

`--to=markdown` and `--to markdown` are equivalent. A missing or unknown `--to` prints the valid
directions and exits 1.

## CLI Options

### Dispatcher

| Option   | Description                                 | Default    |
| -------- | ------------------------------------------- | ---------- |
| `--to`   | Conversion direction: `markdown` or `docx`  | (required) |

### `--to markdown` (DOCX → Markdown)

| Option     | Short | Description                    | Default       |
| ---------- | ----- | ------------------------------ | ------------- |
| `--input`  | `-i`  | Input DOCX file path           | (required)    |
| `--output` | `-o`  | Output markdown file path      | `{input}.md`  |
| `--images` |       | Directory for extracted images | inline base64 |
| `--help`   | `-h`  | Show help message              |               |

### `--to docx` (Markdown → DOCX)

| Option     | Short | Description         | Default        |
| ---------- | ----- | ------------------- | -------------- |
| `--input`  | `-i`  | Input markdown file | (required)     |
| `--output` | `-o`  | Output DOCX path    | `{input}.docx` |
| `--theme`  | `-t`  | Custom theme JSON   | built-in       |
| `--title`  |       | Document title      | filename       |
| `--help`   | `-h`  | Show help           |                |

Run `scripts/convert.cjs --to <direction> --help` to see a direction's full help.

## Features

**DOCX → Markdown**

- **GFM Tables:** Word tables become markdown tables
- **Images:** embedded images extracted (base64 inline, or written to a folder)
- **Lists:** ordered and unordered lists preserved
- **Code Blocks:** monospace text converted to code blocks
- **Links and Headings:** hyperlinks and heading levels maintained

**Markdown → DOCX**

- **GFM Support:** tables, strikethrough, task lists
- **Code Blocks:** syntax preserved with a monospace font
- **Images:** local and URL images embedded
- **Math:** LaTeX equations rendered by default (`$...$`, `$$...$$`)
- **Frontmatter:** YAML metadata supplies the title
- **No System Dependencies:** pure JavaScript, no Chrome needed

Both directions work on Windows, macOS and Linux.

## Conversion Pipeline (`--to markdown`)

```
DOCX → mammoth → HTML → turndown → Markdown
```

The two-stage conversion follows mammoth's official recommendation for best results.

## Output

Both directions return JSON on success:

```json
{
    "success": true,
    "input": "/path/to/input.docx",
    "output": "/path/to/output.md",
    "stats": {
        "images": 3,
        "tables": 2,
        "headings": 5
    }
}
```

`--to docx` omits `stats`. On failure both return `{ "success": false, "error": "..." }` and exit 1.

## Compatibility (`--to docx`)

Generated DOCX files open in Microsoft Word (2007+), Google Docs, LibreOffice Writer and Apple Pages.

## Limitations

- Complex layouts (columns, text boxes) may not preserve structure
- Merged table cells produce basic markdown tables
- Comments and track changes are stripped
- Some formatting (fonts, colors) is lost in conversion

## Troubleshooting

**Missing dependencies:** the error output carries a `hint` with the exact `cd … && npm install`
command for the direction you invoked.

## Tests

```bash
cd .claude/skills/docx-convert && node tests/dispatcher.test.cjs   # routing and --to validation
cd .claude/skills/docx-convert/to-markdown && node tests/run-tests.cjs
cd .claude/skills/docx-convert/to-docx && node tests/run-tests.cjs
```

---

> **[IMPORTANT]** Use `TaskCreate` to break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ATTENTION ask user whether to skip.

## Closing Reminders

**IMPORTANT MUST ATTENTION Goal:** Convert Word DOCX to Markdown, or Markdown to Word DOCX, through one entry point — `scripts/convert.cjs --to {markdown|docx}`.

**IMPORTANT MUST ATTENTION** `--to` is required — never guess the direction for the user
**IMPORTANT MUST ATTENTION** each direction installs its own dependencies; the error `hint` names the exact directory
**IMPORTANT MUST ATTENTION** break work into small todo tasks using `TaskCreate` BEFORE starting
**IMPORTANT MUST ATTENTION** search codebase for 3+ similar patterns before creating new code
**IMPORTANT MUST ATTENTION** cite `file:line` evidence for every claim (confidence >80% to act)
**IMPORTANT MUST ATTENTION** add a final review todo task to verify work quality

**[TASK-PLANNING]** Before acting, analyze task scope and systematically break it into small todo tasks and sub-tasks using TaskCreate.

Files in this skill

  • SKILL.md15.6 KB
  • scripts/convert.cjs3.4 KB
  • tests/dispatcher.test.cjs4.4 KB
  • to-docx/assets/default-theme.json311 B
  • to-docx/package.json406 B
  • to-docx/scripts/convert.cjs4.7 KB
  • to-docx/scripts/lib/config-loader.cjs2.4 KB
  • to-docx/scripts/lib/converter.cjs2.7 KB
  • to-docx/scripts/lib/output-handler.cjs1.6 KB
  • to-docx/tests/converter.test.cjs4.2 KB
  • to-docx/tests/fixtures/sample.md724 B
  • to-docx/tests/run-tests.cjs895 B
  • to-docx/tests/test-framework.cjs2 KB
  • to-markdown/package.json457 B
  • to-markdown/scripts/convert.cjs4.5 KB
  • to-markdown/scripts/lib/converter.cjs4.1 KB
  • to-markdown/scripts/lib/html-to-markdown.cjs1.6 KB
  • to-markdown/scripts/lib/output-handler.cjs1.7 KB
  • to-markdown/tests/converter.test.cjs3.7 KB
  • to-markdown/tests/run-tests.cjs415 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…