Skip to content

Stefan-Schmidbauer/trilium-presenter-plugin

Repository files navigation

Trilium Presenter Plugin

Release License: MIT TriliumNext MCP server

Turn any Trilium note into a fullscreen presentation -- directly from Trilium, with one click.

Trilium Presenter — note tree, slide overview, and widget

Features

  • 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 #presenterLang label
  • AI slide authoring -- an MCP server lets an AI assistant create & manage presentations directly in Trilium

Installation

  1. Download trilium-presenter-plugin.zip from the latest release
  2. In Trilium, right-click any note in the tree and select Import into note
  3. Select the downloaded .zip file
  4. Trilium disables imported widgets by default -- open the Widget note inside the imported "Trilium Presenter" tree, find the #disabled:widget attribute and rename it to #widget
  5. Reload Trilium (Ctrl+R) -- the Trilium Presenter widget appears in the right panel

Quick Start

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:

  1. Create a note and add child notes -- each child becomes a slide
  2. Set child note type to Code with language Markdown (text/x-markdown)
  3. Navigate to your presentation note and click Present in the right panel

A slide in the Markdown editor

The same slide rendered as a presentation

MCP Server (AI slide authoring)

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.

Slide Organization

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.

Modes

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)

Presenter mode with speaker notes and slide list

Themes

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.

Slide Types

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

Configuration

Label Description Default
#presenterLang HTML lang attribute en
#slideType Slide layout type auto
#presenterTheme Mark a note as theme --

Documentation

See the docs/ folder:

Author

Stefan Schmidbauer -- GitHub

Built with Claude Code as co-author.

License

MIT -- see LICENSE

About

Turn any Trilium note into a fullscreen presentation — one click, no export, no conversion.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors