Skill: killgfat/marp-cli (version 0.0.1)

--- name: marp-cli description: Convert Markdown to presentations via CLI. Output HTML, PDF, PowerPoint (PPTX), and images (PNG/JPEG). homepage: https://github.com/marp-team/marp-cli metadata: { "openclaw": { "emoji": "📽️", "requires": { "anyBins": ["marp"] }, }, } --- # Marp CLI Convert Markdown to presentations via CLI. Output HTML, PDF, PowerPoint (PPTX), and images (PNG/JPEG). **Browser requirement:** Conversions marked with 🌐 require a compatible browser (Chrome, Edge, or Firefox) installed on your system. ## Quick Start ```bash # Convert to HTML marp slide-deck.md # Convert to PDF (requires browser) marp --pdf slide-deck.md # Convert to PowerPoint marp --pptx slide-deck.md # Convert to images marp --images png slide-deck.md ``` 📖 **Detailed guide:** [QUICKSTART.md](QUICKSTART.md) ## Format conversion ### HTML ```bash marp slide-deck.md marp slide-deck.md -o output.html ``` ### PDF 🌐 ```bash marp --pdf slide-deck.md marp slide-deck.md -o output.pdf # With PDF outlines marp --pdf --pdf-outlines slide-deck.md # Includes presenter notes as annotations on lower-left marp --pdf --pdf-notes slide-deck.md ``` ### PowerPoint (PPTX) 🌐 ```bash marp --pptx slide-deck.md marp slide-deck.md -o output.pptx # Editable PPTX (experimental, requires LibreOffice Impress) marp --pptx --pptx-editable slide-deck.md ``` ### Images 🌐 ```bash # Multiple images marp --images png slide-deck.md marp --images jpeg slide-deck.md # Title slide image only marp --image png slide-deck.md marp slide-deck.md -o output.png # High resolution (scale factor) marp slide-deck.md -o title.png --image-scale 2 ``` ### Presenter notes ```bash marp --notes slide-deck.md marp slide-deck.md -o output.txt ``` ## Watch mode ```bash # Watch file and auto-convert on changes marp -w slide-deck.md # Watch with browser preview marp -w -p slide-deck.md ``` ## Server mode ```bash # Serve directory with on-demand conversion marp -s ./slides # Specify port via environment PORT=5000 marp -s ./slides # Access converted formats via query strings # http://localhost:8080/deck.md?pdf # http://localhost:8080/deck.md?pptx ``` ## Preview window ```bash # Open preview window (automatically enables watch mode) marp -p slide-deck.md # Preview with PDF output marp -p --pdf slide-deck.md ``` ## Multiple files ```bash # Convert multiple files marp slide1.md slide2.md slide3.md # Convert directory marp ./slides/ # Use glob patterns marp **/*.md # Convert with parallelism (default: 5 concurrent) marp -P 10 ./*.md # Disable parallelism marp --no-parallel ./*.md ``` ## Options | Option | Description | |--------|-------------| | `-o, --output <path>` | Output file path | | `-w, --watch` | Watch mode - auto-convert on changes | | `-s, --server <dir>` | Server mode - serve directory | | `-p, --preview` | Open preview window | | `--pdf` | Convert to PDF (requires Chrome/Edge/Firefox) | | `--pptx` | Convert to PowerPoint PPTX (requires browser) | | `--pptx-editable` | Generate editable PPTX (experimental) | | `--images [png\|jpeg]` | Convert to multiple images | | `--image` | Convert title slide to single image | | `--image-scale <factor>` | Scale factor for images | | `--notes` | Export presenter notes to TXT | | `--pdf-notes` | Add PDF note annotations | | `--pdf-outlines` | Add PDF outlines/bookmarks | | `--allow-local-files` | Allow accessing local files (security note) | | `--browser <chrome\|edge\|firefox>` | Choose browser for conversion | | `--browser-path <path>` | Specify browser executable path | | `-P, --parallel <num>` | Parallel conversion count | | `--no-parallel` | Disable parallel conversion | | `--template <name>` | HTML template (default: bespoke) | ## Common patterns ```bash # Watch and preview while editing marp -w -p deck.md # Serve slides directory marp -s ./presentations # Convert all slides to PDF marp --pdf *.md # Create OG image from title marp deck.md -o og.png --image-scale 3 # Export presenter notes marp --notes deck.md ``` ## Documentation | Document | Description | |----------|-------------| | [QUICKSTART.md](QUICKSTART.md) | Quick start guide | | [EXAMPLES.md](EXAMPLES.md) | Detailed examples | | [README.md](README.md) | Project overview | | Official docs | https://github.com/marp-team/marp-cli |

