Transform plain text into professional slide decks with AI
An AI-powered presentation generator that converts topics, outlines, or bullet points into polished PowerPoint presentations in seconds. Supports 6 themes, 8 starter templates, multiple export formats, and works with or without an API key.
- π€ Multi-LLM Support β OpenAI, Anthropic (Claude), Groq, and Ollama (local/free)
- π Multiple Input Formats β Simple topics, bullet lists, or nested outlines
- π¨ 6 Professional Themes β Professional, Modern, Minimal, Dark, Nature, Corporate
- π£οΈ Speaker Notes β Auto-generated presentation guidance for each slide
- πΌοΈ Image Support β Optional DALL-E 3 integration for slide visuals (OpenAI)
- π° Cost-Effective β ~$0.01-0.05 per presentation, or free with Ollama
- βοΈ UI Settings β Configure API keys and models from the web interface (no .env editing)
- π PowerPoint (PPTX) β Primary output with themed formatting
- π PDF Export β Via LibreOffice headless conversion
- π Markdown Export β Plain text version of your slides
- π HTML Export β Standalone web presentation with print support
- π 8 Starter Templates β Pitch Deck, Research Talk, Tutorial, QBR, and more
- π Deck History β Browse, download, and manage past generations
- π Usage Statistics β Track decks generated, slides created, themes used
- π₯οΈ Full CLI β Generate decks from the terminal with
python cli.py generate "topic" - π REST API β 10+ endpoints for programmatic access
- π³ Docker Support β One-command deployment with docker-compose
- π Dark Mode β Full dark mode support in the web UI
- π§ Mock Mode β Works without an API key using placeholder content
- π Hot Reload β Change LLM provider/model from the UI, no restart needed
Input: Output:
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β Introduction to ML β β β
6-slide PPTX deck β
β * What is ML? β βββββββΊ β β
Speaker notes β
β * Types of Learning β β β
Themed formatting β
β * Real-world Apps β β β
Markdown + HTML β
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
git clone https://github.com/Abelo9996/Prompt2Deck.git
cd Prompt2Deck
# Run setup script
./setup.sh # macOS/Linux
setup.bat # Windows
# Optional: Add OpenAI key for AI content (works without it in mock mode)
cd backend
cp .env.example .env
# Edit .env: OPENAI_API_KEY=your_key_here
# Start backend
python main.pygit clone https://github.com/Abelo9996/Prompt2Deck.git
cd Prompt2Deck
# Optional: set your key
echo "OPENAI_API_KEY=your_key_here" > .env
docker-compose up# Backend
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
python main.py
# Frontend (separate terminal)
cd frontend
npm install
npm run dev- API: http://localhost:8000
- Web UI: http://localhost:3000
cd backend
# Generate a deck
python cli.py generate "Introduction to AI" --theme modern
# Preview without generating
python cli.py preview "Machine Learning Basics"
# With all exports
python cli.py generate "Cloud Computing" -t dark --markdown --html
# List themes and templates
python cli.py themes
python cli.py templates
# View history and stats
python cli.py history
python cli.py stats
# Start the API server
python cli.py serve --port 8000The web UI features three tabs:
| Tab | Description |
|---|---|
| β¨ Generate | Input text, preview slides, configure options, generate deck |
| π Templates | Browse 8 starter templates across Business, Education, Academic, Marketing |
| π History | View, download, and delete past generations |
| βοΈ Settings | Configure LLM provider, API key, model β supports OpenAI, Anthropic, Groq, Ollama |
Plus: dark mode toggle, stats bar, theme selector with 6 options, and multi-format export.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Health check + endpoint list |
GET |
/themes |
List available themes |
GET |
/templates |
List starter templates |
GET |
/templates/{id} |
Get specific template |
POST |
/preview |
Preview slide structure |
POST |
/generate |
Generate deck (PPTX + optional exports) |
GET |
/settings |
Get current AI config (keys masked) |
POST |
/settings |
Update AI provider/key/model |
POST |
/settings/test |
Test API connection |
GET |
/download/{filename} |
Download generated file |
GET |
/history |
List generation history |
DELETE |
/history/{deck_id} |
Delete history item |
GET |
/stats |
Usage statistics |
π See examples/api_examples.md for full examples.
Explain Large Language Models
β Auto-generates 5-slide presentation
Introduction to Cloud Computing
* Infrastructure as a Service
* Platform as a Service
* Software as a Service
β Each bullet becomes a slide
Machine Learning Basics
1. Introduction
- What is ML?
- Why it matters
2. Types of Learning
- Supervised
- Unsupervised
β Full control over slide structure
π See examples/sample_inputs.md for more examples
| Theme | Style | Best For |
|---|---|---|
| Professional | Navy & blue, corporate | Business presentations |
| Modern | Coral & green, bold | Startups, pitches |
| Minimal | Black & white, clean | Academic, research |
| Dark | Dark bg, red accents | Tech talks, demos |
| Nature | Green tones, organic | Environmental, health |
| Corporate | Navy & teal, formal | Enterprise, finance |
| Template | Category | Slides |
|---|---|---|
| Startup Pitch Deck | Business | ~8 |
| Project Status Update | Business | ~7 |
| Academic Lecture | Education | ~8 |
| Research Presentation | Academic | ~8 |
| Product Launch | Marketing | ~8 |
| Technical Tutorial | Education | ~9 |
| Quarterly Business Review | Business | ~8 |
| Workshop / Training | Education | ~8 |
| Component | Technology |
|---|---|
| Backend | Python 3.10+, FastAPI, python-pptx |
| Frontend | Next.js 14, React 18, TypeScript, Tailwind CSS |
| AI | OpenAI, Anthropic (Claude), Groq, Ollama (local) |
| Images | DALL-E 3 (optional, OpenAI only) |
| CLI | Click + Rich |
| Export | Markdown, HTML, PDF (via LibreOffice) |
| Deploy | Docker, docker-compose |
Prompt2Deck/
βββ backend/
β βββ main.py # FastAPI server (10+ endpoints)
β βββ cli.py # CLI tool (7 commands)
β βββ models.py # Pydantic schemas
β βββ pipeline/
β βββ outline_parser.py # Input parsing
β βββ content_generator.py # LLM content expansion
β βββ image_generator.py # DALL-E / placeholder
β βββ slide_builder.py # PPTX assembly (6 themes)
β βββ exporter.py # Markdown / HTML export
βββ frontend/
β βββ pages/index.tsx # Main app (3 tabs)
β βββ components/ # 6 React components
βββ examples/ # Sample inputs & API examples
βββ docs/ # Architecture, contributing, dev guide
βββ Dockerfile
βββ docker-compose.yml
π See docs/ARCHITECTURE.md for detailed design
# Optional β you can configure everything from the Settings tab in the UI instead
OPENAI_API_KEY=your_key_here # Optional (mock mode without it)
OPENAI_MODEL=gpt-4o-mini # Or any supported model
USE_DALLE=false # Enable DALL-E images
HOST=0.0.0.0
PORT=8000π‘ Tip: Skip the
.envfile entirely β just go to the Settings tab in the web UI to configure your provider, API key, and model. Supports OpenAI, Anthropic, Groq, and Ollama.
NEXT_PUBLIC_API_URL=http://localhost:8000# Run tests
cd backend && pytest
# Format code
black .
# CLI help
python cli.py --helpπ See docs/DEVELOPMENT.md for adding themes, templates, and export formats.
- Google Slides API integration
- Batch processing for multiple decks
- Custom template marketplace
- Real-time collaboration
- Notion/Docs integration
- Ollama / local LLM support
- Drag-and-drop slide reordering
- Custom branding (logo, colors)
| Issue | Solution |
|---|---|
| No API key | Works in mock mode β no key needed. Or use Ollama for free local inference |
| Quota exceeded | Add credits at platform.openai.com |
| Module not found | Run pip install -r requirements.txt |
| PDF export fails | Install LibreOffice: brew install libreoffice |
| Port in use | Change PORT in .env or use --port flag |
π See docs/OPENAI_QUOTA_FIX.md for quota help.
Contributions welcome! See docs/CONTRIBUTING.md.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License β see LICENSE.
If this project helped you, please:
- β Star this repository β it really helps!
- π΄ Fork it and build something cool
- π Report bugs or suggest features
- π Contribute code or docs
- π’ Share with friends and colleagues
Questions? Open an issue.
Built with β€οΈ using AI and modern web technologies
Made by @Abelo9996