Culinola is a self-hosted smart home dashboard for a wall tablet or kitchen display. It brings your house, your media and your family's day together on one touch screen – arranged the way you want, set up entirely in the browser.
No scrolling, no menus: a grid of tiles that fills the display and scales with it.
openHAB, Home Assistant, Homematic, MQTT, FRITZ!Box, IMAP, Google Calendar, RSS, cameras via go2rtc – each one is a plugin.
Drag tiles into place, pick datapoints from a searchable list, add sources and credentials. Displays pick up every change without a restart.
Internet radio and live TV, your cameras, the newest e-mails, calls from the FRITZ!Box and an egg timer on the clock are built in.
An egg timer on the clock, recipes to cook from, ingredients onto the shopping list, a doorbell message with the camera behind it.
Runs on your own hardware in your own network. The source is open to read and change, and free for private and other noncommercial use.
The interface uses the same HTTP and WebSocket API as any other program – with access tokens in three levels.
The kitchen display shows a real installation; calls, e-mails, appointments and reminders in it are made up. The setup pages show the built-in test instance.
You need Node.js 22.18 or newer.
git clone https://github.com/achrista/culinola.git cd culinola npm install npm run build npm start
Open http://localhost:8090. Without a configuration of your own, Culinola starts with made-up demo values. Add ?layout=main&edit to the address to open the layout editor.
Culinola itself needs nothing but Node.js. Cameras and live TV additionally need the separate programs go2rtc and, for streams that have to be converted, ffmpeg; the wake word needs a Vosk speech model; voice commands and adding recipes from photos need a Claude API key – no subscription, just prepaid credits from platform.claude.com, starting at about US$5. The Docker image already contains go2rtc and ffmpeg.
Culinola is young: expect rough edges, and please report them on GitHub. The interface is available in German and English.