path: EXAMPLES.md
content: # Marp CLI Examples

Detailed examples for Markdown to presentation conversion.

## Complete Presentation Workflow

### From Markdown to Distribution

```bash
# Step 1: Create presentation.md
cat > presentation.md << 'EOF'
---
marp: true
theme: gaia
paginate: true
---

# Product Launch

## Features
- Feature A
- Feature B
- Feature C

## Pricing
Tier 1: Free
Tier 2: $10/mo

---
# Thank You!
EOF

# Step 2: Watch and preview during editing
marp -w -p presentation.md

# Step 3: Export when ready
marp --pdf presentation.md
marp --pptx presentation.md
marp --images png presentation.md
```

## Format-Specific Examples

### PDF Generation

```bash
# Basic PDF
marp --pdf deck.md

# PDF with outlines
marp --pdf --pdf-outlines deck.md

# PDF with notes annotations
marp --pdf --pdf-notes deck.md

# PDF with browser selection
marp --pdf --browser firefox deck.md

# High-resolution effect (via image scale)
marp --pdf --image-scale 2 deck.md

# Multiple PDFs
marp --pdf presentation-1.md presentation-2.md presentation-3.md
```

### PowerPoint Generation

```bash
# Standard PPTX
marp --pptx deck.md

# Editable PPTX (experimental)
marp --pptx --pptx-editable deck.md

# PPTX with custom scale
marp --pptx --image-scale 3 deck.md

# PPTX with Edge browser
marp --pptx --browser edge deck.md
```

### Image Generation

```bash
# All slides as PNG
marp --images png deck.md

# All slides as JPEG
marp --images jpeg deck.md

# Title slide only
marp --image png deck.md -o title.png

# High-res title slide
marp deck.md -o og-image.png --image-scale 3

# 2x scale for all images
marp --images png deck.md --image-scale 2

# Square thumbnail
marp deck.md -o thumbnail.png --image png --image-scale 1
```

## Watch and Preview Examples

### Development Session

```bash
# Start watch with preview
marp -w -p deck.md

# In another terminal or the markdown file
echo "## New Section" >> deck.md
# Preview window auto-refreshes
```

### Multi-Format Watch

```bash
# Watch and generate multiple formats
marp -w --pdf deck.md &
marp -w --pptx deck.md &
marp -w --images png deck.md &

# Edit deck.md
# All formats regenerate automatically
```

### Preview with Specific Format

```bash
# Preview PDF output
marp -p --pdf deck.md

# Preview PPTX conversion
marp -p --pptx deck.md

# Preview images
marp -p --images png deck.md
```

## Server Mode Examples

### Presentation Server

```bash
# Start server
marp -s ./presentations/

# Client can access:
# http://localhost:8080/
# http://localhost:8080/deck.md
# http://localhost:8080/deck.md?pdf
# http://localhost:8080/deck.md?pptx
# http://localhost:8080/deck.md?images=png
```

### Custom Port

```bash
# Port 3000
PORT=3000 marp -s ./slides

# Port 8080 on specific interface
HOST=0.0.0.0 PORT=8080 marp -s ./slides
```

### Server with Watch

```bash
# Server that auto-updates on file changes
marp -s -w ./presentations

# Development server
marp -s -w -p ./presentations
```

### Default Deck

```bash
# Create index.md as default
cat > ./presentations/index.md << 'EOF'
---
marp: true
---

# Default Presentation
EOF

# Serve directory
marp -s ./presentations

# http://localhost:8080/ automatically shows index.md
```

## Batch Processing

### Convert All Markdown

```bash
# All to HTML
marp *.md

# All to PDF
marp --pdf *.md

# All to PPTX
marp --pptx *.md

# All to PNG
marp --images png *.md
```

### Directory Processing

