Your deck is a program. Run it with the room.

Live, programmable presentations

Everyone in the room joins from their phone: polls, questions and anything you build, from a live chart to a game, in sync on every screen. It runs on your own network.

Loading the deck

On your machine in two commands

npm is all you need: the CLI brings its own Bun. The second gives your coding agent the liebstoeckel‑deck skill, and it writes decks with you. Open source, MPL-2.0. Experimental, pre-1.0.

Claude CodeCodexCursorGeminiand an AGENTS.md block per deck

terminal
$ npm install -g @liebstoeckel/cli
$ liebstoeckel skill install --global

Polls are the floor

Poll, Q&A and reactions are built in. Anything else the room can do is a plugin: shared state and the views for the screen and the phones, written by your agent or by you. Build a plugin

ask your agent

>Add a tug of war after the Q&A: cats against dogs

Read the plugin SDK registry view --json

Wrote plugins/tug/src/logic.ts

Wrote plugins/tug/src/client.tsx

Added slides/03-tug.tsx

build --check: 1 error in client.tsx, fixed

✓build --check: ok

The result is the demo deck's tug of war: plugins/tug

One file that turns back into a project

The demo deck is one HTML file with the engine, the slides, the plugins and its own source inside. Opening it needs nothing but a browser.

  1. 1Open it in a browser. It presents offline, and the plugins show a still preview.
  2. 2Run it live. Phones on your network join by QR. Scan it with your own phone and you play both roles.
  3. 3Eject it. The project comes back, plugin included, ready for your editor or your agent.

live runs the deck's code on your machine, so only run decks you trust. This one's source is on GitHub.

$ liebstoeckel live the-room.html
  presenter http://localhost:4321/?t=ef36...
  audience http://192.168.1.20:4321/?t=0fd5...
# press q in the deck to show the QR
$ liebstoeckel eject the-room.html
  ✓ ejected 14 files → the-room-source
  slides/03-tug.tsx
  plugins/tug/src/client.tsx
  plugins/tug/src/logic.ts

Hosted rooms, in the EU

Cloud, coming

The same sessions for an audience beyond your network, without a server of your own: a short join link, decks your team shares and results you can keep, hosted in the EU. The framework stays open and free.

The empty lecture hall with the lights on and the screen saying Welcome, everyone, before anyone has arrived.

Bring the room into your next talk

terminal
$ npm install -g @liebstoeckel/cli
$ liebstoeckel skill install --global
Start with the docs