libreoffice-impress
Create and edit LibreOffice Impress presentations programmatically
Generate, modify, and export professional presentations with automated slide operations. This skill provides programmatic control over LibreOffice Impress for bulk presentation workflows.
Download the skill ZIP
Upload in Claude
Go to Settings → Capabilities → Skills → Upload skill
Toggle on and start using
Test it
Using "libreoffice-impress". Create a presentation with title 'Sales Report'
Expected outcome:
Successfully created presentation with 1 slide using BLANK layout. The title placeholder is ready for content.
Using "libreoffice-impress". Apply patch with two operations
Expected outcome:
Patch applied successfully (atomic mode). Operations: replace_text [ok], insert_text_box [ok]. Document persisted.
Security Audit
Low RiskThis skill provides LibreOffice Impress presentation automation via UNO API. Static analysis flagged 210 potential issues, but manual review confirms all are false positives or legitimate office automation patterns. Subprocess calls invoke hardcoded LibreOffice commands for document processing. No network exfiltration, credential access, or persistence mechanisms detected. Risk level is LOW - appropriate for publication.
Low Risk Issues (2)
Risk Factors
⚙️ External commands (2)
⚡ Contains scripts (5)
Quality Score
What You Can Build
Automated Report Generation
Generate weekly or monthly reports as presentations by merging data into slide templates. Add charts, tables, and formatted text programmatically.
Bulk Presentation Updates
Apply consistent changes across multiple presentations. Update company branding, fix text across decks, or add standard footers to all slides.
Slide Content Extraction
Extract text content, speaker notes, or slide inventory from existing presentations for documentation or analysis purposes.
Try These Prompts
Create a new Impress presentation at /path/to/output.odp with a title slide and two content slides.
Open /path/to/report.odp and replace all instances of 'Q3 2024' with 'Q4 2024' in the body text.
Apply this patch to /path/to/deck.odp: [operation] type = insert_text_box target.kind = slide target.slide_index = 2 ...
Export /path/to/presentation.odp to PDF at /path/to/output.pdf, then capture a PNG snapshot of slide 3.
Best Practices
- Use absolute file paths for all presentation files to avoid path resolution issues
- Prefer shape names over shape indices for more stable target references
- Use atomic patch mode for production workflows to prevent partial document corruption
Avoid
- Do not use relative paths when calling Impress APIs
- Avoid relying on exact shape names after LibreOffice-native slide duplication
- Do not skip slide inventory after mutations that change deck order