Dais: A Native PDF Presenter Console
Dais is a cross-platform PDF presentation console written in Rust for researchers and academics who build slides in LaTeX/Beamer, Typst, PowerPoint, or Keynote. Dais is designed for straightforward installation, reliable operation in real presentation setups, and compatibility with existing slide workflows.
Features
- Multi-monitor presenter view with an audience display and a presenter console with notes, timer, and navigation.
- Overlay and build-step support for
pdfpcmetadata, Beamer\pdfpc, and manual grouping. - Presentation tools including a laser pointer, freehand ink, spotlight, and zoom.
.pdfpccompatibility and a native.daissidecar format.- Fully remappable keybindings with presenter-console defaults.
- Single-binary distribution with no runtime dependencies or installers.
Installation
Install from crates.io with Cargo (requires Rust 1.92+):
cargo install daisOr download a pre-built binary from GitHub Releases.
Quick Start
dais presentation.pdfUsage
dais <file.pdf> # Present with auto-detected display mode
dais --single <file.pdf> # Single-monitor mode (no audience window)
dais --screen-share <file.pdf> # Screen-share mode (audience as normal window)
dais --edit <file.pdf> # Open the slide grouping editor
dais --config <path> <file.pdf> # Use a specific config file
dais --test-input # Diagnostic mode for clicker/remote setupDisplay Modes
- Dual: presenter console on the primary monitor, audience fullscreen on a secondary monitor.
- Single: one-window mode. Press
F5to switch between the presenter console and the configured single-monitor presentation surface. - Screen-share: the audience view is a normal resizable window for Zoom/Teams sharing.
With one monitor, Dais automatically falls back to single mode.
Grouping Editor
For PDFs without embedded overlay metadata, such as PowerPoint exports, use the built-in editor:
dais --edit slides.pdfClick between thumbnails to set group boundaries. Save writes the configured sidecar format. When loading, Dais checks .dais before .pdfpc.
Building From Source
Requires Rust 1.92+.
To install from the git repository without cloning:
cargo install --git https://github.com/christopherkenny/dais.git --package dais --bin daisThe binary will be at target/release/dais, or dais.exe on Windows.
Documentation
Architecture
Dais is organized as a 7-crate Cargo workspace:
| Crate | Role |
|---|---|
dais |
Binary for CLI parsing and app launch |
dais-core |
Commands, state types, command bus, config, keybindings |
dais-engine |
Presentation engine that processes commands and owns state |
dais-document |
DocumentSource trait, hayro PDF renderer, and page cache |
dais-sidecar |
.dais and .pdfpc sidecar formats |
dais-platform |
Platform-specific monitor enumeration |
dais-ui |
egui UI for the presenter console, audience window, and grouping editor |