Skip to content
Home Docs Getting Started

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:

1

Pro (Recommended)

Interactive components (flip cards, charts, tables, code blocks, and more) with deterministic output. This is the default when no mode is specified.

2

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.

Bash
curl -sSL https://raw.githubusercontent.com/bluedusk/html-slides/main/remote-install.sh | bash

Install from Cloned Repo

Bash
git clone https://github.com/bluedusk/html-slides.git
cd html-slides
./install.sh

Manual Install (per agent)

Claude Code Recommended

Via plugin marketplace:

Bash
claude plugin marketplace add bluedusk/html-slides
claude plugin install html-slides

Or via skill symlink:

Bash
# 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

Bash
ln -s /path/to/html-slides ~/.gemini/skills/html-slides

GitHub Copilot

Bash
ln -s /path/to/html-slides .github/skills/html-slides

OpenAI Codex

Bash
ln -s /path/to/html-slides ~/.codex/skills/html-slides

Updating

Run the same quick install command to update to the latest version:

Bash
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:

Prompt
/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:

Prompt — From a document
/html-slides
Turn the content in notes.md into a presentation.
Use flip cards for the key concepts and a timeline for the roadmap.
Prompt — From PowerPoint
/html-slides
Convert my presentation.pptx to a web slideshow.
Prompt — From any HTML
/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:

Prompt
/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:

Output
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

1

Click Present in HTMLSlides

The presenter dashboard appears and a browser tab opens with the audience view.

2

Share the browser tab

In Zoom/Teams/Meet, share the audience view browser tab — not the app window.

3

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.

Prompt
Create a presentation about [topic]

Or specify a theme:

Prompt
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.

Prompt
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.

Prompt
Convert my presentation.pptx to a web slideshow

Convert Any HTML

Convert any HTML file into HTML Slides format.

Prompt
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.

Prompt
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.

Prompt
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

Sharing & Export

Deploy your presentation to a live URL or export it as a PDF.

Deploy to a Live URL

Deploy your presentation to Vercel (free) and get a permanent, shareable URL.

Bash
bash scripts/deploy.sh ./presentation.html

Requires: Node.js + a Vercel account (free).

Export to PDF

Screenshot each slide into a PDF file. Uses Playwright (auto-installs on first run).

Bash
bash scripts/export-pdf.sh ./presentation.html

Add the --compact flag for smaller file sizes:

Bash
bash scripts/export-pdf.sh ./presentation.html --compact

Requires: Node.js (Playwright installs automatically).

Output Format

Every generated presentation produces two files in your working directory.

Output
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:

JSON
{
  "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