Blessed: Curses-like library with high level terminal interface API for Node.js
github.com
github.com
However I don't think that CLI should mimic GUI, with boxes, transparent windows, shadows, pop-up menus etc. This is way too much bloat...
Why not simply write a GUI if that's what you want?
Speed rarely matters for imperative user-facing tools. You're going to be waiting for a user to type and respond far, far longer than making some system calls to write to the shell.
Ink is a more interesting and maintained library to consider though: https://github.com/vadimdemedes/ink It lets you write react-like apps that output to the terminal instead of HTML.
1. https://github.com/willmcgugan/rich
2. https://github.com/gizak/termui
3. https://github.com/fdehau/tui-rs
Notably absent is the JVM. Another victim of startup time I imagine.
What I really like about blessed was it’s api. At one point I made my own fork and was going to try to maintain it. Then I thought I’d try to port it to nim. These days I just use one of the excellent text ui libs in go which is great mostly because of the ecosystem.
I'm working on a go cli project now and I'm looking for a good one, which one are you using?