AI-powered slide builder — plan, build, and export brand-perfect presentations.
This Claude Code plugin provides the Pitchsmith framework for creating professional slide presentations. The plugin follows a clean separation between framework code (plugin-managed) and user state (workspace-managed).
pitchsmith-plugin/
├── .claude-plugin/ # Plugin metadata
│ └── plugin.json # Plugin manifest
├── commands/ # Slash commands (24+ commands)
│ └── pitchsmith/ # All commands (plan, build, export, setup, templates)
├── skills/ # Skills
│ └── sb/ # Smart router skill
├── workflows/ # Workflow definitions (22 workflows)
│ └── {workflow-name}/ # Each workflow has its own directory
├── templates/ # HTML templates for rendering
│ └── viewer-template.html # Slide viewer template
├── config/ # Plugin configuration
│ └── defaults/ # Default theme and assets
├── scripts/ # Build and export scripts
└── CONVENTIONS.md # Coding conventions
.claude-plugin/: Contains the plugin manifest (plugin.json) that declares the plugin to Claude Code's plugin systemcommands/: Slash commands that users invoke via Claude Code CLI (e.g.,/pitchsmith:plan-deck)skills/: Smart router skill (/sb) that detects workspace state and routes to appropriate workflowsworkflows/: Complete workflow definitions with instructions and templates for multi-step operationstemplates/: HTML templates used for rendering slides and presentationsconfig/defaults/: Default theme and brand assets shipped with the pluginscripts/: Helper scripts for building, exporting, and presentation features
Pitchsmith follows a strict separation between framework code and user state:
- Commands (
commands/) - Skills (
skills/) - Workflows (
workflows/) - Templates (
templates/) - Scripts (
scripts/) - CONVENTIONS.md
These files live in the plugin and are automatically updated when the plugin is updated. Users never need to modify these files.
- Configuration (
.slide-builder/config/) - Theme file (
.slide-builder/config/theme.json) - Brand assets (
.slide-builder/config/brand-assets/) - Status tracking (
status.yaml) - Deck plans (
.slide-builder/deck/) - Single slide plans (
.slide-builder/single/) - Output files (
output/)
These files live in the user's workspace and are NEVER modified by plugin updates. They contain user-specific configuration, customizations, and generated content.
.slide-builder/workflows/{name}/
Power users can "eject" specific workflows to customize behavior. Ejected workflows take precedence over plugin defaults and are never overwritten by plugin updates.
- Claude Code v1.0.33+ — Plugin system support required
- Node.js v18+ (optional) — Required only for PNG/PDF/PPTX export features
- VS Code (optional) — For extension features like slide viewer and catalog
# Step 1: Add the Pitchsmith marketplace (one-time)
/plugin marketplace add pitchsmith/pitchsmith-marketplace
# Step 2: Install the plugin
/plugin install pitchsmith@pitchsmith-marketplace
# Step 3: Start building slides
/sbAlternative: Install from your terminal without starting a Claude Code session:
claude plugin marketplace add pitchsmith/pitchsmith-marketplace
claude plugin install pitchsmith@pitchsmith-marketplaceThe plugin auto-initializes your workspace with a default theme, templates, and sample deck on first run. The pdf-reader MCP server is bundled and starts automatically — no manual configuration needed.
For local development or testing without the marketplace:
# Load the plugin directly from a local directory
claude --plugin-dir ./pitchsmith-pluginThis is useful when developing or testing changes to the plugin before publishing.
Run /sb in your project. The smart router will:
- Detect that this is your first run
- Create
.slide-builder/config/structure - Copy default theme to your workspace
- Present deck creation options
You can immediately start creating slides with the default theme. Brand customization is optional and can be done later via /pitchsmith:setup.
/sb- Smart router (auto-detects state and presents context-aware options)/pitchsmith:plan-deck- Plan a full presentation deck/pitchsmith:build-one- Build a single slide/pitchsmith:build-all- Build all planned slides/pitchsmith:setup- Extract brand from PDF or website/pitchsmith:theme-edit- Edit theme properties/pitchsmith:templates- Manage slide templates
To customize a workflow:
- Run
/pitchsmith:eject-workflow {workflow-name} - The workflow is copied to
.slide-builder/workflows/{workflow-name}/ - Edit the ejected workflow as needed
- Future runs will use your local copy
To see which workflows are ejected:
/pitchsmith:list-overrides
Claude Code CLI v1.0.33+ (always required)
- Installation: Claude Code Installation Guide
- The Pitchsmith plugin runs within Claude Code's plugin system
- Install via marketplace:
/plugin marketplace add pitchsmith/pitchsmith-marketplacethen/plugin install pitchsmith@pitchsmith-marketplace
Pitchsmith works immediately with zero external dependencies:
- Run
/sbto auto-initialize your workspace with a professional default theme - Plan slides, build slides, and view slides — all with no setup required
- Brand customization and export are optional enhancements you can add later
What requires this:
- PNG and PDF export (requires the VS Code extension)
What works without:
- All slide planning and building features
- HTML slide viewer (slides available as HTML files in
output/directory) - Theme customization and brand setup
Requirements:
- Node.js v18 or newer — for running Puppeteer's headless Chrome
- Puppeteer package — for converting HTML slides to PNG/PDF
Installation:
macOS:
# Install Node.js via Homebrew
brew install node
# Install Puppeteer
npm install puppeteerWindows:
# Download Node.js installer from https://nodejs.org/
# After installation, verify:
node --version
# Install Puppeteer
npm install puppeteerLinux (Ubuntu/Debian):
# Install Node.js
sudo apt update
sudo apt install nodejs npm
# Install Puppeteer
npm install puppeteerLinux (other distributions): Visit https://nodejs.org/ for your distribution's package manager instructions.
Fallback:
If puppeteer is unavailable, the export workflow offers HTML-only export. HTML slide files are generated and accessible in output/{deck_slug}/slides/ — you can view them directly in a browser or use other tools to convert to PDF.
What requires this:
/pitchsmith:setupcommand when using PDF brand guidelines as input/pitchsmith:use-templatewhen template uses PDF content sources
What works without:
- Brand setup with website URL or image files as input
- Template instantiation with manual content entry or non-PDF sources
Requirements:
- Node.js v18+ — Required for the bundled pdf-reader MCP server
- The pdf-reader MCP server is bundled with the plugin and starts automatically when the plugin loads — no manual configuration needed
Alternatives (if Node.js is unavailable):
- Website URL: Provide your company website URL instead of PDF
- Image files: Provide logo and screenshot images
- Manual entry: Enter brand colors and fonts manually via
/pitchsmith:theme-edit
"node: command not found"
- Install Node.js following the platform-specific instructions above
- Verify installation:
node --version - Expected output:
v18.x.xor higher
"Node.js version too old" (v17 or lower)
- Upgrade via Homebrew:
brew upgrade node(macOS) - Upgrade via nvm:
nvm install 18 && nvm use 18(all platforms with nvm) - Download latest LTS from https://nodejs.org/
"npm: command not found"
- npm is bundled with Node.js — reinstall Node.js
- On Linux, you may need to install npm separately:
sudo apt install npm
"Cannot find module 'puppeteer'"
- Run
npm install puppeteerin your project directory or globally - Verify installation:
node -e "require('puppeteer'); console.log('OK')" - Expected output:
OK
Puppeteer download errors (Chromium binary)
- Ensure stable internet connection during installation
- Retry:
npm install puppeteer --force - Check firewall/proxy settings if corporate network
Chromium launch failures
- Linux: Install missing system dependencies for headless Chrome
sudo apt-get install -y \ libnss3 libxss1 libasound2 libgbm1 libgtk-3-0
"pdf-reader MCP not available"
- The pdf-reader MCP server is bundled with the plugin and starts automatically
- Verify Node.js is installed:
node --version(v18+ required) - Verify npx is available:
npx --version - Try disabling and re-enabling the plugin:
/plugin disable pitchsmith@pitchsmith-marketplacethen/plugin enable pitchsmith@pitchsmith-marketplace - Check Claude Code logs for MCP server connection errors
"npx: command not found"
- Install Node.js — npx is bundled with npm
- Verify:
npx --version
PDF extraction returns empty content
- Some PDFs are image-based (scanned documents) — MCP cannot extract text
- Alternative: Use website URL or manually enter brand information
| Feature | Claude Code CLI | Node.js v18+ | Puppeteer | pdf-reader MCP |
|---|---|---|---|---|
| Plan slides | ✅ Required | - | - | - |
| Build slides | ✅ Required | - | - | - |
| View slides (HTML) | ✅ Required | - | - | - |
| Export PNG/PDF | ✅ Required | ✅ Required | ✅ Required | - |
| Brand setup (website) | ✅ Required | - | - | - |
| Brand setup (PDF) | ✅ Required | ✅ Required | - | 📦 Bundled |
| Template with PDF content | ✅ Required | ✅ Required | - | 📦 Bundled |
- Documentation: https://pitchsmith.ai/docs (coming soon)
- Issues: https://github.com/pitchsmith/pitchsmith-deck/issues
- Discord: Community support (coming soon)
Commands and skills check for user overrides before falling back to plugin defaults:
- Check
.slide-builder/workflows/{name}/(ejected/user-owned) - Fall back to
${CLAUDE_PLUGIN_ROOT}/workflows/{name}/(plugin default)
${CLAUDE_PLUGIN_ROOT}resolves to plugin installation directory- Used in workflow.yaml
installed_pathfields - Enables portable path references across different installations
- Plugin updates NEVER modify files in
.slide-builder/config/ - Plugin updates NEVER modify
status.yamlor user content - Ejected workflows are NEVER overwritten by plugin updates
- Clear separation enables safe automatic updates
Elastic License v2 (ELv2)
- Homepage: https://pitchsmith.ai
- Repository: https://github.com/pitchsmith/pitchsmith-deck
- Documentation: (Coming soon)
Current version: 0.2.9
Built with Claude Code • Framework/state separation for safe automatic updates