```bash
# Process entire directory
marp ./presentations/*.md

# With parallelism
marp -P 10 ./presentations/*.md

# Non-parallel (safer for limited resources)
marp --no-parallel ./presentations/*.md
```

### Organized Output

```bash
# Create organized exports
mkdir -p exports/{pdf,pptx,images}

# All formats
marp --pdf deck.md -o exports/pdf/
marp --pptx deck.md -o exports/pptx/
marp --images png deck.md -o exports/images/
```

## Advanced Browser Options

### Browser Selection

```bash
# Use Firefox specifically
marp --browser firefox deck.md -o deck.pdf

# Try Firefox first, fall back to Chrome
marp --browser firefox,chrome deck.md -o deck.pdf

# Edge specifically
marp --browser edge deck.md -o deck.pdf
```

### Custom Browser Path

```bash
# Brave browser
marp --browser-path /usr/bin/brave-browser deck.md -o deck.pdf

# Chromium specific install
marp --browser-path /opt/chromium/chrome deck.md -o deck.pdf

# Firefox Nightly
marp --browser-path /Applications/Firefox\ Nightly.app/Contents/MacOS/firefox deck.md -o deck.png
```

### Browser Timeout

```bash
# Allow 60 seconds for browser operations
marp --browser-timeout 60 deck.md -o deck.pdf

# Quick conversions (may timeout)
marp --browser-timeout 15 deck.md -o deck.png
```

## Theme and Style Examples

### Using Themes

```markdown
---
marp: true
theme: gaia
---

# Gaia Theme

Content styled with Gaia.
```

```bash
marp gaia-theme.md
```

### Custom CSS

```markdown
---
marp: true
theme: default
style: |
  section {
    font-family: 'Arial', sans-serif;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
  }
  h1 {
    color: #fbbf24;
  }
---

# Custom Styled

This slide has custom CSS.
```

### Inline Themes

```bash
# Override theme
marp -t gaia deck.md

# Use specific template
marp --template bespoke deck.md
```

## Automation Examples

### CI/CD Pipeline

```bash
#!/bin/bash
# build-presentations.sh

# Generate all output formats
marp --pdf presentation.md -o dist/presentation.pdf
marp --pptx presentation.md -o dist/presentation.pptx
marp --images png presentation.md -o dist/images/

# Generate social images
marp presentation.md -o og-image.png --image-scale 3
marp presentation.md -o thumb.jpg --image jpeg

echo "Build complete"
```

### Cron Job

```bash
# Generate daily report
0 9 * * * marp --pdf /path/to/daily-report.md -o /output/report-$(date +\%Y\%m\%d).pdf
```

### Git Hook

```bash
#!/bin/bash
# pre-commit hook

# Check if any .md files changed
if git diff --name-only | grep -q '\.md$'; then
    echo "Converting presentations..."
    git diff --name-only | grep '\.md$' | while read file; do
        marp --pdf "$file"
    done
fi
```

## Presenter Notes Workflow

```markdown
---
marp: true
---

# Slide with Notes

Content for audience.

<!-- Note: This is what I tell the audience about this content -->

---

# Next Slide

More content.

<!-- Note: Don't forget to mention the key point here -->
```

```bash
# Export notes
marp --notes presentation.md -o speaker-notes.txt

# PDF with notes
marp --pdf --pdf-notes presentation.md -o with-notes.pdf
```

## Image Optimization Examples

### Social Media

```bash
# Twitter/X (high res square)
marp talk.md -o twitter.png --image --image-scale 3

# LinkedIn (professional)
marp talk.md -o linkedin.png --image --image-scale 2

# Instagram (square)
marp talk.md -o instagram.png --image --image-scale 2
```

### Documentation Images

```bash
# Documentation thumbnails
for file in docs/*.md; do
    name=$(basename "$file" .md)
    marp "$file" -o "docs/images/$name.png" --image --image-scale 2
done
```

### Website Assets

```bash
# Generate hero images
marp --image hero-content.md -o assets/hero.png --image-scale 3
marp --image about-slide.md -o assets/about.jpg --image jpeg --image-scale 3
```

## Multi-Platform Distribution

