Supported platforms
- macOS (Apple Silicon and Intel)
- Linux (x86-64)
- Windows (x86-64)
Getting the binary
From a pre-built archive
- macOS / Linux
- Windows
Directory structure after extraction
After extracting, the archive produces the following layout. Theweb/ directory must remain co-located with the binary — moving the binary alone will break static asset serving.
data/slideshows/ directory or point to your own collection with --data-dir.
Running the binary
http://localhost:<port> in your browser to view and edit slideshows.
One-time setup with —init
The--init flag saves your current flags as persistent defaults and attempts to install a launcher symlink so you can run slides from anywhere in your terminal.
--init does two things:
- Saves defaults to your configuration file (see Config file location).
- Installs a launcher symlink (macOS / Linux only) by trying the following directories in order:
/usr/local/bin,/opt/homebrew/bin,~/.local/bin. On Windows, launcher installation is not automated — add the extracted folder to yourPATHmanually instead.
If
~/.local/bin is used for the symlink and it is not already in your PATH, the init output will print a reminder with the exact export command to add.Config file location
Defaults saved by--init are written to a JSON file. The location is platform-dependent:
| Platform | Path |
|---|---|
| macOS / Linux | ~/.config/slides/config.json |
| Windows | %APPDATA%\slides\config.json |
--init with new values or edit config.json directly.
Example saved config:
Building from source
If you want to build the standalone binary yourself:Build the standalone archive
scripts/compile-standalone.ts, which compiles the server binary with Bun’s --compile flag, bundles the web assets, and packages everything together.