pom kit
pom is a Presentations as Code toolkit: author a presentation in the form that fits your workflow, keep pom XML as the shared source of truth, and use the same core model to preview, validate, and render it.
It is more than a PPTX generation API. Agent skills, Markdown, JSX/TSX, and the visual editor all meet at pom XML. The core library turns that XML into positioned presentation objects, and the surrounding tools operate on that common model.
Authoring
pom XML / pom-md / pom-jsx / pom-slide
|
v
pom XML (source of truth / IR)
|
v
pom core -> PositionedNode
|
v
Rendering / Tools
PositionedNode -> PPTX -> SVG / PNG
pom-cli / pom-vscode / Playgroundpom-cli, pom-vscode, and the Playground do not define separate presentation formats. They preview, inspect, or output the same pom model.
Choose a Quick Start
AI agent + pom CLI (recommended)
Describe the deck you want, let pom-slide create or edit the pom XML, and keep pom preview open while you review the result. Continue with Getting Started: AI agent + pom CLI.
TypeScript library
For an application or custom generation pipeline, pass pom XML directly to buildPptx(). Continue with Getting Started: TypeScript library or the @hirokisakabe/pom library guide.
Find the Right Surface
| Goal | Start here |
|---|---|
| Generate and refine a deck through an AI coding agent | Agent Skills |
| Author the complete model directly | pom XML |
| Write prose-first slides | pom-md |
| Compose typed, reusable slide components | pom-jsx |
| Embed XML / AST editing and preview in a React app | Embedding the Editor |
| Preview, build, or render local files | pom CLI |
| Preview from VS Code | pom-vscode |
| Try XML without installing anything | Playground |
The Getting Started guide compares the authoring options in more detail.
Core Concepts
- A presentation is one or more top-level
<Slide>elements, optionally preceded by a<Theme>. - Layout uses pixel units and Flexbox-style
VStack/HStackcontainers. - The core pipeline is
parseXml->calcYogaLayout->toPositioned->renderPptx. - PPTX output uses native, editable PowerPoint objects where possible; image-based nodes such as
Image,Icon, andSvgremain images.
Continue with Nodes, Layout System, and Styling Guide.