PDF Auto-Advance Presenter

Auto-advancing PDF slideshows,
without the bloat.

Boozle turns any PDF into a fullscreen, timed presentation. Use it for trade show booths, kiosks, lobby screens, Ignite talks, classrooms, and hands-free slide playback. No presentation suite. No browser workaround. No runtime to install.

Open source · Apache-2.0 · Built in Go · macOS · Linux · Windows

A PDF viewer is too passive.
A presentation suite is too much.

Sometimes you already have the slides exported as a PDF. You just need them to open fullscreen, advance on a timer, loop cleanly, and look sharp on the screen you choose.

Manual clicking gets old. Auto-advance your PDF every few seconds, minutes, or milliseconds — with a configurable interval per slide.

Generic PDF viewers are not presentation tools. Loop mode, progress overlays, page ranges, monitor selection, and slide overview are built for presenting — not reading.

Big presentation suites are overkill. Boozle is focused on one job — reliable fullscreen PDF playback. Download, run, present.

Features

Made for timed PDF presentations.

Everything a kiosk needs. Nothing it doesn't.

Auto-Advance Timer

Set your PDF to move forward automatically. Any duration — seconds, minutes, or milliseconds via --auto.

Loop Mode

Perfect for booths, signage, kiosks, and lobby screens. Add --loop and the deck runs forever without a hiccup.

Per-Slide Config

Override timing per slide using a TOML sidecar file that lives next to the PDF. Important slides get more time; quick slides get less.

Progress Overlay

A segmented rainbow bar shows page position, current page, and auto-advance countdown. Enable it with --progress.

Slide Overview

Press Tab to reveal a thumbnail grid of all slides and jump to any page. With presenter view on, the grid opens on your screen only, so the audience never sees it.

HiDPI Support

Re-rasterises pages at native pixel density on Retina and 4K displays. Your PDFs look exactly as designed.

Cross-Platform

Native binaries for macOS (Intel & Apple Silicon), Linux (x86_64 & ARM64), and Windows. One tool for every screen.

Multi-Monitor

Choose the audience display with --monitor, or add a separate speaker display with --presenter-monitor, by index or by name like HDMI-1.

Presenter View

Open a speaker window with current slide, next preview, per-slide notes, clock, elapsed time, slide counter, and timer via --presenter-monitor. Notes come from TOML, .pdfpc, or PowerPoint.

PowerPoint Notes Import

Run boozle notes import deck.pptx once to extract speaker notes into a TOML sidecar. After that, present with only the PDF — the .pptx isn't needed.

List Monitors

Run boozle --list-monitors (or -M) to print the index, name, size, and scale of every connected display, then pass the index or name to --monitor.

Slide Transitions

Use the default lateral push, cross-fade between pages, or cut instantly with --transition.

Single Binary

Download, run, present. No installer, no runtime, no package manager. Copy the binary and it just works.

pdfpc Compatible

Already use PDF Presenter Console? Boozle reads .pdfpc files directly: page order, hidden slides, and speaker notes carry over as-is.

Fast & Lean

Near-instant startup, renders off the UI thread, and memory bounded by a small GPU cache, not by deck length. Big decks stay smooth.

Install

Get Boozle.

Choose your platform. One command and you're ready.

Terminal
# Add the tap, then install
brew tap gethash/tap
brew install boozle

Homebrew keeps boozle up to date with brew upgrade.

Terminal — macOS / Linux
curl -fsSL https://github.com/gethash/boozle/releases/latest/download/install.sh | sh

Downloads the latest release for your OS and architecture, verifies SHA-256 against checksums.txt, installs to /usr/local/bin, and falls back to ~/.local/bin. On macOS it also clears the quarantine flag, so Gatekeeper won't block the first launch.

PowerShell
iwr -useb https://github.com/gethash/boozle/releases/latest/download/install.ps1 | iex

If Windows SmartScreen warns on first run, you can proceed by clicking "More info → Run anyway" if you trust the release source.

  1. Go to the latest GitHub Release.
  2. Download the binary for your platform:
    • macOS Apple Silicon — boozle_vX.Y.Z_darwin-arm64.tar.gz
    • macOS Intel — boozle_vX.Y.Z_darwin-amd64.tar.gz
    • Linux x86_64 — boozle_vX.Y.Z_linux-amd64.tar.gz
    • Linux ARM64 — boozle_vX.Y.Z_linux-arm64.tar.gz
    • Windows x86_64 — boozle_vX.Y.Z_windows-amd64.zip
  3. Verify the archive with the release's checksums.txt.
  4. Extract it and move the binary onto your PATH (macOS / Linux):
    tar -xzf boozle_vX.Y.Z_darwin-arm64.tar.gz
    sudo mv boozle_vX.Y.Z_darwin-arm64/boozle /usr/local/bin/boozle

    On macOS, a browser download may be blocked by Gatekeeper on first launch. Right-click the binary → Open, then confirm, or run xattr -d com.apple.quarantine on it once. See Platform Notes.

  5. Verify: boozle --version
Use Cases

Built for unattended screens.

Wherever a PDF needs to run itself, Boozle fits.

Trade Show Booth

