English | 简体中文
Turn a brief, a set of files, or a URL into a reviewable WebDeck, editable diagrams, and exportable presentation assets. PresentationAgent combines conversational creation, evidence-first planning, WebDeck page orchestration, a diagram-first draw.io workspace, asset management, and gallery publishing in a single locally deployable platform.
Most AI presentation tools jump directly from prompt to slides. PresentationAgent is designed for research-heavy deck production: ingest sources, build an evidence-first brief, orchestrate WebDeck pages with retries and review, edit diagrams in draw.io, then save, publish, or export the result.
Research-first · WebDeck Runtime · Diagram-first · Gallery & Remix · Packages & Skills
PresentationAgent is built more like a production workspace for decks:
- Research before rendering: attachments, URLs, and context flow through a briefing / evidence stage before planning and page generation.
- Not a single-thread slide generator: the WebDeck runtime respects page dependencies, supports lane-level logs, retries failed pages, and performs deck-level review.
- Diagrams are first-class: draw.io runs as a diagram-first workflow with autosave, validation, and restore around a persistent diagram session.
- Artifacts have a lifecycle: upload files, save outputs as assets, publish to the gallery, fork / remix, and extend the platform with packages and skills.
- Deploy locally: frontend and backend run on your machine; data stays in local SQLite and the filesystem by default, while external calls are limited to the model and APIs you configure.
| Capability | PresentationAgent | Template fillers | One-shot chat export |
|---|---|---|---|
| Research-first planning from source material | ✅ | ❌ | |
| Page-level concurrent generation and retry | ✅ | ❌ | ❌ |
| WebDeck preview and ongoing editing | ✅ | ❌ | |
| Diagram-first draw.io workflow | ✅ | ❌ | ❌ |
| Assets / gallery / fork / remix | ✅ | ❌ | ❌ |
| Package / skill extensibility | ✅ | ❌ | ❌ |
AI Development Status and Trend Analysis.pptx
New! Walk through a complete workflow step-by-step.
- Startup Pitch Deck — Create a 10-slide Series A pitch deck from a company brief. Includes source material, recommended prompt, step-by-step workflow, and expected output reference.
- A workspace, not a one-shot export: keep refining the brief, pages, diagrams, assets, and exports instead of accepting a single generated file.
- Evidence-first generation: documents, URLs, and attachments become planning context before pages are rendered.
- Observable WebDeck runtime: page dependencies, lane logs, retries, review, and publish steps are visible.
- Diagram-first editing: draw.io is integrated as an editing workflow, not an afterthought.
- Local-first by default: SQLite and filesystem persistence keep the product easy to run and inspect.
- Conversational WebDeck creation: start from a brief, audience, page count, and style constraints, generate a structured brief / manifest first, then move into page generation.
- Evidence-first orchestration: PDFs, DOCX, PPTX, Markdown, images, and URLs are parsed into evidence and context layers before generation, reducing “make it up from the prompt” behavior.
- Dependency-aware parallel generation: independent pages can run concurrently, with the current scheduler defaulting to 20 as the max page concurrency; dependent pages wait when they should, and failed pages or failed lanes can be retried directly.
- Mandatory review and observability: page-level and deck-level review are part of the workflow, with visible TOC, lane status, failure reasons, and retry feedback instead of a black-box final file.
- WebDeck editing and rollback: browse the deck via TOC, inspect the current page, save manual edits, inspect page versions, roll back, and republish the full deck.
- Diagram-first draw.io workspace: create, edit, autosave, validate, and restore diagrams while keeping AI edits anchored to the latest diagram session, not stale chat output.
- Multi-artifact workspace: the same workspace can host
ppt,webdeck,drawio,document,code, andwebpageartifacts. - Assets, gallery, and extension surface: outputs can be saved as assets, published to the gallery, forked or remixed by others, and extended through the package registry or remote package import.
- Upload PDFs, DOCX, PPTX, Markdown, images, or paste raw text and URLs.
- Describe the audience, use case, page count, style, and key conclusions in natural language.
- Confirm the generated brief / outline / manifest.
- Let the WebDeck runtime generate pages in parallel and retry weak or failed pages in a targeted way.
- Refine the result manually in the WebDeck or draw.io workspace.
- Save the result as an asset, publish it to the gallery, or export HTML / PDF / PPTX variants.
You: Build a 10-slide AI Agent architecture deck from this industry research PDF
and the two attached charts. Audience: CTOs and product leads. Style: technical launch keynote.
AI: I will first extract the evidence, prepare a WebDeck brief for your review,
then generate the deck page-by-page and return an editable workspace plus export options.
| Dependency | Required? | Purpose |
|---|---|---|
| Python 3.12+ | ✅ | Backend runtime and agent / tool services |
| Node.js 18+ | ✅ | Next.js frontend |
| npm 9+ | ✅ | Frontend dependency installation |
LLM_API_KEY |
✅ | Access to your chosen model provider |
| Playwright Chromium | Recommended | PDF and pptx-faithful export |
TL;DR: configure
.env, create a local virtual environment, runpip install -r requirements.txt, install frontend dependencies, then start backend and frontend.
git clone https://github.com/GX-Alex/presentation-ppt-agent.git
cd presentation-ppt-agent
cp .env.example .envEdit .env and set at least:
LLM_API_KEY=your-api-key
LLM_MODEL=deepseek/deepseek-chatpython3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m playwright install chromiumIf you only want to get chat, WebDeck, draw.io, and HTML preview running, you can skip
python -m playwright install chromiumfor now. PDF andpptx-faithfulexport will be unavailable until you install it.💡 Having trouble installing or running Playwright Chromium? See Playwright Troubleshooting Guide.
Windows PowerShell
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m playwright install chromiumcd frontend
npm install
cd ..source .venv/bin/activate
cd backend
python main.pyThe default local backend address is http://localhost:8002.
Open a second terminal:
cd frontend
npm run devOpen:
- Frontend:
http://localhost:3000 - Backend health:
http://localhost:8002/api/health
If you move the backend to another port, start the frontend with an explicit BACKEND_URL:
cd frontend
BACKEND_URL=http://localhost:8012 npm run dev| Environment variable | Required? | Default | Purpose |
|---|---|---|---|
LLM_API_KEY |
✅ | - | Primary model API key |
LLM_MODEL |
No | deepseek/deepseek-chat |
Default model |
DATABASE_URL |
No | Local SQLite | Database storage |
CORS_ORIGINS |
No | http://localhost:3000 |
Allowed frontend origins |
PEXELS_API_KEY |
No | - | Better image search |
TAVILY_API_KEY |
No | - | Better web research |
The primary path today is WebDeck generation + diagram-first editing + asset / gallery workflows. The repo still contains some historical PPT-only routes and compatibility APIs, but the product direction is converging on a unified web-native deck runtime.
| Layer | Stack |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind, Zustand |
| Backend | FastAPI, SQLAlchemy asyncio, aiosqlite |
| Model access | LiteLLM |
| Workflow runtime | WebSocket + REST, task-scoped agent loop, WebDeck runtime |
| Document parsing | PyMuPDF, python-docx, python-pptx, openpyxl |
| Diagram / visual layer | Draw.io, SVG, HTML-based chart lanes |
| Export | HTML, PDF, PPTX faithful, PPTX editable |
| Persistence | SQLite + local filesystem |
presentation-ppt-agent/
├── backend/
│ ├── app/api/ # files / gallery / packages / presentations / webdeck ...
│ ├── app/core/ # agent loop, LLM client, tool dispatch
│ ├── app/tools/ # parse_document, edit_diagram, web_search, retry_failed_deck_pages ...
│ ├── app/services/
│ │ ├── webdeck_runtime/ # director, planner, scheduler, reviewer, publish
│ │ ├── browser_pool.py # Playwright-backed export capability
│ │ ├── export_service.py # HTML / PDF / PPTX export
│ │ └── package_registry.py # package / workflow extension surface
│ └── main.py
├── frontend/
│ ├── src/components/chat/ # chat and streaming feedback
│ ├── src/components/webdeck/ # WebDeck preview and editing
│ ├── src/components/drawio/ # diagram workspace
│ ├── src/components/workspace/ # multi-artifact workspace shell
│ └── src/components/packages/ # package registry UI
├── docs/plans/ # implementation and evolution plans
├── .env.example
├── requirements.txt # root-level backend dependency entrypoint
├── README.md
└── README_CN.md
- Richer WebDeck hybrid editing with finer page-level control
- A stronger public gallery and collaboration layer
- More reliable export adapters and publishing flows
- Better package / skill distribution for reusable workflows
- More complete public documentation and example projects
See docs/ROADMAP.md for good-first-issue ideas and near-term project direction.
- Add GitHub topics from docs/PROMOTION.md.
- Use assets/social-preview.svg as the source artwork for the repository social preview.
- Publish the first release using CHANGELOG.md.
- Share the launch drafts in docs/PROMOTION.md.
- Use the issue templates under
.github/ISSUE_TEMPLATE/to collect bugs, feature requests, and beginner-friendly contributions.
Use it on real presentation, research, architecture, and diagram collaboration work. If it helps, give it a Star after the public launch and share issues or improvements through Issues and PRs.




