Code-first presentations that talk back
Author decks in MDX and TSX. The engine compiles them into one self-contained HTML file that presents offline, runs live sessions with polls and Q&A, and your agent can write it too, as real source you own.
$ npm install -g bun
$ bun add -g @liebstoeckel/cli
$ liebstoeckel skill install Why liebstoeckel
Section titled “Why liebstoeckel”liebstoeckel is a small, opinionated engine + theming layer, not another reveal.js: content is authored in MDX/TSX, design lives in one place per brand, and motion is first-class.
- Single-file output
- Every deck builds to one portable
.html: JS and CSS inlined, assets base64’d. No server, no CDN. It drops into an email, a USB stick, an air-gapped room. And it isn’t a dead end:liebstoeckel ejectturns a built file back into an editable project. guides/building - Motion that matters
- Magic Move (
layoutId), spring choreography, animated code diffs: the reason to build our own engine instead of bending a generic tool. guides/animated-code - Brands, not styles
- A deck declares
brand: “acme”and inherits the whole look from typed design tokens. Override one token for a one-off without forking the theme. guides/theming - Decks that talk back
- Host the same file and it opens a live Yjs session: polls, audience Q&A, and reactions sync to every device in the room. Unhosted, plugins render a quiet fallback. guides/live
- Built for agents
liebstoeckel skill installteaches your agent the same CLI you use: it reads the component registry, writes MDX and TSX you own, and loops onbuild —checkuntil the deck is green. reference/cli - Mobile-ready
- The audience joins from a phone. Tap a glowing plugin to interact full-size, swipe to navigate, and the presenter view adapts down to a handset. guides/mobile
These docs are agent-readable too: every page has Copy Markdown and Open in ChatGPT / Claude, a raw .md at each URL, and an /llms.txt index.
The 30-second tour
Section titled “The 30-second tour”bun add -g @liebstoeckel/cli # or: bunx @liebstoeckel/cli …liebstoeckel new my-talk # scaffold a deckliebstoeckel live my-talk # present live (audience joins by QR)liebstoeckel build my-talk # → one self-contained dist/my-talk.htmlPick your path
Section titled “Pick your path”- Get started: install, scaffold a deck, and run the dev server.
- Your first deck: slides, speaker notes, reveal steps, and motion.
- Build a plugin: polls, Q&A, reactions, or one of your own.
liebstoeckel
Code-first presentations your agent can author. One file out, no server.
© 2026 Leon Kaucher