HTML Slides
A skill for creating stunning, animation-rich HTML presentations — from scratch, by converting PowerPoint files, or by converting any existing HTML. Works with AI coding agents (Claude Code, Gemini CLI, GitHub Copilot, OpenAI Codex).
What This Does
HTML Slides helps non-designers create beautiful web presentations without knowing CSS or JavaScript. It offers two modes:
Pro (Recommended)
Interactive components (flip cards, charts, tables, code blocks, and more) with deterministic output. This is the default when no mode is specified.
Vibe
Multiple creative themes with AI-driven layout. Pick a mood, see previews, get a polished deck.
Key Features
Zero Dependencies
Single HTML files with inline CSS/JS. No build step, no node_modules.
Agent Skills Standard
One install works across Claude Code, Gemini CLI, GitHub Copilot, and OpenAI Codex.
Visual Style Discovery
Can't articulate design preferences? Pick from generated visual previews.
Rich Component Library
Flip cards, expandable cards, code blocks, architecture flows, stats cards, charts (via Chart.js), tables, timelines, and more.
PPT & HTML Conversion
Convert existing PowerPoint files to web (preserving all images and content) or convert any HTML file (reveal.js, Marp, Google Slides exports, articles) into HTML Slides format.
Anti-AI-Slop
Curated distinctive styles that avoid generic AI aesthetics.
Installation
Multiple ways to get HTML Slides set up with your AI coding agent.
Quick Install Recommended
This one command clones the repo, detects your agents, and sets up everything. Run the same command again to update.
curl -sSL https://raw.githubusercontent.com/bluedusk/html-slides/main/remote-install.sh | bash
Install from Cloned Repo
git clone https://github.com/bluedusk/html-slides.git cd html-slides ./install.sh
Manual Install (per agent)
Claude Code Recommended
Via plugin marketplace:
claude plugin marketplace add bluedusk/html-slides claude plugin install html-slides
Or via skill symlink:
# User-level ln -s /path/to/html-slides ~/.claude/skills/html-slides # Project-level ln -s /path/to/html-slides .claude/skills/html-slides
Gemini CLI
ln -s /path/to/html-slides ~/.gemini/skills/html-slides
GitHub Copilot
ln -s /path/to/html-slides .github/skills/html-slides
OpenAI Codex
ln -s /path/to/html-slides ~/.codex/skills/html-slides
Updating
Run the same quick install command to update to the latest version:
curl -sSL https://raw.githubusercontent.com/bluedusk/html-slides/main/remote-install.sh | bash
Generating Slides
Open your AI coding agent and describe the presentation you want. The html-slides skill handles layout, styling, and interactivity.
Prompting from text
The simplest way — just describe what you need in plain English:
/html-slides Create a 10-slide pitch deck for a developer tools startup. Include stats cards for key metrics, a timeline of milestones, and a comparison table vs competitors.
Be specific about what you want:
- Number of slides — “Create a 10-slide presentation” gives better results than “create a presentation”
- Component types — “Include flip cards, a timeline, and stats cards” tells the skill exactly what to build
- Your audience — “For a technical audience” vs “for executives” changes the tone
- Theme — “Use the Excalidraw Light theme” or “Use the Binary Architect theme”
Prompting from a file
You can point the skill at an existing file — a text document, markdown file, or even a PowerPoint:
/html-slides Turn the content in notes.md into a presentation. Use flip cards for the key concepts and a timeline for the roadmap.
/html-slides Convert my presentation.pptx to a web slideshow.
/html-slides Convert my-page.html to a presentation.
Tip: The skill auto-detects file formats — PowerPoint, reveal.js, Marp, Google Slides exports, articles, and generic HTML are all supported.
Creative mode (Vibe)
For non-technical presentations, use vibe mode. The skill will ask about your content, ask what feeling you want, then show 3 visual style previews to choose from:
/html-slides Create a vibe presentation about our company culture. I want it to feel warm and inviting.
What you get
Every generated presentation produces two files:
my-deck.html ← the presentation (self-contained, open in any browser) my-deck.notes.json ← speaker notes (for the HTMLSlides presenter app)
Double-click the .html file to open it in your browser. Arrow keys, Space, Home, and End navigate between slides.
Presenting with HTMLSlides
The HTMLSlides desktop app gives your HTML presentations a professional presenter experience — dual-display, speaker notes, timer, and laser pointer, just like PowerPoint or Keynote.
Open your presentation
Launch HTMLSlides and open your .html file. You can also drag and drop files onto the app, or set up watched folders to auto-discover new presentations.
Dual-display presenter mode
Click Present to start presenting. The app creates two synchronized views:
Presenter view (your laptop)
Shows the current slide, next slide preview, your speaker notes, elapsed timer, and navigation controls. Only you see this.
Audience view (browser tab)
A clean, full-screen view of just the slides. Opens in a browser tab — share this on Zoom, Teams, or Meet.
Both views stay perfectly in sync via a local WebSocket connection. Navigate from the presenter dashboard and the audience view updates instantly.
Screen sharing workflow
Click Present in HTMLSlides
The presenter dashboard appears and a browser tab opens with the audience view.
Share the browser tab
In Zoom/Teams/Meet, share the audience view browser tab — not the app window.
Present from the dashboard
Use keyboard shortcuts or buttons to navigate. Your audience sees smooth transitions, you see your notes and timer.
Presenter features
| Feature | Description |
|---|---|
| Speaker notes | Per-slide notes loaded from .notes.json. Auto-saved locally. |
| Timer | MM:SS elapsed time, always visible in the presenter dashboard. |
| Laser pointer | Press L to toggle. Your cursor position syncs to the audience view in real-time. |
| Thumbnails | Slide thumbnail strip for quick navigation. See current + next slide at a glance. |
| Keyboard nav | → Space next, ← previous, Home / End for first/last. |
No internet required. Everything runs locally on your machine. The WebSocket connection is between your app and your browser — no cloud, no server, no latency.
Two Modes
HTML Slides offers two distinct presentation modes to match your needs.
Pro Mode Default
Structured interactive components with deterministic output. The AI maps your content to the right component type automatically. Multiple themes available — same components, different visual styles.
Create a presentation about [topic]
Or specify a theme:
Create a presentation about [topic] using the Excalidraw Light theme
Available Themes
| Theme | Vibe |
|---|---|
| Obsidian (default) | Dark background, blue/green/orange accents |
| Excalidraw Light | Hand-drawn, sketchy, whiteboard on white |
| Excalidraw Dark | Hand-drawn, sketchy, whiteboard on dark |
| Editorial Light | Luminous, editorial, tech-forward minimalism |
| Binary Architect | Hacker-elite, sharp corners, neon on void-black |
| Component | Description |
|---|---|
| Title Slide | Opening with hero text and rainbow gradient |
| Statement | Bold centered text with glow |
| Flip Cards | 2x2 grid, click to reveal back side |
| VS / Comparison | Side-by-side with visual contrast |
| Architecture Flow | Connected boxes showing a pipeline |
| Code Block | Syntax-highlighted terminal window |
| Auth Flip Compare | Before/after with red/green flip cards |
| Stats Cards | Large animated numbers |
| Expandable Cards | Click to reveal hidden details |
| Status Timeline | Vertical list with colored status dots |
| Table | Styled data table with hover highlights |
| Chart | 8 chart types via Chart.js (bar, line, pie, doughnut, radar, polar, scatter, bubble) |
| CTA Box | Call-to-action with resource links |
Vibe Mode — Creative Themes
AI interprets content freely with distinctive visual styles. The skill will ask about content, feeling, generate 3 style previews, then create the full presentation.
Create a vibe presentation about [topic]
| Theme | Vibe |
|---|---|
| Bold Signal | High-contrast, decisive |
| Electric Studio | Vibrant, energetic |
| Creative Voltage | Dynamic, creative |
| Dark Botanical | Organic, elegant |
| Notebook Tabs | Clean, organized |
| Pastel Geometry | Soft, geometric |
| Split Pastel | Split-color, balanced |
| Vintage Editorial | Magazine-style, refined |
| Neon Cyber | Cyberpunk, futuristic |
| Terminal Green | Hacker, retro-tech |
| Swiss Modern | Minimal, precise |
| Paper & Ink | Hand-drawn, artisanal |
Convert a PowerPoint
Convert existing PowerPoint files to web, preserving all images and content.
Convert my presentation.pptx to a web slideshow
Convert Any HTML
Convert any HTML file into HTML Slides format.
Convert my-page.html to a presentation
Supported HTML formats
reveal.js, Marp, impress.js, Slidev, Google Slides exports, articles, and generic HTML.
Components
Pro mode provides a rich library of interactive components. You can request them by name or describe your content and let the skill pick the right one.
| Component | Description |
|---|---|
| Title Slide | Opening slide with headline and subtitle |
| Statement | Bold single-statement emphasis |
| Flip Cards | Interactive cards that flip to reveal detail |
| VS / Comparison | Side-by-side feature comparison |
| Architecture Flow | Multi-step process visualization |
| Code Block | Syntax-highlighted code examples |
| Auth Flip Compare | Before/after auth flow comparison |
| Stats Cards | Key numbers and metrics with labels |
| Expandable Cards | Click to expand for more detail |
| Status Timeline | Roadmap and milestone visualization |
| Table | Structured data in rows and columns |
| Chart | 8 types via Chart.js (bar, line, pie, doughnut, radar, polar area, scatter, bubble) |
| CTA Box | Call-to-action closing slide |
You don't need to memorize component names
Just describe what you want: "Compare X vs Y" triggers Comparison Cards, "Show 3 key numbers" triggers Stats Cards, and "Walk through a 3-step process" triggers Architecture Flow.
Conversion
HTML Slides can convert existing presentations and documents into its format.
PowerPoint Conversion
Convert existing .pptx files to web presentations, preserving all images and content.
Convert my presentation.pptx to a web slideshow
HTML Conversion
Convert any HTML file into HTML Slides format. Supports a wide range of source formats.
Convert my-page.html to a presentation
| Source Format | Description |
|---|---|
| reveal.js | HTML presentation framework |
| Marp | Markdown-based slide decks |
| impress.js | 3D CSS presentation framework |
| Slidev | Developer-focused slide framework |
| Google Slides | Exported HTML from Google Slides |
| Articles | Long-form HTML articles and blog posts |
| Generic HTML | Any other HTML page or document |
Output Format
Every generated presentation produces two files in your working directory.
my-deck.html ← the presentation (self-contained) my-deck.notes.json ← speaker notes (for presenter apps)
The HTML file
A single, self-contained HTML file with all slides, styles, animations, and interactivity inlined. No build step, no external dependencies — just open it in any browser.
The notes file
A JSON file containing speaker notes for every slide, including talking points, key messages, and transitions. Used by presenter apps to display notes alongside your slides.
Notes file structure:
{
"title": "My Presentation",
"slides": [
{
"slideNumber": 1,
"slideTitle": "Welcome",
"notes": "Open with the big vision...",
"keyPoints": ["Set the stage", "Hook the audience"],
"transition": "Now let's look at the problem..."
}
]
} Ready to create your first presentation?
Jump in and start building. It takes less than a minute to go from prompt to polished deck.
Start creating free