Run your booth presentation all day from a PDF. Export the deck, start Boozle in fullscreen, and let it loop for the entire event.

boozle booth.pdf --auto 15s --loop --progress
Lobby Screen

Turn any display into a PDF signage screen — welcome messages, event schedules, announcements, or donor lists.

boozle lobby.pdf --auto 30s --loop
Kiosk Display

Museums, galleries, product displays, and information desks — a focused PDF viewer for kiosk-style playback on any screen.

boozle kiosk.pdf --auto 20s --loop --pages 1-12
Classroom / Demo

Teach or demo hands-free. Use auto-advance for pacing, pause when discussion starts, and pick up on the second monitor.

boozle lesson.pdf --auto 45s --monitor 1 --progress
Ignite Talk

20 slides, 15 seconds each, fully automated. Export your Ignite deck as a PDF and let Boozle handle the timing — no clicker needed.

boozle ignite.pdf --auto 15s --autoquit
See all use cases →
Quick Start

Up and running in seconds.

A single command is all it takes.

Common commands
# Basic: advance every 30 seconds
boozle slides.pdf --auto 30s

# Loop forever with progress overlay
boozle slides.pdf --auto 30s --loop --progress

# Audience display on monitor 1, presenter view on monitor 0
boozle slides.pdf --auto 1m --monitor 1 --presenter-monitor 0

# Present only pages 3 to 9
boozle slides.pdf --auto 20s --pages 3-9

# Cross-fade between slides
boozle slides.pdf --transition fade

# List connected displays, then pick one by index or name
boozle --list-monitors
boozle slides.pdf --monitor HDMI-1 --presenter-monitor 0

# Extract PowerPoint speaker notes once into a sidecar
boozle notes import deck.pptx --out deck.boozle.toml
slides.boozle.toml — sidecar config
auto     = "30s"
loop     = true
progress = true
transition = "fade"
# presenter_monitor = 0

# Hold slide 3 for 2 minutes
[[page]]
n    = 3
auto = "2m"

# Quick slide — 10 seconds
[[page]]
n    = 7
auto = "10s"

# Speaker notes — shown in presenter view
[[page]]
n     = 5
notes = "Mention the rollout date. Pause for questions."
Keyboard Controls
→ / Space Next slide
← Previous slide
Tab Slide overview
p Pause / resume
f Toggle fullscreen
b Blackout screen
w Whiteout screen
0–9 + Enter Jump to page (numpad too)
Home / End First / last slide
q / Esc Quit
Compare

The right tool for the job.

Boozle is not a slide editor. It's what you use after your slides are already a PDF.

Need Boozle PowerPoint / Keynote Generic PDF Viewer
Auto-advance a PDF ✓ Built-in Requires import / export Rarely supported
Loop fullscreen ✓ --loop flag Possible but heavy Often awkward
Per-slide timing ✓ TOML sidecar Native slide files only Rare
Single command launch ✓ One binary No Sometimes
Monitor selection ✓ --monitor <N|name> Presenter mode only No
Designed for kiosk loops ✓ Primary use case Partly No
Zero dependencies ✓ Static binary Full install required Often requires runtime
Full comparison →
FAQ

Common questions.

Boozle is a lightweight, open-source PDF presenter for fullscreen, timed, auto-advancing slideshows on macOS, Linux, and Windows. It runs as a single static binary with no installer or runtime required.
Yes. Use --auto with any duration (e.g. --auto 30s or --auto 2m) and Boozle will advance slides automatically at that interval.
Yes. Add --loop and Boozle restarts from slide 1 after the last page. It runs indefinitely — ideal for kiosk displays and booth screens.
Yes. Boozle provides native binaries for macOS (Intel and Apple Silicon), Linux (x86_64 and ARM64), and Windows. Install via Homebrew, shell script, PowerShell, or manual download.
Yes. Create a .toml sidecar file next to your PDF with [[page]] entries specifying an n (page number) and auto override. The global default applies to all other pages.
Yes. Use --monitor 1 (any display index) or --monitor HDMI-1 (a display name, or any unique part of it) to open the presentation on a specific connected display. Display 0 is the primary screen.
Boozle is ideal for Ignite talks. Set --auto 15s on a 20-slide PDF and it advances automatically every 15 seconds, running the full 5 minutes hands-free. Add --autoquit so it exits cleanly when the last slide is done.
Yes. Run boozle notes import deck.pptx once to extract speaker notes into a deck.boozle.toml sidecar. From then on you only need the PDF plus the sidecar at presentation time — the .pptx file isn't needed. Old binary .ppt files should be converted to .pptx first.
Run boozle --list-monitors (or -M) to print the index, name, size, and scale of every connected display. Then pass the index or name you want to --monitor or --presenter-monitor. Names stay stable across reboots on macOS and Linux.
Yes. Boozle loads deck.pdfpc next to deck.pdf automatically, or any .pdfpc file passed with --config. It uses the page order, skips hidden slides, and shows the notes in presenter view. See pdfpc Sidecars.

Ready to run your PDF?

Download Boozle and have your first auto-advancing presentation running in under a minute.

Open source · Apache-2.0 · Zero dependencies