explaingit

codextf2/yamldeck

4JavaScriptAudience · developerComplexity · 2/5ActiveSetup · easy

TLDR

CLI that turns a compact YAML spec into an editable PowerPoint deck on your own machine, designed for local LLMs to fill in slides.

Mindmap

mindmap
  root((yamldeck))
    Inputs
      YAML spec
      Image assets
      Theme dir
    Outputs
      pptx deck
      Continuation slides
    Use Cases
      Local LLM decks
      Sensitive content
      Theme galleries
    Tech Stack
      Node
      JavaScript
      pptxgenjs
      YAML

Things people build with this

USE CASE 1

Generate a PowerPoint deck from a YAML spec without leaving your machine

USE CASE 2

Let a small local LLM author slide content while a CLI handles layout and theming

USE CASE 3

Build branded decks using one of seven built-in themes or a custom theme dir

USE CASE 4

Render long bullet or table content with automatic pagination across continuation slides

Tech stack

NodeJavaScriptpptxgenjsYAML

Getting it running

Difficulty · easy Time to first run · 5min

Needs Node and npm install, then a single CLI call produces a pptx.

In plain English

yamldeck is a command-line tool that turns a short YAML file into a real PowerPoint deck. You write the slide content in a simple structured format, run the tool, and get back a .pptx file you can open and edit in PowerPoint. The README describes the tool as local-first, meaning the whole conversion happens on your own machine. The project is built around a specific division of labor. A small AI model running locally writes the YAML spec, with one entry per slide, and yamldeck does the heavy lifting of validation, layout, theme rendering, and producing the binary PowerPoint file. The README points out that this matters for sensitive material: the small local model can handle the slide text and any private data, while large external design models only contribute themes that can be reused offline. The YAML format is short. A deck has a title, a chosen theme, and a list of slides. Each slide picks a layout, such as cover, bullets, metric_row, comparison, chart, table, timeline, or image, and fills in the matching fields. You can also declare resources at the top, such as an image path, and reference them by key from any slide. The CLI embeds the image bytes into the .pptx itself, so the final file does not depend on the original paths. Several discovery commands help an AI agent or a human pick the right layout and theme. You can list themes, search for layouts by keyword, or get a minimal description of a single layout in a compact key-value form designed to fit a low-token context window. Output can be tabular text, minimal key-value lines, or JSON. Seven built-in themes ship with the tool, including clean, editorial, executive, forest, midnight, minimal, and playful, and external themes can be loaded from a directory. One feature called auto pagination splits oversized content across continuation slides automatically. Defaults include six bullets per slide, four metrics per row, eight table rows per slide, and five timeline events per slide. Themes can override these splits. The repository ships example decks and a script to build them all at once.

Copy-paste prompts

Prompt 1
Write a yamldeck YAML spec for a 6-slide startup pitch using the executive theme
Prompt 2
Show me how to add a custom .mjs theme and load it with --theme-dir in yamldeck
Prompt 3
Help me wire yamldeck into a small local LLM agent so it picks the right layout via describe-layout
Prompt 4
Build a chart slide with yamldeck that embeds an image resource declared at the deck level
Prompt 5
Override the default pagination so my bullets layout shows 4 items per slide instead of 6
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.