| name | slides |
| description | Turns bullet points, research, or structured content into a browser-based Reveal.js slide deck. Use when the user asks to create slides, a presentation, a deck, a slideshow, or says "present this", "turn this into slides", "make a deck", or mentions keynote, powerpoint, or reveal. |
| allowed-tools | Write, Edit, mcp__chrome-devtools__new_page, mcp__chrome-devtools__wait_for, mcp__chrome-devtools__take_screenshot |
| category | tool |
| input_types | ["git-diff","question"] |
| output_types | ["presentation","code"] |
| complexity | moderate |
| cost_profile | medium |
| maturity | beta |
| metadata_source | inferred |
Slides
Converts content from the conversation into a Reveal.js HTML slide deck, writes it to /tmp/slides.html, and opens it live in the browser.
Workflow
- Extract content structure — identify the title, sections, and key points from the conversation or user-supplied content. See TEMPLATE.md for content chunking rules.
- Plan slide types and count — assign each section a slide type: title, bullet, two-column, quote, or code. Max 6 bullets per slide; split if more. See TEMPLATE.md for slide type patterns.
- Write /tmp/slides.html — use the complete Reveal.js template with all CDN links in correct order. See TEMPLATE.md for the full template.
- Render in browser — follow
_shared/chrome-devtools-render.md to open /tmp/slides.html, wait for render, and screenshot. wait_for the title slide's main heading text. See TROUBLESHOOTING.md if slide rendering looks wrong.
- Tell user how to navigate — reply: "arrow keys to navigate, F for fullscreen".
Self-review checklist
Before delivering, verify ALL:
Golden rules
Hard rules. Never violate these.
- Never allow headings to render uppercase. Always include
.reveal h1, .reveal h2 { text-transform: none; } in custom CSS. Reveal.js default forces uppercase and it looks bad.
- Never put more than 6 bullet points on one slide. Split into two consecutive slides with a shared heading if needed (e.g. "Key Points (1/2)" and "Key Points (2/2)").
- Always load theme CSS after reveal.css. The order is: reveal.css, then theme/black.css. Reversed order silently breaks all theming.
- Always use hash: true in Reveal.initialize. This enables deep-linking to slides by index.
- Always call wait_for before take_screenshot. Wait on the title text. Screenshotting before Reveal renders produces a blank white image.
- Always use new_page for first open. Use mcp__chrome-devtools__new_page with url: file:///tmp/slides.html. Never navigate an existing page to a file:// URL.
Reference files
| File | Contents |
|---|
| TEMPLATE.md | Complete Reveal.js HTML template, all slide type patterns, content chunking rules |
| TROUBLESHOOTING.md | Failure diagnosis table: symptoms, causes, fixes |