Model or dataset
barun-saha/slide-deck-ai avatar
barun-saha/slide-deck-ai

SlideDeck AI: Generating PPTX Decks from a Topic String or a PDF

Co-create PowerPoint slide decks with AI

374 stars62 forksPythonMIT

At a glance

What is it?
SlideDeck AI is a Python package and Streamlit app that turns a topic description or a PDF into a PowerPoint file using an LLM provider of your choice. Its value is the provider-agnostic model prefix scheme and the python-pptx assembly step; its cost is that output quality tracks whichever model you point it at.
Who is it for?
Adopt SlideDeck AI if you want a scriptable first draft of a deck and you already hold an API key for one of the listed providers, or if you want to convert an existing PDF into slide-shaped output without a design tool. Do not adopt it if you need deterministic, template-locked corporate output or if your environment forbids sending document text to a third-party API.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 32 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem SlideDeck AI targets: blank-slide time, not design time

The README opens with the observation that people spend hours creating slides and organizing thoughts. SlideDeck AI addresses the first half of that sentence only. It generates the text content of slides and assembles them into a PPTX file using python-pptx, drawing on a set of pre-defined presentation templates. It does not claim to solve layout design, brand compliance, or chart construction. If your bottleneck is deciding what goes on each slide, this is aimed at you. If your bottleneck is making the deck match a corporate template, the README offers no evidence that this is handled beyond picking from the bundled templates. The intended audience is therefore narrow and clear: developers and analysts who want a structured first draft they can then edit in PowerPoint, and who are comfortable putting an API key into a config or environment variable.

The generation pipeline: JSON schema, image search, then python-pptx

The README describes four steps. First, an LLM produces the initial slide content as structured JSON based on a pre-defined schema. Second, keywords extracted from that JSON are used to search for and download relevant images, which are inserted into the presentation with a certain probability. That probabilistic insertion is worth noting: the README does not state the probability value or how it varies, so image presence per slide is not something you can predict from the documentation alone. Third, python-pptx builds the slides from the JSON, using one of the pre-defined templates. Fourth, a refinement loop lets you issue further instructions such as adding a slide or modifying an existing one, and an instruction history is maintained across iterations. The JSON intermediate is the load-bearing part of this design: it means the LLM never writes PPTX directly, and the assembly step is deterministic given the same JSON. The pipeline can also start from a PDF rather than a topic string, which the README describes as transforming documents into decks.

The [code]model-name prefix and why provider choice is the main quality dial

Model selection uses a two-character provider prefix in square brackets followed by the model name, so Google Gemini 2.5 Flash Lite is written as [gg]gemini-2.5-flash-lite and OpenAI models take [oa]. Azure OpenAI uses [az] and Anthropic uses [an]. The README states that SlideDeck AI generally recommends Gemini Flash and GPT-4o on Azure OpenAI for the best-quality decks, based on experiments the project ran. That recommendation is the most useful sentence in the README, because it concedes that output quality is a function of the model rather than of the tool. The supported-model table also carries per-model characteristics: Claude Haiku 4.5 is described as faster and detailed, the Gemini Flash variants as fastest with longer content, GPT-4.1-nano as faster with shorter content, and GPT-5-nano as slow with shorter content. Those labels matter if you are generating a long deck, since a model described as producing shorter content will produce fewer words per slide. The README states these are the only models supported, which makes the list a hard boundary rather than a starting point.

Getting it running: three entry points and one API key

The Python API is the shortest path. The README gives this example: construct SlideDeckAI with model, topic and api_key, then call generate() and it returns a pptx_path. The api_key can alternatively be set via an environment variable, though the README does not name the variable in the supplied text. The CLI mirrors this: slidedeckai generate --model '[gg]gemini-2.5-flash-lite' --topic 'Make a slide deck on AI' --api-key 'your-google-api-key'. To run the web interface locally, the command is slidedeckai launch, which starts the Streamlit app; the same app is hosted on Hugging Face Spaces. To see what your installation actually supports, run slidedeckai --list-models, which the README describes as listing the only models supported by SlideDeck AI. Python 3.10 through 3.13 are the advertised versions. Everything routes through a provider API key, so there is no offline mode described in the material.

Where it breaks down: API dependency, image sourcing, and template lock-in

The clearest limitation is that generation depends on a live third-party API call. Every deck costs tokens against a provider account, and the README's note that most providers offer free usage tiers is a statement about pricing pages, not a guarantee that your volume fits. A second limitation sits in the image step: images are searched and downloaded from the web based on extracted keywords, and the README does not describe any licence filtering on those images. If you plan to present the deck publicly or commercially, the provenance of automatically downloaded images is something you have to check yourself, because the documentation does not address it. Third, the refinement loop keeps an instruction history, but the README does not describe how conflicts between successive instructions are resolved, so a long editing session may drift from your intent in ways that are hard to trace. Finally, deck structure comes from pre-defined templates. If you need a deck that conforms to a specific corporate master slide, the material gives no indication that you can supply your own.

Compared with python-pptx alone or a full presentation platform

The obvious alternative for a Python developer is python-pptx directly. SlideDeck AI uses python-pptx internally, so the difference is entirely in the layer above it: the LLM call, the JSON schema, the image lookup, and the refinement loop. If your slide content is already written or comes from a structured source you control, python-pptx alone gives you deterministic output with no API key, no token cost, and no dependency on a provider's model list. SlideDeck AI earns its place only when the content itself is the unknown. A second comparison point is the hosted Streamlit app, which the README lists as a Hugging Face Space. Using that space removes installation entirely but means your topic text and any uploaded PDF leave your machine, which is a different trade-off from running slidedeckai launch locally. The README does not describe what the hosted space does with uploaded documents, so that question is open.

Licence, release cadence, and what maintenance looks like

The project is MIT licensed, which permits commercial use and modification provided the copyright notice and permission notice are retained. This is not legal advice; read the LICENSE file in the repository for the operative terms. On cadence, the release history shows v8.2.1 in June 2026, v8.2.2 in July 2026, and v8.2.3 in August 2026, with the latest push timestamp matching the v8.2.3 release. That pattern suggests patch-level maintenance roughly monthly rather than a dormant repository, though the version numbering at 8.x with patch-only increments is worth reading as a signal that the interface is being stabilised rather than reshaped. The practical upgrade cost is tied to the model list: providers retire and rename models, and since the README states that only the listed models are supported, a provider deprecation can require a version bump or a model string change on your side. Pinning a version and re-running slidedeckai --list-models after any upgrade is the cheap way to catch that.

Editorial conclusion

Adopt SlideDeck AI if you want a scriptable first draft of a deck and you already hold an API key for one of the listed providers, or if you want to convert an existing PDF into slide-shaped output without a design tool. Do not adopt it if you need deterministic, template-locked corporate output or if your environment forbids sending document text to a third-party API. Before committing, run slidedeckai --list-models against your installed version to confirm your chosen provider prefix is still supported, and check the generated JSON schema against your own content requirements.

Official sources

  1. barun-saha/slide-deck-ai on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Community notes

Community notes