OpenSource-Hub

presenton

Application

presenton/presenton

Open-source AI presentation generator with self-hosted and API options.

Overview

Presenton is an open-source AI-powered presentation generator that works with multiple AI providers (OpenAI, Gemini, Ollama, etc.). It offers both a self-hosted web version via Docker and a desktop app for Windows, Mac, and Linux. Users can generate presentations from prompts or documents, export to PPTX or PDF, and maintain full control over data and models.

README Preview

\n  \n\n\n\n  Quickstart ·\n  Docs ·\n  Youtube ·\n  Discord\n\n\n\n  \n  \n  \n\n\n# Open-Source AI Presentation Generator and API (Gamma, Beautiful AI, Decktopus Alternative)\n\n\n\n### ✨ Why Presenton\n\nNo SaaS lock-in · No forced subscriptions · Full control over models and data\n\nWhat makes Presenton different?\n\n- Use Fully **self-hosted** in Web through [Docker Package](https://docs.presenton.ai/v3/get-started/quickstart)\n- Or Download [Desktop App](https://presenton.ai/download) (Mac, Windows & Linux)\n- Works with OpenAI, Gemini, Vertex AI, Azure OpenAI, Amazon Bedrock, Fireworks, Together AI, Anthropic, LM Studio, Ollama, or custom models\n- Comes with AI Presentation Generation API\n- Fully open-source (Apache 2.0)\n- Works with your own design/templates\n- **Fully editable PPTX export**\n\n> [!TIP]\n> **Star us!** A ⭐ shows your support and encourages us to keep building! 😇\n\n\n  \n\n\n#\n\n### 🎛 Features\n\n\n  \n\n\n#\n\n### 💻 Presenton Desktop\n\nCreate AI-powered presentations using your own model provider (BYOK) or run everything locally on your own machine for full control and data privacy.\n\n\n  \n    \n  \n\n\n**Available Platforms**\n\n\n\nPlatform\nArchitecture\nPackage\nDownload\n\n\n\nmacOS\nApple Silicon / Intel\n.dmg\nDownload ↗\n\n\n\nWindows\nx64\n.exe\nDownload ↗\n\n\n\nLinux\nx64\n .deb\nDownload ↗\n\n\n\n\n\n**Deploy to Cloud Providers**\n\n\n  \n    \n  \n  \n    \n  \n\n\n#\n\nPresenton gives you complete control over your AI presentation workflow. Choose your models, customize your experience, and keep your data private.\n\n- Custom Templates & Themes — Create unlimited presentation designs with HTML and Tailwind CSS\n- AI Template Generation — Create presentation templates from existing Powerpoint documents.\n- Flexible Generation — Build presentations from prompts or uploaded documents\n- Export Ready — Save as PowerPoint (PPTX) and PDF with professional formatting\n- Built-In MCP Server — Generate pr

FAQ (3)

Troubleshooting
Why does slides_markdown generation in Presenton always return a 500 error with 'to_string() got unexpected keyword argument with_schema'?

The error occurs because get_messages_for_slides_markdown() passes with_schema=True to PresentationLayoutModel.to_string(), which does not accept that argument. Immediate workaround: edit servers/fastapi/templates/presentation_layout.py and change the method signature to def to_string(self, with_schema: bool = False) -> str:. This suppresses the crash and allows slide generation. Alternatively, remove with_schema=True from the call in generate_presentation_structure.py line 129. A permanent fix should either implement schema output or align the calls.

GitHub Issue #637
Troubleshooting
How to get real-time UI updates when AI agent edits a presentation?

Upgrade to the latest version of Presenton. Recent releases automatically refresh slides after tool actions, stream chat status, highlight the edited slide with follow mode, and include a thumbnail panel to select slides. No manual reload required.

GitHub Issue #448
Troubleshooting
How to open an app on macOS that shows 'Apple could not verify ... is free of malware'?

This happens because the app is not notarized by Apple. To bypass Gatekeeper, install the app from the .dmg (drag to Applications). Then, in Finder → Applications, right-click (or Control-click) the app and select Open. Confirm Open in the dialog. You only need to do this once; subsequent launches work normally. Alternatively, go to System Settings → Privacy & Security and click 'Open Anyway'.

GitHub Issue #617