Skip to main content

Generate Professional Presentations in Seconds using AI

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autoppt-0.6.0.tar.gz (160.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autoppt-0.6.0-py3-none-any.whl (78.9 kB view details)

Uploaded Python 3

File details

Details for the file autoppt-0.6.0.tar.gz.

File metadata

  • Download URL: autoppt-0.6.0.tar.gz
  • Upload date:
  • Size: 160.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for autoppt-0.6.0.tar.gz
Algorithm Hash digest
SHA256 b9e6041bba23f5c259352da36fef01860ddd44aa770655d1afb010a50f3b9b4f
MD5 4858fb2c7831b6114052f1b727b1c15f
BLAKE2b-256 6b5a49f9c8555004e4fdd993474b1cf7264177943d8a108082dff96b5a1987c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoppt-0.6.0.tar.gz:

Publisher: workflow.yml on yeasy/AutoPPT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file autoppt-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: autoppt-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 78.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for autoppt-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ac54fbf8d7d8100f770b9b3a38c649f7b097bd1f08c24a50504c9235fad26d2
MD5 ae217e032bba0f6ce3e78eefc7d265b6
BLAKE2b-256 86ee192dd6a7370d108bc7f0c9a8ac7297ef181f6da854601586a7435c275b44

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoppt-0.6.0-py3-none-any.whl:

Publisher: workflow.yml on yeasy/AutoPPT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page