Russ110 downloadsMake slide decks as single-file HTML presentations: PPTX-like editing with drag-to-reorder, inline text with a format toolbar, image paste/drag/resize, and a built-in player with fullscreen and PDF export.
English | 繁體中文
Now on the Obsidian community directory — search for "SlideDope" in Settings → Community plugins, or hit Add to Obsidian on the listing.
Make slide decks in Obsidian.
A PPTX-like editor for single-file HTML presentations. Each deck is one self-contained .html file that lives in your vault and plays in any browser — no runtime, no export step, no lock-in.

⌘↑/⌘↓ to move, Shift+↑↓ to multi-select⌘X/⌘C/⌘V cut, copy, and paste slides (and images) across the deckem), pastes are downgraded to plain text, and serialized HTML is normalized (<font> tags, empty spans, and browser-extension junk are stripped on save)<deck folder>/images/, never inlined), then drag with center snap guides, nudge with arrow keys (Shift = 10px), resize with the corner grip. Positions are stored as percentages, so slides look the same in the editor and at any playback window size⌘Z / ⌘⇧Z covers text edits, image paste/move/resize, and every structural change, from the canvas or the sidebardata-part labels; the editor previews the same section progress bar the player shows
Every deck plays standalone in a browser (the editor's ▶ button opens it for you):
2 / 5) and fullscreen (F)⌘P → PDF — print CSS renders one slide per page at 1280×720
Run New presentation from the command palette to scaffold a deck from four built-in templates (dark gold, cream orange, minimal white, blank). Or open any HTML file containing <div id="deck"> with <section class="slide"> children — SlideDope edits it in place. Non-deck HTML files fall back to a read-only preview and round-trip byte-identical on save.
The ✨ AI mode panel sends the selected slide + the deck's CSS + your instruction to a local Claude Code CLI (claude -p) and swaps in the regenerated slide. Fully optional — the plugin works without it. Configure the command and model in settings.
Disclosure — external command execution: AI mode spawns the CLI configured in settings (default
claude) as a local shell process and pipes it the selected slide's HTML, the deck's CSS, and your instruction. That CLI may send this content to its AI provider (for Claude Code, Anthropic's API) under your own account. Nothing runs and nothing leaves your machine unless you click send in the AI panel. The rest of the plugin makes no network requests and executes no external commands.
Install directly from community.obsidian.md/plugins/slidedope, or in Obsidian: Settings → Community plugins → Browse → search SlideDope.
main.js, manifest.json, and styles.css from the latest release<your vault>/.obsidian/plugins/slidedope/Add this repository in BRAT and enable the plugin.
Note: SlideDope registers itself as the viewer for
.htmlfiles. If another plugin already handles.html, disable that plugin first, then re-enable SlideDope.
| Command | What it does |
|---|---|
| New presentation (choose template) | Create a new deck from a template |
| Save presentation | Save immediately (edits also autosave). No default hotkey — bind one (e.g. ⌘S) in Settings → Hotkeys |
| Duplicate current presentation | Duplicate the open deck as <name>-copy.html |
| Upgrade deck player | Upgrade an older deck's player to the latest (page counter / fullscreen / hash memory / PDF). Idempotent. |
| Setting | Default | Description |
|---|---|---|
| claude command | claude |
CLI command used by AI mode (run via login shell) |
| claude model | (empty) | Optional --model override (e.g. sonnet) |
| New deck folder | presentations |
Where new decks are created |
A deck is a plain HTML file:
<div class="deck" id="deck">
<section class="slide active" data-part="① Intro">…</section>
<section class="slide" data-part="② Content">…</section>
</div>
Slides are styled by the deck's own <style> — SlideDope never injects styling into your file (editor chrome is stripped on save). Slides sharing a data-part label are grouped into one segment of the section progress bar. See demo/demo-deck.html for a complete example.