HI version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
81% Positive
Analyzed from 1825 words in the discussion.
Trending Topics
#terminal#text#user#interface#yaml#tui#https#json#app#more

Discussion (56 Comments)Read Original on HackerNews
But it looks very cool!
But this is wrong:
> it typically means that the UI is drawn by some other machine than the one you're touching
I guess you're conflating thin-client terminal in the networking sense vs vt100 hardware terminal lineage (where "terminal" comes from here), but it means a text mode interface that runs in the terminal emulator and uses, say, ansi escape sequences.
Rather, when you see TUI, it just means the app runs in one of your kitty panes.
Btw, your "Terminal Services" example doesn't show that "terminal" implies remote drawing. It shows Microsoft extended the word to cover remote GUI sessions, which is a later, broader usage.
Yes, I didn't really think to separate the two. While my examples of ssh/telnet/rlogin are all of the networking variety, I didn't mean to exclude RS-232 (which the VT100 used). Regardless of whether the wire is for serial or packet data, if you're at a terminal (including any of the thin/dumb/smart varieties), you're not at the box doing the heavy lifting because that's on the other end of a wire representing an important demarcation, a demarcation that doesn't really apply to a local app running a text-mode user interface (or if the mental gymnastics are performed that does introduce such demarcation even within a local app -- think backend vs frontend -- then all local apps are terminals).
The distinction we (Ratatui) draw is that the rendering surface is a terminal: historically sometimes a physical hardware terminal (someone got Ratatui running on a Minitel a while back), more commonly today a terminal emulator/PTY environment.
That framing also better captures the kinds of constraints and capabilities Ratatui apps actually deal with: terminal escape sequences, cell-based rendering, alternate screen buffers, mouse handling, resize behavior, scrollback interaction, etc.
In addition, these apps don't only do text only these days as modern terminals support various graphics protocols (Sixel, Kitty, iTerm graphics) and other extensions that can allow for weird and wonderful things that are not just text.
Even X had a separate application called xterm 42 years ago: the complete X system was not to my knowledge called a terminal system, except perhaps when discussing the dedicated client devices, such as VT1300. Also the term "virtual terminal" as far as I know has always referred to a the kind of interface this application is making use of.
So I think we can just accept that the term is overloaded such that "terminal" refers to both of these situations, as there is no historical precedent to have it exclude the other situation, and the term "terminal-based application" is completely clear to a rational listener.
These characters _are_ text though. They can be copy pasted like text, I can use them in my text editor, you can stick em in a string.
(plus custom theme customize-able & much less work for the devs to build & maintain, and way less dependencies)
As long as they defines it first (and they did)
The potentially disheartening thing about the ability to create apps like this, they are just low effort are they even worth sharing anymore? I have personal clones of Postman, Teux Deux, Goodreads and a few other utilities. Previously I would clean them up, document, and share out, but now I don't bother with most of it. Just not worth it, when people can make their own customized to their whims.
This has been extremely helpful... I'm as inclined to copy as fetch then paste and tweak in a TS file as I am to use curl or anything else... I've pretty much stopped using things like postman altogether.
There is also the term CHUI for Character User Interface that is contrasted with TUI.
I wonder what that means -- I looked around the docs but didn't see that it interacts with other clients. I thought maybe it would show a generated curl command or something along those lines. But perhaps it's just a typo for HTTP servers?
https://justuse.org/curl/
https://docs.python-requests.org/en/latest/index.html
[1] https://httpie.io/cli
Delete key does not exist, Fn-Backspace does not work too.
Genuine question, why do people use YAML? I've been using it a little bit recently (reading existing documents, not writing my own), and it just seems like a more overcomplicated and less human-readable version of JSON? With potential security vulnerabilities?
https://opensource.posit.co/blog/2026-05-21_in-defense-of-ya...
Please provide an example, how YAML can be less readable than JSON. I struggle to think of any.
Also I really don't like the hyphen notation... This is very unreadable to me:
Because people LOVE overcomplicated shit. You see it happen everywhere.
I just tried it to verify that claim, but the software does not follow a hyperlink. How did you manage to screw up such a basic feature?
You can also try out Voiden : https://voiden.md/ which has a different approach to this.
Also YAML is a interesting choice - any reasons for this.
PS : I am associated with Voiden.