pptx-gen
Generate PowerPoint (.pptx) presentations from JSON with smart layouts
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate PowerPoint (.pptx) presentations from JSON with smart layouts
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Redactar escritos jurídicos mexicanos largos (recursos de apelación, demandas, contestaciones, amparos) a partir de varios documentos de un expediente (demanda, contestación, pericial, confesional, sentencia), entregados como .docx editable. Úsalo cuando el usuario pida "recurso de apelación", "redacta el escrito", "haz la demanda/contestación en Word", o cualquier pieza procesal larga que deba correlacionar agravios/hechos con documentos fuente y jurisprudencia verificada.
Sintetizar o redactar un entregable a partir de varios documentos fuente (o pocos muy grandes) que juntos NO caben en la ventana de contexto — reportes multi-fuente, due diligence, análisis/comparación de contratos, resúmenes de expediente, investigación. Úsalo cuando debas correlacionar información entre múltiples documentos y producir un documento nuevo, y leerlos todos completos reventaría el contexto ("Prompt is too long"). NO es para leer un solo documento corto.
Busca y descarga assets de diseño (iconos, ilustraciones, 3D, animaciones Lottie, imágenes AI) desde IconScout. Dispara cuando el user pida un icono/ilustración/animación para un diseño, mockup, presentación o web, o mencione IconScout. 13.8M+ assets con licencia royalty-free.
Text-to-speech with Spanish voices (Kokoro, local & free) and OpenAI fallback
Transcribe a texto el HABLA de un audio largo o pesado (reuniones, notas de voz reenviadas, grabaciones de 10–60+ min). Trocea con ffmpeg y transcribe cada parte con Whisper, sin toparse con el límite de 25MB de la API. Úsala cuando llegue un [Audio file: ...] y el usuario pida "transcribe", "qué dice", "analiza el audio", o para resumir/analizar una grabación de voz.
Haz una versión nueva/ejecutiva/más limpia de un documento institucional (PDFs tipo "orden del día", agendas, hojas de evento, programas) MINANDO sus assets reales (logos, fotos de ponentes, texto, fuentes) y RECONSTRUYENDO en HTML — nunca re-difundiendo la página como imagen. Úsala ante "haz una nueva versión", "versión ejecutiva", "rehazlo más limpio", "adáptalo" de un PDF.
| name | pptx-gen |
| description | Generate PowerPoint (.pptx) presentations from JSON with smart layouts |
| allowed-tools | Bash(pptx-gen:*) |
Generate .pptx presentations with automatic layout detection and professional styling.
pptx-gen '<json>'
pptx-gen /path/to/slides.json
pptx-gen '<json>' /workspace/group/my-presentation.pptx
Each slide auto-detects the best layout based on its content, or you can set layout explicitly:
| Layout | Auto-detected when | Description |
|---|---|---|
title | Only title/subtitle, no body/bullets/table | Centered title, decorative accent line |
content | Has body/bullets, no image | Full-width content with accent bar |
image-right | Has image + body/bullets | Text left (55%), image right (45%) |
image-left | Manual only | Image left, text right |
image-full | Has image, no body/bullets | Large centered image with title above |
comparison | Has columns array | Two columns with divider line |
table | Has table data | Title + well-spaced table |
{
"title": "Presentation Title",
"author": "Author Name",
"theme": {
"background": "1a1a2e",
"titleColor": "auto",
"bodyColor": "auto",
"accentColor": "6366f1"
},
"slides": [
{
"layout": "title",
"title": "Main Title",
"subtitle": "Subtitle text"
},
{
"title": "Key Features",
"bullets": ["Feature 1", "Feature 2", "Feature 3"]
},
{
"title": "Our Product",
"body": "Description text here",
"image": "https://example.com/photo.jpg"
},
{
"layout": "comparison",
"title": "Us vs Them",
"columns": [
{ "title": "Our Solution", "bullets": ["Fast", "Reliable"] },
{ "title": "Traditional", "bullets": ["Slow", "Fragile"] }
]
},
{
"title": "Metrics",
"table": [
["Metric", "Q1", "Q2"],
["Revenue", "$10k", "$25k"]
]
}
]
}
Colors are 6-digit hex (no #). Set titleColor and bodyColor to "auto" (or omit them) for automatic contrast detection — dark backgrounds get light text, light backgrounds get dark text.
Default accent: indigo (6366f1). Good alternatives: purple 7c3aed, blue 3b82f6, emerald 10b981, rose f43f5e.
layout — override auto-detection (title, content, image-right, image-left, image-full, comparison, table)title — slide headingsubtitle — accent-colored text below titlebody — paragraph textbullets — bulleted list (array of strings)image — local path or Pexels URL (do NOT generate AI images, use Pexels search instead)table — 2D array, first row = headercolumns — for comparison layout: [{title, bullets}, {title, bullets}]background — hex color or image path (overrides theme per-slide)notes — speaker notesDo NOT generate AI images (no generate-flux, no generate-image). Use Pexels for stock photos:
# Search Pexels and use the URL directly in the slide JSON
# The helper auto-downloads HTTP images, so URLs work fine
Use Pexels image URLs directly in the image field. The helper downloads them automatically via curl.
layout unless you need a specific oneSaves to /workspace/group/ and prints the path. Send as document:
mcp__nanoclaw__send_message({ text: "Here's your presentation!", document_path: "/workspace/group/presentation-123.pptx" })