Turn any Trilium note into a fullscreen presentation -- directly from Trilium, with one click.
- One-click presentations from any note with children
- Markdown slides with Pandoc-compatible syntax (columns, speaker notes, code blocks)
- Depth-first traversal -- organize slides in sub-topics, they unfold automatically
- Presenter mode with speaker notes and slide list, synced via BroadcastChannel
- Handout/PDF export with one page per slide
- Theme system -- CSS + SVG backgrounds as Trilium notes, selectable per presentation
- Slide templates -- 11 ready-made layouts for quick slide creation
- Keyboard & mouse navigation with progress bar
- Configurable language via
#presenterLanglabel - AI slide authoring -- an MCP server lets an AI assistant create & manage presentations directly in Trilium
- Download
trilium-presenter-plugin.zipfrom the latest release - In Trilium, right-click any note in the tree and select Import into note
- Select the downloaded
.zipfile - Trilium disables imported widgets by default -- open the Widget note inside the imported "Trilium Presenter" tree, find the
#disabled:widgetattribute and rename it to#widget - Reload Trilium (Ctrl+R) -- the Trilium Presenter widget appears in the right panel
Fastest way: Navigate to the imported Example Presentation note and click Present -- it walks you through all features including Markdown syntax, columns, images, and the Master/Clone workflow.
From scratch:
- Create a note and add child notes -- each child becomes a slide
- Set child note type to Code with language Markdown (
text/x-markdown) - Navigate to your presentation note and click Present in the right panel
Let an AI assistant build your decks. The mcp/ folder ships a Model Context Protocol server that creates and manages presentations directly in Trilium via the ETAPI -- ask Claude something like "Create a 5-slide intro to our Q3 roadmap" and the slides appear in your note tree, ready to present.
The slide format the AI follows is loaded live from the Slide Format documentation note (label #presenterSlideFormat) -- so that one note is the single source of truth for slide-creation rules, shared by both humans and the AI (it used to be hardcoded in the server). See mcp/README.md for setup.
Slides are collected via depth-first pre-order traversal:
My Presentation
Title Slide -> Slide 1
Introduction -> Slide 2
Deep Dive -> Slide 3 (section break)
Details A -> Slide 4
Details B -> Slide 5
Conclusion -> Slide 6
Container notes (text/html type) are skipped but their children are included. This lets you use folders to organize slides without creating empty slides.
| Button | Description |
|---|---|
| Present | Fullscreen presentation in a new window |
| Presenter Mode | Speaker view with notes, slide list, and BroadcastChannel sync |
| Handout (PDF) | Print-optimized view, one page per slide, auto-opens print dialog |
| Show Slide | Preview a single Markdown slide with theme (visible on individual slide notes) |
Select a theme from the dropdown before presenting. Themes are Trilium notes with the #presenterTheme label containing CSS sub-notes (Base, Title Slide, Content Slide) and optional SVG background attachments.
Included themes: Default (light) and Dark.
The first slide defaults to title layout, others to content. Override with #slideType label:
#slideType=title-- Title slide styling#slideType=content-- Content slide styling- Custom types by adding matching CSS notes to your theme
| Label | Description | Default |
|---|---|---|
#presenterLang |
HTML lang attribute | en |
#slideType |
Slide layout type | auto |
#presenterTheme |
Mark a note as theme | -- |
See the docs/ folder:
- Getting Started
- Slide Content -- full Markdown & Pandoc syntax reference
- Slide Format -- compact format reference (also drives the MCP server)
- Themes -- creating custom themes
- Content Organization -- clone-based slide library workflow
- MCP Server -- AI slide authoring overview (setup)
- About -- author, license, and links
Stefan Schmidbauer -- GitHub
Built with Claude Code as co-author.
MIT -- see LICENSE



