Drop in tu PDF o DOCX, y recibe un .pptx de verdad — con shapes, transiciones, gráficos y notas editables en PowerPoint.
PPT Master es el proyecto open source de 46.000+ estrellas que convierte cualquier documento (PDF, DOCX, Markdown, texto o URL) en una presentación PowerPoint nativamente editable. No es una imagen plana: es un deck con el modelo de objetos nativo de PowerPoint — shapes con handles de ajuste, tablas y gráficos con datos reales, notas del orador que se convierten en narración de audio e incluso vídeo. Funciona como un workflow que corre dentro de cualquier agente de IA (Claude Code, Cursor, Codex…): tú solo instalas Python, sueltas tu material y pides el deck en el chat. En este curso aprenderás a instalarlo, crear tu primera presentación, dominar el pipeline SVG→PPTX, usar plantillas, gráficos nativos, animaciones, narración y el modo rápido.
PPT Master es un proyecto open source (licencia MIT) creado por Hugo He, un profesional de finanzas (CPA · CPV) que quería que las diapositivas generadas por IA siguieran siendo editables en PowerPoint, no imágenes aplanadas. Es uno de los repos más en tendencia de GitHub con más de 46.000 estrellas y cientos de estrellas nuevas al día.
Su tesis es simple: "editable ya no es suficiente — la pregunta real es cuánto PowerPoint obtienes de verdad". PPT Master entrega el modelo de objetos nativo de PowerPoint:
p:sldMaster / p:sldLayout) vía la ruta de plantillas.En forma, es un workflow (una "skill") que corre dentro de cualquier herramienta con capacidad de agente: le dices en el chat "haz un deck a partir de este PDF" y ejecuta el pipeline en tu máquina. La fórmula del proyecto:
# harness + modelo = agente
$ harness (PPT Master) + modelo (Kimi K3 / Claude) = agente que genera PPTX
PPT Master solo posee el workflow; el modelo pone el techo de calidad.Tres promesas del proyecto:
| Promesa | Detalle |
|---|---|
| Coste transparente y predecible | Gratis y open source; el único coste es tu uso de modelo IA, sin suscripción a PowerPoint encima. |
| Los datos se quedan locales | Salvo la comunicación con el modelo IA, todo el pipeline corre en tu máquina. |
| Sin lock-in de plataforma | Cualquier IDE con agente puede usarlo: Claude, GPT, Gemini, Kimi y otros modelos funcionan. |
No esperes un deck perfecto en una sola pasada. El valor de la herramienta es quitarte la parte tediosa; el pulido final es tuyo — y el deck nativamente editable existe precisamente para que puedas seguir trabajando sobre él.
En las próximas lecciones lo instalaremos, generaremos nuestro primer deck y exploraremos cada capacidad con ejemplos reales.
Lo único que necesitas instalar es Python 3.10+. Todo lo demás viene con una línea: pip install -r requirements.txt.
En macOS: brew install python. En Ubuntu/Debian: sudo apt install python3 python3-pip. En Windows, marca "Add to PATH" durante la instalación.
git clone https://github.com/hugohe3/ppt-master.git y entra: cd ppt-master. El clone permite actualizar después con python3 skills/ppt-master/scripts/update_repo.py.
pip install -r requirements.txt — instala todo el pipeline de conversión, SVG y exportación.
Abre la carpeta del proyecto en tu herramienta con agente favorita (Claude Code, Cursor, Codex…). En un CLI: cd ppt-master y lanza el agente.
La mayoría de formatos se procesan nativamente con Python. Pandoc solo hace falta para formatos legacy:
| Sin Pandoc (nativo) | Requiere Pandoc |
|---|---|
.docx, .html, .epub, .ipynb, .pdf, imágenes, texto pegado | .doc, .odt, .rtf, .tex, .rst, .org, .typ |
# Solo si necesitas formatos legacy
brew install pandoc # macOS
sudo apt install pandoc # Ubuntu / Debian
La recomendación del autor: Kimi K3 (o Claude) con ventana de contexto grande (~1M tokens), emparejado con generación de imágenes gpt-image-2 (OpenAI) o gemini-3.1-flash-image (Google). Otros modelos pueden ejecutar el pipeline, pero con una brecha de calidad.
La fórmula harness + modelo = agente significa que si los resultados decepcionan, primero mejora el modelo y luego revisa tu uso contra la documentación. El modelo barato = más trabajo de pulido para ti.
El repo incluye .claude-plugin/marketplace.json, así que también puedes instalarlo como skill vía marketplace:
npx skills add hugohe3/ppt-master
# O dentro de Claude Code:
/plugin marketplace add hugohe3/ppt-master
/plugin install ppt-master@ppt-master
Verifica que todo quedó listo abriendo el proyecto en tu agente y pidiendo un deck de prueba (siguiente lección).
El bucle completo son tres pasos. Ya tienes instalado; ahora a crear.
projects/Coloca tu PDF, DOCX, Markdown o imágenes en el directorio projects/ del proyecto. O simplemente prepara un texto para pegar en el chat.
Escribe algo como "Please create a PPT from projects/q3-report/sources/report.pdf" — o pega el contenido directamente.
El agente confirma plantilla, formato y páginas, luego ejecuta todo el pipeline y exporta a exports/<nombre>_<timestamp>.pptx.
Por defecto (salvo que pidas generación rápida), el agente primero confirma el spec de diseño:
Tú: Please create a PPT from projects/q3-report/sources/report.pdf
IA: Sure. Let's confirm the design spec:
[Template] B) Free design
[Format] PPT 16:9
[Pages] 8-10 pages
...El agente se encarga de todo: análisis de contenido, diseño visual, generación de SVG y exportación a PPTX. Los formatos de lienzo soportan PPT 16:9, Xiaohongshu, WeChat y más de 10 formatos adicionales.
# Desde un archivo
You: Please create a PPT from projects/q3-report/sources/report.pdf
# Desde contenido pegado
You: Please turn the following into a PPT: [pega tu contenido...]
# Con especificaciones
You: Make a deck from sources/report.pdf with template skills/ppt-master/templates/layouts/presentation_core/
Para conseguir la ruta del archivo rápido: clic derecho en el archivo en tu explorador o en el sidebar del IDE → Copy Path (o Copy Relative Path) y pégalo en el chat.
Si el agente "pierde el contexto" o se olvida de un paso, pídele que relea skills/ppt-master/SKILL.md. Es el archivo que define el workflow y las reglas.
Entender el pipeline te ayuda a sacar más partido y a diagnosticar problemas. PPT Master escribe el diseño en SVG y luego lo convierte a DrawingML, el formato XML nativo de PowerPoint.
sources/ (PDF, DOCX, texto)
│ conversión y análisis por el agente
▼
SVG hand-authored (diseño por página)
│ # pipeline SVG: un conversor
▼
svg_output/ ──► finalize_svg.py ──► svg_final/ (previews autocontenidas)
│
▼
exports/<nombre>_<timestamp>.pptx (DrawingML nativo editable)svg_output/ y escribe un deck DrawingML directamente editable.svg_final/ para que veas cada página antes de abrir PowerPoint.¿Por qué SVG? Porque es un formato de dibujo vectorial que mapea de forma casi directa a los objetos de PowerPoint: rectángulos, elipses, texto, rutas, rellenos y gradientes. El proyecto mantiene una guía de mapeo PowerPoint ↔ SVG honesta, feature por feature, que documenta hasta dónde llega la conversión hoy (SmartArt es una omisión deliberada).
| Objeto | Estado en el .pptx |
|---|---|
| Shapes y cajas de texto | DrawingML nativo, clicables y editables en PowerPoint, Keynote, WPS o LibreOffice |
| Gráficos y tablas | Por defecto SVG-derived editables; con --native-charts-and-tables, objetos Chart/Table nativos con datos |
| Transiciones y animaciones | OOXML real, no vídeo incrustado |
| Notas del orador | Notas por diapositiva listas para narrar |
Descargar cualquier .pptx de ejemplo y abrirlo en PowerPoint es la forma más rápida de ver lo que la herramienta puede hacer de verdad. El proyecto publica ejemplos en examples/ y un visor online en hugohe3.github.io/ppt-master.
El comando manual de PowerPoint "Convert to Shape" queda fuera del contrato soportado: el pipeline produce objetos nativos directamente, no requiere conversión posterior.
El flujo estándar tiene una ronda de confirmación (spec de diseño + elección de plantilla). El modo rápido salta esa ida y vuelta: es una pasada única, no resumible, que va directo a autoría y exportación.
# Pide explícitamente generación rápida
You: Quickly generate a 5-page deck from projects/q3-report/sources/report.pdf — no need to confirm with me
# Con requisitos explícitos
You: Turn this into a deck, skip the confirmation, about 8 pages, dark corporate look
Lo que digas explícitamente se cumple; lo que no digas, el agente lo decide solo — sin volver a preguntar. El número de páginas y el estilo del segundo ejemplo se respetan: el modo rápido elimina la ronda de confirmación, no tu control.
design_spec.md ni spec_lock.md: las decisiones de contenido/diseño existen solo en el contexto activo del agente. Si se pierde el contexto antes de entregar, empieza de nuevo.svg_final/: el modo rápido no ejecuta finalize_svg.py en la ruta por defecto; exporta directamente el PPTX.El modo rápido es one-pass: no crea registro de estrategia ni plan de páginas sustituible. Los manifiestos operativos y el log de auditoría Python pueden quedar, pero no reconstruyen por qué el agente diseñó el deck así.
Si un recurso requerido falta (p.ej. una imagen concreta), el modo rápido se detiene y te lo pide en lugar de sustituirlo por material no relacionado. Es una red de seguridad valiosa.
Regla práctica: usa el flujo estándar cuando quieras revisar el spec antes de generar; usa quick mode cuando tengas claro lo que quieres y valores la velocidad.
Para las imágenes que no trae el usuario, PPT Master ofrece dos rutas mezclables dentro del mismo deck:
image_gen.pyConfigura IMAGE_BACKEND más la *_API_KEY del proveedor y el pipeline la llama automáticamente:
# En .env
IMAGE_BACKEND=openai
OPENAI_API_KEY=sk-...
# o
IMAGE_BACKEND=gemini
GEMINI_API_KEY=...
# Ver backends disponibles
python3 skills/ppt-master/scripts/image_gen.py --list-backends
Actualmente gpt-image-2 es el mejor default por calidad.
image_search.pyFunciona sin configuración: sin claves usa Openverse / Wikimedia Commons como fallback. Con claves gratuitas de Pexels o Pixabay mejora mucho la calidad de fotografía moderna:
# En .env (ambas son gratuitas)
PEXELS_API_KEY=...
PIXABAY_API_KEY=...
El licenciamiento se gestiona automáticamente: considera CC0, Dominio Público, licencias Pexels/Pixabay sin atribución, CC BY y CC BY-SA, y añade un pequeño crédito inline cuando la imagen seleccionada requiere atribución. Usa --strict-no-attribution solo si una diapositiva no puede tolerar ninguna línea de crédito.
Las API keys viven en .env. El orden de lectura: primero las variables del entorno del proceso, luego el primer .env encontrado en: directorio actual → directorio de la skill → raíz del repo clonado → ~/.ppt-master/.env.
cp .env.example .env # instalación por clone
mkdir -p ~/.ppt-master
cp /ruta/ppt-master/.env.example ~/.ppt-master/.env # instalación por marketplace
| Uso | Recomendación de orden |
|---|---|
| Portadas, productos, retratos, escenas de marca | Assets propios en alta resolución / generación IA > búsqueda web con claves Pexels/Pixabay > búsqueda web zero-config |
| Ilustraciones genéricas | Búsqueda web con claves > zero-config |
Sin clave de generación de imágenes, la búsqueda web zero-config sigue funcionando como plan B — nunca te quedas bloqueado por una API key.
Por defecto PPT Master usa diseño libre — no necesitas plantilla. Pero cuando un deck debe reutilizar una identidad de marca, un método de comunicación o un set fijo de layouts, hay dos rutas para reutilizar un .pptx existente:
| Quieres… | Ruta | Qué pasa |
|---|---|---|
| Usar los shells nativos de un deck con contenido nuevo | Fill Native PPTX | Clona las diapositivas seleccionadas y parchea los datos de texto/tabla/gráfico directamente en OOXML. El diseño fuente sigue siendo nativo. |
| Construir un sistema de diseño reutilizable y generar un deck nuevo | Create Template → Generate PPTX | Crea un workspace validado Brand, Style, Layout o Deck desde la referencia, y luego escribe un deck nuevo (historia, estructura y páginas pueden diferir). |
Dale al agente tu .pptx más tu material (o un tema) y pídele: "fill this deck with the new content". Rellena datos en tu diseño existente y exporta solo las páginas que elijas, manteniendo todo nativamente editable.
Para construir un workspace reutilizable, pide explícitamente la ruta Create Template:
You: Create a reusable Deck template from projects/brand/our_deck.pptx via /create-template
El importador analiza la referencia, confirma si el resultado es Brand, Style, Layout o Deck y materializa un workspace validado con su templates/design_spec.md más los prototipos y assets requeridos. Los workspaces viven en:
| Ubicación | Ruta | Notas |
|---|---|---|
| Biblioteca de skills | skills/ppt-master/templates/<kind>/<id>/ | Workspace portable + registro global: aparece al preguntar "what templates are available?" |
| Bajo projects | projects/<nombre>/ | El mismo workspace portable sin registro global |
Para usar un workspace al generar, da su ruta raíz exacta en el chat (un nombre de plantilla a secas nunca resuelve a un workspace):
You: Make a deck from sources/report.pdf with template skills/ppt-master/templates/layouts/presentation_core/
Un workspace completo puede copiarse o migrarse entre la biblioteca y projects/ sin reestructurar nada; solo cambia el registro de biblioteca. Si quieres un archivo de revisión de PowerPoint para Layout/Deck, ejecuta la exportación preview opcional que crea exports/<id>_template_preview.pptx.
Los gráficos y tablas tienen dos modos de exportación, y la diferencia importa:
--native-charts-and-tables: los grupos elegibles se sustituyen por objetos Chart/Table nativos de PowerPoint respaldados por datos, con Edit Data y controles específicos del objeto. Pueden renderizar distinto entre aplicaciones.# Exportar con objetos nativos Chart/Table
python3 skills/ppt-master/scripts/export.py --native-charts-and-tables
# El archivo resultante se guarda como:
exports/<nombre>_<timestamp>_native_charts_tables.pptx
Ambas variantes son editables — la diferencia es el modelo de objetos de PowerPoint, no la editabilidad. Con la variante nativa, en PowerPoint haces clic derecho sobre el gráfico y accedes a Editar datos para abrir la hoja de datos real.
¿Necesitas una tabla o gráfico que el cliente vaya a actualizar con datos propios? Usa --native-charts-and-tables: recibirá un objeto PowerPoint real con su hoja de datos, no una imagen dibujada.
La consistencia visual entre aplicaciones es el trade-off: los objetos nativos pueden verse ligeramente distintos en Keynote, WPS o LibreOffice. Si el deck se distribuye en varias apps, valora quedarte con la variante por defecto (SVG-derived).
Además de gráficos y tablas, el pipeline prepara fórmulas matemáticas como objetos renderizados cuando el contenido lo requiere (informes financieros, papers, documentos técnicos).
Los decks exportados llevan transiciones de página y animaciones opcionales por elemento como OOXML real — no vídeo incrustado.
El default es una transición fade con ninguna animación de elemento. Para activar animaciones:
| Opción | Qué hace |
|---|---|
-a auto | Activa animaciones automáticas sensatas |
| Preset con prefijo canónico | Uno de los 203 presets nativos: entrance_*, emphasis_*, path_*, exit_* |
animations.json sidecar | Definición manual de animaciones por shape |
# Ejemplo: animaciones automáticas
You: Generate this deck with animations (-a auto)
Los 29 short names antiguos siguen aceptándose como compatibilidad, pero las elecciones nuevas usan nombres con prefijo canónico. La configuración es estricta: efectos desconocidos, modos de inicio inválidos o valores de timing incorrectos fallan en lugar de convertirse silenciosamente en otro efecto. Antes de reemplazar un resultado existente, PPT Master lee el paquete candidato y comprueba timing, IDs, targets de shape, efectos, duraciones y modos de inicio.
PowerPoint es el objetivo principal de validación de movimiento. Keynote / WPS / LibreOffice pueden abrir el .pptx pero pueden remapear u omitir efectos individuales o semánticas de inicio. Valida entregables críticos en PowerPoint.
Convierte las notas del orador en narración de voz por diapositiva, incrusta el audio en el PPTX y deja que PowerPoint exporte el deck como MP4 con narración sincronizada — sin herramientas de terceros.
You: Generate narration for this deck and re-export with audio embedded.
You: Generate narration audio for this deck
La narración usa por defecto edge-tts (unos 90 locales); los proveedores cloud opcionales cubren voces de mayor calidad. El agente recomienda una voz para el idioma del deck y pregunta una vez antes de generar.
Trae tu propia voz clonada de ElevenLabs / MiniMax / Qwen / CosyVoice y que todo el deck se narre con tu voz (o la de un presentador, con permiso). Clona una vez en la consola del proveedor, pasa el voice_id, y PPT Master lee las notas de cada diapositiva en esa voz y lo incrusta de vuelta en el PPTX.
Combinación ganadora para formación: deck con notas del orador → narración edge-tts incrustada → exportar MP4 sincronizado desde PowerPoint. El mismo material sirve para la clase en vivo y para el vídeo bajo demanda.
Mientras el deck se genera, se abre una preview en el navegador en la URL que reporta el launcher (prefiere http://localhost:5050 y usa el siguiente puerto libre si está ocupado).
Shift = 10px). Ctrl+Z deshace. Los cambios se escriben en svg_output/ al pulsar Apply changes.| Situación | Primera acción |
|---|---|
| El agente se desvía u olvida un paso | Pídele que relea skills/ppt-master/SKILL.md, workflows/routing.md y la autoridad de la ruta elegida. |
| La calidad visual decepciona | Cambia a un modelo Claude de contexto grande + gpt-image-2 — el harness pone el suelo, el modelo el techo. |
| Texto desbordado o elementos solapados | Re-ejecuta esa página, o arréglalo en live preview. |
| Sin API key de generación de imágenes | La búsqueda web zero-config sigue funcionando como fallback. |
| Animaciones raras en otra app | Valida el deck en PowerPoint; Keynote/WPS/LibreOffice pueden remapear efectos. |
| Un deck largo podría reventar el contexto | La generación puede correr en split mode (ver FAQ). |
projects/ — ruta y naming claros evitan que el agente use archivos equivocados..env fuera de git — las claves de imagen y búsqueda no deben versionarse.El autor resume la filosofía: "saber usar Python y agentes de IA importará cada vez más — hacer un deck es solo la excusa; lo que realmente estoy empujando es Python y agentes." Este curso es exactamente eso.
Con esto ya tienes el mapa completo: instalar, crear tu primer deck, dominar el pipeline SVG→PPTX, modo rápido, imágenes, plantillas, gráficos nativos, animaciones, narración y troubleshooting. Es hora de lanzar tu agente, soltar un PDF en projects/ y pedir tu primer deck.
Sí, el software es open source (MIT). El único coste es tu uso de modelo IA (API keys o suscripciones de Claude/GPT/Gemini/Kimi); no hay suscripción a PowerPoint encima.
No. Instalas Python y tu herramienta de agente; todo lo demás ocurre en el chat. Conocer lo básico de Python te ayuda a tocar los scripts (image_gen.py, image_search.py, export.py), pero no es requisito.
Porque el resultado es un .pptx con el modelo de objetos nativo de PowerPoint: shapes editables, gráficos y tablas con datos reales, transiciones y notas — no una imagen plana o un deck con objetos convertidos que no puedes tocar.
Sí, de dos formas: Fill Native PPTX (rellena tu deck existente con contenido nuevo) o Create Template (construye un workspace de marca reutilizable que genera decks nuevos con tu identidad).
Kimi K3 o Claude con ventana de contexto grande (~1M tokens) más generación de imágenes gpt-image-2 o gemini-3.1-flash-image. El modelo pone el techo de calidad del resultado.