```bash
#!/bin/bash
# distribute.sh

PRESENTATION="deck.md"

# Generate all formats
marp --pdf "$PRESENTATION" -o dist/deck.pdf
marp --pptx "$PRESENTATION" -o dist/deck.pptx
marp --images png "$PRESENTATION" -o dist/images/

# Create zip
cd dist
zip -r deck.zip *.pdf *.pptx *.png

echo "Ready for distribution!"
```

## Troubleshooting Examples

### Browser Detection Issues

```bash
# Check which browsers are detected
# Try explicit browser selection
marp --pdf deck.md --browser chrome

# If auto fails, specify path
marp --pdf deck.md --browser-path /usr/bin/google-chrome
```

### Timeout Adjustments

```bash
# Increase timeout for large presentations
marp --pdf --browser-timeout 60 large-deck.md

# Decrease for fast, small decks
marp --pdf --browser-timeout 20 small-deck.md
```

### Local File Issues

```bash
# If local images are blocked
marp deck.md -o output.html --allow-local-files

# For PDF conversion
marp --pdf deck.md --allow-local-files
```

### Memory Issues

```bash
# Reduce parallelism
marp --pdf *.md -P 2

# Disable parallelism completely
marp --pdf *.md --no-parallel
```

## Integration Examples

### With Pandoc

```bash
# Convert from other formats to Marp
pandoc presentation.docx -t markdown -o deck.md
marp --pdf deck.md
```

### With Static Site Generators

```bash
# Generate slides from Jekyll posts
marp _posts/*.md -o static/slides/

# Hugo example
marp content/presentations/*.md -o static/presentations/
```

### With Makefiles

```makefile
.PHONY: all pdf pptx images clean

PRESENTATION = deck.md

all: pdf pptx images

pdf:
	marp --pdf $(PRESENTATION) -o dist/deck.pdf

pptx:
	marp --pptx $(PRESENTATION) -o dist/deck.pptx

images:
	marp --images png $(PRESENTATION) -o dist/images/

clean:
	rm -rf dist/
```

## Performance Tips

```bash
# Use parallelism for multiple files
marp --pdf *.md -P 8

# Cache browser instance with watch mode
marp -w --pdf deck.md

# Pre-warm conversion with test run
marp deck.md -o /dev/null
marp --pdf deck.md

# Batch process after edits
# Edit all files first, then convert once
marp --pdf *.md
```

---

**For more examples:**
- [SKILL.md](SKILL.md) - Core CLI usage
- [QUICKSTART.md](QUICKSTART.md) - Quick patterns
- Official docs: https://github.com/marp-team/marp-cli


path: QUICKSTART.md
content: # Marp CLI Quickstart

Quick start guide for converting Markdown to presentations with Marp CLI.

## Installation

**Note:** Installation via npm/standalone binary is not covered in these examples. Assumes `marp` command is available.

```bash
# Verify installation
marp --version

# Quick test
echo "# Hello World" | marp -
```

## Basic Markdown Syntax

```markdown
---
marp: true
theme: gaia
paginate: true
---

# Presentation Title

## First Section

- Bullet point
- Another point

### Subsection

Content goes here.

---
# Slide 2

Bold and *italic* text.
```

## Core Commands

### Convert to HTML (default)

```bash
# Single file
marp presentation.md

# Specify output filename
marp presentation.md -o export.html

# Multiple files
marp slide1.md slide2.md slide3.md

# Directory
marp ./slides/
```

### Convert to PDF 🌐

**Requires:** Chrome, Edge, or Firefox installed.

```bash
# Convert to PDF
marp --pdf presentation.md

# Specify output
marp presentation.md -o deck.pdf

# Auto-detect from extension
marp presentation.md -o output.pdf

# With outlines/bookmarks
marp --pdf --pdf-outlines presentation.md

# Disable headings in outlines
marp --pdf --pdf-outlines.headings=false presentation.md
```

### Convert to PowerPoint 🌐

```bash
# Convert to PPTX
marp --pptx presentation.md

# Specify output
marp presentation.md -o deck.pptx

# Auto-detect
marp presentation.md -o output.pptx
```

**Editable PPTX (experimental):**
```bash
# Generate editable PPTX (requires LibreOffice Impress)
marp --pptx --pptx-editable presentation.md

# Note: Lower reproducibility, no presenter notes
```

