Skip to Content
Introduction

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 / Playground

pom-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

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

GoalStart here
Generate and refine a deck through an AI coding agentAgent Skills
Author the complete model directlypom XML
Write prose-first slidespom-md
Compose typed, reusable slide componentspom-jsx
Embed XML / AST editing and preview in a React appEmbedding the Editor
Preview, build, or render local filespom CLI
Preview from VS Codepom-vscode
Try XML without installing anythingPlayground

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 / HStack containers.
  • The core pipeline is parseXml -> calcYogaLayout -> toPositioned -> renderPptx.
  • PPTX output uses native, editable PowerPoint objects where possible; image-based nodes such as Image, Icon, and Svg remain images.

Continue with Nodes, Layout System, and Styling Guide.

Last updated on