Skills libreoffice-impress
📊

libreoffice-impress

Low Risk ⚙️ External commands⚡ Contains scripts📁 Filesystem access

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.

Supports: Claude Codex Code(CC)
🥉 75 Bronze
1

Download the skill ZIP

2

Upload in Claude

Go to Settings → Capabilities → Skills → Upload skill

3

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 Risk
v2 • 3/19/2026

This 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.

13
Files scanned
3,912
Lines analyzed
5
findings
2
Total audits
Low Risk Issues (2)
Legitimate Subprocess Usage for LibreOffice
The skill uses subprocess to invoke LibreOffice soffice commands. These are hardcoded commands with no user input injection. This is standard office automation behavior required for UNO API integration.
Safe Temporary File Handling
Uses Python tempfile module for temporary files during presentation processing. This is standard practice for office automation with proper cleanup.
Audited by: claude View Audit History →

Quality Score

64
Architecture
100
Maintainability
87
Content
22
Community
86
Security
100
Spec Compliance

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 presentation
Create a new Impress presentation at /path/to/output.odp with a title slide and two content slides.
Edit existing presentation
Open /path/to/report.odp and replace all instances of 'Q3 2024' with 'Q4 2024' in the body text.
Apply patch operations
Apply this patch to /path/to/deck.odp:
[operation]
type = insert_text_box
target.kind = slide
target.slide_index = 2
...
Export and capture slides
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

Frequently Asked Questions

Does this skill require LibreOffice to be installed?
Yes. The skill uses LibreOffice UNO API for all presentation operations. LibreOffice must be installed and accessible via the soffice command.
Can I edit password-protected presentations?
No. The UNO API does not support editing encrypted or password-protected presentations. You must remove protection first.
What slide index system does Impress use?
Impress uses zero-based indexing. The first slide has index 0, the second has index 1, and so on.
How do I target a specific text element?
Use ImpressTarget with kind=text, slide_index, and optionally placeholder (title, body, subtitle) or text to narrow matches.
What is the difference between atomic and best_effort patch modes?
Atomic mode stops on first failure and restores the original file. Best_effort mode applies successful operations and records failures.
Can I export presentations to formats other than PDF?
Yes. Supported export formats are PDF and PPTX. PPTX export uses LibreOffice's PowerPoint 2007 XML filter.