Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: not-maintained

ppt-cli

A PowerPoint CLI and agent skill for building .pptx presentations end to end. Every command produces structured JSON, shapes are addressed by stable IDs, and the bundled skill covers design systems, slide composition, AI image generation, speaker scripts, and QA — so agents go from blank deck to polished result without guesswork.

Install

pipx install ppt-cli

What it can do

Create decks from scratch or from templates. Start with a blank deck or use a saved template that carries your corporate theme, masters, and layouts. Add slides by choosing from the available layouts, reorder them, duplicate them, or remove them. Set a default template so new decks pick up your branding automatically.

Inspect any existing deck. Get a structured view of what's inside a .pptx: slide count, dimensions, available layouts, shape positions, text content, and styles — all as JSON. The peek command gives a compact overview with shape IDs and text previews; dump gives the full detail. You can also render any slide to a PNG screenshot for visual review.

Edit text and content. Set text on any shape by ID, set slide titles, write speaker notes. Find-and-replace across every slide in the deck — useful for rebranding or fixing repeated typos. Insert images from local files or generate them on the fly with AI. Add textboxes with font styling, or add tables directly from CSV data.

Generate images with AI. Create images from text descriptions using Google Gemini, with control over resolution (up to 2K), aspect ratio, and grounding (web search, image search, or both for more accurate results). Generate multiple variations in parallel to pick the best one, or generate and insert directly into a slide in a single command. Pass reference images with --ref for style matching, character consistency, background editing, or compositing — up to 14 images per generation.

Fine-tune styling and layout. Set font properties — bold, italic, size, color, font family — on any shape. Set fill colors. Move and resize shapes with precise positioning using inches, centimeters, points, or pixels. Every styling command addresses shapes by their stable ID, so you can make targeted adjustments without affecting the rest of the slide.

Work at the OOXML level when you need full control. The internals commands go beyond what the high-level API covers. analyze gives you a structured inventory of every master, layout, and media file in the deck, including which layouts are actually used by slides and which are dead weight. fingerprint detects structural patterns across slides — for instance, finding that slides 5, 11, and 23 all share the same freehand card layout that nobody turned into a proper template. You can then stage the deck (extract it for editing), add, delete, or duplicate layouts and masters with full cross-reference syncing (relationships, content types, and XML references are all updated automatically), and rebuild into a valid .pptx. This is how you create and evolve templates — not by hand-editing ZIP files, but with commands that guarantee structural integrity.

Agent skill with design and workflow guidance. A bundled skill ships with the package — a hierarchical set of files that AI agents read progressively as they work. It covers four design directions (business, technical, creative, educational) with complete palettes, typography pairings, and layout preferences for each. It includes an image generation guide with prompt structure, style vocabulary, and practical patterns. It provides QA procedures, a user interaction flow, and ten end-to-end workflow examples. Agents load only what they need for the current task rather than ingesting everything upfront.

Example workflows

Turn an existing deck into a reusable template

Someone sends you a polished quarterly report. You want to strip the content but keep the theme, layouts, and branding for future use:

ppt-cli internals analyze quarterly-report.pptx    # see what's inside: layouts, masters, media
ppt-cli internals stage quarterly-report.pptx       # extract for editing
ppt-cli internals delete slide <dir> --slide 4      # remove content slides
ppt-cli internals delete layout <dir> --layout "unused-thing"  # clean up dead layouts
ppt-cli internals build-template <dir> --name=quarterly

Now ppt-cli create new-report.pptx --template quarterly starts from that clean foundation.

Build a branded presentation from scratch

ppt-cli create q1-report.pptx --template quarterly
ppt-cli add-slide q1-report.pptx --layout "Title Slide"
ppt-cli set-title q1-report.pptx 1 "Q1 2026 Results"
ppt-cli add-slide q1-report.pptx --layout "bg_white"
ppt-cli add-image q1-report.pptx 2 --prompt "clean bar chart showing 15% YoY revenue growth, corporate blue palette" --w 8in --h 4.5in
ppt-cli add-table q1-report.pptx 3 financials.csv --x 1in --y 1.5in
ppt-cli set-notes q1-report.pptx 1 "Open with the new product line announcement"

