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.)
Heh fair enough. I conflated the UNIX shell and command line as a general concept.