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 --promptandimage-gen). Get one at Google AI Studio or Google Cloud Console. - LibreOffice and poppler-utils (
pdftoppm) — required only for thescreenshotcommand.
What it doesn't cover
- Animations, transitions, and embedded audio/video
- Chart creation or editing (charts are detected by
dump/peekbut can't be created or modified) - SmartArt manipulation
- Legacy
.pptformat — 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.