### Convert to Images 🌐

```bash
# Multiple PNG images
marp --images png presentation.md
# Output: presentation.001.png, presentation.002.png, ...

# Multiple JPEG images
marp --images jpeg presentation.md

# Title slide only
marp --image png presentation.md
# Output: presentation.001.png

# High resolution
marp --image png presentation.md --image-scale 2
marp --image png presentation.md -o [REDACTED_SECRET] --image-scale 3
```

### Export Presenter Notes

```bash
# Export notes to text file
marp --notes presentation.md

# Auto-detect from extension
marp presentation.md -o notes.txt

# With PDF conversion
marp --pdf --pdf-notes presentation.md
```

## Watch Mode

```bash
# Watch single file
marp -w presentation.md

# Watch with preview
marp -w -p presentation.md

# Watch multiple files
marp -w *.md

# Watch directory
marp -w ./slides/
```

## Server Mode

```bash
# Serve directory
marp -s ./slides

# Server with watch
marp -s -w ./slides

# Custom port
PORT=5000 marp -s ./slides

# Access via web browser
# http://localhost:8080/

# Request specific formats
# http://localhost:8080/deck.md?pdf
# http://localhost:8080/deck.md?pptx
# http://localhost:8080/deck.md?images=png
# http://localhost:8080/deck.md?image=jpeg
```

## Preview Window

```bash
# Open preview window
marp -p presentation.md

# Preview with specific output
marp -p --pdf presentation.md
marp -p --images png presentation.md
```

**Note:** Preview mode automatically enables watch mode.

## Multiple File Processing

```bash
# Convert all markdown files
marp *.md

# Parallel conversion (default: 5 concurrent)
marp -P 10 presentation*.md

# Disable parallelism
marp --no-parallel *.md

# Convert directory structure
marp -I ./input --output-dir ./output
```

## Browser Options

```bash
# Choose browser
marp --browser chrome deck.md -o deck.pdf
marp --browser edge deck.md -o deck.pdf
marp --browser firefox deck.md -o deck.png

# Try multiple browsers in order
marp --browser firefox,chrome deck.md -o deck.pdf

# Specify custom browser path
marp --browser-path /path/to/chrome deck.md -o deck.pdf

# Use Brave browser
marp --browser-path /usr/bin/brave-browser deck.md -o deck.png
```

## Template Options

```bash
# Use specific template
marp --template bespoke deck.md

# Common template: bespoke (default)
marp -t bespoke deck.md
```

**Template features:**
- Keyboard navigation
- Fullscreen toggle
- On-screen controller
- Presenter view
- Fragmented lists
- Progress bar (with `--bespoke.progress`)

## Output Options

```bash
# Output to specific directory
marp deck.md -o ./exports/deck.html

# Output with custom extension
marp deck.md -o custom-name.pdf

# Pipe markdown input
echo "# Title\n\nContent" | marp - -o output.html

# Read from stdin
cat presentation.md | marp - -o deck.pdf
```

## Advanced Options

### Security and Local Files

```bash
# Allow local files (use with caution)
marp --pdf --allow-local-files deck.md

# Note: Default blocks local file access for security
```

### PDF Advanced

```bash
# Outlines options
marp --pdf --pdf-outlines deck.md
marp --pdf --pdf-outlines.pages=false deck.md
marp --pdf --pdf-outlines.headings=false deck.md

# Presenter notes as PDF annotations
marp --pdf --pdf-notes deck.md
```

### Image Scaling

```bash
# High resolution images
marp deck.md -o deck.png --image-scale 3

# 2x scale (default for PPTX)
marp deck.md -o deck.pptx --image-scale 2
```

## Typical Workflows

### Development Workflow

```bash
# Start watch mode with preview
marp -w -p deck.md

# Edit markdown in your editor
# Browser auto-refreshes on save

# When ready, export
marp --pdf deck.md
```

### Batch Conversion

```bash
# Convert all to PDF
for file in *.md; do
    marp --pdf "$file"
done

# Or use marp's parallel processing
marp --pdf *.md
```

### Presentation Deployment

```bash
# Serve and present
marp -s ./presentations

# Share URL with team
# Format-specific outputs via query strings
```

