Skip to main content

AutoPPT

中文说明

License Python CI/CD

Generate polished, editable PowerPoint decks from a topic, an outline, or a template.

AutoPPT is a PowerPoint-native presentation generator built for people who need real .pptx files, not a web-only slide toy. It combines LLM planning, optional research, layout-aware rendering, and template support so the output stays editable in PowerPoint, Keynote, or Google Slides.

Why AutoPPT

  • Native .pptx output that stays editable after generation
  • Template-aware rendering for branded decks and repeatable formatting
  • Layout planning before rendering, including richer slide types such as comparison and quote slides
  • Slide-level workbench for regenerate and remix workflows
  • Mock mode and offline mode for CI, demos, and local development without live API keys

See It In Action

Showcase Samples

These committed decks are the fastest way to judge current output quality.

Showcase preview

Sample Focus Slides
samples/en_visual_showcase.pptx High-fidelity image-led showcase 8
samples/cn_visual_showcase.pptx High-fidelity image-led showcase in Chinese 8
samples/en_tech.pptx English technology deck 9
samples/cn_tech.pptx Chinese technology deck 9
samples/en_life.pptx English lifestyle deck 8
samples/cn_life.pptx Chinese lifestyle deck 8
samples/en_art.pptx English art deck 8
samples/cn_art.pptx Chinese art deck 8

Feature-oriented validation decks are documented in samples/README.md.

30-Second Quick Try

Install AutoPPT and generate a local deck without any external API key:

pip install autoppt
AUTOPPT_OFFLINE=1 autoppt --provider mock --topic "The Future of AI"

Run the web UI:

streamlit run autoppt/app.py

Core Capabilities

Capability What it gives you
Multi-provider generation OpenAI, Google Gemini, Anthropic, or mock for local testing
Research pipeline Optional web search, article extraction, and image discovery
Theme system Multiple built-in themes plus auto-style selection
Template support Reuse existing corporate .pptx templates
Slide planning SlidePlan, SlideSpec, and DeckSpec provide a stable intermediate model
Deck QA Detect duplicate titles, empty slides, and malformed richer layouts before export
Workbench Regenerate or remix a single slide with an optional target layout
Thumbnail previews Render slide grids for quick visual review
Docker support Run the web app in Docker or Docker Compose

Installation

Install from PyPI:

pip install autoppt

Install from source:

git clone https://github.com/yeasy/autoppt.git
cd autoppt
pip install -e .

Install development dependencies:

pip install -e ".[dev]"

The dependency source of truth is pyproject.toml. requirements.txt is kept as a thin local install wrapper.

Configuration

Copy the example environment file and add the providers you want to use:

cp .env.example .env

Typical variables:

OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=AIza...
ANTHROPIC_API_KEY=sk-ant-...

# Optional local OpenAI-compatible endpoint
OPENAI_API_BASE=http://localhost:1234/v1

# Optional Anthropic-compatible endpoint
ANTHROPIC_BASE_URL=https://api.anthropic.com

# Optional offline mode
AUTOPPT_OFFLINE=1

Usage

CLI

# Generate with default settings
autoppt --topic "The Future of AI"

# Let AutoPPT infer the best theme
autoppt --topic "Machine Learning Tutorial" --auto-style

# Preview the outline before rendering
autoppt --topic "Startup Pitch" --confirm-outline

# Generate outline only
autoppt --topic "Q1 Report" --outline-only

# Use a specific provider, style, and slide count
autoppt --topic "Planets in Solar System" --provider google --style dark --slides 8

# Use a custom template and render thumbnails
autoppt --topic "Q3 Report" --template templates/your-template.pptx --thumbnails

# Stay fully local for testing and CI
AUTOPPT_OFFLINE=1 autoppt --provider mock --topic "System Design Review"

Web App

streamlit run autoppt/app.py

Then open http://localhost:8501.

Docker

Run with Docker Compose:

docker-compose up -d
docker-compose logs -f

Run with Docker CLI:

docker build -t autoppt .
docker run --rm \
  -p 8501:8501 \
  --env-file .env \
  -v $(pwd)/output:/app/output \
  autoppt

Themes

Built-in themes:

minimalist, technology, nature, creative, corporate, academic, startup, dark, luxury, magazine, tech_gradient, ocean, sunset, chalkboard, blueprint, sketch, retro, neon

Use --style <theme> to force a specific look, or --auto-style to let AutoPPT choose.

Samples

Refresh all committed samples deterministically:

python scripts/generate_samples.py --category all --output-dir samples

Refresh one sample:

python scripts/generate_sample.py en_visual_showcase --output-dir samples

Refresh README preview assets:

python scripts/generate_readme_previews.py --output-dir docs/assets

For the full sample catalog, see samples/README.md.

Testing

Run the full test suite:

pip install -e ".[dev]"
pytest

Run coverage:

pytest --cov=autoppt --cov-report=term-missing

Run a focused test file:

pytest tests/test_renderer.py -v

Templates

Template guidance lives in templates/README.md.

Architecture

Architecture notes live in docs/architecture.md.

Contributing

  1. Fork the repository.
  2. Create a branch: git checkout -b feature/awesome
  3. Install dev dependencies: pip install -e ".[dev]"
  4. Run validation: pytest && python3 scripts/check_sensitive.py
  5. Build and smoke test: python -m build && pip install dist/*.whl && autoppt --help
  6. Commit your changes.
  7. Push your branch and open a pull request.

License

Apache 2.0. See LICENSE.

Changelog

See CHANGELOG.md.

Metadata

Release files for autoppt 0.6.0

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

Source distribution (sdist)

Source distribution for autoppt 0.6.0
File Size Uploaded
autoppt-0.6.0.tar.gz 160.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autoppt 0.6.0
File Interpreter ABI Platform
autoppt-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 239.3 kB

Release files / autoppt-0.6.0.tar.gz

Download URL autoppt-0.6.0.tar.gz
Size 160.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b9e6041bba23f5c259352da36fef01860ddd44aa770655d1afb010a50f3b9b4f
BLAKE2b-256 checksum
How to use checksums
6b5a49f9c8555004e4fdd993474b1cf7264177943d8a108082dff96b5a1987c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 May 18, 2026.

Transparency log

Release files / autoppt-0.6.0-py3-none-any.whl

Download URL autoppt-0.6.0-py3-none-any.whl
Size 78.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ac54fbf8d7d8100f770b9b3a38c649f7b097bd1f08c24a50504c9235fad26d2
BLAKE2b-256 checksum
How to use checksums
86ee192dd6a7370d108bc7f0c9a8ac7297ef181f6da854601586a7435c275b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 May 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

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