Prepared for: Jonas Krauss · Date: 2026-08-28 Inputs: Internal capability audit [A], community practice digest [C], tool landscape survey [S]
Hermes already has a working, verified markdown-to-slide-deck
pipeline on this host: Quarto + reveal.js produces interactive HTML
decks, and a headless Chrome binary (from the Playwright cache) exports
them to multi-page PDF — no extra installs required [A §1.1–1.2]. The
broader landscape confirms that markdown-first toolchains (Marp, Slidev,
Quarto) are the dominant and fastest-growing approach among AI-agent
users, while SaaS generators like Gamma offer the quickest polished
first draft but suffer from unreliable PPTX export [C Muster 1–4, S §1].
The strongest recommendation is a two-track strategy: (1) make Quarto
reveal.js the default deck engine (already installed, already verified),
and (2) add a Gamma API integration for cases where Jonas wants a
polished AI-generated first draft with minimal effort. For editable
native .pptx deliverables, python-pptx wrapped
by the knorq-ai MCP server (with theme presets) is the only viable
route, but it requires installation and ongoing maintenance [S §6]. The
biggest gap is not tooling — it’s the absence of a dedicated Hermes
skill that codifies the deck-building workflow; closing that gap is a
2–4 hour effort with high leverage.
Everything below was verified by direct execution on this host [A].
| Capability | Tool | Status | Notes |
|---|---|---|---|
| Interactive HTML deck | Quarto v1.10.18 (revealjs format) |
✅ Verified | .qmd → deck.html (self-contained, 20 KB
per 2 slides) [A §1.1] |
| Multi-page PDF deck | Headless Chrome (Playwright cache) | ✅ Verified | chrome --headless --print-to-pdf → 3-page PDF from
reveal.js deck [A §1.2] |
| Paginated PDF (alt) | Quarto typst-pdf (Typst v0.15.1) |
✅ Verified | 11206-byte PDF produced [A §1.3] |
| Basic PPTX from markdown | Pandoc v3.1.3 (pptx format) |
✅ Verified | 40 zip entries, valid slides — but no custom slide master/theming [A §1.4] |
| Architecture/flow diagrams | D2 v0.7.1 | ✅ Verified | 13538-byte SVG output [A §1.5] |
| Mermaid diagrams (in Quarto) | Quarto bundled renderer | ✅ Verified | Zero-config, renders inside .qmd [A §1.5] |
| Mermaid CLI standalone | mmdc v11.16.0 |
⚠️ Workaround | Needs --no-sandbox +
PUPPETEER_EXECUTABLE_PATH config [A §2.2] |
| Cover/illustration images | image_generate (FAL FLUX 2 Klein 9B) |
✅ Available | Good for hero visuals; not for precise data charts [A §1.7] |
| Image composition | PIL/Pillow 12.3.0 (hermes venv) | ✅ Verified | Crop/resize/overlay PNGs [A §1.8] |
| Brand assets | Documented palette + Raleway font | ✅ Available | Dodger Blue #0496FF, Indigo #300A6E, Crimson Carrot #FB5012, Platinum #EBEBEB [A §1.9] |
dist/*.pdf [A §1.6]@react-pdf/renderer + React + tsx → programmatic branded
PDFs [A §1.6]| # | Gap | Impact | Mitigation |
|---|---|---|---|
| G1 | No python-pptx |
Can’t build editable .pptx programmatically |
uv pip install python-pptx (uv 0.12.5 present) — or use
Pandoc PPTX for basic decks [A §3] |
| G2 | No reportlab |
No programmatic vector PDF from Python | Quarto typst-pdf / Chrome print-to-pdf already cover this [A §3] |
| G3 | No matplotlib in Python |
No programmatic data charts | D2 + Quarto mermaid for diagrams; image_generate for
visuals; install matplotlib if needed [A §3] |
| G4 | weasyprint stub broken |
HTML→PDF via weasyprint unavailable | Use headless Chrome print-to-pdf instead [A §3] |
| G5 | mmdc sandbox issue |
Mermaid CLI standalone friction | Use Quarto’s bundled mermaid renderer (zero config) [A §3] |
| G6 | browser_exec can’t launch headless |
Can’t use browser tool for rendering | Use raw Chrome binary directly [A §3] |
| G7 | No TeX distribution | Quarto Beamer (LaTeX PDF slides) fails | Use reveal.js → PDF or typst-pdf instead [A §3] |
| G8 | No dedicated slide-deck skill | No opinionated “make me a deck” procedure encoded | Author a skill — highest-leverage gap to close [A §3] |
| G9 | No pandas in venv |
Data-table-heavy decks less convenient | Use Markdown tables in Quarto, or install pandas [A §3] |
Research identified six real-world patterns for building slide decks with AI agents, sourced from 34 references with 12 verbatim-evidence citations [C].
The agent interviews the user (goal, audience, key points), generates
a .md with Marp frontmatter, and exports via
marp-cli to HTML, PDF, and PPTX. The presentation is a
textfile — versionable, diffable, AI-editable. A 15-slide deck converts
in ~2 seconds. Community skills like
robonuggets/marp-slides (299★) bundle 22 curated example
decks + SVG charts so the agent learns composition, not just building
blocks.
--pptx-editable flag uses LibreOffice but
produces narrow textboxes needing python-pptx repair [C Muster 1]“Treat a deck like code”: an outline.json is the source,
a renderer (pptxgenjs or python-pptx) builds the .pptx.
Design is coded as constraints (variant grammar, preset system for
palette/typography/density, QA loop). Skills like
siril9/presentation-skill and
mpuig/agent-slides (160+ tests) implement this.
The agent builds a self-contained HTML file with Reveal.js, Slidev,
or custom templates. “Master slides” are components; corporate identity
is defined via rules + assets in AGENTS.md. Community skills include
yugasun/slides-skills (32 templates, 4 themes) and
broeker/reveal-deck.
.pptx [C Muster 3]A POST to the Gamma API (/v1.0/generations)
with text input → polished, brandable deck in ~30–60s, exportable as PDF
or PPTX. OAuth for MCP server integration. Fastest first draft
available.
Hermes ships a bundled powerpoint skill with 5 helper
scripts: create deck from JSON spec, read structured content, edit
in-place, build from brand template, render slides to PNGs (via
LibreOffice + pdftoppm). Optional finance/pptx-author for
pitch decks where every number must trace to a source workbook.
vision_analyze,
JSON-spec-based (agent-friendly) [C Muster 5]A .qmd source renders to RevealJS HTML or PPTX. Agent
skills like alfredo-hs/quarto-talks encode editorial rules
(intellectual spine first, overload → delete not shrink, ~23-slide
limit, no invented quotes).
| Option | Category | Visual quality | Full automation | Cost | Native PPTX | Maintenance |
|---|---|---|---|---|---|---|
| Gamma (API/MCP) | AI SaaS | High (best AI floor+ceiling) | Excellent — REST GA + hosted MCP | Paid, Pro+ ($18–90/mo) | No (export may lose fidelity) | Low (hosted) |
| Beautiful.ai | AI SaaS | High (highest floor) | Weak–moderate (API early-access) | Paid, $12–45/mo | Yes (clean export) | Low, but no GA API |
| Tome | AI SaaS | — (dead) | — (dead) | — (dead) | — (dead) | Dead — shut down 30 Apr 2025 |
| Presentations.AI | AI SaaS | Moderate–high | Good — REST + Python client | Free tier / Pro $20 / Gold $100 | Yes (editable) | Low (hosted) |
| Slidev | Code-first | High (themes/components) | Excellent — CLI + CI | MIT, free | No (PPTX = images) | Medium (Playwright) |
| Marp CLI | Code-first | Good–high (CSS themes) | Excellent — single CLI | MIT, free | Experimental (LibreOffice) | Low–medium (browser) |
| reveal.js + DeckTape | Code-first | Very high | Good — CLI/Docker | MIT, free | No (PDF/HTML only) | Medium (framework + exporter) |
| Quarto (revealjs/pptx/beamer) | Code-first | High | Excellent — one CLI, 3 formats | Open source, free | Yes (native pptx) | Medium (per-format toolchain) |
| LaTeX Beamer | Code-first | High (academic); low for marketing | Good — scriptable | Free | No (PDF only) | High (TeX Live) |
| python-pptx | Code-first | Low by default | Good — needs layout code | MIT, free | Yes (native, editable) | Medium–high (positioning code) |
| knorq-ai pptx-mcp-server | Agent/MCP | Medium–high (theme presets) | Good — 37 tools + validation | MIT, free | Yes | Medium (local + LibreOffice) |
| SlideForge MCP | Agent/MCP | Medium | Good | MIT, free | Yes | Medium (local) |
| Other MCP servers | Agent/MCP | Low–medium | Good | MIT, free | Yes | Low–high (varies) |
Sources: [S §5] with citations from developers.gamma.app, sli.dev, github.com/marp-team/marp-cli, quarto.org, python-pptx.readthedocs.io, github.com/knorq-ai/pptx-mcp-server, github.com/smartdatabrokers/slideforge-mcp
1. Gamma (REST API + hosted MCP) — Best for AI-native
stunning decks with minimal maintenance. The only option that
is simultaneously top-of-class for AI visual design, has a GA REST API
(Nov 2025) and hosted MCP server, and requires no local toolchain.
Credit-based pricing on a Pro plan (~$18/mo) is predictable. Caveat:
output is web-native; PPTX/PDF export can lose fidelity — acceptable if
the deliverable is a link or PDF, not an editable .pptx. S §6
2. Slidev / Marp / Quarto — Best for deterministic, local, license-clean decks. Markdown-in + CLI export to PDF/PPTX/PNG in CI is the purest autonomous pipeline, fully MIT/free. Quarto is already installed on this host and verified. Choose Marp for the lightest dependency footprint; choose Slidev for the highest visual ceiling via themes/components. Note: PPTX export renders slides as images (not editable) in all three. S §6, github.com/marp-team/marp-cli, quarto.org
3. python-pptx (wrapped by knorq-ai or SlideForge MCP) — Best
when the deliverable MUST be native editable
.pptx. The only route with true PowerPoint-native
output. Raw python-pptx is “not pretty by default” — wrap it with an MCP
server that adds theme presets (McKinsey/Deloitte/Neutral/IR) and layout
validation. Requires installation + LibreOffice for rendering. S §6, python-pptx docs
Why not the others: Beautiful.ai has the best visual floor but its API is early-access-only — not safe for unattended autonomous generation S §2. Tome is defunct — a cautionary tale about AI-SaaS availability risk S §2. Beamer requires a full TeX install (absent on this host) and is weaker for marketing-grade output [A §2.1, S §3].
Track 1 (default): Quarto reveal.js — already working, zero install needed
This is the path of least resistance. The pipeline is verified end-to-end on this host:
.qmd file (Markdown + optional
mermaid code blocks)quarto render deck.qmd → deck.html
(interactive reveal.js deck)image_generate (FAL) for
cover/illustrations + PIL for compositionpython3 -m http.server or the existing
whitepaper/westbridge deploy patternThis covers 90% of deck requests: interactive HTML for presenting, PDF for sharing. No new dependencies, no API costs, no external service risk.
Track 2 (optional): Gamma API for rapid polished first drafts
When Jonas wants a visually stunning first draft in 60 seconds without touching markup:
POST /v1.0/generations) or hosted MCP
server for one-call deck generationWhen native editable .pptx is
required:
python-pptx via
uv pip install python-pptx (quick, one dependency)powerpoint skill (already
shipped, 5 helper scripts)The single highest-leverage action is authoring a Hermes skill that codifies the deck-building workflow. This closes the gap between “the tools exist” and “the agent knows the opinionated best path.” The skill should encode:
.qmd template with brand palette + Raleway
pre-configuredimage_generate → PIL composition workflow for cover
slidesquarto-talks (intellectual
spine first, ~23-slide limit, no invented quotes)python-pptx path for editable PPTX when
requiredEffort estimate:
| Action | Effort | Dependency |
|---|---|---|
Author slide-deck skill (SKILL.md + template .qmd +
helper script) |
2–4 h | None — all tools already installed |
Install python-pptx |
5 min | uv pip install python-pptx |
| Set up Gamma API integration | 30 min | Gamma Pro account + API key in 1Password |
| Install knorq-ai MCP server (optional, for themed PPTX) | 1–2 h | Node.js + LibreOffice for rendering |
| Install matplotlib (optional, for data charts) | 5 min | uv pip install matplotlib |
Author the slide-deck skill —
template .qmd with brand styling, Chrome print-to-pdf
helper, editorial rules. This is the #1 priority; it makes the existing
pipeline discoverable and repeatable. (2–4 h)
Install python-pptx — one command
(uv pip install python-pptx), unlocks the bundled
powerpoint skill for editable PPTX deliverables. (5
min)
Set up Gamma API as a fallback — register for Gamma Pro, store API key in 1Password, add a skill section for rapid AI-generated drafts. Useful when Jonas wants a polished starting point fast. (30 min)
Validate with a real deck — build a 10-slide deck on a real topic (e.g., the Westbridge POC summary) using the new skill, export to both HTML and PDF, and verify visual quality. This tests the full pipeline end-to-end. (1 h)
Consider matplotlib installation — only if data-chart-heavy decks become a regular need. D2 + mermaid cover most diagram cases today. (5 min, defer until needed)
slide-deck-capabilities-inventory.md (task
t_d05d3d3b)digest.md (task t_e94393f7)slide-deck-tools-survey.md (task
t_f24dcb63)