Slide by slide: pick a layout, fill placeholders, drop in images and tables, add speaker notes. The agent can inspect results at any point with peek or screenshot and adjust.

Bulk edit an existing deck

Rebranding, or a company name changed across 30 slides:

ppt-cli replace-text deck.pptx "Acme Corp" "NewCo Inc."
ppt-cli replace-text deck.pptx "FY2025" "FY2026"
ppt-cli peek deck.pptx --all    # verify the changes look right

Commands

create Create a new .pptx (16:9 default, --legacy for 4:3, or from template)
info Deck metadata — slide count, dimensions, available layouts
list List slides with titles and shape counts
dump Full JSON dump of slide shapes, positions, text, styles
peek Compact shape summary — IDs, types, text preview
screenshot Render slides as PNG images
set-text Set text on a shape
set-title Set slide title
set-notes Set speaker notes
replace-text Find and replace text across all slides
add-slide Add a slide (with layout selection)
delete-slide Delete a slide
reorder Move a slide to a new position
duplicate-slide Duplicate a slide
add-image Add image from file or generate with AI
image-gen Generate images from text (standalone, no deck needed)
add-textbox Add a textbox with optional styling
add-table Add a table from CSV
delete-shape Delete a shape
set-font Set font properties (bold, italic, size, color, family)
set-fill Set shape fill color
set-position Move or resize a shape
internals Low-level OOXML: stage, analyze, fingerprint, build, build-template, delete, duplicate, add
template Prepare, save, list, show, delete, rename, default, update-design-system, export, import

All commands produce JSON output. Slides are 1-based. Shapes are addressed by --shape-id. Lengths accept units: 1in, 2.5cm, 72pt, 100px, 914400emu (default: inches). Colors are #RRGGBB.

Run ppt-cli <command> --help for full usage of any command.

Requirements

  • Python 3.10+
  • GEMINI_API_KEY environment variable — required only for AI image generation (add-image --prompt and image-gen). Get one at Google AI Studio or Google Cloud Console.
  • LibreOffice and poppler-utils (pdftoppm) — required only for the screenshot command.

What it doesn't cover

  • Animations, transitions, and embedded audio/video
  • Chart creation or editing (charts are detected by dump/peek but can't be created or modified)
  • SmartArt manipulation
  • Legacy .ppt format — only .pptx (Office Open XML)

Disclaimer

ppt-cli is not affiliated with or endorsed by Microsoft. PowerPoint is a trademark of Microsoft Corporation.

Metadata

Release files for ppt-cli 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ppt-cli 0.2.3
File Size Uploaded Provenance Actions
ppt_cli-0.2.3.tar.gz 112.9 kB With provenance Details for ppt_cli-0.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ppt-cli 0.2.3
File Interpreter ABI Platform Actions
ppt_cli-0.2.3-py3-none-any.whl Python 3 none any Details for ppt_cli-0.2.3-py3-none-any.whl

Total release size: 228.8 kB

Release files / ppt_cli-0.2.3.tar.gz

Download URL ppt_cli-0.2.3.tar.gz
Size 112.9 kB
Tags Source
SHA-256 checksum
How to use checksums
231dcc7d685b1e06417e1d2cbb77ac16776f5206b76ace89d6f4426126b197b5
BLAKE2b-256 checksum
How to use checksums
0dc0929cfee526eed3cac73e84a4e9baf08dfa06dae4c2c5140dfee2302cc1db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.

Transparency log

Release files / ppt_cli-0.2.3-py3-none-any.whl

Download URL ppt_cli-0.2.3-py3-none-any.whl
Size 116.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0aeb49cd0d676153eaa0dd52dbdacad318f1f4bd6f770360fa15bbb927dcbe5a
BLAKE2b-256 checksum
How to use checksums
0e094df2c6d9cd019810adaad55e9ee807d8b90aa511d6f9f036078bb4be1e40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.

Transparency log

Security for ppt-cli 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ppt_cli-0.2.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page