### Social Media Images

```bash
# Create high-res OG image
marp deck.md -o og-image.png --image-scale 3

# Square format from first slide
marp deck.md -o thumbnail.jpeg --image jpeg
```

## Configuration File

Marp CLI can use `.marprc` (JSON) or `marp.config.js`:

```json
{
  "allowLocalFiles": true,
  "engine": "@marp-team/marp-core",
  "html": true,
  "options": {
    "allow-local-files": true
  },
  "pdf": {
    "notes": true,
    "outlines": true
  }
}
```

## Tips

1. **Auto-detection:** Marp detects output format from file extension
2. **Parallel processing:** Default 5 concurrent conversions for multiple files
3. **Browser caching:** First conversion may be slower
4. **Preview mode:** Best for development, auto-refreshes
5. **Server mode:** Best for collaborative work and testing
6. **Image scale:** Use higher scale for quality, but larger files

## Markdown Frontmatter

Add frontmatter to control presentation:

```markdown
---
marp: true
theme: gaia
paginate: true
style: |
  /* Custom CSS */
  section {
    font-size: 24px;
  }
---

# Title

Content...
```

Common themes: `default`, `gaia`, `uncover`, `invert`

## Presenter Notes

Add notes for each slide:

```markdown
---

# Slide Title

Slide content.

<!-- Presenter note: Remember to mention X -->
```

Export notes:
```bash
marp --notes deck.md
```

---

**Next Steps:**
- [EXAMPLES.md](EXAMPLES.md) - Detailed examples
- [README.md](README.md) - Full overview
- Official docs: https://github.com/marp-team/marp-cli


path: README.md
content: # Marp CLI Skill

Convert Markdown to presentations via Marp CLI.

## Overview

