Auto-Advance Timer
Set your PDF to move forward automatically. Any duration — seconds, minutes, or milliseconds via --auto.
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
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.
Everything a kiosk needs. Nothing it doesn't.
Set your PDF to move forward automatically. Any duration — seconds, minutes, or milliseconds via --auto.
Perfect for booths, signage, kiosks, and lobby screens. Add --loop and the deck runs forever without a hiccup.
Override timing per slide using a TOML sidecar file that lives next to the PDF. Important slides get more time; quick slides get less.
A segmented rainbow bar shows page position, current page, and auto-advance countdown. Enable it with --progress.
Press Tab to reveal a thumbnail grid of all slides. Jump to any page instantly without breaking the loop.
Re-rasterises pages at native pixel density on Retina and 4K displays. Your PDFs look exactly as designed.
Native binaries for macOS (Intel & Apple Silicon), Linux x86_64, and Windows. One tool for every screen.
Choose the audience display with --monitor, or add a separate speaker display with --presenter-monitor.
Open a speaker window with current slide, next preview, per-slide notes, clock, elapsed time, slide counter, and timer via --presenter-monitor.
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.
Run boozle --list-monitors (or -M) to print the index, name, and DPI scale of every connected display before you pick one with --monitor.
Use the default lateral push, cross-fade between pages, or cut instantly with --transition.
Download, run, present. No installer, no runtime, no package manager. Copy the binary and it just works.
Choose your platform. One command and you're ready.
# Add the tap, then install
brew tap gethash/tap
brew install boozle
Homebrew keeps boozle up to date with brew upgrade.
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.
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.
boozle_vX.Y.Z_darwin-arm64.tar.gzboozle_vX.Y.Z_darwin-amd64.tar.gzboozle_vX.Y.Z_linux-amd64.tar.gzboozle_vX.Y.Z_windows-amd64.zipchecksums.txt.tar -xzf boozle_vX.Y.Z_darwin-arm64.tar.gz
chmod +x boozle
mv boozle /usr/local/bin/boozle
On macOS, if Gatekeeper blocks the first launch, right-click the binary → Open, then confirm. Subsequent launches work normally.
boozle --versionWherever a PDF needs to run itself, Boozle fits.
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
Turn any display into a PDF signage screen — welcome messages, event schedules, announcements, or donor lists.
boozle lobby.pdf --auto 30s --loop
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
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
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
A single command is all it takes.
# 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 to find the right index
boozle --list-monitors
# Extract PowerPoint speaker notes once into a sidecar
boozle notes import deck.pptx --out deck.boozle.toml
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."
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 |
Presenter mode only | No |
| Designed for kiosk loops | ✓ Primary use case | Partly | No |
| Zero dependencies | ✓ Static binary | Full install required | Often requires runtime |
--auto with any duration (e.g. --auto 30s or --auto 2m) and Boozle will advance slides automatically at that interval.
--loop and Boozle restarts from slide 1 after the last page. It runs indefinitely — ideal for kiosk displays and booth screens.
.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.
--monitor 1 (or any display index) to open the presentation on a specific connected display. Display 0 is the primary screen.
--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.
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.
boozle --list-monitors (or -M) to print the index, name, and DPI scale of every connected display. Then pass the index you want to --monitor or --presenter-monitor.