LaTeX Beamer presentations in the browser — live, multi-window, with real-time sync.
slitex parses a .tex Beamer file and renders it as an interactive, browser-based presentation.
No PDF generation. No LaTeX installation required. Just point it at your .tex file and go.
- Zero-dependency runtime — single Go binary, UI embedded inside
- Live reload — edits to the
.texfile are reflected instantly in the browser - Multi-window sync — Presenter, Projector, and Overview windows stay in sync via Server-Sent Events
- Overlay/animation support —
\only,\onslide,\visible,\uncoverand pause steps - Math rendering — inline and display math via KaTeX
- BibTeX —
\bibliography/\bibresource+\citesupport - 12 built-in themes — see Themes
- Multiple views — Landing, Presenter, Projector, Overview, Print
If you have Go 1.23+ installed:
go install github.com/omurilo/slitex@latestThe binary will be placed in $(go env GOPATH)/bin.
Download the latest release for your platform from the Releases page.
| Platform | File |
|---|---|
| Linux x86-64 | slitex_linux_amd64 |
| Linux ARM64 | slitex_linux_arm64 |
| macOS x86-64 | slitex_darwin_amd64 |
| macOS Apple Silicon | slitex_darwin_arm64 |
| Windows x86-64 | slitex_windows_amd64.exe |
| Windows ARM64 | slitex_windows_arm64.exe |
Make the binary executable and move it to your $PATH:
chmod +x slitex_linux_amd64
sudo mv slitex_linux_amd64 /usr/local/bin/slitexPrerequisites: Go 1.23+ and Node.js 20+
git clone https://github.com/omurilo/slitex.git
cd slitex
# 1. Build the React frontend (outputs to internal/ui/dist)
cd web && npm ci && npm run build && cd ..
# 2. Build the Go binary (embeds the UI)
go build -o slitex .slitex <command> [flags] <presentation.tex>Commands
| Command | Description |
|---|---|
| serve | Serve the presentation with a dev server |
| build | Build the presentation as static spa |
| Print the presentation as PDF |
Flags
| Flag | Default | Description |
|---|---|---|
-port |
3000 |
HTTP port to listen on |
Examples
# Start the dev server on the default port
slitex my_talk.tex
# Use a custom port
slitex -port 3000 my_talk.texThe browser opens automatically at http://localhost:3000.
| View | URL | Description |
|---|---|---|
| Landing | / |
Current slide + navigation controls + links to other views |
| Projector | /projector |
Full-screen slide, synced with all other windows |
| Presenter | /presenter |
Slide + next-slide preview + notes + elapsed timer |
| Overview | /overview |
Thumbnail grid of all slides |
/print |
All slides stacked for printing / PDF export |
slitex ships with all classic Beamer themes:
| default | metropolis | madrid | warsaw |
| frankfurt | copenhagen | berlin | boadilla |
| cambridgeus | darmstadt | annarbor | berkeley |
Select a theme in your .tex preamble:
\usetheme{metropolis}slitex supports a subset of Beamer commands. Key supported features:
Preamble
\title,\subtitle,\author,\institute,\date\usetheme{<name>}\usepackage
Frames
\begin{frame}[options]{title}{subtitle}/\end{frame}\frametitle,\framesubtitle\titlepage,\tableofcontents- Frame option:
plain
Content
\begin{itemize}/\begin{enumerate}\begin{columns}/\begin{column}\begin{block},\begin{alertblock},\begin{exampleblock}\begin{verbatim},\begin{lstlisting}\includegraphics\begin{tabular}\begin{quote}\vfill,\vspace
Inline
\textbf,\textit,\texttt\alert,\color,\textcolor\href,\url$...$,\[...\](math via KaTeX)\cite,\bibliography,\bibresource
Overlays
\pause\only<n>,\onslide<n>,\visible<n>,\uncover<n>- Overlay spec
<n->,<n-m>
# Terminal 1 — Go dev server (uses Vite proxy, no embed needed)
go run . serve -port 3000 path/to/talk.tex
# Terminal 2 — Vite dev server (hot module reload)
cd web && npm run devThe Vite config proxies /api and /themes to localhost:3000, so both servers work together during development.
Issues and pull requests are welcome. Please open an issue first for larger changes.