SlideDope

approved

by Russ

Make 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. - This plugin has not been manually reviewed by Obsidian staff.

2 stars108 downloadsUpdated 29d agoMIT

SlideDope

English | 繁體中文

SlideDope on the Obsidian community directory

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.

Editor

Features

Editor

  • Thumbnail sidebar — drag to reorder (with insert indicators), ⌘↑/⌘↓ to move, Shift+↑↓ to multi-select
  • Slide clipboard⌘X/⌘C/⌘V cut, copy, and paste slides (and images) across the deck
  • Inline text editing — click any text on the canvas and type; select text to get a floating format toolbar (bold, theme colors, font size, clear formatting)
  • Clean HTML, always — the color swatches read the deck's own CSS variables, font sizes are relative (em), pastes are downgraded to plain text, and serialized HTML is normalized (<font> tags, empty spans, and browser-extension junk are stripped on save)
  • Images, WYSIWYG — paste from the clipboard (saved to <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
  • Undo/redo everywhere⌘Z / ⌘⇧Z covers text edits, image paste/move/resize, and every structural change, from the canvas or the sidebar
  • Section labels — tag slides with data-part labels; the editor previews the same section progress bar the player shows

Format toolbar

Player

Every deck plays standalone in a browser (the editor's ▶ button opens it for you):

  • Keyboard / touch / button navigation with a section progress bar
  • Page counter (2 / 5) and fullscreen (F)
  • Remembers your page across reloads (URL hash)
  • ⌘P → PDF — print CSS renders one slide per page at 1280×720

Player

Templates

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.

AI mode (optional)

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.

Installation

From the community directory (recommended)

Install directly from community.obsidian.md/plugins/slidedope, or in Obsidian: Settings → Community plugins → Browse → search SlideDope.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Copy them into <your vault>/.obsidian/plugins/slidedope/
  3. Reload Obsidian and enable SlideDope in Settings → Community plugins

Via BRAT

Add this repository in BRAT and enable the plugin.

Note: SlideDope registers itself as the viewer for .html files. If another plugin already handles .html, disable that plugin first, then re-enable SlideDope.

Commands

CommandWhat it does
New presentation (choose template)Create a new deck from a template
Save presentationSave immediately (edits also autosave). No default hotkey — bind one (e.g. ⌘S) in Settings → Hotkeys
Duplicate current presentationDuplicate the open deck as <name>-copy.html
Upgrade deck playerUpgrade an older deck's player to the latest (page counter / fullscreen / hash memory / PDF). Idempotent.

Settings

SettingDefaultDescription
claude commandclaudeCLI command used by AI mode (run via login shell)
claude model(empty)Optional --model override (e.g. sonnet)
New deck folderpresentationsWhere new decks are created

Deck file format

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.

Notes

  • Desktop only (uses iframes, the local filesystem, and optionally a local CLI)
  • UI language follows Obsidian's interface language: English by default, Traditional Chinese when Obsidian runs in Chinese — more languages welcome via PR
  • Requires Obsidian 1.5.0+

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.