Skip to main content

Intelligent PowerPoint presentation generation with content-first design philosophy, PlaceKitten image processing, and comprehensive CLI tools

Project description

๐ŸŽฏ Deckbuilder

PyPI version Test Suite PlaceKitten Integrated Python 3.11+

Transform LLMs from layout pickers into presentation consultants

Deckbuilder is a powerful Python library, Command Line, and MCP (Model Context Protocol) server for PowerPoint presentation generation.

Decknuilder currently supports JSON and Frontmatter formatted Markdown for content. Any slide template can be mapped using JSON with template support being progressivley added to Markdown.

The MCP server is being enhanced to be with a content-first design philosophy, Deckbuilder's MCP server will transform how AI creates presentations by focusing on what you want to communicate rather than just what layouts exist.

โœจ Key Features

๐Ÿš€ One-Shot Presentation Generation

Create complete PowerPoint presentations from JSON or Markdown with YAML frontmatter in a single command.

๐ŸŽจ Rich Content Support

  • Advanced Formatting: **bold**, *italic*, ___underline___, ***bold italic***
  • International Support: 20 proofing languages including English, Spanish, French, German, Chinese, Japanese
  • Typography Control: Custom font families with global -f/--font argument
  • Mixed Content: Seamlessly combine headings, paragraphs, and bullet points
  • Professional Tables: Custom styling with themes and colors
  • 50+ Business Layouts: Progressive library of professional presentation templates

๐Ÿ–ผ๏ธ Smart Image Processing

  • Placekitten Generation: Professional placeholder generation with computer vision
  • Intelligent Fallbacks: Automatic handling of missing/invalid images
  • Smart Cropping: Face detection and rule-of-thirds composition
  • Professional Filters: 10+ effects optimized for business presentations
  • Performance Optimized: <2s generation, intelligent caching

โšก Enhanced CLI Experience

  • One-Command Setup: deckbuilder init creates templates and configuration
  • Smart Defaults: Intuitive file paths and environment resolution
  • Tab Completion: Bash completion for commands, templates, and files
  • Global Arguments: -t/--templates, -o/--output, -l/--language, -f/--font for complete customization
  • Language Support: deckbuilder languages lists 20 supported proofing languages
  • Template Management: Analyze, validate, and enhance PowerPoint templates

๐ŸŽฏ Content-First Intelligence - Currently under design

Instead of asking "what layouts exist?", Deckbuilder will ask "what do you want to communicate?" This will transform the system from a layout picker into an intelligent presentation consultant.

๐Ÿš€ Quick Start

Installation

pip install deckbuilder

CLI Usage (Standalone)

# Initialize templates (one-time setup) This will create the default template and mapping JSON.
deckbuilder init

# Create presentation from markdown
deckbuilder create presentation.md

# Create with custom language and font
deckbuilder create presentation.md --language "Spanish (Spain)" --font "Arial"

# View supported languages
deckbuilder languages

# Template management
deckbuilder analyze default --verbose
deckbuilder templates

# Image generation
deckbuilder image 800 600 --filter grayscale

# View current configuration
deckbuilder config

# Get help
deckbuilder --help

MCP Server (Claude Desktop)

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "deckbuilder": {
      "command": "deckbuilder-server",
      "env": {
        "DECK_TEMPLATE_FOLDER": "/Users/username/Documents/Deckbuilder/Templates",
        "DECK_TEMPLATE_NAME": "default",
        "DECK_OUTPUT_FOLDER": "/Users/username/Documents/Deckbuilder",
        "DECK_PROOFING_LANGUAGE": "English (United States)",
        "DECK_DEFAULT_FONT": "Calibri"
      }
    }
  }
}

New Environment Variables:

  • DECK_PROOFING_LANGUAGE: Set proofing language for spell-check and grammar (20 languages supported)
  • DECK_DEFAULT_FONT: Set default font family for all presentations

๐Ÿ“ Usage Examples

Markdown with Frontmatter (Recommended)

---
layout: Title Slide
---
# **Deckbuilder** Presentation
## Creating presentations with *content-first* intelligence

---
layout: Four Columns
title: Feature Comparison
columns:
  - title: Performance
    content: "**Fast** processing with optimized algorithms"
  - title: Security
    content: "***Enterprise-grade*** encryption and compliance"
  - title: Usability
    content: "*Intuitive* interface with minimal learning curve"
  - title: Cost
    content: "___Transparent___ pricing with proven ROI"
---

---
layout: Picture with Caption
title: Market Analysis
media:
  image_path: "charts/revenue_growth.png"  # Auto-fallback to PlaceKitten if missing
  alt_text: "Revenue growth chart"
  caption: "**Q4 Revenue Growth** - 23% increase"
---

JSON Format (Programmatic)

{
  "presentation": {
    "slides": [
      {
        "type": "Title Slide",
        "title": "**Deckbuilder** Presentation",
        "subtitle": "Content-first presentation generation"
      },
      {
        "type": "Title and Content",
        "title": "Key Benefits",
        "content": [
          "**Intelligent** content analysis",
          "*Semantic* layout recommendations",
          "***Professional*** template system"
        ]
      }
    ]
  }
}

Python API

from deckbuilder import Deckbuilder

# Initialize engine
db = Deckbuilder()

# Create from markdown
result = db.create_presentation_from_markdown(
    markdown_content=open("presentation.md").read(),
    fileName="My_Presentation"
)

# Create from JSON
result = db.create_presentation(
    json_data={"presentation": {"slides": [...]}},
    fileName="JSON_Presentation"
)

print(f"โœ… Created: {result}")

๐ŸŒ Language & Font Support

Supported Languages (20)

Deckbuilder supports 20 proofing languages for spell-check and grammar:

# View all supported languages
deckbuilder languages

Available Languages:

  • English (United States, United Kingdom, Canada, Australia)
  • Spanish (Spain, Mexico, Latin America)
  • French (France, Canada)
  • German (Germany, Austria, Switzerland)
  • Italian, Portuguese (Brazil, Portugal)
  • Chinese (Simplified, Traditional), Japanese, Korean
  • Dutch, Russian, Arabic

Font Customization

# Set language and font globally
export DECK_PROOFING_LANGUAGE="Spanish (Spain)"
export DECK_DEFAULT_FONT="Arial"

# Or use CLI arguments
deckbuilder create presentation.md --language "French (France)" --font "Times New Roman"

# Check current settings
deckbuilder config

๐Ÿ–ผ๏ธ PlaceKitten Image Processing

Smart Image Fallback System - When images are missing or invalid, PlaceKitten automatically generates professional placeholders:

from placekitten import PlaceKitten

pk = PlaceKitten()
placeholder = (pk.generate(1920, 1080, image_id=1)
                .smart_crop(1920, 1080)
                .apply_filter("grayscale")
                .save("professional_placeholder.jpg"))

Features:

  • โœ… File Validation: Checks image existence, format, and accessibility
  • โœ… Professional Styling: Automatic grayscale filtering for business context
  • โœ… Smart Cropping: Computer vision-based cropping with face detection
  • โœ… Performance Optimized: Intelligent caching prevents duplicate processing
  • โœ… Seamless Integration: Zero user intervention required

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    MCP Server Layer                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   FastMCP       โ”‚        โ”‚   Content-First    โ”‚  โ”‚
โ”‚  โ”‚   Endpoints     โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   MCP Tools        โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚           โ”‚                                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                 Presentation Engine                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  PowerPoint     โ”‚        โ”‚   Template         โ”‚  โ”‚
โ”‚  โ”‚  Generation     โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   Management       โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚           โ”‚                                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                Content Intelligence                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Layout         โ”‚        โ”‚   PlaceKitten      โ”‚  โ”‚
โ”‚  โ”‚  Intelligence   โ”‚        โ”‚   Processing       โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽจ Supported Markdown Layouts

โœ… Currently Implemented

  • Title Slide - Opening slide with title and subtitle
  • Title and Content - Rich text with headings, paragraphs, bullets
  • Four Columns - Quad content areas with structured frontmatter
  • Two Content - Side-by-side content areas
  • Comparison - Left vs right comparison layout
  • Table - Data tables with professional styling
  • Section Header - Divider slides between topics
  • Picture with Caption - Image-focused slides with smart fallbacks

๐Ÿšง Progressive Implementation (50+ Planned)

  • Big Number displays, SWOT Analysis, Feature Matrix
  • Timeline, Process Flow, Organizational Chart
  • Dashboard, Metrics, Financial layouts
  • And 40+ more business presentation layouts

See Supported Templates for complete roadmap.

๐Ÿ› ๏ธ Development

Prerequisites

  • Python 3.11+
  • Virtual environments are recommended.

Development Install

git clone https://github.com/teknologika/deckbuilder.git
cd deckbuilder
python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -e .[dev]

Code Quality Standards

# Format code (required before commits)
black --line-length 100 src/

# Check linting (required)
flake8 src/ tests/ --max-line-length=100 --ignore=E203,W503,E501

# Run tests (required)
pytest tests/

Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature-name
  3. Follow code quality standards
  4. Add comprehensive tests
  5. Submit pull request with clear description

๐Ÿ“š Documentation

๐Ÿ”ง Technology Stack

  • Python 3.11+ with modern type hints and comprehensive error handling
  • FastMCP for Model Context Protocol server implementation
  • python-pptx for PowerPoint generation and template manipulation
  • PyYAML for structured frontmatter processing
  • OpenCV + Pillow for computer vision and image processing
  • pytest for unit testing
  • Anthropic Claude - for most of the development gruntwork :-)

๐Ÿ“‹ Troubleshooting

Template not found:

# Create templates folder
deckbuilder init

# Check configuration
deckbuilder config

Permission denied when saving:

  • Verify output folder has write permissions
  • Ensure files aren't open in PowerPoint

MCP connection failures:

  • Verify virtual environment is activated
  • Check Python path in Claude Desktop config
  • Ensure all dependencies are installed

๐Ÿ“„ License

Apache License 2.0 - See LICENSE file for details.


Built with โค๏ธ for intelligent presentation generation - Copyright Bruce McLeod

๐Ÿš€ Get Started โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› Report Issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deckbuilder-1.0.0b3.tar.gz (17.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deckbuilder-1.0.0b3-py3-none-any.whl (17.1 MB view details)

Uploaded Python 3

File details

Details for the file deckbuilder-1.0.0b3.tar.gz.

File metadata

  • Download URL: deckbuilder-1.0.0b3.tar.gz
  • Upload date:
  • Size: 17.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for deckbuilder-1.0.0b3.tar.gz
Algorithm Hash digest
SHA256 b7f9f2b642e365e8d490cb645177939e648aff75a8f42a72129a44cfa49c0516
MD5 6c75a686311e3520873418b30eae0ff0
BLAKE2b-256 d2cc5a235c00692063cf4d9b4248396901337304adac2d6e7556c15ea840f557

See more details on using hashes here.

File details

Details for the file deckbuilder-1.0.0b3-py3-none-any.whl.

File metadata

  • Download URL: deckbuilder-1.0.0b3-py3-none-any.whl
  • Upload date:
  • Size: 17.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for deckbuilder-1.0.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 20470733029356e42059f96b24b2398b0b1e2f38e98ce9b89ba817324a81e134
MD5 e9f10a2642f3ddc63e82d01ec065e0e9
BLAKE2b-256 7a2fa147953b8ec9a73842e4e69938cb17e2817fd8d6c8b948aea70b743d7b80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page