pom
pom kit · skills + CLI + XML

Go from a prompt
to editable PowerPoint

Tell your coding agent what to present. The pom-slide skill turns the request into pom XML, and pom CLI previews and builds native, editable PPTX files.

01 · Prompt

Describe the deck

02 · Agent skills

Match, design, review

03 · pom XML

Editable source of truth

04 · pom CLI

Preview and build

05 · PPTX

Native PowerPoint

Prompt → preview → PowerPoint

Quick Start with pom kit

Install the two agent skills and pom CLI, then ask your agent for a deck. The generated slides.pom.xml stays under your control as the editable source.

1. Install skills and CLI

npx skills add hirokisakabe/pom --all
npm install -g @hirokisakabe/pom-cli

2. Ask your agent

Create a three-slide quarterly sales report with a title, chart, and summary.

3. Build with pom CLI

pom build slides.pom.xml -o slides.pptx

Requires Node.js 22+. Agents can select installed skills automatically when your request matches their descriptions, so you do not need to name one. To onboard brand colors first, ask your agent to create a pom theme from your brand assets. If needed, use your agent's skill picker for direct invocation. If preview does not start automatically, run pom preview slides.pom.xml.

Features

🤖

AI Friendly

Describe the deck you want in natural language. The agent can select the installed skill when the request matches its description.

📝

Declarative

Describe slides as XML. No imperative API calls needed — just data in, PPTX out.

📐

Flexible Layout

Flexbox-style layout with VStack / HStack, powered by yoga-layout.

🧩

Rich Nodes

20 built-in node types: charts, flowcharts, tables, timelines, org trees, and more.

📊

PowerPoint Native

Generates real editable PowerPoint shapes — not images. Recipients can modify everything.

🎨

Master Slide

Define headers, footers, and page numbers once — applied to all slides automatically.

Programmatic library use

Building a custom pipeline? Pass pom XML to buildPptxdirectly for full TypeScript control.

generate.ts
import { buildPptx } from "@hirokisakabe/pom";

const xml = `
<Slide>
  <VStack w="100%" h="max" padding="48" gap="24" alignItems="start">
    <Text fontSize="48" bold="true">
      Presentation Title
    </Text>
    <Text fontSize="24" color="666666">
      Generated with pom
    </Text>
  </VStack>
</Slide>
`;

const { pptx } = await buildPptx(xml, { w: 1280, h: 720 });
await pptx.writeFile({ fileName: "presentation.pptx" });

18 Built-in Node Types

From simple text to complex charts and diagrams — everything renders as native PowerPoint shapes.