Introduction to Zenthyr
Introduction
Zenthyr is a Clojure library (plus a Leiningen template) for building desktop applications with a JVM backend and a modern web UI rendered inside a JCEF (Chromium) window.
The focus is a tight dev loop: generate a project, run lein run, and iterate with Vite hot reload while your Clojure backend stays in control.
Why Zenthyr?
- Library-first: depend on
zenthyrfrom yourproject.clj, keep APIs small and explicit - Modern UI: build your UI with Vite templates (React, Vue, Svelte, Angular)
- Chromium rendering: JCEF window embeds a full-featured browser engine
- Fast iteration: backend orchestrates Vite and opens a window to the dev server
Key Features
- IPC uses JCEF’s
cefQuery(CefMessageRouter), not WebSockets - Frontend bridge:
window.zenthyr.invoke(message)andwindow.zenthyr.emit(message) - macOS-first window/process lifecycle (dock + close behavior implemented and validated on macOS)