🙏 Fork Notice: This project is based on hugohe3/ppt-master. Enhanced with Jimeng (即梦) self-hosted image generation support — deploy jimeng-api to generate images via your own Jimeng instance.
English | 中文
Live Demo · About Hugo He · Examples · FAQ · Contact
Official channels — this project is published only on GitHub (primary) and AtomGit (auto-synced mirror). Redistributions on any other platform are unofficial and not maintained by the author. Licensed under MIT — attribution required.
Drop in a PDF, DOCX, URL, or Markdown — get back a natively editable PowerPoint with real shapes, real text boxes, and real charts. Not images. Click anything and edit it.
There's no shortage of AI presentation tools — what's missing is one where the output is actually usable as a real PowerPoint file. I build presentations every day, but most tools export images or web screenshots: they look nice but you can't edit anything. Others produce bare-bones text boxes and bullet lists. And they all want a monthly subscription, upload your files to their servers, and lock you into their platform.
PPT Master is different:
- Real PowerPoint — if a file can't be opened and edited in PowerPoint, it shouldn't be called a PPT. Every element PPT Master outputs is directly clickable and editable
- Transparent, predictable cost — the tool is free and open source; the only cost is your own AI editor, and you know exactly what you're paying. As low as $0.08/deck with VS Code Copilot
- Data stays local — your files shouldn't have to be uploaded to someone else's server just to make a presentation. Apart from AI model communication, the entire pipeline runs on your machine
- No platform lock-in — your workflow shouldn't be held hostage by any single company. Works with Claude Code, Cursor, VS Code Copilot, and more; supports Claude, GPT, Gemini, Kimi, and other models
See live examples → · examples/ — 15 projects, 229 pages
I'm a finance professional (CPA · CPV · Consulting Engineer (Investment)) who got tired of spending hours on presentations that could be automated. So I built this.
PPT Master started from a simple frustration: existing AI slide tools export images, not editable shapes. As someone who reviews and edits hundreds of slides in investment and consulting work, that was unacceptable. I wanted real DrawingML — click on any element and change it, just like you built it by hand.
This project is my attempt to bridge the gap between domain expertise and product engineering — turning a complex professional pain point into an open-source tool that anyone can use.
🌐 Personal website · 📧 heyug3@gmail.com · 🐙 @hugohe3
You only need Python. Everything else is installed via pip install -r requirements.txt.
| Dependency | Required? | What it does |
|---|---|---|
| Python 3.10+ | ✅ Yes | Core runtime — the only thing you actually need to install |
TL;DR — Install Python, run
pip install -r requirements.txt, and you're ready to generate presentations.
Windows — see the dedicated step-by-step guide ⚠️
Windows requires a few extra steps (PATH setup, execution policy, etc.). We wrote a step-by-step guide specifically for Windows users:
📖 Windows Installation Guide — from zero to a working presentation in 10 minutes.
Quick version: download Python from python.org → check "Add to PATH" during install → pip install -r requirements.txt → done.
macOS / Linux — install and go
# macOS
brew install python
pip install -r requirements.txt
# Ubuntu / Debian
sudo apt install python3 python3-pip
pip install -r requirements.txtEdge-case fallbacks — 99% of users don't need these
Two external tools exist as fallbacks for edge cases. Most users will never need them — install only if you hit one of the specific scenarios below.
| Fallback | Install only if… |
|---|---|
| Node.js 18+ | You need to import WeChat Official Account articles and curl_cffi (part of requirements.txt) has no prebuilt wheel for your Python + OS + CPU combination. In normal setups web_to_md.py handles WeChat directly through curl_cffi. |
| Pandoc | You need to convert legacy formats: .doc, .odt, .rtf, .tex, .rst, .org, or .typ. .docx, .html, .epub, .ipynb are handled natively by Python — no pandoc required. |
# macOS (only if the above conditions apply)
brew install node
brew install pandoc
# Ubuntu / Debian
sudo apt install nodejs npm
sudo apt install pandoc| Tool | Rating | Notes |
|---|---|---|
| Claude Code | ⭐⭐⭐ | Best results — native Opus, largest context |
| Cursor / VS Code + Copilot | ⭐⭐ | Good alternatives |
| Codebuddy IDE | ⭐⭐ | Best for Chinese models (Kimi 2.5, MiniMax 2.7) |
Option A — Download ZIP (no Git required): click Code → Download ZIP on the GitHub page, then unzip.
Option B — Git clone (requires Git installed):
git clone https://github.com/hugohe3/ppt-master.git
cd ppt-masterThen install dependencies:
pip install -r requirements.txtTo update later (Option B only): python3 skills/ppt-master/scripts/update_repo.py
Provide source materials (recommended): Place your PDF, DOCX, images, or other files in the projects/ directory, then tell the AI chat panel which files to use. The quickest way to get the path: right-click the file in your file manager or IDE sidebar → Copy Path (or Copy Relative Path) and paste it directly into the chat.
You: Please create a PPT from projects/q3-report/sources/report.pdf
Paste content directly: You can also paste text content straight into the chat window and the AI will generate a PPT from it.
You: Please turn the following into a PPT: [paste your content here...]
Either way, the AI will first confirm the design spec:
AI: Sure. Let's confirm the design spec:
[Template] B) Free design
[Format] PPT 16:9
[Pages] 8-10 pages
...
The AI handles everything — content analysis, visual design, SVG generation, and PPTX export.
Output: Two timestamped files are saved to
exports/— a native-shapes.pptx(directly editable) and an_svg.pptxsnapshot for visual reference. Requires Office 2016+.
AI lost context? Ask it to read
skills/ppt-master/SKILL.md.
Something went wrong? Check the FAQ — it covers model selection, layout issues, export problems, and more. Continuously updated from real user reports.
The image_gen.py tool supports multiple providers, but the recommended set is intentionally kept small.
- Core recommended:
gemini,openai,qwen,zhipu,volcengine,jimeng - Extended:
stability,bfl(FLUX),ideogram - Experimental:
siliconflow,fal,replicate
To inspect the current support tiers in the CLI:
cp .env.example .env # then edit with your API keyIMAGE_BACKEND=gemini # required — must be set explicitly
GEMINI_API_KEY=your-api-key
GEMINI_MODEL=gemini-3.1-flash-image-previewSupported backends: gemini · openai · qwen · zhipu · volcengine · jimeng · stability · bfl · ideogram · siliconflow · fal · replicate
Run python3 skills/ppt-master/scripts/image_gen.py --list-backends to see tiers. Environment variables override .env. Use provider-specific keys (GEMINI_API_KEY, OPENAI_API_KEY, etc.) — global IMAGE_API_KEY is not supported.
export IMAGE_BACKEND=gemini
export GEMINI_API_KEY=your-api-key
export GEMINI_MODEL=gemini-3.1-flash-image-preview
python3 skills/ppt-master/scripts/image_gen.py "abstract tech background"This is useful for CI, containers, secret managers, and one-off local runs.
Important:
- The script reads the current process environment, not your shell startup files in the abstract
- If a tool launches a non-interactive shell and your
~/.bashrcor~/.zshrcis not sourced, those exports may not be visible - In that situation,
.envis usually the more stable local choice
💡 Provider-specific config: Put credentials and overrides in provider namespaces such as
GEMINI_API_KEY,GEMINI_MODEL,GEMINI_BASE_URL,OPENAI_API_KEY,QWEN_MODEL,ZHIPU_MODEL,VOLCENGINE_API_KEY, andREPLICATE_API_TOKEN.
💡 No global image credentials:
IMAGE_API_KEY,IMAGE_MODEL, andIMAGE_BASE_URLare intentionally not supported. Use provider-specific variables only.
💡 Multi-provider setup: You can keep multiple providers in one
.envor environment, butIMAGE_BACKENDmust explicitly select the active one.
Example:
IMAGE_BACKEND=zhipu
GEMINI_API_KEY=your-gemini-key
GEMINI_MODEL=gemini-3.1-flash-image-preview
ZHIPU_API_KEY=your-zhipu-key
ZHIPU_MODEL=glm-imageSwitch providers by changing IMAGE_BACKEND only.
💡 Recommendation: Prefer the core backends unless you have a clear reason to use an extended or experimental provider.
⚠️ Prerequisite: You must deploy jimeng-api first. This is a self-hosted service that wraps the Jimeng (即梦) image generation API.Deployment steps (Docker recommended):
git clone https://github.com/iptag/jimeng-api.git cd jimeng-api # Configure with your Jimeng credentials, then: docker-compose up -dThe service runs at
http://localhost:8009by default.
Configuration example (after deployment):
IMAGE_BACKEND=jimeng
JIMENG_BASE_URL=http://192.168.10.50:8009
JIMENG_TOKEN=your-session-token # Optional; omit if no auth required
JIMENG_MODEL=jimeng-4.5💡 AI Image Generation Tip: For best quality, generate images in Gemini and select Download full size. Remove the watermark with gemini-watermark-remover or this project's
skills/ppt-master/scripts/gemini_watermark_remover.py.
| Document | Description | |
|---|---|---|
| 🆚 | Why PPT Master | How it compares to Gamma, Copilot, and other AI tools |
| 🪟 | Windows Installation | Step-by-step setup guide for Windows users |
| 📖 | SKILL.md | Core workflow and rules |
| 📐 | Canvas Formats | PPT 16:9, Xiaohongshu, WeChat, and 10+ formats |
| 🛠️ | Scripts & Tools | All scripts and commands |
| 💼 | Examples | 15 projects, 229 pages |
| 🏗️ | Technical Design | Architecture, design philosophy, why SVG |
| ❓ | FAQ | Model selection, cost, layout troubleshooting, custom templates |
See CONTRIBUTING.md for how to get involved.
SVG Repo · Tabler Icons · Robin Williams (CRAP principles) · McKinsey, BCG, Bain
Looking to collaborate, integrate PPT Master into your workflow, or just have questions?
- 💬 Questions & sharing — GitHub Discussions
- 🐛 Bug reports & feature requests — GitHub Issues
- 📧 Business & consulting inquiries — heyug3@gmail.com
- 🌐 Learn more about the author — www.hehugo.com
If this project helps you, please give it a ⭐!
This project is based on hugohe3/ppt-master. If you find it helpful, please consider sponsoring the original author.
This project is supported by:
If this project saves you time, consider buying me a coffee!
PayPal
Alipay / 支付宝
Made with ❤️ by Hugo He






