md-to-pdf
SKILL.md
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.mjs input.md # Creates input.pdf
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs input.md output.pdf # Custom output name
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs input.md --open # Open after creating
Options
| Flag | Description |
|---|---|
--open, -O |
Open the PDF after creating |
-o FILE |
Specify output filename |
Requirements
- Chrome or Chromium — Auto-detected on macOS/Linux
- Node.js — For running the script
- Dependencies — Run
npm installin 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
# Quick conversion
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs README.md
# Spec document for sharing
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs spec.md spec-v2.pdf --open
# Multiple files
for f in docs/*.md; do ~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs "$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:
# Generate, print, cleanup
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.mjs 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.mjs'
Weekly Installs
38
Repository
steveclarke/dotfilesGitHub Stars
31
First Seen
Jan 29, 2026
Security Audits
Installed on
opencode36
gemini-cli35
codex35
github-copilot34
cursor34
kimi-cli33