A Terminal UI library for Clojure that provides React-like component rendering and state management for building terminal applications.
Trikl is a Terminal UI library for Clojure that allows developers to build terminal applications using a React-like component model with Hiccup syntax. It solves the problem of managing terminal state and rendering by automatically diffing UI changes and updating the terminal efficiently. This makes it ideal for creating interactive terminal apps, games, or tools without dealing with low-level terminal commands.
Clojure developers building terminal applications, hobbyist or indie game creators working on text-based games, and developers needing REPL-driven terminal UI tools.
Developers choose Trikl for its declarative, component-based approach that simplifies terminal UI development, its efficient diffing mechanism that minimizes terminal updates, and its seamless integration with Clojure's REPL and state management patterns.
Terminal UI library for Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses a familiar React-like Hiccup dialect for building terminal UIs, reducing boilerplate as shown in the example code for boxes and spans.
Automatically diffs virtual screen states to send minimal terminal commands, optimizing performance for dynamic applications.
Includes a telnet server mode for easy testing and live updates from the Clojure REPL, facilitating rapid prototyping.
Compatible with GraalVM for compiling to fast-booting native binaries, ideal for terminal tooling as noted in the README.
The README explicitly states it's a research project not for general consumption, with breaking changes and a rewrite in progress (trikl1 namespaces).
Offers only basic layout elements like :box and :cols, requiring custom drawing functions for complex UIs, which adds development overhead.
True color support depends on terminal settings (e.g., Tmux configuration), and event handling has acknowledged shortcomings, limiting cross-platform reliability.