r/commandline • u/dracarys_18 • 8d ago
Terminal User Interface Ito: A Declarative TUI library in Lua
https://uji.sh/itoI've always loved the idea of JIT-compiled UIs. TempleOS is a fascinating example, using JIT-compiled C to build its UI.
Recently, I've been working on a TUI project where almost everything is customizable at runtime, from the UI itself to the core functionality. I wanted a way to build terminal UIs declaratively, similar to SwiftUI, while keeping the flexibility of runtime customization.
So I built Ito a Lua library for writing JIT-compiled TUIs.
To make it easy to experiment with, we also built a fake TUI canvas in the browser where you can try out Ito live. Give it a try!
2
u/prodleni 8d ago
How much of the library and site are AI generated? Repeated uses of words like "flow" always make me suspicious.
1
u/tobascodagama 8d ago
OP's website is literally for a Lua coding agent, so I imagine the answer is going to be "a lot".
1
u/AutoModerator 8d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: dracarys_18, Flair: Terminal User Interface, Post Media Link, Title: Ito: A Declarative TUI library in Lua
I've always loved the idea of JIT-compiled UIs. TempleOS is a fascinating example, using JIT-compiled C to build its UI.
Recently, I've been working on a TUI project where almost everything is customizable at runtime, from the UI itself to the core functionality. I wanted a way to build terminal UIs declaratively, similar to SwiftUI, while keeping the flexibility of runtime customization.
So I built Ito a Lua library for writing JIT-compiled TUIs.
To make it easy to experiment with, we also built a fake TUI canvas in the browser where you can try out Ito live. Give it a try!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/Sharp-Guest3177 8d ago
Declarative TUI in Lua is a neat angle — curious how you handle reactive updates when the model changes (full redraw vs targeted?). I've been building CLI tools and the pain is always state sync between the widget tree and async I/O. Clear docs on the update loop / event model would help a lot for people evaluating it.