| name | md-to-pdf |
| description | Convert markdown to PDF using Chrome. Triggers on 'markdown to pdf', 'render to pdf', 'pdf from markdown', 'print this markdown'. |
Markdown to PDF
Converts markdown files to beautifully formatted PDFs using crossnote (same engine as mcp-printer).
Features
- Mermaid diagrams — Flowcharts, sequence diagrams, etc.
- Math equations — KaTeX rendering
- Syntax highlighting — GitHub theme
- Page numbers — Automatic footer with page X / Y
- GitHub-light theme — Clean, print-optimized styling
Usage
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs input.md
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs input.md output.pdf
Options
| Flag | Description |
|---|
-o FILE | Specify output filename |
Requirements
- Chrome or Chromium — Auto-detected on macOS/Linux
- Node.js — For running the script
- Dependencies — Run
npm install in the skill directory once
How It Works
- Uses crossnote (Markdown Preview Enhanced engine)
- Injects page numbering config into front-matter
- Renders via Chrome/Puppeteer
- Supports Mermaid, math, code highlighting out of the box
Examples
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs README.md
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs spec.md spec-v2.pdf
for f in docs/*.md; do ~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs "$f"; done
Mermaid Example
Include in your markdown:
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do something]
B -->|No| D[Do something else]
```
The diagram will render as a graphic in the PDF.
Printing
If the user wants to print the PDF, use the /print skill after generating.
Workflow decision:
| User intent | Action |
|---|
| "Convert to PDF" | Keep the PDF |
| "Print this markdown" | Generate PDF → print with /print → delete PDF |
| "Create a PDF and print it" | Keep the PDF, also print |
When printing is the goal (not the PDF itself), delete the PDF after printing:
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs doc.md
~/.claude/skills/print/scripts/print doc.pdf
rm doc.pdf
The /print skill handles double-sided and b&w defaults automatically.
Alias (Optional)
Add to your shell profile:
alias md-to-pdf='~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs'