A comprehensive Claude Code Skill for creating, editing, and analyzing PowerPoint presentations through multiple approaches: Python-based creation, direct OOXML manipulation, and template workflows.
Skill Type: Agent Skill Compatible with: Claude Code CLI Version: 1.0.0
- 🎯 Python-based Creation: Generate presentations programmatically with python-pptx
- 🔧 OOXML Manipulation: Direct XML editing for advanced control
- 📋 Template Workflows: Work with existing templates
- 🎨 Professional Styling: Multiple color schemes and design principles
- 🖼️ Smart Assets: Automatic background selection and logo insertion
- 🏷️ Footer Branding: Automatic FeedMob logo in footer on every slide (uses feedmob-brand-guidelines assets)
- 📊 Multiple Formats: Command-line, JSON, and programmatic APIs
- ✅ Standard Format: Compatible with PowerPoint, LibreOffice, Google Slides
- 🔗 Skill Integration: Works with feedmob-brand-guidelines skill for logo assets
- 📝 Text Operations: Extract, replace, and format text across slides
- 🔄 Slide Management: Rearrange, duplicate, and delete slides via OOXML
- 🎨 Design Principles: Built-in support for 6x6 rule, 60-30-10 color rule
- 🔍 Analysis Tools: Text inventory, structure validation
- 📐 Layout Control: Professional grid-based positioning
feedmob-presentations/
├── Skill.md # Main skill file
├── REFERENCE.md # OOXML manipulation reference guide
├── README.md # This file
└── scripts/
├── create_ppt.py # Main presentation creation script
└── ooxml_helpers.py # OOXML manipulation utilities
Note: Logo assets (FeedMob logos) are obtained from the feedmob-brand-guidelines skill, which contains official brand assets in its assets/logos/ directory.
This skill is part of the FeedMob Claude Code marketplace. It will be automatically available when installed through the marketplace.
- Download or clone this repository
- Create a ZIP file of the
feedmob-presentationsfolder - In Claude Code, navigate to Settings > Skills
- Upload the ZIP file
- Enable the skill in your Claude Code settings
Note: When packaging as a ZIP file, ensure the folder structure is maintained with Skill.md at the root level of the ZIP contents.
This skill follows the Claude Code Skills specification:
- Automatic Activation: Claude Code reads the
descriptionfield inSkill.mdand determines when to invoke this skill - Context Loading: When activated, the skill loads comprehensive PowerPoint creation capabilities
- Script Execution: Runs Python scripts for creating or manipulating presentations
- Asset Integration: References logo files from the
feedmob-brand-guidelinesskill for consistent branding
The PPT Generator skill will automatically activate when you mention:
- "Create a PowerPoint presentation"
- "Generate a PPT file"
- "Make a presentation about..."
- "Create slides for..."
- "Add slides to a presentation"
Request:
Create a PowerPoint presentation titled "Project Update"
Result:
- Creates a new PPTX file with a title slide
Request:
Create a presentation about quarterly results with slides for Introduction, Results, and Summary
Result:
- Creates a PPTX file with title slide and content slides
This plugin supports three complementary workflows:
Best for: Creating new presentations from scratch with professional styling.
python scripts/create_ppt.py --output presentation.pptx --json slides.jsonCapabilities:
- Professional color schemes (FeedMob, Binance, Modern, Corporate)
- Automatic background selection and optional content logos
- Footer logo on every slide for consistent branding
- Multiple slide layouts (title, content, metrics dashboard, comparison)
- Advanced typography and visual effects
Best for: Advanced editing beyond library capabilities, bulk operations.
# Unpack PPTX
python scripts/ooxml_helpers.py unpack presentation.pptx
# Edit XML files directly
# Modify ppt/slides/*.xml, ppt/presentation.xml, etc.
# Repack
python scripts/ooxml_helpers.py repack unpacked_dir presentation.pptx -o modified.pptxCapabilities:
- Rearrange slides by modifying XML
- Bulk text replacement across all slides
- Access comments, speaker notes, animations
- Fine-grained control over formatting
Best for: Working with existing branded templates.
Workflow:
- Extract template content inventory
- Generate replacement text as JSON
- Apply replacements programmatically
- Validate and output modified presentation
- Multiple Color Schemes: FeedMob, Binance, Professional, Modern, Corporate
- Smart Backgrounds: Automatic selection based on content keywords
- Footer Branding: FeedMob logo automatically added to every slide footer
- Logo Insertion: Optional content logos for specific slide types
- Professional Layouts: Title, content, metrics, comparison, two-column slides
- Design Principles: 6x6 rule, 60-30-10 color rule, grid alignment
- Title Slide: Title and optional subtitle
- Content Slide: Title with bullet point content
- Blank Slide: Custom layout for text and images
Core Requirements:
- Python 3.6+
- python-pptx >= 0.6.21
Skill Dependencies:
- feedmob-brand-guidelines: Required for FeedMob logo assets and brand compliance
Optional Tools:
- markitdown (text extraction)
- LibreOffice (validation and conversion)
- zipfile (OOXML manipulation, built-in to Python)
python scripts/create_ppt.py --output meeting.pptx --title "Team Meeting"python scripts/create_ppt.py \
--output quarterly.pptx \
--title "Q4 Results" \
--slides "Introduction" "Financials" "Summary"Create a slides.json file:
{
"slides": [
{
"type": "title",
"title": "Company Overview",
"subtitle": "2024 Annual Report"
},
{
"type": "content",
"title": "Highlights",
"content": [
"Record revenue growth",
"Expanded to new markets",
"Launched innovative products"
]
}
]
}Then run:
python scripts/create_ppt.py --output company.pptx --json slides.json- Skill Detection: Claude identifies when PPT creation is needed
- Content Analysis: Understands the structure and content requirements
- Script Execution: Runs the Python script with appropriate parameters
- File Generation: Creates the .pptx file in the specified location
- Verification: Confirms successful creation
- Name:
feedmob-presentations - Tools: Read, Write, Bash
- Language: Python
- Dependencies: python-pptx>=0.6.21
For blank slides, specify exact positions:
{
"type": "blank",
"text": "Custom Text",
"text_left": 2,
"text_top": 1,
"font_size": 24
}Add images with custom positioning:
{
"type": "content",
"title": "Product Screenshot",
"content": ["New features"],
"image": "screenshot.png",
"image_left": 5,
"image_top": 2
}The plugin includes powerful OOXML manipulation tools:
python scripts/ooxml_helpers.py unpack presentation.pptx -o unpacked/python scripts/ooxml_helpers.py inventory presentation.pptx -o inventory.jsonpython scripts/ooxml_helpers.py replace presentation.pptx "Old Text" "New Text" -o modified.pptxpython scripts/ooxml_helpers.py validate presentation.pptxpython scripts/ooxml_helpers.py repack unpacked/ presentation.pptx -o modified.pptxThis plugin follows professional presentation design standards:
- Title: ≥28pt for readability
- Body: ≥18pt minimum
- Fonts: Web-safe fonts (Arial, Helvetica)
- Consistency: Limited font variations
- 6x6 Rule: Max 6 lines per slide, 6 words per line
- 20% Margins: Minimum white space
- Grid System: 12x8 grid for alignment
- Visual Balance: Even weight distribution
- 60-30-10 Rule: 60% primary, 30% secondary, 10% accent
- Max 4 Colors: Per chart/visualization
- Consistent Mapping: Same colors for same data
- Accessibility: WCAG AA contrast ratios
- Content-Informed Design: Design serves content
- Strong Hierarchy: Clear visual priorities
- Readable Contrast: Sufficient color contrast
- Professional Quality: Business-ready output
- Define structure before detailed content
- Choose approach based on task (creation vs editing)
- Use content-informed design principles
- Python-pptx for new presentations
- OOXML for advanced operations
- Validate after major changes
- Keep text concise (6x6 rule)
- Test in multiple applications
- Verify accessibility (contrast, font size)
- Validate OOXML structure
- Check on actual display device
Ensure you're running the script from the correct directory:
cd plugins/feedmob-presentations
python scripts/create_ppt.py [options]Install the required library:
pip install python-pptx- Verify image file paths are correct
- Use absolute paths if relative paths don't work
- Check file permissions
- Validate JSON syntax before running
- Ensure proper structure matches expected format
- Check for missing commas or brackets
To create a distributable ZIP file of this skill:
# Navigate to the parent directory
cd /path/to/plugins
# Create ZIP file (ensure folder structure is correct)
zip -r feedmob-presentations.zip feedmob-presentations/ \
-x "*.DS_Store" -x "*/.git/*" -x "*/__pycache__/*" -x "*.pyc"The ZIP should contain:
feedmob-presentations.zip
└── feedmob-presentations/
├── Skill.md
├── REFERENCE.md
├── README.md
└── scripts/
├── create_ppt.py
└── ooxml_helpers.py
Note: Logo assets are not included in this skill's ZIP file. They should be obtained from the feedmob-brand-guidelines skill.
Improvements to this skill are welcome! When contributing:
- Follow the Claude Code Skills standards
- Maintain
Skill.mdas the primary skill file in the root directory - Keep the YAML frontmatter updated with accurate metadata
- Test thoroughly before submitting changes
- Add support for more slide layouts
- Enhance text formatting options
- Add support for charts and tables
- Improve error handling and validation
- Update design principles and examples
- Provide feedback and suggestions
- Update README.md if directory structure changes
- Test skill activation with various prompts
- Verify scripts work with current python-pptx version
- Ensure all documentation is up to date
- Skill.md - Comprehensive skill documentation with examples and design principles
- REFERENCE.md - OOXML structure and manipulation guide
- Official Claude Code Skills Documentation
PPTX files are ZIP archives containing:
ppt/presentation.xml- Slide order and IDsppt/slides/*.xml- Individual slide contentppt/slideLayouts/- Layout templates[Content_Types].xml- File type declarationsppt/_rels/*.rels- Relationship definitions
See REFERENCE.md for complete reference.
For operations beyond python-pptx:
- Unpack PPTX (it's a ZIP)
- Edit XML files
- Repack to PPTX
- Validate structure
Critical: Invalid OOXML creates corrupted files. Always validate.
Built-in professional palettes:
- FeedMob: Teal (#00B5AD), Gray, Blue
- Binance: Gold (#F0B90B), Black, White
- Professional: Navy, Gray, Blue
- Modern: Black, Coral, Mint
- Corporate: Charcoal, Gold, White
See Skill.md for complete palette definitions.
MIT