[Marp CLI](https://github.com/marp-team/marp-cli) is a command-line interface that converts Markdown files into presentation formats. It supports HTML, PDF, PowerPoint (PPTX), PNG, and JPEG output.

**Key features:**
- Convert Markdown to multiple presentation formats
- Watch mode for live preview during editing
- Server mode for on-demand conversion
- Support for presenter notes
- Custom themes and styling
- Parallel conversion for multiple files

## Quick Example

```bash
marp presentation.md                    # HTML (default)
marp --pdf presentation.md              # PDF
marp --pptx presentation.md             # PowerPoint
marp --images png presentation.md       # PNG images

# Watch and preview
marp -w -p presentation.md

# Serve directory
marp -s ./presentations
```

## Documentation

| Document | Description |
|----------|-------------|
| [SKILL.md](SKILL.md) | Core CLI commands and options |
| [QUICKSTART.md](QUICKSTART.md) | Quick start guide |
| [EXAMPLES.md](EXAMPLES.md) | Detailed examples |

## Output Formats

### HTML
Native HTML/CSS slide deck with built-in navigation and features.

### PDF
High-quality PDF export (requires Chrome, Edge, or Firefox).

### PowerPoint (PPTX)
Standard PowerPoint format compatible with most presentation software.

### Images (PNG/JPEG)
Individual slide images, useful for social media, documentation, and thumbnails.

## Key Commands

| Command | Description |
|---------|-------------|
| `marp file.md` | Convert to HTML |
| `marp --pdf file.md` | Convert to PDF |
| `marp --pptx file.md` | Convert to PPTX |
| `marp --images png file.md` | Convert to PNG images |
| `marp -w file.md` | Watch mode (auto-convert) |
| `marp -p file.md` | Preview window |
| `marp -s ./dir` | Server mode |

## Usage Patterns

### Development
```bash
marp -w -p deck.md  # Watch with preview
```

### Export
```bash
marp --pdf deck.md
marp --pptx deck.md
marp --images png deck.md
```

### Serving
```bash
marp -s ./presentations
# Access: http://localhost:8080/
```

### Batch
```bash
marp --pdf *.md
marp -P 10 *.md  # Parallel processing
```

## Browser Requirement

**Important:** Conversions to PDF, PPTX, and images require a compatible browser:
- Google Chrome
- Microsoft Edge
- Mozilla Firefox

The browser is used for rendering and conversion. Marp CLI supports browser selection and configuration.

```bash
# Choose browser
marp --browser firefox deck.md -o deck.pdf

# Specify browser path
marp --browser-path /path/to/chrome deck.md
```

## Markdown Syntax

Marp uses standard Markdown with special frontmatter for configuration:

```markdown
---
marp: true
theme: gaia
paginate: true
---

# Presentation Title

## First Section

- Bullet point
- Another point

### Subsection

Content.
```

Built-in themes: `default`, `gaia`, `uncover`, `invert`

## Workflows

### Development Workflow
1. Write Markdown in your editor
2. Run `marp -w -p deck.md`
3. Browser preview auto-refreshes on save
4. Export when ready

### Batch Conversion
```bash
# Convert entire project
marp --pdf presentations/*.md
```

### Distribution
```bash
# Generate all formats
marp --pdf deck.md
marp --pptx deck.md
marp --images png deck.md
```

## Features

### Watch Mode
Automatically converts when files change.

### Server Mode
HTTP server with on-demand conversion. Access different formats via query strings:
- `?pdf` - PDF
- `?pptx` - PowerPoint
- `?images=png` - PNG images
- `?image=jpeg` - Single JPEG

### Preview Window
Immersive preview window with presentation controls.

### Presenter Notes
Export or embed presenter notes in slides.

### Parallel Processing
Convert multiple files concurrently for faster batch operations.

### Custom Theming
Use built-in themes or create custom CSS.

## Installation

This skill assumes `marp` is installed. Installation methods include:

- **npm**: `npm install -g @marp-team/marp-cli`
- **Homebrew** (macOS/Linux): `brew install marp-cli`
- **Scoop** (Windows): `scoop install marp`
- **Standalone binaries**: Download from GitHub releases

See https://github.com/marp-team/marp-cli for installation details.

## Limitations

- Browser-dependent conversions require compatible browser installed
- Editable PPTX is experimental and has limitations
- Complex themes may not render perfectly in all formats
- Large presentations may require increased timeout settings
- Local file access blocked by default (use `--allow-local-files` with caution)

## Common Use Cases

### 1. Conference Presentations
Create slides in Markdown, export to PDF for sharing or PPTX for editing.

### 2. Technical Documentation
Generate slide decks from documentation files for talks and workshops.

### 3. Classroom Teaching
Create educational materials with watch mode for real-time updates.

### 4. Social Media Content
Generate high-res images from slide content for sharing.

### 5. Corporate Reports
Convert report Markdown to professional PDF or PowerPoint.

### 6. Automated Documentation
Integrate with CI/CD to auto-generate presentations from documentation.

## Advanced Features

### Configuration Files
Use `.marprc` or `marp.config.js` for project-level settings.

### CSS Customization
Apply custom styles directly in Markdown frontmatter.

### External Theme Support
Use Marp themes from npm packages or custom CSS files.

### Plugin System
Extend functionality with Marp plugins.

### CLI Integrations
Works well with other text processing tools (Pandoc, etc.)

## Tips

1. **Start with watch mode**: `marp -w -p` during development
2. **Use server mode** for collaborative work and testing
3. **Choose appropriate format**: PDF for sharing, PPTX for editing, HTML for web
4. **Leverage parallelism** for batch conversions
5. **Optimize images** with `--image-scale` for quality/size balance
6. **Customize themes** to match brand/style guidelines

## Community & Resources

- **GitHub**: https://github.com/marp-team/marp-cli
- **Website**: https://marp.app/
- **Documentation**: https://github.com/marp-team/marp-cli#readme
- **Marpit Framework**: https://marpit.marp.app/
- **Marp Core**: https://github.com/marp-team/marp-core

## Integration Examples

### With Static Site Generators
Generate presentation assets for Jekyll, Hugo, Next.js sites.

### With Documentation Tools
Convert technical docs to presentations for conferences.

### With Automation
Run in CI/CD pipelines to auto-generate slides from markdown.

### With Note-taking
Convert Obsidian, Notion, or other markdown exports to presentations.

## License

Marp CLI is licensed under the MIT License.

---

**For usage:** Start with [SKILL.md](SKILL.md)
**For learning:** Check [QUICKSTART.md](QUICKSTART.md)
**For specifics:** See [EXAMPLES.md](EXAMPLES.md)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)