Minor nitpick but this is TUI and not CLI. CLI means you can pipe the output of your program to things like sed and grep and any other program.
there might be some gaps (let me know) but you can actually pipe the output to another program.
for instance here's how you'd download all the unread blog posts by combining blogtato and wget:
blog .unread read | wget \ --recursive --level=1 \ --page-requisites \ --convert-links \ --adjust-extension \ --no-parent \ --directory-prefix="$HOME/offline-posts" \ --input-file=-
It looks like it's both
You started out strong but fumbled in your second sentence.
> CLI means you can pipe the output of your program to things like sed and grep and any other program.
No, that's not a prereq for a CLI. "CLI" means "command-line interface", that's it. Vim's command line is still a command line even though it's totally disjoint from the UNIX shell and the entire process model. Even primarily graphical apps can expose a command line in the UI. Think of the VSCode command palette, for example, copied from SublimeText.
(Though all the examples cited here are editors, there's no reason for it to be restricted to that. Indeed, even more graphical apps should sport command lines inside them.)